From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Leigh Scott To: git-commits@fedoraproject.org Subject: [rpms/cinnamon-session] rawhide: Add shutdown patch Date: Tue, 22 Sep 2026 12:41:24 GMT Message-ID: <179008088495.1.16850332558623569631.rpms-cinnamon-session-e05b49691547@fedoraproject.org> List-ID: X-Git-Repo: rpms/cinnamon-session X-Git-Branch: rawhide X-Git-Rev: e05b496915476ee2f922656f3af921485e101cfe QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2lubmFtb24tc2Vz c2lvbgpCcmFuY2ggOiByYXdoaWRlCkNvbW1pdCA6IGUwNWI0OTY5MTU0NzZlZTJmOTIyNjU2ZjNh ZjkyMTQ4NWUxMDFjZmUKQXV0aG9yIDogTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwu Y29tPgpEYXRlICAgOiAyMDI2LTA5LTE4VDIyOjUxOjAzKzAxOjAwClN0YXRzICA6ICsxMDEwLy0x MTYgaW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvY2lubmFtb24tc2Vzc2lvbi9jL2UwNWI0OTY5MTU0NzZlZTJmOTIyNjU2ZjNhZjkyMTQ4NWUx MDFjZmU/YnJhbmNoPXJhd2hpZGUKCkxvZzoKQWRkIHNodXRkb3duIHBhdGNoCgotLS0KZGlmZiAt LWdpdCBhLzIxNS5wYXRjaCBiLzIxNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yZDIxZTJmCi0tLSAvZGV2L251bGwKKysrIGIvMjE1LnBhdGNoCkBAIC0wLDAgKzEs OTk0IEBACitGcm9tIDFlMzg3MDJjZjg0YmNkZDE4ZjNjY2I2YTMzYTdjNzYxMGQ3OGU0YmIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBn bWFpbC5jb20+CitEYXRlOiBUdWUsIDggU2VwIDIwMjYgMjM6MTQ6NDkgKzAxMDAKK1N1YmplY3Q6 IFtQQVRDSCAxLzJdIGNzbS1tYW5hZ2VyLmM6IFJlbW92ZSBNRE0gc3VwcG9ydAorCistLS0KKyBj aW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5hZ2VyLmMgfCAgNTQgKy0tLQorIGNpbm5hbW9uLXNlc3Np b24vbWRtLmMgICAgICAgICB8IDQ3MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBjaW5uYW1vbi1zZXNzaW9uL21kbS5oICAgICAgICAgfCAgNTQgLS0tLQorIGNpbm5hbW9uLXNl c3Npb24vbWVzb24uYnVpbGQgICB8ICAgMSAtCisgNCBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDU3NiBkZWxldGlvbnMoLSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgY2lubmFtb24tc2Vz c2lvbi9tZG0uYworIGRlbGV0ZSBtb2RlIDEwMDY0NCBjaW5uYW1vbi1zZXNzaW9uL21kbS5oCisK K2RpZmYgLS1naXQgYS9jaW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5hZ2VyLmMgYi9jaW5uYW1vbi1z ZXNzaW9uL2NzbS1tYW5hZ2VyLmMKK2luZGV4IDQ4YzMzZGIuLmU3NjU2OGIgMTAwNjQ0CistLS0g YS9jaW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5hZ2VyLmMKKysrKyBiL2Npbm5hbW9uLXNlc3Npb24v Y3NtLW1hbmFnZXIuYworQEAgLTUzLDcgKzUzLDYgQEAKKyAjaW5jbHVkZSAiY3NtLWF1dG9zdGFy dC1hcHAuaCIKKyAKKyAjaW5jbHVkZSAiY3NtLXV0aWwuaCIKKy0jaW5jbHVkZSAibWRtLmgiCisg I2luY2x1ZGUgImNzbS1zeXN0ZW0uaCIKKyAjaW5jbHVkZSAiY3NtLXNlc3Npb24tc2F2ZS5oIgor ICNpbmNsdWRlICJpbmhpYml0LWRpYWxvZy1pbmZvLmgiCitAQCAtNzMsOSArNzIsNiBAQAorICAq LworICNkZWZpbmUgQ1NNX01BTkFHRVJfUEhBU0VfVElNRU9VVCAzMCAvKiBzZWNvbmRzICovCisg CistI2RlZmluZSBNRE1fRkxFWElTRVJWRVJfQ09NTUFORCAibWRtZmxleGlzZXJ2ZXIiCistI2Rl ZmluZSBNRE1fRkxFWElTRVJWRVJfQVJHUyAgICAiLS1zdGFydG5ldyBTdGFuZGFyZCIKKy0KKyAj ZGVmaW5lIEdETV9GTEVYSVNFUlZFUl9DT01NQU5EICJnZG1mbGV4aXNlcnZlciIKKyAjZGVmaW5l IEdETV9GTEVYSVNFUlZFUl9BUkdTICAgICItLXN0YXJ0bmV3IFN0YW5kYXJkIgorIAorQEAgLTEx MSwxMCArMTA3LDggQEAgdHlwZWRlZiBlbnVtCisgICAgICAgICBDU01fTUFOQUdFUl9MT0dPVVRf TE9HT1VULAorICAgICAgICAgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVCwKKyAgICAgICAgIENT TV9NQU5BR0VSX0xPR09VVF9SRUJPT1RfSU5URVJBQ1QsCistICAgICAgICBDU01fTUFOQUdFUl9M T0dPVVRfUkVCT09UX01ETSwKKyAgICAgICAgIENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTiwK Ky0gICAgICAgIENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTl9JTlRFUkFDVCwKKy0gICAgICAg IENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTl9NRE0KKysgICAgICAgIENTTV9NQU5BR0VSX0xP R09VVF9TSFVURE9XTl9JTlRFUkFDVAorIH0gQ3NtTWFuYWdlckxvZ291dFR5cGU7CisgCisgc3Ry dWN0IENzbU1hbmFnZXJQcml2YXRlCitAQCAtNDcyLDE3ICs0NjYsNiBAQCBwaGFzZV9udW1fdG9f bmFtZSAoZ3VpbnQgcGhhc2UpCisgCisgc3RhdGljIHZvaWQgc3RhcnRfcGhhc2UgKENzbU1hbmFn ZXIgKm1hbmFnZXIpOworIAorLXN0YXRpYyB2b2lkCistcXVpdF9yZXF1ZXN0X2ZhaWxlZCAoQ3Nt U3lzdGVtICpzeXN0ZW0sCistICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICplcnJv ciwKKy0gICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgIHVzZXJfZGF0YSkKKy17Cist ICAgICAgICBnX3dhcm5pbmcgKCJVc2luZyBhbiBNRE0gbG9nb3V0IGFjdGlvbiB0byBzaHV0ZG93 bi9yZWJvb3QgdGhlIHN5c3RlbS4iKTsKKy0gICAgICAgIE1kbUxvZ291dEFjdGlvbiBmYWxsYmFj a19hY3Rpb24gPSBHUE9JTlRFUl9UT19JTlQgKHVzZXJfZGF0YSk7CistICAgICAgICBtZG1fc2V0 X2xvZ291dF9hY3Rpb24gKGZhbGxiYWNrX2FjdGlvbik7CistICAgICAgICBjc21fcXVpdCAoKTsK Ky19CistCisgc3RhdGljIHZvaWQKKyBjc21fbWFuYWdlcl9xdWl0IChDc21NYW5hZ2VyICptYW5h Z2VyKQorIHsKK0BAIC00OTgsMzEgKzQ4MSwxMyBAQCBjc21fbWFuYWdlcl9xdWl0IChDc21NYW5h Z2VyICptYW5hZ2VyKQorICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfUkVCT09UOgor ICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfUkVCT09UX0lOVEVSQUNUOgorICAgICAg ICAgICAgICAgICBnX3dhcm5pbmcgKCJSZXF1ZXN0aW5nIHN5c3RlbSByZXN0YXJ0Li4uIik7Cist ICAgICAgICAgICAgICAgIG1kbV9zZXRfbG9nb3V0X2FjdGlvbiAoTURNX0xPR09VVF9BQ1RJT05f Tk9ORSk7CistICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG1hbmFnZXItPnByaXYt PnN5c3RlbSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QtZmFp bGVkIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocXVp dF9yZXF1ZXN0X2ZhaWxlZCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJ TlRfVE9fUE9JTlRFUiAoTURNX0xPR09VVF9BQ1RJT05fUkVCT09UKSk7CisgICAgICAgICAgICAg ICAgIGNzbV9zeXN0ZW1fYXR0ZW1wdF9yZXN0YXJ0IChtYW5hZ2VyLT5wcml2LT5zeXN0ZW0pOwor ICAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VU X1JFQk9PVF9NRE06CistICAgICAgICAgICAgICAgIG1kbV9zZXRfbG9nb3V0X2FjdGlvbiAoTURN X0xPR09VVF9BQ1RJT05fUkVCT09UKTsKKy0gICAgICAgICAgICAgICAgY3NtX3F1aXQgKCk7Cist ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRf U0hVVERPV046CistICAgICAgICBjYXNlIENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTl9JTlRF UkFDVDogIAorKyAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV05fSU5URVJB Q1Q6CisgICAgICAgICAgICAgICAgIGdfd2FybmluZyAoIlJlcXVlc3Rpbmcgc3lzdGVtIHNodXRk b3duLi4uIik7CistICAgICAgICAgICAgICAgIG1kbV9zZXRfbG9nb3V0X2FjdGlvbiAoTURNX0xP R09VVF9BQ1RJT05fTk9ORSk7CistICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG1h bmFnZXItPnByaXYtPnN5c3RlbSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InJlcXVlc3QtZmFpbGVkIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19D QUxMQkFDSyAocXVpdF9yZXF1ZXN0X2ZhaWxlZCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdJTlRfVE9fUE9JTlRFUiAoTURNX0xPR09VVF9BQ1RJT05fU0hVVERPV04pKTsK KyAgICAgICAgICAgICAgICAgY3NtX3N5c3RlbV9hdHRlbXB0X3N0b3AgKG1hbmFnZXItPnByaXYt PnN5c3RlbSk7CisgICAgICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgY2FzZSBDU01fTUFO QUdFUl9MT0dPVVRfU0hVVERPV05fTURNOgorLSAgICAgICAgICAgICAgICBtZG1fc2V0X2xvZ291 dF9hY3Rpb24gKE1ETV9MT0dPVVRfQUNUSU9OX1NIVVRET1dOKTsKKy0gICAgICAgICAgICAgICAg Y3NtX3F1aXQgKCk7CistICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgZGVmYXVsdDoK KyAgICAgICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7CisgICAgICAgICAgICAg ICAgIGJyZWFrOworQEAgLTExMjEsNyArMTA4Niw2IEBAIGNhbmNlbF9lbmRfc2Vzc2lvbiAoQ3Nt TWFuYWdlciAqbWFuYWdlcikKKyAgICAgICAgIG1hbmFnZXItPnByaXYtPmxvZ291dF9tb2RlID0g Q1NNX01BTkFHRVJfTE9HT1VUX01PREVfTk9STUFMOworIAorICAgICAgICAgbWFuYWdlci0+cHJp di0+bG9nb3V0X3R5cGUgPSBDU01fTUFOQUdFUl9MT0dPVVRfTk9ORTsKKy0gICAgICAgIG1kbV9z ZXRfbG9nb3V0X2FjdGlvbiAoTURNX0xPR09VVF9BQ1RJT05fTk9ORSk7CisgCisgICAgICAgICBt YW5hZ2VyLT5wcml2LT5kaWFsb2dfYWN0aW9uID0gQ1NNX0xPR09VVF9BQ1RJT05fVU5ERUZJTkVE OworIAorQEAgLTExODYsNyArMTE1MCw3IEBAIGZsZXhpc2VydmVyX2xhdW5jaCAoY29uc3QgZ2No YXIgKiphcmd2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZXJyb3IpKSB7CisgICAgICAgICAgICAgICAgIGlmIChlcnJv cikgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGVidWcgKCJDc21NYW5hZ2VyOiBVbmFi bGUgdG8gc3RhcnQgTURNIGdyZWV0ZXI6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAg ICAgICAgICAgICAgICAgIGdfZGVidWcgKCJDc21NYW5hZ2VyOiBVbmFibGUgdG8gc3RhcnQgZ3Jl ZXRlcjogJXMiLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ19l cnJvcl9mcmVlIChlcnJvcik7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KK0BAIC0x MjA1LDE1ICsxMTY5LDcgQEAgbWFuYWdlcl9zd2l0Y2hfdXNlciAoQ3NtTWFuYWdlciAqbWFuYWdl cikKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorIAorLSAgICAgICAgaWYg KHByb2Nlc3NfaXNfcnVubmluZyAoIm1kbSIpKSB7CistICAgICAgICAgICAgICAgIGNvbnN0IGdj aGFyICpjb21tYW5kW10gPSB7CistICAgICAgICAgICAgICAgICAgICAgTURNX0ZMRVhJU0VSVkVS X0NPTU1BTkQsCistICAgICAgICAgICAgICAgICAgICAgTURNX0ZMRVhJU0VSVkVSX0FSR1MsCist ICAgICAgICAgICAgICAgICAgICAgTlVMTAorLSAgICAgICAgICAgICAgICB9OworLQorLSAgICAg ICAgICAgICAgICBmbGV4aXNlcnZlcl9sYXVuY2ggKGNvbW1hbmQpOworLSAgICAgICAgfSBlbHNl IGlmIChwcm9jZXNzX2lzX3J1bm5pbmcoImdkbSIpIHx8IHByb2Nlc3NfaXNfcnVubmluZygiZ2Rt MyIpKSB7CisrICAgICAgICBpZiAocHJvY2Vzc19pc19ydW5uaW5nKCJnZG0iKSB8fCBwcm9jZXNz X2lzX3J1bm5pbmcoImdkbTMiKSkgeworICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqY29t bWFuZFtdID0geworICAgICAgICAgICAgICAgICAgICAgIEdETV9GTEVYSVNFUlZFUl9DT01NQU5E LAorICAgICAgICAgICAgICAgICAgICAgIEdETV9GTEVYSVNFUlZFUl9BUkdTLAorQEAgLTEzNDks MTIgKzEzMDUsMTAgQEAgZW5kX3Nlc3Npb25fb3JfcmVwb3J0X2luaGliaXRvcnMgKENzbU1hbmFn ZXIgKm1hbmFnZXIpCisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBDU01f TUFOQUdFUl9MT0dPVVRfUkVCT09UOgorICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRf UkVCT09UX0lOVEVSQUNUOgorLSAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfUkVCT09U X01ETToKKyAgICAgICAgICAgICAgICAgYWN0aW9uID0gQ1NNX0xPR09VVF9BQ1RJT05fUkVCT09U OworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9H T1VUX1NIVVRET1dOOgorICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV05f SU5URVJBQ1Q6CistICAgICAgICBjYXNlIENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTl9NRE06 CisgICAgICAgICAgICAgICAgIGFjdGlvbiA9IENTTV9MT0dPVVRfQUNUSU9OX1NIVVRET1dOOwor ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGRlZmF1bHQ6CitkaWZmIC0tZ2l0IGEv Y2lubmFtb24tc2Vzc2lvbi9tZG0uYyBiL2Npbm5hbW9uLXNlc3Npb24vbWRtLmMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggM2FlZWVlYi4uMDAwMDAwMAorLS0tIGEvY2lubmFtb24t c2Vzc2lvbi9tZG0uYworKysrIC9kZXYvbnVsbAorQEAgLTEsNDcxICswLDAgQEAKKy0vKiAtKi0g TW9kZTogQzsgdGFiLXdpZHRoOiA4OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IGMtYmFzaWMtb2Zm c2V0OiA4IC0qLQorLSAqCistICogQ29weXJpZ2h0IChDKSAyMDA1IFJhZmZhZWxlIFNhbmRyaW5p CistICogQ29weXJpZ2h0IChDKSAyMDA1IFJlZCBIYXQsIEluYy4KKy0gKiBDb3B5cmlnaHQgKEMp IDIwMDIsIDIwMDMgR2VvcmdlIExlYmwKKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgUXVlZW4gb2Yg RW5nbGFuZCwKKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKy0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworLSAqIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorLSAqIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0CistICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCistICogR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLSAqIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIFN1aXRlIDUwMCwgQm9zdG9uLCBNQQor LSAqIDAyMTEwLTEzMzUsIFVTQS4KKy0gKgorLSAqIEF1dGhvcnM6CistICogICAgICBSYWZmYWVs ZSBTYW5kcmluaSA8cmFzYUBnbXguY2g+CistICogICAgICBHZW9yZ2UgTGVibCA8amlya2FANXou Y29tPgorLSAqICAgICAgTWFyayBNY0xvdWdobGluIDxtYXJrQHNreW5ldC5pZT4KKy0gKi8KKy0K Ky0jaWZkZWYgSEFWRV9DT05GSUdfSAorLSNpbmNsdWRlIDxjb25maWcuaD4KKy0jZW5kaWYKKy0K Ky0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPGVycm5vLmg+CistI2luY2x1ZGUgPHVu aXN0ZC5oPgorLSNpbmNsdWRlIDx0aW1lLmg+CistI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKy0j aW5jbHVkZSA8c3lzL3VuLmg+CistCistI2luY2x1ZGUgPFgxMS9YYXV0aC5oPgorLSNpbmNsdWRl IDxnZGsvZ2RrLmg+CistCistI2luY2x1ZGUgIm1kbS5oIgorLQorLSNkZWZpbmUgTURNX1BST1RP Q09MX1VQREFURV9JTlRFUlZBTCAxIC8qIHNlY29uZHMgKi8KKy0KKy0jZGVmaW5lIE1ETV9QUk9U T0NPTF9TT0NLRVRfUEFUSCAiL3Zhci9ydW4vZ2RtX3NvY2tldCIKKy0KKy0jZGVmaW5lIE1ETV9Q Uk9UT0NPTF9NU0dfQ0xPU0UgICAgICAgICAiQ0xPU0UiCistI2RlZmluZSBNRE1fUFJPVE9DT0xf TVNHX1ZFUlNJT04gICAgICAgIlZFUlNJT04iCistI2RlZmluZSBNRE1fUFJPVE9DT0xfTVNHX0FV VEhFTlRJQ0FURSAgIkFVVEhfTE9DQUwiCistI2RlZmluZSBNRE1fUFJPVE9DT0xfTVNHX1FVRVJZ X0FDVElPTiAgIlFVRVJZX0xPR09VVF9BQ1RJT04iCistI2RlZmluZSBNRE1fUFJPVE9DT0xfTVNH X1NFVF9BQ1RJT04gICAgIlNFVF9TQUZFX0xPR09VVF9BQ1RJT04iCistI2RlZmluZSBNRE1fUFJP VE9DT0xfTVNHX0ZMRVhJX1hTRVJWRVIgIkZMRVhJX1hTRVJWRVIiCistCistI2RlZmluZSBNRE1f QUNUSU9OX1NUUl9OT05FICAgICAiTk9ORSIKKy0jZGVmaW5lIE1ETV9BQ1RJT05fU1RSX1NIVVRE T1dOICJIQUxUIgorLSNkZWZpbmUgTURNX0FDVElPTl9TVFJfUkVCT09UICAgIlJFQk9PVCIKKy0j ZGVmaW5lIE1ETV9BQ1RJT05fU1RSX1NVU1BFTkQgICJTVVNQRU5EIgorLQorLXR5cGVkZWYgc3Ry dWN0IHsKKy0gICAgICAgIGludCAgICAgICAgICAgICBmZDsKKy0gICAgICAgIGNoYXIgICAgICAg ICAgICphdXRoX2Nvb2tpZTsKKy0KKy0gICAgICAgIE1kbUxvZ291dEFjdGlvbiBhdmFpbGFibGVf YWN0aW9uczsKKy0gICAgICAgIE1kbUxvZ291dEFjdGlvbiBjdXJyZW50X2FjdGlvbnM7CistCist ICAgICAgICB0aW1lX3QgICAgICAgICAgbGFzdF91cGRhdGU7CistfSBNZG1Qcm90b2NvbERhdGE7 CistCistc3RhdGljIE1kbVByb3RvY29sRGF0YSBtZG1fcHJvdG9jb2xfZGF0YSA9IHsKKy0gICAg ICAgIDAsCistICAgICAgICBOVUxMLAorLSAgICAgICAgTURNX0xPR09VVF9BQ1RJT05fTk9ORSwK Ky0gICAgICAgIE1ETV9MT0dPVVRfQUNUSU9OX05PTkUsCistICAgICAgICAwCistfTsKKy0KKy1z dGF0aWMgY2hhciAqCistbWRtX3NlbmRfcHJvdG9jb2xfbXNnIChNZG1Qcm90b2NvbERhdGEgKmRh dGEsCistICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgKm1zZykKKy17Cist ICAgICAgICBHU3RyaW5nICpyZXR2YWw7CistICAgICAgICBjaGFyIGJ1ZlsyNTZdOworLSAgICAg ICAgY2hhciAqcDsKKy0gICAgICAgIGludCBsZW47CistCistICAgICAgICBwID0gZ19zdHJjb25j YXQgKG1zZywgIlxuIiwgTlVMTCk7CistCistICAgICAgICBpZiAod3JpdGUgKGRhdGEtPmZkLCBw LCBzdHJsZW4gKHApKSA8IDApIHsKKy0gICAgICAgICAgICAgICAgZ19mcmVlIChwKTsKKy0KKy0g ICAgICAgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0byBNRE06 ICVzIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBnX3N0cmVycm9yIChlcnJubykpOwor LQorLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGdfZnJlZSAocCk7CistCistICAgICAgICBwID0gTlVMTDsKKy0gICAgICAgIHJldHZhbCA9IE5V TEw7CistCistICAgICAgICB3aGlsZSAoKGxlbiA9IHJlYWQgKGRhdGEtPmZkLCBidWYsIHNpemVv ZiAoYnVmKSAtIDEpKSA+IDApIHsKKy0gICAgICAgICAgICAgICAgYnVmW2xlbl0gPSAnXDAnOwor LQorLSAgICAgICAgICAgICAgICBpZiAoIXJldHZhbCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHJldHZhbCA9IGdfc3RyaW5nX25ldyAoYnVmKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBnX3N0cmluZ19hcHBlbmQgKHJl dHZhbCwgYnVmKTsKKy0gICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICBpZiAo KHAgPSBzdHJjaHIgKHJldHZhbC0+c3RyLCAnXG4nKSkpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aWYgKHApIHsKKy0gICAgICAgICAgICAgICAgKnAgPSAnXDAnOworLSAgICAgICAgfQorLQorLSAg ICAgICAgcmV0dXJuIHJldHZhbCA/IGdfc3RyaW5nX2ZyZWUgKHJldHZhbCwgRkFMU0UpIDogTlVM TDsKKy19CistCistc3RhdGljIGNoYXIgKgorLWdldF9kaXNwbGF5X251bWJlciAodm9pZCkKKy17 CistICAgICAgICBjb25zdCBjaGFyICpkaXNwbGF5X25hbWU7CistICAgICAgICBjaGFyICAgICAg ICpyZXR2YWw7CistICAgICAgICBjaGFyICAgICAgICpwOworLQorLSAgICAgICAgZGlzcGxheV9u YW1lID0gZ2RrX2Rpc3BsYXlfZ2V0X25hbWUgKGdka19kaXNwbGF5X2dldF9kZWZhdWx0ICgpKTsK Ky0KKy0gICAgICAgIHAgPSBzdHJjaHIgKGRpc3BsYXlfbmFtZSwgJzonKTsKKy0KKy0gICAgICAg IGlmICghcCkgeworLSAgICAgICAgICAgICAgICByZXR1cm4gZ19zdHJkdXAgKCIwIik7CistICAg ICAgICB9CistCistICAgICAgICB3aGlsZSAoKnAgPT0gJzonKSB7CistICAgICAgICAgICAgICAg IHArKzsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJldHZhbCA9IGdfc3RyZHVwIChwKTsKKy0K Ky0gICAgICAgIHAgPSBzdHJjaHIgKHJldHZhbCwgJy4nKTsKKy0KKy0gICAgICAgIGlmIChwICE9 IE5VTEwpIHsKKy0gICAgICAgICAgICAgICAgKnAgPSAnXDAnOworLSAgICAgICAgfQorLQorLSAg ICAgICAgcmV0dXJuIHJldHZhbDsKKy19CistCistc3RhdGljIGdib29sZWFuCistbWRtX2F1dGhl bnRpY2F0ZV9jb25uZWN0aW9uIChNZG1Qcm90b2NvbERhdGEgKmRhdGEpCisteworLSNkZWZpbmUg TURNX01JVF9NQUdJQ19DT09LSUVfTEVOIDE2CistCistICAgICAgICBjb25zdCBjaGFyICp4YXVf cGF0aDsKKy0gICAgICAgIEZJTEUgKmY7CistICAgICAgICBYYXV0aCAqeGF1OworLSAgICAgICAg Y2hhciAqZGlzcGxheV9udW1iZXI7CistICAgICAgICBnYm9vbGVhbiByZXR2YWw7CistCistICAg ICAgICBpZiAoZGF0YS0+YXV0aF9jb29raWUpIHsKKy0gICAgICAgICAgICAgICAgY2hhciAqbXNn OworLSAgICAgICAgICAgICAgICBjaGFyICpyZXNwb25zZTsKKy0KKy0gICAgICAgICAgICAgICAg bXNnID0gZ19zdHJkdXBfcHJpbnRmIChNRE1fUFJPVE9DT0xfTVNHX0FVVEhFTlRJQ0FURSAiICVz IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5hdXRoX2Nv b2tpZSk7CistICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gbWRtX3NlbmRfcHJvdG9jb2xfbXNn IChkYXRhLCBtc2cpOworLSAgICAgICAgICAgICAgICBnX2ZyZWUgKG1zZyk7CistCistICAgICAg ICAgICAgICAgIGlmIChyZXNwb25zZSAmJiAhc3RyY21wIChyZXNwb25zZSwgIk9LIikpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gVFJVRTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBnX2ZyZWUgKGRhdGEtPmF1dGhfY29va2llKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBkYXRhLT5hdXRoX2Nvb2tpZSA9IE5VTEw7CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGlmICghKHhhdV9wYXRoID0gWGF1RmlsZU5hbWUgKCkpKSB7Cist ICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlm ICghKGYgPSBmb3BlbiAoeGF1X3BhdGgsICJyIikpKSB7CistICAgICAgICAgICAgICAgIHJldHVy biBGQUxTRTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJldHZhbCA9IEZBTFNFOworLSAgICAg ICAgZGlzcGxheV9udW1iZXIgPSBnZXRfZGlzcGxheV9udW1iZXIgKCk7CistCistICAgICAgICB3 aGlsZSAoKHhhdSA9IFhhdVJlYWRBdXRoIChmKSkpIHsKKy0gICAgICAgICAgICAgICAgY2hhciBi dWZmZXJbNDBdOyAvKiAyKjE2ID09IDMyLCBzbyA0MCBpcyBlbm91Z2ggKi8KKy0gICAgICAgICAg ICAgICAgY2hhciAqbXNnOworLSAgICAgICAgICAgICAgICBjaGFyICpyZXNwb25zZTsKKy0gICAg ICAgICAgICAgICAgaW50ICAgaTsKKy0KKy0gICAgICAgICAgICAgICAgaWYgKHhhdS0+ZmFtaWx5 ICE9IEZhbWlseUxvY2FsIHx8CistICAgICAgICAgICAgICAgICAgICBzdHJuY21wICh4YXUtPm51 bWJlciwgZGlzcGxheV9udW1iZXIsIHhhdS0+bnVtYmVyX2xlbmd0aCkgfHwKKy0gICAgICAgICAg ICAgICAgICAgIHN0cm5jbXAgKHhhdS0+bmFtZSwgIk1JVC1NQUdJQy1DT09LSUUtMSIsIHhhdS0+ bmFtZV9sZW5ndGgpIHx8CistICAgICAgICAgICAgICAgICAgICB4YXUtPmRhdGFfbGVuZ3RoICE9 IE1ETV9NSVRfTUFHSUNfQ09PS0lFX0xFTikgeworLSAgICAgICAgICAgICAgICAgICAgICAgIFhh dURpc3Bvc2VBdXRoICh4YXUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor LSAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBN RE1fTUlUX01BR0lDX0NPT0tJRV9MRU47IGkrKykgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGdfc25wcmludGYgKGJ1ZmZlciArIDIqaSwgMywgIiUwMngiLCAoZ3VpbnQpKGd1Y2hhcil4YXUt PmRhdGFbaV0pOworLSAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgIFhhdURp c3Bvc2VBdXRoICh4YXUpOworLQorLSAgICAgICAgICAgICAgICBtc2cgPSBnX3N0cmR1cF9wcmlu dGYgKE1ETV9QUk9UT0NPTF9NU0dfQVVUSEVOVElDQVRFICIgJXMiLCBidWZmZXIpOworLSAgICAg ICAgICAgICAgICByZXNwb25zZSA9IG1kbV9zZW5kX3Byb3RvY29sX21zZyAoZGF0YSwgbXNnKTsK Ky0gICAgICAgICAgICAgICAgZ19mcmVlIChtc2cpOworLQorLSAgICAgICAgICAgICAgICBpZiAo cmVzcG9uc2UgJiYgIXN0cmNtcCAocmVzcG9uc2UsICJPSyIpKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YS0+YXV0aF9jb29raWUgPSBnX3N0cmR1cCAoYnVmZmVyKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICByZXR2YWwgPSBUUlVFOworLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworLSAg ICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgIGdfZnJlZSAocmVzcG9uc2UpOwor LSAgICAgICAgfQorLQorLSAgICAgICAgZ19mcmVlIChkaXNwbGF5X251bWJlcik7CistCistICAg ICAgICBmY2xvc2UgKGYpOworLQorLSAgICAgICAgcmV0dXJuIHJldHZhbDsKKy0KKy0jdW5kZWYg TURNX01JVF9NQUdJQ19DT09LSUVfTEVOCistfQorLQorLXN0YXRpYyB2b2lkCistbWRtX3NodXRk b3duX3Byb3RvY29sX2Nvbm5lY3Rpb24gKE1kbVByb3RvY29sRGF0YSAqZGF0YSkKKy17CistICAg ICAgICBpZiAoZGF0YS0+ZmQpIHsKKy0gICAgICAgICAgICAgICAgY2xvc2UgKGRhdGEtPmZkKTsK Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIGRhdGEtPmZkID0gMDsKKy19CistCistc3RhdGljIGdi b29sZWFuCistbWRtX2luaXRfcHJvdG9jb2xfY29ubmVjdGlvbiAoTWRtUHJvdG9jb2xEYXRhICpk YXRhKQorLXsKKy0gICAgICAgIHN0cnVjdCBzb2NrYWRkcl91biBhZGRyOworLSAgICAgICAgY2hh ciAgICAgICAgICAgICAgKnJlc3BvbnNlOworLQorLSAgICAgICAgZ19hc3NlcnQgKGRhdGEtPmZk IDw9IDApOworLQorLSAgICAgICAgaWYgKGdfZmlsZV90ZXN0IChNRE1fUFJPVE9DT0xfU09DS0VU X1BBVEgsIEdfRklMRV9URVNUX0VYSVNUUykpIHsKKy0gICAgICAgICAgICAgICAgc3RyY3B5IChh ZGRyLnN1bl9wYXRoLCBNRE1fUFJPVE9DT0xfU09DS0VUX1BBVEgpOworLSAgICAgICAgfSBlbHNl IGlmIChnX2ZpbGVfdGVzdCAoIi90bXAvLm1kbV9zb2NrZXQiLCBHX0ZJTEVfVEVTVF9FWElTVFMp KSB7CistICAgICAgICAgICAgICAgIHN0cmNweSAoYWRkci5zdW5fcGF0aCwgIi90bXAvLm1kbV9z b2NrZXQiKTsKKy0gICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIHJldHVybiBGQUxT RTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGRhdGEtPmZkID0gc29ja2V0IChBRl9VTklYLCBT T0NLX1NUUkVBTSwgMCk7CistCistICAgICAgICBpZiAoZGF0YS0+ZmQgPCAwKSB7CistICAgICAg ICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBjcmVhdGUgTURNIHNvY2tldDogJXMiLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfc3RyZXJyb3IgKGVycm5vKSk7CistCistICAg ICAgICAgICAgICAgIG1kbV9zaHV0ZG93bl9wcm90b2NvbF9jb25uZWN0aW9uIChkYXRhKTsKKy0K Ky0gICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworLSAgICAgICAgfQorLQorLSAgICAgICAg YWRkci5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKKy0KKy0gICAgICAgIGlmIChjb25uZWN0IChkYXRh LT5mZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmYWRkciwgc2l6ZW9mIChhZGRyKSkgPCAwKSB7Cist ICAgICAgICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBlc3RhYmxpc2ggYSBjb25uZWN0 aW9uIHdpdGggTURNOiAlcyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19zdHJlcnJv ciAoZXJybm8pKTsKKy0KKy0gICAgICAgICAgICAgICAgbWRtX3NodXRkb3duX3Byb3RvY29sX2Nv bm5lY3Rpb24gKGRhdGEpOworLQorLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CistICAg ICAgICB9CistCistICAgICAgICByZXNwb25zZSA9IG1kbV9zZW5kX3Byb3RvY29sX21zZyAoZGF0 YSwgTURNX1BST1RPQ09MX01TR19WRVJTSU9OKTsKKy0KKy0gICAgICAgIGlmICghcmVzcG9uc2Ug fHwgc3RybmNtcCAocmVzcG9uc2UsICJNRE0gIiwgc3RybGVuICgiTURNICIpKSAhPSAwKSB7Cist ICAgICAgICAgICAgICAgIGdfZnJlZSAocmVzcG9uc2UpOworLQorLSAgICAgICAgICAgICAgICBn X3dhcm5pbmcgKCJGYWlsZWQgdG8gZ2V0IHByb3RvY29sIHZlcnNpb24gZnJvbSBNRE0iKTsKKy0g ICAgICAgICAgICAgICAgbWRtX3NodXRkb3duX3Byb3RvY29sX2Nvbm5lY3Rpb24gKGRhdGEpOwor LQorLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CistICAgICAgICB9CistCistICAgICAg ICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0KKy0gICAgICAgIGlmICghbWRtX2F1dGhlbnRpY2F0ZV9j b25uZWN0aW9uIChkYXRhKSkgeworLSAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQg dG8gYXV0aGVudGljYXRlIHdpdGggTURNIik7CistICAgICAgICAgICAgICAgIG1kbV9zaHV0ZG93 bl9wcm90b2NvbF9jb25uZWN0aW9uIChkYXRhKTsKKy0gICAgICAgICAgICAgICAgcmV0dXJuIEZB TFNFOworLSAgICAgICAgfQorLQorLSAgICAgICAgcmV0dXJuIFRSVUU7CistfQorLQorLXN0YXRp YyB2b2lkCistbWRtX3BhcnNlX3F1ZXJ5X3Jlc3BvbnNlIChNZG1Qcm90b2NvbERhdGEgKmRhdGEs CistICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgKnJlc3BvbnNlKQor LXsKKy0gICAgICAgIGNoYXIgKiphY3Rpb25zOworLSAgICAgICAgaW50IGk7CistCistICAgICAg ICBkYXRhLT5hdmFpbGFibGVfYWN0aW9ucyA9IE1ETV9MT0dPVVRfQUNUSU9OX05PTkU7CistICAg ICAgICBkYXRhLT5jdXJyZW50X2FjdGlvbnMgICA9IE1ETV9MT0dPVVRfQUNUSU9OX05PTkU7Cist CistICAgICAgICBpZiAoc3RybmNtcCAocmVzcG9uc2UsICJPSyAiLCAzKSAhPSAwKSB7CistICAg ICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJlc3BvbnNlICs9 IDM7CistCistICAgICAgICBhY3Rpb25zID0gZ19zdHJzcGxpdCAocmVzcG9uc2UsICI7IiwgLTEp OworLQorLSAgICAgICAgZm9yIChpID0gMDsgYWN0aW9uc1tpXTsgaSsrKSB7CistICAgICAgICAg ICAgICAgIE1kbUxvZ291dEFjdGlvbiBhY3Rpb24gPSBNRE1fTE9HT1VUX0FDVElPTl9OT05FOwor LSAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgc2VsZWN0ZWQgPSBGQUxTRTsKKy0gICAg ICAgICAgICAgICAgY2hhciAgICAgICAgICAgKnN0ciA9IGFjdGlvbnMgW2ldOworLSAgICAgICAg ICAgICAgICBpbnQgICAgICAgICAgICAgbGVuOworLQorLSAgICAgICAgICAgICAgICBsZW4gPSBz dHJsZW4gKHN0cik7CistCistICAgICAgICAgICAgICAgIGlmICghbGVuKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7CistICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgaWYgKHN0cltsZW4gLSAxXSA9PSAnIScpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBzZWxlY3RlZCA9IFRSVUU7CistICAgICAgICAgICAgICAgICAgICAgICAgc3RyW2xlbiAt IDFdID0gJ1wwJzsKKy0gICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICBpZiAo IXN0cmNtcCAoc3RyLCBNRE1fQUNUSU9OX1NUUl9TSFVURE9XTikpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhY3Rpb24gPSBNRE1fTE9HT1VUX0FDVElPTl9TSFVURE9XTjsKKy0gICAgICAg ICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wIChzdHIsIE1ETV9BQ1RJT05fU1RSX1JFQk9PVCkp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSBNRE1fTE9HT1VUX0FDVElPTl9S RUJPT1Q7CistICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCAoc3RyLCBNRE1fQUNU SU9OX1NUUl9TVVNQRU5EKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9IE1E TV9MT0dPVVRfQUNUSU9OX1NVU1BFTkQ7CistICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgZGF0YS0+YXZhaWxhYmxlX2FjdGlvbnMgfD0gYWN0aW9uOworLQorLSAgICAgICAg ICAgICAgICBpZiAoc2VsZWN0ZWQpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5j dXJyZW50X2FjdGlvbnMgfD0gYWN0aW9uOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBnX3N0cmZyZWV2IChhY3Rpb25zKTsKKy19CistCistc3RhdGljIHZvaWQK Ky1tZG1fdXBkYXRlX2xvZ291dF9hY3Rpb25zIChNZG1Qcm90b2NvbERhdGEgKmRhdGEpCistewor LSAgICAgICAgdGltZV90IGN1cnJlbnRfdGltZTsKKy0gICAgICAgIGNoYXIgICpyZXNwb25zZTsK Ky0KKy0gICAgICAgIGN1cnJlbnRfdGltZSA9IHRpbWUgKE5VTEwpOworLQorLSAgICAgICAgaWYg KGN1cnJlbnRfdGltZSA8PSAoZGF0YS0+bGFzdF91cGRhdGUgKyBNRE1fUFJPVE9DT0xfVVBEQVRF X0lOVEVSVkFMKSkgeworLSAgICAgICAgICAgICAgICByZXR1cm47CistICAgICAgICB9CistCist ICAgICAgICBkYXRhLT5sYXN0X3VwZGF0ZSA9IGN1cnJlbnRfdGltZTsKKy0KKy0gICAgICAgIGlm ICghbWRtX2luaXRfcHJvdG9jb2xfY29ubmVjdGlvbiAoZGF0YSkpIHsKKy0gICAgICAgICAgICAg ICAgcmV0dXJuOworLSAgICAgICAgfQorLQorLSAgICAgICAgaWYgKChyZXNwb25zZSA9IG1kbV9z ZW5kX3Byb3RvY29sX21zZyAoZGF0YSwgTURNX1BST1RPQ09MX01TR19RVUVSWV9BQ1RJT04pKSkg eworLSAgICAgICAgICAgICAgICBtZG1fcGFyc2VfcXVlcnlfcmVzcG9uc2UgKGRhdGEsIHJlc3Bv bnNlKTsKKy0gICAgICAgICAgICAgICAgZ19mcmVlIChyZXNwb25zZSk7CistICAgICAgICB9Cist CistICAgICAgICBtZG1fc2h1dGRvd25fcHJvdG9jb2xfY29ubmVjdGlvbiAoZGF0YSk7CistfQor LQorLWdib29sZWFuCistbWRtX2lzX2F2YWlsYWJsZSAodm9pZCkKKy17CistICAgICAgICBpZiAo IW1kbV9pbml0X3Byb3RvY29sX2Nvbm5lY3Rpb24gKCZtZG1fcHJvdG9jb2xfZGF0YSkpIHsKKy0g ICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworLSAgICAgICAgfQorLQorLSAgICAgICAgbWRt X3NodXRkb3duX3Byb3RvY29sX2Nvbm5lY3Rpb24gKCZtZG1fcHJvdG9jb2xfZGF0YSk7CistCist ICAgICAgICByZXR1cm4gVFJVRTsKKy19CistCistZ2Jvb2xlYW4KKy1tZG1fc3VwcG9ydHNfbG9n b3V0X2FjdGlvbiAoTWRtTG9nb3V0QWN0aW9uIGFjdGlvbikKKy17CistICAgICAgICBtZG1fdXBk YXRlX2xvZ291dF9hY3Rpb25zICgmbWRtX3Byb3RvY29sX2RhdGEpOworLQorLSAgICAgICAgcmV0 dXJuIChtZG1fcHJvdG9jb2xfZGF0YS5hdmFpbGFibGVfYWN0aW9ucyAmIGFjdGlvbikgIT0gMDsK Ky19CistCistTWRtTG9nb3V0QWN0aW9uCistbWRtX2dldF9sb2dvdXRfYWN0aW9uICh2b2lkKQor LXsKKy0gICAgICAgIG1kbV91cGRhdGVfbG9nb3V0X2FjdGlvbnMgKCZtZG1fcHJvdG9jb2xfZGF0 YSk7CistCistICAgICAgICByZXR1cm4gbWRtX3Byb3RvY29sX2RhdGEuY3VycmVudF9hY3Rpb25z OworLX0KKy0KKy12b2lkCistbWRtX3NldF9sb2dvdXRfYWN0aW9uIChNZG1Mb2dvdXRBY3Rpb24g YWN0aW9uKQorLXsKKy0gICAgICAgIGNoYXIgKmFjdGlvbl9zdHIgPSBOVUxMOworLSAgICAgICAg Y2hhciAqbXNnOworLSAgICAgICAgY2hhciAqcmVzcG9uc2U7CistCistICAgICAgICBpZiAoIW1k bV9pbml0X3Byb3RvY29sX2Nvbm5lY3Rpb24gKCZtZG1fcHJvdG9jb2xfZGF0YSkpIHsKKy0gICAg ICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgfQorLQorLSAgICAgICAgc3dpdGNoIChhY3Rp b24pIHsKKy0gICAgICAgIGNhc2UgTURNX0xPR09VVF9BQ1RJT05fTk9ORToKKy0gICAgICAgICAg ICAgICAgYWN0aW9uX3N0ciA9IE1ETV9BQ1RJT05fU1RSX05PTkU7CistICAgICAgICAgICAgICAg IGJyZWFrOworLSAgICAgICAgY2FzZSBNRE1fTE9HT1VUX0FDVElPTl9TSFVURE9XTjoKKy0gICAg ICAgICAgICAgICAgYWN0aW9uX3N0ciA9IE1ETV9BQ1RJT05fU1RSX1NIVVRET1dOOworLSAgICAg ICAgICAgICAgICBicmVhazsKKy0gICAgICAgIGNhc2UgTURNX0xPR09VVF9BQ1RJT05fUkVCT09U OgorLSAgICAgICAgICAgICAgICBhY3Rpb25fc3RyID0gTURNX0FDVElPTl9TVFJfUkVCT09UOwor LSAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgIGNhc2UgTURNX0xPR09VVF9BQ1RJT05f U1VTUEVORDoKKy0gICAgICAgICAgICAgICAgYWN0aW9uX3N0ciA9IE1ETV9BQ1RJT05fU1RSX1NV U1BFTkQ7CistICAgICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgfQorLQorLSAgICAgICAg bXNnID0gZ19zdHJkdXBfcHJpbnRmIChNRE1fUFJPVE9DT0xfTVNHX1NFVF9BQ1RJT04gIiAlcyIs IGFjdGlvbl9zdHIpOworLQorLSAgICAgICAgcmVzcG9uc2UgPSBtZG1fc2VuZF9wcm90b2NvbF9t c2cgKCZtZG1fcHJvdG9jb2xfZGF0YSwgbXNnKTsKKy0KKy0gICAgICAgIGdfZnJlZSAobXNnKTsK Ky0gICAgICAgIGdfZnJlZSAocmVzcG9uc2UpOworLQorLSAgICAgICAgbWRtX3Byb3RvY29sX2Rh dGEubGFzdF91cGRhdGUgPSAwOworLQorLSAgICAgICAgbWRtX3NodXRkb3duX3Byb3RvY29sX2Nv bm5lY3Rpb24gKCZtZG1fcHJvdG9jb2xfZGF0YSk7CistfQorLQorLXZvaWQKKy1tZG1fbmV3X2xv Z2luICh2b2lkKQorLXsKKy0gICAgICAgIGNoYXIgKnJlc3BvbnNlOworLQorLSAgICAgICAgaWYg KCFtZG1faW5pdF9wcm90b2NvbF9jb25uZWN0aW9uICgmbWRtX3Byb3RvY29sX2RhdGEpKSB7Cist ICAgICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJlc3BvbnNl ID0gbWRtX3NlbmRfcHJvdG9jb2xfbXNnICgmbWRtX3Byb3RvY29sX2RhdGEsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTURNX1BST1RPQ09MX01TR19GTEVYSV9Y U0VSVkVSKTsKKy0KKy0gICAgICAgIGdfZnJlZSAocmVzcG9uc2UpOworLQorLSAgICAgICAgbWRt X3Byb3RvY29sX2RhdGEubGFzdF91cGRhdGUgPSAwOworLQorLSAgICAgICAgbWRtX3NodXRkb3du X3Byb3RvY29sX2Nvbm5lY3Rpb24gKCZtZG1fcHJvdG9jb2xfZGF0YSk7CistfQorZGlmZiAtLWdp dCBhL2Npbm5hbW9uLXNlc3Npb24vbWRtLmggYi9jaW5uYW1vbi1zZXNzaW9uL21kbS5oCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDJiZGI1ZjMuLjAwMDAwMDAKKy0tLSBhL2Npbm5h bW9uLXNlc3Npb24vbWRtLmgKKysrKyAvZGV2L251bGwKK0BAIC0xLDU0ICswLDAgQEAKKy0vKiBt ZG0uaAorLSAqIENvcHlyaWdodCAoQykgMjAwNSBSYWZmYWVsZSBTYW5kcmluaQorLSAqIENvcHly aWdodCAoQykgMjAwNSBSZWQgSGF0LCBJbmMuCistICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAz IEdlb3JnZSBMZWJsCistICogQ29weXJpZ2h0IChDKSAyMDAxIFF1ZWVuIG9mIEVuZ2xhbmQsIAor LSAqCistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCistICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCistICogTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0gKgorLSAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQK Ky0gKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKy0gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCistICogRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gU3VpdGUgNTAwLCBCb3N0b24sIE1BCistICogMDIxMTAt MTMzNSwgVVNBLgorLSAqCistICogQXV0aG9yczoKKy0gKiAgICAgIFJhZmZhZWxlIFNhbmRyaW5p IDxyYXNhQGdteC5jaD4KKy0gKiAgICAgIEdlb3JnZSBMZWJsIDxqaXJrYUA1ei5jb20+CistICog ICAgICBNYXJrIE1jTG91Z2hsaW4gPG1hcmtAc2t5bmV0LmllPgorLSAqLworLQorLSNpZm5kZWYg X19NRE1fTE9HT1VUX0FDVElPTl9IX18KKy0jZGVmaW5lIF9fTURNX0xPR09VVF9BQ1RJT05fSF9f CistCistI2luY2x1ZGUgPGdsaWIuaD4KKy0KKy1HX0JFR0lOX0RFQ0xTCistCistdHlwZWRlZiBl bnVtIHsKKy0gIE1ETV9MT0dPVVRfQUNUSU9OX05PTkUgICAgID0gMCwKKy0gIE1ETV9MT0dPVVRf QUNUSU9OX1NIVVRET1dOID0gMSA8PCAwLAorLSAgTURNX0xPR09VVF9BQ1RJT05fUkVCT09UICAg PSAxIDw8IDEsCistICBNRE1fTE9HT1VUX0FDVElPTl9TVVNQRU5EICA9IDEgPDwgMgorLX0gTWRt TG9nb3V0QWN0aW9uOworLQorLWdib29sZWFuICAgICAgICAgbWRtX2lzX2F2YWlsYWJsZSAgICAg ICAgICAgICh2b2lkKTsKKy0KKy12b2lkICAgICAgICAgICAgIG1kbV9uZXdfbG9naW4gICAgICAg ICAgICAgICAodm9pZCk7CistCistdm9pZCAgICAgICAgICAgICBtZG1fc2V0X2xvZ291dF9hY3Rp b24gICAgICAgKE1kbUxvZ291dEFjdGlvbiBhY3Rpb24pOworLQorLU1kbUxvZ291dEFjdGlvbiAg bWRtX2dldF9sb2dvdXRfYWN0aW9uICAgICAgICh2b2lkKTsKKy0KKy1nYm9vbGVhbiAgICAgICAg IG1kbV9zdXBwb3J0c19sb2dvdXRfYWN0aW9uICAoTWRtTG9nb3V0QWN0aW9uIGFjdGlvbik7Cist CistR19FTkRfREVDTFMKKy0KKy0jZW5kaWYgLyogX19NRE1fTE9HT1VUX0FDVElPTl9IX18gKi8K K2RpZmYgLS1naXQgYS9jaW5uYW1vbi1zZXNzaW9uL21lc29uLmJ1aWxkIGIvY2lubmFtb24tc2Vz c2lvbi9tZXNvbi5idWlsZAoraW5kZXggMDczNzU1ZC4uNjFiNDczNyAxMDA2NDQKKy0tLSBhL2Np bm5hbW9uLXNlc3Npb24vbWVzb24uYnVpbGQKKysrKyBiL2Npbm5hbW9uLXNlc3Npb24vbWVzb24u YnVpbGQKK0BAIC00OSw3ICs0OSw2IEBAIGNpbm5hbW9uX3Nlc3Npb25fc291cmNlcyA9IFsKKyAg ICdtYWluLmMnLAorICAgJ21kbS1sb2cuYycsCisgICAnbWRtLXNpZ25hbC1oYW5kbGVyLmMnLAor LSAgJ21kbS5jJywKKyAgIGNzbV9tYXJzaGFsX3NvdXJjZXMsCisgICBnZGJ1c19zb3VyY2VzLAor IF0KKworRnJvbSBkNjE1Y2ZlNWI0ZmQ0ZDI4ZDhkNmMwNGIyM2RmOTM0ZjM2OTA1NDQxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21h aWwuY29tPgorRGF0ZTogVHVlLCA4IFNlcCAyMDI2IDIzOjE2OjI4ICswMTAwCitTdWJqZWN0OiBb UEFUQ0ggMi8yXSBjc20tc3lzdGVtZDogd2FpdCBmb3IgbG9naW5kJ3MgUHJlcGFyZUZvclNodXRk b3duIGJlZm9yZQorIHF1aXR0aW5nCisKKy0tLQorIGNpbm5hbW9uLXNlc3Npb24vY3NtLW1hbmFn ZXIuYyB8ICAyMiArKysrKysKKyBjaW5uYW1vbi1zZXNzaW9uL2NzbS1zeXN0ZW0uYyAgfCAgMTIg KysrCisgY2lubmFtb24tc2Vzc2lvbi9jc20tc3lzdGVtZC5jIHwgMTI5ICsrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyks IDMxIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2lubmFtb24tc2Vzc2lvbi9jc20tbWFu YWdlci5jIGIvY2lubmFtb24tc2Vzc2lvbi9jc20tbWFuYWdlci5jCitpbmRleCBlNzY1NjhiLi4x N2JhMTVmIDEwMDY0NAorLS0tIGEvY2lubmFtb24tc2Vzc2lvbi9jc20tbWFuYWdlci5jCisrKysg Yi9jaW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5hZ2VyLmMKK0BAIC00NjYsNiArNDY2LDIwIEBAIHBo YXNlX251bV90b19uYW1lIChndWludCBwaGFzZSkKKyAKKyBzdGF0aWMgdm9pZCBzdGFydF9waGFz ZSAoQ3NtTWFuYWdlciAqbWFuYWdlcik7CisgCisrc3RhdGljIHZvaWQKKytvbl9zaHV0ZG93bl9w cmVwYXJlZCAoQ3NtU3lzdGVtICpzeXN0ZW0sCisrICAgICAgICAgICAgICAgICAgICAgIGdib29s ZWFuICAgc3VjY2VzcywKKysgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICB1c2VyX2Rh dGEpCisreworKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jIChz eXN0ZW0sIG9uX3NodXRkb3duX3ByZXBhcmVkLCB1c2VyX2RhdGEpOworKworKyAgICAgICAgaWYg KCFzdWNjZXNzKSB7CisrICAgICAgICAgICAgICAgIGdfd2FybmluZyAoIlNodXRkb3duL3Jlc3Rh cnQgd2FzIG5vdCBjb25maXJtZWQgYnkgbG9naW5kIik7CisrICAgICAgICB9CisrCisrICAgICAg ICBjc21fcXVpdCAoKTsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBjc21fbWFuYWdlcl9xdWl0IChD c21NYW5hZ2VyICptYW5hZ2VyKQorIHsKK0BAIC00ODEsMTEgKzQ5NSwxOSBAQCBjc21fbWFuYWdl cl9xdWl0IChDc21NYW5hZ2VyICptYW5hZ2VyKQorICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9M T0dPVVRfUkVCT09UOgorICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfUkVCT09UX0lO VEVSQUNUOgorICAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJSZXF1ZXN0aW5nIHN5c3RlbSBy ZXN0YXJ0Li4uIik7CisrICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG1hbmFnZXIt PnByaXYtPnN5c3RlbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNodXRk b3duLXByZXBhcmVkIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxM QkFDSyAob25fc2h1dGRvd25fcHJlcGFyZWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYW5hZ2VyKTsKKyAgICAgICAgICAgICAgICAgY3NtX3N5c3RlbV9hdHRlbXB0X3Jl c3RhcnQgKG1hbmFnZXItPnByaXYtPnN5c3RlbSk7CisgICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV046CisgICAgICAgICBjYXNl IENTTV9NQU5BR0VSX0xPR09VVF9TSFVURE9XTl9JTlRFUkFDVDoKKyAgICAgICAgICAgICAgICAg Z193YXJuaW5nICgiUmVxdWVzdGluZyBzeXN0ZW0gc2h1dGRvd24uLi4iKTsKKysgICAgICAgICAg ICAgICAgZ19zaWduYWxfY29ubmVjdCAobWFuYWdlci0+cHJpdi0+c3lzdGVtLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAic2h1dGRvd24tcHJlcGFyZWQiLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChvbl9zaHV0ZG93bl9wcmVwYXJl ZCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXIpOworICAgICAg ICAgICAgICAgICBjc21fc3lzdGVtX2F0dGVtcHRfc3RvcCAobWFuYWdlci0+cHJpdi0+c3lzdGVt KTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBkZWZhdWx0OgorZGlmZiAtLWdp dCBhL2Npbm5hbW9uLXNlc3Npb24vY3NtLXN5c3RlbS5jIGIvY2lubmFtb24tc2Vzc2lvbi9jc20t c3lzdGVtLmMKK2luZGV4IGM2YmU3YjUuLmM0ZmE4ODYgMTAwNjQ0CistLS0gYS9jaW5uYW1vbi1z ZXNzaW9uL2NzbS1zeXN0ZW0uYworKysrIGIvY2lubmFtb24tc2Vzc2lvbi9jc20tc3lzdGVtLmMK K0BAIC0zMCw2ICszMCw3IEBACisgCisgZW51bSB7CisgICAgICAgICBSRVFVRVNUX0ZBSUxFRCA9 IDAsCisrICAgICAgICBTSFVURE9XTl9QUkVQQVJFRCwKKyAgICAgICAgIExBU1RfU0lHTkFMCisg fTsKKyAKK0BAIC01MCw2ICs1MSwxNyBAQCBjc21fc3lzdGVtX2RlZmF1bHRfaW5pdCAoQ3NtU3lz dGVtSW50ZXJmYWNlICppZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2Nj bG9zdXJlX21hcnNoYWxfVk9JRF9fUE9JTlRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHX1RZUEVfTk9ORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBHX1RZ UEVfUE9JTlRFUik7CisrCisrICAgICAgICBzaWduYWxzIFtTSFVURE9XTl9QUkVQQVJFRF0gPQor KyAgICAgICAgICAgICAgICBnX3NpZ25hbF9uZXcgKCJzaHV0ZG93bi1wcmVwYXJlZCIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NNX1RZUEVfU1lTVEVNLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT09MRUFOLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDEsIEdfVFlQRV9CT09MRUFOKTsKKyB9CisgCisgR1F1YXJrCitkaWZmIC0tZ2l0IGEv Y2lubmFtb24tc2Vzc2lvbi9jc20tc3lzdGVtZC5jIGIvY2lubmFtb24tc2Vzc2lvbi9jc20tc3lz dGVtZC5jCitpbmRleCBkYjNmZTg0Li5iZDZhNzBiIDEwMDY0NAorLS0tIGEvY2lubmFtb24tc2Vz c2lvbi9jc20tc3lzdGVtZC5jCisrKysgYi9jaW5uYW1vbi1zZXNzaW9uL2NzbS1zeXN0ZW1kLmMK K0BAIC02MSwxMCArNjEsMTggQEAgc3RydWN0IF9Dc21TeXN0ZW1kUHJpdmF0ZQorIAorICAgICAg ICAgR1NMaXN0ICAgICAgICAgICppbmhpYml0b3JzOworICAgICAgICAgZ2ludCAgICAgICAgICAg ICBpbmhpYml0X2ZkOworKyAgICAgICAgZ2ludCAgICAgICAgICAgICBzaHV0ZG93bl9pbmhpYml0 X2ZkOworKyAgICAgICAgZ2Jvb2xlYW4gICAgICAgICBwcmVwYXJlX2Zvcl9zaHV0ZG93bl9leHBl Y3RlZDsKKyB9OworIAorIHN0YXRpYyB2b2lkIGNzbV9zeXN0ZW1kX3N5c3RlbV9pbml0IChDc21T eXN0ZW1JbnRlcmZhY2UgKmlmYWNlKTsKKyAKKytzdGF0aWMgdm9pZCBzZF9wcm94eV9zaWduYWxf Y2IgKEdEQnVzUHJveHkgICpwcm94eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICpzZW5kZXJfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGdjaGFyICpzaWduYWxfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdWYXJpYW50ICAgICpwYXJhbWV0ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3BvaW50ZXIgICAgIHVzZXJfZGF0YSk7CisrCisgR19ERUZJTkVfVFlQRV9XSVRI X0NPREUgKENzbVN5c3RlbWQsIGNzbV9zeXN0ZW1kLCBHX1RZUEVfT0JKRUNULAorICAgICAgICAg ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UgKENTTV9UWVBFX1NZU1RFTSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc21fc3lz dGVtZF9zeXN0ZW1faW5pdCkpCitAQCAtOTIsNiArMTAwLDkgQEAgY3NtX3N5c3RlbWRfZmluYWxp emUgKEdPYmplY3QgKm9iamVjdCkKKyAgICAgICAgICAgICAgICAgZ19zbGlzdF9mcmVlX2Z1bGwg KHN5c3RlbWQtPnByaXYtPmluaGliaXRvcnMsIGdfZnJlZSk7CisgICAgICAgICB9CisgICAgICAg ICBkcm9wX3N5c3RlbV9pbmhpYml0b3IgKHN5c3RlbWQpOworKyAgICAgICAgaWYgKHN5c3RlbWQt PnByaXYtPnNodXRkb3duX2luaGliaXRfZmQgIT0gLTEpIHsKKysgICAgICAgICAgICAgICAgY2xv c2UgKHN5c3RlbWQtPnByaXYtPnNodXRkb3duX2luaGliaXRfZmQpOworKyAgICAgICAgfQorIAor ICAgICAgICAgR19PQkpFQ1RfQ0xBU1MgKGNzbV9zeXN0ZW1kX3BhcmVudF9jbGFzcyktPmZpbmFs aXplIChvYmplY3QpOworIH0KK0BAIC0xMjAsNiArMTMxLDcgQEAgY3NtX3N5c3RlbWRfaW5pdCAo Q3NtU3lzdGVtZCAqbWFuYWdlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENzbVN5c3RlbWRQcml2YXRlKTsKKyAKKyAgICAgICAgIG1hbmFn ZXItPnByaXYtPmluaGliaXRfZmQgPSAtMTsKKysgICAgICAgIG1hbmFnZXItPnByaXYtPnNodXRk b3duX2luaGliaXRfZmQgPSAtMTsKKyAKKyAgICAgICAgIGVycm9yID0gTlVMTDsKKyAKK0BAIC0x NDMsNiArMTU1LDkgQEAgY3NtX3N5c3RlbWRfaW5pdCAoQ3NtU3lzdGVtZCAqbWFuYWdlcikKKyAg ICAgICAgICAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gY29ubmVjdCB0byBz eXN0ZW1kOiAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci0+ bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7 CisrICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgZ19z aWduYWxfY29ubmVjdCAobWFuYWdlci0+cHJpdi0+c2RfcHJveHksICJnLXNpZ25hbCIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoc2RfcHJv eHlfc2lnbmFsX2NiKSwgbWFuYWdlcik7CisgICAgICAgICAgICAgICAgIH0KKyAKKyAgICAgICAg ICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGJ1cyk7CitAQCAtMTc0LDIxICsxODksNjIgQEAgY3Nt X3N5c3RlbWRfaW5pdCAoQ3NtU3lzdGVtZCAqbWFuYWdlcikKKyB9CisgCisgc3RhdGljIHZvaWQK Ky1yZXN0YXJ0X2RvbmUgKEdPYmplY3QgICAgICAqc291cmNlLAorLSAgICAgICAgICAgICAgR0Fz eW5jUmVzdWx0ICpyZXN1bHQsCistICAgICAgICAgICAgICBncG9pbnRlciAgICAgIHVzZXJfZGF0 YSkKKyt0YWtlX3NodXRkb3duX2luaGliaXRvciAoQ3NtU3lzdGVtZCAqbWFuYWdlcikKKyt7Cisr ICAgICAgICBHVmFyaWFudCAqcmVzOworKyAgICAgICAgR1VuaXhGRExpc3QgKmZkX2xpc3QgPSBO VUxMOworKyAgICAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICAgICAgICBnaW50IGlkeDsK KysKKysgICAgICAgIGlmIChtYW5hZ2VyLT5wcml2LT5zaHV0ZG93bl9pbmhpYml0X2ZkICE9IC0x KQorKyAgICAgICAgICAgICAgICByZXR1cm47CisrCisrICAgICAgICByZXMgPSBnX2RidXNfcHJv eHlfY2FsbF93aXRoX3VuaXhfZmRfbGlzdF9zeW5jIChtYW5hZ2VyLT5wcml2LT5zZF9wcm94eSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJJbmhpYml0IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3NzcykiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNo dXRkb3duIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdfZ2V0X3VzZXJfbmFtZSAoKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFbnN1cmluZyBzZXNzaW9uIGV4aXRzIGNsZWFubHkgYmVmb3JlIHNodXRkb3duIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJkZWxheSIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYSU5ULAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmZF9saXN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZlcnJvcik7CisrICAgICAgICBpZiAocmVzID09IE5VTEwpIHsKKysgICAgICAgICAg ICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGluaGliaXQgc2h1dGRvd246ICVzIiwgZXJyb3It Pm1lc3NhZ2UpOworKyAgICAgICAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKysgICAg ICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorKworKyAgICAgICAgZ192YXJpYW50X2dl dCAocmVzLCAiKGgpIiwgJmlkeCk7CisrICAgICAgICBtYW5hZ2VyLT5wcml2LT5zaHV0ZG93bl9p bmhpYml0X2ZkID0gZ191bml4X2ZkX2xpc3RfZ2V0IChmZF9saXN0LCBpZHgsICZlcnJvcik7Cisr ICAgICAgICBpZiAobWFuYWdlci0+cHJpdi0+c2h1dGRvd25faW5oaWJpdF9mZCA9PSAtMSkgewor KyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gcmVjZWl2ZSBzaHV0ZG93biBp bmhpYml0b3IgZmQ6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgICAgICAgICBnX2Vy cm9yX2ZyZWUgKGVycm9yKTsKKysgICAgICAgIH0KKysKKysgICAgICAgIGdfb2JqZWN0X3VucmVm IChmZF9saXN0KTsKKysgICAgICAgIGdfdmFyaWFudF91bnJlZiAocmVzKTsKKyt9CisrCisrc3Rh dGljIHZvaWQKKytyZWJvb3Rfb3JfcG93ZXJvZmZfZG9uZSAoR09iamVjdCAgICAgICpzb3VyY2Us CisrICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVzdWx0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgIHVzZXJfZGF0YSkKKyB7CistICAgICAg ICBHREJ1c1Byb3h5ICpwcm94eSA9IEdfREJVU19QUk9YWSAoc291cmNlKTsKKyAgICAgICAgIENz bVN5c3RlbWQgKm1hbmFnZXIgPSB1c2VyX2RhdGE7CisgICAgICAgICBHRXJyb3IgKmVycm9yID0g TlVMTDsKKyAgICAgICAgIEdWYXJpYW50ICpyZXM7CisgCistICAgICAgICByZXMgPSBnX2RidXNf cHJveHlfY2FsbF9maW5pc2ggKHByb3h5LCByZXN1bHQsICZlcnJvcik7CisrICAgICAgICByZXMg PSBnX2RidXNfcHJveHlfY2FsbF9maW5pc2ggKEdfREJVU19QUk9YWSAoc291cmNlKSwgcmVzdWx0 LCAmZXJyb3IpOworIAorLSAgICAgICAgaWYgKCFyZXMpIHsKKy0gICAgICAgICAgICAgICAgZ193 YXJuaW5nICgiVW5hYmxlIHRvIHJlc3RhcnQgc3lzdGVtIHZpYSBzeXN0ZW1kOiAlcyIsIGVycm9y LT5tZXNzYWdlKTsKKy0gICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lIChHX09C SkVDVCAobWFuYWdlciksICJyZXF1ZXN0LWZhaWxlZCIsIE5VTEwpOworKyAgICAgICAgaWYgKHJl cyA9PSBOVUxMKSB7CisrICAgICAgICAgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBzaHV0 ZG93bi9yZXN0YXJ0IHN5c3RlbSB2aWEgc3lzdGVtZDogJXMiLCBlcnJvci0+bWVzc2FnZSk7Cisg ICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICAgICAgICAgICAgICBt YW5hZ2VyLT5wcml2LT5wcmVwYXJlX2Zvcl9zaHV0ZG93bl9leHBlY3RlZCA9IEZBTFNFOworKyAg ICAgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUgKG1hbmFnZXIsICJzaHV0ZG93bi1w cmVwYXJlZCIsIEZBTFNFKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIGdf dmFyaWFudF91bnJlZiAocmVzKTsKKyAgICAgICAgIH0KK0BAIC0yMDEsMzcgKzI1NywyMCBAQCBj c21fc3lzdGVtZF9hdHRlbXB0X3Jlc3RhcnQgKENzbVN5c3RlbSAqc3lzdGVtKQorIAorICAgICAg ICAgQ3NtU3lzdGVtZCAqbWFuYWdlciA9IENTTV9TWVNURU1EIChzeXN0ZW0pOworIAorKyAgICAg ICAgZHJvcF9zeXN0ZW1faW5oaWJpdG9yIChtYW5hZ2VyKTsKKysgICAgICAgIHRha2Vfc2h1dGRv d25faW5oaWJpdG9yIChtYW5hZ2VyKTsKKysgICAgICAgIG1hbmFnZXItPnByaXYtPnByZXBhcmVf Zm9yX3NodXRkb3duX2V4cGVjdGVkID0gVFJVRTsKKysKKyAgICAgICAgIGdfZGJ1c19wcm94eV9j YWxsIChtYW5hZ2VyLT5wcml2LT5zZF9wcm94eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiUmVib290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgi KGIpIiwgVFJVRSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHX01BWElOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RhcnRfZG9uZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWJvb3Rfb3JfcG93ZXJvZmZfZG9uZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtYW5hZ2VyKTsKKyB9CisgCistc3RhdGljIHZvaWQKKy1zdG9wX2Rv bmUgKEdPYmplY3QgICAgICAqc291cmNlLAorLSAgICAgICAgICAgR0FzeW5jUmVzdWx0ICpyZXN1 bHQsCistICAgICAgICAgICBncG9pbnRlciAgICAgIHVzZXJfZGF0YSkKKy17CistICAgICAgICBH REJ1c1Byb3h5ICpwcm94eSA9IEdfREJVU19QUk9YWSAoc291cmNlKTsKKy0gICAgICAgIENzbVN5 c3RlbWQgKm1hbmFnZXIgPSB1c2VyX2RhdGE7CistICAgICAgICBHRXJyb3IgKmVycm9yID0gTlVM TDsKKy0gICAgICAgIEdWYXJpYW50ICpyZXM7CistCistICAgICAgICByZXMgPSBnX2RidXNfcHJv eHlfY2FsbF9maW5pc2ggKHByb3h5LCByZXN1bHQsICZlcnJvcik7CistCistICAgICAgICBpZiAo IXJlcykgeworLSAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gc3RvcCBzeXN0 ZW0gdmlhIHN5c3RlbWQ6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAgICAgICAgICAgICBn X3NpZ25hbF9lbWl0X2J5X25hbWUgKEdfT0JKRUNUIChtYW5hZ2VyKSwgInJlcXVlc3QtZmFpbGVk IiwgTlVMTCk7ICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAgICAgICBnX2Vycm9yX2ZyZWUg KGVycm9yKTsKKy0gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAg ICAgICBnX3ZhcmlhbnRfdW5yZWYgKHJlcyk7CistICAgICAgICB9CistfQorLQorIHN0YXRpYyB2 b2lkCisgY3NtX3N5c3RlbWRfYXR0ZW1wdF9zdG9wIChDc21TeXN0ZW0gKnN5c3RlbSkKKyB7CitA QCAtMjM5LDE2ICsyNzgsNDQgQEAgY3NtX3N5c3RlbWRfYXR0ZW1wdF9zdG9wIChDc21TeXN0ZW0g KnN5c3RlbSkKKyAKKyAgICAgICAgIENzbVN5c3RlbWQgKm1hbmFnZXIgPSBDU01fU1lTVEVNRCAo c3lzdGVtKTsKKyAKKysgICAgICAgIGRyb3Bfc3lzdGVtX2luaGliaXRvciAobWFuYWdlcik7Cisr ICAgICAgICB0YWtlX3NodXRkb3duX2luaGliaXRvciAobWFuYWdlcik7CisrICAgICAgICBtYW5h Z2VyLT5wcml2LT5wcmVwYXJlX2Zvcl9zaHV0ZG93bl9leHBlY3RlZCA9IFRSVUU7CisrCisgICAg ICAgICBnX2RidXNfcHJveHlfY2FsbCAobWFuYWdlci0+cHJpdi0+c2RfcHJveHksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlBvd2VyT2ZmIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3ZhcmlhbnRfbmV3ICgiKGIpIiwgVFJVRSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 b3BfZG9uZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICByZWJvb3Rfb3JfcG93ZXJvZmZf ZG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyKTsKKyB9CisgCisrc3Rh dGljIHZvaWQKKytzZF9wcm94eV9zaWduYWxfY2IgKEdEQnVzUHJveHkgICpwcm94eSwKKysgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzZW5kZXJfbmFtZSwKKysgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGdjaGFyICpzaWduYWxfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgIEdW YXJpYW50ICAgICpwYXJhbWV0ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg IHVzZXJfZGF0YSkKKyt7CisrICAgICAgICBDc21TeXN0ZW1kICptYW5hZ2VyID0gdXNlcl9kYXRh OworKyAgICAgICAgZ2Jvb2xlYW4gaXNfYWJvdXRfdG9fc2h1dGRvd247CisrCisrICAgICAgICBp ZiAoZ19zdHJjbXAwIChzaWduYWxfbmFtZSwgIlByZXBhcmVGb3JTaHV0ZG93biIpICE9IDApCisr ICAgICAgICAgICAgICAgIHJldHVybjsKKysKKysgICAgICAgIGdfdmFyaWFudF9nZXQgKHBhcmFt ZXRlcnMsICIoYikiLCAmaXNfYWJvdXRfdG9fc2h1dGRvd24pOworKyAgICAgICAgaWYgKCFpc19h Ym91dF90b19zaHV0ZG93bikKKysgICAgICAgICAgICAgICAgcmV0dXJuOworKworKyAgICAgICAg aWYgKG1hbmFnZXItPnByaXYtPnByZXBhcmVfZm9yX3NodXRkb3duX2V4cGVjdGVkKSB7CisrICAg ICAgICAgICAgICAgIGdfZGVidWcgKCJTaHV0ZG93biBzdWNjZXNzZnVsbHkgcHJlcGFyZWQiKTsK KysgICAgICAgICAgICAgICAgbWFuYWdlci0+cHJpdi0+cHJlcGFyZV9mb3Jfc2h1dGRvd25fZXhw ZWN0ZWQgPSBGQUxTRTsKKysgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lICht YW5hZ2VyLCAic2h1dGRvd24tcHJlcGFyZWQiLCBUUlVFKTsKKysgICAgICAgIH0KKyt9CisrCisg c3RhdGljIHZvaWQKKyBjc21fc3lzdGVtZF9zZXRfc2Vzc2lvbl9pZGxlIChDc21TeXN0ZW0gKnN5 c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgIGlzX2lkbGUp CgpkaWZmIC0tZ2l0IGEvY2lubmFtb24tc2Vzc2lvbi5zcGVjIGIvY2lubmFtb24tc2Vzc2lvbi5z cGVjCmluZGV4IDZlOWIzYzIuLjQ5Y2JiOTEgMTAwNjQ0Ci0tLSBhL2Npbm5hbW9uLXNlc3Npb24u c3BlYworKysgYi9jaW5uYW1vbi1zZXNzaW9uLnNwZWMKQEAgLTUsMjUgKzUsMTUgQEAKIFN1bW1h cnk6IENpbm5hbW9uIHNlc3Npb24gbWFuYWdlcgogTmFtZTogICAgY2lubmFtb24tc2Vzc2lvbgog VmVyc2lvbjogNi43LjRedW5zdGFibGUKLVJlbGVhc2U6IDElez9kaXN0fQorUmVsZWFzZTogJWF1 dG9yZWxlYXNlCiBMaWNlbnNlOiBHUEwtMi4wLW9yLWxhdGVyIEFORCBMR1BMLTIuMC1vci1sYXRl cgogVVJMOiAgICAgaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4bWludC8le25hbWV9CiBTb3VyY2Uw OiAldXJsL2FyY2hpdmUvJXt1cHN0cmVhbV92ZXJzaW9ufS8le25hbWV9LSV7dXBzdHJlYW1fdmVy c2lvbn0udGFyLmd6CitQYXRjaDA6ICAldXJsL3B1bGwvMjE1LnBhdGNoCiAKIEV4Y2x1ZGVBcmNo OiAle2l4ODZ9CiAKLVJlcXVpcmVzOiBzeXN0ZW0tbG9nb3MKLSMgTmVlZGVkIGZvciBjaW5uYW1v bi1zZXR0aW5ncy1kYWVtb24KLVJlcXVpcmVzOiBjaW5uYW1vbi1jb250cm9sLWNlbnRlci1maWxl c3lzdGVtCi0KLSMgcHVsbCBpbiBkYnVzLXgxMSwgc2VlIGJ1ZyAyMDk5MjQKLVJlcXVpcmVzOiBk YnVzLXgxMQotCi0jIGFuIGFydGlmaWNpYWwgcmVxdWlyZXMgdG8gbWFrZSBzdXJlIHdlIGdldCBk Y29uZiwgZm9yIG5vdwotUmVxdWlyZXM6IGRjb25mCi0KLVJlcXVpcmVzOiBjaW5uYW1vbi1kZXNr dG9wID49ICV7Y2lubmFtb25fZGVza3RvcF92ZXJzaW9ufQotCitCdWlsZFN5c3RlbTogICBtZXNv bgogQnVpbGRSZXF1aXJlczogcGtnY29uZmlnKGd0aystMy4wKSA+PSAzLjAuMAogQnVpbGRSZXF1 aXJlczogcGtnY29uZmlnKGdpby0yLjApCiBCdWlsZFJlcXVpcmVzOiBwa2djb25maWcoZ2xpYi0y LjApID49IDIuMzcuMwpAQCAtNDIsMTAgKzMyLDIxIEBAIEJ1aWxkUmVxdWlyZXM6IHBrZ2NvbmZp ZyhjaW5uYW1vbi1kZXNrdG9wKSA+PSAle2Npbm5hbW9uX2Rlc2t0b3BfdmVyc2lvbn0KIEJ1aWxk UmVxdWlyZXM6IHBrZ2NvbmZpZyhnaW8tdW5peC0yLjApCiBCdWlsZFJlcXVpcmVzOiBwa2djb25m aWcobGlic3lzdGVtZCkKIEJ1aWxkUmVxdWlyZXM6IHBrZ2NvbmZpZyhzeXN0ZW1kKQotQnVpbGRS ZXF1aXJlczogbWVzb24KIEJ1aWxkUmVxdWlyZXM6IGdjYwogQnVpbGRSZXF1aXJlczogcHl0aG9u My1wYWNrYWdpbmcKIAorUmVxdWlyZXM6IHN5c3RlbS1sb2dvcworIyBOZWVkZWQgZm9yIGNpbm5h bW9uLXNldHRpbmdzLWRhZW1vbgorUmVxdWlyZXM6IGNpbm5hbW9uLWNvbnRyb2wtY2VudGVyLWZp bGVzeXN0ZW0KKworIyBwdWxsIGluIGRidXMteDExLCBzZWUgYnVnIDIwOTkyNAorUmVxdWlyZXM6 IGRidXMteDExCisKKyMgYW4gYXJ0aWZpY2lhbCByZXF1aXJlcyB0byBtYWtlIHN1cmUgd2UgZ2V0 IGRjb25mLCBmb3Igbm93CitSZXF1aXJlczogZGNvbmYKKworUmVxdWlyZXM6IGNpbm5hbW9uLWRl c2t0b3AgPj0gJXtjaW5uYW1vbl9kZXNrdG9wX3ZlcnNpb259CisKICVkZXNjcmlwdGlvbgogQ2lu bmFtb24tc2Vzc2lvbiBtYW5hZ2VzIGEgQ2lubmFtb24gZGVza3RvcCBvciBHRE0gbG9naW4gc2Vz c2lvbi4gSXQgc3RhcnRzIHVwCiB0aGUgb3RoZXIgY29yZSBjb21wb25lbnRzIGFuZCBoYW5kbGVz IGxvZ291dCBhbmQgc2F2aW5nIHRoZSBzZXNzaW9uLgpAQCAtNTMsMTMgKzU0LDYgQEAgdGhlIG90 aGVyIGNvcmUgY29tcG9uZW50cyBhbmQgaGFuZGxlcyBsb2dvdXQgYW5kIHNhdmluZyB0aGUgc2Vz c2lvbi4KICVwcmVwCiAlYXV0b3NldHVwIC1wMSAtbiAle25hbWV9LSV7dXBzdHJlYW1fdmVyc2lv bn0KIAotJWJ1aWxkCi0lbWVzb24KLSVtZXNvbl9idWlsZAotCi0laW5zdGFsbAotJW1lc29uX2lu c3RhbGwKLQogJWZpbGVzCiAlZG9jIEFVVEhPUlMgUkVBRE1FCiAlZG9jICV7X21hbmRpcn0vbWFu Ki8qCkBAIC03NSw5OCArNjksNCBAQCB0aGUgb3RoZXIgY29yZSBjb21wb25lbnRzIGFuZCBoYW5k bGVzIGxvZ291dCBhbmQgc2F2aW5nIHRoZSBzZXNzaW9uLgogJXtfdXNlcnVuaXRkaXJ9LyoudGFy Z2V0CiAKICVjaGFuZ2Vsb2cKLSogU2F0IEF1ZyAxNSAyMDI2IExlaWdoIFNjb3R0IDxsZWlnaDEy M2xpbnV4QGdtYWlsLmNvbT4gLSA2LjcuNF51bnN0YWJsZS0xCi0tIFVwZGF0ZSB0byA2LjcuNC11 bnN0YWJsZQotCi0qIFdlZCBKdWwgMTUgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDYuNy4zXnVuc3RhYmxlLTIKLS0gUmVidWlsdCBm b3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQK LQotKiBTYXQgSnVuIDIwIDIwMjYgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29t PiAtIDYuNy4zXnVuc3RhYmxlLTEKLS0gVXBkYXRlIHRvIDYuNy4zLXVuc3RhYmxlCi0KLSogVHVl IEp1biAxNiAyMDI2IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2Ljcu Ml51bnN0YWJsZS0xCi0tIFVwZGF0ZSB0byA2LjcuMi11bnN0YWJsZQotCi0qIFdlZCBNYXkgMjcg MjAyNiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi43LjFedW5zdGFi bGUtMgotLSBBZGQgcGF0Y2ggdG8gcnVuIGdyYXBoaWNhbC1zZXNzaW9uIHRhcmdldAotCi0qIFNh dCBNYXkgMjMgMjAyNiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi43 LjFedW5zdGFibGUtMQotLSBVcGRhdGUgdG8gNi43LjEtdW5zdGFibGUKLQotKiBNb24gQXByIDEz IDIwMjYgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuNy4wXnVuc3Rh YmxlLTEKLS0gVXBkYXRlIHRvIDYuNy4wLXVuc3RhYmxlCi0KLSogV2VkIEZlYiAxMSAyMDI2IExl aWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjYuMy0xCi0tIFVwZGF0ZSB0 byA2LjYuMwotCi0qIFdlZCBGZWIgMTEgMjAyNiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBn bWFpbC5jb20+IC0gNi42LjItMQotLSBVcGRhdGUgdG8gNi42LjIKLQotKiBGcmkgSmFuIDE2IDIw MjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4g LSA2LjYuMS0zCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDRfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEphbiAxNiAyMDI2IEZlZG9yYSBSZWxlYXNl IEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNi42LjEtMgotLSBSZWJ1 aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQ0X01hc3NfUmVi dWlsZAotCi0qIFRodSBEZWMgMTEgMjAyNSBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFp bC5jb20+IC0gNi42LjEtMQotLSBVcGRhdGUgdG8gNi42LjEKLQotKiBUaHUgTm92IDI3IDIwMjUg TGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuNi4wLTEKLS0gVXBkYXRl IHRvIDYuNi4wCi0KLSogV2VkIFNlcCAwMyAyMDI1IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4 QGdtYWlsLmNvbT4gLSA2LjQuMC00Ci0tIEZpeCBzeXN0ZW1kIGluaGliaXRvciBpc3N1ZQotCi0q IFdlZCBKdWwgMjMgMjAyNSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9y YXByb2plY3Qub3JnPiAtIDYuNC4wLTMKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9q ZWN0Lm9yZy93aWtpL0ZlZG9yYV80M19NYXNzX1JlYnVpbGQKLQotKiBUaHUgSmFuIDE2IDIwMjUg RmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA2 LjQuMC0yCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRv cmFfNDJfTWFzc19SZWJ1aWxkCi0KLSogV2VkIE5vdiAyNyAyMDI0IExlaWdoIFNjb3R0IDxsZWln aDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjQuMC0xCi0tIFVwZGF0ZSB0byA2LjQuMAotCi0qIFdl ZCBBdWcgMjggMjAyNCBNaXJvc2xhdiBTdWNow70gPG1zdWNoeUByZWRoYXQuY29tPiAtIDYuMi4x LTIKLS0gY29udmVydCBsaWNlbnNlIHRvIFNQRFgKLQotKiBGcmkgSnVsIDE5IDIwMjQgTGVpZ2gg U2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuMi4xLTEKLS0gVXBkYXRlIHRvIDYu Mi4xCi0KLSogV2VkIEp1bCAxNyAyMDI0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxl bmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNi4yLjAtNAotLSBSZWJ1aWx0IGZvciBodHRwczovL2Zl ZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQxX01hc3NfUmVidWlsZAotCi0qIFNhdCBKdW4g MTUgMjAyNCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4yLjAtMwot LSBSZW1vdmUgcG9sa2l0LWdub21lIHJlcXVpcmVzCi0KLSogVGh1IEp1biAxMyAyMDI0IExlaWdo IFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjIuMC0yCi0tIEZpeCByZXN0YXJ0 L3NodXRkb3duCi0KLSogV2VkIEp1biAxMiAyMDI0IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4 QGdtYWlsLmNvbT4gLSA2LjIuMC0xCi0tIFVwZGF0ZSB0byA2LjIuMAotCi0qIFNhdCBNYXkgMDQg MjAyNCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjQtMQotLSBV cGRhdGUgdG8gNi4wLjQgcmVsZWFzZQotCi0qIFR1ZSBKYW4gMjMgMjAyNCBGZWRvcmEgUmVsZWFz ZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDYuMC4xLTUKLS0gUmVi dWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MF9NYXNzX1Jl YnVpbGQKLQotKiBGcmkgSmFuIDE5IDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA2LjAuMS00Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEph biAxMiAyMDI0IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjAuMS0z Ci0tIEFBZGQgYnVpbGRyZXF1aXJlcyBweXRob24zLXBhY2thZ2luZwotCi0qIFNhdCBKYW4gMDYg MjAyNCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjEtMgotLSBN YWtlIHN1cmUgd2F5bGFuZCBzZXNzaW9ucyBnZXQgYSBsb2dpbiBzaGVsbAotCi0qIFR1ZSBOb3Yg MjggMjAyMyBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjEtMQot LSBVcGRhdGUgdG8gNi4wLjEgcmVsZWFzZQotCi0qIFR1ZSBOb3YgMjggMjAyMyBMZWlnaCBTY290 dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjAtMwotLSBVbnNldCBzb21lIGVudmly b25tZW50IHZhcmlhYmxlcyBvbiBzeXN0ZW1kCi0KLSogV2VkIE5vdiAyMiAyMDIzIExlaWdoIFNj b3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjAuMC0yCi0tIEZpeCBnbGliIHdhcm5p bmcKLQotKiBTdW4gTm92IDE5IDIwMjMgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwu Y29tPiAtIDYuMC4wLTEKLS0gVXBkYXRlIHRvIDYuMC4wIHJlbGVhc2UKKyVhdXRvY2hhbmdlbG9n ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=