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: Miroslav Rezanina To: git-commits@fedoraproject.org Subject: [rpms/qemu] eln: * Mon Jun 29 2026 Miroslav Rezanina - 10.1.0-23 Date: Tue, 30 Jun 2026 15:09:04 GMT Message-ID: <178283214486.1.12847396152023937975.rpms-qemu-3177ce9841a3@fedoraproject.org> List-ID: X-Git-Repo: rpms/qemu X-Git-Branch: eln X-Git-Rev: 3177ce9841a33c732090ed8033497ae846e96ed0 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcWVtdQogICAgICAgICAgICBCcmFuY2ggOiBlbG4KICAgICAgICAgICAgQ29t bWl0IDogMzE3N2NlOTg0MWEzM2M3MzIwOTBlZDgwMzM0OTdhZTg0NmU5NmVkMAogICAgICAgICAg ICBBdXRob3IgOiBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5AcmVkaGF0LmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAyNi0wNi0zMFQxNzowNzo1NyswMjowMAogICAgICAgICAgICBTdGF0 cyAgOiArMTc2OTQvLTEgaW4gMTE0IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9xZW11L2MvMzE3N2NlOTg0MWEzM2M3MzIwOTBl ZDgwMzM0OTdhZTg0NmU5NmVkMD9icmFuY2g9ZWxuCgogICAgICAgICAgICBMb2c6CiAgICAgICAg ICAgICogTW9uIEp1biAyOSAyMDI2IE1pcm9zbGF2IFJlemFuaW5hIDxtcmV6YW5pbkByZWRoYXQu Y29tPiAtIDEwLjEuMC0yMwoKLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRyb2R1Y2UtaW9tbXVm ZF9iYWNrZW5kX2FsbG9jX3Zpby5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWJhY2tlbmRzLWlv bW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF9hbGxvY192ZGUucGF0Y2ggW1JIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4XQotIGt2bS1ody1hcm0tc21tdS1jb21tb24tRmFjdG9yLW91dC1jb21tb24taGVscGVyLWZ1 bmN0aW9uLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXUtYWRkLW1lbW9yeS1y ZWdpb25zLWFzLXByb3BlcnR5LWZvci1hbi1TTS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3 LWFybS1zbW11djMtRXh0cmFjdC1jb21tb24tZGVmaW5pdGlvbnMtdG8tc21tdXYzLWMucGF0Y2gg W1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5 NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdS1jb21tb24tTWFrZS1pb21tdS1vcHMtcGFy dC1vZi1TTU1VU3RhdGUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUludHJvZHVjZS1zbW11djMtYWNjZWwtZGV2aWNlLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVM LTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBr dm0taHctYXJtLXNtbXV2My1hY2NlbC1Jbml0aWFsaXplLXNoYXJlZC1zeXN0ZW0tYWRkcmVzcy5w YXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LXBjaS1wY2ktTW92ZS1wY2lfaW5pdF9idXNfbWFz dGVyLWFmdGVyLWFkZGluZy1kZXYucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1wY2ktRXhw b3J0LXBjaV9kZXZpY2VfZ2V0X2lvbW11X2J1c19kZXZmbi1hbmQtcmV0LnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KLSBrdm0taHctcGNpLXBjaS1BZGQtb3B0aW9uYWwtc3VwcG9ydHNfYWRkcmVzc19zcGFj ZS1jYWxsYi5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03 Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LXBjaS1icmlkZ2UtcGNpX2V4cGFu ZGVyX2JyaWRnZS1Nb3ZlLVRZUEVfUFhCX1BDSUUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1o dy1hcm0tc21tdXYzLWFjY2VsLVJlc3RyaWN0LWFjY2VsZXJhdGVkLVNNTVV2My10by12LnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1JbXBsZW1lbnQtZ2V0X3Zpb21tdV9j YXAtY2FsbGJhY2sucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJI RUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1wY2ktSW50cm9kdWNlLXBj aV9kZXZpY2VfZ2V0X3Zpb21tdV9mbGFncy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAg UkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LXBj aS1JbnRyb2R1Y2UtcGNpX2RldmljZV9nZXRfaG9zdF9pb21tdV9xdWlya3MucGF0Y2ggW1JIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWNvbW1vbi1EZWZpbmUtU1RFLUNELWZpZWxkcy12 aWEtcmVnaXN0LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1jb21tb24t QWRkLU5TQ0ZHLWJpdC1kZWZpbml0aW9uLWZvci1DRC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3Zt LWh3LWFybS1zbW11djMtY29tbW9uLUFkZC1TVEUtQ0Qtc2V0LWhlbHBlcnMtZm9yLXJlcGUucGF0 Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1zZXQtdW5zZXRf aW9tbXVfZGV2aWNlLWNhbGxiLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2 My1wcm9wYWdhdGUtc21tdXYzX2NtZHFfY29uc3VtZS1lcnJvcnMtdC5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCi0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLW5lc3RlZC12U1RFLWluc3RhbGwtdW5p bnN0YWwucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUluc3Rh bGwtU01NVXYzLUdCUEEtYmFzZWQtaHdwdC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAg UkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LXBj aS1wY2ktSW50cm9kdWNlLWEtY2FsbGJhY2stdG8tcmV0cmlldmUtdGhlLU1TSS0ucGF0Y2ggW1JI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1nZXRfbXNpX2Rp cmVjdF9ncGEtY2FsLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXZpcnQtU2V0LW1z aS1ncGEtcHJvcGVydHkucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUFkZC1zdXBwb3J0LXRvLWlzc3VlLWludmFsaWRhdGlvLnBhdGNoIFtSSEVMLTE0MjQ2NSBS SEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0K LSBrdm0taHctYXJtLXNtbXV2My1Jbml0aWFsaXplLUlELXJlZ2lzdGVycy1lYXJseS1kdXJpbmct ci5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBS SEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtR2V0LWhvc3Qt U01NVXYzLWh3LWluZm8tYW5kLXZhbGkucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1wY2kt aG9zdC1ncGV4LUFsbG93LXRvLWdlbmVyYXRlLXByZXNlcnZlLWJvb3QtY29uLnBhdGNoIFtSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OF0KLSBrdm0taHctYXJtLXZpcnQtU2V0LVBDSS1wcmVzZXJ2ZV9jb25maWctZm9yLWFj Y2VsLVNNTVV2My5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLXRlc3RzLXF0ZXN0LWJpb3MtdGFi bGVzLXRlc3QtUHJlcGFyZS1mb3ItSU9SVC1yZXZpc28ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2 bS1ody1hcm0tdmlydC1hY3BpLWJ1aWxkLUFkZC1JT1JULVJNUi1yZWdpb25zLXRvLWhhbmRsLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tdGVzdHMtcXRlc3QtYmlvcy10YWJsZXMtdGVzdC1VcGRh dGUtSU9SVC1ibG9icy1hZnRlci5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11 djMtQmxvY2stbWlncmF0aW9uLXdoZW4tYWNjZWwtaXMtZW5hYmxlZC5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCi0ga3ZtLWh3LWFybS1zbW11djMtQWRkLWFjY2VsLXByb3BlcnR5LWZvci1TTU1VdjMtZGV2 aWNlLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0 IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtYS1w cm9wZXJ0eS10by1zcGVjaWZ5LVJJTC1zdS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAg UkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFy bS1zbW11djMtYWNjZWwtQWRkLXN1cHBvcnQtZm9yLUFUUy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0g a3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXByb3BlcnR5LXRvLXNwZWNpZnktT0FTLWJpdHMu cGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1iYWNrZW5kcy1pb21tdWZkLVJldHJpZXZlLVBBU0lE LXdpZHRoLWZyb20taW9tbXVmZF9iLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tYmFja2VuZHMt aW9tbXVmZC1BZGQtZ2V0X3Bhc2lkX2luZm8tY2FsbGJhY2sucGF0Y2ggW1JIRUwtMTQyNDY1IFJI RUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQot IGt2bS1ody1wY2ktQWRkLWhlbHBlci10by1pbnNlcnQtUENJZS1leHRlbmRlZC1jYXBhYmlsaXR5 LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctcGNpLUZhY3Rvci1vdXQtY29tbW9uLVBBU0lE LWNhcGFiaWxpdHktaW5pdGlhbGl6YS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhF TC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LXZmaW8t cGNpLVN5bnRoZXNpemUtUEFTSUQtY2FwYWJpbGl0eS1mb3ItdmZpby1wY2kucGF0Y2ggW1JIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLU1ha2UtU3Vic3RyZWFtSUQtc3VwcG9y dC1jb25maWd1LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tc3lzdGVtLW1lbW9yeS1GYWN0b3It YWRkcmVzc19zcGFjZV9pc19pby1vdXQucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS10YXJnZXQt aTM4Ni1hcmNoX21lbW9yeV9tYXBwaW5nLVVzZS1hZGRyZXNzX3NwYWNlX21lLnBhdGNoIFtSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OF0KLSBrdm0taHctczM5MHgtc2NscC1Vc2UtYWRkcmVzc19zcGFjZV9tZW1vcnlfaXNf aW8taW4tc2NscC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLXN5c3RlbS1waHlzbWVtLVJlbW92 ZS1jcHVfcGh5c2ljYWxfbWVtb3J5X2lzX2lvLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tYmFj a2VuZHMtaW9tbXVmZC1JbnRyb2R1Y2UtaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zldi5wYXRjaCBb UkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2 IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXZpb21tdS1mcmVlLWhl bHBlci5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5 NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWxsb2Nh dGUtdkVWRU5UUS1mb3ItYWNjZWxlcmF0ZWQucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkw IFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1h cm0tc21tdXYzLUludHJvZHVjZS1hLWhlbHBlci1mdW5jdGlvbi1mb3ItZXZlbnQtLnBhdGNoIFtS SEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYg UkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1SZWFkLWFuZC1wcm9wYWdhdGUt aG9zdC12SU9NTVUtZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYg UkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtQ29y cmVjdC1TTU1VRU4tZmllbGQtbmFtZS1pbi1DUjAucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1o dy1hcm0tc21tdXYzLUZpeC1DRkdJX0NELWhhbmRsaW5nLXdoZW4tc3RhZ2UtMS1pcy11LnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGVjay1BVFMtY29tcGF0 aWJpbGl0eS1iZXR3ZWVuLS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1 OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMt YWNjZWwtQ2hhbmdlLWF0cy1wcm9wZXJ0eS10eXBlLXRvLU9uT2YucGF0Y2ggW1JIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUNoYW5nZS1yaWwtcHJvcGVydHktdHlwZS10by1P bk9mLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0 IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tcWRldi1BZGQtYS1Tc2lkU2l6ZU1vZGUtcHJv cGVydHktdHlwZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwt Q2hhbmdlLXNzaWRzaXplLXByb3BlcnR5LXR5cGUtdG8ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2 bS1xZGV2LUFkZC1hbi1PYXNNb2RlLXByb3BlcnR5LXR5cGUucGF0Y2ggW1JIRUwtMTQyNDY1IFJI RUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQot IGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUNoYW5nZS1vYXMtcHJvcGVydHktdHlwZS10by1PYXNN LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tcWVtdS1vcHRpb25zLmh4LURvY3VtZW50LWFybS1z bW11djMtZGV2aWNlLXMtYWNjZWwtcC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhF TC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1z bW11djMtSGF2ZS1zbW11djNfYWNjZWxfaW5pdC10YWtlLWFuLUVycm9yLXAucGF0Y2ggW1JIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLVVwZGF0ZS1BVEMtaW52YWxpZGF0aW9uLWNoZWNr LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1JbXByb3ZlLWFjY2VsLVNN TVV2My11c2FnZS1kb2N1bWVudGF0aS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhF TC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1z bW11djMtYWNjZWwtQWRkLWhlbHBlci1mb3ItcmVzb2x2aW5nLWF1dG8tcGEucGF0Y2ggW1JIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZv ci1hdHMucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUltcGxl bWVudC1hdXRvLXZhbHVlLWZvci1yaWwucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0t c21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1zc2lkc2l6LnBhdGNoIFtSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0by12YWx1ZS1m b3Itb2FzLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1TZXQtZGVmYXVs dC1hdHMtcmlsLXNzaWRzaXplLW9hcy10by1hdS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLXFl bXUtb3B0aW9ucy5oeC1TdXBwb3J0LWF1dG8tZm9yLWFjY2VsLVNNTVV2My1wcm9wZXIucGF0Y2gg W1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5 NiBSSEVMLTczNzk4XQotIGt2bS1ody1wY2ktcGNpLUVuZm9yY2UtcGNpX3NldHVwX2lvbW11X3Bl cl9idXMtaXMtY2FsbGVkLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5 NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tdmZpby1pb21tdWZkLUZv cmNlLWNyZWF0aW5nLW5lc3RpbmctcGFyZW50LUhXUFQucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2 bS1ody12ZmlvLWlvbW11ZmQtQ29udHJvbC1kaXJ0eS10cmFja2luZy1mb3ItbmVzdGluZy1wLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9i YWNrZW5kX2dldF9kZXZpY2VfaS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWlvbW11ZmQtUmVu YW1lLWFsbC10aGUtaWRldi1hbmQtaWRldmMtdmFyaWFibGVzLXRvLWgucGF0Y2ggW1JIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4XQotIGt2bS1iYWNrZW5kcy1pb21tdWZkLVVwZGF0ZS1pb21tdWZkX2JhY2tlbmRfYWxsb2Nf dmlvbW11LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRyb2R1 Y2UtaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3Xy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWJh Y2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF92aW9tbXVfbW0ucGF0Y2gg W1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5 NiBSSEVMLTczNzk4XQotIGt2bS1zeXN0ZW0taW9tbXVmZC1SZW1vdmUtdW51c2VkLXZpb21tdS1w b2ludGVyLWZyb20tSU9NLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5 NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1h Y2NlbC1JbnRyb2R1Y2UtQ01EUVYtb3BzLWludGVyZmFjZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0g a3ZtLWh3LWFybS1zbW11djMtQXZvaWQtaW5jbHVkaW5nLUNPTkZJR19ERVZJQ0VTLWluLWh3LWgu cGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtQWRkLVRlZ3Jh MjQxLUNNRFFWLW9wcy1iYWNrZW5kLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNt bXV2My1hY2NlbC1XaXJlLUNNRFFWLW9wcy1pbnRvLWFjY2VsLWxpZmVjeS5wYXRjaCBbUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OThdCi0ga3ZtLWh3LWFybS12aXJ0LVVzZS1zdG9yZWQtU01NVXYzLWRldmljZS1saXN0LWZv ci1JT1JULWIucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYt UHJvYmUtaG9zdC1UZWdyYTI0MS1DTURRVi1zdXBwLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2 MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0t aHctYXJtLXRlZ3JhMjQxLWNtZHF2LUltcGxlbWVudC1DTURRVi1pbml0LnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KLSBrdm0taHctYXJtLXZpcnQtTGluay1TTU1VdjMtQ01EUVYtcmVzb3VyY2VzLXRvLXBs YXRmb3JtLS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03 Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1J bXBsZW1lbnQtQ01EUVYtdklPTU1VLWFsbG9jLWYucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1o dy1hcm0tdGVncmEyNDEtY21kcXYtbW1hcC1ob3N0LVZJTlRGLVBhZ2UwLWZvci1DTURRLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUVtdWxhdGUtQ01EUS1W LUNvbmZpZy1yZWdpb24ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tdGVncmEyNDEt Y21kcXYtRW11bGF0ZS1WQ01EUS1yZWdpc3Rlci1yZWFkcy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0g a3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1FbXVsYXRlLVZDTURRLXJlZ2lzdGVyLXdyaXRlcy5w YXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1BbGxvY2F0ZS1I Vy1WQ01EUXMtb25jZS1jb25maWcucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tdGVn cmEyNDEtY21kcXYtUm91dGUtYWxsb2NhdGVkLVZDTURRLVBhZ2UwLWFjLnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KLSBrdm0tbWVtb3J5LUFsbG93LVJBTS1kZXZpY2UtcmVnaW9ucy10by1za2lwLUlPTU1V LW1hcHBpbi5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03 Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1V c2UtbW1hcC1kLWhvc3QtVklOVEYtcGFnZTAtZm8ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1o dy1hcm0tc21tdXYzLWFjY2VsLUludHJvZHVjZS1jb21tb24taGVscGVyLWZvci12ZXZlLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVJlYWQtYW5kLXByb3Bh Z2F0ZS1UZWdyYTI0MS1DTS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1 OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS10ZWdyYTI0 MS1jbWRxdi1Jbml0aWFsaXplLXJlZ2lzdGVyLXN0YXRlLW9uLXIucGF0Y2ggW1JIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 XQotIGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtTGltaXQtcXVldWUtc2l6ZS1iYXNlZC1vbi1i YWNrLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0 IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNtbXV2My1BZGQtcGVyLWRldmlj ZS1pZGVudGlmaWVyLXByb3BlcnR5LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0taHctYXJtLXNt bXV2My1hY2NlbC1JbnRyb2R1Y2UtaGVscGVyLXRvLXF1ZXJ5LUNNRFFWLS5wYXRjaCBbUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OThdCi0ga3ZtLWh3LWFybS12aXJ0LWFjcGktQWR2ZXJ0aXNlLVRlZ3JhMjQxLUNNRFFWLW5v ZGVzLWluLUQucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQotIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUVu Zm9yY2UtdmlvbW11LWFzc29jaWF0aW9uLXdoZW4tLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2 MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0t aHctYXJtLXRlZ3JhMjQxLWNtZHF2LURvY3VtZW50LXRoZS1DTURRVi1kZXNpZ24tYW5kLS5wYXRj aCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OThdCi0ga3ZtLWh3LWFybS1zbW11djMtQWRkLWNtZHF2LXByb3BlcnR5LWZv ci1TTU1VdjMtZGV2aWNlLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5 NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KLSBrdm0tcmgtYWFyY2g2NC1yaC1k ZXZpY2VzLm1hay1BZGQtQ09ORklHX1RFR1JBMjQxX0NNRFFWLnBhdGNoIFtSSEVMLTE0MjQ2NSBS SEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0K LSBSZXNvbHZlczogUkhFTC0xNDI0NjUKICAoW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBk ZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMpCi0gUmVzb2x2ZXM6IFJIRUwt MTYwMTkwCiAgKE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFV VE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMykKLSBSZXNvbHZlczogUkhFTC0xNjM1OTYKICAoTlZJ RElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVz IC0gUkhFTCAxMC4zKQotIFJlc29sdmVzOiBSSEVMLTczNzk0CiAgKE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYz IC0gUkhFTCAxMC4xKQotIFJlc29sdmVzOiBSSEVMLTczNzk2CiAgKE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEpCi0gUmVz b2x2ZXM6IFJIRUwtNzM3OTgKICAoTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBz dXBwb3J0IC0gUkhFTCAxMC4xKQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCA4NTVjY2NmLi5iMjEyMjM3IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTMyLDMgKzMyLDcgQEAKIC9xZW11LTkuMS4wLnRhci54egogL3FlbXUt MTAuMC4wLnRhci54egogL3FlbXUtMTAuMS4wLnRhci54egorL0lPUlQKKy9JT1JULml0c19vZmYK Ky9JT1JULnNtbXV2My1kZXYKKy9JT1JULnNtbXV2My1sZWdhY3kKCmRpZmYgLS1naXQgYS9rdm0t YmFja2VuZHMtaW9tbXVmZC1BZGQtZ2V0X3Bhc2lkX2luZm8tY2FsbGJhY2sucGF0Y2ggYi9rdm0t YmFja2VuZHMtaW9tbXVmZC1BZGQtZ2V0X3Bhc2lkX2luZm8tY2FsbGJhY2sucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzYTg5OAotLS0gL2Rldi9udWxsCisrKyBi L2t2bS1iYWNrZW5kcy1pb21tdWZkLUFkZC1nZXRfcGFzaWRfaW5mby1jYWxsYmFjay5wYXRjaApA QCAtMCwwICsxLDExMSBAQAorRnJvbSBlNjE0YWVmMmFkMTgxY2M4MGMxNjg4ZWJiZjU2OGQ1ZWVk MTkzZTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA1 ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDQxLzExMV0gYmFja2VuZHMvaW9tbXVmZDogQWRkIGdl dF9wYXNpZF9pbmZvKCkgY2FsbGJhY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1N ZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENN RFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBM ZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFu QHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0MS8xMTFdIDNjNDM2NzAyZjRhYzZkODgxOWJhOTk5 Yjc1MDNhOThlZmI3NzBmZWMgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRw czovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK1RoZSBnZXRfcGFz aWRfaW5mbyBjYWxsYmFjayByZXRyaWV2ZXMgUEFTSUQgY2FwYWJpbGl0eSBpbmZvcm1hdGlvbgor d2hlbiB0aGUgSG9zdElPTU1VRGV2aWNlIGJhY2tlbmQgc3VwcG9ydHMgaXQuIEN1cnJlbnRseSwg b25seSB0aGUKK0xpbnV4IElPTU1VRkQgYmFja2VuZCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9u LgorCitUaGlzIHdpbGwgYmUgdXNlZCBieSBhIHN1YnNlcXVlbnQgcGF0Y2ggdG8gc3ludGhlc2l6 ZSBhIFBBU0lECitjYXBhYmlsaXR5IGZvciB2ZmlvLXBjaSBkZXZpY2VzIGJlaGluZCBhIHZJT01N VSB0aGF0IHN1cHBvcnRzIFBBU0lELgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8 am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8u b3JnPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Np Z25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgor UmV2aWV3ZWQtYnk6IFlpIExpdSA8eWkubC5saXVAaW50ZWwuY29tPgorTWVzc2FnZS1pZDogMjAy NjAxMjYxMDQzNDIuMjUzOTY1LTM0LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2Zm LWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCAyMmFmZDlkODY1Y2IwNWQ5M2M5MmM4ZmNhN2EyM2UxZWI4NzllODg5 KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0t CisgYmFja2VuZHMvaW9tbXVmZC5jICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysr KysrCisgaW5jbHVkZS9zeXN0ZW0vaG9zdF9pb21tdV9kZXZpY2UuaCB8IDE3ICsrKysrKysrKysr KysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg YS9iYWNrZW5kcy9pb21tdWZkLmMgYi9iYWNrZW5kcy9pb21tdWZkLmMKK2luZGV4IDYzODFmOTY2 NGIuLmYxNzA3ZWFkYzYgMTAwNjQ0CistLS0gYS9iYWNrZW5kcy9pb21tdWZkLmMKKysrKyBiL2Jh Y2tlbmRzL2lvbW11ZmQuYworQEAgLTUzOCwxMSArNTM4LDI4IEBAIHN0YXRpYyBpbnQgaGlvZF9p b21tdWZkX2dldF9jYXAoSG9zdElPTU1VRGV2aWNlICpoaW9kLCBpbnQgY2FwLCBFcnJvciAqKmVy cnApCisgICAgIH0KKyB9CisgCisrc3RhdGljIGJvb2wgaGlvZF9pb21tdWZkX2dldF9wYXNpZF9p bmZvKEhvc3RJT01NVURldmljZSAqaGlvZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFzaWRJbmZvICpwYXNpZF9pbmZvKQorK3sKKysgICAgSG9zdElPTU1VRGV2 aWNlQ2FwcyAqY2FwcyA9ICZoaW9kLT5jYXBzOworKworKyAgICBpZiAoIWNhcHMtPm1heF9wYXNp ZF9sb2cyKSB7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgZ19hc3Nl cnQocGFzaWRfaW5mbyk7CisrICAgIHBhc2lkX2luZm8tPmV4ZWNfcGVybSA9IChjYXBzLT5od19j YXBzICYgSU9NTVVfSFdfQ0FQX1BDSV9QQVNJRF9FWEVDKTsKKysgICAgcGFzaWRfaW5mby0+cHJp dl9tb2QgPSAoY2Fwcy0+aHdfY2FwcyAmIElPTU1VX0hXX0NBUF9QQ0lfUEFTSURfUFJJVik7Cisr ICAgIHBhc2lkX2luZm8tPm1heF9wYXNpZF9sb2cyID0gY2Fwcy0+bWF4X3Bhc2lkX2xvZzI7Cisr ICAgIHJldHVybiB0cnVlOworK30KKysKKyBzdGF0aWMgdm9pZCBoaW9kX2lvbW11ZmRfY2xhc3Nf aW5pdChPYmplY3RDbGFzcyAqb2MsIGNvbnN0IHZvaWQgKmRhdGEpCisgeworICAgICBIb3N0SU9N TVVEZXZpY2VDbGFzcyAqaGlvYyA9IEhPU1RfSU9NTVVfREVWSUNFX0NMQVNTKG9jKTsKKyAKKyAg ICAgaGlvYy0+Z2V0X2NhcCA9IGhpb2RfaW9tbXVmZF9nZXRfY2FwOworKyAgICBoaW9jLT5nZXRf cGFzaWRfaW5mbyA9IGhpb2RfaW9tbXVmZF9nZXRfcGFzaWRfaW5mbzsKKyB9OworIAorIHN0YXRp YyBjb25zdCBUeXBlSW5mbyB0eXBlc1tdID0geworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVt L2hvc3RfaW9tbXVfZGV2aWNlLmggYi9pbmNsdWRlL3N5c3RlbS9ob3N0X2lvbW11X2RldmljZS5o CitpbmRleCBiZmIyYjYwNDc4Li5mMDAwMzAxNTgzIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9zeXN0 ZW0vaG9zdF9pb21tdV9kZXZpY2UuaAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vaG9zdF9pb21tdV9k ZXZpY2UuaAorQEAgLTU5LDYgKzU5LDEyIEBAIHN0cnVjdCBIb3N0SU9NTVVEZXZpY2UgeworICNl bmRpZgorIH07CisgCisrdHlwZWRlZiBzdHJ1Y3QgUGFzaWRJbmZvIHsKKysgICAgYm9vbCBleGVj X3Blcm07CisrICAgIGJvb2wgcHJpdl9tb2Q7CisrICAgIHVpbnQ4X3QgbWF4X3Bhc2lkX2xvZzI7 CisrfSBQYXNpZEluZm87CisrCisgLyoqCisgICogc3RydWN0IEhvc3RJT01NVURldmljZUNsYXNz IC0gVGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBob3N0IElPTU1VIGRldmljZXMuCisgICoKK0BAIC0x MTYsNiArMTIyLDE3IEBAIHN0cnVjdCBIb3N0SU9NTVVEZXZpY2VDbGFzcyB7CisgICAgICAqIEBo aW9kOiBoYW5kbGUgdG8gdGhlIGhvc3QgSU9NTVUgZGV2aWNlCisgICAgICAqLworICAgICB1aW50 NjRfdCAoKmdldF9wYWdlX3NpemVfbWFzaykoSG9zdElPTU1VRGV2aWNlICpoaW9kKTsKKysgICAg LyoqCisrICAgICAqIEBnZXRfcGFzaWRfaW5mbzogUmV0dXJuIHRoZSBQQVNJRCBpbmZvcm1hdGlv biBhc3NvY2lhdGVkIHdpdGggdGhlCisrICAgICAqIEBoaW9kIEhvc3QgSU9NTVUgZGV2aWNlLgor KyAgICAgKgorKyAgICAgKiBAaGlvZDogaGFuZGxlIHRvIHRoZSBob3N0IElPTU1VIGRldmljZQor KyAgICAgKgorKyAgICAgKiBAcGFzaWRfaW5mbzogSWYgc3VjY2VzcywgcmV0dXJucyB0aGUgUEFT SUQgcmVsYXRlZCBpbmZvcm1hdGlvbi4KKysgICAgICoKKysgICAgICogUmV0dXJuczogdHJ1ZSBv biBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlLgorKyAgICAgKi8KKysgICAgYm9vbCAoKmdldF9w YXNpZF9pbmZvKShIb3N0SU9NTVVEZXZpY2UgKmhpb2QsIFBhc2lkSW5mbyAqcGFzaWRfaW5mbyk7 CisgfTsKKyAKKyAvKgorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1iYWNrZW5kcy1p b21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdfLnBhdGNoIGIva3ZtLWJh Y2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF9hbGxvY19od18ucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVlZTcyNAotLS0gL2Rldi9udWxs CisrKyBiL2t2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxs b2NfaHdfLnBhdGNoCkBAIC0wLDAgKzEsMTI0IEBACitGcm9tIGIwMjQxODRkYTYzZWQ1NTI4NzNj ZWI3ZjVhZWJmZmZlMTFkNGNmNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWNv bGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitEYXRlOiBUdWUsIDkgSnVuIDIwMjYgMTI6 MjU6MjQgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAwODEvMTExXSBiYWNrZW5kcy9pb21tdWZkOiBJ bnRyb2R1Y2UKKyBpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdfcXVldWUKK01JTUUtVmVyc2lvbjog MS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2Vs ZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1B Y2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6 IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs4MS8xMTFdIDNkYjE3 OTE0ZWVkY2NlMjVkZGJkNmYwMDhlNzNmYzNjMDI3MGU0NTAgKGVhdWdlcjEvY2VudG9zLXFlbXUt a3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTcz Nzk4CisKK0NvbmZsaWN0czogY29udGV4dHVhbCBjb25mbGljdCBpbiBiYWNrZW5kcy90cmFjZS1l dmVudHMgc2luY2UKK3dlIGRvbid0IGhhdmUgaWd2bSB0cmFjZSBwb2ludHMKKworQWRkIGEgaGVs cGVyIHRvIGFsbG9jYXRlIGFuIGlvbW11ZmQgYmFja2VkIEhXIHF1ZXVlIGZvciBhIHZJT01NVS4K KworV2hpbGUgYXQgaXQsIGRlZmluZSBhIHN0cnVjdCBJT01NVUZESFdxdWV1ZSBmb3IgdXNlIGJ5 IHZlbmRvcgoraW1wbGVtZW50YXRpb25zLgorCitTaWduZWQtb2ZmLWJ5OiBOaWNvbGluIENoZW4g PG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5j b20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlh LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorTWVz c2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTQtc2tvbG90aHVtdGhvQG52aWRpYS5jb20K K1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDQxZGFlNDYzZjQ4N2E1ZDk0ODIyYTA2OTA0M2I3 Njc1NDA1ZDAzNjUpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CistLS0KKyBiYWNrZW5kcy9pb21tdWZkLmMgICAgICAgfCAzMSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCisgYmFja2VuZHMvdHJhY2UtZXZlbnRzICAgIHwgIDEgKworIGlu Y2x1ZGUvc3lzdGVtL2lvbW11ZmQuaCB8IDExICsrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2Vk LCA0MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9iYWNrZW5kcy9pb21tdWZkLmMgYi9i YWNrZW5kcy9pb21tdWZkLmMKK2luZGV4IDYyMWI2MTE1Y2IuLjBlMTFkMjcyMmEgMTAwNjQ0Cist LS0gYS9iYWNrZW5kcy9pb21tdWZkLmMKKysrKyBiL2JhY2tlbmRzL2lvbW11ZmQuYworQEAgLTU0 NSw2ICs1NDUsMzcgQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmV2ZW50cShJT01NVUZE QmFja2VuZCAqYmUsIHVpbnQzMl90IHZpb21tdV9pZCwKKyAgICAgcmV0dXJuIHRydWU7CisgfQor IAorK2Jvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3X3F1ZXVlKElPTU1VRkRCYWNrZW5kICpi ZSwgdWludDMyX3QgdmlvbW11X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IHF1ZXVlX3R5cGUsIHVpbnQzMl90IGluZGV4LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHIsIHVpbnQ2NF90IGxlbmd0aCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X2h3X3F1ZXVl X2lkLCBFcnJvciAqKmVycnApCisreworKyAgICBpbnQgcmV0OworKyAgICBzdHJ1Y3QgaW9tbXVf aHdfcXVldWVfYWxsb2MgYWxsb2NfaHdfcXVldWUgPSB7CisrICAgICAgICAuc2l6ZSA9IHNpemVv ZihhbGxvY19od19xdWV1ZSksCisrICAgICAgICAuZmxhZ3MgPSAwLAorKyAgICAgICAgLnZpb21t dV9pZCA9IHZpb21tdV9pZCwKKysgICAgICAgIC50eXBlID0gcXVldWVfdHlwZSwKKysgICAgICAg IC5pbmRleCA9IGluZGV4LAorKyAgICAgICAgLm5lc3RpbmdfcGFyZW50X2lvdmEgPSBhZGRyLAor KyAgICAgICAgLmxlbmd0aCA9IGxlbmd0aCwKKysgICAgfTsKKysKKysgICAgcmV0ID0gaW9jdGwo YmUtPmZkLCBJT01NVV9IV19RVUVVRV9BTExPQywgJmFsbG9jX2h3X3F1ZXVlKTsKKysKKysgICAg dHJhY2VfaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3X3F1ZXVlKGJlLT5mZCwgdmlvbW11X2lkLCBx dWV1ZV90eXBlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5k ZXgsIGFkZHIsIGxlbmd0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsbG9jX2h3X3F1ZXVlLm91dF9od19xdWV1ZV9pZCwgcmV0KTsKKysgICAgaWYgKHJldCkg eworKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgIklPTU1VX0hXX1FVRVVF X0FMTE9DIGZhaWxlZCIpOworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAg IGdfYXNzZXJ0KG91dF9od19xdWV1ZV9pZCk7CisrICAgICpvdXRfaHdfcXVldWVfaWQgPSBhbGxv Y19od19xdWV1ZS5vdXRfaHdfcXVldWVfaWQ7CisrICAgIHJldHVybiB0cnVlOworK30KKysKKyBi b29sIGhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNl SU9NTVVGRCAqaGlvZGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGh3cHRfaWQsIEVycm9yICoqZXJycCkKKyB7CitkaWZmIC0tZ2l0IGEvYmFj a2VuZHMvdHJhY2UtZXZlbnRzIGIvYmFja2VuZHMvdHJhY2UtZXZlbnRzCitpbmRleCA5MzRjZGQ4 MTA3Li5hODg5OTY0ODhkIDEwMDY0NAorLS0tIGEvYmFja2VuZHMvdHJhY2UtZXZlbnRzCisrKysg Yi9iYWNrZW5kcy90cmFjZS1ldmVudHMKK0BAIC0yNCwzICsyNCw0IEBAIGlvbW11ZmRfYmFja2Vu ZF9pbnZhbGlkYXRlX2NhY2hlKGludCBpb21tdWZkLCB1aW50MzJfdCBpZCwgdWludDMyX3QgZGF0 YV90eXBlLCB1CisgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdShpbnQgaW9tbXVmZCwgdWlu dDMyX3QgZGV2X2lkLCB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBod3B0X2lkLCB1aW50NjRfdCBk YXRhX3B0ciwgdWludDMyX3QgZGF0YV9sZW4sIHVpbnQzMl90IHZpb21tdV9pZCwgaW50IHJldCkg IiBpb21tdWZkPSVkIHR5cGU9JXUgZGV2X2lkPSV1IGh3cHRfaWQ9JXUgZGF0YV9wdHI9MHglIlBS SXg2NCIgZGF0YV9sZW49MHgleCB2aW9tbXVfaWQ9JXUgKCVkKSIKKyBpb21tdWZkX2JhY2tlbmRf YWxsb2NfdmRldihpbnQgaW9tbXVmZCwgdWludDMyX3QgZGV2X2lkLCB1aW50MzJfdCB2aW9tbXVf aWQsIHVpbnQ2NF90IHZpcnRfaWQsIHVpbnQzMl90IHZkZXZfaWQsIGludCByZXQpICIgaW9tbXVm ZD0lZCBkZXZfaWQ9JXUgdmlvbW11X2lkPSV1IHZpcnRfaWQ9MHglIlBSSXg2NCIgdmRldl9pZD0l dSAoJWQpIgorIGlvbW11ZmRfdmlvbW11X2FsbG9jX2V2ZW50cShpbnQgaW9tbXVmZCwgdWludDMy X3QgdmlvbW11X2lkLCB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCB2ZXZlbnRxX2lkLCB1aW50MzJf dCB2ZXZlbnRxX2ZkLCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgdmlvbW11X2lkPSV1IHR5cGU9JXUg dmV2ZW50cV9pZD0ldSB2ZXZlbnRxX2ZkPSV1ICglZCkiCisraW9tbXVmZF9iYWNrZW5kX2FsbG9j X2h3X3F1ZXVlKGludCBpb21tdWZkLCB1aW50MzJfdCB2aW9tbXVfaWQsIHVpbnQzMl90IHF1ZXVl X3R5cGUsIHVpbnQzMl90IGluZGV4LCB1aW50NjRfdCBhZGRyLCB1aW50NjRfdCBzaXplLCB1aW50 MzJfdCBxdWV1ZV9pZCwgaW50IHJldCkgIiBpb21tdWZkPSVkIHZpb21tdV9pZD0ldSBxdWV1ZV90 eXBlPSV1IGluZGV4PSV1IGFkZHI9MHglIlBSSXg2NCIgc2l6ZT0weCUiUFJJeDY0IiBxdWV1ZV9p ZD0ldSAoJWQpIgorZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaCBiL2luY2x1 ZGUvc3lzdGVtL2lvbW11ZmQuaAoraW5kZXggNzgzZDEyNWVlNC4uYTUzOGExM2I4MCAxMDA2NDQK Ky0tLSBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vaW9t bXVmZC5oCitAQCAtNjUsNiArNjUsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgSU9NTVVGRFZldmVudHEg eworICAgICBib29sIGV2ZW50X3N0YXJ0OyAvKiBUcnVlIGFmdGVyIGZpcnN0IHZhbGlkIGV2ZW50 OyBjbGVhcmVkIG9uIG92ZXJmbG93ICovCisgfSBJT01NVUZEVmV2ZW50cTsKKyAKKysvKiBIVyBx dWV1ZSBvYmplY3QgZm9yIGEgdklPTU1VLXNwZWNpZmljIEhXLWFjY2VsZXJhdGVkIHF1ZXVlICov CisrdHlwZWRlZiBzdHJ1Y3QgSU9NTVVGREhXcXVldWUgeworKyAgICBJT01NVUZEVmlvbW11ICp2 aW9tbXU7CisrICAgIHVpbnQzMl90IGh3X3F1ZXVlX2lkOworK30gSU9NTVVGREhXcXVldWU7Cisr CisgYm9vbCBpb21tdWZkX2JhY2tlbmRfY29ubmVjdChJT01NVUZEQmFja2VuZCAqYmUsIEVycm9y ICoqZXJycCk7Cisgdm9pZCBpb21tdWZkX2JhY2tlbmRfZGlzY29ubmVjdChJT01NVUZEQmFja2Vu ZCAqYmUpOworIAorQEAgLTEwMSw2ICsxMDcsMTEgQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxs b2NfdmV2ZW50cShJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IHZpb21tdV9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmV2ZW50cV9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmV2ZW50 cV9mZCwgRXJyb3IgKiplcnJwKTsKKyAKKytib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY19od19x dWV1ZShJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IHZpb21tdV9pZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBxdWV1ZV90eXBlLCB1aW50MzJfdCBp bmRleCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhZGRy LCB1aW50NjRfdCBsZW5ndGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKm91dF9od19xdWV1ZV9pZCwgRXJyb3IgKiplcnJwKTsKKysKKyBib29sIGlvbW11 ZmRfYmFja2VuZF9zZXRfZGlydHlfdHJhY2tpbmcoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50MzJf dCBod3B0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHN0YXJ0LCBFcnJvciAqKmVycnApOworIGJvb2wgaW9tbXVmZF9iYWNrZW5kX2dldF9kaXJ0eV9i aXRtYXAoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCBod3B0X2lkLAorLS0gCisyLjUyLjAK KwoKZGlmZiAtLWdpdCBhL2t2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2Jh Y2tlbmRfYWxsb2NfdmRlLnBhdGNoIGIva3ZtLWJhY2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlv bW11ZmRfYmFja2VuZF9hbGxvY192ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uOTMxZDkzZAotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1iYWNrZW5kcy1pb21tdWZk LUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxsb2NfdmRlLnBhdGNoCkBAIC0wLDAgKzEsMTIy IEBACitGcm9tIDFlZjQ4N2ZiZWFiNDY1ZWM2ZWQ0ZDRmNDI4NmI0NjVlN2U3OTdjMjQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5j b20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFU Q0ggMDAyLzExMV0gYmFja2VuZHMvaW9tbXVmZDogSW50cm9kdWNlCisgaW9tbXVmZF9iYWNrZW5k X2FsbG9jX3ZkZXYKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0 aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6 IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQK K1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQg UkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNs Z0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+ CitSSC1Db21taXQ6IFsyLzExMV0gYjA2M2NjODk1OWJiNDNmNGMzMTEyYjRlYzE5MzI5YzVkY2Ix ZTU1NiAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0 bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworQWRkIGEgaGVscGVyIHRvIGFsbG9jYXRl IGFuIGlvbW11ZmQgZGV2aWNlJ3MgdmlydHVhbCBkZXZpY2UgKGluIHRoZSB1c2VyCitzcGFjZSkg cGVyIGEgdmlvbW11IGluc3RhbmNlLgorCitXaGlsZSBhdCBpdCwgaW50cm9kdWNlIGEgc3RydWN0 IElPTU1VRkRWZGV2IGZvciBsYXRlciB1c2UgYnkgdmVuZG9yCitJT01NVSBpbXBsZW1lbnRhdGlv bnMuCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4K K1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQt b2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxzaGFtZWVyYWxpLmtvbG90aHVtLnRob2RpQGh1YXdl aS5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBo dWF3ZWkuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8u b3JnPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jl dmlld2VkLWJ5OiBZaSBMaXUgPHlpLmwubGl1QGludGVsLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYw MTI2MTA0MzQyLjI1Mzk2NS0zLXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5 OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCBjZDQzOGJmOWJkZjc1Y2M3MjUxZmZiOTY4ZWE1OWU2NDBmZTA5NmU2KQor U2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisg YmFja2VuZHMvaW9tbXVmZC5jICAgICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysr CisgYmFja2VuZHMvdHJhY2UtZXZlbnRzICAgIHwgIDEgKworIGluY2x1ZGUvc3lzdGVtL2lvbW11 ZmQuaCB8IDEyICsrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvYmFja2VuZHMvaW9tbXVmZC5jIGIvYmFja2VuZHMvaW9tbXVmZC5j CitpbmRleCAzZDRhNGFlNzM2Li5lNjhhMmM5MzRmIDEwMDY0NAorLS0tIGEvYmFja2VuZHMvaW9t bXVmZC5jCisrKysgYi9iYWNrZW5kcy9pb21tdWZkLmMKK0BAIC00NzIsNiArNDcyLDMzIEBAIGJv b2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdShJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQz Ml90IGRldl9pZCwKKyAgICAgcmV0dXJuIHRydWU7CisgfQorIAorK2Jvb2wgaW9tbXVmZF9iYWNr ZW5kX2FsbG9jX3ZkZXYoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCBkZXZfaWQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2aW9tbXVfaWQsIHVpbnQ2NF90 IHZpcnRfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0 X3ZkZXZfaWQsIEVycm9yICoqZXJycCkKKyt7CisrICAgIGludCByZXQ7CisrICAgIHN0cnVjdCBp b21tdV92ZGV2aWNlX2FsbG9jIGFsbG9jX3ZkZXYgPSB7CisrICAgICAgICAuc2l6ZSA9IHNpemVv ZihhbGxvY192ZGV2KSwKKysgICAgICAgIC52aW9tbXVfaWQgPSB2aW9tbXVfaWQsCisrICAgICAg ICAuZGV2X2lkID0gZGV2X2lkLAorKyAgICAgICAgLnZpcnRfaWQgPSB2aXJ0X2lkLAorKyAgICB9 OworKworKyAgICByZXQgPSBpb2N0bChiZS0+ZmQsIElPTU1VX1ZERVZJQ0VfQUxMT0MsICZhbGxv Y192ZGV2KTsKKysKKysgICAgdHJhY2VfaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZkZXYoYmUtPmZk LCBkZXZfaWQsIHZpb21tdV9pZCwgdmlydF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxsb2NfdmRldi5vdXRfdmRldmljZV9pZCwgcmV0KTsKKysKKysgICAgaWYg KHJldCkgeworKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgIklPTU1VX1ZE RVZJQ0VfQUxMT0MgZmFpbGVkIik7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysK KysgICAgZ19hc3NlcnQob3V0X3ZkZXZfaWQpOworKyAgICAqb3V0X3ZkZXZfaWQgPSBhbGxvY192 ZGV2Lm91dF92ZGV2aWNlX2lkOworKyAgICByZXR1cm4gdHJ1ZTsKKyt9CisrCisgYm9vbCBob3N0 X2lvbW11X2RldmljZV9pb21tdWZkX2F0dGFjaF9od3B0KEhvc3RJT01NVURldmljZUlPTU1VRkQg KmlkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IGh3cHRfaWQsIEVycm9yICoqZXJycCkKKyB7CitkaWZmIC0tZ2l0IGEvYmFja2VuZHMvdHJh Y2UtZXZlbnRzIGIvYmFja2VuZHMvdHJhY2UtZXZlbnRzCitpbmRleCAwMWMyZDliZGU5Li44NDA4 ZGM4NzAxIDEwMDY0NAorLS0tIGEvYmFja2VuZHMvdHJhY2UtZXZlbnRzCisrKysgYi9iYWNrZW5k cy90cmFjZS1ldmVudHMKK0BAIC0yMiwzICsyMiw0IEBAIGlvbW11ZmRfYmFja2VuZF9zZXRfZGly dHkoaW50IGlvbW11ZmQsIHVpbnQzMl90IGh3cHRfaWQsIGJvb2wgc3RhcnQsIGludCByZXQpICIK KyBpb21tdWZkX2JhY2tlbmRfZ2V0X2RpcnR5X2JpdG1hcChpbnQgaW9tbXVmZCwgdWludDMyX3Qg aHdwdF9pZCwgdWludDY0X3QgaW92YSwgdWludDY0X3Qgc2l6ZSwgdWludDY0X3QgcGFnZV9zaXpl LCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgaHdwdD0ldSBpb3ZhPTB4JSJQUkl4NjQiIHNpemU9MHgl IlBSSXg2NCIgcGFnZV9zaXplPTB4JSJQUkl4NjQiICglZCkiCisgaW9tbXVmZF9iYWNrZW5kX2lu dmFsaWRhdGVfY2FjaGUoaW50IGlvbW11ZmQsIHVpbnQzMl90IGlkLCB1aW50MzJfdCBkYXRhX3R5 cGUsIHVpbnQzMl90IGVudHJ5X2xlbiwgdWludDMyX3QgZW50cnlfbnVtLCB1aW50MzJfdCBkb25l X251bSwgdWludDY0X3QgZGF0YV9wdHIsIGludCByZXQpICIgaW9tbXVmZD0lZCBpZD0ldSBkYXRh X3R5cGU9JXUgZW50cnlfbGVuPSV1IGVudHJ5X251bT0ldSBkb25lX251bT0ldSBkYXRhX3B0cj0w eCUiUFJJeDY0IiAoJWQpIgorIGlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaW50IGlvbW11 ZmQsIHVpbnQzMl90IGRldl9pZCwgdWludDMyX3QgdHlwZSwgdWludDMyX3QgaHdwdF9pZCwgdWlu dDMyX3QgdmlvbW11X2lkLCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgdHlwZT0ldSBkZXZfaWQ9JXUg aHdwdF9pZD0ldSB2aW9tbXVfaWQ9JXUgKCVkKSIKKytpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmRl dihpbnQgaW9tbXVmZCwgdWludDMyX3QgZGV2X2lkLCB1aW50MzJfdCB2aW9tbXVfaWQsIHVpbnQ2 NF90IHZpcnRfaWQsIHVpbnQzMl90IHZkZXZfaWQsIGludCByZXQpICIgaW9tbXVmZD0lZCBkZXZf aWQ9JXUgdmlvbW11X2lkPSV1IHZpcnRfaWQ9MHglIlBSSXg2NCIgdmRldl9pZD0ldSAoJWQpIgor ZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaCBiL2luY2x1ZGUvc3lzdGVtL2lv bW11ZmQuaAoraW5kZXggMTFiODQxM2MzZi4uNDFlMjE2YzY3NyAxMDA2NDQKKy0tLSBhL2luY2x1 ZGUvc3lzdGVtL2lvbW11ZmQuaAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oCitAQCAt NDgsNiArNDgsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgSU9NTVVGRFZpb21tdSB7CisgICAgIHVpbnQz Ml90IHZpb21tdV9pZDsgIC8qIHZpcnR1YWwgSU9NTVUgSUQgb2YgYWxsb2NhdGVkIG9iamVjdCAq LworIH0gSU9NTVVGRFZpb21tdTsKKyAKKysvKgorKyAqIFZpcnR1YWwgZGV2aWNlIG9iamVjdCBm b3IgYSBwaHlzaWNhbCBkZXZpY2UgYmluZCB0byBhIHZJT01NVS4KKysgKi8KKyt0eXBlZGVmIHN0 cnVjdCBJT01NVUZEVmRldiB7CisrICAgIHVpbnQzMl90IHZkZXZpY2VfaWQ7IC8qIG9iamVjdCBo YW5kbGUgZm9yIHZEZXZpY2UgKi8KKysgICAgdWludDMyX3QgdmlydF9pZDsgIC8qIHZpcnR1YWwg ZGV2aWNlIElEICovCisrfSBJT01NVUZEVmRldjsKKysKKyBib29sIGlvbW11ZmRfYmFja2VuZF9j b25uZWN0KElPTU1VRkRCYWNrZW5kICpiZSwgRXJyb3IgKiplcnJwKTsKKyB2b2lkIGlvbW11ZmRf YmFja2VuZF9kaXNjb25uZWN0KElPTU1VRkRCYWNrZW5kICpiZSk7CisgCitAQCAtNzMsNiArODEs MTAgQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11KElPTU1VRkRCYWNrZW5kICpi ZSwgdWludDMyX3QgZGV2X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCB2aW9tbXVfdHlwZSwgdWludDMyX3QgaHdwdF9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm91dF9od3B0LCBFcnJvciAqKmVycnApOworIAor K2Jvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZkZXYoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50 MzJfdCBkZXZfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2 aW9tbXVfaWQsIHVpbnQ2NF90IHZpcnRfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqb3V0X3ZkZXZfaWQsIEVycm9yICoqZXJycCk7CisrCisgYm9vbCBpb21t dWZkX2JhY2tlbmRfc2V0X2RpcnR5X3RyYWNraW5nKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMy X3QgaHdwdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCBzdGFydCwgRXJyb3IgKiplcnJwKTsKKyBib29sIGlvbW11ZmRfYmFja2VuZF9nZXRfZGlydHlf Yml0bWFwKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgaHdwdF9pZCwKKy0tIAorMi41Mi4w CisKCmRpZmYgLS1naXQgYS9rdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRyb2R1Y2UtaW9tbXVmZF9i YWNrZW5kX2FsbG9jX3Zldi5wYXRjaCBiL2t2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1p b21tdWZkX2JhY2tlbmRfYWxsb2NfdmV2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmVmZmYzZDEKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0tYmFja2VuZHMtaW9tbXVm ZC1JbnRyb2R1Y2UtaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zldi5wYXRjaApAQCAtMCwwICsxLDEy NyBAQAorRnJvbSAzMGRhN2Y4YWY3YzZkMWUyNDBjYWIyNzExN2U0YjA2MTQzYmFiNGM0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEu Y29tPgorRGF0ZTogRnJpLCA2IE1hciAyMDI2IDA5OjAxOjExICswMDAwCitTdWJqZWN0OiBbUEFU Q0ggMDUwLzExMV0gYmFja2VuZHMvaW9tbXVmZDogSW50cm9kdWNlCisgaW9tbXVmZF9iYWNrZW5k X2FsbG9jX3ZldmVudHEKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgt QXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVl c3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBv cnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIg PGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5j b20+CitSSC1Db21taXQ6IFs1MC8xMTFdIGVkN2QxZDc2Yjk1ZGNiZDRkZjliYWI4MWVkN2M2NjBi MmVkYTA5NGMgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhh dC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk2CisKK0NvbmZsaWN0czogY29udGV4dHVh bCBpbiBiYWNrZW5kcy90cmFjZS1ldmVudHMgYmVjYXVzZSB3ZSBkb24ndAorICAgICAgICAgICBo YXZlIElHTSB0cmFjZSBwb2ludHMgZG93bnN0cmVhbQorCitBZGQgYSBuZXcgaGVscGVyIGZvciBJ T01NVV9WRVZFTlRRX0FMTE9DIGlvY3RsIHRvIGFsbG9jYXRlIGEgdmlydHVhbCBldmVudAorcXVl dWUgKHZFVkVOVFEpIGZvciBhIHZJT01NVSBvYmplY3QuCisKK1NpZ25lZC1vZmYtYnk6IE5pY29s aW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxu aWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5j b20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmll d2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitT aWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4K K01lc3NhZ2UtaWQ6IDIwMjYwMjI2MDg0NDU2LjExMjE0Mi0yLXNrb2xvdGh1bXRob0BudmlkaWEu Y29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5v cmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwODg1Y2Q1NTA0ZGZkYmQ1MzFhMWZjMGUz ZTQyMWQzYzk5MzRiMDNhKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorLS0tCisgYmFja2VuZHMvaW9tbXVmZC5jICAgICAgIHwgMzEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKworIGJhY2tlbmRzL3RyYWNlLWV2ZW50cyAgICB8ICAxICsK KyBpbmNsdWRlL3N5c3RlbS9pb21tdWZkLmggfCAxNCArKysrKysrKysrKysrKworIDMgZmlsZXMg Y2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYmFja2VuZHMvaW9tbXVm ZC5jIGIvYmFja2VuZHMvaW9tbXVmZC5jCitpbmRleCBmMTcwN2VhZGM2Li41YjkxOWU0YmU5IDEw MDY0NAorLS0tIGEvYmFja2VuZHMvaW9tbXVmZC5jCisrKysgYi9iYWNrZW5kcy9pb21tdWZkLmMK K0BAIC01MDMsNiArNTAzLDM3IEBAIGJvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZkZXYoSU9N TVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCBkZXZfaWQsCisgICAgIHJldHVybiB0cnVlOworIH0K KyAKKytib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY192ZXZlbnRxKElPTU1VRkRCYWNrZW5kICpi ZSwgdWludDMyX3QgdmlvbW11X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgdHlwZSwgdWludDMyX3QgZGVwdGgsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X3ZldmVudHFfaWQsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X3ZldmVudHFfZmQsIEVycm9yICoqZXJy cCkKKyt7CisrICAgIGludCByZXQ7CisrICAgIHN0cnVjdCBpb21tdV92ZXZlbnRxX2FsbG9jIGFs bG9jX3ZldmVudHEgPSB7CisrICAgICAgICAuc2l6ZSA9IHNpemVvZihhbGxvY192ZXZlbnRxKSwK KysgICAgICAgIC5mbGFncyA9IDAsCisrICAgICAgICAudHlwZSA9IHR5cGUsCisrICAgICAgICAu dmV2ZW50cV9kZXB0aCA9IGRlcHRoLAorKyAgICAgICAgLnZpb21tdV9pZCA9IHZpb21tdV9pZCwK KysgICAgfTsKKysKKysgICAgcmV0ID0gaW9jdGwoYmUtPmZkLCBJT01NVV9WRVZFTlRRX0FMTE9D LCAmYWxsb2NfdmV2ZW50cSk7CisrCisrICAgIHRyYWNlX2lvbW11ZmRfdmlvbW11X2FsbG9jX2V2 ZW50cShiZS0+ZmQsIHZpb21tdV9pZCwgdHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsbG9jX3ZldmVudHEub3V0X3ZldmVudHFfaWQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY192ZXZlbnRxLm91dF92ZXZlbnRxX2ZkLCBy ZXQpOworKyAgICBpZiAocmV0KSB7CisrICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVy cm5vLCAiSU9NTVVfVkVWRU5UUV9BTExPQyBmYWlsZWQiKTsKKysgICAgICAgIHJldHVybiBmYWxz ZTsKKysgICAgfQorKworKyAgICBnX2Fzc2VydChvdXRfdmV2ZW50cV9pZCk7CisrICAgIGdfYXNz ZXJ0KG91dF92ZXZlbnRxX2ZkKTsKKysgICAgKm91dF92ZXZlbnRxX2lkID0gYWxsb2NfdmV2ZW50 cS5vdXRfdmV2ZW50cV9pZDsKKysgICAgKm91dF92ZXZlbnRxX2ZkID0gYWxsb2NfdmV2ZW50cS5v dXRfdmV2ZW50cV9mZDsKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworIGJvb2wgaG9zdF9pb21t dV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBo d3B0X2lkLCBFcnJvciAqKmVycnApCisgeworZGlmZiAtLWdpdCBhL2JhY2tlbmRzL3RyYWNlLWV2 ZW50cyBiL2JhY2tlbmRzL3RyYWNlLWV2ZW50cworaW5kZXggODQwOGRjODcwMS4uNWFmYTdhNDBi ZSAxMDA2NDQKKy0tLSBhL2JhY2tlbmRzL3RyYWNlLWV2ZW50cworKysrIGIvYmFja2VuZHMvdHJh Y2UtZXZlbnRzCitAQCAtMjMsMyArMjMsNCBAQCBpb21tdWZkX2JhY2tlbmRfZ2V0X2RpcnR5X2Jp dG1hcChpbnQgaW9tbXVmZCwgdWludDMyX3QgaHdwdF9pZCwgdWludDY0X3QgaW92YSwgdQorIGlv bW11ZmRfYmFja2VuZF9pbnZhbGlkYXRlX2NhY2hlKGludCBpb21tdWZkLCB1aW50MzJfdCBpZCwg dWludDMyX3QgZGF0YV90eXBlLCB1aW50MzJfdCBlbnRyeV9sZW4sIHVpbnQzMl90IGVudHJ5X251 bSwgdWludDMyX3QgZG9uZV9udW0sIHVpbnQ2NF90IGRhdGFfcHRyLCBpbnQgcmV0KSAiIGlvbW11 ZmQ9JWQgaWQ9JXUgZGF0YV90eXBlPSV1IGVudHJ5X2xlbj0ldSBlbnRyeV9udW09JXUgZG9uZV9u dW09JXUgZGF0YV9wdHI9MHglIlBSSXg2NCIgKCVkKSIKKyBpb21tdWZkX2JhY2tlbmRfYWxsb2Nf dmlvbW11KGludCBpb21tdWZkLCB1aW50MzJfdCBkZXZfaWQsIHVpbnQzMl90IHR5cGUsIHVpbnQz Ml90IGh3cHRfaWQsIHVpbnQzMl90IHZpb21tdV9pZCwgaW50IHJldCkgIiBpb21tdWZkPSVkIHR5 cGU9JXUgZGV2X2lkPSV1IGh3cHRfaWQ9JXUgdmlvbW11X2lkPSV1ICglZCkiCisgaW9tbXVmZF9i YWNrZW5kX2FsbG9jX3ZkZXYoaW50IGlvbW11ZmQsIHVpbnQzMl90IGRldl9pZCwgdWludDMyX3Qg dmlvbW11X2lkLCB1aW50NjRfdCB2aXJ0X2lkLCB1aW50MzJfdCB2ZGV2X2lkLCBpbnQgcmV0KSAi IGlvbW11ZmQ9JWQgZGV2X2lkPSV1IHZpb21tdV9pZD0ldSB2aXJ0X2lkPTB4JSJQUkl4NjQiIHZk ZXZfaWQ9JXUgKCVkKSIKKytpb21tdWZkX3Zpb21tdV9hbGxvY19ldmVudHEoaW50IGlvbW11ZmQs IHVpbnQzMl90IHZpb21tdV9pZCwgdWludDMyX3QgdHlwZSwgdWludDMyX3QgdmV2ZW50cV9pZCwg dWludDMyX3QgdmV2ZW50cV9mZCwgaW50IHJldCkgIiBpb21tdWZkPSVkIHZpb21tdV9pZD0ldSB0 eXBlPSV1IHZldmVudHFfaWQ9JXUgdmV2ZW50cV9mZD0ldSAoJWQpIgorZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvc3lzdGVtL2lvbW11ZmQuaCBiL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAoraW5kZXgg YWE3OGJmMWUxZC4uMjVkYTc1NDQzNCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvc3lzdGVtL2lvbW11 ZmQuaAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oCitAQCAtNTYsNiArNTYsMTUgQEAg dHlwZWRlZiBzdHJ1Y3QgSU9NTVVGRFZkZXYgeworICAgICB1aW50MzJfdCB2aXJ0X2lkOyAgLyog dmlydHVhbCBkZXZpY2UgSUQgKi8KKyB9IElPTU1VRkRWZGV2OworIAorKy8qIFZpcnR1YWwgZXZl bnQgcXVldWUgaW50ZXJmYWNlIGZvciBhIHZJT01NVSAqLworK3R5cGVkZWYgc3RydWN0IElPTU1V RkRWZXZlbnRxIHsKKysgICAgSU9NTVVGRFZpb21tdSAqdmlvbW11OworKyAgICB1aW50MzJfdCB2 ZXZlbnRxX2lkOworKyAgICB1aW50MzJfdCB2ZXZlbnRxX2ZkOworKyAgICB1aW50MzJfdCBsYXN0 X2V2ZW50X3NlcTsgLyogU2VxdWVuY2UgbnVtYmVyIG9mIGxhc3QgcHJvY2Vzc2VkIGV2ZW50ICov CisrICAgIGJvb2wgZXZlbnRfc3RhcnQ7IC8qIFRydWUgYWZ0ZXIgZmlyc3QgdmFsaWQgZXZlbnQ7 IGNsZWFyZWQgb24gb3ZlcmZsb3cgKi8KKyt9IElPTU1VRkRWZXZlbnRxOworKworIGJvb2wgaW9t bXVmZF9iYWNrZW5kX2Nvbm5lY3QoSU9NTVVGREJhY2tlbmQgKmJlLCBFcnJvciAqKmVycnApOwor IHZvaWQgaW9tbXVmZF9iYWNrZW5kX2Rpc2Nvbm5lY3QoSU9NTVVGREJhY2tlbmQgKmJlKTsKKyAK K0BAIC04Niw2ICs5NSwxMSBAQCBib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY192ZGV2KElPTU1V RkRCYWNrZW5kICpiZSwgdWludDMyX3QgZGV2X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgdmlvbW11X2lkLCB1aW50NjRfdCB2aXJ0X2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm91dF92ZGV2X2lkLCBFcnJvciAqKmVy cnApOworIAorK2Jvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZldmVudHEoSU9NTVVGREJhY2tl bmQgKmJlLCB1aW50MzJfdCB2aW9tbXVfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBkZXB0aCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmV2ZW50cV9pZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmV2ZW50cV9mZCwgRXJyb3Ig KiplcnJwKTsKKysKKyBib29sIGlvbW11ZmRfYmFja2VuZF9zZXRfZGlydHlfdHJhY2tpbmcoSU9N TVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCBod3B0X2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIHN0YXJ0LCBFcnJvciAqKmVycnApOworIGJvb2wgaW9t bXVmZF9iYWNrZW5kX2dldF9kaXJ0eV9iaXRtYXAoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50MzJf dCBod3B0X2lkLAorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1iYWNrZW5kcy1pb21t dWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvLnBhdGNoIGIva3ZtLWJhY2tl bmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW8ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk0MTE5OAotLS0gL2Rldi9udWxsCisr KyBiL2t2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxsb2Nf dmlvLnBhdGNoCkBAIC0wLDAgKzEsMTIyIEBACitGcm9tIGNlMzY0ZjkyMDcxYjYwZjdjYjRhMDRi NjlmNmY2YTljN2MwMjU3ZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWNvbGlu IENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMy OjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDAxLzExMV0gYmFja2VuZHMvaW9tbXVmZDogSW50 cm9kdWNlCisgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdQorTUlNRS1WZXJzaW9uOiAxLjAK K0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0 ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2Vk LWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2 aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzEvMTExXSBhMTgyODJhMjdh YjkzMzliYzIxOGM3Yzc3NmFjMDUyNGY5NTczNjY5IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkK KworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NAor CitBZGQgYSBoZWxwZXIgdG8gYWxsb2NhdGUgYSB2aW9tbXUgb2JqZWN0LgorCitBbHNvIGludHJv ZHVjZSBhIHN0cnVjdCBJT01NVUZEVmlvbW11IHRoYXQgY2FuIGJlIHVzZWQgbGF0ZXIgYnkgdmVu ZG9yCitJT01NVSBpbXBsZW1lbnRhdGlvbnMuCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hl biA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1 Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4u Y2FtZXJvbkBodWF3ZWkuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2hh bWVlcmFsaS5rb2xvdGh1bS50aG9kaUBodWF3ZWkuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBH YW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8ub3JnPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29s b3RodW10aG9AbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBZaSBMaXUgPHlpLmwubGl1QGludGVs LmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0yLXNrb2xvdGh1bXRob0Bu dmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxp bmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmMmQzMWRmMGQ5MjU0NmE4NmU4 Y2RiZjUxNDM2ZGI2YWFlOGMxNjdhKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorLS0tCisgYmFja2VuZHMvaW9tbXVmZC5jICAgICAgIHwgMjYgKysr KysrKysrKysrKysrKysrKysrKysrKysKKyBiYWNrZW5kcy90cmFjZS1ldmVudHMgICAgfCAgMSAr CisgaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oIHwgMTQgKysrKysrKysrKysrKysKKyAzIGZpbGVz IGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2JhY2tlbmRzL2lvbW11 ZmQuYyBiL2JhY2tlbmRzL2lvbW11ZmQuYworaW5kZXggZmRmYjdjOWQ2Ny4uM2Q0YTRhZTczNiAx MDA2NDQKKy0tLSBhL2JhY2tlbmRzL2lvbW11ZmQuYworKysrIGIvYmFja2VuZHMvaW9tbXVmZC5j CitAQCAtNDQ2LDYgKzQ0NiwzMiBAQCBib29sIGlvbW11ZmRfYmFja2VuZF9pbnZhbGlkYXRlX2Nh Y2hlKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgaWQsCisgICAgIHJldHVybiAhcmV0Owor IH0KKyAKKytib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoSU9NTVVGREJhY2tlbmQg KmJlLCB1aW50MzJfdCBkZXZfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IHZpb21tdV90eXBlLCB1aW50MzJfdCBod3B0X2lkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X3Zpb21tdV9pZCwgRXJyb3IgKiplcnJw KQorK3sKKysgICAgaW50IHJldDsKKysgICAgc3RydWN0IGlvbW11X3Zpb21tdV9hbGxvYyBhbGxv Y192aW9tbXUgPSB7CisrICAgICAgICAuc2l6ZSA9IHNpemVvZihhbGxvY192aW9tbXUpLAorKyAg ICAgICAgLnR5cGUgPSB2aW9tbXVfdHlwZSwKKysgICAgICAgIC5kZXZfaWQgPSBkZXZfaWQsCisr ICAgICAgICAuaHdwdF9pZCA9IGh3cHRfaWQsCisrICAgIH07CisrCisrICAgIHJldCA9IGlvY3Rs KGJlLT5mZCwgSU9NTVVfVklPTU1VX0FMTE9DLCAmYWxsb2NfdmlvbW11KTsKKysKKysgICAgdHJh Y2VfaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdShiZS0+ZmQsIGRldl9pZCwgdmlvbW11X3R5 cGUsIGh3cHRfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxs b2NfdmlvbW11Lm91dF92aW9tbXVfaWQsIHJldCk7CisrICAgIGlmIChyZXQpIHsKKysgICAgICAg IGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJJT01NVV9WSU9NTVVfQUxMT0MgZmFpbGVk Iik7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgZ19hc3NlcnQob3V0 X3Zpb21tdV9pZCk7CisrICAgICpvdXRfdmlvbW11X2lkID0gYWxsb2NfdmlvbW11Lm91dF92aW9t bXVfaWQ7CisrICAgIHJldHVybiB0cnVlOworK30KKysKKyBib29sIGhvc3RfaW9tbXVfZGV2aWNl X2lvbW11ZmRfYXR0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaHdwdF9pZCwg RXJyb3IgKiplcnJwKQorIHsKK2RpZmYgLS1naXQgYS9iYWNrZW5kcy90cmFjZS1ldmVudHMgYi9i YWNrZW5kcy90cmFjZS1ldmVudHMKK2luZGV4IDU2MTMyZDNmZDIuLjAxYzJkOWJkZTkgMTAwNjQ0 CistLS0gYS9iYWNrZW5kcy90cmFjZS1ldmVudHMKKysrKyBiL2JhY2tlbmRzL3RyYWNlLWV2ZW50 cworQEAgLTIxLDMgKzIxLDQgQEAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaW50IGlvbW11ZmQs IHVpbnQzMl90IGlkLCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgaWQ9JWQgKCUKKyBpb21tdWZkX2Jh Y2tlbmRfc2V0X2RpcnR5KGludCBpb21tdWZkLCB1aW50MzJfdCBod3B0X2lkLCBib29sIHN0YXJ0 LCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgaHdwdD0ldSBlbmFibGU9JWQgKCVkKSIKKyBpb21tdWZk X2JhY2tlbmRfZ2V0X2RpcnR5X2JpdG1hcChpbnQgaW9tbXVmZCwgdWludDMyX3QgaHdwdF9pZCwg dWludDY0X3QgaW92YSwgdWludDY0X3Qgc2l6ZSwgdWludDY0X3QgcGFnZV9zaXplLCBpbnQgcmV0 KSAiIGlvbW11ZmQ9JWQgaHdwdD0ldSBpb3ZhPTB4JSJQUkl4NjQiIHNpemU9MHglIlBSSXg2NCIg cGFnZV9zaXplPTB4JSJQUkl4NjQiICglZCkiCisgaW9tbXVmZF9iYWNrZW5kX2ludmFsaWRhdGVf Y2FjaGUoaW50IGlvbW11ZmQsIHVpbnQzMl90IGlkLCB1aW50MzJfdCBkYXRhX3R5cGUsIHVpbnQz Ml90IGVudHJ5X2xlbiwgdWludDMyX3QgZW50cnlfbnVtLCB1aW50MzJfdCBkb25lX251bSwgdWlu dDY0X3QgZGF0YV9wdHIsIGludCByZXQpICIgaW9tbXVmZD0lZCBpZD0ldSBkYXRhX3R5cGU9JXUg ZW50cnlfbGVuPSV1IGVudHJ5X251bT0ldSBkb25lX251bT0ldSBkYXRhX3B0cj0weCUiUFJJeDY0 IiAoJWQpIgorK2lvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaW50IGlvbW11ZmQsIHVpbnQz Ml90IGRldl9pZCwgdWludDMyX3QgdHlwZSwgdWludDMyX3QgaHdwdF9pZCwgdWludDMyX3Qgdmlv bW11X2lkLCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgdHlwZT0ldSBkZXZfaWQ9JXUgaHdwdF9pZD0l dSB2aW9tbXVfaWQ9JXUgKCVkKSIKK2RpZmYgLS1naXQgYS9pbmNsdWRlL3N5c3RlbS9pb21tdWZk LmggYi9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgKK2luZGV4IGE2NTlmMzZhMjAuLjExYjg0MTNj M2YgMTAwNjQ0CistLS0gYS9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgKKysrKyBiL2luY2x1ZGUv c3lzdGVtL2lvbW11ZmQuaAorQEAgLTM4LDYgKzM4LDE2IEBAIHN0cnVjdCBJT01NVUZEQmFja2Vu ZCB7CisgICAgIC8qPCBwdWJsaWMgPiovCisgfTsKKyAKKysvKgorKyAqIFZpcnR1YWwgSU9NTVUg b2JqZWN0IHRoYXQgcmVwcmVzZW50cyBwaHlzaWNhbCBJT01NVSdzIHZpcnR1YWxpemF0aW9uCisr ICogc3VwcG9ydAorKyAqLworK3R5cGVkZWYgc3RydWN0IElPTU1VRkRWaW9tbXUgeworKyAgICBJ T01NVUZEQmFja2VuZCAqaW9tbXVmZDsKKysgICAgdWludDMyX3QgczJfaHdwdF9pZDsgLyogSUQg b2Ygc3RhZ2UgMiBIV1BUICovCisrICAgIHVpbnQzMl90IHZpb21tdV9pZDsgIC8qIHZpcnR1YWwg SU9NTVUgSUQgb2YgYWxsb2NhdGVkIG9iamVjdCAqLworK30gSU9NTVVGRFZpb21tdTsKKysKKyBi b29sIGlvbW11ZmRfYmFja2VuZF9jb25uZWN0KElPTU1VRkRCYWNrZW5kICpiZSwgRXJyb3IgKipl cnJwKTsKKyB2b2lkIGlvbW11ZmRfYmFja2VuZF9kaXNjb25uZWN0KElPTU1VRkRCYWNrZW5kICpi ZSk7CisgCitAQCAtNTksNiArNjksMTAgQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdw dChJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IGRldl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGFfdHlwZSwgdWludDMyX3QgZGF0YV9sZW4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhX3B0ciwgdWludDMyX3Qg Km91dF9od3B0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJw KTsKKytib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoSU9NTVVGREJhY2tlbmQgKmJl LCB1aW50MzJfdCBkZXZfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IHZpb21tdV90eXBlLCB1aW50MzJfdCBod3B0X2lkLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X2h3cHQsIEVycm9yICoqZXJycCk7CisrCisg Ym9vbCBpb21tdWZkX2JhY2tlbmRfc2V0X2RpcnR5X3RyYWNraW5nKElPTU1VRkRCYWNrZW5kICpi ZSwgdWludDMyX3QgaHdwdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBzdGFydCwgRXJyb3IgKiplcnJwKTsKKyBib29sIGlvbW11ZmRfYmFja2VuZF9n ZXRfZGlydHlfYml0bWFwKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgaHdwdF9pZCwKKy0t IAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRyb2R1Y2Ut aW9tbXVmZF9iYWNrZW5kX3Zpb21tdV9tbS5wYXRjaCBiL2t2bS1iYWNrZW5kcy1pb21tdWZkLUlu dHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfdmlvbW11X21tLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjA0MjBlZDUKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0tYmFja2Vu ZHMtaW9tbXVmZC1JbnRyb2R1Y2UtaW9tbXVmZF9iYWNrZW5kX3Zpb21tdV9tbS5wYXRjaApAQCAt MCwwICsxLDEwMiBAQAorRnJvbSA1M2JhNGIxYTZkZTA5NGE0ODgxZWJhNTZiNTVjMzQwNTUzMzBh MDRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljb2xpbiBDaGVuIDxuaWNvbGlu Y0BudmlkaWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjI1ICswMTAwCitTdWJq ZWN0OiBbUEFUQ0ggMDgyLzExMV0gYmFja2VuZHMvaW9tbXVmZDogSW50cm9kdWNlCisgaW9tbXVm ZF9iYWNrZW5kX3Zpb21tdV9tbWFwCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVy Z2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURR ViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUg R29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkBy ZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbODIvMTExXSA2OTlhZWM3MTJhOWJlMjdhYmVjZGIyYTM3 ZjE0YjdiODk2OGJhZTQ5IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6 Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitDb25mbGljdHM6IGNv bnRleHR1YWwgY29uZmxpY3QgaW4gYmFja2VuZHMvdHJhY2UtZXZlbnRzIHNpbmNlCit3ZSBkb24n dCBoYXZlIGlndm0gdHJhY2UgcG9pbnRzCisKK0FkZCBhIGJhY2tlbmQgaGVscGVyIHRvIG1tYXAg aGFyZHdhcmUgTU1JTyByZWdpb25zIGV4cG9zZWQgdmlhIGlvbW11ZmQgZm9yCithIHZJT01NVSBp bnN0YW5jZS4gVGhpcyBhbGxvd3MgdXNlciBzcGFjZSB0byBhY2Nlc3MgSFctYWNjZWxlcmF0ZWQg TU1JTworcGFnZXMgcHJvdmlkZWQgYnkgdGhlIHZJT01NVS4KKworVGhlIGNhbGxlciBpcyByZXNw b25zaWJsZSBmb3IgdW5tYXBwaW5nIHRoZSByZXR1cm5lZCByZWdpb24uCisKK1NpZ25lZC1vZmYt Ynk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmlj IEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8 bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNr b2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktNS1za29sb3Ro dW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5 ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjM5MWU0MWU1M2I1 MjY4ZDA5NDNjNGYyMjc2NzQ5YTk0NDg0OTZiMykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIg PGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGJhY2tlbmRzL2lvbW11ZmQuYyAgICAgICB8 IDIyICsrKysrKysrKysrKysrKysrKysrKysKKyBiYWNrZW5kcy90cmFjZS1ldmVudHMgICAgfCAg MSArCisgaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oIHwgIDQgKysrKworIDMgZmlsZXMgY2hhbmdl ZCwgMjcgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYmFja2VuZHMvaW9tbXVmZC5jIGIv YmFja2VuZHMvaW9tbXVmZC5jCitpbmRleCAwZTExZDI3MjJhLi5lNDU3MTczZGE1IDEwMDY0NAor LS0tIGEvYmFja2VuZHMvaW9tbXVmZC5jCisrKysgYi9iYWNrZW5kcy9pb21tdWZkLmMKK0BAIC01 NzYsNiArNTc2LDI4IEBAIGJvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3X3F1ZXVlKElPTU1V RkRCYWNrZW5kICpiZSwgdWludDMyX3QgdmlvbW11X2lkLAorICAgICByZXR1cm4gdHJ1ZTsKKyB9 CisgCisrLyoKKysgKiBIZWxwZXIgdG8gbW1hcCBIVyBNTUlPIHJlZ2lvbnMgZXhwb3NlZCB2aWEg aW9tbXVmZCBmb3IgYSB2SU9NTVUgaW5zdGFuY2UuCisrICogVGhlIGNhbGxlciBpcyByZXNwb25z aWJsZSBmb3IgdW5tYXBwaW5nIHRoZSBtYXBwZWQgcmVnaW9uLgorKyAqLworK2Jvb2wgaW9tbXVm ZF9iYWNrZW5kX3Zpb21tdV9tbWFwKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgdmlvbW11 X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHNpemUsIG9m Zl90IG9mZnNldCwgdm9pZCAqKm91dF9wdHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRXJyb3IgKiplcnJwKQorK3sKKysgICAgZ19hc3NlcnQodmlvbW11X2lkKTsKKysgICAg Z19hc3NlcnQob3V0X3B0cik7CisrCisrICAgICpvdXRfcHRyID0gbW1hcChOVUxMLCBzaXplLCBQ Uk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBiZS0+ZmQsCisrICAgICAgICAgICAg ICAgICAgIG9mZnNldCk7CisrICAgIHRyYWNlX2lvbW11ZmRfYmFja2VuZF92aW9tbXVfbW1hcChi ZS0+ZmQsIHZpb21tdV9pZCwgc2l6ZSwgb2Zmc2V0KTsKKysgICAgaWYgKCpvdXRfcHRyID09IE1B UF9GQUlMRUQpIHsKKysgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJJT01N VUZEIHZJT01NVSBtbWFwIGZhaWxlZCIpOworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9 CisrCisrICAgIHJldHVybiB0cnVlOworK30KKysKKyBib29sIGhvc3RfaW9tbXVfZGV2aWNlX2lv bW11ZmRfYXR0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaGlvZGksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGh3cHRfaWQsIEVy cm9yICoqZXJycCkKKyB7CitkaWZmIC0tZ2l0IGEvYmFja2VuZHMvdHJhY2UtZXZlbnRzIGIvYmFj a2VuZHMvdHJhY2UtZXZlbnRzCitpbmRleCBhODg5OTY0ODhkLi5lYWU3OTljODgyIDEwMDY0NAor LS0tIGEvYmFja2VuZHMvdHJhY2UtZXZlbnRzCisrKysgYi9iYWNrZW5kcy90cmFjZS1ldmVudHMK K0BAIC0yNSwzICsyNSw0IEBAIGlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaW50IGlvbW11 ZmQsIHVpbnQzMl90IGRldl9pZCwgdWludDMyX3QgdHlwZSwgdWludDMyCisgaW9tbXVmZF9iYWNr ZW5kX2FsbG9jX3ZkZXYoaW50IGlvbW11ZmQsIHVpbnQzMl90IGRldl9pZCwgdWludDMyX3Qgdmlv bW11X2lkLCB1aW50NjRfdCB2aXJ0X2lkLCB1aW50MzJfdCB2ZGV2X2lkLCBpbnQgcmV0KSAiIGlv bW11ZmQ9JWQgZGV2X2lkPSV1IHZpb21tdV9pZD0ldSB2aXJ0X2lkPTB4JSJQUkl4NjQiIHZkZXZf aWQ9JXUgKCVkKSIKKyBpb21tdWZkX3Zpb21tdV9hbGxvY19ldmVudHEoaW50IGlvbW11ZmQsIHVp bnQzMl90IHZpb21tdV9pZCwgdWludDMyX3QgdHlwZSwgdWludDMyX3QgdmV2ZW50cV9pZCwgdWlu dDMyX3QgdmV2ZW50cV9mZCwgaW50IHJldCkgIiBpb21tdWZkPSVkIHZpb21tdV9pZD0ldSB0eXBl PSV1IHZldmVudHFfaWQ9JXUgdmV2ZW50cV9mZD0ldSAoJWQpIgorIGlvbW11ZmRfYmFja2VuZF9h bGxvY19od19xdWV1ZShpbnQgaW9tbXVmZCwgdWludDMyX3QgdmlvbW11X2lkLCB1aW50MzJfdCBx dWV1ZV90eXBlLCB1aW50MzJfdCBpbmRleCwgdWludDY0X3QgYWRkciwgdWludDY0X3Qgc2l6ZSwg dWludDMyX3QgcXVldWVfaWQsIGludCByZXQpICIgaW9tbXVmZD0lZCB2aW9tbXVfaWQ9JXUgcXVl dWVfdHlwZT0ldSBpbmRleD0ldSBhZGRyPTB4JSJQUkl4NjQiIHNpemU9MHglIlBSSXg2NCIgcXVl dWVfaWQ9JXUgKCVkKSIKKytpb21tdWZkX2JhY2tlbmRfdmlvbW11X21tYXAoaW50IGlvbW11ZmQs IHVpbnQzMl90IHZpb21tdV9pZCwgdWludDY0X3Qgc2l6ZSwgdWludDY0X3Qgb2Zmc2V0KSAiIGlv bW11ZmQ9JWQgdmlvbW11X2lkPSV1IHNpemU9MHglIlBSSXg2NCIgb2Zmc2V0PTB4JSJQUkl4NjQK K2RpZmYgLS1naXQgYS9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmggYi9pbmNsdWRlL3N5c3RlbS9p b21tdWZkLmgKK2luZGV4IGE1MzhhMTNiODAuLjJhYmI3Yzk2MDUgMTAwNjQ0CistLS0gYS9pbmNs dWRlL3N5c3RlbS9pb21tdWZkLmgKKysrKyBiL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAorQEAg LTExMiw2ICsxMTIsMTAgQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdfcXVldWUoSU9N TVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCB2aW9tbXVfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDY0X3QgYWRkciwgdWludDY0X3QgbGVuZ3RoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfaHdfcXVldWVfaWQs IEVycm9yICoqZXJycCk7CisgCisrYm9vbCBpb21tdWZkX2JhY2tlbmRfdmlvbW11X21tYXAoSU9N TVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCB2aW9tbXVfaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDY0X3Qgc2l6ZSwgb2ZmX3Qgb2Zmc2V0LCB2b2lkICoqb3V0X3B0 ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApOworKwor IGJvb2wgaW9tbXVmZF9iYWNrZW5kX3NldF9kaXJ0eV90cmFja2luZyhJT01NVUZEQmFja2VuZCAq YmUsIHVpbnQzMl90IGh3cHRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgc3RhcnQsIEVycm9yICoqZXJycCk7CisgYm9vbCBpb21tdWZkX2JhY2tlbmRf Z2V0X2RpcnR5X2JpdG1hcChJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IGh3cHRfaWQsCist LSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWJhY2tlbmRzLWlvbW11ZmQtUmV0cmlldmUt UEFTSUQtd2lkdGgtZnJvbS1pb21tdWZkX2IucGF0Y2ggYi9rdm0tYmFja2VuZHMtaW9tbXVmZC1S ZXRyaWV2ZS1QQVNJRC13aWR0aC1mcm9tLWlvbW11ZmRfYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi44MGY4MTVjCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWJhY2tl bmRzLWlvbW11ZmQtUmV0cmlldmUtUEFTSUQtd2lkdGgtZnJvbS1pb21tdWZkX2IucGF0Y2gKQEAg LTAsMCArMSwxNjcgQEAKK0Zyb20gM2EzZDQ5NTFjNjVmMjZlYzgyMTVlYTA2YTUyODM2NzNiZWY4 ZTQ5OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNr b2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSAr MDAwMAorU3ViamVjdDogW1BBVENIIDA0MC8xMTFdIGJhY2tlbmRzL2lvbW11ZmQ6IFJldHJpZXZl IFBBU0lEIHdpZHRoIGZyb20KKyBpb21tdWZkX2JhY2tlbmRfZ2V0X2RldmljZV9pbmZvKCkKK01J TUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJh c2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgor UkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0 MC8xMTFdIGU2Yzk0NDQ5NDE0ZWM4MjIzMGQwM2MzOWQyNTVlMWNlZmY2OWJiZWEgKGVhdWdlcjEv Y2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jy b3dzZS9SSEVMLTczNzk0CisKK0NvbmZsaWN0czogY29udGV4dHVhbCBjb25mbGljdCBpbiBody92 ZmlvL2lvbW11ZmQuYworQWRkIGNhcHMgbG9jYWwgdmFyaWFibGUgYW5kIHBhc3MgaXQgaW4gaW9t bXVmZF9iYWNrZW5kX2dldF9kZXZpY2VfaW5mbygpCitUaGlzIGlzIGR1ZSB0byB0aGUgZmFjdCB3 ZSBkb24ndCBoYXZlCis2OGQzYTJhMjRkN2MgICgiV29ya2Fyb3VuZCBmb3IgRVJSQVRBXzc3MjQx NV9TUFIxNyIpCisKK1JldHJpZXZlIFBBU0lEIHdpZHRoIGZyb20gaW9tbXVmZF9iYWNrZW5kX2dl dF9kZXZpY2VfaW5mbygpIGFuZCBzdG9yZSBpdAoraW4gSG9zdElPTU1VRGV2aWNlQ2FwcyBmb3Ig bGF0ZXIgdXNlLgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2Ft ZXJvbkBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9y Zz4KK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZp ZXdlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVy IEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBZaSBMaXUg PHlpLmwubGl1QGludGVsLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0z My1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8 cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNTUw YmVjYTNkN2IwMTU5NjgxYTA5ZDYzZGZjZTE5YWMzMTUwOWY5ZikKK1NpZ25lZC1vZmYtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGJhY2tlbmRzL2lvbW11ZmQu YyAgICAgICAgICAgICAgICAgfCA2ICsrKysrLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICAg ICAgICAgICAgfCAzICsrLQorIGh3L3ZmaW8vaW9tbXVmZC5jICAgICAgICAgICAgICAgICAgfCA4 ICsrKysrKy0tCisgaW5jbHVkZS9zeXN0ZW0vaG9zdF9pb21tdV9kZXZpY2UuaCB8IDMgKysrCisg aW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oICAgICAgICAgICB8IDMgKystCisgNSBmaWxlcyBjaGFu Z2VkLCAxOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYmFj a2VuZHMvaW9tbXVmZC5jIGIvYmFja2VuZHMvaW9tbXVmZC5jCitpbmRleCBlNjhhMmM5MzRmLi42 MzgxZjk2NjRiIDEwMDY0NAorLS0tIGEvYmFja2VuZHMvaW9tbXVmZC5jCisrKysgYi9iYWNrZW5k cy9pb21tdWZkLmMKK0BAIC0zODgsNyArMzg4LDggQEAgYm9vbCBpb21tdWZkX2JhY2tlbmRfZ2V0 X2RpcnR5X2JpdG1hcChJT01NVUZEQmFja2VuZCAqYmUsCisgCisgYm9vbCBpb21tdWZkX2JhY2tl bmRfZ2V0X2RldmljZV9pbmZvKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgZGV2aWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp0eXBlLCB2b2lk ICpkYXRhLCB1aW50MzJfdCBsZW4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90ICpjYXBzLCBFcnJvciAqKmVycnApCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpjYXBzLCB1aW50OF90ICptYXhfcGFzaWRfbG9nMiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsK KyAgICAgc3RydWN0IGlvbW11X2h3X2luZm8gaW5mbyA9IHsKKyAgICAgICAgIC5zaXplID0gc2l6 ZW9mKGluZm8pLAorQEAgLTQwNyw2ICs0MDgsOSBAQCBib29sIGlvbW11ZmRfYmFja2VuZF9nZXRf ZGV2aWNlX2luZm8oSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50MzJfdCBkZXZpZCwKKyAgICAgZ19h c3NlcnQoY2Fwcyk7CisgICAgICpjYXBzID0gaW5mby5vdXRfY2FwYWJpbGl0aWVzOworIAorKyAg ICBpZiAobWF4X3Bhc2lkX2xvZzIpIHsKKysgICAgICAgICptYXhfcGFzaWRfbG9nMiA9IGluZm8u b3V0X21heF9wYXNpZF9sb2cyOworKyAgICB9CisgICAgIHJldHVybiB0cnVlOworIH0KKyAKK2Rp ZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMK K2luZGV4IGVhNDIwYWZlYjcuLjM0Mjk0NGRhMjMgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYz LWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTEyMSw3ICsxMjEsOCBA QCBzbW11djNfYWNjZWxfaHdfY29tcGF0aWJsZShTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2 aWNlSU9NTVVGRCAqaWRldiwKKyAgICAgdWludDY0X3QgY2FwczsKKyAKKyAgICAgaWYgKCFpb21t dWZkX2JhY2tlbmRfZ2V0X2RldmljZV9pbmZvKGlkZXYtPmlvbW11ZmQsIGlkZXYtPmRldmlkLCAm ZGF0YV90eXBlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlu Zm8sIHNpemVvZihpbmZvKSwgJmNhcHMsIGVycnApKSB7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmaW5mbywgc2l6ZW9mKGluZm8pLCAmY2FwcywgTlVMTCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycnApKSB7CisgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9ody92ZmlvL2lvbW11ZmQu YyBiL2h3L3ZmaW8vaW9tbXVmZC5jCitpbmRleCBiYjU3NzVhYTcxLi42N2FjZGZhMTgzIDEwMDY0 NAorLS0tIGEvaHcvdmZpby9pb21tdWZkLmMKKysrKyBiL2h3L3ZmaW8vaW9tbXVmZC5jCitAQCAt MzA4LDYgKzMwOCw3IEBAIHN0YXRpYyBib29sIGlvbW11ZmRfY2Rldl9hdXRvZG9tYWluc19nZXQo VkZJT0RldmljZSAqdmJhc2VkZXYsCisgICAgIFZGSU9Db250YWluZXIgKmJjb250YWluZXIgPSBW RklPX0lPTU1VKGNvbnRhaW5lcik7CisgICAgIHVpbnQzMl90IHR5cGUsIGZsYWdzID0gMDsKKyAg ICAgdWludDY0X3QgaHdfY2FwczsKKysgICAgVmVuZG9yQ2FwcyBjYXBzOworICAgICBWRklPSU9B U0h3cHQgKmh3cHQ7CisgICAgIHVpbnQzMl90IGh3cHRfaWQ7CisgICAgIGludCByZXQ7CitAQCAt MzUzLDcgKzM1NCw4IEBAIHN0YXRpYyBib29sIGlvbW11ZmRfY2Rldl9hdXRvZG9tYWluc19nZXQo VkZJT0RldmljZSAqdmJhc2VkZXYsCisgICAgICAqIGluc3RlYWQuCisgICAgICAqLworICAgICBp ZiAoIWlvbW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2luZm8odmJhc2VkZXYtPmlvbW11ZmQsIHZi YXNlZGV2LT5kZXZpZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ0eXBlLCBOVUxMLCAwLCAmaHdfY2FwcywgZXJycCkpIHsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZ0eXBlLCAmY2Fwcywgc2l6ZW9mKGNhcHMpLCAmaHdfY2Fw cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVycnAp KSB7CisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKK0BAIC04ODAsMTkgKzg4Miwy MSBAQCBzdGF0aWMgYm9vbCBoaW9kX2lvbW11ZmRfdmZpb19yZWFsaXplKEhvc3RJT01NVURldmlj ZSAqaGlvZCwgdm9pZCAqb3BhcXVlLAorICAgICBIb3N0SU9NTVVEZXZpY2VDYXBzICpjYXBzID0g Jmhpb2QtPmNhcHM7CisgICAgIFZlbmRvckNhcHMgKnZlbmRvcl9jYXBzID0gJmNhcHMtPnZlbmRv cl9jYXBzOworICAgICBlbnVtIGlvbW11X2h3X2luZm9fdHlwZSB0eXBlOworKyAgICB1aW50OF90 IG1heF9wYXNpZF9sb2cyOworICAgICB1aW50NjRfdCBod19jYXBzOworIAorICAgICBoaW9kLT5h Z2VudCA9IG9wYXF1ZTsKKyAKKyAgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfZ2V0X2RldmljZV9p bmZvKHZkZXYtPmlvbW11ZmQsIHZkZXYtPmRldmlkLCAmdHlwZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZlbmRvcl9jYXBzLCBzaXplb2YoKnZlbmRvcl9jYXBz KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZod19jYXBzLCBl cnJwKSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmh3X2Nh cHMsICZtYXhfcGFzaWRfbG9nMiwgZXJycCkpIHsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgfQorIAorICAgICBoaW9kLT5uYW1lID0gZ19zdHJkdXAodmRldi0+bmFtZSk7CisgICAgIGNh cHMtPnR5cGUgPSB0eXBlOworICAgICBjYXBzLT5od19jYXBzID0gaHdfY2FwczsKKysgICAgY2Fw cy0+bWF4X3Bhc2lkX2xvZzIgPSBtYXhfcGFzaWRfbG9nMjsKKyAKKyAgICAgaWRldiA9IEhPU1Rf SU9NTVVfREVWSUNFX0lPTU1VRkQoaGlvZCk7CisgICAgIGlkZXYtPmlvbW11ZmQgPSB2ZGV2LT5p b21tdWZkOworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVtL2hvc3RfaW9tbXVfZGV2aWNlLmgg Yi9pbmNsdWRlL3N5c3RlbS9ob3N0X2lvbW11X2RldmljZS5oCitpbmRleCBhYjg0OWE0YTgyLi5i ZmIyYjYwNDc4IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9zeXN0ZW0vaG9zdF9pb21tdV9kZXZpY2Uu aAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vaG9zdF9pb21tdV9kZXZpY2UuaAorQEAgLTMwLDYgKzMw LDggQEAgdHlwZWRlZiB1bmlvbiBWZW5kb3JDYXBzIHsKKyAgKiBAaHdfY2FwczogaG9zdCBwbGF0 Zm9ybSBJT01NVSBjYXBhYmlsaXRpZXMgKGUuZy4gb24gSU9NTVVGRCB0aGlzIHJlcHJlc2VudHMK KyAgKiAgICAgICAgICAgdGhlIEBvdXRfY2FwYWJpbGl0aWVzIHZhbHVlIHJldHVybmVkIGZyb20g SU9NTVVfR0VUX0hXX0lORk8gaW9jdGwpCisgICoKKysgKiBAbWF4X3Bhc2lkX2xvZzI6IHdpZHRo IG9mIFBBU0lEcyBzdXBwb3J0ZWQgYnkgaG9zdCBJT01NVSBkZXZpY2UKKysgKgorICAqIEB2ZW5k b3JfY2FwczogaG9zdCBwbGF0Zm9ybSBJT01NVSB2ZW5kb3Igc3BlY2lmaWMgY2FwYWJpbGl0aWVz IChlLmcuIG9uCisgICogICAgICAgICAgICAgICBJT01NVUZEIHRoaXMgcmVwcmVzZW50cyBhIHVz ZXItc3BhY2UgYnVmZmVyIGZpbGxlZCBieSBrZXJuZWwKKyAgKiAgICAgICAgICAgICAgIHdpdGgg aG9zdCBJT01NVSBAdHlwZSBzcGVjaWZpYyBoYXJkd2FyZSBpbmZvcm1hdGlvbiBkYXRhKQorQEAg LTM3LDYgKzM5LDcgQEAgdHlwZWRlZiB1bmlvbiBWZW5kb3JDYXBzIHsKKyB0eXBlZGVmIHN0cnVj dCBIb3N0SU9NTVVEZXZpY2VDYXBzIHsKKyAgICAgdWludDMyX3QgdHlwZTsKKyAgICAgdWludDY0 X3QgaHdfY2FwczsKKysgICAgdWludDhfdCBtYXhfcGFzaWRfbG9nMjsKKyAgICAgVmVuZG9yQ2Fw cyB2ZW5kb3JfY2FwczsKKyB9IEhvc3RJT01NVURldmljZUNhcHM7CisgI2VuZGlmCitkaWZmIC0t Z2l0IGEvaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oIGIvaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5o CitpbmRleCA0MWUyMTZjNjc3Li5hYTc4YmYxZTFkIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9zeXN0 ZW0vaW9tbXVmZC5oCisrKysgYi9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgKK0BAIC03MSw3ICs3 MSw4IEBAIGludCBpb21tdWZkX2JhY2tlbmRfdW5tYXBfZG1hKElPTU1VRkRCYWNrZW5kICpiZSwg dWludDMyX3QgaW9hc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2FkZHIg aW92YSwgdWludDY0X3Qgc2l6ZSk7CisgYm9vbCBpb21tdWZkX2JhY2tlbmRfZ2V0X2RldmljZV9p bmZvKElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3QgZGV2aWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp0eXBlLCB2b2lkICpkYXRhLCB1aW50MzJf dCBsZW4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpj YXBzLCBFcnJvciAqKmVycnApOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCAqY2FwcywgdWludDhfdCAqbWF4X3Bhc2lkX2xvZzIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCk7CisgYm9vbCBpb21tdWZkX2Jh Y2tlbmRfYWxsb2NfaHdwdChJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IGRldl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHB0X2lkLCB1aW50MzJfdCBm bGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGFfdHlw ZSwgdWludDMyX3QgZGF0YV9sZW4sCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWJh Y2tlbmRzLWlvbW11ZmQtVXBkYXRlLWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUucGF0Y2gg Yi9rdm0tYmFja2VuZHMtaW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21t dS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWY0MzA1Ci0tLSAv ZGV2L251bGwKKysrIGIva3ZtLWJhY2tlbmRzLWlvbW11ZmQtVXBkYXRlLWlvbW11ZmRfYmFja2Vu ZF9hbGxvY192aW9tbXUucGF0Y2gKQEAgLTAsMCArMSwxMTAgQEAKK0Zyb20gNzkxNmU4ODY2NzM2 NGQ4ODQ1ZGU3OGY0ODFjMmY2MTFlNWNjMGViMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4g MjAyNiAxMjoyNToyMyArMDEwMAorU3ViamVjdDogW1BBVENIIDA4MC8xMTFdIGJhY2tlbmRzL2lv bW11ZmQ6IFVwZGF0ZSBpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11CisgdG8gYWxsb3cgdXNl ciBwdHIKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTog U01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUpp cmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRo YXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1D b21taXQ6IFs4MC8xMTFdIDYwNjhlZWQyYWZjNmFhNzRkMTJmZWM4ZTJiZjE1NGY4NmRmZDg2NzEg KGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3Np YW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK1RoZSB1cGRhdGVkIElPTU1VRkQgVklPTU1VX0FM TE9DIHVBUEkgYWxsb3dzIHVzZXJzcGFjZSB0byBwcm92aWRlIGEgZGF0YQorYnVmZmVyIHdoZW4g Y3JlYXRpbmcgYSB2SU9NTVUgKGUuZy4gZm9yIFRlZ3JhMjQxIENNRFFWKS4gRXh0ZW5kCitpb21t dWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11KCkgdG8gcGFzcyBhIHVzZXIgcG9pbnRlciBhbmQgc2l6 ZSB0byB0aGUKK2tlcm5lbC4KKworVXBkYXRlIHRoZSBjYWxsZXIgYWNjb3JkaW5nbHkuCisKK1Np Z25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2Vk LWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29s aW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29s b3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTkt My1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8 cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZDJm M2IzMTU2ZGJkY2RmM2IyMTM2ZTM0NTAwMTQzMTdiZGQ5Zjg2NCkKK1NpZ25lZC1vZmYtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGJhY2tlbmRzL2lvbW11ZmQu YyAgICAgICB8IDQgKysrKworIGJhY2tlbmRzL3RyYWNlLWV2ZW50cyAgICB8IDIgKy0KKyBody9h cm0vc21tdXYzLWFjY2VsLmMgICAgfCA0ICsrLS0KKyBpbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgg fCAxICsKKyA0IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2JhY2tlbmRzL2lvbW11ZmQuYyBiL2JhY2tlbmRzL2lvbW11ZmQuYwor aW5kZXggYjMyOGY4OTY5OS4uNjIxYjYxMTVjYiAxMDA2NDQKKy0tLSBhL2JhY2tlbmRzL2lvbW11 ZmQuYworKysrIGIvYmFja2VuZHMvaW9tbXVmZC5jCitAQCAtNDU5LDYgKzQ1OSw3IEBAIGJvb2wg aW9tbXVmZF9iYWNrZW5kX2ludmFsaWRhdGVfY2FjaGUoSU9NTVVGREJhY2tlbmQgKmJlLCB1aW50 MzJfdCBpZCwKKyAKKyBib29sIGlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoSU9NTVVGREJh Y2tlbmQgKmJlLCB1aW50MzJfdCBkZXZfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IHZpb21tdV90eXBlLCB1aW50MzJfdCBod3B0X2lkLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhX3B0ciwgdWludDMyX3QgZGF0YV9s ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmlv bW11X2lkLCBFcnJvciAqKmVycnApCisgeworICAgICBpbnQgcmV0OworQEAgLTQ2NywxMSArNDY4 LDE0IEBAIGJvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdShJT01NVUZEQmFja2VuZCAq YmUsIHVpbnQzMl90IGRldl9pZCwKKyAgICAgICAgIC50eXBlID0gdmlvbW11X3R5cGUsCisgICAg ICAgICAuZGV2X2lkID0gZGV2X2lkLAorICAgICAgICAgLmh3cHRfaWQgPSBod3B0X2lkLAorKyAg ICAgICAgLmRhdGFfbGVuID0gZGF0YV9sZW4sCisrICAgICAgICAuZGF0YV91cHRyID0gKHVpbnRw dHJfdClkYXRhX3B0ciwKKyAgICAgfTsKKyAKKyAgICAgcmV0ID0gaW9jdGwoYmUtPmZkLCBJT01N VV9WSU9NTVVfQUxMT0MsICZhbGxvY192aW9tbXUpOworIAorICAgICB0cmFjZV9pb21tdWZkX2Jh Y2tlbmRfYWxsb2NfdmlvbW11KGJlLT5mZCwgZGV2X2lkLCB2aW9tbXVfdHlwZSwgaHdwdF9pZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludHB0cl90KWRhdGFf cHRyLCBkYXRhX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bGxvY192aW9tbXUub3V0X3Zpb21tdV9pZCwgcmV0KTsKKyAgICAgaWYgKHJldCkgeworICAgICAg ICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgIklPTU1VX1ZJT01NVV9BTExPQyBmYWls ZWQiKTsKK2RpZmYgLS1naXQgYS9iYWNrZW5kcy90cmFjZS1ldmVudHMgYi9iYWNrZW5kcy90cmFj ZS1ldmVudHMKK2luZGV4IDVhZmE3YTQwYmUuLjkzNGNkZDgxMDcgMTAwNjQ0CistLS0gYS9iYWNr ZW5kcy90cmFjZS1ldmVudHMKKysrKyBiL2JhY2tlbmRzL3RyYWNlLWV2ZW50cworQEAgLTIxLDYg KzIxLDYgQEAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaW50IGlvbW11ZmQsIHVpbnQzMl90IGlk LCBpbnQgcmV0KSAiIGlvbW11ZmQ9JWQgaWQ9JWQgKCUKKyBpb21tdWZkX2JhY2tlbmRfc2V0X2Rp cnR5KGludCBpb21tdWZkLCB1aW50MzJfdCBod3B0X2lkLCBib29sIHN0YXJ0LCBpbnQgcmV0KSAi IGlvbW11ZmQ9JWQgaHdwdD0ldSBlbmFibGU9JWQgKCVkKSIKKyBpb21tdWZkX2JhY2tlbmRfZ2V0 X2RpcnR5X2JpdG1hcChpbnQgaW9tbXVmZCwgdWludDMyX3QgaHdwdF9pZCwgdWludDY0X3QgaW92 YSwgdWludDY0X3Qgc2l6ZSwgdWludDY0X3QgcGFnZV9zaXplLCBpbnQgcmV0KSAiIGlvbW11ZmQ9 JWQgaHdwdD0ldSBpb3ZhPTB4JSJQUkl4NjQiIHNpemU9MHglIlBSSXg2NCIgcGFnZV9zaXplPTB4 JSJQUkl4NjQiICglZCkiCisgaW9tbXVmZF9iYWNrZW5kX2ludmFsaWRhdGVfY2FjaGUoaW50IGlv bW11ZmQsIHVpbnQzMl90IGlkLCB1aW50MzJfdCBkYXRhX3R5cGUsIHVpbnQzMl90IGVudHJ5X2xl biwgdWludDMyX3QgZW50cnlfbnVtLCB1aW50MzJfdCBkb25lX251bSwgdWludDY0X3QgZGF0YV9w dHIsIGludCByZXQpICIgaW9tbXVmZD0lZCBpZD0ldSBkYXRhX3R5cGU9JXUgZW50cnlfbGVuPSV1 IGVudHJ5X251bT0ldSBkb25lX251bT0ldSBkYXRhX3B0cj0weCUiUFJJeDY0IiAoJWQpIgorLWlv bW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaW50IGlvbW11ZmQsIHVpbnQzMl90IGRldl9pZCwg dWludDMyX3QgdHlwZSwgdWludDMyX3QgaHdwdF9pZCwgdWludDMyX3QgdmlvbW11X2lkLCBpbnQg cmV0KSAiIGlvbW11ZmQ9JWQgdHlwZT0ldSBkZXZfaWQ9JXUgaHdwdF9pZD0ldSB2aW9tbXVfaWQ9 JXUgKCVkKSIKKytpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11KGludCBpb21tdWZkLCB1aW50 MzJfdCBkZXZfaWQsIHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IGh3cHRfaWQsIHVpbnQ2NF90IGRh dGFfcHRyLCB1aW50MzJfdCBkYXRhX2xlbiwgdWludDMyX3QgdmlvbW11X2lkLCBpbnQgcmV0KSAi IGlvbW11ZmQ9JWQgdHlwZT0ldSBkZXZfaWQ9JXUgaHdwdF9pZD0ldSBkYXRhX3B0cj0weCUiUFJJ eDY0IiBkYXRhX2xlbj0weCV4IHZpb21tdV9pZD0ldSAoJWQpIgorIGlvbW11ZmRfYmFja2VuZF9h bGxvY192ZGV2KGludCBpb21tdWZkLCB1aW50MzJfdCBkZXZfaWQsIHVpbnQzMl90IHZpb21tdV9p ZCwgdWludDY0X3QgdmlydF9pZCwgdWludDMyX3QgdmRldl9pZCwgaW50IHJldCkgIiBpb21tdWZk PSVkIGRldl9pZD0ldSB2aW9tbXVfaWQ9JXUgdmlydF9pZD0weCUiUFJJeDY0IiB2ZGV2X2lkPSV1 ICglZCkiCisgaW9tbXVmZF92aW9tbXVfYWxsb2NfZXZlbnRxKGludCBpb21tdWZkLCB1aW50MzJf dCB2aW9tbXVfaWQsIHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IHZldmVudHFfaWQsIHVpbnQzMl90 IHZldmVudHFfZmQsIGludCByZXQpICIgaW9tbXVmZD0lZCB2aW9tbXVfaWQ9JXUgdHlwZT0ldSB2 ZXZlbnRxX2lkPSV1IHZldmVudHFfZmQ9JXUgKCVkKSIKK2RpZmYgLS1naXQgYS9ody9hcm0vc21t dXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IDE2M2QzZTcyNzkuLjRj ZWY0ODc2NzkgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2Fy bS9zbW11djMtYWNjZWwuYworQEAgLTU4Miw4ICs1ODIsOCBAQCBzbW11djNfYWNjZWxfYWxsb2Nf dmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpoaW9kaSwKKyAg ICAgSU9NTVVGRFZpb21tdSAqdmlvbW11OworIAorICAgICBpZiAoIWlvbW11ZmRfYmFja2VuZF9h bGxvY192aW9tbXUoaGlvZGktPmlvbW11ZmQsIGhpb2RpLT5kZXZpZCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1ZJT01NVV9UWVBFX0FSTV9TTU1VVjMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMl9od3B0X2lkLCAmdmlvbW11 X2lkLCBlcnJwKSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVfVklPTU1VX1RZUEVfQVJNX1NNTVVWMywgczJfaHdwdF9pZCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsICZ2aW9tbXVfaWQsIGVycnApKSB7CisgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9pbmNsdWRlL3N5c3Rl bS9pb21tdWZkLmggYi9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgKK2luZGV4IGU0NWY0YTVlODcu Ljc4M2QxMjVlZTQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL3N5c3RlbS9pb21tdWZkLmgKKysrKyBi L2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAorQEAgLTg5LDYgKzg5LDcgQEAgYm9vbCBpb21tdWZk X2JhY2tlbmRfYWxsb2NfaHdwdChJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IGRldl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCk7CisgYm9vbCBp b21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11KElPTU1VRkRCYWNrZW5kICpiZSwgdWludDMyX3Qg ZGV2X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2aW9t bXVfdHlwZSwgdWludDMyX3QgaHdwdF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqZGF0YV9wdHIsIHVpbnQzMl90IGRhdGFfbGVuLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqb3V0X2h3cHQsIEVycm9yICoqZXJycCk7Cisg CisgYm9vbCBpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmRldihJT01NVUZEQmFja2VuZCAqYmUsIHVp bnQzMl90IGRldl9pZCwKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0tYmFja2VuZHMt aW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9iYWNrZW5kX2dldF9kZXZpY2VfaS5wYXRjaCBiL2t2bS1i YWNrZW5kcy1pb21tdWZkLVVwZGF0ZS1pb21tdWZkX2JhY2tlbmRfZ2V0X2RldmljZV9pLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMzNiMTYKLS0tIC9kZXYvbnVs bAorKysgYi9rdm0tYmFja2VuZHMtaW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9iYWNrZW5kX2dldF9k ZXZpY2VfaS5wYXRjaApAQCAtMCwwICsxLDEwNiBAQAorRnJvbSAyMmVmYzIzZGI0YTVkMTc3MzE3 MGJjMWY4OThhNTVkOTc5YmQwYjAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlj b2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEy OjI1OjIyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMDc4LzExMV0gYmFja2VuZHMvaW9tbXVmZDog VXBkYXRlCisgaW9tbXVmZF9iYWNrZW5kX2dldF9kZXZpY2VfaW5mbworTUlNRS1WZXJzaW9uOiAx LjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxl cmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFj a2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTog R2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzc4LzExMV0gM2NhN2Ji N2EzNTQ0OTk0YTE3ODg3NmYzYjE1NzM4MTEyOTQ1YTUyNSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1r dm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3 OTgKKworVGhlIHVwZGF0ZWQgSU9NTVVGRCB1QVBJIGludHJvZHVjZXMgdGhlIGFiaWxpdHkgZm9y IHVzZXJzcGFjZSB0byByZXF1ZXN0CithIHNwZWNpZmljIGhhcmR3YXJlIGluZm8gZGF0YSB0eXBl IHZpYSBJT01NVV9HRVRfSFdfSU5GTy4gVXBkYXRlCitpb21tdWZkX2JhY2tlbmRfZ2V0X2Rldmlj ZV9pbmZvKCkgdG8gc2V0IElPTU1VX0hXX0lORk9fRkxBR19JTlBVVF9UWVBFCit3aGVuIGEgbm9u LXplcm8gdHlwZSBpcyBzdXBwbGllZCwgYW5kIGFkanVzdCBhbGwgY2FsbGVycyB0byBwYXNzIGEg dHlwZQordmFsdWUgZXhwbGljaXRseSBpbml0aWFsaXNlZCB0byB6ZXJvIChJT01NVV9IV19JTkZP X1RZUEVfREVGQVVMVCkgd2hlbgorbm8gc3BlY2lmaWMgdHlwZSBpcyByZXF1ZXN0ZWQuCisKK1Np Z25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2Vk LWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29s aW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29s b3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTkt Mi1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8 cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgM2U3 OWI0NWUwNDc4ZGUzNjc3NDVhYTFmNWQzYjBhNDU3M2M2OWFiMCkKK1NpZ25lZC1vZmYtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGJhY2tlbmRzL2lvbW11ZmQu YyAgICB8IDcgKysrKysrKworIGh3L2FybS9zbW11djMtYWNjZWwuYyB8IDIgKy0KKyBody92Zmlv L2lvbW11ZmQuYyAgICAgfCA0ICsrLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9iYWNrZW5kcy9pb21tdWZkLmMgYi9i YWNrZW5kcy9pb21tdWZkLmMKK2luZGV4IDViOTE5ZTRiZTkuLjQxNmUxOTM3NTEgMTAwNjQ0Cist LS0gYS9iYWNrZW5kcy9pb21tdWZkLmMKKysrKyBiL2JhY2tlbmRzL2lvbW11ZmQuYworQEAgLTM4 NiwxNiArMzg2LDIzIEBAIGJvb2wgaW9tbXVmZF9iYWNrZW5kX2dldF9kaXJ0eV9iaXRtYXAoSU9N TVVGREJhY2tlbmQgKmJlLAorICAgICByZXR1cm4gdHJ1ZTsKKyB9CisgCisrLyoKKysgKiBAdHlw ZSBjYW4gY2FycnkgYSBkZXNpcmVkIEhXIGluZm8gdHlwZSBkZWZpbmVkIGluIHRoZSB1YXBpIGhl YWRlcnMuIElmIGNhbGxlcgorKyAqIGRvZXNuJ3QgaGF2ZSBvbmUsIGluZGljYXRpbmcgaXQgd2Fu dHMgdGhlIGRlZmF1bHQgdHlwZSwgdGhlbiBAdHlwZSBzaG91bGQgYmUKKysgKiB6ZXJvZWQgKGku ZS4gSU9NTVVfSFdfSU5GT19UWVBFX0RFRkFVTFQpLgorKyAqLworIGJvb2wgaW9tbXVmZF9iYWNr ZW5kX2dldF9kZXZpY2VfaW5mbyhJT01NVUZEQmFja2VuZCAqYmUsIHVpbnQzMl90IGRldmlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdHlwZSwgdm9p ZCAqZGF0YSwgdWludDMyX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCAqY2FwcywgdWludDhfdCAqbWF4X3Bhc2lkX2xvZzIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKKyB7CisgICAgIHN0cnVj dCBpb21tdV9od19pbmZvIGluZm8gPSB7CisrICAgICAgICAuZmxhZ3MgPSAoKnR5cGUpID8gSU9N TVVfSFdfSU5GT19GTEFHX0lOUFVUX1RZUEUgOiAwLAorICAgICAgICAgLnNpemUgPSBzaXplb2Yo aW5mbyksCisgICAgICAgICAuZGV2X2lkID0gZGV2aWQsCisgICAgICAgICAuZGF0YV9sZW4gPSBs ZW4sCisgICAgICAgICAuZGF0YV91cHRyID0gKHVpbnRwdHJfdClkYXRhLAorKyAgICAgICAgLmlu X2RhdGFfdHlwZSA9ICp0eXBlLAorICAgICB9OworIAorICAgICBpZiAoaW9jdGwoYmUtPmZkLCBJ T01NVV9HRVRfSFdfSU5GTywgJmluZm8pKSB7CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1h Y2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCAwYjAxODQ4MjkyLi5mOTcxMjkz ODhmIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysgYi9ody9hcm0vc21t dXYzLWFjY2VsLmMKK0BAIC0xNzYsNyArMTc2LDcgQEAgc21tdXYzX2FjY2VsX2h3X2NvbXBhdGli bGUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsKKyAgICAgc3RydWN0IGlvbW11 X2h3X2luZm9fYXJtX3NtbXV2MyBpbmZvOworLSAgICB1aW50MzJfdCBkYXRhX3R5cGU7CisrICAg IHVpbnQzMl90IGRhdGFfdHlwZSA9IElPTU1VX0hXX0lORk9fVFlQRV9ERUZBVUxUOworICAgICB1 aW50NjRfdCBjYXBzOworIAorICAgICBpZiAoIWlvbW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2lu Zm8oaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQsICZkYXRhX3R5cGUsCitkaWZmIC0tZ2l0IGEv aHcvdmZpby9pb21tdWZkLmMgYi9ody92ZmlvL2lvbW11ZmQuYworaW5kZXggN2UwMjg3ZjgxNC4u OTM3MDNhMDAzNiAxMDA2NDQKKy0tLSBhL2h3L3ZmaW8vaW9tbXVmZC5jCisrKysgYi9ody92Zmlv L2lvbW11ZmQuYworQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgYm9vbCBpb21tdWZkX2NkZXZf YXV0b2RvbWFpbnNfZ2V0KFZGSU9EZXZpY2UgKnZiYXNlZGV2LAorICAgICBJT01NVUZEQmFja2Vu ZCAqaW9tbXVmZCA9IHZiYXNlZGV2LT5pb21tdWZkOworICAgICBWRklPQ29udGFpbmVyICpiY29u dGFpbmVyID0gVkZJT19JT01NVShjb250YWluZXIpOworICAgICBib29sIHZpb21tdV9uZXN0aW5n LCB2aW9tbXVfbmVzdGluZ19kaXJ0eTsKKy0gICAgdWludDMyX3QgdHlwZSwgZmxhZ3MgPSAwOwor KyAgICB1aW50MzJfdCB0eXBlID0gSU9NTVVfSFdfSU5GT19UWVBFX0RFRkFVTFQsIGZsYWdzID0g MDsKKyAgICAgdWludDY0X3QgaHdfY2FwczsKKyAgICAgVmVuZG9yQ2FwcyBjYXBzOworICAgICBW RklPSU9BU0h3cHQgKmh3cHQ7CitAQCAtODk3LDcgKzg5Nyw3IEBAIHN0YXRpYyBib29sIGhpb2Rf aW9tbXVmZF92ZmlvX3JlYWxpemUoSG9zdElPTU1VRGV2aWNlICpoaW9kLCB2b2lkICpvcGFxdWUs CisgICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXY7CisgICAgIEhvc3RJT01NVURldmlj ZUNhcHMgKmNhcHMgPSAmaGlvZC0+Y2FwczsKKyAgICAgVmVuZG9yQ2FwcyAqdmVuZG9yX2NhcHMg PSAmY2Fwcy0+dmVuZG9yX2NhcHM7CistICAgIGVudW0gaW9tbXVfaHdfaW5mb190eXBlIHR5cGU7 CisrICAgIHVpbnQzMl90IHR5cGUgPSBJT01NVV9IV19JTkZPX1RZUEVfREVGQVVMVDsKKyAgICAg dWludDhfdCBtYXhfcGFzaWRfbG9nMjsKKyAgICAgdWludDY0X3QgaHdfY2FwczsKKyAKKy0tIAor Mi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXUtYWRkLW1lbW9yeS1yZWdpb25z LWFzLXByb3BlcnR5LWZvci1hbi1TTS5wYXRjaCBiL2t2bS1ody1hcm0tc21tdS1hZGQtbWVtb3J5 LXJlZ2lvbnMtYXMtcHJvcGVydHktZm9yLWFuLVNNLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjBiMDU4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNt bXUtYWRkLW1lbW9yeS1yZWdpb25zLWFzLXByb3BlcnR5LWZvci1hbi1TTS5wYXRjaApAQCAtMCww ICsxLDIxMCBAQAorRnJvbSA5MzhiOWU2Y2M3MTc5OTk5OWMzZDI5MTFjMzI4MWRlODdhMzJhZTVh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGllcnJpY2sgQm91dmllciA8cGllcnJp Y2suYm91dmllckBsaW5hcm8ub3JnPgorRGF0ZTogVGh1LCAxNSBKYW4gMjAyNiAxNToyNjozMCAr MDAwMAorU3ViamVjdDogW1BBVENIIDAwNC8xMTFdIGh3L2FybS9zbW11OiBhZGQgbWVtb3J5IHJl Z2lvbnMgYXMgcHJvcGVydHkgZm9yIGFuCisgU01NVSBpbnN0YW5jZQorTUlNRS1WZXJzaW9uOiAx LjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxl cmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFj a2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTog R2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzQvMTExXSBkZTE0MGMy ZDcyNTBkZTYxNTRlMThlMDM2YTdhMTE0NTAyYTQzODY3IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2 bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5 NAorCitUaGlzIHdpbGwgYmUgdXNlZCB0byBhY2Nlc3Mgbm9uLXNlY3VyZSBhbmQgc2VjdXJlIG1l bW9yeS4gU2VjdXJlIHN1cHBvcnQKK2FuZCBHcmFudWxlIFByb3RlY3Rpb24gQ2hlY2sgKGZvciBS TUUpIGZvciBTTU1VIG5lZWQgdG8gYWNjZXNzIHNlY3VyZQorbWVtb3J5LgorCitBcyB3ZWxsLCBp dCBhbGxvd3MgdG8gcmVtb3ZlIHVzYWdlIG9mIGdsb2JhbCBhZGRyZXNzX3NwYWNlX21lbW9yeSwK K2FsbG93aW5nIGRpZmZlcmVudCBTTU1VIGluc3RhbmNlcyB0byBoYXZlIGEgc3BlY2lmaWMgdmll dyBvZiBtZW1vcnkuCisKK1VzZXIgY3JlYXRhYmxlIFNNTVUgYXJlIGhhbmRsZWQgYXMgd2VsbCBm b3IgdmlydCBtYWNoaW5lLAorYnkgc2V0dGluZyB0aGUgbWVtb3J5IHByb3BlcnRpZXMgd2hlbiBk ZXZpY2UgaXMgcGx1Z2dlZCBpbi4KKworUmV2aWV3ZWQtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1 ZMOpIDxwaGlsbWRAbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFBpZXJyaWNrIEJvdXZpZXIg PHBpZXJyaWNrLmJvdXZpZXJAbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEwODIxMDQ1My4yMjgwNzMz LTEtcGllcnJpY2suYm91dmllckBsaW5hcm8ub3JnCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlk ZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1p dCA1M2I1NGE4MjUyMGYyM2RhMmJlNDljYzBkNjkyMTBhMDg2ZmM3MDcyKQorU2lnbmVkLW9mZi1i eTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3Nic2Et cmVmLmMgICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKy0tLS0KKyBody9hcm0vc21tdS1jb21t b24uYyAgICAgICAgIHwgMTEgKysrKysrKysrKysKKyBody9hcm0vdmlydC5jICAgICAgICAgICAg ICAgIHwgMTMgKysrKysrKysrKystLQorIGluY2x1ZGUvaHcvYXJtL3NtbXUtY29tbW9uLmggfCAg NCArKysrCisgaW5jbHVkZS9ody9hcm0vdmlydC5oICAgICAgICB8ICAyICsrCisgNSBmaWxlcyBj aGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv aHcvYXJtL3Nic2EtcmVmLmMgYi9ody9hcm0vc2JzYS1yZWYuYworaW5kZXggMTVjMWZmNGIxNC4u NDhjMjA1NGJlMCAxMDA2NDQKKy0tLSBhL2h3L2FybS9zYnNhLXJlZi5jCisrKysgYi9ody9hcm0v c2JzYS1yZWYuYworQEAgLTYxMSw3ICs2MTEsOSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfeGhjaShj b25zdCBTQlNBTWFjaGluZVN0YXRlICpzbXMpCisgICAgIHN5c2J1c19jb25uZWN0X2lycShTWVNf QlVTX0RFVklDRShkZXYpLCAwLCBxZGV2X2dldF9ncGlvX2luKHNtcy0+Z2ljLCBpcnEpKTsKKyB9 CisgCistc3RhdGljIHZvaWQgY3JlYXRlX3NtbXUoY29uc3QgU0JTQU1hY2hpbmVTdGF0ZSAqc21z LCBQQ0lCdXMgKmJ1cykKKytzdGF0aWMgdm9pZCBjcmVhdGVfc21tdShjb25zdCBTQlNBTWFjaGlu ZVN0YXRlICpzbXMsIFBDSUJ1cyAqYnVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9y eVJlZ2lvbiAqc3lzbWVtLAorKyAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeVJlZ2lvbiAq c2VjdXJlX3N5c21lbSkKKyB7CisgICAgIGh3YWRkciBiYXNlID0gc2JzYV9yZWZfbWVtbWFwW1NC U0FfU01NVV0uYmFzZTsKKyAgICAgaW50IGlycSA9ICBzYnNhX3JlZl9pcnFtYXBbU0JTQV9TTU1V XTsKK0BAIC02MjMsNiArNjI1LDEwIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9zbW11KGNvbnN0IFNC U0FNYWNoaW5lU3RhdGUgKnNtcywgUENJQnVzICpidXMpCisgICAgIG9iamVjdF9wcm9wZXJ0eV9z ZXRfc3RyKE9CSkVDVChkZXYpLCAic3RhZ2UiLCAibmVzdGVkIiwgJmVycm9yX2Fib3J0KTsKKyAg ICAgb2JqZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChkZXYpLCAicHJpbWFyeS1idXMiLCBP QkpFQ1QoYnVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9hYm9ydCk7 CisrICAgIG9iamVjdF9wcm9wZXJ0eV9zZXRfbGluayhPQkpFQ1QoZGV2KSwgIm1lbW9yeSIsIE9C SkVDVChzeXNtZW0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yX2Fib3J0 KTsKKysgICAgb2JqZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChkZXYpLCAic2VjdXJlLW1l bW9yeSIsIE9CSkVDVChzZWN1cmVfc3lzbWVtKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZlcnJvcl9hYm9ydCk7CisgICAgIHN5c2J1c19yZWFsaXplX2FuZF91bnJlZihTWVNfQlVT X0RFVklDRShkZXYpLCAmZXJyb3JfZmF0YWwpOworICAgICBzeXNidXNfbW1pb19tYXAoU1lTX0JV U19ERVZJQ0UoZGV2KSwgMCwgYmFzZSk7CisgICAgIGZvciAoaSA9IDA7IGkgPCBOVU1fU01NVV9J UlFTOyBpKyspIHsKK0BAIC02MzEsNyArNjM3LDkgQEAgc3RhdGljIHZvaWQgY3JlYXRlX3NtbXUo Y29uc3QgU0JTQU1hY2hpbmVTdGF0ZSAqc21zLCBQQ0lCdXMgKmJ1cykKKyAgICAgfQorIH0KKyAK Ky1zdGF0aWMgdm9pZCBjcmVhdGVfcGNpZShTQlNBTWFjaGluZVN0YXRlICpzbXMpCisrc3RhdGlj IHZvaWQgY3JlYXRlX3BjaWUoU0JTQU1hY2hpbmVTdGF0ZSAqc21zLAorKyAgICAgICAgICAgICAg ICAgICAgICAgIE1lbW9yeVJlZ2lvbiAqc3lzbWVtLAorKyAgICAgICAgICAgICAgICAgICAgICAg IE1lbW9yeVJlZ2lvbiAqc2VjdXJlX3N5c21lbSkKKyB7CisgICAgIGh3YWRkciBiYXNlX2VjYW0g PSBzYnNhX3JlZl9tZW1tYXBbU0JTQV9QQ0lFX0VDQU1dLmJhc2U7CisgICAgIGh3YWRkciBzaXpl X2VjYW0gPSBzYnNhX3JlZl9tZW1tYXBbU0JTQV9QQ0lFX0VDQU1dLnNpemU7CitAQCAtNjg3LDcg KzY5NSw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9wY2llKFNCU0FNYWNoaW5lU3RhdGUgKnNtcykK KyAKKyAgICAgcGNpX2NyZWF0ZV9zaW1wbGUocGNpLT5idXMsIC0xLCAiYm9jaHMtZGlzcGxheSIp OworIAorLSAgICBjcmVhdGVfc21tdShzbXMsIHBjaS0+YnVzKTsKKysgICAgY3JlYXRlX3NtbXUo c21zLCBwY2ktPmJ1cywgc3lzbWVtLCBzZWN1cmVfc3lzbWVtKTsKKyB9CisgCisgc3RhdGljIHZv aWQgKnNic2FfcmVmX2R0Yihjb25zdCBzdHJ1Y3QgYXJtX2Jvb3RfaW5mbyAqYmluZm8sIGludCAq ZmR0X3NpemUpCitAQCAtODIzLDcgKzgzMSw3IEBAIHN0YXRpYyB2b2lkIHNic2FfcmVmX2luaXQo TWFjaGluZVN0YXRlICptYWNoaW5lKQorIAorICAgICBjcmVhdGVfeGhjaShzbXMpOworIAorLSAg ICBjcmVhdGVfcGNpZShzbXMpOworKyAgICBjcmVhdGVfcGNpZShzbXMsIHN5c21lbSwgc2VjdXJl X3N5c21lbSk7CisgCisgICAgIGNyZWF0ZV9zZWN1cmVfZWMoc2VjdXJlX3N5c21lbSk7CisgCitk aWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXUtY29tbW9uLmMgYi9ody9hcm0vc21tdS1jb21tb24uYwor aW5kZXggNTlkNjE0N2VjOS4uNzVkODQwZTM4OSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11LWNv bW1vbi5jCisrKysgYi9ody9hcm0vc21tdS1jb21tb24uYworQEAgLTk1Miw2ICs5NTIsMTMgQEAg c3RhdGljIHZvaWQgc21tdV9iYXNlX3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKipl cnJwKQorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCisrICAgIGdfYXNzZXJ0KHMtPm1lbW9y eSk7CisrICAgIGFkZHJlc3Nfc3BhY2VfaW5pdCgmcy0+bWVtb3J5X2FzLCBzLT5tZW1vcnksICJz bW11LW1lbW9yeS12aWV3Iik7CisrICAgIGlmIChzLT5zZWN1cmVfbWVtb3J5KSB7CisrICAgICAg ICBhZGRyZXNzX3NwYWNlX2luaXQoJnMtPnNlY3VyZV9tZW1vcnlfYXMsIHMtPnNlY3VyZV9tZW1v cnksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgInNtbXUtc2VjdXJlLW1lbW9yeS12aWV3 Iik7CisrICAgIH0KKysKKyAgICAgLyoKKyAgICAgICogV2Ugb25seSBhbGxvdyBkZWZhdWx0IFBD SWUgUm9vdCBDb21wbGV4KHBjaWUuMCkgb3IgcHhiLXBjaWUgYmFzZWQgZXh0cmEKKyAgICAgICog cm9vdCBjb21wbGV4ZXMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIFNNTVUuCitAQCAtMTAwMiw2ICsx MDA5LDEwIEBAIHN0YXRpYyBjb25zdCBQcm9wZXJ0eSBzbW11X2Rldl9wcm9wZXJ0aWVzW10gPSB7 CisgICAgIERFRklORV9QUk9QX0JPT0woInNtbXVfcGVyX2J1cyIsIFNNTVVTdGF0ZSwgc21tdV9w ZXJfYnVzLCBmYWxzZSksCisgICAgIERFRklORV9QUk9QX0xJTksoInByaW1hcnktYnVzIiwgU01N VVN0YXRlLCBwcmltYXJ5X2J1cywKKyAgICAgICAgICAgICAgICAgICAgICBUWVBFX1BDSV9CVVMs IFBDSUJ1cyAqKSwKKysgICAgREVGSU5FX1BST1BfTElOSygibWVtb3J5IiwgU01NVVN0YXRlLCBt ZW1vcnksCisrICAgICAgICAgICAgICAgICAgICAgVFlQRV9NRU1PUllfUkVHSU9OLCBNZW1vcnlS ZWdpb24gKiksCisrICAgIERFRklORV9QUk9QX0xJTksoInNlY3VyZS1tZW1vcnkiLCBTTU1VU3Rh dGUsIHNlY3VyZV9tZW1vcnksCisrICAgICAgICAgICAgICAgICAgICAgVFlQRV9NRU1PUllfUkVH SU9OLCBNZW1vcnlSZWdpb24gKiksCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBzbW11X2Jhc2VfY2xh c3NfaW5pdChPYmplY3RDbGFzcyAqa2xhc3MsIGNvbnN0IHZvaWQgKmRhdGEpCitkaWZmIC0tZ2l0 IGEvaHcvYXJtL3ZpcnQuYyBiL2h3L2FybS92aXJ0LmMKK2luZGV4IDViYjZiYTdkZTcuLmUzZTAy MzM0NzQgMTAwNjQ0CistLS0gYS9ody9hcm0vdmlydC5jCisrKysgYi9ody9hcm0vdmlydC5jCitA QCAtMTUyNiw4ICsxNTI2LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlX3NtbXV2M19kZXZfZHRiKFZp cnRNYWNoaW5lU3RhdGUgKnZtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAsIHZt cy0+aW9tbXVfcGhhbmRsZSwgMHgwLCAweDEwMDAwKTsKKyB9CisgCistc3RhdGljIHZvaWQgY3Jl YXRlX3NtbXUoY29uc3QgVmlydE1hY2hpbmVTdGF0ZSAqdm1zLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIFBDSUJ1cyAqYnVzKQorK3N0YXRpYyB2b2lkIGNyZWF0ZV9zbW11KGNvbnN0IFZpcnRN YWNoaW5lU3RhdGUgKnZtcywgUENJQnVzICpidXMpCisgeworICAgICBWaXJ0TWFjaGluZUNsYXNz ICp2bWMgPSBWSVJUX01BQ0hJTkVfR0VUX0NMQVNTKHZtcyk7CisgICAgIGludCBpcnEgPSAgdm1z LT5pcnFtYXBbVklSVF9TTU1VXTsKK0BAIC0xNTQ3LDYgKzE1NDYsMTAgQEAgc3RhdGljIHZvaWQg Y3JlYXRlX3NtbXUoY29uc3QgVmlydE1hY2hpbmVTdGF0ZSAqdm1zLAorICAgICB9CisgICAgIG9i amVjdF9wcm9wZXJ0eV9zZXRfbGluayhPQkpFQ1QoZGV2KSwgInByaW1hcnktYnVzIiwgT0JKRUNU KGJ1cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3JfYWJvcnQpOworKyAg ICBvYmplY3RfcHJvcGVydHlfc2V0X2xpbmsoT0JKRUNUKGRldiksICJtZW1vcnkiLCBPQkpFQ1Qo dm1zLT5zeXNtZW0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yX2Fib3J0 KTsKKysgICAgb2JqZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChkZXYpLCAic2VjdXJlLW1l bW9yeSIsIE9CSkVDVCh2bXMtPnNlY3VyZV9zeXNtZW0pLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmVycm9yX2Fib3J0KTsKKyAgICAgc3lzYnVzX3JlYWxpemVfYW5kX3VucmVmKFNZ U19CVVNfREVWSUNFKGRldiksICZlcnJvcl9mYXRhbCk7CisgICAgIHN5c2J1c19tbWlvX21hcChT WVNfQlVTX0RFVklDRShkZXYpLCAwLCBiYXNlKTsKKyAgICAgZm9yIChpID0gMDsgaSA8IE5VTV9T TU1VX0lSUVM7IGkrKykgeworQEAgLTE2MjEsNiArMTYyNCw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0 ZV9wY2llKFZpcnRNYWNoaW5lU3RhdGUgKnZtcykKKyAgICAgbWVtb3J5X3JlZ2lvbl9pbml0X2Fs aWFzKGVjYW1fYWxpYXMsIE9CSkVDVChkZXYpLCAicGNpZS1lY2FtIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVjYW1fcmVnLCAwLCBzaXplX2VjYW0pOworICAgICBtZW1vcnlfcmVn aW9uX2FkZF9zdWJyZWdpb24oZ2V0X3N5c3RlbV9tZW1vcnkoKSwgYmFzZV9lY2FtLCBlY2FtX2Fs aWFzKTsKKysgICAgdm1zLT5zeXNtZW0gPSBnZXRfc3lzdGVtX21lbW9yeSgpOworIAorICAgICAv KiBNYXAgdGhlIE1NSU8gd2luZG93IGludG8gc3lzdGVtIGFkZHJlc3Mgc3BhY2Ugc28gYXMgdG8g ZXhwb3NlCisgICAgICAqIHRoZSBzZWN0aW9uIG9mIFBDSSBNTUlPIHNwYWNlIHdoaWNoIHN0YXJ0 cyBhdCB0aGUgc2FtZSBiYXNlIGFkZHJlc3MKK0BAIC0yMjc5LDYgKzIyODMsNyBAQCBzdGF0aWMg dm9pZCBtYWNodmlydF9pbml0KE1hY2hpbmVTdGF0ZSAqbWFjaGluZSkKKyAgICAgICAgICAqIGRl dmljZXMgZ28gaW4gYXQgaGlnaGVyIHByaW9yaXR5IGFuZCB0YWtlIHByZWNlZGVuY2UuCisgICAg ICAgICAgKi8KKyAgICAgICAgIHNlY3VyZV9zeXNtZW0gPSBnX25ldyhNZW1vcnlSZWdpb24sIDEp OworKyAgICAgICAgdm1zLT5zZWN1cmVfc3lzbWVtID0gc2VjdXJlX3N5c21lbTsKKyAgICAgICAg IG1lbW9yeV9yZWdpb25faW5pdChzZWN1cmVfc3lzbWVtLCBPQkpFQ1QobWFjaGluZSksICJzZWN1 cmUtbWVtb3J5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSU5UNjRfTUFYKTsKKyAg ICAgICAgIG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbl9vdmVybGFwKHNlY3VyZV9zeXNtZW0s IDAsIHN5c21lbSwgLTEpOworQEAgLTMwODIsNiArMzA4NywxMCBAQCBzdGF0aWMgdm9pZCB2aXJ0 X21hY2hpbmVfZGV2aWNlX3ByZV9wbHVnX2NiKEhvdHBsdWdIYW5kbGVyICpob3RwbHVnX2RldiwK KyAgICAgICAgIH0gZWxzZSBpZiAodm1zLT5pb21tdSA9PSBWSVJUX0lPTU1VX05PTkUpIHsKKyAg ICAgICAgICAgICAvKiBUaGUgbmV3IFNNTVV2MyBkZXZpY2UgaXMgc3BlY2lmaWMgdG8gdGhlIFBD SSBidXMgKi8KKyAgICAgICAgICAgICBvYmplY3RfcHJvcGVydHlfc2V0X2Jvb2woT0JKRUNUKGRl diksICJzbW11X3Blcl9idXMiLCB0cnVlLCBOVUxMKTsKKysgICAgICAgICAgICBvYmplY3RfcHJv cGVydHlfc2V0X2xpbmsoT0JKRUNUKGRldiksICJtZW1vcnkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPQkpFQ1Qodm1zLT5zeXNtZW0pLCBOVUxMKTsKKysgICAgICAg ICAgICBvYmplY3RfcHJvcGVydHlfc2V0X2xpbmsoT0JKRUNUKGRldiksICJzZWN1cmUtbWVtb3J5 IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKRUNUKHZtcy0+c2Vj dXJlX3N5c21lbSksIE5VTEwpOworICAgICAgICAgfQorICAgICB9CisgfQorZGlmZiAtLWdpdCBh L2luY2x1ZGUvaHcvYXJtL3NtbXUtY29tbW9uLmggYi9pbmNsdWRlL2h3L2FybS9zbW11LWNvbW1v bi5oCitpbmRleCBkMzA3ZGRkOTUyLi5lNjI2YzZjNTY3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9o dy9hcm0vc21tdS1jb21tb24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdS1jb21tb24uaAor QEAgLTE2Miw2ICsxNjIsMTAgQEAgc3RydWN0IFNNTVVTdGF0ZSB7CisgICAgIHVpbnQ4X3QgYnVz X251bTsKKyAgICAgUENJQnVzICpwcmltYXJ5X2J1czsKKyAgICAgYm9vbCBzbW11X3Blcl9idXM7 IC8qIFNNTVUgaXMgc3BlY2lmaWMgdG8gdGhlIHByaW1hcnlfYnVzICovCisrICAgIE1lbW9yeVJl Z2lvbiAqbWVtb3J5OworKyAgICBBZGRyZXNzU3BhY2UgbWVtb3J5X2FzOworKyAgICBNZW1vcnlS ZWdpb24gKnNlY3VyZV9tZW1vcnk7CisrICAgIEFkZHJlc3NTcGFjZSBzZWN1cmVfbWVtb3J5X2Fz OworIH07CisgCisgc3RydWN0IFNNTVVCYXNlQ2xhc3MgeworZGlmZiAtLWdpdCBhL2luY2x1ZGUv aHcvYXJtL3ZpcnQuaCBiL2luY2x1ZGUvaHcvYXJtL3ZpcnQuaAoraW5kZXggOThiODc3YzhiOS4u OGQ5MGI2NmI4NyAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3ZpcnQuaAorKysrIGIvaW5j bHVkZS9ody9hcm0vdmlydC5oCitAQCAtMTgxLDYgKzE4MSw4IEBAIHN0cnVjdCBWaXJ0TWFjaGlu ZVN0YXRlIHsKKyAgICAgYm9vbCBuc19lbDJfdmlydF90aW1lcl9pcnE7CisgICAgIENYTFN0YXRl IGN4bF9kZXZpY2VzX3N0YXRlOworICAgICBib29sIGxlZ2FjeV9zbW11djNfcHJlc2VudDsKKysg ICAgTWVtb3J5UmVnaW9uICpzeXNtZW07CisrICAgIE1lbW9yeVJlZ2lvbiAqc2VjdXJlX3N5c21l bTsKKyB9OworIAorICNkZWZpbmUgVklSVF9FQ0FNX0lEKGhpZ2gpIChoaWdoID8gVklSVF9ISUdI X1BDSUVfRUNBTSA6IFZJUlRfUENJRV9FQ0FNKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBh L2t2bS1ody1hcm0tc21tdS1jb21tb24tRmFjdG9yLW91dC1jb21tb24taGVscGVyLWZ1bmN0aW9u LnBhdGNoIGIva3ZtLWh3LWFybS1zbW11LWNvbW1vbi1GYWN0b3Itb3V0LWNvbW1vbi1oZWxwZXIt ZnVuY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjZjY0 MAotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdS1jb21tb24tRmFjdG9yLW91dC1j b21tb24taGVscGVyLWZ1bmN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMTI0IEBACitGcm9tIDkxODA1 NWI0MTEwNWExMGMyMzc4ZmZkNmQ2YzI0NTQzYTY2YTExZTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0Rh dGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMDMv MTExXSBody9hcm0vc21tdS1jb21tb246IEZhY3RvciBvdXQgY29tbW9uIGhlbHBlcgorIGZ1bmN0 aW9ucyBhbmQgZXhwb3J0CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JI LUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1 ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBw b3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVy IDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQu Y29tPgorUkgtQ29tbWl0OiBbMy8xMTFdIDI0NzI0YjExMjY4N2VhNTQ1NzAwY2RmOTU4MDIyMGI4 M2MzMDI3MDcgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhh dC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0ZhY3RvciBvdXQgY29tbW9uIGhl bHBlciBmdW5jdGlvbnMgYW5kIGV4cG9ydC4gU3Vic2VxdWVudCBwYXRjaGVzIGZvcgorc21tdXYz IGFjY2VsIHN1cHBvcnQgd2lsbCBtYWtlIHVzZSBvZiB0aGlzLgorCitTaWduZWQtb2ZmLWJ5OiBO aWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1 bSA8c2hhbWVlcmFsaS5rb2xvdGh1bS50aG9kaUBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IEpv bmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Rlc3RlZC1ieTog WmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Rlc3RlZC1ieTogRXJpYyBB dWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xv dGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0 Mi4yNTM5NjUtNC1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIg TWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgOGQ5NjMzZjFlZGJiZGY2OTNmMzkxMDZhMjNkYzAyMDQ3NmNjMmViYykKK1NpZ25lZC1v ZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9z bW11LWNvbW1vbi5jICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KKyBpbmNsdWRlL2h3L2FybS9zbW11LWNvbW1vbi5oIHwgIDYgKysrKysKKyAyIGZpbGVz IGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvaHcvYXJtL3NtbXUtY29tbW9uLmMgYi9ody9hcm0vc21tdS1jb21tb24uYworaW5kZXggNjJh NzYxMjE4NC4uNTlkNjE0N2VjOSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11LWNvbW1vbi5jCisr KysgYi9ody9hcm0vc21tdS1jb21tb24uYworQEAgLTg0NywxMiArODQ3LDI0IEBAIFNNTVVQY2lC dXMgKnNtbXVfZmluZF9zbW11X3BjaWJ1cyhTTU1VU3RhdGUgKnMsIHVpbnQ4X3QgYnVzX251bSkK KyAgICAgcmV0dXJuIE5VTEw7CisgfQorIAorLXN0YXRpYyBBZGRyZXNzU3BhY2UgKnNtbXVfZmlu ZF9hZGRfYXMoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50IGRldmZuKQorK3ZvaWQgc21t dV9pbml0X3NkZXYoU01NVVN0YXRlICpzLCBTTU1VRGV2aWNlICpzZGV2LCBQQ0lCdXMgKmJ1cywg aW50IGRldmZuKQorIHsKKy0gICAgU01NVVN0YXRlICpzID0gb3BhcXVlOworLSAgICBTTU1VUGNp QnVzICpzYnVzID0gZ19oYXNoX3RhYmxlX2xvb2t1cChzLT5zbW11X3BjaWJ1c19ieV9idXNwdHIs IGJ1cyk7CistICAgIFNNTVVEZXZpY2UgKnNkZXY7CisgICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg aW5kZXg7CisrICAgIGdfYXV0b2ZyZWUgY2hhciAqbmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiJXMt JWQtJWQiLCBzLT5tcnR5cGVuYW1lLCBkZXZmbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluZGV4KyspOworKyAgICBzZGV2LT5zbW11ID0gczsKKysgICAg c2Rldi0+YnVzID0gYnVzOworKyAgICBzZGV2LT5kZXZmbiA9IGRldmZuOworKworKyAgICBtZW1v cnlfcmVnaW9uX2luaXRfaW9tbXUoJnNkZXYtPmlvbW11LCBzaXplb2Yoc2Rldi0+aW9tbXUpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+bXJ0eXBlbmFtZSwgT0JKRUNUKHMpLCBu YW1lLCBVSU5UNjRfTUFYKTsKKysgICAgYWRkcmVzc19zcGFjZV9pbml0KCZzZGV2LT5hcywgTUVN T1JZX1JFR0lPTigmc2Rldi0+aW9tbXUpLCBuYW1lKTsKKysgICAgdHJhY2Vfc21tdV9hZGRfbXIo bmFtZSk7CisrfQorKworK1NNTVVQY2lCdXMgKnNtbXVfZ2V0X3NidXMoU01NVVN0YXRlICpzLCBQ Q0lCdXMgKmJ1cykKKyt7CisrICAgIFNNTVVQY2lCdXMgKnNidXMgPSBnX2hhc2hfdGFibGVfbG9v a3VwKHMtPnNtbXVfcGNpYnVzX2J5X2J1c3B0ciwgYnVzKTsKKyAKKyAgICAgaWYgKCFzYnVzKSB7 CisgICAgICAgICBzYnVzID0gZ19tYWxsb2MwKHNpemVvZihTTU1VUGNpQnVzKSArCitAQCAtODYx LDIzICs4NzMsMTkgQEAgc3RhdGljIEFkZHJlc3NTcGFjZSAqc21tdV9maW5kX2FkZF9hcyhQQ0lC dXMgKmJ1cywgdm9pZCAqb3BhcXVlLCBpbnQgZGV2Zm4pCisgICAgICAgICBnX2hhc2hfdGFibGVf aW5zZXJ0KHMtPnNtbXVfcGNpYnVzX2J5X2J1c3B0ciwgYnVzLCBzYnVzKTsKKyAgICAgfQorIAor KyAgICByZXR1cm4gc2J1czsKKyt9CisrCisrc3RhdGljIEFkZHJlc3NTcGFjZSAqc21tdV9maW5k X2FkZF9hcyhQQ0lCdXMgKmJ1cywgdm9pZCAqb3BhcXVlLCBpbnQgZGV2Zm4pCisreworKyAgICBT TU1VU3RhdGUgKnMgPSBvcGFxdWU7CisrICAgIFNNTVVQY2lCdXMgKnNidXMgPSBzbW11X2dldF9z YnVzKHMsIGJ1cyk7CisrICAgIFNNTVVEZXZpY2UgKnNkZXY7CisrCisgICAgIHNkZXYgPSBzYnVz LT5wYmRldltkZXZmbl07CisgICAgIGlmICghc2RldikgeworLSAgICAgICAgY2hhciAqbmFtZSA9 IGdfc3RyZHVwX3ByaW50ZigiJXMtJWQtJWQiLCBzLT5tcnR5cGVuYW1lLCBkZXZmbiwgaW5kZXgr Kyk7CistCisgICAgICAgICBzZGV2ID0gc2J1cy0+cGJkZXZbZGV2Zm5dID0gZ19uZXcwKFNNTVVE ZXZpY2UsIDEpOworLQorLSAgICAgICAgc2Rldi0+c21tdSA9IHM7CistICAgICAgICBzZGV2LT5i dXMgPSBidXM7CistICAgICAgICBzZGV2LT5kZXZmbiA9IGRldmZuOworLQorLSAgICAgICAgbWVt b3J5X3JlZ2lvbl9pbml0X2lvbW11KCZzZGV2LT5pb21tdSwgc2l6ZW9mKHNkZXYtPmlvbW11KSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5tcnR5cGVuYW1lLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVChzKSwgbmFtZSwgVUlOVDY0X01BWCk7 CistICAgICAgICBhZGRyZXNzX3NwYWNlX2luaXQoJnNkZXYtPmFzLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1FTU9SWV9SRUdJT04oJnNkZXYtPmlvbW11KSwgbmFtZSk7CistICAgICAg ICB0cmFjZV9zbW11X2FkZF9tcihuYW1lKTsKKy0gICAgICAgIGdfZnJlZShuYW1lKTsKKysgICAg ICAgIHNtbXVfaW5pdF9zZGV2KHMsIHNkZXYsIGJ1cywgZGV2Zm4pOworICAgICB9CisgCisgICAg IHJldHVybiAmc2Rldi0+YXM7CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9hcm0vc21tdS1jb21t b24uaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXUtY29tbW9uLmgKK2luZGV4IDgwZDBmZWNmZGUuLmQz MDdkZGQ5NTIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11LWNvbW1vbi5oCisrKysg Yi9pbmNsdWRlL2h3L2FybS9zbW11LWNvbW1vbi5oCitAQCAtMTgwLDYgKzE4MCwxMiBAQCBPQkpF Q1RfREVDTEFSRV9UWVBFKFNNTVVTdGF0ZSwgU01NVUJhc2VDbGFzcywgQVJNX1NNTVUpCisgLyog UmV0dXJuIHRoZSBTTU1VUGNpQnVzIGhhbmRsZSBhc3NvY2lhdGVkIHRvIGEgUENJIGJ1cyBudW1i ZXIgKi8KKyBTTU1VUGNpQnVzICpzbW11X2ZpbmRfc21tdV9wY2lidXMoU01NVVN0YXRlICpzLCB1 aW50OF90IGJ1c19udW0pOworIAorKy8qIFJldHVybiB0aGUgU01NVVBjaUJ1cyBoYW5kbGUgYXNz b2NpYXRlZCB0byBhIFBDSSBidXMgKi8KKytTTU1VUGNpQnVzICpzbW11X2dldF9zYnVzKFNNTVVT dGF0ZSAqcywgUENJQnVzICpidXMpOworKworKy8qIEluaXRpYWxpemUgU01NVURldmljZSBoYW5k bGUgYXNzb2NpYXRlZCB0byBhIFNNTVVQY2lCdXMgKi8KKyt2b2lkIHNtbXVfaW5pdF9zZGV2KFNN TVVTdGF0ZSAqcywgU01NVURldmljZSAqc2RldiwgUENJQnVzICpidXMsIGludCBkZXZmbik7Cisr CisgLyogUmV0dXJuIHRoZSBzdHJlYW0gSUQgb2YgYW4gU01NVSBkZXZpY2UgKi8KKyBzdGF0aWMg aW5saW5lIHVpbnQxNl90IHNtbXVfZ2V0X3NpZChTTU1VRGV2aWNlICpzZGV2KQorIHsKKy0tIAor Mi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXUtY29tbW9uLU1ha2UtaW9tbXUt b3BzLXBhcnQtb2YtU01NVVN0YXRlLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11LWNvbW1vbi1NYWtl LWlvbW11LW9wcy1wYXJ0LW9mLVNNTVVTdGF0ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mZTFhMDBjCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11 LWNvbW1vbi1NYWtlLWlvbW11LW9wcy1wYXJ0LW9mLVNNTVVTdGF0ZS5wYXRjaApAQCAtMCwwICsx LDc3IEBACitGcm9tIDA2MGI4MTdlYmJkNzdkM2VjMGE3YTlkN2JkZmNlOGRmNGNlM2U3ZTYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDQgKzAwMDAKK1N1 YmplY3Q6IFtQQVRDSCAwMDYvMTExXSBody9hcm0vc21tdS1jb21tb246IE1ha2UgaW9tbXUgb3Bz IHBhcnQgb2YgU01NVVN0YXRlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VS ZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBz dXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29h dGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRo YXQuY29tPgorUkgtQ29tbWl0OiBbNi8xMTFdIDFhMTIwMTI1YmNlOWRmMWQ2ODk3ZDcxZDY2ZWQ5 NGY3MmMzYTYxNWQgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3Jl ZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK01ha2UgaW9tbXUgb3BzIHBh cnQgb2YgU01NVVN0YXRlIGFuZCBzZXQgdG8gdGhlIGN1cnJlbnQgZGVmYXVsdCBzbW11X29wcy4K K05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLiBUaGlzIHdpbGwgYWxsb3fCoFNNTVV2MyBh Y2NlbCBpbXBsZW1lbnRhdGlvbgordG8gc2V0IGHCoGRpZmZlcmVudMKgaW9tbXUgb3BzIGxhdGVy LgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3 ZWkuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4K K1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQt Ynk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitUZXN0ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIg S29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYx MDQzNDIuMjUzOTY1LTUtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBl dGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZy b20gY29tbWl0IDc5N2ZmZmVkYWM5MzU1NDk1YzAxMGExMmQ0NzY2NTE3ZGIyYWE5MTEpCitTaWdu ZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9h cm0vc21tdS1jb21tb24uYyAgICAgICAgIHwgNyArKysrKy0tCisgaW5jbHVkZS9ody9hcm0vc21t dS1jb21tb24uaCB8IDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXUtY29tbW9uLmMgYi9ody9hcm0v c21tdS1jb21tb24uYworaW5kZXggNzVkODQwZTM4OS4uZDcwY2E4MTc3NSAxMDA2NDQKKy0tLSBh L2h3L2FybS9zbW11LWNvbW1vbi5jCisrKysgYi9ody9hcm0vc21tdS1jb21tb24uYworQEAgLTk1 OSw2ICs5NTksOSBAQCBzdGF0aWMgdm9pZCBzbW11X2Jhc2VfcmVhbGl6ZShEZXZpY2VTdGF0ZSAq ZGV2LCBFcnJvciAqKmVycnApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNtbXUtc2Vj dXJlLW1lbW9yeS12aWV3Iik7CisgICAgIH0KKyAKKysgICAgaWYgKCFzLT5pb21tdV9vcHMpIHsK KysgICAgICAgIHMtPmlvbW11X29wcyA9ICZzbW11X29wczsKKysgICAgfQorICAgICAvKgorICAg ICAgKiBXZSBvbmx5IGFsbG93IGRlZmF1bHQgUENJZSBSb290IENvbXBsZXgocGNpZS4wKSBvciBw eGItcGNpZSBiYXNlZCBleHRyYQorICAgICAgKiByb290IGNvbXBsZXhlcyB0byBiZSBhc3NvY2lh dGVkIHdpdGggU01NVS4KK0BAIC05NzgsOSArOTgxLDkgQEAgc3RhdGljIHZvaWQgc21tdV9iYXNl X3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKiplcnJwKQorICAgICAgICAgfQorIAor ICAgICAgICAgaWYgKHMtPnNtbXVfcGVyX2J1cykgeworLSAgICAgICAgICAgIHBjaV9zZXR1cF9p b21tdV9wZXJfYnVzKHBjaV9idXMsICZzbW11X29wcywgcyk7CisrICAgICAgICAgICAgcGNpX3Nl dHVwX2lvbW11X3Blcl9idXMocGNpX2J1cywgcy0+aW9tbXVfb3BzLCBzKTsKKyAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgcGNpX3NldHVwX2lvbW11KHBjaV9idXMsICZzbW11X29wcywg cyk7CisrICAgICAgICAgICAgcGNpX3NldHVwX2lvbW11KHBjaV9idXMsIHMtPmlvbW11X29wcywg cyk7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm47CisgICAgIH0KK2RpZmYgLS1naXQgYS9p bmNsdWRlL2h3L2FybS9zbW11LWNvbW1vbi5oIGIvaW5jbHVkZS9ody9hcm0vc21tdS1jb21tb24u aAoraW5kZXggZTYyNmM2YzU2Ny4uZmZjYWM5OTFkZSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcv YXJtL3NtbXUtY29tbW9uLmgKKysrKyBiL2luY2x1ZGUvaHcvYXJtL3NtbXUtY29tbW9uLmgKK0BA IC0xNjYsNiArMTY2LDcgQEAgc3RydWN0IFNNTVVTdGF0ZSB7CisgICAgIEFkZHJlc3NTcGFjZSBt ZW1vcnlfYXM7CisgICAgIE1lbW9yeVJlZ2lvbiAqc2VjdXJlX21lbW9yeTsKKyAgICAgQWRkcmVz c1NwYWNlIHNlY3VyZV9tZW1vcnlfYXM7CisrICAgIGNvbnN0IFBDSUlPTU1VT3BzICppb21tdV9v cHM7CisgfTsKKyAKKyBzdHJ1Y3QgU01NVUJhc2VDbGFzcyB7CistLSAKKzIuNTIuMAorCgpkaWZm IC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtQWRkLWFjY2VsLXByb3BlcnR5LWZvci1TTU1VdjMt ZGV2aWNlLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtQWRkLWFjY2VsLXByb3BlcnR5LWZvci1T TU1VdjMtZGV2aWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1 NGY2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1BZGQtYWNjZWwtcHJv cGVydHktZm9yLVNNTVV2My1kZXZpY2UucGF0Y2gKQEAgLTAsMCArMSwxNzkgQEAKK0Zyb20gM2Yy ZDNmNWMxZDlhNjQwMDlhYmZhMDNmMDFkZGQyNDExNDQ5ZmY1ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgor RGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSArMDAwMAorU3ViamVjdDogW1BBVENIIDAz Ni8xMTFdIGh3L2FybS9zbW11djM6IEFkZCBhY2NlbCBwcm9wZXJ0eSBmb3IgU01NVXYzIGRldmlj ZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1V IFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTog UkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2 IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5j b20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1p dDogWzM2LzExMV0gYmFiYTQ0YWMwMWY3NmJjZWEwNGM0MzY2OTk0NDQxYTU1Y2I3Y2I1ZSAoZWF1 Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5u ZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworQWRkIGFuICJhY2NlbCIgcHJvcGVydHkgdG8gZW5hYmxl IFNNTVV2MyBhY2NlbGVyYXRvciBtb2RlLgorCitBY2NlbGVyYXRvciBtb2RlIHJlbGllcyBvbiBJ T1JUIFJNUiBlbnRyaWVzIGZvciBNU0kgc3VwcG9ydCBhbmQgaXMKK3RoZXJlZm9yZSBub3Qgc3Vw cG9ydGVkIHdoZW4gYm9vdGluZyB3aXRoIGEgZGV2aWNlIHRyZWUuCisKK0luIHRoaXMgbW9kZSwg dGhlIGhvc3QgU01NVXYzIG9wZXJhdGVzIGluIG5lc3RlZCB0cmFuc2xhdGlvbgorKFN0YWdlLTEg KyBTdGFnZS0yKSwgd2l0aCB0aGUgZ3Vlc3Qgb3duaW5nIHRoZSBTdGFnZS0xIHBhZ2UgdGFibGVz LgorRXhwb3NlIG9ubHkgU3RhZ2UtMSB0byB0aGUgZ3Vlc3QgdG8gZW5zdXJlIGl0IHVzZXMgdGhl IGNvcnJlY3QgcGFnZQordGFibGUgZm9ybWF0CisKK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4g PG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5h cm8ub3JnPgorUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25A aHVhd2VpLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29t PgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5j b20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMjktc2tvbG90aHVtdGhvQG52 aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGlu YXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDZjYzNhNjIxYzZmMTg0ZmZhMDRi ZjY4ZjdhNTczMjNjNjNmNmVmNTYpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1 Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLmMgICAgICAgICAgfCAzMiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGh3L2FybS92aXJ0LWFjcGktYnVpbGQuYyB8 ICA0ICstLS0KKyBody9hcm0vdmlydC5jICAgICAgICAgICAgfCAyMiArKysrKysrKysrKysrLS0t LS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11djMuYworaW5k ZXggNmZhYTY2MGJhYi4uMGQyZjVhOWIwYyAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMuYwor KysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtMTkxNiw2ICsxOTE2LDI5IEBAIHN0YXRpYyB2b2lk IHNtbXVfcmVzZXRfZXhpdChPYmplY3QgKm9iaiwgUmVzZXRUeXBlIHR5cGUpCisgICAgIHNtbXV2 M19hY2NlbF9yZXNldChzKTsKKyB9CisgCisrc3RhdGljIGJvb2wgc21tdV92YWxpZGF0ZV9wcm9w ZXJ0eShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorK3sKKysjaWZuZGVmIENPTkZJR19B Uk1fU01NVVYzX0FDQ0VMCisrICAgIGlmIChzLT5hY2NlbCkgeworKyAgICAgICAgZXJyb3Jfc2V0 ZyhlcnJwLCAiYWNjZWw9b24gc3VwcG9ydCBub3QgY29tcGlsZWQgaW4iKTsKKysgICAgICAgIHJl dHVybiBmYWxzZTsKKysgICAgfQorKyNlbmRpZgorKworKyAgICBpZiAoIXMtPmFjY2VsKSB7Cisr ICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgfQorKworKyAgICAvKiBJZiBubyBzdGFnZSBzcGVj aWZpZWQsIFNNTVV2MyBkZWZhdWx0cyB0byBzdGFnZSAxICovCisrICAgIGlmIChzLT5zdGFnZSAm JiBzdHJjbXAocy0+c3RhZ2UsICIxIikpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwKKysg ICAgICAgICAgICAgICAgICAgIk9ubHkgc3RhZ2UxIGlzIHN1cHBvcnRlZCBmb3IgU01NVXYzIHdp dGggYWNjZWw9b24iKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKworKyAgICBy ZXR1cm4gdHJ1ZTsKKyt9CisrCisgc3RhdGljIHZvaWQgc21tdV9yZWFsaXplKERldmljZVN0YXRl ICpkLCBFcnJvciAqKmVycnApCisgeworICAgICBTTU1VU3RhdGUgKnN5cyA9IEFSTV9TTU1VKGQp OworQEAgLTE5MjQsNiArMTk0NywxMCBAQCBzdGF0aWMgdm9pZCBzbW11X3JlYWxpemUoRGV2aWNl U3RhdGUgKmQsIEVycm9yICoqZXJycCkKKyAgICAgU3lzQnVzRGV2aWNlICpkZXYgPSBTWVNfQlVT X0RFVklDRShkKTsKKyAgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7CisgCisrICAgIGlmICgh c21tdV92YWxpZGF0ZV9wcm9wZXJ0eShzLCBlcnJwKSkgeworKyAgICAgICAgcmV0dXJuOworKyAg ICB9CisrCisgICAgIGlmIChzLT5hY2NlbCkgeworICAgICAgICAgc21tdXYzX2FjY2VsX2luaXQo cyk7CisgICAgICAgICBlcnJvcl9zZXRnKCZzLT5taWdyYXRpb25fYmxvY2tlciwgIk1pZ3JhdGlv biBub3Qgc3VwcG9ydGVkIHdpdGggU01NVXYzICIKK0BAIC0yMDI5LDYgKzIwNTYsNyBAQCBzdGF0 aWMgY29uc3QgUHJvcGVydHkgc21tdXYzX3Byb3BlcnRpZXNbXSA9IHsKKyAgICAgICogRGVmYXVs dHMgdG8gc3RhZ2UgMQorICAgICAgKi8KKyAgICAgREVGSU5FX1BST1BfU1RSSU5HKCJzdGFnZSIs IFNNTVV2M1N0YXRlLCBzdGFnZSksCisrICAgIERFRklORV9QUk9QX0JPT0woImFjY2VsIiwgU01N VXYzU3RhdGUsIGFjY2VsLCBmYWxzZSksCisgICAgIC8qIEdQQSBvZiBNU0kgZG9vcmJlbGwsIGZv ciBTTU1VdjMgYWNjZWwgdXNlLiAqLworICAgICBERUZJTkVfUFJPUF9VSU5UNjQoIm1zaS1ncGEi LCBTTU1VdjNTdGF0ZSwgbXNpX2dwYSwgMCksCisgfTsKK0BAIC0yMDUyLDYgKzIwODAsMTAgQEAg c3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2 b2lkICpkYXRhKQorICAgICBkZXZpY2VfY2xhc3Nfc2V0X3Byb3BzKGRjLCBzbW11djNfcHJvcGVy dGllcyk7CisgICAgIGRjLT5ob3RwbHVnZ2FibGUgPSBmYWxzZTsKKyAgICAgZGMtPnVzZXJfY3Jl YXRhYmxlID0gdHJ1ZTsKKysKKysgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlw dGlvbihrbGFzcywgImFjY2VsIiwKKysgICAgICAgICJFbmFibGUgU01NVXYzIGFjY2VsZXJhdG9y IHN1cHBvcnQuIEFsbG93cyBob3N0IFNNTVV2MyB0byBiZSAiCisrICAgICAgICAiY29uZmlndXJl ZCBpbiBuZXN0ZWQgbW9kZSBmb3IgdmZpby1wY2kgZGV2IGFzc2lnbm1lbnQiKTsKKyB9CisgCisg c3RhdGljIGludCBzbW11djNfbm90aWZ5X2ZsYWdfY2hhbmdlZChJT01NVU1lbW9yeVJlZ2lvbiAq aW9tbXUsCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jIGIvaHcvYXJtL3Zp cnQtYWNwaS1idWlsZC5jCitpbmRleCAxMzIzZDFhMGRhLi4zM2M2NTE5ZjBhIDEwMDY0NAorLS0t IGEvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jCisrKysgYi9ody9hcm0vdmlydC1hY3BpLWJ1aWxk LmMKK0BAIC00MDYsOSArNDA2LDcgQEAgc3RhdGljIGludCBpb3J0X3NtbXV2M19kZXZpY2VzKE9i amVjdCAqb2JqLCB2b2lkICpvcGFxdWUpCisgICAgIH0KKyAKKyAgICAgYnVzID0gUENJX0JVUyhv YmplY3RfcHJvcGVydHlfZ2V0X2xpbmsob2JqLCAicHJpbWFyeS1idXMiLCAmZXJyb3JfYWJvcnQp KTsKKy0gICAgaWYgKG9iamVjdF9wcm9wZXJ0eV9maW5kKG9iaiwgImFjY2VsIikpIHsKKy0gICAg ICAgIHNkZXYuYWNjZWwgPSBvYmplY3RfcHJvcGVydHlfZ2V0X2Jvb2wob2JqLCAiYWNjZWwiLCAm ZXJyb3JfYWJvcnQpOworLSAgICB9CisrICAgIHNkZXYuYWNjZWwgPSBvYmplY3RfcHJvcGVydHlf Z2V0X2Jvb2wob2JqLCAiYWNjZWwiLCAmZXJyb3JfYWJvcnQpOworICAgICBwYnVzID0gUExBVEZP Uk1fQlVTX0RFVklDRSh2bXMtPnBsYXRmb3JtX2J1c19kZXYpOworICAgICBzYmRldiA9IFNZU19C VVNfREVWSUNFKG9iaik7CisgICAgIHNkZXYuYmFzZSA9IHBsYXRmb3JtX2J1c19nZXRfbW1pb19h ZGRyKHBidXMsIHNiZGV2LCAwKTsKK2RpZmYgLS1naXQgYS9ody9hcm0vdmlydC5jIGIvaHcvYXJt L3ZpcnQuYworaW5kZXggNjcyYjhkOTEyYy4uNTQ4NmFmNDQ1NiAxMDA2NDQKKy0tLSBhL2h3L2Fy bS92aXJ0LmMKKysrKyBiL2h3L2FybS92aXJ0LmMKK0BAIC0xNTAzLDggKzE1MDMsOCBAQCBzdGF0 aWMgdm9pZCBjcmVhdGVfc21tdXYzX2R0X2JpbmRpbmdzKGNvbnN0IFZpcnRNYWNoaW5lU3RhdGUg KnZtcywgaHdhZGRyIGJhc2UsCisgICAgIGdfZnJlZShub2RlKTsKKyB9CisgCistc3RhdGljIHZv aWQgY3JlYXRlX3NtbXV2M19kZXZfZHRiKFZpcnRNYWNoaW5lU3RhdGUgKnZtcywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlU3RhdGUgKmRldiwgUENJQnVzICpidXMp Cisrc3RhdGljIHZvaWQgY3JlYXRlX3NtbXV2M19kZXZfZHRiKFZpcnRNYWNoaW5lU3RhdGUgKnZt cywgRGV2aWNlU3RhdGUgKmRldiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UENJQnVzICpidXMsIEVycm9yICoqZXJycCkKKyB7CisgICAgIFBsYXRmb3JtQnVzRGV2aWNlICpw YnVzID0gUExBVEZPUk1fQlVTX0RFVklDRSh2bXMtPnBsYXRmb3JtX2J1c19kZXYpOworICAgICBT eXNCdXNEZXZpY2UgKnNiZGV2ID0gU1lTX0JVU19ERVZJQ0UoZGV2KTsKK0BAIC0xNTEyLDEwICsx NTEyLDE1IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9zbW11djNfZGV2X2R0YihWaXJ0TWFjaGluZVN0 YXRlICp2bXMsCisgICAgIGh3YWRkciBiYXNlID0gcGxhdGZvcm1fYnVzX2dldF9tbWlvX2FkZHIo cGJ1cywgc2JkZXYsIDApOworICAgICBNYWNoaW5lU3RhdGUgKm1zID0gTUFDSElORSh2bXMpOwor IAorLSAgICBpZiAoISh2bXMtPmJvb3RpbmZvLmZpcm13YXJlX2xvYWRlZCAmJiB2aXJ0X2lzX2Fj cGlfZW5hYmxlZCh2bXMpKSAmJgorLSAgICAgICAgc3RyY21wKCJwY2llLjAiLCBidXMtPnFidXMu bmFtZSkpIHsKKy0gICAgICAgIHdhcm5fcmVwb3J0KCJTTU1VdjMgZGV2aWNlIG9ubHkgc3VwcG9y dGVkIHdpdGggcGNpZS4wIGZvciBEVCIpOworLSAgICAgICAgcmV0dXJuOworKyAgICBpZiAoISh2 bXMtPmJvb3RpbmZvLmZpcm13YXJlX2xvYWRlZCAmJiB2aXJ0X2lzX2FjcGlfZW5hYmxlZCh2bXMp KSkgeworKyAgICAgICAgaWYgKG9iamVjdF9wcm9wZXJ0eV9nZXRfYm9vbChPQkpFQ1QoZGV2KSwg ImFjY2VsIiwgJmVycm9yX2Fib3J0KSkgeworKyAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwg IlNNTVV2MyB3aXRoIGFjY2VsPW9uIG5vdCBzdXBwb3J0ZWQgZm9yIERUIik7CisrICAgICAgICAg ICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICAgICAgaWYgKHN0cmNtcCgicGNpZS4wIiwgYnVz LT5xYnVzLm5hbWUpKSB7CisrICAgICAgICAgICAgd2Fybl9yZXBvcnQoIlNNTVV2MyBkZXZpY2Ug b25seSBzdXBwb3J0ZWQgd2l0aCBwY2llLjAgZm9yIERUIik7CisrICAgICAgICAgICAgcmV0dXJu OworKyAgICAgICAgfQorICAgICB9CisgICAgIGJhc2UgKz0gdm1zLT5tZW1tYXBbVklSVF9QTEFU Rk9STV9CVVNdLmJhc2U7CisgICAgIGlycSArPSB2bXMtPmlycW1hcFtWSVJUX1BMQVRGT1JNX0JV U107CitAQCAtMzA5Miw4ICszMDk3LDcgQEAgc3RhdGljIHZvaWQgdmlydF9tYWNoaW5lX2Rldmlj ZV9wcmVfcGx1Z19jYihIb3RwbHVnSGFuZGxlciAqaG90cGx1Z19kZXYsCisgICAgICAgICAgICAg b2JqZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChkZXYpLCAic2VjdXJlLW1lbW9yeSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVCh2bXMtPnNlY3VyZV9z eXNtZW0pLCBOVUxMKTsKKyAgICAgICAgIH0KKy0gICAgICAgIGlmIChvYmplY3RfcHJvcGVydHlf ZmluZChPQkpFQ1QoZGV2KSwgImFjY2VsIikgJiYKKy0gICAgICAgICAgICBvYmplY3RfcHJvcGVy dHlfZ2V0X2Jvb2woT0JKRUNUKGRldiksICJhY2NlbCIsICZlcnJvcl9hYm9ydCkpIHsKKysgICAg ICAgIGlmIChvYmplY3RfcHJvcGVydHlfZ2V0X2Jvb2woT0JKRUNUKGRldiksICJhY2NlbCIsICZl cnJvcl9hYm9ydCkpIHsKKyAgICAgICAgICAgICBod2FkZHIgZGJfc3RhcnQgPSAwOworIAorICAg ICAgICAgICAgIGlmICgha3ZtX2VuYWJsZWQoKSB8fCAha3ZtX2lycWNoaXBfaW5fa2VybmVsKCkp IHsKK0BAIC0zMTQ4LDcgKzMxNTIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0X21hY2hpbmVfZGV2aWNl X3BsdWdfY2IoSG90cGx1Z0hhbmRsZXIgKmhvdHBsdWdfZGV2LAorICAgICAgICAgICAgICAgICBy ZXR1cm47CisgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgIGNyZWF0ZV9zbW11djNfZGV2 X2R0Yih2bXMsIGRldiwgYnVzKTsKKysgICAgICAgICAgICBjcmVhdGVfc21tdXYzX2Rldl9kdGIo dm1zLCBkZXYsIGJ1cywgZXJycCk7CisgICAgICAgICB9CisgICAgIH0KKyAKKy0tIAorMi41Mi4w CisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1BZGQtY21kcXYtcHJvcGVydHktZm9y LVNNTVV2My1kZXZpY2UucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1BZGQtY21kcXYtcHJvcGVy dHktZm9yLVNNTVV2My1kZXZpY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYjQ0OWI5MQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdXYzLUFkZC1j bWRxdi1wcm9wZXJ0eS1mb3ItU01NVXYzLWRldmljZS5wYXRjaApAQCAtMCwwICsxLDkyIEBACitG cm9tIDAwYWFhNjdmZmY0OWFhMmRhYmQzM2NjNTE5NzVlMmQwOTI4N2FmNjAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlh LmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTo1MiArMDEwMAorU3ViamVjdDogW1BB VENIIDExMC8xMTFdIGh3L2FybS9zbW11djM6IEFkZCBjbWRxdiBwcm9wZXJ0eSBmb3IgU01NVXYz IGRldmljZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6 IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1 OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgt SmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJl ZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JI LUNvbW1pdDogWzExMC8xMTFdIGFmZDk4MGRmY2RjZjRkNjAyMzEyYTRjNjVmZWRmMTlmMDhmYzZj M2IgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxh c3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK0NvbmZsaWN0czogY29udGV4dHVhbCBjb25m bGljdCBpbiBxZW11LW9wdGlvbnMuaHggYXMgd2UgZG9uJ3QKK2hhdmUgYW1kLWlvbW11IGRldmlj ZSBkb2N1bWVudGF0aW9uIGRvd25zdHJlYW0KKworSW50cm9kdWNlIGEgImNtZHF2IiBwcm9wZXJ0 eSB0byBlbmFibGUgVGVncmEyNDEgQ01EUVYgc3VwcG9ydC4KK1RoaXMgaXMgb25seSBlbmFibGVk IGZvciBhY2NlbGVyYXRlZCBTTU1VdjMgZGV2aWNlcy4KKworUmV2aWV3ZWQtYnk6IE5pY29saW4g Q2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Bu dmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMzItc2tvbG90aHVtdGhvQG52aWRp YS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJv Lm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGZjZWQ4ZGE2OTVmOWY0MDg0MmFhODdk MGRmZGUzNjVjOGVmNjVhMzYpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLmMgfCA4ICsrKysrKysrCisgcWVtdS1v cHRpb25zLmh4IHwgOCArKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRl eCA5ZTI1MmJjYTY2Li45MzFjMmZlNzEwIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisr KysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC0xOTk0LDYgKzE5OTQsMTAgQEAgc3RhdGljIGJvb2wg c21tdV92YWxpZGF0ZV9wcm9wZXJ0eShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorICAg ICAgICAgICAgICAgICAgICAgICAgImJpdHMgaWYgYWNjZWw9b24iKTsKKyAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICB9CisrICAgICAgICBpZiAocy0+Y21kcXYgPT0gT05fT0ZG X0FVVE9fT04pIHsKKysgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJjbWRxdiBjYW4gb25s eSBiZSBlbmFibGVkIGlmIGFjY2VsPW9uIik7CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor KyAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAKK0BAIC0yMTQ0LDYg KzIxNDgsNyBAQCBzdGF0aWMgY29uc3QgUHJvcGVydHkgc21tdXYzX3Byb3BlcnRpZXNbXSA9IHsK KyAgICAgREVGSU5FX1BST1BfT0FTX01PREUoIm9hcyIsIFNNTVV2M1N0YXRlLCBvYXMsIE9BU19N T0RFX0FVVE8pLAorICAgICBERUZJTkVfUFJPUF9TU0lEU0laRV9NT0RFKCJzc2lkc2l6ZSIsIFNN TVV2M1N0YXRlLCBzc2lkc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0lE X1NJWkVfTU9ERV9BVVRPKSwKKysgICAgREVGSU5FX1BST1BfT05fT0ZGX0FVVE8oImNtZHF2Iiwg U01NVXYzU3RhdGUsIGNtZHF2LCBPTl9PRkZfQVVUT19BVVRPKSwKKyB9OworIAorIHN0YXRpYyB2 b2lkIHNtbXV2M19pbnN0YW5jZV9pbml0KE9iamVjdCAqb2JqKQorQEAgLTIxOTQsNiArMjE5OSw5 IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFzcywgY29u c3Qgdm9pZCAqZGF0YSkKKyAgICAgICAgICJ0aGFuIDAgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFBB U0lEIHN1cHBvcnQuIgorICAgICAgICAgIlBsZWFzZSBlbnN1cmUgdGhlIHZhbHVlIGRvZXMgbm90 IGV4Y2VlZCB0aGUgbWF4aW11bSAiCisgICAgICAgICAiU3Vic3RyZWFtSUQgc2l6ZSBzdXBwb3J0 ZWQgYnkgdGhlIGhvc3QgcGxhdGZvcm0uIik7CisrICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9z ZXRfZGVzY3JpcHRpb24oa2xhc3MsICJjbWRxdiIsCisrICAgICAgICAiRW5hYmxlL2Rpc2FibGUg Q01EUVYgc3VwcG9ydCAoZm9yIGFjY2VsPW9uKS4gIgorKyAgICAgICAgIlZhbGlkIHZhbHVlcyBh cmUgb24sIG9mZiwgYW5kIGF1dG8uIERlZmF1bHRzIHRvIGF1dG8uIik7CisgfQorIAorIHN0YXRp YyBpbnQgc21tdXYzX25vdGlmeV9mbGFnX2NoYW5nZWQoSU9NTVVNZW1vcnlSZWdpb24gKmlvbW11 LAorZGlmZiAtLWdpdCBhL3FlbXUtb3B0aW9ucy5oeCBiL3FlbXUtb3B0aW9ucy5oeAoraW5kZXgg M2ZlMjE3MWU3MC4uYzBlODYzYmIwMCAxMDA2NDQKKy0tLSBhL3FlbXUtb3B0aW9ucy5oeAorKysr IGIvcWVtdS1vcHRpb25zLmh4CitAQCAtMTI4MSw2ICsxMjgxLDE0IEBAIFNSU1QKKyAKKyAgICAg ICAgIC0gV2l0aCBhY2NlbD1vZmYsIGF1dG8gaXMgcmVzb2x2ZWQgdG8gMC4KKyAKKysgICAgYGBj bWRxdj1vbnxvZmZ8YXV0b2BgIChkZWZhdWx0OiBhdXRvKQorKyAgICAgICAgRW5hYmxlIGhhcmR3 YXJlIENvbW1hbmQgUXVldWUgVmlydHVhbGl6YXRpb24gKENNRFFWKSBmb3IgdGhlCisrICAgICAg ICBTTU1VdjMgY29tbWFuZCBxdWV1ZS4gQ3VycmVudGx5IG9ubHkgdGhlIE5WSURJQSBUZWdyYTI0 MSBDTURRVgorKyAgICAgICAgaW1wbGVtZW50YXRpb24gaXMgc3VwcG9ydGVkLgorKworKyAgICAg ICAgLSBXaXRoIGFjY2VsPW9uLCBhdXRvIG1lYW5zIHRoZSB2YWx1ZSBpcyBhdXRvbWF0aWNhbGx5 IGRlcml2ZWQgZnJvbSB0aGUgaG9zdCBTTU1VLgorKyAgICAgICAgLSBXaXRoIGFjY2VsPW9mZiwg YXV0byBpcyByZXNvbHZlZCB0byAnb2ZmJy4KKysKKyBFUlNUCisgCisgREVGKCJuYW1lIiwgSEFT X0FSRywgUUVNVV9PUFRJT05fbmFtZSwKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0t aHctYXJtLXNtbXV2My1BZGQtcGVyLWRldmljZS1pZGVudGlmaWVyLXByb3BlcnR5LnBhdGNoIGIv a3ZtLWh3LWFybS1zbW11djMtQWRkLXBlci1kZXZpY2UtaWRlbnRpZmllci1wcm9wZXJ0eS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGIyYmY1Ci0tLSAvZGV2L251 bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtQWRkLXBlci1kZXZpY2UtaWRlbnRpZmllci1wcm9w ZXJ0eS5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJvbSAzNzBjZWExN2E0MzE0MzBlMGE2OWQ2 NTliNzVjOWVmOTI5NTE5MWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVl ciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUdWUsIDkgSnVuIDIw MjYgMTI6MjU6NDcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxMDUvMTExXSBody9hcm0vc21tdXYz OiBBZGQgcGVyLWRldmljZSBpZGVudGlmaWVyIHByb3BlcnR5CitNSU1FLVZlcnNpb246IDEuMAor Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRl ZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQt Ynk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZp biBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTA1LzExMV0gOTZiZjljMWYy M2MyNzc2OTMyMzQyNWZmZDAxYmYwYmFmNDgwOTQ1NCAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0p CisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgK KworQWRkIGFuICJpZGVudGlmaWVyIiBwcm9wZXJ0eSB0byB0aGUgU01NVXYzIGRldmljZSBhbmQg dXNlIGl0IHdoZW4KK2J1aWxkaW5nIHRoZSBBQ1BJIElPUlQgU01NVXYzIG5vZGUgSWRlbnRpZmll ciBmaWVsZC4KKworVGhpcyBhdm9pZHMgcmVseWluZyBvbiBkZXZpY2UgZW51bWVyYXRpb24gb3Jk ZXIgYW5kIHByb3ZpZGVzIGEgc3RhYmxlCitwZXItZGV2aWNlIGlkZW50aWZpZXIuIEEgc3Vic2Vx dWVudCBwYXRjaCB3aWxsIHVzZSB0aGUgc2FtZSBpZGVudGlmaWVyCit3aGVuIGdlbmVyYXRpbmcg dGhlIERTRFQgZGVzY3JpcHRpb24gZm9yIFRlZ3JhMjQxIENNRFFWLCBlbnN1cmluZyB0aGF0Cit0 aGUgSU9SVCBhbmQgRFNEVCBlbnRyaWVzIHJlZmVyIHRvIHRoZSBzYW1lIFNNTVV2MyBpbnN0YW5j ZS4KKworVGhlIGlkZW50aWZpZXIgaXMgYXNzaWduZWQgYXQgcHJlLXBsdWcgdGltZSwgYWNjb3Vu dGluZyBmb3IgdGhlIElUUyBHcm91cAorbm9kZSB0aGF0IGJ1aWxkX2lvcnQoKSBwbGFjZXMgYmVm b3JlIFNNTVV2MyBub2RlcyBpbiB0aGUgSU9SVCB0YWJsZSwgc28KK3RoYXQgaWRlbnRpZmllcnMg YXJlIGdsb2JhbGx5IHVuaXF1ZSBhY3Jvc3MgYWxsIElPUlQgbm9kZXMuCisKK05vIGZ1bmN0aW9u YWwgY2hhbmdlOiBJT1JUIGJsb2IgY29udGVudCBmb3IgYmlvcy10YWJsZXMgcXRlc3QgaXMgaWRl bnRpY2FsCit0byBiZWZvcmUuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEu Y29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Rl c3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorTWVzc2FnZS1pZDog MjAyNjA2MDkxMTI1NTIuMzc4OTk5LTI3LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQt b2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5 IHBpY2tlZCBmcm9tIGNvbW1pdCBlYjdhMDZlODQyNDA5ZjQxY2JkODViMDEwODZkOGU2YTJiOWM0 Nzc0KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgor LS0tCisgaHcvYXJtL3NtbXV2My5jICAgICAgICAgIHwgIDIgKysKKyBody9hcm0vdmlydC1hY3Bp LWJ1aWxkLmMgfCAgNSArKysrLQorIGh3L2FybS92aXJ0LmMgICAgICAgICAgICB8IDEyICsrKysr KysrKysrKworIGluY2x1ZGUvaHcvYXJtL3NtbXV2My5oICB8ICAxICsKKyA0IGZpbGVzIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2h3L2Fy bS9zbW11djMuYyBiL2h3L2FybS9zbW11djMuYworaW5kZXggMWU5OGVlMGU3Ni4uOWUyNTJiY2E2 NiAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitA QCAtMjEyNiw2ICsyMTI2LDggQEAgc3RhdGljIGNvbnN0IFByb3BlcnR5IHNtbXV2M19wcm9wZXJ0 aWVzW10gPSB7CisgICAgICAqIERlZmF1bHRzIHRvIHN0YWdlIDEKKyAgICAgICovCisgICAgIERF RklORV9QUk9QX1NUUklORygic3RhZ2UiLCBTTU1VdjNTdGF0ZSwgc3RhZ2UpLAorKyAgICAvKiBJ ZGVudGlmaWVyIHVzZWQgZm9yIEFDUEkgSU9SVCBTTU1VdjMgKGFuZCBEU0RUIGZvciBDTURRVikg Z2VuZXJhdGlvbiAqLworKyAgICBERUZJTkVfUFJPUF9VSU5UOCgiaWRlbnRpZmllciIsIFNNTVV2 M1N0YXRlLCBpZGVudGlmaWVyLCAwKSwKKyAgICAgREVGSU5FX1BST1BfQk9PTCgiYWNjZWwiLCBT TU1VdjNTdGF0ZSwgYWNjZWwsIGZhbHNlKSwKKyAgICAgLyogR1BBIG9mIE1TSSBkb29yYmVsbCwg Zm9yIFNNTVV2MyBhY2NlbCB1c2UuICovCisgICAgIERFRklORV9QUk9QX1VJTlQ2NCgibXNpLWdw YSIsIFNNTVV2M1N0YXRlLCBtc2lfZ3BhLCAwKSwKK2RpZmYgLS1naXQgYS9ody9hcm0vdmlydC1h Y3BpLWJ1aWxkLmMgYi9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMKK2luZGV4IDU5N2Q1MTE5OWMu LjIwZGZlOWU0ZDggMTAwNjQ0CistLS0gYS9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMKKysrKyBi L2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYworQEAgLTM0OCw2ICszNDgsNyBAQCBzdGF0aWMgaW50 IGlvcnRfaWRtYXBfY29tcGFyZShnY29uc3Rwb2ludGVyIGEsIGdjb25zdHBvaW50ZXIgYikKKyB0 eXBlZGVmIHN0cnVjdCBBY3BpSW9ydFNNTVV2M0RldiB7CisgICAgIGludCBpcnE7CisgICAgIGh3 YWRkciBiYXNlOworKyAgICB1aW50OF90IGlkOworICAgICBHQXJyYXkgKnJjX3NtbXVfaWRtYXBz OworICAgICAvKiBPZmZzZXQgb2YgdGhlIFNNTVV2MyBJT1JUIE5vZGUgcmVsYXRpdmUgdG8gdGhl IHN0YXJ0IG9mIHRoZSBJT1JUICovCisgICAgIHNpemVfdCBvZmZzZXQ7CitAQCAtNDEwLDYgKzQx MSw3IEBAIHN0YXRpYyBpbnQgcG9wdWxhdGVfc21tdXYzX2RldihWaXJ0TWFjaGluZVN0YXRlICp2 bXMsIEdBcnJheSAqc2Rldl9ibG9iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmVycm9yX2Fib3J0KSk7CisgICAgICAgICBzZGV2LmFjY2VsID0gb2Jq ZWN0X3Byb3BlcnR5X2dldF9ib29sKG9iaiwgImFjY2VsIiwgJmVycm9yX2Fib3J0KTsKKyAgICAg ICAgIHNkZXYuYXRzID0gc21tdXYzX2F0c19lbmFibGVkKEFSTV9TTU1VVjMob2JqKSk7CisrICAg ICAgICBzZGV2LmlkID0gb2JqZWN0X3Byb3BlcnR5X2dldF91aW50KG9iaiwgImlkZW50aWZpZXIi LCAmZXJyb3JfYWJvcnQpOworICAgICAgICAgcGJ1cyA9IFBMQVRGT1JNX0JVU19ERVZJQ0Uodm1z LT5wbGF0Zm9ybV9idXNfZGV2KTsKKyAgICAgICAgIHNiZGV2ID0gU1lTX0JVU19ERVZJQ0Uob2Jq KTsKKyAgICAgICAgIHNkZXYuYmFzZSA9IHBsYXRmb3JtX2J1c19nZXRfbW1pb19hZGRyKHBidXMs IHNiZGV2LCAwKTsKK0BAIC02MzYsNyArNjM4LDggQEAgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxl X2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQorICAgICAg ICAgICAgICAgICAgICAgIChJRF9NQVBQSU5HX0VOVFJZX1NJWkUgKiBzbW11X21hcHBpbmdfY291 bnQpOworICAgICAgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCBub2Rl X3NpemUsIDIpOyAvKiBMZW5ndGggKi8KKyAgICAgICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVm aXgodGFibGVfZGF0YSwgNCwgMSk7IC8qIFJldmlzaW9uICovCistICAgICAgICBidWlsZF9hcHBl bmRfaW50X25vcHJlZml4KHRhYmxlX2RhdGEsIGlkKyssIDQpOyAvKiBJZGVudGlmaWVyICovCisr ICAgICAgICBidWlsZF9hcHBlbmRfaW50X25vcHJlZml4KHRhYmxlX2RhdGEsIHNkZXYtPmlkLCA0 KTsgLyogSWRlbnRpZmllciAqLworKyAgICAgICAgaWQrKzsgIC8qIGFkdmFuY2Ugc2hhcmVkIGNv dW50ZXIgZm9yIFJDL1JNUiBub2RlIHVuaXF1ZW5lc3MgKi8KKyAgICAgICAgIC8qIE51bWJlciBv ZiBJRCBtYXBwaW5ncyAqLworICAgICAgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJs ZV9kYXRhLCBzbW11X21hcHBpbmdfY291bnQsIDQpOworICAgICAgICAgLyogUmVmZXJlbmNlIHRv IElEIEFycmF5ICovCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQuYyBiL2h3L2FybS92aXJ0LmMK K2luZGV4IGNhMTUwZDQ1NWMuLmRjOTkzY2JhYTEgMTAwNjQ0CistLS0gYS9ody9hcm0vdmlydC5j CisrKysgYi9ody9hcm0vdmlydC5jCitAQCAtMjY0LDYgKzI2NCw5IEBAIHN0YXRpYyBNZW1NYXBF bnRyeSBleHRlbmRlZF9tZW1tYXBbXSA9IHsKKyAgICAgLyogQW55IENYTCBGaXhlZCBtZW1vcnkg d2luZG93cyBjb21lIGhlcmUgKi8KKyB9OworIAorKy8qIENvdW50cyBTTU1VdjMgZGV2aWNlcyBw bHVnZ2VkOyB1c2VkIHRvIGFzc2lnbiBzdGFibGUgSU9SVCBpZGVudGlmaWVycyAqLworK3N0YXRp YyB1aW50OF90IHNtbXV2M19kZXZfaWQ7CisrCisgc3RhdGljIGNvbnN0IGludCBhMTVpcnFtYXBb XSA9IHsKKyAgICAgW1ZJUlRfVUFSVDBdID0gMSwKKyAgICAgW1ZJUlRfUlRDXSA9IDIsCitAQCAt MzExOCw2ICszMTIxLDE1IEBAIHN0YXRpYyB2b2lkIHZpcnRfbWFjaGluZV9kZXZpY2VfcHJlX3Bs dWdfY2IoSG90cGx1Z0hhbmRsZXIgKmhvdHBsdWdfZGV2LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPQkpFQ1Qodm1zLT5zeXNtZW0pLCBOVUxMKTsKKyAgICAgICAgICAg ICBvYmplY3RfcHJvcGVydHlfc2V0X2xpbmsoT0JKRUNUKGRldiksICJzZWN1cmUtbWVtb3J5IiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKRUNUKHZtcy0+c2VjdXJl X3N5c21lbSksIE5VTEwpOworKyAgICAgICAgICAgIC8qCisrICAgICAgICAgICAgICogSW4gYnVp bGRfaW9ydCgpLCB0aGUgSVRTIG5vZGUoaWQ9MCkgcHJlY2VkZXMgU01NVXYzIG5vZGVzCisrICAg ICAgICAgICAgICogd2hlbiBwcmVzZW50LiBBY2NvdW50IGZvciBpdCBzbyB0aGlzIFNNTVV2Mydz IGlkZW50aWZpZXIKKysgICAgICAgICAgICAgKiBpcyBnbG9iYWxseSB1bmlxdWUgYWNyb3NzIGFs bCBJT1JUIG5vZGVzLgorKyAgICAgICAgICAgICAqLworKyAgICAgICAgICAgIHVpbnQ4X3QgaXRz X29mZnNldCA9ICh2bXMtPm1zaV9jb250cm9sbGVyID09IFZJUlRfTVNJX0NUUkxfSVRTKQorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDEgOiAwOworKyAgICAgICAgICAgIG9i amVjdF9wcm9wZXJ0eV9zZXRfdWludChPQkpFQ1QoZGV2KSwgImlkZW50aWZpZXIiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdHNfb2Zmc2V0ICsgc21tdXYzX2Rldl9p ZCsrLCBOVUxMKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGlmIChvYmplY3RfcHJvcGVydHlfZ2V0 X2Jvb2woT0JKRUNUKGRldiksICJhY2NlbCIsICZlcnJvcl9hYm9ydCkpIHsKKyAgICAgICAgICAg ICBod2FkZHIgZGJfc3RhcnQgPSAwOworZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2 My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2luZGV4IDM0ZDBmNjVlYWEuLmQzOWZlODg1 MGIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorKysrIGIvaW5jbHVkZS9o dy9hcm0vc21tdXYzLmgKK0BAIC02NSw2ICs2NSw3IEBAIHN0cnVjdCBTTU1VdjNTdGF0ZSB7Cisg ICAgIHFlbXVfaXJxICAgICBpcnFbNF07CisgICAgIFFlbXVNdXRleCBtdXRleDsKKyAgICAgY2hh ciAqc3RhZ2U7CisrICAgIHVpbnQ4X3QgaWRlbnRpZmllcjsKKyAKKyAgICAgLyogU01NVSBoYXMg SFcgYWNjZWxlcmF0b3Igc3VwcG9ydCBmb3IgbmVzdGVkIFMxICsgczIgKi8KKyAgICAgYm9vbCBh Y2NlbDsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1Bdm9p ZC1pbmNsdWRpbmctQ09ORklHX0RFVklDRVMtaW4taHctaC5wYXRjaCBiL2t2bS1ody1hcm0tc21t dXYzLUF2b2lkLWluY2x1ZGluZy1DT05GSUdfREVWSUNFUy1pbi1ody1oLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMmQ5YjYKLS0tIC9kZXYvbnVsbAorKysgYi9r dm0taHctYXJtLXNtbXV2My1Bdm9pZC1pbmNsdWRpbmctQ09ORklHX0RFVklDRVMtaW4taHctaC5w YXRjaApAQCAtMCwwICsxLDE3OCBAQAorRnJvbSBiMTUyMGJjMjZhMzZlY2EzZjRlYTczNjA2ZGNl YzEwODE5MThlMzIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP1Bo aWxpcHBlPTIwTWF0aGlldS1EYXVkPUMzPUE5Pz0gPHBoaWxtZEBsaW5hcm8ub3JnPgorRGF0ZTog VHVlLCAxMCBNYXIgMjAyNiAxMjowNjoxOSArMDEwMAorU3ViamVjdDogW1BBVENIIDA4NS8xMTFd IGh3L2FybS9zbW11djM6IEF2b2lkIGluY2x1ZGluZyBDT05GSUdfREVWSUNFUyBpbiBody8KKyBo ZWFkZXIKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTog U01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUpp cmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRo YXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1D b21taXQ6IFs4NS8xMTFdIDllNGZhYzU2NzRmYmY3NjdiNTY1ZGVhYjE4ZGU2NzFhM2NkZWNkYmQg KGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3Np YW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK0J5IHR1cm5pbmcgdGhlIGlubGluZSBmdW5jdGlv bnMgaW50byBzdHVicyB3ZSBjYW4gYXZvaWQgdGhlCit1c2Ugb2YgdGFyZ2V0LXNwZWNpZmljIENP TkZJR19ERVZJQ0VTIGluY2x1ZGUgaW4gYSBody8gaGVhZGVyLAorYWxsb3dpbmcgdG8gYnVpbGQg dGhlIHNvdXJjZSBmaWxlcyBpbmNsdWRpbmcgaXQgYXMgY29tbW9uIG9iamVjdHMuCisKK1NpZ25l ZC1vZmYtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRAbGluYXJvLm9yZz4KK1Jl dmlld2VkLWJ5OiBUaG9tYXMgSHV0aCA8dGh1dGhAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBT aGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtSWQ6IDwy MDI2MDQxMDIwMDAzMS4xODU3Mi0zLXBoaWxtZEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgMTJjZTRkOTYzMGFlMDllZGVjNzA2ZjYyNTQ0MTdlM2VjOTZlMDhlNSkKK1Np Z25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3 L2FybS9tZXNvbi5idWlsZCAgICAgICAgICB8ICA1ICsrLS0KKyBody9hcm0vc21tdXYzLWFjY2Vs LXN0dWJzLmMgfCA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgaHcv YXJtL3NtbXV2My1hY2NlbC5oICAgICAgIHwgNDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgMyBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkK KyBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvYXJtL3NtbXV2My1hY2NlbC1zdHVicy5jCisKK2RpZmYg LS1naXQgYS9ody9hcm0vbWVzb24uYnVpbGQgYi9ody9hcm0vbWVzb24uYnVpbGQKK2luZGV4IGJj YjI3YzBiZjYuLmIzZjJlNGQ1ZGQgMTAwNjQ0CistLS0gYS9ody9hcm0vbWVzb24uYnVpbGQKKysr KyBiL2h3L2FybS9tZXNvbi5idWlsZAorQEAgLTYxLDggKzYxLDkgQEAgYXJtX2NvbW1vbl9zcy5h ZGQod2hlbjogJ0NPTkZJR19BUk1TU0UnLCBpZl90cnVlOiBmaWxlcygnYXJtc3NlLmMnKSkKKyBh cm1fY29tbW9uX3NzLmFkZCh3aGVuOiAnQ09ORklHX0ZTTF9JTVg3JywgaWZfdHJ1ZTogZmlsZXMo J2ZzbC1pbXg3LmMnLCAnbWNpbXg3ZC1zYWJyZS5jJykpCisgYXJtX2NvbW1vbl9zcy5hZGQod2hl bjogJ0NPTkZJR19GU0xfSU1YOE1QJywgaWZfdHJ1ZTogZmlsZXMoJ2ZzbC1pbXg4bXAuYycpKQor IGFybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05GSUdfRlNMX0lNWDhNUF9FVksnLCBpZl90cnVl OiBmaWxlcygnaW14OG1wLWV2ay5jJykpCistYXJtX3NzLmFkZCh3aGVuOiAnQ09ORklHX0FSTV9T TU1VVjMnLCBpZl90cnVlOiBmaWxlcygnc21tdXYzLmMnKSkKKy1hcm1fc3MuYWRkKHdoZW46ICdD T05GSUdfQVJNX1NNTVVWM19BQ0NFTCcsIGlmX3RydWU6IGZpbGVzKCdzbW11djMtYWNjZWwuYycp KQorK2FybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05GSUdfQVJNX1NNTVVWMycsIGlmX3RydWU6 IGZpbGVzKCdzbW11djMuYycpKQorK2FybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05GSUdfQVJN X1NNTVVWM19BQ0NFTCcsIGlmX3RydWU6IGZpbGVzKCdzbW11djMtYWNjZWwuYycpKQorK3N0dWJf c3MuYWRkKGZpbGVzKCdzbW11djMtYWNjZWwtc3R1YnMuYycpKQorIGFybV9jb21tb25fc3MuYWRk KHdoZW46ICdDT05GSUdfRlNMX0lNWDZVTCcsIGlmX3RydWU6IGZpbGVzKCdmc2wtaW14NnVsLmMn LCAnbWNpbXg2dWwtZXZrLmMnKSkKKyBhcm1fY29tbW9uX3NzLmFkZCh3aGVuOiAnQ09ORklHX05S RjUxX1NPQycsIGlmX3RydWU6IGZpbGVzKCducmY1MV9zb2MuYycpKQorIGFybV9zcy5hZGQod2hl bjogJ0NPTkZJR19YRU4nLCBpZl90cnVlOiBmaWxlcygKK2RpZmYgLS1naXQgYS9ody9hcm0vc21t dXYzLWFjY2VsLXN0dWJzLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLXN0dWJzLmMKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi43MGNlZjY2OTY2CistLS0gL2Rldi9udWxs CisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLXN0dWJzLmMKK0BAIC0wLDAgKzEsNTIgQEAKKysv KgorKyAqIFN0dWJzIGZvciBhY2NlbGVyYXRlZCBTTU1VIGluc3RhbmNlIGJhY2tlZCBieSBhbiBp b21tdWZkIHZJT01NVSBvYmplY3QuCisrICoKKysgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMC1vci1sYXRlcgorKyAqLworKworKyNpbmNsdWRlICJxZW11L29zZGVwLmgiCisrI2lu Y2x1ZGUgInFhcGkvZXJyb3IuaCIKKysjaW5jbHVkZSAiaHcvYXJtL3NtbXV2My5oIgorKyNpbmNs dWRlICJody9hcm0vc21tdXYzLWFjY2VsLmgiCisrCisrYm9vbCBzbW11djNfYWNjZWxfaW5pdChT TU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorK3sKKysgICAgZXJyb3Jfc2V0ZyhlcnJwLCAi YWNjZWw9b24gc3VwcG9ydCBub3QgY29tcGlsZWQgaW4iKTsKKysgICAgcmV0dXJuIGZhbHNlOwor K30KKysKKytib29sIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01N VURldmljZSAqc2RldiwgaW50IHNpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF cnJvciAqKmVycnApCisreworKyAgICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBzbW11djNf YWNjZWxfaW5zdGFsbF9zdGVfcmFuZ2UoU01NVXYzU3RhdGUgKnMsIFNNTVVTSURSYW5nZSAqcmFu Z2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQor K3sKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgc21tdXYzX2FjY2VsX2F0dGFjaF9n YnBhX2h3cHQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyt7CisrICAgIHJldHVybiB0 cnVlOworK30KKysKKytib29sIHNtbXV2M19hY2NlbF9pc3N1ZV9pbnZfY21kKFNNTVV2M1N0YXRl ICpzLCB2b2lkICpjbWQsIFNNTVVEZXZpY2UgKnNkZXYsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFcnJvciAqKmVycnApCisreworKyAgICByZXR1cm4gdHJ1ZTsKKyt9CisrCisr dm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorK3sKKyt9Cisr CisrYm9vbCBzbW11djNfYWNjZWxfYWxsb2NfdmV2ZW50cShTTU1VdjNTdGF0ZSAqcywgRXJyb3Ig KiplcnJwKQorK3sKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgc21tdXYzX2FjY2Vs X3Jlc2V0KFNNTVV2M1N0YXRlICpzKQorK3sKKyt9CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2 My1hY2NlbC5oIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5oCitpbmRleCA4NDkwMTVmOThlLi5iNDVm MjVhZDAzIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5oCisrKysgYi9ody9hcm0v c21tdXYzLWFjY2VsLmgKK0BAIC0xNSw3ICsxNSw2IEBACisgI2lmZGVmIENPTkZJR19MSU5VWAor ICNpbmNsdWRlIDxsaW51eC9pb21tdWZkLmg+CisgI2VuZGlmCistI2luY2x1ZGUgQ09ORklHX0RF VklDRVMKKyAKKyAvKgorICAqIENNRFEtVmlydHVhbGl6YXRpb24gKENNRFFWKSBoYXJkd2FyZSBz dXBwb3J0LCBleHRlbmRzIHRoZSBTTU1VdjMgdG8KK0BAIC03Nyw3ICs3Niw2IEBAIHR5cGVkZWYg c3RydWN0IFNNTVV2M0FjY2VsRGV2aWNlIHsKKyAgICAgU01NVXYzQWNjZWxTdGF0ZSAqc19hY2Nl bDsKKyB9IFNNTVV2M0FjY2VsRGV2aWNlOworIAorLSNpZmRlZiBDT05GSUdfQVJNX1NNTVVWM19B Q0NFTAorIGJvb2wgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJy cCk7CisgYm9vbCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGUoU01NVXYzU3RhdGUgKnMsIFNNTVVE ZXZpY2UgKnNkZXYsIGludCBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJy b3IgKiplcnJwKTsKK0BAIC04OSw0NSArODcsNSBAQCBib29sIHNtbXV2M19hY2NlbF9pc3N1ZV9p bnZfY21kKFNNTVV2M1N0YXRlICpzLCB2b2lkICpjbWQsIFNNTVVEZXZpY2UgKnNkZXYsCisgdm9p ZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKTsKKyBib29sIHNtbXV2 M19hY2NlbF9hbGxvY192ZXZlbnRxKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApOworIHZv aWQgc21tdXYzX2FjY2VsX3Jlc2V0KFNNTVV2M1N0YXRlICpzKTsKKy0jZWxzZQorLSNpbmNsdWRl ICJxYXBpL2Vycm9yLmgiCistc3RhdGljIGlubGluZSBib29sIHNtbXV2M19hY2NlbF9pbml0KFNN TVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisteworLSAgICBlcnJvcl9zZXRnKGVycnAsICJh Y2NlbD1vbiBzdXBwb3J0IG5vdCBjb21waWxlZCBpbiIpOworLSAgICByZXR1cm4gZmFsc2U7Cist fQorLXN0YXRpYyBpbmxpbmUgYm9vbAorLXNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNT dGF0ZSAqcywgU01NVURldmljZSAqc2RldiwgaW50IHNpZCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgRXJyb3IgKiplcnJwKQorLXsKKy0gICAgcmV0dXJuIHRydWU7CistfQorLXN0YXRpYyBp bmxpbmUgYm9vbAorLXNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZV9yYW5nZShTTU1VdjNTdGF0ZSAq cywgU01NVVNJRFJhbmdlICpyYW5nZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RXJyb3IgKiplcnJwKQorLXsKKy0gICAgcmV0dXJuIHRydWU7CistfQorLXN0YXRpYyBpbmxpbmUg Ym9vbCBzbW11djNfYWNjZWxfYXR0YWNoX2dicGFfaHdwdChTTU1VdjNTdGF0ZSAqcywgRXJyb3Ig KiplcnJwKQorLXsKKy0gICAgcmV0dXJuIHRydWU7CistfQorLXN0YXRpYyBpbmxpbmUgYm9vbAor LXNtbXV2M19hY2NlbF9pc3N1ZV9pbnZfY21kKFNNTVV2M1N0YXRlICpzLCB2b2lkICpjbWQsIFNN TVVEZXZpY2UgKnNkZXYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJw KQorLXsKKy0gICAgcmV0dXJuIHRydWU7CistfQorLXN0YXRpYyBpbmxpbmUgdm9pZCBzbW11djNf YWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorLXsKKy19Cistc3RhdGljIGlubGlu ZSBib29sIHNtbXV2M19hY2NlbF9hbGxvY192ZXZlbnRxKFNNTVV2M1N0YXRlICpzLCBFcnJvciAq KmVycnApCisteworLSAgICByZXR1cm4gdHJ1ZTsKKy19Cistc3RhdGljIGlubGluZSB2b2lkIHNt bXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcykKKy17CistfQorLSNlbmRpZgorIAorICNl bmRpZiAvKiBIV19BUk1fU01NVVYzX0FDQ0VMX0ggKi8KKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0taHctYXJtLXNtbXV2My1CbG9jay1taWdyYXRpb24td2hlbi1hY2NlbC1pcy1lbmFi bGVkLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtQmxvY2stbWlncmF0aW9uLXdoZW4tYWNjZWwt aXMtZW5hYmxlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWRl MDBmCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtQmxvY2stbWlncmF0aW9u LXdoZW4tYWNjZWwtaXMtZW5hYmxlZC5wYXRjaApAQCAtMCwwICsxLDgwIEBACitGcm9tIDgxYjI5 MDc0NTUyNDEzNTk3NDcwNjBlN2NjZDk3ZjdjZGZlYWVmZTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0Rh dGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMzUv MTExXSBody9hcm0vc21tdXYzOiBCbG9jayBtaWdyYXRpb24gd2hlbiBhY2NlbCBpcyBlbmFibGVk CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBB dWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUg UmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBS SEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYg UkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNv bT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0 OiBbMzUvMTExXSA4NzY1YzI5NzJhYjU0ODJiNTQ4ZTg3OTllZDQ4ZTNhMTU1MDVmNzRjIChlYXVn ZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5l dC9icm93c2UvUkhFTC03Mzc5NAorCitMaXZlIG1pZ3JhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdo ZW4gdGhlIFNNTVV2MyBhY2NlbGVyYXRvciBtb2RlIGlzCitlbmFibGVkLiBBZGQgYSBtaWdyYXRp b24gYmxvY2tlciB0byBwcmV2ZW50IG1pZ3JhdGlvbiBpbiB0aGlzCitjb25maWd1cmF0aW9uLgor CitDb25mbGljdHM6IHVzZSBody9pcnEuaCBhbmQgaHcvc3lzYnVzLmggaW5zdGVhZCBvZiBody9j b3JlLyoKK2JlY2F1c2Ugd2UgZG9uJ3QgaGF2ZQorMzIyMjJkYzNiYmQxICBpbmNsdWRlOiBtb3Zl IGh3L2lycS5oIHRvIGh3L2NvcmUvIG5vcgorYzc1NWYzYjk1OTY0ICBpbmNsdWRlOiBtb3ZlIGh3 L3N5c2J1cy5oIHRvIGh3L2NvcmUKKworUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xp bmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+ CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWku Y29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01l c3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0yOC1za29sb3RodW10aG9AbnZpZGlhLmNv bQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3Jn PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYmUwY2YzYzhmMTIxZjVjMGVjMzk4NDI5NjY2 ZDJlZjBlODhhYTM3YSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMuYyAgICAgICAgIHwgNiArKysrKysKKyBpbmNs dWRlL2h3L2FybS9zbW11djMuaCB8IDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2lu ZGV4IGRiYTVhYmM4ZDMuLjZmYWE2NjBiYWIgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMK KysrKyBiL2h3L2FybS9zbW11djMuYworQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAicWVt dS9iaXRvcHMuaCIKKyAjaW5jbHVkZSAiaHcvaXJxLmgiCisgI2luY2x1ZGUgImh3L3N5c2J1cy5o IgorKyNpbmNsdWRlICJtaWdyYXRpb24vYmxvY2tlci5oIgorICNpbmNsdWRlICJtaWdyYXRpb24v dm1zdGF0ZS5oIgorICNpbmNsdWRlICJody9xZGV2LXByb3BlcnRpZXMuaCIKKyAjaW5jbHVkZSAi aHcvcWRldi1jb3JlLmgiCitAQCAtMTkyNSw2ICsxOTI2LDExIEBAIHN0YXRpYyB2b2lkIHNtbXVf cmVhbGl6ZShEZXZpY2VTdGF0ZSAqZCwgRXJyb3IgKiplcnJwKQorIAorICAgICBpZiAocy0+YWNj ZWwpIHsKKyAgICAgICAgIHNtbXV2M19hY2NlbF9pbml0KHMpOworKyAgICAgICAgZXJyb3Jfc2V0 Zygmcy0+bWlncmF0aW9uX2Jsb2NrZXIsICJNaWdyYXRpb24gbm90IHN1cHBvcnRlZCB3aXRoIFNN TVV2MyAiCisrICAgICAgICAgICAgICAgICAgICJhY2NlbGVyYXRvciBtb2RlIGVuYWJsZWQiKTsK KysgICAgICAgIGlmIChtaWdyYXRlX2FkZF9ibG9ja2VyKCZzLT5taWdyYXRpb25fYmxvY2tlciwg ZXJycCkgPCAwKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9Cisg CisgICAgIGMtPnBhcmVudF9yZWFsaXplKGQsICZsb2NhbF9lcnIpOworZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvaHcvYXJtL3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2luZGV4IDU2 MTZhOGEyYmUuLjljMzlhY2Q1Y2EgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMu aAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC02OCw2ICs2OCw3IEBAIHN0cnVj dCBTTU1VdjNTdGF0ZSB7CisgICAgIGJvb2wgYWNjZWw7CisgICAgIHN0cnVjdCBTTU1VdjNBY2Nl bFN0YXRlICpzX2FjY2VsOworICAgICB1aW50NjRfdCBtc2lfZ3BhOworKyAgICBFcnJvciAqbWln cmF0aW9uX2Jsb2NrZXI7CisgfTsKKyAKKyB0eXBlZGVmIGVudW0geworLS0gCisyLjUyLjAKKwoK ZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYzLUNvcnJlY3QtU01NVUVOLWZpZWxkLW5hbWUt aW4tQ1IwLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtQ29ycmVjdC1TTU1VRU4tZmllbGQtbmFt ZS1pbi1DUjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY2ZTJk ZQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdXYzLUNvcnJlY3QtU01NVUVOLWZp ZWxkLW5hbWUtaW4tQ1IwLnBhdGNoCkBAIC0wLDAgKzEsNjkgQEAKK0Zyb20gZjM0ZTYzNGI2MmI1 MjA3MjdjNDFhOTkyY2MyMjg5MWI2ZDNlN2FjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFRhbyBUYW5nIDx0YW5ndGFvMTYzNEBwaHl0aXVtLmNvbS5jbj4KK0RhdGU6IFdlZCwgNCBN YXIgMjAyNiAyMjoyMzo0MyArMDgwMAorU3ViamVjdDogW1BBVENIIDA1NS8xMTFdIGh3L2FybS9z bW11djM6IENvcnJlY3QgU01NVUVOIGZpZWxkIG5hbWUgaW4gQ1IwCitNSU1FLVZlcnNpb246IDEu MAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVy YXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2 MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNr ZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBH YXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNTUvMTExXSAzMzkyNmYz YjE5YWY5MzhiZDkwZjExZDFjMGFhOTIwNjU1OTQwMTExIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2 bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC0xNjAx OTAKKworVGhlIEZJRUxEIG1hY3JvIGZvciB0aGUgU01NVSBlbmFibGUgYml0IGluIHRoZSBDUjAg cmVnaXN0ZXIgd2FzCitpbmNvcnJlY3RseSBuYW1lZCBTTU1VX0VOQUJMRS4KKworVGhlIEFSTSBT TU1VdjMgQXJjaGl0ZWN0dXJlIFNwZWNpZmljYXRpb24gKGJvdGggb2xkZXIgSUhJIDAwNzAuRS5h IGFuZAorbmV3ZXIgSUhJIDAwNzAuRy5iKSBjb25zaXN0ZW50bHkgcmVmZXJzIHRvIHRoZSBTTU1V IGVuYWJsZSBiaXQgYXMgU01NVUVOLgorCitUaGlzIGNoYW5nZSBtYWtlcyBvdXIgaW1wbGVtZW50 YXRpb24gY29uc2lzdGVudCB3aXRoIHRoZSBtYW51YWwuCisKK1NpZ25lZC1vZmYtYnk6IFRhbyBU YW5nIDx0YW5ndGFvMTYzNEBwaHl0aXVtLmNvbS5jbj4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogUGllcnJpY2sgQm91dmllciA8 cGllcnJpY2suYm91dmllckBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IE1vc3RhZmEgU2FsZWgg PHNtb3N0YWZhQGdvb2dsZS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDMwNDE0MjM0NC4zMzQxNDQ0 LTMtdGFuZ3RhbzE2MzRAcGh5dGl1bS5jb20uY24KK0ZpeGVzOiAxMGE4M2NiOTg4NyAoImh3L2Fy bS9zbW11djM6IFNrZWxldG9uIikKK0xpbms6IGh0dHBzOi8vbGlzdHMubm9uZ251Lm9yZy9hcmNo aXZlL2h0bWwvcWVtdS1hcm0vMjAyNS0wOS9tc2cwMTI3MC5odG1sCitTaWduZWQtb2ZmLWJ5OiBQ ZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBhZjE1ODAxYTYxZDY2NTEwNDM0MTMxYWU1MGMyYWQyMTM1ZmEzZGUxKQorU2ln bmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcv YXJtL3NtbXV2My1pbnRlcm5hbC5oICAgICAgIHwgMiArLQorIGluY2x1ZGUvaHcvYXJtL3NtbXV2 My1jb21tb24uaCB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtaW50ZXJuYWwuaCBiL2h3 L2FybS9zbW11djMtaW50ZXJuYWwuaAoraW5kZXggNDY2YmZkMzkwZS4uMGJmYjAyYTA1NCAxMDA2 NDQKKy0tLSBhL2h3L2FybS9zbW11djMtaW50ZXJuYWwuaAorKysrIGIvaHcvYXJtL3NtbXV2My1p bnRlcm5hbC5oCitAQCAtNDEsNyArNDEsNyBAQCB0eXBlZGVmIGVudW0gU01NVVRyYW5zbGF0aW9u Q2xhc3MgeworIAorIHN0YXRpYyBpbmxpbmUgaW50IHNtbXVfZW5hYmxlZChTTU1VdjNTdGF0ZSAq cykKKyB7CistICAgIHJldHVybiBGSUVMRF9FWDMyKHMtPmNyWzBdLCBDUjAsIFNNTVVfRU5BQkxF KTsKKysgICAgcmV0dXJuIEZJRUxEX0VYMzIocy0+Y3JbMF0sIENSMCwgU01NVUVOKTsKKyB9Cisg CisgLyogQ29tbWFuZCBRdWV1ZSBFbnRyeSAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJt L3NtbXV2My1jb21tb24uaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAoraW5kZXgg NGI3NjRlZDEyNS4uZjFkNzRkNjgzMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2 My1jb21tb24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oCitAQCAtMzUx LDcgKzM1MSw3IEBAIFJFRzMyKElEUjUsICAgICAgICAgICAgICAgIDB4MTQpCisgUkVHMzIoSUlE UiwgICAgICAgICAgICAgICAgMHgxOCkKKyBSRUczMihBSURSLCAgICAgICAgICAgICAgICAweDFj KQorIFJFRzMyKENSMCwgICAgICAgICAgICAgICAgIDB4MjApCistICAgIEZJRUxEKENSMCwgU01N VV9FTkFCTEUsICAgMCwgMSkKKysgICAgRklFTEQoQ1IwLCBTTU1VRU4sICAgMCwgMSkKKyAgICAg RklFTEQoQ1IwLCBFVkVOVFFFTiwgICAgICAyLCAxKQorICAgICBGSUVMRChDUjAsIENNRFFFTiwg ICAgICAgIDMsIDEpCisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1z bW11djMtRXh0cmFjdC1jb21tb24tZGVmaW5pdGlvbnMtdG8tc21tdXYzLWMucGF0Y2ggYi9rdm0t aHctYXJtLXNtbXV2My1FeHRyYWN0LWNvbW1vbi1kZWZpbml0aW9ucy10by1zbW11djMtYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzYzOGY1Ci0tLSAvZGV2L251 bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtRXh0cmFjdC1jb21tb24tZGVmaW5pdGlvbnMtdG8t c21tdXYzLWMucGF0Y2gKQEAgLTAsMCArMSw2MTEgQEAKK0Zyb20gODljMWIwNWUwMDViYjBiZGJj ZDk0MzljMDg3MzhhMTNkOGU5NDU2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRh byBUYW5nIDx0YW5ndGFvMTYzNEBwaHl0aXVtLmNvbS5jbj4KK0RhdGU6IFN1biwgMjEgRGVjIDIw MjUgMTE6MjU6MDEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAwMDUvMTExXSBody9hcm0vc21tdXYz OiBFeHRyYWN0IGNvbW1vbiBkZWZpbml0aW9ucyB0bworIHNtbXV2My1jb21tb24uaAorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzUvMTEx XSBiNTU2Yzk1NDgyNmRlMzVmMmFlNzBkOGI1ZTdlZjkzNmVhYTdhMmY3IChlYXVnZXIxL2NlbnRv cy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2Uv UkhFTC03Mzc5NAorCitNb3ZlIHJlZ2lzdGVyIGRlZmluaXRpb25zLCBjb21tYW5kIGVudW1zLCBh bmQgU3RyZWFtIFRhYmxlIEVudHJ5IChTVEUpIC8KK0NvbnRleHQgRGVzY3JpcHRvciAoQ0QpIHN0 cnVjdHVyZSBkZWZpbml0aW9ucyBmcm9tIHRoZSBpbnRlcm5hbCBoZWFkZXIKK2h3L2FybS9zbW11 djMtaW50ZXJuYWwuaCB0byBhIG5ldyBjb21tb24gaGVhZGVyCitpbmNsdWRlL2h3L2FybS9zbW11 djMtY29tbW9uLmguCisKK1RoaXMgYWxsb3dzIG90aGVyIGNvbXBvbmVudHMsIHN1Y2ggYXMgZ2Vu ZXJpYyBTTU1VdjMgdGVzdHMgb3IgdGVzdCBkZXZpY2VzLAordG8gdXRpbGl6ZSB0aGVzZSBkZWZp bml0aW9ucyB3aXRob3V0IGluY2x1ZGluZyB0aGUgc3BlY2lmaWMgU01NVXYzIGRldmljZQoraW50 ZXJuYWwgc3RhdGUuCisKK1NpZ25lZC1vZmYtYnk6IFRhbyBUYW5nIDx0YW5ndGFvMTYzNEBwaHl0 aXVtLmNvbS5jbj4KK1Jldmlld2VkLWJ5OiBQaWVycmljayBCb3V2aWVyIDxwaWVycmljay5ib3V2 aWVyQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorTWVzc2FnZS1JRDogPDIwMjYwMTE5MTYxMTEyLjM4NDEzODYtMi10YW5ndGFvMTYz NEBwaHl0aXVtLmNvbS5jbj4KK1NpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOp IDxwaGlsbWRAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDgxZWUzMjA2 ZjA1Nzk3YWVlYWU0YmFhMGNlY2FlNDRlNWZhZDVkNjQpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWludGVybmFs LmggICAgICAgfCAyNTUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGluY2x1ZGUv aHcvYXJtL3NtbXV2My1jb21tb24uaCB8IDI2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDI2OSBpbnNlcnRpb25zKCspLCAyNTQgZGVsZXRpb25z KC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAor CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1pbnRlcm5hbC5oIGIvaHcvYXJtL3NtbXV2My1p bnRlcm5hbC5oCitpbmRleCBiNmI3Mzk5MzQ3Li44Njc5YWI2ZDA5IDEwMDY0NAorLS0tIGEvaHcv YXJtL3NtbXV2My1pbnRlcm5hbC5oCisrKysgYi9ody9hcm0vc21tdXYzLWludGVybmFsLmgKK0BA IC0yMyw2ICsyMyw3IEBACisgCisgI2luY2x1ZGUgImh3L3JlZ2lzdGVyZmllbGRzLmgiCisgI2lu Y2x1ZGUgImh3L2FybS9zbW11LWNvbW1vbi5oIgorKyNpbmNsdWRlICJody9hcm0vc21tdXYzLWNv bW1vbi5oIgorIAorIHR5cGVkZWYgZW51bSBTTU1VVHJhbnNsYXRpb25TdGF0dXMgeworICAgICBT TU1VX1RSQU5TX0RJU0FCTEUsCitAQCAtMzgsMTQ3ICszOSw2IEBAIHR5cGVkZWYgZW51bSBTTU1V VHJhbnNsYXRpb25DbGFzcyB7CisgICAgIFNNTVVfQ0xBU1NfSU4sCisgfSBTTU1VVHJhbnNsYXRp b25DbGFzczsKKyAKKy0vKiBNTUlPIFJlZ2lzdGVycyAqLworLQorLVJFRzMyKElEUjAsICAgICAg ICAgICAgICAgIDB4MCkKKy0gICAgRklFTEQoSURSMCwgUzJQLCAgICAgICAgIDAgLCAxKQorLSAg ICBGSUVMRChJRFIwLCBTMVAsICAgICAgICAgMSAsIDEpCistICAgIEZJRUxEKElEUjAsIFRURiwg ICAgICAgICAyICwgMikKKy0gICAgRklFTEQoSURSMCwgQ09IQUNDLCAgICAgIDQgLCAxKQorLSAg ICBGSUVMRChJRFIwLCBCVE0sICAgICAgICAgNSAsIDEpCistICAgIEZJRUxEKElEUjAsIEhUVFUs ICAgICAgICA2ICwgMikKKy0gICAgRklFTEQoSURSMCwgRE9STUhJTlQsICAgIDggLCAxKQorLSAg ICBGSUVMRChJRFIwLCBIWVAsICAgICAgICAgOSAsIDEpCistICAgIEZJRUxEKElEUjAsIEFUUywg ICAgICAgICAxMCwgMSkKKy0gICAgRklFTEQoSURSMCwgTlMxQVRTLCAgICAgIDExLCAxKQorLSAg ICBGSUVMRChJRFIwLCBBU0lEMTYsICAgICAgMTIsIDEpCistICAgIEZJRUxEKElEUjAsIE1TSSwg ICAgICAgICAxMywgMSkKKy0gICAgRklFTEQoSURSMCwgU0VWLCAgICAgICAgIDE0LCAxKQorLSAg ICBGSUVMRChJRFIwLCBBVE9TLCAgICAgICAgMTUsIDEpCistICAgIEZJRUxEKElEUjAsIFBSSSwg ICAgICAgICAxNiwgMSkKKy0gICAgRklFTEQoSURSMCwgVk1XLCAgICAgICAgIDE3LCAxKQorLSAg ICBGSUVMRChJRFIwLCBWTUlEMTYsICAgICAgMTgsIDEpCistICAgIEZJRUxEKElEUjAsIENEMkws ICAgICAgICAxOSwgMSkKKy0gICAgRklFTEQoSURSMCwgVkFUT1MsICAgICAgIDIwLCAxKQorLSAg ICBGSUVMRChJRFIwLCBUVEVORElBTiwgICAgMjEsIDIpCistICAgIEZJRUxEKElEUjAsIEFUU1JF Q0VSUiwgICAyMywgMSkKKy0gICAgRklFTEQoSURSMCwgU1RBTExfTU9ERUwsIDI0LCAyKQorLSAg ICBGSUVMRChJRFIwLCBURVJNX01PREVMLCAgMjYsIDEpCistICAgIEZJRUxEKElEUjAsIFNUTEVW RUwsICAgICAyNywgMikKKy0gICAgRklFTEQoSURSMCwgUk1FX0lNUEwsICAgIDMwLCAxKQorLQor LVJFRzMyKElEUjEsICAgICAgICAgICAgICAgIDB4NCkKKy0gICAgRklFTEQoSURSMSwgU0lEU0la RSwgICAgICAwICwgNikKKy0gICAgRklFTEQoSURSMSwgU1NJRFNJWkUsICAgICA2ICwgNSkKKy0g ICAgRklFTEQoSURSMSwgUFJJUVMsICAgICAgICAxMSwgNSkKKy0gICAgRklFTEQoSURSMSwgRVZF TlRRUywgICAgICAxNiwgNSkKKy0gICAgRklFTEQoSURSMSwgQ01EUVMsICAgICAgICAyMSwgNSkK Ky0gICAgRklFTEQoSURSMSwgQVRUUl9QRVJNU19PVlIsIDI2LCAxKQorLSAgICBGSUVMRChJRFIx LCBBVFRSX1RZUEVTX09WUiwgMjcsIDEpCistICAgIEZJRUxEKElEUjEsIFJFTCwgICAgICAgICAg MjgsIDEpCistICAgIEZJRUxEKElEUjEsIFFVRVVFU19QUkVTRVQsIDI5LCAxKQorLSAgICBGSUVM RChJRFIxLCBUQUJMRVNfUFJFU0VULCAzMCwgMSkKKy0gICAgRklFTEQoSURSMSwgRUNNRFEsICAg ICAgICAzMSwgMSkKKy0KKy0jZGVmaW5lIFNNTVVfSURSMV9TSURTSVpFIDE2CistI2RlZmluZSBT TU1VX0NNRFFTICAgMTkKKy0jZGVmaW5lIFNNTVVfRVZFTlRRUyAxOQorLQorLVJFRzMyKElEUjIs ICAgICAgICAgICAgICAgIDB4OCkKKy0gICAgIEZJRUxEKElEUjIsIEJBX1ZBVE9TLCAwLCAxMCkK Ky0KKy1SRUczMihJRFIzLCAgICAgICAgICAgICAgICAweGMpCistICAgICBGSUVMRChJRFIzLCBI QUQsICAgICAgICAgMiwgMSk7CistICAgICBGSUVMRChJRFIzLCBQQkhBLCAgICAgICAgMywgMSk7 CistICAgICBGSUVMRChJRFIzLCBYTlgsICAgICAgICAgNCwgMSk7CistICAgICBGSUVMRChJRFIz LCBQUFMsICAgICAgICAgNSwgMSk7CistICAgICBGSUVMRChJRFIzLCBNUEFNLCAgICAgICAgNywg MSk7CistICAgICBGSUVMRChJRFIzLCBGV0IsICAgICAgICAgOCwgMSk7CistICAgICBGSUVMRChJ RFIzLCBTVFQsICAgICAgICAgOSwgMSk7CistICAgICBGSUVMRChJRFIzLCBSSUwsICAgICAgICAx MCwgMSk7CistICAgICBGSUVMRChJRFIzLCBCQk1MLCAgICAgICAxMSwgMik7CistICAgICBGSUVM RChJRFIzLCBFMFBELCAgICAgICAxMywgMSk7CistICAgICBGSUVMRChJRFIzLCBQVFdOTkMsICAg ICAxNCwgMSk7CistICAgICBGSUVMRChJRFIzLCBEUFQsICAgICAgICAxNSwgMSk7CistCistUkVH MzIoSURSNCwgICAgICAgICAgICAgICAgMHgxMCkKKy0KKy1SRUczMihJRFI1LCAgICAgICAgICAg ICAgICAweDE0KQorLSAgICAgRklFTEQoSURSNSwgT0FTLCAgICAgICAgIDAsIDMpOworLSAgICAg RklFTEQoSURSNSwgR1JBTjRLLCAgICAgIDQsIDEpOworLSAgICAgRklFTEQoSURSNSwgR1JBTjE2 SywgICAgIDUsIDEpOworLSAgICAgRklFTEQoSURSNSwgR1JBTjY0SywgICAgIDYsIDEpOworLSAg ICAgRklFTEQoSURSNSwgVkFYLCAgICAgICAgMTAsIDIpOworLSAgICAgRklFTEQoSURSNSwgU1RB TExfTUFYLCAgMTYsIDE2KTsKKy0KKy0jZGVmaW5lIFNNTVVfSURSNV9PQVMgNAorLQorLVJFRzMy KElJRFIsICAgICAgICAgICAgICAgIDB4MTgpCistUkVHMzIoQUlEUiwgICAgICAgICAgICAgICAg MHgxYykKKy1SRUczMihDUjAsICAgICAgICAgICAgICAgICAweDIwKQorLSAgICBGSUVMRChDUjAs IFNNTVVfRU5BQkxFLCAgIDAsIDEpCistICAgIEZJRUxEKENSMCwgRVZFTlRRRU4sICAgICAgMiwg MSkKKy0gICAgRklFTEQoQ1IwLCBDTURRRU4sICAgICAgICAzLCAxKQorLQorLSNkZWZpbmUgU01N VV9DUjBfUkVTRVJWRUQgMHhGRkZGRkMyMAorLQorLVJFRzMyKENSMEFDSywgICAgICAgICAgICAg IDB4MjQpCistUkVHMzIoQ1IxLCAgICAgICAgICAgICAgICAgMHgyOCkKKy1SRUczMihDUjIsICAg ICAgICAgICAgICAgICAweDJjKQorLVJFRzMyKFNUQVRVU1IsICAgICAgICAgICAgIDB4NDApCist UkVHMzIoR0JQQSwgICAgICAgICAgICAgICAgMHg0NCkKKy0gICAgRklFTEQoR0JQQSwgQUJPUlQs ICAgICAgICAyMCwgMSkKKy0gICAgRklFTEQoR0JQQSwgVVBEQVRFLCAgICAgICAzMSwgMSkKKy0K Ky0vKiBVc2UgaW5jb21pbmcuICovCistI2RlZmluZSBTTU1VX0dCUEFfUkVTRVRfVkFMIDB4MTAw MAorLQorLVJFRzMyKElSUV9DVFJMLCAgICAgICAgICAgIDB4NTApCistICAgIEZJRUxEKElSUV9D VFJMLCBHRVJST1JfSVJRRU4sICAgICAgICAwLCAxKQorLSAgICBGSUVMRChJUlFfQ1RSTCwgUFJJ X0lSUUVOLCAgICAgICAgICAgMSwgMSkKKy0gICAgRklFTEQoSVJRX0NUUkwsIEVWRU5UUV9JUlFF TiwgICAgICAgIDIsIDEpCistCistUkVHMzIoSVJRX0NUUkxfQUNLLCAgICAgICAgMHg1NCkKKy1S RUczMihHRVJST1IsICAgICAgICAgICAgICAweDYwKQorLSAgICBGSUVMRChHRVJST1IsIENNRFFf RVJSLCAgICAgICAgICAgMCwgMSkKKy0gICAgRklFTEQoR0VSUk9SLCBFVkVOVFFfQUJUX0VSUiwg ICAgIDIsIDEpCistICAgIEZJRUxEKEdFUlJPUiwgUFJJUV9BQlRfRVJSLCAgICAgICAzLCAxKQor LSAgICBGSUVMRChHRVJST1IsIE1TSV9DTURRX0FCVF9FUlIsICAgNCwgMSkKKy0gICAgRklFTEQo R0VSUk9SLCBNU0lfRVZFTlRRX0FCVF9FUlIsIDUsIDEpCistICAgIEZJRUxEKEdFUlJPUiwgTVNJ X1BSSVFfQUJUX0VSUiwgICA2LCAxKQorLSAgICBGSUVMRChHRVJST1IsIE1TSV9HRVJST1JfQUJU X0VSUiwgNywgMSkKKy0gICAgRklFTEQoR0VSUk9SLCBNU0lfU0ZNX0VSUiwgICAgICAgIDgsIDEp CistCistUkVHMzIoR0VSUk9STiwgICAgICAgICAgICAgMHg2NCkKKy0KKy0jZGVmaW5lIEFfR0VS Uk9SX0lSUV9DRkcwICAweDY4IC8qIDY0YiAqLworLVJFRzMyKEdFUlJPUl9JUlFfQ0ZHMSwgMHg3 MCkKKy1SRUczMihHRVJST1JfSVJRX0NGRzIsIDB4NzQpCistCistI2RlZmluZSBBX1NUUlRBQl9C QVNFICAgICAgMHg4MCAvKiA2NGIgKi8KKy0KKy0jZGVmaW5lIFNNTVVfQkFTRV9BRERSX01BU0sg MHhmZmZmZmZmZmZmZmMwCistCistUkVHMzIoU1RSVEFCX0JBU0VfQ0ZHLCAgICAgMHg4OCkKKy0g ICAgRklFTEQoU1RSVEFCX0JBU0VfQ0ZHLCBGTVQsICAgICAgMTYsIDIpCistICAgIEZJRUxEKFNU UlRBQl9CQVNFX0NGRywgU1BMSVQsICAgIDYgLCA1KQorLSAgICBGSUVMRChTVFJUQUJfQkFTRV9D RkcsIExPRzJTSVpFLCAwICwgNikKKy0KKy0jZGVmaW5lIEFfQ01EUV9CQVNFICAgICAgICAweDkw IC8qIDY0YiAqLworLVJFRzMyKENNRFFfUFJPRCwgICAgICAgICAgIDB4OTgpCistUkVHMzIoQ01E UV9DT05TLCAgICAgICAgICAgMHg5YykKKy0gICAgRklFTEQoQ01EUV9DT05TLCBFUlIsIDI0LCA3 KQorLQorLSNkZWZpbmUgQV9FVkVOVFFfQkFTRSAgICAgIDB4YTAgLyogNjRiICovCistUkVHMzIo RVZFTlRRX1BST0QsICAgICAgICAgMHhhOCkKKy1SRUczMihFVkVOVFFfQ09OUywgICAgICAgICAw eGFjKQorLQorLSNkZWZpbmUgQV9FVkVOVFFfSVJRX0NGRzAgIDB4YjAgLyogNjRiICovCistUkVH MzIoRVZFTlRRX0lSUV9DRkcxLCAgICAgMHhiOCkKKy1SRUczMihFVkVOVFFfSVJRX0NGRzIsICAg ICAweGJjKQorLQorLSNkZWZpbmUgQV9JRFJFR1MgICAgICAgICAgIDB4ZmQwCistCisgc3RhdGlj IGlubGluZSBpbnQgc21tdV9lbmFibGVkKFNNTVV2M1N0YXRlICpzKQorIHsKKyAgICAgcmV0dXJu IEZJRUxEX0VYMzIocy0+Y3JbMF0sIENSMCwgU01NVV9FTkFCTEUpOworQEAgLTI3MiwzNyArMTMy LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNtbXVfd3JpdGVfY21kcV9lcnIoU01NVXYzU3RhdGUg KnMsIHVpbnQzMl90IGVycl90eXBlKQorICAgICBzLT5jbWRxLmNvbnMgPSBGSUVMRF9EUDMyKHMt PmNtZHEuY29ucywgQ01EUV9DT05TLCBFUlIsIGVycl90eXBlKTsKKyB9CisgCistLyogQ29tbWFu ZHMgKi8KKy0KKy10eXBlZGVmIGVudW0gU01NVUNvbW1hbmRUeXBlIHsKKy0gICAgU01NVV9DTURf Tk9ORSAgICAgICAgICAgID0gMHgwMCwKKy0gICAgU01NVV9DTURfUFJFRkVUQ0hfQ09ORklHICAg ICAgICwKKy0gICAgU01NVV9DTURfUFJFRkVUQ0hfQUREUiwKKy0gICAgU01NVV9DTURfQ0ZHSV9T VEUsCistICAgIFNNTVVfQ01EX0NGR0lfU1RFX1JBTkdFLAorLSAgICBTTU1VX0NNRF9DRkdJX0NE LAorLSAgICBTTU1VX0NNRF9DRkdJX0NEX0FMTCwKKy0gICAgU01NVV9DTURfQ0ZHSV9BTEwsCist ICAgIFNNTVVfQ01EX1RMQklfTkhfQUxMICAgICA9IDB4MTAsCistICAgIFNNTVVfQ01EX1RMQklf TkhfQVNJRCwKKy0gICAgU01NVV9DTURfVExCSV9OSF9WQSwKKy0gICAgU01NVV9DTURfVExCSV9O SF9WQUEsCistICAgIFNNTVVfQ01EX1RMQklfRUwzX0FMTCAgICA9IDB4MTgsCistICAgIFNNTVVf Q01EX1RMQklfRUwzX1ZBICAgICA9IDB4MWEsCistICAgIFNNTVVfQ01EX1RMQklfRUwyX0FMTCAg ICA9IDB4MjAsCistICAgIFNNTVVfQ01EX1RMQklfRUwyX0FTSUQsCistICAgIFNNTVVfQ01EX1RM QklfRUwyX1ZBLAorLSAgICBTTU1VX0NNRF9UTEJJX0VMMl9WQUEsCistICAgIFNNTVVfQ01EX1RM QklfUzEyX1ZNQUxMICA9IDB4MjgsCistICAgIFNNTVVfQ01EX1RMQklfUzJfSVBBICAgICA9IDB4 MmEsCistICAgIFNNTVVfQ01EX1RMQklfTlNOSF9BTEwgICA9IDB4MzAsCistICAgIFNNTVVfQ01E X0FUQ19JTlYgICAgICAgICA9IDB4NDAsCistICAgIFNNTVVfQ01EX1BSSV9SRVNQLAorLSAgICBT TU1VX0NNRF9SRVNVTUUgICAgICAgICAgPSAweDQ0LAorLSAgICBTTU1VX0NNRF9TVEFMTF9URVJN LAorLSAgICBTTU1VX0NNRF9TWU5DLAorLX0gU01NVUNvbW1hbmRUeXBlOworLQorIHN0YXRpYyBj b25zdCBjaGFyICpjbWRfc3RyaW5naWZ5W10gPSB7CisgICAgIFtTTU1VX0NNRF9QUkVGRVRDSF9D T05GSUddID0gIlNNTVVfQ01EX1BSRUZFVENIX0NPTkZJRyIsCisgICAgIFtTTU1VX0NNRF9QUkVG RVRDSF9BRERSXSAgID0gIlNNTVVfQ01EX1BSRUZFVENIX0FERFIiLAorQEAgLTUyNSw2NCArMzU0 LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVUV2ZW50SW5mbyB7CisgCisgdm9pZCBzbW11djNfcmVj b3JkX2V2ZW50KFNNTVV2M1N0YXRlICpzLCBTTU1VRXZlbnRJbmZvICpldmVudCk7CisgCistLyog Q29uZmlndXJhdGlvbiBEYXRhICovCistCistLyogU1RFIExldmVsIDEgRGVzY3JpcHRvciAqLwor LXR5cGVkZWYgc3RydWN0IFNURURlc2MgeworLSAgICB1aW50MzJfdCB3b3JkWzJdOworLX0gU1RF RGVzYzsKKy0KKy0vKiBDRCBMZXZlbCAxIERlc2NyaXB0b3IgKi8KKy10eXBlZGVmIHN0cnVjdCBD RERlc2MgeworLSAgICB1aW50MzJfdCB3b3JkWzJdOworLX0gQ0REZXNjOworLQorLS8qIFN0cmVh bSBUYWJsZSBFbnRyeShTVEUpICovCistdHlwZWRlZiBzdHJ1Y3QgU1RFIHsKKy0gICAgdWludDMy X3Qgd29yZFsxNl07CistfSBTVEU7CistCistLyogQ29udGV4dCBEZXNjcmlwdG9yKENEKSAqLwor LXR5cGVkZWYgc3RydWN0IENEIHsKKy0gICAgdWludDMyX3Qgd29yZFsxNl07CistfSBDRDsKKy0K Ky0vKiBTVEUgZmllbGRzICovCistCistI2RlZmluZSBTVEVfVkFMSUQoeCkgICBleHRyYWN0MzIo KHgpLT53b3JkWzBdLCAwLCAxKQorLQorLSNkZWZpbmUgU1RFX0NPTkZJRyh4KSAgZXh0cmFjdDMy KCh4KS0+d29yZFswXSwgMSwgMykKKy0jZGVmaW5lIFNURV9DRkdfUzFfRU5BQkxFRChjb25maWcp IChjb25maWcgJiAweDEpCistI2RlZmluZSBTVEVfQ0ZHX1MyX0VOQUJMRUQoY29uZmlnKSAoY29u ZmlnICYgMHgyKQorLSNkZWZpbmUgU1RFX0NGR19BQk9SVChjb25maWcpICAgICAgKCEoY29uZmln ICYgMHg0KSkKKy0jZGVmaW5lIFNURV9DRkdfQllQQVNTKGNvbmZpZykgICAgIChjb25maWcgPT0g MHg0KQorLQorLSNkZWZpbmUgU1RFX1MxRk1UKHgpICAgICAgIGV4dHJhY3QzMigoeCktPndvcmRb MF0sIDQgLCAyKQorLSNkZWZpbmUgU1RFX1MxQ0RNQVgoeCkgICAgIGV4dHJhY3QzMigoeCktPndv cmRbMV0sIDI3LCA1KQorLSNkZWZpbmUgU1RFX1MxU1RBTExEKHgpICAgIGV4dHJhY3QzMigoeCkt PndvcmRbMl0sIDI3LCAxKQorLSNkZWZpbmUgU1RFX0VBVFMoeCkgICAgICAgIGV4dHJhY3QzMigo eCktPndvcmRbMl0sIDI4LCAyKQorLSNkZWZpbmUgU1RFX1NUUlcoeCkgICAgICAgIGV4dHJhY3Qz MigoeCktPndvcmRbMl0sIDMwLCAyKQorLSNkZWZpbmUgU1RFX1MyVk1JRCh4KSAgICAgIGV4dHJh Y3QzMigoeCktPndvcmRbNF0sIDAgLCAxNikKKy0jZGVmaW5lIFNURV9TMlQwU1ooeCkgICAgICBl eHRyYWN0MzIoKHgpLT53b3JkWzVdLCAwICwgNikKKy0jZGVmaW5lIFNURV9TMlNMMCh4KSAgICAg ICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCA2ICwgMikKKy0jZGVmaW5lIFNURV9TMlRHKHgpICAg ICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAxNCwgMikKKy0jZGVmaW5lIFNURV9TMlBTKHgp ICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAxNiwgMykKKy0jZGVmaW5lIFNURV9TMkFB NjQoeCkgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAxOSwgMSkKKy0jZGVmaW5lIFNURV9T MkVOREkoeCkgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyMCwgMSkKKy0jZGVmaW5lIFNU RV9TMkFGRkQoeCkgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyMSwgMSkKKy0jZGVmaW5l IFNURV9TMkhEKHgpICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyMywgMSkKKy0jZGVm aW5lIFNURV9TMkhBKHgpICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyNCwgMSkKKy0j ZGVmaW5lIFNURV9TMlMoeCkgICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyNSwgMSkK Ky0jZGVmaW5lIFNURV9TMlIoeCkgICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzVdLCAyNiwg MSkKKy0KKy0jZGVmaW5lIFNURV9DVFhQVFIoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKy0gICAgKChleHRyYWN0NjQoKHgpLT53b3JkWzFdLCAwLCAxNikgPDwgMzIpIHwg ICAgICAgICAgIFwKKy0gICAgICgoeCktPndvcmRbMF0gJiAweGZmZmZmZmMwKSkKKy0KKy0jZGVm aW5lIFNURV9TMlRUQih4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0g ICAgKChleHRyYWN0NjQoKHgpLT53b3JkWzddLCAwLCAxNikgPDwgMzIpIHwgICAgICAgICAgIFwK Ky0gICAgICgoeCktPndvcmRbNl0gJiAweGZmZmZmZmYwKSkKKy0KKyBzdGF0aWMgaW5saW5lIGlu dCBvYXMyYml0cyhpbnQgb2FzX2ZpZWxkKQorIHsKKyAgICAgc3dpdGNoIChvYXNfZmllbGQpIHsK K0BAIC02MDMsMzAgKzM3NCw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IG9hczJiaXRzKGludCBvYXNf ZmllbGQpCisgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgfQorIAorLS8qIENEIGZpZWxk cyAqLworLQorLSNkZWZpbmUgQ0RfVkFMSUQoeCkgICBleHRyYWN0MzIoKHgpLT53b3JkWzBdLCAz MSwgMSkKKy0jZGVmaW5lIENEX0FTSUQoeCkgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTYs IDE2KQorLSNkZWZpbmUgQ0RfVFRCKHgsIHNlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCistICAgICgoZXh0cmFjdDY0KCh4KS0+d29yZFsoc2VsKSAqIDIgKyAz XSwgMCwgMTkpIDw8IDMyKSB8ICAgICAgIFwKKy0gICAgICgoeCktPndvcmRbKHNlbCkgKiAyICsg Ml0gJiB+MHhmVUxMKSkKKy0KKy0jZGVmaW5lIENEX0hBRCh4LCBzZWwpICAgZXh0cmFjdDMyKCh4 KS0+d29yZFsoc2VsKSAqIDIgKyAyXSwgMSwgMSkKKy0KKy0jZGVmaW5lIENEX1RTWih4LCBzZWwp ICAgZXh0cmFjdDMyKCh4KS0+d29yZFswXSwgKDE2ICogKHNlbCkpICsgMCwgNikKKy0jZGVmaW5l IENEX1RHKHgsIHNlbCkgICAgZXh0cmFjdDMyKCh4KS0+d29yZFswXSwgKDE2ICogKHNlbCkpICsg NiwgMikKKy0jZGVmaW5lIENEX0VQRCh4LCBzZWwpICAgZXh0cmFjdDMyKCh4KS0+d29yZFswXSwg KDE2ICogKHNlbCkpICsgMTQsIDEpCistI2RlZmluZSBDRF9FTkRJKHgpICAgICAgIGV4dHJhY3Qz MigoeCktPndvcmRbMF0sIDE1LCAxKQorLSNkZWZpbmUgQ0RfSVBTKHgpICAgICAgICBleHRyYWN0 MzIoKHgpLT53b3JkWzFdLCAwICwgMykKKy0jZGVmaW5lIENEX0FGRkQoeCkgICAgICAgZXh0cmFj dDMyKCh4KS0+d29yZFsxXSwgMyAsIDEpCistI2RlZmluZSBDRF9UQkkoeCkgICAgICAgIGV4dHJh Y3QzMigoeCktPndvcmRbMV0sIDYgLCAyKQorLSNkZWZpbmUgQ0RfSEQoeCkgICAgICAgICBleHRy YWN0MzIoKHgpLT53b3JkWzFdLCAxMCAsIDEpCistI2RlZmluZSBDRF9IQSh4KSAgICAgICAgIGV4 dHJhY3QzMigoeCktPndvcmRbMV0sIDExICwgMSkKKy0jZGVmaW5lIENEX1MoeCkgICAgICAgICAg ZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTIsIDEpCistI2RlZmluZSBDRF9SKHgpICAgICAgICAg IGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDEzLCAxKQorLSNkZWZpbmUgQ0RfQSh4KSAgICAgICAg ICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAxNCwgMSkKKy0jZGVmaW5lIENEX0FBUkNINjQoeCkg ICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgOSAsIDEpCistCisgLyoqCisgICogdGcyZ3JhbnVs ZSAtIERlY29kZXMgdGhlIENEIHRyYW5zbGF0aW9uIGdyYW51bGUgc2l6ZSBmaWVsZCBhY2NvcmRp bmcKKyAgKiB0byB0aGUgdHRiciBpbiB1c2UKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9z bW11djMtY29tbW9uLmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi45ZGE4MTdmNDFhCistLS0gL2Rldi9udWxs CisrKysgYi9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKK0BAIC0wLDAgKzEsMjY4IEBA CisrLyoKKysgKiBBUk0gU01NVXYzIHN1cHBvcnQgLSBDb21tb24gQVBJCisrICoKKysgKiBDb3B5 cmlnaHQgKEMpIDIwMTQtMjAxNiBCcm9hZGNvbSBDb3Jwb3JhdGlvbgorKyAqIENvcHlyaWdodCAo YykgMjAxNyBSZWQgSGF0LCBJbmMuCisrICogV3JpdHRlbiBieSBQcmVtIE1hbGxhcHBhLCBFcmlj IEF1Z2VyCisrICoKKysgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRl cgorKyAqLworKworKyNpZm5kZWYgSFdfQVJNX1NNTVVWM19DT01NT05fSAorKyNkZWZpbmUgSFdf QVJNX1NNTVVWM19DT01NT05fSAorKworKy8qIENvbmZpZ3VyYXRpb24gRGF0YSAqLworKworKy8q IFNURSBMZXZlbCAxIERlc2NyaXB0b3IgKi8KKyt0eXBlZGVmIHN0cnVjdCBTVEVEZXNjIHsKKysg ICAgdWludDMyX3Qgd29yZFsyXTsKKyt9IFNURURlc2M7CisrCisrLyogQ0QgTGV2ZWwgMSBEZXNj cmlwdG9yICovCisrdHlwZWRlZiBzdHJ1Y3QgQ0REZXNjIHsKKysgICAgdWludDMyX3Qgd29yZFsy XTsKKyt9IENERGVzYzsKKysKKysvKiBTdHJlYW0gVGFibGUgRW50cnkoU1RFKSAqLworK3R5cGVk ZWYgc3RydWN0IFNURSB7CisrICAgIHVpbnQzMl90IHdvcmRbMTZdOworK30gU1RFOworKworKy8q IENvbnRleHQgRGVzY3JpcHRvcihDRCkgKi8KKyt0eXBlZGVmIHN0cnVjdCBDRCB7CisrICAgIHVp bnQzMl90IHdvcmRbMTZdOworK30gQ0Q7CisrCisrLyogU1RFIGZpZWxkcyAqLworKworKyNkZWZp bmUgU1RFX1ZBTElEKHgpICAgZXh0cmFjdDMyKCh4KS0+d29yZFswXSwgMCwgMSkKKysKKysjZGVm aW5lIFNURV9DT05GSUcoeCkgIGV4dHJhY3QzMigoeCktPndvcmRbMF0sIDEsIDMpCisrI2RlZmlu ZSBTVEVfQ0ZHX1MxX0VOQUJMRUQoY29uZmlnKSAoY29uZmlnICYgMHgxKQorKyNkZWZpbmUgU1RF X0NGR19TMl9FTkFCTEVEKGNvbmZpZykgKGNvbmZpZyAmIDB4MikKKysjZGVmaW5lIFNURV9DRkdf QUJPUlQoY29uZmlnKSAgICAgICghKGNvbmZpZyAmIDB4NCkpCisrI2RlZmluZSBTVEVfQ0ZHX0JZ UEFTUyhjb25maWcpICAgICAoY29uZmlnID09IDB4NCkKKysKKysjZGVmaW5lIFNURV9TMUZNVCh4 KSAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzBdLCA0ICwgMikKKysjZGVmaW5lIFNURV9TMUNE TUFYKHgpICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAyNywgNSkKKysjZGVmaW5lIFNURV9T MVNUQUxMRCh4KSAgICBleHRyYWN0MzIoKHgpLT53b3JkWzJdLCAyNywgMSkKKysjZGVmaW5lIFNU RV9FQVRTKHgpICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzJdLCAyOCwgMikKKysjZGVmaW5l IFNURV9TVFJXKHgpICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzJdLCAzMCwgMikKKysjZGVm aW5lIFNURV9TMlZNSUQoeCkgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzRdLCAwICwgMTYpCisr I2RlZmluZSBTVEVfUzJUMFNaKHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMCAsIDYp CisrI2RlZmluZSBTVEVfUzJTTDAoeCkgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgNiAs IDIpCisrI2RlZmluZSBTVEVfUzJURyh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwg MTQsIDIpCisrI2RlZmluZSBTVEVfUzJQUyh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1 XSwgMTYsIDMpCisrI2RlZmluZSBTVEVfUzJBQTY0KHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29y ZFs1XSwgMTksIDEpCisrI2RlZmluZSBTVEVfUzJFTkRJKHgpICAgICAgZXh0cmFjdDMyKCh4KS0+ d29yZFs1XSwgMjAsIDEpCisrI2RlZmluZSBTVEVfUzJBRkZEKHgpICAgICAgZXh0cmFjdDMyKCh4 KS0+d29yZFs1XSwgMjEsIDEpCisrI2RlZmluZSBTVEVfUzJIRCh4KSAgICAgICAgZXh0cmFjdDMy KCh4KS0+d29yZFs1XSwgMjMsIDEpCisrI2RlZmluZSBTVEVfUzJIQSh4KSAgICAgICAgZXh0cmFj dDMyKCh4KS0+d29yZFs1XSwgMjQsIDEpCisrI2RlZmluZSBTVEVfUzJTKHgpICAgICAgICAgZXh0 cmFjdDMyKCh4KS0+d29yZFs1XSwgMjUsIDEpCisrI2RlZmluZSBTVEVfUzJSKHgpICAgICAgICAg ZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMjYsIDEpCisrCisrI2RlZmluZSBTVEVfQ1RYUFRSKHgp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoZXh0cmFjdDY0KCh4 KS0+d29yZFsxXSwgMCwgMTYpIDw8IDMyKSB8ICAgICAgICAgICBcCisrICAgICAoKHgpLT53b3Jk WzBdICYgMHhmZmZmZmZjMCkpCisrCisrI2RlZmluZSBTVEVfUzJUVEIoeCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoZXh0cmFjdDY0KCh4KS0+d29yZFs3XSwg MCwgMTYpIDw8IDMyKSB8ICAgICAgICAgICBcCisrICAgICAoKHgpLT53b3JkWzZdICYgMHhmZmZm ZmZmMCkpCisrCisrLyogQ0QgZmllbGRzICovCisrCisrI2RlZmluZSBDRF9WQUxJRCh4KSAgIGV4 dHJhY3QzMigoeCktPndvcmRbMF0sIDMxLCAxKQorKyNkZWZpbmUgQ0RfQVNJRCh4KSAgICBleHRy YWN0MzIoKHgpLT53b3JkWzFdLCAxNiwgMTYpCisrI2RlZmluZSBDRF9UVEIoeCwgc2VsKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgKChleHRyYWN0NjQo KHgpLT53b3JkWyhzZWwpICogMiArIDNdLCAwLCAxOSkgPDwgMzIpIHwgICAgICAgXAorKyAgICAg KCh4KS0+d29yZFsoc2VsKSAqIDIgKyAyXSAmIH4weGZVTEwpKQorKworKyNkZWZpbmUgQ0RfSEFE KHgsIHNlbCkgICBleHRyYWN0MzIoKHgpLT53b3JkWyhzZWwpICogMiArIDJdLCAxLCAxKQorKwor KyNkZWZpbmUgQ0RfVFNaKHgsIHNlbCkgICBleHRyYWN0MzIoKHgpLT53b3JkWzBdLCAoMTYgKiAo c2VsKSkgKyAwLCA2KQorKyNkZWZpbmUgQ0RfVEcoeCwgc2VsKSAgICBleHRyYWN0MzIoKHgpLT53 b3JkWzBdLCAoMTYgKiAoc2VsKSkgKyA2LCAyKQorKyNkZWZpbmUgQ0RfRVBEKHgsIHNlbCkgICBl eHRyYWN0MzIoKHgpLT53b3JkWzBdLCAoMTYgKiAoc2VsKSkgKyAxNCwgMSkKKysjZGVmaW5lIENE X0VOREkoeCkgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFswXSwgMTUsIDEpCisrI2RlZmluZSBD RF9JUFMoeCkgICAgICAgIGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDAgLCAzKQorKyNkZWZpbmUg Q0RfQUZGRCh4KSAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAzICwgMSkKKysjZGVmaW5l IENEX1RCSSh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgNiAsIDIpCisrI2RlZmlu ZSBDRF9IRCh4KSAgICAgICAgIGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDEwICwgMSkKKysjZGVm aW5lIENEX0hBKHgpICAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTEgLCAxKQorKyNk ZWZpbmUgQ0RfUyh4KSAgICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAxMiwgMSkKKysj ZGVmaW5lIENEX1IoeCkgICAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTMsIDEpCisr I2RlZmluZSBDRF9BKHgpICAgICAgICAgIGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDE0LCAxKQor KyNkZWZpbmUgQ0RfQUFSQ0g2NCh4KSAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCA5ICwgMSkK KysKKysvKiBNTUlPIFJlZ2lzdGVycyAqLworKworK1JFRzMyKElEUjAsICAgICAgICAgICAgICAg IDB4MCkKKysgICAgRklFTEQoSURSMCwgUzJQLCAgICAgICAgIDAgLCAxKQorKyAgICBGSUVMRChJ RFIwLCBTMVAsICAgICAgICAgMSAsIDEpCisrICAgIEZJRUxEKElEUjAsIFRURiwgICAgICAgICAy ICwgMikKKysgICAgRklFTEQoSURSMCwgQ09IQUNDLCAgICAgIDQgLCAxKQorKyAgICBGSUVMRChJ RFIwLCBCVE0sICAgICAgICAgNSAsIDEpCisrICAgIEZJRUxEKElEUjAsIEhUVFUsICAgICAgICA2 ICwgMikKKysgICAgRklFTEQoSURSMCwgRE9STUhJTlQsICAgIDggLCAxKQorKyAgICBGSUVMRChJ RFIwLCBIWVAsICAgICAgICAgOSAsIDEpCisrICAgIEZJRUxEKElEUjAsIEFUUywgICAgICAgICAx MCwgMSkKKysgICAgRklFTEQoSURSMCwgTlMxQVRTLCAgICAgIDExLCAxKQorKyAgICBGSUVMRChJ RFIwLCBBU0lEMTYsICAgICAgMTIsIDEpCisrICAgIEZJRUxEKElEUjAsIE1TSSwgICAgICAgICAx MywgMSkKKysgICAgRklFTEQoSURSMCwgU0VWLCAgICAgICAgIDE0LCAxKQorKyAgICBGSUVMRChJ RFIwLCBBVE9TLCAgICAgICAgMTUsIDEpCisrICAgIEZJRUxEKElEUjAsIFBSSSwgICAgICAgICAx NiwgMSkKKysgICAgRklFTEQoSURSMCwgVk1XLCAgICAgICAgIDE3LCAxKQorKyAgICBGSUVMRChJ RFIwLCBWTUlEMTYsICAgICAgMTgsIDEpCisrICAgIEZJRUxEKElEUjAsIENEMkwsICAgICAgICAx OSwgMSkKKysgICAgRklFTEQoSURSMCwgVkFUT1MsICAgICAgIDIwLCAxKQorKyAgICBGSUVMRChJ RFIwLCBUVEVORElBTiwgICAgMjEsIDIpCisrICAgIEZJRUxEKElEUjAsIEFUU1JFQ0VSUiwgICAy MywgMSkKKysgICAgRklFTEQoSURSMCwgU1RBTExfTU9ERUwsIDI0LCAyKQorKyAgICBGSUVMRChJ RFIwLCBURVJNX01PREVMLCAgMjYsIDEpCisrICAgIEZJRUxEKElEUjAsIFNUTEVWRUwsICAgICAy NywgMikKKysgICAgRklFTEQoSURSMCwgUk1FX0lNUEwsICAgIDMwLCAxKQorKworK1JFRzMyKElE UjEsICAgICAgICAgICAgICAgIDB4NCkKKysgICAgRklFTEQoSURSMSwgU0lEU0laRSwgICAgICAw ICwgNikKKysgICAgRklFTEQoSURSMSwgU1NJRFNJWkUsICAgICA2ICwgNSkKKysgICAgRklFTEQo SURSMSwgUFJJUVMsICAgICAgICAxMSwgNSkKKysgICAgRklFTEQoSURSMSwgRVZFTlRRUywgICAg ICAxNiwgNSkKKysgICAgRklFTEQoSURSMSwgQ01EUVMsICAgICAgICAyMSwgNSkKKysgICAgRklF TEQoSURSMSwgQVRUUl9QRVJNU19PVlIsIDI2LCAxKQorKyAgICBGSUVMRChJRFIxLCBBVFRSX1RZ UEVTX09WUiwgMjcsIDEpCisrICAgIEZJRUxEKElEUjEsIFJFTCwgICAgICAgICAgMjgsIDEpCisr ICAgIEZJRUxEKElEUjEsIFFVRVVFU19QUkVTRVQsIDI5LCAxKQorKyAgICBGSUVMRChJRFIxLCBU QUJMRVNfUFJFU0VULCAzMCwgMSkKKysgICAgRklFTEQoSURSMSwgRUNNRFEsICAgICAgICAzMSwg MSkKKysKKysjZGVmaW5lIFNNTVVfSURSMV9TSURTSVpFIDE2CisrI2RlZmluZSBTTU1VX0NNRFFT ICAgMTkKKysjZGVmaW5lIFNNTVVfRVZFTlRRUyAxOQorKworK1JFRzMyKElEUjIsICAgICAgICAg ICAgICAgIDB4OCkKKysgICAgIEZJRUxEKElEUjIsIEJBX1ZBVE9TLCAwLCAxMCkKKysKKytSRUcz MihJRFIzLCAgICAgICAgICAgICAgICAweGMpCisrICAgICBGSUVMRChJRFIzLCBIQUQsICAgICAg ICAgMiwgMSk7CisrICAgICBGSUVMRChJRFIzLCBQQkhBLCAgICAgICAgMywgMSk7CisrICAgICBG SUVMRChJRFIzLCBYTlgsICAgICAgICAgNCwgMSk7CisrICAgICBGSUVMRChJRFIzLCBQUFMsICAg ICAgICAgNSwgMSk7CisrICAgICBGSUVMRChJRFIzLCBNUEFNLCAgICAgICAgNywgMSk7CisrICAg ICBGSUVMRChJRFIzLCBGV0IsICAgICAgICAgOCwgMSk7CisrICAgICBGSUVMRChJRFIzLCBTVFQs ICAgICAgICAgOSwgMSk7CisrICAgICBGSUVMRChJRFIzLCBSSUwsICAgICAgICAxMCwgMSk7Cisr ICAgICBGSUVMRChJRFIzLCBCQk1MLCAgICAgICAxMSwgMik7CisrICAgICBGSUVMRChJRFIzLCBF MFBELCAgICAgICAxMywgMSk7CisrICAgICBGSUVMRChJRFIzLCBQVFdOTkMsICAgICAxNCwgMSk7 CisrICAgICBGSUVMRChJRFIzLCBEUFQsICAgICAgICAxNSwgMSk7CisrCisrUkVHMzIoSURSNCwg ICAgICAgICAgICAgICAgMHgxMCkKKysKKytSRUczMihJRFI1LCAgICAgICAgICAgICAgICAweDE0 KQorKyAgICAgRklFTEQoSURSNSwgT0FTLCAgICAgICAgIDAsIDMpOworKyAgICAgRklFTEQoSURS NSwgR1JBTjRLLCAgICAgIDQsIDEpOworKyAgICAgRklFTEQoSURSNSwgR1JBTjE2SywgICAgIDUs IDEpOworKyAgICAgRklFTEQoSURSNSwgR1JBTjY0SywgICAgIDYsIDEpOworKyAgICAgRklFTEQo SURSNSwgVkFYLCAgICAgICAgMTAsIDIpOworKyAgICAgRklFTEQoSURSNSwgU1RBTExfTUFYLCAg MTYsIDE2KTsKKysKKysjZGVmaW5lIFNNTVVfSURSNV9PQVMgNAorKworK1JFRzMyKElJRFIsICAg ICAgICAgICAgICAgIDB4MTgpCisrUkVHMzIoQUlEUiwgICAgICAgICAgICAgICAgMHgxYykKKytS RUczMihDUjAsICAgICAgICAgICAgICAgICAweDIwKQorKyAgICBGSUVMRChDUjAsIFNNTVVfRU5B QkxFLCAgIDAsIDEpCisrICAgIEZJRUxEKENSMCwgRVZFTlRRRU4sICAgICAgMiwgMSkKKysgICAg RklFTEQoQ1IwLCBDTURRRU4sICAgICAgICAzLCAxKQorKworKyNkZWZpbmUgU01NVV9DUjBfUkVT RVJWRUQgMHhGRkZGRkMyMAorKworK1JFRzMyKENSMEFDSywgICAgICAgICAgICAgIDB4MjQpCisr UkVHMzIoQ1IxLCAgICAgICAgICAgICAgICAgMHgyOCkKKytSRUczMihDUjIsICAgICAgICAgICAg ICAgICAweDJjKQorK1JFRzMyKFNUQVRVU1IsICAgICAgICAgICAgIDB4NDApCisrUkVHMzIoR0JQ QSwgICAgICAgICAgICAgICAgMHg0NCkKKysgICAgRklFTEQoR0JQQSwgQUJPUlQsICAgICAgICAy MCwgMSkKKysgICAgRklFTEQoR0JQQSwgVVBEQVRFLCAgICAgICAzMSwgMSkKKysKKysvKiBVc2Ug aW5jb21pbmcuICovCisrI2RlZmluZSBTTU1VX0dCUEFfUkVTRVRfVkFMIDB4MTAwMAorKworK1JF RzMyKElSUV9DVFJMLCAgICAgICAgICAgIDB4NTApCisrICAgIEZJRUxEKElSUV9DVFJMLCBHRVJS T1JfSVJRRU4sICAgICAgICAwLCAxKQorKyAgICBGSUVMRChJUlFfQ1RSTCwgUFJJX0lSUUVOLCAg ICAgICAgICAgMSwgMSkKKysgICAgRklFTEQoSVJRX0NUUkwsIEVWRU5UUV9JUlFFTiwgICAgICAg IDIsIDEpCisrCisrUkVHMzIoSVJRX0NUUkxfQUNLLCAgICAgICAgMHg1NCkKKytSRUczMihHRVJS T1IsICAgICAgICAgICAgICAweDYwKQorKyAgICBGSUVMRChHRVJST1IsIENNRFFfRVJSLCAgICAg ICAgICAgMCwgMSkKKysgICAgRklFTEQoR0VSUk9SLCBFVkVOVFFfQUJUX0VSUiwgICAgIDIsIDEp CisrICAgIEZJRUxEKEdFUlJPUiwgUFJJUV9BQlRfRVJSLCAgICAgICAzLCAxKQorKyAgICBGSUVM RChHRVJST1IsIE1TSV9DTURRX0FCVF9FUlIsICAgNCwgMSkKKysgICAgRklFTEQoR0VSUk9SLCBN U0lfRVZFTlRRX0FCVF9FUlIsIDUsIDEpCisrICAgIEZJRUxEKEdFUlJPUiwgTVNJX1BSSVFfQUJU X0VSUiwgICA2LCAxKQorKyAgICBGSUVMRChHRVJST1IsIE1TSV9HRVJST1JfQUJUX0VSUiwgNywg MSkKKysgICAgRklFTEQoR0VSUk9SLCBNU0lfU0ZNX0VSUiwgICAgICAgIDgsIDEpCisrCisrUkVH MzIoR0VSUk9STiwgICAgICAgICAgICAgMHg2NCkKKysKKysjZGVmaW5lIEFfR0VSUk9SX0lSUV9D RkcwICAweDY4IC8qIDY0YiAqLworK1JFRzMyKEdFUlJPUl9JUlFfQ0ZHMSwgMHg3MCkKKytSRUcz MihHRVJST1JfSVJRX0NGRzIsIDB4NzQpCisrCisrI2RlZmluZSBBX1NUUlRBQl9CQVNFICAgICAg MHg4MCAvKiA2NGIgKi8KKysKKysjZGVmaW5lIFNNTVVfQkFTRV9BRERSX01BU0sgMHhmZmZmZmZm ZmZmZmMwCisrCisrUkVHMzIoU1RSVEFCX0JBU0VfQ0ZHLCAgICAgMHg4OCkKKysgICAgRklFTEQo U1RSVEFCX0JBU0VfQ0ZHLCBGTVQsICAgICAgMTYsIDIpCisrICAgIEZJRUxEKFNUUlRBQl9CQVNF X0NGRywgU1BMSVQsICAgIDYgLCA1KQorKyAgICBGSUVMRChTVFJUQUJfQkFTRV9DRkcsIExPRzJT SVpFLCAwICwgNikKKysKKysjZGVmaW5lIEFfQ01EUV9CQVNFICAgICAgICAweDkwIC8qIDY0YiAq LworK1JFRzMyKENNRFFfUFJPRCwgICAgICAgICAgIDB4OTgpCisrUkVHMzIoQ01EUV9DT05TLCAg ICAgICAgICAgMHg5YykKKysgICAgRklFTEQoQ01EUV9DT05TLCBFUlIsIDI0LCA3KQorKworKyNk ZWZpbmUgQV9FVkVOVFFfQkFTRSAgICAgIDB4YTAgLyogNjRiICovCisrUkVHMzIoRVZFTlRRX1BS T0QsICAgICAgICAgMHhhOCkKKytSRUczMihFVkVOVFFfQ09OUywgICAgICAgICAweGFjKQorKwor KyNkZWZpbmUgQV9FVkVOVFFfSVJRX0NGRzAgIDB4YjAgLyogNjRiICovCisrUkVHMzIoRVZFTlRR X0lSUV9DRkcxLCAgICAgMHhiOCkKKytSRUczMihFVkVOVFFfSVJRX0NGRzIsICAgICAweGJjKQor KworKyNkZWZpbmUgQV9JRFJFR1MgICAgICAgICAgIDB4ZmQwCisrCisrLyogQ29tbWFuZHMgKi8K KysKKyt0eXBlZGVmIGVudW0gU01NVUNvbW1hbmRUeXBlIHsKKysgICAgU01NVV9DTURfTk9ORSAg ICAgICAgICAgID0gMHgwMCwKKysgICAgU01NVV9DTURfUFJFRkVUQ0hfQ09ORklHICAgICAgICwK KysgICAgU01NVV9DTURfUFJFRkVUQ0hfQUREUiwKKysgICAgU01NVV9DTURfQ0ZHSV9TVEUsCisr ICAgIFNNTVVfQ01EX0NGR0lfU1RFX1JBTkdFLAorKyAgICBTTU1VX0NNRF9DRkdJX0NELAorKyAg ICBTTU1VX0NNRF9DRkdJX0NEX0FMTCwKKysgICAgU01NVV9DTURfQ0ZHSV9BTEwsCisrICAgIFNN TVVfQ01EX1RMQklfTkhfQUxMICAgICA9IDB4MTAsCisrICAgIFNNTVVfQ01EX1RMQklfTkhfQVNJ RCwKKysgICAgU01NVV9DTURfVExCSV9OSF9WQSwKKysgICAgU01NVV9DTURfVExCSV9OSF9WQUEs CisrICAgIFNNTVVfQ01EX1RMQklfRUwzX0FMTCAgICA9IDB4MTgsCisrICAgIFNNTVVfQ01EX1RM QklfRUwzX1ZBICAgICA9IDB4MWEsCisrICAgIFNNTVVfQ01EX1RMQklfRUwyX0FMTCAgICA9IDB4 MjAsCisrICAgIFNNTVVfQ01EX1RMQklfRUwyX0FTSUQsCisrICAgIFNNTVVfQ01EX1RMQklfRUwy X1ZBLAorKyAgICBTTU1VX0NNRF9UTEJJX0VMMl9WQUEsCisrICAgIFNNTVVfQ01EX1RMQklfUzEy X1ZNQUxMICA9IDB4MjgsCisrICAgIFNNTVVfQ01EX1RMQklfUzJfSVBBICAgICA9IDB4MmEsCisr ICAgIFNNTVVfQ01EX1RMQklfTlNOSF9BTEwgICA9IDB4MzAsCisrICAgIFNNTVVfQ01EX0FUQ19J TlYgICAgICAgICA9IDB4NDAsCisrICAgIFNNTVVfQ01EX1BSSV9SRVNQLAorKyAgICBTTU1VX0NN RF9SRVNVTUUgICAgICAgICAgPSAweDQ0LAorKyAgICBTTU1VX0NNRF9TVEFMTF9URVJNLAorKyAg ICBTTU1VX0NNRF9TWU5DLAorK30gU01NVUNvbW1hbmRUeXBlOworKworKyNlbmRpZiAvKiBIV19B Uk1fU01NVVYzX0NPTU1PTl9IICovCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3 LWFybS1zbW11djMtRml4LUNGR0lfQ0QtaGFuZGxpbmctd2hlbi1zdGFnZS0xLWlzLXUucGF0Y2gg Yi9rdm0taHctYXJtLXNtbXV2My1GaXgtQ0ZHSV9DRC1oYW5kbGluZy13aGVuLXN0YWdlLTEtaXMt dS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmE1ZDczCi0tLSAv ZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtRml4LUNGR0lfQ0QtaGFuZGxpbmctd2hl bi1zdGFnZS0xLWlzLXUucGF0Y2gKQEAgLTAsMCArMSw1OSBAQAorRnJvbSBmNWNjZjFmODBkMzdj ZTQ0Y2UxMGQ4YzEyZjRmODIzM2RlYjAzMDY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogVGFvIFRhbmcgPHRhbmd0YW8xNjM0QHBoeXRpdW0uY29tLmNuPgorRGF0ZTogV2VkLCA0IE1h ciAyMDI2IDIyOjIzOjQ0ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDU2LzExMV0gaHcvYXJtL3Nt bXV2MzogRml4IENGR0lfQ0QgaGFuZGxpbmcgd2hlbiBzdGFnZS0xIGlzCisgdW5zdXBwb3J0ZWQK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBS ZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29t PgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6 IFs1Ni8xMTFdIGJhMGMwOWQzMWViZTNlYTgxYzNlYTJkNzE2YzIyMjY4ZmZlOWYxMjIgKGVhdWdl cjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0 L2Jyb3dzZS9SSEVMLTE2MDE5MAorCitBZGQgYSBTVEFHRTFfU1VQUE9SVEVEIGNoZWNrIGluIHRo ZSBDTURfQ0ZHSV9DRCBhbmQgQ01EX0NGR0lfQ0RfQUxMIHBhdGgKK2FuZCByZXR1cm4gQ0VSUk9S X0lMTCB3aGVuIHN0YWdlLTEgdHJhbnNsYXRpb24gaXMgbm90IGltcGxlbWVudGVkLAorbWF0Y2hp bmcgdGhlIGFyY2hpdGVjdHVyZSByZXF1aXJlbWVudCAoSUhJIDAwNzBHLmIsIHBhZ2UgMTc2KS4K KworRml4ZXM6IDMyY2ZkN2YzOWUwOCAoImh3L2FybS9zbW11djM6IENhY2hlL2ludmFsaWRhdGUg Y29uZmlnIGRhdGEiKQorU2lnbmVkLW9mZi1ieTogVGFvIFRhbmcgPHRhbmd0YW8xNjM0QHBoeXRp dW0uY29tLmNuPgorUmV2aWV3ZWQtYnk6IFBpZXJyaWNrIEJvdXZpZXIgPHBpZXJyaWNrLmJvdXZp ZXJAbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBNb3N0YWZhIFNhbGVoIDxzbW9zdGFmYUBnb29n bGUuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K01lc3NhZ2UtaWQ6IDIwMjYwMzA0MTQyMzQ0LjMzNDE0NDQtNC10YW5ndGFvMTYzNEBwaHl0aXVt LmNvbS5jbgorTGlua3M6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3FlbXUtZGV2ZWwvMjAyNjAy MjExMDE3MzMuMjk5NTAyMC0xLXRhbmd0YW8xNjM0QHBoeXRpdW0uY29tLmNuLworU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgZmIxNDcwMDdkMTQ1ODY2Nzc1YjBjZDVhNzk0YzlmYThlZmRiOGMz ZCkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0t LQorIGh3L2FybS9zbW11djMuYyB8IDkgKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDkgaW5z ZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My5jIGIvaHcvYXJtL3NtbXV2 My5jCitpbmRleCA4YjUxNTU0NjIwLi5kOTM3ZjRhZGQ1IDEwMDY0NAorLS0tIGEvaHcvYXJtL3Nt bXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC0xNDA3LDYgKzE0MDcsMTUgQEAgc3Rh dGljIGludCBzbW11djNfY21kcV9jb25zdW1lKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnAp CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAKKysgICAgICAgICAg ICAvKgorKyAgICAgICAgICAgICAqIFRoaXMgY29tbWFuZCByYWlzZXMgQ0VSUk9SX0lMTCB3aGVu IHN0YWdlIDEgaXMgbm90IGltcGxlbWVudGVkCisrICAgICAgICAgICAgICogYWNjb3JkaW5nIHRv IChJSEkgMDA3MEcuYikgUGFnZSAxNzYuCisrICAgICAgICAgICAgICovCisrICAgICAgICAgICAg aWYgKCFTVEFHRTFfU1VQUE9SVEVEKHMpKSB7CisrICAgICAgICAgICAgICAgIGNtZF9lcnJvciA9 IFNNTVVfQ0VSUk9SX0lMTDsKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAg fQorKworICAgICAgICAgICAgIHRyYWNlX3NtbXV2M19jbWRxX2NmZ2lfY2Qoc2lkKTsKKyAgICAg ICAgICAgICBzbW11djNfZmx1c2hfY29uZmlnKHNkZXYpOworICAgICAgICAgICAgIGlmICghc21t dXYzX2FjY2VsX2lzc3VlX2ludl9jbWQocywgJmNtZCwgc2RldiwgZXJycCkpIHsKKy0tIAorMi41 Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1IYXZlLXNtbXV2M19hY2NlbF9p bml0LXRha2UtYW4tRXJyb3ItcC5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLUhhdmUtc21tdXYz X2FjY2VsX2luaXQtdGFrZS1hbi1FcnJvci1wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjhjNDZjZDAKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2 My1IYXZlLXNtbXV2M19hY2NlbF9pbml0LXRha2UtYW4tRXJyb3ItcC5wYXRjaApAQCAtMCwwICsx LDExMSBAQAorRnJvbSAzYmM4Yjk3ZTliMmJhOGI2N2EyZmNhMjMxMzgzMmQ1NjVkMjMwM2RmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP1BoaWxpcHBlPTIwTWF0aGll dS1EYXVkPUMzPUE5Pz0gPHBoaWxtZEBsaW5hcm8ub3JnPgorRGF0ZTogVGh1LCA5IEFwciAyMDI2 IDEzOjM1OjU2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDY1LzExMV0gaHcvYXJtL3NtbXV2Mzog SGF2ZSBzbW11djNfYWNjZWxfaW5pdCgpIHRha2UgYW4KKyBFcnJvciogcGFyYW1ldGVyCitNSU1F LVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNl IGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JI LUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNjUv MTExXSBmZjRhYzEwMzBmZTI5YTEzYjExMTI1MjQxMWExZTE1MDM4ZjdjY2E3IChlYXVnZXIxL2Nl bnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93 c2UvUkhFTC0xNjM1OTYKKworQnkgZ2l2aW5nIHNtbXV2M19hY2NlbF9pbml0KCkgdGhlIGFiaWxp dHkgdG8gcG9wdWxhdGUgYW4gZXJyb3IsCit3ZSBjYW4gZmFpbCBlYXJseSBpbiBzbW11X3JlYWxp emUoKSB3aGVuIENPTkZJR19BUk1fU01NVVYzX0FDQ0VMCitpcyBub3QgYXZhaWxhYmxlLCBzaW1w bGlmeWluZyBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KCkuCisKK1N1Z2dlc3RlZC1ieTogU2hhbWVl ciBLb2xvdGh1bSBUaG9kaSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitDby1kZXZlbG9wZWQt Ynk6IFNoYW1lZXIgS29sb3RodW0gVGhvZGkgPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorU2ln bmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEBsaW5hcm8ub3JnPgor UmV2aWV3ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgor TWVzc2FnZS1JZDogPDIwMjYwNDEwMjAwMDMxLjE4NTcyLTItcGhpbG1kQGxpbmFyby5vcmc+Ciso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0YzdmZWZjMmQwNDNhNjZmNzk5Y2YyYzJlMzRlZDY4 MGIxYjQ0YjVjKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorLS0tCisgaHcvYXJtL3NtbXV2My1hY2NlbC5jIHwgIDMgKystCisgaHcvYXJtL3NtbXV2 My1hY2NlbC5oIHwgIDcgKysrKystLQorIGh3L2FybS9zbW11djMuYyAgICAgICB8IDExICsrKy0t LS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMt YWNjZWwuYworaW5kZXggNjVjMmY0NDg4MC4uYWUwMzFmMWVjYyAxMDA2NDQKKy0tLSBhL2h3L2Fy bS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtOTE3LDEx ICs5MTcsMTIgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2FzX2luaXQoU01NVXYzU3RhdGUg KnMpCisgICAgIGFkZHJlc3Nfc3BhY2VfaW5pdChzaGFyZWRfYXNfc3lzbWVtLCAmcm9vdCwgInNt bXV2My1hY2NlbC1hcy1zeXNtZW0iKTsKKyB9CisgCistdm9pZCBzbW11djNfYWNjZWxfaW5pdChT TU1VdjNTdGF0ZSAqcykKKytib29sIHNtbXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzLCBF cnJvciAqKmVycnApCisgeworICAgICBTTU1VU3RhdGUgKmJzID0gQVJNX1NNTVUocyk7CisgCisg ICAgIHMtPnNfYWNjZWwgPSBnX25ldzAoU01NVXYzQWNjZWxTdGF0ZSwgMSk7CisgICAgIGJzLT5p b21tdV9vcHMgPSAmc21tdXYzX2FjY2VsX29wczsKKyAgICAgc21tdXYzX2FjY2VsX2FzX2luaXQo cyk7CisrICAgIHJldHVybiB0cnVlOworIH0KK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFj Y2VsLmggYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK2luZGV4IGRiYTZjNzFkZTUuLjFjYTJjODBh OTMgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmgKKysrKyBiL2h3L2FybS9zbW11 djMtYWNjZWwuaAorQEAgLTQyLDcgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVXYzQWNjZWxE ZXZpY2UgeworIH0gU01NVXYzQWNjZWxEZXZpY2U7CisgCisgI2lmZGVmIENPTkZJR19BUk1fU01N VVYzX0FDQ0VMCistdm9pZCBzbW11djNfYWNjZWxfaW5pdChTTU1VdjNTdGF0ZSAqcyk7CisrYm9v bCBzbW11djNfYWNjZWxfaW5pdChTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKTsKKyBib29s IHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01NVURldmljZSAqc2Rl diwgaW50IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnAp OworIGJvb2wgc21tdXYzX2FjY2VsX2luc3RhbGxfc3RlX3JhbmdlKFNNTVV2M1N0YXRlICpzLCBT TU1VU0lEUmFuZ2UgKnJhbmdlLAorQEAgLTU0LDggKzU0LDExIEBAIHZvaWQgc21tdXYzX2FjY2Vs X2lkcl9vdmVycmlkZShTTU1VdjNTdGF0ZSAqcyk7CisgYm9vbCBzbW11djNfYWNjZWxfYWxsb2Nf dmV2ZW50cShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKTsKKyB2b2lkIHNtbXV2M19hY2Nl bF9yZXNldChTTU1VdjNTdGF0ZSAqcyk7CisgI2Vsc2UKKy1zdGF0aWMgaW5saW5lIHZvaWQgc21t dXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMpCisrI2luY2x1ZGUgInFhcGkvZXJyb3IuaCIK KytzdGF0aWMgaW5saW5lIGJvb2wgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMsIEVy cm9yICoqZXJycCkKKyB7CisrICAgIGVycm9yX3NldGcoZXJycCwgImFjY2VsPW9uIHN1cHBvcnQg bm90IGNvbXBpbGVkIGluIik7CisrICAgIHJldHVybiBmYWxzZTsKKyB9Cisgc3RhdGljIGlubGlu ZSBib29sCisgc21tdXYzX2FjY2VsX2luc3RhbGxfc3RlKFNNTVV2M1N0YXRlICpzLCBTTU1VRGV2 aWNlICpzZGV2LCBpbnQgc2lkLAorZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2Fy bS9zbW11djMuYworaW5kZXggNzk1MWQ4NWVjOS4uNWZjNTVhYTMwYSAxMDA2NDQKKy0tLSBhL2h3 L2FybS9zbW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtMTk2NSwxMyArMTk2NSw2 IEBAIHN0YXRpYyB2b2lkIHNtbXVfcmVzZXRfZXhpdChPYmplY3QgKm9iaiwgUmVzZXRUeXBlIHR5 cGUpCisgCisgc3RhdGljIGJvb2wgc21tdV92YWxpZGF0ZV9wcm9wZXJ0eShTTU1VdjNTdGF0ZSAq cywgRXJyb3IgKiplcnJwKQorIHsKKy0jaWZuZGVmIENPTkZJR19BUk1fU01NVVYzX0FDQ0VMCist ICAgIGlmIChzLT5hY2NlbCkgeworLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiYWNjZWw9b24g c3VwcG9ydCBub3QgY29tcGlsZWQgaW4iKTsKKy0gICAgICAgIHJldHVybiBmYWxzZTsKKy0gICAg fQorLSNlbmRpZgorLQorICAgICBpZiAocy0+YXRzID09IE9OX09GRl9BVVRPX0FVVE8pIHsKKyAg ICAgICAgIGVycm9yX3NldGcoZXJycCwgImF0cyBhdXRvIG1vZGUgaXMgbm90IHN1cHBvcnRlZCIp OworICAgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTIwMzMsNyArMjAyNiw5IEBAIHN0YXRpYyB2 b2lkIHNtbXVfcmVhbGl6ZShEZXZpY2VTdGF0ZSAqZCwgRXJyb3IgKiplcnJwKQorICAgICB9Cisg CisgICAgIGlmIChzLT5hY2NlbCkgeworLSAgICAgICAgc21tdXYzX2FjY2VsX2luaXQocyk7Cisr ICAgICAgICBpZiAoIXNtbXV2M19hY2NlbF9pbml0KHMsIGVycnApKSB7CisrICAgICAgICAgICAg cmV0dXJuOworKyAgICAgICAgfQorICAgICAgICAgZXJyb3Jfc2V0Zygmcy0+bWlncmF0aW9uX2Js b2NrZXIsICJNaWdyYXRpb24gbm90IHN1cHBvcnRlZCB3aXRoIFNNTVV2MyAiCisgICAgICAgICAg ICAgICAgICAgICJhY2NlbGVyYXRvciBtb2RlIGVuYWJsZWQiKTsKKyAgICAgICAgIGlmIChtaWdy YXRlX2FkZF9ibG9ja2VyKCZzLT5taWdyYXRpb25fYmxvY2tlciwgZXJycCkgPCAwKSB7CistLSAK KzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtSW1wbGVtZW50LWdldF92 aW9tbXVfY2FwLWNhbGxiYWNrLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtSW1wbGVtZW50LWdl dF92aW9tbXVfY2FwLWNhbGxiYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmNiYmY3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1JbXBs ZW1lbnQtZ2V0X3Zpb21tdV9jYXAtY2FsbGJhY2sucGF0Y2gKQEAgLTAsMCArMSw3MiBAQAorRnJv bSBjNGNmMDkxNzhlOTBiZDIyZDc4MTVjNGZjMTZmMWE2YzViOTlmNDZmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5j b20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFU Q0ggMDE0LzExMV0gaHcvYXJtL3NtbXV2MzogSW1wbGVtZW50IGdldF92aW9tbXVfY2FwKCkgY2Fs bGJhY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTog U01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUpp cmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRo YXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1D b21taXQ6IFsxNC8xMTFdIDI1NGJmYzk2YTZhZTlhOGE5MDliZTRmNGRmNzRjYzMxYjA1ZWMyMDUg KGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3Np YW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0ZvciBhY2NlbGVyYXRlZCBTTU1VdjMsIHdlIG5l ZWQgbmVzdGVkIHBhcmVudCBkb21haW4gY3JlYXRpb24uIEFkZCB0aGUKK2NhbGxiYWNrIHN1cHBv cnQgc28gdGhhdCBWRklPIGNhbiBjcmVhdGUgYSBuZXN0ZWQgcGFyZW50LgorCitSZXZpZXdlZC1i eTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEpvbmF0 aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IFNoYW1lZXIgS29sb3RodW0gPHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT4K K1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmll d2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIg S29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYx MDQzNDIuMjUzOTY1LTEyLXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQ ZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBmYzZkYWZiOThjZWMwOTA1ZmNhNjFjMTVlYjgyODdkZTc1YWYyMjMwKQorU2ln bmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcv YXJtL3NtbXV2My1hY2NlbC5jIHwgMTMgKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAx MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9o dy9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IDJmY2QzMDEzMjIuLmJlMDljZjhiNzMgMTAwNjQ0 CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwu YworQEAgLTEwLDYgKzEwLDcgQEAKKyAjaW5jbHVkZSAicWVtdS9lcnJvci1yZXBvcnQuaCIKKyAK KyAjaW5jbHVkZSAiaHcvYXJtL3NtbXV2My5oIgorKyNpbmNsdWRlICJody9jb3JlL2lvbW11Lmgi CisgI2luY2x1ZGUgImh3L3BjaS9wY2lfYnJpZGdlLmgiCisgI2luY2x1ZGUgImh3L3BjaS1ob3N0 L2dwZXguaCIKKyAjaW5jbHVkZSAiaHcvdmZpby9wY2kuaCIKK0BAIC0xMjksOSArMTMwLDIxIEBA IHN0YXRpYyBBZGRyZXNzU3BhY2UgKnNtbXV2M19hY2NlbF9maW5kX2FkZF9hcyhQQ0lCdXMgKmJ1 cywgdm9pZCAqb3BhcXVlLAorICAgICB9CisgfQorIAorK3N0YXRpYyB1aW50NjRfdCBzbW11djNf YWNjZWxfZ2V0X3Zpb21tdV9mbGFncyh2b2lkICpvcGFxdWUpCisreworKyAgICAvKgorKyAgICAg KiBXZSByZXR1cm4gVklPTU1VX0ZMQUdfV0FOVF9ORVNUSU5HX1BBUkVOVCB0byBpbmZvcm0gVkZJ TyBjb3JlIHRvIGNyZWF0ZSBhCisrICAgICAqIG5lc3RpbmcgcGFyZW50IHdoaWNoIGlzIHJlcXVp cmVkIGZvciBhY2NlbGVyYXRlZCBTTU1VdjMgc3VwcG9ydC4KKysgICAgICogVGhlIHJlYWwgSFcg bmVzdGVkIHN1cHBvcnQgc2hvdWxkIGJlIHJlcG9ydGVkIGZyb20gaG9zdCBTTU1VdjMgYW5kIGlm CisrICAgICAqIGl0IGRvZXNuJ3QsIHRoZSBuZXN0aW5nIHBhcmVudCBhbGxvY2F0aW9uIHdpbGwg ZmFpbCBhbnl3YXkgaW4gVkZJTyBjb3JlLgorKyAgICAgKi8KKysgICAgcmV0dXJuIFZJT01NVV9G TEFHX1dBTlRfTkVTVElOR19QQVJFTlQ7CisrfQorKworIHN0YXRpYyBjb25zdCBQQ0lJT01NVU9w cyBzbW11djNfYWNjZWxfb3BzID0geworICAgICAuc3VwcG9ydHNfYWRkcmVzc19zcGFjZSA9IHNt bXV2M19hY2NlbF9zdXBwb3J0c19hcywKKyAgICAgLmdldF9hZGRyZXNzX3NwYWNlID0gc21tdXYz X2FjY2VsX2ZpbmRfYWRkX2FzLAorKyAgICAuZ2V0X3Zpb21tdV9mbGFncyA9IHNtbXV2M19hY2Nl bF9nZXRfdmlvbW11X2ZsYWdzLAorIH07CisgCisgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2Fz X2luaXQoU01NVXYzU3RhdGUgKnMpCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3 LWFybS1zbW11djMtSW1wcm92ZS1hY2NlbC1TTU1VdjMtdXNhZ2UtZG9jdW1lbnRhdGkucGF0Y2gg Yi9rdm0taHctYXJtLXNtbXV2My1JbXByb3ZlLWFjY2VsLVNNTVV2My11c2FnZS1kb2N1bWVudGF0 aS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGEyMWNmCi0tLSAv ZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtSW1wcm92ZS1hY2NlbC1TTU1VdjMtdXNh Z2UtZG9jdW1lbnRhdGkucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSBjMTUzYjA5MzRiNzI5 YTM2YzM3NzM2Njc2OTgyMmE0YWM4NzA5OWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IE1vbiwgOCBKdW4gMjAy NiAxMDo0ODo1MyAtMDcwMAorU3ViamVjdDogW1BBVENIIDA2Ny8xMTFdIGh3L2FybS9zbW11djM6 IEltcHJvdmUgYWNjZWwgU01NVXYzIHVzYWdlCisgZG9jdW1lbnRhdGlvbgorTUlNRS1WZXJzaW9u OiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNj ZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JI LUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1i eTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzY3LzExMV0gMWI2 ODJmNjVlZjQ4ZjE3MzZiNjE3OWM1ZTA1MjBiNGYxN2JhNzVlNiAoZWF1Z2VyMS9jZW50b3MtcWVt dS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwt MTYzNTk2CisKK0FkZCBhIHN0YXRlbWVudCB0byBjbGFyaWZ5IHRoYXQgdGhlIGhvc3QgU01NVXYz IG11c3Qgc3VwcG9ydCBIVy1hY2NlbGVyYXRlZAordmZpby1wY2kgZGV2aWNlIGFzc2lnbm1lbnQg d2hlbiBzZXR0aW5nIGFjY2VsPW9uLgorCitSZXBvcnRlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IE5hdGhhbiBDaGVuIDxuYXRoYW5jQG52aWRpYS5jb20+ CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2Vk LWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2Ut aWQ6IDIwMjYwNjA4MTc0OTAwLjIyMjczNDAtMy1uYXRoYW5jQG52aWRpYS5jb20KK1NpZ25lZC1v ZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IDYzMjhlZGJlNWQ3MmZkOWY2MzZiMGU5Nzg1ZTcyZWZlODgzZDU1 N2UpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+Cist LS0KKyBody9hcm0vc21tdXYzLmMgfCA0ICsrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLmMgYi9o dy9hcm0vc21tdXYzLmMKK2luZGV4IGM3MjRjNmI4MTkuLmY3NmE1MjcxODIgMTAwNjQ0CistLS0g YS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMuYworQEAgLTIxNjUsNyArMjE2 NSw5IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFzcywg Y29uc3Qgdm9pZCAqZGF0YSkKKyAKKyAgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNj cmlwdGlvbihrbGFzcywgImFjY2VsIiwKKyAgICAgICAgICJFbmFibGUgU01NVXYzIGFjY2VsZXJh dG9yIHN1cHBvcnQuIEFsbG93cyBob3N0IFNNTVV2MyB0byBiZSAiCistICAgICAgICAiY29uZmln dXJlZCBpbiBuZXN0ZWQgbW9kZSBmb3IgdmZpby1wY2kgZGV2IGFzc2lnbm1lbnQiKTsKKysgICAg ICAgICJjb25maWd1cmVkIGluIG5lc3RlZCBtb2RlIGZvciB2ZmlvLXBjaSBkZXYgYXNzaWdubWVu dC4gUGxlYXNlICIKKysgICAgICAgICJlbnN1cmUgdGhlIGhvc3QgU01NVXYzIHN1cHBvcnRzIG5l c3RlZCB0cmFuc2xhdGlvbiBiZWZvcmUgIgorKyAgICAgICAgImVuYWJsaW5nLiIpOworICAgICBv YmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAicmlsIiwKKyAgICAg ICAgICJEaXNhYmxlIHJhbmdlIGludmFsaWRhdGlvbiBzdXBwb3J0IChmb3IgYWNjZWw9b24pLiBy aWw9YXV0byAiCisgICAgICAgICAiaXMgbm90IHN1cHBvcnRlZC4iKTsKKy0tIAorMi41Mi4wCisK CmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1Jbml0aWFsaXplLUlELXJlZ2lzdGVycy1l YXJseS1kdXJpbmctci5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLUluaXRpYWxpemUtSUQtcmVn aXN0ZXJzLWVhcmx5LWR1cmluZy1yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjNjYWZlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1Jbml0 aWFsaXplLUlELXJlZ2lzdGVycy1lYXJseS1kdXJpbmctci5wYXRjaApAQCAtMCwwICsxLDk2IEBA CitGcm9tIDI3OTkzNDk0OTI5NDU1NzAzZGU0OGEwZmRkOThjNzhhZjg4MmRhZGEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZp ZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAKK1N1YmplY3Q6 IFtQQVRDSCAwMjgvMTExXSBody9hcm0vc21tdXYzOiBJbml0aWFsaXplIElEIHJlZ2lzdGVycyBl YXJseSBkdXJpbmcKKyByZWFsaXplKCkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1N ZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENN RFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBM ZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFu QHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFsyOC8xMTFdIGMzMWZmOGNjNWIxZWRhNzg3ODMwZTY2 MTM4MDgwZGJmMTFmNjkwNmUgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRw czovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0ZhY3RvciBvdXQg SUQgcmVnaXN0ZXIgaW5pdCBpbnRvIHNtbXV2M19pbml0X2lkX3JlZ3MoKSBhbmQgY2FsbCBpdCBm cm9tCityZWFsaXplKCkuIFRoaXMgZW5zdXJlcyBJRCByZWdpc3RlcnMgYXJlIGluaXRpYWxpemVk IGVhcmx5IGZvciB1c2UgaW4gdGhlCithY2NlbGVyYXRlZCBTTU1VdjMgcGF0aCBhbmQgd2lsbCBi ZSB1dGlsaXplZCBpbiBzdWJzZXF1ZW50IHBhdGNoLgorCitPdGhlciByZWdpc3RlcnMgcmVtYWlu IGluaXRpYWxpemVkIGluIHNtbXV2M19yZXNldCgpLgorCitSZXZpZXdlZC1ieTogTmljb2xpbiBD aGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24g PGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJv Lm9yZz4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Budmlk aWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIuMjUzOTY1LTIxLXNrb2xvdGh1bXRo b0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxs QGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmNTc3ZGNkYjVjMWNhN2Q0 NThkMmNiMzY1ZTg4NDgxM2MxNTA1ZjliKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3NtbXV2My5jIHwgMTUgKysrKysrKysr KysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4 IDUxM2RhOTY2YTQuLmRiYTVhYmM4ZDMgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysr KyBiL2h3L2FybS9zbW11djMuYworQEAgLTI1OCw3ICsyNTgsMTIgQEAgdm9pZCBzbW11djNfcmVj b3JkX2V2ZW50KFNNTVV2M1N0YXRlICpzLCBTTU1VRXZlbnRJbmZvICppbmZvKQorICAgICBpbmZv LT5yZWNvcmRlZCA9IHRydWU7CisgfQorIAorLXN0YXRpYyB2b2lkIHNtbXV2M19pbml0X3JlZ3Mo U01NVXYzU3RhdGUgKnMpCisrLyoKKysgKiBDYWxsZWQgZHVyaW5nIHJlYWxpemUoKSwgYXMgdGhl IElEIHJlZ2lzdGVycyB3aWxsIGJlIGFjY2Vzc2VkIGVhcmx5IGluIHRoZQorKyAqIFNNTVV2MyBh Y2NlbCBwYXRoIGZvciBmZWF0dXJlIGNvbXBhdGliaWxpdHkgY2hlY2tzLiBUaGUgcmVtYWluaW5n IHJlZ2lzdGVycworKyAqIGFyZSBpbml0aWFsaXplZCBsYXRlciBpbiBzbW11djNfcmVzZXQoKS4K KysgKi8KKytzdGF0aWMgdm9pZCBzbW11djNfaW5pdF9pZF9yZWdzKFNNTVV2M1N0YXRlICpzKQor IHsKKyAgICAgLyogQmFzZWQgb24gc3lzIHByb3BlcnR5LCB0aGUgc3RhZ2VzIHN1cHBvcnRlZCBp biBzbW11IHdpbGwgYmUgYWR2ZXJ0aXNlZC4qLworICAgICBpZiAocy0+c3RhZ2UgJiYgIXN0cmNt cCgiMiIsIHMtPnN0YWdlKSkgeworQEAgLTI5OCw3ICszMDMsMTEgQEAgc3RhdGljIHZvaWQgc21t dXYzX2luaXRfcmVncyhTTU1VdjNTdGF0ZSAqcykKKyAgICAgcy0+aWRyWzVdID0gRklFTERfRFAz MihzLT5pZHJbNV0sIElEUjUsIEdSQU40SywgMSk7CisgICAgIHMtPmlkcls1XSA9IEZJRUxEX0RQ MzIocy0+aWRyWzVdLCBJRFI1LCBHUkFOMTZLLCAxKTsKKyAgICAgcy0+aWRyWzVdID0gRklFTERf RFAzMihzLT5pZHJbNV0sIElEUjUsIEdSQU42NEssIDEpOworKyAgICBzLT5haWRyID0gMHgxOwor K30KKyAKKytzdGF0aWMgdm9pZCBzbW11djNfcmVzZXQoU01NVXYzU3RhdGUgKnMpCisreworICAg ICBzLT5jbWRxLmJhc2UgPSBkZXBvc2l0NjQocy0+Y21kcS5iYXNlLCAwLCA1LCBTTU1VX0NNRFFT KTsKKyAgICAgcy0+Y21kcS5wcm9kID0gMDsKKyAgICAgcy0+Y21kcS5jb25zID0gMDsKK0BAIC0z MTAsNyArMzE5LDYgQEAgc3RhdGljIHZvaWQgc21tdXYzX2luaXRfcmVncyhTTU1VdjNTdGF0ZSAq cykKKyAKKyAgICAgcy0+ZmVhdHVyZXMgPSAwOworICAgICBzLT5zaWRfc3BsaXQgPSAwOworLSAg ICBzLT5haWRyID0gMHgxOworICAgICBzLT5jclswXSA9IDA7CisgICAgIHMtPmNyMGFjayA9IDA7 CisgICAgIHMtPmlycV9jdHJsID0gMDsKK0BAIC0xOTAzLDcgKzE5MTEsNyBAQCBzdGF0aWMgdm9p ZCBzbW11X3Jlc2V0X2V4aXQoT2JqZWN0ICpvYmosIFJlc2V0VHlwZSB0eXBlKQorICAgICAgICAg Yy0+cGFyZW50X3BoYXNlcy5leGl0KG9iaiwgdHlwZSk7CisgICAgIH0KKyAKKy0gICAgc21tdXYz X2luaXRfcmVncyhzKTsKKysgICAgc21tdXYzX3Jlc2V0KHMpOworICAgICBzbW11djNfYWNjZWxf cmVzZXQocyk7CisgfQorIAorQEAgLTE5MzUsNiArMTk0Myw3IEBAIHN0YXRpYyB2b2lkIHNtbXVf cmVhbGl6ZShEZXZpY2VTdGF0ZSAqZCwgRXJyb3IgKiplcnJwKQorICAgICBzeXNidXNfaW5pdF9t bWlvKGRldiwgJnN5cy0+aW9tZW0pOworIAorICAgICBzbW11X2luaXRfaXJxKHMsIGRldik7Cisr ICAgIHNtbXV2M19pbml0X2lkX3JlZ3Mocyk7CisgfQorIAorIHN0YXRpYyBjb25zdCBWTVN0YXRl RGVzY3JpcHRpb24gdm1zdGF0ZV9zbW11djNfcXVldWUgPSB7CistLSAKKzIuNTIuMAorCgpkaWZm IC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtSW50cm9kdWNlLWEtaGVscGVyLWZ1bmN0aW9uLWZv ci1ldmVudC0ucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1JbnRyb2R1Y2UtYS1oZWxwZXItZnVu Y3Rpb24tZm9yLWV2ZW50LS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4zZGM5OWM5Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtSW50cm9kdWNl LWEtaGVscGVyLWZ1bmN0aW9uLWZvci1ldmVudC0ucGF0Y2gKQEAgLTAsMCArMSwxMTkgQEAKK0Zy b20gZWZjYTg3ZmI5NzY4NzMwN2NjNjA4YjBiZWVjMTQ4NzNkMzEwMTRmYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorRGF0ZTogRnJpLCA2IE1hciAyMDI2IDA5OjAxOjExICswMDAwCitTdWJqZWN0OiBbUEFU Q0ggMDUzLzExMV0gaHcvYXJtL3NtbXV2MzogSW50cm9kdWNlIGEgaGVscGVyIGZ1bmN0aW9uIGZv ciBldmVudAorIHByb3BhZ2F0aW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVy Z2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURR ViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUg R29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkBy ZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNTMvMTExXSA4Y2U1ODRkNTkzYWQ2NTdlZjllYTdmY2Qz MzdlZjUzZTEzZjFkMmIyIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6 Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NgorCitGYWN0b3Igb3V0IHRo ZSBjb2RlIHRoYXQgcHJvcGFnYXRlcyBldmVudCByZWNvcmRzIHRvIHRoZSBndWVzdCBpbnRvIGEK K2hlbHBlciBmdW5jdGlvbi4gVGhlIGFjY2VsZXJhdGVkIFNNTVV2MyBwYXRoIGNhbiB1c2UgdGhp cyB0byBwcm9wYWdhdGUKK2hvc3QgZXZlbnRzIGluIGEgc3Vic2VxdWVudCBwYXRjaC4KKworVGFr ZSB0aGUgbXV0ZXggaW5zaWRlIHRoZSBoZWxwZXIgYmVmb3JlIGFjY2Vzc2luZyB0aGUgRXZlbnQg UXVldWUuCitUb2RheSBldmVudCBwcm9wYWdhdGlvbiBvY2N1cnMgb25seSBpbiB0aGUgY29yZSBT TU1VdjMgcGF0aCBhbmQgaXMKK2VmZmVjdGl2ZWx5IHNlcmlhbGl6ZWQuIEEgc3Vic2VxdWVudCBw YXRjaCB3aWxsIGFsc28gaW52b2tlIHRoaXMgaGVscGVyCitmcm9tIHRoZSBhY2NlbGVyYXRlZCBl dmVudCByZWFkIHBhdGgsIHdoaWNoIG1heSBydW4gY29uY3VycmVudGx5LgorVGhlcmVmb3JlIHNl cmlhbGl6YXRpb24gaXMgcmVxdWlyZWQgaGVyZS4KKworTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50 ZW5kZWQuCisKK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+ CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVk LWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1l cm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVy IEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMjI2 MDg0NDU2LjExMjE0Mi01LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQ ZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA0MzU4NTUyNGE3YzYyOGMwZWJhY2U1YzMzYmE4NjVjNGUyYzU1MTc3KQorU2ln bmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcv YXJtL3NtbXV2My1pbnRlcm5hbC5oIHwgIDQgKysrKworIGh3L2FybS9zbW11djMuYyAgICAgICAg ICB8IDIwICsrKysrKysrKysrKysrLS0tLS0tCisgaHcvYXJtL3RyYWNlLWV2ZW50cyAgICAgIHwg IDIgKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWludGVybmFsLmggYi9ody9hcm0vc21tdXYz LWludGVybmFsLmgKK2luZGV4IDk5OGQzMDQ3M2QuLjQ2NmJmZDM5MGUgMTAwNjQ0CistLS0gYS9o dy9hcm0vc21tdXYzLWludGVybmFsLmgKKysrKyBiL2h3L2FybS9zbW11djMtaW50ZXJuYWwuaAor QEAgLTM1Miw3ICszNTIsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVUV2ZW50SW5mbyB7CisgICAg ICAgICAgICAgKHgpLT53b3JkWzZdID0gKHVpbnQzMl90KShhZGRyICYgMHhmZmZmZmZmZik7IFwK KyAgICAgfSB3aGlsZSAoMCkKKyAKKysjZGVmaW5lIEVWVF9HRVRfVFlQRSh4KSAgZXh0cmFjdDMy KCh4KS0+d29yZFswXSwgMCwgOCkKKysjZGVmaW5lIEVWVF9HRVRfU0lEKHgpICAgKCh4KS0+d29y ZFsxXSkKKysKKyB2b2lkIHNtbXV2M19yZWNvcmRfZXZlbnQoU01NVXYzU3RhdGUgKnMsIFNNTVVF dmVudEluZm8gKmV2ZW50KTsKKyt2b2lkIHNtbXV2M19wcm9wYWdhdGVfZXZlbnQoU01NVXYzU3Rh dGUgKnMsIEV2dCAqZXZ0KTsKKyBpbnQgc21tdV9maW5kX3N0ZShTTU1VdjNTdGF0ZSAqcywgdWlu dDMyX3Qgc2lkLCBTVEUgKnN0ZSwgU01NVUV2ZW50SW5mbyAqZXZlbnQpOworIAorIHN0YXRpYyBp bmxpbmUgaW50IG9hczJiaXRzKGludCBvYXNfZmllbGQpCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3Nt bXV2My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCAxYTIxOGY3NDlkLi44YjUxNTU0NjIwIDEw MDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC0x NjgsMTAgKzE2OCwyMiBAQCBzdGF0aWMgTWVtVHhSZXN1bHQgc21tdXYzX3dyaXRlX2V2ZW50cShT TU1VdjNTdGF0ZSAqcywgRXZ0ICpldnQpCisgICAgIHJldHVybiBNRU1UWF9PSzsKKyB9CisgCisr dm9pZCBzbW11djNfcHJvcGFnYXRlX2V2ZW50KFNNTVV2M1N0YXRlICpzLCBFdnQgKmV2dCkKKyt7 CisrICAgIE1lbVR4UmVzdWx0IHI7CisrCisrICAgIHRyYWNlX3NtbXV2M19wcm9wYWdhdGVfZXZl bnQoc21tdV9ldmVudF9zdHJpbmcoRVZUX0dFVF9UWVBFKGV2dCkpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVWVF9HRVRfU0lEKGV2dCkpOworKyAgICBRRU1VX0xPQ0tfR1VB UkQoJnMtPm11dGV4KTsKKysgICAgciA9IHNtbXV2M193cml0ZV9ldmVudHEocywgZXZ0KTsKKysg ICAgaWYgKHIgIT0gTUVNVFhfT0spIHsKKysgICAgICAgIHNtbXV2M190cmlnZ2VyX2lycShzLCBT TU1VX0lSUV9HRVJST1IsIFJfR0VSUk9SX0VWRU5UUV9BQlRfRVJSX01BU0spOworKyAgICB9Cisr fQorKworIHZvaWQgc21tdXYzX3JlY29yZF9ldmVudChTTU1VdjNTdGF0ZSAqcywgU01NVUV2ZW50 SW5mbyAqaW5mbykKKyB7CisgICAgIEV2dCBldnQgPSB7fTsKKy0gICAgTWVtVHhSZXN1bHQgcjsK KyAKKyAgICAgaWYgKCFzbW11djNfZXZlbnRxX2VuYWJsZWQocykpIHsKKyAgICAgICAgIHJldHVy bjsKK0BAIC0yNTEsMTEgKzI2Myw3IEBAIHZvaWQgc21tdXYzX3JlY29yZF9ldmVudChTTU1VdjNT dGF0ZSAqcywgU01NVUV2ZW50SW5mbyAqaW5mbykKKyAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFj aGVkKCk7CisgICAgIH0KKyAKKy0gICAgdHJhY2Vfc21tdXYzX3JlY29yZF9ldmVudChzbW11X2V2 ZW50X3N0cmluZyhpbmZvLT50eXBlKSwgaW5mby0+c2lkKTsKKy0gICAgciA9IHNtbXV2M193cml0 ZV9ldmVudHEocywgJmV2dCk7CistICAgIGlmIChyICE9IE1FTVRYX09LKSB7CistICAgICAgICBz bW11djNfdHJpZ2dlcl9pcnEocywgU01NVV9JUlFfR0VSUk9SLCBSX0dFUlJPUl9FVkVOVFFfQUJU X0VSUl9NQVNLKTsKKy0gICAgfQorKyAgICBzbW11djNfcHJvcGFnYXRlX2V2ZW50KHMsICZldnQp OworICAgICBpbmZvLT5yZWNvcmRlZCA9IHRydWU7CisgfQorIAorZGlmZiAtLWdpdCBhL2h3L2Fy bS90cmFjZS1ldmVudHMgYi9ody9hcm0vdHJhY2UtZXZlbnRzCitpbmRleCA4MTM1YzBjNzM0Li4z NDU3NTM2ZmIwIDEwMDY0NAorLS0tIGEvaHcvYXJtL3RyYWNlLWV2ZW50cworKysrIGIvaHcvYXJt L3RyYWNlLWV2ZW50cworQEAgLTQwLDcgKzQwLDcgQEAgc21tdXYzX2NtZHFfb3Bjb2RlKGNvbnN0 IGNoYXIgKm9wY29kZSkgIjwtLS0gJXMiCisgc21tdXYzX2NtZHFfY29uc3VtZV9vdXQodWludDMy X3QgcHJvZCwgdWludDMyX3QgY29ucywgdWludDhfdCBwcm9kX3dyYXAsIHVpbnQ4X3QgY29uc193 cmFwKSAicHJvZDolZCwgY29uczolZCwgcHJvZF93cmFwOiVkLCBjb25zX3dyYXA6JWQgIgorIHNt bXV2M19jbWRxX2NvbnN1bWVfZXJyb3IoY29uc3QgY2hhciAqY21kX25hbWUsIHVpbnQ4X3QgY21k X2Vycm9yKSAiRXJyb3Igb24gJXMgY29tbWFuZCBleGVjdXRpb246ICVkIgorIHNtbXV2M193cml0 ZV9tbWlvKHVpbnQ2NF90IGFkZHIsIHVpbnQ2NF90IHZhbCwgdW5zaWduZWQgc2l6ZSwgdWludDMy X3QgcikgImFkZHI6IDB4JSJQUkl4NjQiIHZhbDoweCUiUFJJeDY0IiBzaXplOiAweCV4KCVkKSIK Ky1zbW11djNfcmVjb3JkX2V2ZW50KGNvbnN0IGNoYXIgKnR5cGUsIHVpbnQzMl90IHNpZCkgIiVz IHNpZD0weCV4IgorK3NtbXV2M19wcm9wYWdhdGVfZXZlbnQoY29uc3QgY2hhciAqdHlwZSwgdWlu dDMyX3Qgc2lkKSAiJXMgc2lkPTB4JXgiCisgc21tdXYzX2ZpbmRfc3RlKHVpbnQxNl90IHNpZCwg dWludDMyX3QgZmVhdHVyZXMsIHVpbnQxNl90IHNpZF9zcGxpdCkgInNpZD0weCV4IGZlYXR1cmVz OjB4JXgsIHNpZF9zcGxpdDoweCV4IgorIHNtbXV2M19maW5kX3N0ZV8ybHZsKHVpbnQ2NF90IHN0 cnRhYl9iYXNlLCB1aW50NjRfdCBsMXB0ciwgaW50IGwxX3N0ZV9vZmZzZXQsIHVpbnQ2NF90IGwy cHRyLCBpbnQgbDJfc3RlX29mZnNldCwgaW50IG1heF9sMl9zdGUpICJzdHJ0YWJfYmFzZToweCUi UFJJeDY0IiBsMXB0cjoweCUiUFJJeDY0IiBsMV9vZmY6MHgleCwgbDJwdHI6MHglIlBSSXg2NCIg bDJfb2ZmOjB4JXggbWF4X2wyX3N0ZTolZCIKKyBzbW11djNfZ2V0X3N0ZSh1aW50NjRfdCBhZGRy KSAiU1RFIGFkZHI6IDB4JSJQUkl4NjQKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0t aHctYXJtLXNtbXV2My1TZXQtZGVmYXVsdC1hdHMtcmlsLXNzaWRzaXplLW9hcy10by1hdS5wYXRj aCBiL2t2bS1ody1hcm0tc21tdXYzLVNldC1kZWZhdWx0LWF0cy1yaWwtc3NpZHNpemUtb2FzLXRv LWF1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MGU2ZGUKLS0t IC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1TZXQtZGVmYXVsdC1hdHMtcmlsLXNz aWRzaXplLW9hcy10by1hdS5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA0MDRhYzRhNzIz NmRjMjg5NDBjNzE4NWIyZThhNGZhZGJiZTZmMDZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IE1vbiwgOCBKdW4g MjAyNiAxMDo0ODo1OSAtMDcwMAorU3ViamVjdDogW1BBVENIIDA3My8xMTFdIGh3L2FybS9zbW11 djM6IFNldCBkZWZhdWx0IGF0cywgcmlsLCBzc2lkc2l6ZSwgb2FzIHRvCisgYXV0bworTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzczLzEx MV0gYWQ2ZWJmOGE2NDI3N2EzNjRlZTYwNGNmOWMxM2I4ZGNlZDg1YjdmMSAoZWF1Z2VyMS9jZW50 b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3Nl L1JIRUwtMTYzNTk2CisKK0NvbmZsaWN0czogY29udGV4dHVhbCBjb25mbGljdCBpbiBtYWNoaW5l LmMgYXMgd2UgZG9uJ3QgaGF2ZQoraHdfY29tcGF0XzEwXzEsIGh3X2NvbXBhdF8xMF8yLCBod19j b21wYXRfMTFfMCBpbiBSSEVMLiBTbyBhZGQKK3RoZSBjb21wYXRzIGluIGxhc3QgaHdfY29tcGF0 XzEwXzAgd2hpY2ggdGhlbiBhcmUgcHJvcGFnYXRlZCB0bworaHdfY29tcGF0X3JoZWxfMTBfMi4g Tm90ZSBhcyB3ZSBkb24ndCBoYXZlIGEgbmV3IG1hY2hpbmUgdHlwZSBpbgorMTAuMyB0aGUgbmV3 IGRlZmF1bHRzIGRvbid0IGFwcGx5IGFuZCBpdCB3aWxsIGJlIG5lZWRlZCB0byBzZXQgYXV0bwor dmFsdWUgZXhwbGljaXRseS4gQWxzbyBmaXggdGhlIHNldHRpbmcgb2YgaHdfY29tcGF0X3JoZWxf MTBfMl9sZW4uCisKK1NldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBBVFMsIFJJTCwgU1NJRFNJWkUs IGFuZCBPQVMgdG8gYXV0bywgaW4gb3JkZXIKK3RvIG1hdGNoIHRoZSBob3N0IElPTU1VIHByb3Bl cnRpZXMgd2hlbiBhY2NlbD1vbi4KKworSWYgYWNjZWw9b2ZmIGFuZCB0aGVzZSBwcm9wZXJ0eSB2 YWx1ZXMgYXJlIHNldCB0byBhdXRvLCB0aGUgZGVmYXVsdAorcHJvcGVydHkgdmFsdWVzIGRlZmlu ZWQgaW4gc21tdXYzX2luaXRfaWRfcmVncygpIGZvciBPQVMgYW5kIFJJTCB3aWxsCityZW1haW4g dW5jaGFuZ2VkLCB3aGlsZSBTU0lEU0laRSBhbmQgQVRTIHZhbHVlcyB3aWxsIHJlbWFpbiBpbml0 aWFsaXplZAorYXQgMC4KKworSW50cm9kdWNlIGEgbmV3IGNvbXBhdCBmb3IgdGhlIGNoYW5nZWQg ZGVmYXVsdHMuCisKK1Jldmlld2VkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9A bnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorVGVz dGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAy MDI2MDYwODE3NDkwMC4yMjI3MzQwLTktbmF0aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5 OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCBlNjFmOGQxMTM4YWEwZjcwMjYzMjcyM2YxNDE2MWRhODI4ODkzNmQ0KQor U2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisg aHcvYXJtL3NtbXV2My5jICAgfCAyMyArKysrKysrKysrKysrKystLS0tLS0tLQorIGh3L2NvcmUv bWFjaGluZS5jIHwgMTUgKysrKysrKysrKysrKystCisgMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNl cnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My5j IGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCA4OWQzNGM5OTIzLi4xZTk4ZWUwZTc2IDEwMDY0NAor LS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC0yMTI5LDEy ICsyMTI5LDE5IEBAIHN0YXRpYyBjb25zdCBQcm9wZXJ0eSBzbW11djNfcHJvcGVydGllc1tdID0g eworICAgICBERUZJTkVfUFJPUF9CT09MKCJhY2NlbCIsIFNNTVV2M1N0YXRlLCBhY2NlbCwgZmFs c2UpLAorICAgICAvKiBHUEEgb2YgTVNJIGRvb3JiZWxsLCBmb3IgU01NVXYzIGFjY2VsIHVzZS4g Ki8KKyAgICAgREVGSU5FX1BST1BfVUlOVDY0KCJtc2ktZ3BhIiwgU01NVXYzU3RhdGUsIG1zaV9n cGEsIDApLAorKyAgICAvKgorKyAgICAgKiBBVVRPIHZhbHVlcyBmb3IgYWNjZWw9b2ZmIHdpbGwg cmVzb2x2ZSB0bzoKKysgICAgICogcmlsOiBvbgorKyAgICAgKiBhdHM6IG9mZgorKyAgICAgKiBv YXM6IDQ0CisrICAgICAqIHNzaWRzaXplOiAwCisrICAgICAqLworICAgICAvKiBSSUwgY2FuIGJl IHR1cm5lZCBvZmYgZm9yIGFjY2VsIGNhc2VzICovCistICAgIERFRklORV9QUk9QX09OX09GRl9B VVRPKCJyaWwiLCBTTU1VdjNTdGF0ZSwgcmlsLCBPTl9PRkZfQVVUT19PTiksCistICAgIERFRklO RV9QUk9QX09OX09GRl9BVVRPKCJhdHMiLCBTTU1VdjNTdGF0ZSwgYXRzLCBPTl9PRkZfQVVUT19P RkYpLAorLSAgICBERUZJTkVfUFJPUF9PQVNfTU9ERSgib2FzIiwgU01NVXYzU3RhdGUsIG9hcywg T0FTX01PREVfNDQpLAorKyAgICBERUZJTkVfUFJPUF9PTl9PRkZfQVVUTygicmlsIiwgU01NVXYz U3RhdGUsIHJpbCwgT05fT0ZGX0FVVE9fQVVUTyksCisrICAgIERFRklORV9QUk9QX09OX09GRl9B VVRPKCJhdHMiLCBTTU1VdjNTdGF0ZSwgYXRzLCBPTl9PRkZfQVVUT19BVVRPKSwKKysgICAgREVG SU5FX1BST1BfT0FTX01PREUoIm9hcyIsIFNNTVV2M1N0YXRlLCBvYXMsIE9BU19NT0RFX0FVVE8p LAorICAgICBERUZJTkVfUFJPUF9TU0lEU0laRV9NT0RFKCJzc2lkc2l6ZSIsIFNNTVV2M1N0YXRl LCBzc2lkc2l6ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0lEX1NJWkVfTU9E RV8wKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0lEX1NJWkVfTU9ERV9BVVRP KSwKKyB9OworIAorIHN0YXRpYyB2b2lkIHNtbXV2M19pbnN0YW5jZV9pbml0KE9iamVjdCAqb2Jq KQorQEAgLTIxNjQsMjIgKzIxNzEsMjIgQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQo T2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICAgICAgImVuYWJsaW5n LiIpOworICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAi cmlsIiwKKyAgICAgICAgICJFbmFibGUvZGlzYWJsZSByYW5nZSBpbnZhbGlkYXRpb24gc3VwcG9y dCAoZm9yIGFjY2VsPW9uKS4gIgorLSAgICAgICAgIlZhbGlkIHZhbHVlcyBhcmUgb24sIG9mZiwg YW5kIGF1dG8uIERlZmF1bHRzIHRvIG9uLiAiCisrICAgICAgICAiVmFsaWQgdmFsdWVzIGFyZSBv biwgb2ZmLCBhbmQgYXV0by4gRGVmYXVsdHMgdG8gYXV0by4gIgorICAgICAgICAgIkFueSBhdHRl bXB0IHRvIHR1cm4gaXQgJ29uJyB3aGlsZSB0aGUgaG9zdCBkb2VzIG5vdCBzdXBwb3J0ICIKKyAg ICAgICAgICJpdCB3b3VsZCBmYWlsLiIpOworICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0 X2Rlc2NyaXB0aW9uKGtsYXNzLCAiYXRzIiwKKyAgICAgICAgICJFbmFibGUvZGlzYWJsZSBBVFMg c3VwcG9ydCAoZm9yIGFjY2VsPW9uKS4gIgorLSAgICAgICAgIlZhbGlkIHZhbHVlcyBhcmUgb24s IG9mZiwgYW5kIGF1dG8uIERlZmF1bHRzIHRvIG9mZi4gIgorKyAgICAgICAgIlZhbGlkIHZhbHVl cyBhcmUgb24sIG9mZiwgYW5kIGF1dG8uIERlZmF1bHRzIHRvIGF1dG8uICIKKyAgICAgICAgICJQ bGVhc2UgZW5zdXJlIGhvc3QgcGxhdGZvcm0gc3VwcG9ydHMgQVRTIGJlZm9yZSBzZXR0aW5nIGl0 ICIKKyAgICAgICAgICJ0byBvbi4iKTsKKyAgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9k ZXNjcmlwdGlvbihrbGFzcywgIm9hcyIsCisgICAgICAgICAiU2V0IE91dHB1dCBBZGRyZXNzIFNp emUgaW4gYml0cyAoZm9yIGFjY2VsPW9uKS4gIgorLSAgICAgICAgIlZhbGlkIHZhbHVlcyBhcmUg NDQsIDQ4LCBhbmQgYXV0by4gRGVmYXVsdHMgdG8gNDQgYml0cy4iCisrICAgICAgICAiVmFsaWQg dmFsdWVzIGFyZSA0NCwgNDgsIGFuZCBhdXRvLiBEZWZhdWx0cyB0byBhdXRvLiIKKyAgICAgICAg ICJQbGVhc2UgZW5zdXJlIHRoZSB2YWx1ZSBkb2VzIG5vdCBleGNlZWQgdGhlIG1heGltdW0gIgor ICAgICAgICAgIk91dHB1dCBBZGRyZXNzIFNpemUgc3VwcG9ydGVkIGJ5IHRoZSBob3N0IHBsYXRm b3JtLiIpOworICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNz LCAic3NpZHNpemUiLAorICAgICAgICAgIlNldCBudW1iZXIgb2YgYml0cyB1c2VkIHRvIHJlcHJl c2VudCBTdWJzdHJlYW1JRHMgKFNTSURzKS4gIgorLSAgICAgICAgIlZhbGlkIHZhbHVlcyBhcmUg MC0yMCBhbmQgYXV0by4gRGVmYXVsdHMgdG8gMC4gIgorKyAgICAgICAgIlZhbGlkIHZhbHVlcyBh cmUgMC0yMCBhbmQgYXV0by4gRGVmYXVsdHMgdG8gYXV0by4gIgorICAgICAgICAgIkEgdmFsdWUg b2YgTiBhbGxvd3MgU1NJRHMgaW4gdGhlIHJhbmdlIFswIC4uIDJeTiAtIDFdLiAiCisgICAgICAg ICAiQSB2YWx1ZSBvZiAwIGRpc2FibGVzIFN1YnN0cmVhbUlEIHN1cHBvcnQuIEEgdmFsdWUgZ3Jl YXRlciAiCisgICAgICAgICAidGhhbiAwIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBQQVNJRCBzdXBw b3J0LiIKK2RpZmYgLS1naXQgYS9ody9jb3JlL21hY2hpbmUuYyBiL2h3L2NvcmUvbWFjaGluZS5j CitpbmRleCAyYjMzOWY2YTEzLi42MDFkOGM2YTFmIDEwMDY0NAorLS0tIGEvaHcvY29yZS9tYWNo aW5lLmMKKysrKyBiL2h3L2NvcmUvbWFjaGluZS5jCitAQCAtMzYsMTIgKzM2LDE3IEBACisgI2lu Y2x1ZGUgImh3L3ZpcnRpby92aXJ0aW8tbmV0LmgiCisgI2luY2x1ZGUgImh3L3ZpcnRpby92aXJ0 aW8taW9tbXUuaCIKKyAjaW5jbHVkZSAiYXVkaW8vYXVkaW8uaCIKKysjaW5jbHVkZSAiaHcvYXJt L3NtbXV2My5oIgorIAorIEdsb2JhbFByb3BlcnR5IGh3X2NvbXBhdF8xMF8wW10gPSB7CisgICAg IHsgInNjc2ktaGQiLCAiZHBvZnVhIiwgIm9mZiIgfSwKKyAgICAgeyAidmZpby1wY2kiLCAieC1t aWdyYXRpb24tbG9hZC1jb25maWctYWZ0ZXItaXRlciIsICJvZmYiIH0sCisgICAgIHsgInJhbWZi IiwgInVzZS1sZWdhY3kteDg2LXJvbSIsICJ0cnVlIn0sCisgICAgIHsgInZmaW8tcGNpLW5vaG90 cGx1ZyIsICJ1c2UtbGVnYWN5LXg4Ni1yb20iLCAidHJ1ZSIgfSwKKysgICAgeyBUWVBFX0FSTV9T TU1VVjMsICJhdHMiLCAib2ZmIiB9LAorKyAgICB7IFRZUEVfQVJNX1NNTVVWMywgInJpbCIsICJv biIgfSwKKysgICAgeyBUWVBFX0FSTV9TTU1VVjMsICJzc2lkc2l6ZSIsICIwIiB9LAorKyAgICB7 IFRZUEVfQVJNX1NNTVVWMywgIm9hcyIsICI0NCIgfSwKKyB9OworIGNvbnN0IHNpemVfdCBod19j b21wYXRfMTBfMF9sZW4gPSBHX05fRUxFTUVOVFMoaHdfY29tcGF0XzEwXzApOworIAorQEAgLTMw NCw4ICszMDksMTYgQEAgR2xvYmFsUHJvcGVydHkgaHdfY29tcGF0X3JoZWxfMTBfMltdID0gewor ICAgICB7ICJyYW1mYiIsICJ1c2UtbGVnYWN5LXg4Ni1yb20iLCAidHJ1ZSJ9LAorICAgLyogaHdf Y29tcGF0X3JoZWxfMTBfMiBmcm9tIGh3X2NvbXBhdF8xMF8wICovCisgICAgIHsgInZmaW8tcGNp LW5vaG90cGx1ZyIsICJ1c2UtbGVnYWN5LXg4Ni1yb20iLCAidHJ1ZSIgfSwKKysgIC8qIGh3X2Nv bXBhdF9yaGVsXzEwXzIgZnJvbSBod19jb21wYXRfMTBfMCAqLworKyAgICB7IFRZUEVfQVJNX1NN TVVWMywgImF0cyIsICJvZmYiIH0sCisrICAvKiBod19jb21wYXRfcmhlbF8xMF8yIGZyb20gaHdf Y29tcGF0XzEwXzAgKi8KKysgICAgeyBUWVBFX0FSTV9TTU1VVjMsICJyaWwiLCAib24iIH0sCisr ICAvKiBod19jb21wYXRfcmhlbF8xMF8yIGZyb20gaHdfY29tcGF0XzEwXzAgKi8KKysgICAgeyBU WVBFX0FSTV9TTU1VVjMsICJzc2lkc2l6ZSIsICIwIiB9LAorKyAgLyogaHdfY29tcGF0X3JoZWxf MTBfMiBmcm9tIGh3X2NvbXBhdF8xMF8wICovCisrICAgIHsgVFlQRV9BUk1fU01NVVYzLCAib2Fz IiwgIjQ0IiB9LAorIH07CistY29uc3Qgc2l6ZV90IGh3X2NvbXBhdF9yaGVsXzEwXzJfbGVuID0g R19OX0VMRU1FTlRTKGh3X2NvbXBhdF8xMF8wKTsKKytjb25zdCBzaXplX3QgaHdfY29tcGF0X3Jo ZWxfMTBfMl9sZW4gPSBHX05fRUxFTUVOVFMoaHdfY29tcGF0X3JoZWxfMTBfMik7CisgCisgR2xv YmFsUHJvcGVydHkgaHdfY29tcGF0X3JoZWxfMTBfMVtdID0geworICAgLyogaHdfY29tcGF0X3Jo ZWxfMTBfMSBmcm9tIGh3X2NvbXBhdF85XzEgKi8KKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0taHctYXJtLXNtbXV2My1VcGRhdGUtQVRDLWludmFsaWRhdGlvbi1jaGVjay5wYXRjaCBi L2t2bS1ody1hcm0tc21tdXYzLVVwZGF0ZS1BVEMtaW52YWxpZGF0aW9uLWNoZWNrLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzQ3ZTEKLS0tIC9kZXYvbnVsbAor KysgYi9rdm0taHctYXJtLXNtbXV2My1VcGRhdGUtQVRDLWludmFsaWRhdGlvbi1jaGVjay5wYXRj aApAQCAtMCwwICsxLDUyIEBACitGcm9tIGVmMWNhZWFiNzlmZDViZThiZDNlNDYxNzBhZjJjNmM2 MzBkYzM5NTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOYXRoYW4gQ2hlbiA8bmF0 aGFuY0BudmlkaWEuY29tPgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEwOjQ4OjUyIC0wNzAwCitT dWJqZWN0OiBbUEFUQ0ggMDY2LzExMV0gaHcvYXJtL3NtbXV2MzogVXBkYXRlIEFUQyBpbnZhbGlk YXRpb24gY2hlY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0 aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6 IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQK K1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQg UkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNs Z0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+ CitSSC1Db21taXQ6IFs2Ni8xMTFdIDNjMzJjY2E3Y2M3YzAzMjg3ZDg1ZjVhYWFlOTgzMTQ5ZDE5 YTVjYWQgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5h dGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTE2MzU5NgorCitVc2Ugc21tdXYzX2F0c19lbmFibGVk KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgQVRTIGlzIGVuYWJsZWQgZm9yIHRoZQorZ3Vlc3Qgd2hl biBoYW5kbGluZyBhbiBBVEMgaW52YWxpZGF0aW9uIGNvbW1hbmQsIGFzIHNldHRpbmcgdGhlIEFU UworcHJvcGVydHkgdmFsdWUgdG8gJ2F1dG8nIHdpbGwgcmVzb2x2ZSB0byBBVFMgYmVpbmcgZGV0 ZWN0ZWQgYXMKK2VuYWJsZWQgaW4gdGhlIEFUQyBpbnZhbGlkYXRpb24gY2hlY2sgb3RoZXJ3aXNl LgorCitGaXhlczogZjdmNTAxM2E1NWEzICgiaHcvYXJtL3NtbXV2My1hY2NlbDogQWRkIHN1cHBv cnQgZm9yIEFUUyIpCitSZXBvcnRlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhv QG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorUmV2aWV3ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorU2lnbmVkLW9mZi1ieTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK1Rl c3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorTWVzc2FnZS1pZDog MjAyNjA2MDgxNzQ5MDAuMjIyNzM0MC0yLW5hdGhhbmNAbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1i eTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgOGFkZGJkYjc5M2I3ODMyMjhhYjIyODY3YWM1ZTJkNTllYTY2NjJhNykK K1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQor IGh3L2FybS9zbW11djMuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9z bW11djMuYworaW5kZXggNWZjNTVhYTMwYS4uYzcyNGM2YjgxOSAxMDA2NDQKKy0tLSBhL2h3L2Fy bS9zbW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtMTUyOCw3ICsxNTI4LDcgQEAg c3RhdGljIGludCBzbW11djNfY21kcV9jb25zdW1lKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVy cnApCisgICAgICAgICB7CisgICAgICAgICAgICAgU01NVURldmljZSAqc2RldiA9IHNtbXVfZmlu ZF9zZGV2KGJzLCBDTURfU0lEKCZjbWQpKTsKKyAKKy0gICAgICAgICAgICBpZiAoIXNkZXYgfHwg IXMtPmF0cykgeworKyAgICAgICAgICAgIGlmICghc2RldiB8fCAhc21tdXYzX2F0c19lbmFibGVk KHMpKSB7CisgICAgICAgICAgICAgICAgIHRyYWNlX3NtbXV2M191bmhhbmRsZWRfY21kKHR5cGUp OworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CistLSAKKzIuNTIuMAor CgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLWEtcHJvcGVydHktdG8t c3BlY2lmeS1SSUwtc3UucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtYS1wcm9w ZXJ0eS10by1zcGVjaWZ5LVJJTC1zdS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yMjI1Y2JlCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNj ZWwtQWRkLWEtcHJvcGVydHktdG8tc3BlY2lmeS1SSUwtc3UucGF0Y2gKQEAgLTAsMCArMSwxNTAg QEAKK0Zyb20gMTczNDQ3ZjBlYjhmNWQ5NDg2ZTIxZTYyOTBjNzA1OWNkYmE0ZGY0NiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Bu dmlkaWEuY29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSArMDAwMAorU3ViamVj dDogW1BBVENIIDAzNy8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6IEFkZCBhIHByb3BlcnR5IHRv IHNwZWNpZnkgUklMCisgc3VwcG9ydAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1l cmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01E UVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYg UkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExl IEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5A cmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzM3LzExMV0gY2U0ODUwMDljMjdlNWZjODRkYTExMmJh YWIzODZkMjhjMTc4ZTRjNyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBz Oi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworQ3VycmVudGx5IFFF TVUgU01NVXYzIGhhcyBSSUwgc3VwcG9ydCBieSBkZWZhdWx0LiBCdXQgaWYgYWNjZWxlcmF0ZWQg bW9kZQoraXMgZW5hYmxlZCwgUklMIGhhc8KgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGhvc3QgU01N VXYzIHN1cHBvcnQuCisKK0FkZCBhIHByb3BlcnR5IHNvIHRoYXQgdGhlIHVzZXIgY2FuIHNwZWNp ZnkgdGhpcy4KKworUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVy b25AaHVhd2VpLmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGlu YXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVk LWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBT aGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIw MjYwMTI2MTA0MzQyLjI1Mzk2NS0zMC1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgYmQ3MTVmZjViZGE5NzNjODVjYWExNmYxY2FiZjFlOWFlZjMwZGM3 MCkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0t LQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgIHwgMTQgKysrKysrKysrKysrLS0KKyBody9hcm0v c21tdXYzLWFjY2VsLmggICB8ICA0ICsrKysKKyBody9hcm0vc21tdXYzLmMgICAgICAgICB8ICA5 ICsrKysrKysrKworIGluY2x1ZGUvaHcvYXJtL3NtbXV2My5oIHwgIDEgKworIDQgZmlsZXMgY2hh bmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3 L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggMzMwMTE5 NjJlMy4uZGY4MmYxZTMyYSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysr IGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtNjgsOCArNjgsOCBAQCBzbW11djNfYWNjZWxf Y2hlY2tfaHdfY29tcGF0aWJsZShTTU1VdjNTdGF0ZSAqcywKKyAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgfQorIAorLSAgICAvKiBRRU1VIFNNTVV2MyBzdXBwb3J0cyBSYW5nZSBJbnZhbGlk YXRpb24gYnkgZGVmYXVsdCAqLworLSAgICBpZiAoRklFTERfRVgzMihpbmZvLT5pZHJbM10sIElE UjMsIFJJTCkgIT0KKysgICAgLyogVXNlciBjYW4gZGlzYWJsZSBRRU1VIFNNTVV2MyBSYW5nZSBJ bnZhbGlkYXRpb24gc3VwcG9ydCAqLworKyAgICBpZiAoRklFTERfRVgzMihpbmZvLT5pZHJbM10s IElEUjMsIFJJTCkgPAorICAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKHMtPmlkclszXSwgSURS MywgUklMKSkgeworICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9zdCBTTU1VdjMgZG9lc24n dCBzdXBwb3J0IFJhbmdlIEludmFsaWRhdGlvbiIpOworICAgICAgICAgcmV0dXJuIGZhbHNlOwor QEAgLTY0Niw2ICs2NDYsMTYgQEAgc3RhdGljIGNvbnN0IFBDSUlPTU1VT3BzIHNtbXV2M19hY2Nl bF9vcHMgPSB7CisgICAgIC5nZXRfbXNpX2RpcmVjdF9ncGEgPSBzbW11djNfYWNjZWxfZ2V0X21z aV9ncGEsCisgfTsKKyAKKyt2b2lkIHNtbXV2M19hY2NlbF9pZHJfb3ZlcnJpZGUoU01NVXYzU3Rh dGUgKnMpCisreworKyAgICBpZiAoIXMtPmFjY2VsKSB7CisrICAgICAgICByZXR1cm47CisrICAg IH0KKysKKysgICAgLyogQnkgZGVmYXVsdCBRRU1VIFNNTVV2MyBoYXMgUklMLiBVcGRhdGUgSURS MyBpZiB1c2VyIGhhcyBkaXNhYmxlZCBpdCAqLworKyAgICBzLT5pZHJbM10gPSBGSUVMRF9EUDMy KHMtPmlkclszXSwgSURSMywgUklMLCBzLT5yaWwpOworK30KKysKKyAvKiBCYXNlZCBvbiBTTVVV djMgR1BCQS5BQk9SVCBjb25maWd1cmF0aW9uLCBhdHRhY2ggYSBjb3JyZXNwb25kaW5nIEhXUFQg Ki8KKyBib29sIHNtbXV2M19hY2NlbF9hdHRhY2hfZ2JwYV9od3B0KFNNTVV2M1N0YXRlICpzLCBF cnJvciAqKmVycnApCisgeworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuaCBiL2h3 L2FybS9zbW11djMtYWNjZWwuaAoraW5kZXggNDFiMzdlMzEyMi4uYThhNjQ4MDJlYyAxMDA2NDQK Ky0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuaAorKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5o CitAQCAtNDksNiArNDksNyBAQCBib29sIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZV9yYW5nZShT TU1VdjNTdGF0ZSAqcywgU01NVVNJRFJhbmdlICpyYW5nZSwKKyBib29sIHNtbXV2M19hY2NlbF9h dHRhY2hfZ2JwYV9od3B0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApOworIGJvb2wgc21t dXYzX2FjY2VsX2lzc3VlX2ludl9jbWQoU01NVXYzU3RhdGUgKnMsIHZvaWQgKmNtZCwgU01NVURl dmljZSAqc2RldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJy cCk7Cisrdm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKTsKKyB2 b2lkIHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcyk7CisgI2Vsc2UKKyBzdGF0aWMg aW5saW5lIHZvaWQgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMpCitAQCAtNzYsNiAr NzcsOSBAQCBzbW11djNfYWNjZWxfaXNzdWVfaW52X2NtZChTTU1VdjNTdGF0ZSAqcywgdm9pZCAq Y21kLCBTTU1VRGV2aWNlICpzZGV2LAorIHsKKyAgICAgcmV0dXJuIHRydWU7CisgfQorK3N0YXRp YyBpbmxpbmUgdm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQor K3sKKyt9Cisgc3RhdGljIGlubGluZSB2b2lkIHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0 ZSAqcykKKyB7CisgfQorZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11 djMuYworaW5kZXggMGQyZjVhOWIwYy4uNjQzNzA2YjI5YyAxMDA2NDQKKy0tLSBhL2h3L2FybS9z bW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtMzA1LDYgKzMwNSw3IEBAIHN0YXRp YyB2b2lkIHNtbXV2M19pbml0X2lkX3JlZ3MoU01NVXYzU3RhdGUgKnMpCisgICAgIHMtPmlkcls1 XSA9IEZJRUxEX0RQMzIocy0+aWRyWzVdLCBJRFI1LCBHUkFOMTZLLCAxKTsKKyAgICAgcy0+aWRy WzVdID0gRklFTERfRFAzMihzLT5pZHJbNV0sIElEUjUsIEdSQU42NEssIDEpOworICAgICBzLT5h aWRyID0gMHgxOworKyAgICBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKHMpOworIH0KKyAKKyBz dGF0aWMgdm9pZCBzbW11djNfcmVzZXQoU01NVXYzU3RhdGUgKnMpCitAQCAtMTkyNiw2ICsxOTI3 LDEwIEBAIHN0YXRpYyBib29sIHNtbXVfdmFsaWRhdGVfcHJvcGVydHkoU01NVXYzU3RhdGUgKnMs IEVycm9yICoqZXJycCkKKyAjZW5kaWYKKyAKKyAgICAgaWYgKCFzLT5hY2NlbCkgeworKyAgICAg ICAgaWYgKCFzLT5yaWwpIHsKKysgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJyaWwgY2Fu IG9ubHkgYmUgZGlzYWJsZWQgaWYgYWNjZWw9b24iKTsKKysgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisrICAgICAgICB9CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQorIAorQEAgLTIw NTksNiArMjA2NCw4IEBAIHN0YXRpYyBjb25zdCBQcm9wZXJ0eSBzbW11djNfcHJvcGVydGllc1td ID0geworICAgICBERUZJTkVfUFJPUF9CT09MKCJhY2NlbCIsIFNNTVV2M1N0YXRlLCBhY2NlbCwg ZmFsc2UpLAorICAgICAvKiBHUEEgb2YgTVNJIGRvb3JiZWxsLCBmb3IgU01NVXYzIGFjY2VsIHVz ZS4gKi8KKyAgICAgREVGSU5FX1BST1BfVUlOVDY0KCJtc2ktZ3BhIiwgU01NVXYzU3RhdGUsIG1z aV9ncGEsIDApLAorKyAgICAvKiBSSUwgY2FuIGJlIHR1cm5lZCBvZmYgZm9yIGFjY2VsIGNhc2Vz ICovCisrICAgIERFRklORV9QUk9QX0JPT0woInJpbCIsIFNNTVV2M1N0YXRlLCByaWwsIHRydWUp LAorIH07CisgCisgc3RhdGljIHZvaWQgc21tdXYzX2luc3RhbmNlX2luaXQoT2JqZWN0ICpvYmop CitAQCAtMjA4NCw2ICsyMDkxLDggQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQoT2Jq ZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICBvYmplY3RfY2xhc3NfcHJv cGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAiYWNjZWwiLAorICAgICAgICAgIkVuYWJsZSBT TU1VdjMgYWNjZWxlcmF0b3Igc3VwcG9ydC4gQWxsb3dzIGhvc3QgU01NVXYzIHRvIGJlICIKKyAg ICAgICAgICJjb25maWd1cmVkIGluIG5lc3RlZCBtb2RlIGZvciB2ZmlvLXBjaSBkZXYgYXNzaWdu bWVudCIpOworKyAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNz LCAicmlsIiwKKysgICAgICAgICJEaXNhYmxlIHJhbmdlIGludmFsaWRhdGlvbiBzdXBwb3J0IChm b3IgYWNjZWw9b24pIik7CisgfQorIAorIHN0YXRpYyBpbnQgc21tdXYzX25vdGlmeV9mbGFnX2No YW5nZWQoSU9NTVVNZW1vcnlSZWdpb24gKmlvbW11LAorZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcv YXJtL3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2luZGV4IDljMzlhY2Q1Y2Eu LjUzM2EyMTgyZTggMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorKysrIGIv aW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBTTU1VdjNT dGF0ZSB7CisgICAgIHN0cnVjdCBTTU1VdjNBY2NlbFN0YXRlICpzX2FjY2VsOworICAgICB1aW50 NjRfdCBtc2lfZ3BhOworICAgICBFcnJvciAqbWlncmF0aW9uX2Jsb2NrZXI7CisrICAgIGJvb2wg cmlsOworIH07CisgCisgdHlwZWRlZiBlbnVtIHsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtaGVscGVyLWZvci1yZXNvbHZpbmctYXV0by1w YS5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1oZWxwZXItZm9yLXJlc29sdmlu Zy1hdXRvLXBhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1NDIw YjcKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtaGVscGVy LWZvci1yZXNvbHZpbmctYXV0by1wYS5wYXRjaApAQCAtMCwwICsxLDE2NyBAQAorRnJvbSBjN2Vj ZDA1YWI5ODhjYzc1MGI3MzY3ZWE2Y2ViYWU2NzRjYjNlMzFjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IE1vbiwg OCBKdW4gMjAyNiAxMDo0ODo1NCAtMDcwMAorU3ViamVjdDogW1BBVENIIDA2OC8xMTFdIGh3L2Fy bS9zbW11djMtYWNjZWw6IEFkZCBoZWxwZXIgZm9yIHJlc29sdmluZyBhdXRvCisgcGFyYW1ldGVy cworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1V IFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTog UkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2 IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5j b20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1p dDogWzY4LzExMV0gY2IzODZkOTM5ZGI0M2M2N2IxMTdiZmU1MWUzMTQwN2MwMmU4YzYxNiAoZWF1 Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5u ZXQvYnJvd3NlL1JIRUwtMTYzNTk2CisKK0ludHJvZHVjZSBzbW11djNfYWNjZWxfYXV0b19maW5h bGlzZSgpIHRvIHJlc29sdmUgcHJvcGVydGllcyB0aGF0IGFyZQorc2V0IHRvICdhdXRvJyBmb3Ig YWNjZWxlcmF0ZWQgU01NVXYzLiBUaGlzIGhlbHBlciBmdW5jdGlvbiBhbGxvd3MKK3Byb3BlcnRp ZXMgc3VjaCBhcyBhdHMsIHJpbCwgc3NpZHNpemUsIGFuZCBvYXMgc3VwcG9ydCB0byBiZSByZXNv bHZlZAorZnJvbSBob3N0IElPTU1VIGNhcGFiaWxpdGllcyB2aWEgSU9NTVVfR0VUX0hXX0lORk8u CisKK1RoZSBsYXRlciBjb21taXRzIGluIHRoaXMgc2VyaWVzIHNldCB0aGUgYXV0b19tb2RlIGZs YWcgdG8gdHJ1ZSB3aGVuCithbiBhY2NlbCBTTU1VdjMgcHJvcGVydHkgdmFsdWUgaXMgZXhwbGlj aXRseSBzZXQgdG8gJ2F1dG8nLCBvciBpZiB0aGUKK3Byb3BlcnR5IHZhbHVlIGlzIG5vdCBzZXQg YW5kIGRlZmF1bHRzIHRvIGF1dG8gbW9kZS4KKworU2V0dGluZyB0aGVzZSBwcm9wZXJ0eSB2YWx1 ZXMgdG8gJ2F1dG8nIHJlcXVpcmVzIGF0IGxlYXN0IG9uZQorY29sZC1wbHVnZ2VkIGRldmljZSB0 byByZXRyaWV2ZSBhbmQgZmluYWxpc2UgdGhlc2UgcHJvcGVydGllcy4gSWYgdGhlCithdXRvX21v ZGUgZmxhZyBpcyB0cnVlLCByZWdpc3RlciBhIG1hY2hpbmVfaW5pdF9kb25lIG5vdGlmaWVyIHRv Cit2ZXJpZnkgdGhpcyByZXF1aXJlbWVudCBhbmQgZmFpbCBib290IGlmIGl0IGlzIG5vdCBtZXQu CisKK0hvdC1wbHVnZ2VkIGRldmljZXMgaW50byBhbiBhY2NlbCBTTU1VdjMtYXNzb2NpYXRlZCBi dXMgd2lsbCByZS11c2UKK3RoZSByZXNvbHZlZCBob3N0IHZhbHVlcyBmcm9tIHRoZSBpbml0aWFs IGNvbGQtcGx1Zy4KKworU3Vic2VxdWVudCBwYXRjaGVzIHdpbGwgbWFrZSB1c2Ugb2YgdGhpcyBo ZWxwZXIgdG8gcmVzb2x2ZSAnYXV0bycgdG8KK3doYXQgaXMgcmVwb3J0ZWQgYnkgaG9zdCBJT01N VSBjYXBhYmlsaXRpZXMuCisKK1N1Z2dlc3RlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90 aHVtdGhvQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Bu dmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNv bT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorTWVzc2Fn ZS1pZDogMjAyNjA2MDgxNzQ5MDAuMjIyNzM0MC00LW5hdGhhbmNAbnZpZGlhLmNvbQorU2lnbmVk LW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgMTZjNTQ3ZTljYjkxMWQ3NTFkMzVmYmUxODFhNWNlYThmOWQ1 MmZiYykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K Ky0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKKyBody9hcm0vc21tdXYzLWFjY2VsLmggICB8ICAyICsrCisg aW5jbHVkZS9ody9hcm0vc21tdXYzLmggfCAgMyArKysKKyAzIGZpbGVzIGNoYW5nZWQsIDQ2IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2Fy bS9zbW11djMtYWNjZWwuYworaW5kZXggYWUwMzFmMWVjYy4uZTYyNWYxNDVjNCAxMDA2NDQKKy0t LSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitA QCAtMTgsNiArMTgsNyBAQAorIAorICNpbmNsdWRlICJzbW11djMtaW50ZXJuYWwuaCIKKyAjaW5j bHVkZSAic21tdXYzLWFjY2VsLmgiCisrI2luY2x1ZGUgInN5c3RlbS9zeXN0ZW0uaCIKKyAKKyAv KgorICAqIFRoZSByb290IHJlZ2lvbiBhbGlhc2VzIHRoZSBnbG9iYWwgc3lzdGVtIG1lbW9yeSwg YW5kIHNoYXJlZF9hc19zeXNtZW0KK0BAIC0zNSwxMSArMzYsMzMgQEAgc3RhdGljIGludCBzbW11 djNfb2FzX2JpdHModWludDMyX3Qgb2FzKQorICAgICByZXR1cm4gbWFwW29hc107CisgfQorIAor K3N0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hdXRvX2ZpbmFsaXNlKFNNTVV2M1N0YXRlICpzLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb21tdV9od19p bmZvX2FybV9zbW11djMgKmluZm8pCisreworKyAgICBTTU1VdjNBY2NlbFN0YXRlICphY2NlbCA9 IHMtPnNfYWNjZWw7CisrCisrICAgIC8qCisrICAgICAqIFJldHVybiBpZiAnYXV0bycgd2FzIG5v dCBzZXQgZm9yIGFueSBhY2NlbCBTTU1VdjMgcHJvcGVydHksIG9yCisrICAgICAqIGlmIHByb3Bl cnR5IHZhbHVlcyB3ZXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJvbSBhIHByZXZpb3VzIGNhbGwKKysg ICAgICogdG8gdGhpcyBmdW5jdGlvbiAoZS5nLiBpZiB0aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQg YWdhaW4gYWZ0ZXIKKysgICAgICogVk0gYm9vdCBkdXJpbmcgZGV2aWNlIGhvdCBwbHVnKS4gV2Ug ZG8gbm90IGFjY2VwdCBuZXcgcHJvcGVydHkKKysgICAgICogdmFsdWVzIGluIHRoaXMgY2FzZSB3 aGVyZSBhdXRvX2ZpbmFsaXNlZCA9PSB0cnVlLCBhbmQgd2UgcmUtdXNlCisrICAgICAqIHRoZSB2 YWx1ZXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBpbml0aWFsIGNvbGQgcGx1Zy4KKysgICAgICovCisr ICAgIGlmICghYWNjZWwtPmF1dG9fbW9kZSB8fCBhY2NlbC0+YXV0b19maW5hbGlzZWQpIHsKKysg ICAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgICBhY2NlbC0+YXV0b19maW5hbGlzZWQgPSB0 cnVlOworK30KKysKKyBzdGF0aWMgYm9vbAorIHNtbXV2M19hY2NlbF9jaGVja19od19jb21wYXRp YmxlKFNNTVV2M1N0YXRlICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBpb21tdV9od19pbmZvX2FybV9zbW11djMgKmluZm8sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsKKysgICAgc21tdXYzX2FjY2VsX2F1dG9f ZmluYWxpc2UocywgaW5mbyk7CisrCisgICAgIC8qIFFFTVUgU01NVXYzIHN1cHBvcnRzIGJvdGgg bGluZWFyIGFuZCAyLWxldmVsIHN0cmVhbSB0YWJsZXMgKi8KKyAgICAgaWYgKEZJRUxEX0VYMzIo aW5mby0+aWRyWzBdLCBJRFIwLCBTVExFVkVMKSAhPQorICAgICAgICAgICAgICAgICBGSUVMRF9F WDMyKHMtPmlkclswXSwgSURSMCwgU1RMRVZFTCkpIHsKK0BAIC05MTcsNiArOTQwLDE4IEBAIHN0 YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hc19pbml0KFNNTVV2M1N0YXRlICpzKQorICAgICBhZGRy ZXNzX3NwYWNlX2luaXQoc2hhcmVkX2FzX3N5c21lbSwgJnJvb3QsICJzbW11djMtYWNjZWwtYXMt c3lzbWVtIik7CisgfQorIAorK3N0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9tYWNoaW5lX2RvbmUo Tm90aWZpZXIgKm5vdGlmaWVyLCB2b2lkICpkYXRhKQorK3sKKysgICAgU01NVXYzU3RhdGUgKnMg PSBjb250YWluZXJfb2Yobm90aWZpZXIsIFNNTVV2M1N0YXRlLCBtYWNoaW5lX2RvbmUpOworKyAg ICBTTU1VdjNBY2NlbFN0YXRlICphY2NlbCA9IHMtPnNfYWNjZWw7CisrCisrICAgIGlmIChhY2Nl bC0+YXV0b19tb2RlICYmICFhY2NlbC0+YXV0b19maW5hbGlzZWQpIHsKKysgICAgICAgIGVycm9y X3JlcG9ydCgiYXJtLXNtbXV2MyBhY2NlbD1vbiB3aXRoICdhdXRvJyBwcm9wZXJ0aWVzIHJlcXVp cmVzICIKKysgICAgICAgICAgICAgICAgICAgICAiYXQgbGVhc3Qgb25lIGNvbGQtcGx1Z2dlZCBW RklPIGRldmljZSIpOworKyAgICAgICAgZXhpdCgxKTsKKysgICAgfQorK30KKysKKyBib29sIHNt bXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgeworICAgICBT TU1VU3RhdGUgKmJzID0gQVJNX1NNTVUocyk7CitAQCAtOTI0LDUgKzk1OSwxMSBAQCBib29sIHNt bXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgIHMtPnNf YWNjZWwgPSBnX25ldzAoU01NVXYzQWNjZWxTdGF0ZSwgMSk7CisgICAgIGJzLT5pb21tdV9vcHMg PSAmc21tdXYzX2FjY2VsX29wczsKKyAgICAgc21tdXYzX2FjY2VsX2FzX2luaXQocyk7CisrCisr ICAgIGlmIChzLT5zX2FjY2VsLT5hdXRvX21vZGUpIHsKKysgICAgICAgIHMtPm1hY2hpbmVfZG9u ZS5ub3RpZnkgPSBzbW11djNfYWNjZWxfbWFjaGluZV9kb25lOworKyAgICAgICAgcWVtdV9hZGRf bWFjaGluZV9pbml0X2RvbmVfbm90aWZpZXIoJnMtPm1hY2hpbmVfZG9uZSk7CisrICAgIH0KKysK KyAgICAgcmV0dXJuIHRydWU7CisgfQorZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwu aCBiL2h3L2FybS9zbW11djMtYWNjZWwuaAoraW5kZXggMWNhMmM4MGE5My4uZDdiOWY4YThlNiAx MDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuaAorKysrIGIvaHcvYXJtL3NtbXV2My1h Y2NlbC5oCitAQCAtMjYsNiArMjYsOCBAQCB0eXBlZGVmIHN0cnVjdCBTTU1VdjNBY2NlbFN0YXRl IHsKKyAgICAgdWludDMyX3QgYnlwYXNzX2h3cHRfaWQ7CisgICAgIHVpbnQzMl90IGFib3J0X2h3 cHRfaWQ7CisgICAgIFFMSVNUX0hFQUQoLCBTTU1VdjNBY2NlbERldmljZSkgZGV2aWNlX2xpc3Q7 CisrICAgIGJvb2wgYXV0b19tb2RlOworKyAgICBib29sIGF1dG9fZmluYWxpc2VkOworIH0gU01N VXYzQWNjZWxTdGF0ZTsKKyAKKyB0eXBlZGVmIHN0cnVjdCBTTU1VUzFId3B0IHsKK2RpZmYgLS1n aXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitp bmRleCA4MmYxOGViMDkwLi44NWJlM2Q3NDY3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody9hcm0v c21tdXYzLmgKKysrKyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitAQCAtMjIsNiArMjIsNyBA QAorICNpbmNsdWRlICJody9hcm0vc21tdS1jb21tb24uaCIKKyAjaW5jbHVkZSAicW9tL29iamVj dC5oIgorICNpbmNsdWRlICJxYXBpL3FhcGktdHlwZXMtbWlzYy1hcm0uaCIKKysjaW5jbHVkZSAi cWVtdS9ub3RpZnkuaCIKKyAKKyAjZGVmaW5lIFRZUEVfU01NVVYzX0lPTU1VX01FTU9SWV9SRUdJ T04gInNtbXV2My1pb21tdS1tZW1vcnktcmVnaW9uIgorIAorQEAgLTc0LDYgKzc1LDggQEAgc3Ry dWN0IFNNTVV2M1N0YXRlIHsKKyAgICAgT25PZmZBdXRvIGF0czsKKyAgICAgT2FzTW9kZSBvYXM7 CisgICAgIFNzaWRTaXplTW9kZSBzc2lkc2l6ZTsKKysKKysgICAgTm90aWZpZXIgbWFjaGluZV9k b25lOworIH07CisgCisgdHlwZWRlZiBlbnVtIHsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtbmVzdGVkLXZTVEUtaW5zdGFsbC11bmluc3Rh bC5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1uZXN0ZWQtdlNURS1pbnN0YWxs LXVuaW5zdGFsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZTEz NzcKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtbmVzdGVk LXZTVEUtaW5zdGFsbC11bmluc3RhbC5wYXRjaApAQCAtMCwwICsxLDQyMSBAQAorRnJvbSA5ZWEz YjRiZmYzNjdkOTJlYzczNmU4MDBlY2ExODU4YjU5OWE0MTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorRGF0ZTogVGh1 LCAyOSBKYW4gMjAyNiAxMzozMjowNCArMDAwMAorU3ViamVjdDogW1BBVENIIDAyMi8xMTFdIGh3 L2FybS9zbW11djMtYWNjZWw6IEFkZCBuZXN0ZWQgdlNURQorIGluc3RhbGwvdW5pbnN0YWxsIHN1 cHBvcnQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTog U01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUpp cmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRo YXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1D b21taXQ6IFsyMi8xMTFdIDgyNzk3NDkzZDJhNDYyN2JjMDdkNGZhYWJhN2Q0NDA1ZDFlY2RhOTAg KGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3Np YW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0EgZGV2aWNlIHBsYWNlZCBiZWhpbmQgYSB2U01N VSBpbnN0YW5jZSBtdXN0IGhhdmUgY29ycmVzcG9uZGluZyB2U1RFcworKGJ5cGFzcywgYWJvcnQs IG9yIHRyYW5zbGF0ZSkgaW5zdGFsbGVkLiBUaGUgYnlwYXNzIGFuZCBhYm9ydCBwcm94eSBuZXN0 ZWQKK0hXUFRzIGFyZSBwcmUtYWxsb2NhdGVkLgorCitGb3IgdHJhbnNsYXQgSFdQVCwgYSB2REVW SUNFIG9iamVjdCBpcyBhbGxvY2F0ZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCB0aGUKK3ZJT01NVSBm b3IgZWFjaCBndWVzdCBkZXZpY2UuIFRoaXMgYWxsb3dzIHRoZSBob3N0IGtlcm5lbCB0byBlc3Rh Ymxpc2ggYQordmlydHVhbCBTSUQgdG8gcGh5c2ljYWwgU0lEIG1hcHBpbmcsIHdoaWNoIGlzIHJl cXVpcmVkIGZvciBoYW5kbGluZworaW52YWxpZGF0aW9ucyBhbmQgZXZlbnQgcmVwb3J0aW5nLgor CitBbiB0cmFuc2xhdGUgSFdQVCBpcyBhbGxvY2F0ZWQgYmFzZWQgb24gdGhlIGd1ZXN0IFNURSBj b25maWd1cmF0aW9uIGFuZAorYXR0YWNoZWQgdG8gdGhlIGRldmljZSB3aGVuIHRoZSBndWVzdCBp c3N1ZXMgU01NVV9DTURfQ0ZHSV9TVEUgb3IKK1NNTVVfQ01EX0NGR0lfU1RFX1JBTkdFLCBwcm92 aWRlZCB0aGUgU1RFIGVuYWJsZXMgUzEgdHJhbnNsYXRpb24uCisKK0lmIHRoZSBndWVzdCBTVEUg aXMgaW52YWxpZCBvciBTMSB0cmFuc2xhdGlvbiBpcyBkaXNhYmxlZCwgdGhlIGRldmljZSBpcwor YXR0YWNoZWQgdG8gb25lIG9mIHRoZSBwcmUtYWxsb2NhdGVkIEFCT1JUIG9yIEJZUEFTUyBIV1BU cyBpbnN0ZWFkLgorCitXaGlsZSBhdCBpdCwgZXhwb3J0IHNtbXVfZmluZF9zdGUoKSBmb3IgdXNl IGhlcmUuCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNv bT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNoYW1lZXJhbGkua29sb3RodW0u dGhvZGlAaHVhd2VpLmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhh bi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitT aWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4K K01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0xNS1za29sb3RodW10aG9AbnZpZGlh LmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmRhMTdhOTg4YzJkMzg3YjhmZGUwNGZk YWRkZjAzYWZhNzMwODVmNSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICAgICAgICB8IDE5NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBody9hcm0vc21tdXYzLWFjY2VsLmgg ICAgICAgICAgfCAgMjIgKysrKworIGh3L2FybS9zbW11djMtaW50ZXJuYWwuaCAgICAgICB8ICAg MSArCisgaHcvYXJtL3NtbXV2My5jICAgICAgICAgICAgICAgIHwgIDExICstCisgaHcvYXJtL3Ry YWNlLWV2ZW50cyAgICAgICAgICAgIHwgICAyICsKKyBpbmNsdWRlL2h3L2FybS9zbW11djMtY29t bW9uLmggfCAgMTggKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAyNDkgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2Fy bS9zbW11djMtYWNjZWwuYworaW5kZXggOWMyYjkxN2ExMS4uODc3YjdlMGUxNyAxMDA2NDQKKy0t LSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitA QCAtNTEsNiArNTEsMTg4IEBAIHN0YXRpYyB1aW50MzJfdCBzbW11djNfYWNjZWxfZ2JwYV9od3B0 KFNNTVV2M1N0YXRlICpzLCBTTU1VdjNBY2NlbFN0YXRlICphY2NlbCkKKyAgICAgICAgICAgIGFj Y2VsLT5hYm9ydF9od3B0X2lkIDogYWNjZWwtPmJ5cGFzc19od3B0X2lkOworIH0KKyAKKytzdGF0 aWMgYm9vbAorK3NtbXV2M19hY2NlbF9hbGxvY192ZGV2KFNNTVV2M0FjY2VsRGV2aWNlICphY2Nl bF9kZXYsIGludCBzaWQsIEVycm9yICoqZXJycCkKKyt7CisrICAgIFNNTVV2M0FjY2VsU3RhdGUg KmFjY2VsID0gYWNjZWxfZGV2LT5zX2FjY2VsOworKyAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZE ICppZGV2ID0gYWNjZWxfZGV2LT5pZGV2OworKyAgICBJT01NVUZEVmRldiAqdmRldiA9IGFjY2Vs X2Rldi0+dmRldjsKKysgICAgdWludDMyX3QgdmRldmljZV9pZDsKKysKKysgICAgaWYgKCFpZGV2 IHx8IHZkZXYpIHsKKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrCisrICAgIGlmICgh aW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZkZXYoaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZWwtPnZpb21tdS0+dmlvbW11 X2lkLCBzaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZkZXZpY2Vf aWQsIGVycnApKSB7CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAg IHZkZXYgPSBnX25ldyhJT01NVUZEVmRldiwgMSk7CisrICAgIHZkZXYtPnZkZXZpY2VfaWQgPSB2 ZGV2aWNlX2lkOworKyAgICB2ZGV2LT52aXJ0X2lkID0gc2lkOworKyAgICBhY2NlbF9kZXYtPnZk ZXYgPSB2ZGV2OworKyAgICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrc3RhdGljIFNNTVVTMUh3cHQg KgorK3NtbXV2M19hY2NlbF9kZXZfYWxsb2NfdHJhbnNsYXRlKFNNTVV2M0FjY2VsRGV2aWNlICph Y2NlbF9kZXYsIFNURSAqc3RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVy cm9yICoqZXJycCkKKyt7CisrICAgIHVpbnQ2NF90IHN0ZV8wID0gKHVpbnQ2NF90KXN0ZS0+d29y ZFswXSB8ICh1aW50NjRfdClzdGUtPndvcmRbMV0gPDwgMzI7CisrICAgIHVpbnQ2NF90IHN0ZV8x ID0gKHVpbnQ2NF90KXN0ZS0+d29yZFsyXSB8ICh1aW50NjRfdClzdGUtPndvcmRbM10gPDwgMzI7 CisrICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYgPSBhY2NlbF9kZXYtPmlkZXY7Cisr ICAgIFNNTVV2M0FjY2VsU3RhdGUgKmFjY2VsID0gYWNjZWxfZGV2LT5zX2FjY2VsOworKyAgICBz dHJ1Y3QgaW9tbXVfaHdwdF9hcm1fc21tdXYzIG5lc3RlZF9kYXRhID0geworKyAgICAgICAgLnN0 ZSA9IHsKKysgICAgICAgICAgICBjcHVfdG9fbGU2NChzdGVfMCAmIFNURTBfTUFTSyksCisrICAg ICAgICAgICAgY3B1X3RvX2xlNjQoc3RlXzEgJiBTVEUxX01BU0spLAorKyAgICAgICAgfSwKKysg ICAgfTsKKysgICAgdWludDMyX3QgaHdwdF9pZCA9IDAsIGZsYWdzID0gMDsKKysgICAgU01NVVMx SHdwdCAqczFfaHdwdDsKKysKKysgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdwdChp ZGV2LT5pb21tdWZkLCBpZGV2LT5kZXZpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhY2NlbC0+dmlvbW11LT52aW9tbXVfaWQsIGZsYWdzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0hXUFRfREFUQV9BUk1fU01NVVYzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihuZXN0ZWRfZGF0YSksICZuZXN0 ZWRfZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaHdwdF9pZCwg ZXJycCkpIHsKKysgICAgICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworKyAgICBzMV9o d3B0ID0gZ19uZXcwKFNNTVVTMUh3cHQsIDEpOworKyAgICBzMV9od3B0LT5od3B0X2lkID0gaHdw dF9pZDsKKysgICAgdHJhY2Vfc21tdXYzX2FjY2VsX3RyYW5zbGF0ZV9zdGUoYWNjZWxfZGV2LT52 ZGV2LT52aXJ0X2lkLCBod3B0X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuZXN0ZWRfZGF0YS5zdGVbMV0sIG5lc3RlZF9kYXRhLnN0ZVswXSk7CisrICAgIHJldHVy biBzMV9od3B0OworK30KKysKKytib29sIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNT dGF0ZSAqcywgU01NVURldmljZSAqc2RldiwgaW50IHNpZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFcnJvciAqKmVycnApCisreworKyAgICBTTU1VRXZlbnRJbmZvIGV2ZW50ID0g ey50eXBlID0gU01NVV9FVlRfTk9ORSwgLnNpZCA9IHNpZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAuaW52YWxfc3RlX2FsbG93ZWQgPSB0cnVlfTsKKysgICAgU01NVXYzQWNjZWxTdGF0 ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2 OworKyAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2OworKyAgICB1aW50MzJfdCBjb25m aWcsIGh3cHRfaWQgPSAwOworKyAgICBTTU1VUzFId3B0ICpzMV9od3B0ID0gTlVMTDsKKysgICAg Y29uc3QgY2hhciAqdHlwZTsKKysgICAgU1RFIHN0ZTsKKysKKysgICAgaWYgKCFhY2NlbCB8fCAh YWNjZWwtPnZpb21tdSkgeworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysKKysgICAg YWNjZWxfZGV2ID0gY29udGFpbmVyX29mKHNkZXYsIFNNTVV2M0FjY2VsRGV2aWNlLCBzZGV2KTsK KysgICAgaWYgKCFhY2NlbF9kZXYtPnNfYWNjZWwpIHsKKysgICAgICAgIHJldHVybiB0cnVlOwor KyAgICB9CisrCisrICAgIGlkZXYgPSBhY2NlbF9kZXYtPmlkZXY7CisrICAgIGlmICghc21tdXYz X2FjY2VsX2FsbG9jX3ZkZXYoYWNjZWxfZGV2LCBzaWQsIGVycnApKSB7CisrICAgICAgICByZXR1 cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgaWYgKHNtbXVfZmluZF9zdGUoc2Rldi0+c21tdSwg c2lkLCAmc3RlLCAmZXZlbnQpKSB7CisrICAgICAgICAvKiBObyBTVEUgZm91bmQsIG5vdGhpbmcg dG8gaW5zdGFsbCAqLworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysKKysgICAgLyoK KysgICAgICogSW5zdGFsbCB0aGUgU1RFIGJhc2VkIG9uIFNNTVUgZW5hYmxlZC9jb25maWc6Cisr ICAgICAqIC0gYXR0YWNoIGEgcHJlLWFsbG9jYXRlZCBIV1BUIGZvciBhYm9ydC9ieXBhc3MKKysg ICAgICogLSBvciBhIG5ldyBIV1BUIGZvciB0cmFuc2xhdGUgU1RFCisrICAgICAqCisrICAgICAq IE5vdGU6IFRoZSB2ZGV2IHJlbWFpbnMgYXNzb2NpYXRlZCB3aXRoIGFjY2VsX2RldiBldmVuIGlm IEhXUFQKKysgICAgICogYXR0YWNoL2FsbG9jIGZhaWxzLCBzaW5jZSB0aGUgR3Vlc3TigJNIb3N0 IFNJRCBtYXBwaW5nIHN0YXlzCisrICAgICAqIHZhbGlkIGFzIGxvbmcgYXMgdGhlIGRldmljZSBp cyBiZWhpbmQgdGhlIGFjY2VsZXJhdGVkIFNNTVV2My4KKysgICAgICovCisrICAgIGlmICghc21t dV9lbmFibGVkKHMpKSB7CisrICAgICAgICBod3B0X2lkID0gc21tdXYzX2FjY2VsX2dicGFfaHdw dChzLCBhY2NlbCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgICBjb25maWcgPSBTVEVfQ09ORklH KCZzdGUpOworKworKyAgICAgICAgaWYgKCFTVEVfVkFMSUQoJnN0ZSkgfHwgU1RFX0NGR19BQk9S VChjb25maWcpKSB7CisrICAgICAgICAgICAgaHdwdF9pZCA9IGFjY2VsLT5hYm9ydF9od3B0X2lk OworKyAgICAgICAgfSBlbHNlIGlmIChTVEVfQ0ZHX0JZUEFTUyhjb25maWcpKSB7CisrICAgICAg ICAgICAgaHdwdF9pZCA9IGFjY2VsLT5ieXBhc3NfaHdwdF9pZDsKKysgICAgICAgIH0gZWxzZSBp ZiAoU1RFX0NGR19TMV9UUkFOU0xBVEUoY29uZmlnKSkgeworKyAgICAgICAgICAgIHMxX2h3cHQg PSBzbW11djNfYWNjZWxfZGV2X2FsbG9jX3RyYW5zbGF0ZShhY2NlbF9kZXYsICZzdGUsIGVycnAp OworKyAgICAgICAgICAgIGlmICghczFfaHdwdCkgeworKyAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGh3cHRfaWQgPSBzMV9od3B0LT5o d3B0X2lkOworKyAgICAgICB9CisrICAgIH0KKysKKysgICAgaWYgKCFod3B0X2lkKSB7CisrICAg ICAgICBlcnJvcl9zZXRnKGVycnAsICJJbnZhbGlkIFNURSBjb25maWcgZm9yIHNpZCAweCV4IiwK KysgICAgICAgICAgICAgICAgICAgc21tdV9nZXRfc2lkKCZhY2NlbF9kZXYtPnNkZXYpKTsKKysg ICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKworKyAgICBpZiAoIWhvc3RfaW9tbXVfZGV2 aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoaWRldiwgaHdwdF9pZCwgZXJycCkpIHsKKysgICAgICAg IGlmIChzMV9od3B0KSB7CisrICAgICAgICAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaWRl di0+aW9tbXVmZCwgczFfaHdwdC0+aHdwdF9pZCk7CisrICAgICAgICAgICAgZ19mcmVlKHMxX2h3 cHQpOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAg IC8qIEZyZWUgdGhlIHByZXZpb3VzIHMxX2h3cHQgKi8KKysgICAgaWYgKGFjY2VsX2Rldi0+czFf aHdwdCkgeworKyAgICAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaWRldi0+aW9tbXVmZCwg YWNjZWxfZGV2LT5zMV9od3B0LT5od3B0X2lkKTsKKysgICAgICAgIGdfZnJlZShhY2NlbF9kZXYt PnMxX2h3cHQpOworKyAgICB9CisrCisrICAgIGFjY2VsX2Rldi0+czFfaHdwdCA9IHMxX2h3cHQ7 CisrICAgIGlmIChod3B0X2lkID09IGFjY2VsLT5hYm9ydF9od3B0X2lkKSB7CisrICAgICAgICB0 eXBlID0gImFib3J0IjsKKysgICAgfSBlbHNlIGlmIChod3B0X2lkID09IGFjY2VsLT5ieXBhc3Nf aHdwdF9pZCkgeworKyAgICAgICAgdHlwZSA9ICJieXBhc3MiOworKyAgICB9IGVsc2UgeworKyAg ICAgICAgdHlwZSA9ICJ0cmFuc2xhdGUiOworKyAgICB9CisrCisrICAgIHRyYWNlX3NtbXV2M19h Y2NlbF9pbnN0YWxsX3N0ZShzaWQsIHR5cGUsIGh3cHRfaWQpOworKyAgICByZXR1cm4gdHJ1ZTsK Kyt9CisrCisrYm9vbCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGVfcmFuZ2UoU01NVXYzU3RhdGUg KnMsIFNNTVVTSURSYW5nZSAqcmFuZ2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRXJyb3IgKiplcnJwKQorK3sKKysgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBz LT5zX2FjY2VsOworKyAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2OworKyAgICBFcnJv ciAqbG9jYWxfZXJyID0gTlVMTDsKKysgICAgYm9vbCBhbGxfb2sgPSB0cnVlOworKworKyAgICBp ZiAoIWFjY2VsIHx8ICFhY2NlbC0+dmlvbW11KSB7CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysg ICAgfQorKworKyAgICBRTElTVF9GT1JFQUNIKGFjY2VsX2RldiwgJmFjY2VsLT5kZXZpY2VfbGlz dCwgbmV4dCkgeworKyAgICAgICAgdWludDMyX3Qgc2lkID0gc21tdV9nZXRfc2lkKCZhY2NlbF9k ZXYtPnNkZXYpOworKworKyAgICAgICAgaWYgKHNpZCA+PSByYW5nZS0+c3RhcnQgJiYgc2lkIDw9 IHJhbmdlLT5lbmQpIHsKKysgICAgICAgICAgICBpZiAoIXNtbXV2M19hY2NlbF9pbnN0YWxsX3N0 ZShzLCAmYWNjZWxfZGV2LT5zZGV2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpZCwgJmxvY2FsX2VycikpIHsKKysgICAgICAgICAgICAgICAgZXJyb3JfYXBw ZW5kX2hpbnQoJmxvY2FsX2VyciwgIkRldmljZSAweCV4OiBGYWlsZWQgdG8gaW5zdGFsbCAiCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVEVcbiIsIHNpZCk7CisrICAgICAg ICAgICAgICAgIGVycm9yX3JlcG9ydF9lcnIobG9jYWxfZXJyKTsKKysgICAgICAgICAgICAgICAg bG9jYWxfZXJyID0gTlVMTDsKKysgICAgICAgICAgICAgICAgYWxsX29rID0gZmFsc2U7CisrICAg ICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIGlmICghYWxsX29rKSB7Cisr ICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJGYWlsZWQgdG8gaW5zdGFsbCBhbGwgU1RFcyBwcm9w ZXJseSIpOworKyAgICB9CisrICAgIHJldHVybiBhbGxfb2s7CisrfQorKworIHN0YXRpYyBib29s Cisgc21tdXYzX2FjY2VsX2FsbG9jX3Zpb21tdShTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2 aWNlSU9NTVVGRCAqaWRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJy cCkKK0BAIC0xNjEsNiArMzQzLDcgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX3Vuc2V0X2lv bW11X2RldmljZShQQ0lCdXMgKmJ1cywgdm9pZCAqb3BhcXVlLAorICAgICBIb3N0SU9NTVVEZXZp Y2VJT01NVUZEICppZGV2OworICAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2OworICAg ICBTTU1VdjNBY2NlbFN0YXRlICphY2NlbDsKKysgICAgSU9NTVVGRFZkZXYgKnZkZXY7CisgICAg IFNNTVVEZXZpY2UgKnNkZXY7CisgCisgICAgIGlmICghc2J1cykgeworQEAgLTE4MSw2ICszNjQs MjAgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX3Vuc2V0X2lvbW11X2RldmljZShQQ0lCdXMg KmJ1cywgdm9pZCAqb3BhcXVlLAorICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgaWRldi0+ ZGV2aWQpOworICAgICB9CisgCisrICAgIGlmIChhY2NlbF9kZXYtPnMxX2h3cHQpIHsKKysgICAg ICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGFjY2VsX2Rldi0+aWRldi0+aW9tbXVmZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VsX2Rldi0+czFfaHdwdC0+aHdwdF9p ZCk7CisrICAgICAgICBnX2ZyZWUoYWNjZWxfZGV2LT5zMV9od3B0KTsKKysgICAgICAgIGFjY2Vs X2Rldi0+czFfaHdwdCA9IE5VTEw7CisrICAgIH0KKysKKysgICAgdmRldiA9IGFjY2VsX2Rldi0+ dmRldjsKKysgICAgaWYgKHZkZXYpIHsKKysgICAgICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lk KGFjY2VsLT52aW9tbXUtPmlvbW11ZmQsIHZkZXYtPnZkZXZpY2VfaWQpOworKyAgICAgICAgZ19m cmVlKHZkZXYpOworKyAgICAgICAgYWNjZWxfZGV2LT52ZGV2ID0gTlVMTDsKKysgICAgfQorKwor ICAgICBhY2NlbF9kZXYtPmlkZXYgPSBOVUxMOworICAgICBhY2NlbF9kZXYtPnNfYWNjZWwgPSBO VUxMOworICAgICBRTElTVF9SRU1PVkUoYWNjZWxfZGV2LCBuZXh0KTsKK2RpZmYgLS1naXQgYS9o dy9hcm0vc21tdXYzLWFjY2VsLmggYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK2luZGV4IGVmYjYz MWRiNGYuLjRlMjBiNjQ2ZGMgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmgKKysr KyBiL2h3L2FybS9zbW11djMtYWNjZWwuaAorQEAgLTI3LDE5ICsyNyw0MSBAQCB0eXBlZGVmIHN0 cnVjdCBTTU1VdjNBY2NlbFN0YXRlIHsKKyAgICAgUUxJU1RfSEVBRCgsIFNNTVV2M0FjY2VsRGV2 aWNlKSBkZXZpY2VfbGlzdDsKKyB9IFNNTVV2M0FjY2VsU3RhdGU7CisgCisrdHlwZWRlZiBzdHJ1 Y3QgU01NVVMxSHdwdCB7CisrICAgIHVpbnQzMl90IGh3cHRfaWQ7CisrfSBTTU1VUzFId3B0Owor KworIHR5cGVkZWYgc3RydWN0IFNNTVV2M0FjY2VsRGV2aWNlIHsKKyAgICAgU01NVURldmljZSBz ZGV2OworICAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2OworKyAgICBTTU1VUzFId3B0 ICpzMV9od3B0OworKyAgICBJT01NVUZEVmRldiAqdmRldjsKKyAgICAgUUxJU1RfRU5UUlkoU01N VXYzQWNjZWxEZXZpY2UpIG5leHQ7CisgICAgIFNNTVV2M0FjY2VsU3RhdGUgKnNfYWNjZWw7Cisg fSBTTU1VdjNBY2NlbERldmljZTsKKyAKKyAjaWZkZWYgQ09ORklHX0FSTV9TTU1VVjNfQUNDRUwK KyB2b2lkIHNtbXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzKTsKKytib29sIHNtbXV2M19h Y2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01NVURldmljZSAqc2RldiwgaW50IHNp ZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApOworK2Jvb2wg c21tdXYzX2FjY2VsX2luc3RhbGxfc3RlX3JhbmdlKFNNTVV2M1N0YXRlICpzLCBTTU1VU0lEUmFu Z2UgKnJhbmdlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoq ZXJycCk7CisgI2Vsc2UKKyBzdGF0aWMgaW5saW5lIHZvaWQgc21tdXYzX2FjY2VsX2luaXQoU01N VXYzU3RhdGUgKnMpCisgeworIH0KKytzdGF0aWMgaW5saW5lIGJvb2wKKytzbW11djNfYWNjZWxf aW5zdGFsbF9zdGUoU01NVXYzU3RhdGUgKnMsIFNNTVVEZXZpY2UgKnNkZXYsIGludCBzaWQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKKyt7CisrICAgIHJldHVybiB0 cnVlOworK30KKytzdGF0aWMgaW5saW5lIGJvb2wKKytzbW11djNfYWNjZWxfaW5zdGFsbF9zdGVf cmFuZ2UoU01NVXYzU3RhdGUgKnMsIFNNTVVTSURSYW5nZSAqcmFuZ2UsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKKyt7CisrICAgIHJldHVybiB0cnVlOwor K30KKyAjZW5kaWYKKyAKKyAjZW5kaWYgLyogSFdfQVJNX1NNTVVWM19BQ0NFTF9IICovCitkaWZm IC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1pbnRlcm5hbC5oIGIvaHcvYXJtL3NtbXV2My1pbnRlcm5h bC5oCitpbmRleCA4Njc5YWI2ZDA5Li45OThkMzA0NzNkIDEwMDY0NAorLS0tIGEvaHcvYXJtL3Nt bXV2My1pbnRlcm5hbC5oCisrKysgYi9ody9hcm0vc21tdXYzLWludGVybmFsLmgKK0BAIC0zNTMs NiArMzUzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVUV2ZW50SW5mbyB7CisgICAgIH0gd2hpbGUg KDApCisgCisgdm9pZCBzbW11djNfcmVjb3JkX2V2ZW50KFNNTVV2M1N0YXRlICpzLCBTTU1VRXZl bnRJbmZvICpldmVudCk7CisraW50IHNtbXVfZmluZF9zdGUoU01NVXYzU3RhdGUgKnMsIHVpbnQz Ml90IHNpZCwgU1RFICpzdGUsIFNNTVVFdmVudEluZm8gKmV2ZW50KTsKKyAKKyBzdGF0aWMgaW5s aW5lIGludCBvYXMyYml0cyhpbnQgb2FzX2ZpZWxkKQorIHsKK2RpZmYgLS1naXQgYS9ody9hcm0v c21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IDM3NGFlMDhiYWEuLmJmYjQxYjg4NjYg MTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMuYworQEAg LTYzMCw4ICs2MzAsNyBAQCBiYWRfc3RlOgorICAqIFN1cHBvcnRzIGxpbmVhciBhbmQgMi1sZXZl bCBzdHJlYW0gdGFibGUKKyAgKiBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtRUlOVkFMIG90aGVyd2lz ZQorICAqLworLXN0YXRpYyBpbnQgc21tdV9maW5kX3N0ZShTTU1VdjNTdGF0ZSAqcywgdWludDMy X3Qgc2lkLCBTVEUgKnN0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgU01NVUV2ZW50SW5m byAqZXZlbnQpCisraW50IHNtbXVfZmluZF9zdGUoU01NVXYzU3RhdGUgKnMsIHVpbnQzMl90IHNp ZCwgU1RFICpzdGUsIFNNTVVFdmVudEluZm8gKmV2ZW50KQorIHsKKyAgICAgZG1hX2FkZHJfdCBh ZGRyLCBzdHJ0YWJfYmFzZTsKKyAgICAgdWludDMyX3QgbG9nMnNpemU7CitAQCAtMTM0MSw2ICsx MzQwLDEwIEBAIHN0YXRpYyBpbnQgc21tdXYzX2NtZHFfY29uc3VtZShTTU1VdjNTdGF0ZSAqcywg RXJyb3IgKiplcnJwKQorICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICB0cmFjZV9zbW11 djNfY21kcV9jZmdpX3N0ZShzaWQpOworKyAgICAgICAgICAgIGlmICghc21tdXYzX2FjY2VsX2lu c3RhbGxfc3RlKHMsIHNkZXYsIHNpZCwgZXJycCkpIHsKKysgICAgICAgICAgICAgICAgY21kX2Vy cm9yID0gU01NVV9DRVJST1JfSUxMOworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAg ICAgICB9CisgICAgICAgICAgICAgc21tdXYzX2ZsdXNoX2NvbmZpZyhzZGV2KTsKKyAKKyAgICAg ICAgICAgICBicmVhazsKK0BAIC0xMzYxLDYgKzEzNjQsMTAgQEAgc3RhdGljIGludCBzbW11djNf Y21kcV9jb25zdW1lKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICAgICAg c2lkX3JhbmdlLmVuZCA9IHNpZF9yYW5nZS5zdGFydCArIG1hc2s7CisgCisgICAgICAgICAgICAg dHJhY2Vfc21tdXYzX2NtZHFfY2ZnaV9zdGVfcmFuZ2Uoc2lkX3JhbmdlLnN0YXJ0LCBzaWRfcmFu Z2UuZW5kKTsKKysgICAgICAgICAgICBpZiAoIXNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZV9yYW5n ZShzLCAmc2lkX3JhbmdlLCBlcnJwKSkgeworKyAgICAgICAgICAgICAgICBjbWRfZXJyb3IgPSBT TU1VX0NFUlJPUl9JTEw7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBzbW11X2NvbmZpZ3NfaW52X3NpZF9yYW5nZShicywgc2lkX3JhbmdlKTsK KyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9ody9hcm0vdHJh Y2UtZXZlbnRzIGIvaHcvYXJtL3RyYWNlLWV2ZW50cworaW5kZXggMmFhYTBjNDBjNy4uODEzNWMw YzczNCAxMDA2NDQKKy0tLSBhL2h3L2FybS90cmFjZS1ldmVudHMKKysrKyBiL2h3L2FybS90cmFj ZS1ldmVudHMKK0BAIC02OSw2ICs2OSw4IEBAIHNtbXVfcmVzZXRfZXhpdCh2b2lkKSAiIgorICNz bW11djMtYWNjZWwuYworIHNtbXV2M19hY2NlbF9zZXRfaW9tbXVfZGV2aWNlKGludCBkZXZmbiwg dWludDMyX3QgZGV2aWQpICJkZXZmbj0weCV4IChpZGV2IGRldmlkPTB4JXgpIgorIHNtbXV2M19h Y2NlbF91bnNldF9pb21tdV9kZXZpY2UoaW50IGRldmZuLCB1aW50MzJfdCBkZXZpZCkgImRldmZu PTB4JXggKGlkZXYgZGV2aWQ9MHgleCkiCisrc21tdXYzX2FjY2VsX3RyYW5zbGF0ZV9zdGUodWlu dDMyX3QgdnNpZCwgdWludDMyX3QgaHdwdF9pZCwgdWludDY0X3Qgc3RlXzEsIHVpbnQ2NF90IHN0 ZV8wKSAidlNJRD0weCV4IGh3cHRfaWQ9MHgleCBzdGU9JSJQUkl4NjQiOiUiUFJJeDY0Cisrc21t dXYzX2FjY2VsX2luc3RhbGxfc3RlKHVpbnQzMl90IHZzaWQsIGNvbnN0IGNoYXIgKiB0eXBlLCB1 aW50MzJfdCBod3B0X2lkKSAidlNJRD0weCV4IHN0ZSB0eXBlPSVzIGh3cHRfaWQ9MHgleCIKKyAK KyAjIHN0cm9uZ2FybS5jCisgc3Ryb25nYXJtX3VhcnRfdXBkYXRlX3BhcmFtZXRlcnMoY29uc3Qg Y2hhciAqbGFiZWwsIGludCBzcGVlZCwgY2hhciBwYXJpdHksIGludCBkYXRhX2JpdHMsIGludCBz dG9wX2JpdHMpICIlcyBzcGVlZD0lZCBwYXJpdHk9JWMgZGF0YT0lZCBzdG9wPSVkIgorZGlmZiAt LWdpdCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaCBiL2luY2x1ZGUvaHcvYXJtL3Nt bXV2My1jb21tb24uaAoraW5kZXggOTA1ZTZjYTY3Zi4uNGQ4YWY1NzM2YSAxMDA2NDQKKy0tLSBh L2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21t dXYzLWNvbW1vbi5oCitAQCAtOTksMTAgKzk5LDI4IEBAIFJFRzMyKFNURV83LCAyOCkKKyAjZGVm aW5lIFNURV9DRkdfUzJfRU5BQkxFRChjb25maWcpIChjb25maWcgJiAweDIpCisgI2RlZmluZSBT VEVfQ0ZHX0FCT1JUKGNvbmZpZykgICAgICAoIShjb25maWcgJiAweDQpKQorICNkZWZpbmUgU1RF X0NGR19CWVBBU1MoY29uZmlnKSAgICAgKGNvbmZpZyA9PSAweDQpCisrI2RlZmluZSBTVEVfQ0ZH X1MxX1RSQU5TTEFURShjb25maWcpICAoY29uZmlnID09IDB4NSkKKyAKKyAjZGVmaW5lIFNNTVVf U1RFX1ZBTElEICAgICAgKDFVTEwgPDwgMCkKKyAjZGVmaW5lIFNNTVVfU1RFX0NGR19CWVBBU1Mg KDFVTEwgPDwgMykKKyAKKysjZGVmaW5lIFNURTBfViAgICAgICBNQUtFXzY0QklUX01BU0soMCwg MSkKKysjZGVmaW5lIFNURTBfQ09ORklHICBNQUtFXzY0QklUX01BU0soMSwgMykKKysjZGVmaW5l IFNURTBfUzFGTVQgICBNQUtFXzY0QklUX01BU0soNCwgMikKKysjZGVmaW5lIFNURTBfQ1RYUFRS ICBNQUtFXzY0QklUX01BU0soNiwgNTApCisrI2RlZmluZSBTVEUwX1MxQ0RNQVggTUFLRV82NEJJ VF9NQVNLKDU5LCA1KQorKyNkZWZpbmUgU1RFMF9NQVNLICAgIChTVEUwX1MxQ0RNQVggfCBTVEUw X0NUWFBUUiB8IFNURTBfUzFGTVQgfCBTVEUwX0NPTkZJRyB8IFwKKysgICAgICAgICAgICAgICAg ICAgICAgU1RFMF9WKQorKworKyNkZWZpbmUgU1RFMV9TMURTUyAgICBNQUtFXzY0QklUX01BU0so MCwgMikKKysjZGVmaW5lIFNURTFfUzFDSVIgICAgTUFLRV82NEJJVF9NQVNLKDIsIDIpCisrI2Rl ZmluZSBTVEUxX1MxQ09SICAgIE1BS0VfNjRCSVRfTUFTSyg0LCAyKQorKyNkZWZpbmUgU1RFMV9T MUNTSCAgICBNQUtFXzY0QklUX01BU0soNiwgMikKKysjZGVmaW5lIFNURTFfUzFTVEFMTEQgTUFL RV82NEJJVF9NQVNLKDI3LCAxKQorKyNkZWZpbmUgU1RFMV9FQVRTICAgICBNQUtFXzY0QklUX01B U0soMjgsIDIpCisrI2RlZmluZSBTVEUxX01BU0sgICAgIChTVEUxX0VBVFMgfCBTVEUxX1MxU1RB TExEIHwgU1RFMV9TMUNTSCB8IFNURTFfUzFDT1IgfCBcCisrICAgICAgICAgICAgICAgICAgICAg ICBTVEUxX1MxQ0lSIHwgU1RFMV9TMURTUykKKysKKyAvKiBVcGRhdGUgU1RFIGZpZWxkcyAqLwor ICNkZWZpbmUgU1RFX1NFVF9WQUxJRChzdGUsIHYpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKChzdGUpLT53b3JkWzBdID0gRklFTERfRFAz Migoc3RlKS0+d29yZFswXSwgU1RFXzAsIFZBTElELCAodikpKQorLS0gCisyLjUyLjAKKwoKZGlm ZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1wcm9wZXJ0eS10by1zcGVjaWZ5 LU9BUy1iaXRzLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXByb3BlcnR5LXRv LXNwZWNpZnktT0FTLWJpdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNTI5MWE3YwotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFk ZC1wcm9wZXJ0eS10by1zcGVjaWZ5LU9BUy1iaXRzLnBhdGNoCkBAIC0wLDAgKzEsMTgzIEBACitG cm9tIDQ5YzAxZTdiMWYxOTZiMTI1MWJiZjZlM2E5OTNkNjYyYmQ2MGIyYTMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlh LmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAKK1N1YmplY3Q6IFtQ QVRDSCAwMzkvMTExXSBody9hcm0vc21tdXYzLWFjY2VsOiBBZGQgcHJvcGVydHkgdG8gc3BlY2lm eSBPQVMgYml0cworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRo b3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDog NTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAor UkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBS SEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xn QHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4K K1JILUNvbW1pdDogWzM5LzExMV0gZGI5NWNiM2VhNjNmNWFiMmJkZjgwZmNjZGY3ZjhiYWE0Yzgx Y2MxNyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0 bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworUUVNVSBTTU1VdjMgY3VycmVudGx5IHNl dHMgdGhlIG91dHB1dCBhZGRyZXNzIHNpemUgKE9BUykgdG8gNDQgYml0cy4KK1dpdGggYWNjZWxl cmF0b3IgbW9kZSBlbmFibGVkLCBhIGRldmljZSBtYXkgdXNlIFNWQSwgd2hlcmUgQ1BVIHBhZ2Ug dGFibGVzCithcmUgc2hhcmVkIHdpdGggdGhlIFNNTVUsIHJlcXVpcmluZyBhbiBPQVMgYXQgbGVh c3QgYXMgbGFyZ2UgYXMgdGhlCitDUFXigJlzIG91dHB1dCBhZGRyZXNzIHNpemUuIEEgdXNlciBv cHRpb24gaXMgYWRkZWQgdG8gY29uZmlndXJlIHRoaXMuCisKK0hvd2V2ZXIsIHRoZSBPQVMgdmFs dWUgYWR2ZXJ0aXNlZCBieSB0aGUgdmlydHVhbCBTTU1VIG11c3QgcmVtYWluCitjb21wYXRpYmxl IHdpdGggdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgaG9zdCBTTU1VdjMuIEluIGFjY2VsZXJhdGVk Cittb2RlLCB0aGUgaG9zdCBTTU1VIHBlcmZvcm1zIHN0YWdlLTIgdHJhbnNsYXRpb24gYW5kIG11 c3QgYmUgYWJsZSB0bworY29uc3VtZSB0aGUgaW50ZXJtZWRpYXRlIHBoeXNpY2FsIGFkZHJlc3Nl cyAoSVBBKSBwcm9kdWNlZCBieSBzdGFnZS0xLgorCitUaGUgT0FTIGV4cG9zZWQgYnkgdGhlIHZp cnR1YWwgU01NVSBkZWZpbmVzIHRoZSBtYXhpbXVtIElQQSB3aWR0aCB0aGF0CitzdGFnZS0xIHRy YW5zbGF0aW9ucyBtYXkgZ2VuZXJhdGUuIEZvciBBQXJjaDY0IGltcGxlbWVudGF0aW9ucywgdGhl CittYXhpbXVtIHVzYWJsZSBJUEEgc2l6ZSBvbiB0aGUgaG9zdCBTTU1VIGlzIGRldGVybWluZWQg YnkgaXRzIG93biBPQVMuCitDaGVjayB0aGF0IHRoZSBjb25maWd1cmVkIE9BUyBkb2VzIG5vdCBl eGNlZWQgd2hhdCB0aGUgaG9zdCBTTU1VCitjYW4gc2FmZWx5IHN1cHBvcnQuCisKK1Rlc3RlZC1i eTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBO aWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24g PGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tv bG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUt MzItc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwg PHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGEw MTVhYzk5MGZkMzFiZDRjOTNjZTQzMGFhNGZjZTE5ZGJmYTQ5ZjgpCitTaWduZWQtb2ZmLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFj Y2VsLmMgICAgICAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCisgaHcvYXJtL3NtbXV2 My5jICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKysrLQorIGluY2x1ZGUvaHcvYXJt L3NtbXV2My1jb21tb24uaCB8ICA1ICsrKystCisgaW5jbHVkZS9ody9hcm0vc21tdXYzLmggICAg ICAgIHwgIDEgKworIDQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11 djMtYWNjZWwuYworaW5kZXggYTk3YWJjMWY3OS4uZWE0MjBhZmViNyAxMDA2NDQKKy0tLSBhL2h3 L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtMjcs NiArMjcsMTQgQEAKKyBzdGF0aWMgTWVtb3J5UmVnaW9uIHJvb3QsIHN5c21lbTsKKyBzdGF0aWMg QWRkcmVzc1NwYWNlICpzaGFyZWRfYXNfc3lzbWVtOworIAorK3N0YXRpYyBpbnQgc21tdXYzX29h c19iaXRzKHVpbnQzMl90IG9hcykKKyt7CisrICAgIHN0YXRpYyBjb25zdCBpbnQgbWFwW10gPSB7 IDMyLCAzNiwgNDAsIDQyLCA0NCwgNDgsIDUyLCA1NiB9OworKworKyAgICBnX2Fzc2VydChvYXMg PCBBUlJBWV9TSVpFKG1hcCkpOworKyAgICByZXR1cm4gbWFwW29hc107CisrfQorKworIHN0YXRp YyBib29sCisgc21tdXYzX2FjY2VsX2NoZWNrX2h3X2NvbXBhdGlibGUoU01NVXYzU3RhdGUgKnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlvbW11X2h3X2luZm9f YXJtX3NtbXV2MyAqaW5mbywKK0BAIC03NCw2ICs4MiwxNSBAQCBzbW11djNfYWNjZWxfY2hlY2tf aHdfY29tcGF0aWJsZShTTU1VdjNTdGF0ZSAqcywKKyAgICAgICAgIGVycm9yX3NldGcoZXJycCwg Ikhvc3QgU01NVXYzIGRvZXNuJ3Qgc3VwcG9ydCBSYW5nZSBJbnZhbGlkYXRpb24iKTsKKyAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorKyAgICAvKiBDaGVjayBPQVMgdmFsdWUgb3B0ZWQg aXMgY29tcGF0aWJsZSB3aXRoIEhvc3QgU01NVXYzIElQQSAqLworKyAgICBpZiAoRklFTERfRVgz MihpbmZvLT5pZHJbNV0sIElEUjUsIE9BUykgPAorKyAgICAgICAgICAgICAgICBGSUVMRF9FWDMy KHMtPmlkcls1XSwgSURSNSwgT0FTKSkgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9z dCBTTU1VdjMgc3VwcG9ydHMgb25seSAlZC1iaXQgSVBBLCBidXQgdGhlIHZTTU1VICIKKysgICAg ICAgICAgICAgICAgICAgIk9BUyBpbXBsaWVzICVkLWJpdCBJUEEiLAorKyAgICAgICAgICAgICAg ICAgICBzbW11djNfb2FzX2JpdHMoRklFTERfRVgzMihpbmZvLT5pZHJbNV0sIElEUjUsIE9BUykp LAorKyAgICAgICAgICAgICAgICAgICBzbW11djNfb2FzX2JpdHMoRklFTERfRVgzMihzLT5pZHJb NV0sIElEUjUsIE9BUykpKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorIAorICAg ICAvKiBRRU1VIFNNTVV2MyBzdXBwb3J0cyBHUkFONEsvR1JBTjE2Sy9HUkFONjRLIHRyYW5zbGF0 aW9uIGdyYW51bGVzICovCisgICAgIGlmIChGSUVMRF9FWDMyKGluZm8tPmlkcls1XSwgSURSNSwg R1JBTjRLKSAhPQorQEAgLTY1Nyw2ICs2NzQsMTEgQEAgdm9pZCBzbW11djNfYWNjZWxfaWRyX292 ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorIAorICAgICAvKiBRRU1VIFNNTVV2MyBoYXMgbm8gQVRT LiBBZHZlcnRpc2UgQVRTIGlmIG9wdC1pbiBieSBwcm9wZXJ0eSAqLworICAgICBzLT5pZHJbMF0g PSBGSUVMRF9EUDMyKHMtPmlkclswXSwgSURSMCwgQVRTLCBzLT5hdHMpOworKworKyAgICAvKiBB ZHZlcnRpc2UgNDgtYml0IE9BUyBpbiBJRFI1IHdoZW4gcmVxdWVzdGVkIChkZWZhdWx0IGlzIDQ0 IGJpdHMpLiAqLworKyAgICBpZiAocy0+b2FzID09IFNNTVVfT0FTXzQ4QklUKSB7CisrICAgICAg ICBzLT5pZHJbNV0gPSBGSUVMRF9EUDMyKHMtPmlkcls1XSwgSURSNSwgT0FTLCBTTU1VX0lEUjVf T0FTXzQ4KTsKKysgICAgfQorIH0KKyAKKyAvKiBCYXNlZCBvbiBTTVVVdjMgR1BCQS5BQk9SVCBj b25maWd1cmF0aW9uLCBhdHRhY2ggYSBjb3JyZXNwb25kaW5nIEhXUFQgKi8KK2RpZmYgLS1naXQg YS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IGVhZDA3ODViMmIuLmVm NzVhOWJlYzAgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11 djMuYworQEAgLTI5OSw3ICsyOTksOCBAQCBzdGF0aWMgdm9pZCBzbW11djNfaW5pdF9pZF9yZWdz KFNNTVV2M1N0YXRlICpzKQorICAgICBzLT5pZHJbM10gPSBGSUVMRF9EUDMyKHMtPmlkclszXSwg SURSMywgUklMLCAxKTsKKyAgICAgcy0+aWRyWzNdID0gRklFTERfRFAzMihzLT5pZHJbM10sIElE UjMsIEJCTUwsIDIpOworIAorLSAgICBzLT5pZHJbNV0gPSBGSUVMRF9EUDMyKHMtPmlkcls1XSwg SURSNSwgT0FTLCBTTU1VX0lEUjVfT0FTKTsgLyogNDQgYml0cyAqLworKyAgICAvKiBPQVM6IDQ0 IGJpdHMgKi8KKysgICAgcy0+aWRyWzVdID0gRklFTERfRFAzMihzLT5pZHJbNV0sIElEUjUsIE9B UywgU01NVV9JRFI1X09BU180NCk7CisgICAgIC8qIDRLLCAxNksgYW5kIDY0SyBncmFudWxlIHN1 cHBvcnQgKi8KKyAgICAgcy0+aWRyWzVdID0gRklFTERfRFAzMihzLT5pZHJbNV0sIElEUjUsIEdS QU40SywgMSk7CisgICAgIHMtPmlkcls1XSA9IEZJRUxEX0RQMzIocy0+aWRyWzVdLCBJRFI1LCBH UkFOMTZLLCAxKTsKK0BAIC0xOTQ5LDYgKzE5NTAsMTAgQEAgc3RhdGljIGJvb2wgc21tdV92YWxp ZGF0ZV9wcm9wZXJ0eShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorICAgICAgICAgICAg IGVycm9yX3NldGcoZXJycCwgImF0cyBjYW4gb25seSBiZSBlbmFibGVkIGlmIGFjY2VsPW9uIik7 CisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgfQorKyAgICAgICAgaWYgKHMt Pm9hcyAhPSBTTU1VX09BU180NEJJVCkgeworKyAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwg Ik9BUyBtdXN0IGJlIDQ0IGJpdHMgd2hlbiBhY2NlbD1vZmYiKTsKKysgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisrICAgICAgICB9CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQorIAor QEAgLTE5NTksNiArMTk2NCwxMSBAQCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5 KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgIH0KKyAKKysgICAgaWYgKHMtPm9hcyAhPSBTTU1VX09BU180NEJJVCAmJiBzLT5vYXMgIT0g U01NVV9PQVNfNDhCSVQpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwgIk9BUyBjYW4gb25s eSBiZSBzZXQgdG8gNDQgb3IgNDggYml0cyIpOworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAg ICB9CisrCisgICAgIHJldHVybiB0cnVlOworIH0KKyAKK0BAIC0yMDg1LDYgKzIwOTUsNyBAQCBz dGF0aWMgY29uc3QgUHJvcGVydHkgc21tdXYzX3Byb3BlcnRpZXNbXSA9IHsKKyAgICAgLyogUklM IGNhbiBiZSB0dXJuZWQgb2ZmIGZvciBhY2NlbCBjYXNlcyAqLworICAgICBERUZJTkVfUFJPUF9C T09MKCJyaWwiLCBTTU1VdjNTdGF0ZSwgcmlsLCB0cnVlKSwKKyAgICAgREVGSU5FX1BST1BfQk9P TCgiYXRzIiwgU01NVXYzU3RhdGUsIGF0cywgZmFsc2UpLAorKyAgICBERUZJTkVfUFJPUF9VSU5U OCgib2FzIiwgU01NVXYzU3RhdGUsIG9hcywgNDQpLAorIH07CisgCisgc3RhdGljIHZvaWQgc21t dXYzX2luc3RhbmNlX2luaXQoT2JqZWN0ICpvYmopCitAQCAtMjExNSw2ICsyMTI2LDkgQEAgc3Rh dGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lk ICpkYXRhKQorICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNz LCAiYXRzIiwKKyAgICAgICAgICJFbmFibGUvZGlzYWJsZSBBVFMgc3VwcG9ydCAoZm9yIGFjY2Vs PW9uKS4gUGxlYXNlIGVuc3VyZSBob3N0ICIKKyAgICAgICAgICJwbGF0Zm9ybSBoYXMgQVRTIHN1 cHBvcnQgYmVmb3JlIGVuYWJsaW5nIHRoaXMiKTsKKysgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5 X3NldF9kZXNjcmlwdGlvbihrbGFzcywgIm9hcyIsCisrICAgICAgICAiU3BlY2lmeSBPdXRwdXQg QWRkcmVzcyBTaXplIChmb3IgYWNjZWw9b24pLiBTdXBwb3J0ZWQgdmFsdWVzICIKKysgICAgICAg ICJhcmUgNDQgb3IgNDggYml0cy4gRGVmYXVsdHMgdG8gNDQgYml0cyIpOworIH0KKyAKKyBzdGF0 aWMgaW50IHNtbXV2M19ub3RpZnlfZmxhZ19jaGFuZ2VkKElPTU1VTWVtb3J5UmVnaW9uICppb21t dSwKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmggYi9pbmNsdWRl L2h3L2FybS9zbW11djMtY29tbW9uLmgKK2luZGV4IDRkOGFmNTczNmEuLmJjMmQ0OWVmNGUgMTAw NjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKKysrKyBiL2luY2x1ZGUv aHcvYXJtL3NtbXV2My1jb21tb24uaAorQEAgLTM0Miw3ICszNDIsMTAgQEAgUkVHMzIoSURSNSwg ICAgICAgICAgICAgICAgMHgxNCkKKyAgICAgIEZJRUxEKElEUjUsIFZBWCwgICAgICAgIDEwLCAy KTsKKyAgICAgIEZJRUxEKElEUjUsIFNUQUxMX01BWCwgIDE2LCAxNik7CisgCistI2RlZmluZSBT TU1VX0lEUjVfT0FTIDQKKysjZGVmaW5lIFNNTVVfT0FTXzQ0QklUIDQ0CisrI2RlZmluZSBTTU1V X09BU180OEJJVCA0OAorKyNkZWZpbmUgU01NVV9JRFI1X09BU180NCA0CisrI2RlZmluZSBTTU1V X0lEUjVfT0FTXzQ4IDUKKyAKKyBSRUczMihJSURSLCAgICAgICAgICAgICAgICAweDE4KQorIFJF RzMyKEFJRFIsICAgICAgICAgICAgICAgIDB4MWMpCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9h cm0vc21tdXYzLmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAoraW5kZXggMjQyZDY0MjllZC4u ZDQ4OGEzOWNkMCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCisrKysgYi9p bmNsdWRlL2h3L2FybS9zbW11djMuaAorQEAgLTcxLDYgKzcxLDcgQEAgc3RydWN0IFNNTVV2M1N0 YXRlIHsKKyAgICAgRXJyb3IgKm1pZ3JhdGlvbl9ibG9ja2VyOworICAgICBib29sIHJpbDsKKyAg ICAgYm9vbCBhdHM7CisrICAgIHVpbnQ4X3Qgb2FzOworIH07CisgCisgdHlwZWRlZiBlbnVtIHsK Ky0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQt c2V0LXVuc2V0X2lvbW11X2RldmljZS1jYWxsYi5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUFkZC1zZXQtdW5zZXRfaW9tbXVfZGV2aWNlLWNhbGxiLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1Y2Q3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHct YXJtLXNtbXV2My1hY2NlbC1BZGQtc2V0LXVuc2V0X2lvbW11X2RldmljZS1jYWxsYi5wYXRjaApA QCAtMCwwICsxLDM2NSBAQAorRnJvbSAzZmZlYWYwMDhiZmNkMGUzNTE3MjM5MzIyYjE0NjkwNzRj YjQ3NGJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljb2xpbiBDaGVuIDxuaWNv bGluY0BudmlkaWEuY29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNCArMDAwMAor U3ViamVjdDogW1BBVENIIDAyMC8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6IEFkZCBzZXQvdW5z ZXRfaW9tbXVfZGV2aWNlCisgY2FsbGJhY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS SC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5k IENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJp YyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdz aGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFsyMC8xMTFdIGVkMTE0NzNmZWFmYzNjNTVkOGZl ZjE1ZTE4MzdiYWE1NWFlNDg5NzQgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBo dHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0ltcGxlbWVu dCB0aGUgVkZJTy9QQ0kgY2FsbGJhY2tzIHRvIGF0dGFjaCBhbmQgZGV0YWNoIGEgSG9zdElPTU1V RGV2aWNlCit0byBhIHZTTU1VdjMgd2hlbiBhY2NlbD1vbiwKKworIC0gc2V0X2lvbW11X2Rldmlj ZSgpOiBhdHRhY2ggYSBIb3N0SU9NTVVEZXZpY2UgdG8gYSB2SU9NTVUKKyAtIHVuc2V0X2lvbW11 X2RldmljZSgpOiBkZXRhY2ggYW5kIHJlbGVhc2UgYXNzb2NpYXRlZCByZXNvdXJjZXMKKworSW4g U01NVXYzIGFjY2VsPW9uIG1vZGUsIHRoZSBndWVzdCBTTU1VdjMgaXMgYmFja2VkIGJ5IHRoZSBo b3N0IFNNTVV2MyB2aWEKK0lPTU1VRkQuIEEgdklPTU1VIG9iamVjdCAoY3JlYXRlZCB2aWEgSU9N TVVfVklPTU1VX0FMTE9DKSBwcm92aWRlcyBhIHBlci1WTSwKK3NlY3VyaXR5LWlzb2xhdGVkIGhh bmRsZSB0byB0aGUgcGh5c2ljYWwgU01NVXYzLiBXaXRob3V0IGEgdklPTU1VLCB0aGUKK3ZTTU1V djMgY2Fubm90IHJlbGF5IGd1ZXN0IG9wZXJhdGlvbnMgdG8gdGhlIGhvc3QgaGFyZHdhcmUgbm9y IG1haW50YWluCitpc29sYXRpb24gYWNyb3NzIFZNcyBvciBkZXZpY2VzLiBUaGVyZWZvcmUsIHNl dF9pb21tdV9kZXZpY2UoKSBhbGxvY2F0ZXMKK2EgdklPTU1VIG9iamVjdCBpZiBvbmUgZG9lcyBu b3QgYWxyZWFkeSBleGlzdC4KKworVGhlcmUgYXJlIHR3byBtYWluIHBvaW50cyB0byBjb25zaWRl ciBpbiB0aGlzIGltcGxlbWVudGF0aW9uOgorCisxKSBWRklPIGNvcmUgYWxsb2NhdGVzIGFuZCBh dHRhY2hlcyBhIFMyIEhXUFQgdGhhdCBhY3RzIGFzIHRoZSBuZXN0aW5nCisgICBwYXJlbnQgZm9y IG5lc3RlZCBIV1BUcyhJT01NVV9ET01BSU5fTkVTVEVEKS4gVGhpcyBwYXJlbnQgSFdQVCB3aWxs CisgICBiZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIHZTTU1VIGluc3RhbmNlcyB3aXRoaW4gYSBW TS4KKworMikgQSBkZXZpY2UgY2Fubm90IGF0dGFjaCBkaXJlY3RseSB0byBhIHZJT01NVS4gSW5z dGVhZCwgaXQgYXR0YWNoZXMKKyAgIHRocm91Z2ggYSBwcm94eSBuZXN0ZWQgSFdQVCAoSU9NTVVf RE9NQUlOX05FU1RFRCkuIEJhc2VkIG9uIHRoZSBTVEUKKyAgIGNvbmZpZ3VyYXRpb24sdGhlcmUg YXJlIHRocmVlIHR5cGVzIG9mIG5lc3RlZCBIV1BUczogYnlwYXNzLCBhYm9ydCwKKyAgIGFuZCB0 cmFuc2xhdGUuCisgICAgLVRoZSBieXBhc3MgYW5kIGFib3J0IHByb3h5IEhXUFRzIGFyZSBwcmUt YWxsb2NhdGVkLiBXaGVuIFNNTVV2MworICAgICBvcGVyYXRlcyBpbiBnbG9iYWwgYWJvcnQgb3Ig YnlwYXNzIG1vZGVzLCBhcyBjb250cm9sbGVkIGJ5IHRoZSBHQlBBCisgICAgIHJlZ2lzdGVyLCBv ciBpc3N1ZXMgYSB2U1RFIGZvciBieXBhc3Mgb3IgYWJvcnQgd2UgYXR0YWNoIHRoZXNlCisgICAg IHByZS1hbGxvY2F0ZWQgbmVzdGVkIEhXUFRzLgorICAgIC1UaGUgdHJhbnNsYXRlIEhXUFQgcmVx dWlyZXMgYSB2REVWSUNFIHRvIGJlIGFsbG9jYXRlZCBmaXJzdCwgc2luY2UKKyAgICAgaW52YWxp ZGF0aW9ucyBhbmQgZXZlbnRzIGRlcGVuZCBvbiBhIHZhbGlkIHZTSUQuCisgICAgLVRoZSB2REVW SUNFIGFsbG9jYXRpb24gYW5kIGF0dGFjaCBvcGVyYXRpb25zIGZvciB2U1RFIGJhc2VkIEhXUFRz CisgICAgIGFyZSBpbXBsZW1lbnRlZCBpbiBzdWJzZXF1ZW50IHBhdGNoZXMuCisKK0luIHN1bW1h cnksIGEgZGV2aWNlIHBsYWNlZCBiZWhpbmQgYSB2U01NVSBpbnN0YW5jZSBtdXN0IGhhdmUgYSB2 U0lEIGZvcgordHJhbnNsYXRlIHZTVEUuIFRoZSBieXBhc3MgYW5kIGFib3J0IHZTVEVzIGFyZSBw cmUtYWxsb2NhdGVkIGFzIHByb3h5CituZXN0ZWQgSFdQVHMgYW5kIGlzIGF0dGFjaGVkIGJhc2Vk IG9uIEdCUEEgcmVnaXN0ZXIuIFRoZSBjb3JlLW1hbmFnZWQKK25lc3RpbmcgcGFyZW50IFMyIEhX UFQgaXMgdXNlZCBhcyBwYXJlbnQgUzIgSFdQVCBmb3IgYWxsIHRoZSBuZXN0ZWQKK0hXUFRzIGFu ZCBpcyBpbnRlbmRlZCB0byBiZSBzaGFyZWQgYWNyb3NzIHZTTU1VIGluc3RhbmNlcyB3aXRoaW4g dGhlCitzYW1lIFZNLgorCitzZXRfaW9tbXVfZGV2aWNlKCk6CisgIC0gUmV1c2UgYW4gZXhpc3Rp bmcgdklPTU1VIGZvciB0aGUgc2FtZSBwaHlzaWNhbCBTTU1VIGlmIGF2YWlsYWJsZS4KKyAgICBJ ZiBub3QsIGFsbG9jYXRlIGEgbmV3IG9uZSB1c2luZyB0aGUgbmVzdGluZyBwYXJlbnQgUzIgSFdQ VC4KKyAgLSBQcmUtYWxsb2NhdGUgdHdvIHByb3h5IG5lc3RlZCBIV1BUcyAoYnlwYXNzIGFuZCBh Ym9ydCkgdW5kZXIgdGhlCisgICAgdklPTU1VIGFuZCBpbnN0YWxsIG9uZSBiYXNlZCBvbiBHQlBB LkFCT1JUIHZhbHVlLgorICAtIEFkZCB0aGUgZGV2aWNlIHRvIHRoZSB2SU9NTVXigJlzIGRldmlj ZSBsaXN0LgorCit1bnNldF9pb21tdV9kZXZpY2UoKToKKyAgLSBSZS1hdHRhY2ggZGV2aWNlIHRv IHRoZSBuZXN0aW5nIHBhcmVudCBTMiBIV1BULgorICAtIFJlbW92ZSB0aGUgZGV2aWNlIGZyb20g dGhlIHZJT01NVeKAmXMgZGV2aWNlIGxpc3QuCisgIC0gSWYgdGhlIGxpc3QgaXMgZW1wdHksIGZy ZWUgdGhlIHByb3h5IEhXUFRzIChieXBhc3MgYW5kIGFib3J0KQorICAgIGFuZCByZWxlYXNlIHRo ZSB2SU9NTVUgb2JqZWN0LgorCitJbnRyb2R1Y2Ugc3RydWN0IFNNTVV2M0FjY2VsU3RhdGUsIHJl cHJlc2VudGluZyBhbiBhY2NlbGVyYXRlZCBTTU1VdjMKK2luc3RhbmNlIGJhY2tlZCBieSBhbiBp b21tdWZkIHZJT01NVSBvYmplY3QsIGFuZCBzdG9yaW5nIHRoZSBieXBhc3MgYW5kCithYm9ydCBw cm94eSBIV1BUIElEcy4KKworU2lnbmVkLW9mZi1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0Bu dmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2hhbWVlcmFsaS5r b2xvdGh1bS50aG9kaUBodWF3ZWkuY29tCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8 am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpo YW5nZmVpLmdhb0BsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRp YS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMTMtc2tvbG90aHVtdGhv QG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxA bGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDcwM2I3YjkxZGIwNjRiOTRi YjY3YmM0OWVhZjUwM2IyZDZhOGQzMzMpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFjY2VsLmMgICAgICAgICAg fCAxNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgaHcvYXJtL3NtbXV2My1h Y2NlbC5oICAgICAgICAgIHwgIDE4ICsrKysKKyBody9hcm0vdHJhY2UtZXZlbnRzICAgICAgICAg ICAgfCAgIDQgKworIGluY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaCB8ICAgMyArCisgaW5j bHVkZS9ody9hcm0vc21tdXYzLmggICAgICAgIHwgICAxICsKKyA1IGZpbGVzIGNoYW5nZWQsIDE4 MiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9o dy9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IGJlMDljZjhiNzMuLjljMmI5MTdhMTEgMTAwNjQ0 CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwu YworQEAgLTgsNiArOCw3IEBACisgCisgI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIKKyAjaW5jbHVk ZSAicWVtdS9lcnJvci1yZXBvcnQuaCIKKysjaW5jbHVkZSAidHJhY2UuaCIKKyAKKyAjaW5jbHVk ZSAiaHcvYXJtL3NtbXV2My5oIgorICNpbmNsdWRlICJody9jb3JlL2lvbW11LmgiCitAQCAtMTUs NiArMTYsNyBAQAorICNpbmNsdWRlICJody9wY2ktaG9zdC9ncGV4LmgiCisgI2luY2x1ZGUgImh3 L3ZmaW8vcGNpLmgiCisgCisrI2luY2x1ZGUgInNtbXV2My1pbnRlcm5hbC5oIgorICNpbmNsdWRl ICJzbW11djMtYWNjZWwuaCIKKyAKKyAvKgorQEAgLTQzLDYgKzQ1LDE1NyBAQCBzdGF0aWMgU01N VXYzQWNjZWxEZXZpY2UgKnNtbXV2M19hY2NlbF9nZXRfZGV2KFNNTVVTdGF0ZSAqYnMsIFNNTVVQ Y2lCdXMgKnNidXMsCisgICAgIHJldHVybiBhY2NlbF9kZXY7CisgfQorIAorK3N0YXRpYyB1aW50 MzJfdCBzbW11djNfYWNjZWxfZ2JwYV9od3B0KFNNTVV2M1N0YXRlICpzLCBTTU1VdjNBY2NlbFN0 YXRlICphY2NlbCkKKyt7CisrICAgIHJldHVybiBGSUVMRF9FWDMyKHMtPmdicGEsIEdCUEEsIEFC T1JUKSA/CisrICAgICAgICAgICBhY2NlbC0+YWJvcnRfaHdwdF9pZCA6IGFjY2VsLT5ieXBhc3Nf aHdwdF9pZDsKKyt9CisrCisrc3RhdGljIGJvb2wKKytzbW11djNfYWNjZWxfYWxsb2NfdmlvbW11 KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorK3sKKysgICAgU01NVXYzQWNjZWxTdGF0 ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBzdHJ1Y3QgaW9tbXVfaHdwdF9hcm1fc21tdXYz IGJ5cGFzc19kYXRhID0geworKyAgICAgICAgLnN0ZSA9IHsgU01NVV9TVEVfQ0ZHX0JZUEFTUyB8 IFNNTVVfU1RFX1ZBTElELCAweDBVTEwgfSwKKysgICAgfTsKKysgICAgc3RydWN0IGlvbW11X2h3 cHRfYXJtX3NtbXV2MyBhYm9ydF9kYXRhID0geworKyAgICAgICAgLnN0ZSA9IHsgU01NVV9TVEVf VkFMSUQsIDB4MFVMTCB9LAorKyAgICB9OworKyAgICB1aW50MzJfdCBzMl9od3B0X2lkID0gaWRl di0+aHdwdF9pZDsKKysgICAgdWludDMyX3QgdmlvbW11X2lkLCBod3B0X2lkOworKyAgICBJT01N VUZEVmlvbW11ICp2aW9tbXU7CisrCisrICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zp b21tdShpZGV2LT5pb21tdWZkLCBpZGV2LT5kZXZpZCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX1ZJT01NVV9UWVBFX0FSTV9TTU1VVjMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMl9od3B0X2lkLCAmdmlvbW11X2lkLCBlcnJw KSkgeworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIHZpb21tdSA9IGdf bmV3MChJT01NVUZEVmlvbW11LCAxKTsKKysgICAgdmlvbW11LT52aW9tbXVfaWQgPSB2aW9tbXVf aWQ7CisrICAgIHZpb21tdS0+czJfaHdwdF9pZCA9IHMyX2h3cHRfaWQ7CisrICAgIHZpb21tdS0+ aW9tbXVmZCA9IGlkZXYtPmlvbW11ZmQ7CisrCisrICAgIC8qCisrICAgICAqIFByZS1hbGxvY2F0 ZSBIV1BUcyBmb3IgUzEgYnlwYXNzIGFuZCBhYm9ydCBjYXNlcy4gVGhlc2Ugd2lsbCBiZSBhdHRh Y2hlZAorKyAgICAgKiBsYXRlciBmb3IgZ3Vlc3QgU1RFcyBvciBHQlBBcyB0aGF0IHJlcXVpcmUg YnlwYXNzIG9yIGFib3J0IGNvbmZpZ3VyYXRpb24uCisrICAgICAqLworKyAgICBpZiAoIWlvbW11 ZmRfYmFja2VuZF9hbGxvY19od3B0KGlkZXYtPmlvbW11ZmQsIGlkZXYtPmRldmlkLCB2aW9tbXVf aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgSU9NTVVfSFdQVF9E QVRBX0FSTV9TTU1VVjMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKGFib3J0X2RhdGEpLCAmYWJvcnRfZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmYWNjZWwtPmFib3J0X2h3cHRfaWQsIGVycnApKSB7CisrICAgICAgICBnb3Rv IGZyZWVfdmlvbW11OworKyAgICB9CisrCisrICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9j X2h3cHQoaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQsIHZpb21tdV9pZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBJT01NVV9IV1BUX0RBVEFfQVJNX1NNTVVWMywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYnlwYXNzX2RhdGEp LCAmYnlwYXNzX2RhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFj Y2VsLT5ieXBhc3NfaHdwdF9pZCwgZXJycCkpIHsKKysgICAgICAgIGdvdG8gZnJlZV9hYm9ydF9o d3B0OworKyAgICB9CisrCisrICAgIC8qIEF0dGFjaCBhIEhXUFQgYmFzZWQgb24gU01NVXYzIEdC UEEuQUJPUlQgdmFsdWUgKi8KKysgICAgaHdwdF9pZCA9IHNtbXV2M19hY2NlbF9nYnBhX2h3cHQo cywgYWNjZWwpOworKyAgICBpZiAoIWhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3 cHQoaWRldiwgaHdwdF9pZCwgZXJycCkpIHsKKysgICAgICAgIGdvdG8gZnJlZV9ieXBhc3NfaHdw dDsKKysgICAgfQorKyAgICBhY2NlbC0+dmlvbW11ID0gdmlvbW11OworKyAgICByZXR1cm4gdHJ1 ZTsKKysKKytmcmVlX2J5cGFzc19od3B0OgorKyAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChp ZGV2LT5pb21tdWZkLCBhY2NlbC0+YnlwYXNzX2h3cHRfaWQpOworK2ZyZWVfYWJvcnRfaHdwdDoK KysgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaWRldi0+aW9tbXVmZCwgYWNjZWwtPmFib3J0 X2h3cHRfaWQpOworK2ZyZWVfdmlvbW11OgorKyAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChp ZGV2LT5pb21tdWZkLCB2aW9tbXUtPnZpb21tdV9pZCk7CisrICAgIGdfZnJlZSh2aW9tbXUpOwor KyAgICByZXR1cm4gZmFsc2U7CisrfQorKworK3N0YXRpYyBib29sIHNtbXV2M19hY2NlbF9zZXRf aW9tbXVfZGV2aWNlKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsIGludCBkZXZmbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3N0SU9NTVVEZXZpY2UgKmhp b2QsIEVycm9yICoqZXJycCkKKyt7CisrICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYg PSBIT1NUX0lPTU1VX0RFVklDRV9JT01NVUZEKGhpb2QpOworKyAgICBTTU1VU3RhdGUgKmJzID0g b3BhcXVlOworKyAgICBTTU1VdjNTdGF0ZSAqcyA9IEFSTV9TTU1VVjMoYnMpOworKyAgICBTTU1V UGNpQnVzICpzYnVzID0gc21tdV9nZXRfc2J1cyhicywgYnVzKTsKKysgICAgU01NVXYzQWNjZWxE ZXZpY2UgKmFjY2VsX2RldiA9IHNtbXV2M19hY2NlbF9nZXRfZGV2KGJzLCBzYnVzLCBidXMsIGRl dmZuKTsKKysKKysgICAgaWYgKCFpZGV2KSB7CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAg fQorKworKyAgICBpZiAoYWNjZWxfZGV2LT5pZGV2KSB7CisrICAgICAgICBpZiAoYWNjZWxfZGV2 LT5pZGV2ICE9IGlkZXYpIHsKKysgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJEZXZpY2Ug YWxyZWFkeSBoYXMgYW4gYXNzb2NpYXRlZCBpZGV2IDB4JXgiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgaWRldi0+ZGV2aWQpOworKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgICAg IH0KKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrCisrICAgIGlmIChzLT5zX2FjY2Vs LT52aW9tbXUpIHsKKysgICAgICAgIGdvdG8gZG9uZTsKKysgICAgfQorKworKyAgICBpZiAoIXNt bXV2M19hY2NlbF9hbGxvY192aW9tbXUocywgaWRldiwgZXJycCkpIHsKKysgICAgICAgIGVycm9y X2FwcGVuZF9oaW50KGVycnAsICJVbmFibGUgdG8gYWxsb2MgdklPTU1VOiBpZGV2IGRldmlkIDB4 JXg6ICIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZGV2LT5kZXZpZCk7CisrICAgICAg ICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKytkb25lOgorKyAgICBhY2NlbF9kZXYtPmlkZXYg PSBpZGV2OworKyAgICBhY2NlbF9kZXYtPnNfYWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBRTElT VF9JTlNFUlRfSEVBRCgmcy0+c19hY2NlbC0+ZGV2aWNlX2xpc3QsIGFjY2VsX2RldiwgbmV4dCk7 CisrICAgIHRyYWNlX3NtbXV2M19hY2NlbF9zZXRfaW9tbXVfZGV2aWNlKGRldmZuLCBpZGV2LT5k ZXZpZCk7CisrICAgIHJldHVybiB0cnVlOworK30KKysKKytzdGF0aWMgdm9pZCBzbW11djNfYWNj ZWxfdW5zZXRfaW9tbXVfZGV2aWNlKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGV2Zm4pCisreworKyAg ICBTTU1VU3RhdGUgKmJzID0gb3BhcXVlOworKyAgICBTTU1VUGNpQnVzICpzYnVzID0gZ19oYXNo X3RhYmxlX2xvb2t1cChicy0+c21tdV9wY2lidXNfYnlfYnVzcHRyLCBidXMpOworKyAgICBIb3N0 SU9NTVVEZXZpY2VJT01NVUZEICppZGV2OworKyAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxf ZGV2OworKyAgICBTTU1VdjNBY2NlbFN0YXRlICphY2NlbDsKKysgICAgU01NVURldmljZSAqc2Rl djsKKysKKysgICAgaWYgKCFzYnVzKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysg ICAgc2RldiA9IHNidXMtPnBiZGV2W2RldmZuXTsKKysgICAgaWYgKCFzZGV2KSB7CisrICAgICAg ICByZXR1cm47CisrICAgIH0KKysKKysgICAgYWNjZWxfZGV2ID0gY29udGFpbmVyX29mKHNkZXYs IFNNTVV2M0FjY2VsRGV2aWNlLCBzZGV2KTsKKysgICAgaWRldiA9IGFjY2VsX2Rldi0+aWRldjsK KysgICAgYWNjZWwgPSBhY2NlbF9kZXYtPnNfYWNjZWw7CisrICAgIC8qIFJlLWF0dGFjaCB0aGUg ZGVmYXVsdCBzMiBod3B0IGlkICovCisrICAgIGlmICghaG9zdF9pb21tdV9kZXZpY2VfaW9tbXVm ZF9hdHRhY2hfaHdwdChpZGV2LCBpZGV2LT5od3B0X2lkLCBOVUxMKSkgeworKyAgICAgICAgZXJy b3JfcmVwb3J0KCJVbmFibGUgdG8gYXR0YWNoIHRoZSBkZWZhdWx0IEhXIHBhZ2V0YWJsZTogaWRl diBkZXZpZCAiCisrICAgICAgICAgICAgICAgICAgICAgIjB4JXgiLCBpZGV2LT5kZXZpZCk7Cisr ICAgIH0KKysKKysgICAgYWNjZWxfZGV2LT5pZGV2ID0gTlVMTDsKKysgICAgYWNjZWxfZGV2LT5z X2FjY2VsID0gTlVMTDsKKysgICAgUUxJU1RfUkVNT1ZFKGFjY2VsX2RldiwgbmV4dCk7CisrICAg IHRyYWNlX3NtbXV2M19hY2NlbF91bnNldF9pb21tdV9kZXZpY2UoZGV2Zm4sIGlkZXYtPmRldmlk KTsKKysKKysgICAgaWYgKFFMSVNUX0VNUFRZKCZhY2NlbC0+ZGV2aWNlX2xpc3QpKSB7CisrICAg ICAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChhY2NlbC0+dmlvbW11LT5pb21tdWZkLCBhY2Nl bC0+YnlwYXNzX2h3cHRfaWQpOworKyAgICAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoYWNj ZWwtPnZpb21tdS0+aW9tbXVmZCwgYWNjZWwtPmFib3J0X2h3cHRfaWQpOworKyAgICAgICAgaW9t bXVmZF9iYWNrZW5kX2ZyZWVfaWQoYWNjZWwtPnZpb21tdS0+aW9tbXVmZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFjY2VsLT52aW9tbXUtPnZpb21tdV9pZCk7CisrICAgICAg ICBnX2ZyZWUoYWNjZWwtPnZpb21tdSk7CisrICAgICAgICBhY2NlbC0+dmlvbW11ID0gTlVMTDsK KysgICAgfQorK30KKysKKyAvKgorICAqIE9ubHkgYWxsb3cgUENJZSBicmlkZ2VzLCBweGItcGNp ZSByb290cywgYW5kIEdQRVggcm9vdHMgc28gdmZpby1wY2kKKyAgKiBlbmRwb2ludHMgY2FuIHNp dCBkb3duc3RyZWFtLiBBY2NlbGVyYXRlZCBTTU1VdjMgcmVxdWlyZXMgYSB2ZmlvLXBjaQorQEAg LTE0NSw2ICsyOTgsOCBAQCBzdGF0aWMgY29uc3QgUENJSU9NTVVPcHMgc21tdXYzX2FjY2VsX29w cyA9IHsKKyAgICAgLnN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UgPSBzbW11djNfYWNjZWxfc3VwcG9y dHNfYXMsCisgICAgIC5nZXRfYWRkcmVzc19zcGFjZSA9IHNtbXV2M19hY2NlbF9maW5kX2FkZF9h cywKKyAgICAgLmdldF92aW9tbXVfZmxhZ3MgPSBzbW11djNfYWNjZWxfZ2V0X3Zpb21tdV9mbGFn cywKKysgICAgLnNldF9pb21tdV9kZXZpY2UgPSBzbW11djNfYWNjZWxfc2V0X2lvbW11X2Rldmlj ZSwKKysgICAgLnVuc2V0X2lvbW11X2RldmljZSA9IHNtbXV2M19hY2NlbF91bnNldF9pb21tdV9k ZXZpY2UsCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBzbW11djNfYWNjZWxfYXNfaW5pdChTTU1VdjNT dGF0ZSAqcykKK0BAIC0xNjgsNiArMzIzLDcgQEAgdm9pZCBzbW11djNfYWNjZWxfaW5pdChTTU1V djNTdGF0ZSAqcykKKyB7CisgICAgIFNNTVVTdGF0ZSAqYnMgPSBBUk1fU01NVShzKTsKKyAKKysg ICAgcy0+c19hY2NlbCA9IGdfbmV3MChTTU1VdjNBY2NlbFN0YXRlLCAxKTsKKyAgICAgYnMtPmlv bW11X29wcyA9ICZzbW11djNfYWNjZWxfb3BzOworICAgICBzbW11djNfYWNjZWxfYXNfaW5pdChz KTsKKyB9CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5oIGIvaHcvYXJtL3NtbXV2 My1hY2NlbC5oCitpbmRleCAwZGM2YjAwZDM1Li5lZmI2MzFkYjRmIDEwMDY0NAorLS0tIGEvaHcv YXJtL3NtbXV2My1hY2NlbC5oCisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK0BAIC0xMCwx MCArMTAsMjggQEAKKyAjZGVmaW5lIEhXX0FSTV9TTU1VVjNfQUNDRUxfSAorIAorICNpbmNsdWRl ICJody9hcm0vc21tdS1jb21tb24uaCIKKysjaW5jbHVkZSAic3lzdGVtL2lvbW11ZmQuaCIKKysj aWZkZWYgQ09ORklHX0xJTlVYCisrI2luY2x1ZGUgPGxpbnV4L2lvbW11ZmQuaD4KKysjZW5kaWYK KyAjaW5jbHVkZSBDT05GSUdfREVWSUNFUworIAorKy8qCisrICogUmVwcmVzZW50cyBhbiBhY2Nl bGVyYXRlZCBTTU1VIGluc3RhbmNlIGJhY2tlZCBieSBhbiBpb21tdWZkIHZJT01NVSBvYmplY3Qu CisrICogSG9sZHMgYnlwYXNzIGFuZCBhYm9ydCBwcm94eSBIV1BUIElEcyB1c2VkIGZvciBkZXZp Y2UgYXR0YWNobWVudC4KKysgKi8KKyt0eXBlZGVmIHN0cnVjdCBTTU1VdjNBY2NlbFN0YXRlIHsK KysgICAgSU9NTVVGRFZpb21tdSAqdmlvbW11OworKyAgICB1aW50MzJfdCBieXBhc3NfaHdwdF9p ZDsKKysgICAgdWludDMyX3QgYWJvcnRfaHdwdF9pZDsKKysgICAgUUxJU1RfSEVBRCgsIFNNTVV2 M0FjY2VsRGV2aWNlKSBkZXZpY2VfbGlzdDsKKyt9IFNNTVV2M0FjY2VsU3RhdGU7CisrCisgdHlw ZWRlZiBzdHJ1Y3QgU01NVXYzQWNjZWxEZXZpY2UgeworICAgICBTTU1VRGV2aWNlIHNkZXY7Cisr ICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXY7CisrICAgIFFMSVNUX0VOVFJZKFNNTVV2 M0FjY2VsRGV2aWNlKSBuZXh0OworKyAgICBTTU1VdjNBY2NlbFN0YXRlICpzX2FjY2VsOworIH0g U01NVXYzQWNjZWxEZXZpY2U7CisgCisgI2lmZGVmIENPTkZJR19BUk1fU01NVVYzX0FDQ0VMCitk aWZmIC0tZ2l0IGEvaHcvYXJtL3RyYWNlLWV2ZW50cyBiL2h3L2FybS90cmFjZS1ldmVudHMKK2lu ZGV4IGYzMzg2YmQ3YWUuLjJhYWEwYzQwYzcgMTAwNjQ0CistLS0gYS9ody9hcm0vdHJhY2UtZXZl bnRzCisrKysgYi9ody9hcm0vdHJhY2UtZXZlbnRzCitAQCAtNjYsNiArNjYsMTAgQEAgc21tdXYz X25vdGlmeV9mbGFnX2RlbChjb25zdCBjaGFyICppb21tdSkgIkRFTCBTTU1VTm90aWZpZXIgbm9k ZSBmb3IgaW9tbXUgbXI9JXMKKyBzbW11djNfaW52X25vdGlmaWVyc19pb3ZhKGNvbnN0IGNoYXIg Km5hbWUsIGludCBhc2lkLCBpbnQgdm1pZCwgdWludDY0X3QgaW92YSwgdWludDhfdCB0ZywgdWlu dDY0X3QgbnVtX3BhZ2VzLCBpbnQgc3RhZ2UpICJpb21tdSBtcj0lcyBhc2lkPSVkIHZtaWQ9JWQg aW92YT0weCUiUFJJeDY0IiB0Zz0lZCBudW1fcGFnZXM9MHglIlBSSXg2NCIgc3RhZ2U9JWQiCisg c21tdV9yZXNldF9leGl0KHZvaWQpICIiCisgCisrI3NtbXV2My1hY2NlbC5jCisrc21tdXYzX2Fj Y2VsX3NldF9pb21tdV9kZXZpY2UoaW50IGRldmZuLCB1aW50MzJfdCBkZXZpZCkgImRldmZuPTB4 JXggKGlkZXYgZGV2aWQ9MHgleCkiCisrc21tdXYzX2FjY2VsX3Vuc2V0X2lvbW11X2RldmljZShp bnQgZGV2Zm4sIHVpbnQzMl90IGRldmlkKSAiZGV2Zm49MHgleCAoaWRldiBkZXZpZD0weCV4KSIK KysKKyAjIHN0cm9uZ2FybS5jCisgc3Ryb25nYXJtX3VhcnRfdXBkYXRlX3BhcmFtZXRlcnMoY29u c3QgY2hhciAqbGFiZWwsIGludCBzcGVlZCwgY2hhciBwYXJpdHksIGludCBkYXRhX2JpdHMsIGlu dCBzdG9wX2JpdHMpICIlcyBzcGVlZD0lZCBwYXJpdHk9JWMgZGF0YT0lZCBzdG9wPSVkIgorIHN0 cm9uZ2FybV9zc3BfcmVhZF91bmRlcnJ1bih2b2lkKSAiU1NQIHJ4IHVuZGVycnVuIgorZGlmZiAt LWdpdCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaCBiL2luY2x1ZGUvaHcvYXJtL3Nt bXV2My1jb21tb24uaAoraW5kZXggMzAxMDE5MTVlMi4uOTA1ZTZjYTY3ZiAxMDA2NDQKKy0tLSBh L2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21t dXYzLWNvbW1vbi5oCitAQCAtMTAwLDYgKzEwMCw5IEBAIFJFRzMyKFNURV83LCAyOCkKKyAjZGVm aW5lIFNURV9DRkdfQUJPUlQoY29uZmlnKSAgICAgICghKGNvbmZpZyAmIDB4NCkpCisgI2RlZmlu ZSBTVEVfQ0ZHX0JZUEFTUyhjb25maWcpICAgICAoY29uZmlnID09IDB4NCkKKyAKKysjZGVmaW5l IFNNTVVfU1RFX1ZBTElEICAgICAgKDFVTEwgPDwgMCkKKysjZGVmaW5lIFNNTVVfU1RFX0NGR19C WVBBU1MgKDFVTEwgPDwgMykKKysKKyAvKiBVcGRhdGUgU1RFIGZpZWxkcyAqLworICNkZWZpbmUg U1RFX1NFVF9WQUxJRChzdGUsIHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgKChzdGUpLT53b3JkWzBdID0gRklFTERfRFAzMigoc3RlKS0+ d29yZFswXSwgU1RFXzAsIFZBTElELCAodikpKQorZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJt L3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2luZGV4IGJiNzA3NjI4NmIuLmU1 NGVjZTJkMzggMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorKysrIGIvaW5j bHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC02Niw2ICs2Niw3IEBAIHN0cnVjdCBTTU1VdjNTdGF0 ZSB7CisgCisgICAgIC8qIFNNTVUgaGFzIEhXIGFjY2VsZXJhdG9yIHN1cHBvcnQgZm9yIG5lc3Rl ZCBTMSArIHMyICovCisgICAgIGJvb2wgYWNjZWw7CisrICAgIHN0cnVjdCBTTU1VdjNBY2NlbFN0 YXRlICpzX2FjY2VsOworIH07CisgCisgdHlwZWRlZiBlbnVtIHsKKy0tIAorMi41Mi4wCisKCmRp ZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtc3VwcG9ydC1mb3ItQVRTLnBh dGNoIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXN1cHBvcnQtZm9yLUFUUy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjUxM2JiCi0tLSAvZGV2L251bGwK KysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXN1cHBvcnQtZm9yLUFUUy5wYXRjaApA QCAtMCwwICsxLDE4OCBAQAorRnJvbSBlZGYyYjVjNmY5MzE5ZTY1MTY1NjhhMzFkMTljNDZlYWM2 ODYzMDNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA1 ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDM4LzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDogQWRk IHN1cHBvcnQgZm9yIEFUUworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitS SC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVx dWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3Vw cG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03 Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRl ciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0 LmNvbT4KK1JILUNvbW1pdDogWzM4LzExMV0gNTVlNmYwNjFlZjMwMGE1MmI3MmI4MjY4NDM3MDg1 ZTM0NGE2ZjgxOCAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVk aGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworUUVNVSBTTU1VdjMgZG9lcyBu b3QgZW5hYmxlIEFUUyAoQWRkcmVzcyBUcmFuc2xhdGlvbiBTZXJ2aWNlcykgYnkgZGVmYXVsdC4K K1doZW4gYWNjZWxlcmF0ZWQgbW9kZSBpcyBlbmFibGVkIGFuZCB0aGUgaG9zdCBTTU1VdjMgc3Vw cG9ydHMgQVRTLCBpdCBjYW4KK2JlIHVzZWZ1bCB0byByZXBvcnQgQVRTIGNhcGFiaWxpdHkgdG8g dGhlIGd1ZXN0IHNvIGl0IGNhbiB0YWtlIGFkdmFudGFnZQorb2YgaXQgaWYgdGhlIGRldmljZSBh bHNvIHN1cHBvcnRzIEFUUy4KKworTm90ZTogQVRTIHN1cHBvcnQgY2Fubm90IGJlIHJlbGlhYmx5 IGRldGVjdGVkIGZyb20gdGhlIGhvc3QgU01NVXYzIElEUgorcmVnaXN0ZXJzIGFsb25lLCBhcyBm aXJtd2FyZSBBQ1BJIElPUlQgdGFibGVzIG1heSBvdmVycmlkZSB0aGVtLiBUaGUKK3VzZXIgbXVz dCB0aGVyZWZvcmUgZW5zdXJlIHRoZSBzdXBwb3J0IGJlZm9yZSBlbmFibGluZyBpdC4KKworVGhl IEFUUyBzdXBwb3J0IGVuYWJsZWQgaGVyZSBpcyBvbmx5IHJlbGV2YW50IGZvciB2ZmlvLXBjaSBl bmRwb2ludHMsCithcyBTTU1VdjMgYWNjZWxlcmF0ZWQgbW9kZSBkb2VzIG5vdCBzdXBwb3J0IGVt dWxhdGVkIGVuZHBvaW50IGRldmljZXMuCitRRU1V4oCZcyBTTU1VdjMgaW1wbGVtZW50YXRpb24g c3RpbGwgbGFja3Mgc3VwcG9ydCBmb3IgaGFuZGxpbmcgQVRTCit0cmFuc2xhdGlvbiByZXF1ZXN0 cywgd2hpY2ggd291bGQgYmUgcmVxdWlyZWQgZm9yIGVtdWxhdGVkIGVuZHBvaW50cy4KKworUmV2 aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4K K1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmll d2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1 Mzk2NS0zMS1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5 ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgZjdmNTAxM2E1NWEzNDQ3Y2E4MTM4M2Q4OTY5NjI2ZTA5MmZlYjBjOSkKK1NpZ25lZC1vZmYt Ynk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11 djMtYWNjZWwuYyAgICB8ICAzICsrKworIGh3L2FybS9zbW11djMuYyAgICAgICAgICB8IDI0ICsr KysrKysrKysrKysrKysrKysrKysrLQorIGh3L2FybS92aXJ0LWFjcGktYnVpbGQuYyB8IDEwICsr KysrKysrLS0KKyBpbmNsdWRlL2h3L2FybS9zbW11djMuaCAgfCAgMSArCisgNCBmaWxlcyBjaGFu Z2VkLCAzNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcv YXJtL3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCBkZjgyZjFl MzJhLi5hOTdhYmMxZjc5IDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysg Yi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC02NTQsNiArNjU0LDkgQEAgdm9pZCBzbW11djNf YWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorIAorICAgICAvKiBCeSBkZWZhdWx0 IFFFTVUgU01NVXYzIGhhcyBSSUwuIFVwZGF0ZSBJRFIzIGlmIHVzZXIgaGFzIGRpc2FibGVkIGl0 ICovCisgICAgIHMtPmlkclszXSA9IEZJRUxEX0RQMzIocy0+aWRyWzNdLCBJRFIzLCBSSUwsIHMt PnJpbCk7CisrCisrICAgIC8qIFFFTVUgU01NVXYzIGhhcyBubyBBVFMuIEFkdmVydGlzZSBBVFMg aWYgb3B0LWluIGJ5IHByb3BlcnR5ICovCisrICAgIHMtPmlkclswXSA9IEZJRUxEX0RQMzIocy0+ aWRyWzBdLCBJRFIwLCBBVFMsIHMtPmF0cyk7CisgfQorIAorIC8qIEJhc2VkIG9uIFNNVVV2MyBH UEJBLkFCT1JUIGNvbmZpZ3VyYXRpb24sIGF0dGFjaCBhIGNvcnJlc3BvbmRpbmcgSFdQVCAqLwor ZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11djMuYworaW5kZXggNjQz NzA2YjI5Yy4uZWFkMDc4NWIyYiAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMuYworKysrIGIv aHcvYXJtL3NtbXV2My5jCitAQCAtMTQ5OCwxMyArMTQ5OCwyNyBAQCBzdGF0aWMgaW50IHNtbXV2 M19jbWRxX2NvbnN1bWUoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyAgICAgICAgICAg ICAgKi8KKyAgICAgICAgICAgICBzbW11djNfcmFuZ2VfaW52YWwoYnMsICZjbWQsIFNNTVVfU1RB R0VfMik7CisgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIFNNTVVfQ01EX0FUQ19J TlY6CisrICAgICAgICB7CisrICAgICAgICAgICAgU01NVURldmljZSAqc2RldiA9IHNtbXVfZmlu ZF9zZGV2KGJzLCBDTURfU0lEKCZjbWQpKTsKKysKKysgICAgICAgICAgICBpZiAoIXNkZXYgfHwg IXMtPmF0cykgeworKyAgICAgICAgICAgICAgICB0cmFjZV9zbW11djNfdW5oYW5kbGVkX2NtZCh0 eXBlKTsKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKworKyAgICAg ICAgICAgIGlmICghc21tdXYzX2FjY2VsX2lzc3VlX2ludl9jbWQocywgJmNtZCwgc2RldiwgZXJy cCkpIHsKKysgICAgICAgICAgICAgICAgY21kX2Vycm9yID0gU01NVV9DRVJST1JfSUxMOworKyAg ICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgYnJlYWs7 CisrICAgICAgICB9CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1RMQklfRUwzX0FMTDoKKyAgICAg ICAgIGNhc2UgU01NVV9DTURfVExCSV9FTDNfVkE6CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1RM QklfRUwyX0FMTDoKKyAgICAgICAgIGNhc2UgU01NVV9DTURfVExCSV9FTDJfQVNJRDoKKyAgICAg ICAgIGNhc2UgU01NVV9DTURfVExCSV9FTDJfVkE6CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1RM QklfRUwyX1ZBQToKKy0gICAgICAgIGNhc2UgU01NVV9DTURfQVRDX0lOVjoKKyAgICAgICAgIGNh c2UgU01NVV9DTURfUFJJX1JFU1A6CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1JFU1VNRToKKyAg ICAgICAgIGNhc2UgU01NVV9DTURfU1RBTExfVEVSTToKK0BAIC0xOTMxLDYgKzE5NDUsMTAgQEAg c3RhdGljIGJvb2wgc21tdV92YWxpZGF0ZV9wcm9wZXJ0eShTTU1VdjNTdGF0ZSAqcywgRXJyb3Ig KiplcnJwKQorICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgInJpbCBjYW4gb25seSBiZSBk aXNhYmxlZCBpZiBhY2NlbD1vbiIpOworICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgIH0KKysgICAgICAgIGlmIChzLT5hdHMpIHsKKysgICAgICAgICAgICBlcnJvcl9zZXRnKGVy cnAsICJhdHMgY2FuIG9ubHkgYmUgZW5hYmxlZCBpZiBhY2NlbD1vbiIpOworKyAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKysgICAgICAgIH0KKyAgICAgICAgIHJldHVybiB0cnVlOworICAgICB9 CisgCitAQCAtMjA2Niw2ICsyMDg0LDcgQEAgc3RhdGljIGNvbnN0IFByb3BlcnR5IHNtbXV2M19w cm9wZXJ0aWVzW10gPSB7CisgICAgIERFRklORV9QUk9QX1VJTlQ2NCgibXNpLWdwYSIsIFNNTVV2 M1N0YXRlLCBtc2lfZ3BhLCAwKSwKKyAgICAgLyogUklMIGNhbiBiZSB0dXJuZWQgb2ZmIGZvciBh Y2NlbCBjYXNlcyAqLworICAgICBERUZJTkVfUFJPUF9CT09MKCJyaWwiLCBTTU1VdjNTdGF0ZSwg cmlsLCB0cnVlKSwKKysgICAgREVGSU5FX1BST1BfQk9PTCgiYXRzIiwgU01NVXYzU3RhdGUsIGF0 cywgZmFsc2UpLAorIH07CisgCisgc3RhdGljIHZvaWQgc21tdXYzX2luc3RhbmNlX2luaXQoT2Jq ZWN0ICpvYmopCitAQCAtMjA5Myw2ICsyMTEyLDkgQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNz X2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICAgICAgImNv bmZpZ3VyZWQgaW4gbmVzdGVkIG1vZGUgZm9yIHZmaW8tcGNpIGRldiBhc3NpZ25tZW50Iik7Cisg ICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9zZXRfZGVzY3JpcHRpb24oa2xhc3MsICJyaWwiLAor ICAgICAgICAgIkRpc2FibGUgcmFuZ2UgaW52YWxpZGF0aW9uIHN1cHBvcnQgKGZvciBhY2NlbD1v bikiKTsKKysgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywg ImF0cyIsCisrICAgICAgICAiRW5hYmxlL2Rpc2FibGUgQVRTIHN1cHBvcnQgKGZvciBhY2NlbD1v bikuIFBsZWFzZSBlbnN1cmUgaG9zdCAiCisrICAgICAgICAicGxhdGZvcm0gaGFzIEFUUyBzdXBw b3J0IGJlZm9yZSBlbmFibGluZyB0aGlzIik7CisgfQorIAorIHN0YXRpYyBpbnQgc21tdXYzX25v dGlmeV9mbGFnX2NoYW5nZWQoSU9NTVVNZW1vcnlSZWdpb24gKmlvbW11LAorZGlmZiAtLWdpdCBh L2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYyBiL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYworaW5k ZXggMzNjNjUxOWYwYS4uMTYwZjFkMTBlNSAxMDA2NDQKKy0tLSBhL2h3L2FybS92aXJ0LWFjcGkt YnVpbGQuYworKysrIGIvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jCitAQCAtMzUyLDYgKzM1Miw3 IEBAIHR5cGVkZWYgc3RydWN0IEFjcGlJb3J0U01NVXYzRGV2IHsKKyAgICAgLyogT2Zmc2V0IG9m IHRoZSBTTU1VdjMgSU9SVCBOb2RlIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgSU9SVCAq LworICAgICBzaXplX3Qgb2Zmc2V0OworICAgICBib29sIGFjY2VsOworKyAgICBib29sIGF0czsK KyB9IEFjcGlJb3J0U01NVXYzRGV2OworIAorIC8qCitAQCAtNDA3LDYgKzQwOCw3IEBAIHN0YXRp YyBpbnQgaW9ydF9zbW11djNfZGV2aWNlcyhPYmplY3QgKm9iaiwgdm9pZCAqb3BhcXVlKQorIAor ICAgICBidXMgPSBQQ0lfQlVTKG9iamVjdF9wcm9wZXJ0eV9nZXRfbGluayhvYmosICJwcmltYXJ5 LWJ1cyIsICZlcnJvcl9hYm9ydCkpOworICAgICBzZGV2LmFjY2VsID0gb2JqZWN0X3Byb3BlcnR5 X2dldF9ib29sKG9iaiwgImFjY2VsIiwgJmVycm9yX2Fib3J0KTsKKysgICAgc2Rldi5hdHMgPSBv YmplY3RfcHJvcGVydHlfZ2V0X2Jvb2wob2JqLCAiYXRzIiwgJmVycm9yX2Fib3J0KTsKKyAgICAg cGJ1cyA9IFBMQVRGT1JNX0JVU19ERVZJQ0Uodm1zLT5wbGF0Zm9ybV9idXNfZGV2KTsKKyAgICAg c2JkZXYgPSBTWVNfQlVTX0RFVklDRShvYmopOworICAgICBzZGV2LmJhc2UgPSBwbGF0Zm9ybV9i dXNfZ2V0X21taW9fYWRkcihwYnVzLCBzYmRldiwgMCk7CitAQCAtNTUwLDYgKzU1Miw3IEBAIGJ1 aWxkX2lvcnQoR0FycmF5ICp0YWJsZV9kYXRhLCBCSU9TTGlua2VyICpsaW5rZXIsIFZpcnRNYWNo aW5lU3RhdGUgKnZtcykKKyAgICAgaW50IGksIG5iX25vZGVzLCByY19tYXBwaW5nX2NvdW50Owor ICAgICBBY3BpSW9ydFNNTVV2M0RldiAqc2RldjsKKyAgICAgc2l6ZV90IG5vZGVfc2l6ZTsKKysg ICAgYm9vbCBhdHNfbmVlZGVkID0gZmFsc2U7CisgICAgIGludCBudW1fc21tdXMgPSAwOworICAg ICB1aW50MzJfdCBpZCA9IDA7CisgICAgIGludCByY19zbW11X2lkbWFwc19sZW4gPSAwOworQEAg LTU4NSw2ICs1ODgsOSBAQCBidWlsZF9pb3J0KEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtl ciAqbGlua2VyLCBWaXJ0TWFjaGluZVN0YXRlICp2bXMpCisgICAgICAgICAvKiBDYWxjdWxhdGUg Uk1SIG5vZGVzIHJlcXVpcmVkLiBPbmUgcGVyIFNNTVV2MyB3aXRoIGFjY2VsZXJhdGVkIG1vZGUg Ki8KKyAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fc21tdXM7IGkrKykgeworICAgICAgICAg ICAgIHNkZXYgPSAmZ19hcnJheV9pbmRleChzbW11djNfZGV2cywgQWNwaUlvcnRTTU1VdjNEZXYs IGkpOworKyAgICAgICAgICAgIGlmIChzZGV2LT5hdHMpIHsKKysgICAgICAgICAgICAgICAgYXRz X25lZWRlZCA9IHRydWU7CisrICAgICAgICAgICAgfQorICAgICAgICAgICAgIGlmIChzZGV2LT5h Y2NlbCkgeworICAgICAgICAgICAgICAgICBuYl9ub2RlcysrOworICAgICAgICAgICAgIH0KK0BA IC02ODQsOCArNjkwLDggQEAgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5r ZXIgKmxpbmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQorICAgICBidWlsZF9hcHBlbmRfaW50 X25vcHJlZml4KHRhYmxlX2RhdGEsIDAsIDIpOyAvKiBSZXNlcnZlZCAqLworICAgICAvKiBUYWJs ZSAxNSBNZW1vcnkgQWNjZXNzIEZsYWdzICovCisgICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVm aXgodGFibGVfZGF0YSwgMHgzIC8qIENDQSA9IENQTSA9IERBQ1MgPSAxICovLCAxKTsKKy0KKy0g ICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCAwLCA0KTsgLyogQVRTIEF0 dHJpYnV0ZSAqLworKyAgICAvKiBBVFMgQXR0cmlidXRlICovCisrICAgIGJ1aWxkX2FwcGVuZF9p bnRfbm9wcmVmaXgodGFibGVfZGF0YSwgYXRzX25lZWRlZCwgNCk7CisgICAgIC8qIE1DRkcgcGNp X3NlZ21lbnQgKi8KKyAgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCAw LCA0KTsgLyogUENJIFNlZ21lbnQgbnVtYmVyICovCisgCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9o dy9hcm0vc21tdXYzLmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAoraW5kZXggNTMzYTIxODJl OC4uMjQyZDY0MjllZCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCisrKysg Yi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IFNNTVV2 M1N0YXRlIHsKKyAgICAgdWludDY0X3QgbXNpX2dwYTsKKyAgICAgRXJyb3IgKm1pZ3JhdGlvbl9i bG9ja2VyOworICAgICBib29sIHJpbDsKKysgICAgYm9vbCBhdHM7CisgfTsKKyAKKyB0eXBlZGVm IGVudW0geworLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUFkZC1zdXBwb3J0LXRvLWlzc3VlLWludmFsaWRhdGlvLnBhdGNoIGIva3ZtLWh3LWFybS1z bW11djMtYWNjZWwtQWRkLXN1cHBvcnQtdG8taXNzdWUtaW52YWxpZGF0aW8ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM3MzEwYwotLS0gL2Rldi9udWxsCisrKyBi L2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1zdXBwb3J0LXRvLWlzc3VlLWludmFsaWRhdGlv LnBhdGNoCkBAIC0wLDAgKzEsMTY0IEBACitGcm9tIGU2M2RlZWMwNzQ4ZWE4ZDkwNzA5ODIxN2Ex NjkyZDQ0MmJhMGQ2YTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtv bG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYg MTM6MzI6MDUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMjcvMTExXSBody9hcm0vc21tdXYzLWFj Y2VsOiBBZGQgc3VwcG9ydCB0byBpc3N1ZQorIGludmFsaWRhdGlvbiBjbWQgdG8gaG9zdAorTUlN RS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAor Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIg PGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFz ZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitS SC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzI3 LzExMV0gNWYyOGYxODllMTk0N2JmODU4NjBhOThlMDk1MmI1Mzg0ZDczZGIwMCAoZWF1Z2VyMS9j ZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJv d3NlL1JIRUwtNzM3OTQKKworUHJvdmlkZSBhIGhlbHBlciBhbmQgdXNlIHRoYXQgdG8gaXNzdWUg dGhlIGludmFsaWRhdGlvbiBjbWQgdG8gaG9zdCBTTU1VdjMuCitXZSBvbmx5IGlzc3VlIG9uZSBj bWQgYXQgYSB0aW1lIGZvciBub3cuCisKK1N1cHBvcnQgZm9yIGJhdGNoaW5nIG9mIGNvbW1hbmRz wqB3aWxsIGJlIGFkZGVkIGxhdGVyIGFmdGVyIGFuYWx5c2luZyB0aGUKK2ltcGFjdC4KKworUmV2 aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4K K1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmll d2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1 Mzk2NS0yMC1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5 ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgNThhNzg5YzM4OWNiNjkxYzhiMjVjMWE2NzNjZmZmZTQ5ZmU5MzU1NCkKK1NpZ25lZC1vZmYt Ynk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11 djMtYWNjZWwuYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGh3 L2FybS9zbW11djMtYWNjZWwuaCB8ICA4ICsrKysrKysrCisgaHcvYXJtL3NtbXV2My5jICAgICAg IHwgMTYgKysrKysrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1h Y2NlbC5jCitpbmRleCBjNmVlMTIzY2RmLi44OWRjNmY5OTFjIDEwMDY0NAorLS0tIGEvaHcvYXJt L3NtbXV2My1hY2NlbC5jCisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC0yMzMsNiAr MjMzLDQyIEBAIGJvb2wgc21tdXYzX2FjY2VsX2luc3RhbGxfc3RlX3JhbmdlKFNNTVV2M1N0YXRl ICpzLCBTTU1VU0lEUmFuZ2UgKnJhbmdlLAorICAgICByZXR1cm4gYWxsX29rOworIH0KKyAKKysv KgorKyAqIFRoaXMgaXNzdWVzIHRoZSBpbnZhbGlkYXRpb24gY21kIHRvIHRoZSBob3N0IFNNTVV2 My4KKysgKgorKyAqIHNkZXYgaXMgbm9uLU5VTEwgZm9yIFNJRCBiYXNlZCBpbnZhbGlkYXRpb25z IChlLmcuIENGR0lfQ0QpLCBhbmQgTlVMTCBmb3IKKysgKiBub24gU0lEIGludmFsaWRhdGlvbnMg c3VjaCBhcyBTTU1VX0NNRF9UTEJJX05IX0FTSUQgYW5kIFNNTVVfQ01EX1RMQklfTkhfVkEuCisr ICovCisrYm9vbCBzbW11djNfYWNjZWxfaXNzdWVfaW52X2NtZChTTU1VdjNTdGF0ZSAqYnMsIHZv aWQgKmNtZCwgU01NVURldmljZSAqc2RldiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVycm9yICoqZXJycCkKKyt7CisrICAgIFNNTVV2M1N0YXRlICpzID0gQVJNX1NNTVVWMyhi cyk7CisrICAgIFNNTVV2M0FjY2VsU3RhdGUgKmFjY2VsID0gcy0+c19hY2NlbDsKKysgICAgdWlu dDMyX3QgZW50cnlfbnVtID0gMTsKKysKKysgICAgLyoKKysgICAgICogTm8gYWNjZWwgb3Igdmlv bW11IG1lYW5zIG5vIFZGSU8vSU9NTVVGRCBkZXZpY2VzLCBub3RoaW5nIHRvCisrICAgICAqIGlu dmFsaWRhdGUuCisrICAgICAqLworKyAgICBpZiAoIWFjY2VsIHx8ICFhY2NlbC0+dmlvbW11KSB7 CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgfQorKworKyAgICAvKgorKyAgICAgKiBTSUQg YmFzZWQgaW52YWxpZGF0aW9ucyAoZS5nLiBDRkdJX0NEKSBhcHBseSBvbmx5IHRvIHZmaW8tcGNp IGVuZHBvaW50cworKyAgICAgKiB3aXRoIGEgdmFsaWQgdklPTU1VIHZkZXYuCisrICAgICAqLwor KyAgICBpZiAoc2RldiAmJiAhY29udGFpbmVyX29mKHNkZXYsIFNNTVV2M0FjY2VsRGV2aWNlLCBz ZGV2KS0+dmRldikgeworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysKKysgICAgLyog U2luZ2xlIGNvbW1hbmQgKGVudHJ5X251bSA9IDEpOyBubyBuZWVkIHRvIGNoZWNrIHJldHVybmVk IGVudHJ5X251bSAqLworKyAgICByZXR1cm4gaW9tbXVmZF9iYWNrZW5kX2ludmFsaWRhdGVfY2Fj aGUoCisrICAgICAgICAgICAgICAgICAgIGFjY2VsLT52aW9tbXUtPmlvbW11ZmQsIGFjY2VsLT52 aW9tbXUtPnZpb21tdV9pZCwKKysgICAgICAgICAgICAgICAgICAgSU9NTVVfVklPTU1VX0lOVkFM SURBVEVfREFUQV9BUk1fU01NVVYzLAorKyAgICAgICAgICAgICAgICAgICBzaXplb2YoQ21kKSwg JmVudHJ5X251bSwgY21kLCBlcnJwKTsKKyt9CisrCisgc3RhdGljIGJvb2wKKyBzbW11djNfYWNj ZWxfYWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpp ZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorZGlmZiAtLWdp dCBhL2h3L2FybS9zbW11djMtYWNjZWwuaCBiL2h3L2FybS9zbW11djMtYWNjZWwuaAoraW5kZXgg YzdlZDRkY2UzYS4uNDFiMzdlMzEyMiAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwu aAorKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5oCitAQCAtNDcsNiArNDcsOCBAQCBib29sIHNt bXV2M19hY2NlbF9pbnN0YWxsX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01NVURldmljZSAqc2Rldiwg aW50IHNpZCwKKyBib29sIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZV9yYW5nZShTTU1VdjNTdGF0 ZSAqcywgU01NVVNJRFJhbmdlICpyYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFcnJvciAqKmVycnApOworIGJvb2wgc21tdXYzX2FjY2VsX2F0dGFjaF9nYnBhX2h3 cHQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCk7CisrYm9vbCBzbW11djNfYWNjZWxfaXNz dWVfaW52X2NtZChTTU1VdjNTdGF0ZSAqcywgdm9pZCAqY21kLCBTTU1VRGV2aWNlICpzZGV2LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKTsKKyB2b2lkIHNt bXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcyk7CisgI2Vsc2UKKyBzdGF0aWMgaW5saW5l IHZvaWQgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMpCitAQCAtNjgsNiArNzAsMTIg QEAgc3RhdGljIGlubGluZSBib29sIHNtbXV2M19hY2NlbF9hdHRhY2hfZ2JwYV9od3B0KFNNTVV2 M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgeworICAgICByZXR1cm4gdHJ1ZTsKKyB9Cisrc3Rh dGljIGlubGluZSBib29sCisrc21tdXYzX2FjY2VsX2lzc3VlX2ludl9jbWQoU01NVXYzU3RhdGUg KnMsIHZvaWQgKmNtZCwgU01NVURldmljZSAqc2RldiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICBFcnJvciAqKmVycnApCisreworKyAgICByZXR1cm4gdHJ1ZTsKKyt9Cisgc3RhdGljIGlu bGluZSB2b2lkIHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcykKKyB7CisgfQorZGlm ZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11djMuYworaW5kZXggZjAyZTNl ZTQ2Yy4uNTEzZGE5NjZhNCAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMuYworKysrIGIvaHcv YXJtL3NtbXV2My5jCitAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHN0YXRpYyBpbnQgc21tdXYzX2Nt ZHFfY29uc3VtZShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorIAorICAgICAgICAgICAg IHRyYWNlX3NtbXV2M19jbWRxX2NmZ2lfY2Qoc2lkKTsKKyAgICAgICAgICAgICBzbW11djNfZmx1 c2hfY29uZmlnKHNkZXYpOworKyAgICAgICAgICAgIGlmICghc21tdXYzX2FjY2VsX2lzc3VlX2lu dl9jbWQocywgJmNtZCwgc2RldiwgZXJycCkpIHsKKysgICAgICAgICAgICAgICAgY21kX2Vycm9y ID0gU01NVV9DRVJST1JfSUxMOworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAg ICB9CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICBjYXNlIFNNTVVf Q01EX1RMQklfTkhfQVNJRDoKK0BAIC0xNDExLDYgKzE0MTUsMTAgQEAgc3RhdGljIGludCBzbW11 djNfY21kcV9jb25zdW1lKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICAg ICAgdHJhY2Vfc21tdXYzX2NtZHFfdGxiaV9uaF9hc2lkKGFzaWQpOworICAgICAgICAgICAgIHNt bXVfaW52X25vdGlmaWVyc19hbGwoJnMtPnNtbXVfc3RhdGUpOworICAgICAgICAgICAgIHNtbXVf aW90bGJfaW52X2FzaWRfdm1pZChicywgYXNpZCwgdm1pZCk7CisrICAgICAgICAgICAgaWYgKCFz bW11djNfYWNjZWxfaXNzdWVfaW52X2NtZChzLCAmY21kLCBOVUxMLCBlcnJwKSkgeworKyAgICAg ICAgICAgICAgICBjbWRfZXJyb3IgPSBTTU1VX0NFUlJPUl9JTEw7CisrICAgICAgICAgICAgICAg IGJyZWFrOworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0K KyAgICAgICAgIGNhc2UgU01NVV9DTURfVExCSV9OSF9BTEw6CitAQCAtMTQzOCw2ICsxNDQ2LDEw IEBAIHN0YXRpYyBpbnQgc21tdXYzX2NtZHFfY29uc3VtZShTTU1VdjNTdGF0ZSAqcywgRXJyb3Ig KiplcnJwKQorICAgICAgICAgICAgIHRyYWNlX3NtbXV2M19jbWRxX3RsYmlfbnNuaCgpOworICAg ICAgICAgICAgIHNtbXVfaW52X25vdGlmaWVyc19hbGwoJnMtPnNtbXVfc3RhdGUpOworICAgICAg ICAgICAgIHNtbXVfaW90bGJfaW52X2FsbChicyk7CisrICAgICAgICAgICAgaWYgKCFzbW11djNf YWNjZWxfaXNzdWVfaW52X2NtZChzLCAmY21kLCBOVUxMLCBlcnJwKSkgeworKyAgICAgICAgICAg ICAgICBjbWRfZXJyb3IgPSBTTU1VX0NFUlJPUl9JTEw7CisrICAgICAgICAgICAgICAgIGJyZWFr OworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgU01N VV9DTURfVExCSV9OSF9WQUE6CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1RMQklfTkhfVkE6CitA QCAtMTQ0Niw2ICsxNDU4LDEwIEBAIHN0YXRpYyBpbnQgc21tdXYzX2NtZHFfY29uc3VtZShTTU1V djNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgc21tdXYzX3JhbmdlX2ludmFsKGJzLCAmY21kLCBTTU1V X1NUQUdFXzEpOworKyAgICAgICAgICAgIGlmICghc21tdXYzX2FjY2VsX2lzc3VlX2ludl9jbWQo cywgJmNtZCwgTlVMTCwgZXJycCkpIHsKKysgICAgICAgICAgICAgICAgY21kX2Vycm9yID0gU01N VV9DRVJST1JfSUxMOworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFNNTVVfQ01EX1RMQklfUzEyX1ZNQUxM OgorICAgICAgICAgeworLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21t dXYzLWFjY2VsLUFkZC12aW9tbXUtZnJlZS1oZWxwZXIucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2 My1hY2NlbC1BZGQtdmlvbW11LWZyZWUtaGVscGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJjNmIzYTgKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNt bXV2My1hY2NlbC1BZGQtdmlvbW11LWZyZWUtaGVscGVyLnBhdGNoCkBAIC0wLDAgKzEsODEgQEAK K0Zyb20gYmI2MDIzNTA3YWVlMDZhNGU5Yzc0MzY0MjViODYzZmUxMDg4ZTUxNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Budmlk aWEuY29tPgorRGF0ZTogRnJpLCA2IE1hciAyMDI2IDA5OjAxOjExICswMDAwCitTdWJqZWN0OiBb UEFUQ0ggMDUxLzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDogQWRkIHZpb21tdSBmcmVlIGhlbHBl cgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1V IFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTog UkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2 IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5j b20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1p dDogWzUxLzExMV0gYWM0MzcwOGQ1MmU2ZDRkODRlNGQ1NGIwY2I5NTVmODUxOGZlMzVkNiAoZWF1 Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5u ZXQvYnJvd3NlL1JIRUwtNzM3OTYKKworTW92ZSB2aW9tbXUgdGVhcmRvd24gaW50byBhIGhlbHBl ciBmdW5jdGlvbiBhbmQgdXNlIGl0IGZyb20gdGhlCitsYXN0IGRldmljZSByZW1vdmFsIHBhdGgu CisKK1RoaXMgZ3JvdXBzIHJlbGF0ZWQgY2xlYW51cCBsb2dpYyBpbiBvbmUgcGxhY2UgYW5kIGlt cHJvdmVzIHJlYWRhYmlsaXR5LgorSXQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gZXh0ZW5kIHRo ZSB0ZWFyZG93biBpbiBmdXR1cmUsIGZvciBleGFtcGxlCit3aGVuIGZyZWVpbmcgcmVsYXRlZCBv YmplY3RzIHN1Y2ggYXMgdkVWRU5UUS4KKworTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKK1Jldmll d2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8 am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xv dGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDIyNjA4NDQ1 Ni4xMTIxNDItMy1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIg TWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgNjc0ZDU3YmY2ZTI2YTNhZTcwNzZhN2VlNTZlNmJlOTA1ODBkNTIwOCkKK1NpZ25lZC1v ZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9z bW11djMtYWNjZWwuYyB8IDIxICsrKysrKysrKysrKysrKy0tLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCAxNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJt L3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCBmNWNkNGRmMzM2 Li5jMTljNTI2ZmNhIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysgYi9o dy9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC0zOTAsNiArMzkwLDIwIEBAIGJvb2wgc21tdXYzX2Fj Y2VsX2lzc3VlX2ludl9jbWQoU01NVXYzU3RhdGUgKmJzLCB2b2lkICpjbWQsIFNNTVVEZXZpY2Ug KnNkZXYsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihDbWQpLCAmZW50cnlfbnVtLCBjbWQs IGVycnApOworIH0KKyAKKytzdGF0aWMgdm9pZCBzbW11djNfYWNjZWxfZnJlZV92aW9tbXUoU01N VXYzQWNjZWxTdGF0ZSAqYWNjZWwpCisreworKyAgICBJT01NVUZEVmlvbW11ICp2aW9tbXUgPSBh Y2NlbC0+dmlvbW11OworKworKyAgICBpZiAoIXZpb21tdSkgeworKyAgICAgICAgcmV0dXJuOwor KyAgICB9CisrICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgYWNj ZWwtPmJ5cGFzc19od3B0X2lkKTsKKysgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQodmlvbW11 LT5pb21tdWZkLCBhY2NlbC0+YWJvcnRfaHdwdF9pZCk7CisrICAgIGlvbW11ZmRfYmFja2VuZF9m cmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgYWNjZWwtPnZpb21tdS0+dmlvbW11X2lkKTsKKysgICAg Z19mcmVlKHZpb21tdSk7CisrICAgIGFjY2VsLT52aW9tbXUgPSBOVUxMOworK30KKysKKyBzdGF0 aWMgYm9vbAorIHNtbXV2M19hY2NlbF9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUgKnMsIEhvc3RJ T01NVURldmljZUlPTU1VRkQgKmlkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJv ciAqKmVycnApCitAQCAtNTQ5LDEyICs1NjMsNyBAQCBzdGF0aWMgdm9pZCBzbW11djNfYWNjZWxf dW5zZXRfaW9tbXVfZGV2aWNlKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsCisgICAgIHRyYWNl X3NtbXV2M19hY2NlbF91bnNldF9pb21tdV9kZXZpY2UoZGV2Zm4sIGlkZXYtPmRldmlkKTsKKyAK KyAgICAgaWYgKFFMSVNUX0VNUFRZKCZhY2NlbC0+ZGV2aWNlX2xpc3QpKSB7CistICAgICAgICBp b21tdWZkX2JhY2tlbmRfZnJlZV9pZChhY2NlbC0+dmlvbW11LT5pb21tdWZkLCBhY2NlbC0+Ynlw YXNzX2h3cHRfaWQpOworLSAgICAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoYWNjZWwtPnZp b21tdS0+aW9tbXVmZCwgYWNjZWwtPmFib3J0X2h3cHRfaWQpOworLSAgICAgICAgaW9tbXVmZF9i YWNrZW5kX2ZyZWVfaWQoYWNjZWwtPnZpb21tdS0+aW9tbXVmZCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFjY2VsLT52aW9tbXUtPnZpb21tdV9pZCk7CistICAgICAgICBnX2Zy ZWUoYWNjZWwtPnZpb21tdSk7CistICAgICAgICBhY2NlbC0+dmlvbW11ID0gTlVMTDsKKysgICAg ICAgIHNtbXV2M19hY2NlbF9mcmVlX3Zpb21tdShhY2NlbCk7CisgICAgIH0KKyB9CisgCistLSAK KzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWxsb2NhdGUt dkVWRU5UUS1mb3ItYWNjZWxlcmF0ZWQucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1B bGxvY2F0ZS12RVZFTlRRLWZvci1hY2NlbGVyYXRlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42MDcxOGZjCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1z bW11djMtYWNjZWwtQWxsb2NhdGUtdkVWRU5UUS1mb3ItYWNjZWxlcmF0ZWQucGF0Y2gKQEAgLTAs MCArMSwyMjUgQEAKK0Zyb20gYWQwYWUyMjRmOGUzMGY2NTA0MTgxY2M5ZDU4MDQyMmNlMjA0YjAz YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNA bnZpZGlhLmNvbT4KK0RhdGU6IEZyaSwgNiBNYXIgMjAyNiAwOTowMToxMSArMDAwMAorU3ViamVj dDogW1BBVENIIDA1Mi8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6IEFsbG9jYXRlIHZFVkVOVFEg Zm9yIGFjY2VsZXJhdGVkCisgU01NVXYzIGRldmljZXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNN TVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTog Q8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNo YW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs1Mi8xMTFdIDkxYzcwODVmYjhmMTFj NDVkZmRlNDNiMGI1YWFhYWM3NzI1NzEyODIgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitK SVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk2CisKK1do ZW4gdGhlIGd1ZXN0IGVuYWJsZXMgdGhlIEV2ZW50IFF1ZXVlIGFuZCBhIHZJT01NVSBpcyBwcmVz ZW50LCBhbGxvY2F0ZSBhCit2RVZFTlRRIG9iamVjdCBzbyB0aGF0IGhvc3Qtc2lkZSBldmVudHMg cmVsYXRlZCB0byB0aGUgdklPTU1VIGNhbiBiZQorcmVjZWl2ZWQgYW5kIHByb3BhZ2F0ZWQgYmFj ayB0byB0aGUgZ3Vlc3QuCisKK0FsbG9jYXRlIGEgdkVWRU5UUSBvbmx5IHdoZW4gYm90aCBvZiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKworICAxKSBUaGUgZ3Vlc3QgU01NVXYz IGRyaXZlciBoYXMgc2V0IEVWRU5UUUVOID0gMSBpbiBTTU1VX0NSMC4KKyAgMikgQSB2SU9NTVUg ZXhpc3RzIChjcmVhdGVkIHdoZW4gdGhlIGZpcnN0IFZGSU8gZGV2aWNlIGlzIGF0dGFjaGVkKS4K KworVGhlc2UgdHdvIGNvbmRpdGlvbnMgbWF5IG9jY3VyIGluIGFueSBvcmRlci4KKworSW4gdGhl IGNvbGQtcGx1ZyBjYXNlLCB0aGUgdklPTU1VIGFscmVhZHkgZXhpc3RzIGJlZm9yZSB0aGUgZ3Vl c3QKK2RyaXZlciBwcm9iZXMuIFdoZW4gdGhlIGd1ZXN0IHNldHMgRVZFTlRRRU4gPSAxIGR1cmlu ZyBkcml2ZXIgcHJvYmUsCit0aGUgdkVWRU5UUSBpcyBhbGxvY2F0ZWQgYXQgdGhhdCBwb2ludC4K KworV2l0aCBob3QtcGx1ZywgdGhlIFZGSU8gZGV2aWNlIG1heSBiZSBhdHRhY2hlZCBlaXRoZXIg YmVmb3JlIG9yIGFmdGVyCit0aGUgZ3Vlc3Qgc2V0cyBFVkVOVFFFTi4gSWYgdGhlIHZJT01NVSBp cyBjcmVhdGVkIGZpcnN0LCBhbGxvY2F0aW9uIGlzCitkZWZlcnJlZCB1bnRpbCBFVkVOVFFFTiA9 IDEuIElmIEVWRU5UUUVOIGlzIGFscmVhZHkgc2V0LCBhbGxvY2F0aW9uCitoYXBwZW5zIHdoZW4g dGhlIHZJT01NVSBpcyBjcmVhdGVkLgorCitJbiBhbGwgY2FzZXMsIGFsbG9jYXRpb24gaXMgdHJp Z2dlcmVkIHdoZW4gdGhlIHNlY29uZCByZXF1aXJlZAorY29uZGl0aW9uIGJlY29tZXMgdHJ1ZS4K KworRXJyb3JzIGZyb20gY29tbWFuZCBxdWV1ZSBjb25zdW1wdGlvbiBhbmQgdkVWRU5UUSBhbGxv Y2F0aW9uIGFyZSByZXBvcnRlZAoraW5kZXBlbmRlbnRseSBhcyB0aGUgdHdvIG9wZXJhdGlvbnMg YXJlIHVucmVsYXRlZC4KKworRXZlbnQgcmVhZCBhbmQgcHJvcGFnYXRpb24gd2lsbCBiZSBhZGRl ZCBpbiBhIGxhdGVyIHBhdGNoLgorCitTaWduZWQtb2ZmLWJ5OiBOaWNvbGluIENoZW4gPG5pY29s aW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlh LmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitU ZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYt Ynk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorTWVzc2FnZS1p ZDogMjAyNjAyMjYwODQ0NTYuMTEyMTQyLTQtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25l ZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IDQ2ZjBkNDgzOTM1MjljZmEzNjU5MDEyOTcxYzIwZjY4MDhl YjNiNzgpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CistLS0KKyBody9hcm0vc21tdXYzLWFjY2VsLmMgfCA2MSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCisgaHcvYXJtL3NtbXV2My1hY2NlbC5oIHwgIDYgKysrKysK KyBody9hcm0vc21tdXYzLmMgICAgICAgfCAgNiArKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNzEg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11 djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggYzE5YzUyNmZjYS4uZjcw M2VhMWFhYyAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJt L3NtbXV2My1hY2NlbC5jCitAQCAtMzkwLDYgKzM5MCwxOSBAQCBib29sIHNtbXV2M19hY2NlbF9p c3N1ZV9pbnZfY21kKFNNTVV2M1N0YXRlICpicywgdm9pZCAqY21kLCBTTU1VRGV2aWNlICpzZGV2 LAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoQ21kKSwgJmVudHJ5X251bSwgY21kLCBlcnJw KTsKKyB9CisgCisrc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2ZyZWVfdmV2ZW50cShTTU1VdjNB Y2NlbFN0YXRlICphY2NlbCkKKyt7CisrICAgIElPTU1VRkRWZXZlbnRxICp2ZXZlbnRxID0gYWNj ZWwtPnZldmVudHE7CisrCisrICAgIGlmICghdmV2ZW50cSkgeworKyAgICAgICAgcmV0dXJuOwor KyAgICB9CisrICAgIGNsb3NlKHZldmVudHEtPnZldmVudHFfZmQpOworKyAgICBpb21tdWZkX2Jh Y2tlbmRfZnJlZV9pZChhY2NlbC0+dmlvbW11LT5pb21tdWZkLCB2ZXZlbnRxLT52ZXZlbnRxX2lk KTsKKysgICAgZ19mcmVlKHZldmVudHEpOworKyAgICBhY2NlbC0+dmV2ZW50cSA9IE5VTEw7Cisr fQorKworIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9mcmVlX3Zpb21tdShTTU1VdjNBY2NlbFN0 YXRlICphY2NlbCkKKyB7CisgICAgIElPTU1VRkRWaW9tbXUgKnZpb21tdSA9IGFjY2VsLT52aW9t bXU7CitAQCAtMzk3LDYgKzQxMCw3IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9mcmVlX3Zp b21tdShTTU1VdjNBY2NlbFN0YXRlICphY2NlbCkKKyAgICAgaWYgKCF2aW9tbXUpIHsKKyAgICAg ICAgIHJldHVybjsKKyAgICAgfQorKyAgICBzbW11djNfYWNjZWxfZnJlZV92ZXZlbnRxKGFjY2Vs KTsKKyAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQodmlvbW11LT5pb21tdWZkLCBhY2NlbC0+ YnlwYXNzX2h3cHRfaWQpOworICAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZCh2aW9tbXUtPmlv bW11ZmQsIGFjY2VsLT5hYm9ydF9od3B0X2lkKTsKKyAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVf aWQodmlvbW11LT5pb21tdWZkLCBhY2NlbC0+dmlvbW11LT52aW9tbXVfaWQpOworQEAgLTQwNCw2 ICs0MTgsNDEgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2ZyZWVfdmlvbW11KFNNTVV2M0Fj Y2VsU3RhdGUgKmFjY2VsKQorICAgICBhY2NlbC0+dmlvbW11ID0gTlVMTDsKKyB9CisgCisrYm9v bCBzbW11djNfYWNjZWxfYWxsb2NfdmV2ZW50cShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJw KQorK3sKKysgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBJ T01NVUZEVmV2ZW50cSAqdmV2ZW50cTsKKysgICAgdWludDMyX3QgdmV2ZW50cV9pZDsKKysgICAg dWludDMyX3QgdmV2ZW50cV9mZDsKKysKKysgICAgaWYgKCFhY2NlbCB8fCAhYWNjZWwtPnZpb21t dSkgeworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysKKysgICAgaWYgKGFjY2VsLT52 ZXZlbnRxKSB7CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgfQorKworKyAgICBpZiAoIXNt bXV2M19ldmVudHFfZW5hYmxlZChzKSkgeworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0K KysKKysgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmV2ZW50cShhY2NlbC0+dmlvbW11 LT5pb21tdWZkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vs LT52aW9tbXUtPnZpb21tdV9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVV9WRVZFTlRRX1RZUEVfQVJNX1NNTVVWMywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAxIDw8IHMtPmV2ZW50cS5sb2cyc2l6ZSwgJnZldmVudHFfaWQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZldmVudHFfZmQsIGVy cnApKSB7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgdmV2ZW50cSA9 IGdfbmV3MChJT01NVUZEVmV2ZW50cSwgMSk7CisrICAgIHZldmVudHEtPnZldmVudHFfaWQgPSB2 ZXZlbnRxX2lkOworKyAgICB2ZXZlbnRxLT52ZXZlbnRxX2ZkID0gdmV2ZW50cV9mZDsKKysgICAg dmV2ZW50cS0+dmlvbW11ID0gYWNjZWwtPnZpb21tdTsKKysgICAgYWNjZWwtPnZldmVudHEgPSB2 ZXZlbnRxOworKyAgICByZXR1cm4gdHJ1ZTsKKyt9CisrCisgc3RhdGljIGJvb2wKKyBzbW11djNf YWNjZWxfYWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZE ICppZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorQEAgLTQy OSw2ICs0NzgsNyBAQCBzbW11djNfYWNjZWxfYWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBI b3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LAorICAgICB2aW9tbXUtPnZpb21tdV9pZCA9IHZp b21tdV9pZDsKKyAgICAgdmlvbW11LT5zMl9od3B0X2lkID0gczJfaHdwdF9pZDsKKyAgICAgdmlv bW11LT5pb21tdWZkID0gaWRldi0+aW9tbXVmZDsKKysgICAgYWNjZWwtPnZpb21tdSA9IHZpb21t dTsKKyAKKyAgICAgLyoKKyAgICAgICogUHJlLWFsbG9jYXRlIEhXUFRzIGZvciBTMSBieXBhc3Mg YW5kIGFib3J0IGNhc2VzLiBUaGVzZSB3aWxsIGJlIGF0dGFjaGVkCitAQCAtNDQ4LDE0ICs0OTgs MjAgQEAgc21tdXYzX2FjY2VsX2FsbG9jX3Zpb21tdShTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1V RGV2aWNlSU9NTVVGRCAqaWRldiwKKyAgICAgICAgIGdvdG8gZnJlZV9hYm9ydF9od3B0OworICAg ICB9CisgCisrICAgIC8qIEFsbG9jYXRlIGEgdkVWRU5UUSBpZiBndWVzdCBoYXMgZW5hYmxlZCBl dmVudCBxdWV1ZSAqLworKyAgICBpZiAoIXNtbXV2M19hY2NlbF9hbGxvY192ZXZlbnRxKHMsIGVy cnApKSB7CisrICAgICAgICBnb3RvIGZyZWVfYnlwYXNzX2h3cHQ7CisrICAgIH0KKysKKyAgICAg LyogQXR0YWNoIGEgSFdQVCBiYXNlZCBvbiBTTU1VdjMgR0JQQS5BQk9SVCB2YWx1ZSAqLworICAg ICBod3B0X2lkID0gc21tdXYzX2FjY2VsX2dicGFfaHdwdChzLCBhY2NlbCk7CisgICAgIGlmICgh aG9zdF9pb21tdV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChpZGV2LCBod3B0X2lkLCBlcnJw KSkgeworLSAgICAgICAgZ290byBmcmVlX2J5cGFzc19od3B0OworKyAgICAgICAgZ290byBmcmVl X3ZldmVudHE7CisgICAgIH0KKy0gICAgYWNjZWwtPnZpb21tdSA9IHZpb21tdTsKKyAgICAgcmV0 dXJuIHRydWU7CisgCisrZnJlZV92ZXZlbnRxOgorKyAgICBzbW11djNfYWNjZWxfZnJlZV92ZXZl bnRxKGFjY2VsKTsKKyBmcmVlX2J5cGFzc19od3B0OgorICAgICBpb21tdWZkX2JhY2tlbmRfZnJl ZV9pZChpZGV2LT5pb21tdWZkLCBhY2NlbC0+YnlwYXNzX2h3cHRfaWQpOworIGZyZWVfYWJvcnRf aHdwdDoKK0BAIC00NjMsNiArNTE5LDcgQEAgZnJlZV9hYm9ydF9od3B0OgorIGZyZWVfdmlvbW11 OgorICAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChpZGV2LT5pb21tdWZkLCB2aW9tbXUtPnZp b21tdV9pZCk7CisgICAgIGdfZnJlZSh2aW9tbXUpOworKyAgICBhY2NlbC0+dmlvbW11ID0gTlVM TDsKKyAgICAgcmV0dXJuIGZhbHNlOworIH0KKyAKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYz LWFjY2VsLmggYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK2luZGV4IGE4YTY0ODAyZWMuLmRiYTZj NzFkZTUgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmgKKysrKyBiL2h3L2FybS9z bW11djMtYWNjZWwuaAorQEAgLTIyLDYgKzIyLDcgQEAKKyAgKi8KKyB0eXBlZGVmIHN0cnVjdCBT TU1VdjNBY2NlbFN0YXRlIHsKKyAgICAgSU9NTVVGRFZpb21tdSAqdmlvbW11OworKyAgICBJT01N VUZEVmV2ZW50cSAqdmV2ZW50cTsKKyAgICAgdWludDMyX3QgYnlwYXNzX2h3cHRfaWQ7CisgICAg IHVpbnQzMl90IGFib3J0X2h3cHRfaWQ7CisgICAgIFFMSVNUX0hFQUQoLCBTTU1VdjNBY2NlbERl dmljZSkgZGV2aWNlX2xpc3Q7CitAQCAtNTAsNiArNTEsNyBAQCBib29sIHNtbXV2M19hY2NlbF9h dHRhY2hfZ2JwYV9od3B0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApOworIGJvb2wgc21t dXYzX2FjY2VsX2lzc3VlX2ludl9jbWQoU01NVXYzU3RhdGUgKnMsIHZvaWQgKmNtZCwgU01NVURl dmljZSAqc2RldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJy cCk7Cisgdm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKTsKKyti b29sIHNtbXV2M19hY2NlbF9hbGxvY192ZXZlbnRxKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVy cnApOworIHZvaWQgc21tdXYzX2FjY2VsX3Jlc2V0KFNNTVV2M1N0YXRlICpzKTsKKyAjZWxzZQor IHN0YXRpYyBpbmxpbmUgdm9pZCBzbW11djNfYWNjZWxfaW5pdChTTU1VdjNTdGF0ZSAqcykKK0BA IC04MCw2ICs4MiwxMCBAQCBzbW11djNfYWNjZWxfaXNzdWVfaW52X2NtZChTTU1VdjNTdGF0ZSAq cywgdm9pZCAqY21kLCBTTU1VRGV2aWNlICpzZGV2LAorIHN0YXRpYyBpbmxpbmUgdm9pZCBzbW11 djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorIHsKKyB9Cisrc3RhdGljIGlu bGluZSBib29sIHNtbXV2M19hY2NlbF9hbGxvY192ZXZlbnRxKFNNTVV2M1N0YXRlICpzLCBFcnJv ciAqKmVycnApCisreworKyAgICByZXR1cm4gdHJ1ZTsKKyt9Cisgc3RhdGljIGlubGluZSB2b2lk IHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcykKKyB7CisgfQorZGlmZiAtLWdpdCBh L2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11djMuYworaW5kZXggNDkzMTFmNWJiZi4uMWEy MThmNzQ5ZCAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2 My5jCitAQCAtMTYwNSw2ICsxNjA1LDEyIEBAIHN0YXRpYyBNZW1UeFJlc3VsdCBzbW11X3dyaXRl bChTTU1VdjNTdGF0ZSAqcywgaHdhZGRyIG9mZnNldCwKKyAgICAgICAgIHMtPmNyMGFjayA9IGRh dGEgJiB+U01NVV9DUjBfUkVTRVJWRUQ7CisgICAgICAgICAvKiBpbiBjYXNlIHRoZSBjb21tYW5k IHF1ZXVlIGhhcyBiZWVuIGVuYWJsZWQgKi8KKyAgICAgICAgIHNtbXV2M19jbWRxX2NvbnN1bWUo cywgJmxvY2FsX2Vycik7CisrICAgICAgICBpZiAobG9jYWxfZXJyKSB7CisrICAgICAgICAgICAg ZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnIpOworKyAgICAgICAgICAgIGxvY2FsX2VyciA9IE5V TEw7CisrICAgICAgICB9CisrICAgICAgICAvKiBBbGxvY2F0ZSB2RVZFTlRRIGlmIEVWRU5UUSBp cyBlbmFibGVkIGFuZCBhIHZJT01NVSBpcyBhdmFpbGFibGUgKi8KKysgICAgICAgIHNtbXV2M19h Y2NlbF9hbGxvY192ZXZlbnRxKHMsICZsb2NhbF9lcnIpOworICAgICAgICAgYnJlYWs7CisgICAg IGNhc2UgQV9DUjE6CisgICAgICAgICBzLT5jclsxXSA9IGRhdGE7CistLSAKKzIuNTIuMAorCgpk aWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hhbmdlLWF0cy1wcm9wZXJ0eS10 eXBlLXRvLU9uT2YucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGFuZ2UtYXRzLXBy b3BlcnR5LXR5cGUtdG8tT25PZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jMjM0MTI2Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwt Q2hhbmdlLWF0cy1wcm9wZXJ0eS10eXBlLXRvLU9uT2YucGF0Y2gKQEAgLTAsMCArMSwxNTQgQEAK K0Zyb20gOTBjMTdlZTYxNzJkMTQ1ZDNkNzllNWZmZWQ0ZjU4ZDZhNDc0NzcyOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hdGhhbiBDaGVuIDxuYXRoYW5jQG52aWRpYS5jb20+CitE YXRlOiBUdWUsIDI0IE1hciAyMDI2IDE0OjAyOjI5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDU4 LzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDogQ2hhbmdlICJhdHMiIHByb3BlcnR5IHR5cGUgdG8K KyBPbk9mZkF1dG8KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0 aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6 IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQK K1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQg UkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNs Z0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+ CitSSC1Db21taXQ6IFs1OC8xMTFdIDBkZGMzZmQ3ZmNlODIxYTk4MGZjMzA0ODJjNjMxNjE5MWQ0 OWQzMDAgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5h dGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTE2MDE5MAorCitDaGFuZ2UgYWNjZWwgU01NVXYzIEFU UyBwcm9wZXJ0eSBmcm9tIGJvb2wgdG8gT25PZmZBdXRvLiBUaGUgJ2F1dG8nCit2YWx1ZSBpcyBu b3QgaW1wbGVtZW50ZWQsIGFzIHRoaXMgY29tbWl0IGlzIG1lYW50IHRvIHNldCB0aGUgcHJvcGVy dHkKK3RvIHRoZSBjb3JyZWN0IHR5cGUgYW5kIGF2b2lkIGJyZWFraW5nIEpTT04vUU1QIHdoZW4g dGhlIGF1dG8gbW9kZSBpcworaW50cm9kdWNlZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBpbXBsZW1l bnQgcmVzb2x1dGlvbiBvZiB0aGUgJ2F1dG8nCit2YWx1ZSB0byBtYXRjaCB0aGUgaG9zdCBTTU1V djMgQVRTIHN1cHBvcnQuCisKK1RoZSBjb252ZXJzaW9uIG9mIHRoZSBBVFMgcHJvcGVydHkgdHlw ZSB0byBPbk9mZkF1dG8gaXMgYW4KK2luY29tcGF0aWJsZSBjaGFuZ2UgZm9yIEpTT04vUU1QIHdo ZW4gYSBib29sIHZhbHVlIGlzIGV4cGVjdGVkIGZvcgorImF0cyIsIGJ1dCB0aGUgImF0cyIgcHJv cGVydHkgaXMgbmV3IGluIDExLjAgYW5kIHRoaXMgcGF0Y2ggaXMKK3N1Ym1pdHRlZCBhcyBhIGZp eCB0byB0aGUgcHJvcGVydHkgdHlwZS4KKworRml4ZXM6IGY3ZjUwMTNhNTVhMyAoImh3L2FybS9z bW11djMtYWNjZWw6IEFkZCBzdXBwb3J0IGZvciBBVFMiKQorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNr b2xvdGh1bXRob0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK0Fja2VkLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhh dC5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgor TWVzc2FnZS1pZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC0zLW5hdGhhbmNAbnZpZGlhLmNvbQor U2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOWY4YThlMGYyYzZmZDQ4YjRmMzc1OWEwMmI1MjEw Y2JhNmE5NzhlMykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICB8ICA0ICsrKy0KKyBody9hcm0v c21tdXYzLmMgICAgICAgICAgfCAxNyArKysrKysrKysrKysrKy0tLQorIGh3L2FybS92aXJ0LWFj cGktYnVpbGQuYyB8ICAyICstCisgaW5jbHVkZS9ody9hcm0vc21tdXYzLmggIHwgIDQgKysrLQor IDQgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMtYWNjZWwuYwor aW5kZXggMmJiMTQyYzQ3Zi4uZjIxYTZhOTk5NyAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMt YWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtODI3LDcgKzgyNyw5IEBA IHZvaWQgc21tdXYzX2FjY2VsX2lkcl9vdmVycmlkZShTTU1VdjNTdGF0ZSAqcykKKyAgICAgcy0+ aWRyWzNdID0gRklFTERfRFAzMihzLT5pZHJbM10sIElEUjMsIFJJTCwgcy0+cmlsKTsKKyAKKyAg ICAgLyogUUVNVSBTTU1VdjMgaGFzIG5vIEFUUy4gQWR2ZXJ0aXNlIEFUUyBpZiBvcHQtaW4gYnkg cHJvcGVydHkgKi8KKy0gICAgcy0+aWRyWzBdID0gRklFTERfRFAzMihzLT5pZHJbMF0sIElEUjAs IEFUUywgcy0+YXRzKTsKKysgICAgaWYgKHMtPmF0cyA9PSBPTl9PRkZfQVVUT19PTikgeworKyAg ICAgICAgcy0+aWRyWzBdID0gRklFTERfRFAzMihzLT5pZHJbMF0sIElEUjAsIEFUUywgMSk7Cisr ICAgIH0KKyAKKyAgICAgLyogQWR2ZXJ0aXNlIDQ4LWJpdCBPQVMgaW4gSURSNSB3aGVuIHJlcXVl c3RlZCAoZGVmYXVsdCBpcyA0NCBiaXRzKS4gKi8KKyAgICAgaWYgKHMtPm9hcyA9PSBTTU1VX09B U180OEJJVCkgeworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9zbW11djMu YworaW5kZXggZDkzN2Y0YWRkNS4uNmY4ZDA5M2Y1MSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11 djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtMzE3LDYgKzMxNywxMSBAQCBzdGF0aWMg dm9pZCBzbW11djNfaW5pdF9pZF9yZWdzKFNNTVV2M1N0YXRlICpzKQorICAgICBzbW11djNfYWNj ZWxfaWRyX292ZXJyaWRlKHMpOworIH0KKyAKKytib29sIHNtbXV2M19hdHNfZW5hYmxlZChTTU1V djNTdGF0ZSAqcykKKyt7CisrICAgIHJldHVybiBGSUVMRF9FWDMyKHMtPmlkclswXSwgSURSMCwg QVRTKTsKKyt9CisrCisgc3RhdGljIHZvaWQgc21tdXYzX3Jlc2V0KFNNTVV2M1N0YXRlICpzKQor IHsKKyAgICAgcy0+Y21kcS5iYXNlID0gZGVwb3NpdDY0KHMtPmNtZHEuYmFzZSwgMCwgNSwgU01N VV9DTURRUyk7CitAQCAtMTk2NiwxMiArMTk3MSwxNyBAQCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlk YXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgIH0KKyAjZW5k aWYKKyAKKysgICAgaWYgKHMtPmF0cyA9PSBPTl9PRkZfQVVUT19BVVRPKSB7CisrICAgICAgICBl cnJvcl9zZXRnKGVycnAsICJhdHMgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKysgICAg ICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKworICAgICBpZiAoIXMtPmFjY2VsKSB7CisgICAg ICAgICBpZiAoIXMtPnJpbCkgeworICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgInJpbCBj YW4gb25seSBiZSBkaXNhYmxlZCBpZiBhY2NlbD1vbiIpOworICAgICAgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICAgICAgIH0KKy0gICAgICAgIGlmIChzLT5hdHMpIHsKKysgICAgICAgIGlmIChz LT5hdHMgPT0gT05fT0ZGX0FVVE9fT04pIHsKKyAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAs ICJhdHMgY2FuIG9ubHkgYmUgZW5hYmxlZCBpZiBhY2NlbD1vbiIpOworICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgIH0KK0BAIC0yMTI4LDcgKzIxMzgsNyBAQCBzdGF0aWMgY29u c3QgUHJvcGVydHkgc21tdXYzX3Byb3BlcnRpZXNbXSA9IHsKKyAgICAgREVGSU5FX1BST1BfVUlO VDY0KCJtc2ktZ3BhIiwgU01NVXYzU3RhdGUsIG1zaV9ncGEsIDApLAorICAgICAvKiBSSUwgY2Fu IGJlIHR1cm5lZCBvZmYgZm9yIGFjY2VsIGNhc2VzICovCisgICAgIERFRklORV9QUk9QX0JPT0wo InJpbCIsIFNNTVV2M1N0YXRlLCByaWwsIHRydWUpLAorLSAgICBERUZJTkVfUFJPUF9CT09MKCJh dHMiLCBTTU1VdjNTdGF0ZSwgYXRzLCBmYWxzZSksCisrICAgIERFRklORV9QUk9QX09OX09GRl9B VVRPKCJhdHMiLCBTTU1VdjNTdGF0ZSwgYXRzLCBPTl9PRkZfQVVUT19PRkYpLAorICAgICBERUZJ TkVfUFJPUF9VSU5UOCgib2FzIiwgU01NVXYzU3RhdGUsIG9hcywgNDQpLAorICAgICBERUZJTkVf UFJPUF9VSU5UOCgic3NpZHNpemUiLCBTTU1VdjNTdGF0ZSwgc3NpZHNpemUsIDApLAorIH07CitA QCAtMjE2MCw3ICsyMTcwLDggQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQoT2JqZWN0 Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICAgICAgIkRpc2FibGUgcmFuZ2Ug aW52YWxpZGF0aW9uIHN1cHBvcnQgKGZvciBhY2NlbD1vbikiKTsKKyAgICAgb2JqZWN0X2NsYXNz X3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywgImF0cyIsCisgICAgICAgICAiRW5hYmxl L2Rpc2FibGUgQVRTIHN1cHBvcnQgKGZvciBhY2NlbD1vbikuIFBsZWFzZSBlbnN1cmUgaG9zdCAi CistICAgICAgICAicGxhdGZvcm0gaGFzIEFUUyBzdXBwb3J0IGJlZm9yZSBlbmFibGluZyB0aGlz Iik7CisrICAgICAgICAicGxhdGZvcm0gaGFzIEFUUyBzdXBwb3J0IGJlZm9yZSBlbmFibGluZyB0 aGlzLiBhdHM9YXV0byBpcyBub3QgIgorKyAgICAgICAgInN1cHBvcnRlZC4iKTsKKyAgICAgb2Jq ZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywgIm9hcyIsCisgICAgICAg ICAiU3BlY2lmeSBPdXRwdXQgQWRkcmVzcyBTaXplIChmb3IgYWNjZWw9b24pLiBTdXBwb3J0ZWQg dmFsdWVzICIKKyAgICAgICAgICJhcmUgNDQgb3IgNDggYml0cy4gRGVmYXVsdHMgdG8gNDQgYml0 cyIpOworZGlmZiAtLWdpdCBhL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYyBiL2h3L2FybS92aXJ0 LWFjcGktYnVpbGQuYworaW5kZXggMTYwZjFkMTBlNS4uYjkyM2U5NjVkYSAxMDA2NDQKKy0tLSBh L2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYworKysrIGIvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5j CitAQCAtNDA4LDcgKzQwOCw3IEBAIHN0YXRpYyBpbnQgaW9ydF9zbW11djNfZGV2aWNlcyhPYmpl Y3QgKm9iaiwgdm9pZCAqb3BhcXVlKQorIAorICAgICBidXMgPSBQQ0lfQlVTKG9iamVjdF9wcm9w ZXJ0eV9nZXRfbGluayhvYmosICJwcmltYXJ5LWJ1cyIsICZlcnJvcl9hYm9ydCkpOworICAgICBz ZGV2LmFjY2VsID0gb2JqZWN0X3Byb3BlcnR5X2dldF9ib29sKG9iaiwgImFjY2VsIiwgJmVycm9y X2Fib3J0KTsKKy0gICAgc2Rldi5hdHMgPSBvYmplY3RfcHJvcGVydHlfZ2V0X2Jvb2wob2JqLCAi YXRzIiwgJmVycm9yX2Fib3J0KTsKKysgICAgc2Rldi5hdHMgPSBzbW11djNfYXRzX2VuYWJsZWQo QVJNX1NNTVVWMyhvYmopKTsKKyAgICAgcGJ1cyA9IFBMQVRGT1JNX0JVU19ERVZJQ0Uodm1zLT5w bGF0Zm9ybV9idXNfZGV2KTsKKyAgICAgc2JkZXYgPSBTWVNfQlVTX0RFVklDRShvYmopOworICAg ICBzZGV2LmJhc2UgPSBwbGF0Zm9ybV9idXNfZ2V0X21taW9fYWRkcihwYnVzLCBzYmRldiwgMCk7 CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLmggYi9pbmNsdWRlL2h3L2FybS9z bW11djMuaAoraW5kZXggMjZiMmZjNDJmZC4uY2U1MWE1YjliNCAxMDA2NDQKKy0tLSBhL2luY2x1 ZGUvaHcvYXJtL3NtbXV2My5oCisrKysgYi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorQEAgLTcw LDcgKzcwLDcgQEAgc3RydWN0IFNNTVV2M1N0YXRlIHsKKyAgICAgdWludDY0X3QgbXNpX2dwYTsK KyAgICAgRXJyb3IgKm1pZ3JhdGlvbl9ibG9ja2VyOworICAgICBib29sIHJpbDsKKy0gICAgYm9v bCBhdHM7CisrICAgIE9uT2ZmQXV0byBhdHM7CisgICAgIHVpbnQ4X3Qgb2FzOworICAgICB1aW50 OF90IHNzaWRzaXplOworIH07CitAQCAtOTEsNiArOTEsOCBAQCBzdHJ1Y3QgU01NVXYzQ2xhc3Mg eworICAgICBSZXNldHRhYmxlUGhhc2VzIHBhcmVudF9waGFzZXM7CisgfTsKKyAKKytib29sIHNt bXV2M19hdHNfZW5hYmxlZChzdHJ1Y3QgU01NVXYzU3RhdGUgKnMpOworKworICNkZWZpbmUgVFlQ RV9BUk1fU01NVVYzICAgImFybS1zbW11djMiCisgT0JKRUNUX0RFQ0xBUkVfVFlQRShTTU1VdjNT dGF0ZSwgU01NVXYzQ2xhc3MsIEFSTV9TTU1VVjMpCisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0t Z2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hhbmdlLW9hcy1wcm9wZXJ0eS10eXBlLXRv LU9hc00ucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGFuZ2Utb2FzLXByb3BlcnR5 LXR5cGUtdG8tT2FzTS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45 MGU4MjNmCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hhbmdl LW9hcy1wcm9wZXJ0eS10eXBlLXRvLU9hc00ucGF0Y2gKQEAgLTAsMCArMSwxNDUgQEAKK0Zyb20g OTc1NjQxMzIyM2Q3NDljMzM0ZTgyM2Q4ODVlN2E4OGM2NzgxZjJjNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE5hdGhhbiBDaGVuIDxuYXRoYW5jQG52aWRpYS5jb20+CitEYXRlOiBU dWUsIDI0IE1hciAyMDI2IDE0OjAyOjMwICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDYzLzExMV0g aHcvYXJtL3NtbXV2My1hY2NlbDogQ2hhbmdlICJvYXMiIHByb3BlcnR5IHR5cGUgdG8KKyBPYXNN b2RlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNN TVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJh OiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0 LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29t bWl0OiBbNjMvMTExXSBkODZmMmZkMWU5OGE4NWI1OTY5MGMxMzBiNzFlYjc5Y2VkZDE2ODZhIChl YXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFu Lm5ldC9icm93c2UvUkhFTC0xNjAxOTAKKworQ2hhbmdlIGFjY2VsIFNNTVV2MyBPQVMgcHJvcGVy dHkgZnJvbSB1aW50OF90IHRvIE9hc01vZGUuIFRoZQorJ2F1dG8nIHZhbHVlIGlzIG5vdCBpbXBs ZW1lbnRlZCwgYXMgdGhpcyBjb21taXQgaXMgbWVhbnQgdG8KK3NldCB0aGUgcHJvcGVydHkgdG8g dGhlIGNvcnJlY3QgdHlwZSBhbmQgYXZvaWQgYnJlYWtpbmcgSlNPTi9RTVAKK3doZW4gdGhlIGF1 dG8gbW9kZSBpcyBpbnRyb2R1Y2VkLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGltcGxlbWVudAorcmVz b2x1dGlvbiBvZiAnYXV0bycgdmFsdWUgdG8gbWF0Y2ggdGhlIGhvc3QgU01NVXYzIE9BUyB2YWx1 ZS4KKworVGhlIGNvbnZlcnNpb24gb2YgdGhlICJvYXMiIHByb3BlcnR5IHR5cGUgdG8gT25PZmZB dXRvIGlzIGFuCitpbmNvbXBhdGlibGUgY2hhbmdlIGZvciBKU09OL1FNUCB3aGVuIGEgdWludDhf dCB2YWx1ZSBpcyBleHBlY3RlZCBmb3IKKyJvYXMiLCBidXQgdGhpcyBwcm9wZXJ0eSBpcyBuZXcg aW4gMTEuMCBhbmQgdGhpcyBwYXRjaCBpcworc3VibWl0dGVkIGFzIGEgZml4IHRvIHRoZSBwcm9w ZXJ0eSB0eXBlLgorCitGaXhlczogYTAxNWFjOTkwZmQzICgiaHcvYXJtL3NtbXV2My1hY2NlbDog QWRkIHByb3BlcnR5IHRvIHNwZWNpZnkgT0FTIGJpdHMiKQorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK0Fja2VkLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhh dC5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgor TWVzc2FnZS1pZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC04LW5hdGhhbmNAbnZpZGlhLmNvbQor U2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYzJmZjEzMDVjYzdkYTdjZDQ1OTZmNDQwOTkzNmYy NTQ4OWVhMDM5NykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICAgICAgICB8ICAyICstCisgaHcv YXJtL3NtbXV2My5jICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysrLS0tLS0tLS0KKyBpbmNs dWRlL2h3L2FybS9zbW11djMtY29tbW9uLmggfCAgMiAtLQorIGluY2x1ZGUvaHcvYXJtL3NtbXV2 My5oICAgICAgICB8ICAyICstCisgNCBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3 L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggYmM2Y2JmZWJjMi4uNjVjMmY0NDg4MCAxMDA2NDQK Ky0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5j CitAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgc21tdXYzX2FjY2VsX2lkcl9vdmVycmlkZShTTU1V djNTdGF0ZSAqcykKKyAgICAgfQorIAorICAgICAvKiBBZHZlcnRpc2UgNDgtYml0IE9BUyBpbiBJ RFI1IHdoZW4gcmVxdWVzdGVkIChkZWZhdWx0IGlzIDQ0IGJpdHMpLiAqLworLSAgICBpZiAocy0+ b2FzID09IFNNTVVfT0FTXzQ4QklUKSB7CisrICAgIGlmIChzLT5vYXMgPT0gT0FTX01PREVfNDgp IHsKKyAgICAgICAgIHMtPmlkcls1XSA9IEZJRUxEX0RQMzIocy0+aWRyWzVdLCBJRFI1LCBPQVMs IFNNTVVfSURSNV9PQVNfNDgpOworICAgICB9CisgCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2 My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCA2NjU0NmRiZjllLi43OTUxZDg1ZWM5IDEwMDY0 NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC0xOTg0 LDYgKzE5ODQsMTEgQEAgc3RhdGljIGJvb2wgc21tdV92YWxpZGF0ZV9wcm9wZXJ0eShTTU1VdjNT dGF0ZSAqcywgRXJyb3IgKiplcnJwKQorICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAic3NpZHNp emUgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgfQorKyAgICBpZiAocy0+b2FzICE9IE9BU19NT0RFXzQ0ICYmIHMtPm9hcyAhPSBPQVNf TU9ERV80OCkgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiUUVNVSBTTU1VdjMgbW9kZWwg b25seSBpbXBsZW1lbnRzIDQ0IGFuZCA0OCBiaXQiCisrICAgICAgICAgICAgICAgICAgICJPQVM7 IG90aGVyIE9hc01vZGUgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkIik7CisrICAgICAgICByZXR1 cm4gZmFsc2U7CisrICAgIH0KKyAKKyAgICAgaWYgKCFzLT5hY2NlbCkgeworICAgICAgICAgaWYg KHMtPnJpbCA9PSBPTl9PRkZfQVVUT19PRkYpIHsKK0BAIC0xOTk0LDcgKzE5OTksNyBAQCBzdGF0 aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVy cnApCisgICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiYXRzIGNhbiBvbmx5IGJlIGVuYWJs ZWQgaWYgYWNjZWw9b24iKTsKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICB9 CistICAgICAgICBpZiAocy0+b2FzICE9IFNNTVVfT0FTXzQ0QklUKSB7CisrICAgICAgICBpZiAo cy0+b2FzID4gT0FTX01PREVfNDQpIHsKKyAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJP QVMgbXVzdCBiZSA0NCBiaXRzIHdoZW4gYWNjZWw9b2ZmIik7CisgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICAgICAgfQorQEAgLTIwMTIsMTEgKzIwMTcsNiBAQCBzdGF0aWMgYm9vbCBz bW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKKy0gICAgaWYgKHMtPm9hcyAhPSBTTU1VX09B U180NEJJVCAmJiBzLT5vYXMgIT0gU01NVV9PQVNfNDhCSVQpIHsKKy0gICAgICAgIGVycm9yX3Nl dGcoZXJycCwgIk9BUyBjYW4gb25seSBiZSBzZXQgdG8gNDQgb3IgNDggYml0cyIpOworLSAgICAg ICAgcmV0dXJuIGZhbHNlOworLSAgICB9CistCisgICAgIHJldHVybiB0cnVlOworIH0KKyAKK0BA IC0yMTQzLDcgKzIxNDMsNyBAQCBzdGF0aWMgY29uc3QgUHJvcGVydHkgc21tdXYzX3Byb3BlcnRp ZXNbXSA9IHsKKyAgICAgLyogUklMIGNhbiBiZSB0dXJuZWQgb2ZmIGZvciBhY2NlbCBjYXNlcyAq LworICAgICBERUZJTkVfUFJPUF9PTl9PRkZfQVVUTygicmlsIiwgU01NVXYzU3RhdGUsIHJpbCwg T05fT0ZGX0FVVE9fT04pLAorICAgICBERUZJTkVfUFJPUF9PTl9PRkZfQVVUTygiYXRzIiwgU01N VXYzU3RhdGUsIGF0cywgT05fT0ZGX0FVVE9fT0ZGKSwKKy0gICAgREVGSU5FX1BST1BfVUlOVDgo Im9hcyIsIFNNTVV2M1N0YXRlLCBvYXMsIDQ0KSwKKysgICAgREVGSU5FX1BST1BfT0FTX01PREUo Im9hcyIsIFNNTVV2M1N0YXRlLCBvYXMsIE9BU19NT0RFXzQ0KSwKKyAgICAgREVGSU5FX1BST1Bf U1NJRFNJWkVfTU9ERSgic3NpZHNpemUiLCBTTU1VdjNTdGF0ZSwgc3NpZHNpemUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1NJRF9TSVpFX01PREVfMCksCisgfTsKK0BAIC0yMTgw LDcgKzIxODAsOCBAQCBzdGF0aWMgdm9pZCBzbW11djNfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAq a2xhc3MsIGNvbnN0IHZvaWQgKmRhdGEpCisgICAgICAgICAic3VwcG9ydGVkLiIpOworICAgICBv YmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAib2FzIiwKKyAgICAg ICAgICJTcGVjaWZ5IE91dHB1dCBBZGRyZXNzIFNpemUgKGZvciBhY2NlbD1vbikuIFN1cHBvcnRl ZCB2YWx1ZXMgIgorLSAgICAgICAgImFyZSA0NCBvciA0OCBiaXRzLiBEZWZhdWx0cyB0byA0NCBi aXRzIik7CisrICAgICAgICAiYXJlIDQ0IG9yIDQ4IGJpdHMuIERlZmF1bHRzIHRvIDQ0IGJpdHMu IG9hcz1hdXRvIGlzIG5vdCAiCisrICAgICAgICAic3VwcG9ydGVkLiIpOworICAgICBvYmplY3Rf Y2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAic3NpZHNpemUiLAorICAgICAg ICAgIk51bWJlciBvZiBiaXRzIHVzZWQgdG8gcmVwcmVzZW50IFN1YnN0cmVhbUlEcyAoU1NJRHMp LiAiCisgICAgICAgICAiQSB2YWx1ZSBvZiBOIGFsbG93cyBTU0lEcyBpbiB0aGUgcmFuZ2UgWzAg Li4gMl5OIC0gMV0uICIKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9u LmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKK2luZGV4IDc1NDY0YjJmOTEuLmI0 NTU3ZDExN2YgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKKysr KyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAorQEAgLTM0Miw4ICszNDIsNiBAQCBS RUczMihJRFI1LCAgICAgICAgICAgICAgICAweDE0KQorICAgICAgRklFTEQoSURSNSwgVkFYLCAg ICAgICAgMTAsIDIpOworICAgICAgRklFTEQoSURSNSwgU1RBTExfTUFYLCAgMTYsIDE2KTsKKyAK Ky0jZGVmaW5lIFNNTVVfT0FTXzQ0QklUIDQ0CistI2RlZmluZSBTTU1VX09BU180OEJJVCA0OAor ICNkZWZpbmUgU01NVV9JRFI1X09BU180NCA0CisgI2RlZmluZSBTTU1VX0lEUjVfT0FTXzQ4IDUK KyAKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaCBiL2luY2x1ZGUvaHcvYXJt L3NtbXV2My5oCitpbmRleCBkZGY0NzI0OTNkLi44MmYxOGViMDkwIDEwMDY0NAorLS0tIGEvaW5j bHVkZS9ody9hcm0vc21tdXYzLmgKKysrKyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitAQCAt NzIsNyArNzIsNyBAQCBzdHJ1Y3QgU01NVXYzU3RhdGUgeworICAgICBFcnJvciAqbWlncmF0aW9u X2Jsb2NrZXI7CisgICAgIE9uT2ZmQXV0byByaWw7CisgICAgIE9uT2ZmQXV0byBhdHM7CistICAg IHVpbnQ4X3Qgb2FzOworKyAgICBPYXNNb2RlIG9hczsKKyAgICAgU3NpZFNpemVNb2RlIHNzaWRz aXplOworIH07CisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11 djMtYWNjZWwtQ2hhbmdlLXJpbC1wcm9wZXJ0eS10eXBlLXRvLU9uT2YucGF0Y2ggYi9rdm0taHct YXJtLXNtbXV2My1hY2NlbC1DaGFuZ2UtcmlsLXByb3BlcnR5LXR5cGUtdG8tT25PZi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2JmM2JiCi0tLSAvZGV2L251bGwK KysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hhbmdlLXJpbC1wcm9wZXJ0eS10eXBlLXRv LU9uT2YucGF0Y2gKQEAgLTAsMCArMSwxMTcgQEAKK0Zyb20gZjQ4ZTAzOGE1MDUwNTg4MzAzODQz M2E5MTE1OGFlNzBmNGRkYWY0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hdGhh biBDaGVuIDxuYXRoYW5jQG52aWRpYS5jb20+CitEYXRlOiBUdWUsIDI0IE1hciAyMDI2IDE0OjAy OjI5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDU5LzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDog Q2hhbmdlICJyaWwiIHByb3BlcnR5IHR5cGUgdG8KKyBPbk9mZkF1dG8KK01JTUUtVmVyc2lvbjog MS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2Vs ZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1B Y2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6 IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs1OS8xMTFdIDkxZjYy NThlOWExN2FlNzYxZjBlYjk0NDRjZTNjYWE2NWU5ZDJlMGYgKGVhdWdlcjEvY2VudG9zLXFlbXUt a3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTE2 MDE5MAorCitDaGFuZ2UgYWNjZWwgU01NVXYzIFJJTCBwcm9wZXJ0eSBmcm9tIGJvb2wgdG8gT25P ZmZBdXRvLiBUaGUgJ2F1dG8nCit2YWx1ZSBpcyBub3QgaW1wbGVtZW50ZWQsIGFzIHRoaXMgY29t bWl0IGlzIG1lYW50IHRvIHNldCB0aGUgcHJvcGVydHkKK3RvIHRoZSBjb3JyZWN0IHR5cGUgYW5k IGF2b2lkIGJyZWFraW5nIEpTT04vUU1QIHdoZW4gdGhlIGF1dG8gbW9kZSBpcworaW50cm9kdWNl ZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBpbXBsZW1lbnQgcmVzb2x1dGlvbiBvZiB0aGUgJ2F1dG8n Cit2YWx1ZSB0byBtYXRjaCB0aGUgaG9zdCBTTU1VdjMgUklMIHN1cHBvcnQuCisKK1RoZSBjb252 ZXJzaW9uIG9mIHRoZSBSSUwgcHJvcGVydHkgdHlwZSB0byBPbk9mZkF1dG8gaXMgYW4KK2luY29t cGF0aWJsZSBjaGFuZ2UgZm9yIEpTT04vUU1QIHdoZW4gYSBib29sIHZhbHVlIGlzIGV4cGVjdGVk IGZvcgorInJpbCIsIGJ1dCB0aGUgInJpbCIgcHJvcGVydHkgaXMgbmV3IGluIDExLjAgYW5kIHRo aXMgcGF0Y2ggaXMKK3N1Ym1pdHRlZCBhcyBhIGZpeCB0byB0aGUgcHJvcGVydHkgdHlwZS4KKwor Rml4ZXM6IGJkNzE1ZmY1YmRhOSAoImh3L2FybS9zbW11djMtYWNjZWw6IEFkZCBhIHByb3BlcnR5 IHRvIHNwZWNpZnkgUklMIHN1cHBvcnQiKQorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1 Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVt dGhvQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRo b0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KK0Fja2VkLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhhdC5jb20+CitT aWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorTWVzc2FnZS1p ZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC00LW5hdGhhbmNAbnZpZGlhLmNvbQorU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgMWE3NmNjMzkzMzNjNzg3MGVlMzQwNzVjMjI5NWEyOGU1M2QxYjFi YSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0t LQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgIHwgIDYgKysrKy0tCisgaHcvYXJtL3NtbXV2My5j ICAgICAgICAgfCAxMSArKysrKysrKy0tLQorIGluY2x1ZGUvaHcvYXJtL3NtbXV2My5oIHwgIDIg Ky0KKyAzIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2Vs LmMKK2luZGV4IGYyMWE2YTk5OTcuLmMzMWI2NDI5NWUgMTAwNjQ0CistLS0gYS9ody9hcm0vc21t dXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTgyMyw4ICs4MjMs MTAgQEAgdm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNNTVV2M1N0YXRlICpzKQorICAg ICAgICAgcmV0dXJuOworICAgICB9CisgCistICAgIC8qIEJ5IGRlZmF1bHQgUUVNVSBTTU1VdjMg aGFzIFJJTC4gVXBkYXRlIElEUjMgaWYgdXNlciBoYXMgZGlzYWJsZWQgaXQgKi8KKy0gICAgcy0+ aWRyWzNdID0gRklFTERfRFAzMihzLT5pZHJbM10sIElEUjMsIFJJTCwgcy0+cmlsKTsKKysgICAg LyogT25seSBvdmVycmlkZSBSSUwgaWYgdXNlciBleHBsaWNpdGx5IHNldCBPRkYgKi8KKysgICAg aWYgKHMtPnJpbCA9PSBPTl9PRkZfQVVUT19PRkYpIHsKKysgICAgICAgIHMtPmlkclszXSA9IEZJ RUxEX0RQMzIocy0+aWRyWzNdLCBJRFIzLCBSSUwsIDApOworKyAgICB9CisgCisgICAgIC8qIFFF TVUgU01NVXYzIGhhcyBubyBBVFMuIEFkdmVydGlzZSBBVFMgaWYgb3B0LWluIGJ5IHByb3BlcnR5 ICovCisgICAgIGlmIChzLT5hdHMgPT0gT05fT0ZGX0FVVE9fT04pIHsKK2RpZmYgLS1naXQgYS9o dy9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IDZmOGQwOTNmNTEuLmE3ZTYw NmM5NjYgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMu YworQEAgLTE5NzUsOSArMTk3NSwxMyBAQCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3Bl cnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICBlcnJvcl9zZXRnKGVy cnAsICJhdHMgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICAgfQorKyAgICBpZiAocy0+cmlsID09IE9OX09GRl9BVVRPX0FVVE8pIHsKKysg ICAgICAgIGVycm9yX3NldGcoZXJycCwgInJpbCBhdXRvIG1vZGUgaXMgbm90IHN1cHBvcnRlZCIp OworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisgCisgICAgIGlmICghcy0+YWNjZWwp IHsKKy0gICAgICAgIGlmICghcy0+cmlsKSB7CisrICAgICAgICBpZiAocy0+cmlsID09IE9OX09G Rl9BVVRPX09GRikgeworICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgInJpbCBjYW4gb25s eSBiZSBkaXNhYmxlZCBpZiBhY2NlbD1vbiIpOworICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgIH0KK0BAIC0yMTM3LDcgKzIxNDEsNyBAQCBzdGF0aWMgY29uc3QgUHJvcGVydHkg c21tdXYzX3Byb3BlcnRpZXNbXSA9IHsKKyAgICAgLyogR1BBIG9mIE1TSSBkb29yYmVsbCwgZm9y IFNNTVV2MyBhY2NlbCB1c2UuICovCisgICAgIERFRklORV9QUk9QX1VJTlQ2NCgibXNpLWdwYSIs IFNNTVV2M1N0YXRlLCBtc2lfZ3BhLCAwKSwKKyAgICAgLyogUklMIGNhbiBiZSB0dXJuZWQgb2Zm IGZvciBhY2NlbCBjYXNlcyAqLworLSAgICBERUZJTkVfUFJPUF9CT09MKCJyaWwiLCBTTU1VdjNT dGF0ZSwgcmlsLCB0cnVlKSwKKysgICAgREVGSU5FX1BST1BfT05fT0ZGX0FVVE8oInJpbCIsIFNN TVV2M1N0YXRlLCByaWwsIE9OX09GRl9BVVRPX09OKSwKKyAgICAgREVGSU5FX1BST1BfT05fT0ZG X0FVVE8oImF0cyIsIFNNTVV2M1N0YXRlLCBhdHMsIE9OX09GRl9BVVRPX09GRiksCisgICAgIERF RklORV9QUk9QX1VJTlQ4KCJvYXMiLCBTTU1VdjNTdGF0ZSwgb2FzLCA0NCksCisgICAgIERFRklO RV9QUk9QX1VJTlQ4KCJzc2lkc2l6ZSIsIFNNTVV2M1N0YXRlLCBzc2lkc2l6ZSwgMCksCitAQCAt MjE2Nyw3ICsyMTcxLDggQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2luaXQoT2JqZWN0Q2xh c3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICAgICAgIkVuYWJsZSBTTU1VdjMgYWNj ZWxlcmF0b3Igc3VwcG9ydC4gQWxsb3dzIGhvc3QgU01NVXYzIHRvIGJlICIKKyAgICAgICAgICJj b25maWd1cmVkIGluIG5lc3RlZCBtb2RlIGZvciB2ZmlvLXBjaSBkZXYgYXNzaWdubWVudCIpOwor ICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAicmlsIiwK Ky0gICAgICAgICJEaXNhYmxlIHJhbmdlIGludmFsaWRhdGlvbiBzdXBwb3J0IChmb3IgYWNjZWw9 b24pIik7CisrICAgICAgICAiRGlzYWJsZSByYW5nZSBpbnZhbGlkYXRpb24gc3VwcG9ydCAoZm9y IGFjY2VsPW9uKS4gcmlsPWF1dG8gIgorKyAgICAgICAgImlzIG5vdCBzdXBwb3J0ZWQuIik7Cisg ICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9zZXRfZGVzY3JpcHRpb24oa2xhc3MsICJhdHMiLAor ICAgICAgICAgIkVuYWJsZS9kaXNhYmxlIEFUUyBzdXBwb3J0IChmb3IgYWNjZWw9b24pLiBQbGVh c2UgZW5zdXJlIGhvc3QgIgorICAgICAgICAgInBsYXRmb3JtIGhhcyBBVFMgc3VwcG9ydCBiZWZv cmUgZW5hYmxpbmcgdGhpcy4gYXRzPWF1dG8gaXMgbm90ICIKK2RpZmYgLS1naXQgYS9pbmNsdWRl L2h3L2FybS9zbW11djMuaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitpbmRleCBjZTUxYTVi OWI0Li5jMzVlNTk5YmJjIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKKysr KyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgU01N VXYzU3RhdGUgeworICAgICBzdHJ1Y3QgU01NVXYzQWNjZWxTdGF0ZSAqc19hY2NlbDsKKyAgICAg dWludDY0X3QgbXNpX2dwYTsKKyAgICAgRXJyb3IgKm1pZ3JhdGlvbl9ibG9ja2VyOworLSAgICBi b29sIHJpbDsKKysgICAgT25PZmZBdXRvIHJpbDsKKyAgICAgT25PZmZBdXRvIGF0czsKKyAgICAg dWludDhfdCBvYXM7CisgICAgIHVpbnQ4X3Qgc3NpZHNpemU7CistLSAKKzIuNTIuMAorCgpkaWZm IC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hhbmdlLXNzaWRzaXplLXByb3BlcnR5 LXR5cGUtdG8ucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGFuZ2Utc3NpZHNpemUt cHJvcGVydHktdHlwZS10by5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li44ZDk2MGE4Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hh bmdlLXNzaWRzaXplLXByb3BlcnR5LXR5cGUtdG8ucGF0Y2gKQEAgLTAsMCArMSwyMDYgQEAKK0Zy b20gMDM0YmIwNzAwNjk1Y2QwZjNkYWM2NmEwNDU0OWNmMTQ5YjFiYjkyMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IE5hdGhhbiBDaGVuIDxuYXRoYW5jQG52aWRpYS5jb20+CitEYXRl OiBUdWUsIDI0IE1hciAyMDI2IDE0OjAyOjI5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDYxLzEx MV0gaHcvYXJtL3NtbXV2My1hY2NlbDogQ2hhbmdlICJzc2lkc2l6ZSIgcHJvcGVydHkgdHlwZQor IHRvIFNzaWRTaXplTW9kZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitS SC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVx dWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3Vw cG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03 Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRl ciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0 LmNvbT4KK1JILUNvbW1pdDogWzYxLzExMV0gYmE0YTFmMTc1OGE3YTEzZDM2Y2FjNjg4MWZhNTJk OTdhNWZkZWYwOSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVk aGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtMTYwMTkwCisKK0NvbmZsaWN0czogY29udGV4 dHVhbCBjb25mbGljdCBpbiBody9hcm0vc21tdXYzLmMgYmVjYXVzZSB3ZSBrZWVwIG9uCit1c2lu ZyBoZWFkZXJzIGluIGh3IGRpcmVjdG9yeSBhbmQgbm90IGluIGh3L2NvcmUKKworQ2hhbmdlIGFj Y2VsIFNNTVV2MyBTU0lEU0laRSBwcm9wZXJ0eSBmcm9tIHVpbnQ4X3QgdG8gU3NpZFNpemVNb2Rl LgorVGhlICdhdXRvJyB2YWx1ZSBpcyBub3QgaW1wbGVtZW50ZWQsIGFzIHRoaXMgY29tbWl0IGlz IG1lYW50IHRvIHNldCB0aGUKK3Byb3BlcnR5IHRvIHRoZSBjb3JyZWN0IHR5cGUgYW5kIGF2b2lk IGJyZWFraW5nIEpTT04vUU1QIHdoZW4gdGhlIGF1dG8KK21vZGUgaXMgaW50cm9kdWNlZC4gQSBm dXR1cmUgcGF0Y2ggd2lsbCBpbXBsZW1lbnQgcmVzb2x1dGlvbiBvZiAnYXV0bycKK3ZhbHVlIHRv IG1hdGNoIHRoZSBob3N0IFNNTVV2MyBTU0lEU0laRSB2YWx1ZS4KKworVGhlIGNvbnZlcnNpb24g b2YgdGhlICJzc2lkc2l6ZSIgcHJvcGVydHkgdHlwZSB0byBPbk9mZkF1dG8gaXMgYW4KK2luY29t cGF0aWJsZSBjaGFuZ2UgZm9yIEpTT04vUU1QIHdoZW4gYSB1aW50OF90IHZhbHVlIGlzIGV4cGVj dGVkIGZvcgorInNzaWRzaXplIiwgYnV0IHRoaXMgcHJvcGVydHkgaXMgbmV3IGluIDExLjAgYW5k IHRoaXMgcGF0Y2ggaXMKK3N1Ym1pdHRlZCBhcyBhIGZpeCB0byB0aGUgcHJvcGVydHkgdHlwZS4K KworRml4ZXM6IGI4YzZmOGE2OWQyNyAoImh3L2FybS9zbW11djMtYWNjZWw6IE1ha2UgU3Vic3Ry ZWFtSUQgc3VwcG9ydCBjb25maWd1cmFibGUiKQorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90 aHVtdGhvQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZp ZGlhLmNvbT4KK0Fja2VkLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhhdC5jb20+ CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorTWVzc2Fn ZS1pZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC02LW5hdGhhbmNAbnZpZGlhLmNvbQorU2lnbmVk LW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgZmZkZWQ4NmJkZGE2MTcxZmVhMTc3MTE5OWYzZjBjOWUwNjAx MDI5ZikKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K Ky0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICAgICAgICB8IDIzICsrKysrKysrKysrKysr KysrKysrKy0tCisgaHcvYXJtL3NtbXV2My5jICAgICAgICAgICAgICAgIHwgMTkgKysrKysrKysr Ky0tLS0tLS0tLQorIGluY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaCB8ICAxIC0KKyBpbmNs dWRlL2h3L2FybS9zbW11djMuaCAgICAgICAgfCAgMyArKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDMz IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3Nt bXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCBjMzFiNjQyOTVlLi5i YzZjYmZlYmMyIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysgYi9ody9h cm0vc21tdXYzLWFjY2VsLmMKK0BAIC04MDIsNyArODAyLDcgQEAgc3RhdGljIHVpbnQ2NF90IHNt bXV2M19hY2NlbF9nZXRfdmlvbW11X2ZsYWdzKHZvaWQgKm9wYXF1ZSkKKyAgICAgU01NVVN0YXRl ICpicyA9IG9wYXF1ZTsKKyAgICAgU01NVXYzU3RhdGUgKnMgPSBBUk1fU01NVVYzKGJzKTsKKyAK Ky0gICAgaWYgKHMtPnNzaWRzaXplKSB7CisrICAgIGlmIChzLT5zc2lkc2l6ZSA+IFNTSURfU0la RV9NT0RFXzApIHsKKyAgICAgICAgIGZsYWdzIHw9IFZJT01NVV9GTEFHX1BBU0lEX1NVUFBPUlRF RDsKKyAgICAgfQorICAgICByZXR1cm4gZmxhZ3M7CitAQCAtODE3LDYgKzgxNywyMiBAQCBzdGF0 aWMgY29uc3QgUENJSU9NTVVPcHMgc21tdXYzX2FjY2VsX29wcyA9IHsKKyAgICAgLmdldF9tc2lf ZGlyZWN0X2dwYSA9IHNtbXV2M19hY2NlbF9nZXRfbXNpX2dwYSwKKyB9OworIAorKy8qCisrICog VGhpcyByZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIFNzaWRTaXplTW9kZSB2YWx1ZSBvZmZzZXQgYnkg MSB0bworKyAqIGFjY291bnQgZm9yIHRoZSBlbnVtIHZhbHVlcyBvZmZzZXQgYnkgMSBmcm9tIGFj dHVhbCB2YWx1ZXMuCisrICoKKysgKiBTU0lEX1NJWkVfTU9ERV8wID0gMSwgU1NJRF9TSVpFX01P REVfMSA9IDIsIGV0Yy4gc28gcmV0dXJuIDAKKysgKiBpZiBTU0lEX1NJWkVfTU9ERV8wIGlzIHBh c3NlZCBhcyBpbnB1dCwgcmV0dXJuIDEgaWYKKysgKiBTU0lEX1NJWkVfTU9ERV8xIGlzIHBhc3Nl ZCBhcyBpbnB1dCwgZXRjLgorKyAqLworK3N0YXRpYyB1aW50OF90IHNzaWRzaXplX21vZGVfdG9f dmFsdWUoU3NpZFNpemVNb2RlIG1vZGUpCisreworKyAgICBpZiAobW9kZSA9PSBTU0lEX1NJWkVf TU9ERV9BVVRPKSB7CisrICAgICAgICByZXR1cm4gMDsKKysgICAgfQorKyAgICByZXR1cm4gbW9k ZSAtIDE7CisrfQorKworIHZvaWQgc21tdXYzX2FjY2VsX2lkcl9vdmVycmlkZShTTU1VdjNTdGF0 ZSAqcykKKyB7CisgICAgIGlmICghcy0+YWNjZWwpIHsKK0BAIC04NDIsNyArODU4LDEwIEBAIHZv aWQgc21tdXYzX2FjY2VsX2lkcl9vdmVycmlkZShTTU1VdjNTdGF0ZSAqcykKKyAgICAgICogQnkg ZGVmYXVsdCBRRU1VIFNNTVV2MyBoYXMgbm8gU3Vic3RyZWFtSUQgc3VwcG9ydC4gVXBkYXRlIElE UjEgaWYgdXNlcgorICAgICAgKiBoYXMgZW5hYmxlZCBpdC4KKyAgICAgICovCistICAgIHMtPmlk clsxXSA9IEZJRUxEX0RQMzIocy0+aWRyWzFdLCBJRFIxLCBTU0lEU0laRSwgcy0+c3NpZHNpemUp OworKyAgICBpZiAocy0+c3NpZHNpemUgPiBTU0lEX1NJWkVfTU9ERV8wKSB7CisrICAgICAgICBz LT5pZHJbMV0gPSBGSUVMRF9EUDMyKHMtPmlkclsxXSwgSURSMSwgU1NJRFNJWkUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNzaWRzaXplX21vZGVfdG9fdmFsdWUocy0+c3NpZHNp emUpKTsKKysgICAgfQorIH0KKyAKKyAvKiBCYXNlZCBvbiBTTVVVdjMgR1BCQS5BQk9SVCBjb25m aWd1cmF0aW9uLCBhdHRhY2ggYSBjb3JyZXNwb25kaW5nIEhXUFQgKi8KK2RpZmYgLS1naXQgYS9o dy9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IGE3ZTYwNmM5NjYuLjY2NTQ2 ZGJmOWUgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMu YworQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAicWVtdS9iaXRvcHMuaCIKKyAjaW5jbHVk ZSAiaHcvaXJxLmgiCisgI2luY2x1ZGUgImh3L3N5c2J1cy5oIgorKyNpbmNsdWRlICJody9xZGV2 LXByb3BlcnRpZXMtc3lzdGVtLmgiCisgI2luY2x1ZGUgIm1pZ3JhdGlvbi9ibG9ja2VyLmgiCisg I2luY2x1ZGUgIm1pZ3JhdGlvbi92bXN0YXRlLmgiCisgI2luY2x1ZGUgImh3L3FkZXYtcHJvcGVy dGllcy5oIgorQEAgLTYyNSw3ICs2MjYsNyBAQCBzdGF0aWMgaW50IGRlY29kZV9zdGUoU01NVXYz U3RhdGUgKnMsIFNNTVVUcmFuc0NmZyAqY2ZnLAorICAgICB9CisgCisgICAgIC8qIE11bHRpcGxl IGNvbnRleHQgZGVzY3JpcHRvcnMgcmVxdWlyZSBTdWJzdHJlYW1JRCBzdXBwb3J0ICovCistICAg IGlmICghcy0+c3NpZHNpemUgJiYgU1RFX1MxQ0RNQVgoc3RlKSAhPSAwKSB7CisrICAgIGlmIChz LT5zc2lkc2l6ZSA9PSBTU0lEX1NJWkVfTU9ERV8wICYmIFNURV9TMUNETUFYKHN0ZSkgIT0gMCkg eworICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfVU5JTVAsCisgICAgICAgICAgICAgICAgICJT TU1VdjM6IG11bHRpcGxlIFMxIGNvbnRleHQgZGVzY3JpcHRvcnMgcmVxdWlyZSBTdWJzdHJlYW1J RCBzdXBwb3J0LiAiCisgICAgICAgICAgICAgICAgICJDb25maWd1cmUgc3NpZHNpemUgPiAwIChy ZXF1aXJlcyBhY2NlbD1vbilcbiIpOworQEAgLTE5NzksNiArMTk4MCwxMCBAQCBzdGF0aWMgYm9v bCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisg ICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJyaWwgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQi KTsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorKyAgICBpZiAocy0+c3NpZHNpemUg PT0gU1NJRF9TSVpFX01PREVfQVVUTykgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAic3Np ZHNpemUgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKysgICAgICAgIHJldHVybiBmYWxz ZTsKKysgICAgfQorIAorICAgICBpZiAoIXMtPmFjY2VsKSB7CisgICAgICAgICBpZiAocy0+cmls ID09IE9OX09GRl9BVVRPX09GRikgeworQEAgLTE5OTMsNyArMTk5OCw3IEBAIHN0YXRpYyBib29s IHNtbXVfdmFsaWRhdGVfcHJvcGVydHkoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyAg ICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJPQVMgbXVzdCBiZSA0NCBiaXRzIHdoZW4gYWNj ZWw9b2ZmIik7CisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgfQorLSAgICAg ICAgaWYgKHMtPnNzaWRzaXplKSB7CisrICAgICAgICBpZiAocy0+c3NpZHNpemUgPiBTU0lEX1NJ WkVfTU9ERV8wKSB7CisgICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAic3NpZHNpemUgY2Fu IG9ubHkgYmUgc2V0IGlmIGFjY2VsPW9uIik7CisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICAgfQorQEAgLTIwMTEsMTEgKzIwMTYsNiBAQCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlk YXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICBlcnJv cl9zZXRnKGVycnAsICJPQVMgY2FuIG9ubHkgYmUgc2V0IHRvIDQ0IG9yIDQ4IGJpdHMiKTsKKyAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorLSAgICBpZiAocy0+c3NpZHNpemUgPiBTTU1V X1NTSURfTUFYX0JJVFMpIHsKKy0gICAgICAgIGVycm9yX3NldGcoZXJycCwgInNzaWRzaXplIG11 c3QgYmUgaW4gdGhlIHJhbmdlIDAgdG8gJWQiLAorLSAgICAgICAgICAgICAgICAgICBTTU1VX1NT SURfTUFYX0JJVFMpOworLSAgICAgICAgcmV0dXJuIGZhbHNlOworLSAgICB9CisgCisgICAgIHJl dHVybiB0cnVlOworIH0KK0BAIC0yMTQ0LDcgKzIxNDQsOCBAQCBzdGF0aWMgY29uc3QgUHJvcGVy dHkgc21tdXYzX3Byb3BlcnRpZXNbXSA9IHsKKyAgICAgREVGSU5FX1BST1BfT05fT0ZGX0FVVE8o InJpbCIsIFNNTVV2M1N0YXRlLCByaWwsIE9OX09GRl9BVVRPX09OKSwKKyAgICAgREVGSU5FX1BS T1BfT05fT0ZGX0FVVE8oImF0cyIsIFNNTVV2M1N0YXRlLCBhdHMsIE9OX09GRl9BVVRPX09GRiks CisgICAgIERFRklORV9QUk9QX1VJTlQ4KCJvYXMiLCBTTU1VdjNTdGF0ZSwgb2FzLCA0NCksCist ICAgIERFRklORV9QUk9QX1VJTlQ4KCJzc2lkc2l6ZSIsIFNNTVV2M1N0YXRlLCBzc2lkc2l6ZSwg MCksCisrICAgIERFRklORV9QUk9QX1NTSURTSVpFX01PREUoInNzaWRzaXplIiwgU01NVXYzU3Rh dGUsIHNzaWRzaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTSURfU0laRV9N T0RFXzApLAorIH07CisgCisgc3RhdGljIHZvaWQgc21tdXYzX2luc3RhbmNlX2luaXQoT2JqZWN0 ICpvYmopCitAQCAtMjE4NSw3ICsyMTg2LDcgQEAgc3RhdGljIHZvaWQgc21tdXYzX2NsYXNzX2lu aXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAgICAgICAgIkEgdmFs dWUgb2YgTiBhbGxvd3MgU1NJRHMgaW4gdGhlIHJhbmdlIFswIC4uIDJeTiAtIDFdLiAiCisgICAg ICAgICAiVmFsaWQgcmFuZ2UgaXMgMC0yMCwgd2hlcmUgMCBkaXNhYmxlcyBTdWJzdHJlYW1JRCBz dXBwb3J0LiAiCisgICAgICAgICAiRGVmYXVsdHMgdG8gMC4gQSB2YWx1ZSBncmVhdGVyIHRoYW4g MCBpcyByZXF1aXJlZCB0byBlbmFibGUgIgorLSAgICAgICAgIlBBU0lEIHN1cHBvcnQuIik7Cisr ICAgICAgICAiUEFTSUQgc3VwcG9ydC4gc3NpZHNpemU9YXV0byBpcyBub3Qgc3VwcG9ydGVkLiIp OworIH0KKyAKKyBzdGF0aWMgaW50IHNtbXV2M19ub3RpZnlfZmxhZ19jaGFuZ2VkKElPTU1VTWVt b3J5UmVnaW9uICppb21tdSwKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29t bW9uLmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKK2luZGV4IGYxZDc0ZDY4MzIu Ljc1NDY0YjJmOTEgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgK KysrKyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAorQEAgLTMxMSw3ICszMTEsNiBA QCBSRUczMihJRFIxLCAgICAgICAgICAgICAgICAweDQpCisgICAgIEZJRUxEKElEUjEsIFRBQkxF U19QUkVTRVQsIDMwLCAxKQorICAgICBGSUVMRChJRFIxLCBFQ01EUSwgICAgICAgIDMxLCAxKQor IAorLSNkZWZpbmUgU01NVV9TU0lEX01BWF9CSVRTIDIwCisgI2RlZmluZSBTTU1VX0lEUjFfU0lE U0laRSAxNgorICNkZWZpbmUgU01NVV9DTURRUyAgIDE5CisgI2RlZmluZSBTTU1VX0VWRU5UUVMg MTkKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaCBiL2luY2x1ZGUvaHcvYXJt L3NtbXV2My5oCitpbmRleCBjMzVlNTk5YmJjLi5kZGY0NzI0OTNkIDEwMDY0NAorLS0tIGEvaW5j bHVkZS9ody9hcm0vc21tdXYzLmgKKysrKyBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oCitAQCAt MjEsNiArMjEsNyBAQAorIAorICNpbmNsdWRlICJody9hcm0vc21tdS1jb21tb24uaCIKKyAjaW5j bHVkZSAicW9tL29iamVjdC5oIgorKyNpbmNsdWRlICJxYXBpL3FhcGktdHlwZXMtbWlzYy1hcm0u aCIKKyAKKyAjZGVmaW5lIFRZUEVfU01NVVYzX0lPTU1VX01FTU9SWV9SRUdJT04gInNtbXV2My1p b21tdS1tZW1vcnktcmVnaW9uIgorIAorQEAgLTcyLDcgKzczLDcgQEAgc3RydWN0IFNNTVV2M1N0 YXRlIHsKKyAgICAgT25PZmZBdXRvIHJpbDsKKyAgICAgT25PZmZBdXRvIGF0czsKKyAgICAgdWlu dDhfdCBvYXM7CistICAgIHVpbnQ4X3Qgc3NpZHNpemU7CisrICAgIFNzaWRTaXplTW9kZSBzc2lk c2l6ZTsKKyB9OworIAorIHR5cGVkZWYgZW51bSB7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0 IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hlY2stQVRTLWNvbXBhdGliaWxpdHktYmV0d2Vl bi0ucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGVjay1BVFMtY29tcGF0aWJpbGl0 eS1iZXR3ZWVuLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Njhj Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hlY2stQVRT LWNvbXBhdGliaWxpdHktYmV0d2Vlbi0ucGF0Y2gKQEAgLTAsMCArMSw1NiBAQAorRnJvbSAzNzZm ZjNkNjVjYjQyMGMwNjI5ZWNlYWQ2YWNlZmEzYzE3ZDEyN2I1IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwg MjQgTWFyIDIwMjYgMTQ6MDI6MjkgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwNTcvMTExXSBody9h cm0vc21tdXYzLWFjY2VsOiBDaGVjayBBVFMgY29tcGF0aWJpbGl0eSBiZXR3ZWVuCisgaG9zdCBh bmQgZ3Vlc3QKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9y OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUw NTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JI LUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0By ZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitS SC1Db21taXQ6IFs1Ny8xMTFdIDYzZDBjYTkxYjQ3MWNiNjY0NjQyMjZlMTA0MTYyZTBmYzlkMmEx OWMgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxh c3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTE2MDE5MAorCitDb21wYXJlIHRoZSBob3N0IFNNTVV2MyBB VFMgc3VwcG9ydCBiaXQgd2l0aCB0aGUgZ3Vlc3QgU01NVXYzIEFUUyBzdXBwb3J0CitiaXQgaW4g SURSMCBhbmQgZmFpbCB0aGUgY29tcGF0aWJpbGl0eSBjaGVjayBpZiBBVFMgc3VwcG9ydCBpcyBv cHRlZCBhcworZW5hYmxlZCBvbiB0aGUgZ3Vlc3QgU01NVXYzIHdoZW4gaXQgaXMgbm90IHN1cHBv cnRlZCBvbiBob3N0IFNNTVV2My4KKworRml4ZXM6IGY3ZjUwMTNhNTVhMyAoImh3L2FybS9zbW11 djMtYWNjZWw6IEFkZCBzdXBwb3J0IGZvciBBVFMiKQorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIg PGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRo b0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9A bnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IE5hdGhhbiBDaGVuIDxuYXRoYW5jQG52aWRpYS5j b20+CitNZXNzYWdlLWlkOiAyMDI2MDMyMzE4MjQ1NC4xNDE2MTEwLTItbmF0aGFuY0BudmlkaWEu Y29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5v cmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkYzg2ZDQ1MjMyNDQ0ZTc1ZjFiNDU2OWZh ZGEwYTczYjVkYzIwOWI0KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3NtbXV2My1hY2NlbC5jIHwgNiArKysrKysKKyAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYz LWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IDE3MzA2Y2QwNGIuLjJiYjE0 MmM0N2YgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9z bW11djMtYWNjZWwuYworQEAgLTEwMSw2ICsxMDEsMTIgQEAgc21tdXYzX2FjY2VsX2NoZWNrX2h3 X2NvbXBhdGlibGUoU01NVXYzU3RhdGUgKnMsCisgICAgICAgICAgICAgICAgICAgIHNtbXV2M19v YXNfYml0cyhGSUVMRF9FWDMyKHMtPmlkcls1XSwgSURSNSwgT0FTKSkpOworICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICB9CisrICAgIC8qIENoZWNrIEFUUyB2YWx1ZSBvcHRlZCBpcyBjb21w YXRpYmxlIHdpdGggSG9zdCBTTU1VdjMgKi8KKysgICAgaWYgKEZJRUxEX0VYMzIoaW5mby0+aWRy WzBdLCBJRFIwLCBBVFMpIDwKKysgICAgICAgICAgICAgICAgRklFTERfRVgzMihzLT5pZHJbMF0s IElEUjAsIEFUUykpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkhvc3QgU01NVXYzIGRv ZXNuJ3Qgc3VwcG9ydCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNlcnZpY2VzIik7CisrICAgICAgICBy ZXR1cm4gZmFsc2U7CisrICAgIH0KKyAKKyAgICAgLyogUUVNVSBTTU1VdjMgc3VwcG9ydHMgR1JB TjRLL0dSQU4xNksvR1JBTjY0SyB0cmFuc2xhdGlvbiBncmFudWxlcyAqLworICAgICBpZiAoRklF TERfRVgzMihpbmZvLT5pZHJbNV0sIElEUjUsIEdSQU40SykgIT0KKy0tIAorMi41Mi4wCisKCmRp ZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1FbmZvcmNlLXZpb21tdS1hc3NvY2lh dGlvbi13aGVuLS5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUVuZm9yY2UtdmlvbW11 LWFzc29jaWF0aW9uLXdoZW4tLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmE0ZWZjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1F bmZvcmNlLXZpb21tdS1hc3NvY2lhdGlvbi13aGVuLS5wYXRjaApAQCAtMCwwICsxLDk4IEBACitG cm9tIGU1MTI5ZjcwZTA3N2MyM2U0NGUxYTM3YzVmOTlmYzhlOWZkYzZiZGIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlh LmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTo1MCArMDEwMAorU3ViamVjdDogW1BB VENIIDEwOC8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6IEVuZm9yY2UgdmlvbW11IGFzc29jaWF0 aW9uIHdoZW4KKyBDTURRViBpcyBhY3RpdmUKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS SC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5k IENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJp YyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdz aGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFsxMDgvMTExXSAwZjZlOWVjNmE5YTNlZWNmZGI4 MGJkNmRiNGM2MzBjY2NiZGIwN2ZkIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTog aHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitXaGVuIENN RFFWIGlzIGFjdGl2ZSwgdGhlIGZpcnN0IGNvbGQtcGx1Z2dlZCBWRklPIGRldmljZSBlc3RhYmxp c2hlcwordGhlIHZpb21tdSB0byBob3N0IFNNTVV2MyBhc3NvY2lhdGlvbiwgYW5kIHRoZSBndWVz dCdzIGJvb3QtdGltZSBDTURRVgorY29uZmlndXJhdGlvbiAoVklOVEZzLCBWQ01EUXMpIGlzIGJ1 aWx0IG9uIHRvcCBvZiB0aGF0IGFzc29jaWF0aW9uLgorCitIb3QtdW5wbHVnZ2luZyB0aGF0IGRl dmljZSB3b3VsZCByZWxlYXNlIHRoZSB2aW9tbXUgYW5kIHRlYXIgZG93biBhbGwKK0NNRFFWIHN0 YXRlLiBIb3QtcGx1Z2dpbmcgYW5vdGhlciBkZXZpY2UgYmVoaW5kIGEgZGlmZmVyZW50IGhvc3QK K1NNTVV2MytDTURRViB3b3VsZCB0aGVuIHJlLWJpbmQgdGhlIHNhbWUgdlNNTVV2MyB0byBuZXcg aG9zdCBoYXJkd2FyZSwKK3doaWxlIHRoZSBndWVzdCBrZWVwcyB1c2luZyBpdHMgYm9vdC10aW1l IGNvbmZpZ3VyYXRpb24gYW5kIGVuZHMgdXAKK2lzc3VpbmcgY29tbWFuZHMgdG8gdGhlIHdyb25n IGhvc3QuIEJsb2NrIGhvdC11bnBsdWcgb2YgdGhlCitlc3RhYmxpc2hpbmcgZGV2aWNlIHRvIGF2 b2lkIHRoaXM7IHJldGFpbmluZyB0aGUgYmluZGluZyBhY3Jvc3MgdW5wbHVnCitpcyBub24tdHJp dmlhbCBhbmQgbm90IHJlcXVpcmVkIGJ5IGFueSBjdXJyZW50IHVzZSBjYXNlLgorCitBbHNvIGFi b3J0IGF0IG1hY2hpbmVfZG9uZSBpZiBjbWRxdj1vbiBpcyByZXF1ZXN0ZWQgYnV0IG5vIGNvbGQt cGx1Z2dlZAorVkZJTyBkZXZpY2Ugd2FzIHByZXNlbnQgdG8gaW5pdGlhbGl6ZSBpdC4KKworUmV2 aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTog Tmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3Ro dW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMzAt c2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBl dGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDQ0MzU4 NTM2ODllMjQ1YThiZmVjOWViOTJmZDg0ZjM5MDRkNjBkNDcpCitTaWduZWQtb2ZmLWJ5OiBFcmlj IEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFjY2Vs LmMgfCAxOCArKysrKysrKysrKysrKysrKysKKyBody9hcm0vc21tdXYzLWFjY2VsLmggfCAgMSAr CisgMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9ody9h cm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IDljM2JkNDQx M2QuLjgwOTAwYzI1MjEgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBi L2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTc1OSw2ICs3NTksMTggQEAgc3RhdGljIGJvb2wg c21tdXYzX2FjY2VsX3NldF9pb21tdV9kZXZpY2UoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwg aW50IGRldmZuLAorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCisrICAgIC8qCisr ICAgICAqIENNRFFWIGlzIGFjdGl2ZTogYmxvY2sgaG90LXVucGx1ZyBvZiB0aGUgZGV2aWNlIHRo YXQgZXN0YWJsaXNoZWQgdGhlCisrICAgICAqIHZpb21tdSBhc3NvY2lhdGlvbi4gUmVtb3Zpbmcg aXQgd291bGQgY2F1c2UgdGhlIHZJT01NVSB0byBob3N0IFNNTVV2MworKyAgICAgKiBhc3NvY2lh dGlvbiBiZSBjaGFuZ2VkIHZpYSBkZXZpY2UgaG90LXBsdWcuCisrICAgICAqLworKyAgICBpZiAo cy0+c19hY2NlbC0+Y21kcXZfb3BzKSB7CisrICAgICAgICBQQ0lEZXZpY2UgKnBkZXYgPSBwY2lf ZmluZF9kZXZpY2UoYnVzLCBwY2lfYnVzX251bShidXMpLCBkZXZmbik7CisrICAgICAgICBlcnJv cl9zZXRnKCZhY2NlbF9kZXYtPnVucGx1Z19ibG9ja2VyLAorKyAgICAgICAgICAgICAgICAgICAi Q01EUVYgaXMgYWN0aXZlOiByZW1vdmluZyB0aGUgZGV2aWNlIHRoYXQgZXN0YWJsaXNoZWQgdGhl ICIKKysgICAgICAgICAgICAgICAgICAgInZpb21tdSBhc3NvY2lhdGlvbiB3b3VsZCBicmVhayB0 aGUgZ3Vlc3QgQ01EUVYiKTsKKysgICAgICAgIHFkZXZfYWRkX3VucGx1Z19ibG9ja2VyKERFVklD RShwZGV2KSwgYWNjZWxfZGV2LT51bnBsdWdfYmxvY2tlcik7CisrICAgIH0KKyBkb25lOgorICAg ICBhY2NlbF9kZXYtPmhpb2RpID0gaGlvZGk7CisgICAgIGFjY2VsX2Rldi0+c19hY2NlbCA9IHMt PnNfYWNjZWw7CitAQCAtMTA4Miw2ICsxMDk0LDEyIEBAIHN0YXRpYyB2b2lkIHNtbXV2M19hY2Nl bF9tYWNoaW5lX2RvbmUoTm90aWZpZXIgKm5vdGlmaWVyLCB2b2lkICpkYXRhKQorICAgICAgICAg ICAgICAgICAgICAgICJhdCBsZWFzdCBvbmUgY29sZC1wbHVnZ2VkIFZGSU8gZGV2aWNlIik7Cisg ICAgICAgICBleGl0KDEpOworICAgICB9CisrCisrICAgIGlmIChzLT5jbWRxdiA9PSBPTl9PRkZf QVVUT19PTiAmJiAhYWNjZWwtPmNtZHF2KSB7CisrICAgICAgICBlcnJvcl9yZXBvcnQoImFybS1z bW11djMgY21kcXY9b24gcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGNvbGQtcGx1Z2dlZCAiCisrICAg ICAgICAgICAgICAgICAgICAgIlZGSU8gZGV2aWNlIik7CisrICAgICAgICBleGl0KDEpOworKyAg ICB9CisgfQorIAorIGJvb2wgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMsIEVycm9y ICoqZXJycCkKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmggYi9ody9hcm0vc21t dXYzLWFjY2VsLmgKK2luZGV4IDVmYzg1ZmI4OWQuLmRkNzU1YzM5NGQgMTAwNjQ0CistLS0gYS9o dy9hcm0vc21tdXYzLWFjY2VsLmgKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuaAorQEAgLTg0 LDYgKzg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVXYzQWNjZWxEZXZpY2UgeworICAgICBJT01N VUZEVmRldiAqdmRldjsKKyAgICAgUUxJU1RfRU5UUlkoU01NVXYzQWNjZWxEZXZpY2UpIG5leHQ7 CisgICAgIFNNTVV2M0FjY2VsU3RhdGUgKnNfYWNjZWw7CisrICAgIEVycm9yICp1bnBsdWdfYmxv Y2tlcjsgLyogc2V0IHdoZW4gQ01EUVYgaXMgYWN0aXZlIHRvIGJsb2NrIGhvdC11bnBsdWcgKi8K KyB9IFNNTVV2M0FjY2VsRGV2aWNlOworIAorIGJvb2wgc21tdXYzX2FjY2VsX2luaXQoU01NVXYz U3RhdGUgKnMsIEVycm9yICoqZXJycCk7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3Zt LWh3LWFybS1zbW11djMtYWNjZWwtR2V0LWhvc3QtU01NVXYzLWh3LWluZm8tYW5kLXZhbGkucGF0 Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1HZXQtaG9zdC1TTU1VdjMtaHctaW5mby1hbmQt dmFsaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTFhOTA2Ci0t LSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtR2V0LWhvc3QtU01NVXYz LWh3LWluZm8tYW5kLXZhbGkucGF0Y2gKQEAgLTAsMCArMSwxNzMgQEAKK0Zyb20gMDc0ZGIxOGVk ODBhMDU0MTFiNDE1NjYyMDUzN2IxMjU1ZWNhYjNhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTog VGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSArMDAwMAorU3ViamVjdDogW1BBVENIIDAyOS8xMTFd IGh3L2FybS9zbW11djMtYWNjZWw6IEdldCBob3N0IFNNTVV2MyBodyBpbmZvIGFuZAorIHZhbGlk YXRlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNN TVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJh OiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0 LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29t bWl0OiBbMjkvMTExXSAxNTRkYmY3NjAwZmFiZDlmOGIzNzNmZmQ1NDQzY2M5MDkxZTFiYjk1IChl YXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFu Lm5ldC9icm93c2UvUkhFTC03Mzc5NAorCitKdXN0IGJlZm9yZSB0aGUgZGV2aWNlIGdldHMgYXR0 YWNoZWQgdG8gdGhlIFNNTVV2MywgbWFrZSBzdXJlIFFFTVUgU01NVXYzCitmZWF0dXJlcyBhcmUg Y29tcGF0aWJsZSB3aXRoIHRoZSBob3N0IFNNTVV2My4KKworTm90IGFsbCBmaWVsZHMgaW4gdGhl IGhvc3QgU01NVXYzIElEUiByZWdpc3RlcnMgYXJlIG1lYW5pbmdmdWwgZm9yIHVzZXJzcGFjZS4K K09ubHkgdGhlIGZvbGxvd2luZyBmaWVsZHMgY2FuIGJlIHVzZWQ6CisKKyAgLSBJRFIwOiBTVF9M RVZFTCwgVEVSTV9NT0RFTCwgU1RBTExfTU9ERUwsIFRURU5ESUFOLCBDRDJMLCBBU0lEMTYsIFRU RgorICAtIElEUjE6IFNJRFNJWkUsIFNTSURTSVpFCisgIC0gSURSMzogQkJNTCwgUklMCisgIC0g SURSNTogVkFYLCBHUkFONjRLLCBHUkFOMTZLLCBHUkFONEsKKworRm9yIG5vdywgdGhlIGNoZWNr IGlzIHRvIG1ha2Ugc3VyZSB0aGUgZmVhdHVyZXMgYXJlIGluIHN5bmMgdG8gZW5hYmxlCitiYXNp YyBhY2NlbGVyYXRlZCBTTU1VdjMgc3VwcG9ydC4gQUlEUiBpcyBub3QgY2hlY2tlZCwgYXMgaGFy ZHdhcmUKK2ltcGxlbWVudGF0aW9ucyBvZnRlbiBwcm92aWRlIGEgbWl4IG9mIGFyY2hpdGVjdHVy ZSBmZWF0dXJlcyByZWdhcmRsZXNzCitvZiB0aGUgcmV2aXNpb24gcmVwb3J0ZWQgaW4gQUlEUi4K KworTm90ZSB0aGF0IFNTSURTSVpFIGNoZWNrIHdpbGwgYmUgYWRkZWQgbGF0ZXIgd2hlbiBzdXBw b3J0IGZvciBQQVNJRCBpcworaW50cm9kdWNlZC4KKworUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hl biA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxq b25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5v cmc+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlh LmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0yMi1za29sb3RodW10aG9A bnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBs aW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYWQzMjIzOGFkMjZiY2FhNjI5 Mzc0MmRkNzEyNzgyNDI1MjUzYjZmZSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyB8IDEwMSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg MTAxIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBi L2h3L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggODlkYzZmOTkxYy4uMzMwMTE5NjJlMyAxMDA2 NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2Nl bC5jCitAQCAtMjcsNiArMjcsOTkgQEAKKyBzdGF0aWMgTWVtb3J5UmVnaW9uIHJvb3QsIHN5c21l bTsKKyBzdGF0aWMgQWRkcmVzc1NwYWNlICpzaGFyZWRfYXNfc3lzbWVtOworIAorK3N0YXRpYyBi b29sCisrc21tdXYzX2FjY2VsX2NoZWNrX2h3X2NvbXBhdGlibGUoU01NVXYzU3RhdGUgKnMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlvbW11X2h3X2luZm9fYXJt X3NtbXV2MyAqaW5mbywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAq KmVycnApCisreworKyAgICAvKiBRRU1VIFNNTVV2MyBzdXBwb3J0cyBib3RoIGxpbmVhciBhbmQg Mi1sZXZlbCBzdHJlYW0gdGFibGVzICovCisrICAgIGlmIChGSUVMRF9FWDMyKGluZm8tPmlkclsw XSwgSURSMCwgU1RMRVZFTCkgIT0KKysgICAgICAgICAgICAgICAgRklFTERfRVgzMihzLT5pZHJb MF0sIElEUjAsIFNUTEVWRUwpKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJIb3N0IFNN TVV2MyBTdHJlYW0gVGFibGUgZm9ybWF0IG1pc21hdGNoICIKKysgICAgICAgICAgICAgICAgICAg Iihob3N0IFNUTEVWRUw9JXUsIFFFTVUgU1RMRVZFTD0ldSkiLAorKyAgICAgICAgICAgICAgICAg ICBGSUVMRF9FWDMyKGluZm8tPmlkclswXSwgSURSMCwgU1RMRVZFTCksCisrICAgICAgICAgICAg ICAgICAgIEZJRUxEX0VYMzIocy0+aWRyWzBdLCBJRFIwLCBTVExFVkVMKSk7CisrICAgICAgICBy ZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgLyogUUVNVSBTTU1VdjMgc3VwcG9ydHMgb25s eSBsaXR0bGUtZW5kaWFuIHRyYW5zbGF0aW9uIHRhYmxlIHdhbGtzICovCisrICAgIGlmIChGSUVM RF9FWDMyKGluZm8tPmlkclswXSwgSURSMCwgVFRFTkRJQU4pID4KKysgICAgICAgICAgICAgICAg RklFTERfRVgzMihzLT5pZHJbMF0sIElEUjAsIFRURU5ESUFOKSkgeworKyAgICAgICAgZXJyb3Jf c2V0ZyhlcnJwLCAiSG9zdCBTTU1VdjMgZG9lc24ndCBzdXBwb3J0IExpdHRsZS1lbmRpYW4gIgor KyAgICAgICAgICAgICAgICAgICAidHJhbnNsYXRpb24gdGFibGUiKTsKKysgICAgICAgIHJldHVy biBmYWxzZTsKKysgICAgfQorKworKyAgICAvKiBRRU1VIFNNTVV2MyBzdXBwb3J0cyBvbmx5IEFB cmNoNjQgdHJhbnNsYXRpb24gdGFibGUgZm9ybWF0ICovCisrICAgIGlmIChGSUVMRF9FWDMyKGlu Zm8tPmlkclswXSwgSURSMCwgVFRGKSA8CisrICAgICAgICAgICAgICAgIEZJRUxEX0VYMzIocy0+ aWRyWzBdLCBJRFIwLCBUVEYpKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJIb3N0IFNN TVV2MyBkb2Vzbid0IHN1cHBvcnQgQUFyY2g2NCB0cmFuc2xhdGlvbiAiCisrICAgICAgICAgICAg ICAgICAgICJ0YWJsZSBmb3JtYXQiKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KworKyAgICAvKiBRRU1VIFNNTVV2MyBzdXBwb3J0cyBTSURTSVpFIDE2ICovCisrICAgIGlmIChG SUVMRF9FWDMyKGluZm8tPmlkclsxXSwgSURSMSwgU0lEU0laRSkgPAorKyAgICAgICAgICAgICAg ICBGSUVMRF9FWDMyKHMtPmlkclsxXSwgSURSMSwgU0lEU0laRSkpIHsKKysgICAgICAgIGVycm9y X3NldGcoZXJycCwgIkhvc3QgU01NVXYzIFNJRFNJWkUgbm90IGNvbXBhdGlibGUgIgorKyAgICAg ICAgICAgICAgICAgICAiKGhvc3Q9JXUsIFFFTVU9JXUpIiwKKysgICAgICAgICAgICAgICAgICAg RklFTERfRVgzMihpbmZvLT5pZHJbMV0sIElEUjEsIFNJRFNJWkUpLAorKyAgICAgICAgICAgICAg ICAgICBGSUVMRF9FWDMyKHMtPmlkclsxXSwgSURSMSwgU0lEU0laRSkpOworKyAgICAgICAgcmV0 dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIC8qIFFFTVUgU01NVXYzIHN1cHBvcnRzIFJhbmdl IEludmFsaWRhdGlvbiBieSBkZWZhdWx0ICovCisrICAgIGlmIChGSUVMRF9FWDMyKGluZm8tPmlk clszXSwgSURSMywgUklMKSAhPQorKyAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKHMtPmlkclsz XSwgSURSMywgUklMKSkgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9zdCBTTU1VdjMg ZG9lc24ndCBzdXBwb3J0IFJhbmdlIEludmFsaWRhdGlvbiIpOworKyAgICAgICAgcmV0dXJuIGZh bHNlOworKyAgICB9CisrCisrICAgIC8qIFFFTVUgU01NVXYzIHN1cHBvcnRzIEdSQU40Sy9HUkFO MTZLL0dSQU42NEsgdHJhbnNsYXRpb24gZ3JhbnVsZXMgKi8KKysgICAgaWYgKEZJRUxEX0VYMzIo aW5mby0+aWRyWzVdLCBJRFI1LCBHUkFONEspICE9CisrICAgICAgICAgICAgICAgIEZJRUxEX0VY MzIocy0+aWRyWzVdLCBJRFI1LCBHUkFONEspKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAs ICJIb3N0IFNNTVV2MyBkb2Vzbid0IHN1cHBvcnQgNEsgdHJhbnNsYXRpb24gZ3JhbnVsZSIpOwor KyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICAgIGlmIChGSUVMRF9FWDMyKGluZm8t Pmlkcls1XSwgSURSNSwgR1JBTjE2SykgIT0KKysgICAgICAgICAgICAgICAgRklFTERfRVgzMihz LT5pZHJbNV0sIElEUjUsIEdSQU4xNkspKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJI b3N0IFNNTVV2MyBkb2Vzbid0IHN1cHBvcnQgMTZLIHRyYW5zbGF0aW9uIGdyYW51bGUiKTsKKysg ICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgICBpZiAoRklFTERfRVgzMihpbmZvLT5p ZHJbNV0sIElEUjUsIEdSQU42NEspICE9CisrICAgICAgICAgICAgICAgIEZJRUxEX0VYMzIocy0+ aWRyWzVdLCBJRFI1LCBHUkFONjRLKSkgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9z dCBTTU1VdjMgZG9lc24ndCBzdXBwb3J0IDY0SyB0cmFuc2xhdGlvbiBncmFudWxlIik7CisrICAg ICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgcmV0dXJuIHRydWU7CisrfQorKwor K3N0YXRpYyBib29sCisrc21tdXYzX2FjY2VsX2h3X2NvbXBhdGlibGUoU01NVXYzU3RhdGUgKnMs IEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgRXJyb3IgKiplcnJwKQorK3sKKysgICAgc3RydWN0IGlvbW11X2h3X2luZm9fYXJtX3NtbXV2 MyBpbmZvOworKyAgICB1aW50MzJfdCBkYXRhX3R5cGU7CisrICAgIHVpbnQ2NF90IGNhcHM7Cisr CisrICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2dldF9kZXZpY2VfaW5mbyhpZGV2LT5pb21tdWZk LCBpZGV2LT5kZXZpZCwgJmRhdGFfdHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZpbmZvLCBzaXplb2YoaW5mbyksICZjYXBzLCBlcnJwKSkgeworKyAgICAg ICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIGlmIChkYXRhX3R5cGUgIT0gSU9NTVVf SFdfSU5GT19UWVBFX0FSTV9TTU1VVjMpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwgIldy b25nIGRhdGEgdHlwZSAoJWQpIGZvciBIb3N0IFNNTVV2MyBkZXZpY2UgaW5mbyIsCisrICAgICAg ICAgICAgICAgICAgICAgZGF0YV90eXBlKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAg fQorKworKyAgICBpZiAoIXNtbXV2M19hY2NlbF9jaGVja19od19jb21wYXRpYmxlKHMsICZpbmZv LCBlcnJwKSkgeworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICAgIHJldHVybiB0 cnVlOworK30KKysKKyBzdGF0aWMgU01NVXYzQWNjZWxEZXZpY2UgKnNtbXV2M19hY2NlbF9nZXRf ZGV2KFNNTVVTdGF0ZSAqYnMsIFNNTVVQY2lCdXMgKnNidXMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lCdXMgKmJ1cywgaW50IGRldmZuKQorIHsK K0BAIC0zNTMsNiArNDQ2LDE0IEBAIHN0YXRpYyBib29sIHNtbXV2M19hY2NlbF9zZXRfaW9tbXVf ZGV2aWNlKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsIGludCBkZXZmbiwKKyAgICAgICAgIHJl dHVybiB0cnVlOworICAgICB9CisgCisrICAgIC8qCisrICAgICAqIENoZWNrIHRoZSBob3N0IFNN TVV2MyBhc3NvY2lhdGVkIHdpdGggdGhlIGRldiBpcyBjb21wYXRpYmxlIHdpdGggdGhlCisrICAg ICAqIFFFTVUgU01NVXYzIGFjY2VsLgorKyAgICAgKi8KKysgICAgaWYgKCFzbW11djNfYWNjZWxf aHdfY29tcGF0aWJsZShzLCBpZGV2LCBlcnJwKSkgeworKyAgICAgICAgcmV0dXJuIGZhbHNlOwor KyAgICB9CisrCisgICAgIGlmIChzLT5zX2FjY2VsLT52aW9tbXUpIHsKKyAgICAgICAgIGdvdG8g ZG9uZTsKKyAgICAgfQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21t dXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1hdHMucGF0Y2ggYi9rdm0taHctYXJt LXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0by12YWx1ZS1mb3ItYXRzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Zjg0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9r dm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0by12YWx1ZS1mb3ItYXRzLnBhdGNo CkBAIC0wLDAgKzEsOTMgQEAKK0Zyb20gYWM5NWM4M2Q4NDNhNWU3ZDA2YWJiYzE3M2ZiMWI1ZWJl YjkzODU0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hdGhhbiBDaGVuIDxuYXRo YW5jQG52aWRpYS5jb20+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTA6NDg6NTUgLTA3MDAKK1N1 YmplY3Q6IFtQQVRDSCAwNjkvMTExXSBody9hcm0vc21tdXYzLWFjY2VsOiBJbXBsZW1lbnQgImF1 dG8iIHZhbHVlIGZvciAiYXRzIgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAor CitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdl UmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYg c3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdv YXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVk aGF0LmNvbT4KK1JILUNvbW1pdDogWzY5LzExMV0gMTAxZTY1NDllZGZlZjhiNTM5MzY3ZDc3YWQ4 ODc4NzVhYmRkMWI0OSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8v cmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtMTYzNTk2CisKK0FsbG93IGFjY2VsZXJh dGVkIFNNTVV2MyBBZGRyZXNzIFRyYW5zbGF0aW9uIFNlcnZpY2VzIHN1cHBvcnQgcHJvcGVydHkK K3RvIGJlIGRlcml2ZWQgZnJvbSBob3N0IElPTU1VIGNhcGFiaWxpdGllcy4gRGVyaXZlIGhvc3Qg dmFsdWVzIHVzaW5nCitJT01NVV9HRVRfSFdfSU5GTywgcmV0cmlldmluZyBBVFMgY2FwYWJpbGl0 eSBmcm9tIElEUjAuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRp YS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgor VGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlk OiAyMDI2MDYwODE3NDkwMC4yMjI3MzQwLTUtbmF0aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2Zm LWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCA3ZTg4YzFhOWQwZjk5ZjQyYTY1MmUwYWY4NTZiOTAzZTAzOGIzOGNi KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0t CisgaHcvYXJtL3NtbXV2My1hY2NlbC5jIHwgIDkgKysrKysrKysrCisgaHcvYXJtL3NtbXV2My5j ICAgICAgIHwgMTEgKysrKy0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMg Yi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IGU2MjVmMTQ1YzQuLmUwM2IwODgzYWYgMTAw NjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNj ZWwuYworQEAgLTUzLDYgKzUzLDExIEBAIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hdXRvX2Zp bmFsaXNlKFNNTVV2M1N0YXRlICpzLAorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCisrICAg IGlmIChzLT5hdHMgPT0gT05fT0ZGX0FVVE9fQVVUTykgeworKyAgICAgICAgcy0+aWRyWzBdID0g RklFTERfRFAzMihzLT5pZHJbMF0sIElEUjAsIEFUUywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRklFTERfRVgzMihpbmZvLT5pZHJbMF0sIElEUjAsIEFUUykpOworKyAgICB9Cisr CisgICAgIGFjY2VsLT5hdXRvX2ZpbmFsaXNlZCA9IHRydWU7CisgfQorIAorQEAgLTk2MCw2ICs5 NjUsMTAgQEAgYm9vbCBzbW11djNfYWNjZWxfaW5pdChTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKipl cnJwKQorICAgICBicy0+aW9tbXVfb3BzID0gJnNtbXV2M19hY2NlbF9vcHM7CisgICAgIHNtbXV2 M19hY2NlbF9hc19pbml0KHMpOworIAorKyAgICBpZiAocy0+YXRzID09IE9OX09GRl9BVVRPX0FV VE8pIHsKKysgICAgICAgIHMtPnNfYWNjZWwtPmF1dG9fbW9kZSA9IHRydWU7CisrICAgIH0KKysK KyAgICAgaWYgKHMtPnNfYWNjZWwtPmF1dG9fbW9kZSkgeworICAgICAgICAgcy0+bWFjaGluZV9k b25lLm5vdGlmeSA9IHNtbXV2M19hY2NlbF9tYWNoaW5lX2RvbmU7CisgICAgICAgICBxZW11X2Fk ZF9tYWNoaW5lX2luaXRfZG9uZV9ub3RpZmllcigmcy0+bWFjaGluZV9kb25lKTsKK2RpZmYgLS1n aXQgYS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IGY3NmE1MjcxODIu LmUyMDcxOTM4YzAgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9z bW11djMuYworQEAgLTE5NjUsMTAgKzE5NjUsNiBAQCBzdGF0aWMgdm9pZCBzbW11X3Jlc2V0X2V4 aXQoT2JqZWN0ICpvYmosIFJlc2V0VHlwZSB0eXBlKQorIAorIHN0YXRpYyBib29sIHNtbXVfdmFs aWRhdGVfcHJvcGVydHkoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyB7CistICAgIGlm IChzLT5hdHMgPT0gT05fT0ZGX0FVVE9fQVVUTykgeworLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJw LCAiYXRzIGF1dG8gbW9kZSBpcyBub3Qgc3VwcG9ydGVkIik7CistICAgICAgICByZXR1cm4gZmFs c2U7CistICAgIH0KKyAgICAgaWYgKHMtPnJpbCA9PSBPTl9PRkZfQVVUT19BVVRPKSB7CisgICAg ICAgICBlcnJvcl9zZXRnKGVycnAsICJyaWwgYXV0byBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQiKTsK KyAgICAgICAgIHJldHVybiBmYWxzZTsKK0BAIC0yMTcyLDkgKzIxNjgsMTAgQEAgc3RhdGljIHZv aWQgc21tdXYzX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRh KQorICAgICAgICAgIkRpc2FibGUgcmFuZ2UgaW52YWxpZGF0aW9uIHN1cHBvcnQgKGZvciBhY2Nl bD1vbikuIHJpbD1hdXRvICIKKyAgICAgICAgICJpcyBub3Qgc3VwcG9ydGVkLiIpOworICAgICBv YmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAiYXRzIiwKKy0gICAg ICAgICJFbmFibGUvZGlzYWJsZSBBVFMgc3VwcG9ydCAoZm9yIGFjY2VsPW9uKS4gUGxlYXNlIGVu c3VyZSBob3N0ICIKKy0gICAgICAgICJwbGF0Zm9ybSBoYXMgQVRTIHN1cHBvcnQgYmVmb3JlIGVu YWJsaW5nIHRoaXMuIGF0cz1hdXRvIGlzIG5vdCAiCistICAgICAgICAic3VwcG9ydGVkLiIpOwor KyAgICAgICAgIkVuYWJsZS9kaXNhYmxlIEFUUyBzdXBwb3J0IChmb3IgYWNjZWw9b24pLiAiCisr ICAgICAgICAiVmFsaWQgdmFsdWVzIGFyZSBvbiwgb2ZmLCBhbmQgYXV0by4gRGVmYXVsdHMgdG8g b2ZmLiAiCisrICAgICAgICAiUGxlYXNlIGVuc3VyZSBob3N0IHBsYXRmb3JtIHN1cHBvcnRzIEFU UyBiZWZvcmUgc2V0dGluZyBpdCAiCisrICAgICAgICAidG8gb24uIik7CisgICAgIG9iamVjdF9j bGFzc19wcm9wZXJ0eV9zZXRfZGVzY3JpcHRpb24oa2xhc3MsICJvYXMiLAorICAgICAgICAgIlNw ZWNpZnkgT3V0cHV0IEFkZHJlc3MgU2l6ZSAoZm9yIGFjY2VsPW9uKS4gU3VwcG9ydGVkIHZhbHVl cyAiCisgICAgICAgICAiYXJlIDQ0IG9yIDQ4IGJpdHMuIERlZmF1bHRzIHRvIDQ0IGJpdHMuIG9h cz1hdXRvIGlzIG5vdCAiCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1z bW11djMtYWNjZWwtSW1wbGVtZW50LWF1dG8tdmFsdWUtZm9yLW9hcy5wYXRjaCBiL2t2bS1ody1h cm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1vYXMucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVkOTdlYQotLS0gL2Rldi9udWxsCisrKyBi L2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1vYXMucGF0 Y2gKQEAgLTAsMCArMSwxMTAgQEAKK0Zyb20gYWNlODZkODQ0MTE3YWE0ZjM5YWQxNjViNjFmYzky MDkwYzUyMDFmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hdGhhbiBDaGVuIDxu YXRoYW5jQG52aWRpYS5jb20+CitEYXRlOiBNb24sIDggSnVuIDIwMjYgMTA6NDg6NTggLTA3MDAK K1N1YmplY3Q6IFtQQVRDSCAwNzIvMTExXSBody9hcm0vc21tdXYzLWFjY2VsOiBJbXBsZW1lbnQg ImF1dG8iIHZhbHVlIGZvciAib2FzIgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1l cmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01E UVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYg UkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExl IEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5A cmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzcyLzExMV0gMjBhY2JjM2NlNTBmOGEzOGU4MDA5MjU0 Yzg5MWIxZDgwZDdhM2M4YSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBz Oi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtMTYzNTk2CisKK0FsbG93IGFjY2Vs ZXJhdGVkIFNNTVV2MyBPQVMgcHJvcGVydHkgdG8gYmUgZGVyaXZlZCBmcm9tIGhvc3QgSU9NTVUK K2NhcGFiaWxpdGllcy4gRGVyaXZlIGhvc3QgdmFsdWVzIHVzaW5nIElPTU1VX0dFVF9IV19JTkZP LCByZXRyaWV2aW5nCitPQVMgZnJvbSBJRFI1LgorCitUaGlzIGtlZXBzIHRoZSBPQVMgdmFsdWUg YWR2ZXJ0aXNlZCBieSB0aGUgdmlydHVhbCBTTU1VIGNvbXBhdGlibGUgd2l0aAordGhlIGNhcGFi aWxpdGllcyBvZiB0aGUgaG9zdCBTTU1VdjMsIHNvIHRoYXQgdGhlIGludGVybWVkaWF0ZSBwaHlz aWNhbAorYWRkcmVzc2VzIChJUEEpIGNvbnN1bWVkIGJ5IGhvc3QgU01NVSBmb3Igc3RhZ2UtMiB0 cmFuc2xhdGlvbiBkbyBub3QKK2V4Y2VlZCB0aGUgaG9zdCdzIG1heCBzdXBwb3J0ZWQgSVBBIHNp emUuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS ZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitT aWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYw ODE3NDkwMC4yMjI3MzQwLTgtbmF0aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRl ciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCA4NmVjNjYzOWIxOGNhZmFiMmUyM2NkMTBjNTBmNGIyNzU5N2M0YTliKQorU2lnbmVk LW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJt L3NtbXV2My1hY2NlbC5jIHwgIDggKysrKysrKy0KKyBody9hcm0vc21tdXYzLmMgICAgICAgfCAx NyArKysrKysrKysrLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3 L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggMTgyNjc2MTU3ZC4uMGIwMTg0ODI5MiAxMDA2NDQK Ky0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5j CitAQCAtNjgsNiArNjgsMTEgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2F1dG9fZmluYWxp c2UoU01NVXYzU3RhdGUgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxE X0VYMzIoaW5mby0+aWRyWzFdLCBJRFIxLCBTU0lEU0laRSkpOworICAgICB9CisgCisrICAgIGlm IChzLT5vYXMgPT0gT0FTX01PREVfQVVUTykgeworKyAgICAgICAgcy0+aWRyWzVdID0gRklFTERf RFAzMihzLT5pZHJbNV0sIElEUjUsIE9BUywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRklFTERfRVgzMihpbmZvLT5pZHJbNV0sIElEUjUsIE9BUykpOworKyAgICB9CisrCisgICAg IGFjY2VsLT5hdXRvX2ZpbmFsaXNlZCA9IHRydWU7CisgfQorIAorQEAgLTk4NCw3ICs5ODksOCBA QCBib29sIHNtbXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisg CisgICAgIGlmIChzLT5hdHMgPT0gT05fT0ZGX0FVVE9fQVVUTyB8fAorICAgICAgICAgcy0+cmls ID09IE9OX09GRl9BVVRPX0FVVE8gfHwKKy0gICAgICAgIHMtPnNzaWRzaXplID09IFNTSURfU0la RV9NT0RFX0FVVE8pIHsKKysgICAgICAgIHMtPnNzaWRzaXplID09IFNTSURfU0laRV9NT0RFX0FV VE8gfHwKKysgICAgICAgIHMtPm9hcyA9PSBPQVNfTU9ERV9BVVRPKSB7CisgICAgICAgICBzLT5z X2FjY2VsLT5hdXRvX21vZGUgPSB0cnVlOworICAgICB9CisgCitkaWZmIC0tZ2l0IGEvaHcvYXJt L3NtbXV2My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCBiYzczNGZiNDc3Li44OWQzNGM5OTIz IDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BA IC0xOTY4LDkgKzE5NjgsMTEgQEAgc3RhdGljIHZvaWQgc21tdV9yZXNldF9leGl0KE9iamVjdCAq b2JqLCBSZXNldFR5cGUgdHlwZSkKKyAKKyBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3Bl cnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgeworLSAgICBpZiAocy0+b2FzICE9 IE9BU19NT0RFXzQ0ICYmIHMtPm9hcyAhPSBPQVNfTU9ERV80OCkgeworLSAgICAgICAgZXJyb3Jf c2V0ZyhlcnJwLCAiUUVNVSBTTU1VdjMgbW9kZWwgb25seSBpbXBsZW1lbnRzIDQ0IGFuZCA0OCBi aXQiCistICAgICAgICAgICAgICAgICAgICJPQVM7IG90aGVyIE9hc01vZGUgdmFsdWVzIGFyZSBu b3Qgc3VwcG9ydGVkIik7CisrICAgIGlmIChzLT5vYXMgIT0gT0FTX01PREVfNDQgJiYgcy0+b2Fz ICE9IE9BU19NT0RFXzQ4ICYmCisrICAgICAgICBzLT5vYXMgIT0gT0FTX01PREVfQVVUTykgewor KyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiUUVNVSBTTU1VdjMgbW9kZWwgb25seSBpbXBsZW1l bnRzIGF1dG8sICIKKysgICAgICAgICAgICAgICAgICAgIjQ0IGJpdCwgb3IgNDggYml0IE9BUy4g T3RoZXIgT2FzTW9kZSB2YWx1ZXMgYXJlICIKKysgICAgICAgICAgICAgICAgICAgIm5vdCBzdXBw b3J0ZWQuIik7CisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKK0BAIC0xOTg0LDcg KzE5ODYsNyBAQCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRl ICpzLCBFcnJvciAqKmVycnApCisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg fQorICAgICAgICAgaWYgKHMtPm9hcyA+IE9BU19NT0RFXzQ0KSB7CistICAgICAgICAgICAgZXJy b3Jfc2V0ZyhlcnJwLCAiT0FTIG11c3QgYmUgNDQgYml0cyB3aGVuIGFjY2VsPW9mZiIpOworKyAg ICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIm9hcyBtdXN0IGJlIDQ0IGJpdHMgd2hlbiBhY2Nl bD1vZmYiKTsKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICB9CisgICAgICAg ICBpZiAocy0+c3NpZHNpemUgPiBTU0lEX1NJWkVfTU9ERV8wKSB7CitAQCAtMjE3MSw5ICsyMTcz LDEwIEBAIHN0YXRpYyB2b2lkIHNtbXV2M19jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFzcywg Y29uc3Qgdm9pZCAqZGF0YSkKKyAgICAgICAgICJQbGVhc2UgZW5zdXJlIGhvc3QgcGxhdGZvcm0g c3VwcG9ydHMgQVRTIGJlZm9yZSBzZXR0aW5nIGl0ICIKKyAgICAgICAgICJ0byBvbi4iKTsKKyAg ICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywgIm9hcyIsCist ICAgICAgICAiU3BlY2lmeSBPdXRwdXQgQWRkcmVzcyBTaXplIChmb3IgYWNjZWw9b24pLiBTdXBw b3J0ZWQgdmFsdWVzICIKKy0gICAgICAgICJhcmUgNDQgb3IgNDggYml0cy4gRGVmYXVsdHMgdG8g NDQgYml0cy4gb2FzPWF1dG8gaXMgbm90ICIKKy0gICAgICAgICJzdXBwb3J0ZWQuIik7CisrICAg ICAgICAiU2V0IE91dHB1dCBBZGRyZXNzIFNpemUgaW4gYml0cyAoZm9yIGFjY2VsPW9uKS4gIgor KyAgICAgICAgIlZhbGlkIHZhbHVlcyBhcmUgNDQsIDQ4LCBhbmQgYXV0by4gRGVmYXVsdHMgdG8g NDQgYml0cy4iCisrICAgICAgICAiUGxlYXNlIGVuc3VyZSB0aGUgdmFsdWUgZG9lcyBub3QgZXhj ZWVkIHRoZSBtYXhpbXVtICIKKysgICAgICAgICJPdXRwdXQgQWRkcmVzcyBTaXplIHN1cHBvcnRl ZCBieSB0aGUgaG9zdCBwbGF0Zm9ybS4iKTsKKyAgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3Nl dF9kZXNjcmlwdGlvbihrbGFzcywgInNzaWRzaXplIiwKKyAgICAgICAgICJTZXQgbnVtYmVyIG9m IGJpdHMgdXNlZCB0byByZXByZXNlbnQgU3Vic3RyZWFtSURzIChTU0lEcykuICIKKyAgICAgICAg ICJWYWxpZCB2YWx1ZXMgYXJlIDAtMjAgYW5kIGF1dG8uIERlZmF1bHRzIHRvIDAuICIKKy0tIAor Mi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQt YXV0by12YWx1ZS1mb3ItcmlsLnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW1wbGVt ZW50LWF1dG8tdmFsdWUtZm9yLXJpbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4zY2U4OGI4Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNj ZWwtSW1wbGVtZW50LWF1dG8tdmFsdWUtZm9yLXJpbC5wYXRjaApAQCAtMCwwICsxLDkxIEBACitG cm9tIGRiOWI1MWViYTZjZTU4NDc3Njg3M2RiMjY1YjNjOTdlMmU1ZmQ0MDYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorRGF0 ZTogTW9uLCA4IEp1biAyMDI2IDEwOjQ4OjU2IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0ggMDcwLzEx MV0gaHcvYXJtL3NtbXV2My1hY2NlbDogSW1wbGVtZW50ICJhdXRvIiB2YWx1ZSBmb3IgInJpbCIK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBS ZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29t PgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6 IFs3MC8xMTFdIDhlMjJkMTBhODgzOGMwMjQyNDdhZjI4MDkyOGZkNzYyMGVjYzg0NTMgKGVhdWdl cjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0 L2Jyb3dzZS9SSEVMLTE2MzU5NgorCitBbGxvdyBhY2NlbGVyYXRlZCBTTU1VdjMgUmFuZ2UgSW52 YWxpZGF0aW9uIHN1cHBvcnQgcHJvcGVydHkgdG8gYmUKK2Rlcml2ZWQgZnJvbSBob3N0IElPTU1V IGNhcGFiaWxpdGllcy4gRGVyaXZlIGhvc3QgdmFsdWVzIHVzaW5nCitJT01NVV9HRVRfSFdfSU5G TywgcmV0cmlldmluZyBSSUwgY2FwYWJpbGl0eSBmcm9tIElEUjMuCisKK1Jldmlld2VkLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVlciBL b2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4g Q2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1 Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwODE3NDkwMC4yMjI3MzQwLTYtbmF0 aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlk ZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4ZTBhMmFhNzc3ZjY5 ZGVmNjVhYTM4MmZjNjZkYWJmOWNmNTNiOGYwKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3NtbXV2My1hY2NlbC5jIHwgIDgg KysrKysrKy0KKyBody9hcm0vc21tdXYzLmMgICAgICAgfCAxMCArKysrLS0tLS0tCisgMiBmaWxl cyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCBl MDNiMDg4M2FmLi4wMjQzZTI5MmQ4IDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5j CisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC01OCw2ICs1OCwxMSBAQCBzdGF0aWMg dm9pZCBzbW11djNfYWNjZWxfYXV0b19maW5hbGlzZShTTU1VdjNTdGF0ZSAqcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRklFTERfRVgzMihpbmZvLT5pZHJbMF0sIElEUjAsIEFU UykpOworICAgICB9CisgCisrICAgIGlmIChzLT5yaWwgPT0gT05fT0ZGX0FVVE9fQVVUTykgewor KyAgICAgICAgcy0+aWRyWzNdID0gRklFTERfRFAzMihzLT5pZHJbM10sIElEUjMsIFJJTCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklFTERfRVgzMihpbmZvLT5pZHJbM10sIElE UjMsIFJJTCkpOworKyAgICB9CisrCisgICAgIGFjY2VsLT5hdXRvX2ZpbmFsaXNlZCA9IHRydWU7 CisgfQorIAorQEAgLTk2NSw3ICs5NzAsOCBAQCBib29sIHNtbXV2M19hY2NlbF9pbml0KFNNTVV2 M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgIGJzLT5pb21tdV9vcHMgPSAmc21tdXYzX2Fj Y2VsX29wczsKKyAgICAgc21tdXYzX2FjY2VsX2FzX2luaXQocyk7CisgCistICAgIGlmIChzLT5h dHMgPT0gT05fT0ZGX0FVVE9fQVVUTykgeworKyAgICBpZiAocy0+YXRzID09IE9OX09GRl9BVVRP X0FVVE8gfHwKKysgICAgICAgIHMtPnJpbCA9PSBPTl9PRkZfQVVUT19BVVRPKSB7CisgICAgICAg ICBzLT5zX2FjY2VsLT5hdXRvX21vZGUgPSB0cnVlOworICAgICB9CisgCitkaWZmIC0tZ2l0IGEv aHcvYXJtL3NtbXV2My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCBlMjA3MTkzOGMwLi43OGVk MmE5ZGYxIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYz LmMKK0BAIC0xOTY1LDEwICsxOTY1LDYgQEAgc3RhdGljIHZvaWQgc21tdV9yZXNldF9leGl0KE9i amVjdCAqb2JqLCBSZXNldFR5cGUgdHlwZSkKKyAKKyBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRl X3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgeworLSAgICBpZiAocy0+ cmlsID09IE9OX09GRl9BVVRPX0FVVE8pIHsKKy0gICAgICAgIGVycm9yX3NldGcoZXJycCwgInJp bCBhdXRvIG1vZGUgaXMgbm90IHN1cHBvcnRlZCIpOworLSAgICAgICAgcmV0dXJuIGZhbHNlOwor LSAgICB9CisgICAgIGlmIChzLT5zc2lkc2l6ZSA9PSBTU0lEX1NJWkVfTU9ERV9BVVRPKSB7Cisg ICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJzc2lkc2l6ZSBhdXRvIG1vZGUgaXMgbm90IHN1cHBv cnRlZCIpOworICAgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTIxNjUsOCArMjE2MSwxMCBAQCBz dGF0aWMgdm9pZCBzbW11djNfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqa2xhc3MsIGNvbnN0IHZv aWQgKmRhdGEpCisgICAgICAgICAiZW5zdXJlIHRoZSBob3N0IFNNTVV2MyBzdXBwb3J0cyBuZXN0 ZWQgdHJhbnNsYXRpb24gYmVmb3JlICIKKyAgICAgICAgICJlbmFibGluZy4iKTsKKyAgICAgb2Jq ZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywgInJpbCIsCistICAgICAg ICAiRGlzYWJsZSByYW5nZSBpbnZhbGlkYXRpb24gc3VwcG9ydCAoZm9yIGFjY2VsPW9uKS4gcmls PWF1dG8gIgorLSAgICAgICAgImlzIG5vdCBzdXBwb3J0ZWQuIik7CisrICAgICAgICAiRW5hYmxl L2Rpc2FibGUgcmFuZ2UgaW52YWxpZGF0aW9uIHN1cHBvcnQgKGZvciBhY2NlbD1vbikuICIKKysg ICAgICAgICJWYWxpZCB2YWx1ZXMgYXJlIG9uLCBvZmYsIGFuZCBhdXRvLiBEZWZhdWx0cyB0byBv bi4gIgorKyAgICAgICAgIkFueSBhdHRlbXB0IHRvIHR1cm4gaXQgJ29uJyB3aGlsZSB0aGUgaG9z dCBkb2VzIG5vdCBzdXBwb3J0ICIKKysgICAgICAgICJpdCB3b3VsZCBmYWlsLiIpOworICAgICBv YmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAiYXRzIiwKKyAgICAg ICAgICJFbmFibGUvZGlzYWJsZSBBVFMgc3VwcG9ydCAoZm9yIGFjY2VsPW9uKS4gIgorICAgICAg ICAgIlZhbGlkIHZhbHVlcyBhcmUgb24sIG9mZiwgYW5kIGF1dG8uIERlZmF1bHRzIHRvIG9mZi4g IgorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUlt cGxlbWVudC1hdXRvLXZhbHVlLWZvci1zc2lkc2l6LnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMt YWNjZWwtSW1wbGVtZW50LWF1dG8tdmFsdWUtZm9yLXNzaWRzaXoucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNjMzg1ZQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1o dy1hcm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1zc2lkc2l6LnBhdGNo CkBAIC0wLDAgKzEsMTQ1IEBACitGcm9tIDc1M2FjZTUyYzAxZGQ5ZGExMTc1ZTJlMThkMDYwZGM5 NDVjZDgwYWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOYXRoYW4gQ2hlbiA8bmF0 aGFuY0BudmlkaWEuY29tPgorRGF0ZTogTW9uLCA4IEp1biAyMDI2IDEwOjQ4OjU3IC0wNzAwCitT dWJqZWN0OiBbUEFUQ0ggMDcxLzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDogSW1wbGVtZW50ICJh dXRvIiB2YWx1ZSBmb3IKKyAic3NpZHNpemUiCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgor UkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFu ZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRy aWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxn c2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNzEvMTExXSBmNGM2ZTE0ZDU0ZWI3NDlmYmNj NjAxYWFlYjJiYmFjNTM5ODU5NjkwIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTog aHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC0xNjM1OTYKKworQWxsb3cg YWNjZWxlcmF0ZWQgU01NVXYzIFNTSUQgc2l6ZSBwcm9wZXJ0eSB0byBiZSBkZXJpdmVkIGZyb20g aG9zdAorSU9NTVUgY2FwYWJpbGl0aWVzLiBEZXJpdmUgaG9zdCB2YWx1ZXMgdXNpbmcgSU9NTVVf R0VUX0hXX0lORk8sCityZXRyaWV2aW5nIFNTSUQgc2l6ZSBmcm9tIElEUjEuIFdoZW4gdGhlIGF1 dG8gU1NJRCBzaXplIGlzIHJlc29sdmVkCit0byBhIG5vbi16ZXJvIHZhbHVlLCBQQVNJRCBjYXBh YmlsaXR5IGlzIGFkdmVydGlzZWQgdG8gdGhlIHZJT01NVQorYW5kIGFjY2VsZXJhdGVkIHVzZSBj YXNlcyBzdWNoIGFzIFNoYXJlZCBWaXJ0dWFsIEFkZHJlc3NpbmcgKFNWQSkKK2FyZSBzdXBwb3J0 ZWQuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS ZXZpZXdlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitT aWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYw ODE3NDkwMC4yMjI3MzQwLTctbmF0aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRl ciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCAxM2I5NDFhYWZmNDgwNjBjZTBiNWRjYTVhMmIzNDVhNmRjMjVjYjFjKQorU2lnbmVk LW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJt L3NtbXV2My1hY2NlbC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KKyBody9hcm0vc21tdXYzLmMg ICAgICAgfCAyMiArKysrKysrKysrKystLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAyNyBp bnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11 djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggMDI0M2UyOTJkOC4uMTgy Njc2MTU3ZCAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJt L3NtbXV2My1hY2NlbC5jCitAQCAtNjMsNiArNjMsMTEgQEAgc3RhdGljIHZvaWQgc21tdXYzX2Fj Y2VsX2F1dG9fZmluYWxpc2UoU01NVXYzU3RhdGUgKnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZJRUxEX0VYMzIoaW5mby0+aWRyWzNdLCBJRFIzLCBSSUwpKTsKKyAgICAgfQor IAorKyAgICBpZiAocy0+c3NpZHNpemUgPT0gU1NJRF9TSVpFX01PREVfQVVUTykgeworKyAgICAg ICAgcy0+aWRyWzFdID0gRklFTERfRFAzMihzLT5pZHJbMV0sIElEUjEsIFNTSURTSVpFLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKGluZm8tPmlkclsxXSwgSURS MSwgU1NJRFNJWkUpKTsKKysgICAgfQorKworICAgICBhY2NlbC0+YXV0b19maW5hbGlzZWQgPSB0 cnVlOworIH0KKyAKK0BAIC04MjMsNiArODI4LDEzIEBAIHN0YXRpYyBBZGRyZXNzU3BhY2UgKnNt bXV2M19hY2NlbF9maW5kX2FkZF9hcyhQQ0lCdXMgKmJ1cywgdm9pZCAqb3BhcXVlLAorICAgICB9 CisgfQorIAorK3N0YXRpYyBpbmxpbmUgYm9vbCBzbW11djNfcGFzaWRfc3VwcG9ydGVkKFNNTVV2 M1N0YXRlICpzKQorK3sKKysgICAgcmV0dXJuIHMtPnNzaWRzaXplID4gU1NJRF9TSVpFX01PREVf MCB8fAorKyAgICAgICAgICAgKHMtPnNzaWRzaXplID09IFNTSURfU0laRV9NT0RFX0FVVE8gJiYK KysgICAgICAgICAgICBGSUVMRF9FWDMyKHMtPmlkclsxXSwgSURSMSwgU1NJRFNJWkUpKTsKKyt9 CisrCisgc3RhdGljIHVpbnQ2NF90IHNtbXV2M19hY2NlbF9nZXRfdmlvbW11X2ZsYWdzKHZvaWQg Km9wYXF1ZSkKKyB7CisgICAgIC8qCitAQCAtODM1LDcgKzg0Nyw3IEBAIHN0YXRpYyB1aW50NjRf dCBzbW11djNfYWNjZWxfZ2V0X3Zpb21tdV9mbGFncyh2b2lkICpvcGFxdWUpCisgICAgIFNNTVVT dGF0ZSAqYnMgPSBvcGFxdWU7CisgICAgIFNNTVV2M1N0YXRlICpzID0gQVJNX1NNTVVWMyhicyk7 CisgCistICAgIGlmIChzLT5zc2lkc2l6ZSA+IFNTSURfU0laRV9NT0RFXzApIHsKKysgICAgaWYg KHNtbXV2M19wYXNpZF9zdXBwb3J0ZWQocykpIHsKKyAgICAgICAgIGZsYWdzIHw9IFZJT01NVV9G TEFHX1BBU0lEX1NVUFBPUlRFRDsKKyAgICAgfQorICAgICByZXR1cm4gZmxhZ3M7CitAQCAtOTcx LDcgKzk4Myw4IEBAIGJvb2wgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3RhdGUgKnMsIEVycm9y ICoqZXJycCkKKyAgICAgc21tdXYzX2FjY2VsX2FzX2luaXQocyk7CisgCisgICAgIGlmIChzLT5h dHMgPT0gT05fT0ZGX0FVVE9fQVVUTyB8fAorLSAgICAgICAgcy0+cmlsID09IE9OX09GRl9BVVRP X0FVVE8pIHsKKysgICAgICAgIHMtPnJpbCA9PSBPTl9PRkZfQVVUT19BVVRPIHx8CisrICAgICAg ICBzLT5zc2lkc2l6ZSA9PSBTU0lEX1NJWkVfTU9ERV9BVVRPKSB7CisgICAgICAgICBzLT5zX2Fj Y2VsLT5hdXRvX21vZGUgPSB0cnVlOworICAgICB9CisgCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3Nt bXV2My5jIGIvaHcvYXJtL3NtbXV2My5jCitpbmRleCA3OGVkMmE5ZGYxLi5iYzczNGZiNDc3IDEw MDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My5jCisrKysgYi9ody9hcm0vc21tdXYzLmMKK0BAIC02 MjYsNyArNjI2LDEwIEBAIHN0YXRpYyBpbnQgZGVjb2RlX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01N VVRyYW5zQ2ZnICpjZmcsCisgICAgIH0KKyAKKyAgICAgLyogTXVsdGlwbGUgY29udGV4dCBkZXNj cmlwdG9ycyByZXF1aXJlIFN1YnN0cmVhbUlEIHN1cHBvcnQgKi8KKy0gICAgaWYgKHMtPnNzaWRz aXplID09IFNTSURfU0laRV9NT0RFXzAgJiYgU1RFX1MxQ0RNQVgoc3RlKSAhPSAwKSB7CisrICAg IGlmICgocy0+c3NpZHNpemUgPT0gU1NJRF9TSVpFX01PREVfMCB8fAorKyAgICAgICAgIChzLT5z c2lkc2l6ZSA9PSBTU0lEX1NJWkVfTU9ERV9BVVRPICYmCisrICAgICAgICAgICFGSUVMRF9FWDMy KHMtPmlkclsxXSwgSURSMSwgU1NJRFNJWkUpKSkgJiYKKysgICAgICAgIFNURV9TMUNETUFYKHN0 ZSkgIT0gMCkgeworICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfVU5JTVAsCisgICAgICAgICAg ICAgICAgICJTTU1VdjM6IG11bHRpcGxlIFMxIGNvbnRleHQgZGVzY3JpcHRvcnMgcmVxdWlyZSBT dWJzdHJlYW1JRCBzdXBwb3J0LiAiCisgICAgICAgICAgICAgICAgICJDb25maWd1cmUgc3NpZHNp emUgPiAwIChyZXF1aXJlcyBhY2NlbD1vbilcbiIpOworQEAgLTE5NjUsMTAgKzE5NjgsNiBAQCBz dGF0aWMgdm9pZCBzbW11X3Jlc2V0X2V4aXQoT2JqZWN0ICpvYmosIFJlc2V0VHlwZSB0eXBlKQor IAorIHN0YXRpYyBib29sIHNtbXVfdmFsaWRhdGVfcHJvcGVydHkoU01NVXYzU3RhdGUgKnMsIEVy cm9yICoqZXJycCkKKyB7CistICAgIGlmIChzLT5zc2lkc2l6ZSA9PSBTU0lEX1NJWkVfTU9ERV9B VVRPKSB7CistICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJzc2lkc2l6ZSBhdXRvIG1vZGUgaXMg bm90IHN1cHBvcnRlZCIpOworLSAgICAgICAgcmV0dXJuIGZhbHNlOworLSAgICB9CisgICAgIGlm IChzLT5vYXMgIT0gT0FTX01PREVfNDQgJiYgcy0+b2FzICE9IE9BU19NT0RFXzQ4KSB7CisgICAg ICAgICBlcnJvcl9zZXRnKGVycnAsICJRRU1VIFNNTVV2MyBtb2RlbCBvbmx5IGltcGxlbWVudHMg NDQgYW5kIDQ4IGJpdCIKKyAgICAgICAgICAgICAgICAgICAgIk9BUzsgb3RoZXIgT2FzTW9kZSB2 YWx1ZXMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKK0BAIC0xOTg5LDcgKzE5ODgsOCBAQCBzdGF0aWMg Ym9vbCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnAp CisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgfQorICAgICAgICAgaWYgKHMt PnNzaWRzaXplID4gU1NJRF9TSVpFX01PREVfMCkgeworLSAgICAgICAgICAgIGVycm9yX3NldGco ZXJycCwgInNzaWRzaXplIGNhbiBvbmx5IGJlIHNldCBpZiBhY2NlbD1vbiIpOworKyAgICAgICAg ICAgIGVycm9yX3NldGcoZXJycCwgInNzaWRzaXplIGNhbiBvbmx5IGJlIGdyZWF0ZXIgdGhhbiAw ICIKKysgICAgICAgICAgICAgICAgICAgICAgICJiaXRzIGlmIGFjY2VsPW9uIik7CisgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHRydWU7CitA QCAtMjE3NSwxMSArMjE3NSwxMyBAQCBzdGF0aWMgdm9pZCBzbW11djNfY2xhc3NfaW5pdChPYmpl Y3RDbGFzcyAqa2xhc3MsIGNvbnN0IHZvaWQgKmRhdGEpCisgICAgICAgICAiYXJlIDQ0IG9yIDQ4 IGJpdHMuIERlZmF1bHRzIHRvIDQ0IGJpdHMuIG9hcz1hdXRvIGlzIG5vdCAiCisgICAgICAgICAi c3VwcG9ydGVkLiIpOworICAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9u KGtsYXNzLCAic3NpZHNpemUiLAorLSAgICAgICAgIk51bWJlciBvZiBiaXRzIHVzZWQgdG8gcmVw cmVzZW50IFN1YnN0cmVhbUlEcyAoU1NJRHMpLiAiCisrICAgICAgICAiU2V0IG51bWJlciBvZiBi aXRzIHVzZWQgdG8gcmVwcmVzZW50IFN1YnN0cmVhbUlEcyAoU1NJRHMpLiAiCisrICAgICAgICAi VmFsaWQgdmFsdWVzIGFyZSAwLTIwIGFuZCBhdXRvLiBEZWZhdWx0cyB0byAwLiAiCisgICAgICAg ICAiQSB2YWx1ZSBvZiBOIGFsbG93cyBTU0lEcyBpbiB0aGUgcmFuZ2UgWzAgLi4gMl5OIC0gMV0u ICIKKy0gICAgICAgICJWYWxpZCByYW5nZSBpcyAwLTIwLCB3aGVyZSAwIGRpc2FibGVzIFN1YnN0 cmVhbUlEIHN1cHBvcnQuICIKKy0gICAgICAgICJEZWZhdWx0cyB0byAwLiBBIHZhbHVlIGdyZWF0 ZXIgdGhhbiAwIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSAiCistICAgICAgICAiUEFTSUQgc3VwcG9y dC4gc3NpZHNpemU9YXV0byBpcyBub3Qgc3VwcG9ydGVkLiIpOworKyAgICAgICAgIkEgdmFsdWUg b2YgMCBkaXNhYmxlcyBTdWJzdHJlYW1JRCBzdXBwb3J0LiBBIHZhbHVlIGdyZWF0ZXIgIgorKyAg ICAgICAgInRoYW4gMCBpcyByZXF1aXJlZCB0byBlbmFibGUgUEFTSUQgc3VwcG9ydC4iCisrICAg ICAgICAiUGxlYXNlIGVuc3VyZSB0aGUgdmFsdWUgZG9lcyBub3QgZXhjZWVkIHRoZSBtYXhpbXVt ICIKKysgICAgICAgICJTdWJzdHJlYW1JRCBzaXplIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBwbGF0 Zm9ybS4iKTsKKyB9CisgCisgc3RhdGljIGludCBzbW11djNfbm90aWZ5X2ZsYWdfY2hhbmdlZChJ T01NVU1lbW9yeVJlZ2lvbiAqaW9tbXUsCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3Zt LWh3LWFybS1zbW11djMtYWNjZWwtSW1wbGVtZW50LWdldF9tc2lfZGlyZWN0X2dwYS1jYWwucGF0 Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtZ2V0X21zaV9kaXJlY3RfZ3Bh LWNhbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODFkNTE2Ci0t LSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW1wbGVtZW50LWdldF9t c2lfZGlyZWN0X2dwYS1jYWwucGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK0Zyb20gZjgyNmNiOTdl OWRlOGM3YmM4ZmFlN2I4MWIzODBkMGU3NzI2ZmI4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTog VGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSArMDAwMAorU3ViamVjdDogW1BBVENIIDAyNS8xMTFd IGh3L2FybS9zbW11djMtYWNjZWw6IEltcGxlbWVudCBnZXRfbXNpX2RpcmVjdF9ncGEKKyBjYWxs YmFjaworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBT TU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmly YTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhh dC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNv bW1pdDogWzI1LzExMV0gYWZjNmE4ZDA3ZTJkYjkyN2FlZDg0NDNkMTczYjY2ZmMzZjhmNjQ1OSAo ZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lh bi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworQWNjZWxlcmF0ZWQgU01NVXYzIGluc3RhbmNlcyBy ZWx5IG9uIHRoZSBwaHlzaWNhbCBTTU1VdjMgZm9yIG5lc3RlZAordHJhbnNsYXRpb24gKGd1ZXN0 IFN0YWdlLTEsIGhvc3QgU3RhZ2UtMikuIEluIHRoaXMgbW9kZSwgdGhlIGd1ZXN0IFN0YWdlLTEK K3RhYmxlcyBhcmUgcHJvZ3JhbW1lZCBkaXJlY3RseSBpbnRvIGhhcmR3YXJlLCBhbmQgUUVNVSBt dXN0IG5vdCBhdHRlbXB0IHRvCit3YWxrIHRoZW0gZm9yIHRyYW5zbGF0aW9uLCBhcyBkb2luZyBz byBpcyBub3QgcmVsaWFibHkgc2FmZS4gRm9yIHZmaW8tcGNpCitlbmRwb2ludHMgYmVoaW5kIHN1 Y2ggYSB2U01NVSwgdGhlIG9ubHkgdHJhbnNsYXRpb24gUUVNVSBuZWVkcyB0byBwZXJmb3JtCitp cyBmb3IgdGhlIE1TSSBkb29yYmVsbCB1c2VkIGR1cmluZyBLVk0gTVNJIHNldHVwLgorCitJbXBs ZW1lbnQgdGhlIGNhbGxiYWNrIHNvIHRoYXQga3ZtX2FyY2hfZml4dXBfbXNpX3JvdXRlKCkgY2Fu IHJldHJpZXZlIHRoZQorTVNJIGRvb3JiZWxsIEdQQSBkaXJlY3RseSwgaW5zdGVhZCBvZiBhdHRl bXB0aW5nIGEgc29mdHdhcmUgd2FsayBvZiB0aGUKK2d1ZXN0IHRyYW5zbGF0aW9uIHRhYmxlcy4K KworQWxzbyBpbnRyb2R1Y2UgYW4gU01NVXYzIGRldmljZSBwcm9wZXJ0eSB0byBjYXJyeSB0aGUg TVNJIGRvb3JiZWxsIEdQQS4KK1RoaXMgcHJvcGVydHkgd2lsbCBiZSBzZXQgYnkgdGhlIHZpcnQg bWFjaGluZSBpbiBhIHN1YnNlcXVlbnQgcGF0Y2guCisKK1Jldmlld2VkLWJ5OiBOaWNvbGluIENo ZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+ CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWku Y29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRp YS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMTgtc2tvbG90aHVtdGhv QG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxA bGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDM1NThjODUzOTJhNDZkYjA2 NGViOTgzNjMzZGU5OThhMjVlYTk3MDUpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFjY2VsLmMgICB8IDEwICsr KysrKysrKysKKyBody9hcm0vc21tdXYzLmMgICAgICAgICB8ICAyICsrCisgaW5jbHVkZS9ody9h cm0vc21tdXYzLmggfCAgMSArCisgMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2Vs LmMKK2luZGV4IGMxMjU5NzRkMTIuLmM2ZWUxMjNjZGYgMTAwNjQ0CistLS0gYS9ody9hcm0vc21t dXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTM5Myw2ICszOTMs MTUgQEAgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX3Vuc2V0X2lvbW11X2RldmljZShQQ0lCdXMg KmJ1cywgdm9pZCAqb3BhcXVlLAorICAgICB9CisgfQorIAorK3N0YXRpYyB1aW50NjRfdCBzbW11 djNfYWNjZWxfZ2V0X21zaV9ncGEoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50IGRldmZu KQorK3sKKysgICAgU01NVVN0YXRlICpicyA9IG9wYXF1ZTsKKysgICAgU01NVXYzU3RhdGUgKnMg PSBBUk1fU01NVVYzKGJzKTsKKysKKysgICAgZ19hc3NlcnQocy0+bXNpX2dwYSk7CisrICAgIHJl dHVybiBzLT5tc2lfZ3BhOworK30KKysKKyAvKgorICAqIE9ubHkgYWxsb3cgUENJZSBicmlkZ2Vz LCBweGItcGNpZSByb290cywgYW5kIEdQRVggcm9vdHMgc28gdmZpby1wY2kKKyAgKiBlbmRwb2lu dHMgY2FuIHNpdCBkb3duc3RyZWFtLiBBY2NlbGVyYXRlZCBTTU1VdjMgcmVxdWlyZXMgYSB2Zmlv LXBjaQorQEAgLTQ5Nyw2ICs1MDYsNyBAQCBzdGF0aWMgY29uc3QgUENJSU9NTVVPcHMgc21tdXYz X2FjY2VsX29wcyA9IHsKKyAgICAgLmdldF92aW9tbXVfZmxhZ3MgPSBzbW11djNfYWNjZWxfZ2V0 X3Zpb21tdV9mbGFncywKKyAgICAgLnNldF9pb21tdV9kZXZpY2UgPSBzbW11djNfYWNjZWxfc2V0 X2lvbW11X2RldmljZSwKKyAgICAgLnVuc2V0X2lvbW11X2RldmljZSA9IHNtbXV2M19hY2NlbF91 bnNldF9pb21tdV9kZXZpY2UsCisrICAgIC5nZXRfbXNpX2RpcmVjdF9ncGEgPSBzbW11djNfYWNj ZWxfZ2V0X21zaV9ncGEsCisgfTsKKyAKKyAvKiBCYXNlZCBvbiBTTVVVdjMgR1BCQS5BQk9SVCBj b25maWd1cmF0aW9uLCBhdHRhY2ggYSBjb3JyZXNwb25kaW5nIEhXUFQgKi8KK2RpZmYgLS1naXQg YS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IDQyYzYwYjFlYzguLmYw MmUzZWU0NmMgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11 djMuYworQEAgLTE5OTgsNiArMTk5OCw4IEBAIHN0YXRpYyBjb25zdCBQcm9wZXJ0eSBzbW11djNf cHJvcGVydGllc1tdID0geworICAgICAgKiBEZWZhdWx0cyB0byBzdGFnZSAxCisgICAgICAqLwor ICAgICBERUZJTkVfUFJPUF9TVFJJTkcoInN0YWdlIiwgU01NVXYzU3RhdGUsIHN0YWdlKSwKKysg ICAgLyogR1BBIG9mIE1TSSBkb29yYmVsbCwgZm9yIFNNTVV2MyBhY2NlbCB1c2UuICovCisrICAg IERFRklORV9QUk9QX1VJTlQ2NCgibXNpLWdwYSIsIFNNTVV2M1N0YXRlLCBtc2lfZ3BhLCAwKSwK KyB9OworIAorIHN0YXRpYyB2b2lkIHNtbXV2M19pbnN0YW5jZV9pbml0KE9iamVjdCAqb2JqKQor ZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21t dXYzLmgKK2luZGV4IGU1NGVjZTJkMzguLjU2MTZhOGEyYmUgMTAwNjQ0CistLS0gYS9pbmNsdWRl L2h3L2FybS9zbW11djMuaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC02Nyw2 ICs2Nyw3IEBAIHN0cnVjdCBTTU1VdjNTdGF0ZSB7CisgICAgIC8qIFNNTVUgaGFzIEhXIGFjY2Vs ZXJhdG9yIHN1cHBvcnQgZm9yIG5lc3RlZCBTMSArIHMyICovCisgICAgIGJvb2wgYWNjZWw7Cisg ICAgIHN0cnVjdCBTTU1VdjNBY2NlbFN0YXRlICpzX2FjY2VsOworKyAgICB1aW50NjRfdCBtc2lf Z3BhOworIH07CisgCisgdHlwZWRlZiBlbnVtIHsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1Jbml0aWFsaXplLXNoYXJlZC1zeXN0ZW0tYWRkcmVz cy5wYXRjaCBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUluaXRpYWxpemUtc2hhcmVkLXN5c3Rl bS1hZGRyZXNzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMGQ1 OTkKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1Jbml0aWFsaXpl LXNoYXJlZC1zeXN0ZW0tYWRkcmVzcy5wYXRjaApAQCAtMCwwICsxLDkzIEBACitGcm9tIGU5ZmE3 MTAwMzlhNzEwMTViMGRmY2ZmOTc1ZTVlZTE2ZmIxZjMxMGYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0Rh dGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMDgv MTExXSBody9hcm0vc21tdXYzLWFjY2VsOiBJbml0aWFsaXplIHNoYXJlZCBzeXN0ZW0gYWRkcmVz cworIHNwYWNlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhv cjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1 MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitS SC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdA cmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgor UkgtQ29tbWl0OiBbOC8xMTFdIDY5NmZkYjMxYjM5ZDI3ZjMyOWQ2OGJjMGQ4YWNkNDY4NmVmN2Y1 OTYgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxh c3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK1RvIHN1cHBvcnQgYWNjZWxlcmF0ZWQgU01N VXYzIGluc3RhbmNlcywgaW50cm9kdWNlIGEgc2hhcmVkIHN5c3RlbS13aWRlCitBZGRyZXNzU3Bh Y2UgKHNoYXJlZF9hc19zeXNtZW0pIHRoYXQgYWxpYXNlcyB0aGUgZ2xvYmFsIHN5c3RlbSBtZW1v cnkuCitUaGlzIHNoYXJlZCBBZGRyZXNzU3BhY2Ugd2lsbCBiZSB1c2VkIGluIGEgc3Vic2VxdWVu dCBwYXRjaCBmb3IgYWxsCit2ZmlvLXBjaSBkZXZpY2VzIGJlaGluZCBhbGwgYWNjZWxlcmF0ZWQg U01NVXYzIGluc3RhbmNlcyB3aXRoaW4gYSBWTS4KKworU2hhcmluZyBhIHNpbmdsZSBzeXN0ZW0g QWRkcmVzc1NwYWNlIGVuc3VyZXMgdGhhdCBhbGwgZGV2aWNlcyBiZWhpbmQKK2FjY2VsZXJhdGVk IFNNTVV2M3MgdXNlIHRoZSBzYW1lIHN5c3RlbSBhZGRyZXNzIHNwYWNlIHBvaW50ZXIuIFRoaXMK K2FsbG93cyBWRklPL2lvbW11ZmQgdG8gcmV1c2UgYSBzaW5nbGUgSU9BUyBJRCBpbiBpb21tdWZk X2NkZXZfYXR0YWNoKCksCitlbmFibGluZyB0aGUgU3RhZ2UtMiBwYWdlIHRhYmxlcyB0byBiZSBz aGFyZWQgd2l0aGluIHRoZSBWTSByYXRoZXIgdGhhbgorZHVwbGljYXRlZCBmb3IgZWFjaCBTTU1V djMgaW5zdGFuY2UuCisKK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRp YS5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBo dWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNv bT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Rl c3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1i eTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlk OiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtNy1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVk LW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgN2Q3OTMxMjU3ZDZmNzQ4ZDhmMGNkNTk1OTUyNDI1YzE5Njcw ZjBiNSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K Ky0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysr KysrCisgMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3 L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggOTllZjBk YjhjNC4uYjJlZGVkNzQzZSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysr IGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtMTEsNiArMTEsMTQgQEAKKyAjaW5jbHVkZSAi aHcvYXJtL3NtbXV2My5oIgorICNpbmNsdWRlICJzbW11djMtYWNjZWwuaCIKKyAKKysvKgorKyAq IFRoZSByb290IHJlZ2lvbiBhbGlhc2VzIHRoZSBnbG9iYWwgc3lzdGVtIG1lbW9yeSwgYW5kIHNo YXJlZF9hc19zeXNtZW0KKysgKiBwcm92aWRlcyBhIHNoYXJlZCBBZGRyZXNzIFNwYWNlIHJlZmVy ZW5jaW5nIGl0LiBUaGlzIEFkZHJlc3MgU3BhY2UgaXMgdXNlZAorKyAqIGJ5IGFsbCB2ZmlvLXBj aSBkZXZpY2VzIGJlaGluZCBhbGwgYWNjZWxlcmF0ZWQgU01NVXYzIGluc3RhbmNlcyB3aXRoaW4g YSBWTS4KKysgKi8KKytzdGF0aWMgTWVtb3J5UmVnaW9uIHJvb3QsIHN5c21lbTsKKytzdGF0aWMg QWRkcmVzc1NwYWNlICpzaGFyZWRfYXNfc3lzbWVtOworKworIHN0YXRpYyBTTU1VdjNBY2NlbERl dmljZSAqc21tdXYzX2FjY2VsX2dldF9kZXYoU01NVVN0YXRlICpicywgU01NVVBjaUJ1cyAqc2J1 cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSUJ1 cyAqYnVzLCBpbnQgZGV2Zm4pCisgeworQEAgLTUxLDkgKzU5LDI3IEBAIHN0YXRpYyBjb25zdCBQ Q0lJT01NVU9wcyBzbW11djNfYWNjZWxfb3BzID0geworICAgICAuZ2V0X2FkZHJlc3Nfc3BhY2Ug PSBzbW11djNfYWNjZWxfZmluZF9hZGRfYXMsCisgfTsKKyAKKytzdGF0aWMgdm9pZCBzbW11djNf YWNjZWxfYXNfaW5pdChTTU1VdjNTdGF0ZSAqcykKKyt7CisrCisrICAgIGlmIChzaGFyZWRfYXNf c3lzbWVtKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgbWVtb3J5X3JlZ2lv bl9pbml0KCZyb290LCBPQkpFQ1QocyksICJyb290IiwgVUlOVDY0X01BWCk7CisrICAgIG1lbW9y eV9yZWdpb25faW5pdF9hbGlhcygmc3lzbWVtLCBPQkpFQ1QocyksICJzbW11djMtYWNjZWwtc3lz bWVtIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9zeXN0ZW1fbWVtb3J5KCks IDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnlfcmVnaW9uX3NpemUoZ2V0 X3N5c3RlbV9tZW1vcnkoKSkpOworKyAgICBtZW1vcnlfcmVnaW9uX2FkZF9zdWJyZWdpb24oJnJv b3QsIDAsICZzeXNtZW0pOworKworKyAgICBzaGFyZWRfYXNfc3lzbWVtID0gZ19uZXcwKEFkZHJl c3NTcGFjZSwgMSk7CisrICAgIGFkZHJlc3Nfc3BhY2VfaW5pdChzaGFyZWRfYXNfc3lzbWVtLCAm cm9vdCwgInNtbXV2My1hY2NlbC1hcy1zeXNtZW0iKTsKKyt9CisrCisgdm9pZCBzbW11djNfYWNj ZWxfaW5pdChTTU1VdjNTdGF0ZSAqcykKKyB7CisgICAgIFNNTVVTdGF0ZSAqYnMgPSBBUk1fU01N VShzKTsKKyAKKyAgICAgYnMtPmlvbW11X29wcyA9ICZzbW11djNfYWNjZWxfb3BzOworKyAgICBz bW11djNfYWNjZWxfYXNfaW5pdChzKTsKKyB9CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEv a3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW5zdGFsbC1TTU1VdjMtR0JQQS1iYXNlZC1od3B0LnBh dGNoIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW5zdGFsbC1TTU1VdjMtR0JQQS1iYXNlZC1o d3B0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NDM3MmEKLS0t IC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbnN0YWxsLVNNTVV2My1H QlBBLWJhc2VkLWh3cHQucGF0Y2gKQEAgLTAsMCArMSwxMzQgQEAKK0Zyb20gYjk1Y2I5OTI0Mjk0 ZGEyOTZjYWRkZmNkMzdhZDE1ZWE0NWYwZDg2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVGh1 LCAyOSBKYW4gMjAyNiAxMzozMjowNCArMDAwMAorU3ViamVjdDogW1BBVENIIDAyMy8xMTFdIGh3 L2FybS9zbW11djMtYWNjZWw6IEluc3RhbGwgU01NVXYzIEdCUEEgYmFzZWQgaHdwdAorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzIzLzEx MV0gNmVmY2M2MWJmMzA0ZWIxYWI1NTQzMzRjMjBhOTYzMTIxYjMzMTA4YyAoZWF1Z2VyMS9jZW50 b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3Nl L1JIRUwtNzM3OTQKKworT24gZ3Vlc3QgcmVib290IG9yIG9uIEdCUEEgdXBkYXRlLCBhdHRhY2gg YSBuZXN0ZWQgSFdQVCBiYXNlZCBvbiB0aGUKK0dQQkEuQUJPUlQgYml0IHdoaWNoIGVpdGhlciBh Ym9ydHMgYWxsIGluY29taW5nIHRyYW5zYWN0aW9ucyBvciBieXBhc3NlcwordGhlbS4KKworUmV2 aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5 OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFu Z2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25h dGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1 Mzk2NS0xNi1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5 ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgYjZiODY3YjljMTZkNDc5YWYwYmE5NWFjNzE0MTFhMGZmNzg4MjIwYSkKK1NpZ25lZC1vZmYt Ynk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11 djMtYWNjZWwuYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGh3 L2FybS9zbW11djMtYWNjZWwuaCB8ICA5ICsrKysrKysrKworIGh3L2FybS9zbW11djMuYyAgICAg ICB8ICAyICsrCisgMyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4 IDg3N2I3ZTBlMTcuLmMxMjU5NzRkMTIgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2Vs LmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTQ5OSw2ICs0OTksNDIgQEAgc3Rh dGljIGNvbnN0IFBDSUlPTU1VT3BzIHNtbXV2M19hY2NlbF9vcHMgPSB7CisgICAgIC51bnNldF9p b21tdV9kZXZpY2UgPSBzbW11djNfYWNjZWxfdW5zZXRfaW9tbXVfZGV2aWNlLAorIH07CisgCisr LyogQmFzZWQgb24gU01VVXYzIEdQQkEuQUJPUlQgY29uZmlndXJhdGlvbiwgYXR0YWNoIGEgY29y cmVzcG9uZGluZyBIV1BUICovCisrYm9vbCBzbW11djNfYWNjZWxfYXR0YWNoX2dicGFfaHdwdChT TU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorK3sKKysgICAgU01NVXYzQWNjZWxTdGF0ZSAq YWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2Owor KyAgICBFcnJvciAqbG9jYWxfZXJyID0gTlVMTDsKKysgICAgYm9vbCBhbGxfb2sgPSB0cnVlOwor KyAgICB1aW50MzJfdCBod3B0X2lkOworKworKyAgICBpZiAoIWFjY2VsIHx8ICFhY2NlbC0+dmlv bW11KSB7CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgfQorKworKyAgICBod3B0X2lkID0g c21tdXYzX2FjY2VsX2dicGFfaHdwdChzLCBhY2NlbCk7CisrICAgIFFMSVNUX0ZPUkVBQ0goYWNj ZWxfZGV2LCAmYWNjZWwtPmRldmljZV9saXN0LCBuZXh0KSB7CisrICAgICAgICBpZiAoIWhvc3Rf aW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoYWNjZWxfZGV2LT5pZGV2LCBod3B0X2lk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZs b2NhbF9lcnIpKSB7CisrICAgICAgICAgICAgZXJyb3JfYXBwZW5kX2hpbnQoJmxvY2FsX2Vyciwg IkZhaWxlZCB0byBhdHRhY2ggR0JQQSBod3B0ICV1IGZvciAiCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImlkZXYgZGV2aWQgJXUiLCBod3B0X2lkLCBhY2NlbF9kZXYtPmlkZXYtPmRl dmlkKTsKKysgICAgICAgICAgICBlcnJvcl9yZXBvcnRfZXJyKGxvY2FsX2Vycik7CisrICAgICAg ICAgICAgbG9jYWxfZXJyID0gTlVMTDsKKysgICAgICAgICAgICBhbGxfb2sgPSBmYWxzZTsKKysg ICAgICAgIH0KKysgICAgfQorKyAgICBpZiAoIWFsbF9vaykgeworKyAgICAgICAgZXJyb3Jfc2V0 ZyhlcnJwLCAiRmFpbGVkIHRvIGF0dGFjaCBhbGwgR0JQQSBiYXNlZCBIV1BUcyBwcm9wZXJseSIp OworKyAgICB9CisrICAgIHJldHVybiBhbGxfb2s7CisrfQorKworK3ZvaWQgc21tdXYzX2FjY2Vs X3Jlc2V0KFNNTVV2M1N0YXRlICpzKQorK3sKKysgICAgIC8qIEF0dGFjaCBhIEhXUFQgYmFzZWQg b24gR0JQQSByZXNldCB2YWx1ZSAqLworKyAgICAgc21tdXYzX2FjY2VsX2F0dGFjaF9nYnBhX2h3 cHQocywgTlVMTCk7CisrfQorKworIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hc19pbml0KFNN TVV2M1N0YXRlICpzKQorIHsKKyAKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmgg Yi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK2luZGV4IDRlMjBiNjQ2ZGMuLmM3ZWQ0ZGNlM2EgMTAw NjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmgKKysrKyBiL2h3L2FybS9zbW11djMtYWNj ZWwuaAorQEAgLTQ2LDYgKzQ2LDggQEAgYm9vbCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGUoU01N VXYzU3RhdGUgKnMsIFNNTVVEZXZpY2UgKnNkZXYsIGludCBzaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKTsKKyBib29sIHNtbXV2M19hY2NlbF9pbnN0YWxs X3N0ZV9yYW5nZShTTU1VdjNTdGF0ZSAqcywgU01NVVNJRFJhbmdlICpyYW5nZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApOworK2Jvb2wgc21tdXYz X2FjY2VsX2F0dGFjaF9nYnBhX2h3cHQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCk7Cisr dm9pZCBzbW11djNfYWNjZWxfcmVzZXQoU01NVXYzU3RhdGUgKnMpOworICNlbHNlCisgc3RhdGlj IGlubGluZSB2b2lkIHNtbXV2M19hY2NlbF9pbml0KFNNTVV2M1N0YXRlICpzKQorIHsKK0BAIC02 Miw2ICs2NCwxMyBAQCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGVfcmFuZ2UoU01NVXYzU3RhdGUg KnMsIFNNTVVTSURSYW5nZSAqcmFuZ2UsCisgeworICAgICByZXR1cm4gdHJ1ZTsKKyB9Cisrc3Rh dGljIGlubGluZSBib29sIHNtbXV2M19hY2NlbF9hdHRhY2hfZ2JwYV9od3B0KFNNTVV2M1N0YXRl ICpzLCBFcnJvciAqKmVycnApCisreworKyAgICByZXR1cm4gdHJ1ZTsKKyt9Cisrc3RhdGljIGlu bGluZSB2b2lkIHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNTdGF0ZSAqcykKKyt7CisrfQorICNl bmRpZgorIAorICNlbmRpZiAvKiBIV19BUk1fU01NVVYzX0FDQ0VMX0ggKi8KK2RpZmYgLS1naXQg YS9ody9hcm0vc21tdXYzLmMgYi9ody9hcm0vc21tdXYzLmMKK2luZGV4IGJmYjQxYjg4NjYuLjQy YzYwYjFlYzggMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11 djMuYworQEAgLTE2MDAsNiArMTYwMCw3IEBAIHN0YXRpYyBNZW1UeFJlc3VsdCBzbW11X3dyaXRl bChTTU1VdjNTdGF0ZSAqcywgaHdhZGRyIG9mZnNldCwKKyAgICAgICAgIGlmIChkYXRhICYgUl9H QlBBX1VQREFURV9NQVNLKSB7CisgICAgICAgICAgICAgLyogSWdub3JlIHVwZGF0ZSBiaXQgYXMg d3JpdGUgaXMgc3luY2hyb25vdXMuICovCisgICAgICAgICAgICAgcy0+Z2JwYSA9IGRhdGEgJiB+ Ul9HQlBBX1VQREFURV9NQVNLOworKyAgICAgICAgICAgIHNtbXV2M19hY2NlbF9hdHRhY2hfZ2Jw YV9od3B0KHMsICZsb2NhbF9lcnIpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAg IGNhc2UgQV9TVFJUQUJfQkFTRTogLyogNjRiICovCitAQCAtMTg4Nyw2ICsxODg4LDcgQEAgc3Rh dGljIHZvaWQgc21tdV9yZXNldF9leGl0KE9iamVjdCAqb2JqLCBSZXNldFR5cGUgdHlwZSkKKyAg ICAgfQorIAorICAgICBzbW11djNfaW5pdF9yZWdzKHMpOworKyAgICBzbW11djNfYWNjZWxfcmVz ZXQocyk7CisgfQorIAorIHN0YXRpYyB2b2lkIHNtbXVfcmVhbGl6ZShEZXZpY2VTdGF0ZSAqZCwg RXJyb3IgKiplcnJwKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21t dXYzLWFjY2VsLUludHJvZHVjZS1DTURRVi1vcHMtaW50ZXJmYWNlLnBhdGNoIGIva3ZtLWh3LWFy bS1zbW11djMtYWNjZWwtSW50cm9kdWNlLUNNRFFWLW9wcy1pbnRlcmZhY2UucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkxN2M2ZgotLS0gL2Rldi9udWxsCisrKyBi L2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUludHJvZHVjZS1DTURRVi1vcHMtaW50ZXJmYWNlLnBh dGNoCkBAIC0wLDAgKzEsMTEyIEBACitGcm9tIGI1MWMyYWJlYTgxZDg3ZWQ3MDAxM2Y5MDA0Yjcx NmQ0MjY0ZmY4MzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90 aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoy NToyNyArMDEwMAorU3ViamVjdDogW1BBVENIIDA4NC8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6 IEludHJvZHVjZSBDTURRViBvcHMgaW50ZXJmYWNlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29t PgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1V IGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPD qWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFu IDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbODQvMTExXSBkMGViZTI2OTQ1MjRhNWU1 M2U4MzBhOTYzNmIyNTM3MWMwOWM4MjBhIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklS QTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitDb21t YW5kIFF1ZXVlIFZpcnR1YWxpemF0aW9uIChDTURRVikgaXMgYSBoYXJkd2FyZSBleHRlbnNpb24g YXZhaWxhYmxlCitvbiBjZXJ0YWluIHBsYXRmb3JtcyB0aGF0IGFsbG93cyB0aGUgU01NVXYzIGNv bW1hbmQgcXVldWUgdG8gYmUKK3ZpcnR1YWxpemVkIGFuZCBwYXNzZWQgdGhyb3VnaCB0byBhIFZN LCBpbXByb3ZpbmcgcGVyZm9ybWFuY2UuCisKK0ZvciBleGFtcGxlLCBOVklESUEgVGVncmEyNDEg aW1wbGVtZW50cyBDTURRViB0byBzdXBwb3J0IHZpcnR1YWxpemF0aW9uCitvZiBtdWx0aXBsZSBj b21tYW5kIHF1ZXVlcyAoVkNNRFFzKS4KKworVGhlIHRlcm0gQ01EUVYgaXMgdXNlZCBoZXJlIGdl bmVyaWNhbGx5IHRvIHJlZmVyIHRvIGFueSBwbGF0Zm9ybSB0aGF0Citwcm92aWRlcyBoYXJkd2Fy ZSBzdXBwb3J0IHRvIHZpcnR1YWxpemUgdGhlIFNNTVV2MyBjb21tYW5kIHF1ZXVlLgorCitDTURR ViBzdXBwb3J0IGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgdGhlIElPTU1VRkQtYmFja2VkIGFjY2Vs ZXJhdGVkCitTTU1VdjMgcGF0aC4gSW50cm9kdWNlIGFuIG9wcyBpbnRlcmZhY2UgdG8gZmFjdG9y IG91dCBDTURRVi1zcGVjaWZpYworcHJvYmUsIGluaXRpYWxpemF0aW9uLCBhbmQgdklPTU1VIGFs bG9jYXRpb24gbG9naWMgZnJvbSB0aGUgYmFzZQoraW1wbGVtZW50YXRpb24uIFRoZSBvcHMgcG9p bnRlciBhbmQgYXNzb2NpYXRlZCBzdGF0ZSBhcmUgc3RvcmVkIGluCit0aGUgYWNjZWxlcmF0ZWQg U01NVXYzIHN0YXRlLgorCitUaGlzIHByb3ZpZGVzIGFuIGV4dGVuc2libGUgZGVzaWduIHRvIHN1 cHBvcnQgZnV0dXJlIHZlbmRvci1zcGVjaWZpYworQ01EUVYgaW1wbGVtZW50YXRpb25zLgorCitO byBmdW5jdGlvbmFsIGNoYW5nZS4KKworUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xp bmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEu Y29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Np Z25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgor VGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlk OiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktNy1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVk LW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgNDkxMjExMWM2ODJmOTY0OTE3NjAyNmM1Y2UwMTM3YzI1ZGM5 MWI0YSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K Ky0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuaCB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5oIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5oCitpbmRl eCBkODljMTE3ZmQxLi44NDkwMTVmOThlIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2Nl bC5oCisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK0BAIC0xMCwxMiArMTAsNDUgQEAKKyAj ZGVmaW5lIEhXX0FSTV9TTU1VVjNfQUNDRUxfSAorIAorICNpbmNsdWRlICJody9hcm0vc21tdS1j b21tb24uaCIKKysjaW5jbHVkZSAiaHcvYXJtL3NtbXV2My5oIgorICNpbmNsdWRlICJzeXN0ZW0v aW9tbXVmZC5oIgorICNpZmRlZiBDT05GSUdfTElOVVgKKyAjaW5jbHVkZSA8bGludXgvaW9tbXVm ZC5oPgorICNlbmRpZgorICNpbmNsdWRlIENPTkZJR19ERVZJQ0VTCisgCisrLyoKKysgKiBDTURR LVZpcnR1YWxpemF0aW9uIChDTURRVikgaGFyZHdhcmUgc3VwcG9ydCwgZXh0ZW5kcyB0aGUgU01N VXYzIHRvCisrICogc3VwcG9ydCBtdWx0aXBsZSBWQ01EUXMgd2l0aCB2aXJ0dWFsaXphdGlvbiBj YXBhYmlsaXRpZXMuCisrICogQ01EUVYgc3BlY2lmaWMgYmVoYXZpb3IgaXMgZmFjdG9yZWQgYmVo aW5kIHRoaXMgb3BzIGludGVyZmFjZS4KKysgKi8KKyt0eXBlZGVmIHN0cnVjdCBTTU1VdjNBY2Nl bENtZHF2T3BzIHsKKysgICAgLyoqCisrICAgICAqIEBwcm9iZTogTWFuZGF0b3J5LiBWZW5kb3It c3BlY2lmaWMgZGV2aWNlIHByb2JpbmcuCisrICAgICAqLworKyAgICBib29sICgqcHJvYmUpKFNN TVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LCBFcnJvciAqKmVycnAp OworKyAgICAvKioKKysgICAgICogQGluaXQ6IE9wdGlvbmFsIGNhbGxiYWNrLiBJbml0aWFsaXpl IENNRFFWIGhhcmR3YXJlLgorKyAgICAgKi8KKysgICAgYm9vbCAoKmluaXQpKFNNTVV2M1N0YXRl ICpzLCBFcnJvciAqKmVycnApOworKyAgICAvKioKKysgICAgICogQGFsbG9jX3Zpb21tdTogTWFu ZGF0b3J5LiBBbGxvY2F0ZSBDTURRViB2aW9tbXUgcmVzb3VyY2VzLgorKyAgICAgKi8KKysgICAg Ym9vbCAoKmFsbG9jX3Zpb21tdSkoU01NVXYzU3RhdGUgKnMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisrICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICpvdXRfdmlvbW11X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICBFcnJvciAqKmVycnApOworKyAgICAvKioKKysgICAgICogQGZyZWVfdmlvbW11OiBPcHRpb25h bCBjYWxsYmFjay4gRnJlZSBDTURRViB2aW9tbXUgcmVzb3VyY2VzLgorKyAgICAgKiBJZiBOVUxM LCB0aGUgdmlvbW11X2lkIGlzIGZyZWVkIGRpcmVjdGx5IHZpYSBpb21tdWZkX2JhY2tlbmRfZnJl ZV9pZCgpLgorKyAgICAgKi8KKysgICAgdm9pZCAoKmZyZWVfdmlvbW11KShTTU1VdjNTdGF0ZSAq cyk7CisrICAgIC8qKgorKyAgICAgKiBAcmVzZXQ6IE9wdGlvbmFsIGNhbGxiYWNrLiBSZXNldCBD TURRViBzdGF0ZS4KKysgICAgICovCisrICAgIHZvaWQgKCpyZXNldCkoU01NVXYzU3RhdGUgKnMp OworK30gU01NVXYzQWNjZWxDbWRxdk9wczsKKysKKyAvKgorICAqIFJlcHJlc2VudHMgYW4gYWNj ZWxlcmF0ZWQgU01NVSBpbnN0YW5jZSBiYWNrZWQgYnkgYW4gaW9tbXVmZCB2SU9NTVUgb2JqZWN0 LgorICAqIEhvbGRzIGJ5cGFzcyBhbmQgYWJvcnQgcHJveHkgSFdQVCBJRHMgdXNlZCBmb3IgZGV2 aWNlIGF0dGFjaG1lbnQuCitAQCAtMjgsNiArNjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBTTU1VdjNB Y2NlbFN0YXRlIHsKKyAgICAgUUxJU1RfSEVBRCgsIFNNTVV2M0FjY2VsRGV2aWNlKSBkZXZpY2Vf bGlzdDsKKyAgICAgYm9vbCBhdXRvX21vZGU7CisgICAgIGJvb2wgYXV0b19maW5hbGlzZWQ7Cisr ICAgIGNvbnN0IFNNTVV2M0FjY2VsQ21kcXZPcHMgKmNtZHF2X29wczsKKyB9IFNNTVV2M0FjY2Vs U3RhdGU7CisgCisgdHlwZWRlZiBzdHJ1Y3QgU01NVVMxSHdwdCB7CistLSAKKzIuNTIuMAorCgpk aWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW50cm9kdWNlLWNvbW1vbi1oZWxw ZXItZm9yLXZldmUucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbnRyb2R1Y2UtY29t bW9uLWhlbHBlci1mb3ItdmV2ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5iNzUwZmM1Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwt SW50cm9kdWNlLWNvbW1vbi1oZWxwZXItZm9yLXZldmUucGF0Y2gKQEAgLTAsMCArMSwxNzEgQEAK K0Zyb20gNzk3ZGE5OTMwOWM5ZTMyNDI2YjI0ZGQwY2NiNTBiOWMxODRlN2VkZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Budmlk aWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjQzICswMTAwCitTdWJqZWN0OiBb UEFUQ0ggMTAxLzExMV0gaHcvYXJtL3NtbXV2My1hY2NlbDogSW50cm9kdWNlIGNvbW1vbiBoZWxw ZXIgZm9yCisgdmV2ZW50cSByZWFkCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVy Z2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURR ViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUg R29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkBy ZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTAxLzExMV0gZGQzZjE3NjI5MmIzNDRmMjdkZmZjYjY3 MzM0ZDJiOWZkY2Y5MmZhYSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBz Oi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworTW92ZSB0aGUgdkVW RU5UUSByZWFkIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGludG8gYSBjb21tb24gaGVscGVyCitzbW11 djNfYWNjZWxfZXZlbnRfcmVhZF92YWxpZGF0ZSgpLiBUaGUgaGVscGVyIHBlcmZvcm1zIHRoZSBy ZWFkKCksCitjaGVja3MgZm9yIG92ZXJmbG93IGFuZCBzaG9ydCByZWFkcywgdmFsaWRhdGVzIHRo ZSBzZXF1ZW5jZSBudW1iZXIsCithbmQgdXBkYXRlcyB0aGUgc2VxdWVuY2Ugc3RhdGUuCisKK1Ro aXMgaGVscGVyIGNhbiBiZSByZXVzZWQgZm9yIFRlZ3JhMjQxIENNRFFWIHZFVkVOVFEgc3VwcG9y dCBpbiBhCitzdWJzZXF1ZW50IHBhdGNoLgorCitFcnJvciBoYW5kbGluZyBpcyBzbGlnaHRseSBh ZGp1c3RlZDogaW5zdGVhZCBvZiByZXBvcnRpbmcgZXJyb3JzCitkaXJlY3RseSBpbiB0aGUgcmVh ZCBoYW5kbGVyLCB0aGUgaGVscGVyIG5vdyByZXR1cm5zIGVycm9ycyB2aWEKK0Vycm9yICoqLiBT ZXF1ZW5jZSBnYXBzIGFyZSByZXBvcnRlZCBhcyB3YXJuaW5ncy4KKworUmV2aWV3ZWQtYnk6IE5p Y29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xp bmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1 bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMjMtc2tvbG90aHVtdGhv QG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxA bGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGY4MDE1ZmU5ODhkZjA5NDQ4 ZWE2NzQ1OGRkMzFmMDRkNzA0Mzg4YzMpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFjY2VsLXN0dWJzLmMgfCAg NyArKysrCisgaHcvYXJtL3NtbXV2My1hY2NlbC5jICAgICAgIHwgNjcgKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuaCAgICAgICB8ICAy ICsrCisgMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwtc3R1YnMuYyBiL2h3L2FybS9zbW11 djMtYWNjZWwtc3R1YnMuYworaW5kZXggNzBjZWY2Njk2Ni4uOWU2YzQ0YTI4MiAxMDA2NDQKKy0t LSBhL2h3L2FybS9zbW11djMtYWNjZWwtc3R1YnMuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2Nl bC1zdHVicy5jCitAQCAtNDcsNiArNDcsMTMgQEAgYm9vbCBzbW11djNfYWNjZWxfYWxsb2NfdmV2 ZW50cShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorICAgICByZXR1cm4gdHJ1ZTsKKyB9 CisgCisrYm9vbCBzbW11djNfYWNjZWxfZXZlbnRfcmVhZF92YWxpZGF0ZShJT01NVUZEVmV2ZW50 cSAqdmV2ZW50cSwgdWludDMyX3QgdHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUsIEVycm9yICoqZXJycCkKKyt7CisrICAg IHJldHVybiB0cnVlOworK30KKysKKysKKyB2b2lkIHNtbXV2M19hY2NlbF9yZXNldChTTU1VdjNT dGF0ZSAqcykKKyB7CisgfQorZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3 L2FybS9zbW11djMtYWNjZWwuYworaW5kZXggM2NlY2E1NmE2Ny4uYzFjMmE2N2M5NyAxMDA2NDQK Ky0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5j CitAQCAtNDQwLDQ3ICs0NDAsNjAgQEAgYm9vbCBzbW11djNfYWNjZWxfaXNzdWVfaW52X2NtZChT TU1VdjNTdGF0ZSAqYnMsIHZvaWQgKmNtZCwgU01NVURldmljZSAqc2RldiwKKyAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKENtZCksICZlbnRyeV9udW0sIGNtZCwgZXJycCk7CisgfQorIAorLXN0 YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9ldmVudF9yZWFkKHZvaWQgKm9wYXF1ZSkKKytib29sIHNt bXV2M19hY2NlbF9ldmVudF9yZWFkX3ZhbGlkYXRlKElPTU1VRkRWZXZlbnRxICp2ZXZlbnRxLCB1 aW50MzJfdCB0eXBlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p ZCAqYnVmLCBzaXplX3Qgc2l6ZSwgRXJyb3IgKiplcnJwKQorIHsKKy0gICAgU01NVXYzU3RhdGUg KnMgPSBvcGFxdWU7CistICAgIElPTU1VRkRWZXZlbnRxICp2ZXZlbnRxID0gcy0+c19hY2NlbC0+ dmV2ZW50cTsKKy0gICAgc3RydWN0IHsKKy0gICAgICAgIHN0cnVjdCBpb21tdWZkX3ZldmVudF9o ZWFkZXIgaGRyOworLSAgICAgICAgc3RydWN0IGlvbW11X3ZldmVudF9hcm1fc21tdXYzIHZldmVu dDsKKy0gICAgfSBidWY7CistICAgIGVudW0gaW9tbXVfdmV2ZW50cV90eXBlIHR5cGUgPSBJT01N VV9WRVZFTlRRX1RZUEVfQVJNX1NNTVVWMzsKKy0gICAgdWludDMyX3QgaWQgPSB2ZXZlbnRxLT52 ZXZlbnRxX2lkOworICAgICB1aW50MzJfdCBsYXN0X3NlcSA9IHZldmVudHEtPmxhc3RfZXZlbnRf c2VxOworKyAgICB1aW50MzJfdCBpZCA9IHZldmVudHEtPnZldmVudHFfaWQ7CisrICAgIHN0cnVj dCBpb21tdWZkX3ZldmVudF9oZWFkZXIgKmhkcjsKKyAgICAgc3NpemVfdCBieXRlczsKKyAKKy0g ICAgYnl0ZXMgPSByZWFkKHZldmVudHEtPnZldmVudHFfZmQsICZidWYsIHNpemVvZihidWYpKTsK KysgICAgYnl0ZXMgPSByZWFkKHZldmVudHEtPnZldmVudHFfZmQsIGJ1Ziwgc2l6ZSk7CisgICAg IGlmIChieXRlcyA8PSAwKSB7CisgICAgICAgICBpZiAoZXJybm8gPT0gRUFHQUlOIHx8IGVycm5v ID09IEVJTlRSKSB7CistICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgfQorLSAgICAgICAgZXJyb3JfcmVwb3J0X29uY2UoInZFVkVOVFEodHlw ZSAldSBpZCAldSk6IHJlYWQgZmFpbGVkICglbSkiLCB0eXBlLCBpZCk7CistICAgICAgICByZXR1 cm47CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJ2RVZFTlRRKHR5cGUgJXUgaWQgJXUpOiBy ZWFkIGZhaWxlZCAoJW0pIiwgdHlwZSwgaWQpOworKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICB9CistCistICAgIGlmIChieXRlcyA9PSBzaXplb2YoYnVmLmhkcikgJiYKKy0gICAgICAgIChi dWYuaGRyLmZsYWdzICYgSU9NTVVfVkVWRU5UUV9GTEFHX0xPU1RfRVZFTlRTKSkgeworLSAgICAg ICAgZXJyb3JfcmVwb3J0X29uY2UoInZFVkVOVFEodHlwZSAldSBpZCAldSk6IG92ZXJmbG93ZWQi LCB0eXBlLCBpZCk7CisrICAgIGhkciA9IChzdHJ1Y3QgaW9tbXVmZF92ZXZlbnRfaGVhZGVyICop YnVmOworKyAgICBpZiAoYnl0ZXMgPT0gc2l6ZW9mKCpoZHIpICYmCisrICAgICAgICAoaGRyLT5m bGFncyAmIElPTU1VX1ZFVkVOVFFfRkxBR19MT1NUX0VWRU5UUykpIHsKKysgICAgICAgIGVycm9y X3NldGcoZXJycCwgInZFVkVOVFEodHlwZSAldSBpZCAldSk6IG92ZXJmbG93ZWQiLCB0eXBlLCBp ZCk7CisgICAgICAgICB2ZXZlbnRxLT5ldmVudF9zdGFydCA9IGZhbHNlOworLSAgICAgICAgcmV0 dXJuOworKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CistICAgIGlmIChieXRlcyA8IHNp emVvZihidWYpKSB7CistICAgICAgICBlcnJvcl9yZXBvcnRfb25jZSgidkVWRU5UUSh0eXBlICV1 IGlkICV1KTogc2hvcnQgcmVhZCglemQvJXpkIGJ5dGVzKSIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICB0eXBlLCBpZCwgYnl0ZXMsIHNpemVvZihidWYpKTsKKy0gICAgICAgIHJldHVybjsK KysgICAgaWYgKGJ5dGVzIDwgc2l6ZSkgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAidkVW RU5UUSh0eXBlICV1IGlkICV1KTogc2hvcnQgcmVhZCglemQvJXpkIGJ5dGVzKSIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICB0eXBlLCBpZCwgYnl0ZXMsIHNpemUpOworKyAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICB9CistCisgICAgIC8qIENoZWNrIHNlcXVlbmNlIGluIGhkciBmb3Ig bG9zdCBldmVudHMgaWYgYW55ICovCistICAgIGlmICh2ZXZlbnRxLT5ldmVudF9zdGFydCAmJiAo YnVmLmhkci5zZXF1ZW5jZSAtIGxhc3Rfc2VxICE9IDEpKSB7CistICAgICAgICBlcnJvcl9yZXBv cnRfb25jZSgidkVWRU5UUSh0eXBlICV1IGlkICV1KTogbG9zdCAldSBldmVudChzKSIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlLCBpZCwgYnVmLmhkci5zZXF1ZW5jZSAtIGxhc3Rf c2VxIC0gMSk7CisrICAgIGlmICh2ZXZlbnRxLT5ldmVudF9zdGFydCAmJiAoaGRyLT5zZXF1ZW5j ZSAtIGxhc3Rfc2VxICE9IDEpKSB7CisrICAgICAgICB3YXJuX3JlcG9ydCgidkVWRU5UUSh0eXBl ICV1IGlkICV1KTogbG9zdCAldSBldmVudChzKSIsCisrICAgICAgICAgICAgICAgICAgICB0eXBl LCBpZCwgaGRyLT5zZXF1ZW5jZSAtIGxhc3Rfc2VxIC0gMSk7CisgICAgIH0KKy0gICAgdmV2ZW50 cS0+bGFzdF9ldmVudF9zZXEgPSBidWYuaGRyLnNlcXVlbmNlOworKyAgICB2ZXZlbnRxLT5sYXN0 X2V2ZW50X3NlcSA9IGhkci0+c2VxdWVuY2U7CisgICAgIHZldmVudHEtPmV2ZW50X3N0YXJ0ID0g dHJ1ZTsKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworK3N0YXRpYyB2b2lkIHNtbXV2M19hY2Nl bF9ldmVudF9yZWFkKHZvaWQgKm9wYXF1ZSkKKyt7CisrICAgIFNNTVV2M1N0YXRlICpzID0gb3Bh cXVlOworKyAgICBJT01NVUZEVmV2ZW50cSAqdmV2ZW50cSA9IHMtPnNfYWNjZWwtPnZldmVudHE7 CisrICAgIHN0cnVjdCB7CisrICAgICAgICBzdHJ1Y3QgaW9tbXVmZF92ZXZlbnRfaGVhZGVyIGhk cjsKKysgICAgICAgIHN0cnVjdCBpb21tdV92ZXZlbnRfYXJtX3NtbXV2MyB2ZXZlbnQ7CisrICAg IH0gYnVmOworKyAgICBFcnJvciAqbG9jYWxfZXJyID0gTlVMTDsKKysKKysgICAgaWYgKCFzbW11 djNfYWNjZWxfZXZlbnRfcmVhZF92YWxpZGF0ZSh2ZXZlbnRxLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1ZFVkVOVFFfVFlQRV9BUk1fU01NVVYzLCAm YnVmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihi dWYpLCAmbG9jYWxfZXJyKSkgeworKyAgICAgICAgd2Fybl9yZXBvcnRfZXJyX29uY2UobG9jYWxf ZXJyKTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorICAgICBzbW11djNfcHJvcGFnYXRlX2V2 ZW50KHMsIChFdnQgKikmYnVmLnZldmVudCk7CisgfQorIAorZGlmZiAtLWdpdCBhL2h3L2FybS9z bW11djMtYWNjZWwuaCBiL2h3L2FybS9zbW11djMtYWNjZWwuaAoraW5kZXggZTBiYmVjODU4MS4u OGQwZjYzNjMzOCAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuaAorKysrIGIvaHcv YXJtL3NtbXV2My1hY2NlbC5oCitAQCAtODcsNiArODcsOCBAQCBib29sIHNtbXV2M19hY2NlbF9p c3N1ZV9pbnZfY21kKFNNTVV2M1N0YXRlICpzLCB2b2lkICpjbWQsIFNNTVVEZXZpY2UgKnNkZXYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApOworIHZvaWQg c21tdXYzX2FjY2VsX2lkcl9vdmVycmlkZShTTU1VdjNTdGF0ZSAqcyk7CisgYm9vbCBzbW11djNf YWNjZWxfYWxsb2NfdmV2ZW50cShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKTsKKytib29s IHNtbXV2M19hY2NlbF9ldmVudF9yZWFkX3ZhbGlkYXRlKElPTU1VRkRWZXZlbnRxICp2ZXZlbnRx LCB1aW50MzJfdCB0eXBlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSwgRXJyb3IgKiplcnJwKTsKKyB2b2lkIHNtbXV2M19hY2Nl bF9yZXNldChTTU1VdjNTdGF0ZSAqcyk7CisgCisgI2VuZGlmIC8qIEhXX0FSTV9TTU1VVjNfQUND RUxfSCAqLworLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUludHJvZHVjZS1oZWxwZXItdG8tcXVlcnktQ01EUVYtLnBhdGNoIGIva3ZtLWh3LWFybS1z bW11djMtYWNjZWwtSW50cm9kdWNlLWhlbHBlci10by1xdWVyeS1DTURRVi0ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM4ZTlkMAotLS0gL2Rldi9udWxsCisrKyBi L2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUludHJvZHVjZS1oZWxwZXItdG8tcXVlcnktQ01EUVYt LnBhdGNoCkBAIC0wLDAgKzEsMTM4IEBACitGcm9tIGU3NTE2OGJlOTRiZGE5MjFmZWNhNzk1NWIx NzNkZTQ3MDBkZDZiMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtv bG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAx MjoyNTo0OCArMDEwMAorU3ViamVjdDogW1BBVENIIDEwNi8xMTFdIGh3L2FybS9zbW11djMtYWNj ZWw6IEludHJvZHVjZSBoZWxwZXIgdG8gcXVlcnkgQ01EUVYKKyB0eXBlCitNSU1FLVZlcnNpb246 IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2Nl bGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVM LTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgt QWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5 OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTA2LzExMV0gMzYz YzA0NjE1NDdhNGRmNThlNTI1MjJkNDBjYTFjYjFiNzU3NWY2MCAoZWF1Z2VyMS9jZW50b3MtcWVt dS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwt NzM3OTgKKworSW50cm9kdWNlIGEgU01NVXYzQWNjZWxDbWRxdlR5cGUgZW51bSBhbmQgYSBoZWxw ZXIgdG8gcXVlcnkgdGhlCitDTURRViBpbXBsZW1lbnRhdGlvbiB0eXBlIGFzc29jaWF0ZWQgd2l0 aCBhbiBhY2NlbGVyYXRlZCBTTU1VdjMKK2luc3RhbmNlLgorCitBIHN1YnNlcXVlbnQgcGF0Y2gg d2lsbCB1c2UgdGhpcyBoZWxwZXIgd2hlbiBnZW5lcmF0aW5nIHRoZQorVGVncmEyNDEgQ01EUVYg RFNEVC4KKworUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQt Ynk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNo YW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmlj IEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1 Mi4zNzg5OTktMjgtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVy IE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGQzZTU2NzAzYmZjNTg5NjlhYzAyMDA5YmNkYmFjN2Y1YjI1OTk4ZGIpCitTaWduZWQt b2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0v c21tdXYzLWFjY2VsLXN0dWJzLmMgfCAgNSArKysrKworIGh3L2FybS9zbW11djMtYWNjZWwuYyAg ICAgICB8IDEyICsrKysrKysrKysrKworIGh3L2FybS9zbW11djMtYWNjZWwuaCAgICAgICB8IDEw ICsrKysrKysrKysKKyBody9hcm0vdGVncmEyNDEtY21kcXYuYyAgICAgfCAgNiArKysrKysKKyA0 IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS9z bW11djMtYWNjZWwtc3R1YnMuYyBiL2h3L2FybS9zbW11djMtYWNjZWwtc3R1YnMuYworaW5kZXgg OWU2YzQ0YTI4Mi4uMTQ3YWUwNjE2MyAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwt c3R1YnMuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC1zdHVicy5jCitAQCAtNTcsMyArNTcs OCBAQCBib29sIHNtbXV2M19hY2NlbF9ldmVudF9yZWFkX3ZhbGlkYXRlKElPTU1VRkRWZXZlbnRx ICp2ZXZlbnRxLCB1aW50MzJfdCB0eXBlLAorIHZvaWQgc21tdXYzX2FjY2VsX3Jlc2V0KFNNTVV2 M1N0YXRlICpzKQorIHsKKyB9CisrCisrU01NVXYzQWNjZWxDbWRxdlR5cGUgc21tdXYzX2FjY2Vs X2NtZHF2X3R5cGUoT2JqZWN0ICpvYmopCisreworKyAgICByZXR1cm4gU01NVVYzX0NNRFFWX05P TkU7CisrfQorZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11 djMtYWNjZWwuYworaW5kZXggYzFjMmE2N2M5Ny4uOWMzYmQ0NDEzZCAxMDA2NDQKKy0tLSBhL2h3 L2FybS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtMTA2 MCw2ICsxMDYwLDE4IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hc19pbml0KFNNTVV2M1N0 YXRlICpzKQorICAgICBhZGRyZXNzX3NwYWNlX2luaXQoc2hhcmVkX2FzX3N5c21lbSwgJnJvb3Qs ICJzbW11djMtYWNjZWwtYXMtc3lzbWVtIik7CisgfQorIAorK1NNTVV2M0FjY2VsQ21kcXZUeXBl IHNtbXV2M19hY2NlbF9jbWRxdl90eXBlKE9iamVjdCAqb2JqKQorK3sKKysgICAgU01NVXYzU3Rh dGUgKnMgPSBBUk1fU01NVVYzKG9iaik7CisrICAgIFNNTVV2M0FjY2VsU3RhdGUgKmFjY2VsID0g cy0+c19hY2NlbDsKKysKKysgICAgaWYgKCFhY2NlbCB8fCAhYWNjZWwtPmNtZHF2X29wcyB8fCAh YWNjZWwtPmNtZHF2X29wcy0+Z2V0X3R5cGUpIHsKKysgICAgICAgIHJldHVybiBTTU1VVjNfQ01E UVZfTk9ORTsKKysgICAgfQorKworKyAgICByZXR1cm4gYWNjZWwtPmNtZHF2X29wcy0+Z2V0X3R5 cGUoKTsKKyt9CisrCisgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX21hY2hpbmVfZG9uZShOb3Rp ZmllciAqbm90aWZpZXIsIHZvaWQgKmRhdGEpCisgeworICAgICBTTU1VdjNTdGF0ZSAqcyA9IGNv bnRhaW5lcl9vZihub3RpZmllciwgU01NVXYzU3RhdGUsIG1hY2hpbmVfZG9uZSk7CitkaWZmIC0t Z2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5oIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5oCitpbmRl eCA4ZDBmNjM2MzM4Li41ZmM4NWZiODlkIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2Nl bC5oCisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmgKK0BAIC0xNiw2ICsxNiwxMSBAQAorICNp bmNsdWRlIDxsaW51eC9pb21tdWZkLmg+CisgI2VuZGlmCisgCisrdHlwZWRlZiBlbnVtIFNNTVV2 M0FjY2VsQ21kcXZUeXBlIHsKKysgICAgU01NVVYzX0NNRFFWX05PTkUgPSAwLAorKyAgICBTTU1V VjNfQ01EUVZfVEVHUkEyNDEsCisrfSBTTU1VdjNBY2NlbENtZHF2VHlwZTsKKysKKyAvKgorICAq IENNRFEtVmlydHVhbGl6YXRpb24gKENNRFFWKSBoYXJkd2FyZSBzdXBwb3J0LCBleHRlbmRzIHRo ZSBTTU1VdjMgdG8KKyAgKiBzdXBwb3J0IG11bHRpcGxlIFZDTURRcyB3aXRoIHZpcnR1YWxpemF0 aW9uIGNhcGFiaWxpdGllcy4KK0BAIC00Miw2ICs0NywxMCBAQCB0eXBlZGVmIHN0cnVjdCBTTU1V djNBY2NlbENtZHF2T3BzIHsKKyAgICAgICogSWYgTlVMTCwgdGhlIHZpb21tdV9pZCBpcyBmcmVl ZCBkaXJlY3RseSB2aWEgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoKS4KKyAgICAgICovCisgICAg IHZvaWQgKCpmcmVlX3Zpb21tdSkoU01NVXYzU3RhdGUgKnMpOworKyAgICAvKioKKysgICAgICog QGdldF90eXBlOiBPcHRpb25hbCBjYWxsYmFjay4gUmV0dXJuIHRoZSBDTURRViBpbXBsZW1lbnRh dGlvbiB0eXBlLgorKyAgICAgKi8KKysgICAgU01NVXYzQWNjZWxDbWRxdlR5cGUgKCpnZXRfdHlw ZSkodm9pZCk7CisgICAgIC8qKgorICAgICAgKiBAcmVzZXQ6IE9wdGlvbmFsIGNhbGxiYWNrLiBS ZXNldCBDTURRViBzdGF0ZS4KKyAgICAgICovCitAQCAtOTAsNSArOTksNiBAQCBib29sIHNtbXV2 M19hY2NlbF9hbGxvY192ZXZlbnRxKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApOworIGJv b2wgc21tdXYzX2FjY2VsX2V2ZW50X3JlYWRfdmFsaWRhdGUoSU9NTVVGRFZldmVudHEgKnZldmVu dHEsIHVpbnQzMl90IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICpidWYsIHNpemVfdCBzaXplLCBFcnJvciAqKmVycnApOworIHZvaWQgc21tdXYzX2Fj Y2VsX3Jlc2V0KFNNTVV2M1N0YXRlICpzKTsKKytTTU1VdjNBY2NlbENtZHF2VHlwZSBzbW11djNf YWNjZWxfY21kcXZfdHlwZShPYmplY3QgKm9iaik7CisgCisgI2VuZGlmIC8qIEhXX0FSTV9TTU1V VjNfQUNDRUxfSCAqLworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcv YXJtL3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IGE0YzE0MGUzNGMuLjFiZWQxMzc0YmEgMTAwNjQ0 CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNt ZHF2LmMKK0BAIC05NjQsNiArOTY0LDExIEBAIHN0YXRpYyBib29sIHRlZ3JhMjQxX2NtZHF2X2lu aXQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyAgICAgcmV0dXJuIHRydWU7CisgfQor IAorK3N0YXRpYyBTTU1VdjNBY2NlbENtZHF2VHlwZSB0ZWdyYTI0MV9jbWRxdl9nZXRfdHlwZSh2 b2lkKQorK3sKKysgICAgcmV0dXJuIFNNTVVWM19DTURRVl9URUdSQTI0MTsKKyt9CisrCisgc3Rh dGljIGJvb2wgdGVncmEyNDFfY21kcXZfcHJvYmUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURl dmljZUlPTU1VRkQgKmlkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJy b3IgKiplcnJwKQorIHsKK0BAIC0xMDA0LDYgKzEwMDksNyBAQCBzdGF0aWMgY29uc3QgU01NVXYz QWNjZWxDbWRxdk9wcyB0ZWdyYTI0MV9jbWRxdl9vcHMgPSB7CisgICAgIC5pbml0ID0gdGVncmEy NDFfY21kcXZfaW5pdCwKKyAgICAgLmFsbG9jX3Zpb21tdSA9IHRlZ3JhMjQxX2NtZHF2X2FsbG9j X3Zpb21tdSwKKyAgICAgLmZyZWVfdmlvbW11ID0gdGVncmEyNDFfY21kcXZfZnJlZV92aW9tbXUs CisrICAgIC5nZXRfdHlwZSA9IHRlZ3JhMjQxX2NtZHF2X2dldF90eXBlLAorICAgICAucmVzZXQg PSB0ZWdyYTI0MV9jbWRxdl9yZXNldCwKKyB9OworIAorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdp dCBhL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUludHJvZHVjZS1zbW11djMtYWNjZWwtZGV2aWNl LnBhdGNoIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW50cm9kdWNlLXNtbXV2My1hY2NlbC1k ZXZpY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE3ZTc0Ngot LS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLUludHJvZHVjZS1zbW11 djMtYWNjZWwtZGV2aWNlLnBhdGNoCkBAIC0wLDAgKzEsMjE5IEBACitGcm9tIDlmYTBlMWI4MmNj MTg2M2E0ODFlMzcwMDkyOWM0MGYwMTYwZDk1Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFRo dSwgMjkgSmFuIDIwMjYgMTM6MzI6MDQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMDcvMTExXSBo dy9hcm0vc21tdXYzLWFjY2VsOiBJbnRyb2R1Y2Ugc21tdXYzIGFjY2VsIGRldmljZQorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzcvMTEx XSAxYjc2Y2Q0MDMyYzE5ZTBhYmViZDg1MGVlMWUwMDBmNWU3NzY4OTkzIChlYXVnZXIxL2NlbnRv cy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2Uv UkhFTC03Mzc5NAorCitTZXQgdXAgZGVkaWNhdGVkIFBDSUlPTU1VT3BzIGZvciB0aGUgYWNjZWwg U01NVXYzLCBzaW5jZSBpdCB3aWxsIG5lZWQKK2RpZmZlcmVudCBjYWxsYmFjayBoYW5kbGluZyBp biB1cGNvbWluZyBwYXRjaGVzLiBUaGlzIGFsc28gYWRkcyBhCitDT05GSUdfQVJNX1NNTVVWM19B Q0NFTCBidWlsZCBvcHRpb24gc28gdGhlIGZlYXR1cmUgY2FuIGJlIGRpc2FibGVkCithdCBjb21w aWxlIHRpbWUuIEJlY2F1c2Ugd2Ugbm93IGluY2x1ZGUgQ09ORklHX0RFVklDRVMgaW4gdGhlIGhl YWRlciB0bworY2hlY2sgZm9yIEFSTV9TTU1VVjNfQUNDRUwsIHRoZSBtZXNvbiBmaWxlIGVudHJ5 IGZvciBzbW11djMuYyBuZWVkcyB0bworYmUgY2hhbmdlZCB0byBhcm1fc3MuYWRkLgorCitUaGUg 4oCcYWNjZWzigJ0gcHJvcGVydHkgaXNu4oCZdCB1c2VyIHZpc2libGUgeWV0IGFuZCBpdCB3aWxs IGJlIGludHJvZHVjZWQgaW4KK2EgbGF0ZXIgcGF0Y2ggb25jZSBhbGwgdGhlIHN1cHBvcnRpbmcg cGllY2VzIGFyZSByZWFkeS4KKworU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2hh bWVlcmFsaS5rb2xvdGh1bS50aG9kaUBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4g Q2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9u IDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVp Lmdhb0BsaW5hcm8ub3JnPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZp ZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS02LXNrb2xvdGh1bXRo b0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxs QGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3OWZjYmVjODBhODU4OTFi MzA2ODQ3MDNkM2FjOTZhN2I5OTJhZTQ5KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL0tjb25maWcgICAgICAgICAgfCAgNSAr KysrCisgaHcvYXJtL21lc29uLmJ1aWxkICAgICAgfCAgMyArKy0KKyBody9hcm0vc21tdXYzLWFj Y2VsLmMgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisg aHcvYXJtL3NtbXV2My1hY2NlbC5oICAgfCAyNyArKysrKysrKysrKysrKysrKysrCisgaHcvYXJt L3NtbXV2My5jICAgICAgICAgfCAgNSArKysrCisgaW5jbHVkZS9ody9hcm0vc21tdXYzLmggfCAg MyArKysKKyA2IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGh3L2FybS9zbW11djMtYWNjZWwuYworIGNyZWF0ZSBtb2Rl IDEwMDY0NCBody9hcm0vc21tdXYzLWFjY2VsLmgKKworZGlmZiAtLWdpdCBhL2h3L2FybS9LY29u ZmlnIGIvaHcvYXJtL0tjb25maWcKK2luZGV4IDNiYWE2YzZjNzQuLjFmNDk1NTBjNjEgMTAwNjQ0 CistLS0gYS9ody9hcm0vS2NvbmZpZworKysrIGIvaHcvYXJtL0tjb25maWcKK0BAIC02MjIsOCAr NjIyLDEzIEBAIGNvbmZpZyBGU0xfSU1YOE1QX0VWSworICAgICBkZXBlbmRzIG9uIFRDRyAmJiBB QVJDSDY0CisgICAgIHNlbGVjdCBGU0xfSU1YOE1QCisgCisrY29uZmlnIEFSTV9TTU1VVjNfQUND RUwKKysgICAgYm9vbAorKyAgICBkZXBlbmRzIG9uIEFSTV9TTU1VVjMKKysKKyBjb25maWcgQVJN X1NNTVVWMworICAgICBib29sCisrICAgIHNlbGVjdCBBUk1fU01NVVYzX0FDQ0VMIGlmIElPTU1V RkQKKyAKKyBjb25maWcgRlNMX0lNWDZVTAorICAgICBib29sCitkaWZmIC0tZ2l0IGEvaHcvYXJt L21lc29uLmJ1aWxkIGIvaHcvYXJtL21lc29uLmJ1aWxkCitpbmRleCBkYzY4MzkxMzA1Li5iY2Iy N2MwYmY2IDEwMDY0NAorLS0tIGEvaHcvYXJtL21lc29uLmJ1aWxkCisrKysgYi9ody9hcm0vbWVz b24uYnVpbGQKK0BAIC02MSw3ICs2MSw4IEBAIGFybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05G SUdfQVJNU1NFJywgaWZfdHJ1ZTogZmlsZXMoJ2FybXNzZS5jJykpCisgYXJtX2NvbW1vbl9zcy5h ZGQod2hlbjogJ0NPTkZJR19GU0xfSU1YNycsIGlmX3RydWU6IGZpbGVzKCdmc2wtaW14Ny5jJywg J21jaW14N2Qtc2FicmUuYycpKQorIGFybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05GSUdfRlNM X0lNWDhNUCcsIGlmX3RydWU6IGZpbGVzKCdmc2wtaW14OG1wLmMnKSkKKyBhcm1fY29tbW9uX3Nz LmFkZCh3aGVuOiAnQ09ORklHX0ZTTF9JTVg4TVBfRVZLJywgaWZfdHJ1ZTogZmlsZXMoJ2lteDht cC1ldmsuYycpKQorLWFybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05GSUdfQVJNX1NNTVVWMycs IGlmX3RydWU6IGZpbGVzKCdzbW11djMuYycpKQorK2FybV9zcy5hZGQod2hlbjogJ0NPTkZJR19B Uk1fU01NVVYzJywgaWZfdHJ1ZTogZmlsZXMoJ3NtbXV2My5jJykpCisrYXJtX3NzLmFkZCh3aGVu OiAnQ09ORklHX0FSTV9TTU1VVjNfQUNDRUwnLCBpZl90cnVlOiBmaWxlcygnc21tdXYzLWFjY2Vs LmMnKSkKKyBhcm1fY29tbW9uX3NzLmFkZCh3aGVuOiAnQ09ORklHX0ZTTF9JTVg2VUwnLCBpZl90 cnVlOiBmaWxlcygnZnNsLWlteDZ1bC5jJywgJ21jaW14NnVsLWV2ay5jJykpCisgYXJtX2NvbW1v bl9zcy5hZGQod2hlbjogJ0NPTkZJR19OUkY1MV9TT0MnLCBpZl90cnVlOiBmaWxlcygnbnJmNTFf c29jLmMnKSkKKyBhcm1fc3MuYWRkKHdoZW46ICdDT05GSUdfWEVOJywgaWZfdHJ1ZTogZmlsZXMo CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2Nl bC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uOTllZjBkYjhjNAor LS0tIC9kZXYvbnVsbAorKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtMCwwICsxLDU5 IEBACisrLyoKKysgKiBDb3B5cmlnaHQgKGMpIDIwMjUgSHVhd2VpIFRlY2hub2xvZ2llcyBSICYg RCAoVUspIEx0ZAorKyAqIENvcHlyaWdodCAoQykgMjAyNSBOVklESUEKKysgKiBXcml0dGVuIGJ5 IE5pY29saW4gQ2hlbiwgU2hhbWVlciBLb2xvdGh1bQorKyAqCisrICogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKysgKi8KKysKKysjaW5jbHVkZSAicWVtdS9vc2Rl cC5oIgorKworKyNpbmNsdWRlICJody9hcm0vc21tdXYzLmgiCisrI2luY2x1ZGUgInNtbXV2My1h Y2NlbC5oIgorKworK3N0YXRpYyBTTU1VdjNBY2NlbERldmljZSAqc21tdXYzX2FjY2VsX2dldF9k ZXYoU01NVVN0YXRlICpicywgU01NVVBjaUJ1cyAqc2J1cywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSUJ1cyAqYnVzLCBpbnQgZGV2Zm4pCisrewor KyAgICBTTU1VRGV2aWNlICpzZGV2ID0gc2J1cy0+cGJkZXZbZGV2Zm5dOworKyAgICBTTU1VdjNB Y2NlbERldmljZSAqYWNjZWxfZGV2OworKworKyAgICBpZiAoc2RldikgeworKyAgICAgICAgcmV0 dXJuIGNvbnRhaW5lcl9vZihzZGV2LCBTTU1VdjNBY2NlbERldmljZSwgc2Rldik7CisrICAgIH0K KysKKysgICAgYWNjZWxfZGV2ID0gZ19uZXcwKFNNTVV2M0FjY2VsRGV2aWNlLCAxKTsKKysgICAg c2RldiA9ICZhY2NlbF9kZXYtPnNkZXY7CisrCisrICAgIHNidXMtPnBiZGV2W2RldmZuXSA9IHNk ZXY7CisrICAgIHNtbXVfaW5pdF9zZGV2KGJzLCBzZGV2LCBidXMsIGRldmZuKTsKKysgICAgcmV0 dXJuIGFjY2VsX2RldjsKKyt9CisrCisrLyoKKysgKiBGaW5kIG9yIGFkZCBhbiBhZGRyZXNzIHNw YWNlIGZvciB0aGUgZ2l2ZW4gUENJIGRldmljZS4KKysgKgorKyAqIElmIGEgZGV2aWNlIG1hdGNo aW5nIEBidXMgYW5kIEBkZXZmbiBhbHJlYWR5IGV4aXN0cywgcmV0dXJuIGl0cworKyAqIGNvcnJl c3BvbmRpbmcgYWRkcmVzcyBzcGFjZS4gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgZGV2aWNlIGVu dHJ5CisrICogYW5kIGluaXRpYWxpemUgYWRkcmVzcyBzcGFjZSBmb3IgaXQuCisrICovCisrc3Rh dGljIEFkZHJlc3NTcGFjZSAqc21tdXYzX2FjY2VsX2ZpbmRfYWRkX2FzKFBDSUJ1cyAqYnVzLCB2 b2lkICpvcGFxdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBkZXZmbikKKyt7CisrICAgIFNNTVVTdGF0ZSAqYnMgPSBvcGFxdWU7CisrICAgIFNN TVVQY2lCdXMgKnNidXMgPSBzbW11X2dldF9zYnVzKGJzLCBidXMpOworKyAgICBTTU1VdjNBY2Nl bERldmljZSAqYWNjZWxfZGV2ID0gc21tdXYzX2FjY2VsX2dldF9kZXYoYnMsIHNidXMsIGJ1cywg ZGV2Zm4pOworKyAgICBTTU1VRGV2aWNlICpzZGV2ID0gJmFjY2VsX2Rldi0+c2RldjsKKysKKysg ICAgcmV0dXJuICZzZGV2LT5hczsKKyt9CisrCisrc3RhdGljIGNvbnN0IFBDSUlPTU1VT3BzIHNt bXV2M19hY2NlbF9vcHMgPSB7CisrICAgIC5nZXRfYWRkcmVzc19zcGFjZSA9IHNtbXV2M19hY2Nl bF9maW5kX2FkZF9hcywKKyt9OworKworK3ZvaWQgc21tdXYzX2FjY2VsX2luaXQoU01NVXYzU3Rh dGUgKnMpCisreworKyAgICBTTU1VU3RhdGUgKmJzID0gQVJNX1NNTVUocyk7CisrCisrICAgIGJz LT5pb21tdV9vcHMgPSAmc21tdXYzX2FjY2VsX29wczsKKyt9CitkaWZmIC0tZ2l0IGEvaHcvYXJt L3NtbXV2My1hY2NlbC5oIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5oCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMGRjNmIwMGQzNQorLS0tIC9kZXYvbnVsbAorKysrIGIv aHcvYXJtL3NtbXV2My1hY2NlbC5oCitAQCAtMCwwICsxLDI3IEBACisrLyoKKysgKiBDb3B5cmln aHQgKGMpIDIwMjUgSHVhd2VpIFRlY2hub2xvZ2llcyBSICYgRCAoVUspIEx0ZAorKyAqIENvcHly aWdodCAoQykgMjAyNSBOVklESUEKKysgKiBXcml0dGVuIGJ5IE5pY29saW4gQ2hlbiwgU2hhbWVl ciBLb2xvdGh1bQorKyAqCisrICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3It bGF0ZXIKKysgKi8KKysKKysjaWZuZGVmIEhXX0FSTV9TTU1VVjNfQUNDRUxfSAorKyNkZWZpbmUg SFdfQVJNX1NNTVVWM19BQ0NFTF9ICisrCisrI2luY2x1ZGUgImh3L2FybS9zbW11LWNvbW1vbi5o IgorKyNpbmNsdWRlIENPTkZJR19ERVZJQ0VTCisrCisrdHlwZWRlZiBzdHJ1Y3QgU01NVXYzQWNj ZWxEZXZpY2UgeworKyAgICBTTU1VRGV2aWNlIHNkZXY7CisrfSBTTU1VdjNBY2NlbERldmljZTsK KysKKysjaWZkZWYgQ09ORklHX0FSTV9TTU1VVjNfQUNDRUwKKyt2b2lkIHNtbXV2M19hY2NlbF9p bml0KFNNTVV2M1N0YXRlICpzKTsKKysjZWxzZQorK3N0YXRpYyBpbmxpbmUgdm9pZCBzbW11djNf YWNjZWxfaW5pdChTTU1VdjNTdGF0ZSAqcykKKyt7CisrfQorKyNlbmRpZgorKworKyNlbmRpZiAv KiBIV19BUk1fU01NVVYzX0FDQ0VMX0ggKi8KK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLmMg Yi9ody9hcm0vc21tdXYzLmMKK2luZGV4IGJjZjhhZjhkYzcuLmVmOTkxY2I3ZDggMTAwNjQ0Cist LS0gYS9ody9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMuYworQEAgLTMyLDYgKzMy LDcgQEAKKyAjaW5jbHVkZSAicWFwaS9lcnJvci5oIgorIAorICNpbmNsdWRlICJody9hcm0vc21t dXYzLmgiCisrI2luY2x1ZGUgInNtbXV2My1hY2NlbC5oIgorICNpbmNsdWRlICJzbW11djMtaW50 ZXJuYWwuaCIKKyAjaW5jbHVkZSAic21tdS1pbnRlcm5hbC5oIgorIAorQEAgLTE4ODIsNiArMTg4 MywxMCBAQCBzdGF0aWMgdm9pZCBzbW11X3JlYWxpemUoRGV2aWNlU3RhdGUgKmQsIEVycm9yICoq ZXJycCkKKyAgICAgU3lzQnVzRGV2aWNlICpkZXYgPSBTWVNfQlVTX0RFVklDRShkKTsKKyAgICAg RXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7CisgCisrICAgIGlmIChzLT5hY2NlbCkgeworKyAgICAg ICAgc21tdXYzX2FjY2VsX2luaXQocyk7CisrICAgIH0KKysKKyAgICAgYy0+cGFyZW50X3JlYWxp emUoZCwgJmxvY2FsX2Vycik7CisgICAgIGlmIChsb2NhbF9lcnIpIHsKKyAgICAgICAgIGVycm9y X3Byb3BhZ2F0ZShlcnJwLCBsb2NhbF9lcnIpOworZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJt L3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2luZGV4IGQxODNhNjI3NjYuLmJi NzA3NjI4NmIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorKysrIGIvaW5j bHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC02Myw2ICs2Myw5IEBAIHN0cnVjdCBTTU1VdjNTdGF0 ZSB7CisgICAgIHFlbXVfaXJxICAgICBpcnFbNF07CisgICAgIFFlbXVNdXRleCBtdXRleDsKKyAg ICAgY2hhciAqc3RhZ2U7CisrCisrICAgIC8qIFNNTVUgaGFzIEhXIGFjY2VsZXJhdG9yIHN1cHBv cnQgZm9yIG5lc3RlZCBTMSArIHMyICovCisrICAgIGJvb2wgYWNjZWw7CisgfTsKKyAKKyB0eXBl ZGVmIGVudW0geworLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21tdXYz LWFjY2VsLU1ha2UtU3Vic3RyZWFtSUQtc3VwcG9ydC1jb25maWd1LnBhdGNoIGIva3ZtLWh3LWFy bS1zbW11djMtYWNjZWwtTWFrZS1TdWJzdHJlYW1JRC1zdXBwb3J0LWNvbmZpZ3UucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVmNDA2MwotLS0gL2Rldi9udWxsCisr KyBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLU1ha2UtU3Vic3RyZWFtSUQtc3VwcG9ydC1jb25m aWd1LnBhdGNoCkBAIC0wLDAgKzEsMTg2IEBACitGcm9tIDJlM2EwOWM5MjlkMzVjYzFmNWQ5OTg4 MDE4MTEyNjBlMWRhMjQxMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVy IEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIw MjYgMTM6MzI6MDUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwNDUvMTExXSBody9hcm0vc21tdXYz LWFjY2VsOiBNYWtlIFN1YnN0cmVhbUlEIHN1cHBvcnQKKyBjb25maWd1cmFibGUKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9y IGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNr ZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0NS8xMTFd IDc4YjhkOTdkMzJlYmIyN2JlNjY2NTkzYmVjN2NhMGNiODAwMDdlYjcgKGVhdWdlcjEvY2VudG9z LXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9S SEVMLTczNzk0CisKK1FFTVUgU01NVXYzIGN1cnJlbnRseSByZXBvcnRzIG5vIFN1YnN0cmVhbUlE IHN1cHBvcnQsIGZvcmNpbmcgU1NJRCB0bworemVyby4gVGhpcyBwcmV2ZW50cyBhY2NlbGVyYXRl ZCB1c2UgY2FzZXMgc3VjaCBhcyBTaGFyZWQgVmlydHVhbAorQWRkcmVzc2luZyAoU1ZBKSwgd2hp Y2ggcmVxdWlyZSBtdWx0aXBsZSBTdGFnZS0xIGNvbnRleHQgZGVzY3JpcHRvcnMKK2luZGV4ZWQg YnkgU3Vic3RyZWFtSUQuCisKK0FkZCBhIG5ldyAic3NpZHNpemUiIHByb3BlcnR5IHRvIGV4cGxp Y2l0bHkgY29uZmlndXJlIHRoZSBudW1iZXIgb2YgYml0cwordXNlZCBmb3IgU3Vic3RyZWFtSURz LiBBIHZhbHVlIGdyZWF0ZXIgdGhhbiB6ZXJvIGVuYWJsZXMgU3Vic3RyZWFtSUQKK3N1cHBvcnQg YW5kIGFkdmVydGlzZXMgUEFTSUQgY2FwYWJpbGl0eSB0byB0aGUgdklPTU1VLgorCitUaGUgcmVx dWVzdGVkIFNTSURTSVpFIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IGhvc3QgU01NVXYzIGNhcGFiaWxp dGllcyBhbmQKK2lzIG9ubHkgc3VwcG9ydGVkIHdoZW4gYWNjZWw9b24uCisKK1Jldmlld2VkLWJ5 OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdl ZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE5p Y29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVp Lmdhb0BsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90 aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMzgt c2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBl dGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI4YzZm OGE2OWQyNzM0YTY1YTAwZjExNzg4ZDY3MTFlNWQyOGE0ZWMpCitTaWduZWQtb2ZmLWJ5OiBFcmlj IEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vc21tdXYzLWFjY2Vs LmMgICAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKystCisgaHcvYXJtL3NtbXV2 My5jICAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKysrKysrKysrKystLQorIGluY2x1ZGUv aHcvYXJtL3NtbXV2My1jb21tb24uaCB8ICAxICsKKyBpbmNsdWRlL2h3L2FybS9zbW11djMuaCAg ICAgICAgfCAgMSArCisgNCBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3Nt bXV2My1hY2NlbC5jCitpbmRleCAzNDI5NDRkYTIzLi5mNWNkNGRmMzM2IDEwMDY0NAorLS0tIGEv aHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC03 Niw2ICs3NiwxNiBAQCBzbW11djNfYWNjZWxfY2hlY2tfaHdfY29tcGF0aWJsZShTTU1VdjNTdGF0 ZSAqcywKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorKyAgICAvKiBDaGVjayBT U0lEU0laRSB2YWx1ZSBvcHRlZC1pbiBpcyBjb21wYXRpYmxlIHdpdGggSG9zdCBTTU1VdjMgU1NJ RFNJWkUgKi8KKysgICAgaWYgKEZJRUxEX0VYMzIoaW5mby0+aWRyWzFdLCBJRFIxLCBTU0lEU0la RSkgPAorKyAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKHMtPmlkclsxXSwgSURSMSwgU1NJRFNJ WkUpKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJIb3N0IFNNTVV2MyBTU0lEU0laRSBu b3QgY29tcGF0aWJsZSAiCisrICAgICAgICAgICAgICAgICAgICIoaG9zdD0ldSwgUUVNVT0ldSki LAorKyAgICAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKGluZm8tPmlkclsxXSwgSURSMSwgU1NJ RFNJWkUpLAorKyAgICAgICAgICAgICAgICAgICBGSUVMRF9FWDMyKHMtPmlkclsxXSwgSURSMSwg U1NJRFNJWkUpKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKworICAgICAvKiBV c2VyIGNhbiBkaXNhYmxlIFFFTVUgU01NVXYzIFJhbmdlIEludmFsaWRhdGlvbiBzdXBwb3J0ICov CisgICAgIGlmIChGSUVMRF9FWDMyKGluZm8tPmlkclszXSwgSURSMywgUklMKSA8CisgICAgICAg ICAgICAgICAgIEZJRUxEX0VYMzIocy0+aWRyWzNdLCBJRFIzLCBSSUwpKSB7CitAQCAtNjUyLDcg KzY2MiwxNCBAQCBzdGF0aWMgdWludDY0X3Qgc21tdXYzX2FjY2VsX2dldF92aW9tbXVfZmxhZ3Mo dm9pZCAqb3BhcXVlKQorICAgICAgKiBUaGUgcmVhbCBIVyBuZXN0ZWQgc3VwcG9ydCBzaG91bGQg YmUgcmVwb3J0ZWQgZnJvbSBob3N0IFNNTVV2MyBhbmQgaWYKKyAgICAgICogaXQgZG9lc24ndCwg dGhlIG5lc3RpbmcgcGFyZW50IGFsbG9jYXRpb24gd2lsbCBmYWlsIGFueXdheSBpbiBWRklPIGNv cmUuCisgICAgICAqLworLSAgICByZXR1cm4gVklPTU1VX0ZMQUdfV0FOVF9ORVNUSU5HX1BBUkVO VDsKKysgICAgdWludDY0X3QgZmxhZ3MgPSBWSU9NTVVfRkxBR19XQU5UX05FU1RJTkdfUEFSRU5U OworKyAgICBTTU1VU3RhdGUgKmJzID0gb3BhcXVlOworKyAgICBTTU1VdjNTdGF0ZSAqcyA9IEFS TV9TTU1VVjMoYnMpOworKworKyAgICBpZiAocy0+c3NpZHNpemUpIHsKKysgICAgICAgIGZsYWdz IHw9IFZJT01NVV9GTEFHX1BBU0lEX1NVUFBPUlRFRDsKKysgICAgfQorKyAgICByZXR1cm4gZmxh Z3M7CisgfQorIAorIHN0YXRpYyBjb25zdCBQQ0lJT01NVU9wcyBzbW11djNfYWNjZWxfb3BzID0g eworQEAgLTY4MCw2ICs2OTcsMTIgQEAgdm9pZCBzbW11djNfYWNjZWxfaWRyX292ZXJyaWRlKFNN TVV2M1N0YXRlICpzKQorICAgICBpZiAocy0+b2FzID09IFNNTVVfT0FTXzQ4QklUKSB7CisgICAg ICAgICBzLT5pZHJbNV0gPSBGSUVMRF9EUDMyKHMtPmlkcls1XSwgSURSNSwgT0FTLCBTTU1VX0lE UjVfT0FTXzQ4KTsKKyAgICAgfQorKworKyAgICAvKgorKyAgICAgKiBCeSBkZWZhdWx0IFFFTVUg U01NVXYzIGhhcyBubyBTdWJzdHJlYW1JRCBzdXBwb3J0LiBVcGRhdGUgSURSMSBpZiB1c2VyCisr ICAgICAqIGhhcyBlbmFibGVkIGl0LgorKyAgICAgKi8KKysgICAgcy0+aWRyWzFdID0gRklFTERf RFAzMihzLT5pZHJbMV0sIElEUjEsIFNTSURTSVpFLCBzLT5zc2lkc2l6ZSk7CisgfQorIAorIC8q IEJhc2VkIG9uIFNNVVV2MyBHUEJBLkFCT1JUIGNvbmZpZ3VyYXRpb24sIGF0dGFjaCBhIGNvcnJl c3BvbmRpbmcgSFdQVCAqLworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMuYyBiL2h3L2FybS9z bW11djMuYworaW5kZXggZWY3NWE5YmVjMC4uNDkzMTFmNWJiZiAxMDA2NDQKKy0tLSBhL2h3L2Fy bS9zbW11djMuYworKysrIGIvaHcvYXJtL3NtbXV2My5jCitAQCAtNjExLDkgKzYxMSwxMSBAQCBz dGF0aWMgaW50IGRlY29kZV9zdGUoU01NVXYzU3RhdGUgKnMsIFNNTVVUcmFuc0NmZyAqY2ZnLAor ICAgICAgICAgfQorICAgICB9CisgCistICAgIGlmIChTVEVfUzFDRE1BWChzdGUpICE9IDApIHsK KysgICAgLyogTXVsdGlwbGUgY29udGV4dCBkZXNjcmlwdG9ycyByZXF1aXJlIFN1YnN0cmVhbUlE IHN1cHBvcnQgKi8KKysgICAgaWYgKCFzLT5zc2lkc2l6ZSAmJiBTVEVfUzFDRE1BWChzdGUpICE9 IDApIHsKKyAgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLAorLSAgICAgICAgICAgICAg ICAgICAgICAiU01NVXYzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgY29udGV4dCBkZXNjcmlw dG9ycyB5ZXRcbiIpOworKyAgICAgICAgICAgICAgICAiU01NVXYzOiBtdWx0aXBsZSBTMSBjb250 ZXh0IGRlc2NyaXB0b3JzIHJlcXVpcmUgU3Vic3RyZWFtSUQgc3VwcG9ydC4gIgorKyAgICAgICAg ICAgICAgICAiQ29uZmlndXJlIHNzaWRzaXplID4gMCAocmVxdWlyZXMgYWNjZWw9b24pXG4iKTsK KyAgICAgICAgIGdvdG8gYmFkX3N0ZTsKKyAgICAgfQorIAorQEAgLTE5NTQsNiArMTk1NiwxMCBA QCBzdGF0aWMgYm9vbCBzbW11X3ZhbGlkYXRlX3Byb3BlcnR5KFNNTVV2M1N0YXRlICpzLCBFcnJv ciAqKmVycnApCisgICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiT0FTIG11c3QgYmUgNDQg Yml0cyB3aGVuIGFjY2VsPW9mZiIpOworICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgIH0KKysgICAgICAgIGlmIChzLT5zc2lkc2l6ZSkgeworKyAgICAgICAgICAgIGVycm9yX3Nl dGcoZXJycCwgInNzaWRzaXplIGNhbiBvbmx5IGJlIHNldCBpZiBhY2NlbD1vbiIpOworKyAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgICAgIH0KKyAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICB9CisgCitAQCAtMTk2OCw2ICsxOTc0LDExIEBAIHN0YXRpYyBib29sIHNtbXVfdmFsaWRh dGVfcHJvcGVydHkoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyAgICAgICAgIGVycm9y X3NldGcoZXJycCwgIk9BUyBjYW4gb25seSBiZSBzZXQgdG8gNDQgb3IgNDggYml0cyIpOworICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisrICAgIGlmIChzLT5zc2lkc2l6ZSA+IFNNTVVf U1NJRF9NQVhfQklUUykgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAic3NpZHNpemUgbXVz dCBiZSBpbiB0aGUgcmFuZ2UgMCB0byAlZCIsCisrICAgICAgICAgICAgICAgICAgIFNNTVVfU1NJ RF9NQVhfQklUUyk7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKyAKKyAgICAgcmV0 dXJuIHRydWU7CisgfQorQEAgLTIwOTYsNiArMjEwNyw3IEBAIHN0YXRpYyBjb25zdCBQcm9wZXJ0 eSBzbW11djNfcHJvcGVydGllc1tdID0geworICAgICBERUZJTkVfUFJPUF9CT09MKCJyaWwiLCBT TU1VdjNTdGF0ZSwgcmlsLCB0cnVlKSwKKyAgICAgREVGSU5FX1BST1BfQk9PTCgiYXRzIiwgU01N VXYzU3RhdGUsIGF0cywgZmFsc2UpLAorICAgICBERUZJTkVfUFJPUF9VSU5UOCgib2FzIiwgU01N VXYzU3RhdGUsIG9hcywgNDQpLAorKyAgICBERUZJTkVfUFJPUF9VSU5UOCgic3NpZHNpemUiLCBT TU1VdjNTdGF0ZSwgc3NpZHNpemUsIDApLAorIH07CisgCisgc3RhdGljIHZvaWQgc21tdXYzX2lu c3RhbmNlX2luaXQoT2JqZWN0ICpvYmopCitAQCAtMjEyOSw2ICsyMTQxLDEyIEBAIHN0YXRpYyB2 b2lkIHNtbXV2M19jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFzcywgY29uc3Qgdm9pZCAqZGF0 YSkKKyAgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihrbGFzcywgIm9h cyIsCisgICAgICAgICAiU3BlY2lmeSBPdXRwdXQgQWRkcmVzcyBTaXplIChmb3IgYWNjZWw9b24p LiBTdXBwb3J0ZWQgdmFsdWVzICIKKyAgICAgICAgICJhcmUgNDQgb3IgNDggYml0cy4gRGVmYXVs dHMgdG8gNDQgYml0cyIpOworKyAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0 aW9uKGtsYXNzLCAic3NpZHNpemUiLAorKyAgICAgICAgIk51bWJlciBvZiBiaXRzIHVzZWQgdG8g cmVwcmVzZW50IFN1YnN0cmVhbUlEcyAoU1NJRHMpLiAiCisrICAgICAgICAiQSB2YWx1ZSBvZiBO IGFsbG93cyBTU0lEcyBpbiB0aGUgcmFuZ2UgWzAgLi4gMl5OIC0gMV0uICIKKysgICAgICAgICJW YWxpZCByYW5nZSBpcyAwLTIwLCB3aGVyZSAwIGRpc2FibGVzIFN1YnN0cmVhbUlEIHN1cHBvcnQu ICIKKysgICAgICAgICJEZWZhdWx0cyB0byAwLiBBIHZhbHVlIGdyZWF0ZXIgdGhhbiAwIGlzIHJl cXVpcmVkIHRvIGVuYWJsZSAiCisrICAgICAgICAiUEFTSUQgc3VwcG9ydC4iKTsKKyB9CisgCisg c3RhdGljIGludCBzbW11djNfbm90aWZ5X2ZsYWdfY2hhbmdlZChJT01NVU1lbW9yeVJlZ2lvbiAq aW9tbXUsCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oIGIvaW5j bHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oCitpbmRleCBiYzJkNDllZjRlLi40Yjc2NGVkMTI1 IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oCisrKysgYi9pbmNs dWRlL2h3L2FybS9zbW11djMtY29tbW9uLmgKK0BAIC0zMTEsNiArMzExLDcgQEAgUkVHMzIoSURS MSwgICAgICAgICAgICAgICAgMHg0KQorICAgICBGSUVMRChJRFIxLCBUQUJMRVNfUFJFU0VULCAz MCwgMSkKKyAgICAgRklFTEQoSURSMSwgRUNNRFEsICAgICAgICAzMSwgMSkKKyAKKysjZGVmaW5l IFNNTVVfU1NJRF9NQVhfQklUUyAyMAorICNkZWZpbmUgU01NVV9JRFIxX1NJRFNJWkUgMTYKKyAj ZGVmaW5lIFNNTVVfQ01EUVMgICAxOQorICNkZWZpbmUgU01NVV9FVkVOVFFTIDE5CitkaWZmIC0t Z2l0IGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLmggYi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAor aW5kZXggZDQ4OGEzOWNkMC4uMjZiMmZjNDJmZCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJt L3NtbXV2My5oCisrKysgYi9pbmNsdWRlL2h3L2FybS9zbW11djMuaAorQEAgLTcyLDYgKzcyLDcg QEAgc3RydWN0IFNNTVV2M1N0YXRlIHsKKyAgICAgYm9vbCByaWw7CisgICAgIGJvb2wgYXRzOwor ICAgICB1aW50OF90IG9hczsKKysgICAgdWludDhfdCBzc2lkc2l6ZTsKKyB9OworIAorIHR5cGVk ZWYgZW51bSB7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMt YWNjZWwtUmVhZC1hbmQtcHJvcGFnYXRlLWhvc3QtdklPTU1VLWUucGF0Y2ggYi9rdm0taHctYXJt LXNtbXV2My1hY2NlbC1SZWFkLWFuZC1wcm9wYWdhdGUtaG9zdC12SU9NTVUtZS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzMwYjgyCi0tLSAvZGV2L251bGwKKysr IGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtUmVhZC1hbmQtcHJvcGFnYXRlLWhvc3QtdklPTU1V LWUucGF0Y2gKQEAgLTAsMCArMSwxNDMgQEAKK0Zyb20gNjU2MGU1ZjcwZjNmMjQyYjA2YjM1MjNl MWY5MTBlMjVkYjcxOTA3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIg S29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogRnJpLCA2IE1hciAyMDI2 IDA5OjAxOjExICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDU0LzExMV0gaHcvYXJtL3NtbXV2My1h Y2NlbDogUmVhZCBhbmQgcHJvcGFnYXRlIGhvc3QgdklPTU1VCisgZXZlbnRzCitNSU1FLVZlcnNp b246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBh Y2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBS SEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAor UkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2Vk LWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNTQvMTExXSA4 N2I3OTRlNWQ4OGEzNDAyYzBmODI1MGJkODBlYjY1ZGQzNDM1YjJkIChlYXVnZXIxL2NlbnRvcy1x ZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhF TC03Mzc5NgorCitJbnN0YWxsIGFuIGV2ZW50IGhhbmRsZXIgb24gdGhlIHZFVkVOVFEgZmQgdG8g cmVhZCBhbmQgcHJvcGFnYXRlIGhvc3QKK2dlbmVyYXRlZCB2SU9NTVUgZXZlbnRzIHRvIHRoZSBn dWVzdC4KKworVGhlIGhhbmRsZXIgcnVucyBpbiBRRU1VJ3MgbWFpbiBsb29wLCB1c2luZyBhIG5v bi1ibG9ja2luZyBmZCByZWdpc3RlcmVkCit2aWEgcWVtdV9zZXRfZmRfaGFuZGxlcigpLgorCitU ZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xp biBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRo YW4uY2FtZXJvbkBodWF3ZWkuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDIyNjA4NDQ1Ni4xMTIx NDItNi1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVs bCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg YzBjOTdmYmM2Y2Y3NjRmMGQ2NmQ1MTIyYzQxMTdkMDc3MGU4OTkwMikKK1NpZ25lZC1vZmYtYnk6 IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMt YWNjZWwuYyB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK KyAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJt L3NtbXV2My1hY2NlbC5jIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitpbmRleCBmNzAzZWExYWFj Li4xNzMwNmNkMDRiIDEwMDY0NAorLS0tIGEvaHcvYXJtL3NtbXV2My1hY2NlbC5jCisrKysgYi9o dy9hcm0vc21tdXYzLWFjY2VsLmMKK0BAIC0zOTAsNiArMzkwLDUwIEBAIGJvb2wgc21tdXYzX2Fj Y2VsX2lzc3VlX2ludl9jbWQoU01NVXYzU3RhdGUgKmJzLCB2b2lkICpjbWQsIFNNTVVEZXZpY2Ug KnNkZXYsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihDbWQpLCAmZW50cnlfbnVtLCBjbWQs IGVycnApOworIH0KKyAKKytzdGF0aWMgdm9pZCBzbW11djNfYWNjZWxfZXZlbnRfcmVhZCh2b2lk ICpvcGFxdWUpCisreworKyAgICBTTU1VdjNTdGF0ZSAqcyA9IG9wYXF1ZTsKKysgICAgSU9NTVVG RFZldmVudHEgKnZldmVudHEgPSBzLT5zX2FjY2VsLT52ZXZlbnRxOworKyAgICBzdHJ1Y3Qgewor KyAgICAgICAgc3RydWN0IGlvbW11ZmRfdmV2ZW50X2hlYWRlciBoZHI7CisrICAgICAgICBzdHJ1 Y3QgaW9tbXVfdmV2ZW50X2FybV9zbW11djMgdmV2ZW50OworKyAgICB9IGJ1ZjsKKysgICAgZW51 bSBpb21tdV92ZXZlbnRxX3R5cGUgdHlwZSA9IElPTU1VX1ZFVkVOVFFfVFlQRV9BUk1fU01NVVYz OworKyAgICB1aW50MzJfdCBpZCA9IHZldmVudHEtPnZldmVudHFfaWQ7CisrICAgIHVpbnQzMl90 IGxhc3Rfc2VxID0gdmV2ZW50cS0+bGFzdF9ldmVudF9zZXE7CisrICAgIHNzaXplX3QgYnl0ZXM7 CisrCisrICAgIGJ5dGVzID0gcmVhZCh2ZXZlbnRxLT52ZXZlbnRxX2ZkLCAmYnVmLCBzaXplb2Yo YnVmKSk7CisrICAgIGlmIChieXRlcyA8PSAwKSB7CisrICAgICAgICBpZiAoZXJybm8gPT0gRUFH QUlOIHx8IGVycm5vID09IEVJTlRSKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAg fQorKyAgICAgICAgZXJyb3JfcmVwb3J0X29uY2UoInZFVkVOVFEodHlwZSAldSBpZCAldSk6IHJl YWQgZmFpbGVkICglbSkiLCB0eXBlLCBpZCk7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysK KysgICAgaWYgKGJ5dGVzID09IHNpemVvZihidWYuaGRyKSAmJgorKyAgICAgICAgKGJ1Zi5oZHIu ZmxhZ3MgJiBJT01NVV9WRVZFTlRRX0ZMQUdfTE9TVF9FVkVOVFMpKSB7CisrICAgICAgICBlcnJv cl9yZXBvcnRfb25jZSgidkVWRU5UUSh0eXBlICV1IGlkICV1KTogb3ZlcmZsb3dlZCIsIHR5cGUs IGlkKTsKKysgICAgICAgIHZldmVudHEtPmV2ZW50X3N0YXJ0ID0gZmFsc2U7CisrICAgICAgICBy ZXR1cm47CisrICAgIH0KKysgICAgaWYgKGJ5dGVzIDwgc2l6ZW9mKGJ1ZikpIHsKKysgICAgICAg IGVycm9yX3JlcG9ydF9vbmNlKCJ2RVZFTlRRKHR5cGUgJXUgaWQgJXUpOiBzaG9ydCByZWFkKCV6 ZC8lemQgYnl0ZXMpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsIGlkLCBieXRl cywgc2l6ZW9mKGJ1ZikpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAgIC8qIENo ZWNrIHNlcXVlbmNlIGluIGhkciBmb3IgbG9zdCBldmVudHMgaWYgYW55ICovCisrICAgIGlmICh2 ZXZlbnRxLT5ldmVudF9zdGFydCAmJiAoYnVmLmhkci5zZXF1ZW5jZSAtIGxhc3Rfc2VxICE9IDEp KSB7CisrICAgICAgICBlcnJvcl9yZXBvcnRfb25jZSgidkVWRU5UUSh0eXBlICV1IGlkICV1KTog bG9zdCAldSBldmVudChzKSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLCBpZCwg YnVmLmhkci5zZXF1ZW5jZSAtIGxhc3Rfc2VxIC0gMSk7CisrICAgIH0KKysgICAgdmV2ZW50cS0+ bGFzdF9ldmVudF9zZXEgPSBidWYuaGRyLnNlcXVlbmNlOworKyAgICB2ZXZlbnRxLT5ldmVudF9z dGFydCA9IHRydWU7CisrICAgIHNtbXV2M19wcm9wYWdhdGVfZXZlbnQocywgKEV2dCAqKSZidWYu dmV2ZW50KTsKKyt9CisrCisgc3RhdGljIHZvaWQgc21tdXYzX2FjY2VsX2ZyZWVfdmV2ZW50cShT TU1VdjNBY2NlbFN0YXRlICphY2NlbCkKKyB7CisgICAgIElPTU1VRkRWZXZlbnRxICp2ZXZlbnRx ID0gYWNjZWwtPnZldmVudHE7CitAQCAtMzk3LDYgKzQ0MSw3IEBAIHN0YXRpYyB2b2lkIHNtbXV2 M19hY2NlbF9mcmVlX3ZldmVudHEoU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwpCisgICAgIGlmICgh dmV2ZW50cSkgeworICAgICAgICAgcmV0dXJuOworICAgICB9CisrICAgIHFlbXVfc2V0X2ZkX2hh bmRsZXIodmV2ZW50cS0+dmV2ZW50cV9mZCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgIGNsb3Nl KHZldmVudHEtPnZldmVudHFfZmQpOworICAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChhY2Nl bC0+dmlvbW11LT5pb21tdWZkLCB2ZXZlbnRxLT52ZXZlbnRxX2lkKTsKKyAgICAgZ19mcmVlKHZl dmVudHEpOworQEAgLTQyNCw2ICs0NjksNyBAQCBib29sIHNtbXV2M19hY2NlbF9hbGxvY192ZXZl bnRxKFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgICAgIElPTU1VRkRWZXZlbnRxICp2 ZXZlbnRxOworICAgICB1aW50MzJfdCB2ZXZlbnRxX2lkOworICAgICB1aW50MzJfdCB2ZXZlbnRx X2ZkOworKyAgICBpbnQgZmxhZ3M7CisgCisgICAgIGlmICghYWNjZWwgfHwgIWFjY2VsLT52aW9t bXUpIHsKKyAgICAgICAgIHJldHVybiB0cnVlOworQEAgLTQ0NSwxMiArNDkxLDMwIEBAIGJvb2wg c21tdXYzX2FjY2VsX2FsbG9jX3ZldmVudHEoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkK KyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorKyAgICBmbGFncyA9IGZjbnRsKHZl dmVudHFfZmQsIEZfR0VURkwpOworKyAgICBpZiAoZmxhZ3MgPCAwKSB7CisrICAgICAgICBlcnJv cl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLCAiRmFpbGVkIHRvIGdldCBmbGFncyBmb3IgdkVWRU5U USBmZCIpOworKyAgICAgICAgZ290byBmcmVlX3ZldmVudHE7CisrICAgIH0KKysgICAgaWYgKGZj bnRsKHZldmVudHFfZmQsIEZfU0VURkwsIGZsYWdzIHwgT19OT05CTE9DSykgPCAwKSB7CisrICAg ICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLCAiRmFpbGVkIHRvIHNldCBPX05PTkJM T0NLIG9uIHZFVkVOVFEgZmQiKTsKKysgICAgICAgIGdvdG8gZnJlZV92ZXZlbnRxOworKyAgICB9 CisrCisgICAgIHZldmVudHEgPSBnX25ldzAoSU9NTVVGRFZldmVudHEsIDEpOworICAgICB2ZXZl bnRxLT52ZXZlbnRxX2lkID0gdmV2ZW50cV9pZDsKKyAgICAgdmV2ZW50cS0+dmV2ZW50cV9mZCA9 IHZldmVudHFfZmQ7CisgICAgIHZldmVudHEtPnZpb21tdSA9IGFjY2VsLT52aW9tbXU7CisgICAg IGFjY2VsLT52ZXZlbnRxID0gdmV2ZW50cTsKKysKKysgICAgLyogU2V0IHVwIGV2ZW50IGhhbmRs ZXIgZm9yIHZldmVudHEgZmQgKi8KKysgICAgcWVtdV9zZXRfZmRfaGFuZGxlcih2ZXZlbnRxX2Zk LCBzbW11djNfYWNjZWxfZXZlbnRfcmVhZCwgTlVMTCwgcyk7CisgICAgIHJldHVybiB0cnVlOwor KworK2ZyZWVfdmV2ZW50cToKKysgICAgY2xvc2UodmV2ZW50cV9mZCk7CisrICAgIGlvbW11ZmRf YmFja2VuZF9mcmVlX2lkKGFjY2VsLT52aW9tbXUtPmlvbW11ZmQsIHZldmVudHFfaWQpOworKyAg ICByZXR1cm4gZmFsc2U7CisgfQorIAorIHN0YXRpYyBib29sCistLSAKKzIuNTIuMAorCgpkaWZm IC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtUmVzdHJpY3QtYWNjZWxlcmF0ZWQtU01N VXYzLXRvLXYucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1hY2NlbC1SZXN0cmljdC1hY2NlbGVy YXRlZC1TTU1VdjMtdG8tdi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5kZWIzNDcxCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS1zbW11djMtYWNjZWwtUmVz dHJpY3QtYWNjZWxlcmF0ZWQtU01NVXYzLXRvLXYucGF0Y2gKQEAgLTAsMCArMSwxOTggQEAKK0Zy b20gODVkODFlYzU3MTVjNDJkZTAwMTljYmU4MjYwZGRiYzY2NjJmODUwYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNCArMDAwMAorU3ViamVjdDogW1BB VENIIDAxMy8xMTFdIGh3L2FybS9zbW11djMtYWNjZWw6IFJlc3RyaWN0IGFjY2VsZXJhdGVkIFNN TVV2MyB0bworIHZmaW8tcGNpIGVuZHBvaW50cyB3aXRoIGlvbW11ZmQKK01JTUUtVmVyc2lvbjog MS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2Vs ZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1B Y2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6 IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFsxMy8xMTFdIGM3YTRk MjUwZGQ3NDI5ZTFjMTM2YWQ1NDQ1NTJkZDQ5OWU4N2FmMzUgKGVhdWdlcjEvY2VudG9zLXFlbXUt a3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTcz Nzk0CisKK0FjY2VsZXJhdGVkIFNNTVV2MyBpcyBvbmx5IG1lYW5pbmdmdWwgd2hlbiBhIGRldmlj ZSBjYW4gbGV2ZXJhZ2UgdGhlIGhvc3QKK1NNTVV2MyBpbiBuZXN0ZWQgbW9kZSAoUzErUzIgdHJh bnNsYXRpb24pLiBUbyBrZWVwIHRoZSBtb2RlbCBjb25zaXN0ZW50CithbmQgY29ycmVjdCwgdGhp cyBtb2RlIGlzIHJlc3RyaWN0ZWQgdG8gdmZpby1wY2kgZW5kcG9pbnQgZGV2aWNlcyB1c2luZwor dGhlIGlvbW11ZmQgYmFja2VuZC4KKworTm9uLWVuZHBvaW50IGVtdWxhdGVkIGRldmljZXMgc3Vj aCBhcyBQQ0llIHJvb3QgcG9ydHMgYW5kIGJyaWRnZXMgYXJlIGFsc28KK3Blcm1pdHRlZCBzbyB0 aGF0IHZmaW8tcGNpIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIGRvd25zdHJlYW0uIEFsbCBvdGhl cgorZGV2aWNlIHR5cGVzIGFyZSB1bnN1cHBvcnRlZCBpbiBhY2NlbGVyYXRlZCBtb2RlLgorCitJ bXBsZW1lbnQgc3VwcG9ydHNfYWRkcmVzc19zcGFjZSgpIGNhbGxiYWNrIHRvIHJlamVjdCBhbGwg c3VjaCB1bnN1cHBvcnRlZAorZGV2aWNlcy4KKworVGhpcyByZXN0cmljdGlvbiBhbHNvIGF2b2lk cyBjb21wbGljYXRpb25zIHdpdGggSU9UTEIgaW52YWxpZGF0aW9ucy4gU29tZQorVExCSSBjb21t YW5kcyAoZS5nLiBDTURfVExCSV9OSF9BU0lEKSBsYWNrIGFuIGFzc29jaWF0ZWQgU0lELCBtYWtp bmcgaXQKK2RpZmZpY3VsdCB0byB0cmFjZSB0aGUgb3JpZ2luYXRpbmcgZGV2aWNlLiBBbGxvd2lu ZyBlbXVsYXRlZCBlbmRwb2ludHMKK3dvdWxkIHJlcXVpcmUgaW52YWxpZGF0aW5nIGJvdGggUUVN VeKAmXMgc29mdHdhcmUgSU9UTEIgYW5kIHRoZSBob3N04oCZcworaGFyZHdhcmUgSU9UTEIsIHdo aWNoIGNhbiBzaWduaWZpY2FudGx5IGRlZ3JhZGUgcGVyZm9ybWFuY2UuCisKK0Ega2V5IGRlc2ln biBjaG9pY2UgaXMgdGhlIGFkZHJlc3Mgc3BhY2UgcmV0dXJuZWQgZm9yIGFjY2VsZXJhdGVkIHZm aW8tcGNpCitlbmRwb2ludHMuIFZGSU8gY29yZSBoYXMgYSBjb250YWluZXIgdGhhdCBtYW5hZ2Vz IGFuIEhXUFQuIEJ5IGRlZmF1bHQsIGl0CithbGxvY2F0ZXMgYSBzdGFnZS0xIG5vcm1hbCBIV1BU LCB1bmxlc3MgdklPTU1VIHJlcXVlc3RzIGZvciBhIG5lc3RpbmcKK3BhcmVudCBIV1BUIGZvciBh Y2NlbGVyYXRlZCBjYXNlcy4KKworVkZJTyBjb3JlIGFkZHMgYSBsaXN0ZW5lciBmb3IgdGhhdCBI V1BUIGFuZCBzZXRzIHVwIGEgaGFuZGxlcgordmZpb19jb250YWluZXJfcmVnaW9uX2FkZCgpIHdo ZXJlIGl0IGNoZWNrcyB0aGUgbWVtb3J5IHJlZ2lvbi4KKworIC1JZiB0aGUgcmVnaW9uIGlzIGEg bm9uLUlPTU1VIHRyYW5zbGF0ZWQgb25lIChzeXN0ZW0gYWRkcmVzcyBzcGFjZSksIFZGSU8KKyAg dHJlYXRzIGl0IGFzIFJBTSBhbmQgaGFuZGxlcyBhbGwgc3RhZ2UtMiBtYXBwaW5ncyBmb3IgdGhl IGNvcmUgYWxsb2NhdGVkCisgIG5lc3RpbmcgcGFyZW50IEhXUFQuCisKKyAtSWYgdGhlIHJlZ2lv biBpcyBhbiBJT01NVSBhZGRyZXNzIHNwYWNlLCBWRklPIGluc3RlYWQgZW5hYmxlcyBJT1RMQgor ICBub3RpZmllciBoYW5kbGluZyBhbmQgdHJhbnNsYXRpb24gcmVwbGF5LCBza2lwcGluZyB0aGUg UkFNIGxpc3RlbmVyIGFuZAorICB0aGVyZWZvcmUgbm90IGluc3RhbGxpbmcgc3RhZ2UtMiBtYXBw aW5ncy4KKworRm9yIGFjY2VsZXJhdGVkIFNNTVV2MywgY29ycmVjdCBvcGVyYXRpb24gcmVxdWly ZXMgdGhlIFMxK1MyIG5lc3RpbmcKK21vZGVsLCBhbmQgdGhlcmVmb3JlIFZGSU8gbXVzdCB0YWtl IHRoZSAic3lzdGVtIGFkZHJlc3Mgc3BhY2UiIHBhdGggc28KK3RoYXQgc3RhZ2UtMiBtYXBwaW5n cyBhcmUgcHJvcGVybHkgYnVpbHQuIFJldHVybmluZyBhbiBhbGlhcyBvZiB0aGUKK3N5c3RlbSBh ZGRyZXNzIHNwYWNlIGVuc3VyZXMgdGhpcyBoYXBwZW5zLiBSZXR1cm5pbmcgdGhlIElPTU1VIGFk ZHJlc3MKK3NwYWNlIHdvdWxkIG9taXQgc3RhZ2UtMiBtYXBwaW5nIGFuZCBicmVhayBuZXN0ZWQg dHJhbnNsYXRpb24uCisKK0Fub3RoZXIgb3B0aW9uIGNvbnNpZGVyZWQgd2FzIGZvcmNpbmcgYSBw cmUtcmVnaXN0cmF0aW9uIHBhdGggdXNpbmcKK3ZmaW9fcHJlcmVnX2xpc3RlbmVyKCkgdG8gc2V0 IHVwIHN0YWdlLTIgbWFwcGluZ3MsIGJ1dCB0aGlzIHJlcXVpcmVzCitjaGFuZ2VzIGluIFZGSU8g Y29yZSBhbmQgd2FzIG5vdCBhZG9wdGVkLiBSZXR1cm5pbmcgYW4gYWxpYXMgb2YgdGhlCitzeXN0 ZW0gYWRkcmVzcyBzcGFjZSBrZWVwcyB0aGUgZGVzaWduIGFsaWduZWQgd2l0aCBleGlzdGluZyBW RklPL2lvbW11ZmQKK25lc3RpbmcgZmxvd3MgYW5kIGF2b2lkcyB0aGUgbmVlZCBmb3IgY3Jvc3Mt c3Vic3lzdGVtIGNoYW5nZXMuCisKK0luIHN1bW1hcnk6CisgLSB2ZmlvLXBjaSBkZXZpY2VzKHdp dGggaW9tbXVmZCBhcyBiYWNrZW5kKSByZXR1cm4gYW4gYWRkcmVzcyBzcGFjZQorICAgYWxpYXNl ZCB0byBzeXN0ZW0gYWRkcmVzcyBzcGFjZS4KKyAtIGJyaWRnZXMgYW5kIHJvb3QgcG9ydHMgcmV0 dXJuIHRoZSBJT01NVSBhZGRyZXNzIHNwYWNlLgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2Ft ZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4g Q2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9y Zz4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIuMjUzOTY1LTExLXNrb2xvdGh1bXRob0Bu dmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxp bmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjN2VjYjRjZjJlOTQ1ODY3OGQ2 NDlmZmQzYjhhYTYxYTc5NzY1NTJlKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3NtbXV2My1hY2NlbC5jIHwgNzcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA3 NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21t dXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IGIyZWRlZDc0M2UuLjJm Y2QzMDEzMjIgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2Fy bS9zbW11djMtYWNjZWwuYworQEAgLTcsOCArNywxMyBAQAorICAqLworIAorICNpbmNsdWRlICJx ZW11L29zZGVwLmgiCisrI2luY2x1ZGUgInFlbXUvZXJyb3ItcmVwb3J0LmgiCisgCisgI2luY2x1 ZGUgImh3L2FybS9zbW11djMuaCIKKysjaW5jbHVkZSAiaHcvcGNpL3BjaV9icmlkZ2UuaCIKKysj aW5jbHVkZSAiaHcvcGNpLWhvc3QvZ3BleC5oIgorKyNpbmNsdWRlICJody92ZmlvL3BjaS5oIgor KworICNpbmNsdWRlICJzbW11djMtYWNjZWwuaCIKKyAKKyAvKgorQEAgLTM3LDYgKzQyLDQ4IEBA IHN0YXRpYyBTTU1VdjNBY2NlbERldmljZSAqc21tdXYzX2FjY2VsX2dldF9kZXYoU01NVVN0YXRl ICpicywgU01NVVBjaUJ1cyAqc2J1cywKKyAgICAgcmV0dXJuIGFjY2VsX2RldjsKKyB9CisgCisr LyoKKysgKiBPbmx5IGFsbG93IFBDSWUgYnJpZGdlcywgcHhiLXBjaWUgcm9vdHMsIGFuZCBHUEVY IHJvb3RzIHNvIHZmaW8tcGNpCisrICogZW5kcG9pbnRzIGNhbiBzaXQgZG93bnN0cmVhbS4gQWNj ZWxlcmF0ZWQgU01NVXYzIHJlcXVpcmVzIGEgdmZpby1wY2kKKysgKiBlbmRwb2ludCB1c2luZyB0 aGUgaW9tbXVmZCBiYWNrZW5kOyBhbGwgb3RoZXIgZGV2aWNlIHR5cGVzIGFyZSByZWplY3RlZC4K KysgKiBUaGlzIGF2b2lkcyBzdXBwb3J0aW5nIGVtdWxhdGVkIGVuZHBvaW50cywgd2hpY2ggd291 bGQgY29tcGxpY2F0ZSBJT1RMQgorKyAqIGludmFsaWRhdGlvbiBhbmQgaHVydCBwZXJmb3JtYW5j ZS4KKysgKi8KKytzdGF0aWMgYm9vbCBzbW11djNfYWNjZWxfcGRldl9hbGxvd2VkKFBDSURldmlj ZSAqcGRldiwgYm9vbCAqdmZpb19wY2kpCisreworKworKyAgICBpZiAob2JqZWN0X2R5bmFtaWNf Y2FzdChPQkpFQ1QocGRldiksIFRZUEVfUENJX0JSSURHRSkgfHwKKysgICAgICAgIG9iamVjdF9k eW5hbWljX2Nhc3QoT0JKRUNUKHBkZXYpLCBUWVBFX1BYQl9QQ0lFX0RFVikgfHwKKysgICAgICAg IG9iamVjdF9keW5hbWljX2Nhc3QoT0JKRUNUKHBkZXYpLCBUWVBFX0dQRVhfUk9PVF9ERVZJQ0Up KSB7CisrICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgfSBlbHNlIGlmICgob2JqZWN0X2R5bmFt aWNfY2FzdChPQkpFQ1QocGRldiksIFRZUEVfVkZJT19QQ0kpKSkgeworKyAgICAgICAgKnZmaW9f cGNpID0gdHJ1ZTsKKysgICAgICAgIGlmIChvYmplY3RfcHJvcGVydHlfZ2V0X2xpbmsoT0JKRUNU KHBkZXYpLCAiaW9tbXVmZCIsIE5VTEwpKSB7CisrICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisr ICAgICAgICB9CisrICAgIH0KKysgICAgcmV0dXJuIGZhbHNlOworK30KKysKKytzdGF0aWMgYm9v bCBzbW11djNfYWNjZWxfc3VwcG9ydHNfYXMoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50 IGRldmZuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVy cnApCisreworKyAgICBQQ0lEZXZpY2UgKnBkZXYgPSBwY2lfZmluZF9kZXZpY2UoYnVzLCBwY2lf YnVzX251bShidXMpLCBkZXZmbik7CisrICAgIGJvb2wgdmZpb19wY2kgPSBmYWxzZTsKKysKKysg ICAgaWYgKHBkZXYgJiYgIXNtbXV2M19hY2NlbF9wZGV2X2FsbG93ZWQocGRldiwgJnZmaW9fcGNp KSkgeworKyAgICAgICAgaWYgKHZmaW9fcGNpKSB7CisrICAgICAgICAgICAgZXJyb3Jfc2V0Zyhl cnJwLCAidmZpby1wY2kgZW5kcG9pbnQgZGV2aWNlcyB3aXRob3V0IGFuIGlvbW11ZmQgIgorKyAg ICAgICAgICAgICAgICAgICAgICAgImJhY2tlbmQgbm90IGFsbG93ZWQgd2hlbiB1c2luZyBhcm0t c21tdXYzLGFjY2VsPW9uIik7CisrCisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIGVy cm9yX3NldGcoZXJycCwgIkVtdWxhdGVkIGVuZHBvaW50IGRldmljZXMgYXJlIG5vdCBhbGxvd2Vk IHdoZW4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgInVzaW5nIGFybS1zbW11djMsYWNjZWw9 b24iKTsKKysgICAgICAgIH0KKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgICBy ZXR1cm4gdHJ1ZTsKKyt9CisgLyoKKyAgKiBGaW5kIG9yIGFkZCBhbiBhZGRyZXNzIHNwYWNlIGZv ciB0aGUgZ2l2ZW4gUENJIGRldmljZS4KKyAgKgorQEAgLTQ3LDE1ICs5NCw0MyBAQCBzdGF0aWMg U01NVXYzQWNjZWxEZXZpY2UgKnNtbXV2M19hY2NlbF9nZXRfZGV2KFNNTVVTdGF0ZSAqYnMsIFNN TVVQY2lCdXMgKnNidXMsCisgc3RhdGljIEFkZHJlc3NTcGFjZSAqc21tdXYzX2FjY2VsX2ZpbmRf YWRkX2FzKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXZmbikKKyB7CisrICAgIFBDSURldmljZSAq cGRldiA9IHBjaV9maW5kX2RldmljZShidXMsIHBjaV9idXNfbnVtKGJ1cyksIGRldmZuKTsKKyAg ICAgU01NVVN0YXRlICpicyA9IG9wYXF1ZTsKKyAgICAgU01NVVBjaUJ1cyAqc2J1cyA9IHNtbXVf Z2V0X3NidXMoYnMsIGJ1cyk7CisgICAgIFNNTVV2M0FjY2VsRGV2aWNlICphY2NlbF9kZXYgPSBz bW11djNfYWNjZWxfZ2V0X2Rldihicywgc2J1cywgYnVzLCBkZXZmbik7CisgICAgIFNNTVVEZXZp Y2UgKnNkZXYgPSAmYWNjZWxfZGV2LT5zZGV2OworKyAgICBib29sIHZmaW9fcGNpID0gZmFsc2U7 CisgCistICAgIHJldHVybiAmc2Rldi0+YXM7CisrICAgIGlmIChwZGV2ICYmICFzbW11djNfYWNj ZWxfcGRldl9hbGxvd2VkKHBkZXYsICZ2ZmlvX3BjaSkpIHsKKysgICAgICAgIC8qIFNob3VsZCBu ZXZlciBiZSBoZXJlOiBzdXBwb3J0c19hZGRyZXNzX3NwYWNlKCkgZmlsdGVycyB0aGVzZSBvdXQg Ki8KKysgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisrICAgIH0KKysKKysgICAgLyoK KysgICAgICogSW4gdGhlIGFjY2VsZXJhdGVkIG1vZGUsIGEgdmZpby1wY2kgZGV2aWNlIGF0dGFj aGVkIHZpYSB0aGUgaW9tbXVmZAorKyAgICAgKiBiYWNrZW5kIG11c3QgcmVtYWluIGluIHRoZSBz eXN0ZW0gYWRkcmVzcyBzcGFjZS4gU3VjaCBhIGRldmljZSBpcworKyAgICAgKiBhbHdheXMgdHJh bnNsYXRlZCBieSBpdHMgcGh5c2ljYWwgU01NVSAodXNpbmcgZWl0aGVyIGEgc3RhZ2UtMi1vbmx5 CisrICAgICAqIFNURSBvciBhIG5lc3RlZCBTVEUpLCB3aGVyZSB0aGUgcGFyZW50IHN0YWdlLTIg cGFnZSB0YWJsZSBpcyBhbGxvY2F0ZWQKKysgICAgICogYnkgdGhlIFZGSU8gY29yZSB0byBiYWNr IHRoZSBzeXN0ZW0gYWRkcmVzcyBzcGFjZS4KKysgICAgICoKKysgICAgICogUmV0dXJuIHRoZSBz aGFyZWRfYXNfc3lzbWVtIGFsaWFzZWQgdG8gdGhlIGdsb2JhbCBzeXN0ZW0gbWVtb3J5IGluIHRo aXMKKysgICAgICogY2FzZS4gU2hhcmluZyBhZGRyZXNzX3NwYWNlX21lbW9yeSBhbHNvIGFsbG93 cyBkZXZpY2VzIHVuZGVyIGRpZmZlcmVudAorKyAgICAgKiB2U01NVSBpbnN0YW5jZXMgaW4gdGhl IHNhbWUgVk0gdG8gcmV1c2UgYSBzaW5nbGUgbmVzdGluZyBwYXJlbnQgSFdQVCBpbgorKyAgICAg KiB0aGUgVkZJTyBjb3JlLgorKyAgICAgKgorKyAgICAgKiBGb3Igbm9uLWVuZHBvaW50IGVtdWxh dGVkIGRldmljZXMgc3VjaCBhcyBQQ0llIHJvb3QgcG9ydHMgYW5kIGJyaWRnZXMsCisrICAgICAq IHdoaWNoIG1heSB1c2UgdGhlIG5vcm1hbCBlbXVsYXRlZCB0cmFuc2xhdGlvbiBwYXRoIGFuZCBz b2Z0d2FyZSBJT1RMQnMsCisrICAgICAqIHJldHVybiB0aGUgU01NVSdzIElPTU1VIGFkZHJlc3Mg c3BhY2UuCisrICAgICAqLworKyAgICBpZiAodmZpb19wY2kpIHsKKysgICAgICAgIHJldHVybiBz aGFyZWRfYXNfc3lzbWVtOworKyAgICB9IGVsc2UgeworKyAgICAgICAgcmV0dXJuICZzZGV2LT5h czsKKysgICAgfQorIH0KKyAKKyBzdGF0aWMgY29uc3QgUENJSU9NTVVPcHMgc21tdXYzX2FjY2Vs X29wcyA9IHsKKysgICAgLnN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UgPSBzbW11djNfYWNjZWxfc3Vw cG9ydHNfYXMsCisgICAgIC5nZXRfYWRkcmVzc19zcGFjZSA9IHNtbXV2M19hY2NlbF9maW5kX2Fk ZF9hcywKKyB9OworIAorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tc21t dXYzLWFjY2VsLVdpcmUtQ01EUVYtb3BzLWludG8tYWNjZWwtbGlmZWN5LnBhdGNoIGIva3ZtLWh3 LWFybS1zbW11djMtYWNjZWwtV2lyZS1DTURRVi1vcHMtaW50by1hY2NlbC1saWZlY3kucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmJmYTFhZAotLS0gL2Rldi9udWxs CisrKyBiL2t2bS1ody1hcm0tc21tdXYzLWFjY2VsLVdpcmUtQ01EUVYtb3BzLWludG8tYWNjZWwt bGlmZWN5LnBhdGNoCkBAIC0wLDAgKzEsMjE3IEBACitGcm9tIGU2NWUxM2JhNTJkN2JmNjhhMThl MGZiZWJlMjM4ZTNmZTE3NDEwMDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFt ZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4g MjAyNiAxMjoyNToyOSArMDEwMAorU3ViamVjdDogW1BBVENIIDA4Ny8xMTFdIGh3L2FybS9zbW11 djMtYWNjZWw6IFdpcmUgQ01EUVYgb3BzIGludG8gYWNjZWwKKyBsaWZlY3ljbGUKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9y IGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNr ZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs4Ny8xMTFd IDQ3ODgxMmM4ZDRiNjgyY2I2ZWIxNTkxMDA3MTJmZjZlZWVjMzJlMTYgKGVhdWdlcjEvY2VudG9z LXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9S SEVMLTczNzk4CisKK0FkZCBzdXBwb3J0IGZvciBzZWxlY3RpbmcgYW5kIGluaXRpYWxpemluZyBh IENNRFFWIGJhY2tlbmQgYmFzZWQgb24gdGhlCitjbWRxdiBPbk9mZkF1dG8gcHJvcGVydHkuCisK K0lmIHNldCB0byBPRkYsIENNRFFWIGlzIG5vdCB1c2VkIGFuZCB0aGUgZGVmYXVsdCBJT01NVUZE LWJhY2tlZCBhbGxvY2F0aW9uCitwYXRoIGlzIHRha2VuLgorCitJZiBzZXQgdG8gQVVUTywgUUVN VSBhdHRlbXB0cyB0byBwcm9iZSBhIENNRFFWIGJhY2tlbmQgZHVyaW5nIGRldmljZSBzZXR1cC4K K0lmIHByb2Jpbmcgc3VjY2VlZHMsIHRoZSBzZWxlY3RlZCBvcHMgYXJlIHN0b3JlZCBpbiB0aGUg YWNjZWxlcmF0ZWQgU01NVXYzCitzdGF0ZSBhbmQgdXNlZC4gSWYgcHJvYmluZyBmYWlscywgUUVN VSBzaWxlbnRseSBmYWxscyBiYWNrIHRvIHRoZSBkZWZhdWx0CitwYXRoLgorCitJZiBzZXQgdG8g T04sIFFFTVUgcmVxdWlyZXMgQ01EUVYgc3VwcG9ydC4gUHJvYmluZyBpcyBwZXJmb3JtZWQgZHVy aW5nCitzZXR1cCBhbmQgZmFpbHVyZSByZXN1bHRzIGluIGFuIGVycm9yLgorCitXaGVuIGEgQ01E UVYgYmFja2VuZCBpcyBhY3RpdmUsIGl0cyBjYWxsYmFja3MgYXJlIHVzZWQgZm9yIHZJT01NVQor YWxsb2NhdGlvbiwgZnJlZSwgYW5kIHJlc2V0IGhhbmRsaW5nLiBPdGhlcndpc2UsIHRoZSBiYXNl IGltcGxlbWVudGF0aW9uCitpcyB1c2VkLgorCitUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiB3 aXJlcyB1cCB0aGUgVGVncmEyNDEgQ01EUVYgYmFja2VuZCB0aHJvdWdoIHRoZQorZ2VuZXJpYyBv cHMgaW50ZXJmYWNlLiBGdW5jdGlvbmFsIENNRFFWIGJlaGF2aW91ciBpcyBhZGRlZCBpbiBzdWJz ZXF1ZW50CitwYXRjaGVzLgorCitObyBmdW5jdGlvbmFsIGNoYW5nZS4KKworUmV2aWV3ZWQtYnk6 IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBOaWNvbGlu IENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmlj b2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xv dGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktOS1za29sb3RodW10 aG9AbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVs bEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZjRlYzQ3NjdjZTBjMWZl NWIwYjFhZGY1ZjU1OWNhODA4YzNjMmFiYSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgIHwgOTQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KKyBpbmNsdWRlL2h3L2Fy bS9zbW11djMuaCB8ICAyICsKKyAyIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDcg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9h cm0vc21tdXYzLWFjY2VsLmMKK2luZGV4IDcwYjI1ODFjMTcuLjNjZWNhNTZhNjcgMTAwNjQ0Cist LS0gYS9ody9hcm0vc21tdXYzLWFjY2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYwor QEAgLTE5LDYgKzE5LDcgQEAKKyAjaW5jbHVkZSAic21tdXYzLWludGVybmFsLmgiCisgI2luY2x1 ZGUgInNtbXV2My1hY2NlbC5oIgorICNpbmNsdWRlICJzeXN0ZW0vc3lzdGVtLmgiCisrI2luY2x1 ZGUgInRlZ3JhMjQxLWNtZHF2LmgiCisgCisgLyoKKyAgKiBUaGUgcm9vdCByZWdpb24gYWxpYXNl cyB0aGUgZ2xvYmFsIHN5c3RlbSBtZW1vcnksIGFuZCBzaGFyZWRfYXNfc3lzbWVtCitAQCAtNTcw LDYgKzU3MSw3IEBAIHNtbXV2M19hY2NlbF9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUgKnMsIEhv c3RJT01NVURldmljZUlPTU1VRkQgKmhpb2RpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg RXJyb3IgKiplcnJwKQorIHsKKyAgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBzLT5zX2Fj Y2VsOworKyAgICBjb25zdCBTTU1VdjNBY2NlbENtZHF2T3BzICpjbWRxdl9vcHMgPSBhY2NlbC0+ Y21kcXZfb3BzOworICAgICBzdHJ1Y3QgaW9tbXVfaHdwdF9hcm1fc21tdXYzIGJ5cGFzc19kYXRh ID0geworICAgICAgICAgLnN0ZSA9IHsgU01NVV9TVEVfQ0ZHX0JZUEFTUyB8IFNNTVVfU1RFX1ZB TElELCAweDBVTEwgfSwKKyAgICAgfTsKK0BAIC01ODAsMTAgKzU4MiwxNyBAQCBzbW11djNfYWNj ZWxfYWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpo aW9kaSwKKyAgICAgdWludDMyX3QgdmlvbW11X2lkLCBod3B0X2lkOworICAgICBJT01NVUZEVmlv bW11ICp2aW9tbXU7CisgCistICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdSho aW9kaS0+aW9tbXVmZCwgaGlvZGktPmRldmlkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVfVklPTU1VX1RZUEVfQVJNX1NNTVVWMywgczJfaHdwdF9pZCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsICZ2aW9tbXVfaWQs IGVycnApKSB7CistICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIGlmIChjbWRxdl9vcHMpIHsK KysgICAgICAgIGlmICghY21kcXZfb3BzLT5hbGxvY192aW9tbXUocywgaGlvZGksICZ2aW9tbXVf aWQsIGVycnApKSB7CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgfQorKyAg ICB9IGVsc2UgeworKyAgICAgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11KGhp b2RpLT5pb21tdWZkLCBoaW9kaS0+ZGV2aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSU9NTVVfVklPTU1VX1RZUEVfQVJNX1NNTVVWMywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMl9od3B0X2lkLCBOVUxMLCAwLCAmdmlv bW11X2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycnAp KSB7CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgfQorICAgICB9CisgCisg ICAgIHZpb21tdSA9IGdfbmV3MChJT01NVUZEVmlvbW11LCAxKTsKK0BAIC02MjksMTIgKzYzOCw3 MCBAQCBmcmVlX2J5cGFzc19od3B0OgorIGZyZWVfYWJvcnRfaHdwdDoKKyAgICAgaW9tbXVmZF9i YWNrZW5kX2ZyZWVfaWQoaGlvZGktPmlvbW11ZmQsIGFjY2VsLT5hYm9ydF9od3B0X2lkKTsKKyBm cmVlX3Zpb21tdToKKy0gICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaGlvZGktPmlvbW11ZmQs IHZpb21tdS0+dmlvbW11X2lkKTsKKysgICAgaWYgKGNtZHF2X29wcyAmJiBjbWRxdl9vcHMtPmZy ZWVfdmlvbW11KSB7CisrICAgICAgICBjbWRxdl9vcHMtPmZyZWVfdmlvbW11KHMpOworKyAgICB9 IGVsc2UgeworKyAgICAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaGlvZGktPmlvbW11ZmQs IHZpb21tdS0+dmlvbW11X2lkKTsKKysgICAgfQorICAgICBnX2ZyZWUodmlvbW11KTsKKyAgICAg YWNjZWwtPnZpb21tdSA9IE5VTEw7CisgICAgIHJldHVybiBmYWxzZTsKKyB9CisgCisrc3RhdGlj IGNvbnN0IFNNTVV2M0FjY2VsQ21kcXZPcHMgKgorK3NtbXV2M19hY2NlbF9wcm9iZV9jbWRxdihT TU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorK3sKKysgICAgY29uc3QgU01NVXYzQWNjZWxD bWRxdk9wcyAqb3BzID0gdGVncmEyNDFfY21kcXZfZ2V0X29wcygpOworKworKyAgICBpZiAoIW9w cykgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiTm8gQ01EUVYgb3BzIGZvdW5kIik7Cisr ICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICBnX2Fzc2VydChvcHMtPnByb2JlKTsK KysgICAgZ19hc3NlcnQob3BzLT5hbGxvY192aW9tbXUpOworKworKyAgICBpZiAoIW9wcy0+cHJv YmUocywgaWRldiwgZXJycCkpIHsKKysgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisrICAg IHJldHVybiBvcHM7CisrfQorKworK3N0YXRpYyBib29sCisrc21tdXYzX2FjY2VsX3NlbGVjdF9j bWRxdihTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKKyt7CisrICAgIGNvbnN0IFNNTVV2 M0FjY2VsQ21kcXZPcHMgKm9wcyA9IE5VTEw7CisrCisrICAgIGlmIChzLT5zX2FjY2VsLT5jbWRx dl9vcHMpIHsKKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrCisrICAgIHN3aXRjaCAo cy0+Y21kcXYpIHsKKysgICAgY2FzZSBPTl9PRkZfQVVUT19PRkY6CisrICAgICAgICBzLT5zX2Fj Y2VsLT5jbWRxdl9vcHMgPSBOVUxMOworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Ug T05fT0ZGX0FVVE9fQVVUTzoKKysgICAgICAgIG9wcyA9IHNtbXV2M19hY2NlbF9wcm9iZV9jbWRx dihzLCBpZGV2LCBOVUxMKTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIE9OX09GRl9BVVRP X09OOgorKyAgICAgICAgb3BzID0gc21tdXYzX2FjY2VsX3Byb2JlX2NtZHF2KHMsIGlkZXYsIGVy cnApOworKyAgICAgICAgaWYgKCFvcHMpIHsKKysgICAgICAgICAgICBlcnJvcl9hcHBlbmRfaGlu dChlcnJwLCAiQ01EUVYgcmVxdWVzdGVkIGJ1dCBub3Qgc3VwcG9ydGVkIik7CisrICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgfQorKyAgICAgICAgYnJlYWs7CisrICAgIGRlZmF1 bHQ6CisrICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworKyAgICB9CisrCisrICAgIGlm IChvcHMgJiYgb3BzLT5pbml0ICYmICFvcHMtPmluaXQocywgZXJycCkpIHsKKysgICAgICAgIHJl dHVybiBmYWxzZTsKKysgICAgfQorKyAgICBzLT5zX2FjY2VsLT5jbWRxdl9vcHMgPSBvcHM7Cisr ICAgIHJldHVybiB0cnVlOworK30KKysKKyBzdGF0aWMgYm9vbCBzbW11djNfYWNjZWxfc2V0X2lv bW11X2RldmljZShQQ0lCdXMgKmJ1cywgdm9pZCAqb3BhcXVlLCBpbnQgZGV2Zm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9zdElPTU1VRGV2aWNlICpoaW9k LCBFcnJvciAqKmVycnApCisgeworQEAgLTY2OSw2ICs3MzYsMTAgQEAgc3RhdGljIGJvb2wgc21t dXYzX2FjY2VsX3NldF9pb21tdV9kZXZpY2UoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50 IGRldmZuLAorICAgICAgICAgZ290byBkb25lOworICAgICB9CisgCisrICAgIGlmICghc21tdXYz X2FjY2VsX3NlbGVjdF9jbWRxdihzLCBoaW9kaSwgZXJycCkpIHsKKysgICAgICAgIHJldHVybiBm YWxzZTsKKysgICAgfQorKworICAgICBpZiAoIXNtbXV2M19hY2NlbF9hbGxvY192aW9tbXUocywg aGlvZGksIGVycnApKSB7CisgICAgICAgICBlcnJvcl9hcHBlbmRfaGludChlcnJwLCAiVW5hYmxl IHRvIGFsbG9jIHZJT01NVTogaGlvZGkgZGV2aWQgMHgleDogIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGhpb2RpLT5kZXZpZCk7CitAQCAtOTQ2LDggKzEwMTcsMTcgQEAgYm9vbCBzbW11 djNfYWNjZWxfYXR0YWNoX2dicGFfaHdwdChTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQor IAorIHZvaWQgc21tdXYzX2FjY2VsX3Jlc2V0KFNNTVV2M1N0YXRlICpzKQorIHsKKy0gICAgIC8q IEF0dGFjaCBhIEhXUFQgYmFzZWQgb24gR0JQQSByZXNldCB2YWx1ZSAqLworLSAgICAgc21tdXYz X2FjY2VsX2F0dGFjaF9nYnBhX2h3cHQocywgTlVMTCk7CisrICAgIFNNTVV2M0FjY2VsU3RhdGUg KmFjY2VsID0gcy0+c19hY2NlbDsKKysKKysgICAgaWYgKCFhY2NlbCkgeworKyAgICAgICAgcmV0 dXJuOworKyAgICB9CisrICAgIC8qIEF0dGFjaCBhIEhXUFQgYmFzZWQgb24gR0JQQSByZXNldCB2 YWx1ZSAqLworKyAgICBzbW11djNfYWNjZWxfYXR0YWNoX2dicGFfaHdwdChzLCBOVUxMKTsKKysK KysgICAgaWYgKGFjY2VsLT5jbWRxdl9vcHMgJiYgYWNjZWwtPmNtZHF2X29wcy0+cmVzZXQpIHsK KysgICAgICAgIGFjY2VsLT5jbWRxdl9vcHMtPnJlc2V0KHMpOworKyAgICB9CisgfQorIAorIHN0 YXRpYyB2b2lkIHNtbXV2M19hY2NlbF9hc19pbml0KFNNTVV2M1N0YXRlICpzKQorZGlmZiAtLWdp dCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK2lu ZGV4IDg1YmUzZDc0NjcuLjM0ZDBmNjVlYWEgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2FybS9z bW11djMuaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLmgKK0BAIC03NSw2ICs3NSw4IEBA IHN0cnVjdCBTTU1VdjNTdGF0ZSB7CisgICAgIE9uT2ZmQXV0byBhdHM7CisgICAgIE9hc01vZGUg b2FzOworICAgICBTc2lkU2l6ZU1vZGUgc3NpZHNpemU7CisrICAgIC8qIFNNTVUgQ01EUVYgZXh0 ZW5zaW9uICovCisrICAgIE9uT2ZmQXV0byBjbWRxdjsKKyAKKyAgICAgTm90aWZpZXIgbWFjaGlu ZV9kb25lOworIH07CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11 djMtY29tbW9uLUFkZC1OU0NGRy1iaXQtZGVmaW5pdGlvbi1mb3ItQ0QucGF0Y2ggYi9rdm0taHct YXJtLXNtbXV2My1jb21tb24tQWRkLU5TQ0ZHLWJpdC1kZWZpbml0aW9uLWZvci1DRC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjA1YTg5Ci0tLSAvZGV2L251bGwK KysrIGIva3ZtLWh3LWFybS1zbW11djMtY29tbW9uLUFkZC1OU0NGRy1iaXQtZGVmaW5pdGlvbi1m b3ItQ0QucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRnJvbSA2NWFkNWYwOWM5NTVkZGRhMjZlMzdl YWIzMTc4YmU1NzQwZjlhYTI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGFvIFRh bmcgPHRhbmd0YW8xNjM0QHBoeXRpdW0uY29tLmNuPgorRGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAx NjoyNToxMSArMDgwMAorU3ViamVjdDogW1BBVENIIDAxOC8xMTFdIGh3L2FybS9zbW11djMtY29t bW9uOiBBZGQgTlNDRkcgYml0IGRlZmluaXRpb24gZm9yIENECitNSU1FLVZlcnNpb246IDEuMAor Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRl ZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQt Ynk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZp biBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTgvMTExXSA4ODFlYjNjY2Ix YzMxZTIyMDdlOGFhOGI5OGQ4MGZkZTY0MzZjY2UzIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkK KworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NAor CitBZGQgTlNDRkcgYml0IGRlZmluaXRpb24gZm9yIENEIHN0cnVjdHVyZS4gVGhpcyBhbGxvd3Mg cHJvcGVyCitjb25maWd1cmF0aW9uIG9mIG5vbi1zZWN1cmUgYWNjZXNzIHNldHRpbmdzIGluIENE LgorCitTaWduZWQtb2ZmLWJ5OiBUYW8gVGFuZyA8dGFuZ3RhbzE2MzRAcGh5dGl1bS5jb20uY24+ CitSZXZpZXdlZC1ieTogUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91dmllckBsaW5hcm8u b3JnPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK01l c3NhZ2UtSUQ6IDwyMDI2MDExOTE2MTExMi4zODQxMzg2LTUtdGFuZ3RhbzE2MzRAcGh5dGl1bS5j b20uY24+CitTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQGxp bmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlZTFjODRkZWQxMGNmODI2NzRl NDk0ZGY0ZjZiOTJhZWYwOTllNGZiKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorLS0tCisgaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oIHwg NSArKysrKworIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1j b21tb24uaAoraW5kZXggOTAzMDBhZDYxYy4uMDZlZjZlNzcyMCAxMDA2NDQKKy0tLSBhL2luY2x1 ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNv bW1vbi5oCitAQCAtMTIzLDExICsxMjMsMTMgQEAgUkVHMzIoQ0RfMSwgNCkKKyAgICAgRklFTEQo Q0RfMSwgQSwgMTQsIDEpCisgICAgIEZJRUxEKENEXzEsIEFTSUQsIDE2LCAxNikKKyBSRUczMihD RF8yLCA4KQorKyAgICBGSUVMRChDRF8yLCBOU0NGRzAsIDAsIDEpCisgICAgIEZJRUxEKENEXzIs IEhBRDAsIDEsIDEpCisgICAgIEZJRUxEKENEXzIsIFRUQjBfTE8sIDQsIDI4KQorIFJFRzMyKENE XzMsIDEyKQorICAgICBGSUVMRChDRF8zLCBUVEIwX0hJLCAwLCAyMCkKKyBSRUczMihDRF80LCAx NikKKysgICAgRklFTEQoQ0RfNCwgTlNDRkcxLCAwLCAxKQorICAgICBGSUVMRChDRF80LCBIQUQx LCAxLCAxKQorICAgICBGSUVMRChDRF80LCBUVEIxX0xPLCA0LCAyOCkKKyBSRUczMihDRF81LCAy MCkKK0BAIC0xNTUsNiArMTU3LDkgQEAgUkVHMzIoQ0RfNSwgMjApCisgI2RlZmluZSBDRF9SKHgp ICAgICAgICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzFdLCBDRF8xLCBSKQorICNkZWZpbmUgQ0Rf QSh4KSAgICAgICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsxXSwgQ0RfMSwgQSkKKyAjZGVmaW5l IENEX0FTSUQoeCkgICAgICAgRklFTERfRVgzMigoeCktPndvcmRbMV0sIENEXzEsIEFTSUQpCisr I2RlZmluZSBDRF9OU0NGRyh4LCBzZWwpICgoc2VsKSA/ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzRdLCBDRF80LCBO U0NGRzEpIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIEZJRUxEX0VYMzIo KHgpLT53b3JkWzJdLCBDRF8yLCBOU0NGRzApKQorICNkZWZpbmUgQ0RfSEFEKHgsIHNlbCkgICAo KHNlbCkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICBG SUVMRF9FWDMyKCh4KS0+d29yZFs0XSwgQ0RfNCwgSEFEMSkgOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsyXSwgQ0RfMiwgSEFEMCkp CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS1zbW11djMtY29tbW9uLUFk ZC1TVEUtQ0Qtc2V0LWhlbHBlcnMtZm9yLXJlcGUucGF0Y2ggYi9rdm0taHctYXJtLXNtbXV2My1j b21tb24tQWRkLVNURS1DRC1zZXQtaGVscGVycy1mb3ItcmVwZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2M5N2Q5Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3 LWFybS1zbW11djMtY29tbW9uLUFkZC1TVEUtQ0Qtc2V0LWhlbHBlcnMtZm9yLXJlcGUucGF0Y2gK QEAgLTAsMCArMSwxMzIgQEAKK0Zyb20gZmVlZjJkZjAwNzVjZWRmYTIwNWRkYWQzOTVjNTdjYzA5 ZTkyOGJlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRhbyBUYW5nIDx0YW5ndGFv MTYzNEBwaHl0aXVtLmNvbS5jbj4KK0RhdGU6IFN1biwgMjEgRGVjIDIwMjUgMTY6Mjg6MDAgKzA4 MDAKK1N1YmplY3Q6IFtQQVRDSCAwMTkvMTExXSBody9hcm0vc21tdXYzLWNvbW1vbjogQWRkIFNU RS9DRCBzZXQgaGVscGVycyBmb3IKKyByZXBlYXRlZCBmaWVsZCBzZXR1cAorTUlNRS1WZXJzaW9u OiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNj ZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JI LUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1i eTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzE5LzExMV0gZDNi MTdmZTc1NWY1YTk4ZjdmZWUxYmMyMzE1MDRmYjQ0MjMwZDJhMiAoZWF1Z2VyMS9jZW50b3MtcWVt dS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwt NzM3OTQKKworVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBTVEVfU0VUXyogYW5kIENEX1NFVF8qIGhl bHBlcnMgdG8gY2VudHJhbGl6ZSBhbmQKK3NpbXBsaWZ5IHJlcGVhdGVkIGZpZWxkIHNldHRpbmcg bG9naWMuCisKK1NpZ25lZC1vZmYtYnk6IFRhbyBUYW5nIDx0YW5ndGFvMTYzNEBwaHl0aXVtLmNv bS5jbj4KK1Jldmlld2VkLWJ5OiBQaWVycmljayBCb3V2aWVyIDxwaWVycmljay5ib3V2aWVyQGxp bmFyby5vcmc+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29t PgorTWVzc2FnZS1JRDogPDIwMjYwMTE5MTYxMTEyLjM4NDEzODYtNi10YW5ndGFvMTYzNEBwaHl0 aXVtLmNvbS5jbj4KK1NpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGls bWRAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDU5YTZiNzRhZWIzNGMx ODVlMjYxYTBjYzhkMGJlYjQ1OTEzODg0MjIpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBpbmNsdWRlL2h3L2FybS9zbW11djMtY29tbW9u LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5n ZWQsIDc5IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2 My1jb21tb24uaCBiL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21tb24uaAoraW5kZXggMDZlZjZl NzcyMC4uMzAxMDE5MTVlMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3NtbXV2My1jb21t b24uaAorKysrIGIvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oCitAQCAtMTAwLDYgKzEw MCwzNyBAQCBSRUczMihTVEVfNywgMjgpCisgI2RlZmluZSBTVEVfQ0ZHX0FCT1JUKGNvbmZpZykg ICAgICAoIShjb25maWcgJiAweDQpKQorICNkZWZpbmUgU1RFX0NGR19CWVBBU1MoY29uZmlnKSAg ICAgKGNvbmZpZyA9PSAweDQpCisgCisrLyogVXBkYXRlIFNURSBmaWVsZHMgKi8KKysjZGVmaW5l IFNURV9TRVRfVkFMSUQoc3RlLCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICgoc3RlKS0+d29yZFswXSA9IEZJRUxEX0RQMzIoKHN0ZSkt PndvcmRbMF0sIFNURV8wLCBWQUxJRCwgKHYpKSkKKysjZGVmaW5lIFNURV9TRVRfQ09ORklHKHN0 ZSwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgICgoc3RlKS0+d29yZFswXSA9IEZJRUxEX0RQMzIoKHN0ZSktPndvcmRbMF0sIFNURV8wLCBD T05GSUcsICh2KSkpCisrCisrI2RlZmluZSBTVEVfU0VUX0NUWFBUUihzdGUsIHYpIGRvIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoc3RlKS0+d29y ZFswXSA9IEZJRUxEX0RQMzIoKHN0ZSktPndvcmRbMF0sIFNURV8wLCBDVFhQVFJfTE8sICh2KSA+ PiA2KTsgIFwKKysgICAgKHN0ZSktPndvcmRbMV0gPSBGSUVMRF9EUDMyKChzdGUpLT53b3JkWzFd LCBTVEVfMSwgQ1RYUFRSX0hJLCAodikgPj4gMzIpOyBcCisrfSB3aGlsZSAoMCkKKysjZGVmaW5l IFNURV9TRVRfUzJUMFNaKHN0ZSwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICgoc3RlKS0+d29yZFs1XSA9IEZJRUxEX0RQMzIoKHN0ZSkt PndvcmRbNV0sIFNURV81LCBTMlQwU1osICh2KSkpCisrI2RlZmluZSBTVEVfU0VUX1MyU0wwKHN0 ZSwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgICAoKHN0ZSktPndvcmRbNV0gPSBGSUVMRF9EUDMyKChzdGUpLT53b3JkWzVdLCBTVEVfNSwg UzJTTDAsICh2KSkpCisrI2RlZmluZSBTVEVfU0VUX1MyVEcoc3RlLCB2KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoKHN0ZSktPndvcmRb NV0gPSBGSUVMRF9EUDMyKChzdGUpLT53b3JkWzVdLCBTVEVfNSwgUzJURywgKHYpKSkKKysjZGVm aW5lIFNURV9TRVRfUzJQUyhzdGUsIHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICgoc3RlKS0+d29yZFs1XSA9IEZJRUxEX0RQMzIoKHN0 ZSktPndvcmRbNV0sIFNURV81LCBTMlBTLCAodikpKQorKyNkZWZpbmUgU1RFX1NFVF9TMkFBNjQo c3RlLCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgKChzdGUpLT53b3JkWzVdID0gRklFTERfRFAzMigoc3RlKS0+d29yZFs1XSwgU1RFXzUs IFMyQUE2NCwgKHYpKSkKKysjZGVmaW5lIFNURV9TRVRfUzJFTkRJKHN0ZSwgdikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoc3RlKS0+d29y ZFs1XSA9IEZJRUxEX0RQMzIoKHN0ZSktPndvcmRbNV0sIFNURV81LCBTMkVOREksICh2KSkpCisr I2RlZmluZSBTVEVfU0VUX1MyQUZGRChzdGUsIHYpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoKHN0ZSktPndvcmRbNV0gPSBGSUVMRF9EUDMy KChzdGUpLT53b3JkWzVdLCBTVEVfNSwgUzJBRkZELCAodikpKQorKyNkZWZpbmUgU1RFX1NFVF9T MlMoc3RlLCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgKChzdGUpLT53b3JkWzVdID0gRklFTERfRFAzMigoc3RlKS0+d29yZFs1XSwg U1RFXzUsIFMyUywgKHYpKSkKKysjZGVmaW5lIFNURV9TRVRfUzJUVEIoc3RlLCB2KSBkbyB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIChzdGUpLT53 b3JkWzZdID0gRklFTERfRFAzMigoc3RlKS0+d29yZFs2XSwgU1RFXzYsIFMyVFRCX0xPLCAodikg Pj4gNCk7ICAgXAorKyAgICAoc3RlKS0+d29yZFs3XSA9IEZJRUxEX0RQMzIoKHN0ZSktPndvcmRb N10sIFNURV83LCBTMlRUQl9ISSwgKHYpID4+IDMyKTsgIFwKKyt9IHdoaWxlICgwKQorKworIC8q IENEIGZpZWxkcyAqLworIAorIFJFRzMyKENEXzAsIDApCitAQCAtMTY5LDYgKzIwMCw1NCBAQCBS RUczMihDRF81LCAyMCkKKyAgICAgICAgICAgICAgKCgodWludDY0X3QpRklFTERfRVgzMigoeCkt PndvcmRbM10sIENEXzMsIFRUQjBfSEkpIDw8IDMyKSB8IFwKKyAgICAgICAgICAgICAgICgodWlu dDY0X3QpRklFTERfRVgzMigoeCktPndvcmRbMl0sIENEXzIsIFRUQjBfTE8pIDw8IDQpKSkKKyAK KysvKiBVcGRhdGUgQ0QgZmllbGRzICovCisrI2RlZmluZSBDRF9TRVRfVkFMSUQoY2QsIHYpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAo KGNkKS0+d29yZFswXSA9IEZJRUxEX0RQMzIoKGNkKS0+d29yZFswXSwgQ0RfMCwgVkFMSUQsICh2 KSkpCisrI2RlZmluZSBDRF9TRVRfQVNJRChjZCwgdikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoKGNkKS0+d29yZFsxXSA9IEZJRUxE X0RQMzIoKGNkKS0+d29yZFsxXSwgQ0RfMSwgQVNJRCwgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9U VEIoY2QsIHNlbCwgdikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgIGlmIChzZWwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgKGNkKS0+d29yZFs0XSA9 IEZJRUxEX0RQMzIoKGNkKS0+d29yZFs0XSwgQ0RfNCwgVFRCMV9MTywgKHYpID4+IDQpOyAgIFwK KysgICAgICAgIChjZCktPndvcmRbNV0gPSBGSUVMRF9EUDMyKChjZCktPndvcmRbNV0sIENEXzUs IFRUQjFfSEksICh2KSA+PiAzMik7ICBcCisrICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAg ICAgKGNkKS0+d29yZFsyXSA9IEZJRUxEX0RQMzIoKGNkKS0+d29yZFsyXSwgQ0RfMiwgVFRCMF9M TywgKHYpID4+IDQpOyAgIFwKKysgICAgICAgIChjZCktPndvcmRbM10gPSBGSUVMRF9EUDMyKChj ZCktPndvcmRbM10sIENEXzMsIFRUQjBfSEksICh2KSA+PiAzMik7ICBcCisrICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZSBDRF9TRVRfVFNaKGNkLCBzZWws IHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICAoKGNkKS0+d29yZFswXSA9IChzZWwpID8gRklFTERfRFAzMigoY2QpLT53b3JkWzBdLCBDRF8w LCBUU1oxLCAodikpIDogICAgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxE X0RQMzIoKGNkKS0+d29yZFswXSwgQ0RfMCwgVFNaMCwgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9U RyhjZCwgc2VsLCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICgoY2QpLT53b3JkWzBdID0gKHNlbCkgPyBGSUVMRF9EUDMyKChjZCktPndv cmRbMF0sIENEXzAsIFRHMSwgKHYpKSA6ICAgICAgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRklFTERfRFAzMigoY2QpLT53b3JkWzBdLCBDRF8wLCBURzAsICh2KSkpCisrI2RlZmlu ZSBDRF9TRVRfRVBEKGNkLCBzZWwsIHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAoKGNkKS0+d29yZFswXSA9IChzZWwpID8gRklFTERfRFAz MigoY2QpLT53b3JkWzBdLCBDRF8wLCBFUEQxLCAodikpIDogICAgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZJRUxEX0RQMzIoKGNkKS0+d29yZFswXSwgQ0RfMCwgRVBEMCwgKHYp KSkKKysjZGVmaW5lIENEX1NFVF9FTkRJKGNkLCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoY2QpLT53b3JkWzBdID0gRklFTERf RFAzMigoY2QpLT53b3JkWzBdLCBDRF8wLCBFTkRJLCAodikpKQorKyNkZWZpbmUgQ0RfU0VUX0lQ UyhjZCwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgKChjZCktPndvcmRbMV0gPSBGSUVMRF9EUDMyKChjZCktPndvcmRbMV0sIENE XzEsIElQUywgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9BRkZEKGNkLCB2KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoY2QpLT53b3Jk WzFdID0gRklFTERfRFAzMigoY2QpLT53b3JkWzFdLCBDRF8xLCBBRkZELCAodikpKQorKyNkZWZp bmUgQ0RfU0VUX1RCSShjZCwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgICAgKChjZCktPndvcmRbMV0gPSBGSUVMRF9EUDMyKChjZCkt PndvcmRbMV0sIENEXzEsIFRCSSwgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9IRChjZCwgdikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg ICgoY2QpLT53b3JkWzFdID0gRklFTERfRFAzMigoY2QpLT53b3JkWzFdLCBDRF8xLCBIRCwgKHYp KSkKKysjZGVmaW5lIENEX1NFVF9IQShjZCwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoY2QpLT53b3JkWzFdID0gRklFTERf RFAzMigoY2QpLT53b3JkWzFdLCBDRF8xLCBIQSwgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9TKGNk LCB2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgICgoY2QpLT53b3JkWzFdID0gRklFTERfRFAzMigoY2QpLT53b3JkWzFdLCBDRF8x LCBTLCAodikpKQorKyNkZWZpbmUgQ0RfU0VUX1IoY2QsIHYpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgKChjZCktPndvcmRbMV0g PSBGSUVMRF9EUDMyKChjZCktPndvcmRbMV0sIENEXzEsIFIsICh2KSkpCisrI2RlZmluZSBDRF9T RVRfQShjZCwgdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICAoKGNkKS0+d29yZFsxXSA9IEZJRUxEX0RQMzIoKGNkKS0+d29yZFsx XSwgQ0RfMSwgQSwgKHYpKSkKKysjZGVmaW5lIENEX1NFVF9BQVJDSDY0KGNkLCB2KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICgoY2QpLT53 b3JkWzFdID0gRklFTERfRFAzMigoY2QpLT53b3JkWzFdLCBDRF8xLCBBQVJDSDY0LCAodikpKQor KyNkZWZpbmUgQ0RfU0VUX05TQ0ZHKGNkLCBzZWwsIHYpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgKChzZWwpID8gKChjZCktPndvcmRbNF0gPSBG SUVMRF9EUDMyKChjZCktPndvcmRbNF0sIENEXzQsIE5TQ0ZHMSwgKHYpKSkgOiBcCisrICAgICAg ICAgICAgICgoY2QpLT53b3JkWzJdID0gRklFTERfRFAzMigoY2QpLT53b3JkWzJdLCBDRF8yLCBO U0NGRzAsICh2KSkpKQorKworIC8qIE1NSU8gUmVnaXN0ZXJzICovCisgCisgUkVHMzIoSURSMCwg ICAgICAgICAgICAgICAgMHgwKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1h cm0tc21tdXYzLWNvbW1vbi1EZWZpbmUtU1RFLUNELWZpZWxkcy12aWEtcmVnaXN0LnBhdGNoIGIv a3ZtLWh3LWFybS1zbW11djMtY29tbW9uLURlZmluZS1TVEUtQ0QtZmllbGRzLXZpYS1yZWdpc3Qu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhjZDVkOQotLS0gL2Rl di9udWxsCisrKyBiL2t2bS1ody1hcm0tc21tdXYzLWNvbW1vbi1EZWZpbmUtU1RFLUNELWZpZWxk cy12aWEtcmVnaXN0LnBhdGNoCkBAIC0wLDAgKzEsMjM1IEBACitGcm9tIGRhZGU0NTMxMmI1M2Qy YmYyYmIyOTMzN2VhZmYzNjI4MTZjN2UxMTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBUYW8gVGFuZyA8dGFuZ3RhbzE2MzRAcGh5dGl1bS5jb20uY24+CitEYXRlOiBTdW4sIDIxIERl YyAyMDI1IDEyOjQ2OjEyICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDE3LzExMV0gaHcvYXJtL3Nt bXV2My1jb21tb246IERlZmluZSBTVEUvQ0QgZmllbGRzIHZpYQorIHJlZ2lzdGVyZmllbGRzCitN SU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmVi YXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4K K1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBb MTcvMTExXSBjNDY2YzU2OGRiMWM5MjQyZGQ2ZWVjZDc3MmM2YWViNjkyNzdiZDVlIChlYXVnZXIx L2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9i cm93c2UvUkhFTC03Mzc5NAorCitDb25mbGljdHM6ICByZXBsYWNlIGh3L2NvcmUvcmVnaXN0ZXJm aWVsZHMuaCBieSBmb3JtZXIKKyAgICAgICAgICAgIGh3L3JlZ2lzdGVyZmllbGRzLmggYmVjYXVz ZSB3ZSBkb24ndCBoYXZlCiszZTczMTYwNDRkOWMgIGluY2x1ZGU6IG1vdmUgaHcvcmVnaXN0ZXJm aWVsZHMuaCB0byBody9jb3JlLworCitTd2l0Y2ggU1RFL0NEIGJpdGZpZWxkIGRlZmluaXRpb25z IGFuZCBhY2Nlc3NvcnMgdG8gdGhlCisncmVnaXN0ZXJmaWVsZHMuaCcgUkVHL0ZJRUxEIEFQSS4K KworU2lnbmVkLW9mZi1ieTogVGFvIFRhbmcgPHRhbmd0YW8xNjM0QHBoeXRpdW0uY29tLmNuPgor UmV2aWV3ZWQtYnk6IFBpZXJyaWNrIEJvdXZpZXIgPHBpZXJyaWNrLmJvdXZpZXJAbGluYXJvLm9y Zz4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNz YWdlLUlEOiA8MjAyNjAxMTkxNjExMTIuMzg0MTM4Ni0zLXRhbmd0YW8xNjM0QHBoeXRpdW0uY29t LmNuPgorW1BNRDogVXBkYXRlZCBTVEU6OkNUWFBUUl9ISSwgU1RFOjpTMlRUQl9ISSBhbmQgQ0Q6 VFRCeF9ISSBsZW5ndGhzXQorU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kg PHBoaWxtZEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMGE1MGQwNmZh MWRkNTQyNTA3N2M3MWYyMjNlZjI5YmU5YjM2ZmU0NSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGluY2x1ZGUvaHcvYXJtL3NtbXV2My1j b21tb24uaCB8IDE2OSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KKyAxIGZpbGUg Y2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oIGIvaW5jbHVkZS9ody9hcm0vc21tdXYz LWNvbW1vbi5oCitpbmRleCA5ZGE4MTdmNDFhLi45MDMwMGFkNjFjIDEwMDY0NAorLS0tIGEvaW5j bHVkZS9ody9hcm0vc21tdXYzLWNvbW1vbi5oCisrKysgYi9pbmNsdWRlL2h3L2FybS9zbW11djMt Y29tbW9uLmgKK0BAIC0xMSw2ICsxMSw4IEBACisgI2lmbmRlZiBIV19BUk1fU01NVVYzX0NPTU1P Tl9ICisgI2RlZmluZSBIV19BUk1fU01NVVYzX0NPTU1PTl9ICisgCisrI2luY2x1ZGUgImh3L3Jl Z2lzdGVyZmllbGRzLmgiCisrCisgLyogQ29uZmlndXJhdGlvbiBEYXRhICovCisgCisgLyogU1RF IExldmVsIDEgRGVzY3JpcHRvciAqLworQEAgLTM1LDYzICszNywxMzIgQEAgdHlwZWRlZiBzdHJ1 Y3QgQ0QgeworIAorIC8qIFNURSBmaWVsZHMgKi8KKyAKKy0jZGVmaW5lIFNURV9WQUxJRCh4KSAg IGV4dHJhY3QzMigoeCktPndvcmRbMF0sIDAsIDEpCisrUkVHMzIoU1RFXzAsIDApCisrICAgIEZJ RUxEKFNURV8wLCBWQUxJRCwgMCwgMSkKKysgICAgRklFTEQoU1RFXzAsIENPTkZJRywgMSwgMykK KysgICAgRklFTEQoU1RFXzAsIFMxRk1ULCA0LCAyKQorKyAgICBGSUVMRChTVEVfMCwgQ1RYUFRS X0xPLCA2LCAyNikKKytSRUczMihTVEVfMSwgNCkKKysgICAgRklFTEQoU1RFXzEsIENUWFBUUl9I SSwgMCwgMjQpCisrICAgIEZJRUxEKFNURV8xLCBTMUNETUFYLCAyNywgNSkKKytSRUczMihTVEVf MiwgOCkKKysgICAgRklFTEQoU1RFXzIsIFMxU1RBTExELCAyNywgMSkKKysgICAgRklFTEQoU1RF XzIsIEVBVFMsIDI4LCAyKQorKyAgICBGSUVMRChTVEVfMiwgU1RSVywgMzAsIDIpCisrUkVHMzIo U1RFXzQsIDE2KQorKyAgICBGSUVMRChTVEVfNCwgUzJWTUlELCAwLCAxNikKKytSRUczMihTVEVf NSwgMjApCisrICAgIEZJRUxEKFNURV81LCBTMlQwU1osIDAsIDYpCisrICAgIEZJRUxEKFNURV81 LCBTMlNMMCwgNiwgMikKKysgICAgRklFTEQoU1RFXzUsIFMyVEcsIDE0LCAyKQorKyAgICBGSUVM RChTVEVfNSwgUzJQUywgMTYsIDMpCisrICAgIEZJRUxEKFNURV81LCBTMkFBNjQsIDE5LCAxKQor KyAgICBGSUVMRChTVEVfNSwgUzJFTkRJLCAyMCwgMSkKKysgICAgRklFTEQoU1RFXzUsIFMyQUZG RCwgMjEsIDEpCisrICAgIEZJRUxEKFNURV81LCBTMkhELCAyMywgMSkKKysgICAgRklFTEQoU1RF XzUsIFMySEEsIDI0LCAxKQorKyAgICBGSUVMRChTVEVfNSwgUzJTLCAyNSwgMSkKKysgICAgRklF TEQoU1RFXzUsIFMyUiwgMjYsIDEpCisrUkVHMzIoU1RFXzYsIDI0KQorKyAgICBGSUVMRChTVEVf NiwgUzJUVEJfTE8sIDQsIDI4KQorK1JFRzMyKFNURV83LCAyOCkKKysgICAgRklFTEQoU1RFXzcs IFMyVFRCX0hJLCAwLCAyMCkKKysKKysvKiBHZXQgU1RFIGZpZWxkcyAqLworKyNkZWZpbmUgU1RF X1ZBTElEKHgpICAgICAgRklFTERfRVgzMigoeCktPndvcmRbMF0sIFNURV8wLCBWQUxJRCkKKysj ZGVmaW5lIFNURV9DT05GSUcoeCkgICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzBdLCBTVEVfMCwg Q09ORklHKQorKyNkZWZpbmUgU1RFX1MxRk1UKHgpICAgICAgRklFTERfRVgzMigoeCktPndvcmRb MF0sIFNURV8wLCBTMUZNVCkKKysjZGVmaW5lIFNURV9DVFhQVFIoeCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgKCgodWludDY0X3QpRklFTERf RVgzMigoeCktPndvcmRbMF0sIFNURV8wLCBDVFhQVFJfTE8pIDw8IDYpIHwgIFwKKysgICAgICgo dWludDY0X3QpRklFTERfRVgzMigoeCktPndvcmRbMV0sIFNURV8xLCBDVFhQVFJfSEkpIDw8IDMy KSkKKysjZGVmaW5lIFNURV9TMUNETUFYKHgpICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzFdLCBT VEVfMSwgUzFDRE1BWCkKKysjZGVmaW5lIFNURV9TMVNUQUxMRCh4KSAgIEZJRUxEX0VYMzIoKHgp LT53b3JkWzJdLCBTVEVfMiwgUzFTVEFMTEQpCisrI2RlZmluZSBTVEVfRUFUUyh4KSAgICAgICBG SUVMRF9FWDMyKCh4KS0+d29yZFsyXSwgU1RFXzIsIEVBVFMpCisrI2RlZmluZSBTVEVfU1RSVyh4 KSAgICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsyXSwgU1RFXzIsIFNUUlcpCisrI2RlZmluZSBT VEVfUzJWTUlEKHgpICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFs0XSwgU1RFXzQsIFMyVk1JRCkK KysjZGVmaW5lIFNURV9TMlQwU1ooeCkgICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzVdLCBTVEVf NSwgUzJUMFNaKQorKyNkZWZpbmUgU1RFX1MyU0wwKHgpICAgICAgRklFTERfRVgzMigoeCktPndv cmRbNV0sIFNURV81LCBTMlNMMCkKKysjZGVmaW5lIFNURV9TMlRHKHgpICAgICAgIEZJRUxEX0VY MzIoKHgpLT53b3JkWzVdLCBTVEVfNSwgUzJURykKKysjZGVmaW5lIFNURV9TMlBTKHgpICAgICAg IEZJRUxEX0VYMzIoKHgpLT53b3JkWzVdLCBTVEVfNSwgUzJQUykKKysjZGVmaW5lIFNURV9TMkFB NjQoeCkgICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzVdLCBTVEVfNSwgUzJBQTY0KQorKyNkZWZp bmUgU1RFX1MyRU5ESSh4KSAgICAgRklFTERfRVgzMigoeCktPndvcmRbNV0sIFNURV81LCBTMkVO REkpCisrI2RlZmluZSBTVEVfUzJBRkZEKHgpICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFs1XSwg U1RFXzUsIFMyQUZGRCkKKysjZGVmaW5lIFNURV9TMkhEKHgpICAgICAgIEZJRUxEX0VYMzIoKHgp LT53b3JkWzVdLCBTVEVfNSwgUzJIRCkKKysjZGVmaW5lIFNURV9TMkhBKHgpICAgICAgIEZJRUxE X0VYMzIoKHgpLT53b3JkWzVdLCBTVEVfNSwgUzJIQSkKKysjZGVmaW5lIFNURV9TMlMoeCkgICAg ICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzVdLCBTVEVfNSwgUzJTKQorKyNkZWZpbmUgU1RFX1My Uih4KSAgICAgICAgRklFTERfRVgzMigoeCktPndvcmRbNV0sIFNURV81LCBTMlIpCisrI2RlZmlu ZSBTVEVfUzJUVEIoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICgoKHVpbnQ2NF90KUZJRUxEX0VYMzIoKHgpLT53b3JkWzZdLCBTVEVfNiwg UzJUVEJfTE8pIDw8IDQpIHwgICBcCisrICAgICAoKHVpbnQ2NF90KUZJRUxEX0VYMzIoKHgpLT53 b3JkWzddLCBTVEVfNywgUzJUVEJfSEkpIDw8IDMyKSkKKyAKKy0jZGVmaW5lIFNURV9DT05GSUco eCkgIGV4dHJhY3QzMigoeCktPndvcmRbMF0sIDEsIDMpCisgI2RlZmluZSBTVEVfQ0ZHX1MxX0VO QUJMRUQoY29uZmlnKSAoY29uZmlnICYgMHgxKQorICNkZWZpbmUgU1RFX0NGR19TMl9FTkFCTEVE KGNvbmZpZykgKGNvbmZpZyAmIDB4MikKKyAjZGVmaW5lIFNURV9DRkdfQUJPUlQoY29uZmlnKSAg ICAgICghKGNvbmZpZyAmIDB4NCkpCisgI2RlZmluZSBTVEVfQ0ZHX0JZUEFTUyhjb25maWcpICAg ICAoY29uZmlnID09IDB4NCkKKyAKKy0jZGVmaW5lIFNURV9TMUZNVCh4KSAgICAgICBleHRyYWN0 MzIoKHgpLT53b3JkWzBdLCA0ICwgMikKKy0jZGVmaW5lIFNURV9TMUNETUFYKHgpICAgICBleHRy YWN0MzIoKHgpLT53b3JkWzFdLCAyNywgNSkKKy0jZGVmaW5lIFNURV9TMVNUQUxMRCh4KSAgICBl eHRyYWN0MzIoKHgpLT53b3JkWzJdLCAyNywgMSkKKy0jZGVmaW5lIFNURV9FQVRTKHgpICAgICAg ICBleHRyYWN0MzIoKHgpLT53b3JkWzJdLCAyOCwgMikKKy0jZGVmaW5lIFNURV9TVFJXKHgpICAg ICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzJdLCAzMCwgMikKKy0jZGVmaW5lIFNURV9TMlZNSUQo eCkgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzRdLCAwICwgMTYpCistI2RlZmluZSBTVEVfUzJU MFNaKHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMCAsIDYpCistI2RlZmluZSBTVEVf UzJTTDAoeCkgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgNiAsIDIpCistI2RlZmluZSBT VEVfUzJURyh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMTQsIDIpCistI2RlZmlu ZSBTVEVfUzJQUyh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMTYsIDMpCistI2Rl ZmluZSBTVEVfUzJBQTY0KHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMTksIDEpCist I2RlZmluZSBTVEVfUzJFTkRJKHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMjAsIDEp CistI2RlZmluZSBTVEVfUzJBRkZEKHgpICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwgMjEs IDEpCistI2RlZmluZSBTVEVfUzJIRCh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1XSwg MjMsIDEpCistI2RlZmluZSBTVEVfUzJIQSh4KSAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFs1 XSwgMjQsIDEpCistI2RlZmluZSBTVEVfUzJTKHgpICAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29y ZFs1XSwgMjUsIDEpCistI2RlZmluZSBTVEVfUzJSKHgpICAgICAgICAgZXh0cmFjdDMyKCh4KS0+ d29yZFs1XSwgMjYsIDEpCistCistI2RlZmluZSBTVEVfQ1RYUFRSKHgpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCistICAgICgoZXh0cmFjdDY0KCh4KS0+d29yZFsxXSwgMCwg MTYpIDw8IDMyKSB8ICAgICAgICAgICBcCistICAgICAoKHgpLT53b3JkWzBdICYgMHhmZmZmZmZj MCkpCistCistI2RlZmluZSBTVEVfUzJUVEIoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCistICAgICgoZXh0cmFjdDY0KCh4KS0+d29yZFs3XSwgMCwgMTYpIDw8IDMyKSB8 ICAgICAgICAgICBcCistICAgICAoKHgpLT53b3JkWzZdICYgMHhmZmZmZmZmMCkpCistCisgLyog Q0QgZmllbGRzICovCisgCistI2RlZmluZSBDRF9WQUxJRCh4KSAgIGV4dHJhY3QzMigoeCktPndv cmRbMF0sIDMxLCAxKQorLSNkZWZpbmUgQ0RfQVNJRCh4KSAgICBleHRyYWN0MzIoKHgpLT53b3Jk WzFdLCAxNiwgMTYpCistI2RlZmluZSBDRF9UVEIoeCwgc2VsKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgKChleHRyYWN0NjQoKHgpLT53b3JkWyhzZWwp ICogMiArIDNdLCAwLCAxOSkgPDwgMzIpIHwgICAgICAgXAorLSAgICAgKCh4KS0+d29yZFsoc2Vs KSAqIDIgKyAyXSAmIH4weGZVTEwpKQorLQorLSNkZWZpbmUgQ0RfSEFEKHgsIHNlbCkgICBleHRy YWN0MzIoKHgpLT53b3JkWyhzZWwpICogMiArIDJdLCAxLCAxKQorLQorLSNkZWZpbmUgQ0RfVFNa KHgsIHNlbCkgICBleHRyYWN0MzIoKHgpLT53b3JkWzBdLCAoMTYgKiAoc2VsKSkgKyAwLCA2KQor LSNkZWZpbmUgQ0RfVEcoeCwgc2VsKSAgICBleHRyYWN0MzIoKHgpLT53b3JkWzBdLCAoMTYgKiAo c2VsKSkgKyA2LCAyKQorLSNkZWZpbmUgQ0RfRVBEKHgsIHNlbCkgICBleHRyYWN0MzIoKHgpLT53 b3JkWzBdLCAoMTYgKiAoc2VsKSkgKyAxNCwgMSkKKy0jZGVmaW5lIENEX0VOREkoeCkgICAgICAg ZXh0cmFjdDMyKCh4KS0+d29yZFswXSwgMTUsIDEpCistI2RlZmluZSBDRF9JUFMoeCkgICAgICAg IGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDAgLCAzKQorLSNkZWZpbmUgQ0RfQUZGRCh4KSAgICAg ICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAzICwgMSkKKy0jZGVmaW5lIENEX1RCSSh4KSAgICAg ICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgNiAsIDIpCistI2RlZmluZSBDRF9IRCh4KSAgICAg ICAgIGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDEwICwgMSkKKy0jZGVmaW5lIENEX0hBKHgpICAg ICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTEgLCAxKQorLSNkZWZpbmUgQ0RfUyh4KSAg ICAgICAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCAxMiwgMSkKKy0jZGVmaW5lIENEX1IoeCkg ICAgICAgICAgZXh0cmFjdDMyKCh4KS0+d29yZFsxXSwgMTMsIDEpCistI2RlZmluZSBDRF9BKHgp ICAgICAgICAgIGV4dHJhY3QzMigoeCktPndvcmRbMV0sIDE0LCAxKQorLSNkZWZpbmUgQ0RfQUFS Q0g2NCh4KSAgICBleHRyYWN0MzIoKHgpLT53b3JkWzFdLCA5ICwgMSkKKytSRUczMihDRF8wLCAw KQorKyAgICBGSUVMRChDRF8wLCBUU1owLCAwLCA2KQorKyAgICBGSUVMRChDRF8wLCBURzAsIDYs IDIpCisrICAgIEZJRUxEKENEXzAsIEVQRDAsIDE0LCAxKQorKyAgICBGSUVMRChDRF8wLCBFTkRJ LCAxNSwgMSkKKysgICAgRklFTEQoQ0RfMCwgVFNaMSwgMTYsIDYpCisrICAgIEZJRUxEKENEXzAs IFRHMSwgMjIsIDIpCisrICAgIEZJRUxEKENEXzAsIEVQRDEsIDMwLCAxKQorKyAgICBGSUVMRChD RF8wLCBWQUxJRCwgMzEsIDEpCisrUkVHMzIoQ0RfMSwgNCkKKysgICAgRklFTEQoQ0RfMSwgSVBT LCAwLCAzKQorKyAgICBGSUVMRChDRF8xLCBBRkZELCAzLCAxKQorKyAgICBGSUVMRChDRF8xLCBU QkksIDYsIDIpCisrICAgIEZJRUxEKENEXzEsIEFBUkNINjQsIDksIDEpCisrICAgIEZJRUxEKENE XzEsIEhELCAxMCwgMSkKKysgICAgRklFTEQoQ0RfMSwgSEEsIDExLCAxKQorKyAgICBGSUVMRChD RF8xLCBTLCAxMiwgMSkKKysgICAgRklFTEQoQ0RfMSwgUiwgMTMsIDEpCisrICAgIEZJRUxEKENE XzEsIEEsIDE0LCAxKQorKyAgICBGSUVMRChDRF8xLCBBU0lELCAxNiwgMTYpCisrUkVHMzIoQ0Rf MiwgOCkKKysgICAgRklFTEQoQ0RfMiwgSEFEMCwgMSwgMSkKKysgICAgRklFTEQoQ0RfMiwgVFRC MF9MTywgNCwgMjgpCisrUkVHMzIoQ0RfMywgMTIpCisrICAgIEZJRUxEKENEXzMsIFRUQjBfSEks IDAsIDIwKQorK1JFRzMyKENEXzQsIDE2KQorKyAgICBGSUVMRChDRF80LCBIQUQxLCAxLCAxKQor KyAgICBGSUVMRChDRF80LCBUVEIxX0xPLCA0LCAyOCkKKytSRUczMihDRF81LCAyMCkKKysgICAg RklFTEQoQ0RfNSwgVFRCMV9ISSwgMCwgMjApCisrCisrLyogR2V0IENEIGZpZWxkcyAqLworKyNk ZWZpbmUgQ0RfVFNaKHgsIHNlbCkgICAoKHNlbCkgPyAgICAgICAgICBcCisrICAgIEZJRUxEX0VY MzIoKHgpLT53b3JkWzBdLCBDRF8wLCBUU1oxKSA6IFwKKysgICAgRklFTERfRVgzMigoeCktPndv cmRbMF0sIENEXzAsIFRTWjApKQorKyNkZWZpbmUgQ0RfVEcoeCwgc2VsKSAgICAoKHNlbCkgPyAg ICAgICAgICBcCisrICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzBdLCBDRF8wLCBURzEpIDogIFwK KysgICAgRklFTERfRVgzMigoeCktPndvcmRbMF0sIENEXzAsIFRHMCkpCisrI2RlZmluZSBDRF9F UEQoeCwgc2VsKSAgICgoc2VsKSA/ICAgICAgICAgIFwKKysgICAgRklFTERfRVgzMigoeCktPndv cmRbMF0sIENEXzAsIEVQRDEpIDogXAorKyAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFswXSwgQ0Rf MCwgRVBEMCkpCisrI2RlZmluZSBDRF9FTkRJKHgpICAgICAgIEZJRUxEX0VYMzIoKHgpLT53b3Jk WzBdLCBDRF8wLCBFTkRJKQorKyNkZWZpbmUgQ0RfVkFMSUQoeCkgICAgICBGSUVMRF9FWDMyKCh4 KS0+d29yZFswXSwgQ0RfMCwgVkFMSUQpCisrI2RlZmluZSBDRF9JUFMoeCkgICAgICAgIEZJRUxE X0VYMzIoKHgpLT53b3JkWzFdLCBDRF8xLCBJUFMpCisrI2RlZmluZSBDRF9BRkZEKHgpICAgICAg IEZJRUxEX0VYMzIoKHgpLT53b3JkWzFdLCBDRF8xLCBBRkZEKQorKyNkZWZpbmUgQ0RfVEJJKHgp ICAgICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsxXSwgQ0RfMSwgVEJJKQorKyNkZWZpbmUgQ0Rf QUFSQ0g2NCh4KSAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsxXSwgQ0RfMSwgQUFSQ0g2NCkKKysj ZGVmaW5lIENEX0hEKHgpICAgICAgICAgRklFTERfRVgzMigoeCktPndvcmRbMV0sIENEXzEsIEhE KQorKyNkZWZpbmUgQ0RfSEEoeCkgICAgICAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsxXSwgQ0Rf MSwgSEEpCisrI2RlZmluZSBDRF9TKHgpICAgICAgICAgIEZJRUxEX0VYMzIoKHgpLT53b3JkWzFd LCBDRF8xLCBTKQorKyNkZWZpbmUgQ0RfUih4KSAgICAgICAgICBGSUVMRF9FWDMyKCh4KS0+d29y ZFsxXSwgQ0RfMSwgUikKKysjZGVmaW5lIENEX0EoeCkgICAgICAgICAgRklFTERfRVgzMigoeCkt PndvcmRbMV0sIENEXzEsIEEpCisrI2RlZmluZSBDRF9BU0lEKHgpICAgICAgIEZJRUxEX0VYMzIo KHgpLT53b3JkWzFdLCBDRF8xLCBBU0lEKQorKyNkZWZpbmUgQ0RfSEFEKHgsIHNlbCkgICAoKHNl bCkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBGSUVM RF9FWDMyKCh4KS0+d29yZFs0XSwgQ0RfNCwgSEFEMSkgOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBGSUVMRF9FWDMyKCh4KS0+d29yZFsyXSwgQ0RfMiwgSEFEMCkpCisr I2RlZmluZSBDRF9UVEIoeCwgc2VsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICgoc2VsKSA/ICgoKHVpbnQ2NF90KUZJRUxEX0VYMzIo KHgpLT53b3JkWzVdLCBDRF81LCBUVEIxX0hJKSA8PCAzMikgfCBcCisrICAgICAgICAgICAgICAo KHVpbnQ2NF90KUZJRUxEX0VYMzIoKHgpLT53b3JkWzRdLCBDRF80LCBUVEIxX0xPKSA8PCA0KSkg OiBcCisrICAgICAgICAgICAgICgoKHVpbnQ2NF90KUZJRUxEX0VYMzIoKHgpLT53b3JkWzNdLCBD RF8zLCBUVEIwX0hJKSA8PCAzMikgfCBcCisrICAgICAgICAgICAgICAoKHVpbnQ2NF90KUZJRUxE X0VYMzIoKHgpLT53b3JkWzJdLCBDRF8yLCBUVEIwX0xPKSA8PCA0KSkpCisgCisgLyogTU1JTyBS ZWdpc3RlcnMgKi8KKyAKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXNt bXV2My1wcm9wYWdhdGUtc21tdXYzX2NtZHFfY29uc3VtZS1lcnJvcnMtdC5wYXRjaCBiL2t2bS1o dy1hcm0tc21tdXYzLXByb3BhZ2F0ZS1zbW11djNfY21kcV9jb25zdW1lLWVycm9ycy10LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NDUzY2UKLS0tIC9kZXYvbnVs bAorKysgYi9rdm0taHctYXJtLXNtbXV2My1wcm9wYWdhdGUtc21tdXYzX2NtZHFfY29uc3VtZS1l cnJvcnMtdC5wYXRjaApAQCAtMCwwICsxLDIwNSBAQAorRnJvbSBjNTc4NzBhMGFiNGVjNTRmZDdk NWU5NTI3YTcyZTcwOWQ3NDE2NTg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hh bWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEph biAyMDI2IDEzOjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDIxLzExMV0gaHcvYXJtL3Nt bXV2MzogcHJvcGFnYXRlIHNtbXV2M19jbWRxX2NvbnN1bWUoKSBlcnJvcnMKKyB0byBjYWxsZXIK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBS ZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29t PgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6 IFsyMS8xMTFdIGQ1NDhhNzIwMWQwNDNhNGUwZThhZGU1YzEwYTNmMTljYTAzMzU3Y2MgKGVhdWdl cjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0 L2Jyb3dzZS9SSEVMLTczNzk0CisKK3NtbXV2M19jbWRxX2NvbnN1bWUoKSBpcyB1cGRhdGVkIHRv IHJldHVybiBkZXRhaWxlZCBlcnJvcnMgdmlhIGVycnAuCisKK0FsdGhvdWdoIHRoaXMgaXMgY3Vy cmVudGx5IGEgbm8tb3AsIGl0IHByZXBhcmVzIHRoZSBncm91bmQgZm9yIGFjY2VsCitTTU1VdjMg c3BlY2lmaWMgY29tbWFuZCBoYW5kbGluZyB3aGVyZSBwcm9wZXIgZXJyb3IgcmVwb3J0aW5nIHdp bGwgYmUKK3VzZWZ1bC4KKworUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1i eTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBK b25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitTaWduZWQtb2Zm LWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2Ut aWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0xNC1za29sb3RodW10aG9AbnZpZGlhLmNvbQorU2ln bmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOTVkODU1MTY3YWY0M2U5NTg5MDNmMjk0MzBmNTYzMjA1 YjhiMmFmZCkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNv bT4KKy0tLQorIGh3L2FybS9zbW11djMuYyB8IDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgMzAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLmMgYi9ody9h cm0vc21tdXYzLmMKK2luZGV4IGVmOTkxY2I3ZDguLjM3NGFlMDhiYWEgMTAwNjQ0CistLS0gYS9o dy9hcm0vc21tdXYzLmMKKysrKyBiL2h3L2FybS9zbW11djMuYworQEAgLTEyNzksNyArMTI3OSw3 IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19yYW5nZV9pbnZhbChTTU1VU3RhdGUgKnMsIENtZCAqY21k LCBTTU1VU3RhZ2Ugc3RhZ2UpCisgICAgIH0KKyB9CisgCistc3RhdGljIGludCBzbW11djNfY21k cV9jb25zdW1lKFNNTVV2M1N0YXRlICpzKQorK3N0YXRpYyBpbnQgc21tdXYzX2NtZHFfY29uc3Vt ZShTTU1VdjNTdGF0ZSAqcywgRXJyb3IgKiplcnJwKQorIHsKKyAgICAgU01NVVN0YXRlICpicyA9 IEFSTV9TTU1VKHMpOworICAgICBTTU1VQ21kRXJyb3IgY21kX2Vycm9yID0gU01NVV9DRVJST1Jf Tk9ORTsKK0BAIC0xNTQ3LDQyICsxNTQ3LDQ0IEBAIHN0YXRpYyBNZW1UeFJlc3VsdCBzbW11X3dy aXRlbGwoU01NVXYzU3RhdGUgKnMsIGh3YWRkciBvZmZzZXQsCisgc3RhdGljIE1lbVR4UmVzdWx0 IHNtbXVfd3JpdGVsKFNNTVV2M1N0YXRlICpzLCBod2FkZHIgb2Zmc2V0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBkYXRhLCBNZW1UeEF0dHJzIGF0dHJzKQorIHsK KysgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7CisrCisgICAgIHN3aXRjaCAob2Zmc2V0KSB7 CisgICAgIGNhc2UgQV9DUjA6CisgICAgICAgICBzLT5jclswXSA9IGRhdGE7CisgICAgICAgICBz LT5jcjBhY2sgPSBkYXRhICYgflNNTVVfQ1IwX1JFU0VSVkVEOworICAgICAgICAgLyogaW4gY2Fz ZSB0aGUgY29tbWFuZCBxdWV1ZSBoYXMgYmVlbiBlbmFibGVkICovCistICAgICAgICBzbW11djNf Y21kcV9jb25zdW1lKHMpOworLSAgICAgICAgcmV0dXJuIE1FTVRYX09LOworKyAgICAgICAgc21t dXYzX2NtZHFfY29uc3VtZShzLCAmbG9jYWxfZXJyKTsKKysgICAgICAgIGJyZWFrOworICAgICBj YXNlIEFfQ1IxOgorICAgICAgICAgcy0+Y3JbMV0gPSBkYXRhOworLSAgICAgICAgcmV0dXJuIE1F TVRYX09LOworKyAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9DUjI6CisgICAgICAgICBzLT5j clsyXSA9IGRhdGE7CistICAgICAgICByZXR1cm4gTUVNVFhfT0s7CisrICAgICAgICBicmVhazsK KyAgICAgY2FzZSBBX0lSUV9DVFJMOgorICAgICAgICAgcy0+aXJxX2N0cmwgPSBkYXRhOworLSAg ICAgICAgcmV0dXJuIE1FTVRYX09LOworKyAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9HRVJS T1JOOgorICAgICAgICAgc21tdXYzX3dyaXRlX2dlcnJvcm4ocywgZGF0YSk7CisgICAgICAgICAv KgorICAgICAgICAgICogQnkgYWNrbm93bGVkZ2luZyB0aGUgQ01EUV9FUlIsIFNXIG1heSBub3Rp ZnkgY21kcyBjYW4KKyAgICAgICAgICAqIGJlIHByb2Nlc3NlZCBhZ2FpbgorICAgICAgICAgICov CistICAgICAgICBzbW11djNfY21kcV9jb25zdW1lKHMpOworLSAgICAgICAgcmV0dXJuIE1FTVRY X09LOworKyAgICAgICAgc21tdXYzX2NtZHFfY29uc3VtZShzLCAmbG9jYWxfZXJyKTsKKysgICAg ICAgIGJyZWFrOworICAgICBjYXNlIEFfR0VSUk9SX0lSUV9DRkcwOiAvKiA2NGIgKi8KKyAgICAg ICAgIHMtPmdlcnJvcl9pcnFfY2ZnMCA9IGRlcG9zaXQ2NChzLT5nZXJyb3JfaXJxX2NmZzAsIDAs IDMyLCBkYXRhKTsKKy0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFrOwor ICAgICBjYXNlIEFfR0VSUk9SX0lSUV9DRkcwICsgNDoKKyAgICAgICAgIHMtPmdlcnJvcl9pcnFf Y2ZnMCA9IGRlcG9zaXQ2NChzLT5nZXJyb3JfaXJxX2NmZzAsIDMyLCAzMiwgZGF0YSk7CistICAg ICAgICByZXR1cm4gTUVNVFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0dFUlJP Ul9JUlFfQ0ZHMToKKyAgICAgICAgIHMtPmdlcnJvcl9pcnFfY2ZnMSA9IGRhdGE7CistICAgICAg ICByZXR1cm4gTUVNVFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0dFUlJPUl9J UlFfQ0ZHMjoKKyAgICAgICAgIHMtPmdlcnJvcl9pcnFfY2ZnMiA9IGRhdGE7CistICAgICAgICBy ZXR1cm4gTUVNVFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0dCUEE6CisgICAg ICAgICAvKgorICAgICAgICAgICogSWYgVVBEQVRFIGlzIG5vdCBzZXQsIHRoZSB3cml0ZSBpcyBp Z25vcmVkLiBUaGlzIGlzIHRoZSBvbmx5CitAQCAtMTU5Miw3MSArMTU5NCw3NiBAQCBzdGF0aWMg TWVtVHhSZXN1bHQgc21tdV93cml0ZWwoU01NVXYzU3RhdGUgKnMsIGh3YWRkciBvZmZzZXQsCisg ICAgICAgICAgICAgLyogSWdub3JlIHVwZGF0ZSBiaXQgYXMgd3JpdGUgaXMgc3luY2hyb25vdXMu ICovCisgICAgICAgICAgICAgcy0+Z2JwYSA9IGRhdGEgJiB+Ul9HQlBBX1VQREFURV9NQVNLOwor ICAgICAgICAgfQorLSAgICAgICAgcmV0dXJuIE1FTVRYX09LOworKyAgICAgICAgYnJlYWs7Cisg ICAgIGNhc2UgQV9TVFJUQUJfQkFTRTogLyogNjRiICovCisgICAgICAgICBzLT5zdHJ0YWJfYmFz ZSA9IGRlcG9zaXQ2NChzLT5zdHJ0YWJfYmFzZSwgMCwgMzIsIGRhdGEpOworLSAgICAgICAgcmV0 dXJuIE1FTVRYX09LOworKyAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9TVFJUQUJfQkFTRSAr IDQ6CisgICAgICAgICBzLT5zdHJ0YWJfYmFzZSA9IGRlcG9zaXQ2NChzLT5zdHJ0YWJfYmFzZSwg MzIsIDMyLCBkYXRhKTsKKy0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFr OworICAgICBjYXNlIEFfU1RSVEFCX0JBU0VfQ0ZHOgorICAgICAgICAgcy0+c3RydGFiX2Jhc2Vf Y2ZnID0gZGF0YTsKKyAgICAgICAgIGlmIChGSUVMRF9FWDMyKGRhdGEsIFNUUlRBQl9CQVNFX0NG RywgRk1UKSA9PSAxKSB7CisgICAgICAgICAgICAgcy0+c2lkX3NwbGl0ID0gRklFTERfRVgzMihk YXRhLCBTVFJUQUJfQkFTRV9DRkcsIFNQTElUKTsKKyAgICAgICAgICAgICBzLT5mZWF0dXJlcyB8 PSBTTU1VX0ZFQVRVUkVfMkxWTF9TVEU7CisgICAgICAgICB9CistICAgICAgICByZXR1cm4gTUVN VFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0NNRFFfQkFTRTogLyogNjRiICov CisgICAgICAgICBzLT5jbWRxLmJhc2UgPSBkZXBvc2l0NjQocy0+Y21kcS5iYXNlLCAwLCAzMiwg ZGF0YSk7CisgICAgICAgICBzLT5jbWRxLmxvZzJzaXplID0gZXh0cmFjdDY0KHMtPmNtZHEuYmFz ZSwgMCwgNSk7CisgICAgICAgICBpZiAocy0+Y21kcS5sb2cyc2l6ZSA+IFNNTVVfQ01EUVMpIHsK KyAgICAgICAgICAgICBzLT5jbWRxLmxvZzJzaXplID0gU01NVV9DTURRUzsKKyAgICAgICAgIH0K Ky0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFrOworICAgICBjYXNlIEFf Q01EUV9CQVNFICsgNDogLyogNjRiICovCisgICAgICAgICBzLT5jbWRxLmJhc2UgPSBkZXBvc2l0 NjQocy0+Y21kcS5iYXNlLCAzMiwgMzIsIGRhdGEpOworLSAgICAgICAgcmV0dXJuIE1FTVRYX09L OworKyAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9DTURRX1BST0Q6CisgICAgICAgICBzLT5j bWRxLnByb2QgPSBkYXRhOworLSAgICAgICAgc21tdXYzX2NtZHFfY29uc3VtZShzKTsKKy0gICAg ICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIHNtbXV2M19jbWRxX2NvbnN1bWUocywgJmxv Y2FsX2Vycik7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0NNRFFfQ09OUzoKKyAgICAg ICAgIHMtPmNtZHEuY29ucyA9IGRhdGE7CistICAgICAgICByZXR1cm4gTUVNVFhfT0s7CisrICAg ICAgICBicmVhazsKKyAgICAgY2FzZSBBX0VWRU5UUV9CQVNFOiAvKiA2NGIgKi8KKyAgICAgICAg IHMtPmV2ZW50cS5iYXNlID0gZGVwb3NpdDY0KHMtPmV2ZW50cS5iYXNlLCAwLCAzMiwgZGF0YSk7 CisgICAgICAgICBzLT5ldmVudHEubG9nMnNpemUgPSBleHRyYWN0NjQocy0+ZXZlbnRxLmJhc2Us IDAsIDUpOworICAgICAgICAgaWYgKHMtPmV2ZW50cS5sb2cyc2l6ZSA+IFNNTVVfRVZFTlRRUykg eworICAgICAgICAgICAgIHMtPmV2ZW50cS5sb2cyc2l6ZSA9IFNNTVVfRVZFTlRRUzsKKyAgICAg ICAgIH0KKy0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFrOworICAgICBj YXNlIEFfRVZFTlRRX0JBU0UgKyA0OgorICAgICAgICAgcy0+ZXZlbnRxLmJhc2UgPSBkZXBvc2l0 NjQocy0+ZXZlbnRxLmJhc2UsIDMyLCAzMiwgZGF0YSk7CistICAgICAgICByZXR1cm4gTUVNVFhf T0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0VWRU5UUV9QUk9EOgorICAgICAgICAg cy0+ZXZlbnRxLnByb2QgPSBkYXRhOworLSAgICAgICAgcmV0dXJuIE1FTVRYX09LOworKyAgICAg ICAgYnJlYWs7CisgICAgIGNhc2UgQV9FVkVOVFFfQ09OUzoKKyAgICAgICAgIHMtPmV2ZW50cS5j b25zID0gZGF0YTsKKy0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFrOwor ICAgICBjYXNlIEFfRVZFTlRRX0lSUV9DRkcwOiAvKiA2NGIgKi8KKyAgICAgICAgIHMtPmV2ZW50 cV9pcnFfY2ZnMCA9IGRlcG9zaXQ2NChzLT5ldmVudHFfaXJxX2NmZzAsIDAsIDMyLCBkYXRhKTsK Ky0gICAgICAgIHJldHVybiBNRU1UWF9PSzsKKysgICAgICAgIGJyZWFrOworICAgICBjYXNlIEFf RVZFTlRRX0lSUV9DRkcwICsgNDoKKyAgICAgICAgIHMtPmV2ZW50cV9pcnFfY2ZnMCA9IGRlcG9z aXQ2NChzLT5ldmVudHFfaXJxX2NmZzAsIDMyLCAzMiwgZGF0YSk7CistICAgICAgICByZXR1cm4g TUVNVFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0VWRU5UUV9JUlFfQ0ZHMToK KyAgICAgICAgIHMtPmV2ZW50cV9pcnFfY2ZnMSA9IGRhdGE7CistICAgICAgICByZXR1cm4gTUVN VFhfT0s7CisrICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX0VWRU5UUV9JUlFfQ0ZHMjoKKyAg ICAgICAgIHMtPmV2ZW50cV9pcnFfY2ZnMiA9IGRhdGE7CistICAgICAgICByZXR1cm4gTUVNVFhf T0s7CisrICAgICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHFlbXVfbG9nX21h c2soTE9HX1VOSU1QLAorICAgICAgICAgICAgICAgICAgICAgICAiJXMgVW5leHBlY3RlZCAzMi1i aXQgYWNjZXNzIHRvIDB4JSJQUkl4NjQiIChXSSlcbiIsCisgICAgICAgICAgICAgICAgICAgICAg IF9fZnVuY19fLCBvZmZzZXQpOworLSAgICAgICAgcmV0dXJuIE1FTVRYX09LOworKyAgICAgICAg YnJlYWs7CisgICAgIH0KKysKKysgICAgaWYgKGxvY2FsX2VycikgeworKyAgICAgICAgZXJyb3Jf cmVwb3J0X2Vycihsb2NhbF9lcnIpOworKyAgICB9CisrICAgIHJldHVybiBNRU1UWF9PSzsKKyB9 CisgCisgc3RhdGljIE1lbVR4UmVzdWx0IHNtbXVfd3JpdGVfbW1pbyh2b2lkICpvcGFxdWUsIGh3 YWRkciBvZmZzZXQsIHVpbnQ2NF90IGRhdGEsCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEv a3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1BZGQtVGVncmEyNDEtQ01EUVYtb3BzLWJhY2tlbmQu cGF0Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUFkZC1UZWdyYTI0MS1DTURRVi1vcHMt YmFja2VuZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGI3ODRk Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1BZGQtVGVncmEy NDEtQ01EUVYtb3BzLWJhY2tlbmQucGF0Y2gKQEAgLTAsMCArMSwxOTQgQEAKK0Zyb20gNDdlNTM5 ZjFjZmVkODI2NGYyZmI4MmExNjk1OThlMmRjN2Q3M2U2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0 ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjI4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMDg2LzEx MV0gaHcvYXJtL3RlZ3JhMjQxLWNtZHF2OiBBZGQgVGVncmEyNDEgQ01EUVYgb3BzIGJhY2tlbmQK KyBzdHViCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6 IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1K aXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVk aGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgt Q29tbWl0OiBbODYvMTExXSA1MTZiMzQxYTM2ZWNlZDZkYmFhYjA1NGQwNmFmYjRjNTdmNzhlZGE0 IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNz aWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitDb25mbGljdHM6IGNvbnRleHR1YWwgY29uZmxp Y3QgaW4gaHcvYXJtL0tjb25maWcgYXMgd2UgZG9uJ3QgaGF2ZQorRlNMX0lNWDhNTSBGU0xfSU1Y OE1NX0VWSyBjb25maWdzCisKK0ludHJvZHVjZSBhIFRlZ3JhMjQxIENNRFFWIGJhY2tlbmQgdGhh dCBwbHVncyBpbnRvIHRoZSBTTU1VdjMgYWNjZWxlcmF0ZWQKK0NNRFFWIG9wcyBpbnRlcmZhY2Uu CisKK1RoaXMgcGF0Y2ggd2lyZXMgdXAgdGhlIFRlZ3JhMjQxIENNRFFWIGJhY2tlbmQgYW5kIHBy b3ZpZGVzIGEgc3R1YgoraW1wbGVtZW50YXRpb24gZm9yIENNRFFWIHByb2JlLCBpbml0aWFsaXph dGlvbiwgdklPTU1VIGFsbG9jYXRpb24KK2FuZCByZXNldCBoYW5kbGluZy4KKworRnVuY3Rpb25h bCBDTURRViBzdXBwb3J0IGlzIGFkZGVkIGluIGZvbGxvdy11cCBwYXRjaGVzLgorCitSZXZpZXdl ZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE5p Y29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVu IDxuaWNvbGluY0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS04LXNrb2xv dGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5t YXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiYzJmZDVjZTZj YTBmMDY1NTljNWY5YzRmNjgyNjQyZWM5ZDIwYjI1KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL0tjb25maWcgICAgICAgICAg ICAgICAgfCAgNSArKysrCisgaHcvYXJtL21lc29uLmJ1aWxkICAgICAgICAgICAgfCAgMiArKwor IGh3L2FybS90ZWdyYTI0MS1jbWRxdi1zdHVicy5jIHwgMTYgKysrKysrKysrKworIGh3L2FybS90 ZWdyYTI0MS1jbWRxdi5jICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBody9hcm0vdGVncmEyNDEtY21kcXYuaCAgICAgICB8IDE1ICsrKysrKysrKysKKyA1 IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgaHcv YXJtL3RlZ3JhMjQxLWNtZHF2LXN0dWJzLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvYXJtL3Rl Z3JhMjQxLWNtZHF2LmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvYXJtL3RlZ3JhMjQxLWNtZHF2 LmgKKworZGlmZiAtLWdpdCBhL2h3L2FybS9LY29uZmlnIGIvaHcvYXJtL0tjb25maWcKK2luZGV4 IDFmNDk1NTBjNjEuLmY3YmRjZmRjODMgMTAwNjQ0CistLS0gYS9ody9hcm0vS2NvbmZpZworKysr IGIvaHcvYXJtL0tjb25maWcKK0BAIC02MjIsNiArNjIyLDEwIEBAIGNvbmZpZyBGU0xfSU1YOE1Q X0VWSworICAgICBkZXBlbmRzIG9uIFRDRyAmJiBBQVJDSDY0CisgICAgIHNlbGVjdCBGU0xfSU1Y OE1QCisgCisrY29uZmlnIFRFR1JBMjQxX0NNRFFWCisrICAgIGJvb2wKKysgICAgZGVwZW5kcyBv biBBUk1fU01NVVYzX0FDQ0VMCisrCisgY29uZmlnIEFSTV9TTU1VVjNfQUNDRUwKKyAgICAgYm9v bAorICAgICBkZXBlbmRzIG9uIEFSTV9TTU1VVjMKK0BAIC02MjksNiArNjMzLDcgQEAgY29uZmln IEFSTV9TTU1VVjNfQUNDRUwKKyBjb25maWcgQVJNX1NNTVVWMworICAgICBib29sCisgICAgIHNl bGVjdCBBUk1fU01NVVYzX0FDQ0VMIGlmIElPTU1VRkQKKysgICAgaW1wbHkgVEVHUkEyNDFfQ01E UVYKKyAKKyBjb25maWcgRlNMX0lNWDZVTAorICAgICBib29sCitkaWZmIC0tZ2l0IGEvaHcvYXJt L21lc29uLmJ1aWxkIGIvaHcvYXJtL21lc29uLmJ1aWxkCitpbmRleCBiM2YyZTRkNWRkLi4xOGI5 NmI2NTdjIDEwMDY0NAorLS0tIGEvaHcvYXJtL21lc29uLmJ1aWxkCisrKysgYi9ody9hcm0vbWVz b24uYnVpbGQKK0BAIC02NCw2ICs2NCw4IEBAIGFybV9jb21tb25fc3MuYWRkKHdoZW46ICdDT05G SUdfRlNMX0lNWDhNUF9FVksnLCBpZl90cnVlOiBmaWxlcygnaW14OG1wLWV2ay5jJykpCisgYXJt X2NvbW1vbl9zcy5hZGQod2hlbjogJ0NPTkZJR19BUk1fU01NVVYzJywgaWZfdHJ1ZTogZmlsZXMo J3NtbXV2My5jJykpCisgYXJtX2NvbW1vbl9zcy5hZGQod2hlbjogJ0NPTkZJR19BUk1fU01NVVYz X0FDQ0VMJywgaWZfdHJ1ZTogZmlsZXMoJ3NtbXV2My1hY2NlbC5jJykpCisgc3R1Yl9zcy5hZGQo ZmlsZXMoJ3NtbXV2My1hY2NlbC1zdHVicy5jJykpCisrYXJtX2NvbW1vbl9zcy5hZGQod2hlbjog J0NPTkZJR19URUdSQTI0MV9DTURRVicsIGlmX3RydWU6IGZpbGVzKCd0ZWdyYTI0MS1jbWRxdi5j JykpCisrc3R1Yl9zcy5hZGQoZmlsZXMoJ3RlZ3JhMjQxLWNtZHF2LXN0dWJzLmMnKSkKKyBhcm1f Y29tbW9uX3NzLmFkZCh3aGVuOiAnQ09ORklHX0ZTTF9JTVg2VUwnLCBpZl90cnVlOiBmaWxlcygn ZnNsLWlteDZ1bC5jJywgJ21jaW14NnVsLWV2ay5jJykpCisgYXJtX2NvbW1vbl9zcy5hZGQod2hl bjogJ0NPTkZJR19OUkY1MV9TT0MnLCBpZl90cnVlOiBmaWxlcygnbnJmNTFfc29jLmMnKSkKKyBh cm1fc3MuYWRkKHdoZW46ICdDT05GSUdfWEVOJywgaWZfdHJ1ZTogZmlsZXMoCitkaWZmIC0tZ2l0 IGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LXN0dWJzLmMgYi9ody9hcm0vdGVncmEyNDEtY21kcXYt c3R1YnMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjQ2NjlmNWM1 ZjUKKy0tLSAvZGV2L251bGwKKysrKyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi1zdHVicy5jCitA QCAtMCwwICsxLDE2IEBACisrLyoKKysgKiBDb3B5cmlnaHQgKGMpIDIwMjUtMjAyNiBOVklESUEg Q09SUE9SQVRJT04gJiBBRkZJTElBVEVTLiBBbGwgcmlnaHRzIHJlc2VydmVkCisrICoKKysgKiBT dHVicyBmb3IgVGVncmEyNDEgQ01EUS1WaXJ0dWFsaXphdGlvbiBleHRlbnNpb24gZm9yIFNNTVV2 MworKyAqCisrICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKysg Ki8KKysKKysjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorKyNpbmNsdWRlICJzbW11djMtYWNjZWwu aCIKKysjaW5jbHVkZSAiaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgiCisrCisrY29uc3QgU01NVXYz QWNjZWxDbWRxdk9wcyAqdGVncmEyNDFfY21kcXZfZ2V0X29wcyh2b2lkKQorK3sKKysgICAgcmV0 dXJuIE5VTEw7CisrfQorZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcv YXJtL3RlZ3JhMjQxLWNtZHF2LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw MDAwLi5hZDVhMGQ0NjExCistLS0gL2Rldi9udWxsCisrKysgYi9ody9hcm0vdGVncmEyNDEtY21k cXYuYworQEAgLTAsMCArMSw1NiBAQAorKy8qCisrICogQ29weXJpZ2h0IChjKSAyMDI1LTIwMjYg TlZJRElBIENPUlBPUkFUSU9OICYgQUZGSUxJQVRFUy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorKyAq IE5WSURJQSBUZWdyYTI0MSBDTURRLVZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbiBmb3IgU01NVXYz CisrICoKKysgKiBXcml0dGVuIGJ5IE5pY29saW4gQ2hlbiwgU2hhbWVlciBLb2xvdGh1bQorKyAq CisrICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKysgKi8KKysK KysjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorKworKyNpbmNsdWRlICJody9hcm0vc21tdXYzLmgi CisrI2luY2x1ZGUgInNtbXV2My1hY2NlbC5oIgorKyNpbmNsdWRlICJ0ZWdyYTI0MS1jbWRxdi5o IgorKworK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmlvbW11KFNNTVV2M1N0YXRl ICpzKQorK3sKKyt9CisrCisrc3RhdGljIGJvb2wKKyt0ZWdyYTI0MV9jbWRxdl9hbGxvY192aW9t bXUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpvdXRfdmlvbW11X2lkLCBFcnJvciAqKmVy cnApCisreworKyAgICBlcnJvcl9zZXRnKGVycnAsICJOVklESUEgVGVncmEyNDEgQ01EUVYgaXMg dW5zdXBwb3J0ZWQiKTsKKysgICAgcmV0dXJuIGZhbHNlOworK30KKysKKytzdGF0aWMgdm9pZCB0 ZWdyYTI0MV9jbWRxdl9yZXNldChTTU1VdjNTdGF0ZSAqcykKKyt7CisrfQorKworK3N0YXRpYyBi b29sIHRlZ3JhMjQxX2NtZHF2X2luaXQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkKKyt7 CisrICAgIGVycm9yX3NldGcoZXJycCwgIk5WSURJQSBUZWdyYTI0MSBDTURRViBpcyB1bnN1cHBv cnRlZCIpOworKyAgICByZXR1cm4gZmFsc2U7CisrfQorKworK3N0YXRpYyBib29sIHRlZ3JhMjQx X2NtZHF2X3Byb2JlKFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKKyt7Cisr ICAgIGVycm9yX3NldGcoZXJycCwgIk5WSURJQSBUZWdyYTI0MSBDTURRViBpcyB1bnN1cHBvcnRl ZCIpOworKyAgICByZXR1cm4gZmFsc2U7CisrfQorKworK3N0YXRpYyBjb25zdCBTTU1VdjNBY2Nl bENtZHF2T3BzIHRlZ3JhMjQxX2NtZHF2X29wcyA9IHsKKysgICAgLnByb2JlID0gdGVncmEyNDFf Y21kcXZfcHJvYmUsCisrICAgIC5pbml0ID0gdGVncmEyNDFfY21kcXZfaW5pdCwKKysgICAgLmFs bG9jX3Zpb21tdSA9IHRlZ3JhMjQxX2NtZHF2X2FsbG9jX3Zpb21tdSwKKysgICAgLmZyZWVfdmlv bW11ID0gdGVncmEyNDFfY21kcXZfZnJlZV92aW9tbXUsCisrICAgIC5yZXNldCA9IHRlZ3JhMjQx X2NtZHF2X3Jlc2V0LAorK307CisrCisrY29uc3QgU01NVXYzQWNjZWxDbWRxdk9wcyAqdGVncmEy NDFfY21kcXZfZ2V0X29wcyh2b2lkKQorK3sKKysgICAgcmV0dXJuICZ0ZWdyYTI0MV9jbWRxdl9v cHM7CisrfQorZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oIGIvaHcvYXJtL3Rl Z3JhMjQxLWNtZHF2LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi43 NGE2OTU0MDE3CistLS0gL2Rldi9udWxsCisrKysgYi9ody9hcm0vdGVncmEyNDEtY21kcXYuaAor QEAgLTAsMCArMSwxNSBAQAorKy8qCisrICogQ29weXJpZ2h0IChjKSAyMDI1LTIwMjYgTlZJRElB IENPUlBPUkFUSU9OICYgQUZGSUxJQVRFUy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorKyAqIE5WSURJ QSBUZWdyYTI0MSBDTURRLVZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbiBmb3IgU01NVXYzCisrICoK KysgKiBXcml0dGVuIGJ5IE5pY29saW4gQ2hlbiwgU2hhbWVlciBLb2xvdGh1bQorKyAqCisrICog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKysgKi8KKysKKysjaWZu ZGVmIEhXX0FSTV9URUdSQTI0MV9DTURRVl9ICisrI2RlZmluZSBIV19BUk1fVEVHUkEyNDFfQ01E UVZfSAorKworK2NvbnN0IFNNTVV2M0FjY2VsQ21kcXZPcHMgKnRlZ3JhMjQxX2NtZHF2X2dldF9v cHModm9pZCk7CisrCisrI2VuZGlmIC8qIEhXX0FSTV9URUdSQTI0MV9DTURRVl9IICovCistLSAK KzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1BbGxvY2F0 ZS1IVy1WQ01EUXMtb25jZS1jb25maWcucGF0Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2 LUFsbG9jYXRlLUhXLVZDTURRcy1vbmNlLWNvbmZpZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5mMDljODAyCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10 ZWdyYTI0MS1jbWRxdi1BbGxvY2F0ZS1IVy1WQ01EUXMtb25jZS1jb25maWcucGF0Y2gKQEAgLTAs MCArMSwzOTAgQEAKK0Zyb20gODI5ZDRiZDFiN2EzOTgzODA3MWQ5NWZiOTNiYjNmYzQ2ZjA5ZmQ4 ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNA bnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTozOSArMDEwMAorU3ViamVj dDogW1BBVENIIDA5Ny8xMTFdIGh3L2FybS90ZWdyYTI0MS1jbWRxdjogQWxsb2NhdGUgSFcgVkNN RFFzIG9uY2UKKyBjb25maWd1cmVkCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVy Z2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURR ViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUg R29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkBy ZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbOTcvMTExXSA4OTI2Zjg3ZjIyYzc2ZTVmYmVhZTg3ZjEw MWQzMjVmMmI5MDJlMjQ1IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6 Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitBZGQgc3VwcG9ydCBm b3IgYWxsb2NhdGluZyBJT01NVUZEIGhhcmR3YXJlIHF1ZXVlcyB3aGVuIHRoZSBndWVzdAorcHJv Z3JhbXMgdGhlIFZDTURRIEJBU0UgcmVnaXN0ZXJzLgorCitWQ01EUV9FTiBsaXZlcyBpbiBWQ01E UV9DT05GSUcsIHdoaWNoIGlzIG9uIHRoZSBWSU5URiBQYWdlMCByZWdpb24KK3RoYXQgYSBsYXRl ciBwYXRjaCBpbnN0YWxscyBpbnRvIGd1ZXN0IE1NSU8g4oCUIHNvIFFFTVUgd29uJ3QgdHJhcCBp dHMKK3dyaXRlcy4gQWxsb2NhdGUgdGhlIGhhcmR3YXJlIHF1ZXVlIGluc3RlYWQgb25jZSBhbGwg b2YgdGhlc2UgYXJlCitzZXQ6IEJBU0UgcHJvZ3JhbW1lZCwgQ01EUV9BTExPQ19NQVAuQUxMT0Ms IGFuZCBDTURRViAvIFZJTlRGCitlbmFibGVkLiBFYWNoIHByZWNvbmRpdGlvbiB3cml0ZSByZXRy aWVzIHRoZSBhbGxvY2F0aW9uLCBzbyB0aGUKK2d1ZXN0IG1heSBwcm9ncmFtIHRoZW0gaW4gYW55 IG9yZGVyLgorCitpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdfcXVldWUoKSBuZWVkcyB0aGUgZ3Vl c3QgcGh5c2ljYWwgYWRkcmVzcyBvZgordGhlIFZDTURRIHJpbmcgYnVmZmVyLCBzbyBhbGxvY2F0 aW9uIGlzIGRlZmVycmVkIHVudGlsIHRoZSBndWVzdCBoYXMKK3BvcHVsYXRlZCBCQVNFLgorCitJ ZiBhIGhhcmR3YXJlIHF1ZXVlIHdhcyBwcmV2aW91c2x5IGFsbG9jYXRlZCBmb3IgdGhlIHNhbWUg VkNNRFEsCitmcmVlIGl0IGJlZm9yZSByZWFsbG9jYXRpb24uIEFsbCBhbGxvY2F0ZWQgVkNNRFFz IGFyZSBmcmVlZCB3aGVuCitDTURRViBvciBWSU5URiBpcyBkaXNhYmxlZCwgd2hlbiB0aGUgQUxM T0MgYml0IGlzIGNsZWFyZWQsIG9yIG9uIHJlc2V0LgorCitPbiBhbGxvY2F0aW9uIGZhaWx1cmUs IHNldCBDTURRX0lOSVRfRVJSIGFuZCBjbGVhciBDTURRX0VOX09LIGluIHRoZQorY2FjaGUgc28g dHJhcHBlZCBndWVzdCByZWFkcyBzZWUgdGhlIGZhaWx1cmUgcmF0aGVyIHRoYW4gYSBxdWV1ZQor dGhhdCBsb29rcyBsaXZlLiBDbGVhciB0aGVtIG9uIGEgbGF0ZXIgc3VjY2Vzc2Z1bCBhbGxvY2F0 aW9uLiBBIGd1ZXN0CitDTURRX0VOIHdyaXRlIHRoZW4gc2V0cyBDTURRX0VOX09LIG9ubHkgaWYg Q01EUV9JTklUX0VSUiBpcyBjbGVhci4KKworU2lnbmVkLW9mZi1ieTogTmljb2xpbiBDaGVuIDxu aWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52 aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29t PgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK01lc3Nh Z2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS0xOS1za29sb3RodW10aG9AbnZpZGlhLmNvbQor Q28tZGV2ZWxvcGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNv bT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNjgzMzY1Mjk4NzdhZjQyMmMwZDdjMDg3 NDMyOTk4ZDY5YWY1Mzg0ZikKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5jIHwgMTcxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KKyBody9hcm0vdGVncmEyNDEtY21kcXYu aCB8ICAxMSArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcvYXJt L3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IDFmM2Q4ODNjZmUuLjhjYjM5ZTg3YzQgMTAwNjQ0Cist LS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2 LmMKK0BAIC0xNiw2ICsxNiw5NiBAQAorICNpbmNsdWRlICJ0ZWdyYTI0MS1jbWRxdi5oIgorICNp bmNsdWRlICJ0cmFjZS5oIgorIAorK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmNt ZHEoVGVncmEyNDFDTURRViAqY21kcXYsIGludCBpbmRleCkKKyt7CisrICAgIElPTU1VRkRWaW9t bXUgKnZpb21tdSA9IGNtZHF2LT5zX2FjY2VsLT52aW9tbXU7CisrICAgIElPTU1VRkRIV3F1ZXVl ICp2Y21kcSA9IGNtZHF2LT52Y21kcVtpbmRleF07CisrCisrICAgIGlmICghdmNtZHEpIHsKKysg ICAgICAgIHJldHVybjsKKysgICAgfQorKyAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZCh2aW9t bXUtPmlvbW11ZmQsIHZjbWRxLT5od19xdWV1ZV9pZCk7CisrICAgIGdfZnJlZSh2Y21kcSk7Cisr ICAgIGNtZHF2LT52Y21kcVtpbmRleF0gPSBOVUxMOworK30KKysKKysvKgorKyAqIEEgVkNNRFEn cyBIVyBxdWV1ZSBjYW4gYmUgYWxsb2NhdGVkIG9uY2UgdGhlIGd1ZXN0IGhhcyBwcm9ncmFtbWVk OgorKyAqICAtIFZDTURRX0JBU0UgKHJpbmcgYnVmZmVyIEdQQSBhbmQgc2l6ZSkuIFRoaXMgb25s eSBjaGVja3MgdGhhdCBCQVNFIGlzCisrICogICAgbm9uLXplcm8sIG5vdCB0aGF0IGJvdGggdGhl IF9MIGFuZCBfSCBoYWx2ZXMgaGF2ZSBiZWVuIHdyaXR0ZW47IGEKKysgKiAgICBoYWxmLXdyaXR0 ZW4gQkFTRSBtYXkgcGFzcyBoZXJlLCBidXQgdGhlIHdyaXRlIG9mIHRoZSBzZWNvbmQgaGFsZgor KyAqICAgIHJlLXJ1bnMgc2V0dXAgYW5kIHJlYWxsb2NhdGVzIHdpdGggdGhlIGNvbXBsZXRlIGFk ZHJlc3MuCisrICogIC0gdGhlIFZJTlRGIG1hcHBpbmcgKENNRFFfQUxMT0NfTUFQLkFMTE9DKS4K KysgKiAgLSBib3RoIHRoZSBDTURRViBnbG9iYWwgZW5hYmxlIGFuZCB0aGUgVklOVEYgZW5hYmxl LgorKyAqLworK3N0YXRpYyBib29sIHRlZ3JhMjQxX2NtZHF2X3ZjbWRxX3JlYWR5X3RvX2FsbG9j KFRlZ3JhMjQxQ01EUVYgKmNtZHF2LCBpbnQgaW5kZXgpCisreworKyAgICByZXR1cm4gY21kcXYt PnZjbWRxX2Jhc2VbaW5kZXhdICYmCisrICAgICAgICAgICAoY21kcXYtPmNtZHFfYWxsb2NfbWFw W2luZGV4XSAmIFJfQ01EUV9BTExPQ19NQVBfMF9BTExPQ19NQVNLKSAmJgorKyAgICAgICAgICAg dGVncmEyNDFfY21kcXZfZW5hYmxlZChjbWRxdikgJiYgdGVncmEyNDFfdmludGZfZW5hYmxlZChj bWRxdik7CisrfQorKworKy8qCisrICogQWxsb2NhdGUgYSBob3N0IEhXIFZDTURRIGZyb20gdGhl IGN1cnJlbnQgY2FjaGVkIEJBU0UgLyBzaXplIGZvciBAaW5kZXguCisrICogTm8tb3AgKHJldHVy bnMgdHJ1ZSkgdW50aWwgdGhlIFZDTURRIGlzIHJlYWR5IHRvIGJlIGFsbG9jYXRlZC4KKysgKi8K KytzdGF0aWMgYm9vbCB0ZWdyYTI0MV9jbWRxdl9zZXR1cF92Y21kcShUZWdyYTI0MUNNRFFWICpj bWRxdiwgaW50IGluZGV4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVycm9yICoqZXJycCkKKyt7CisrICAgIFNNTVV2M0FjY2VsU3RhdGUgKmFjY2VsID0gY21kcXYt PnNfYWNjZWw7CisrICAgIHVpbnQ2NF90IGJhc2VfbWFzayA9ICh1aW50NjRfdClSX1ZDTURRMF9C QVNFX0xfQUREUl9NQVNLIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KVJf VkNNRFEwX0JBU0VfSF9BRERSX01BU0sgPDwgMzI7CisrICAgIHVpbnQ2NF90IGFkZHIgPSBjbWRx di0+dmNtZHFfYmFzZVtpbmRleF0gJiBiYXNlX21hc2s7CisrICAgIHVpbnQ2NF90IGxvZzIgPSBj bWRxdi0+dmNtZHFfYmFzZVtpbmRleF0gJiBSX1ZDTURRMF9CQVNFX0xfTE9HMlNJWkVfTUFTSzsK KysgICAgdWludDY0X3Qgc2l6ZSA9IDFVTEwgPDwgKGxvZzIgKyA0KTsKKysgICAgSU9NTVVGRFZp b21tdSAqdmlvbW11ID0gYWNjZWwtPnZpb21tdTsKKysgICAgSU9NTVVGREhXcXVldWUgKmh3X3F1 ZXVlOworKyAgICB1aW50MzJfdCBod19xdWV1ZV9pZDsKKysKKysgICAgaWYgKCF0ZWdyYTI0MV9j bWRxdl92Y21kcV9yZWFkeV90b19hbGxvYyhjbWRxdiwgaW5kZXgpKSB7CisrICAgICAgICByZXR1 cm4gdHJ1ZTsKKysgICAgfQorKworKyAgICB0ZWdyYTI0MV9jbWRxdl9mcmVlX3ZjbWRxKGNtZHF2 LCBpbmRleCk7CisrCisrICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3X3F1ZXVlKHZp b21tdS0+aW9tbXVmZCwgdmlvbW11LT52aW9tbXVfaWQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0hXX1FVRVVFX1RZUEVfVEVHUkEyNDFfQ01EUVYsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBhZGRyLCBzaXpl LCAmaHdfcXVldWVfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVycnApKSB7CisrICAgICAgICAvKiBSZWNvcmQgdGhlIGZhaWx1cmUgaW4gdGhlIGNhY2hlLiAq LworKyAgICAgICAgY21kcXYtPnZjbWRxX2dlcnJvcltpbmRleF0gfD0gUl9WQ01EUTBfR0VSUk9S X0NNRFFfSU5JVF9FUlJfTUFTSzsKKysgICAgICAgIGNtZHF2LT52Y21kcV9zdGF0dXNbaW5kZXhd ICY9IH5SX1ZDTURRMF9TVEFUVVNfQ01EUV9FTl9PS19NQVNLOworKyAgICAgICAgcmV0dXJuIGZh bHNlOworKyAgICB9CisrICAgIGh3X3F1ZXVlID0gZ19uZXcoSU9NTVVGREhXcXVldWUsIDEpOwor KyAgICBod19xdWV1ZS0+aHdfcXVldWVfaWQgPSBod19xdWV1ZV9pZDsKKysgICAgaHdfcXVldWUt PnZpb21tdSA9IHZpb21tdTsKKysgICAgY21kcXYtPnZjbWRxW2luZGV4XSA9IGh3X3F1ZXVlOwor KworKyAgICBjbWRxdi0+dmNtZHFfZ2Vycm9yW2luZGV4XSAmPSB+Ul9WQ01EUTBfR0VSUk9SX0NN RFFfSU5JVF9FUlJfTUFTSzsKKysgICAgY21kcXYtPnZjbWRxX3N0YXR1c1tpbmRleF0gfD0gUl9W Q01EUTBfU1RBVFVTX0NNRFFfRU5fT0tfTUFTSzsKKysKKysgICAgcmV0dXJuIHRydWU7CisrfQor KworK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfYWxsX3ZjbWRxKFRlZ3JhMjQxQ01E UVYgKmNtZHF2KQorK3sKKysgICAgLyogdWFwaS9saW51eC9pb21tdWZkLmg6IGh3X3F1ZXVlIGRl c3Ryb3kgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIEBpbmRleC4gKi8KKysgICAgZm9yIChpbnQgaSA9 IChURUdSQTI0MV9DTURRVl9NQVhfQ01EUSAtIDEpOyBpID49IDA7IGktLSkgeworKyAgICAgICAg dGVncmEyNDFfY21kcXZfZnJlZV92Y21kcShjbWRxdiwgaSk7CisrICAgIH0KKyt9CisrCisrc3Rh dGljIHZvaWQgdGVncmEyNDFfY21kcXZfc2V0dXBfYWxsX3ZjbWRxKFRlZ3JhMjQxQ01EUVYgKmNt ZHF2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAq KmVycnApCisreworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFR1JBMjQxX0NNRFFWX01BWF9D TURROyBpKyspIHsKKysgICAgICAgIGlmICghdGVncmEyNDFfY21kcXZfc2V0dXBfdmNtZHEoY21k cXYsIGksIGVycnApKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICB9 CisrfQorKworIC8qCisgICogUmVhZCBhIFZDTURRIFBhZ2UgMCByZWdpc3RlciAoY29udHJvbC9z dGF0dXMpIHVzaW5nIFZDTURRMF8qIG9mZnNldHMuCisgICoKK0BAIC0xNDMsNyArMjMzLDEyIEBA IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3BhZ2UwKFRlZ3JhMjQxQ01E UVYgKmNtZHF2LAorICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9WQ01EUTBfQ09ORklHOgor ICAgICAgICAgaWYgKHZhbHVlICYgUl9WQ01EUTBfQ09ORklHX0NNRFFfRU5fTUFTSykgeworLSAg ICAgICAgICAgIGNtZHF2LT52Y21kcV9zdGF0dXNbaW5kZXhdIHw9IFJfVkNNRFEwX1NUQVRVU19D TURRX0VOX09LX01BU0s7CisrICAgICAgICAgICAgLyogUmVwb3J0IGluaXQgZXJyb3IgaWYgYW55 LiAqLworKyAgICAgICAgICAgIGlmICghKGNtZHF2LT52Y21kcV9nZXJyb3JbaW5kZXhdICYKKysg ICAgICAgICAgICAgICAgICBSX1ZDTURRMF9HRVJST1JfQ01EUV9JTklUX0VSUl9NQVNLKSkgewor KyAgICAgICAgICAgICAgICBjbWRxdi0+dmNtZHFfc3RhdHVzW2luZGV4XSB8PQorKyAgICAgICAg ICAgICAgICAgICAgUl9WQ01EUTBfU1RBVFVTX0NNRFFfRU5fT0tfTUFTSzsKKysgICAgICAgICAg ICB9CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIGNtZHF2LT52Y21kcV9zdGF0dXNb aW5kZXhdICY9IH5SX1ZDTURRMF9TVEFUVVNfQ01EUV9FTl9PS19NQVNLOworICAgICAgICAgfQor QEAgLTE2NywxNiArMjYyLDE5IEBAIHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3Zj bWRxX3BhZ2UwKFRlZ3JhMjQxQ01EUVYgKmNtZHF2LAorICAqLworIHN0YXRpYyB2b2lkIHRlZ3Jh MjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3BhZ2UxKFRlZ3JhMjQxQ01EUVYgKmNtZHF2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBvZmZzZXQwLCBp bnQgaW5kZXgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgdmFsdWUsIGJvb2wgZGlyZWN0KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlLCBib29sIGRpcmVjdCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApCisgewor ICAgICBzd2l0Y2ggKG9mZnNldDApIHsKKyAgICAgY2FzZSBBX1ZDTURRMF9CQVNFX0w6CisgICAg ICAgICBjbWRxdi0+dmNtZHFfYmFzZVtpbmRleF0gPQorICAgICAgICAgICAgIGRlcG9zaXQ2NChj bWRxdi0+dmNtZHFfYmFzZVtpbmRleF0sIDAsIDMyLCB2YWx1ZSk7CisrICAgICAgICB0ZWdyYTI0 MV9jbWRxdl9zZXR1cF92Y21kcShjbWRxdiwgaW5kZXgsIGVycnApOworICAgICAgICAgYnJlYWs7 CisgICAgIGNhc2UgQV9WQ01EUTBfQkFTRV9IOgorICAgICAgICAgY21kcXYtPnZjbWRxX2Jhc2Vb aW5kZXhdID0KKyAgICAgICAgICAgICBkZXBvc2l0NjQoY21kcXYtPnZjbWRxX2Jhc2VbaW5kZXhd LCAzMiwgMzIsIHZhbHVlKTsKKysgICAgICAgIHRlZ3JhMjQxX2NtZHF2X3NldHVwX3ZjbWRxKGNt ZHF2LCBpbmRleCwgZXJycCk7CisgICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX1ZDTURRMF9D T05TX0lORFhfQkFTRV9EUkFNX0w6CisgICAgICAgICBjbWRxdi0+dmNtZHFfY29uc19pbmR4X2Jh c2VbaW5kZXhdID0KK0BAIC0yMDAsMTEgKzI5OCwxMyBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9j bWRxdl93cml0ZV92Y21kcV9wYWdlMShUZWdyYTI0MUNNRFFWICpjbWRxdiwKKyAgKi8KKyBzdGF0 aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMV82NChUZWdyYTI0MUNNRFFW ICpjbWRxdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBod2FkZHIgb2Zmc2V0MCwgaW50IGluZGV4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlLCBib29sIGRpcmVjdCkKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1 ZSwgYm9vbCBkaXJlY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsKKyAgICAgc3dpdGNoIChvZmZzZXQwKSB7CisgICAg IGNhc2UgQV9WQ01EUTBfQkFTRV9MOgorICAgICAgICAgY21kcXYtPnZjbWRxX2Jhc2VbaW5kZXhd ID0gdmFsdWU7CisrICAgICAgICB0ZWdyYTI0MV9jbWRxdl9zZXR1cF92Y21kcShjbWRxdiwgaW5k ZXgsIGVycnApOworICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9WQ01EUTBfQ09OU19JTkRY X0JBU0VfRFJBTV9MOgorICAgICAgICAgY21kcXYtPnZjbWRxX2NvbnNfaW5keF9iYXNlW2luZGV4 XSA9IHZhbHVlOworQEAgLTIxOSw3ICszMTksOCBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRx dl93cml0ZV92Y21kcV9wYWdlMV82NChUZWdyYTI0MUNNRFFWICpjbWRxdiwKKyB9CisgCisgc3Rh dGljIHZvaWQgdGVncmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3dyaXRlKFRlZ3JhMjQxQ01EUVYg KmNtZHF2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo d2FkZHIgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSkKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIG9mZnNldCwgdWludDY0X3QgdmFsdWUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkK KyB7CisgICAgIGludCBpOworIAorQEAgLTIzNSw3ICszMzYsMTMgQEAgc3RhdGljIHZvaWQgdGVn cmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3dyaXRlKFRlZ3JhMjQxQ01EUVYgKmNtZHF2LAorICAg ICAgICAgY21kcXYtPnZpbnRmX2NvbmZpZyA9IHZhbHVlOworICAgICAgICAgaWYgKHZhbHVlICYg Ul9WSU5URjBfQ09ORklHX0VOQUJMRV9NQVNLKSB7CisgICAgICAgICAgICAgY21kcXYtPnZpbnRm X3N0YXR1cyB8PSBSX1ZJTlRGMF9TVEFUVVNfRU5BQkxFX09LX01BU0s7CisrICAgICAgICAgICAg LyoKKysgICAgICAgICAgICAgKiBWQ01EUXMgd2hvc2UgQkFTRSB3YXMgcHJvZ3JhbW1lZCBiZWZv cmUgVklOVEYgd2FzCisrICAgICAgICAgICAgICogZW5hYmxlZCBuZWVkIHRoZWlyIGh3X3F1ZXVl IGFsbG9jYXRlZCBub3cuCisrICAgICAgICAgICAgICovCisrICAgICAgICAgICAgdGVncmEyNDFf Y21kcXZfc2V0dXBfYWxsX3ZjbWRxKGNtZHF2LCBlcnJwKTsKKyAgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgICAgdGVncmEyNDFfY21kcXZfZnJlZV9hbGxfdmNtZHEoY21kcXYpOworICAgICAg ICAgICAgIGNtZHF2LT52aW50Zl9zdGF0dXMgJj0gflJfVklOVEYwX1NUQVRVU19FTkFCTEVfT0tf TUFTSzsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworQEAgLTM0MSw2ICs0NDgsNyBAQCBv dXQ6Cisgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVsX21taW8oVGVncmEyNDFDTURR ViAqY21kcXYsIGh3YWRkciBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgdmFsdWUpCisgeworKyAgICBFcnJvciAqbG9jYWxfZXJyID0gTlVM TDsKKyAgICAgaW50IGluZGV4OworIAorICAgICBzd2l0Y2ggKG9mZnNldCkgeworQEAgLTM0OCwx OCArNDU2LDM5IEBAIHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlbF9tbWlvKFRlZ3Jh MjQxQ01EUVYgKmNtZHF2LCBod2FkZHIgb2Zmc2V0LAorICAgICAgICAgY21kcXYtPmNvbmZpZyA9 IHZhbHVlOworICAgICAgICAgaWYgKHZhbHVlICYgUl9DT05GSUdfQ01EUVZfRU5fTUFTSykgewor ICAgICAgICAgICAgIGNtZHF2LT5zdGF0dXMgfD0gUl9TVEFUVVNfQ01EUVZfRU5BQkxFRF9NQVNL OworKyAgICAgICAgICAgIC8qCisrICAgICAgICAgICAgICogVkNNRFFzIHdob3NlIEJBU0Ugd2Fz IHByb2dyYW1tZWQgYmVmb3JlIENNRFFWIHdhcyBlbmFibGVkCisrICAgICAgICAgICAgICogbmVl ZCB0aGVpciBod19xdWV1ZSBhbGxvY2F0ZWQgbm93LgorKyAgICAgICAgICAgICAqLworKyAgICAg ICAgICAgIHRlZ3JhMjQxX2NtZHF2X3NldHVwX2FsbF92Y21kcShjbWRxdiwgJmxvY2FsX2Vycik7 CisgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfYWxs X3ZjbWRxKGNtZHF2KTsKKyAgICAgICAgICAgICBjbWRxdi0+c3RhdHVzICY9IH5SX1NUQVRVU19D TURRVl9FTkFCTEVEX01BU0s7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgY2Fz ZSBBX1ZJX0lOVF9NQVNLXzAgLi4uIEFfVklfSU5UX01BU0tfMToKKyAgICAgICAgIGNtZHF2LT52 aV9pbnRfbWFza1sob2Zmc2V0IC0gQV9WSV9JTlRfTUFTS18wKSAvIDRdID0gdmFsdWU7CisgICAg ICAgICBicmVhazsKKy0gICAgY2FzZSBBX0NNRFFfQUxMT0NfTUFQXzAgLi4uIEFfQ01EUV9BTExP Q19NQVBfMToKKy0gICAgICAgIGNtZHF2LT5jbWRxX2FsbG9jX21hcFsob2Zmc2V0IC0gQV9DTURR X0FMTE9DX01BUF8wKSAvIDRdID0gdmFsdWU7CisrICAgIGNhc2UgQV9DTURRX0FMTE9DX01BUF8w IC4uLiBBX0NNRFFfQUxMT0NfTUFQXzE6IHsKKysgICAgICAgIGludCBpZHggPSAob2Zmc2V0IC0g QV9DTURRX0FMTE9DX01BUF8wKSAvIDQ7CisrICAgICAgICBib29sIHdhc19hbGxvYyA9IGNtZHF2 LT5jbWRxX2FsbG9jX21hcFtpZHhdICYKKysgICAgICAgICAgICAgICAgICAgICAgICAgUl9DTURR X0FMTE9DX01BUF8wX0FMTE9DX01BU0s7CisrICAgICAgICBib29sIG5vd19hbGxvYyA9IHZhbHVl ICYgUl9DTURRX0FMTE9DX01BUF8wX0FMTE9DX01BU0s7CisrCisrICAgICAgICBjbWRxdi0+Y21k cV9hbGxvY19tYXBbaWR4XSA9IHZhbHVlOworKyAgICAgICAgLyoKKysgICAgICAgICAqIElmIHRo ZSBWQ01EUSB3YXMgYWxyZWFkeSBwcm9ncmFtbWVkIChCQVNFKSBiZWZvcmUgbWFwcGluZywgZmly ZQorKyAgICAgICAgICogc2V0dXAgb24gdGhlIEFMTE9DIDAtPjEgdHJhbnNpdGlvbjsgdGVhciBk b3duIG9uIDEtPjAuCisrICAgICAgICAgKi8KKysgICAgICAgIGlmICghd2FzX2FsbG9jICYmIG5v d19hbGxvYykgeworKyAgICAgICAgICAgIHRlZ3JhMjQxX2NtZHF2X3NldHVwX3ZjbWRxKGNtZHF2 LCBpZHgsICZsb2NhbF9lcnIpOworKyAgICAgICAgfSBlbHNlIGlmICh3YXNfYWxsb2MgJiYgIW5v d19hbGxvYykgeworKyAgICAgICAgICAgIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmNtZHEoY21kcXYs IGlkeCk7CisrICAgICAgICB9CisgICAgICAgICBicmVhazsKKysgICAgfQorICAgICBjYXNlIEFf VklOVEYwX0NPTkZJRyAuLi4gQV9WSU5URjBfTFZDTURRX0VSUl9NQVBfMzoKKy0gICAgICAgIHRl Z3JhMjQxX2NtZHF2X2NvbmZpZ192aW50Zl93cml0ZShjbWRxdiwgb2Zmc2V0LCB2YWx1ZSk7Cisr ICAgICAgICB0ZWdyYTI0MV9jbWRxdl9jb25maWdfdmludGZfd3JpdGUoY21kcXYsIG9mZnNldCwg dmFsdWUsICZsb2NhbF9lcnIpOworICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9WSV9WQ01E UTBfQ09OU19JTkRYIC4uLiBBX1ZJX1ZDTURRMV9HRVJST1JOOgorICAgICAgICAgLyoKK0BAIC0z ODcsMTcgKzUxNiwyMyBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl93cml0ZWxfbW1pbyhU ZWdyYTI0MUNNRFFWICpjbWRxdiwgaHdhZGRyIG9mZnNldCwKKyAgICAgICAgIG9mZnNldCAtPSBD TURRVl9WSU5URl9QQUdFMV9CQVNFIC0gQ01EUVZfVkNNRFFfUEFHRTFfQkFTRTsKKyAgICAgICAg IGluZGV4ID0gKG9mZnNldCAtIENNRFFWX1ZDTURRX1BBR0UxX0JBU0UpIC8gQ01EUVZfVkNNRFFf U1RSSURFOworICAgICAgICAgdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTEoY21kcXYs CistICAgICAgICAgICAgICAgIG9mZnNldCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFLCBp bmRleCwgdmFsdWUsIGZhbHNlKTsKKysgICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBD TURRVl9WQ01EUV9TVFJJREUsIGluZGV4LCB2YWx1ZSwgZmFsc2UsCisrICAgICAgICAgICAgICAg ICZsb2NhbF9lcnIpOworICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQV9WQ01EUTBfQkFTRV9M IC4uLiBBX1ZDTURRMV9DT05TX0lORFhfQkFTRV9EUkFNX0g6CisgICAgICAgICBpbmRleCA9IChv ZmZzZXQgLSBDTURRVl9WQ01EUV9QQUdFMV9CQVNFKSAvIENNRFFWX1ZDTURRX1NUUklERTsKKyAg ICAgICAgIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3BhZ2UxKGNtZHF2LAorLSAgICAgICAg ICAgICAgICBvZmZzZXQgLSBpbmRleCAqIENNRFFWX1ZDTURRX1NUUklERSwgaW5kZXgsIHZhbHVl LCB0cnVlKTsKKysgICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBDTURRVl9WQ01EUV9T VFJJREUsIGluZGV4LCB2YWx1ZSwgdHJ1ZSwKKysgICAgICAgICAgICAgICAgJmxvY2FsX2Vycik7 CisgICAgICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHFlbXVfbG9nX21hc2so TE9HX1VOSU1QLCAiJXMgdW5oYW5kbGVkIHdyaXRlIGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4i LAorICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0KTsKKyAgICAgfQorKwor KyAgICBpZiAobG9jYWxfZXJyKSB7CisrICAgICAgICBlcnJvcl9yZXBvcnRfZXJyKGxvY2FsX2Vy cik7CisrICAgIH0KKyB9CisgCisgLyoKK0BAIC00MDcsNiArNTQyLDcgQEAgc3RhdGljIHZvaWQg dGVncmEyNDFfY21kcXZfd3JpdGVsX21taW8oVGVncmEyNDFDTURRViAqY21kcXYsIGh3YWRkciBv ZmZzZXQsCisgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVsbF9tbWlvKFRlZ3JhMjQx Q01EUVYgKmNtZHF2LCBod2FkZHIgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZSkKKyB7CisrICAgIEVycm9yICpsb2NhbF9lcnIg PSBOVUxMOworICAgICBpbnQgaW5kZXg7CisgCisgICAgIHN3aXRjaCAob2Zmc2V0KSB7CitAQCAt NDE5LDE4ICs1NTUsMjQgQEAgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVsbF9tbWlv KFRlZ3JhMjQxQ01EUVYgKmNtZHF2LCBod2FkZHIgb2Zmc2V0LAorICAgICAgICAgb2Zmc2V0IC09 IENNRFFWX1ZJTlRGX1BBR0UxX0JBU0UgLSBDTURRVl9WQ01EUV9QQUdFMV9CQVNFOworICAgICAg ICAgaW5kZXggPSAob2Zmc2V0IC0gQ01EUVZfVkNNRFFfUEFHRTFfQkFTRSkgLyBDTURRVl9WQ01E UV9TVFJJREU7CisgICAgICAgICB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMV82NChj bWRxdiwKKy0gICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBDTURRVl9WQ01EUV9TVFJJ REUsIGluZGV4LCB2YWx1ZSwgZmFsc2UpOworKyAgICAgICAgICAgICAgICBvZmZzZXQgLSBpbmRl eCAqIENNRFFWX1ZDTURRX1NUUklERSwgaW5kZXgsIHZhbHVlLCBmYWxzZSwKKysgICAgICAgICAg ICAgICAgJmxvY2FsX2Vycik7CisgICAgICAgICBicmVhazsKKyAgICAgY2FzZSBBX1ZDTURRMF9C QVNFX0wgLi4uIEFfVkNNRFExX0NPTlNfSU5EWF9CQVNFX0RSQU1fSDoKKyAgICAgICAgIGluZGV4 ID0gKG9mZnNldCAtIENNRFFWX1ZDTURRX1BBR0UxX0JBU0UpIC8gQ01EUVZfVkNNRFFfU1RSSURF OworICAgICAgICAgdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTFfNjQoY21kcXYsCist ICAgICAgICAgICAgICAgIG9mZnNldCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFLCBpbmRl eCwgdmFsdWUsIHRydWUpOworKyAgICAgICAgICAgICAgICBvZmZzZXQgLSBpbmRleCAqIENNRFFW X1ZDTURRX1NUUklERSwgaW5kZXgsIHZhbHVlLCB0cnVlLAorKyAgICAgICAgICAgICAgICAmbG9j YWxfZXJyKTsKKyAgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAgICAgICAgcWVtdV9s b2dfbWFzayhMT0dfVU5JTVAsCisgICAgICAgICAgICAgICAgICAgICAgICIlcyB1bmhhbmRsZWQg NjQtYml0IHdyaXRlIGF0IDB4JSIgUFJJeDY0ICIgKFdJKVxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgX19mdW5jX18sIG9mZnNldCk7CisgICAgIH0KKysKKysgICAgaWYgKGxvY2FsX2Vycikg eworKyAgICAgICAgZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnIpOworKyAgICB9CisgfQorIAor IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX21taW8odm9pZCAqb3BhcXVlLCBod2Fk ZHIgb2Zmc2V0LAorQEAgLTUzNSw2ICs2NzcsMTMgQEAgZnJlZV92aW9tbXU6CisgCisgc3RhdGlj IHZvaWQgdGVncmEyNDFfY21kcXZfcmVzZXQoU01NVXYzU3RhdGUgKnMpCisgeworKyAgICBUZWdy YTI0MUNNRFFWICpjbWRxdiA9IHMtPnNfYWNjZWwtPmNtZHF2OworKworKyAgICBpZiAoIWNtZHF2 KSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgdGVncmEyNDFfY21kcXZfZnJl ZV9hbGxfdmNtZHEoY21kcXYpOworIH0KKyAKKyBzdGF0aWMgY29uc3QgTWVtb3J5UmVnaW9uT3Bz IG1taW9fY21kcXZfb3BzID0geworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5o IGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKK2luZGV4IGNjMWI1NWE1ZTEuLmM3OTVkYTA0NDQg MTAwNjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuaAorKysrIGIvaHcvYXJtL3RlZ3Jh MjQxLWNtZHF2LmgKK0BAIC00Nyw2ICs0Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFRlZ3JhMjQxQ01E UVYgeworICAgICBNZW1vcnlSZWdpb24gbW1pb19jbWRxdjsKKyAgICAgcWVtdV9pcnEgaXJxOwor ICAgICBJT01NVUZEVmV2ZW50cSAqdmV2ZW50cTsKKysgICAgSU9NTVVGREhXcXVldWUgKnZjbWRx W1RFR1JBMjQxX0NNRFFWX01BWF9DTURRXTsKKyAgICAgdm9pZCAqdmludGZfcGFnZTA7CisgCisg ICAgIC8qIENNRFEtViBDb25maWcgcGFnZSByZWdpc3RlciBjYWNoZSAqLworQEAgLTM2NCw2ICsz NjUsMTYgQEAgU01NVV9DTURRVl9WSV9WQ01EUWlfQkFTRV9IXygxKQorIFNNTVVfQ01EUVZfVklf VkNNRFFpX0NPTlNfSU5EWF9CQVNFX0RSQU1fTF8oMSkKKyBTTU1VX0NNRFFWX1ZJX1ZDTURRaV9D T05TX0lORFhfQkFTRV9EUkFNX0hfKDEpCisgCisrc3RhdGljIGlubGluZSBib29sIHRlZ3JhMjQx X2NtZHF2X2VuYWJsZWQoVGVncmEyNDFDTURRViAqY21kcXYpCisreworKyAgICByZXR1cm4gY21k cXYtPnN0YXR1cyAmIFJfU1RBVFVTX0NNRFFWX0VOQUJMRURfTUFTSzsKKyt9CisrCisrc3RhdGlj IGlubGluZSBib29sIHRlZ3JhMjQxX3ZpbnRmX2VuYWJsZWQoVGVncmEyNDFDTURRViAqY21kcXYp CisreworKyAgICByZXR1cm4gY21kcXYtPnZpbnRmX3N0YXR1cyAmIFJfVklOVEYwX1NUQVRVU19F TkFCTEVfT0tfTUFTSzsKKyt9CisrCisgY29uc3QgU01NVXYzQWNjZWxDbWRxdk9wcyAqdGVncmEy NDFfY21kcXZfZ2V0X29wcyh2b2lkKTsKKyAKKyAjZW5kaWYgLyogSFdfQVJNX1RFR1JBMjQxX0NN RFFWX0ggKi8KKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXRlZ3JhMjQx LWNtZHF2LURvY3VtZW50LXRoZS1DTURRVi1kZXNpZ24tYW5kLS5wYXRjaCBiL2t2bS1ody1hcm0t dGVncmEyNDEtY21kcXYtRG9jdW1lbnQtdGhlLUNNRFFWLWRlc2lnbi1hbmQtLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNmUyNDUKLS0tIC9kZXYvbnVsbAorKysg Yi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LURvY3VtZW50LXRoZS1DTURRVi1kZXNpZ24tYW5k LS5wYXRjaApAQCAtMCwwICsxLDE0OCBAQAorRnJvbSBiODdiN2UyZGEzYjAyNTVhYmQ3ZDZhZTUz MjFjNjRiNzMwZDQyMWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBL b2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUdWUsIDkgSnVuIDIwMjYg MTI6MjU6NTEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxMDkvMTExXSBody9hcm0vdGVncmEyNDEt Y21kcXY6IERvY3VtZW50IHRoZSBDTURRViBkZXNpZ24gYW5kCisgbGlmZWN5Y2xlCitNSU1FLVZl cnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZv ciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2 NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5 OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFj a2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTA5LzEx MV0gNDU5Yzg5MWQ1ZTdkZjJiZmJjOGIxOTBiYWJiZGEzMTBlYjZmZDE3NyAoZWF1Z2VyMS9jZW50 b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3Nl L1JIRUwtNzM3OTgKKworQWRkIGFuIG92ZXJ2aWV3IGRlc2NyaWJpbmcgdGhlIFRlZ3JhMjQxIENN RFFWIHBhc3N0aHJvdWdoIG1vZGVsLCBNTUlPCitsYXlvdXQsIGd1ZXN0LWRyaXZlbiBsaWZlY3lj bGUsIGFuZCBwZXItVk0gaXNvbGF0aW9uLgorCitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmlj b2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xv dGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29t PgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK01lc3Nh Z2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS0zMS1za29sb3RodW10aG9AbnZpZGlhLmNvbQor U2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMjk1Y2EwZTE0YzYxNjllODMxYzRhMjc3ZTQ4ZGYz YTRhYTBkODYwNikKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KKy0tLQorIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5jIHwgMTAwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTAwIGluc2VydGlv bnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcvYXJtL3Rl Z3JhMjQxLWNtZHF2LmMKK2luZGV4IDFiZWQxMzc0YmEuLjVlMTU0OTRhN2YgMTAwNjQ0CistLS0g YS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMK K0BAIC03LDYgKzcsMTA2IEBACisgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b3ItbGF0ZXIKKyAgKi8KKyAKKysvKgorKyAqIFRlZ3JhMjQxIENNRFFWIC0gb3ZlcnZpZXcKKysg KiA9PT09PT09PT09PT09PT09PT09PT09PT09CisrICoKKysgKiBOVklESUEgVGVncmEyNDEgZXh0 ZW5kcyBTTU1VdjMgd2l0aCBhIENvbW1hbmQgUXVldWUgVmlydHVhbGl6YXRpb24gKENNRFEtVikK KysgKiBibG9jay4gSXQgbGV0cyBhIGd1ZXN0IGlzc3VlIFNNTVUgaW52YWxpZGF0aW9uIGNvbW1h bmRzIGRpcmVjdGx5IHRvCisrICogZGVkaWNhdGVkIGhhcmR3YXJlIHF1ZXVlcyAodkNNRFFzKSB3 aXRob3V0IHRyYXBwaW5nIGludG8gdGhlIGh5cGVydmlzb3Igb24KKysgKiB0aGUgZmFzdCBwYXRo LiB2Q01EUXMgYXJlIGV4Y2x1c2l2ZWx5IGFsbG9jYXRlZCB0byBWaXJ0dWFsIEludGVyZmFjZXMK KysgKiAoVklOVEZzKTsgdGhlIGhvc3Qga2VybmVsIGFsbG9jYXRlcyBvbmUgVklOVEYgcGVyIGVt dWxhdGVkIFNNTVV2MyBpbnN0YW5jZQorKyAqIHZpYSBpb21tdWZkLiBRRU1VIGVtdWxhdGVzIHRo ZSBDTURRViBNTUlPIHJlZ2lvbiBhbmQgZHJpdmVzIHRoZSBob3N0IGtlcm5lbAorKyAqIGNhbGxz IChWSU9NTVVfQUxMT0MsIEhXX1FVRVVFX0FMTE9DLCBtbWFwKTsgdGhlIGFjdHVhbCBjb21tYW5k IHByb2Nlc3NpbmcKKysgKiBoYXBwZW5zIG9uIHJlYWwgaGFyZHdhcmUuCisrICoKKysgKiBBIHZD TURRIGJlY29tZXMgZnVuY3Rpb25hbCBvbmx5IG9uY2UgYWxsb2NhdGVkIHRvIHRoZSBob3N0IFZJ TlRGOyB1bnRpbCB0aGVuCisrICogbm8gY29tbWFuZCBwcm9jZXNzaW5nIGhhcHBlbnMsIGFuZCB0 cmFwcGVkIHJlZ2lzdGVyIGFjY2Vzc2VzIGZhbGwgYmFjayB0byBhCisrICogUUVNVS1zaWRlIGNh Y2hlLiBBZnRlciBhbGxvY2F0aW9uLCB0aGUgY2FjaGVkIHJlZ2lzdGVyIHN0YXRlIGlzIG1pZ3Jh dGVkIHRvCisrICogdGhlIGhhcmR3YXJlIGFuZCBjb21tYW5kIHByb2Nlc3NpbmcgcnVucyBvbiB0 aGUgaG9zdDsgZ3Vlc3QgYWNjZXNzZXMgdG8gdGhlCisrICogbGl2ZSBjb250cm9sL3N0YXR1cyBy ZWdpc3RlcnMgdGhlbiBieXBhc3MgUUVNVSBhbmQgcmVhY2ggdGhlIGhvc3QgZGlyZWN0bHkuCisr ICoKKysgKiBNTUlPIGxheW91dCAoNjRLQiBwYWdlcywgdG90YWwgVEVHUkEyNDFfQ01EUVZfSU9f TEVOKQorKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrICogICAweDAwMDAwICBDTURRViBDb25maWcgcGFnZTogUUVNVS10cmFwcGVkLgor KyAqICAgMHgxMDAwMCAgRGlyZWN0IHZDTURRIFBhZ2UgMCAoY29udHJvbC9zdGF0dXMpOiBRRU1V LXRyYXBwZWQgYW5kIHJvdXRlZAorKyAqICAgICAgICAgICAgdG8gZWl0aGVyIHRoZSBtbWFwJ2Qg aG9zdCBWSU5URiBQYWdlIDAgKGlmIHRoZSB2Q01EUSBoYXMgYmVlbgorKyAqICAgICAgICAgICAg YWxsb2NhdGVkIHRvIGEgVklOVEYpIG9yIGEgcGVyLXZDTURRIHJlZ2lzdGVyIGNhY2hlIChvdGhl cndpc2UpLgorKyAqICAgMHgyMDAwMCAgRGlyZWN0IHZDTURRIFBhZ2UgMSAoQkFTRSAvIERSQU0g YWRkcmVzc2VzKTogUUVNVS10cmFwcGVkLgorKyAqICAgMHgzMDAwMCAgVklOVEYgUGFnZSAwIChw ZXItVklOVEYgY29udHJvbC9zdGF0dXMpOiB0aGUgZ3Vlc3QncyB2aXJ0dWFsCisrICogICAgICAg ICAgICBWSU5URiBQYWdlIDAgYXBlcnR1cmUsIGJhY2tlZCBieSB0aGUgaG9zdCBWSU5URiBQYWdl IDAgKG1tYXAnZAorKyAqICAgICAgICAgICAgdmlhIGlvbW11ZmQpIGFuZCBpbnN0YWxsZWQgaW50 byBndWVzdCBNTUlPIGFzIGEgUkFNLWRldmljZQorKyAqICAgICAgICAgICAgc3VicmVnaW9uIHdo ZW4gVklOVEYgaXMgZW5hYmxlZDsgc3Vic2VxdWVudCBhY2Nlc3NlcyBieXBhc3MgUUVNVS4KKysg KiAgIDB4NDAwMDAgIFZJTlRGIFBhZ2UgMSAocGVyLVZJTlRGIEJBU0UpOiBRRU1VLXRyYXBwZWQu IEFsdGhvdWdoIHRoaXMgaXMKKysgKiAgICAgICAgICAgIGEgSFcgYWxpYXMgb2YgdGhlIGRpcmVj dCBQYWdlIDEsIHRoZSBrZXJuZWwgb25seSBleHBvc2VzIG1tYXAKKysgKiAgICAgICAgICAgIGZv ciB0aGUgaG9zdCBWSU5URiBQYWdlIDA7IHRoZSBob3N0IFZJTlRGIFBhZ2UgMSBpcyBub3QgbW1h cCdkCisrICogICAgICAgICAgICBhbmQgc3RheXMgdHJhcHBlZC4KKysgKgorKyAqIFRoZSBkaXJl Y3QgdkNNRFEgYXBlcnR1cmVzICgweDEwMDAwLzB4MjAwMDApIGFyZSBIVyBhbGlhc2VzIG9mIHRo ZSBWSU5URgorKyAqIGFwZXJ0dXJlcyAoMHgzMDAwMC8weDQwMDAwKTsgdGhleSBleHBvc2UgdGhl IHNhbWUgcGVyLXZDTURRIHJlZ2lzdGVyIHNsb3RzCisrICogdW5kZXIgZGlmZmVyZW50IGFkZHJl c3NpbmcuCisrICoKKysgKiBUaGUgZGlyZWN0IHZDTURRIFBhZ2UgMCBzdGF5cyB0cmFwcGVkIHJh dGhlciB0aGFuIGFsaWFzZWQgdG8gdGhlIGhvc3QgVklOVEYKKysgKiBQYWdlIDAgbW1hcC4gVGhl IENNRFFWIGFyY2hpdGVjdHVyZSBhbGxvd3Mgc29mdHdhcmUgdG8gcHJvZ3JhbSBhIHZDTURRCisr ICogdGhyb3VnaCB0aGUgZGlyZWN0IGFwZXJ0dXJlIGJlZm9yZSBhbGxvY2F0aW5nIGl0IHRvIGEg VklOVEY7IGFsaWFzaW5nIHRvCisrICogdGhlIGhvc3QgVklOVEYgUGFnZSAwIG1tYXAgd291bGQg cm91dGUgdGhvc2UgYWNjZXNzZXMgaW50byB1bmFsbG9jYXRlZAorKyAqIGxvZ2ljYWwgc2xvdHMg d2hlcmUgdGhlIGhhcmR3YXJlIHNpbGVudGx5IGRyb3BzIHRoZW0sIHNvIHRyYXBwaW5nIGtlZXBz CisrICogYWNjZXNzZXMgd2VsbC1kZWZpbmVkIGZvciBhbiB1bmFsbG9jYXRlZCB2Q01EUS4KKysg KgorKyAqIExpZmVjeWNsZSAoZHJpdmVuIGJ5IGd1ZXN0IGV2ZW50cykKKysgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICogMS4gRmlyc3QgdmZpby1wY2kgZGV2aWNlIGF0 dGFjaCAoLnNldF9pb21tdV9kZXZpY2UpIHRyaWdnZXJzOgorKyAqICAgIC0gdGVncmEyNDFfY21k cXZfcHJvYmUoKTogSU9NTVVfR0VUX0hXX0lORk8gY29uZmlybXMgaG9zdCBDTURRViBzdXBwb3J0 LgorKyAqICAgIC0gSU9NTVVfVklPTU1VX0FMTE9DOiB0aGUga2VybmVsIGFsbG9jYXRlcyBhbmQg ZW5hYmxlcyBhIFZJTlRGIGZvciB0aGlzCisrICogICAgICBWTSwgY29uZmlndXJlcyB0aGUgVk0n cyBWTUlEIChmcm9tIGl0cyBzdGFnZS0yIEhXUFQpIGluIFZJTlRGX0NPTkZJRywKKysgKiAgICAg IGZvcmNlcyBIWVBfT1dOPTAsIGFuZCByZXR1cm5zIHRoZSBtbWFwIG9mZnNldC9sZW5ndGggZm9y IHRoZSBob3N0CisrICogICAgICBWSU5URiBQYWdlIDAsIHdoaWNoIFFFTVUgdGhlbiBtbWFwKClz LgorKyAqCisrICogMi4gR3Vlc3Qgd3JpdGVzIFZJTlRGX0NPTkZJRy5FTkFCTEUgPSAxOgorKyAq ICAgIFFFTVUgaW5zdGFsbHMgdGhlIG1tYXAnZCBob3N0IFZJTlRGIFBhZ2UgMCBpbnRvIGd1ZXN0 IE1NSU8gYXMgdGhlIGd1ZXN0J3MKKysgKiAgICB2aXJ0dWFsIFZJTlRGIFBhZ2UgMCBhcGVydHVy ZSAoYSBSQU0tZGV2aWNlIHN1YnJlZ2lvbikgYW5kIHJlcG9ydHMKKysgKiAgICBTVEFUVVMuRU5B QkxFX09LID0gMS4gVGhlIGFwZXJ0dXJlIGlzIG5vdyBhIGRpcmVjdCB3aW5kb3cgb250byB0aGUg aG9zdAorKyAqICAgIHBhZ2UsIHNvIGFjY2Vzc2VzIG5vIGxvbmdlciB0cmFwIGludG8gUUVNVTsg YSB2Q01EUSB3aXRoaW4gaXQgb3BlcmF0ZXMgYXMKKysgKiAgICBhIHJlYWwgY29tbWFuZCBxdWV1 ZSBvbmx5IG9uY2UgaXQgaGFzIGJlZW4gYWxsb2NhdGVkIChzdGVwIDMpLgorKyAqCisrICogMy4g R3Vlc3QgY29tcGxldGVzIHZDTURRIHNldHVwIChCQVNFLCBDTURRX0FMTE9DX01BUC5BTExPQywg Q01EUVZfRU4sCisrICogICAgVklOVEYuRU5BQkxFLCBpbiBhbnkgb3JkZXI7IGVhY2ggcHJlY29u ZGl0aW9uIHdyaXRlIHJldHJpZXMgdGhlIEhXIHF1ZXVlCisrICogICAgYWxsb2NhdGlvbik6Cisr ICogICAgSU9NTVVfSFdfUVVFVUVfQUxMT0MgZ3JhbnRzIHRoZSBndWVzdCBhIG5ldyBob3N0IHZD TURRIGluIHRoaXMgVk0ncworKyAqICAgIFZJTlRGLCBiaW5kaW5nIHRoZSBndWVzdCBCQVNFIEdQ QSAodHJhbnNsYXRlZCB0aHJvdWdoIHN0YWdlLTIgYW5kIHBpbm5lZAorKyAqICAgIGJ5IHRoZSBr ZXJuZWwpIHRvIGl0LgorKyAqCisrICogNC4gR3Vlc3QgU01NVSBkcml2ZXIgcHJvZ3JhbXMgYSBT dHJlYW0gVGFibGUgRW50cnkgZm9yIGEgcGFzc3Rocm91Z2gKKysgKiAgICBkZXZpY2U6IElPTU1V X1ZERVZJQ0VfQUxMT0MgcHJvZ3JhbXMgU0lEX01BVENIL1NJRF9SRVBMQUNFIGluIHRoaXMgVk0n cworKyAqICAgIFZJTlRGIHNvIHRoYXQgdGhlIEhXIHRyYW5zbGF0ZXMgdGhlIGRldmljZSdzIGd1 ZXN0IHZTSUQgaW50byBpdHMgaG9zdAorKyAqICAgIHBTSUQuIENvbW1hbmRzIHJlZmVyZW5jaW5n IHVubWFwcGVkIFNJRHMgYXJlIHJlamVjdGVkIGJ5IEhXLgorKyAqCisrICogICAgVGhpcyByZWZs ZWN0cyB0aGUgY3VycmVudCBhY2NlbCBTTU1VdjMgZGVzaWduLCB3aGljaCBhbGxvY2F0ZXMgdGhl CisrICogICAgdkRFVklDRSB3aGVuIHRoZSBndWVzdCBwcm9ncmFtcyB0aGUgU1RFLgorKyAqCisr ICogUGVyLVZNIGlzb2xhdGlvbgorKyAqIC0tLS0tLS0tLS0tLS0tLS0KKysgKiAtIEVhY2ggVk0g aGFzIGl0cyBvd24gaW9tbXVmZCBGRDsgYWxsIGlvbW11ZmQgb2JqZWN0cyAoVklOVEYsIHZkZXZp Y2VzLAorKyAqICAgaHdfcXVldWVzLCBtbWFwIHJlZ2lvbnMpIGJlbG9uZyB0byB0aGF0IEZELiBD cm9zcy1GRCBsb29rdXBzIGZhaWwsIHNvCisrICogICBvbmUgVk0gY2Fubm90IHJlYWNoIGFub3Ro ZXIgVk0ncyBJRHMuCisrICogLSBJT01NVV9WSU9NTVVfQUxMT0MgY29uZmlndXJlcyB0aGUgVk0n cyBWTUlEIGluIFZJTlRGX0NPTkZJRzsgdGhlIENNRFFWCisrICogICBoYXJkd2FyZSBzdWJzdGl0 dXRlcyAvIGNoZWNrcyBWTUlEIG9uIGV2ZXJ5IGNvbW1hbmQgdGhlIGd1ZXN0IGlzc3Vlcy4KKysg KiAtIFRoZSBrZXJuZWwgYWxsb2NhdGVzIHRoZSBWSU5URiB3aXRoIEhZUF9PV04gPSAwLCB3aGlj aCByZXN0cmljdHMgdGhlCisrICogICBndWVzdCB0byBhIHNhZmUgc3Vic2V0IG9mIGNvbW1hbmRz LgorKyAqIC0gSU9NTVVfVkRFVklDRV9BTExPQyBwb3B1bGF0ZXMgU0lEX01BVENIL1NJRF9SRVBM QUNFIHNvIGludmFsaWRhdGlvbnMKKysgKiAgIG9ubHkgcmVhY2ggdGhlIGhvc3QgU3RyZWFtSURz IGFzc2lnbmVkIHRvIHRoaXMgVk0gKHNlZSBzdGVwIDQpLgorKyAqIC0gSU9NTVVfSFdfUVVFVUVf QUxMT0MgYmluZHMgZWFjaCB2Q01EUSB0byBhIHNpbmdsZSBWSU5URiwgc28gYSBndWVzdAorKyAq ICAgY2Fubm90IHJlYWNoIGEgdkNNRFEgdGhhdCBiZWxvbmdzIHRvIGFub3RoZXIgVk0uCisrICoK KysgKiBMaW1pdHMgZXhwb3NlZCB0byB0aGUgZ3Vlc3QKKysgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysgKiBPbmUgVklOVEYgcGVyIGVtdWxhdGVkIFNNTVV2MyBhbmQgdHdvIHZDTURR cyBwZXIgVklOVEYuIFRoZSBIVyBtYXhpbXVtCisrICogdkNNRFEgc2l6ZSBpcyA4TWlCLCBidXQg dGhlIHNpemUgUUVNVSBleHBvc2VzIHRvIHRoZSBndWVzdCBtYXkgYmUgc21hbGxlci4KKysgKiBU aGUgcXVldWUgbXVzdCBiZSBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgaW4gaG9zdCBtZW1vcnksIHNv IFFFTVUgY2FwcyB0aGUKKysgKiBleHBvc2VkIHNpemUgdG8gdGhlIGhvc3QgbWVtb3J5LWJhY2tl bmQgcGFnZSBzaXplLiBVc2UgaHVnZXBhZ2UgYmFja2luZyB0bworKyAqIHJlYWNoIHRoZSA4TWlC IG1heGltdW0uCisrICovCisrCisgI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIKKyAjaW5jbHVkZSAi cWVtdS9sb2cuaCIKKyAKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXRl Z3JhMjQxLWNtZHF2LUVtdWxhdGUtQ01EUS1WLUNvbmZpZy1yZWdpb24ucGF0Y2ggYi9rdm0taHct YXJtLXRlZ3JhMjQxLWNtZHF2LUVtdWxhdGUtQ01EUS1WLUNvbmZpZy1yZWdpb24ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZiOWFmZgotLS0gL2Rldi9udWxsCisr KyBiL2t2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtRW11bGF0ZS1DTURRLVYtQ29uZmlnLXJlZ2lv bi5wYXRjaApAQCAtMCwwICsxLDQwOSBAQAorRnJvbSA1NmMxYzI4ZmVlN2YzMDYyODhhNDVjMmMy NWI4MzljYzllNDY3YWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljb2xpbiBD aGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjM2 ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMDk0LzExMV0gaHcvYXJtL3RlZ3JhMjQxLWNtZHF2OiBF bXVsYXRlIENNRFEtViBDb25maWcgcmVnaW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgor UkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFu ZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRy aWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxn c2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbOTQvMTExXSBkNzQ0MGZlMTk3ZDQ4MzljZjI4 YzYwNDliZjc3NTJmNWEzZGYzMzFiIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworQ29uZmxp Y3RzOiBpbiBody9hcm0vdGVncmEyNDEtY21kcXYuaCB1c2VkIGh3L3JlZ2lzdGVyZmllbGRzLmgK K2luc3RlYWQgb2YgaHcvY29yZS9yZWdpc3RlcmZpZWxkcy5oCisKK0pJUkE6IGh0dHBzOi8vcmVk aGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworVGVncmEyNDEgQ01EUVYgZXhw b3NlcyBjb250cm9sIGFuZCBzdGF0dXMgcmVnaXN0ZXJzIGluIHRoZSBDTURRLVYKK0NvbmZpZyBw YWdlIChvZmZzZXQgWzB4MCwgMHgxMDAwMCkpIHVzZWQgdG8gY29uZmlndXJlIHZpcnR1YWwgY29t bWFuZAorcXVldWUgYWxsb2NhdGlvbiBhbmQgaW50ZXJydXB0IGJlaGF2aW9yLgorCitBZGQgcmVh ZC93cml0ZSBlbXVsYXRpb24gZm9yIHRoZSBDTURRLVYgQ29uZmlnIHJlZ2lvbgorKFtDTURRVl9C QVNFLCBDTURRVl9DTURRX0JBU0VdKSwgYmFja2VkIGJ5IGEgc2ltcGxlIHJlZ2lzdGVyIGNhY2hl LgorVGhpcyBpbmNsdWRlcyBDT05GSUcsIFBBUkFNLCBTVEFUVVMsIFZJIGVycm9yIGFuZCBpbnRl cnJ1cHQgbWFwcywgQ01EUQorYWxsb2NhdGlvbiBtYXAgYW5kIHRoZSBWSU5URjAgcmVsYXRlZCBy ZWdpc3RlcnMgZGVmaW5lZCBpbiB0aGUgQ01EUS1WCitDb25maWcgc3BhY2UuIE9ubHkgVklOVEYw IGlzIHN1cHBvcnRlZDsgVklOVEYxLTYzIGFyZSBub3QuCisKK0Rpc3BhdGNoIHdyaXRlcyBvbiBh Y2Nlc3Mgc2l6ZTogSW50cm9kdWNlZCB3cml0ZWxfbW1pbyBmb3IgNC1ieXRlIGFuZAord3JpdGVs bF9tbWlvIGZvciA4LWJ5dGUuIFJlYWRzIG5lZWQgbm8gc3BsaXQgYXMgdGhlIE1NSU8gZnJhbWV3 b3JrIG1hc2tzCit0aGUgcmV0dXJuZWQgdmFsdWUgdG8gdGhlIGFjY2VzcyBzaXplLgorCitTaWdu ZWQtb2ZmLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1i eTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGlu IENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xv dGh1bXRob0BudmlkaWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTE2 LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitDby1kZXZlbG9wZWQtYnk6IFNoYW1lZXIgS29sb3Ro dW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xv dGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlk ZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1p dCBhYjllYWQxMWYwM2Q4YWJjMGMwNjkzMDlkNTE2YThhYmI3NWVlYmU3KQorU2lnbmVkLW9mZi1i eTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3RlZ3Jh MjQxLWNtZHF2LmMgfCAxODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQorIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5oIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysr KworIGh3L2FybS90cmFjZS1ldmVudHMgICAgIHwgICA0ICsKKyAzIGZpbGVzIGNoYW5nZWQsIDI5 NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVn cmEyNDEtY21kcXYuYyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jCitpbmRleCAzZWVjNjA3M2E0 Li44OTUwZDUxNTNiIDEwMDY0NAorLS0tIGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKKysrKyBi L2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jCitAQCAtOCwyMSArOCwyMDAgQEAKKyAgKi8KKyAKKyAj aW5jbHVkZSAicWVtdS9vc2RlcC5oIgorKyNpbmNsdWRlICJxZW11L2xvZy5oIgorIAorICNpbmNs dWRlICJody9hcm0vc21tdXYzLmgiCisgI2luY2x1ZGUgImh3L2FybS9zbW11djMtY29tbW9uLmgi CisgI2luY2x1ZGUgInNtbXV2My1hY2NlbC5oIgorICNpbmNsdWRlICJ0ZWdyYTI0MS1jbWRxdi5o IgorKyNpbmNsdWRlICJ0cmFjZS5oIgorKworK3N0YXRpYyB1aW50NjRfdCB0ZWdyYTI0MV9jbWRx dl9jb25maWdfdmludGZfcmVhZChUZWdyYTI0MUNNRFFWICpjbWRxdiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIG9mZnNldCkKKyt7Cisr ICAgIGludCBpOworKworKyAgICBzd2l0Y2ggKG9mZnNldCkgeworKyAgICBjYXNlIEFfVklOVEYw X0NPTkZJRzoKKysgICAgICAgIHJldHVybiBjbWRxdi0+dmludGZfY29uZmlnOworKyAgICBjYXNl IEFfVklOVEYwX1NUQVRVUzoKKysgICAgICAgIHJldHVybiBjbWRxdi0+dmludGZfc3RhdHVzOwor KyAgICBjYXNlIEFfVklOVEYwX1NJRF9NQVRDSF8wIC4uLiBBX1ZJTlRGMF9TSURfTUFUQ0hfMTU6 CisrICAgICAgICBpID0gKG9mZnNldCAtIEFfVklOVEYwX1NJRF9NQVRDSF8wKSAvIDQ7CisrICAg ICAgICByZXR1cm4gY21kcXYtPnZpbnRmX3NpZF9tYXRjaFtpXTsKKysgICAgY2FzZSBBX1ZJTlRG MF9TSURfUkVQTEFDRV8wIC4uLiBBX1ZJTlRGMF9TSURfUkVQTEFDRV8xNToKKysgICAgICAgIGkg PSAob2Zmc2V0IC0gQV9WSU5URjBfU0lEX1JFUExBQ0VfMCkgLyA0OworKyAgICAgICAgcmV0dXJu IGNtZHF2LT52aW50Zl9zaWRfcmVwbGFjZVtpXTsKKysgICAgY2FzZSBBX1ZJTlRGMF9MVkNNRFFf RVJSX01BUF8wIC4uLiBBX1ZJTlRGMF9MVkNNRFFfRVJSX01BUF8zOgorKyAgICAgICAgaSA9IChv ZmZzZXQgLSBBX1ZJTlRGMF9MVkNNRFFfRVJSX01BUF8wKSAvIDQ7CisrICAgICAgICByZXR1cm4g Y21kcXYtPnZpbnRmX2NtZHFfZXJyX21hcFtpXTsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIC8q CisrICAgICAgICAgKiBHTEJfRklMVF9DRkdfMCAob2Zmc2V0IDB4QykgYW5kIEdMQl9GSUxUX0RB VEFfMCAob2Zmc2V0IDB4MTApIGFyZQorKyAgICAgICAgICogZmlsdGVyIGNvbmZpZyBhbmQgZmls dGVyIGRhdGEgcmVnaXN0ZXJzLiBUaGV5IGFyZSBub3QgcmVxdWlyZWQgZm9yCisrICAgICAgICAg KiBub3JtYWwgVklOVEYgb3BlcmF0aW9uIGFuZCBhcmUgbm90IGVtdWxhdGVkLgorKyAgICAgICAg ICovCisrICAgICAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwgIiVzIHVuaGFuZGxlZCByZWFk IGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXywgb2Zmc2V0KTsKKysgICAgICAgIHJldHVybiAwOworKyAgICB9CisrfQorKworK3N0YXRp YyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2NvbmZpZ192aW50Zl93cml0ZShUZWdyYTI0MUNNRFFWICpj bWRxdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdh ZGRyIG9mZnNldCwgdWludDY0X3QgdmFsdWUpCisreworKyAgICBpbnQgaTsKKysKKysgICAgc3dp dGNoIChvZmZzZXQpIHsKKysgICAgY2FzZSBBX1ZJTlRGMF9DT05GSUc6CisrICAgICAgICAvKgor KyAgICAgICAgICogTWFzayBvdXQgSFlQX09XTiBvbiBndWVzdCB3cml0ZXMuIFRoaXMgYml0IHNl bGVjdHMgSHlwZXJ2aXNvciAoMSkgdnMKKysgICAgICAgICAqIEd1ZXN0ICgwKSBvd25lcnNoaXAg b2YgdGhlIENNRFEuIEZvcmNlIGl0IHRvIDAgc28gdGhlIFZJTlRGIGFsd2F5cworKyAgICAgICAg ICogcmVtYWlucyBndWVzdC1vd25lZC4KKysgICAgICAgICAqLworKyAgICAgICAgdmFsdWUgJj0g flJfVklOVEYwX0NPTkZJR19IWVBfT1dOX01BU0s7CisrCisrICAgICAgICBjbWRxdi0+dmludGZf Y29uZmlnID0gdmFsdWU7CisrICAgICAgICBpZiAodmFsdWUgJiBSX1ZJTlRGMF9DT05GSUdfRU5B QkxFX01BU0spIHsKKysgICAgICAgICAgICBjbWRxdi0+dmludGZfc3RhdHVzIHw9IFJfVklOVEYw X1NUQVRVU19FTkFCTEVfT0tfTUFTSzsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAg Y21kcXYtPnZpbnRmX3N0YXR1cyAmPSB+Ul9WSU5URjBfU1RBVFVTX0VOQUJMRV9PS19NQVNLOwor KyAgICAgICAgfQorKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQV9WSU5URjBfU0lEX01BVENI XzAgLi4uIEFfVklOVEYwX1NJRF9NQVRDSF8xNToKKysgICAgICAgIGkgPSAob2Zmc2V0IC0gQV9W SU5URjBfU0lEX01BVENIXzApIC8gNDsKKysgICAgICAgIGNtZHF2LT52aW50Zl9zaWRfbWF0Y2hb aV0gPSB2YWx1ZTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfVklOVEYwX1NJRF9SRVBM QUNFXzAgLi4uIEFfVklOVEYwX1NJRF9SRVBMQUNFXzE1OgorKyAgICAgICAgaSA9IChvZmZzZXQg LSBBX1ZJTlRGMF9TSURfUkVQTEFDRV8wKSAvIDQ7CisrICAgICAgICBjbWRxdi0+dmludGZfc2lk X3JlcGxhY2VbaV0gPSB2YWx1ZTsKKysgICAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAg ICAgICAgLyoKKysgICAgICAgICAqIEdMQl9GSUxUX0NGR18wIChvZmZzZXQgMHhDKSBhbmQgR0xC X0ZJTFRfREFUQV8wIChvZmZzZXQgMHgxMCkgYXJlCisrICAgICAgICAgKiBmaWx0ZXIgY29uZmln IGFuZCBmaWx0ZXIgZGF0YSByZWdpc3RlcnMuIFRoZXkgYXJlIG5vdCByZXF1aXJlZCBmb3IKKysg ICAgICAgICAqIG5vcm1hbCBWSU5URiBvcGVyYXRpb24gYW5kIGFyZSBub3QgZW11bGF0ZWQuCisr ICAgICAgICAgKi8KKysgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLCAiJXMgdW5oYW5k bGVkIHdyaXRlIGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorKyAgICAgICAgICAgICAgICAg ICAgICBfX2Z1bmNfXywgb2Zmc2V0KTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorK30KKyAK KyBzdGF0aWMgdWludDY0X3QgdGVncmEyNDFfY21kcXZfcmVhZF9tbWlvKHZvaWQgKm9wYXF1ZSwg aHdhZGRyIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIHNpemUpCisgeworLSAgICByZXR1cm4gMDsKKysgICAgVGVncmEyNDFDTURRViAq Y21kcXYgPSAoVGVncmEyNDFDTURRViAqKW9wYXF1ZTsKKysgICAgdWludDY0X3QgdmFsID0gMDsK KysKKysgICAgaWYgKG9mZnNldCA+PSBURUdSQTI0MV9DTURRVl9JT19MRU4pIHsKKysgICAgICAg IHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLAorKyAgICAgICAgICAgICAgICAgICAgICAiJXMgb2Zm c2V0IDB4JSIgUFJJeDY0ICIgb2ZmIGxpbWl0ICgweCV4KVxuIiwgX19mdW5jX18sCisrICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCwgVEVHUkEyNDFfQ01EUVZfSU9fTEVOKTsKKysgICAgICAg IGdvdG8gb3V0OworKyAgICB9CisrCisrICAgIHN3aXRjaCAob2Zmc2V0KSB7CisrICAgIGNhc2Ug QV9DT05GSUc6CisrICAgICAgICB2YWwgPSBjbWRxdi0+Y29uZmlnOworKyAgICAgICAgYnJlYWs7 CisrICAgIGNhc2UgQV9QQVJBTToKKysgICAgICAgIHZhbCA9IGNtZHF2LT5wYXJhbTsKKysgICAg ICAgIGJyZWFrOworKyAgICBjYXNlIEFfU1RBVFVTOgorKyAgICAgICAgdmFsID0gY21kcXYtPnN0 YXR1czsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfVklfRVJSX01BUF8wIC4uLiBBX1ZJ X0VSUl9NQVBfMToKKysgICAgICAgIHZhbCA9IGNtZHF2LT52aV9lcnJfbWFwWyhvZmZzZXQgLSBB X1ZJX0VSUl9NQVBfMCkgLyA0XTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfVklfSU5U X01BU0tfMCAuLi4gQV9WSV9JTlRfTUFTS18xOgorKyAgICAgICAgdmFsID0gY21kcXYtPnZpX2lu dF9tYXNrWyhvZmZzZXQgLSBBX1ZJX0lOVF9NQVNLXzApIC8gNF07CisrICAgICAgICBicmVhazsK KysgICAgY2FzZSBBX0NNRFFfRVJSX01BUF8wIC4uLiBBX0NNRFFfRVJSX01BUF8zOgorKyAgICAg ICAgdmFsID0gY21kcXYtPmNtZHFfZXJyX21hcFsob2Zmc2V0IC0gQV9DTURRX0VSUl9NQVBfMCkg LyA0XTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfQ01EUV9BTExPQ19NQVBfMCAuLi4g QV9DTURRX0FMTE9DX01BUF8xOgorKyAgICAgICAgdmFsID0gY21kcXYtPmNtZHFfYWxsb2NfbWFw WyhvZmZzZXQgLSBBX0NNRFFfQUxMT0NfTUFQXzApIC8gNF07CisrICAgICAgICBicmVhazsKKysg ICAgY2FzZSBBX1ZJTlRGMF9DT05GSUcgLi4uIEFfVklOVEYwX0xWQ01EUV9FUlJfTUFQXzM6Cisr ICAgICAgICB2YWwgPSB0ZWdyYTI0MV9jbWRxdl9jb25maWdfdmludGZfcmVhZChjbWRxdiwgb2Zm c2V0KTsKKysgICAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgICAgcWVtdV9sb2df bWFzayhMT0dfVU5JTVAsICIlcyB1bmhhbmRsZWQgcmVhZCBhY2Nlc3MgYXQgMHglIiBQUkl4NjQg IlxuIiwKKysgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIG9mZnNldCk7CisrICAgIH0K KysKKytvdXQ6CisrICAgIHRyYWNlX3RlZ3JhMjQxX2NtZHF2X3JlYWRfbW1pbyhvZmZzZXQsIHZh bCwgc2l6ZSk7CisrICAgIHJldHVybiB2YWw7CisrfQorKworKy8qIDQtYnl0ZSBNTUlPIHdyaXRl IGhhbmRsZXIuICovCisrc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVsX21taW8oVGVn cmEyNDFDTURRViAqY21kcXYsIGh3YWRkciBvZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUpCisreworKyAgICBzd2l0Y2ggKG9mZnNl dCkgeworKyAgICBjYXNlIEFfQ09ORklHOgorKyAgICAgICAgY21kcXYtPmNvbmZpZyA9IHZhbHVl OworKyAgICAgICAgaWYgKHZhbHVlICYgUl9DT05GSUdfQ01EUVZfRU5fTUFTSykgeworKyAgICAg ICAgICAgIGNtZHF2LT5zdGF0dXMgfD0gUl9TVEFUVVNfQ01EUVZfRU5BQkxFRF9NQVNLOworKyAg ICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBjbWRxdi0+c3RhdHVzICY9IH5SX1NUQVRVU19D TURRVl9FTkFCTEVEX01BU0s7CisrICAgICAgICB9CisrICAgICAgICBicmVhazsKKysgICAgY2Fz ZSBBX1ZJX0lOVF9NQVNLXzAgLi4uIEFfVklfSU5UX01BU0tfMToKKysgICAgICAgIGNtZHF2LT52 aV9pbnRfbWFza1sob2Zmc2V0IC0gQV9WSV9JTlRfTUFTS18wKSAvIDRdID0gdmFsdWU7CisrICAg ICAgICBicmVhazsKKysgICAgY2FzZSBBX0NNRFFfQUxMT0NfTUFQXzAgLi4uIEFfQ01EUV9BTExP Q19NQVBfMToKKysgICAgICAgIGNtZHF2LT5jbWRxX2FsbG9jX21hcFsob2Zmc2V0IC0gQV9DTURR X0FMTE9DX01BUF8wKSAvIDRdID0gdmFsdWU7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBB X1ZJTlRGMF9DT05GSUcgLi4uIEFfVklOVEYwX0xWQ01EUV9FUlJfTUFQXzM6CisrICAgICAgICB0 ZWdyYTI0MV9jbWRxdl9jb25maWdfdmludGZfd3JpdGUoY21kcXYsIG9mZnNldCwgdmFsdWUpOwor KyAgICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgICBxZW11X2xvZ19tYXNrKExP R19VTklNUCwgIiVzIHVuaGFuZGxlZCB3cml0ZSBhY2Nlc3MgYXQgMHglIiBQUkl4NjQgIlxuIiwK KysgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIG9mZnNldCk7CisrICAgIH0KKyt9Cisr CisrLyoKKysgKiA4LWJ5dGUgTU1JTyB3cml0ZSBoYW5kbGVyLgorKyAqLworK3N0YXRpYyB2b2lk IHRlZ3JhMjQxX2NtZHF2X3dyaXRlbGxfbW1pbyhUZWdyYTI0MUNNRFFWICpjbWRxdiwgaHdhZGRy IG9mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgdmFsdWUpCisreworKyAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwKKysgICAgICAgICAg ICAgICAgICAgICAgIiVzIHVuaGFuZGxlZCA2NC1iaXQgd3JpdGUgYXQgMHglIiBQUkl4NjQgIiAo V0kpXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0KTsKKyB9Cisg Cisgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVfbW1pbyh2b2lkICpvcGFxdWUsIGh3 YWRkciBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 NjRfdCB2YWx1ZSwgdW5zaWduZWQgc2l6ZSkKKyB7CisrICAgIFRlZ3JhMjQxQ01EUVYgKmNtZHF2 ID0gKFRlZ3JhMjQxQ01EUVYgKilvcGFxdWU7CisrCisrICAgIGlmIChvZmZzZXQgPj0gVEVHUkEy NDFfQ01EUVZfSU9fTEVOKSB7CisrICAgICAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwKKysg ICAgICAgICAgICAgICAgICAgICAgIiVzIG9mZnNldCAweCUiIFBSSXg2NCAiIG9mZiBsaW1pdCAo MHgleClcbiIsIF9fZnVuY19fLAorKyAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsIFRFR1JB MjQxX0NNRFFWX0lPX0xFTik7CisrICAgICAgICBnb3RvIG91dDsKKysgICAgfQorKworKyAgICBz d2l0Y2ggKHNpemUpIHsKKysgICAgY2FzZSA0OgorKyAgICAgICAgdGVncmEyNDFfY21kcXZfd3Jp dGVsX21taW8oY21kcXYsIG9mZnNldCwgdmFsdWUpOworKyAgICAgICAgYnJlYWs7CisrICAgIGNh c2UgODoKKysgICAgICAgIHRlZ3JhMjQxX2NtZHF2X3dyaXRlbGxfbW1pbyhjbWRxdiwgb2Zmc2V0 LCB2YWx1ZSk7CisrICAgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIHFlbXVf bG9nX21hc2soTE9HX0dVRVNUX0VSUk9SLAorKyAgICAgICAgICAgICAgICAgICAgICAiJXMgYmFk IHdyaXRlIHNpemUgJXUgYXQgMHglIiBQUkl4NjQgIlxuIiwKKysgICAgICAgICAgICAgICAgICAg ICAgX19mdW5jX18sIHNpemUsIG9mZnNldCk7CisrICAgIH0KKysKKytvdXQ6CisrICAgIHRyYWNl X3RlZ3JhMjQxX2NtZHF2X3dyaXRlX21taW8ob2Zmc2V0LCB2YWx1ZSwgc2l6ZSk7CisgfQorIAor IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmlvbW11KFNNTVV2M1N0YXRlICpzKQor ZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oIGIvaHcvYXJtL3RlZ3JhMjQxLWNt ZHF2LmgKK2luZGV4IDAwYzgzYjYxODYuLjRiODZhYTAxZDMgMTAwNjQ0CistLS0gYS9ody9hcm0v dGVncmEyNDEtY21kcXYuaAorKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKK0BAIC0xMCwx MCArMTAsMTUgQEAKKyAjaWZuZGVmIEhXX0FSTV9URUdSQTI0MV9DTURRVl9ICisgI2RlZmluZSBI V19BUk1fVEVHUkEyNDFfQ01EUVZfSAorIAorKyNpbmNsdWRlICJody9yZWdpc3RlcmZpZWxkcy5o IgorKworICNkZWZpbmUgQ01EUVZfVkVSICAgICAgICAgICAgICAgICAxCisgI2RlZmluZSBDTURR Vl9OVU1fQ01EUV9MT0cyICAgICAgIDEKKyAjZGVmaW5lIENNRFFWX05VTV9TSURfUEVSX1ZJX0xP RzIgNAorIAorKyNkZWZpbmUgVEVHUkEyNDFfQ01EUVZfTUFYX0NNRFEgICAgICAoMVUgPDwgQ01E UVZfTlVNX0NNRFFfTE9HMikKKysjZGVmaW5lIFRFR1JBMjQxX0NNRFFWX01BWF9OVU1fU0lEICAg KDFVIDw8IENNRFFWX05VTV9TSURfUEVSX1ZJX0xPRzIpCisrCisgLyoKKyAgKiBUZWdyYTI0MSBD TURRViBNTUlPIGxheW91dCAoNjRLQiBwYWdlcykKKyAgKgorQEAgLTM2LDggKzQxLDExMyBAQCB0 eXBlZGVmIHN0cnVjdCBUZWdyYTI0MUNNRFFWIHsKKyAgICAgcWVtdV9pcnEgaXJxOworICAgICBJ T01NVUZEVmV2ZW50cSAqdmV2ZW50cTsKKyAgICAgdm9pZCAqdmludGZfcGFnZTA7CisrCisrICAg IC8qIENNRFEtViBDb25maWcgcGFnZSByZWdpc3RlciBjYWNoZSAqLworKyAgICB1aW50MzJfdCBj b25maWc7CisrICAgIHVpbnQzMl90IHBhcmFtOworKyAgICB1aW50MzJfdCBzdGF0dXM7CisrICAg IHVpbnQzMl90IHZpX2Vycl9tYXBbMl07CisrICAgIHVpbnQzMl90IHZpX2ludF9tYXNrWzJdOwor KyAgICB1aW50MzJfdCBjbWRxX2Vycl9tYXBbNF07CisrICAgIHVpbnQzMl90IGNtZHFfYWxsb2Nf bWFwW1RFR1JBMjQxX0NNRFFWX01BWF9DTURRXTsKKysKKysgICAgLyogVklOVEYwIHJlZ2lzdGVy IGNhY2hlICh3aXRoaW4gQ01EUS1WIENvbmZpZyBwYWdlKSAqLworKyAgICB1aW50MzJfdCB2aW50 Zl9jb25maWc7CisrICAgIHVpbnQzMl90IHZpbnRmX3N0YXR1czsKKysgICAgdWludDMyX3Qgdmlu dGZfc2lkX21hdGNoW1RFR1JBMjQxX0NNRFFWX01BWF9OVU1fU0lEXTsKKysgICAgdWludDMyX3Qg dmludGZfc2lkX3JlcGxhY2VbVEVHUkEyNDFfQ01EUVZfTUFYX05VTV9TSURdOworKyAgICB1aW50 MzJfdCB2aW50Zl9jbWRxX2Vycl9tYXBbNF07CisgfSBUZWdyYTI0MUNNRFFWOworIAorKy8qIENN RFEtViBDb25maWcgcGFnZSByZWdpc3RlcnMgKG9mZnNldCAweDAwMDAwKSAqLworK1JFRzMyKENP TkZJRywgMHgwKQorK0ZJRUxEKENPTkZJRywgQ01EUVZfRU4sIDAsIDEpCisrRklFTEQoQ09ORklH LCBDTURRVl9QRVJfQ01EX09GRlNFVCwgMSwgMykKKytGSUVMRChDT05GSUcsIENNRFFfTUFYX0NM S19CQVRDSCwgNCwgOCkKKytGSUVMRChDT05GSUcsIENNRFFfTUFYX0NNRF9CQVRDSCwgMTIsIDgp CisrRklFTEQoQ09ORklHLCBDT05TX0RSQU1fRU4sIDIwLCAxKQorKworK1JFRzMyKFBBUkFNLCAw eDQpCisrRklFTEQoUEFSQU0sIENNRFFWX1ZFUiwgMCwgNCkKKytGSUVMRChQQVJBTSwgQ01EUVZf TlVNX0NNRFFfTE9HMiwgNCwgNCkKKytGSUVMRChQQVJBTSwgQ01EUVZfTlVNX1ZJX0xPRzIsIDgs IDQpCisrRklFTEQoUEFSQU0sIENNRFFWX05VTV9TSURfUEVSX1ZJX0xPRzIsIDEyLCA0KQorKwor K1JFRzMyKFNUQVRVUywgMHg4KQorK0ZJRUxEKFNUQVRVUywgQ01EUVZfRU5BQkxFRCwgMCwgMSkK KysKKysvKiBTTU1VX0NNRFFWX1ZJX0VSUl9NQVBfMC8xIGRlZmluaXRpb25zICovCisrI2RlZmlu ZSBBX1ZJX0VSUl9NQVBfMCAweDE0CisrI2RlZmluZSBBX1ZJX0VSUl9NQVBfMSAweDE4CisrI2Rl ZmluZSBWX1ZJX0VSUl9NQVBfTk9fRVJST1IgKDApCisrI2RlZmluZSBWX1ZJX0VSUl9NQVBfRVJS T1IgKDEpCisrCisrLyogU01NVV9DTURRVl9WSV9JTlRfTUFTS18wLzEgZGVmaW5pdGlvbnMgKi8K KysjZGVmaW5lIEFfVklfSU5UX01BU0tfMCAweDFjCisrI2RlZmluZSBBX1ZJX0lOVF9NQVNLXzEg MHgyMAorKyNkZWZpbmUgVl9WSV9JTlRfTUFTS19OT1RfTUFTS0VEICgwKQorKyNkZWZpbmUgVl9W SV9JTlRfTUFTS19NQVNLRUQgKDEpCisrCisrLyogU01NVV9DTURRVl9DTURRX0VSUl9NQVBfMC0z IGRlZmluaXRpb25zICovCisrI2RlZmluZSBBX0NNRFFfRVJSX01BUF8wIDB4MjQKKysjZGVmaW5l IEFfQ01EUV9FUlJfTUFQXzEgMHgyOAorKyNkZWZpbmUgQV9DTURRX0VSUl9NQVBfMiAweDJjCisr I2RlZmluZSBBX0NNRFFfRVJSX01BUF8zIDB4MzAKKysKKysvKgorKyAqIENNRFFfQUxMT0NfTUFQ OiBvbmUgZW50cnkgcGVyIHBoeXNpY2FsIFZDTURRLiBIYXJkd2FyZSBzdXBwb3J0cyB1cCB0byAx MjgKKysgKiBlbnRyaWVzIChDTURRVl9OVU1fQ01EUV9MT0cyPTcpLCBidXQgUUVNVSBvbmx5IGV4 cG9zZXMKKysgKiBURUdSQTI0MV9DTURRVl9NQVhfQ01EUSAoPTIpIFZDTURRcyBwZXIgVk0gc28g b25seSBlbnRyaWVzIDAgYW5kIDEgYXJlCisrICogZGVmaW5lZCBoZXJlLgorKyAqLworKy8qIDIg aWRlbnRpY2FsIHJlZ2lzdGVyIGVudHJpZXMgKi8KKysjZGVmaW5lIFNNTVVfQ01EUVZfQ01EUV9B TExPQ19NQVBfKGkpICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIFJFRzMyKENNRFFfQUxM T0NfTUFQXyMjaSwgMHgyMDAgKyBpICogNCkgICAgICAgICAgICAgICAgXAorKyAgICBGSUVMRChD TURRX0FMTE9DX01BUF8jI2ksIEFMTE9DLCAwLCAxKSAgICAgICAgICAgICAgICAgIFwKKysgICAg RklFTEQoQ01EUV9BTExPQ19NQVBfIyNpLCBMVkNNRFEsIDEsIDcpICAgICAgICAgICAgICAgICBc CisrICAgIEZJRUxEKENNRFFfQUxMT0NfTUFQXyMjaSwgVklSVF9JTlRGX0lORFgsIDE1LCA2KQor KworK1NNTVVfQ01EUVZfQ01EUV9BTExPQ19NQVBfKDApCisrU01NVV9DTURRVl9DTURRX0FMTE9D X01BUF8oMSkKKysKKysvKiBTTU1VX0NNRFFWX1ZJTlRGMCByZWdpc3RlcnMgKG9ubHkgVklOVEYw IGlzIGV4cG9zZWQgdG8gdGhlIGd1ZXN0KSAqLworK1JFRzMyKFZJTlRGMF9DT05GSUcsIDB4MTAw MCkKKytGSUVMRChWSU5URjBfQ09ORklHLCBFTkFCTEUsIDAsIDEpCisrRklFTEQoVklOVEYwX0NP TkZJRywgVk1JRCwgMSwgMTYpCisrRklFTEQoVklOVEYwX0NPTkZJRywgSFlQX09XTiwgMTcsIDEp CisrCisrUkVHMzIoVklOVEYwX1NUQVRVUywgMHgxMDA0KQorK0ZJRUxEKFZJTlRGMF9TVEFUVVMs IEVOQUJMRV9PSywgMCwgMSkKKytGSUVMRChWSU5URjBfU1RBVFVTLCBTVEFUVVMsIDEsIDMpCisr RklFTEQoVklOVEYwX1NUQVRVUywgVklfTlVNX0xWQ01EUSwgMTYsIDgpCisrCisrI2RlZmluZSBW X1ZJTlRGX1NUQVRVU19OT19FUlJPUiAgICAoMCA8PCAxKQorKyNkZWZpbmUgVl9WSU5URl9TVEFU VVNfVkNNRFFfRVJST1IgKDEgPDwgMSkKKysKKysvKgorKyAqIFNNTVVfQ01EUVZfVklOVEYwX1NJ RF9NQVRDSC9fUkVQTEFDRTogMTYgZW50cmllcyBwZXIgVklOVEYKKysgKiAoQ01EUVZfTlVNX1NJ RF9QRVJfVklfTE9HMj00KS4gT25seSBfMCBhbmQgXzE1IGFyZSBkZWZpbmVkLAorKyAqIHVzZWQg YXMgc3dpdGNoIGNhc2UgcmFuZ2UgYm91bmRzLgorKyAqLworK1JFRzMyKFZJTlRGMF9TSURfTUFU Q0hfMCwgMHgxMDQwKQorK0ZJRUxEKFZJTlRGMF9TSURfTUFUQ0hfMCwgRU5BQkxFLCAwLCAxKQor K0ZJRUxEKFZJTlRGMF9TSURfTUFUQ0hfMCwgVklSVF9TSUQsIDEsIDIwKQorKyNkZWZpbmUgQV9W SU5URjBfU0lEX01BVENIXzE1ICAoQV9WSU5URjBfU0lEX01BVENIXzAgKyAxNSAqIDQpCisrCisr UkVHMzIoVklOVEYwX1NJRF9SRVBMQUNFXzAsIDB4MTA4MCkKKytGSUVMRChWSU5URjBfU0lEX1JF UExBQ0VfMCwgUEhZU19TSUQsIDAsIDIwKQorKyNkZWZpbmUgQV9WSU5URjBfU0lEX1JFUExBQ0Vf MTUgKEFfVklOVEYwX1NJRF9SRVBMQUNFXzAgKyAxNSAqIDQpCisrCisrLyoKKysgKiBTTU1VX0NN RFFWX1ZJTlRGMF9MVkNNRFFfRVJSX01BUDogNCByZWdpc3RlcnMgcGVyIFZJTlRGIGNvdmVyaW5n IDMyIGxvZ2ljYWwKKysgKiBWQ01EUXMgZWFjaC4gV2l0aCBURUdSQTI0MV9DTURRVl9NQVhfQ01E UT0yLCBvbmx5IE1BUF8wIGJpdHMgWzE6MF0gY2FycnkKKysgKiBlcnJvciBzdGF0ZS4gTUFQXzEu Lk1BUF8zIGFsd2F5cyByZWFkIGFzIDAuIE9ubHkgXzAgYW5kIF8zIGFyZSBkZWZpbmVkLAorKyAq IHVzZWQgYXMgc3dpdGNoIGNhc2UgcmFuZ2UgYm91bmRzLgorKyAqLworK1JFRzMyKFZJTlRGMF9M VkNNRFFfRVJSX01BUF8wLCAweDEwYzApCisrRklFTEQoVklOVEYwX0xWQ01EUV9FUlJfTUFQXzAs IExWQ01EUV9FUlJfTUFQLCAwLCAzMikKKysjZGVmaW5lIEFfVklOVEYwX0xWQ01EUV9FUlJfTUFQ XzMgKEFfVklOVEYwX0xWQ01EUV9FUlJfTUFQXzAgKyAzICogNCkKKysKKyBjb25zdCBTTU1VdjNB Y2NlbENtZHF2T3BzICp0ZWdyYTI0MV9jbWRxdl9nZXRfb3BzKHZvaWQpOworIAorICNlbmRpZiAv KiBIV19BUk1fVEVHUkEyNDFfQ01EUVZfSCAqLworZGlmZiAtLWdpdCBhL2h3L2FybS90cmFjZS1l dmVudHMgYi9ody9hcm0vdHJhY2UtZXZlbnRzCitpbmRleCAzNDU3NTM2ZmIwLi44YzYxZDY2YTI2 IDEwMDY0NAorLS0tIGEvaHcvYXJtL3RyYWNlLWV2ZW50cworKysrIGIvaHcvYXJtL3RyYWNlLWV2 ZW50cworQEAgLTcyLDYgKzcyLDEwIEBAIHNtbXV2M19hY2NlbF91bnNldF9pb21tdV9kZXZpY2Uo aW50IGRldmZuLCB1aW50MzJfdCBkZXZpZCkgImRldmZuPTB4JXggKGlkZXYgZGV2Cisgc21tdXYz X2FjY2VsX3RyYW5zbGF0ZV9zdGUodWludDMyX3QgdnNpZCwgdWludDMyX3QgaHdwdF9pZCwgdWlu dDY0X3Qgc3RlXzEsIHVpbnQ2NF90IHN0ZV8wKSAidlNJRD0weCV4IGh3cHRfaWQ9MHgleCBzdGU9 JSJQUkl4NjQiOiUiUFJJeDY0Cisgc21tdXYzX2FjY2VsX2luc3RhbGxfc3RlKHVpbnQzMl90IHZz aWQsIGNvbnN0IGNoYXIgKiB0eXBlLCB1aW50MzJfdCBod3B0X2lkKSAidlNJRD0weCV4IHN0ZSB0 eXBlPSVzIGh3cHRfaWQ9MHgleCIKKyAKKysjIHRlZ3JhMjQxLWNtZHF2CisrdGVncmEyNDFfY21k cXZfcmVhZF9tbWlvKHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgdmFsLCB1bnNpZ25lZCBzaXpl KSAib2Zmc2V0OiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQiIHNpemU6IDB4JXgiCisrdGVn cmEyNDFfY21kcXZfd3JpdGVfbW1pbyh1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHZhbCwgdW5z aWduZWQgc2l6ZSkgIm9mZnNldDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0IiBzaXplOiAw eCV4IgorKworICMgc3Ryb25nYXJtLmMKKyBzdHJvbmdhcm1fdWFydF91cGRhdGVfcGFyYW1ldGVy cyhjb25zdCBjaGFyICpsYWJlbCwgaW50IHNwZWVkLCBjaGFyIHBhcml0eSwgaW50IGRhdGFfYml0 cywgaW50IHN0b3BfYml0cykgIiVzIHNwZWVkPSVkIHBhcml0eT0lYyBkYXRhPSVkIHN0b3A9JWQi Cisgc3Ryb25nYXJtX3NzcF9yZWFkX3VuZGVycnVuKHZvaWQpICJTU1AgcnggdW5kZXJydW4iCist LSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1FbXVs YXRlLVZDTURRLXJlZ2lzdGVyLXJlYWRzLnBhdGNoIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRx di1FbXVsYXRlLVZDTURRLXJlZ2lzdGVyLXJlYWRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjdkZGI0YWQKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXRl Z3JhMjQxLWNtZHF2LUVtdWxhdGUtVkNNRFEtcmVnaXN0ZXItcmVhZHMucGF0Y2gKQEAgLTAsMCAr MSw0NTEgQEAKK0Zyb20gNDFjZDBiZTZlYzIwMzgyZGY5OWQyZTEzZTE4MTYwMzQ1MmY3YTIwMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTozNyArMDEwMAorU3ViamVjdDog W1BBVENIIDA5NS8xMTFdIGh3L2FybS90ZWdyYTI0MS1jbWRxdjogRW11bGF0ZSBWQ01EUSByZWdp c3RlciByZWFkcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRo b3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDog NTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAor UkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBS SEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xn QHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4K K1JILUNvbW1pdDogWzk1LzExMV0gMDBhODM5NzIyNzZlOWVhZGNjNDhlZmExZmU0NTNkMTk3YTVh Yzg3MyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0 bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworVGVncmEyNDEgQ01EUVYgZXhwb3NlcyBw ZXItVkNNRFEgcmVnaXN0ZXIgd2luZG93cyB0aHJvdWdoIHR3byBNTUlPCithcGVydHVyZXM6CisK KyAgRGlyZWN0IFZDTURRIGFwZXJ0dXJlICgweDEwMDAwLzB4MjAwMDApOiBWQ01EUSBQYWdlMC9Q YWdlMQorICBWSU5URiBsb2dpY2FsIGFwZXJ0dXJlICgweDMwMDAwLzB4NDAwMDApOiBWSU5URjAg TFZDTURRIFBhZ2UwL1BhZ2UxCisKK0JvdGggYXBlcnR1cmVzIGFyZSBoYXJkd2FyZSBhbGlhc2Vz IG9mIHRoZSBzYW1lIHVuZGVybHlpbmcgcmVnaXN0ZXJzOgorCisgIFBhZ2UgMCAoY29udHJvbC9z dGF0dXMpOiBDT05TX0lORFgsIFBST0RfSU5EWCwgQ09ORklHLCBTVEFUVVMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBHRVJST1IsIEdFUlJPUk4KKyAgUGFnZSAxIChiYXNlL0RSQU0pOiAg ICAgIEJBU0VfTC9ILCBDT05TX0lORFhfQkFTRV9EUkFNX0wvSAorCitUaGUgZGlyZWN0IGFwZXJ0 dXJlIFBhZ2UgMCBpcyBwcm9ncmFtbWFibGUgYXQgYW55IHRpbWUgc28gbG9uZyBhcworQ01EUVZf RU4gaXMgZW5hYmxlZC4gVGhlIFZJTlRGIChsb2dpY2FsKSBhcGVydHVyZSBQYWdlIDAgaXMKK3By b2dyYW1tYWJsZSBvbmx5IG9uY2UgU1cgaGFzIG1hcHBlZCBhIFZDTURRIHRvIGEgVklOVEY7IHRo ZQorImxvZ2ljYWwiIHZpZXcgaXMgbG9jYWwgdG8gdGhhdCBWSU5URi4KKworQWRkIHJlYWQgZW11 bGF0aW9uIGZvciBib3RoIGFwZXJ0dXJlcywgYmFja2VkIGJ5IGEgc2luZ2xlIHBlci1WQ01EUQor cmVnaXN0ZXIgY2FjaGUuIFZJTlRGIGFwZXJ0dXJlIHJlYWRzIGFyZSB0cmFuc2xhdGVkIHRvIHRo ZWlyCitlcXVpdmFsZW50IGRpcmVjdC1hcGVydHVyZSBvZmZzZXQgYW5kIHNlcnZlZCBmcm9tIHRo ZSBzYW1lIGNhY2hlZAorc3RhdGUuCisKK1BlciB0aGUgQ01EUVYgYXJjaGl0ZWN0dXJlLCBhIFZD TURRIG11c3QgYmUgYWxsb2NhdGVkIHRvIGEgVmlydHVhbAorSW50ZXJmYWNlIGJlZm9yZSBpdCBp cyB1c2VkIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIFNNTVUuIFVudGlsIHRoYXQKK2FsbG9jYXRp b24gaGFwcGVucywgcmVhZHMgcmV0dXJuIGNhY2hlZCByZWdpc3RlciBzdGF0ZSB3aXRoIG5vIEhX CitpbnRlcmFjdGlvbi4gU3Vic2VxdWVudCBwYXRjaGVzIHdpcmUgdXAgSU9NTVVfSFdfUVVFVUVf QUxMT0MsIG1tYXAKK3RoZSBob3N0IFZJTlRGIFBhZ2UgMCwgYW5kIGluc3RhbGwgaXQgaW50byBn dWVzdCBNTUlPOyBhZnRlciB0aGF0LAorUGFnZSAwIHJlYWRzIGZyb20gZWl0aGVyIGFwZXJ0dXJl IGFyZSBzZXJ2ZWQgZnJvbSB0aGUgaGFyZHdhcmUtYmFja2VkCittbWFwJ2QgcGFnZSBpbnN0ZWFk IG9mIHRoZSBjYWNoZS4gUGFnZSAxIGlzIGFsc28gYSBoYXJkd2FyZSBhbGlhcywKK2J1dCB0aGUg a2VybmVsIG9ubHkgZXhwb3NlcyBtbWFwIGZvciBQYWdlIDAsIHNvIFBhZ2UgMSByZWFkcyBhbHdh eXMKK3RyYXAgdG8gUUVNVSBhbmQgYXJlIHNlcnZlZCBmcm9tIGNhY2hlLgorCitTaWduZWQtb2Zm LWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4g PG5pY29saW5jQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRo b0BudmlkaWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTE3LXNrb2xv dGh1bXRob0BudmlkaWEuY29tCitDby1kZXZlbG9wZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNr b2xvdGh1bXRob0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxw ZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwZDA2 YjFjYzIwNTBmYjhlZmRiOWYwMjMzNDRiMmU1NTEyNTAwM2YwKQorU2lnbmVkLW9mZi1ieTogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3RlZ3JhMjQxLWNt ZHF2LmMgfCAxMDMgKysrKysrKysrKysrKysrKysrKworIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5o IHwgMjE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBody9hcm0v dHJhY2UtZXZlbnRzICAgICB8ICAgMiArCisgMyBmaWxlcyBjaGFuZ2VkLCAzMjEgaW5zZXJ0aW9u cygrKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgYi9ody9hcm0vdGVn cmEyNDEtY21kcXYuYworaW5kZXggODk1MGQ1MTUzYi4uMmRmZDM3N2VlOSAxMDA2NDQKKy0tLSBh L2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jCisrKysgYi9ody9hcm0vdGVncmEyNDEtY21kcXYuYwor QEAgLTE2LDYgKzE2LDc5IEBACisgI2luY2x1ZGUgInRlZ3JhMjQxLWNtZHF2LmgiCisgI2luY2x1 ZGUgInRyYWNlLmgiCisgCisrLyoKKysgKiBSZWFkIGEgVkNNRFEgUGFnZSAwIHJlZ2lzdGVyIChj b250cm9sL3N0YXR1cykgdXNpbmcgVkNNRFEwXyogb2Zmc2V0cy4KKysgKgorKyAqIFRoZSBjYWxs ZXIgbm9ybWFsaXplcyB0aGUgTU1JTyBvZmZzZXQgc3VjaCB0aGF0IEBvZmZzZXQwIGFsd2F5cyBy ZWZlcnMKKysgKiB0byBhIFZDTURRMF8qIHJlZ2lzdGVyLCB3aGlsZSBAaW5kZXggc2VsZWN0cyB0 aGUgVkNNRFEgaW5zdGFuY2UuCisrICovCisrc3RhdGljIHVpbnQ2NF90IHRlZ3JhMjQxX2NtZHF2 X3JlYWRfdmNtZHFfcGFnZTAoVGVncmEyNDFDTURRViAqY21kcXYsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIG9mZnNldDAsIGludCBpbmRl eCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IGRpcmVjdCkKKyt7CisrICAgIHVpbnQ2NF90IHZhbCA9IDA7CisrCisrICAgIHN3aXRjaCAob2Zm c2V0MCkgeworKyAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWDoKKysgICAgICAgIHZhbCA9IGNt ZHF2LT52Y21kcV9jb25zX2luZHhbaW5kZXhdOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2Ug QV9WQ01EUTBfUFJPRF9JTkRYOgorKyAgICAgICAgdmFsID0gY21kcXYtPnZjbWRxX3Byb2RfaW5k eFtpbmRleF07CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9DT05GSUc6Cisr ICAgICAgICB2YWwgPSBjbWRxdi0+dmNtZHFfY29uZmlnW2luZGV4XTsKKysgICAgICAgIGJyZWFr OworKyAgICBjYXNlIEFfVkNNRFEwX1NUQVRVUzoKKysgICAgICAgIHZhbCA9IGNtZHF2LT52Y21k cV9zdGF0dXNbaW5kZXhdOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQV9WQ01EUTBfR0VS Uk9SOgorKyAgICAgICAgdmFsID0gY21kcXYtPnZjbWRxX2dlcnJvcltpbmRleF07CisrICAgICAg ICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9HRVJST1JOOgorKyAgICAgICAgdmFsID0gY21k cXYtPnZjbWRxX2dlcnJvcm5baW5kZXhdOworKyAgICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6 CisrICAgICAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwKKysgICAgICAgICAgICAgICAgICAg ICAgIiVzIHVuaGFuZGxlZCByZWFkIGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorKyAgICAg ICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0MCk7CisrICAgIH0KKysgICAgdHJhY2Vf dGVncmEyNDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMChpbmRleCwgZGlyZWN0ID8gImRpcmVjdCIg OiAidmkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dDAsIHZhbCk7CisrICAgIHJldHVybiB2YWw7CisrfQorKworKy8qCisrICogUmVhZCBhIFZDTURR IFBhZ2UgMSByZWdpc3RlciAoYmFzZSAvIERSQU0gYWRkcmVzcykgdXNpbmcgVkNNRFEwXyogb2Zm c2V0cy4KKysgKi8KKytzdGF0aWMgdWludDY0X3QgdGVncmEyNDFfY21kcXZfcmVhZF92Y21kcV9w YWdlMShUZWdyYTI0MUNNRFFWICpjbWRxdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBod2FkZHIgb2Zmc2V0MCwgaW50IGluZGV4LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlyZWN0KQorK3sK KysgICAgdWludDY0X3QgdmFsID0gMDsKKysKKysgICAgc3dpdGNoIChvZmZzZXQwKSB7CisrICAg IGNhc2UgQV9WQ01EUTBfQkFTRV9MOgorKyAgICAgICAgdmFsID0gY21kcXYtPnZjbWRxX2Jhc2Vb aW5kZXhdOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQV9WQ01EUTBfQkFTRV9IOgorKyAg ICAgICAgdmFsID0gY21kcXYtPnZjbWRxX2Jhc2VbaW5kZXhdID4+IDMyOworKyAgICAgICAgYnJl YWs7CisrICAgIGNhc2UgQV9WQ01EUTBfQ09OU19JTkRYX0JBU0VfRFJBTV9MOgorKyAgICAgICAg dmFsID0gY21kcXYtPnZjbWRxX2NvbnNfaW5keF9iYXNlW2luZGV4XTsKKysgICAgICAgIGJyZWFr OworKyAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWF9CQVNFX0RSQU1fSDoKKysgICAgICAgIHZh bCA9IGNtZHF2LT52Y21kcV9jb25zX2luZHhfYmFzZVtpbmRleF0gPj4gMzI7CisrICAgICAgICBi cmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLAor KyAgICAgICAgICAgICAgICAgICAgICAiJXMgdW5oYW5kbGVkIHJlYWQgYWNjZXNzIGF0IDB4JSIg UFJJeDY0ICJcbiIsCisrICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBvZmZzZXQwKTsK KysgICAgfQorKyAgICB0cmFjZV90ZWdyYTI0MV9jbWRxdl9yZWFkX3ZjbWRxX3BhZ2UxKGluZGV4 LCBkaXJlY3QgPyAiZGlyZWN0IiA6ICJ2aSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0MCwgdmFsKTsKKysgICAgcmV0dXJuIHZhbDsKKyt9CisrCisg c3RhdGljIHVpbnQ2NF90IHRlZ3JhMjQxX2NtZHF2X2NvbmZpZ192aW50Zl9yZWFkKFRlZ3JhMjQx Q01EUVYgKmNtZHF2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBod2FkZHIgb2Zmc2V0KQorIHsKK0BAIC05Myw2ICsxNjYsNyBAQCBzdGF0aWMgdWlu dDY0X3QgdGVncmEyNDFfY21kcXZfcmVhZF9tbWlvKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIG9mZnNl dCwKKyB7CisgICAgIFRlZ3JhMjQxQ01EUVYgKmNtZHF2ID0gKFRlZ3JhMjQxQ01EUVYgKilvcGFx dWU7CisgICAgIHVpbnQ2NF90IHZhbCA9IDA7CisrICAgIGludCBpbmRleDsKKyAKKyAgICAgaWYg KG9mZnNldCA+PSBURUdSQTI0MV9DTURRVl9JT19MRU4pIHsKKyAgICAgICAgIHFlbXVfbG9nX21h c2soTE9HX1VOSU1QLAorQEAgLTEyNiw2ICsyMDAsMzUgQEAgc3RhdGljIHVpbnQ2NF90IHRlZ3Jh MjQxX2NtZHF2X3JlYWRfbW1pbyh2b2lkICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsCisgICAgIGNh c2UgQV9WSU5URjBfQ09ORklHIC4uLiBBX1ZJTlRGMF9MVkNNRFFfRVJSX01BUF8zOgorICAgICAg ICAgdmFsID0gdGVncmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3JlYWQoY21kcXYsIG9mZnNldCk7 CisgICAgICAgICBicmVhazsKKysgICAgY2FzZSBBX1ZJX1ZDTURRMF9DT05TX0lORFggLi4uIEFf VklfVkNNRFExX0dFUlJPUk46CisrICAgICAgICAvKgorKyAgICAgICAgICogVklOVEYgUGFnZTAg cmVnaXN0ZXJzIGFyZSBoYXJkd2FyZSBhbGlhc2VzIG9mIFZDTURRIFBhZ2UwIHJlZ2lzdGVycy4K KysgICAgICAgICAqIFRyYW5zbGF0ZSB0aGUgVklOVEYgYXBlcnR1cmUgb2Zmc2V0IHRvIGl0cyBW Q01EUSBQYWdlMCBlcXVpdmFsZW50CisrICAgICAgICAgKiBiZWZvcmUgZGlzcGF0Y2hpbmcgdG8g dGhlIFBhZ2UgMCBoZWxwZXIuCisrICAgICAgICAgKi8KKysgICAgICAgIG9mZnNldCAtPSBDTURR Vl9WSU5URl9QQUdFMF9CQVNFIC0gQ01EUVZfVkNNRFFfUEFHRTBfQkFTRTsKKysgICAgICAgIGlu ZGV4ID0gKG9mZnNldCAtIENNRFFWX1ZDTURRX1BBR0UwX0JBU0UpIC8gQ01EUVZfVkNNRFFfU1RS SURFOworKyAgICAgICAgcmV0dXJuIHRlZ3JhMjQxX2NtZHF2X3JlYWRfdmNtZHFfcGFnZTAoY21k cXYsCisrICAgICAgICAgICAgICAgIG9mZnNldCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURF LCBpbmRleCwgZmFsc2UpOworKyAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWCAuLi4gQV9WQ01E UTFfR0VSUk9STjoKKysgICAgICAgIC8qCisrICAgICAgICAgKiBEZWNvZGUgYSBwZXItVkNNRFEg UGFnZSAwIGFjY2Vzcy4gRWFjaCBWQ01EUSBvY2N1cGllcyBhCisrICAgICAgICAgKiBDTURRVl9W Q01EUV9TVFJJREUtYnl0ZSB3aW5kb3c7IGV4dHJhY3QgdGhlIGluZGV4IGFuZCBub3JtYWxpemUK KysgICAgICAgICAqIHRvIHRoZSBWQ01EUTBfKiBvZmZzZXQgYmVmb3JlIGNhbGxpbmcgdGhlIFBh Z2UgMCBoZWxwZXIuCisrICAgICAgICAgKi8KKysgICAgICAgIGluZGV4ID0gKG9mZnNldCAtIENN RFFWX1ZDTURRX1BBR0UwX0JBU0UpIC8gQ01EUVZfVkNNRFFfU1RSSURFOworKyAgICAgICAgcmV0 dXJuIHRlZ3JhMjQxX2NtZHF2X3JlYWRfdmNtZHFfcGFnZTAoY21kcXYsCisrICAgICAgICAgICAg ICAgIG9mZnNldCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFLCBpbmRleCwgdHJ1ZSk7Cisr ICAgIGNhc2UgQV9WSV9WQ01EUTBfQkFTRV9MIC4uLiBBX1ZJX1ZDTURRMV9DT05TX0lORFhfQkFT RV9EUkFNX0g6CisrICAgICAgICAvKiBTYW1lIFZJTlRGLXRvLVZDTURRIHRyYW5zbGF0aW9uIGFz IFZJTlRGIFBhZ2UwIGNhc2UgYWJvdmUuICovCisrICAgICAgICBvZmZzZXQgLT0gQ01EUVZfVklO VEZfUEFHRTFfQkFTRSAtIENNRFFWX1ZDTURRX1BBR0UxX0JBU0U7CisrICAgICAgICBpbmRleCA9 IChvZmZzZXQgLSBDTURRVl9WQ01EUV9QQUdFMV9CQVNFKSAvIENNRFFWX1ZDTURRX1NUUklERTsK KysgICAgICAgIHJldHVybiB0ZWdyYTI0MV9jbWRxdl9yZWFkX3ZjbWRxX3BhZ2UxKGNtZHF2LAor KyAgICAgICAgICAgICAgICBvZmZzZXQgLSBpbmRleCAqIENNRFFWX1ZDTURRX1NUUklERSwgaW5k ZXgsIGZhbHNlKTsKKysgICAgY2FzZSBBX1ZDTURRMF9CQVNFX0wgLi4uIEFfVkNNRFExX0NPTlNf SU5EWF9CQVNFX0RSQU1fSDoKKysgICAgICAgIGluZGV4ID0gKG9mZnNldCAtIENNRFFWX1ZDTURR X1BBR0UxX0JBU0UpIC8gQ01EUVZfVkNNRFFfU1RSSURFOworKyAgICAgICAgcmV0dXJuIHRlZ3Jh MjQxX2NtZHF2X3JlYWRfdmNtZHFfcGFnZTEoY21kcXYsCisrICAgICAgICAgICAgICAgIG9mZnNl dCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFLCBpbmRleCwgdHJ1ZSk7CisgICAgIGRlZmF1 bHQ6CisgICAgICAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwgIiVzIHVuaGFuZGxlZCByZWFk IGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXywgb2Zmc2V0KTsKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEtY21kcXYuaCBiL2h3 L2FybS90ZWdyYTI0MS1jbWRxdi5oCitpbmRleCA0Yjg2YWEwMWQzLi5jYzFiNTVhNWUxIDEwMDY0 NAorLS0tIGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKKysrKyBiL2h3L2FybS90ZWdyYTI0MS1j bWRxdi5oCitAQCAtMzAsNiArMzAsMTMgQEAKKyAgKi8KKyAjZGVmaW5lIFRFR1JBMjQxX0NNRFFW X0lPX0xFTiAweDUwMDAwCisgCisrLyogQ01EUVYgTU1JTyBhcGVydHVyZSBiYXNlcyBhbmQgVkNN RFEgc3RyaWRlICovCisrI2RlZmluZSBDTURRVl9WQ01EUV9QQUdFMF9CQVNFICAweDEwMDAwICAv KiBDTURRVl9DTURRX0JBU0UgKi8KKysjZGVmaW5lIENNRFFWX1ZDTURRX1BBR0UxX0JBU0UgIDB4 MjAwMDAKKysjZGVmaW5lIENNRFFWX1ZJTlRGX1BBR0UwX0JBU0UgIDB4MzAwMDAgIC8qIENNRFFW X1ZJX0NNRFFfQkFTRSAqLworKyNkZWZpbmUgQ01EUVZfVklOVEZfUEFHRTFfQkFTRSAgMHg0MDAw MAorKyNkZWZpbmUgQ01EUVZfVkNNRFFfU1RSSURFICAgICAgMHg4MAorKworICNkZWZpbmUgVklO VEZfUEFHRV9TSVpFIDB4MTAwMDAKKyAKKyBzdHJ1Y3QgaW9tbXVfdmlvbW11X3RlZ3JhMjQxX2Nt ZHF2OworQEAgLTU3LDYgKzY0LDE5IEBAIHR5cGVkZWYgc3RydWN0IFRlZ3JhMjQxQ01EUVYgewor ICAgICB1aW50MzJfdCB2aW50Zl9zaWRfbWF0Y2hbVEVHUkEyNDFfQ01EUVZfTUFYX05VTV9TSURd OworICAgICB1aW50MzJfdCB2aW50Zl9zaWRfcmVwbGFjZVtURUdSQTI0MV9DTURRVl9NQVhfTlVN X1NJRF07CisgICAgIHVpbnQzMl90IHZpbnRmX2NtZHFfZXJyX21hcFs0XTsKKysgICAgLyoKKysg ICAgICogVkNNRFEgcmVnaXN0ZXIgY2FjaGUuIFRoZSBkaXJlY3QgKFZDTURRIGFwZXJ0dXJlKSBh bmQgbG9naWNhbAorKyAgICAgKiAoVklOVEYgYXBlcnR1cmUpIHZpZXdzIGFyZSBoYXJkd2FyZSBh bGlhc2VzOyBib3RoIGFyZSBzZXJ2ZWQgZnJvbQorKyAgICAgKiB0aGlzIHNpbmdsZSBjYWNoZWQg Y29weS4KKysgICAgICovCisrICAgIHVpbnQzMl90IHZjbWRxX2NvbnNfaW5keFtURUdSQTI0MV9D TURRVl9NQVhfQ01EUV07CisrICAgIHVpbnQzMl90IHZjbWRxX3Byb2RfaW5keFtURUdSQTI0MV9D TURRVl9NQVhfQ01EUV07CisrICAgIHVpbnQzMl90IHZjbWRxX2NvbmZpZ1tURUdSQTI0MV9DTURR Vl9NQVhfQ01EUV07CisrICAgIHVpbnQzMl90IHZjbWRxX3N0YXR1c1tURUdSQTI0MV9DTURRVl9N QVhfQ01EUV07CisrICAgIHVpbnQzMl90IHZjbWRxX2dlcnJvcltURUdSQTI0MV9DTURRVl9NQVhf Q01EUV07CisrICAgIHVpbnQzMl90IHZjbWRxX2dlcnJvcm5bVEVHUkEyNDFfQ01EUVZfTUFYX0NN RFFdOworKyAgICB1aW50NjRfdCB2Y21kcV9iYXNlW1RFR1JBMjQxX0NNRFFWX01BWF9DTURRXTsK KysgICAgdWludDY0X3QgdmNtZHFfY29uc19pbmR4X2Jhc2VbVEVHUkEyNDFfQ01EUVZfTUFYX0NN RFFdOworIH0gVGVncmEyNDFDTURRVjsKKyAKKyAvKiBDTURRLVYgQ29uZmlnIHBhZ2UgcmVnaXN0 ZXJzIChvZmZzZXQgMHgwMDAwMCkgKi8KK0BAIC0xNDgsNiArMTY4LDIwMiBAQCBSRUczMihWSU5U RjBfTFZDTURRX0VSUl9NQVBfMCwgMHgxMGMwKQorIEZJRUxEKFZJTlRGMF9MVkNNRFFfRVJSX01B UF8wLCBMVkNNRFFfRVJSX01BUCwgMCwgMzIpCisgI2RlZmluZSBBX1ZJTlRGMF9MVkNNRFFfRVJS X01BUF8zIChBX1ZJTlRGMF9MVkNNRFFfRVJSX01BUF8wICsgMyAqIDQpCisgCisrLyoKKysgKiBE aXJlY3QgVkNNRFEgYXBlcnR1cmUgcmVnaXN0ZXIgd2luZG93cy4KKysgKgorKyAqIFBhZ2UgMCBA IENNRFFWX1ZDTURRX1BBR0UwX0JBU0U6IFZDTURRIGNvbnRyb2wgYW5kIHN0YXR1cyByZWdpc3Rl cnMuCisrICogUGFnZSAxIEAgQ01EUVZfVkNNRFFfUEFHRTFfQkFTRTogVkNNRFEgYmFzZSBhbmQg RFJBTSBhZGRyZXNzIHJlZ2lzdGVycy4KKysgKgorKyAqIEVhY2ggVkNNRFEgb2NjdXBpZXMgYSBD TURRVl9WQ01EUV9TVFJJREUtYnl0ZSBzbG90IHdpdGhpbiBpdHMgcGFnZS4KKysgKi8KKysKKysv KiAtLS0gUGFnZSAwIHJlZ2lzdGVyIG1hY3JvcyAtLS0gKi8KKysjZGVmaW5lIFNNTVVfQ01EUVZf VkNNRFFpX0NPTlNfSU5EWF8oaSkgICAgICAgICAgICAgICAgICAgICBcCisrICAgIFJFRzMyKFZD TURRIyNpIyNfQ09OU19JTkRYLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAg ICAgICBDTURRVl9WQ01EUV9QQUdFMF9CQVNFICsgaSAqIENNRFFWX1ZDTURRX1NUUklERSkgIFwK KysgICAgRklFTEQoVkNNRFEjI2kjI19DT05TX0lORFgsIFJELCAwLCAyMCkgICAgICAgICAgICAg ICAgICBcCisrICAgIEZJRUxEKFZDTURRIyNpIyNfQ09OU19JTkRYLCBFUlIsIDI0LCA3KQorKwor KyNkZWZpbmUgVl9WQ01EUV9DT05TX0lORFhfRVJSX0NFUlJPUl9OT05FICAgICAgICAgMAorKyNk ZWZpbmUgVl9WQ01EUV9DT05TX0lORFhfRVJSX0NFUlJPUl9JTExfT1BDT0RFICAgMQorKyNkZWZp bmUgVl9WQ01EUV9DT05TX0lORFhfRVJSX0NFUlJPUl9BQlQgICAgICAgICAgMgorKyNkZWZpbmUg Vl9WQ01EUV9DT05TX0lORFhfRVJSX0NFUlJPUl9BVENfSU5WX1NZTkMgMworKyNkZWZpbmUgVl9W Q01EUV9DT05TX0lORFhfRVJSX0NFUlJPUl9JTExfQUNDRVNTICAgNAorKworKyNkZWZpbmUgU01N VV9DTURRVl9WQ01EUWlfUFJPRF9JTkRYXyhpKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgICBSRUczMihWQ01EUSMjaSMjX1BST0RfSU5EWCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICAgICAgICBDTURRVl9WQ01EUV9QQUdFMF9CQVNFICsgMHg0ICsgaSAq IENNRFFWX1ZDTURRX1NUUklERSkgXAorKyAgICBGSUVMRChWQ01EUSMjaSMjX1BST0RfSU5EWCwg V1IsIDAsIDIwKQorKworKyNkZWZpbmUgU01NVV9DTURRVl9WQ01EUWlfQ09ORklHXyhpKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUczMihWQ01EUSMjaSMjX0NPTkZJRywg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICBDTURRVl9W Q01EUV9QQUdFMF9CQVNFICsgMHg4ICsgaSAqIENNRFFWX1ZDTURRX1NUUklERSkgXAorKyAgICBG SUVMRChWQ01EUSMjaSMjX0NPTkZJRywgQ01EUV9FTiwgMCwgMSkKKysKKysjZGVmaW5lIFNNTVVf Q01EUVZfVkNNRFFpX1NUQVRVU18oaSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg ICAgUkVHMzIoVkNNRFEjI2kjI19TVEFUVVMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgICAgQ01EUVZfVkNNRFFfUEFHRTBfQkFTRSArIDB4YyArIGkgKiBD TURRVl9WQ01EUV9TVFJJREUpIFwKKysgICAgRklFTEQoVkNNRFEjI2kjI19TVEFUVVMsIENNRFFf RU5fT0ssIDAsIDEpCisrCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZDTURRaV9HRVJST1JfKGkpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUczMihWQ01EUSMjaSMjX0dFUlJP UiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgQ01E UVZfVkNNRFFfUEFHRTBfQkFTRSArIDB4MTAgKyBpICogQ01EUVZfVkNNRFFfU1RSSURFKSBcCisr ICAgIEZJRUxEKFZDTURRIyNpIyNfR0VSUk9SLCBDTURRX0VSUiwgMCwgMSkgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBGSUVMRChWQ01EUSMjaSMjX0dFUlJPUiwgQ09OU19EUkFNX1dSX0FC VF9FUlIsIDEsIDEpICAgICAgICAgIFwKKysgICAgRklFTEQoVkNNRFEjI2kjI19HRVJST1IsIENN RFFfSU5JVF9FUlIsIDIsIDEpCisrCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZDTURRaV9HRVJST1JO XyhpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUczMihWQ01EUSMjaSMj X0dFUlJPUk4sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ICAgQ01EUVZfVkNNRFFfUEFHRTBfQkFTRSArIDB4MTQgKyBpICogQ01EUVZfVkNNRFFfU1RSSURF KSBcCisrICAgIEZJRUxEKFZDTURRIyNpIyNfR0VSUk9STiwgQ01EUV9FUlIsIDAsIDEpICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICBGSUVMRChWQ01EUSMjaSMjX0dFUlJPUk4sIENPTlNfRFJB TV9XUl9BQlRfRVJSLCAxLCAxKSAgICAgICAgIFwKKysgICAgRklFTEQoVkNNRFEjI2kjI19HRVJS T1JOLCBDTURRX0lOSVRfRVJSLCAyLCAxKQorKworKy8qIFBhZ2UgMCBsYXlvdXQ6IFZDTURRMCAq LworK1NNTVVfQ01EUVZfVkNNRFFpX0NPTlNfSU5EWF8oMCkKKytTTU1VX0NNRFFWX1ZDTURRaV9Q Uk9EX0lORFhfKDApCisrU01NVV9DTURRVl9WQ01EUWlfQ09ORklHXygwKQorK1NNTVVfQ01EUVZf VkNNRFFpX1NUQVRVU18oMCkKKytTTU1VX0NNRFFWX1ZDTURRaV9HRVJST1JfKDApCisrU01NVV9D TURRVl9WQ01EUWlfR0VSUk9STl8oMCkKKysKKysvKiBQYWdlIDAgbGF5b3V0OiBWQ01EUTEgKi8K KytTTU1VX0NNRFFWX1ZDTURRaV9DT05TX0lORFhfKDEpCisrU01NVV9DTURRVl9WQ01EUWlfUFJP RF9JTkRYXygxKQorK1NNTVVfQ01EUVZfVkNNRFFpX0NPTkZJR18oMSkKKytTTU1VX0NNRFFWX1ZD TURRaV9TVEFUVVNfKDEpCisrU01NVV9DTURRVl9WQ01EUWlfR0VSUk9SXygxKQorK1NNTVVfQ01E UVZfVkNNRFFpX0dFUlJPUk5fKDEpCisrCisrLyogLS0tIFBhZ2UgMSByZWdpc3RlciBtYWNyb3Mg LS0tICovCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZDTURRaV9CQVNFX0xfKGkpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUczMihWQ01EUSMjaSMjX0JB U0VfTCwgQ01EUVZfVkNNRFFfUEFHRTFfQkFTRSArIGkgKiBDTURRVl9WQ01EUV9TVFJJREUpIFwK KysgICAgRklFTEQoVkNNRFEjI2kjI19CQVNFX0wsIExPRzJTSVpFLCAwLCA1KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIEZJRUxEKFZDTURRIyNpIyNfQkFTRV9MLCBB RERSLCA1LCAyNykKKysKKysjZGVmaW5lIFNNTVVfQ01EUVZfVkNNRFFpX0JBU0VfSF8oaSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgUkVHMzIoVkNNRFEjI2kjI19CQVNFX0gs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgQ01EUVZf VkNNRFFfUEFHRTFfQkFTRSArIDB4NCArIGkgKiBDTURRVl9WQ01EUV9TVFJJREUpIFwKKysgICAg RklFTEQoVkNNRFEjI2kjI19CQVNFX0gsIEFERFIsIDAsIDE2KQorKworKyNkZWZpbmUgU01NVV9D TURRVl9WQ01EUWlfQ09OU19JTkRYX0JBU0VfRFJBTV9MXyhpKSAgICAgICAgICAgICAgXAorKyAg ICBSRUczMihWQ01EUSMjaSMjX0NPTlNfSU5EWF9CQVNFX0RSQU1fTCwgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICAgICAgICBDTURRVl9WQ01EUV9QQUdFMV9CQVNFICsgMHg4ICsgaSAqIENN RFFWX1ZDTURRX1NUUklERSkgXAorKyAgICBGSUVMRChWQ01EUSMjaSMjX0NPTlNfSU5EWF9CQVNF X0RSQU1fTCwgQUREUiwgMCwgMzIpCisrCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZDTURRaV9DT05T X0lORFhfQkFTRV9EUkFNX0hfKGkpICAgICAgICAgICAgICBcCisrICAgIFJFRzMyKFZDTURRIyNp IyNfQ09OU19JTkRYX0JBU0VfRFJBTV9ILCAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAg ICAgIENNRFFWX1ZDTURRX1BBR0UxX0JBU0UgKyAweGMgKyBpICogQ01EUVZfVkNNRFFfU1RSSURF KSBcCisrICAgIEZJRUxEKFZDTURRIyNpIyNfQ09OU19JTkRYX0JBU0VfRFJBTV9ILCBBRERSLCAw LCAxNikKKysKKysvKiBQYWdlIDEgbGF5b3V0OiBWQ01EUTAgKi8KKytTTU1VX0NNRFFWX1ZDTURR aV9CQVNFX0xfKDApCisrU01NVV9DTURRVl9WQ01EUWlfQkFTRV9IXygwKQorK1NNTVVfQ01EUVZf VkNNRFFpX0NPTlNfSU5EWF9CQVNFX0RSQU1fTF8oMCkKKytTTU1VX0NNRFFWX1ZDTURRaV9DT05T X0lORFhfQkFTRV9EUkFNX0hfKDApCisrCisrLyogUGFnZSAxIGxheW91dDogVkNNRFExICovCisr U01NVV9DTURRVl9WQ01EUWlfQkFTRV9MXygxKQorK1NNTVVfQ01EUVZfVkNNRFFpX0JBU0VfSF8o MSkKKytTTU1VX0NNRFFWX1ZDTURRaV9DT05TX0lORFhfQkFTRV9EUkFNX0xfKDEpCisrU01NVV9D TURRVl9WQ01EUWlfQ09OU19JTkRYX0JBU0VfRFJBTV9IXygxKQorKworKy8qCisrICogVklOVEYw IGxvZ2ljYWwgVkNNRFEgYXBlcnR1cmUgcmVnaXN0ZXIgd2luZG93cy4KKysgKgorKyAqIFBhZ2Ug MCBAIENNRFFWX1ZJTlRGX1BBR0UwX0JBU0U6IFZDTURRIGNvbnRyb2wgYW5kIHN0YXR1cyByZWdp c3RlcnMuCisrICogUGFnZSAxIEAgQ01EUVZfVklOVEZfUEFHRTFfQkFTRTogVkNNRFEgYmFzZSBh bmQgRFJBTSBhZGRyZXNzIHJlZ2lzdGVycy4KKysgKgorKyAqIFZDTURRcyBtYXBwZWQgdmlhIFZJ TlRGIGFyZSBhY2Nlc3NlZCB0aHJvdWdoIHRoaXMgYXBlcnR1cmUgYXMKKysgKiBoYXJkd2FyZSBh bGlhc2VzIG9mIHRoZSBkaXJlY3QgVkNNRFEgYXBlcnR1cmUgYWJvdmUuCisrICovCisrCisrLyog LS0tIFBhZ2UgMCByZWdpc3RlciBtYWNyb3MgLS0tICovCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZJ X1ZDTURRaV9DT05TX0lORFhfKGkpICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUczMihWSV9W Q01EUSMjaSMjX0NPTlNfSU5EWCwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ICAgQ01EUVZfVklOVEZfUEFHRTBfQkFTRSArIGkgKiBDTURRVl9WQ01EUV9TVFJJREUpICBcCisr ICAgIEZJRUxEKFZJX1ZDTURRIyNpIyNfQ09OU19JTkRYLCBSRCwgMCwgMjApICAgICAgICAgICAg ICAgXAorKyAgICBGSUVMRChWSV9WQ01EUSMjaSMjX0NPTlNfSU5EWCwgRVJSLCAyNCwgNykKKysK KysjZGVmaW5lIFNNTVVfQ01EUVZfVklfVkNNRFFpX1BST0RfSU5EWF8oaSkgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgICAgUkVHMzIoVklfVkNNRFEjI2kjI19QUk9EX0lORFgsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgQ01EUVZfVklOVEZfUEFHRTBfQkFT RSArIDB4NCArIGkgKiBDTURRVl9WQ01EUV9TVFJJREUpIFwKKysgICAgRklFTEQoVklfVkNNRFEj I2kjI19QUk9EX0lORFgsIFdSLCAwLCAyMCkKKysKKysjZGVmaW5lIFNNTVVfQ01EUVZfVklfVkNN RFFpX0NPTkZJR18oaSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgUkVHMzIoVklf VkNNRFEjI2kjI19DT05GSUcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg ICAgICAgICAgQ01EUVZfVklOVEZfUEFHRTBfQkFTRSArIDB4OCArIGkgKiBDTURRVl9WQ01EUV9T VFJJREUpIFwKKysgICAgRklFTEQoVklfVkNNRFEjI2kjI19DT05GSUcsIENNRFFfRU4sIDAsIDEp CisrCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZJX1ZDTURRaV9TVEFUVVNfKGkpICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgIFJFRzMyKFZJX1ZDTURRIyNpIyNfU1RBVFVTLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgIENNRFFWX1ZJTlRGX1BBR0Uw X0JBU0UgKyAweGMgKyBpICogQ01EUVZfVkNNRFFfU1RSSURFKSBcCisrICAgIEZJRUxEKFZJX1ZD TURRIyNpIyNfU1RBVFVTLCBDTURRX0VOX09LLCAwLCAxKQorKworKyNkZWZpbmUgU01NVV9DTURR Vl9WSV9WQ01EUWlfR0VSUk9SXyhpKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAg UkVHMzIoVklfVkNNRFEjI2kjI19HRVJST1IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICAgICAgIENNRFFWX1ZJTlRGX1BBR0UwX0JBU0UgKyAweDEwICsgaSAqIENN RFFWX1ZDTURRX1NUUklERSkgXAorKyAgICBGSUVMRChWSV9WQ01EUSMjaSMjX0dFUlJPUiwgQ01E UV9FUlIsIDAsIDEpICAgICAgICAgICAgICAgICAgIFwKKysgICAgRklFTEQoVklfVkNNRFEjI2kj I19HRVJST1IsIENPTlNfRFJBTV9XUl9BQlRfRVJSLCAxLCAxKSAgICAgICBcCisrICAgIEZJRUxE KFZJX1ZDTURRIyNpIyNfR0VSUk9SLCBDTURRX0lOSVRfRVJSLCAyLCAxKQorKworKyNkZWZpbmUg U01NVV9DTURRVl9WSV9WQ01EUWlfR0VSUk9STl8oaSkgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgUkVHMzIoVklfVkNNRFEjI2kjI19HRVJST1JOLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICAgICAgIENNRFFWX1ZJTlRGX1BBR0UwX0JBU0UgKyAweDE0 ICsgaSAqIENNRFFWX1ZDTURRX1NUUklERSkgXAorKyAgICBGSUVMRChWSV9WQ01EUSMjaSMjX0dF UlJPUk4sIENNRFFfRVJSLCAwLCAxKSAgICAgICAgICAgICAgICAgIFwKKysgICAgRklFTEQoVklf VkNNRFEjI2kjI19HRVJST1JOLCBDT05TX0RSQU1fV1JfQUJUX0VSUiwgMSwgMSkgICAgICBcCisr ICAgIEZJRUxEKFZJX1ZDTURRIyNpIyNfR0VSUk9STiwgQ01EUV9JTklUX0VSUiwgMiwgMSkKKysK KysvKiBQYWdlIDAgbGF5b3V0OiBWQ01EUTAgKi8KKytTTU1VX0NNRFFWX1ZJX1ZDTURRaV9DT05T X0lORFhfKDApCisrU01NVV9DTURRVl9WSV9WQ01EUWlfUFJPRF9JTkRYXygwKQorK1NNTVVfQ01E UVZfVklfVkNNRFFpX0NPTkZJR18oMCkKKytTTU1VX0NNRFFWX1ZJX1ZDTURRaV9TVEFUVVNfKDAp CisrU01NVV9DTURRVl9WSV9WQ01EUWlfR0VSUk9SXygwKQorK1NNTVVfQ01EUVZfVklfVkNNRFFp X0dFUlJPUk5fKDApCisrCisrLyogUGFnZSAwIGxheW91dDogVkNNRFExICovCisrU01NVV9DTURR Vl9WSV9WQ01EUWlfQ09OU19JTkRYXygxKQorK1NNTVVfQ01EUVZfVklfVkNNRFFpX1BST0RfSU5E WF8oMSkKKytTTU1VX0NNRFFWX1ZJX1ZDTURRaV9DT05GSUdfKDEpCisrU01NVV9DTURRVl9WSV9W Q01EUWlfU1RBVFVTXygxKQorK1NNTVVfQ01EUVZfVklfVkNNRFFpX0dFUlJPUl8oMSkKKytTTU1V X0NNRFFWX1ZJX1ZDTURRaV9HRVJST1JOXygxKQorKworKy8qIC0tLSBQYWdlIDEgcmVnaXN0ZXIg bWFjcm9zIC0tLSAqLworKyNkZWZpbmUgU01NVV9DTURRVl9WSV9WQ01EUWlfQkFTRV9MXyhpKSAg ICAgICAgICAgICAgICAgICAgIFwKKysgICAgUkVHMzIoVklfVkNNRFEjI2kjI19CQVNFX0wsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgIENNRFFWX1ZJTlRGX1BBR0Ux X0JBU0UgKyBpICogQ01EUVZfVkNNRFFfU1RSSURFKSAgXAorKyAgICBGSUVMRChWSV9WQ01EUSMj aSMjX0JBU0VfTCwgTE9HMlNJWkUsIDAsIDUpICAgICAgICAgICAgIFwKKysgICAgRklFTEQoVklf VkNNRFEjI2kjI19CQVNFX0wsIEFERFIsIDUsIDI3KQorKworKyNkZWZpbmUgU01NVV9DTURRVl9W SV9WQ01EUWlfQkFTRV9IXyhpKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBSRUcz MihWSV9WQ01EUSMjaSMjX0JBU0VfSCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgICAgICAgICBDTURRVl9WSU5URl9QQUdFMV9CQVNFICsgMHg0ICsgaSAqIENNRFFWX1ZD TURRX1NUUklERSkgXAorKyAgICBGSUVMRChWSV9WQ01EUSMjaSMjX0JBU0VfSCwgQUREUiwgMCwg MTYpCisrCisrI2RlZmluZSBTTU1VX0NNRFFWX1ZJX1ZDTURRaV9DT05TX0lORFhfQkFTRV9EUkFN X0xfKGkpICAgICAgICAgICBcCisrICAgIFJFRzMyKFZJX1ZDTURRIyNpIyNfQ09OU19JTkRYX0JB U0VfRFJBTV9MLCAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgIENNRFFWX1ZJTlRGX1BB R0UxX0JBU0UgKyAweDggKyBpICogQ01EUVZfVkNNRFFfU1RSSURFKSBcCisrICAgIEZJRUxEKFZJ X1ZDTURRIyNpIyNfQ09OU19JTkRYX0JBU0VfRFJBTV9MLCBBRERSLCAwLCAzMikKKysKKysjZGVm aW5lIFNNTVVfQ01EUVZfVklfVkNNRFFpX0NPTlNfSU5EWF9CQVNFX0RSQU1fSF8oaSkgICAgICAg ICAgIFwKKysgICAgUkVHMzIoVklfVkNNRFEjI2kjI19DT05TX0lORFhfQkFTRV9EUkFNX0gsICAg ICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgQ01EUVZfVklOVEZfUEFHRTFfQkFTRSArIDB4 YyArIGkgKiBDTURRVl9WQ01EUV9TVFJJREUpIFwKKysgICAgRklFTEQoVklfVkNNRFEjI2kjI19D T05TX0lORFhfQkFTRV9EUkFNX0gsIEFERFIsIDAsIDE2KQorKworKy8qIFBhZ2UgMSBsYXlvdXQ6 IFZDTURRMCAqLworK1NNTVVfQ01EUVZfVklfVkNNRFFpX0JBU0VfTF8oMCkKKytTTU1VX0NNRFFW X1ZJX1ZDTURRaV9CQVNFX0hfKDApCisrU01NVV9DTURRVl9WSV9WQ01EUWlfQ09OU19JTkRYX0JB U0VfRFJBTV9MXygwKQorK1NNTVVfQ01EUVZfVklfVkNNRFFpX0NPTlNfSU5EWF9CQVNFX0RSQU1f SF8oMCkKKysKKysvKiBQYWdlIDEgbGF5b3V0OiBWQ01EUTEgKi8KKytTTU1VX0NNRFFWX1ZJX1ZD TURRaV9CQVNFX0xfKDEpCisrU01NVV9DTURRVl9WSV9WQ01EUWlfQkFTRV9IXygxKQorK1NNTVVf Q01EUVZfVklfVkNNRFFpX0NPTlNfSU5EWF9CQVNFX0RSQU1fTF8oMSkKKytTTU1VX0NNRFFWX1ZJ X1ZDTURRaV9DT05TX0lORFhfQkFTRV9EUkFNX0hfKDEpCisrCisgY29uc3QgU01NVXYzQWNjZWxD bWRxdk9wcyAqdGVncmEyNDFfY21kcXZfZ2V0X29wcyh2b2lkKTsKKyAKKyAjZW5kaWYgLyogSFdf QVJNX1RFR1JBMjQxX0NNRFFWX0ggKi8KK2RpZmYgLS1naXQgYS9ody9hcm0vdHJhY2UtZXZlbnRz IGIvaHcvYXJtL3RyYWNlLWV2ZW50cworaW5kZXggOGM2MWQ2NmEyNi4uNTE1NjYwNDIyOCAxMDA2 NDQKKy0tLSBhL2h3L2FybS90cmFjZS1ldmVudHMKKysrKyBiL2h3L2FybS90cmFjZS1ldmVudHMK K0BAIC03NSw2ICs3NSw4IEBAIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZSh1aW50MzJfdCB2c2lk LCBjb25zdCBjaGFyICogdHlwZSwgdWludDMyX3QgaHdwdF9pZCkgInZTCisgIyB0ZWdyYTI0MS1j bWRxdgorIHRlZ3JhMjQxX2NtZHF2X3JlYWRfbW1pbyh1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90 IHZhbCwgdW5zaWduZWQgc2l6ZSkgIm9mZnNldDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0 IiBzaXplOiAweCV4IgorIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX21taW8odWludDY0X3Qgb2Zmc2V0 LCB1aW50NjRfdCB2YWwsIHVuc2lnbmVkIHNpemUpICJvZmZzZXQ6IDB4JSJQUkl4NjQiIHZhbDog MHglIlBSSXg2NCIgc2l6ZTogMHgleCIKKyt0ZWdyYTI0MV9jbWRxdl9yZWFkX3ZjbWRxX3BhZ2Uw KGludCBpbmRleCwgY29uc3QgY2hhciAqYXBlcnR1cmUsIHVpbnQ2NF90IG9mZnNldDAsIHVpbnQ2 NF90IHZhbCkgInZjbWRxWyVkXSAlcyBvZmZzZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4 NjQKKyt0ZWdyYTI0MV9jbWRxdl9yZWFkX3ZjbWRxX3BhZ2UxKGludCBpbmRleCwgY29uc3QgY2hh ciAqYXBlcnR1cmUsIHVpbnQ2NF90IG9mZnNldDAsIHVpbnQ2NF90IHZhbCkgInZjbWRxWyVkXSAl cyBvZmZzZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKyAKKyAjIHN0cm9uZ2FybS5j Cisgc3Ryb25nYXJtX3VhcnRfdXBkYXRlX3BhcmFtZXRlcnMoY29uc3QgY2hhciAqbGFiZWwsIGlu dCBzcGVlZCwgY2hhciBwYXJpdHksIGludCBkYXRhX2JpdHMsIGludCBzdG9wX2JpdHMpICIlcyBz cGVlZD0lZCBwYXJpdHk9JWMgZGF0YT0lZCBzdG9wPSVkIgorLS0gCisyLjUyLjAKKwoKZGlmZiAt LWdpdCBhL2t2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtRW11bGF0ZS1WQ01EUS1yZWdpc3Rlci13 cml0ZXMucGF0Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUVtdWxhdGUtVkNNRFEtcmVn aXN0ZXItd3JpdGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIw OWE1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUVtdWxh dGUtVkNNRFEtcmVnaXN0ZXItd3JpdGVzLnBhdGNoCkBAIC0wLDAgKzEsMjY0IEBACitGcm9tIDBj ZDRkOWQ5MWJlNmQ5NzNmNGRlZGI1NDE0ZjZlZDk4MTliNGJlNDkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitEYXRlOiBU dWUsIDkgSnVuIDIwMjYgMTI6MjU6MzggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAwOTYvMTExXSBo dy9hcm0vdGVncmEyNDEtY21kcXY6IEVtdWxhdGUgVkNNRFEgcmVnaXN0ZXIgd3JpdGVzCitNSU1F LVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNl IGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JI LUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbOTYv MTExXSBmOTE0NWRjYjEzYWZjNjgxZGYwOTRkMzBmZWNiZmMyMTE5MTM0MTBmIChlYXVnZXIxL2Nl bnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93 c2UvUkhFTC03Mzc5OAorCitUaGlzIGlzIHRoZSB3cml0ZSBzaWRlIGNvdW50ZXJwYXJ0IG9mIHRo ZSBWQ01EUSByZWFkIGVtdWxhdGlvbi4gQWRkCit3cml0ZSBoYW5kbGluZyBmb3IgYm90aCB0aGUg ZGlyZWN0IFZDTURRIGFwZXJ0dXJlIGFuZCB0aGUgVklOVEYKK2xvZ2ljYWwgYXBlcnR1cmUgdXNp bmcgdGhlIHNhbWUgaW5kZXggZGVjb2RpbmcgYW5kIFZJTlRGLXRvLVZDTURRCit0cmFuc2xhdGlv biBsb2dpYyBhcyB0aGUgcmVhZCBwYXRoLgorCitWSU5URiBhcGVydHVyZSB3cml0ZXMgYXJlIHRy YW5zbGF0ZWQgdG8gdGhlaXIgZGlyZWN0LWFwZXJ0dXJlCitlcXVpdmFsZW50IGFuZCB1cGRhdGUg dGhlIHNhbWUgY2FjaGVkIHN0YXRlLiBQYWdlIDEgcmVnaXN0ZXJzCisoQkFTRSwgQ09OU19JTkRY X0JBU0UpIGFsd2F5cyB1cGRhdGUgdGhlIGNhY2hlLgorCitQZXIgdGhlIENNRFFWIGFyY2hpdGVj dHVyZSwgYSBWQ01EUSBtdXN0IGJlIGFsbG9jYXRlZCB0byBhIFZpcnR1YWwKK0ludGVyZmFjZSBi ZWZvcmUgaXQgaXMgdXNlZCB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSBTTU1VLiBVbnRpbAordGhh dCBhbGxvY2F0aW9uIGhhcHBlbnMsIE1NSU8gd3JpdGVzIG9ubHkgdXBkYXRlIGNhY2hlZCByZWdp c3Rlcgorc3RhdGUgLSBubyBjb21tYW5kIGNvbnN1bXB0aW9uLCBlcnJvciBoYW5kbGluZywgb3Ig aW50ZXJydXB0CithY3Rpdml0eSBpcyBkcml2ZW4gZnJvbSB0aGVzZSB3cml0ZXMuIFN1YnNlcXVl bnQgcGF0Y2hlcyB3aXJlIHVwCitJT01NVV9IV19RVUVVRV9BTExPQywgbW1hcCB0aGUgaG9zdCBW SU5URiBQYWdlIDAsIGFuZCBpbnN0YWxsIGl0CitpbnRvIGd1ZXN0IE1NSU87IGFmdGVyIHRoYXQs IFBhZ2UgMCB3cml0ZXMgZnJvbSBlaXRoZXIgYXBlcnR1cmUKK3JlYWNoIHRoZSBoYXJkd2FyZS1i YWNrZWQgbW1hcCdkIHBhZ2UgaW5zdGVhZCBvZiBqdXN0IHRoZSBjYWNoZS4KKworU2lnbmVkLW9m Zi1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBOaWNv bGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS0xOC1za29s b3RodW10aG9AbnZpZGlhLmNvbQorQ28tZGV2ZWxvcGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxz a29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0g PHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8 cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYmJl NmJjNDY5YTk2YzY0YTY2ZTIyMWQ4MzYwNWZlNzFkMjQ4ZmY5ZikKK1NpZ25lZC1vZmYtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS90ZWdyYTI0MS1j bWRxdi5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KKyBo dy9hcm0vdHJhY2UtZXZlbnRzICAgICB8ICAgMiArCisgMiBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0 MS1jbWRxdi5jIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IDJkZmQzNzdlZTkuLjFm M2Q4ODNjZmUgMTAwNjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcv YXJtL3RlZ3JhMjQxLWNtZHF2LmMKK0BAIC0xMjAsNiArMTIwLDEwNCBAQCBzdGF0aWMgdWludDY0 X3QgdGVncmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3JlYWQoVGVncmEyNDFDTURRViAqY21kcXYs CisgICAgIH0KKyB9CisgCisrLyoKKysgKiBXcml0ZSBhIFZDTURRIFBhZ2UgMCByZWdpc3RlciAo Y29udHJvbC9zdGF0dXMpIHVzaW5nIFZDTURRMF8qIG9mZnNldHMuCisrICoKKysgKiBUaGUgY2Fs bGVyIG5vcm1hbGl6ZXMgdGhlIE1NSU8gb2Zmc2V0IHN1Y2ggdGhhdCBAb2Zmc2V0MCBhbHdheXMg cmVmZXJzCisrICogdG8gYSBWQ01EUTBfKiByZWdpc3Rlciwgd2hpbGUgQGluZGV4IHNlbGVjdHMg dGhlIFZDTURRIGluc3RhbmNlLgorKyAqCisrICogUGFnZSAwIHJlZ2lzdGVycyBhcmUgYWxsIDMy LWJpdDsgdGhpcyBoZWxwZXIgaXMgb25seSBjYWxsZWQgZm9yIDQtYnl0ZQorKyAqIHdyaXRlcy4K KysgKi8KKytzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMChUZWdy YTI0MUNNRFFWICpjbWRxdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBod2FkZHIgb2Zmc2V0MCwgaW50IGluZGV4LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlLCBib29sIGRpcmVjdCkKKyt7 CisrICAgIHN3aXRjaCAob2Zmc2V0MCkgeworKyAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWDoK KysgICAgICAgIGNtZHF2LT52Y21kcV9jb25zX2luZHhbaW5kZXhdID0gdmFsdWU7CisrICAgICAg ICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9QUk9EX0lORFg6CisrICAgICAgICAvKiBWQ01E USBpcyBmdW5jdGlvbmFsIG9ubHkgb25jZSBhbGxvY2F0ZWQgdG8gYSBWSU5URjsgY2FjaGUgb25s eS4gKi8KKysgICAgICAgIGNtZHF2LT52Y21kcV9wcm9kX2luZHhbaW5kZXhdID0gdmFsdWU7Cisr ICAgICAgICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9DT05GSUc6CisrICAgICAgICBpZiAo dmFsdWUgJiBSX1ZDTURRMF9DT05GSUdfQ01EUV9FTl9NQVNLKSB7CisrICAgICAgICAgICAgY21k cXYtPnZjbWRxX3N0YXR1c1tpbmRleF0gfD0gUl9WQ01EUTBfU1RBVFVTX0NNRFFfRU5fT0tfTUFT SzsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgY21kcXYtPnZjbWRxX3N0YXR1c1tp bmRleF0gJj0gflJfVkNNRFEwX1NUQVRVU19DTURRX0VOX09LX01BU0s7CisrICAgICAgICB9Cisr ICAgICAgICBjbWRxdi0+dmNtZHFfY29uZmlnW2luZGV4XSA9IHZhbHVlOworKyAgICAgICAgYnJl YWs7CisrICAgIGNhc2UgQV9WQ01EUTBfR0VSUk9STjoKKysgICAgICAgIC8qIFZDTURRIGlzIGZ1 bmN0aW9uYWwgb25seSBvbmNlIGFsbG9jYXRlZCB0byBhIFZJTlRGOyBjYWNoZSBvbmx5LiAqLwor KyAgICAgICAgY21kcXYtPnZjbWRxX2dlcnJvcm5baW5kZXhdID0gdmFsdWU7CisrICAgICAgICBi cmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLAor KyAgICAgICAgICAgICAgICAgICAgICAiJXMgdW5oYW5kbGVkIHdyaXRlIGFjY2VzcyBhdCAweCUi IFBSSXg2NCAiXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0MCk7 CisrICAgIH0KKysgICAgdHJhY2VfdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTAoaW5k ZXgsIGRpcmVjdCA/ICJkaXJlY3QiIDogInZpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0MCwgdmFsdWUpOworK30KKysKKysvKgorKyAqIFdyaXRl IGEgVkNNRFEgUGFnZSAxIHJlZ2lzdGVyIChiYXNlIC8gRFJBTSBhZGRyZXNzKSAtIDQtYnl0ZSBh Y2Nlc3MuCisrICovCisrc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFn ZTEoVGVncmEyNDFDTURRViAqY21kcXYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaHdhZGRyIG9mZnNldDAsIGludCBpbmRleCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZSwgYm9vbCBkaXJl Y3QpCisreworKyAgICBzd2l0Y2ggKG9mZnNldDApIHsKKysgICAgY2FzZSBBX1ZDTURRMF9CQVNF X0w6CisrICAgICAgICBjbWRxdi0+dmNtZHFfYmFzZVtpbmRleF0gPQorKyAgICAgICAgICAgIGRl cG9zaXQ2NChjbWRxdi0+dmNtZHFfYmFzZVtpbmRleF0sIDAsIDMyLCB2YWx1ZSk7CisrICAgICAg ICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9CQVNFX0g6CisrICAgICAgICBjbWRxdi0+dmNt ZHFfYmFzZVtpbmRleF0gPQorKyAgICAgICAgICAgIGRlcG9zaXQ2NChjbWRxdi0+dmNtZHFfYmFz ZVtpbmRleF0sIDMyLCAzMiwgdmFsdWUpOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQV9W Q01EUTBfQ09OU19JTkRYX0JBU0VfRFJBTV9MOgorKyAgICAgICAgY21kcXYtPnZjbWRxX2NvbnNf aW5keF9iYXNlW2luZGV4XSA9CisrICAgICAgICAgICAgZGVwb3NpdDY0KGNtZHF2LT52Y21kcV9j b25zX2luZHhfYmFzZVtpbmRleF0sIDAsIDMyLCB2YWx1ZSk7CisrICAgICAgICBicmVhazsKKysg ICAgY2FzZSBBX1ZDTURRMF9DT05TX0lORFhfQkFTRV9EUkFNX0g6CisrICAgICAgICBjbWRxdi0+ dmNtZHFfY29uc19pbmR4X2Jhc2VbaW5kZXhdID0KKysgICAgICAgICAgICBkZXBvc2l0NjQoY21k cXYtPnZjbWRxX2NvbnNfaW5keF9iYXNlW2luZGV4XSwgMzIsIDMyLCB2YWx1ZSk7CisrICAgICAg ICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1Q LAorKyAgICAgICAgICAgICAgICAgICAgICAiJXMgdW5oYW5kbGVkIHdyaXRlIGFjY2VzcyBhdCAw eCUiIFBSSXg2NCAiXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0 MCk7CisrICAgIH0KKysgICAgdHJhY2VfdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTEo aW5kZXgsIGRpcmVjdCA/ICJkaXJlY3QiIDogInZpIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MCwgdmFsdWUpOworK30KKysKKysvKgorKyAqIFdy aXRlIGEgVkNNRFEgUGFnZSAxIHJlZ2lzdGVyIC0gOC1ieXRlIGFjY2VzcyBhdCBCQVNFX0wgb3Ig RFJBTV9MLgorKyAqLworK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3Bh Z2UxXzY0KFRlZ3JhMjQxQ01EUVYgKmNtZHF2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBvZmZzZXQwLCBpbnQgaW5kZXgsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWUs IGJvb2wgZGlyZWN0KQorK3sKKysgICAgc3dpdGNoIChvZmZzZXQwKSB7CisrICAgIGNhc2UgQV9W Q01EUTBfQkFTRV9MOgorKyAgICAgICAgY21kcXYtPnZjbWRxX2Jhc2VbaW5kZXhdID0gdmFsdWU7 CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBBX1ZDTURRMF9DT05TX0lORFhfQkFTRV9EUkFN X0w6CisrICAgICAgICBjbWRxdi0+dmNtZHFfY29uc19pbmR4X2Jhc2VbaW5kZXhdID0gdmFsdWU7 CisrICAgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIHFlbXVfbG9nX21hc2so TE9HX1VOSU1QLAorKyAgICAgICAgICAgICAgICAgICAgICAiJXMgdW5oYW5kbGVkIDY0LWJpdCB3 cml0ZSBhdCAweCUiIFBSSXg2NCAiXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNf Xywgb2Zmc2V0MCk7CisrICAgIH0KKysgICAgdHJhY2VfdGVncmEyNDFfY21kcXZfd3JpdGVfdmNt ZHFfcGFnZTEoaW5kZXgsIGRpcmVjdCA/ICJkaXJlY3QiIDogInZpIiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MCwgdmFsdWUpOworK30KKysKKyBz dGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9jb25maWdfdmludGZfd3JpdGUoVGVncmEyNDFDTURR ViAqY21kcXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGh3YWRkciBvZmZzZXQsIHVpbnQ2NF90IHZhbHVlKQorIHsKK0BAIC0yNDMsNiArMzQxLDggQEAg b3V0OgorIHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlbF9tbWlvKFRlZ3JhMjQxQ01E UVYgKmNtZHF2LCBod2FkZHIgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IHZhbHVlKQorIHsKKysgICAgaW50IGluZGV4OworKworICAgICBz d2l0Y2ggKG9mZnNldCkgeworICAgICBjYXNlIEFfQ09ORklHOgorICAgICAgICAgY21kcXYtPmNv bmZpZyA9IHZhbHVlOworQEAgLTI2MSw2ICszNjEsMzkgQEAgc3RhdGljIHZvaWQgdGVncmEyNDFf Y21kcXZfd3JpdGVsX21taW8oVGVncmEyNDFDTURRViAqY21kcXYsIGh3YWRkciBvZmZzZXQsCisg ICAgIGNhc2UgQV9WSU5URjBfQ09ORklHIC4uLiBBX1ZJTlRGMF9MVkNNRFFfRVJSX01BUF8zOgor ICAgICAgICAgdGVncmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3dyaXRlKGNtZHF2LCBvZmZzZXQs IHZhbHVlKTsKKyAgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfVklfVkNNRFEwX0NPTlNfSU5E WCAuLi4gQV9WSV9WQ01EUTFfR0VSUk9STjoKKysgICAgICAgIC8qCisrICAgICAgICAgKiBWSU5U RiBQYWdlMCByZWdpc3RlcnMgYXJlIGhhcmR3YXJlIGFsaWFzZXMgb2YgVkNNRFEgUGFnZTAgcmVn aXN0ZXJzLgorKyAgICAgICAgICogVHJhbnNsYXRlIHRoZSBWSU5URiBhcGVydHVyZSBvZmZzZXQg dG8gaXRzIFZDTURRIFBhZ2UwIGVxdWl2YWxlbnQKKysgICAgICAgICAqIGJlZm9yZSBkaXNwYXRj aGluZyB0byB0aGUgUGFnZSAwIGhlbHBlci4KKysgICAgICAgICAqLworKyAgICAgICAgb2Zmc2V0 IC09IENNRFFWX1ZJTlRGX1BBR0UwX0JBU0UgLSBDTURRVl9WQ01EUV9QQUdFMF9CQVNFOworKyAg ICAgICAgaW5kZXggPSAob2Zmc2V0IC0gQ01EUVZfVkNNRFFfUEFHRTBfQkFTRSkgLyBDTURRVl9W Q01EUV9TVFJJREU7CisrICAgICAgICB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMChj bWRxdiwKKysgICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBDTURRVl9WQ01EUV9TVFJJ REUsIGluZGV4LCB2YWx1ZSwgZmFsc2UpOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQV9W Q01EUTBfQ09OU19JTkRYIC4uLiBBX1ZDTURRMV9HRVJST1JOOgorKyAgICAgICAgLyoKKysgICAg ICAgICAqIERlY29kZSBhIHBlci1WQ01EUSBQYWdlIDAgYWNjZXNzLiBFYWNoIFZDTURRIG9jY3Vw aWVzIGEKKysgICAgICAgICAqIENNRFFWX1ZDTURRX1NUUklERS1ieXRlIHdpbmRvdzsgZXh0cmFj dCB0aGUgaW5kZXggYW5kIG5vcm1hbGl6ZQorKyAgICAgICAgICogdG8gdGhlIFZDTURRMF8qIG9m ZnNldCBiZWZvcmUgY2FsbGluZyB0aGUgUGFnZSAwIGhlbHBlci4KKysgICAgICAgICAqLworKyAg ICAgICAgaW5kZXggPSAob2Zmc2V0IC0gQ01EUVZfVkNNRFFfUEFHRTBfQkFTRSkgLyBDTURRVl9W Q01EUV9TVFJJREU7CisrICAgICAgICB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMChj bWRxdiwKKysgICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBDTURRVl9WQ01EUV9TVFJJ REUsIGluZGV4LCB2YWx1ZSwgdHJ1ZSk7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBBX1ZJ X1ZDTURRMF9CQVNFX0wgLi4uIEFfVklfVkNNRFExX0NPTlNfSU5EWF9CQVNFX0RSQU1fSDoKKysg ICAgICAgIC8qIFNhbWUgVklOVEYtdG8tVkNNRFEgdHJhbnNsYXRpb24gYXMgVklOVEYgUGFnZTAg Y2FzZSBhYm92ZS4gKi8KKysgICAgICAgIG9mZnNldCAtPSBDTURRVl9WSU5URl9QQUdFMV9CQVNF IC0gQ01EUVZfVkNNRFFfUEFHRTFfQkFTRTsKKysgICAgICAgIGluZGV4ID0gKG9mZnNldCAtIENN RFFWX1ZDTURRX1BBR0UxX0JBU0UpIC8gQ01EUVZfVkNNRFFfU1RSSURFOworKyAgICAgICAgdGVn cmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTEoY21kcXYsCisrICAgICAgICAgICAgICAgIG9m ZnNldCAtIGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFLCBpbmRleCwgdmFsdWUsIGZhbHNlKTsK KysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIEFfVkNNRFEwX0JBU0VfTCAuLi4gQV9WQ01EUTFf Q09OU19JTkRYX0JBU0VfRFJBTV9IOgorKyAgICAgICAgaW5kZXggPSAob2Zmc2V0IC0gQ01EUVZf VkNNRFFfUEFHRTFfQkFTRSkgLyBDTURRVl9WQ01EUV9TVFJJREU7CisrICAgICAgICB0ZWdyYTI0 MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMShjbWRxdiwKKysgICAgICAgICAgICAgICAgb2Zmc2V0 IC0gaW5kZXggKiBDTURRVl9WQ01EUV9TVFJJREUsIGluZGV4LCB2YWx1ZSwgdHJ1ZSk7CisrICAg ICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX1VO SU1QLCAiJXMgdW5oYW5kbGVkIHdyaXRlIGFjY2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorICAg ICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgb2Zmc2V0KTsKK0BAIC0yNjgsMTQgKzQwMSwz NiBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl93cml0ZWxfbW1pbyhUZWdyYTI0MUNNRFFW ICpjbWRxdiwgaHdhZGRyIG9mZnNldCwKKyB9CisgCisgLyoKKy0gKiA4LWJ5dGUgTU1JTyB3cml0 ZSBoYW5kbGVyLgorKyAqIDgtYnl0ZSBNTUlPIHdyaXRlIGhhbmRsZXIuIE9ubHkgUGFnZSAxIEJB U0UgLyBDT05TX0lORFhfQkFTRV9EUkFNIGFjY2VwdAorKyAqIGZ1bGwgNjQtYml0IHdyaXRlczsg b3RoZXIgb2Zmc2V0cyBhcmUgd3JpdGUtaWdub3JlZC4KKyAgKi8KKyBzdGF0aWMgdm9pZCB0ZWdy YTI0MV9jbWRxdl93cml0ZWxsX21taW8oVGVncmEyNDFDTURRViAqY21kcXYsIGh3YWRkciBvZmZz ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZh bHVlKQorIHsKKy0gICAgcWVtdV9sb2dfbWFzayhMT0dfVU5JTVAsCisrICAgIGludCBpbmRleDsK KysKKysgICAgc3dpdGNoIChvZmZzZXQpIHsKKysgICAgY2FzZSBBX1ZJX1ZDTURRMF9CQVNFX0wg Li4uIEFfVklfVkNNRFExX0NPTlNfSU5EWF9CQVNFX0RSQU1fSDoKKysgICAgICAgIC8qCisrICAg ICAgICAgKiBWSU5URiBQYWdlMSByZWdpc3RlcnMgYXJlIGhhcmR3YXJlIGFsaWFzZXMgb2YgVkNN RFEgUGFnZTEgcmVnaXN0ZXJzLgorKyAgICAgICAgICogVHJhbnNsYXRlIHRoZSBWSU5URiBhcGVy dHVyZSBvZmZzZXQgdG8gaXRzIFZDTURRIFBhZ2UxIGVxdWl2YWxlbnQKKysgICAgICAgICAqIGJl Zm9yZSBkaXNwYXRjaGluZyB0byB0aGUgUGFnZSAxIGhlbHBlci4KKysgICAgICAgICAqLworKyAg ICAgICAgb2Zmc2V0IC09IENNRFFWX1ZJTlRGX1BBR0UxX0JBU0UgLSBDTURRVl9WQ01EUV9QQUdF MV9CQVNFOworKyAgICAgICAgaW5kZXggPSAob2Zmc2V0IC0gQ01EUVZfVkNNRFFfUEFHRTFfQkFT RSkgLyBDTURRVl9WQ01EUV9TVFJJREU7CisrICAgICAgICB0ZWdyYTI0MV9jbWRxdl93cml0ZV92 Y21kcV9wYWdlMV82NChjbWRxdiwKKysgICAgICAgICAgICAgICAgb2Zmc2V0IC0gaW5kZXggKiBD TURRVl9WQ01EUV9TVFJJREUsIGluZGV4LCB2YWx1ZSwgZmFsc2UpOworKyAgICAgICAgYnJlYWs7 CisrICAgIGNhc2UgQV9WQ01EUTBfQkFTRV9MIC4uLiBBX1ZDTURRMV9DT05TX0lORFhfQkFTRV9E UkFNX0g6CisrICAgICAgICBpbmRleCA9IChvZmZzZXQgLSBDTURRVl9WQ01EUV9QQUdFMV9CQVNF KSAvIENNRFFWX1ZDTURRX1NUUklERTsKKysgICAgICAgIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3Zj bWRxX3BhZ2UxXzY0KGNtZHF2LAorKyAgICAgICAgICAgICAgICBvZmZzZXQgLSBpbmRleCAqIENN RFFWX1ZDTURRX1NUUklERSwgaW5kZXgsIHZhbHVlLCB0cnVlKTsKKysgICAgICAgIGJyZWFrOwor KyAgICBkZWZhdWx0OgorKyAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfVU5JTVAsCisgICAgICAg ICAgICAgICAgICAgICAgICIlcyB1bmhhbmRsZWQgNjQtYml0IHdyaXRlIGF0IDB4JSIgUFJJeDY0 ICIgKFdJKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIG9mZnNldCk7Cisr ICAgIH0KKyB9CisgCisgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVfbW1pbyh2b2lk ICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RyYWNlLWV2ZW50 cyBiL2h3L2FybS90cmFjZS1ldmVudHMKK2luZGV4IDUxNTY2MDQyMjguLjY2Njk2N2RjNWUgMTAw NjQ0CistLS0gYS9ody9hcm0vdHJhY2UtZXZlbnRzCisrKysgYi9ody9hcm0vdHJhY2UtZXZlbnRz CitAQCAtNzcsNiArNzcsOCBAQCB0ZWdyYTI0MV9jbWRxdl9yZWFkX21taW8odWludDY0X3Qgb2Zm c2V0LCB1aW50NjRfdCB2YWwsIHVuc2lnbmVkIHNpemUpICJvZmZzZXQ6CisgdGVncmEyNDFfY21k cXZfd3JpdGVfbW1pbyh1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHZhbCwgdW5zaWduZWQgc2l6 ZSkgIm9mZnNldDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0IiBzaXplOiAweCV4IgorIHRl Z3JhMjQxX2NtZHF2X3JlYWRfdmNtZHFfcGFnZTAoaW50IGluZGV4LCBjb25zdCBjaGFyICphcGVy dHVyZSwgdWludDY0X3Qgb2Zmc2V0MCwgdWludDY0X3QgdmFsKSAidmNtZHFbJWRdICVzIG9mZnNl dDA6IDB4JSJQUkl4NjQiIHZhbDogMHglIlBSSXg2NAorIHRlZ3JhMjQxX2NtZHF2X3JlYWRfdmNt ZHFfcGFnZTEoaW50IGluZGV4LCBjb25zdCBjaGFyICphcGVydHVyZSwgdWludDY0X3Qgb2Zmc2V0 MCwgdWludDY0X3QgdmFsKSAidmNtZHFbJWRdICVzIG9mZnNldDA6IDB4JSJQUkl4NjQiIHZhbDog MHglIlBSSXg2NAorK3RlZ3JhMjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3BhZ2UwKGludCBpbmRleCwg Y29uc3QgY2hhciAqYXBlcnR1cmUsIHVpbnQ2NF90IG9mZnNldDAsIHVpbnQ2NF90IHZhbCkgInZj bWRxWyVkXSAlcyBvZmZzZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKyt0ZWdyYTI0 MV9jbWRxdl93cml0ZV92Y21kcV9wYWdlMShpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0dXJl LCB1aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2Y21kcVslZF0gJXMgb2Zmc2V0MDog MHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0CisgCisgIyBzdHJvbmdhcm0uYworIHN0cm9uZ2Fy bV91YXJ0X3VwZGF0ZV9wYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKmxhYmVsLCBpbnQgc3BlZWQsIGNo YXIgcGFyaXR5LCBpbnQgZGF0YV9iaXRzLCBpbnQgc3RvcF9iaXRzKSAiJXMgc3BlZWQ9JWQgcGFy aXR5PSVjIGRhdGE9JWQgc3RvcD0lZCIKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0t aHctYXJtLXRlZ3JhMjQxLWNtZHF2LUltcGxlbWVudC1DTURRVi1pbml0LnBhdGNoIGIva3ZtLWh3 LWFybS10ZWdyYTI0MS1jbWRxdi1JbXBsZW1lbnQtQ01EUVYtaW5pdC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzgwYmE0Ci0tLSAvZGV2L251bGwKKysrIGIva3Zt LWh3LWFybS10ZWdyYTI0MS1jbWRxdi1JbXBsZW1lbnQtQ01EUVYtaW5pdC5wYXRjaApAQCAtMCww ICsxLDE2MyBAQAorRnJvbSA0NWUzODE1MWJhOWRiYWVkMTM3ZTRhOGRmMzllNGFiNzk1YWMzOWFi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0Bu dmlkaWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjMyICswMTAwCitTdWJqZWN0 OiBbUEFUQ0ggMDkwLzExMV0gaHcvYXJtL3RlZ3JhMjQxLWNtZHF2OiBJbXBsZW1lbnQgQ01EUVYg aW5pdAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBT TU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmly YTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhh dC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNv bW1pdDogWzkwLzExMV0gODhhYWUyYTYzMWRlOTZjNjczYWM1NjE1ZTQwYjk4MDQwYTJhNDk2MSAo ZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lh bi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworVGVncmEyNDEgQ01EUVYgZXh0ZW5kcyBTTU1VdjMg d2l0aCBzdXBwb3J0IGZvciB2aXJ0dWFsIGNvbW1hbmQgcXVldWVzCisoVkNNRFFzKSBleHBvc2Vk IHZpYSBhIENNRFFWIE1NSU8gcmVnaW9uLiBUaGUgQ01EUVYgTU1JTyBzcGFjZSBpcyBzcGxpdAor aW50byA2NEtCIHBhZ2VzOgorCisweDAwMDAwICAoQ01EUS1WIENvbmZpZyBwYWdlKQorMHgxMDAw MCAgKENNRFEtViBDTURRIFBhZ2UwKQorMHgyMDAwMCAgKENNRFEtViBDTURRIFBhZ2UxKQorMHgz MDAwMCAgKFZpcnR1YWwgSW50ZXJmYWNlIFBhZ2UwKQorMHg0MDAwMCAgKFZpcnR1YWwgSW50ZXJm YWNlIFBhZ2UxKQorCitUaGlzIHBhdGNoIHdpcmVzIHVwIHRoZSBUZWdyYTI0MSBDTURRViBpbml0 IGNhbGxiYWNrIGFuZCBhbGxvY2F0ZXMKK3ZlbmRvci1zcGVjaWZpYyBDTURRViBzdGF0ZS4gVGhl IHN0YXRlIHBvaW50ZXIgaXMgc3RvcmVkIGluCitTTU1VdjNBY2NlbFN0YXRlIGZvciB1c2UgYnkg c3Vic2VxdWVudCBDTURRViBvcGVyYXRpb25zLgorCitUaGUgQ01EUVYgTU1JTyByZWdpb24gYW5k IGEgZGVkaWNhdGVkIElSUSBsaW5lIGFyZSByZWdpc3RlcmVkIHdpdGggdGhlCitTTU1VdjMgZGV2 aWNlLiBUaGUgTU1JTyByZWFkL3dyaXRlIGhhbmRsZXJzIGFyZSBjdXJyZW50bHkgc3R1YnMgYW5k IHdpbGwKK2JlIGltcGxlbWVudGVkIGluIGxhdGVyIHBhdGNoZXMuCisKK1RoZSBDTURRViBpbnRl cnJ1cHQgaXMgZWRnZS10cmlnZ2VyZWQgYW5kIGluZGljYXRlcyBWQ01EUSBvciBWSU5URgorZXJy b3IgY29uZGl0aW9ucy4gVGhpcyBwYXRjaCBvbmx5IHJlZ2lzdGVycyB0aGUgSVJRIGxpbmUuIElu dGVycnVwdAorZ2VuZXJhdGlvbiBhbmQgcHJvcGFnYXRpb24gdG8gdGhlIGd1ZXN0IHdpbGwgYmUg YWRkZWQgaW4gYSBzdWJzZXF1ZW50CitwYXRjaC4KKworU2lnbmVkLW9mZi1ieTogTmljb2xpbiBD aGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0Budmlk aWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitT aWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4K K01lc3NhZ2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS0xMi1za29sb3RodW10aG9AbnZpZGlh LmNvbQorQ28tZGV2ZWxvcGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZp ZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Bu dmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBs aW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjExMDkxOGJjZTdjNjViZDUx NGM1ZGZkMzZlNmFiYzhjMjE1MzRmNSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuaCAgIHwgIDEgKwor IGh3L2FybS90ZWdyYTI0MS1jbWRxdi5jIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQorIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5oIHwgMjAgKysrKysrKysrKysr KysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmggYi9ody9hcm0vc21tdXYz LWFjY2VsLmgKK2luZGV4IGI0NWYyNWFkMDMuLmUwYmJlYzg1ODEgMTAwNjQ0CistLS0gYS9ody9h cm0vc21tdXYzLWFjY2VsLmgKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuaAorQEAgLTYxLDYg KzYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU01NVXYzQWNjZWxTdGF0ZSB7CisgICAgIGJvb2wgYXV0 b19tb2RlOworICAgICBib29sIGF1dG9fZmluYWxpc2VkOworICAgICBjb25zdCBTTU1VdjNBY2Nl bENtZHF2T3BzICpjbWRxdl9vcHM7CisrICAgIHZvaWQgKmNtZHF2OyAgLyogdmVuZG9yIHNwZWNp ZmljIENNRFFWIHN0YXRlICovCisgfSBTTU1VdjNBY2NlbFN0YXRlOworIAorIHR5cGVkZWYgc3Ry dWN0IFNNTVVTMUh3cHQgeworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIv aHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IDNhMTlhMWFmNTYuLjI4NzVhZmZjOGQgMTAw NjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQx LWNtZHF2LmMKK0BAIC0xMyw2ICsxMywxNyBAQAorICNpbmNsdWRlICJzbW11djMtYWNjZWwuaCIK KyAjaW5jbHVkZSAidGVncmEyNDEtY21kcXYuaCIKKyAKKytzdGF0aWMgdWludDY0X3QgdGVncmEy NDFfY21kcXZfcmVhZF9tbWlvKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIG9mZnNldCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNpemUpCisreworKyAg ICByZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3JpdGVfbW1p byh2b2lkICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZSwgdW5zaWduZWQgc2l6ZSkKKyt7CisrfQorKwor IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmlvbW11KFNNTVV2M1N0YXRlICpzKQor IHsKKyB9CitAQCAtMjksMTAgKzQwLDM1IEBAIHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3Jl c2V0KFNNTVV2M1N0YXRlICpzKQorIHsKKyB9CisgCisrc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lv bk9wcyBtbWlvX2NtZHF2X29wcyA9IHsKKysgICAgLnJlYWQgPSB0ZWdyYTI0MV9jbWRxdl9yZWFk X21taW8sCisrICAgIC53cml0ZSA9IHRlZ3JhMjQxX2NtZHF2X3dyaXRlX21taW8sCisrICAgIC5l bmRpYW5uZXNzID0gREVWSUNFX0xJVFRMRV9FTkRJQU4sCisrICAgIC52YWxpZCA9IHsKKysgICAg ICAgIC5taW5fYWNjZXNzX3NpemUgPSA0LAorKyAgICAgICAgLm1heF9hY2Nlc3Nfc2l6ZSA9IDgs CisrICAgIH0sCisrICAgIC5pbXBsID0geworKyAgICAgICAgLm1pbl9hY2Nlc3Nfc2l6ZSA9IDQs CisrICAgICAgICAubWF4X2FjY2Vzc19zaXplID0gOCwKKysgICAgfSwKKyt9OworKworIHN0YXRp YyBib29sIHRlZ3JhMjQxX2NtZHF2X2luaXQoU01NVXYzU3RhdGUgKnMsIEVycm9yICoqZXJycCkK KyB7CistICAgIGVycm9yX3NldGcoZXJycCwgIk5WSURJQSBUZWdyYTI0MSBDTURRViBpcyB1bnN1 cHBvcnRlZCIpOworLSAgICByZXR1cm4gZmFsc2U7CisrICAgIFN5c0J1c0RldmljZSAqc2JkID0g U1lTX0JVU19ERVZJQ0UoT0JKRUNUKHMpKTsKKysgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwg PSBzLT5zX2FjY2VsOworKyAgICBUZWdyYTI0MUNNRFFWICpjbWRxdjsKKysKKysgICAgY21kcXYg PSBnX25ldzAoVGVncmEyNDFDTURRViwgMSk7CisrICAgIGNtZHF2LT5jbWRxdl9kYXRhID0gZ19u ZXcwKHN0cnVjdCBpb21tdV92aW9tbXVfdGVncmEyNDFfY21kcXYsIDEpOworKyAgICBtZW1vcnlf cmVnaW9uX2luaXRfaW8oJmNtZHF2LT5tbWlvX2NtZHF2LCBPQkpFQ1QocyksICZtbWlvX2NtZHF2 X29wcywgY21kcXYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAidGVncmEyNDEtY21kcXYi LCBURUdSQTI0MV9DTURRVl9JT19MRU4pOworKyAgICBzeXNidXNfaW5pdF9tbWlvKHNiZCwgJmNt ZHF2LT5tbWlvX2NtZHF2KTsKKysgICAgc3lzYnVzX2luaXRfaXJxKHNiZCwgJmNtZHF2LT5pcnEp OworKyAgICBjbWRxdi0+c19hY2NlbCA9IGFjY2VsOworKyAgICBhY2NlbC0+Y21kcXYgPSBjbWRx djsKKysgICAgcmV0dXJuIHRydWU7CisgfQorIAorIHN0YXRpYyBib29sIHRlZ3JhMjQxX2NtZHF2 X3Byb2JlKFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LAorZGlm ZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2 LmgKK2luZGV4IDM4YzhiMjdiNGQuLmE1ZjY1YTg5OTEgMTAwNjQ0CistLS0gYS9ody9hcm0vdGVn cmEyNDEtY21kcXYuaAorKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKK0BAIC0xNCw2ICsx NCwyNiBAQAorICNkZWZpbmUgQ01EUVZfTlVNX0NNRFFfTE9HMiAgICAgICAxCisgI2RlZmluZSBD TURRVl9OVU1fU0lEX1BFUl9WSV9MT0cyIDQKKyAKKysvKgorKyAqIFRlZ3JhMjQxIENNRFFWIE1N SU8gbGF5b3V0ICg2NEtCIHBhZ2VzKQorKyAqCisrICogMHgwMDAwMCAgKENNRFEtViBDb25maWcg cGFnZSkKKysgKiAweDEwMDAwICAoQ01EUS1WIENNRFEgUGFnZTApCisrICogMHgyMDAwMCAgKENN RFEtViBDTURRIFBhZ2UxKQorKyAqIDB4MzAwMDAgIChWaXJ0dWFsIEludGVyZmFjZSBQYWdlMCkK KysgKiAweDQwMDAwICAoVmlydHVhbCBJbnRlcmZhY2UgUGFnZTEpCisrICovCisrI2RlZmluZSBU RUdSQTI0MV9DTURRVl9JT19MRU4gMHg1MDAwMAorKworK3N0cnVjdCBpb21tdV92aW9tbXVfdGVn cmEyNDFfY21kcXY7CisrCisrdHlwZWRlZiBzdHJ1Y3QgVGVncmEyNDFDTURRViB7CisrICAgIHN0 cnVjdCBpb21tdV92aW9tbXVfdGVncmEyNDFfY21kcXYgKmNtZHF2X2RhdGE7CisrICAgIFNNTVV2 M0FjY2VsU3RhdGUgKnNfYWNjZWw7CisrICAgIE1lbW9yeVJlZ2lvbiBtbWlvX2NtZHF2OworKyAg ICBxZW11X2lycSBpcnE7CisrfSBUZWdyYTI0MUNNRFFWOworKworIGNvbnN0IFNNTVV2M0FjY2Vs Q21kcXZPcHMgKnRlZ3JhMjQxX2NtZHF2X2dldF9vcHModm9pZCk7CisgCisgI2VuZGlmIC8qIEhX X0FSTV9URUdSQTI0MV9DTURRVl9IICovCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3Zt LWh3LWFybS10ZWdyYTI0MS1jbWRxdi1JbXBsZW1lbnQtQ01EUVYtdklPTU1VLWFsbG9jLWYucGF0 Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUltcGxlbWVudC1DTURRVi12SU9NTVUtYWxs b2MtZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWE1NjE1Ci0t LSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1JbXBsZW1lbnQtQ01E UVYtdklPTU1VLWFsbG9jLWYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK0Zyb20gZWU5OWM5YmYz MWUzMGYyODRlMzc0ZDhiMDJjNDRiOGZkYWY0MTM5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBK dW4gMjAyNiAxMjoyNTozNCArMDEwMAorU3ViamVjdDogW1BBVENIIDA5Mi8xMTFdIGh3L2FybS90 ZWdyYTI0MS1jbWRxdjogSW1wbGVtZW50IENNRFFWIHZJT01NVQorIGFsbG9jL2ZyZWUKK01JTUUt VmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0Nv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2Ug Zm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgt QWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs5Mi8x MTFdIGY5MzIwMzZkNzIwYTEyNjgxY2I1NTE1ODQyNDIxZDNjZTU2ZTllMzAgKGVhdWdlcjEvY2Vu dG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dz ZS9SSEVMLTczNzk4CisKK1JlcGxhY2UgdGhlIHN0dWIgaW1wbGVtZW50YXRpb24gd2l0aCByZWFs IHZJT01NVSBhbGxvY2F0aW9uIGZvcgorVGVncmEyNDEgQ01EUVYuCisKK0FsbG9jYXRlIGEgbWF0 Y2hpbmcgdkVWRU5UUSB0b2dldGhlciB3aXRoIHRoZSB2SU9NTVUsIHNpbmNlIGl0IGlzCitzcGVj aWZpYyB0byB0aGUgVGVncmEyNDEgQ01EUVYgdklPTU1VIGFuZCB1c2VkIHRvIHJlY2VpdmUgQ01E UVYKK2V2ZW50cy4KKworRnJlZSBib3RoIG9iamVjdHMgb24gdGVhcmRvd24uCisKK1NpZ25lZC1v ZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hl biA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVt dGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMTQtc2tv bG90aHVtdGhvQG52aWRpYS5jb20KK0NvLWRldmVsb3BlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwg PHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDQz NzYzYTFhYjc2ZmI2MTgxMTliYjc2YjBlNGE5M2I1OTliNDBmMTMpCitTaWduZWQtb2ZmLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vdGVncmEyNDEt Y21kcXYuYyB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCisg aHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmggfCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEt Y21kcXYuYyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jCitpbmRleCAyODc1YWZmYzhkLi5jMTM1 MWM4NTE5IDEwMDY0NAorLS0tIGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKKysrKyBiL2h3L2Fy bS90ZWdyYTI0MS1jbWRxdi5jCitAQCAtMTAsNiArMTAsNyBAQAorICNpbmNsdWRlICJxZW11L29z ZGVwLmgiCisgCisgI2luY2x1ZGUgImh3L2FybS9zbW11djMuaCIKKysjaW5jbHVkZSAiaHcvYXJt L3NtbXV2My1jb21tb24uaCIKKyAjaW5jbHVkZSAic21tdXYzLWFjY2VsLmgiCisgI2luY2x1ZGUg InRlZ3JhMjQxLWNtZHF2LmgiCisgCitAQCAtMjYsMTMgKzI3LDU4IEBAIHN0YXRpYyB2b2lkIHRl Z3JhMjQxX2NtZHF2X3dyaXRlX21taW8odm9pZCAqb3BhcXVlLCBod2FkZHIgb2Zmc2V0LAorIAor IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmlvbW11KFNNTVV2M1N0YXRlICpzKQor IHsKKysgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworKyAgICBJT01N VUZEVmlvbW11ICp2aW9tbXUgPSBhY2NlbC0+dmlvbW11OworKyAgICBUZWdyYTI0MUNNRFFWICpj bWRxdiA9IGFjY2VsLT5jbWRxdjsKKysgICAgSU9NTVVGRFZldmVudHEgKnZldmVudHEgPSBjbWRx di0+dmV2ZW50cTsKKysKKysgICAgaWYgKCF2aW9tbXUpIHsKKysgICAgICAgIHJldHVybjsKKysg ICAgfQorKyAgICBpZiAodmV2ZW50cSkgeworKyAgICAgICAgY2xvc2UodmV2ZW50cS0+dmV2ZW50 cV9mZCk7CisrICAgICAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZCh2aW9tbXUtPmlvbW11ZmQs IHZldmVudHEtPnZldmVudHFfaWQpOworKyAgICAgICAgZ19mcmVlKHZldmVudHEpOworKyAgICAg ICAgY21kcXYtPnZldmVudHEgPSBOVUxMOworKyAgICB9CisrICAgIGlvbW11ZmRfYmFja2VuZF9m cmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgdmlvbW11LT52aW9tbXVfaWQpOworIH0KKyAKKyBzdGF0 aWMgYm9vbAorIHRlZ3JhMjQxX2NtZHF2X2FsbG9jX3Zpb21tdShTTU1VdjNTdGF0ZSAqcywgSG9z dElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKm91dF92aW9tbXVfaWQsIEVycm9yICoqZXJycCkKKyB7CistICAgIGVycm9yX3Nl dGcoZXJycCwgIk5WSURJQSBUZWdyYTI0MSBDTURRViBpcyB1bnN1cHBvcnRlZCIpOworKyAgICBU ZWdyYTI0MUNNRFFWICpjbWRxdiA9IHMtPnNfYWNjZWwtPmNtZHF2OworKyAgICB1aW50MzJfdCB2 aW9tbXVfaWQsIHZldmVudHFfaWQsIHZldmVudHFfZmQ7CisrICAgIElPTU1VRkRWZXZlbnRxICp2 ZXZlbnRxOworKworKyAgICBpZiAoIWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaWRldi0+ aW9tbXVmZCwgaWRldi0+ZGV2aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVV9WSU9NTVVfVFlQRV9URUdSQTI0MV9DTURRViwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkZXYtPmh3cHRfaWQsIGNtZHF2LT5jbWRxdl9kYXRhLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpjbWRxdi0+Y21k cXZfZGF0YSksICZ2aW9tbXVfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnJwKSkgeworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIGlm ICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZldmVudHEoaWRldi0+aW9tbXVmZCwgdmlvbW11X2lk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1ZFVkVOVFFf VFlQRV9URUdSQTI0MV9DTURRViwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAxIDw8IFNNTVVfRVZFTlRRUywgJnZldmVudHFfaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnZldmVudHFfZmQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJycCkpIHsKKysgICAgICAgIGVycm9yX2FwcGVuZF9oaW50KGVy cnAsICJUZWdyYTI0MSBDTURRVjogZmFpbGVkIHRvIGFsbG9jIHZldmVudHEiKTsKKysgICAgICAg IGdvdG8gZnJlZV92aW9tbXU7CisrICAgIH0KKysKKysgICAgdmV2ZW50cSA9IGdfbmV3KElPTU1V RkRWZXZlbnRxLCAxKTsKKysgICAgdmV2ZW50cS0+dmV2ZW50cV9pZCA9IHZldmVudHFfaWQ7Cisr ICAgIHZldmVudHEtPnZldmVudHFfZmQgPSB2ZXZlbnRxX2ZkOworKyAgICBjbWRxdi0+dmV2ZW50 cSA9IHZldmVudHE7CisrCisrICAgICpvdXRfdmlvbW11X2lkID0gdmlvbW11X2lkOworKyAgICBy ZXR1cm4gdHJ1ZTsKKysKKytmcmVlX3Zpb21tdToKKysgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVf aWQoaWRldi0+aW9tbXVmZCwgdmlvbW11X2lkKTsKKyAgICAgcmV0dXJuIGZhbHNlOworIH0KKyAK K2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEtY21kcXYuaCBiL2h3L2FybS90ZWdyYTI0MS1j bWRxdi5oCitpbmRleCBhNWY2NWE4OTkxLi45ZmM3MjBlOTZjIDEwMDY0NAorLS0tIGEvaHcvYXJt L3RlZ3JhMjQxLWNtZHF2LmgKKysrKyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oCitAQCAtMzIs NiArMzIsNyBAQCB0eXBlZGVmIHN0cnVjdCBUZWdyYTI0MUNNRFFWIHsKKyAgICAgU01NVXYzQWNj ZWxTdGF0ZSAqc19hY2NlbDsKKyAgICAgTWVtb3J5UmVnaW9uIG1taW9fY21kcXY7CisgICAgIHFl bXVfaXJxIGlycTsKKysgICAgSU9NTVVGRFZldmVudHEgKnZldmVudHE7CisgfSBUZWdyYTI0MUNN RFFWOworIAorIGNvbnN0IFNNTVV2M0FjY2VsQ21kcXZPcHMgKnRlZ3JhMjQxX2NtZHF2X2dldF9v cHModm9pZCk7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS10ZWdyYTI0 MS1jbWRxdi1Jbml0aWFsaXplLXJlZ2lzdGVyLXN0YXRlLW9uLXIucGF0Y2ggYi9rdm0taHctYXJt LXRlZ3JhMjQxLWNtZHF2LUluaXRpYWxpemUtcmVnaXN0ZXItc3RhdGUtb24tci5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTQyNTQ3Ci0tLSAvZGV2L251bGwKKysr IGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1Jbml0aWFsaXplLXJlZ2lzdGVyLXN0YXRlLW9u LXIucGF0Y2gKQEAgLTAsMCArMSwxMjAgQEAKK0Zyb20gM2QwODYwZDM0MWE2Y2ZiNTgwY2IxZjUz NjlmYzQyYzhlNWVkZjdlNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pY29saW4g Q2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTo0 NSArMDEwMAorU3ViamVjdDogW1BBVENIIDEwMy8xMTFdIGh3L2FybS90ZWdyYTI0MS1jbWRxdjog SW5pdGlhbGl6ZSByZWdpc3RlciBzdGF0ZSBvbgorIHJlc2V0CitNSU1FLVZlcnNpb246IDEuMAor Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRl ZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQt Ynk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZp biBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTAzLzExMV0gYzdkOTE3MjUw MmYyZTNhYjg3ZTkyMDViODE0ZjVmNmU4MDYzN2VlZSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0p CisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgK KworSW5pdGlhbGl6ZSB0aGUgVGVncmEyNDEgQ01EUVYgcmVnaXN0ZXIgc3RhdGUgaW4gdGhlIHJl c2V0IGhhbmRsZXIuCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1v ZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVk LWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2 MDYwOTExMjU1Mi4zNzg5OTktMjUtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYt Ynk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IGFlMWE2YTY5YzAwMmZjMzMxODYxYmU1MDVkNjQxMDE0MTk4YmMzM2Up CitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0K KyBody9hcm0vdGVncmEyNDEtY21kcXYuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCisgaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmggfCAgMyArKysKKyBody9hcm0v dHJhY2UtZXZlbnRzICAgICB8ICAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo KykKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcvYXJtL3RlZ3Jh MjQxLWNtZHF2LmMKK2luZGV4IDcxZDAyYWU3NDAuLjY4MDRmMGJiN2UgMTAwNjQ0CistLS0gYS9o dy9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK0BA IC04NjMsNiArODYzLDQyIEBAIGZyZWVfdmlvbW11OgorICAgICByZXR1cm4gZmFsc2U7CisgfQor IAorK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2luaXRfcmVncyhTTU1VdjNTdGF0ZSAqcywg VGVncmEyNDFDTURRViAqY21kcXYpCisreworKyAgICBpbnQgaTsKKysKKysgICAgY21kcXYtPmNv bmZpZyA9IFZfQ09ORklHX1JFU0VUOworKyAgICBjbWRxdi0+cGFyYW0gPSBGSUVMRF9EUDMyKDAs IFBBUkFNLCBDTURRVl9WRVIsIENNRFFWX1ZFUik7CisrICAgIGNtZHF2LT5wYXJhbSA9IEZJRUxE X0RQMzIoY21kcXYtPnBhcmFtLCBQQVJBTSwgQ01EUVZfTlVNX0NNRFFfTE9HMiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDTURRVl9OVU1fQ01EUV9MT0cyKTsKKysgICAgY21kcXYt PnBhcmFtID0gRklFTERfRFAzMihjbWRxdi0+cGFyYW0sIFBBUkFNLCBDTURRVl9OVU1fU0lEX1BF Ul9WSV9MT0cyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNRFFWX05VTV9TSURf UEVSX1ZJX0xPRzIpOworKyAgICB0cmFjZV90ZWdyYTI0MV9jbWRxdl9pbml0X3JlZ3MoY21kcXYt PnBhcmFtKTsKKysgICAgY21kcXYtPnN0YXR1cyA9IFJfU1RBVFVTX0NNRFFWX0VOQUJMRURfTUFT SzsKKysKKysgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworKyAgICAgICAgY21kcXYtPnZp X2Vycl9tYXBbaV0gPSAwOworKyAgICAgICAgY21kcXYtPnZpX2ludF9tYXNrW2ldID0gMDsKKysg ICAgfQorKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisrICAgICAgICBjbWRxdi0+Y21k cV9lcnJfbWFwW2ldID0gMDsKKysgICAgICAgIGNtZHF2LT52aW50Zl9jbWRxX2Vycl9tYXBbaV0g PSAwOworKyAgICB9CisrICAgIGNtZHF2LT52aW50Zl9jb25maWcgPSAwOworKyAgICBjbWRxdi0+ dmludGZfc3RhdHVzID0gMDsKKysgICAgZm9yIChpID0gMDsgaSA8IFRFR1JBMjQxX0NNRFFWX01B WF9DTURROyBpKyspIHsKKysgICAgICAgIGNtZHF2LT5jbWRxX2FsbG9jX21hcFtpXSA9IDA7Cisr ICAgICAgICBjbWRxdi0+dmNtZHFfY29uc19pbmR4W2ldID0gMDsKKysgICAgICAgIGNtZHF2LT52 Y21kcV9wcm9kX2luZHhbaV0gPSAwOworKyAgICAgICAgY21kcXYtPnZjbWRxX2NvbmZpZ1tpXSA9 IDA7CisrICAgICAgICBjbWRxdi0+dmNtZHFfc3RhdHVzW2ldID0gMDsKKysgICAgICAgIGNtZHF2 LT52Y21kcV9nZXJyb3JbaV0gPSAwOworKyAgICAgICAgY21kcXYtPnZjbWRxX2dlcnJvcm5baV0g PSAwOworKyAgICAgICAgY21kcXYtPnZjbWRxX2Jhc2VbaV0gPSAwOworKyAgICAgICAgY21kcXYt PnZjbWRxX2NvbnNfaW5keF9iYXNlW2ldID0gMDsKKysgICAgfQorK30KKysKKyBzdGF0aWMgdm9p ZCB0ZWdyYTI0MV9jbWRxdl9yZXNldChTTU1VdjNTdGF0ZSAqcykKKyB7CisgICAgIFRlZ3JhMjQx Q01EUVYgKmNtZHF2ID0gcy0+c19hY2NlbC0+Y21kcXY7CitAQCAtODczLDYgKzkwOSw4IEBAIHN0 YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3Jlc2V0KFNNTVV2M1N0YXRlICpzKQorIAorICAgICB0 ZWdyYTI0MV9jbWRxdl9ndWVzdF91bm1hcF92aW50Zl9wYWdlMChjbWRxdik7CisgICAgIHRlZ3Jh MjQxX2NtZHF2X2ZyZWVfYWxsX3ZjbWRxKGNtZHF2KTsKKysKKysgICAgdGVncmEyNDFfY21kcXZf aW5pdF9yZWdzKHMsIGNtZHF2KTsKKyB9CisgCisgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9w cyBtbWlvX2NtZHF2X29wcyA9IHsKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEtY21kcXYu aCBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oCitpbmRleCAwOTY0ZjY4YTIwLi5hOTI0ZTdlOTBm IDEwMDY0NAorLS0tIGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKKysrKyBiL2h3L2FybS90ZWdy YTI0MS1jbWRxdi5oCitAQCAtODksNiArODksOSBAQCBGSUVMRChDT05GSUcsIENNRFFfTUFYX0NM S19CQVRDSCwgNCwgOCkKKyBGSUVMRChDT05GSUcsIENNRFFfTUFYX0NNRF9CQVRDSCwgMTIsIDgp CisgRklFTEQoQ09ORklHLCBDT05TX0RSQU1fRU4sIDIwLCAxKQorIAorKy8qIENNRFFWX0VOPTEs IFBFUl9DTURfT0ZGU0VUPTE2QiwgQ0xLX0JBVENIPTI1NiwgQ01EX0JBVENIPTMyLiAqLworKyNk ZWZpbmUgVl9DT05GSUdfUkVTRVQgMHgwMDAyMDA4MworKworIFJFRzMyKFBBUkFNLCAweDQpCisg RklFTEQoUEFSQU0sIENNRFFWX1ZFUiwgMCwgNCkKKyBGSUVMRChQQVJBTSwgQ01EUVZfTlVNX0NN RFFfTE9HMiwgNCwgNCkKK2RpZmYgLS1naXQgYS9ody9hcm0vdHJhY2UtZXZlbnRzIGIvaHcvYXJt L3RyYWNlLWV2ZW50cworaW5kZXggZGJlZDAwYWZiYi4uMGJkNzE4YjFhYiAxMDA2NDQKKy0tLSBh L2h3L2FybS90cmFjZS1ldmVudHMKKysrKyBiL2h3L2FybS90cmFjZS1ldmVudHMKK0BAIC03Niw2 ICs3Niw3IEBAIHNtbXV2M19hY2NlbF9pbnN0YWxsX3N0ZSh1aW50MzJfdCB2c2lkLCBjb25zdCBj aGFyICogdHlwZSwgdWludDMyX3QgaHdwdF9pZCkgInZTCisgdGVncmEyNDFfY21kcXZfcmVhZF9t bWlvKHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgdmFsLCB1bnNpZ25lZCBzaXplKSAib2Zmc2V0 OiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQiIHNpemU6IDB4JXgiCisgdGVncmEyNDFfY21k cXZfd3JpdGVfbW1pbyh1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHZhbCwgdW5zaWduZWQgc2l6 ZSkgIm9mZnNldDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0IiBzaXplOiAweCV4IgorIHRl Z3JhMjQxX2NtZHF2X2Vycl9tYXAodWludDMyX3QgbWFwMywgdWludDMyX3QgbWFwMiwgdWludDMy X3QgbWFwMSwgdWludDMyX3QgbWFwMCkgImh3IGlycSByZWNlaXZlZC4gZXJyb3IgKGhleCkgbWFw czogJTA0WDolMDRYOiUwNFg6JTA0WCIKKyt0ZWdyYTI0MV9jbWRxdl9pbml0X3JlZ3ModWludDMy X3QgcGFyYW0pICJyZWdpc3RlciBpbml0LCBwYXJhbT0weCUwOFgiCisgdGVncmEyNDFfY21kcXZf cmVhZF92Y21kcV9wYWdlMChpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0dXJlLCBjb25zdCBj aGFyICpiYWNraW5nLCB1aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2Y21kcVslZF0g JXMgKCVzKSBvZmZzZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKyB0ZWdyYTI0MV9j bWRxdl9yZWFkX3ZjbWRxX3BhZ2UxKGludCBpbmRleCwgY29uc3QgY2hhciAqYXBlcnR1cmUsIHVp bnQ2NF90IG9mZnNldDAsIHVpbnQ2NF90IHZhbCkgInZjbWRxWyVkXSAlcyBvZmZzZXQwOiAweCUi UFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKyB0ZWdyYTI0MV9jbWRxdl93cml0ZV92Y21kcV9wYWdl MChpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0dXJlLCBjb25zdCBjaGFyICpiYWNraW5nLCB1 aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2Y21kcVslZF0gJXMgKCVzKSBvZmZzZXQw OiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUxpbWl0LXF1ZXVlLXNpemUtYmFzZWQtb24tYmFj ay5wYXRjaCBiL2t2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtTGltaXQtcXVldWUtc2l6ZS1iYXNl ZC1vbi1iYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYTJl NDMKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUxpbWl0LXF1 ZXVlLXNpemUtYmFzZWQtb24tYmFjay5wYXRjaApAQCAtMCwwICsxLDk3IEBACitGcm9tIGU4NzIz MDg4OTk5OWQxOWI1YmIwNDU2NzBjY2E1NzIxZTRlOTI1MzMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitEYXRlOiBUdWUs IDkgSnVuIDIwMjYgMTI6MjU6NDYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxMDQvMTExXSBody9h cm0vdGVncmEyNDEtY21kcXY6IExpbWl0IHF1ZXVlIHNpemUgYmFzZWQgb24KKyBiYWNrZW5kIHBh Z2Ugc2l6ZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6 IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1 OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgt SmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJl ZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JI LUNvbW1pdDogWzEwNC8xMTFdIGEzYzRlYzg3NTI3MjE2MWNmNDE3OTFhOTgwNmE0YTA4NWE2NTlm ZmEgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxh c3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK0NNRFFWIEhXIHBlcmZvcm1zIERNQSBhY2Nl c3NlcyB0byBndWVzdCBxdWV1ZSBtZW1vcnkgYnkgaXRzIGhvc3QKK3BoeXNpY2FsIGFkZHJlc3Mg c2V0IHVwIHZpYSBJT01NVUZELiBUaGlzIHJlcXVpcmVzIHRoZSBndWVzdCBxdWV1ZQordG8gYmUg Y29udGlndW91cyBpbiBib3RoIGd1ZXN0IFBBIGFuZCBob3N0IFBBIHNwYWNlLiBXaXRoIFRlZ3Jh MjQxCitDTURRViBlbmFibGVkLCB3ZSBtdXN0IG9ubHkgYWR2ZXJ0aXNlIGEgY29tbWFuZCBxdWV1 ZSBzaXplIChDTURRUykKK3RoYXQgdGhlIGhvc3QgY2FuIHNhZmVseSBiYWNrIHdpdGggcGh5c2lj YWxseSBjb250aWd1b3VzIG1lbW9yeS4KK0FsbG93aW5nIGEgcXVldWUgc2l6ZSBsYXJnZXIgdGhh biB0aGUgaG9zdCBwYWdlIHNpemUgY291bGQgY2F1c2UKK3RoZSBoYXJkd2FyZSB0byBETUEgYWNy b3NzIHBhZ2UgYm91bmRhcmllcywgbGVhZGluZyB0byBmYXVsdHMuCisKK1VzZSBxZW11X21pbnJh bXBhZ2VzaXplKCkgdG8gZmluZCB0aGUgc21hbGxlc3QgbWVtb3J5LWJhY2tlbmQgcGFnZQorc2l6 ZSBpbiB1c2UsIHRoZW4gY2FwIElEUjEuQ01EUVMgc28gdGhlIGd1ZXN0IGNhbm5vdCBjb25maWd1 cmUgYQorY29tbWFuZCBxdWV1ZSB0aGF0IGV4Y2VlZHMgdGhhdCBjb250aWd1b3VzIGJhY2tpbmcu CisKK05vdGUgdGhpcyBpcyBkb25lIGF0IFNNTVV2MyBpbml0LCBiZWZvcmUgYW55IGd1ZXN0IHF1 ZXVlIEdQQSBpcwora25vd24sIHNvIHRoZSBjYXAgaXMgY29uc2VydmF0aXZlLiBNYXhpbXVtIHF1 ZXVlIHNpemUgaXMgOE1pQjsKK2l0IGlzIHJlY29tbWVuZGVkIHRvIGJhY2sgdGhlIFZNIHdpdGgg aHVnZXBhZ2Ugc2l6ZXMgbGFyZ2UgZW5vdWdoCitzbyBDTURRUyBzdGF5cyBhdCB0aGUgSFcgbWF4 aW11bS4gU21hbGxlciBiYWNraW5nIHBhZ2VzIHJlZHVjZQorQ01EUVMgYWNjb3JkaW5nbHkuCisK K1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3Rl ZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIg S29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5 OTktMjYtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRl bGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDA1NTJmOTRmYmRiNmQyYTNjZWUyOTI5MTEzNTMyNDFiMWJhNTM0Y2QpCitTaWduZWQtb2ZmLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vdGVncmEy NDEtY21kcXYuYyB8IDIwICsrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDIw IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIv aHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IDY4MDRmMGJiN2UuLmE0YzE0MGUzNGMgMTAw NjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQx LWNtZHF2LmMKK0BAIC0xNCw2ICsxNCw4IEBACisgI2luY2x1ZGUgImh3L2FybS9zbW11djMtY29t bW9uLmgiCisgI2luY2x1ZGUgImh3L2lycS5oIgorICNpbmNsdWRlICJzbW11djMtYWNjZWwuaCIK KysjaW5jbHVkZSAic21tdXYzLWludGVybmFsLmgiCisrI2luY2x1ZGUgInN5c3RlbS9ob3N0bWVt LmgiCisgI2luY2x1ZGUgInRlZ3JhMjQxLWNtZHF2LmgiCisgI2luY2x1ZGUgInRyYWNlLmgiCisg CitAQCAtODY2LDYgKzg2OCw4IEBAIGZyZWVfdmlvbW11OgorIHN0YXRpYyB2b2lkIHRlZ3JhMjQx X2NtZHF2X2luaXRfcmVncyhTTU1VdjNTdGF0ZSAqcywgVGVncmEyNDFDTURRViAqY21kcXYpCisg eworICAgICBpbnQgaTsKKysgICAgbG9uZyBwZ3NpemU7CisrICAgIHVpbnQzMl90IHZhbDsKKyAK KyAgICAgY21kcXYtPmNvbmZpZyA9IFZfQ09ORklHX1JFU0VUOworICAgICBjbWRxdi0+cGFyYW0g PSBGSUVMRF9EUDMyKDAsIFBBUkFNLCBDTURRVl9WRVIsIENNRFFWX1ZFUik7CitAQCAtODk3LDYg KzkwMSwyMiBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9pbml0X3JlZ3MoU01NVXYzU3Rh dGUgKnMsIFRlZ3JhMjQxQ01EUVYgKmNtZHF2KQorICAgICAgICAgY21kcXYtPnZjbWRxX2Jhc2Vb aV0gPSAwOworICAgICAgICAgY21kcXYtPnZjbWRxX2NvbnNfaW5keF9iYXNlW2ldID0gMDsKKyAg ICAgfQorKworKyAgICAvKgorKyAgICAgKiBDTURRIG11c3Qgbm90IGNyb3NzIGEgcGh5c2ljYWwg UkFNIGJhY2tlbmQgcGFnZS4gQWRqdXN0IENNRFFTIHNvIHRoZQorKyAgICAgKiBxdWV1ZSBmaXRz IGVudGlyZWx5IHdpdGhpbiB0aGUgc21hbGxlc3QgYmFja2VuZCBwYWdlIHNpemUsIGVuc3VyaW5n CisrICAgICAqIHRoZSBjb21tYW5kIHF1ZXVlIGlzIHBoeXNpY2FsbHkgY29udGlndW91cyBpbiBo b3N0IG1lbW9yeS4KKysgICAgICoKKysgICAgICogICBJRFIxLkNNRFFTID0gbG9nMihtYXhfcXN6 KSAtIGVudHJ5X3NoaWZ0CisrICAgICAqCisrICAgICAqIHdoZXJlIGVudHJ5X3NoaWZ0ID0gNCAo ZWFjaCBDTURRIGVudHJ5IGlzIDE2IGJ5dGVzID0gMl40KS4KKysgICAgICovCisrICAgIHBnc2l6 ZSA9IHFlbXVfbWlucmFtcGFnZXNpemUoKTsKKysgICAgaWYgKHBnc2l6ZSA9PSBMT05HX01BWCkg eworKyAgICAgICAgcGdzaXplID0gcWVtdV9yZWFsX2hvc3RfcGFnZV9zaXplKCk7CisrICAgIH0K KysgICAgdmFsID0gRklFTERfRVgzMihzLT5pZHJbMV0sIElEUjEsIENNRFFTKTsKKysgICAgcy0+ aWRyWzFdID0gRklFTERfRFAzMihzLT5pZHJbMV0sIElEUjEsIENNRFFTLCBNSU4oY3R6NjQocGdz aXplKSAtIDQsIHZhbCkpOworIH0KKyAKKyBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9yZXNl dChTTU1VdjNTdGF0ZSAqcykKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJt LXRlZ3JhMjQxLWNtZHF2LVByb2JlLWhvc3QtVGVncmEyNDEtQ01EUVYtc3VwcC5wYXRjaCBiL2t2 bS1ody1hcm0tdGVncmEyNDEtY21kcXYtUHJvYmUtaG9zdC1UZWdyYTI0MS1DTURRVi1zdXBwLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OGIxOTQKLS0tIC9kZXYv bnVsbAorKysgYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVByb2JlLWhvc3QtVGVncmEyNDEt Q01EUVYtc3VwcC5wYXRjaApAQCAtMCwwICsxLDEwMyBAQAorRnJvbSAyODg2YTJjMWIwMDlmOTkz MjdkYTRiNjkxYzMwZjdkMDE0OWYxOGU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog U2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUdWUsIDkg SnVuIDIwMjYgMTI6MjU6MzEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAwODkvMTExXSBody9hcm0v dGVncmEyNDEtY21kcXY6IFByb2JlIGhvc3QgVGVncmEyNDEgQ01EUVYKKyBzdXBwb3J0CitNSU1F LVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNl IGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JI LUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbODkv MTExXSAyZGZkN2YyNGI4MzAwZjIyMmIzYmUwNTQ5OTZkM2JkMTdhYWJmOWU2IChlYXVnZXIxL2Nl bnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93 c2UvUkhFTC03Mzc5OAorCitVc2UgSU9NTVVfR0VUX0hXX0lORk8gdG8gcXVlcnkgaG9zdCBzdXBw b3J0IGZvciBUZWdyYTI0MSBDTURRVi4KKworVmFsaWRhdGUgdGhlIHJldHVybmVkIGRhdGEgdHlw ZSwgdmVyc2lvbiwgYW5kIG1pbmltdW0gbnVtYmVyIG9mIHZDTURRcyBhbmQKK1NJRHMgcGVyIFRl Z3JhMjQxIENNRFEgVmlydHVhbCBJbnRlcmZhY2UoVkkpLiBGYWlsIHRoZSBwcm9iZSBpZiB0aGUg aG9zdAorZG9lcyBub3QgbWVldCB0aGVzZSByZXF1aXJlbWVudHMuCisKK1RoZSBRRU1VIG1vZGVs IHN1cHBvcnRzIG9uZSBWaXJ0dWFsIEludGVyZmFjZShWSSkgcGVyIFZNIHdpdGggMiB2Q01EUXMg YW5kCisxNiBTSURzIHBlciBWSSwgc28gdGhlIHByb2JlIGVuc3VyZXMgdGhlIGhvc3QgaW1wbGVt ZW50YXRpb24gaXMgY29tcGF0aWJsZQord2l0aCB0aGVzZSBsaW1pdHMuCisKK1Jldmlld2VkLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xp biBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5p Y29saW5jQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29s b3RodW10aG9AbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorTWVzc2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTExLXNrb2xvdGh1 bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlk ZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2MWU3ZGU4NDIwODVm MzEzY2FiMGJlNGYxYjI5NmYzZGVjNTJiNWEyKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgfCAz MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIGh3L2FybS90ZWdyYTI0MS1jbWRx di5oIHwgIDQgKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jIGIvaHcvYXJt L3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IGFkNWEwZDQ2MTEuLjNhMTlhMWFmNTYgMTAwNjQ0Cist LS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2 LmMKK0BAIC0zOCw4ICszOCwzNiBAQCBzdGF0aWMgYm9vbCB0ZWdyYTI0MV9jbWRxdl9pbml0KFNN TVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgc3RhdGljIGJvb2wgdGVncmEyNDFfY21kcXZf cHJvYmUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsKKy0gICAgZXJy b3Jfc2V0ZyhlcnJwLCAiTlZJRElBIFRlZ3JhMjQxIENNRFFWIGlzIHVuc3VwcG9ydGVkIik7Cist ICAgIHJldHVybiBmYWxzZTsKKysgICAgdWludDMyX3QgZGF0YV90eXBlID0gSU9NTVVfSFdfSU5G T19UWVBFX1RFR1JBMjQxX0NNRFFWOworKyAgICBzdHJ1Y3QgaW9tbXVfaHdfaW5mb190ZWdyYTI0 MV9jbWRxdiBjbWRxdl9pbmZvOworKyAgICB1aW50NjRfdCBjYXBzOworKworKyAgICBpZiAoIWlv bW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2luZm8oaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQs ICZkYXRhX3R5cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm Y21kcXZfaW5mbywgc2l6ZW9mKGNtZHF2X2luZm8pLCAmY2FwcywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVycnApKSB7CisrICAgICAgICByZXR1cm4g ZmFsc2U7CisrICAgIH0KKysgICAgaWYgKGRhdGFfdHlwZSAhPSBJT01NVV9IV19JTkZPX1RZUEVf VEVHUkEyNDFfQ01EUVYpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkhvc3QgQ01EUVY6 IHVuZXhwZWN0ZWQgZGF0YSB0eXBlICV1IChleHBlY3RlZCAldSkiLAorKyAgICAgICAgICAgICAg ICAgICBkYXRhX3R5cGUsIElPTU1VX0hXX0lORk9fVFlQRV9URUdSQTI0MV9DTURRVik7CisrICAg ICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysgICAgaWYgKGNtZHF2X2luZm8udmVyc2lvbiAh PSBDTURRVl9WRVIpIHsKKysgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkhvc3QgQ01EUVY6IHVu c3VwcG9ydGVkIHZlcnNpb24gJXUgKGV4cGVjdGVkICV1KSIsCisrICAgICAgICAgICAgICAgICAg IGNtZHF2X2luZm8udmVyc2lvbiwgQ01EUVZfVkVSKTsKKysgICAgICAgIHJldHVybiBmYWxzZTsK KysgICAgfQorKyAgICBpZiAoY21kcXZfaW5mby5sb2cydmNtZHFzIDwgQ01EUVZfTlVNX0NNRFFf TE9HMikgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9zdCBDTURRVjogaW5zdWZmaWNp ZW50IHZDTURRcyBsb2cyPSV1IChuZWVkID49ICV1KSIsCisrICAgICAgICAgICAgICAgICAgIGNt ZHF2X2luZm8ubG9nMnZjbWRxcywgQ01EUVZfTlVNX0NNRFFfTE9HMik7CisrICAgICAgICByZXR1 cm4gZmFsc2U7CisrICAgIH0KKysgICAgaWYgKGNtZHF2X2luZm8ubG9nMnZzaWRzIDwgQ01EUVZf TlVNX1NJRF9QRVJfVklfTE9HMikgeworKyAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiSG9zdCBD TURRVjogaW5zdWZmaWNpZW50IFNJRHMgbG9nMj0ldSAobmVlZCA+PSAldSkiLAorKyAgICAgICAg ICAgICAgICAgICBjbWRxdl9pbmZvLmxvZzJ2c2lkcywgQ01EUVZfTlVNX1NJRF9QRVJfVklfTE9H Mik7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysgICAgcmV0dXJuIHRydWU7Cisg fQorIAorIHN0YXRpYyBjb25zdCBTTU1VdjNBY2NlbENtZHF2T3BzIHRlZ3JhMjQxX2NtZHF2X29w cyA9IHsKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEtY21kcXYuaCBiL2h3L2FybS90ZWdy YTI0MS1jbWRxdi5oCitpbmRleCA3NGE2OTU0MDE3Li4zOGM4YjI3YjRkIDEwMDY0NAorLS0tIGEv aHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKKysrKyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oCitA QCAtMTAsNiArMTAsMTAgQEAKKyAjaWZuZGVmIEhXX0FSTV9URUdSQTI0MV9DTURRVl9ICisgI2Rl ZmluZSBIV19BUk1fVEVHUkEyNDFfQ01EUVZfSAorIAorKyNkZWZpbmUgQ01EUVZfVkVSICAgICAg ICAgICAgICAgICAxCisrI2RlZmluZSBDTURRVl9OVU1fQ01EUV9MT0cyICAgICAgIDEKKysjZGVm aW5lIENNRFFWX05VTV9TSURfUEVSX1ZJX0xPRzIgNAorKworIGNvbnN0IFNNTVV2M0FjY2VsQ21k cXZPcHMgKnRlZ3JhMjQxX2NtZHF2X2dldF9vcHModm9pZCk7CisgCisgI2VuZGlmIC8qIEhXX0FS TV9URUdSQTI0MV9DTURRVl9IICovCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3 LWFybS10ZWdyYTI0MS1jbWRxdi1SZWFkLWFuZC1wcm9wYWdhdGUtVGVncmEyNDEtQ00ucGF0Y2gg Yi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVJlYWQtYW5kLXByb3BhZ2F0ZS1UZWdyYTI0MS1D TS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWIwMzc3Ci0tLSAv ZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1SZWFkLWFuZC1wcm9wYWdh dGUtVGVncmEyNDEtQ00ucGF0Y2gKQEAgLTAsMCArMSwxNjUgQEAKK0Zyb20gODlmYjFhZjU3OWUx OTk2N2NiMGFmNmU3Nzk4MjdhNTI2Y2E5NTk4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVHVl LCA5IEp1biAyMDI2IDEyOjI1OjQ0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMTAyLzExMV0gaHcv YXJtL3RlZ3JhMjQxLWNtZHF2OiBSZWFkIGFuZCBwcm9wYWdhdGUgVGVncmEyNDEKKyBDTURRViBl cnJvcnMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTog U01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUpp cmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRo YXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1D b21taXQ6IFsxMDIvMTExXSBiNGYxYmIyYTczOWEzNTdjZGYyYjE0NWMwYmU1YTkzYzliNzcxMTcx IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworQ29uZmxpY3RzOiBody9jb3JlL2lycS5oIHJl cGxhY2VkIGJ5IGh3L2lycS5oIGluIGh3L2FybS90ZWdyYTI0MS1jbWRxdi5jCisKK0pJUkE6IGh0 dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworSW5zdGFsbCBh biBldmVudCBoYW5kbGVyIG9uIHRoZSBDTURRViB2RVZFTlRRIGZkIHRvIHJlYWQgYW5kIHByb3Bh Z2F0ZQoraG9zdCByZWNlaXZlZCBDTURRViBlcnJvcnMgdG8gdGhlIGd1ZXN0LgorCitUaGUgaGFu ZGxlciBydW5zIGluIFFFTVUncyBtYWluIGxvb3AsIHVzaW5nIGEgbm9uLWJsb2NraW5nIGZkIHJl Z2lzdGVyZWQKK3ZpYSBxZW11X3NldF9mZF9oYW5kbGVyKCkuCisKK1Jldmlld2VkLWJ5OiBOaWNv bGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5j QG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorTWVzc2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTI0LXNrb2xvdGh1bXRob0Bu dmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxp bmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxZGU1MjYxMmYzZmYzMzk1OThi OGMxOWVlNWNhYTU2M2EzNzFhMzIzKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgfCA2MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGh3L2FybS90cmFjZS1ldmVu dHMgICAgIHwgIDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKQorCitkaWZm IC0tZ2l0IGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgYi9ody9hcm0vdGVncmEyNDEtY21kcXYu YworaW5kZXggNzI2NGI0YmZhOS4uNzFkMDJhZTc0MCAxMDA2NDQKKy0tLSBhL2h3L2FybS90ZWdy YTI0MS1jbWRxdi5jCisrKysgYi9ody9hcm0vdGVncmEyNDEtY21kcXYuYworQEAgLTEyLDYgKzEy LDcgQEAKKyAKKyAjaW5jbHVkZSAiaHcvYXJtL3NtbXV2My5oIgorICNpbmNsdWRlICJody9hcm0v c21tdXYzLWNvbW1vbi5oIgorKyNpbmNsdWRlICJody9pcnEuaCIKKyAjaW5jbHVkZSAic21tdXYz LWFjY2VsLmgiCisgI2luY2x1ZGUgInRlZ3JhMjQxLWNtZHF2LmgiCisgI2luY2x1ZGUgInRyYWNl LmgiCitAQCAtNzI5LDYgKzczMCw1MSBAQCBvdXQ6CisgICAgIHRyYWNlX3RlZ3JhMjQxX2NtZHF2 X3dyaXRlX21taW8ob2Zmc2V0LCB2YWx1ZSwgc2l6ZSk7CisgfQorIAorK3N0YXRpYyB2b2lkIHRl Z3JhMjQxX2NtZHF2X2V2ZW50X3JlYWQodm9pZCAqb3BhcXVlKQorK3sKKysgICAgVGVncmEyNDFD TURRViAqY21kcXYgPSBvcGFxdWU7CisrICAgIElPTU1VRkRWZXZlbnRxICp2ZXZlbnRxID0gY21k cXYtPnZldmVudHE7CisrICAgIHN0cnVjdCB7CisrICAgICAgICBzdHJ1Y3QgaW9tbXVmZF92ZXZl bnRfaGVhZGVyIGhkcjsKKysgICAgICAgIHN0cnVjdCBpb21tdV92ZXZlbnRfdGVncmEyNDFfY21k cXYgdmV2ZW50OworKyAgICB9IGJ1ZjsKKysgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7Cisr CisrICAgIGlmICghc21tdXYzX2FjY2VsX2V2ZW50X3JlYWRfdmFsaWRhdGUodmV2ZW50cSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9WRVZFTlRRX1RZ UEVfVEVHUkEyNDFfQ01EUVYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmJ1Ziwgc2l6ZW9mKGJ1ZiksICZsb2NhbF9lcnIpKSB7CisrICAgICAgICB3YXJuX3Jl cG9ydF9lcnJfb25jZShsb2NhbF9lcnIpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisr ICAgIGlmIChidWYudmV2ZW50Lmx2Y21kcV9lcnJfbWFwWzBdIHx8IGJ1Zi52ZXZlbnQubHZjbWRx X2Vycl9tYXBbMV0pIHsKKysgICAgICAgIGNtZHF2LT52aW50Zl9jbWRxX2Vycl9tYXBbMF0gPQor KyAgICAgICAgICAgIGV4dHJhY3Q2NChidWYudmV2ZW50Lmx2Y21kcV9lcnJfbWFwWzBdLCAwLCAz Mik7CisrICAgICAgICBjbWRxdi0+dmludGZfY21kcV9lcnJfbWFwWzFdID0KKysgICAgICAgICAg ICBleHRyYWN0NjQoYnVmLnZldmVudC5sdmNtZHFfZXJyX21hcFswXSwgMzIsIDMyKTsKKysgICAg ICAgIGNtZHF2LT52aW50Zl9jbWRxX2Vycl9tYXBbMl0gPQorKyAgICAgICAgICAgIGV4dHJhY3Q2 NChidWYudmV2ZW50Lmx2Y21kcV9lcnJfbWFwWzFdLCAwLCAzMik7CisrICAgICAgICBjbWRxdi0+ dmludGZfY21kcV9lcnJfbWFwWzNdID0KKysgICAgICAgICAgICBleHRyYWN0NjQoYnVmLnZldmVu dC5sdmNtZHFfZXJyX21hcFsxXSwgMzIsIDMyKTsKKysgICAgICAgIC8qCisrICAgICAgICAgKiBD TURRVl9DTURRX0VSUl9NQVAgYW5kIFZJTlRGMF9MVkNNRFFfRVJSX01BUCBhcmUgZGlzdGluY3QK KysgICAgICAgICAqIHJlZ2lzdGVycyAoZGlmZmVyZW50IE1NSU8gb2Zmc2V0cykuIFdpdGggb25s eSBWSU5URjAgZXhwb3NlZAorKyAgICAgICAgICogdGhleSBjYXJyeSB0aGUgc2FtZSBkYXRhLCBz byBtaXJyb3IuCisrICAgICAgICAgKi8KKysgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsg aSsrKSB7CisrICAgICAgICAgICAgY21kcXYtPmNtZHFfZXJyX21hcFtpXSA9IGNtZHF2LT52aW50 Zl9jbWRxX2Vycl9tYXBbaV07CisrICAgICAgICB9CisrICAgICAgICAvKiBTZXQgdGhlIFZJTlRG MCBiaXQgaW4gVklfRVJSX01BUF8wIChvbmx5IFZJTlRGMCBpcyBleHBvc2VkKS4gKi8KKysgICAg ICAgIGNtZHF2LT52aV9lcnJfbWFwWzBdIHw9IEJJVCgwKTsKKysgICAgICAgIGlmICghKGNtZHF2 LT52aV9pbnRfbWFza1swXSAmIEJJVCgwKSkpIHsKKysgICAgICAgICAgICBxZW11X2lycV9wdWxz ZShjbWRxdi0+aXJxKTsKKysgICAgICAgIH0KKysgICAgICAgIHRyYWNlX3RlZ3JhMjQxX2NtZHF2 X2Vycl9tYXAoCisrICAgICAgICAgICAgY21kcXYtPnZpbnRmX2NtZHFfZXJyX21hcFszXSwgY21k cXYtPnZpbnRmX2NtZHFfZXJyX21hcFsyXSwKKysgICAgICAgICAgICBjbWRxdi0+dmludGZfY21k cV9lcnJfbWFwWzFdLCBjbWRxdi0+dmludGZfY21kcV9lcnJfbWFwWzBdKTsKKysgICAgfQorK30K KysKKyBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9mcmVlX3Zpb21tdShTTU1VdjNTdGF0ZSAq cykKKyB7CisgICAgIFNNTVV2M0FjY2VsU3RhdGUgKmFjY2VsID0gcy0+c19hY2NlbDsKK0BAIC03 NDAsNiArNzg2LDcgQEAgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfZnJlZV92aW9tbXUoU01N VXYzU3RhdGUgKnMpCisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAgICAgaWYgKHZldmVudHEp IHsKKysgICAgICAgIHFlbXVfc2V0X2ZkX2hhbmRsZXIodmV2ZW50cS0+dmV2ZW50cV9mZCwgTlVM TCwgTlVMTCwgTlVMTCk7CisgICAgICAgICBjbG9zZSh2ZXZlbnRxLT52ZXZlbnRxX2ZkKTsKKyAg ICAgICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgdmV2ZW50cS0+ dmV2ZW50cV9pZCk7CisgICAgICAgICBnX2ZyZWUodmV2ZW50cSk7CitAQCAtNzU5LDYgKzgwNiw3 IEBAIHRlZ3JhMjQxX2NtZHF2X2FsbG9jX3Zpb21tdShTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1V RGV2aWNlSU9NTVVGRCAqaWRldiwKKyAgICAgVGVncmEyNDFDTURRViAqY21kcXYgPSBzLT5zX2Fj Y2VsLT5jbWRxdjsKKyAgICAgdWludDMyX3QgdmlvbW11X2lkLCB2ZXZlbnRxX2lkLCB2ZXZlbnRx X2ZkOworICAgICBJT01NVUZEVmV2ZW50cSAqdmV2ZW50cTsKKysgICAgaW50IGZsYWdzOworIAor ICAgICBpZiAoIWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW9tbXUoaWRldi0+aW9tbXVmZCwgaWRl di0+ZGV2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9W SU9NTVVfVFlQRV9URUdSQTI0MV9DTURRViwKK0BAIC03ODQsMTQgKzgzMiwyOSBAQCB0ZWdyYTI0 MV9jbWRxdl9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURldmljZUlPTU1V RkQgKmlkZXYsCisgICAgICAgICBnb3RvIG11bm1hcF9wYWdlMDsKKyAgICAgfQorIAorKyAgICBm bGFncyA9IGZjbnRsKHZldmVudHFfZmQsIEZfR0VURkwpOworKyAgICBpZiAoZmxhZ3MgPCAwKSB7 CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJGYWlsZWQgdG8gZ2V0IGZsYWdzIGZvciB2RVZF TlRRIGZkIik7CisrICAgICAgICBnb3RvIGZyZWVfdmV2ZW50cTsKKysgICAgfQorKyAgICBpZiAo ZmNudGwodmV2ZW50cV9mZCwgRl9TRVRGTCwgT19OT05CTE9DSyB8IGZsYWdzKSA8IDApIHsKKysg ICAgICAgIGVycm9yX3NldGcoZXJycCwgIkZhaWxlZCB0byBzZXQgT19OT05CTE9DSyBvbiB2RVZF TlRRIGZkIik7CisrICAgICAgICBnb3RvIGZyZWVfdmV2ZW50cTsKKysgICAgfQorKworICAgICB2 ZXZlbnRxID0gZ19uZXcoSU9NTVVGRFZldmVudHEsIDEpOworICAgICB2ZXZlbnRxLT52ZXZlbnRx X2lkID0gdmV2ZW50cV9pZDsKKyAgICAgdmV2ZW50cS0+dmV2ZW50cV9mZCA9IHZldmVudHFfZmQ7 CisgICAgIGNtZHF2LT52ZXZlbnRxID0gdmV2ZW50cTsKKyAKKysgICAgLyogU2V0IHVwIGV2ZW50 IGhhbmRsZXIgZm9yIHZldmVudHEgZmQgKi8KKysgICAgcWVtdV9zZXRfZmRfaGFuZGxlcih2ZXZl bnRxX2ZkLCB0ZWdyYTI0MV9jbWRxdl9ldmVudF9yZWFkLCBOVUxMLCBjbWRxdik7CisgICAgICpv dXRfdmlvbW11X2lkID0gdmlvbW11X2lkOworICAgICByZXR1cm4gdHJ1ZTsKKyAKKytmcmVlX3Zl dmVudHE6CisrICAgIGNsb3NlKHZldmVudHFfZmQpOworKyAgICBpb21tdWZkX2JhY2tlbmRfZnJl ZV9pZChpZGV2LT5pb21tdWZkLCB2ZXZlbnRxX2lkKTsKKyBtdW5tYXBfcGFnZTA6CisgICAgIG11 bm1hcChjbWRxdi0+dmludGZfcGFnZTAsIFZJTlRGX1BBR0VfU0laRSk7CisgICAgIGNtZHF2LT52 aW50Zl9wYWdlMCA9IE5VTEw7CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RyYWNlLWV2ZW50cyBiL2h3 L2FybS90cmFjZS1ldmVudHMKK2luZGV4IGE4ZGNiYzgyZGIuLmRiZWQwMGFmYmIgMTAwNjQ0Cist LS0gYS9ody9hcm0vdHJhY2UtZXZlbnRzCisrKysgYi9ody9hcm0vdHJhY2UtZXZlbnRzCitAQCAt NzUsNiArNzUsNyBAQCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGUodWludDMyX3QgdnNpZCwgY29u c3QgY2hhciAqIHR5cGUsIHVpbnQzMl90IGh3cHRfaWQpICJ2UworICMgdGVncmEyNDEtY21kcXYK KyB0ZWdyYTI0MV9jbWRxdl9yZWFkX21taW8odWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCB2YWws IHVuc2lnbmVkIHNpemUpICJvZmZzZXQ6IDB4JSJQUkl4NjQiIHZhbDogMHglIlBSSXg2NCIgc2l6 ZTogMHgleCIKKyB0ZWdyYTI0MV9jbWRxdl93cml0ZV9tbWlvKHVpbnQ2NF90IG9mZnNldCwgdWlu dDY0X3QgdmFsLCB1bnNpZ25lZCBzaXplKSAib2Zmc2V0OiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQ Ukl4NjQiIHNpemU6IDB4JXgiCisrdGVncmEyNDFfY21kcXZfZXJyX21hcCh1aW50MzJfdCBtYXAz LCB1aW50MzJfdCBtYXAyLCB1aW50MzJfdCBtYXAxLCB1aW50MzJfdCBtYXAwKSAiaHcgaXJxIHJl Y2VpdmVkLiBlcnJvciAoaGV4KSBtYXBzOiAlMDRYOiUwNFg6JTA0WDolMDRYIgorIHRlZ3JhMjQx X2NtZHF2X3JlYWRfdmNtZHFfcGFnZTAoaW50IGluZGV4LCBjb25zdCBjaGFyICphcGVydHVyZSwg Y29uc3QgY2hhciAqYmFja2luZywgdWludDY0X3Qgb2Zmc2V0MCwgdWludDY0X3QgdmFsKSAidmNt ZHFbJWRdICVzICglcykgb2Zmc2V0MDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0CisgdGVn cmEyNDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMShpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0 dXJlLCB1aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2Y21kcVslZF0gJXMgb2Zmc2V0 MDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0CisgdGVncmEyNDFfY21kcXZfd3JpdGVfdmNt ZHFfcGFnZTAoaW50IGluZGV4LCBjb25zdCBjaGFyICphcGVydHVyZSwgY29uc3QgY2hhciAqYmFj a2luZywgdWludDY0X3Qgb2Zmc2V0MCwgdWludDY0X3QgdmFsKSAidmNtZHFbJWRdICVzICglcykg b2Zmc2V0MDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0CistLSAKKzIuNTIuMAorCgpkaWZm IC0tZ2l0IGEva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1Sb3V0ZS1hbGxvY2F0ZWQtVkNNRFEt UGFnZTAtYWMucGF0Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVJvdXRlLWFsbG9jYXRl ZC1WQ01EUS1QYWdlMC1hYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43YWM2NWMzCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1S b3V0ZS1hbGxvY2F0ZWQtVkNNRFEtUGFnZTAtYWMucGF0Y2gKQEAgLTAsMCArMSwyNDQgQEAKK0Zy b20gMDUxOTg3MzlkNDJkM2FkOWI1N2E1MjA3NWI1NmRiZmE3MDQyZGU0MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEu Y29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjQwICswMTAwCitTdWJqZWN0OiBbUEFU Q0ggMDk4LzExMV0gaHcvYXJtL3RlZ3JhMjQxLWNtZHF2OiBSb3V0ZSBhbGxvY2F0ZWQgVkNNRFEg UGFnZTAKKyBhY2Nlc3NlcyB0byB0aGUgbW1hcCdkIGhvc3QgVklOVEYgcGFnZTAKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9y IGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNr ZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs5OC8xMTFd IDA2YjkwNWZlOTJiMjA0MjA1NjViNTczMGQ2ZWQyZDBhODQzYzBlYmEgKGVhdWdlcjEvY2VudG9z LXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9S SEVMLTczNzk4CisKK0ludHJvZHVjZSB0ZWdyYTI0MV9jbWRxdl92aW50Zl9sdmNtZHFfcHRyKCkg dG8gcm91dGUgVkNNRFEgUGFnZSAwCityZWdpc3RlciBhY2Nlc3NlcyB0aHJvdWdoIHRoZSBtbWFw J2QgaG9zdCBWSU5URiBQYWdlIDAgYmFja2luZyBvbmNlIGEKK2hhcmR3YXJlIHF1ZXVlIGhhcyBi ZWVuIGFsbG9jYXRlZCBmb3IgdGhlIFZDTURRLgorCitUaGUgdHdvIFFFTVUtdHJhcHBlZCBQYWdl IDAgYXBlcnR1cmVzIChkaXJlY3QgYXQgMHgxMDAwMCwgVklOVEYgYXQKKzB4MzAwMDApIGFyZSBo YXJkd2FyZSBhbGlhc2VzIG9mIHRoZSBzYW1lIHVuZGVybHlpbmcgcmVnaXN0ZXJzLiBBCitzdWJz ZXF1ZW50IHBhdGNoIGluc3RhbGxzIHRoZSBWSU5URiBhcGVydHVyZSBhcyBhIFJBTS1kZXZpY2Ug aW50bworZ3Vlc3QgTU1JTzsgaW4gdGhpcyBwYXRjaCBib3RoIHJlbWFpbiBRRU1VLXRyYXBwZWQu CisKK1RoZSBkaXJlY3QgVkNNRFEgYXBlcnR1cmUgc3RheXMgUUVNVS10cmFwcGVkIChyYXRoZXIg dGhhbiBhbGlhc2VkCit0byB0aGUgVklOVEYgbW1hcCkgc28gdGhhdCB3cml0ZXMgdG8gYW4gdW5h bGxvY2F0ZWQgVkNNRFEgcmVtYWluCit3ZWxsLWRlZmluZWQuIFRoZSBDTURRViBhcmNoaXRlY3R1 cmUgYWxsb3dzIHNvZnR3YXJlIHRvIHByb2dyYW0gYQorVkNNRFEgdGhyb3VnaCB0aGUgZGlyZWN0 IGFwZXJ0dXJlIHdpdGhvdXQgZmlyc3QgYWxsb2NhdGluZyBpdCB0byBhCitWSU5URjsgYWxpYXNp bmcgdG8gdGhlIFZJTlRGIG1tYXAgd291bGQgcm91dGUgdGhvc2Ugd3JpdGVzIGludG8KK3VuYWxs b2NhdGVkIGxvZ2ljYWwgc2xvdHMgd2hlcmUgdGhlIGhhcmR3YXJlIHNpbGVudGx5IGRyb3BzIHRo ZW0uCisKK0EgVkNNRFEgUGFnZSAwIGFjY2VzcyBpcyBzZXJ2ZWQgZnJvbSBvbmUgb2YgdHdvIHNv dXJjZXM6CisKKyAgLSBDYWNoZS1iYWNrZWQ6IG5vIGh3X3F1ZXVlIGlzIGFsbG9jYXRlZCBmb3Ig dGhlIFZDTURRCisgICAgKEhXX1FVRVVFX0FMTE9DIGhhcyBub3QgeWV0IHN1Y2NlZWRlZCkuIEJv dGggYXBlcnR1cmVzIHVzZQorICAgIFFFTVUncyByZWdpc3RlciBjYWNoZS4KKworICAtIEhXLWJh Y2tlZDogSFdfUVVFVUVfQUxMT0MgaGFzIHN1Y2NlZWRlZC4gQm90aCBhcGVydHVyZXMgYWNjZXNz CisgICAgdGhlIHJlZ2lzdGVycyBkaXJlY3RseSB0aHJvdWdoIHRoZSBtbWFwJ2QgaG9zdCBWSU5U RiBQYWdlIDAuCisKK3RlZ3JhMjQxX2NtZHF2X3N5bmNfdmNtZHEoKSBjb3BpZXMgYW55IGNhY2hl ZCB3cml0ZXMgKENPTlNfSU5EWCwKK1BST0RfSU5EWCwgQ09ORklHLCBHRVJST1JOKSBpbnRvIHRo ZSBtbWFwJ2QgcGFnZSBvbiB0aGUgY2FjaGUtdG8tSFcKK3RyYW5zaXRpb24gc28gdGhlIGd1ZXN0 J3MgZWFybGllciByZWdpc3RlciBzdGF0ZSBzdXJ2aXZlcy4gRnJlZWluZyBhCitWQ01EUSBjbGVh cnMgdGhlIGNhY2hlZCBQYWdlMCByZWdpc3RlcnMuCisKK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVu IDxuaWNvbGluY0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgor TWVzc2FnZS1pZDogMjAyNjA2MDkxMTI1NTIuMzc4OTk5LTIwLXNrb2xvdGh1bXRob0BudmlkaWEu Y29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5v cmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxZDBmNzc1MzU0MTc4NGNiYWZiN2FlZTNh ZGM4NDM4MTZiZjdjNjZkKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckBy ZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgfCA4OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGh3L2FybS90cmFjZS1ldmVudHMgICAg IHwgIDQgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYyBiL2h3L2FybS90ZWdy YTI0MS1jbWRxdi5jCitpbmRleCA4Y2IzOWU4N2M0Li42M2ZlMGFjNjgxIDEwMDY0NAorLS0tIGEv aHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKKysrKyBiL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5jCitA QCAtMTYsNiArMTYsMTYgQEAKKyAjaW5jbHVkZSAidGVncmEyNDEtY21kcXYuaCIKKyAjaW5jbHVk ZSAidHJhY2UuaCIKKyAKKytzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9yZXNldF92Y21kcV9j YWNoZShUZWdyYTI0MUNNRFFWICpjbWRxdiwgaW50IGluZGV4KQorK3sKKysgICAgY21kcXYtPnZj bWRxX2NvbnNfaW5keFtpbmRleF0gPSAwOworKyAgICBjbWRxdi0+dmNtZHFfcHJvZF9pbmR4W2lu ZGV4XSA9IDA7CisrICAgIGNtZHF2LT52Y21kcV9jb25maWdbaW5kZXhdID0gMDsKKysgICAgY21k cXYtPnZjbWRxX3N0YXR1c1tpbmRleF0gPSAwOworKyAgICBjbWRxdi0+dmNtZHFfZ2Vycm9yW2lu ZGV4XSA9IDA7CisrICAgIGNtZHF2LT52Y21kcV9nZXJyb3JuW2luZGV4XSA9IDA7CisrfQorKwor IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmNtZHEoVGVncmEyNDFDTURRViAqY21k cXYsIGludCBpbmRleCkKKyB7CisgICAgIElPTU1VRkRWaW9tbXUgKnZpb21tdSA9IGNtZHF2LT5z X2FjY2VsLT52aW9tbXU7CitAQCAtMjcsNiArMzcsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9j bWRxdl9mcmVlX3ZjbWRxKFRlZ3JhMjQxQ01EUVYgKmNtZHF2LCBpbnQgaW5kZXgpCisgICAgIGlv bW11ZmRfYmFja2VuZF9mcmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgdmNtZHEtPmh3X3F1ZXVlX2lk KTsKKyAgICAgZ19mcmVlKHZjbWRxKTsKKyAgICAgY21kcXYtPnZjbWRxW2luZGV4XSA9IE5VTEw7 CisrICAgIHRlZ3JhMjQxX2NtZHF2X3Jlc2V0X3ZjbWRxX2NhY2hlKGNtZHF2LCBpbmRleCk7Cisg fQorIAorIC8qCitAQCAtNDUsNiArNTYsNDcgQEAgc3RhdGljIGJvb2wgdGVncmEyNDFfY21kcXZf dmNtZHFfcmVhZHlfdG9fYWxsb2MoVGVncmEyNDFDTURRViAqY21kcXYsIGludCBpbmRleCkKKyAg ICAgICAgICAgIHRlZ3JhMjQxX2NtZHF2X2VuYWJsZWQoY21kcXYpICYmIHRlZ3JhMjQxX3ZpbnRm X2VuYWJsZWQoY21kcXYpOworIH0KKyAKKysvKgorKyAqIFJldHVybiBhIHBvaW50ZXIgaW50byB0 aGUgbW1hcCdkIFZJTlRGIHBhZ2UwIGZvciB0aGUgVkNNRFEgUGFnZSAwCisrICogcmVnaXN0ZXIg YXQgQG9mZnNldDAgaW4gVkNNRFEgc2xvdCBAaW5kZXgsIG9yIE5VTEwgd2hlbiB0aGUgVkNNRFEK KysgKiBoYXMgbm8gaHdfcXVldWUgYWxsb2NhdGVkIG9yIHRoZSBob3N0IFZJTlRGIHBhZ2UwIGlz IG5vdCBtbWFwJ2QuCisrICovCisrc3RhdGljIGlubGluZSB1aW50MzJfdCAqdGVncmEyNDFfY21k cXZfdmludGZfbHZjbWRxX3B0cihUZWdyYTI0MUNNRFFWICpjbWRxdiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4LCBod2FkZHIgb2Zm c2V0MCkKKyt7CisrICAgIGlmICghY21kcXYtPnZjbWRxW2luZGV4XSB8fCAhY21kcXYtPnZpbnRm X3BhZ2UwKSB7CisrICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICByZXR1cm4gKHVp bnQzMl90ICopKGNtZHF2LT52aW50Zl9wYWdlMCArCisrICAgICAgICAgICAgICAgICAgICAgICAg KGluZGV4ICogQ01EUVZfVkNNRFFfU1RSSURFKSArCisrICAgICAgICAgICAgICAgICAgICAgICAg KG9mZnNldDAgLSBDTURRVl9WQ01EUV9QQUdFMF9CQVNFKSk7CisrfQorKworKy8qCisrICogRmx1 c2ggY2FjaGVkIHJlZ2lzdGVyIHdyaXRlcyBpbnRvIHRoZSBtbWFwJ2QgaG9zdCBWSU5URiBwYWdl MCBhZnRlciBhCisrICogc3VjY2Vzc2Z1bCBIV19RVUVVRV9BTExPQywgc28gdGhlIGd1ZXN0J3Mg ZWFybGllciB3cml0ZXMgc3Vydml2ZQorKyAqIHRoZSBjYWNoZS10by1oYXJkd2FyZSB0cmFuc2l0 aW9uLgorKyAqLworK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3N5bmNfdmNtZHEoVGVncmEy NDFDTURRViAqY21kcXYsIGludCBpbmRleCkKKyt7CisrICAgIHVpbnQzMl90ICpwdHI7CisrCisr ICAgIHB0ciA9IHRlZ3JhMjQxX2NtZHF2X3ZpbnRmX2x2Y21kcV9wdHIoY21kcXYsIGluZGV4LCBB X1ZDTURRMF9DT05TX0lORFgpOworKyAgICBpZiAoIXB0cikgeworKyAgICAgICAgcmV0dXJuOwor KyAgICB9CisrICAgICpwdHIgPSBjbWRxdi0+dmNtZHFfY29uc19pbmR4W2luZGV4XTsKKysKKysg ICAgcHRyID0gdGVncmEyNDFfY21kcXZfdmludGZfbHZjbWRxX3B0cihjbWRxdiwgaW5kZXgsIEFf VkNNRFEwX1BST0RfSU5EWCk7CisrICAgICpwdHIgPSBjbWRxdi0+dmNtZHFfcHJvZF9pbmR4W2lu ZGV4XTsKKysKKysgICAgcHRyID0gdGVncmEyNDFfY21kcXZfdmludGZfbHZjbWRxX3B0cihjbWRx diwgaW5kZXgsIEFfVkNNRFEwX0NPTkZJRyk7CisrICAgICpwdHIgPSBjbWRxdi0+dmNtZHFfY29u ZmlnW2luZGV4XTsKKysKKysgICAgcHRyID0gdGVncmEyNDFfY21kcXZfdmludGZfbHZjbWRxX3B0 cihjbWRxdiwgaW5kZXgsIEFfVkNNRFEwX0dFUlJPUk4pOworKyAgICAqcHRyID0gY21kcXYtPnZj bWRxX2dlcnJvcm5baW5kZXhdOworK30KKysKKyAvKgorICAqIEFsbG9jYXRlIGEgaG9zdCBIVyBW Q01EUSBmcm9tIHRoZSBjdXJyZW50IGNhY2hlZCBCQVNFIC8gc2l6ZSBmb3IgQGluZGV4LgorICAq IE5vLW9wIChyZXR1cm5zIHRydWUpIHVudGlsIHRoZSBWQ01EUSBpcyByZWFkeSB0byBiZSBhbGxv Y2F0ZWQuCitAQCAtODUsNiArMTM3LDkgQEAgc3RhdGljIGJvb2wgdGVncmEyNDFfY21kcXZfc2V0 dXBfdmNtZHEoVGVncmEyNDFDTURRViAqY21kcXYsIGludCBpbmRleCwKKyAgICAgY21kcXYtPnZj bWRxX2dlcnJvcltpbmRleF0gJj0gflJfVkNNRFEwX0dFUlJPUl9DTURRX0lOSVRfRVJSX01BU0s7 CisgICAgIGNtZHF2LT52Y21kcV9zdGF0dXNbaW5kZXhdIHw9IFJfVkNNRFEwX1NUQVRVU19DTURR X0VOX09LX01BU0s7CisgCisrICAgIC8qIFB1c2ggY2FjaGVkIHdyaXRlcyB0byBIVzsgZnJlZWlu ZyByZXNldHMgdGhlIGNhY2hlLiAqLworKyAgICB0ZWdyYTI0MV9jbWRxdl9zeW5jX3ZjbWRxKGNt ZHF2LCBpbmRleCk7CisrCisgICAgIHJldHVybiB0cnVlOworIH0KKyAKK0BAIC0xMTEsMTMgKzE2 NiwyMyBAQCBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9zZXR1cF9hbGxfdmNtZHEoVGVncmEy NDFDTURRViAqY21kcXYsCisgICoKKyAgKiBUaGUgY2FsbGVyIG5vcm1hbGl6ZXMgdGhlIE1NSU8g b2Zmc2V0IHN1Y2ggdGhhdCBAb2Zmc2V0MCBhbHdheXMgcmVmZXJzCisgICogdG8gYSBWQ01EUTBf KiByZWdpc3Rlciwgd2hpbGUgQGluZGV4IHNlbGVjdHMgdGhlIFZDTURRIGluc3RhbmNlLgorKyAq CisrICogSWYgdGhlIFZDTURRIGlzIGFsbG9jYXRlZCBhbmQgdGhlIGhvc3QgVklOVEYgcGFnZTAg aXMgbW1hcCdkLCByZWFkCisrICogZGlyZWN0bHkgZnJvbSB0aGUgaG9zdCBWSU5URiBwYWdlMCBi YWNraW5nLiBPdGhlcndpc2UsIGZhbGwgYmFjayB0bworKyAqIHRoZSBjYWNoZS4KKyAgKi8KKyBz dGF0aWMgdWludDY0X3QgdGVncmEyNDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMChUZWdyYTI0MUNN RFFWICpjbWRxdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBod2FkZHIgb2Zmc2V0MCwgaW50IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlyZWN0KQorIHsKKysgICAgdWludDMyX3Qg KnB0ciA9IHRlZ3JhMjQxX2NtZHF2X3ZpbnRmX2x2Y21kcV9wdHIoY21kcXYsIGluZGV4LCBvZmZz ZXQwKTsKKyAgICAgdWludDY0X3QgdmFsID0gMDsKKyAKKysgICAgaWYgKHB0cikgeworKyAgICAg ICAgdmFsID0gKnB0cjsKKysgICAgICAgIGdvdG8gb3V0OworKyAgICB9CisrCisgICAgIHN3aXRj aCAob2Zmc2V0MCkgeworICAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWDoKKyAgICAgICAgIHZh bCA9IGNtZHF2LT52Y21kcV9jb25zX2luZHhbaW5kZXhdOworQEAgLTE0Miw3ICsyMDcsOSBAQCBz dGF0aWMgdWludDY0X3QgdGVncmEyNDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMChUZWdyYTI0MUNN RFFWICpjbWRxdiwKKyAgICAgICAgICAgICAgICAgICAgICAgIiVzIHVuaGFuZGxlZCByZWFkIGFj Y2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNf Xywgb2Zmc2V0MCk7CisgICAgIH0KKytvdXQ6CisgICAgIHRyYWNlX3RlZ3JhMjQxX2NtZHF2X3Jl YWRfdmNtZHFfcGFnZTAoaW5kZXgsIGRpcmVjdCA/ICJkaXJlY3QiIDogInZpIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIgPyAiaHciIDogImNhY2hlIiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQwLCB2YWwp OworICAgICByZXR1cm4gdmFsOworIH0KK0BAIC0yMTgsMTEgKzI4NSwzMSBAQCBzdGF0aWMgdWlu dDY0X3QgdGVncmEyNDFfY21kcXZfY29uZmlnX3ZpbnRmX3JlYWQoVGVncmEyNDFDTURRViAqY21k cXYsCisgICoKKyAgKiBQYWdlIDAgcmVnaXN0ZXJzIGFyZSBhbGwgMzItYml0OyB0aGlzIGhlbHBl ciBpcyBvbmx5IGNhbGxlZCBmb3IgNC1ieXRlCisgICogd3JpdGVzLgorKyAqCisrICogSWYgdGhl IFZDTURRIGlzIGFsbG9jYXRlZCBhbmQgdGhlIGhvc3QgVklOVEYgcGFnZTAgaXMgbW1hcCdkLCB3 cml0ZQorKyAqIGRpcmVjdGx5IHRvIHRoZSBWSU5URiBwYWdlMCBiYWNraW5nLiBPdGhlcndpc2Us IHVwZGF0ZSB0aGUgY2FjaGUuCisgICovCisgc3RhdGljIHZvaWQgdGVncmEyNDFfY21kcXZfd3Jp dGVfdmNtZHFfcGFnZTAoVGVncmEyNDFDTURRViAqY21kcXYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIG9mZnNldDAsIGludCBpbmRleCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWx1 ZSwgYm9vbCBkaXJlY3QpCisgeworKyAgICB1aW50MzJfdCAqcHRyID0gdGVncmEyNDFfY21kcXZf dmludGZfbHZjbWRxX3B0cihjbWRxdiwgaW5kZXgsIG9mZnNldDApOworKyAgICBib29sIGh3ID0g ZmFsc2U7CisrCisrICAgIGlmIChwdHIpIHsKKysgICAgICAgIHN3aXRjaCAob2Zmc2V0MCkgewor KyAgICAgICAgY2FzZSBBX1ZDTURRMF9DT05TX0lORFg6CisrICAgICAgICBjYXNlIEFfVkNNRFEw X1BST0RfSU5EWDoKKysgICAgICAgIGNhc2UgQV9WQ01EUTBfQ09ORklHOgorKyAgICAgICAgY2Fz ZSBBX1ZDTURRMF9HRVJST1JOOgorKyAgICAgICAgICAgICpwdHIgPSB2YWx1ZTsKKysgICAgICAg ICAgICBodyA9IHRydWU7CisrICAgICAgICAgICAgZ290byBvdXQ7CisrICAgICAgICBkZWZhdWx0 OgorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICB9CisrCisgICAgIHN3aXRj aCAob2Zmc2V0MCkgeworICAgICBjYXNlIEFfVkNNRFEwX0NPTlNfSU5EWDoKKyAgICAgICAgIGNt ZHF2LT52Y21kcV9jb25zX2luZHhbaW5kZXhdID0gdmFsdWU7CitAQCAtMjUzLDcgKzM0MCw5IEBA IHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X3dyaXRlX3ZjbWRxX3BhZ2UwKFRlZ3JhMjQxQ01E UVYgKmNtZHF2LAorICAgICAgICAgICAgICAgICAgICAgICAiJXMgdW5oYW5kbGVkIHdyaXRlIGFj Y2VzcyBhdCAweCUiIFBSSXg2NCAiXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNf Xywgb2Zmc2V0MCk7CisgICAgIH0KKytvdXQ6CisgICAgIHRyYWNlX3RlZ3JhMjQxX2NtZHF2X3dy aXRlX3ZjbWRxX3BhZ2UwKGluZGV4LCBkaXJlY3QgPyAiZGlyZWN0IiA6ICJ2aSIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3ID8gImh3IiA6ICJjYWNoZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDAsIHZh bHVlKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RyYWNlLWV2ZW50cyBiL2h3L2FybS90 cmFjZS1ldmVudHMKK2luZGV4IDY2Njk2N2RjNWUuLmE4ZGNiYzgyZGIgMTAwNjQ0CistLS0gYS9o dy9hcm0vdHJhY2UtZXZlbnRzCisrKysgYi9ody9hcm0vdHJhY2UtZXZlbnRzCitAQCAtNzUsOSAr NzUsOSBAQCBzbW11djNfYWNjZWxfaW5zdGFsbF9zdGUodWludDMyX3QgdnNpZCwgY29uc3QgY2hh ciAqIHR5cGUsIHVpbnQzMl90IGh3cHRfaWQpICJ2UworICMgdGVncmEyNDEtY21kcXYKKyB0ZWdy YTI0MV9jbWRxdl9yZWFkX21taW8odWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCB2YWwsIHVuc2ln bmVkIHNpemUpICJvZmZzZXQ6IDB4JSJQUkl4NjQiIHZhbDogMHglIlBSSXg2NCIgc2l6ZTogMHgl eCIKKyB0ZWdyYTI0MV9jbWRxdl93cml0ZV9tbWlvKHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3Qg dmFsLCB1bnNpZ25lZCBzaXplKSAib2Zmc2V0OiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQi IHNpemU6IDB4JXgiCistdGVncmEyNDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMChpbnQgaW5kZXgs IGNvbnN0IGNoYXIgKmFwZXJ0dXJlLCB1aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2 Y21kcVslZF0gJXMgb2Zmc2V0MDogMHglIlBSSXg2NCIgdmFsOiAweCUiUFJJeDY0CisrdGVncmEy NDFfY21kcXZfcmVhZF92Y21kcV9wYWdlMChpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0dXJl LCBjb25zdCBjaGFyICpiYWNraW5nLCB1aW50NjRfdCBvZmZzZXQwLCB1aW50NjRfdCB2YWwpICJ2 Y21kcVslZF0gJXMgKCVzKSBvZmZzZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKyB0 ZWdyYTI0MV9jbWRxdl9yZWFkX3ZjbWRxX3BhZ2UxKGludCBpbmRleCwgY29uc3QgY2hhciAqYXBl cnR1cmUsIHVpbnQ2NF90IG9mZnNldDAsIHVpbnQ2NF90IHZhbCkgInZjbWRxWyVkXSAlcyBvZmZz ZXQwOiAweCUiUFJJeDY0IiB2YWw6IDB4JSJQUkl4NjQKKy10ZWdyYTI0MV9jbWRxdl93cml0ZV92 Y21kcV9wYWdlMChpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKmFwZXJ0dXJlLCB1aW50NjRfdCBvZmZz ZXQwLCB1aW50NjRfdCB2YWwpICJ2Y21kcVslZF0gJXMgb2Zmc2V0MDogMHglIlBSSXg2NCIgdmFs OiAweCUiUFJJeDY0CisrdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTAoaW50IGluZGV4 LCBjb25zdCBjaGFyICphcGVydHVyZSwgY29uc3QgY2hhciAqYmFja2luZywgdWludDY0X3Qgb2Zm c2V0MCwgdWludDY0X3QgdmFsKSAidmNtZHFbJWRdICVzICglcykgb2Zmc2V0MDogMHglIlBSSXg2 NCIgdmFsOiAweCUiUFJJeDY0CisgdGVncmEyNDFfY21kcXZfd3JpdGVfdmNtZHFfcGFnZTEoaW50 IGluZGV4LCBjb25zdCBjaGFyICphcGVydHVyZSwgdWludDY0X3Qgb2Zmc2V0MCwgdWludDY0X3Qg dmFsKSAidmNtZHFbJWRdICVzIG9mZnNldDA6IDB4JSJQUkl4NjQiIHZhbDogMHglIlBSSXg2NAor IAorICMgc3Ryb25nYXJtLmMKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctYXJt LXRlZ3JhMjQxLWNtZHF2LVVzZS1tbWFwLWQtaG9zdC1WSU5URi1wYWdlMC1mby5wYXRjaCBiL2t2 bS1ody1hcm0tdGVncmEyNDEtY21kcXYtVXNlLW1tYXAtZC1ob3N0LVZJTlRGLXBhZ2UwLWZvLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczOTFiODYKLS0tIC9kZXYv bnVsbAorKysgYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVVzZS1tbWFwLWQtaG9zdC1WSU5U Ri1wYWdlMC1mby5wYXRjaApAQCAtMCwwICsxLDEyOSBAQAorRnJvbSA5ZDU3MDFlMDQ0NWFjMzc3 ZjYxZmEyMTlkZGY1OWVjNzcxNGRjODU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog Tmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2 IDEyOjI1OjQyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMTAwLzExMV0gaHcvYXJtL3RlZ3JhMjQx LWNtZHF2OiBVc2UgbW1hcCdkIGhvc3QgVklOVEYgcGFnZTAKKyBmb3IgdmlydHVhbCBWSU5URiBw YWdlMAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBT TU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmly YTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhh dC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNv bW1pdDogWzEwMC8xMTFdIDI0MTdjNTIyM2EzNjM5OTUxMjFjZDMxMWViN2Y3MTQ1NzJkYzU0NDcg KGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3Np YW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK0luc3RhbGwgdGhlIG1tYXAnZCBob3N0IFZJTlRG IHBhZ2UwIGFzIGEgUkFNLWRldmljZSBNZW1vcnlSZWdpb24KK2JhY2tpbmcgdGhlIGd1ZXN0J3Mg dmlydHVhbCBWSU5URiBQYWdlIDAgYXBlcnR1cmUgKGd1ZXN0IE1NSU8gb2Zmc2V0CisweDMwMDAw KSB3aGVuIFZJTlRGIGlzIGVuYWJsZWQsIGFuZCByZW1vdmUgaXQgb24gVklOVEYgZGlzYWJsZSBv cgorcmVzZXQuIFRoaXMgZWxpbWluYXRlcyBRRU1VIHRyYXBwaW5nIGZvciBob3QtcGF0aCBDT05T L1BST0QgaW5kZXgKK3VwZGF0ZXMgdmlhIHRoYXQgYXBlcnR1cmUuCisKK0FmdGVyIHRoaXMgcGF0 Y2gsIHRoZSB0d28gVkNNRFEgUGFnZSAwIGFwZXJ0dXJlcyB1c2UgZGlmZmVyZW50CithY2Nlc3Mg cGF0aHM6IHRoZSBkaXJlY3QgYXBlcnR1cmUgKDB4MTAwMDApIHJlbWFpbnMgUUVNVS10cmFwcGVk LAord2hpbGUgdGhlIFZJTlRGIGFwZXJ0dXJlICgweDMwMDAwKSBpcyBhIGd1ZXN0LWRpcmVjdCBS QU0gbWFwcGluZy4KKworVGhlIGRpcmVjdCBhcGVydHVyZSBpcyBpbnRlbnRpb25hbGx5IGtlcHQg dHJhcHBlZCAobm90IGFsaWFzZWQgdG8KK3RoZSBob3N0IFZJTlRGIG1tYXApIHNvIHRoYXQgd3Jp dGVzIHRvIGFuIHVuYWxsb2NhdGVkIFZDTURRIHJlbWFpbgord2VsbC1kZWZpbmVkLiBUaGUgQ01E UVYgYXJjaGl0ZWN0dXJlIGFsbG93cyBzb2Z0d2FyZSB0byBwcm9ncmFtIGEKK1ZDTURRIHRocm91 Z2ggdGhlIGRpcmVjdCBhcGVydHVyZSB3aXRob3V0IGZpcnN0IGFsbG9jYXRpbmcgaXQgdG8gYQor VklOVEY7IGFsaWFzaW5nIHdvdWxkIHJvdXRlIHRob3NlIHdyaXRlcyB0byB1bmFsbG9jYXRlZCBs b2dpY2FsCitzbG90cyBpbiB0aGUgVklOVEYgcGFnZSwgd2hlcmUgdGhlIGhhcmR3YXJlIHNpbGVu dGx5IGRyb3BzIHRoZW0uCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNA bnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29t PgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQt b2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jldmll d2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAy MDI2MDYwOTExMjU1Mi4zNzg5OTktMjItc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK0NvLWRldmVs b3BlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Np Z25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDU5NjViODFjZTI4MzVkZTQ5YmE0ZWIzNmMzODZlNzJi ZTVmZjFiYTgpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CistLS0KKyBody9hcm0vdGVncmEyNDEtY21kcXYuYyB8IDM3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKKyBody9hcm0vdGVncmEyNDEtY21kcXYuaCB8ICAxICsKKyAy IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS90 ZWdyYTI0MS1jbWRxdi5jIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK2luZGV4IDYzZmUwYWM2 ODEuLjcyNjRiNGJmYTkgMTAwNjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuYworKysr IGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMKK0BAIC0yNiw2ICsyNiw0MCBAQCBzdGF0aWMgdm9p ZCB0ZWdyYTI0MV9jbWRxdl9yZXNldF92Y21kcV9jYWNoZShUZWdyYTI0MUNNRFFWICpjbWRxdiwg aW50IGluZGV4KQorICAgICBjbWRxdi0+dmNtZHFfZ2Vycm9ybltpbmRleF0gPSAwOworIH0KKyAK KytzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9ndWVzdF91bm1hcF92aW50Zl9wYWdlMChUZWdy YTI0MUNNRFFWICpjbWRxdikKKyt7CisrICAgIGlmICghY21kcXYtPm1yX3ZpbnRmX3BhZ2UwKSB7 CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgbWVtb3J5X3JlZ2lvbl9kZWxfc3Vi cmVnaW9uKCZjbWRxdi0+bW1pb19jbWRxdiwgY21kcXYtPm1yX3ZpbnRmX3BhZ2UwKTsKKysgICAg b2JqZWN0X3VucGFyZW50KE9CSkVDVChjbWRxdi0+bXJfdmludGZfcGFnZTApKTsKKysgICAgZ19m cmVlKGNtZHF2LT5tcl92aW50Zl9wYWdlMCk7CisrICAgIGNtZHF2LT5tcl92aW50Zl9wYWdlMCA9 IE5VTEw7CisrfQorKworK3N0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2d1ZXN0X21hcF92aW50 Zl9wYWdlMChUZWdyYTI0MUNNRFFWICpjbWRxdikKKyt7CisrICAgIGNoYXIgKm5hbWU7CisrCisr ICAgIGlmIChjbWRxdi0+bXJfdmludGZfcGFnZTApIHsKKysgICAgICAgIHJldHVybjsKKysgICAg fQorKworKyAgICBuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCIlcyB2aW50Zi1wYWdlMCIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5X3JlZ2lvbl9uYW1lKCZjbWRxdi0+bW1pb19j bWRxdikpOworKyAgICBjbWRxdi0+bXJfdmludGZfcGFnZTAgPSBnX21hbGxvYzAoc2l6ZW9mKCpj bWRxdi0+bXJfdmludGZfcGFnZTApKTsKKysgICAgbWVtb3J5X3JlZ2lvbl9pbml0X3JhbV9kZXZp Y2VfcHRyKGNtZHF2LT5tcl92aW50Zl9wYWdlMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbW9yeV9yZWdpb25fb3duZXIoJmNtZHF2LT5tbWlvX2NtZHF2KSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIFZJTlRGX1BBR0VfU0la RSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHF2LT52aW50Zl9w YWdlMCk7CisrICAgIG1lbW9yeV9yZWdpb25fc2V0X3NraXBfaW9tbXVfbWFwKGNtZHF2LT5tcl92 aW50Zl9wYWdlMCwgdHJ1ZSk7CisrICAgIG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbl9vdmVy bGFwKCZjbWRxdi0+bW1pb19jbWRxdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ01EUVZfVklOVEZfUEFHRTBfQkFTRSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY21kcXYtPm1yX3ZpbnRmX3BhZ2UwLCAxKTsKKysgICAgZ19mcmVl KG5hbWUpOworK30KKysKKyBzdGF0aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9mcmVlX3ZjbWRxKFRl Z3JhMjQxQ01EUVYgKmNtZHF2LCBpbnQgaW5kZXgpCisgeworICAgICBJT01NVUZEVmlvbW11ICp2 aW9tbXUgPSBjbWRxdi0+c19hY2NlbC0+dmlvbW11OworQEAgLTQzMCw3ICs0NjQsOSBAQCBzdGF0 aWMgdm9pZCB0ZWdyYTI0MV9jbWRxdl9jb25maWdfdmludGZfd3JpdGUoVGVncmEyNDFDTURRViAq Y21kcXYsCisgICAgICAgICAgICAgICogZW5hYmxlZCBuZWVkIHRoZWlyIGh3X3F1ZXVlIGFsbG9j YXRlZCBub3cuCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgdGVncmEyNDFfY21kcXZf c2V0dXBfYWxsX3ZjbWRxKGNtZHF2LCBlcnJwKTsKKysgICAgICAgICAgICB0ZWdyYTI0MV9jbWRx dl9ndWVzdF9tYXBfdmludGZfcGFnZTAoY21kcXYpOworICAgICAgICAgfSBlbHNlIHsKKysgICAg ICAgICAgICB0ZWdyYTI0MV9jbWRxdl9ndWVzdF91bm1hcF92aW50Zl9wYWdlMChjbWRxdik7Cisg ICAgICAgICAgICAgdGVncmEyNDFfY21kcXZfZnJlZV9hbGxfdmNtZHEoY21kcXYpOworICAgICAg ICAgICAgIGNtZHF2LT52aW50Zl9zdGF0dXMgJj0gflJfVklOVEYwX1NUQVRVU19FTkFCTEVfT0tf TUFTSzsKKyAgICAgICAgIH0KK0BAIC03NzIsNiArODA4LDcgQEAgc3RhdGljIHZvaWQgdGVncmEy NDFfY21kcXZfcmVzZXQoU01NVXYzU3RhdGUgKnMpCisgICAgICAgICByZXR1cm47CisgICAgIH0K KyAKKysgICAgdGVncmEyNDFfY21kcXZfZ3Vlc3RfdW5tYXBfdmludGZfcGFnZTAoY21kcXYpOwor ICAgICB0ZWdyYTI0MV9jbWRxdl9mcmVlX2FsbF92Y21kcShjbWRxdik7CisgfQorIAorZGlmZiAt LWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRxdi5oIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgK K2luZGV4IGM3OTVkYTA0NDQuLjA5NjRmNjhhMjAgMTAwNjQ0CistLS0gYS9ody9hcm0vdGVncmEy NDEtY21kcXYuaAorKysrIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKK0BAIC00OSw2ICs0OSw3 IEBAIHR5cGVkZWYgc3RydWN0IFRlZ3JhMjQxQ01EUVYgeworICAgICBJT01NVUZEVmV2ZW50cSAq dmV2ZW50cTsKKyAgICAgSU9NTVVGREhXcXVldWUgKnZjbWRxW1RFR1JBMjQxX0NNRFFWX01BWF9D TURRXTsKKyAgICAgdm9pZCAqdmludGZfcGFnZTA7CisrICAgIE1lbW9yeVJlZ2lvbiAqbXJfdmlu dGZfcGFnZTA7CisgCisgICAgIC8qIENNRFEtViBDb25maWcgcGFnZSByZWdpc3RlciBjYWNoZSAq LworICAgICB1aW50MzJfdCBjb25maWc7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3Zt LWh3LWFybS10ZWdyYTI0MS1jbWRxdi1tbWFwLWhvc3QtVklOVEYtUGFnZTAtZm9yLUNNRFEucGF0 Y2ggYi9rdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LW1tYXAtaG9zdC1WSU5URi1QYWdlMC1mb3It Q01EUS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2ZkNmM0Ci0t LSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1tbWFwLWhvc3QtVklO VEYtUGFnZTAtZm9yLUNNRFEucGF0Y2gKQEAgLTAsMCArMSwxMTYgQEAKK0Zyb20gYWZlOWU4MmRi OTJkYjQxY2I2ZDg3ZjU1NDEwYjM4ODY2N2I4ZTUzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1ZSwgOSBK dW4gMjAyNiAxMjoyNTozNSArMDEwMAorU3ViamVjdDogW1BBVENIIDA5My8xMTFdIGh3L2FybS90 ZWdyYTI0MS1jbWRxdjogbW1hcCBob3N0IFZJTlRGIFBhZ2UwIGZvcgorIENNRFFWCitNSU1FLVZl cnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZv ciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2 NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5 OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFj a2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbOTMvMTEx XSAwNDlkMjI2ODI2Y2JlYzlmZjJkNjUwOWQ0NmI3M2IzZDcwMzcxMjMwIChlYXVnZXIxL2NlbnRv cy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2Uv UkhFTC03Mzc5OAorCitUaGUga2VybmVsIGN1cnJlbnRseSBleHBvc2VzIGEgc2luZ2xlIFZJTlRG IHBlciBlbXVsYXRlZCBTTU1VdjMKK2luc3RhbmNlLiBJT01NVV9WSU9NTVVfQUxMT0MgcmV0dXJu cyBhbiBtbWFwIG9mZnNldCBmb3IgdGhlIGhvc3QKK1ZJTlRGIFBhZ2UwIGFsbG9jYXRlZCBmb3Ig dGhpcyBTTU1VLiBIb3dldmVyLCBWQ01EUXMgb25seSBiZWNvbWUKK2JvdW5kIHRvIHRoYXQgVklO VEYgYWZ0ZXIgSU9NTVVfSFdfUVVFVUVfQUxMT0MsIHNvIHVudGlsIHRoZW4gdGhlCittYXBwZWQg UGFnZTAgZG9lcyBub3QgYmFjayBhbnkgcmVhbCBWQ01EUSBzdGF0ZS4KKworbW1hcCB0aGUgaG9z dCBWSU5URiBQYWdlMCByaWdodCBhZnRlciBJT01NVV9WSU9NTVVfQUxMT0MsIGFzIHRoZSBob3N0 CitWSU5URiBpcyBhbHJlYWR5IGVuYWJsZWQgYXQgdGhhdCBwb2ludCwgYW5kIHVubWFwIGl0IHdo ZW4gdGhlIHZJT01NVSBpcworZnJlZWQuIFRoZSBtYXBwaW5nIHNoYXJlcyB0aGUgdklPTU1VJ3Mg bGlmZXRpbWUuIFRoaXMgcHJlcGFyZXMgdGhlIFZJTlRGCittYXBwaW5nIGluIGFkdmFuY2Ugb2Yg c3Vic2VxdWVudCBwYXRjaGVzIHRoYXQgYWRkIFZDTURRIGFsbG9jYXRpb24uCisKK1NpZ25lZC1v ZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmlj b2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxz a29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1 Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMTUtc2tv bG90aHVtdGhvQG52aWRpYS5jb20KK0NvLWRldmVsb3BlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwg PHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGFi MTViZGEzYWMxMzgwZjYzYzZlN2FlMWU4MGY3OTljZmYyYTI2MmIpCitTaWduZWQtb2ZmLWJ5OiBF cmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vdGVncmEyNDEt Y21kcXYuYyB8IDE2ICsrKysrKysrKysrKysrKy0KKyBody9hcm0vdGVncmEyNDEtY21kcXYuaCB8 ICAzICsrKworIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmMgYi9ody9hcm0vdGVncmEy NDEtY21kcXYuYworaW5kZXggYzEzNTFjODUxOS4uM2VlYzYwNzNhNCAxMDA2NDQKKy0tLSBhL2h3 L2FybS90ZWdyYTI0MS1jbWRxdi5jCisrKysgYi9ody9hcm0vdGVncmEyNDEtY21kcXYuYworQEAg LTQxLDYgKzQxLDEwIEBAIHN0YXRpYyB2b2lkIHRlZ3JhMjQxX2NtZHF2X2ZyZWVfdmlvbW11KFNN TVV2M1N0YXRlICpzKQorICAgICAgICAgZ19mcmVlKHZldmVudHEpOworICAgICAgICAgY21kcXYt PnZldmVudHEgPSBOVUxMOworICAgICB9CisrICAgIGlmIChjbWRxdi0+dmludGZfcGFnZTApIHsK KysgICAgICAgIG11bm1hcChjbWRxdi0+dmludGZfcGFnZTAsIFZJTlRGX1BBR0VfU0laRSk7Cisr ICAgICAgICBjbWRxdi0+dmludGZfcGFnZTAgPSBOVUxMOworKyAgICB9CisgICAgIGlvbW11ZmRf YmFja2VuZF9mcmVlX2lkKHZpb21tdS0+aW9tbXVmZCwgdmlvbW11LT52aW9tbXVfaWQpOworIH0K KyAKK0BAIC02MCwxMyArNjQsMjAgQEAgdGVncmEyNDFfY21kcXZfYWxsb2NfdmlvbW11KFNNTVV2 M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LAorICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICB9CisgCisrICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX3Zpb21tdV9tbWFw KGlkZXYtPmlvbW11ZmQsIHZpb21tdV9pZCwgVklOVEZfUEFHRV9TSVpFLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRxdi0+Y21kcXZfZGF0YS0+b3V0X3ZpbnRmX21t YXBfb2Zmc2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY21kcXYt PnZpbnRmX3BhZ2UwLCBlcnJwKSkgeworKyAgICAgICAgZXJyb3JfYXBwZW5kX2hpbnQoZXJycCwg IlRlZ3JhMjQxIENNRFFWOiBmYWlsZWQgdG8gbW1hcCBWSU5URiBwYWdlMCIpOworKyAgICAgICAg Z290byBmcmVlX3Zpb21tdTsKKysgICAgfQorKworICAgICBpZiAoIWlvbW11ZmRfYmFja2VuZF9h bGxvY192ZXZlbnRxKGlkZXYtPmlvbW11ZmQsIHZpb21tdV9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9WRVZFTlRRX1RZUEVfVEVHUkEyNDFfQ01EUVYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBTTU1VX0VWRU5U UVMsICZ2ZXZlbnRxX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ2ZXZlbnRxX2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy cnApKSB7CisgICAgICAgICBlcnJvcl9hcHBlbmRfaGludChlcnJwLCAiVGVncmEyNDEgQ01EUVY6 IGZhaWxlZCB0byBhbGxvYyB2ZXZlbnRxIik7CistICAgICAgICBnb3RvIGZyZWVfdmlvbW11Owor KyAgICAgICAgZ290byBtdW5tYXBfcGFnZTA7CisgICAgIH0KKyAKKyAgICAgdmV2ZW50cSA9IGdf bmV3KElPTU1VRkRWZXZlbnRxLCAxKTsKK0BAIC03Nyw2ICs4OCw5IEBAIHRlZ3JhMjQxX2NtZHF2 X2FsbG9jX3Zpb21tdShTTU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRl diwKKyAgICAgKm91dF92aW9tbXVfaWQgPSB2aW9tbXVfaWQ7CisgICAgIHJldHVybiB0cnVlOwor IAorK211bm1hcF9wYWdlMDoKKysgICAgbXVubWFwKGNtZHF2LT52aW50Zl9wYWdlMCwgVklOVEZf UEFHRV9TSVpFKTsKKysgICAgY21kcXYtPnZpbnRmX3BhZ2UwID0gTlVMTDsKKyBmcmVlX3Zpb21t dToKKyAgICAgaW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaWRldi0+aW9tbXVmZCwgdmlvbW11X2lk KTsKKyAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL2h3L2FybS90ZWdyYTI0MS1jbWRx di5oIGIvaHcvYXJtL3RlZ3JhMjQxLWNtZHF2LmgKK2luZGV4IDlmYzcyMGU5NmMuLjAwYzgzYjYx ODYgMTAwNjQ0CistLS0gYS9ody9hcm0vdGVncmEyNDEtY21kcXYuaAorKysrIGIvaHcvYXJtL3Rl Z3JhMjQxLWNtZHF2LmgKK0BAIC0yNSw2ICsyNSw4IEBACisgICovCisgI2RlZmluZSBURUdSQTI0 MV9DTURRVl9JT19MRU4gMHg1MDAwMAorIAorKyNkZWZpbmUgVklOVEZfUEFHRV9TSVpFIDB4MTAw MDAKKysKKyBzdHJ1Y3QgaW9tbXVfdmlvbW11X3RlZ3JhMjQxX2NtZHF2OworIAorIHR5cGVkZWYg c3RydWN0IFRlZ3JhMjQxQ01EUVYgeworQEAgLTMzLDYgKzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg VGVncmEyNDFDTURRViB7CisgICAgIE1lbW9yeVJlZ2lvbiBtbWlvX2NtZHF2OworICAgICBxZW11 X2lycSBpcnE7CisgICAgIElPTU1VRkRWZXZlbnRxICp2ZXZlbnRxOworKyAgICB2b2lkICp2aW50 Zl9wYWdlMDsKKyB9IFRlZ3JhMjQxQ01EUVY7CisgCisgY29uc3QgU01NVXYzQWNjZWxDbWRxdk9w cyAqdGVncmEyNDFfY21kcXZfZ2V0X29wcyh2b2lkKTsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0taHctYXJtLXZpcnQtTGluay1TTU1VdjMtQ01EUVYtcmVzb3VyY2VzLXRvLXBsYXRm b3JtLS5wYXRjaCBiL2t2bS1ody1hcm0tdmlydC1MaW5rLVNNTVV2My1DTURRVi1yZXNvdXJjZXMt dG8tcGxhdGZvcm0tLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1 NDFmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXZpcnQtTGluay1TTU1VdjMtQ01E UVYtcmVzb3VyY2VzLXRvLXBsYXRmb3JtLS5wYXRjaApAQCAtMCwwICsxLDg0IEBACitGcm9tIDlk ZTgzNTUxNDY1ZTQwODkwOGI5OTk5YTcwNzA5MDQxYzQxN2ExMjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4K K0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxMjoyNTozMyArMDEwMAorU3ViamVjdDogW1BBVENIIDA5 MS8xMTFdIGh3L2FybS92aXJ0OiBMaW5rIFNNTVV2MyBDTURRViByZXNvdXJjZXMgdG8gcGxhdGZv cm0KKyBidXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9y OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUw NTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JI LUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0By ZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitS SC1Db21taXQ6IFs5MS8xMTFdIGRhZDQ1MmFlZGQ4ZGMxMjI3ZTc4M2UwNThmZDFiNTg4MDZmNWY1 ZTYgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxh c3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK1NNTVV2MyBkZXZpY2VzIHdpdGggYWNjZWxl cmF0aW9uIG1heSBlbmFibGUgQ01EUVYgZXh0ZW5zaW9ucworYWZ0ZXIgZGV2aWNlIHJlYWxpemUu IEluIHRoYXQgY2FzZSwgYWRkaXRpb25hbCBNTUlPIHJlZ2lvbnMgYW5kCitJUlEgbGluZXMgbWF5 IGJlIHJlZ2lzdGVyZWQgYnV0IG5vdCB5ZXQgbWFwcGVkIHRvIHRoZSBwbGF0Zm9ybSBidXMuCisK K0Vuc3VyZSBTTU1VdjMgZGV2aWNlIHJlc291cmNlcyBhcmUgbGlua2VkIHRvIHRoZSBwbGF0Zm9y bSBidXMKK2R1cmluZyBtYWNoaW5lX2RvbmUoKS4KKworVGhpcyBpcyBzYWZlIHRvIGRvIHVuY29u ZGl0aW9uYWxseSBzaW5jZSB0aGUgcGxhdGZvcm0gYnVzIGhlbHBlcnMKK3NraXAgcmVzb3VyY2Vz IHRoYXQgYXJlIGFscmVhZHkgbWFwcGVkLgorCitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNA bnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29t PgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5j b20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK01lc3Nh Z2UtaWQ6IDIwMjYwNjA5MTEyNTUyLjM3ODk5OS0xMy1za29sb3RodW10aG9AbnZpZGlhLmNvbQor U2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZGM1NzI2ZGEwNWE0NTk1MzM4ZGUwZTljMzk0N2Jl YWYyZTc2NjU1MikKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KKy0tLQorIGh3L2FybS92aXJ0LmMgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCisg MSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2FybS92 aXJ0LmMgYi9ody9hcm0vdmlydC5jCitpbmRleCA1MTY5YjRiYTViLi5jYTE1MGQ0NTVjIDEwMDY0 NAorLS0tIGEvaHcvYXJtL3ZpcnQuYworKysrIGIvaHcvYXJtL3ZpcnQuYworQEAgLTE4NTMsNiAr MTg1MywyNSBAQCBzdGF0aWMgdm9pZCB2aXJ0X2J1aWxkX3NtYmlvcyhWaXJ0TWFjaGluZVN0YXRl ICp2bXMpCisgICAgIH0KKyB9CisgCisrLyoKKysgKiBTTU1VdjMgZGV2aWNlcyB3aXRoIGFjY2Vs ZXJhdGlvbiBtYXkgZW5hYmxlIENNRFFWIGV4dGVuc2lvbnMKKysgKiBhZnRlciBkZXZpY2UgcmVh bGl6ZS4gSW4gdGhhdCBjYXNlLCBhZGRpdGlvbmFsIE1NSU8gcmVnaW9ucyBhbmQKKysgKiBJUlEg bGluZXMgbWF5IGJlIHJlZ2lzdGVyZWQgYnV0IG5vdCB5ZXQgbWFwcGVkIHRvIHRoZSBwbGF0Zm9y bSBidXMuCisrICoKKysgKiBFbnN1cmUgYWxsIHJlc291cmNlcyBhcmUgbGlua2VkIHRvIHRoZSBw bGF0Zm9ybSBidXMgYmVmb3JlIGZpbmFsCisrICogbWFjaGluZSBzZXR1cC4KKysgKi8KKysKKytz dGF0aWMgdm9pZCB2aXJ0X3NtbXV2M19kZXZfbGlua19jbWRxdihWaXJ0TWFjaGluZVN0YXRlICp2 bXMpCisreworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHZtcy0+c21tdXYzX2RldmljZXMtPmxl bjsgaSsrKSB7CisrICAgICAgICBEZXZpY2VTdGF0ZSAqZGV2ID0gZ19wdHJfYXJyYXlfaW5kZXgo dm1zLT5zbW11djNfZGV2aWNlcywgaSk7CisrCisrICAgICAgICBwbGF0Zm9ybV9idXNfbGlua19k ZXZpY2UoUExBVEZPUk1fQlVTX0RFVklDRSh2bXMtPnBsYXRmb3JtX2J1c19kZXYpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU19CVVNfREVWSUNFKGRldikpOworKyAgICB9 CisrfQorKworIHN0YXRpYworIHZvaWQgdmlydF9tYWNoaW5lX2RvbmUoTm90aWZpZXIgKm5vdGlm aWVyLCB2b2lkICpkYXRhKQorIHsKK0BAIC0xODY5LDYgKzE4ODgsOSBAQCB2b2lkIHZpcnRfbWFj aGluZV9kb25lKE5vdGlmaWVyICpub3RpZmllciwgdm9pZCAqZGF0YSkKKyAgICAgaWYgKHZtcy0+ Y3hsX2RldmljZXNfc3RhdGUuaXNfZW5hYmxlZCkgeworICAgICAgICAgY3hsX2Ztd3NfbGlua190 YXJnZXRzKCZlcnJvcl9mYXRhbCk7CisgICAgIH0KKysKKysgICAgdmlydF9zbW11djNfZGV2X2xp bmtfY21kcXYodm1zKTsKKysKKyAgICAgLyoKKyAgICAgICogSWYgdGhlIHVzZXIgcHJvdmlkZWQg YSBkdGIsIHdlIGFzc3VtZSB0aGUgZHluYW1pYyBzeXNidXMgbm9kZXMKKyAgICAgICogYWxyZWFk eSBhcmUgaW50ZWdyYXRlZCB0aGVyZS4gVGhpcyBjb3JyZXNwb25kcyB0byBhIHVzZSBjYXNlIHdo ZXJlCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFybS12aXJ0LVNldC1QQ0kt cHJlc2VydmVfY29uZmlnLWZvci1hY2NlbC1TTU1VdjMucGF0Y2ggYi9rdm0taHctYXJtLXZpcnQt U2V0LVBDSS1wcmVzZXJ2ZV9jb25maWctZm9yLWFjY2VsLVNNTVV2My5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmZkODU1Ci0tLSAvZGV2L251bGwKKysrIGIva3Zt LWh3LWFybS12aXJ0LVNldC1QQ0ktcHJlc2VydmVfY29uZmlnLWZvci1hY2NlbC1TTU1VdjMucGF0 Y2gKQEAgLTAsMCArMSw4NyBAQAorRnJvbSBkNjE0ZGMwNmYyNTJlMjU2Y2UzNmE4ODQ5NGE3N2Zj MTYyMmNhMzEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1 bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMy OjA1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDMxLzExMV0gaHcvYXJtL3ZpcnQ6IFNldCBQQ0kg cHJlc2VydmVfY29uZmlnIGZvciBhY2NlbCBTTU1VdjMKK01JTUUtVmVyc2lvbjogMS4wCitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNN TVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTog Q8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNo YW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFszMS8xMTFdIDAyZTAyYzc0MmE1NDky ZDRhMGU0ZDBjNmUyOWQ5NGJmMzlkMTYyMTAgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitK SVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0lu dHJvZHVjZSBhIG5ldyBwY2lfcHJlc2VydmVfY29uZmlnIGZpZWxkIGluIHZpcnQgbWFjaGluZSBz dGF0ZSB3aGljaAorYWxsb3dzIHRoZSBnZW5lcmF0aW9uIG9mIERTTSAjNS4gVGhpcyBmaWVsZCBp cyBvbmx5IHNldCBpZiBhY2NlbCBTTU1VCitpcyBpbnN0YW50aWF0ZWQuCisKK0luIGEgc3Vic2Vx dWVudCBwYXRjaCwgU01NVXYzIGFjY2VsIG1vZGUgd2lsbCBtYWtlIHVzZSBvZiBJT1JUIFJNUiBu b2RlcwordG8gZW5hYmxlIG5lc3RlZCB0cmFuc2xhdGlvbiBvZiBNU0kgZG9vcmJlbGwgYWRkcmVz c2VzLiBJT1JUIFJNUiByZXF1aXJlcworX0RTTSAjNSB0byBiZSBzZXQgZm9yIHRoZSBQQ0kgaG9z dCBicmlkZ2Ugc28gdGhhdCB0aGUgR3Vlc3Qga2VybmVsCitwcmVzZXJ2ZXMgdGhlIFBDSSBib290 IGNvbmZpZ3VyYXRpb24uCisKK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhh bi5jYW1lcm9uQGh1YXdlaS5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWku Z2FvQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitT aWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4K K01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS0yNC1za29sb3RodW10aG9AbnZpZGlh LmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNDVjNTdlYWVmZDRjN2E2N2M5M2U3N2Q2 ZjQ0MzZjODU2OWFlZmJiOSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS92aXJ0LWFjcGktYnVpbGQuYyB8IDggKysrKysrKysK KyBody9hcm0vdmlydC5jICAgICAgICAgICAgfCAxICsKKyBpbmNsdWRlL2h3L2FybS92aXJ0Lmgg ICAgfCAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdp dCBhL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYyBiL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYwor aW5kZXggNWE2NDJhYmFjNi4uNjg4MzE0NzA0MCAxMDA2NDQKKy0tLSBhL2h3L2FybS92aXJ0LWFj cGktYnVpbGQuYworKysrIGIvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jCitAQCAtMTYzLDYgKzE2 MywxNCBAQCBzdGF0aWMgdm9pZCBhY3BpX2RzZHRfYWRkX3BjaShBbWwgKnNjb3BlLCBjb25zdCBN ZW1NYXBFbnRyeSAqbWVtbWFwLAorICAgICAgICAgLnBjaV9uYXRpdmVfaG90cGx1ZyA9ICFhY3Bp X3BjaWhwLAorICAgICB9OworIAorKyAgICAvKgorKyAgICAgKiBBY2NlbCBTTU1VIHJlcXVpcmVz IFJNUnMgZm9yIE1TSSAxLTEgbWFwcGluZywgd2hpY2ggcmVxdWlyZSBfRFNNCisrICAgICAqIGZ1 bmN0aW9uIDUgKF9EU00gZm9yIFByZXNlcnZpbmcgUENJIEJvb3QgQ29uZmlndXJhdGlvbnMpLgor KyAgICAgKi8KKysgICAgaWYgKHZtcy0+cGNpX3ByZXNlcnZlX2NvbmZpZykgeworKyAgICAgICAg Y2ZnLnByZXNlcnZlX2NvbmZpZyA9IHRydWU7CisrICAgIH0KKysKKyAgICAgaWYgKHZtcy0+aGln aG1lbV9tbWlvKSB7CisgICAgICAgICBjZmcubW1pbzY0ID0gbWVtbWFwW1ZJUlRfSElHSF9QQ0lF X01NSU9dOworICAgICB9CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQuYyBiL2h3L2FybS92aXJ0 LmMKK2luZGV4IGI5NzY1ZDQyNDguLjY3MmI4ZDkxMmMgMTAwNjQ0CistLS0gYS9ody9hcm0vdmly dC5jCisrKysgYi9ody9hcm0vdmlydC5jCitAQCAtMzExMSw2ICszMTExLDcgQEAgc3RhdGljIHZv aWQgdmlydF9tYWNoaW5lX2RldmljZV9wcmVfcGx1Z19jYihIb3RwbHVnSGFuZGxlciAqaG90cGx1 Z19kZXYsCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG9iamVjdF9wcm9wZXJ0eV9zZXRf dWludChPQkpFQ1QoZGV2KSwgIm1zaS1ncGEiLCBkYl9zdGFydCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmVycm9yX2Fib3J0KTsKKysgICAgICAgICAgICB2bXMtPnBj aV9wcmVzZXJ2ZV9jb25maWcgPSB0cnVlOworICAgICAgICAgfQorICAgICB9CisgfQorZGlmZiAt LWdpdCBhL2luY2x1ZGUvaHcvYXJtL3ZpcnQuaCBiL2luY2x1ZGUvaHcvYXJtL3ZpcnQuaAoraW5k ZXggOGQ5MGI2NmI4Ny4uYjZkNjk2ZThjZSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvYXJtL3Zp cnQuaAorKysrIGIvaW5jbHVkZS9ody9hcm0vdmlydC5oCitAQCAtMTgzLDYgKzE4Myw3IEBAIHN0 cnVjdCBWaXJ0TWFjaGluZVN0YXRlIHsKKyAgICAgYm9vbCBsZWdhY3lfc21tdXYzX3ByZXNlbnQ7 CisgICAgIE1lbW9yeVJlZ2lvbiAqc3lzbWVtOworICAgICBNZW1vcnlSZWdpb24gKnNlY3VyZV9z eXNtZW07CisrICAgIGJvb2wgcGNpX3ByZXNlcnZlX2NvbmZpZzsKKyB9OworIAorICNkZWZpbmUg VklSVF9FQ0FNX0lEKGhpZ2gpIChoaWdoID8gVklSVF9ISUdIX1BDSUVfRUNBTSA6IFZJUlRfUENJ RV9FQ0FNKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1hcm0tdmlydC1TZXQt bXNpLWdwYS1wcm9wZXJ0eS5wYXRjaCBiL2t2bS1ody1hcm0tdmlydC1TZXQtbXNpLWdwYS1wcm9w ZXJ0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTYxY2Y1Ci0t LSAvZGV2L251bGwKKysrIGIva3ZtLWh3LWFybS12aXJ0LVNldC1tc2ktZ3BhLXByb3BlcnR5LnBh dGNoCkBAIC0wLDAgKzEsNjkgQEAKK0Zyb20gNmVhZjVjNTYwYTM5NjY5ZWM3ZjQzYTM3MTQ1NDli MTRhMTY0YzcyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3Ro dW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzoz MjowNSArMDAwMAorU3ViamVjdDogW1BBVENIIDAyNi8xMTFdIGh3L2FybS92aXJ0OiBTZXQgbXNp LWdwYSBwcm9wZXJ0eQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1B dXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVz dDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9y dAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5 NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8 Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNv bT4KK1JILUNvbW1pdDogWzI2LzExMV0gODA4OWZiODc4ZGIxNWZiYjU5MjllMTVmYjIyMTBiMWVj MmNjYjljMCAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0 LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworU2V0IHRoZSBNU0kgZG9vcmJlbGwg R1BBIHByb3BlcnR5IGZvciBhY2NlbGVyYXRlZCBTTU1VdjMgZGV2aWNlcyBmb3IgdXNlCitieSBL Vk0gTVNJIHNldHVwLiBBbHNvLCBzaW5jZSBhbnkgbWVhbmluZ2Z1bCB1c2Ugb2YgdmZpby1wY2kg ZGV2aWNlcyB3aXRoCithbiBhY2NlbGVyYXRlZCBTTU1VdjMgcmVxdWlyZXMgYm90aCBLVk0gYW5k IGEga2VybmVsIGlycWNoaXAsIGVuc3VyZQordGhvc2UgYXJlIHNwZWNpZmllZCB3aGVuIGFjY2Vs PW9uIGlzIHNlbGVjdGVkLgorCitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0Bu dmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitSZXZp ZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgor U2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+ CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMTktc2tvbG90aHVtdGhvQG52aWRp YS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJv Lm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDVlYzI3MDBkY2JmNzJjNmJiZWIwMDMy MmU1MjU4Zjk5OTA3MWQ5ZDUpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CistLS0KKyBody9hcm0vdmlydC5jIHwgMjAgKysrKysrKysrKysrKysrKysr KysKKyAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaHcv YXJtL3ZpcnQuYyBiL2h3L2FybS92aXJ0LmMKK2luZGV4IGUzZTAyMzM0NzQuLmI5NzY1ZDQyNDgg MTAwNjQ0CistLS0gYS9ody9hcm0vdmlydC5jCisrKysgYi9ody9hcm0vdmlydC5jCitAQCAtMzA5 Miw2ICszMDkyLDI2IEBAIHN0YXRpYyB2b2lkIHZpcnRfbWFjaGluZV9kZXZpY2VfcHJlX3BsdWdf Y2IoSG90cGx1Z0hhbmRsZXIgKmhvdHBsdWdfZGV2LAorICAgICAgICAgICAgIG9iamVjdF9wcm9w ZXJ0eV9zZXRfbGluayhPQkpFQ1QoZGV2KSwgInNlY3VyZS1tZW1vcnkiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPQkpFQ1Qodm1zLT5zZWN1cmVfc3lzbWVtKSwgTlVM TCk7CisgICAgICAgICB9CisrICAgICAgICBpZiAob2JqZWN0X3Byb3BlcnR5X2ZpbmQoT0JKRUNU KGRldiksICJhY2NlbCIpICYmCisrICAgICAgICAgICAgb2JqZWN0X3Byb3BlcnR5X2dldF9ib29s KE9CSkVDVChkZXYpLCAiYWNjZWwiLCAmZXJyb3JfYWJvcnQpKSB7CisrICAgICAgICAgICAgaHdh ZGRyIGRiX3N0YXJ0ID0gMDsKKysKKysgICAgICAgICAgICBpZiAoIWt2bV9lbmFibGVkKCkgfHwg IWt2bV9pcnFjaGlwX2luX2tlcm5lbCgpKSB7CisrICAgICAgICAgICAgICAgIGVycm9yX3NldGco ZXJycCwgIlNNTVV2MyBhY2NlbD1vbiByZXF1aXJlcyBLVk0gd2l0aCAiCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgImtlcm5lbC1pcnFjaGlwPW9uIHN1cHBvcnQiKTsKKysgICAgICAgICAg ICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICBpZiAodm1zLT5t c2lfY29udHJvbGxlciA9PSBWSVJUX01TSV9DVFJMX0lUUykgeworKyAgICAgICAgICAgICAgICAv KiBHSVRTX1RSQU5TTEFURVIgcGFnZSArIG9mZnNldCAqLworKyAgICAgICAgICAgICAgICBkYl9z dGFydCA9IGJhc2VfbWVtbWFwW1ZJUlRfR0lDX0lUU10uYmFzZSArIDB4MTAwMDAgKyAweDQwOwor KyAgICAgICAgICAgIH0gZWxzZSBpZiAodm1zLT5tc2lfY29udHJvbGxlciA9PSBWSVJUX01TSV9D VFJMX0dJQ1YyTSkgeworKyAgICAgICAgICAgICAgICAvKiBNU0lfU0VUU1BJX05TIHBhZ2UgKyBv ZmZzZXQgKi8KKysgICAgICAgICAgICAgICAgZGJfc3RhcnQgPSBiYXNlX21lbW1hcFtWSVJUX0dJ Q19WMk1dLmJhc2UgKyAweDQwOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBvYmplY3Rf cHJvcGVydHlfc2V0X3VpbnQoT0JKRUNUKGRldiksICJtc2ktZ3BhIiwgZGJfc3RhcnQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9hYm9ydCk7CisrICAgICAg ICB9CisgICAgIH0KKyB9CisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LWFy bS12aXJ0LVVzZS1zdG9yZWQtU01NVXYzLWRldmljZS1saXN0LWZvci1JT1JULWIucGF0Y2ggYi9r dm0taHctYXJtLXZpcnQtVXNlLXN0b3JlZC1TTU1VdjMtZGV2aWNlLWxpc3QtZm9yLUlPUlQtYi5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFmYjJjCi0tLSAvZGV2 L251bGwKKysrIGIva3ZtLWh3LWFybS12aXJ0LVVzZS1zdG9yZWQtU01NVXYzLWRldmljZS1saXN0 LWZvci1JT1JULWIucGF0Y2gKQEAgLTAsMCArMSwxNzMgQEAKK0Zyb20gMjBmNzEzNzk5MGMzYjUz N2M5Mjc3NGIxOGViY2I5OGFlNDk3Y2RmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVHVlLCA5 IEp1biAyMDI2IDEyOjI1OjMwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMDg4LzExMV0gaHcvYXJt L3ZpcnQ6IFVzZSBzdG9yZWQgU01NVXYzIGRldmljZSBsaXN0IGZvciBJT1JUCisgYnVpbGQKK01J TUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJh c2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgor UkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs4 OC8xMTFdIDkwMTU5NWZhYjRiYzk3N2I0Mzk1NGIwNTYzZTk1ZGMzYmY1MDVkNmYgKGVhdWdlcjEv Y2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jy b3dzZS9SSEVMLTczNzk4CisKK0ludHJvZHVjZSBhIEdQdHJBcnJheSBpbiBWaXJ0TWFjaGluZVN0 YXRlIHRvIHRyYWNrIGFsbCBTTU1VdjMgZGV2aWNlcworY3JlYXRlZCBvbiB0aGUgdmlydCBtYWNo aW5lLCBhbmQgdXNlIGl0IHdoZW4gYnVpbGRpbmcgdGhlIElPUlQgdGFibGUKK2luc3RlYWQgb2Yg cmVseWluZyBvbiBvYmplY3RfY2hpbGRfZm9yZWFjaF9yZWN1cnNpdmUoKSB3YWxrcyBvZiB0aGUK K29iamVjdCB0cmVlLgorCitUaGlzIGF2b2lkcyByZWN1cnNpdmUgb2JqZWN0IHRyYXZlcnNhbCBh bmQgcHJvdmlkZXMgYSBmb3VuZGF0aW9uIGZvcgorc3Vic2VxdWVudCBwYXRjaGVzIHRoYXQgbmVl ZCBkaXJlY3QgYWNjZXNzIHRvIFNNTVV2MyBpbnN0YW5jZXMgZm9yCitDTURRVi1yZWxhdGVkIGhh bmRsaW5nLgorCitObyBmdW5jdGlvbmFsIGNoYW5nZS4gTm8gYmlvcy10YWJsZXMgcXRlc3QgZmFp bHVyZXMgb2JzZXJ2ZWQuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29t PgorVGVzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitTaWduZWQt b2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Rlc3Rl ZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorTWVzc2FnZS1pZDogMjAy NjA2MDkxMTI1NTIuMzc4OTk5LTEwLXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2Zm LWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCA5MmUzNDA5OTdmODYxY2M3Mjg5ZGE3NjMzNmQ0MGY2NWE0YTU4MzE4 KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0t CisgaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jIHwgNzAgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGh3L2FybS92aXJ0LmMgICAgICAgICAgICB8ICAzICsrCisgaW5j bHVkZS9ody9hcm0vdmlydC5oICAgIHwgIDEgKworIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0 aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ody9hcm0vdmlydC1hY3Bp LWJ1aWxkLmMgYi9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMKK2luZGV4IGI5MjNlOTY1ZGEuLjU5 N2Q1MTE5OWMgMTAwNjQ0CistLS0gYS9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMKKysrKyBiL2h3 L2FybS92aXJ0LWFjcGktYnVpbGQuYworQEAgLTM5MSw0OSArMzkxLDQxIEBAIHN0YXRpYyBpbnQg c21tdXYzX2Rldl9pZG1hcF9jb21wYXJlKGdjb25zdHBvaW50ZXIgYSwgZ2NvbnN0cG9pbnRlciBi KQorICAgICByZXR1cm4gbWFwX2EtPmlucHV0X2Jhc2UgLSBtYXBfYi0+aW5wdXRfYmFzZTsKKyB9 CisgCistc3RhdGljIGludCBpb3J0X3NtbXV2M19kZXZpY2VzKE9iamVjdCAqb2JqLCB2b2lkICpv cGFxdWUpCisteworLSAgICBWaXJ0TWFjaGluZVN0YXRlICp2bXMgPSBWSVJUX01BQ0hJTkUocWRl dl9nZXRfbWFjaGluZSgpKTsKKy0gICAgQWNwaUlvcnRTTU1VdjNEZXYgc2RldiA9IHswfTsKKy0g ICAgR0FycmF5ICpzZGV2X2Jsb2IgPSBvcGFxdWU7CistICAgIEFjcGlJb3J0SWRNYXBwaW5nIGlk bWFwOworLSAgICBQbGF0Zm9ybUJ1c0RldmljZSAqcGJ1czsKKy0gICAgaW50IG1pbl9idXMsIG1h eF9idXM7CistICAgIFN5c0J1c0RldmljZSAqc2JkZXY7CistICAgIFBDSUJ1cyAqYnVzOworLQor LSAgICBpZiAoIW9iamVjdF9keW5hbWljX2Nhc3Qob2JqLCBUWVBFX0FSTV9TTU1VVjMpKSB7Cist ICAgICAgICByZXR1cm4gMDsKKy0gICAgfQorLQorLSAgICBidXMgPSBQQ0lfQlVTKG9iamVjdF9w cm9wZXJ0eV9nZXRfbGluayhvYmosICJwcmltYXJ5LWJ1cyIsICZlcnJvcl9hYm9ydCkpOworLSAg ICBzZGV2LmFjY2VsID0gb2JqZWN0X3Byb3BlcnR5X2dldF9ib29sKG9iaiwgImFjY2VsIiwgJmVy cm9yX2Fib3J0KTsKKy0gICAgc2Rldi5hdHMgPSBzbW11djNfYXRzX2VuYWJsZWQoQVJNX1NNTVVW MyhvYmopKTsKKy0gICAgcGJ1cyA9IFBMQVRGT1JNX0JVU19ERVZJQ0Uodm1zLT5wbGF0Zm9ybV9i dXNfZGV2KTsKKy0gICAgc2JkZXYgPSBTWVNfQlVTX0RFVklDRShvYmopOworLSAgICBzZGV2LmJh c2UgPSBwbGF0Zm9ybV9idXNfZ2V0X21taW9fYWRkcihwYnVzLCBzYmRldiwgMCk7CistICAgIHNk ZXYuYmFzZSArPSB2bXMtPm1lbW1hcFtWSVJUX1BMQVRGT1JNX0JVU10uYmFzZTsKKy0gICAgc2Rl di5pcnEgPSBwbGF0Zm9ybV9idXNfZ2V0X2lycW4ocGJ1cywgc2JkZXYsIDApOworLSAgICBzZGV2 LmlycSArPSB2bXMtPmlycW1hcFtWSVJUX1BMQVRGT1JNX0JVU107CistICAgIHNkZXYuaXJxICs9 IEFSTV9TUElfQkFTRTsKKy0KKy0gICAgcGNpX2J1c19yYW5nZShidXMsICZtaW5fYnVzLCAmbWF4 X2J1cyk7CistICAgIHNkZXYucmNfc21tdV9pZG1hcHMgPSBnX2FycmF5X25ldyhmYWxzZSwgdHJ1 ZSwgc2l6ZW9mKEFjcGlJb3J0SWRNYXBwaW5nKSk7CistICAgIGlkbWFwLmlucHV0X2Jhc2UgPSBt aW5fYnVzIDw8IDgsCistICAgIGlkbWFwLmlkX2NvdW50ID0gKG1heF9idXMgLSBtaW5fYnVzICsg MSkgPDwgOCwKKy0gICAgZ19hcnJheV9hcHBlbmRfdmFsKHNkZXYucmNfc21tdV9pZG1hcHMsIGlk bWFwKTsKKy0gICAgZ19hcnJheV9hcHBlbmRfdmFsKHNkZXZfYmxvYiwgc2Rldik7CistICAgIHJl dHVybiAwOworLX0KKy0KKyAvKgorICAqIFBvcHVsYXRlIHRoZSBzdHJ1Y3QgQWNwaUlvcnRTTU1V djNEZXYgZm9yIGFsbCBTTU1VdjMgZGV2aWNlcyBhbmQKKyAgKiByZXR1cm4gdGhlIHRvdGFsIG51 bWJlciBvZiBpZG1hcHMuCisgICovCistc3RhdGljIGludCBwb3B1bGF0ZV9zbW11djNfZGV2KEdB cnJheSAqc2Rldl9ibG9iKQorK3N0YXRpYyBpbnQgcG9wdWxhdGVfc21tdXYzX2RldihWaXJ0TWFj aGluZVN0YXRlICp2bXMsIEdBcnJheSAqc2Rldl9ibG9iKQorIHsKKy0gICAgb2JqZWN0X2NoaWxk X2ZvcmVhY2hfcmVjdXJzaXZlKG9iamVjdF9nZXRfcm9vdCgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW9ydF9zbW11djNfZGV2aWNlcywgc2Rldl9ibG9iKTsKKysgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCB2bXMtPnNtbXV2M19kZXZpY2VzLT5sZW47IGkrKykgeworKyAg ICAgICAgT2JqZWN0ICpvYmogPSBPQkpFQ1QoZ19wdHJfYXJyYXlfaW5kZXgodm1zLT5zbW11djNf ZGV2aWNlcywgaSkpOworKyAgICAgICAgQWNwaUlvcnRTTU1VdjNEZXYgc2RldiA9IHswfTsKKysg ICAgICAgIEFjcGlJb3J0SWRNYXBwaW5nIGlkbWFwOworKyAgICAgICAgUGxhdGZvcm1CdXNEZXZp Y2UgKnBidXM7CisrICAgICAgICBpbnQgbWluX2J1cywgbWF4X2J1czsKKysgICAgICAgIFN5c0J1 c0RldmljZSAqc2JkZXY7CisrICAgICAgICBQQ0lCdXMgKmJ1czsKKysKKysgICAgICAgIGJ1cyA9 IFBDSV9CVVMob2JqZWN0X3Byb3BlcnR5X2dldF9saW5rKG9iaiwgInByaW1hcnktYnVzIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9hYm9y dCkpOworKyAgICAgICAgc2Rldi5hY2NlbCA9IG9iamVjdF9wcm9wZXJ0eV9nZXRfYm9vbChvYmos ICJhY2NlbCIsICZlcnJvcl9hYm9ydCk7CisrICAgICAgICBzZGV2LmF0cyA9IHNtbXV2M19hdHNf ZW5hYmxlZChBUk1fU01NVVYzKG9iaikpOworKyAgICAgICAgcGJ1cyA9IFBMQVRGT1JNX0JVU19E RVZJQ0Uodm1zLT5wbGF0Zm9ybV9idXNfZGV2KTsKKysgICAgICAgIHNiZGV2ID0gU1lTX0JVU19E RVZJQ0Uob2JqKTsKKysgICAgICAgIHNkZXYuYmFzZSA9IHBsYXRmb3JtX2J1c19nZXRfbW1pb19h ZGRyKHBidXMsIHNiZGV2LCAwKTsKKysgICAgICAgIHNkZXYuYmFzZSArPSB2bXMtPm1lbW1hcFtW SVJUX1BMQVRGT1JNX0JVU10uYmFzZTsKKysgICAgICAgIHNkZXYuaXJxID0gcGxhdGZvcm1fYnVz X2dldF9pcnFuKHBidXMsIHNiZGV2LCAwKTsKKysgICAgICAgIHNkZXYuaXJxICs9IHZtcy0+aXJx bWFwW1ZJUlRfUExBVEZPUk1fQlVTXTsKKysgICAgICAgIHNkZXYuaXJxICs9IEFSTV9TUElfQkFT RTsKKysKKysgICAgICAgIHBjaV9idXNfcmFuZ2UoYnVzLCAmbWluX2J1cywgJm1heF9idXMpOwor KyAgICAgICAgc2Rldi5yY19zbW11X2lkbWFwcyA9IGdfYXJyYXlfbmV3KGZhbHNlLCB0cnVlLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihBY3BpSW9y dElkTWFwcGluZykpOworKyAgICAgICAgaWRtYXAuaW5wdXRfYmFzZSA9IG1pbl9idXMgPDwgODsK KysgICAgICAgIGlkbWFwLmlkX2NvdW50ID0gKG1heF9idXMgLSBtaW5fYnVzICsgMSkgPDwgODsK KysgICAgICAgIGdfYXJyYXlfYXBwZW5kX3ZhbChzZGV2LnJjX3NtbXVfaWRtYXBzLCBpZG1hcCk7 CisrICAgICAgICBnX2FycmF5X2FwcGVuZF92YWwoc2Rldl9ibG9iLCBzZGV2KTsKKysgICAgfQor ICAgICAvKiBTb3J0IHRoZSBzbW11djMgZGV2aWNlcyhpZiBhbnkpIGJ5IHNtbXUgaWRtYXAgaW5w dXRfYmFzZSAqLworICAgICBnX2FycmF5X3NvcnQoc2Rldl9ibG9iLCBzbW11djNfZGV2X2lkbWFw X2NvbXBhcmUpOworICAgICAvKgorQEAgLTU2Nyw3ICs1NTksNyBAQCBidWlsZF9pb3J0KEdBcnJh eSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLCBWaXJ0TWFjaGluZVN0YXRlICp2bXMp CisgICAgIGlmICh2bXMtPmxlZ2FjeV9zbW11djNfcHJlc2VudCkgeworICAgICAgICAgcmNfc21t dV9pZG1hcHNfbGVuID0gcG9wdWxhdGVfc21tdXYzX2xlZ2FjeV9kZXYoc21tdXYzX2RldnMpOwor ICAgICB9IGVsc2UgeworLSAgICAgICAgcmNfc21tdV9pZG1hcHNfbGVuID0gcG9wdWxhdGVfc21t dXYzX2RldihzbW11djNfZGV2cyk7CisrICAgICAgICByY19zbW11X2lkbWFwc19sZW4gPSBwb3B1 bGF0ZV9zbW11djNfZGV2KHZtcywgc21tdXYzX2RldnMpOworICAgICB9CisgCisgICAgIG51bV9z bW11cyA9IHNtbXV2M19kZXZzLT5sZW47CitkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQuYyBiL2h3 L2FybS92aXJ0LmMKK2luZGV4IDU0ODZhZjQ0NTYuLjUxNjliNGJhNWIgMTAwNjQ0CistLS0gYS9o dy9hcm0vdmlydC5jCisrKysgYi9ody9hcm0vdmlydC5jCitAQCAtMzE1Myw2ICszMTUzLDcgQEAg c3RhdGljIHZvaWQgdmlydF9tYWNoaW5lX2RldmljZV9wbHVnX2NiKEhvdHBsdWdIYW5kbGVyICpo b3RwbHVnX2RldiwKKyAgICAgICAgICAgICB9CisgCisgICAgICAgICAgICAgY3JlYXRlX3NtbXV2 M19kZXZfZHRiKHZtcywgZGV2LCBidXMsIGVycnApOworKyAgICAgICAgICAgIGdfcHRyX2FycmF5 X2FkZCh2bXMtPnNtbXV2M19kZXZpY2VzLCBkZXYpOworICAgICAgICAgfQorICAgICB9CisgCitA QCAtMzU3NSw2ICszNTc2LDggQEAgc3RhdGljIHZvaWQgdmlydF9pbnN0YW5jZV9pbml0KE9iamVj dCAqb2JqKQorICAgICB2bXMtPm9lbV9pZCA9IGdfc3RybmR1cChBQ1BJX0JVSUxEX0FQUE5BTUU2 LCA2KTsKKyAgICAgdm1zLT5vZW1fdGFibGVfaWQgPSBnX3N0cm5kdXAoQUNQSV9CVUlMRF9BUFBO QU1FOCwgOCk7CisgICAgIGN4bF9tYWNoaW5lX2luaXQob2JqLCAmdm1zLT5jeGxfZGV2aWNlc19z dGF0ZSk7CisrCisrICAgIHZtcy0+c21tdXYzX2RldmljZXMgPSBnX3B0cl9hcnJheV9uZXdfd2l0 aF9mcmVlX2Z1bmMoTlVMTCk7CisgfQorIAorIHN0YXRpYyBjb25zdCBUeXBlSW5mbyB2aXJ0X21h Y2hpbmVfaW5mbyA9IHsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FybS92aXJ0LmggYi9pbmNs dWRlL2h3L2FybS92aXJ0LmgKK2luZGV4IGI2ZDY5NmU4Y2UuLjU4YTlkYjk3MjMgMTAwNjQ0Cist LS0gYS9pbmNsdWRlL2h3L2FybS92aXJ0LmgKKysrKyBiL2luY2x1ZGUvaHcvYXJtL3ZpcnQuaAor QEAgLTE4NCw2ICsxODQsNyBAQCBzdHJ1Y3QgVmlydE1hY2hpbmVTdGF0ZSB7CisgICAgIE1lbW9y eVJlZ2lvbiAqc3lzbWVtOworICAgICBNZW1vcnlSZWdpb24gKnNlY3VyZV9zeXNtZW07CisgICAg IGJvb2wgcGNpX3ByZXNlcnZlX2NvbmZpZzsKKysgICAgR1B0ckFycmF5ICpzbW11djNfZGV2aWNl czsKKyB9OworIAorICNkZWZpbmUgVklSVF9FQ0FNX0lEKGhpZ2gpIChoaWdoID8gVklSVF9ISUdI X1BDSUVfRUNBTSA6IFZJUlRfUENJRV9FQ0FNKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBh L2t2bS1ody1hcm0tdmlydC1hY3BpLUFkdmVydGlzZS1UZWdyYTI0MS1DTURRVi1ub2Rlcy1pbi1E LnBhdGNoIGIva3ZtLWh3LWFybS12aXJ0LWFjcGktQWR2ZXJ0aXNlLVRlZ3JhMjQxLUNNRFFWLW5v ZGVzLWluLUQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNlMDFl NQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1hcm0tdmlydC1hY3BpLUFkdmVydGlzZS1UZWdy YTI0MS1DTURRVi1ub2Rlcy1pbi1ELnBhdGNoCkBAIC0wLDAgKzEsMTczIEBACitGcm9tIGUyMGMy ZmNlYWMwY2FkOWE2ZjUwOWQ5MDg3ZTJmYTk2NWNjMTQ4OWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBOaWNvbGluIENoZW4gPG5pY29saW5jQG52aWRpYS5jb20+CitEYXRlOiBUdWUs IDkgSnVuIDIwMjYgMTI6MjU6NDkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxMDcvMTExXSBody9h cm0vdmlydC1hY3BpOiBBZHZlcnRpc2UgVGVncmEyNDEgQ01EUVYgbm9kZXMgaW4KKyBEU0RUCitN SU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmVi YXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4K K1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBb MTA3LzExMV0gYmFlNjdhZWZhYzE0MGMxZTQwNWQzNWU0YjZhMDI1NjBjYzQwZjY3MSAoZWF1Z2Vy MS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQv YnJvd3NlL1JIRUwtNzM3OTgKKworQWRkIEFDUEkgRFNEVCBzdXBwb3J0IGZvciBUZWdyYTI0MSBD TURRViB3aGVuIHRoZSBTTU1VdjMgaW5zdGFuY2UgaXMKK2NyZWF0ZWQgd2l0aCB0ZWdyYTI0MS1j bWRxdi4KKworRm9yIGVhY2ggYWNjZWxlcmF0ZWQgU01NVXYzIGluc3RhbmNlLCBhZGQgYSBUZWdy YTI0MSBDTURRViBkZXZpY2UKK29iamVjdCB1bmRlciB0aGUgRFNEVCBcX1NCIG5hbWVzcGFjZSwg d2l0aCBISUQgIk5WREEyMDBDIiBhbmQgYSBVSUQKK3RoYXQgbWF0Y2hlcyB0aGUgSWRlbnRpZmll ciBvZiB0aGUgY29ycmVzcG9uZGluZyBTTU1VdjMgSU9SVCBub2RlLCBzbwordGhlIGd1ZXN0IE9T IGNhbiBhc3NvY2lhdGUgdGhlIERTRFQgZGV2aWNlIHdpdGggdGhlIHJpZ2h0IFNNTVUuIFRoZQor X0NSUyBjb3ZlcnMgdGhlIENNRFFWIE1NSU8gYXBlcnR1cmUgcGx1cyBpdHMgaW50ZXJydXB0LCBh bmQgX0NDQQorZGVjbGFyZXMgSS9PIGNhY2hlIGNvaGVyZW5jeS4KKworU2VlIEFDUEkgU3BlY2lm aWNhdGlvbiA2LjUsIFNlY3Rpb24gNiAoRGV2aWNlIENvbmZpZ3VyYXRpb24pIGZvcgorX0hJRC9f VUlEL19DQ0EvX0NSUy4KKworR2VuZXJhdGVkIERTRFQgZW50cnkgZm9yIGEgQ01EUVYgaW5zdGFu Y2UgcGFpcmVkIHdpdGggU01NVXYzIElkZW50aWZpZXI9MToKKyAgLi4uCisgIERldmljZSAoQ1Yw MSkKKyAgeworICAgICAgTmFtZSAoX0hJRCwgIk5WREEyMDBDIikgIC8vIF9ISUQ6IEhhcmR3YXJl IElECisgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKKyAgICAgIE5h bWUgKF9DQ0EsIE9uZSkgIC8vIF9DQ0E6IENhY2hlIENvaGVyZW5jeSBBdHRyaWJ1dGUKKyAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKKyAgICAgIHsKKyAgICAgICAgICBRV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9k dWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRl LAorICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5CisgICAg ICAgICAgICAgIDB4MDAwMDAwMDAwQzA4MDAwMCwgLy8gUmFuZ2UgTWluaW11bQorICAgICAgICAg ICAgICAweDAwMDAwMDAwMEMwQ0ZGRkYsIC8vIFJhbmdlIE1heGltdW0KKyAgICAgICAgICAgICAg MHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKKyAgICAgICAgICAgICAg MHgwMDAwMDAwMDAwMDUwMDAwLCAvLyBMZW5ndGgKKyAgICAgICAgICAgICAgLCwgLCBBZGRyZXNz UmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCisgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNv bnN1bWVyLCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsICwsICkKKyAgICAgICAgICB7Cisg ICAgICAgICAgICAgIDB4MDAwMDAwOTQsCisgICAgICAgICAgfQorICAgICAgfSkKKyAgfQorICAu Li4KK0dlbmVyYXRlZCBJT1JUIFNNTVV2MyBub2RlIChJZGVudGlmaWVyID0gMSk6CisKKyAgLi4u CisgIFswNDhoIDAwNzIgMDAxaF0gICAgICAgICAgICAgICAgICAgICAgICBUeXBlIDogMDQKKyAg WzA0OWggMDA3MyAwMDJoXSAgICAgICAgICAgICAgICAgICAgICBMZW5ndGggOiAwMDU4CisgIFsw NEJoIDAwNzUgMDAxaF0gICAgICAgICAgICAgICAgICAgIFJldmlzaW9uIDogMDQKKyAgWzA0Q2gg MDA3NiAwMDRoXSAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgOiAwMDAwMDAwMQorICBbMDUw aCAwMDgwIDAwNGhdICAgICAgICAgICAgICAgTWFwcGluZyBDb3VudCA6IDAwMDAwMDAxCisgIFsw NTRoIDAwODQgMDA0aF0gICAgICAgICAgICAgIE1hcHBpbmcgT2Zmc2V0IDogMDAwMDAwNDQKKyAg Li4uCisKK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4K K1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQt Ynk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBB dWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xv dGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1 Mi4zNzg5OTktMjktc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK0NvLWRldmVsb3BlZC1ieTogU2hh bWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBT aGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDY3ZGM2YTRjOTExYjVmM2E4Mjc2NmQyN2Y0MWM1Y2Y2MGI5YzE3ZDQpCitT aWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBo dy9hcm0vdHJhY2UtZXZlbnRzICAgICAgfCAgMSArCisgaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5j IHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMg Y2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3RyYWNlLWV2 ZW50cyBiL2h3L2FybS90cmFjZS1ldmVudHMKK2luZGV4IDBiZDcxOGIxYWIuLjFiMTZmNzEwZmUg MTAwNjQ0CistLS0gYS9ody9hcm0vdHJhY2UtZXZlbnRzCisrKysgYi9ody9hcm0vdHJhY2UtZXZl bnRzCitAQCAtOSw2ICs5LDcgQEAgb21hcDFfbHBnX2xlZChjb25zdCBjaGFyICpvbm9mZikgIm9t YXAxIExQRzogTEVEIGlzICVzIgorIAorICMgdmlydC1hY3BpLWJ1aWxkLmMKKyB2aXJ0X2FjcGlf c2V0dXAodm9pZCkgIk5vIGZ3IGNmZyBvciBBQ1BJIGRpc2FibGVkLiBCYWlsaW5nIG91dC4iCisr dmlydF9hY3BpX2RzZHRfdGVncmEyNDFfY21kcXYoaW50IHNtbXVfaWQsIHVpbnQ2NF90IGJhc2Us IHVpbnQzMl90IGlycSkgIkRTRFQ6IGFkZCBjbWRxdiBub2RlIGZvciAoaWQ9JWQpLCBiYXNlPTB4 JSIgUFJJeDY0ICIsIGlycT0lZCIKKyAKKyAjIHNtbXUtY29tbW9uLmMKKyBzbW11X2FkZF9tcihj b25zdCBjaGFyICpuYW1lKSAiJXMiCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQtYWNwaS1idWls ZC5jIGIvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jCitpbmRleCAyMGRmZTllNGQ4Li4yYzc3ZDQ0 M2ZlIDEwMDY0NAorLS0tIGEvaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jCisrKysgYi9ody9hcm0v dmlydC1hY3BpLWJ1aWxkLmMKK0BAIC02NCw2ICs2NCw5IEBACisgI2luY2x1ZGUgImh3L3ZpcnRp by92aXJ0aW8tYWNwaS5oIgorICNpbmNsdWRlICJ0YXJnZXQvYXJtL211bHRpcHJvY2Vzc2luZy5o IgorIAorKyNpbmNsdWRlICJzbW11djMtYWNjZWwuaCIKKysjaW5jbHVkZSAidGVncmEyNDEtY21k cXYuaCIKKysKKyAjZGVmaW5lIEFSTV9TUElfQkFTRSAzMgorIAorICNkZWZpbmUgQUNQSV9CVUlM RF9UQUJMRV9TSVpFICAgICAgICAgICAgIDB4MjAwMDAKK0BAIC0xMTE2LDYgKzExMTksNTEgQEAg c3RhdGljIHZvaWQgYnVpbGRfZmFkdF9yZXY2KEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtl ciAqbGlua2VyLAorICAgICBidWlsZF9mYWR0KHRhYmxlX2RhdGEsIGxpbmtlciwgJmZhZHQsIHZt cy0+b2VtX2lkLCB2bXMtPm9lbV90YWJsZV9pZCk7CisgfQorIAorK3N0YXRpYyB2b2lkIGFjcGlf ZHNkdF9hZGRfdGVncmEyNDFfY21kcXYoQW1sICpzY29wZSwgVmlydE1hY2hpbmVTdGF0ZSAqdm1z KQorK3sKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2bXMtPnNtbXV2M19kZXZpY2VzLT5sZW47 IGkrKykgeworKyAgICAgICAgT2JqZWN0ICpvYmogPSBPQkpFQ1QoZ19wdHJfYXJyYXlfaW5kZXgo dm1zLT5zbW11djNfZGV2aWNlcywgaSkpOworKyAgICAgICAgUGxhdGZvcm1CdXNEZXZpY2UgKnBi dXM7CisrICAgICAgICBBbWwgKmRldiwgKmNycywgKmFkZHI7CisrICAgICAgICBTeXNCdXNEZXZp Y2UgKnNiZGV2OworKyAgICAgICAgaHdhZGRyIGJhc2U7CisrICAgICAgICB1aW50MzJfdCBpZDsK KysgICAgICAgIGludCBpcnE7CisrCisrICAgICAgICBpZiAoc21tdXYzX2FjY2VsX2NtZHF2X3R5 cGUob2JqKSAhPSBTTU1VVjNfQ01EUVZfVEVHUkEyNDEpIHsKKysgICAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgICAgIGlkID0gb2JqZWN0X3Byb3BlcnR5X2dldF91aW50KG9i aiwgImlkZW50aWZpZXIiLCAmZXJyb3JfYWJvcnQpOworKyAgICAgICAgcGJ1cyA9IFBMQVRGT1JN X0JVU19ERVZJQ0Uodm1zLT5wbGF0Zm9ybV9idXNfZGV2KTsKKysgICAgICAgIHNiZGV2ID0gU1lT X0JVU19ERVZJQ0Uob2JqKTsKKysgICAgICAgIGJhc2UgPSBwbGF0Zm9ybV9idXNfZ2V0X21taW9f YWRkcihwYnVzLCBzYmRldiwgMSk7CisrICAgICAgICBiYXNlICs9IHZtcy0+bWVtbWFwW1ZJUlRf UExBVEZPUk1fQlVTXS5iYXNlOworKyAgICAgICAgaXJxID0gcGxhdGZvcm1fYnVzX2dldF9pcnFu KHBidXMsIHNiZGV2LCBOVU1fU01NVV9JUlFTKTsKKysgICAgICAgIGlycSArPSB2bXMtPmlycW1h cFtWSVJUX1BMQVRGT1JNX0JVU107CisrICAgICAgICBpcnEgKz0gQVJNX1NQSV9CQVNFOworKwor KyAgICAgICAgZGV2ID0gYW1sX2RldmljZSgiQ1YlLjAydSIsIGlkKTsKKysgICAgICAgIGFtbF9h cHBlbmQoZGV2LCBhbWxfbmFtZV9kZWNsKCJfSElEIiwgYW1sX3N0cmluZygiTlZEQTIwMEMiKSkp OworKyAgICAgICAgYW1sX2FwcGVuZChkZXYsIGFtbF9uYW1lX2RlY2woIl9VSUQiLCBhbWxfaW50 KGlkKSkpOworKyAgICAgICAgYW1sX2FwcGVuZChkZXYsIGFtbF9uYW1lX2RlY2woIl9DQ0EiLCBh bWxfaW50KDEpKSk7CisrCisrICAgICAgICBjcnMgPSBhbWxfcmVzb3VyY2VfdGVtcGxhdGUoKTsK KysgICAgICAgIGFkZHIgPSBhbWxfcXdvcmRfbWVtb3J5KEFNTF9QT1NfREVDT0RFLCBBTUxfTUlO X0ZJWEVELCBBTUxfTUFYX0ZJWEVELAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QU1MX0NBQ0hFQUJMRSwgQU1MX1JFQURfV1JJVEUsIDB4MCwgYmFzZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJhc2UgKyBURUdSQTI0MV9DTURRVl9JT19MRU4gLSAweDEsIDB4 MCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFR1JBMjQxX0NNRFFWX0lPX0xF Tik7CisrICAgICAgICBhbWxfYXBwZW5kKGNycywgYWRkcik7CisrICAgICAgICBhbWxfYXBwZW5k KGNycywgYW1sX2ludGVycnVwdChBTUxfQ09OU1VNRVIsIEFNTF9FREdFLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1MX0FDVElWRV9ISUdILCBBTUxfRVhDTFVTSVZF LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQzMl90ICopJmly cSwgMSkpOworKyAgICAgICAgYW1sX2FwcGVuZChkZXYsIGFtbF9uYW1lX2RlY2woIl9DUlMiLCBj cnMpKTsKKysKKysgICAgICAgIGFtbF9hcHBlbmQoc2NvcGUsIGRldik7CisrCisrICAgICAgICB0 cmFjZV92aXJ0X2FjcGlfZHNkdF90ZWdyYTI0MV9jbWRxdihpZCwgYmFzZSwgaXJxKTsKKysgICAg fQorK30KKysKKyAvKiBEU0RUICovCisgc3RhdGljIHZvaWQKKyBidWlsZF9kc2R0KEdBcnJheSAq dGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLCBWaXJ0TWFjaGluZVN0YXRlICp2bXMpCitA QCAtMTE3OSw2ICsxMjI3LDEwIEBAIGJ1aWxkX2RzZHQoR0FycmF5ICp0YWJsZV9kYXRhLCBCSU9T TGlua2VyICpsaW5rZXIsIFZpcnRNYWNoaW5lU3RhdGUgKnZtcykKKyAgICAgYWNwaV9kc2R0X2Fk ZF90cG0oc2NvcGUsIHZtcyk7CisgI2VuZGlmCisgCisrICAgIGlmICghdm1zLT5sZWdhY3lfc21t dXYzX3ByZXNlbnQpIHsKKysgICAgICAgIGFjcGlfZHNkdF9hZGRfdGVncmEyNDFfY21kcXYoc2Nv cGUsIHZtcyk7CisrICAgIH0KKysKKyAgICAgYW1sX2FwcGVuZChkc2R0LCBzY29wZSk7CisgCisg ICAgIHBjaTBfc2NvcGUgPSBhbWxfc2NvcGUoIlxcX1NCLlBDSTAiKTsKKy0tIAorMi41Mi4wCisK CmRpZmYgLS1naXQgYS9rdm0taHctYXJtLXZpcnQtYWNwaS1idWlsZC1BZGQtSU9SVC1STVItcmVn aW9ucy10by1oYW5kbC5wYXRjaCBiL2t2bS1ody1hcm0tdmlydC1hY3BpLWJ1aWxkLUFkZC1JT1JU LVJNUi1yZWdpb25zLXRvLWhhbmRsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmQxOTMyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctYXJtLXZpcnQtYWNwaS1i dWlsZC1BZGQtSU9SVC1STVItcmVnaW9ucy10by1oYW5kbC5wYXRjaApAQCAtMCwwICsxLDI5MSBA QAorRnJvbSAzN2UxMDQxMGQwNTFkNGU2MTQzZTZlOWVjZGE0NTQ3ZjE4OTc3YTY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29t PgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjowNSArMDAwMAorU3ViamVjdDogW1BBVENI IDAzMy8xMTFdIGh3L2FybS92aXJ0LWFjcGktYnVpbGQ6IEFkZCBJT1JUIFJNUiByZWdpb25zIHRv CisgaGFuZGxlIE1TSSBuZXN0ZWQgYmluZGluZworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBh bmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lk cmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8 Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzMzLzExMV0gZDcyN2UzZjJlMmNjMjg4NmNm OTQ5OGIxYTVlNzU3MDE3ZjE2Y2E1ZSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6 IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworVG8gaGFu ZGxlIFNNTVV2MyBhY2NlbD1vbiBtb2RlKHdoaWNoIGNvbmZpZ3VyZXMgdGhlIGhvc3QgU01NVXYz IGluIG5lc3RlZAorbW9kZSksIGl0IGlzIHByYWN0aWNhbCB0byBleHBvc2UgdGhlIGd1ZXN0IHdp dGggcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMKKyhSTVJzKSBjb3ZlcmluZyB0aGUgSU9WQXMgdXNl ZCBieSB0aGUgaG9zdCBrZXJuZWwgdG8gbWFwIHBoeXNpY2FsIE1TSQorZG9vcmJlbGxzLgorCitU aG9zZSBJT1ZBcyBiZWxvbmcgdG8gWzB4ODAwMDAwMCwgMHg4MTAwMDAwXSBtYXRjaGluZyBNU0lf SU9WQV9CQVNFIGFuZAorTVNJX0lPVkFfTEVOR1RIIGRlZmluaXRpb25zIGluIGtlcm5lbCBhcm0t c21tdS12MyBkcml2ZXIuIFRoaXMgaXMgdGhlCit3aW5kb3cgdXNlZCB0byBhbGxvY2F0ZSBJT1ZB cyBtYXRjaGluZyBwaHlzaWNhbCBNU0kgZG9vcmJlbGxzLgorCitXaXRoIHRob3NlIFJNUnMsIHRo ZSBndWVzdCBpcyBmb3JjZWQgdG8gdXNlIGEgZmxhdCBtYXBwaW5nIGZvciB0aGlzIHJhbmdlLgor SGVuY2UgdGhlIGFzc2lnbmVkIGRldmljZSBpcyBwcm9ncmFtbWVkIHdpdGggb25lIElPVkEgZnJv bSB0aGlzIHJhbmdlLgorU3RhZ2UgMSwgb3duZWQgYnkgdGhlIGd1ZXN0IGhhcyBhIGZsYXQgbWFw cGluZyBmb3IgdGhpcyBJT1ZBLiBTdGFnZTIsCitvd25lZCBieSB0aGUgVk1NIHRoZW4gZW5mb3Jj ZXMgYSBtYXBwaW5nIGZyb20gdGhpcyBJT1ZBIHRvIHRoZSBwaHlzaWNhbAorTVNJIGRvb3JiZWxs LgorCitUaGUgY3JlYXRpb24gb2YgdGhvc2UgUk1SIG5vZGVzIGlzIG9ubHkgcmVsZXZhbnQgaWYg bmVzdGVkIHN0YWdlIFNNTVUgaXMKK2luIHVzZSwgYWxvbmcgd2l0aCBWRklPLiBBcyBWRklPIGRl dmljZXMgY2FuIGJlIGhvdHBsdWdnZWQsIGFsbCBSTVJzIG5lZWQKK3RvIGJlIGNyZWF0ZWQgaW4g YWR2YW5jZS4KKworSW5pdGlhbGlzZSBBY3BpSW9ydFNNTVV2M0RldiBzdHJ1Y3R1cmVzIHRvIGF2 b2lkIHVzaW5nIHVuaW5pdGlhbGlzZWQKK3N0YXRlIHdoZW4gYnVpbGRpbmcgdGhlIElPUlQsIGFz IGxlZ2FjeSBhbmQgZGV2aWNlIFNNTVV2MyBwYXRocworcG9wdWxhdGUgZGlmZmVyZW50IGZpZWxk cyBub3coZS5nLiBhY2NlbCkuCisKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNoYW1lZXJh bGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT4KK1NpZ25lZC1vZmYtYnk6IE5pY29saW4gQ2hl biA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0g PHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5n ZmVpLmdhb0BsaW5hcm8ub3JnPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJv bkBodWF3ZWkuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIuMjUzOTY1LTI2LXNrb2xv dGh1bXRob0BudmlkaWEuY29tCitTdWdnZXN0ZWQtYnk6IEplYW4tUGhpbGlwcGUgQnJ1Y2tlciA8 amVhbi1waGlsaXBwZUBsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogTmljb2xpbiBDaGVuIDxu aWNvbGluY0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2hh bWVlcmFsaS5rb2xvdGh1bS50aG9kaUBodWF3ZWkuY29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBH YW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVy b24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8 c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxw ZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwNmMw YzhmZGU3ODY3ZjYzNGYyMjZjZWM2YTMxODYwNjg4NWI5YmM4KQorU2lnbmVkLW9mZi1ieTogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvYXJtL3ZpcnQtYWNwaS1i dWlsZC5jIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQorIDEg ZmlsZSBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9ody9hcm0vdmlydC1hY3BpLWJ1aWxkLmMgYi9ody9hcm0vdmlydC1hY3BpLWJ1aWxk LmMKK2luZGV4IDY4ODMxNDcwNDAuLjEzMjNkMWEwZGEgMTAwNjQ0CistLS0gYS9ody9hcm0vdmly dC1hY3BpLWJ1aWxkLmMKKysrKyBiL2h3L2FybS92aXJ0LWFjcGktYnVpbGQuYworQEAgLTI2Myw2 ICsyNjMsMjkgQEAgc3RhdGljIHZvaWQgYWNwaV9kc2R0X2FkZF90cG0oQW1sICpzY29wZSwgVmly dE1hY2hpbmVTdGF0ZSAqdm1zKQorICNkZWZpbmUgUk9PVF9DT01QTEVYX0VOVFJZX1NJWkUgMzYK KyAjZGVmaW5lIElPUlRfTk9ERV9PRkZTRVQgNDgKKyAKKysjZGVmaW5lIElPUlRfUk1SX05VTV9J RF9NQVBQSU5HUyAgICAgMQorKyNkZWZpbmUgSU9SVF9STVJfTlVNX01FTV9SQU5HRV9ERVNDICAx CisrI2RlZmluZSBJT1JUX1JNUl9DT01NT05fSEVBREVSX1NJWkUgIDI4CisrI2RlZmluZSBJT1JU X1JNUl9NRU1fUkFOR0VfREVTQ19TSVpFIDIwCisrCisrLyoKKysgKiBJT1JUIFJNUiBmbGFnczoK KysgKiAgIEJpdFswXSA9IDAgIERpc2FsbG93IHJlbWFwcGluZyBvZiByZXNlcnZlZCByYW5nZXMK KysgKiAgIEJpdFsxXSA9IDAgIFVucHJpdmlsZWdlZCBhY2Nlc3MKKysgKiAgIEJpdHNbOToyXSA9 IDB4MDAgRGV2aWNlIG5HblJuRSBtZW1vcnkKKysgKi8KKysjZGVmaW5lIElPUlRfUk1SX0ZMQUdT ICAwCisrCisrLyoKKysgKiBNU0kgZG9vcmJlbGwgSU9WQSB3aW5kb3cgdXNlZCBieSB0aGUgaG9z dCBrZXJuZWwgU01NVXYzIGRyaXZlci4KKysgKiBEZXNjcmliZWQgaW4gSU9SVCBSTVIgbm9kZXMg dG8gcmVzZXJ2ZSB0aGUgSU9WQSByYW5nZSB3aGVyZSB0aGUgaG9zdAorKyAqIGtlcm5lbCBtYXBz IHBoeXNpY2FsIE1TSSBkb29yYmVsbHMgZm9yIGRldmljZXMuIFRoaXMgZW5zdXJlcyBndWVzdHMK KysgKiBwcmVzZXJ2ZSBhIGZsYXQgbWFwcGluZyBmb3IgTVNJIGRvb3JiZWxsIGluIG5lc3RlZCBT TU1VdjMoYWNjZWw9b24pCisrICogY29uZmlndXJhdGlvbnMuCisrICovCisrI2RlZmluZSBNU0lf SU9WQV9CQVNFICAgMHg4MDAwMDAwCisrI2RlZmluZSBNU0lfSU9WQV9MRU5HVEggMHgxMDAwMDAK KysKKyAvKgorICAqIEFwcGVuZCBhbiBJRCBtYXBwaW5nIGVudHJ5IGFzIGRlc2NyaWJlZCBieSAi VGFibGUgNCBJRCBtYXBwaW5nIGZvcm1hdCIgaW4KKyAgKiAiSU8gUmVtYXBwaW5nIFRhYmxlIFN5 c3RlbSBTb2Z0d2FyZSBvbiBBUk0gUGxhdGZvcm1zIiwgQ2hhcHRlciAzLgorQEAgLTI3MSw3ICsy OTQsOCBAQCBzdGF0aWMgdm9pZCBhY3BpX2RzZHRfYWRkX3RwbShBbWwgKnNjb3BlLCBWaXJ0TWFj aGluZVN0YXRlICp2bXMpCisgICogTm90ZSB0aGF0IEBpZF9jb3VudCBnZXRzIGludGVybmFsbHkg c3VidHJhY3RlZCBieSBvbmUsIGZvbGxvd2luZyB0aGUgc3BlYy4KKyAgKi8KKyBzdGF0aWMgdm9p ZCBidWlsZF9pb3J0X2lkX21hcHBpbmcoR0FycmF5ICp0YWJsZV9kYXRhLCB1aW50MzJfdCBpbnB1 dF9iYXNlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZF9j b3VudCwgdWludDMyX3Qgb3V0X3JlZikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgaWRfY291bnQsIHVpbnQzMl90IG91dF9yZWYsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzKQorIHsKKyAgICAgYnVpbGRfYXBwZW5k X2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCBpbnB1dF9iYXNlLCA0KTsgLyogSW5wdXQgYmFzZSAq LworICAgICAvKiBOdW1iZXIgb2YgSURzIC0gVGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIHJhbmdl IG1pbnVzIG9uZSAqLworQEAgLTI3OSw3ICszMDMsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pb3J0 X2lkX21hcHBpbmcoR0FycmF5ICp0YWJsZV9kYXRhLCB1aW50MzJfdCBpbnB1dF9iYXNlLAorICAg ICBidWlsZF9hcHBlbmRfaW50X25vcHJlZml4KHRhYmxlX2RhdGEsIGlucHV0X2Jhc2UsIDQpOyAv KiBPdXRwdXQgYmFzZSAqLworICAgICBidWlsZF9hcHBlbmRfaW50X25vcHJlZml4KHRhYmxlX2Rh dGEsIG91dF9yZWYsIDQpOyAvKiBPdXRwdXQgUmVmZXJlbmNlICovCisgICAgIC8qIEZsYWdzICov CistICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVmaXgodGFibGVfZGF0YSwgMCAvKiBTaW5nbGUg bWFwcGluZyAoZGlzYWJsZWQpICovLCA0KTsKKysgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZp eCh0YWJsZV9kYXRhLCBmbGFncywgNCk7CisgfQorIAorIHN0cnVjdCBBY3BpSW9ydElkTWFwcGlu ZyB7CitAQCAtMzI3LDYgKzM1MSw3IEBAIHR5cGVkZWYgc3RydWN0IEFjcGlJb3J0U01NVXYzRGV2 IHsKKyAgICAgR0FycmF5ICpyY19zbW11X2lkbWFwczsKKyAgICAgLyogT2Zmc2V0IG9mIHRoZSBT TU1VdjMgSU9SVCBOb2RlIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgSU9SVCAqLworICAg ICBzaXplX3Qgb2Zmc2V0OworKyAgICBib29sIGFjY2VsOworIH0gQWNwaUlvcnRTTU1VdjNEZXY7 CisgCisgLyoKK0BAIC0zMzYsNyArMzYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWNwaUlvcnRTTU1V djNEZXYgeworIHN0YXRpYyBpbnQgcG9wdWxhdGVfc21tdXYzX2xlZ2FjeV9kZXYoR0FycmF5ICpz ZGV2X2Jsb2IpCisgeworICAgICBWaXJ0TWFjaGluZVN0YXRlICp2bXMgPSBWSVJUX01BQ0hJTkUo cWRldl9nZXRfbWFjaGluZSgpKTsKKy0gICAgQWNwaUlvcnRTTU1VdjNEZXYgc2RldjsKKysgICAg QWNwaUlvcnRTTU1VdjNEZXYgc2RldiA9IHswfTsKKyAKKyAgICAgc2Rldi5yY19zbW11X2lkbWFw cyA9IGdfYXJyYXlfbmV3KGZhbHNlLCB0cnVlLCBzaXplb2YoQWNwaUlvcnRJZE1hcHBpbmcpKTsK KyAgICAgb2JqZWN0X2NoaWxkX2ZvcmVhY2hfcmVjdXJzaXZlKG9iamVjdF9nZXRfcm9vdCgpLCBp b3J0X2hvc3RfYnJpZGdlcywKK0BAIC0zNjgsMTAgKzM5MywxMCBAQCBzdGF0aWMgaW50IHNtbXV2 M19kZXZfaWRtYXBfY29tcGFyZShnY29uc3Rwb2ludGVyIGEsIGdjb25zdHBvaW50ZXIgYikKKyBz dGF0aWMgaW50IGlvcnRfc21tdXYzX2RldmljZXMoT2JqZWN0ICpvYmosIHZvaWQgKm9wYXF1ZSkK KyB7CisgICAgIFZpcnRNYWNoaW5lU3RhdGUgKnZtcyA9IFZJUlRfTUFDSElORShxZGV2X2dldF9t YWNoaW5lKCkpOworKyAgICBBY3BpSW9ydFNNTVV2M0RldiBzZGV2ID0gezB9OworICAgICBHQXJy YXkgKnNkZXZfYmxvYiA9IG9wYXF1ZTsKKyAgICAgQWNwaUlvcnRJZE1hcHBpbmcgaWRtYXA7Cisg ICAgIFBsYXRmb3JtQnVzRGV2aWNlICpwYnVzOworLSAgICBBY3BpSW9ydFNNTVV2M0RldiBzZGV2 OworICAgICBpbnQgbWluX2J1cywgbWF4X2J1czsKKyAgICAgU3lzQnVzRGV2aWNlICpzYmRldjsK KyAgICAgUENJQnVzICpidXM7CitAQCAtMzgxLDYgKzQwNiw5IEBAIHN0YXRpYyBpbnQgaW9ydF9z bW11djNfZGV2aWNlcyhPYmplY3QgKm9iaiwgdm9pZCAqb3BhcXVlKQorICAgICB9CisgCisgICAg IGJ1cyA9IFBDSV9CVVMob2JqZWN0X3Byb3BlcnR5X2dldF9saW5rKG9iaiwgInByaW1hcnktYnVz IiwgJmVycm9yX2Fib3J0KSk7CisrICAgIGlmIChvYmplY3RfcHJvcGVydHlfZmluZChvYmosICJh Y2NlbCIpKSB7CisrICAgICAgICBzZGV2LmFjY2VsID0gb2JqZWN0X3Byb3BlcnR5X2dldF9ib29s KG9iaiwgImFjY2VsIiwgJmVycm9yX2Fib3J0KTsKKysgICAgfQorICAgICBwYnVzID0gUExBVEZP Uk1fQlVTX0RFVklDRSh2bXMtPnBsYXRmb3JtX2J1c19kZXYpOworICAgICBzYmRldiA9IFNZU19C VVNfREVWSUNFKG9iaik7CisgICAgIHNkZXYuYmFzZSA9IHBsYXRmb3JtX2J1c19nZXRfbW1pb19h ZGRyKHBidXMsIHNiZGV2LCAwKTsKK0BAIC00NTQsMTAgKzQ4Miw2OSBAQCBzdGF0aWMgdm9pZCBj cmVhdGVfcmNfaXRzX2lkbWFwcyhHQXJyYXkgKml0c19pZG1hcHMsIEdBcnJheSAqc21tdXYzX2Rl dnMpCisgICAgIH0KKyB9CisgCisrc3RhdGljIHZvaWQKKytidWlsZF9pb3J0X3Jtcl9ub2RlcyhH QXJyYXkgKnRhYmxlX2RhdGEsIEdBcnJheSAqc21tdXYzX2RldmljZXMsIHVpbnQzMl90ICppZCkK Kyt7CisrICAgIEFjcGlJb3J0U01NVXYzRGV2ICpzZGV2OworKyAgICBBY3BpSW9ydElkTWFwcGlu ZyAqaWRtYXA7CisrICAgIGludCBpOworKworKyAgICBmb3IgKGkgPSAwOyBpIDwgc21tdXYzX2Rl dmljZXMtPmxlbjsgaSsrKSB7CisrICAgICAgICB1aW50MTZfdCBybXJfbGVuOworKyAgICAgICAg aW50IGJkZjsKKysKKysgICAgICAgIHNkZXYgPSAmZ19hcnJheV9pbmRleChzbW11djNfZGV2aWNl cywgQWNwaUlvcnRTTU1VdjNEZXYsIGkpOworKyAgICAgICAgaWYgKCFzZGV2LT5hY2NlbCkgewor KyAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgfQorKworKyAgICAgICAgLyoKKysgICAg ICAgICAqIFNwZWMgcmVmZXJlbmNlOkFybSBJTyBSZW1hcHBpbmcgVGFibGUoSU9SVCksIEFSTSBE RU4gMDA0OUUuZCwKKysgICAgICAgICAqIFNlY3Rpb24gMy4xLjEuNSAiUmVzZXJ2ZWQgTWVtb3J5 IFJhbmdlIG5vZGUiCisrICAgICAgICAgKi8KKysgICAgICAgIGlkbWFwID0gJmdfYXJyYXlfaW5k ZXgoc2Rldi0+cmNfc21tdV9pZG1hcHMsIEFjcGlJb3J0SWRNYXBwaW5nLCAwKTsKKysgICAgICAg IGJkZiA9IGlkbWFwLT5pbnB1dF9iYXNlOworKyAgICAgICAgcm1yX2xlbiA9IElPUlRfUk1SX0NP TU1PTl9IRUFERVJfU0laRQorKyAgICAgICAgICAgICAgICAgKyAoSU9SVF9STVJfTlVNX0lEX01B UFBJTkdTICogSURfTUFQUElOR19FTlRSWV9TSVpFKQorKyAgICAgICAgICAgICAgICAgKyAoSU9S VF9STVJfTlVNX01FTV9SQU5HRV9ERVNDICogSU9SVF9STVJfTUVNX1JBTkdFX0RFU0NfU0laRSk7 CisrCisrICAgICAgICAvKiBUYWJsZSAxOCBSZXNlcnZlZCBNZW1vcnkgUmFuZ2UgTm9kZSAqLwor KyAgICAgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCA2IC8qIFJNUiAq LywgMSk7IC8qIFR5cGUgKi8KKysgICAgICAgIC8qIExlbmd0aCAqLworKyAgICAgICAgYnVpbGRf YXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCBybXJfbGVuLCAyKTsKKysgICAgICAgIGJ1 aWxkX2FwcGVuZF9pbnRfbm9wcmVmaXgodGFibGVfZGF0YSwgMywgMSk7IC8qIFJldmlzaW9uICov CisrICAgICAgICBidWlsZF9hcHBlbmRfaW50X25vcHJlZml4KHRhYmxlX2RhdGEsICgqaWQpKyss IDQpOyAvKiBJZGVudGlmaWVyICovCisrICAgICAgICAvKiBOdW1iZXIgb2YgSUQgbWFwcGluZ3Mg Ki8KKysgICAgICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVmaXgodGFibGVfZGF0YSwgSU9SVF9S TVJfTlVNX0lEX01BUFBJTkdTLCA0KTsKKysgICAgICAgIC8qIFJlZmVyZW5jZSB0byBJRCBBcnJh eSAqLworKyAgICAgICAgYnVpbGRfYXBwZW5kX2ludF9ub3ByZWZpeCh0YWJsZV9kYXRhLCBJT1JU X1JNUl9DT01NT05fSEVBREVSX1NJWkUsIDQpOworKworKyAgICAgICAgLyogUk1SIHNwZWNpZmlj IGRhdGEgKi8KKysKKysgICAgICAgIC8qIEZsYWdzICovCisrICAgICAgICBidWlsZF9hcHBlbmRf aW50X25vcHJlZml4KHRhYmxlX2RhdGEsIElPUlRfUk1SX0ZMQUdTLCA0KTsKKysgICAgICAgIC8q IE51bWJlciBvZiBNZW1vcnkgUmFuZ2UgRGVzY3JpcHRvcnMgKi8KKysgICAgICAgIGJ1aWxkX2Fw cGVuZF9pbnRfbm9wcmVmaXgodGFibGVfZGF0YSwgSU9SVF9STVJfTlVNX01FTV9SQU5HRV9ERVND LCA0KTsKKysgICAgICAgIC8qIFJlZmVyZW5jZSB0byBNZW1vcnkgUmFuZ2UgRGVzY3JpcHRvcnMg Ki8KKysgICAgICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVmaXgodGFibGVfZGF0YSwgSU9SVF9S TVJfQ09NTU9OX0hFQURFUl9TSVpFICsKKysgICAgICAgICAgICAgICAgICAgICAgICAoSU9SVF9S TVJfTlVNX0lEX01BUFBJTkdTICogSURfTUFQUElOR19FTlRSWV9TSVpFKSwgNCk7CisrICAgICAg ICBidWlsZF9pb3J0X2lkX21hcHBpbmcodGFibGVfZGF0YSwgYmRmLCBpZG1hcC0+aWRfY291bnQs IHNkZXYtPm9mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKysKKysg ICAgICAgIC8qIFRhYmxlIDE5IE1lbW9yeSBSYW5nZSBEZXNjcmlwdG9yICovCisrCisrICAgICAg ICAvKiBQaHlzaWNhbCBSYW5nZSBvZmZzZXQgKi8KKysgICAgICAgIGJ1aWxkX2FwcGVuZF9pbnRf bm9wcmVmaXgodGFibGVfZGF0YSwgTVNJX0lPVkFfQkFTRSwgOCk7CisrICAgICAgICAvKiBQaHlz aWNhbCBSYW5nZSBsZW5ndGggKi8KKysgICAgICAgIGJ1aWxkX2FwcGVuZF9pbnRfbm9wcmVmaXgo dGFibGVfZGF0YSwgTVNJX0lPVkFfTEVOR1RILCA4KTsKKysgICAgICAgIGJ1aWxkX2FwcGVuZF9p bnRfbm9wcmVmaXgodGFibGVfZGF0YSwgMCwgNCk7IC8qIFJlc2VydmVkICovCisrICAgIH0KKyt9 CisrCisgLyoKKyAgKiBJbnB1dCBPdXRwdXQgUmVtYXBwaW5nIFRhYmxlIChJT1JUKQorICAqIENv bmZvcm1zIHRvICJJTyBSZW1hcHBpbmcgVGFibGUgU3lzdGVtIFNvZnR3YXJlIG9uIEFSTSBQbGF0 Zm9ybXMiLAorLSAqIERvY3VtZW50IG51bWJlcjogQVJNIERFTiAwMDQ5RS5iLCBGZWIgMjAyMQor KyAqIERvY3VtZW50IG51bWJlcjogQVJNIERFTiAwMDQ5RS5kLCBGZWIgMjAyMgorICAqLworIHN0 YXRpYyB2b2lkCisgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxp bmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQorQEAgLTQ3MSw3ICs1NTgsNyBAQCBidWlsZF9p b3J0KEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLCBWaXJ0TWFjaGluZVN0 YXRlICp2bXMpCisgICAgIEdBcnJheSAqc21tdXYzX2RldnMgPSBnX2FycmF5X25ldyhmYWxzZSwg dHJ1ZSwgc2l6ZW9mKEFjcGlJb3J0U01NVXYzRGV2KSk7CisgICAgIEdBcnJheSAqcmNfaXRzX2lk bWFwcyA9IGdfYXJyYXlfbmV3KGZhbHNlLCB0cnVlLCBzaXplb2YoQWNwaUlvcnRJZE1hcHBpbmcp KTsKKyAKKy0gICAgQWNwaVRhYmxlIHRhYmxlID0geyAuc2lnID0gIklPUlQiLCAucmV2ID0gMywg Lm9lbV9pZCA9IHZtcy0+b2VtX2lkLAorKyAgICBBY3BpVGFibGUgdGFibGUgPSB7IC5zaWcgPSAi SU9SVCIsIC5yZXYgPSA1LCAub2VtX2lkID0gdm1zLT5vZW1faWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgLm9lbV90YWJsZV9pZCA9IHZtcy0+b2VtX3RhYmxlX2lkIH07CisgICAgIC8qIFRh YmxlIDIgVGhlIElPUlQgKi8KKyAgICAgYWNwaV90YWJsZV9iZWdpbigmdGFibGUsIHRhYmxlX2Rh dGEpOworQEAgLTQ5Nyw2ICs1ODQsMTMgQEAgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxlX2RhdGEs IEJJT1NMaW5rZXIgKmxpbmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQorICAgICAgICAgICAg IG5iX25vZGVzKys7IC8qIElUUyAqLworICAgICAgICAgICAgIHJjX21hcHBpbmdfY291bnQgKz0g cmNfaXRzX2lkbWFwcy0+bGVuOworICAgICAgICAgfQorKyAgICAgICAgLyogQ2FsY3VsYXRlIFJN UiBub2RlcyByZXF1aXJlZC4gT25lIHBlciBTTU1VdjMgd2l0aCBhY2NlbGVyYXRlZCBtb2RlICov CisrICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3NtbXVzOyBpKyspIHsKKysgICAgICAgICAg ICBzZGV2ID0gJmdfYXJyYXlfaW5kZXgoc21tdXYzX2RldnMsIEFjcGlJb3J0U01NVXYzRGV2LCBp KTsKKysgICAgICAgICAgICBpZiAoc2Rldi0+YWNjZWwpIHsKKysgICAgICAgICAgICAgICAgbmJf bm9kZXMrKzsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAg ICAgICBpZiAodm1zLT5pdHMpIHsKKyAgICAgICAgICAgICBuYl9ub2RlcyA9IDI7IC8qIFJDIGFu ZCBJVFMgKi8KK0BAIC01NjksNyArNjYzLDcgQEAgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxlX2Rh dGEsIEJJT1NMaW5rZXIgKmxpbmtlciwgVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQorICAgICAgICAg LyogQXJyYXkgb2YgSUQgbWFwcGluZ3MgKi8KKyAgICAgICAgIGlmIChzbW11X21hcHBpbmdfY291 bnQpIHsKKyAgICAgICAgICAgICAvKiBPdXRwdXQgSU9SVCBub2RlIGlzIHRoZSBJVFMgR3JvdXAg bm9kZSAodGhlIGZpcnN0IG5vZGUpLiAqLworLSAgICAgICAgICAgIGJ1aWxkX2lvcnRfaWRfbWFw cGluZyh0YWJsZV9kYXRhLCAwLCAweDEwMDAwLCBJT1JUX05PREVfT0ZGU0VUKTsKKysgICAgICAg ICAgICBidWlsZF9pb3J0X2lkX21hcHBpbmcodGFibGVfZGF0YSwgMCwgMHgxMDAwMCwgSU9SVF9O T0RFX09GRlNFVCwgMCk7CisgICAgICAgICB9CisgICAgIH0KKyAKK0BAIC02MjEsNyArNzE1LDcg QEAgYnVpbGRfaW9ydChHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwgVmly dE1hY2hpbmVTdGF0ZSAqdm1zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFjcGlJb3J0SWRNYXBwaW5nLCBqKTsKKyAgICAgICAgICAgICAgICAgLyogT3V0cHV0IElP UlQgbm9kZSBpcyB0aGUgU01NVXYzIG5vZGUuICovCisgICAgICAgICAgICAgICAgIGJ1aWxkX2lv cnRfaWRfbWFwcGluZyh0YWJsZV9kYXRhLCByYW5nZS0+aW5wdXRfYmFzZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLT5pZF9jb3VudCwgc2Rldi0+b2Zmc2V0 KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLT5pZF9jb3Vu dCwgc2Rldi0+b2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgCitAQCAt NjM0LDcgKzcyOCw3IEBAIGJ1aWxkX2lvcnQoR0FycmF5ICp0YWJsZV9kYXRhLCBCSU9TTGlua2Vy ICpsaW5rZXIsIFZpcnRNYWNoaW5lU3RhdGUgKnZtcykKKyAgICAgICAgICAgICAgICAgcmFuZ2Ug PSAmZ19hcnJheV9pbmRleChyY19pdHNfaWRtYXBzLCBBY3BpSW9ydElkTWFwcGluZywgaSk7Cisg ICAgICAgICAgICAgICAgIC8qIE91dHB1dCBJT1JUIG5vZGUgaXMgdGhlIElUUyBHcm91cCBub2Rl ICh0aGUgZmlyc3Qgbm9kZSkuICovCisgICAgICAgICAgICAgICAgIGJ1aWxkX2lvcnRfaWRfbWFw cGluZyh0YWJsZV9kYXRhLCByYW5nZS0+aW5wdXRfYmFzZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJhbmdlLT5pZF9jb3VudCwgSU9SVF9OT0RFX09GRlNFVCk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS0+aWRfY291bnQsIElP UlRfTk9ERV9PRkZTRVQsIDApOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfSBl bHNlIHsKK0BAIC02NDMsOSArNzM3LDEwIEBAIGJ1aWxkX2lvcnQoR0FycmF5ICp0YWJsZV9kYXRh LCBCSU9TTGlua2VyICpsaW5rZXIsIFZpcnRNYWNoaW5lU3RhdGUgKnZtcykKKyAgICAgICAgICAq IFNNTVU6IFJDIC0+IElUUy4KKyAgICAgICAgICAqIE91dHB1dCBJT1JUIG5vZGUgaXMgdGhlIElU UyBHcm91cCBub2RlICh0aGUgZmlyc3Qgbm9kZSkuCisgICAgICAgICAgKi8KKy0gICAgICAgIGJ1 aWxkX2lvcnRfaWRfbWFwcGluZyh0YWJsZV9kYXRhLCAwLCAweDEwMDAwLCBJT1JUX05PREVfT0ZG U0VUKTsKKysgICAgICAgIGJ1aWxkX2lvcnRfaWRfbWFwcGluZyh0YWJsZV9kYXRhLCAwLCAweDEw MDAwLCBJT1JUX05PREVfT0ZGU0VULCAwKTsKKyAgICAgfQorIAorKyAgICBidWlsZF9pb3J0X3Jt cl9ub2Rlcyh0YWJsZV9kYXRhLCBzbW11djNfZGV2cywgJmlkKTsKKyAgICAgYWNwaV90YWJsZV9l bmQobGlua2VyLCAmdGFibGUpOworICAgICBnX2FycmF5X2ZyZWUocmNfaXRzX2lkbWFwcywgdHJ1 ZSk7CisgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fc21tdXM7IGkrKykgeworLS0gCisyLjUyLjAK KwoKZGlmZiAtLWdpdCBhL2t2bS1ody1wY2ktQWRkLWhlbHBlci10by1pbnNlcnQtUENJZS1leHRl bmRlZC1jYXBhYmlsaXR5LnBhdGNoIGIva3ZtLWh3LXBjaS1BZGQtaGVscGVyLXRvLWluc2VydC1Q Q0llLWV4dGVuZGVkLWNhcGFiaWxpdHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uOWVjNjE1MQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1wY2ktQWRkLWhlbHBl ci10by1pbnNlcnQtUENJZS1leHRlbmRlZC1jYXBhYmlsaXR5LnBhdGNoCkBAIC0wLDAgKzEsMTQ0 IEBACitGcm9tIDNlNjEyNzE1YzQ3OGNiODcwN2U4NTRlMWM3NzU0ODU1OThhYjEzMTYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9A bnZpZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAKK1N1Ympl Y3Q6IFtQQVRDSCAwNDIvMTExXSBody9wY2k6IEFkZCBoZWxwZXIgdG8gaW5zZXJ0IFBDSWUgZXh0 ZW5kZWQgY2FwYWJpbGl0eQorIGF0IGEgZml4ZWQgb2Zmc2V0CitNSU1FLVZlcnNpb246IDEuMAor Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRl ZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQt Ynk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZp biBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNDIvMTExXSBhNDQyYzcwYzg4 YzE3MmMzNDE3MzZhNmNhYjMxZTExNjIyZmY5Yzc1IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkK KworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NAor CitBZGQgcGNpZV9pbnNlcnRfY2FwYWJpbGl0eSgpLCBhIGhlbHBlciB0byBpbnNlcnQgYSBQQ0ll IGV4dGVuZGVkCitjYXBhYmlsaXR5IGludG8gYW4gZXhpc3RpbmcgZXh0ZW5kZWQgY2FwYWJpbGl0 eSBsaXN0IGF0IGEgY2FsbGVyCitzcGVjaWZpZWQgb2Zmc2V0LgorCitVbmxpa2UgcGNpZV9hZGRf Y2FwYWJpbGl0eSgpLCB3aGljaCBhbHdheXMgYXBwZW5kcyBhIGNhcGFiaWxpdHkgdG8gdGhlCitl bmQgb2YgdGhlIGxpc3QsIHRoaXMgaGVscGVyIHByZXNlcnZlcyB0aGUgZXhpc3RpbmcgbGlzdCBv cmRlcmluZyB3aGlsZQorYWxsb3dpbmcgaW5zZXJ0aW9uIGF0IGFuIGFyYml0cmFyeSBvZmZzZXQu CisKK1RoZSBoZWxwZXIgb25seSB2YWxpZGF0ZXMgdGhhdCB0aGUgaW5zZXJ0aW9uIGRvZXMgbm90 IG92ZXJ3cml0ZSBhbgorZXhpc3RpbmcgUENJZSBleHRlbmRlZCBjYXBhYmlsaXR5IGhlYWRlciwg c2luY2UgY29ycnVwdGluZyBhIGhlYWRlcgord291bGQgYnJlYWsgdGhlIGV4dGVuZGVkIGNhcGFi aWxpdHkgbGlua2VkIGxpc3QuIFZhbGlkYXRpb24gb2Ygb3ZlcmxhcHMKK3dpdGggb3RoZXIgY29u ZmlndXJhdGlvbiBzcGFjZSByZWdpc3RlcnMgb3IgY2FwYWJpbGl0eS1zcGVjaWZpYworcmVnaXN0 ZXIgYmxvY2tzIGlzIGxlZnQgdG8gdGhlIGNhbGxlci4KKworUmV2aWV3ZWQtYnk6IE1pY2hhZWwg Uy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJl ZGhhdC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5v cmc+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3 ZWkuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52 aWRpYS5jb20+CitSZXZpZXdlZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRlbC5jb20+CitNZXNz YWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMzUtc2tvbG90aHVtdGhvQG52aWRpYS5jb20K K1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDQ5YTJiZWQxOWIwZTRlNjhiZGMwNmU2YzM3NTMy MzEzMTkzZTc2NmMpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CistLS0KKyBody9wY2kvcGNpZS5jICAgICAgICAgfCA2OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCisgaW5jbHVkZS9ody9wY2kvcGNpZS5oIHwgIDIg KysKKyAyIGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3 L3BjaS9wY2llLmMgYi9ody9wY2kvcGNpZS5jCitpbmRleCBlYWViNjg4OTRlLi4zNDhiMjZlNGYx IDEwMDY0NAorLS0tIGEvaHcvcGNpL3BjaWUuYworKysrIGIvaHcvcGNpL3BjaWUuYworQEAgLTEw NTAsNiArMTA1MCw3NSBAQCBzdGF0aWMgdm9pZCBwY2llX2V4dF9jYXBfc2V0X25leHQoUENJRGV2 aWNlICpkZXYsIHVpbnQxNl90IHBvcywgdWludDE2X3QgbmV4dCkKKyAgICAgcGNpX3NldF9sb25n KGRldi0+Y29uZmlnICsgcG9zLCBoZWFkZXIpOworIH0KKyAKKysvKgorKyAqIEluc2VydCBhIFBD SWUgZXh0ZW5kZWQgY2FwYWJpbGl0eSBhdCBhIGdpdmVuIG9mZnNldC4KKysgKgorKyAqIFRoaXMg aGVscGVyIG9ubHkgdmFsaWRhdGVzIHRoYXQgdGhlIGluc2VydGlvbiBkb2VzIG5vdCBvdmVyd3Jp dGUgYW4KKysgKiBleGlzdGluZyBQQ0llIGV4dGVuZGVkIGNhcGFiaWxpdHkgaGVhZGVyLCBhcyBj b3JydXB0aW5nIGEgaGVhZGVyIHdvdWxkCisrICogYnJlYWsgdGhlIGV4dGVuZGVkIGNhcGFiaWxp dHkgbGlua2VkIGxpc3QuCisrICoKKysgKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgKG9m ZnNldCwgc2l6ZSkgZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIG90aGVyCisrICogcmVnaXN0ZXJzIG9y IGNhcGFiaWxpdHktc3BlY2lmaWMgcmVnaXN0ZXIgYmxvY2tzLiBPdmVybGFwcyB3aXRoCisrICog Y2FwYWJpbGl0eS1zcGVjaWZpYyByZWdpc3RlcnMgYXJlIG5vdCBjaGVja2VkIGFuZCBhcmUgY29u c2lkZXJlZCBhCisrICogdXNlci1jb250cm9sbGVkIG92ZXJyaWRlLgorKyAqCisrICogTm90ZTog QmVzdCBlZmZvcnQgaGVscGVyLiBUaGUgUENJZSBzcGVjIGRvZXMgbm90IHJlcXVpcmUgZXh0ZW5k ZWQKKysgKiBjYXBhYmlsaXRpZXMgdG8gYmUgb3JkZXJlZCwgYnV0IG1vc3QgZGV2aWNlcyB1c2Ug YSBmb3J3YXJkLWxpbmtlZCBsaXN0LgorKyAqIERldmljZXMgdGhhdCBkbyBub3QgY29uc2lzdGVu dGx5IHVzZSBhIGZvcndhcmQtbGlua2VkIGxpc3QgbWF5IGNhdXNlCisrICogaW5zZXJ0aW9uIHRv IGZhaWwuCisrICovCisrYm9vbCBwY2llX2luc2VydF9jYXBhYmlsaXR5KFBDSURldmljZSAqZGV2 LCB1aW50MTZfdCBjYXBfaWQsIHVpbnQ4X3QgY2FwX3ZlciwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDE2X3Qgb2Zmc2V0LCB1aW50MTZfdCBzaXplKQorK3sKKysgICAgdWludDE2 X3QgcG9zID0gUENJX0NPTkZJR19TUEFDRV9TSVpFLCBwcmV2ID0gMDsKKysgICAgdWludDMyX3Qg aGVhZGVyOworKworKyAgICBhc3NlcnQocGNpX2lzX2V4cHJlc3MoZGV2KSk7CisrCisrICAgIGlm ICghUUVNVV9JU19BTElHTkVEKG9mZnNldCwgUENJX0VYVF9DQVBfQUxJR04pIHx8CisrICAgICAg ICBzaXplIDwgOCB8fAorKyAgICAgICAgb2Zmc2V0IDwgUENJX0NPTkZJR19TUEFDRV9TSVpFIHx8 CisrICAgICAgICBvZmZzZXQgPj0gUENJRV9DT05GSUdfU1BBQ0VfU0laRSB8fAorKyAgICAgICAg b2Zmc2V0ICsgc2l6ZSA+IFBDSUVfQ09ORklHX1NQQUNFX1NJWkUpIHsKKysgICAgICAgIHJldHVy biBmYWxzZTsKKysgICAgfQorKworKyAgICBoZWFkZXIgPSBwY2lfZ2V0X2xvbmcoZGV2LT5jb25m aWcgKyBwb3MpOworKyAgICBpZiAoIWhlYWRlcikgeworKyAgICAgICAgLyogTm8gZXh0ZW5kZWQg Y2FwYWJpbGl0eSBwcmVzZW50LCBpbnNlcnRpb24gbXVzdCBiZSBhdCB0aGUgRUNBUCBoZWFkICov CisrICAgICAgICBpZiAob2Zmc2V0ICE9IHBvcykgeworKyAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKysgICAgICAgIH0KKysgICAgICAgIHBjaV9zZXRfbG9uZyhkZXYtPmNvbmZpZyArIHBvcywg UENJX0VYVF9DQVAoY2FwX2lkLCBjYXBfdmVyLCAwKSk7CisrICAgICAgICBnb3RvIG91dDsKKysg ICAgfQorKworKyAgICB3aGlsZSAoaGVhZGVyICYmIHBvcyAmJiBvZmZzZXQgPj0gcG9zKSB7Cisr ICAgICAgICB1aW50MTZfdCBuZXh0ID0gUENJX0VYVF9DQVBfTkVYVChoZWFkZXIpOworKworKyAg ICAgICAgLyogUmVqZWN0IGluc2VydGlvbiBpbnNpZGUgYW4gZXhpc3RpbmcgRUNBUCBoZWFkZXIg KDQgYnl0ZXMpICovCisrICAgICAgICBpZiAob2Zmc2V0IDwgcG9zICsgUENJX0VYVF9DQVBfQUxJ R04pIHsKKysgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAgICB9CisrCisrICAgICAg ICBwcmV2ID0gcG9zOworKyAgICAgICAgcG9zID0gbmV4dDsKKysgICAgICAgIGhlYWRlciA9IHBv cyA/IHBjaV9nZXRfbG9uZyhkZXYtPmNvbmZpZyArIHBvcykgOiAwOworKyAgICB9CisrCisrICAg IHBjaV9zZXRfbG9uZyhkZXYtPmNvbmZpZyArIG9mZnNldCwgUENJX0VYVF9DQVAoY2FwX2lkLCBj YXBfdmVyLCBwb3MpKTsKKysgICAgaWYgKHByZXYpIHsKKysgICAgICAgIHBjaWVfZXh0X2NhcF9z ZXRfbmV4dChkZXYsIHByZXYsIG9mZnNldCk7CisrICAgIH0KKysKKytvdXQ6CisrICAgIC8qIE1h a2UgY2FwYWJpbGl0eSByZWFkLW9ubHkgYnkgZGVmYXVsdCAqLworKyAgICBtZW1zZXQoZGV2LT53 bWFzayArIG9mZnNldCwgMCwgc2l6ZSk7CisrICAgIG1lbXNldChkZXYtPncxY21hc2sgKyBvZmZz ZXQsIDAsIHNpemUpOworKyAgICAvKiBDaGVjayBjYXBhYmlsaXR5IGJ5IGRlZmF1bHQgKi8KKysg ICAgbWVtc2V0KGRldi0+Y21hc2sgKyBvZmZzZXQsIDB4RkYsIHNpemUpOworKyAgICByZXR1cm4g dHJ1ZTsKKyt9CisgLyoKKyAgKiBDYWxsZXIgbXVzdCBzdXBwbHkgdmFsaWQgKG9mZnNldCwgc2l6 ZSkgc3VjaCB0aGF0IHRoZSByYW5nZSB3b3VsZG4ndAorICAqIG92ZXJsYXAgd2l0aCBvdGhlciBj YXBhYmlsaXR5IG9yIG90aGVyIHJlZ2lzdGVycy4KK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3Bj aS9wY2llLmggYi9pbmNsdWRlL2h3L3BjaS9wY2llLmgKK2luZGV4IGZmNmNlMDhlMTMuLjNkMDE3 MThjOTYgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L3BjaS9wY2llLmgKKysrKyBiL2luY2x1ZGUv aHcvcGNpL3BjaWUuaAorQEAgLTEzMyw2ICsxMzMsOCBAQCB1aW50MTZfdCBwY2llX2ZpbmRfY2Fw YWJpbGl0eShQQ0lEZXZpY2UgKmRldiwgdWludDE2X3QgY2FwX2lkKTsKKyB2b2lkIHBjaWVfYWRk X2NhcGFiaWxpdHkoUENJRGV2aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQxNl90IGNhcF9pZCwgdWludDhfdCBjYXBfdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MTZfdCBvZmZzZXQsIHVpbnQxNl90IHNpemUpOworK2Jvb2wgcGNpZV9pbnNlcnRfY2Fw YWJpbGl0eShQQ0lEZXZpY2UgKmRldiwgdWludDE2X3QgY2FwX2lkLCB1aW50OF90IGNhcF92ZXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG9mZnNldCwgdWludDE2X3Qg c2l6ZSk7Cisgdm9pZCBwY2llX3N5bmNfYnJpZGdlX2xuayhQQ0lEZXZpY2UgKmRldik7CisgCisg dm9pZCBwY2llX2Fjc19pbml0KFBDSURldmljZSAqZGV2LCB1aW50MTZfdCBvZmZzZXQpOworLS0g CisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1wY2ktRXhwb3J0LXBjaV9kZXZpY2VfZ2V0 X2lvbW11X2J1c19kZXZmbi1hbmQtcmV0LnBhdGNoIGIva3ZtLWh3LXBjaS1FeHBvcnQtcGNpX2Rl dmljZV9nZXRfaW9tbXVfYnVzX2RldmZuLWFuZC1yZXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNzk2ZTk5MwotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1wY2kt RXhwb3J0LXBjaV9kZXZpY2VfZ2V0X2lvbW11X2J1c19kZXZmbi1hbmQtcmV0LnBhdGNoCkBAIC0w LDAgKzEsOTkgQEAKK0Zyb20gNTU3NjAzZmFiOGI5YTgzNmQ0YTAwZTVjMGExNjliNTgxYjIxYzUy NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFpoZW56aG9uZyBEdWFuIDx6aGVuemhv bmcuZHVhbkBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDYgSmFuIDIwMjYgMDE6MTI6NDYgLTA1MDAK K1N1YmplY3Q6IFtQQVRDSCAwMTAvMTExXSBody9wY2k6IEV4cG9ydCBwY2lfZGV2aWNlX2dldF9p b21tdV9idXNfZGV2Zm4oKSBhbmQKKyByZXR1cm4gYm9vbAorTUlNRS1WZXJzaW9uOiAxLjAKK0Nv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQg U01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAg UkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5 OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4g U2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzEwLzExMV0gZWFlZDE3ZDA0YjFh NDdiNTEwMWM5OWNhODA2Njc2OWIxZmNjMGJhNyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisK K0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKwor UmV0dXJucyB0cnVlIGlmIFBDSSBkZXZpY2UgaXMgYWxpYXNlZCBvciBmYWxzZSBvdGhlcndpc2Uu IFRoaXMgd2lsbCBiZQordXNlZCBpbiBmb2xsb3dpbmcgcGF0Y2ggdG8gZGV0ZXJtaW5lIGlmIGEg UENJIGRldmljZSBpcyB1bmRlciBhIFBDSQorYnJpZGdlLgorCitTaWduZWQtb2ZmLWJ5OiBaaGVu emhvbmcgRHVhbiA8emhlbnpob25nLmR1YW5AaW50ZWwuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBOaWNvbGluIENoZW4g PG5pY29saW5jQG52aWRpYS5jb20+CitSZXZpZXdlZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRl bC5jb20+CitSZXZpZXdlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4K K0xpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3FlbXUtZGV2ZWwvMjAyNjAxMDYwNjEzMDQu MzE0NTQ2LTUtemhlbnpob25nLmR1YW5AaW50ZWwuY29tCitTaWduZWQtb2ZmLWJ5OiBDw6lkcmlj IExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBk NTgyMzBkODc1NGZlZGY2ZmM3MzEzZTBmYWEyNWJiNWVkYzViYTJlKQorU2lnbmVkLW9mZi1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvcGNpL3BjaS5jICAg ICAgICAgfCAxMiArKysrKysrKy0tLS0KKyBpbmNsdWRlL2h3L3BjaS9wY2kuaCB8ICAyICsrCisg MiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvaHcvcGNpL3BjaS5jIGIvaHcvcGNpL3BjaS5jCitpbmRleCBhOGVlYWZkM2IyLi4x NWRkMjMyY2Y4IDEwMDY0NAorLS0tIGEvaHcvcGNpL3BjaS5jCisrKysgYi9ody9wY2kvcGNpLmMK K0BAIC0yODU1LDIwICsyODU1LDIxIEBAIHN0YXRpYyB2b2lkIHBjaV9kZXZpY2VfY2xhc3NfYmFz ZV9pbml0KE9iamVjdENsYXNzICprbGFzcywgY29uc3Qgdm9pZCAqZGF0YSkKKyAgKiBGb3IgY2Fs bCBzaXRlcyB3aGljaCBkb24ndCBuZWVkIGFsaWFzZWQgQkRGLCBwYXNzaW5nIE5VTEwgdG8KKyAg KiBhbGlhc2VkX1tidXN8ZGV2Zm5dIGlzIGFsbG93ZWQuCisgICoKKysgKiBSZXR1cm5zIHRydWUg aWYgUENJIGRldmljZSBSSUQgaXMgYWxpYXNlZCBvciBmYWxzZSBvdGhlcndpc2UuCisrICoKKyAg KiBAcGlvbW11X2J1czogcmV0dXJuIHJvb3QgI1BDSUJ1cyBiYWNrZWQgYnkgYW4gSU9NTVUgZm9y IHRoZSBQQ0kgZGV2aWNlLgorICAqCisgICogQGFsaWFzZWRfYnVzOiByZXR1cm4gYWxpYXNlZCAj UENJQnVzIG9mIHRoZSBQQ0kgZGV2aWNlLCBvcHRpb25hbC4KKyAgKgorICAqIEBhbGlhc2VkX2Rl dmZuOiByZXR1cm4gYWxpYXNlZCBkZXZmbiBvZiB0aGUgUENJIGRldmljZSwgb3B0aW9uYWwuCisg ICovCistc3RhdGljIHZvaWQgcGNpX2RldmljZV9nZXRfaW9tbXVfYnVzX2RldmZuKFBDSURldmlj ZSAqZGV2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lC dXMgKipwaW9tbXVfYnVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQQ0lCdXMgKiphbGlhc2VkX2J1cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICphbGlhc2VkX2RldmZuKQorK2Jvb2wgcGNpX2RldmljZV9nZXRf aW9tbXVfYnVzX2RldmZuKFBDSURldmljZSAqZGV2LCBQQ0lCdXMgKipwaW9tbXVfYnVzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSUJ1cyAqKmFsaWFzZWRfYnVzLCBp bnQgKmFsaWFzZWRfZGV2Zm4pCisgeworICAgICBQQ0lCdXMgKmJ1cyA9IHBjaV9nZXRfYnVzKGRl dik7CisgICAgIFBDSUJ1cyAqaW9tbXVfYnVzID0gYnVzOworICAgICBpbnQgZGV2Zm4gPSBkZXYt PmRldmZuOworKyAgICBib29sIGFsaWFzZWQgPSBmYWxzZTsKKyAKKyAgICAgd2hpbGUgKGlvbW11 X2J1cyAmJiAhaW9tbXVfYnVzLT5pb21tdV9vcHMgJiYgaW9tbXVfYnVzLT5wYXJlbnRfZGV2KSB7 CisgICAgICAgICBQQ0lCdXMgKnBhcmVudF9idXMgPSBwY2lfZ2V0X2J1cyhpb21tdV9idXMtPnBh cmVudF9kZXYpOworQEAgLTI5MDUsNiArMjkwNiw3IEBAIHN0YXRpYyB2b2lkIHBjaV9kZXZpY2Vf Z2V0X2lvbW11X2J1c19kZXZmbihQQ0lEZXZpY2UgKmRldiwKKyAgICAgICAgICAgICAgICAgZGV2 Zm4gPSBwYXJlbnQtPmRldmZuOworICAgICAgICAgICAgICAgICBidXMgPSBwYXJlbnRfYnVzOwor ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICBhbGlhc2VkID0gdHJ1ZTsKKyAgICAgICAgIH0K KyAKKyAgICAgICAgIC8qCitAQCAtMjkzOSw2ICsyOTQxLDggQEAgc3RhdGljIHZvaWQgcGNpX2Rl dmljZV9nZXRfaW9tbXVfYnVzX2RldmZuKFBDSURldmljZSAqZGV2LAorICAgICBpZiAoYWxpYXNl ZF9kZXZmbikgeworICAgICAgICAgKmFsaWFzZWRfZGV2Zm4gPSBkZXZmbjsKKyAgICAgfQorKwor KyAgICByZXR1cm4gYWxpYXNlZDsKKyB9CisgCisgQWRkcmVzc1NwYWNlICpwY2lfZGV2aWNlX2lv bW11X2FkZHJlc3Nfc3BhY2UoUENJRGV2aWNlICpkZXYpCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9o dy9wY2kvcGNpLmggYi9pbmNsdWRlL2h3L3BjaS9wY2kuaAoraW5kZXggNmJjY2IyNWFjMi4uYmRl OWRjYThlMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvcGNpL3BjaS5oCisrKysgYi9pbmNsdWRl L2h3L3BjaS9wY2kuaAorQEAgLTYzNyw2ICs2MzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBQQ0lJT01N VU9wcyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfd3JpdGUpOworIH0g UENJSU9NTVVPcHM7CisgCisrYm9vbCBwY2lfZGV2aWNlX2dldF9pb21tdV9idXNfZGV2Zm4oUENJ RGV2aWNlICpkZXYsIFBDSUJ1cyAqKnBpb21tdV9idXMsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUENJQnVzICoqYWxpYXNlZF9idXMsIGludCAqYWxpYXNlZF9kZXZmbik7 CisgQWRkcmVzc1NwYWNlICpwY2lfZGV2aWNlX2lvbW11X2FkZHJlc3Nfc3BhY2UoUENJRGV2aWNl ICpkZXYpOworIGJvb2wgcGNpX2RldmljZV9zZXRfaW9tbXVfZGV2aWNlKFBDSURldmljZSAqZGV2 LCBIb3N0SU9NTVVEZXZpY2UgKmhpb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRXJyb3IgKiplcnJwKTsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctcGNp LUZhY3Rvci1vdXQtY29tbW9uLVBBU0lELWNhcGFiaWxpdHktaW5pdGlhbGl6YS5wYXRjaCBiL2t2 bS1ody1wY2ktRmFjdG9yLW91dC1jb21tb24tUEFTSUQtY2FwYWJpbGl0eS1pbml0aWFsaXphLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ZWFjMDgKLS0tIC9kZXYv bnVsbAorKysgYi9rdm0taHctcGNpLUZhY3Rvci1vdXQtY29tbW9uLVBBU0lELWNhcGFiaWxpdHkt aW5pdGlhbGl6YS5wYXRjaApAQCAtMCwwICsxLDEwMSBAQAorRnJvbSA5ODBkZjMwMDk3ODhhNmM0 ZTQ0OWM5OGNhZWNmMTE3ZjUwODIwNzUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog U2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5 IEphbiAyMDI2IDEzOjMyOjA1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDQzLzExMV0gaHcvcGNp OiBGYWN0b3Igb3V0IGNvbW1vbiBQQVNJRCBjYXBhYmlsaXR5CisgaW5pdGlhbGl6YXRpb24KK01J TUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJh c2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgor UkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0 My8xMTFdIDEwMTZlM2IxNTk4Yzk1OTVhMGI3ZWEzMjRhNDRkODRkNTNmZDgwN2UgKGVhdWdlcjEv Y2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jy b3dzZS9SSEVMLTczNzk0CisKK1JlZmFjdG9yIFBDSWUgUEFTSUQgY2FwYWJpbGl0eSBpbml0aWFs aXphdGlvbiBieSBtb3ZpbmcgdGhlIGNvbW1vbgorcmVnaXN0ZXIgaW5pdCBpbnRvIGEgbmV3IGhl bHBlciwgcGNpZV9wYXNpZF9jb21tb25faW5pdCgpLgorCitTdWJzZXF1ZW50IHBhdGNoIHRvIHN5 bnRoZXNpemUgYSB2UEFTSUQgd2lsbCBtYWtlIHVzZSBvZiB0aGlzCitoZWxwZXIuCisKK05vIGZ1 bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLgorCitDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RA cmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1l cm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUmV2aWV3ZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1i eTogWmhhbmdmZWkgR2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6 IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6 IFlpIExpdSA8eWkubC5saXVAaW50ZWwuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIu MjUzOTY1LTM2LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBN YXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNv bW1pdCA3ZDU5ZmEyMDU5NGVjMDUzODYxZjdjNDlhYzUzMDkwYTQxOTAxMjA5KQorU2lnbmVkLW9m Zi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvcGNpL3Bj aWUuYyAgICAgICAgIHwgMTkgKysrKysrKysrKysrLS0tLS0tLQorIGluY2x1ZGUvaHcvcGNpL3Bj aWUuaCB8ICAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvcGNpL3BjaWUuYyBiL2h3L3BjaS9wY2llLmMKK2lu ZGV4IDM0OGIyNmU0ZjEuLjQwMjQyZmVhZDIgMTAwNjQ0CistLS0gYS9ody9wY2kvcGNpZS5jCisr KysgYi9ody9wY2kvcGNpZS5jCitAQCAtMTI4NCwxOCArMTI4NCwxMyBAQCB2b2lkIHBjaWVfYWNz X3Jlc2V0KFBDSURldmljZSAqZGV2KQorICAgICB9CisgfQorIAorLS8qIFBBU0lEICovCistdm9p ZCBwY2llX3Bhc2lkX2luaXQoUENJRGV2aWNlICpkZXYsIHVpbnQxNl90IG9mZnNldCwgdWludDhf dCBwYXNpZF93aWR0aCwKKy0gICAgICAgICAgICAgICAgICAgICBib29sIGV4ZWNfcGVybSwgYm9v bCBwcml2X21vZCkKKyt2b2lkIHBjaWVfcGFzaWRfY29tbW9uX2luaXQoUENJRGV2aWNlICpkZXYs IHVpbnQxNl90IG9mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBw YXNpZF93aWR0aCwgYm9vbCBleGVjX3Blcm0sIGJvb2wgcHJpdl9tb2QpCisgeworICAgICBzdGF0 aWMgY29uc3QgdWludDE2X3QgY29udHJvbF9yZWdfcndfbWFzayA9IDB4MDc7CisgICAgIHVpbnQx Nl90IGNhcGFiaWxpdHlfcmVnOworIAorICAgICBhc3NlcnQocGFzaWRfd2lkdGggPD0gUENJX0VY VF9DQVBfUEFTSURfTUFYX1dJRFRIKTsKKy0KKy0gICAgcGNpZV9hZGRfY2FwYWJpbGl0eShkZXYs IFBDSV9FWFRfQ0FQX0lEX1BBU0lELCBQQ0lfUEFTSURfVkVSLCBvZmZzZXQsCistICAgICAgICAg ICAgICAgICAgICAgICAgUENJX0VYVF9DQVBfUEFTSURfU0laRU9GKTsKKy0KKyAgICAgY2FwYWJp bGl0eV9yZWcgPSAoKHVpbnQxNl90KXBhc2lkX3dpZHRoKSA8PCBQQ0lfUEFTSURfQ0FQX1dJRFRI X1NISUZUOworICAgICBjYXBhYmlsaXR5X3JlZyB8PSBleGVjX3Blcm0gPyBQQ0lfUEFTSURfQ0FQ X0VYRUMgOiAwOworICAgICBjYXBhYmlsaXR5X3JlZyB8PSBwcml2X21vZCAgPyBQQ0lfUEFTSURf Q0FQX1BSSVYgOiAwOworQEAgLTEzMDcsNiArMTMwMiwxNiBAQCB2b2lkIHBjaWVfcGFzaWRfaW5p dChQQ0lEZXZpY2UgKmRldiwgdWludDE2X3Qgb2Zmc2V0LCB1aW50OF90IHBhc2lkX3dpZHRoLAor ICAgICBwY2lfc2V0X3dvcmQoZGV2LT53bWFzayArIG9mZnNldCArIFBDSV9QQVNJRF9DVFJMLCBj b250cm9sX3JlZ19yd19tYXNrKTsKKyAKKyAgICAgZGV2LT5leHAucGFzaWRfY2FwID0gb2Zmc2V0 OworKworK30KKysKKysvKiBQQVNJRCAqLworK3ZvaWQgcGNpZV9wYXNpZF9pbml0KFBDSURldmlj ZSAqZGV2LCB1aW50MTZfdCBvZmZzZXQsIHVpbnQ4X3QgcGFzaWRfd2lkdGgsCisrICAgICAgICAg ICAgICAgICAgICAgYm9vbCBleGVjX3Blcm0sIGJvb2wgcHJpdl9tb2QpCisreworKyAgICBwY2ll X2FkZF9jYXBhYmlsaXR5KGRldiwgUENJX0VYVF9DQVBfSURfUEFTSUQsIFBDSV9QQVNJRF9WRVIs IG9mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRVhUX0NBUF9QQVNJRF9TSVpF T0YpOworKyAgICBwY2llX3Bhc2lkX2NvbW1vbl9pbml0KGRldiwgb2Zmc2V0LCBwYXNpZF93aWR0 aCwgZXhlY19wZXJtLCBwcml2X21vZCk7CisgfQorIAorIC8qIFBSSSAqLworZGlmZiAtLWdpdCBh L2luY2x1ZGUvaHcvcGNpL3BjaWUuaCBiL2luY2x1ZGUvaHcvcGNpL3BjaWUuaAoraW5kZXggM2Qw MTcxOGM5Ni4uMDI5YTgwOWFlMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvcGNpL3BjaWUuaAor KysrIGIvaW5jbHVkZS9ody9wY2kvcGNpZS5oCitAQCAtMTU1LDYgKzE1NSw4IEBAIHZvaWQgcGNp ZV9jYXBfc2xvdF91bnBsdWdfY2IoSG90cGx1Z0hhbmRsZXIgKmhvdHBsdWdfZGV2LCBEZXZpY2VT dGF0ZSAqZGV2LAorIHZvaWQgcGNpZV9jYXBfc2xvdF91bnBsdWdfcmVxdWVzdF9jYihIb3RwbHVn SGFuZGxlciAqaG90cGx1Z19kZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERldmljZVN0YXRlICpkZXYsIEVycm9yICoqZXJycCk7CisgCisrdm9pZCBwY2llX3Bhc2lk X2NvbW1vbl9pbml0KFBDSURldmljZSAqZGV2LCB1aW50MTZfdCBvZmZzZXQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFzaWRfd2lkdGgsIGJvb2wgZXhlY19wZXJtLCBi b29sIHByaXZfbW9kKTsKKyB2b2lkIHBjaWVfcGFzaWRfaW5pdChQQ0lEZXZpY2UgKmRldiwgdWlu dDE2X3Qgb2Zmc2V0LCB1aW50OF90IHBhc2lkX3dpZHRoLAorICAgICAgICAgICAgICAgICAgICAg IGJvb2wgZXhlY19wZXJtLCBib29sIHByaXZfbW9kKTsKKyB2b2lkIHBjaWVfcHJpX2luaXQoUENJ RGV2aWNlICpkZXYsIHVpbnQxNl90IG9mZnNldCwgdWludDMyX3Qgb3V0c3RhbmRpbmdfcHJfY2Fw LAorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody1wY2ktSW50cm9kdWNlLXBjaV9k ZXZpY2VfZ2V0X2hvc3RfaW9tbXVfcXVpcmtzLnBhdGNoIGIva3ZtLWh3LXBjaS1JbnRyb2R1Y2Ut cGNpX2RldmljZV9nZXRfaG9zdF9pb21tdV9xdWlya3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMWJkOTQ3NQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1wY2kt SW50cm9kdWNlLXBjaV9kZXZpY2VfZ2V0X2hvc3RfaW9tbXVfcXVpcmtzLnBhdGNoCkBAIC0wLDAg KzEsMTMwIEBACitGcm9tIGRjMjM5MWJiMjAwZTZhYjNjMzhkNzZkYjQ2OTE5ZmY0YmQ3YzNlNjAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaaGVuemhvbmcgRHVhbiA8emhlbnpob25n LmR1YW5AaW50ZWwuY29tPgorRGF0ZTogVHVlLCA2IEphbiAyMDI2IDAxOjI4OjAzIC0wNTAwCitT dWJqZWN0OiBbUEFUQ0ggMDE2LzExMV0gaHcvcGNpOiBJbnRyb2R1Y2UgcGNpX2RldmljZV9nZXRf aG9zdF9pb21tdV9xdWlya3MoKQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAor CitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdl UmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYg c3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdv YXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVk aGF0LmNvbT4KK1JILUNvbW1pdDogWzE2LzExMV0gZGQ0ZjA5MzYwYWU2MTcxYzdmYWY2ZjE4YWYy ZjZjNjYzNjcxODlmNyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8v cmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworSW4gVkZJTyBjb3JlLCB3 ZSBjYWxsIGlvbW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2luZm8oKSB0byByZXR1cm4gdmVuZG9y CitzcGVjaWZpYyBoYXJkd2FyZSBpbmZvcm1hdGlvbiBkYXRhLCBidXQgaXQncyBub3QgZ29vZCB0 byByZXRyaWV2ZSB0aGlzIHJhdworZGF0YSBpbiBWRklPIGNvcmUuCisKK0ludHJvZHVjZSBhIG5l dyBQQ0lJT01NVU9wcyBvcHRpb25hbCBjYWxsYmFjaywgZ2V0X2hvc3RfaW9tbXVfcXVpcmsoKSB3 aGljaAorYWxsb3dzIHRvIHJldHJpZXZlIHRoZSB2ZW5kb3Igc3BlY2lmaWMgaGFyZHdhcmUgaW5m b3JtYXRpb24gZGF0YSBhbmQgY29udmVydAoraXQgaW50byBiaXRtYXBzIGRlZmluZWQgd2l0aCBl bnVtIGhvc3RfaW9tbXVfcXVpcmtzLgorCitwY2lfZGV2aWNlX2dldF9ob3N0X2lvbW11X3F1aXJr cygpIGlzIGEgd3JhcHBlciB0aGF0IGNhbiBiZSBjYWxsZWQgb24gYSBQQ0kKK2RldmljZSBwb3Rl bnRpYWxseSBwcm90ZWN0ZWQgYnkgYSB2SU9NTVUuCisKK1N1Z2dlc3RlZC1ieTogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorU3VnZ2VzdGVkLWJ5OiBOaWNvbGluIENoZW4gPG5p Y29saW5jQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBaaGVuemhvbmcgRHVhbiA8emhlbnpo b25nLmR1YW5AaW50ZWwuY29tPgorTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvcWVtdS1k ZXZlbC8yMDI2MDEwNjA2MjgwOC4zMTY1NzQtMi16aGVuemhvbmcuZHVhbkBpbnRlbC5jb20KK1Np Z25lZC1vZmYtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IGNkNGQ3ZmI3MjEwOTA0M2Q2MGI1Y2Y2MTkxYTE2NzhlOTY3NzVi OTgpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+Cist LS0KKyBody9wY2kvcGNpLmMgICAgICAgICAgICB8IDEyICsrKysrKysrKysrKworIGluY2x1ZGUv aHcvY29yZS9pb21tdS5oIHwgIDUgKysrKysKKyBpbmNsdWRlL2h3L3BjaS9wY2kuaCAgICB8IDMx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDQ4IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L3BjaS9wY2kuYyBiL2h3L3BjaS9wY2kuYwor aW5kZXggMjdiYjIyODVkNC4uMWYyZDRkNzZmOSAxMDA2NDQKKy0tLSBhL2h3L3BjaS9wY2kuYwor KysrIGIvaHcvcGNpL3BjaS5jCitAQCAtMzAzOCw2ICszMDM4LDE4IEBAIHVpbnQ2NF90IHBjaV9k ZXZpY2VfZ2V0X3Zpb21tdV9mbGFncyhQQ0lEZXZpY2UgKmRldikKKyAgICAgcmV0dXJuIDA7Cisg fQorIAorK3VpbnQ2NF90IHBjaV9kZXZpY2VfZ2V0X2hvc3RfaW9tbXVfcXVpcmtzKFBDSURldmlj ZSAqZGV2LCB1aW50MzJfdCB0eXBlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKmNhcHMsIHVpbnQzMl90IHNpemUpCisreworKyAgICBQQ0lCdXMgKmlv bW11X2J1czsKKysKKysgICAgcGNpX2RldmljZV9nZXRfaW9tbXVfYnVzX2RldmZuKGRldiwgJmlv bW11X2J1cywgTlVMTCwgTlVMTCk7CisrICAgIGlmIChpb21tdV9idXMgJiYgaW9tbXVfYnVzLT5p b21tdV9vcHMtPmdldF9ob3N0X2lvbW11X3F1aXJrcykgeworKyAgICAgICAgcmV0dXJuIGlvbW11 X2J1cy0+aW9tbXVfb3BzLT5nZXRfaG9zdF9pb21tdV9xdWlya3ModHlwZSwgY2Fwcywgc2l6ZSk7 CisrICAgIH0KKysgICAgcmV0dXJuIDA7CisrfQorKworIGludCBwY2lfcHJpX3JlcXVlc3RfcGFn ZShQQ0lEZXZpY2UgKmRldiwgdWludDMyX3QgcGFzaWQsIGJvb2wgcHJpdl9yZXEsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgZXhlY19yZXEsIGh3YWRkciBhZGRyLCBib29sIGxwaWcs CisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHByZ2ksIGJvb2wgaXNfcmVhZCwg Ym9vbCBpc193cml0ZSkKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2NvcmUvaW9tbXUuaCBiL2lu Y2x1ZGUvaHcvY29yZS9pb21tdS5oCitpbmRleCBmY2JiY2QxMDE1Li5kNTQwMWEzOTdiIDEwMDY0 NAorLS0tIGEvaW5jbHVkZS9ody9jb3JlL2lvbW11LmgKKysrKyBiL2luY2x1ZGUvaHcvY29yZS9p b21tdS5oCitAQCAtMjIsNCArMjIsOSBAQCBlbnVtIHZpb21tdV9mbGFncyB7CisgICAgIFZJT01N VV9GTEFHX1dBTlRfTkVTVElOR19QQVJFTlQgPSBCSVRfVUxMKDApLAorIH07CisgCisrLyogSG9z dCBJT01NVSBxdWlya3MuIEV4dHJhY3RlZCBmcm9tIGhvc3QgSU9NTVUgY2FwYWJpbGl0aWVzICov CisrZW51bSBob3N0X2lvbW11X3F1aXJrcyB7CisrICAgIEhPU1RfSU9NTVVfUVVJUktfTkVTVElO R19QQVJFTlRfQllQQVNTX1JPID0gQklUX1VMTCgwKSwKKyt9OworKworICNlbmRpZiAvKiBIV19J T01NVV9IICovCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9wY2kvcGNpLmggYi9pbmNsdWRlL2h3 L3BjaS9wY2kuaAoraW5kZXggMjk5ZTdmOTRkYS4uNTI4ZmFhZmFkMiAxMDA2NDQKKy0tLSBhL2lu Y2x1ZGUvaHcvcGNpL3BjaS5oCisrKysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaAorQEAgLTQ5Myw2 ICs0OTMsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgUENJSU9NTVVPcHMgeworICAgICAgKiBlbnVtIHZp b21tdV9mbGFncy4KKyAgICAgICovCisgICAgIHVpbnQ2NF90ICgqZ2V0X3Zpb21tdV9mbGFncyko dm9pZCAqb3BhcXVlKTsKKysgICAgLyoqCisrICAgICAqIEBnZXRfaG9zdF9pb21tdV9xdWlya3M6 IGdldCBob3N0IElPTU1VIHF1aXJrcworKyAgICAgKgorKyAgICAgKiBPcHRpb25hbCBjYWxsYmFj aywgaWYgbm90IGltcGxlbWVudGVkLCB0aGVuIHZJT01NVSBkb2Vzbid0IHN1cHBvcnQKKysgICAg ICogY29udmVydGluZyBAdHlwZSBzcGVjaWZpYyBoYXJkd2FyZSBpbmZvcm1hdGlvbiBkYXRhIGlu dG8gYSBzdGFuZGFyZAorKyAgICAgKiBiaXRtYXAgZm9ybWF0LgorKyAgICAgKgorKyAgICAgKiBA dHlwZTogSU9NTVUgaGFyZHdhcmUgaW5mbyB0eXBlCisrICAgICAqCisrICAgICAqIEBjYXBzOiBJ T01NVSBAdHlwZSBzcGVjaWZpYyBoYXJkd2FyZSBpbmZvcm1hdGlvbiBkYXRhCisrICAgICAqCisr ICAgICAqIEBzaXplOiBzaXplIG9mIEBjYXBzCisrICAgICAqCisrICAgICAqIFJldHVybnM6IGJp dG1hcCB3aXRoIGVhY2ggYml0IHJlcHJlc2VudGluZyBhIGhvc3QgSU9NTVUgcXVpcmsgZGVmaW5l ZCBpbgorKyAgICAgKiBlbnVtIGhvc3RfaW9tbXVfcXVpcmtzCisrICAgICAqLworKyAgICB1aW50 NjRfdCAoKmdldF9ob3N0X2lvbW11X3F1aXJrcykodWludDMyX3QgdHlwZSwgdm9pZCAqY2Fwcywg dWludDMyX3Qgc2l6ZSk7CisgICAgIC8qKgorICAgICAgKiBAZ2V0X2lvdGxiX2luZm86IGdldCBw cm9wZXJ0aWVzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgYSBkZXZpY2UgSU9UTEIuCisgICAgICAq CitAQCAtNjg1LDYgKzcwMiwyMCBAQCB2b2lkIHBjaV9kZXZpY2VfdW5zZXRfaW9tbXVfZGV2aWNl KFBDSURldmljZSAqZGV2KTsKKyAgKi8KKyB1aW50NjRfdCBwY2lfZGV2aWNlX2dldF92aW9tbXVf ZmxhZ3MoUENJRGV2aWNlICpkZXYpOworIAorKy8qKgorKyAqIHBjaV9kZXZpY2VfZ2V0X2hvc3Rf aW9tbXVfcXVpcmtzOiBnZXQgaG9zdCBJT01NVSBxdWlya3MuCisrICoKKysgKiBSZXR1cm5zOiBi aXRtYXAgd2l0aCBlYWNoIGJpdCByZXByZXNlbnRpbmcgYSBob3N0IElPTU1VIHF1aXJrIGRlZmlu ZWQgaW4KKysgKiBlbnVtIGhvc3RfaW9tbXVfcXVpcmtzLiBPciAwIGlmIHZJT01NVSBkb2Vzbid0 IGNvbnZlcnQgYW55LgorKyAqCisrICogQGRldjogUENJIGRldmljZSBwb2ludGVyLgorKyAqIEB0 eXBlOiBJT01NVSBoYXJkd2FyZSBpbmZvIHR5cGUKKysgKiBAY2FwczogSU9NTVUgQHR5cGUgc3Bl Y2lmaWMgaGFyZHdhcmUgaW5mb3JtYXRpb24gZGF0YQorKyAqIEBzaXplOiBzaXplIG9mIEBjYXBz CisrICovCisrdWludDY0X3QgcGNpX2RldmljZV9nZXRfaG9zdF9pb21tdV9xdWlya3MoUENJRGV2 aWNlICpkZXYsIHVpbnQzMl90IHR5cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAqY2FwcywgdWludDMyX3Qgc2l6ZSk7CisrCisgLyoqCisgICogcGNp X2lvbW11X2dldF9pb3RsYl9pbmZvOiBnZXQgcHJvcGVydGllcyByZXF1aXJlZCB0byBpbml0aWFs aXplIGEKKyAgKiBkZXZpY2UgSU9UTEIuCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3Zt LWh3LXBjaS1JbnRyb2R1Y2UtcGNpX2RldmljZV9nZXRfdmlvbW11X2ZsYWdzLnBhdGNoIGIva3Zt LWh3LXBjaS1JbnRyb2R1Y2UtcGNpX2RldmljZV9nZXRfdmlvbW11X2ZsYWdzLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1OTM2MjMKLS0tIC9kZXYvbnVsbAorKysg Yi9rdm0taHctcGNpLUludHJvZHVjZS1wY2lfZGV2aWNlX2dldF92aW9tbXVfZmxhZ3MucGF0Y2gK QEAgLTAsMCArMSwxNzcgQEAKK0Zyb20gMjk5ZTJhMDZiMTE2NmI5ZDk0MmNjZjBlNDk3MDM5MTZi NmE1MDI4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFpoZW56aG9uZyBEdWFuIDx6 aGVuemhvbmcuZHVhbkBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDYgSmFuIDIwMjYgMDE6MTI6NDcg LTA1MDAKK1N1YmplY3Q6IFtQQVRDSCAwMTUvMTExXSBody9wY2k6IEludHJvZHVjZSBwY2lfZGV2 aWNlX2dldF92aW9tbXVfZmxhZ3MoKQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1l cmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01E UVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYg UkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExl IEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5A cmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzE1LzExMV0gY2NiYjAxNTcxZDZjMmUxYzlhYzUxZTA1 MDk4NjQ5NzQ4YmM3YThiNiAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBz Oi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworSW50cm9kdWNlIGEg bmV3IFBDSUlPTU1VT3BzIG9wdGlvbmFsIGNhbGxiYWNrLCBnZXRfdmlvbW11X2ZsYWdzKCkgd2hp Y2gKK2FsbG93cyB0byByZXRyaWV2ZSBmbGFncyBleHBvc2VkIGJ5IGEgdklPTU1VLiBUaGUgZmly c3QgcGxhbm5lZCB2SU9NTVUKK2RldmljZSBmbGFnIGlzIFZJT01NVV9GTEFHX1dBTlRfTkVTVElO R19QQVJFTlQgdGhhdCBhZHZlcnRpc2VzIHRoZQorc3VwcG9ydCBvZiBIVyBuZXN0ZWQgc3RhZ2Ug dHJhbnNsYXRpb24gc2NoZW1lIGFuZCB3YW50cyBvdGhlciBzdWItc3lzdGVtCitsaWtlIFZGSU8n cyBjb29wZXJhdGlvbiB0byBjcmVhdGUgbmVzdGluZyBwYXJlbnQgSFdQVC4KKworcGNpX2Rldmlj ZV9nZXRfdmlvbW11X2ZsYWdzKCkgaXMgYSB3cmFwcGVyIHRoYXQgY2FuIGJlIGNhbGxlZCBvbiBh IFBDSQorZGV2aWNlIHBvdGVudGlhbGx5IHByb3RlY3RlZCBieSBhIHZJT01NVS4KKworZ2V0X3Zp b21tdV9mbGFncygpIGlzIGRlc2lnbmVkIHRvIHJldHVybiA2NGJpdCBiaXRtYXAgb2YgcHVyZWx5 IHZJT01NVQorZmxhZ3Mgd2hpY2ggYXJlIG9ubHkgZGV0ZXJtaW5lZCBieSB1c2VyJ3MgY29uZmln dXJhdGlvbiwgbm8gaG9zdAorY2FwYWJpbGl0aWVzIGludm9sdmVkLiBSZWFzb25zIGFyZToKKwor MS4gaG9zdCBtYXkgaGFzIGhldGVyb2dlbmVvdXMgSU9NTVVzLCBlYWNoIHdpdGggZGlmZmVyZW50 IGNhcGFiaWxpdGllcworMi4gdGhpcyBpcyBtaWdyYXRpb24gZnJpZW5kbHksIHJldHVybiB2YWx1 ZSBpcyBjb25zaXN0ZW50IGJldHdlZW4gc291cmNlCisgICBhbmQgdGFyZ2V0LgorCitOb3RlIHRo YXQgdGhpcyBvcCB3aWxsIGJlIGludm9rZWQgYXQgdGhlIGF0dGFjaF9kZXZpY2UoKSBzdGFnZSwg YXQgd2hpY2gKK3BvaW50IGhvc3QgSU9NTVUgY2FwYWJpbGl0aWVzIGFyZSBub3QgeWV0IGZvcndh cmRlZCB0byB0aGUgdklPTU1VIHRocm91Z2gKK3RoZSBzZXRfaW9tbXVfZGV2aWNlKCkgY2FsbGJh Y2sgdGhhdCB3aWxsIGJlIGFmdGVyIHRoZSBhdHRhY2hfZGV2aWNlKCkuCisKK1NlZSBiZWxvdyBz ZXF1ZW5jZToKKworICB2ZmlvX2RldmljZV9hdHRhY2goKToKKyAgICAgIGlvbW11ZmRfY2Rldl9h dHRhY2goKToKKyAgICAgICAgICBwY2lfZGV2aWNlX2dldF92aW9tbXVfZmxhZ3MoKSBmb3IgSFcg bmVzdGluZyBjYXAKKyAgICAgICAgICBjcmVhdGUgYSBuZXN0aW5nIHBhcmVudCBIV1BUCisgICAg ICAgICAgYXR0YWNoIGRldmljZSB0byB0aGUgSFdQVAorICAgICAgICAgIHZmaW9fZGV2aWNlX2hp b2RfY3JlYXRlX2FuZF9yZWFsaXplKCkgY3JlYXRpbmcgaGlvZAorICAuLi4KKyAgcGNpX2Rldmlj ZV9zZXRfaW9tbXVfZGV2aWNlKGhpb2QpCisKK1N1Z2dlc3RlZC1ieTogWWkgTGl1IDx5aS5sLmxp dUBpbnRlbC5jb20+CitTaWduZWQtb2ZmLWJ5OiBaaGVuemhvbmcgRHVhbiA8emhlbnpob25nLmR1 YW5AaW50ZWwuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlh LmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS ZXZpZXdlZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRlbC5jb20+CitSZXZpZXdlZC1ieTogQ8Op ZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE1pY2hhZWwgUy4g VHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9x ZW11LWRldmVsLzIwMjYwMTA2MDYxMzA0LjMxNDU0Ni02LXpoZW56aG9uZy5kdWFuQGludGVsLmNv bQorWyBjbGc6IGluY2x1ZGUvaHcvY29yZS9pb21tdS5oOiBDaGFuZ2VkIENvcHlyaWdodCBkYXRl IDIwMjUgLT4gMjAyNiBdCitTaWduZWQtb2ZmLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJl ZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NDQzMDJiZDU5NjFkOGU3YTM1 YjYwMTQ5NWI5YWY4ZjNkMjZhNGM4KQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorLS0tCisgTUFJTlRBSU5FUlMgICAgICAgICAgICAgfCAgMSArCisg aHcvcGNpL3BjaS5jICAgICAgICAgICAgfCAxMSArKysrKysrKysrKworIGluY2x1ZGUvaHcvY29y ZS9pb21tdS5oIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKworIGluY2x1ZGUvaHcvcGNp L3BjaS5oICAgIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwg NTkgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3L2NvcmUvaW9t bXUuaAorCitkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUworaW5kZXggZDQ2 OTZmMDBkNy4uYzcxZjUzYzQ4MCAxMDA2NDQKKy0tLSBhL01BSU5UQUlORVJTCisrKysgYi9NQUlO VEFJTkVSUworQEAgLTIzMjAsNiArMjMyMCw3IEBAIEY6IGluY2x1ZGUvc3lzdGVtL2lvbW11ZmQu aAorIEY6IGJhY2tlbmRzL2hvc3RfaW9tbXVfZGV2aWNlLmMKKyBGOiBpbmNsdWRlL3N5c3RlbS9o b3N0X2lvbW11X2RldmljZS5oCisgRjogaW5jbHVkZS9xZW11L2NoYXJkZXZfb3Blbi5oCisrRjog aW5jbHVkZS9ody9jb3JlL2lvbW11LmgKKyBGOiB1dGlsL2NoYXJkZXZfb3Blbi5jCisgRjogZG9j cy9kZXZlbC92ZmlvLWlvbW11ZmQucnN0CisgCitkaWZmIC0tZ2l0IGEvaHcvcGNpL3BjaS5jIGIv aHcvcGNpL3BjaS5jCitpbmRleCAxNDFiN2FkMWY4Li4yN2JiMjI4NWQ0IDEwMDY0NAorLS0tIGEv aHcvcGNpL3BjaS5jCisrKysgYi9ody9wY2kvcGNpLmMKK0BAIC0zMDI3LDYgKzMwMjcsMTcgQEAg dm9pZCBwY2lfZGV2aWNlX3Vuc2V0X2lvbW11X2RldmljZShQQ0lEZXZpY2UgKmRldikKKyAgICAg fQorIH0KKyAKKyt1aW50NjRfdCBwY2lfZGV2aWNlX2dldF92aW9tbXVfZmxhZ3MoUENJRGV2aWNl ICpkZXYpCisreworKyAgICBQQ0lCdXMgKmlvbW11X2J1czsKKysKKysgICAgcGNpX2RldmljZV9n ZXRfaW9tbXVfYnVzX2RldmZuKGRldiwgJmlvbW11X2J1cywgTlVMTCwgTlVMTCk7CisrICAgIGlm IChpb21tdV9idXMgJiYgaW9tbXVfYnVzLT5pb21tdV9vcHMtPmdldF92aW9tbXVfZmxhZ3MpIHsK KysgICAgICAgIHJldHVybiBpb21tdV9idXMtPmlvbW11X29wcy0+Z2V0X3Zpb21tdV9mbGFncyhp b21tdV9idXMtPmlvbW11X29wYXF1ZSk7CisrICAgIH0KKysgICAgcmV0dXJuIDA7CisrfQorKwor IGludCBwY2lfcHJpX3JlcXVlc3RfcGFnZShQQ0lEZXZpY2UgKmRldiwgdWludDMyX3QgcGFzaWQs IGJvb2wgcHJpdl9yZXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZXhlY19yZXEs IGh3YWRkciBhZGRyLCBib29sIGxwaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQx Nl90IHByZ2ksIGJvb2wgaXNfcmVhZCwgYm9vbCBpc193cml0ZSkKK2RpZmYgLS1naXQgYS9pbmNs dWRlL2h3L2NvcmUvaW9tbXUuaCBiL2luY2x1ZGUvaHcvY29yZS9pb21tdS5oCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uZmNiYmNkMTAxNQorLS0tIC9kZXYvbnVsbAor KysrIGIvaW5jbHVkZS9ody9jb3JlL2lvbW11LmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKgorKyAq IEdlbmVyYWwgdklPTU1VIGZsYWdzCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjYgSW50ZWwg Q29ycG9yYXRpb24uCisrICoKKysgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v ci1sYXRlcgorKyAqLworKworKyNpZm5kZWYgSFdfSU9NTVVfSAorKyNkZWZpbmUgSFdfSU9NTVVf SAorKworKyNpbmNsdWRlICJxZW11L2JpdG9wcy5oIgorKworKy8qCisrICogVGhlb3JldGljYWwg dklPTU1VIGZsYWdzLiBPbmx5IGRldGVybWluZWQgYnkgdGhlIHZJT01NVSBkZXZpY2UgcHJvcGVy dGllcyBhbmQKKysgKiBpbmRlcGVuZGVudCBvbiB0aGUgYWN0dWFsIGhvc3QgSU9NTVUgY2FwYWJp bGl0aWVzIHRoZXkgbWF5IGRlcGVuZCBvbi4gRWFjaAorKyAqIGZsYWcgY2FuIGJlIGFuIGV4cGVj dGF0aW9uIG9yIHJlcXVlc3QgdG8gb3RoZXIgc3ViLXN5c3RlbSBvciBqdXN0IGEgcHVyZQorKyAq IHZJT01NVSBjYXBhYmlsaXR5LiB2SU9NTVUgY2FuIGNob29zZSB3aGljaCBmbGFncyB0byBleHBv c2UuCisrICovCisrZW51bSB2aW9tbXVfZmxhZ3MgeworKyAgICAvKiB2SU9NTVUgbmVlZHMgbmVz dGluZyBwYXJlbnQgSFdQVCB0byBjcmVhdGUgbmVzdGVkIEhXUFQgKi8KKysgICAgVklPTU1VX0ZM QUdfV0FOVF9ORVNUSU5HX1BBUkVOVCA9IEJJVF9VTEwoMCksCisrfTsKKysKKysjZW5kaWYgLyog SFdfSU9NTVVfSCAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvcGNpL3BjaS5oIGIvaW5jbHVk ZS9ody9wY2kvcGNpLmgKK2luZGV4IGExOTc3M2QwZjkuLjI5OWU3Zjk0ZGEgMTAwNjQ0CistLS0g YS9pbmNsdWRlL2h3L3BjaS9wY2kuaAorKysrIGIvaW5jbHVkZS9ody9wY2kvcGNpLmgKK0BAIC00 ODEsNiArNDgxLDE4IEBAIHR5cGVkZWYgc3RydWN0IFBDSUlPTU1VT3BzIHsKKyAgICAgICogQGRl dmZuOiBkZXZpY2UgYW5kIGZ1bmN0aW9uIG51bWJlciBvZiB0aGUgUENJIGRldmljZS4KKyAgICAg ICovCisgICAgIHZvaWQgKCp1bnNldF9pb21tdV9kZXZpY2UpKFBDSUJ1cyAqYnVzLCB2b2lkICpv cGFxdWUsIGludCBkZXZmbik7CisrICAgIC8qKgorKyAgICAgKiBAZ2V0X3Zpb21tdV9mbGFnczog Z2V0IHZJT01NVSBmbGFncworKyAgICAgKgorKyAgICAgKiBPcHRpb25hbCBjYWxsYmFjaywgaWYg bm90IGltcGxlbWVudGVkLCB0aGVuIHZJT01NVSBkb2Vzbid0IHN1cHBvcnQKKysgICAgICogZXhw b3NpbmcgZmxhZ3MgdG8gb3RoZXIgc3ViLXN5c3RlbSwgZS5nLiwgVkZJTy4KKysgICAgICoKKysg ICAgICogQG9wYXF1ZTogdGhlIGRhdGEgcGFzc2VkIHRvIHBjaV9zZXR1cF9pb21tdSgpLgorKyAg ICAgKgorKyAgICAgKiBSZXR1cm5zOiBiaXRtYXAgd2l0aCBlYWNoIGJpdCByZXByZXNlbnRpbmcg YSB2SU9NTVUgZmxhZyBkZWZpbmVkIGluCisrICAgICAqIGVudW0gdmlvbW11X2ZsYWdzLgorKyAg ICAgKi8KKysgICAgdWludDY0X3QgKCpnZXRfdmlvbW11X2ZsYWdzKSh2b2lkICpvcGFxdWUpOwor ICAgICAvKioKKyAgICAgICogQGdldF9pb3RsYl9pbmZvOiBnZXQgcHJvcGVydGllcyByZXF1aXJl ZCB0byBpbml0aWFsaXplIGEgZGV2aWNlIElPVExCLgorICAgICAgKgorQEAgLTY2Myw2ICs2NzUs MTYgQEAgYm9vbCBwY2lfZGV2aWNlX3NldF9pb21tdV9kZXZpY2UoUENJRGV2aWNlICpkZXYsIEhv c3RJT01NVURldmljZSAqaGlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF cnJvciAqKmVycnApOworIHZvaWQgcGNpX2RldmljZV91bnNldF9pb21tdV9kZXZpY2UoUENJRGV2 aWNlICpkZXYpOworIAorKy8qKgorKyAqIHBjaV9kZXZpY2VfZ2V0X3Zpb21tdV9mbGFnczogZ2V0 IHZJT01NVSBmbGFncy4KKysgKgorKyAqIFJldHVybnM6IGJpdG1hcCB3aXRoIGVhY2ggYml0IHJl cHJlc2VudGluZyBhIHZJT01NVSBmbGFnIGRlZmluZWQgaW4KKysgKiBlbnVtIHZpb21tdV9mbGFn cy4gT3IgMCBpZiB2SU9NTVUgZG9lc24ndCByZXBvcnQgYW55LgorKyAqCisrICogQGRldjogUENJ IGRldmljZSBwb2ludGVyLgorKyAqLworK3VpbnQ2NF90IHBjaV9kZXZpY2VfZ2V0X3Zpb21tdV9m bGFncyhQQ0lEZXZpY2UgKmRldik7CisrCisgLyoqCisgICogcGNpX2lvbW11X2dldF9pb3RsYl9p bmZvOiBnZXQgcHJvcGVydGllcyByZXF1aXJlZCB0byBpbml0aWFsaXplIGEKKyAgKiBkZXZpY2Ug SU9UTEIuCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LXBjaS1icmlkZ2UtcGNp X2V4cGFuZGVyX2JyaWRnZS1Nb3ZlLVRZUEVfUFhCX1BDSUUucGF0Y2ggYi9rdm0taHctcGNpLWJy aWRnZS1wY2lfZXhwYW5kZXJfYnJpZGdlLU1vdmUtVFlQRV9QWEJfUENJRS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWVkNzM2Ci0tLSAvZGV2L251bGwKKysrIGIv a3ZtLWh3LXBjaS1icmlkZ2UtcGNpX2V4cGFuZGVyX2JyaWRnZS1Nb3ZlLVRZUEVfUFhCX1BDSUUu cGF0Y2gKQEAgLTAsMCArMSw2NCBAQAorRnJvbSAxNjk3NWNlZTk1OWU3ZTEzMGYzY2FhZTJlNDlj ZmFkYmRlZDAyNDU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xv dGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEz OjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDEyLzExMV0gaHcvcGNpLWJyaWRnZS9wY2lf ZXhwYW5kZXJfYnJpZGdlOiBNb3ZlCisgVFlQRV9QWEJfUENJRV9ERVYgdG8gaGVhZGVyCitNSU1F LVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNl IGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JI LUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMTIv MTExXSAyMmJhZWI0Y2ExMDBmZGM0NWJmYzExZTk0N2Q5NWUwNzM3YmExNTJjIChlYXVnZXIxL2Nl bnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93 c2UvUkhFTC03Mzc5NAorCitNb3ZlIHRoZSBUWVBFX1BYQl9QQ0lFX0RFViBkZWZpbml0aW9uIHRv IGhlYWRlciBzbyB0aGF0IGl0IGNhbiBiZQorcmVmZXJlbmNlZCBieSBvdGhlciBjb2RlIGluIHN1 YnNlcXVlbnQgcGF0Y2guCisKK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhh bi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdl ckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlh LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVz dGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8ub3JnPgorU2lnbmVkLW9m Zi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitSZXZpZXdl ZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRlbC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEw NDM0Mi4yNTM5NjUtMTAtc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBl dGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZy b20gY29tbWl0IGQxYzU4NWRiOGJiMGE2NTEwN2YxZTU5MDMxMzNiYzU2YjI5YzQ2ZjIpCitTaWdu ZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody9w Y2ktYnJpZGdlL3BjaV9leHBhbmRlcl9icmlkZ2UuYyB8IDEgLQorIGluY2x1ZGUvaHcvcGNpL3Bj aV9icmlkZ2UuaCAgICAgICAgIHwgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvaHcvcGNpLWJyaWRnZS9wY2lfZXhwYW5k ZXJfYnJpZGdlLmMgYi9ody9wY2ktYnJpZGdlL3BjaV9leHBhbmRlcl9icmlkZ2UuYworaW5kZXgg MWJjY2VkZGJjNC4uYThlYjJkMjQyNiAxMDA2NDQKKy0tLSBhL2h3L3BjaS1icmlkZ2UvcGNpX2V4 cGFuZGVyX2JyaWRnZS5jCisrKysgYi9ody9wY2ktYnJpZGdlL3BjaV9leHBhbmRlcl9icmlkZ2Uu YworQEAgLTQ4LDcgKzQ4LDYgQEAgc3RydWN0IFBYQkJ1cyB7CisgICAgIGNoYXIgYnVzX3BhdGhb OF07CisgfTsKKyAKKy0jZGVmaW5lIFRZUEVfUFhCX1BDSUVfREVWICJweGItcGNpZSIKKyBPQkpF Q1RfREVDTEFSRV9TSU1QTEVfVFlQRShQWEJQQ0lFRGV2LCBQWEJfUENJRV9ERVYpCisgCisgc3Rh dGljIEdMaXN0ICpweGJfZGV2X2xpc3Q7CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9wY2kvcGNp X2JyaWRnZS5oIGIvaW5jbHVkZS9ody9wY2kvcGNpX2JyaWRnZS5oCitpbmRleCBhMDU1ZmQ4ZDMy Li5iNjEzNjBiOTAwIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody9wY2kvcGNpX2JyaWRnZS5oCisr KysgYi9pbmNsdWRlL2h3L3BjaS9wY2lfYnJpZGdlLmgKK0BAIC0xMDYsNiArMTA2LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUFhCUENJRURldiB7CisgCisgI2RlZmluZSBUWVBFX1BYQl9QQ0lFX0JVUyAi cHhiLXBjaWUtYnVzIgorICNkZWZpbmUgVFlQRV9QWEJfQ1hMX0JVUyAicHhiLWN4bC1idXMiCisr I2RlZmluZSBUWVBFX1BYQl9QQ0lFX0RFViAicHhiLXBjaWUiCisgI2RlZmluZSBUWVBFX1BYQl9E RVYgInB4YiIKKyBPQkpFQ1RfREVDTEFSRV9TSU1QTEVfVFlQRShQWEJEZXYsIFBYQl9ERVYpCisg CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LXBjaS1ob3N0LWdwZXgtQWxsb3ct dG8tZ2VuZXJhdGUtcHJlc2VydmUtYm9vdC1jb24ucGF0Y2ggYi9rdm0taHctcGNpLWhvc3QtZ3Bl eC1BbGxvdy10by1nZW5lcmF0ZS1wcmVzZXJ2ZS1ib290LWNvbi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2YwZWYxCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3 LXBjaS1ob3N0LWdwZXgtQWxsb3ctdG8tZ2VuZXJhdGUtcHJlc2VydmUtYm9vdC1jb24ucGF0Y2gK QEAgLTAsMCArMSwxOTMgQEAKK0Zyb20gNjU2MjZiMTYzMDExZDhkYjU1YTk0ZTMxYTM1YWM1Y2Rk YTk1MWUwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAK K1N1YmplY3Q6IFtQQVRDSCAwMzAvMTExXSBody9wY2ktaG9zdC9ncGV4OiBBbGxvdyB0byBnZW5l cmF0ZSBwcmVzZXJ2ZSBib290CisgY29uZmlnIERTTSAjNQorTUlNRS1WZXJzaW9uOiAxLjAKK0Nv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQg U01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAg UkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5 OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4g U2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzMwLzExMV0gYjU5NzY3ODkyMGZj NjYxNjNkNzY5YmI2ODAwNTc2ZmY4ZGE4MjA4MyAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisK K0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKwor QWRkIGEgJ3ByZXNlcnZlX2NvbmZpZycgZmllbGQgaW4gc3RydWN0IEdQRVhDb25maWcgYW5kLCBp ZiBzZXQsIGdlbmVyYXRlCit0aGUgX0RTTSBmdW5jdGlvbiAjNSBmb3IgcHJlc2VydmluZyBQQ0kg Ym9vdCBjb25maWd1cmF0aW9ucy4KKworVGhpcyB3aWxsIGJlIHVzZWQgZm9yIFNNTVV2MyBhY2Nl bD1vbiBzdXBwb3J0IGluIHN1YnNlcXVlbnQgcGF0Y2guIFdoZW4KK1NNTVV2MyBhY2NlbGVyYXRp b24gKGFjY2VsPW9uKSBpcyBlbmFibGVkLCBRRU1VIGV4cG9zZXMgSU9SVCBSZXNlcnZlZAorTWVt b3J5IFJlZ2lvbiAoUk1SKSBub2RlcyB0byBzdXBwb3J0IE1TSSBkb29yYmVsbCB0cmFuc2xhdGlv bnMuIEFzIHBlcgordGhlIEFybSBJT1JUIHNwZWNpZmljYXRpb24sIHVzaW5nIElPUlQgUk1ScyBt YW5kYXRlcyB0aGUgcHJlc2VuY2Ugb2YKK19EU00gZnVuY3Rpb24gIzUgc28gdGhhdCB0aGUgT1Mg cmV0YWlucyB0aGUgZmlybXdhcmUtYXNzaWduZWQgUENJCitjb25maWd1cmF0aW9uLiBIZW5jZSwg dGhpcyBwYXRjaCBhZGRzIGNvbmRpdGlvbmFsIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcKK19EU00g IzUuCisKK0FjY29yZGluZyB0byB0aGUgQUNQSSBTcGVjaWZpY2F0aW9uLCBSZXZpc2lvbiA2LjYs IFNlY3Rpb24gOS4xLjEgLQor4oCcX0RTTSAoRGV2aWNlIFNwZWNpZmljIE1ldGhvZCnigJ0sCisK KyIKK0lmIEZ1bmN0aW9uIEluZGV4IGlzIHplcm8sIHRoZSByZXR1cm4gaXMgYSBidWZmZXIgY29u dGFpbmluZyBvbmUgYml0IGZvcgorZWFjaCBmdW5jdGlvbiBpbmRleCwgc3RhcnRpbmcgd2l0aCB6 ZXJvLiBCaXQgMCBpbmRpY2F0ZXMgd2hldGhlciB0aGVyZQoraXMgc3VwcG9ydCBmb3IgYW55IGZ1 bmN0aW9ucyBvdGhlciB0aGFuIGZ1bmN0aW9uIDAgZm9yIHRoZSBzcGVjaWZpZWQKK1VVSUQgYW5k IFJldmlzaW9uIElELiBJZiBzZXQgdG8gemVybywgbm8gZnVuY3Rpb25zIGFyZSBzdXBwb3J0ZWQg KG90aGVyCit0aGFuIGZ1bmN0aW9uIHplcm8pIGZvciB0aGUgc3BlY2lmaWVkIFVVSUQgYW5kIFJl dmlzaW9uIElELiBJZiBzZXQgdG8KK29uZSwgYXQgbGVhc3Qgb25lIGFkZGl0aW9uYWwgZnVuY3Rp b24gaXMgc3VwcG9ydGVkLiBGb3IgYWxsIG90aGVyIGJpdHMKK2luIHRoZSBidWZmZXIsIGEgYml0 IGlzIHNldCB0byB6ZXJvIHRvIGluZGljYXRlIGlmIHRoYXQgZnVuY3Rpb24gaW5kZXgKK2lzIG5v dCBzdXBwb3J0ZWQgZm9yIHRoZSBzcGVjaWZpYyBVVUlEIGFuZCBSZXZpc2lvbiBJRC4gKEZvciBl eGFtcGxlLAorYml0IDEgc2V0IHRvIDAgaW5kaWNhdGVzIHRoYXQgZnVuY3Rpb24gaW5kZXggMSBp cyBub3Qgc3VwcG9ydGVkIGZvciB0aGUKK3NwZWNpZmljIFVVSUQgYW5kIFJldmlzaW9uIElELikK KyIKKworUGxlYXNlIHJlZmVyIFBDSSBGaXJtd2FyZSBTcGVjaWZpY2F0aW9uLCBSZXZpc2lvbiAz LjMsIFNlY3Rpb24gNC42LjUg4oCUCisiX0RTTSBmb3IgUHJlc2VydmluZyBQQ0kgQm9vdCBDb25m aWd1cmF0aW9ucyIgZm9yIEZ1bmN0aW9uIDUgb2YgX0RTTQorbWV0aG9kLgorCitBbHNvLCB3aGls ZSBhdCBpdCwgbW92ZSB0aGUgYnl0ZV9saXN0IGRlY2xhcmF0aW9uIHRvIHRoZSB0b3Agb2YgdGhl CitmdW5jdGlvbiBmb3IgY2xhcml0eS4KKworQXQgdGhlIG1vbWVudCwgRFNNIGdlbmVyYXRpb24g aXMgbm90IHlldCBlbmFibGVkLgorCitUaGUgcmVzdWx0aW5nIEFNTCB3aGVuIHByZXNlcnZlX2Nv bmZpZz10cnVlIGlzOgorCisgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKQorICAg ICAgICB7CisgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00 ZDdhLTkxMTctZWE0ZDE5YzM0MzRkIikpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQorICAgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQorICAgICAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIxCisgICAgICAgICAg ICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MDUpKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAuLi4KKyAgICAgIH0KKworQ2M6IE1pY2hhZWwgUy4g VHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxzaGFt ZWVyYWxpLmtvbG90aHVtLnRob2RpQGh1YXdlaS5jb20+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVy IEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkg R2FvIDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJp Yy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0 aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4g PG1zdEByZWRoYXQuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIuMjUzOTY1LTIzLXNr b2xvdGh1bXRob0BudmlkaWEuY29tCitbU2hhbWVlcjogUmVtb3ZlZCBwb3NzaWJsZSBkdXBsaWNh dGUgX0RTTSBjcmVhdGlvbnNdCitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxzaGFt ZWVyYWxpLmtvbG90aHVtLnRob2RpQGh1YXdlaS5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdh byA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJv biA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IE1pY2hhZWwgUy4g VHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1 bXRob0BudmlkaWEuY29tPgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5 ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNTlhNWM4MDYyM2Fi YmI3ZjVmNTJmYzIyN2NmZTBjMTQyODU4ODU4YykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIg PGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L3BjaS1ob3N0L2dwZXgtYWNwaS5jICAg IHwgMjkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KKyBpbmNsdWRlL2h3L3BjaS1ob3N0 L2dwZXguaCB8ICAxICsKKyAyIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ody9wY2ktaG9zdC9ncGV4LWFjcGkuYyBiL2h3L3Bj aS1ob3N0L2dwZXgtYWNwaS5jCitpbmRleCA0NTg3YmFlYjc4Li5kOTgyMGY5YjQxIDEwMDY0NAor LS0tIGEvaHcvcGNpLWhvc3QvZ3BleC1hY3BpLmMKKysrKyBiL2h3L3BjaS1ob3N0L2dwZXgtYWNw aS5jCitAQCAtNTEsMTAgKzUxLDExIEBAIHN0YXRpYyB2b2lkIGFjcGlfZHNkdF9hZGRfcGNpX3Jv dXRlX3RhYmxlKEFtbCAqZGV2LCB1aW50MzJfdCBpcnEsCisgICAgIH0KKyB9CisgCistc3RhdGlj IEFtbCAqYnVpbGRfcGNpX2hvc3RfYnJpZGdlX2RzbV9tZXRob2Qodm9pZCkKKytzdGF0aWMgQW1s ICpidWlsZF9wY2lfaG9zdF9icmlkZ2VfZHNtX21ldGhvZChib29sIHByZXNlcnZlX2NvbmZpZykK KyB7CisgICAgIEFtbCAqbWV0aG9kID0gYW1sX21ldGhvZCgiX0RTTSIsIDQsIEFNTF9OT1RTRVJJ QUxJWkVEKTsKKyAgICAgQW1sICpVVUlELCAqaWZjdHgsICppZmN0eDEsICpidWY7CisrICAgIHVp bnQ4X3QgYnl0ZV9saXN0WzFdID0gezB9OworIAorICAgICAvKiBQQ0kgRmlybXdhcmUgU3BlY2lm aWNhdGlvbiAzLjAKKyAgICAgICogNC42LjEuIF9EU00gZm9yIFBDSSBFeHByZXNzIFNsb3QgSW5m b3JtYXRpb24KK0BAIC02NCwxMCArNjUsMjMgQEAgc3RhdGljIEFtbCAqYnVpbGRfcGNpX2hvc3Rf YnJpZGdlX2RzbV9tZXRob2Qodm9pZCkKKyAgICAgVVVJRCA9IGFtbF90b3V1aWQoIkU1QzkzN0Qw LTM1NTMtNEQ3QS05MTE3LUVBNEQxOUMzNDM0RCIpOworICAgICBpZmN0eCA9IGFtbF9pZihhbWxf ZXF1YWwoYW1sX2FyZygwKSwgVVVJRCkpOworICAgICBpZmN0eDEgPSBhbWxfaWYoYW1sX2VxdWFs KGFtbF9hcmcoMiksIGFtbF9pbnQoMCkpKTsKKy0gICAgdWludDhfdCBieXRlX2xpc3RbMV0gPSB7 MH07CisrICAgIGlmIChwcmVzZXJ2ZV9jb25maWcpIHsKKysgICAgICAgIC8qIHN1cHBvcnQgZnVu Y3Rpb25zIG90aGVyIHRoYW4gMCwgc3BlY2lmaWNhbGx5IGZ1bmN0aW9uIDUgKi8KKysgICAgICAg IGJ5dGVfbGlzdFswXSA9IDB4MjE7CisrICAgIH0KKyAgICAgYnVmID0gYW1sX2J1ZmZlcigxLCBi eXRlX2xpc3QpOworICAgICBhbWxfYXBwZW5kKGlmY3R4MSwgYW1sX3JldHVybihidWYpKTsKKyAg ICAgYW1sX2FwcGVuZChpZmN0eCwgaWZjdHgxKTsKKysgICAgaWYgKHByZXNlcnZlX2NvbmZpZykg eworKyAgICAgICAgQW1sICppZmN0eDIgPSBhbWxfaWYoYW1sX2VxdWFsKGFtbF9hcmcoMiksIGFt bF9pbnQoNSkpKTsKKysgICAgICAgIC8qCisrICAgICAgICAgKiAwIC0gVGhlIG9wZXJhdGluZyBz eXN0ZW0gbXVzdCBub3QgaWdub3JlIHRoZSBQQ0kgY29uZmlndXJhdGlvbiB0aGF0CisrICAgICAg ICAgKiAgICAgZmlybXdhcmUgaGFzIGRvbmUgYXQgYm9vdCB0aW1lLgorKyAgICAgICAgICovCisr ICAgICAgICBhbWxfYXBwZW5kKGlmY3R4MiwgYW1sX3JldHVybihhbWxfaW50KDApKSk7CisrICAg ICAgICBhbWxfYXBwZW5kKGlmY3R4LCBpZmN0eDIpOworKyAgICB9CisrCisgICAgIGFtbF9hcHBl bmQobWV0aG9kLCBpZmN0eCk7CisgCisgICAgIGJ5dGVfbGlzdFswXSA9IDA7CitAQCAtNzcsMTIg KzkxLDEzIEBAIHN0YXRpYyBBbWwgKmJ1aWxkX3BjaV9ob3N0X2JyaWRnZV9kc21fbWV0aG9kKHZv aWQpCisgfQorIAorIHN0YXRpYyB2b2lkIGFjcGlfZHNkdF9hZGRfaG9zdF9icmlkZ2VfbWV0aG9k cyhBbWwgKmRldiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBlbmFibGVfbmF0aXZlX3BjaWVfaG90cGx1ZykKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmFibGVfbmF0aXZlX3BjaWVfaG90cGx1 ZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBw cmVzZXJ2ZV9jb25maWcpCisgeworICAgICAvKiBEZWNsYXJlIGFuIF9PU0MgKE9TIENvbnRyb2wg SGFuZG9mZikgbWV0aG9kICovCisgICAgIGFtbF9hcHBlbmQoZGV2LAorICAgICAgICAgICAgICAg IGJ1aWxkX3BjaV9ob3N0X2JyaWRnZV9vc2NfbWV0aG9kKGVuYWJsZV9uYXRpdmVfcGNpZV9ob3Rw bHVnKSk7CistICAgIGFtbF9hcHBlbmQoZGV2LCBidWlsZF9wY2lfaG9zdF9icmlkZ2VfZHNtX21l dGhvZCgpKTsKKysgICAgYW1sX2FwcGVuZChkZXYsIGJ1aWxkX3BjaV9ob3N0X2JyaWRnZV9kc21f bWV0aG9kKHByZXNlcnZlX2NvbmZpZykpOworIH0KKyAKKyB2b2lkIGFjcGlfZHNkdF9hZGRfZ3Bl eChBbWwgKnNjb3BlLCBzdHJ1Y3QgR1BFWENvbmZpZyAqY2ZnKQorQEAgLTE1Miw3ICsxNjcsOCBA QCB2b2lkIGFjcGlfZHNkdF9hZGRfZ3BleChBbWwgKnNjb3BlLCBzdHJ1Y3QgR1BFWENvbmZpZyAq Y2ZnKQorICAgICAgICAgICAgICAgICBidWlsZF9jeGxfb3NjX21ldGhvZChkZXYpOworICAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIC8qIHB4YiBicmlkZ2VzIGRvIG5vdCBo YXZlIEFDUEkgUENJIEhvdC1wbHVnIGVuYWJsZWQgKi8KKy0gICAgICAgICAgICAgICAgYWNwaV9k c2R0X2FkZF9ob3N0X2JyaWRnZV9tZXRob2RzKGRldiwgdHJ1ZSk7CisrICAgICAgICAgICAgICAg IGFjcGlfZHNkdF9hZGRfaG9zdF9icmlkZ2VfbWV0aG9kcyhkZXYsIHRydWUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZmctPnByZXNlcnZlX2Nv bmZpZyk7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgIGFtbF9hcHBlbmQoc2NvcGUs IGRldik7CitAQCAtMjI3LDcgKzI0Myw4IEBAIHZvaWQgYWNwaV9kc2R0X2FkZF9ncGV4KEFtbCAq c2NvcGUsIHN0cnVjdCBHUEVYQ29uZmlnICpjZmcpCisgICAgIH0KKyAgICAgYW1sX2FwcGVuZChk ZXYsIGFtbF9uYW1lX2RlY2woIl9DUlMiLCByYnVmKSk7CisgCistICAgIGFjcGlfZHNkdF9hZGRf aG9zdF9icmlkZ2VfbWV0aG9kcyhkZXYsIGNmZy0+cGNpX25hdGl2ZV9ob3RwbHVnKTsKKysgICAg YWNwaV9kc2R0X2FkZF9ob3N0X2JyaWRnZV9tZXRob2RzKGRldiwgY2ZnLT5wY2lfbmF0aXZlX2hv dHBsdWcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZmctPnByZXNl cnZlX2NvbmZpZyk7CisgCisgICAgIEFtbCAqZGV2X3JlczAgPSBhbWxfZGV2aWNlKCIlcyIsICJS RVMwIik7CisgICAgIGFtbF9hcHBlbmQoZGV2X3JlczAsIGFtbF9uYW1lX2RlY2woIl9ISUQiLCBh bWxfc3RyaW5nKCJQTlAwQzAyIikpKTsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3BjaS1ob3N0 L2dwZXguaCBiL2luY2x1ZGUvaHcvcGNpLWhvc3QvZ3BleC5oCitpbmRleCBmZWFmODI3NDc0Li43 ZWVhMTZlNzI4IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody9wY2ktaG9zdC9ncGV4LmgKKysrKyBi L2luY2x1ZGUvaHcvcGNpLWhvc3QvZ3BleC5oCitAQCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgR1BF WENvbmZpZyB7CisgICAgIGludCAgICAgICAgIGlycTsKKyAgICAgUENJQnVzICAgICAgKmJ1czsK KyAgICAgYm9vbCAgICAgICAgcGNpX25hdGl2ZV9ob3RwbHVnOworKyAgICBib29sICAgICAgICBw cmVzZXJ2ZV9jb25maWc7CisgfTsKKyAKKyB0eXBlZGVmIHN0cnVjdCBHUEVYSXJxIEdQRVhJcnE7 CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3LXBjaS1wY2ktQWRkLW9wdGlvbmFs LXN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UtY2FsbGIucGF0Y2ggYi9rdm0taHctcGNpLXBjaS1BZGQt b3B0aW9uYWwtc3VwcG9ydHNfYWRkcmVzc19zcGFjZS1jYWxsYi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2M1NTIyCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLWh3 LXBjaS1wY2ktQWRkLW9wdGlvbmFsLXN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UtY2FsbGIucGF0Y2gK QEAgLTAsMCArMSwxMjEgQEAKK0Zyb20gMGVlZWNkMmJjNzU0NjhkNmEwNDZhZTYwM2IyMTQwM2Nh ODc5ZTc3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0g PHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorRGF0ZTogVGh1LCAyOSBKYW4gMjAyNiAxMzozMjow NCArMDAwMAorU3ViamVjdDogW1BBVENIIDAxMS8xMTFdIGh3L3BjaS9wY2k6IEFkZCBvcHRpb25h bCBzdXBwb3J0c19hZGRyZXNzX3NwYWNlKCkKKyBjYWxsYmFjaworTUlNRS1WZXJzaW9uOiAxLjAK K0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0 ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2Vk LWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2 aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzExLzExMV0gMjExNDMwMTFj YWI3OTJjYmQzNTNiMTliNWNlYjI1YjAyZjJlYzY4OSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0p CisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQK KworSW50cm9kdWNlIGFuIG9wdGlvbmFsIHN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UoKSBjYWxsYmFj ayBpbiBQQ0lJT01NVU9wcyB0bworYWxsb3cgYSB2SU9NTVUgaW1wbGVtZW50YXRpb24gdG8gcmVq ZWN0IGRldmljZXMgdGhhdCBzaG91bGQgbm90IGJlIGF0dGFjaGVkCit0byBpdC4KKworQ3VycmVu dGx5LCBnZXRfYWRkcmVzc19zcGFjZSgpIGlzIHRoZSBmaXJzdCBhbmQgbWFuZGF0b3J5IGNhbGxi YWNrIGludG8gdGhlCit2SU9NTVUgbGF5ZXIsIHdoaWNoIGFsd2F5cyByZXR1cm5zIGFuIGFkZHJl c3Mgc3BhY2UuIEZvciBjZXJ0YWluIHNldHVwcywgc3VjaAorYXMgaGFyZHdhcmUgYWNjZWxlcmF0 ZWQgdklPTU1VcyAoZS5nLiBBUk0gU01NVXYzIHdpdGggYWNjZWw9b24pLCBhdHRhY2hpbmcKK2Vt dWxhdGVkIGVuZHBvaW50IGRldmljZXMgaXMgdW5kZXNpcmFibGUgYXMgaXQgbWF5IGltcGFjdCB0 aGUgYmVoYXZpb3Igb3IKK3BlcmZvcm1hbmNlIG9mIFZGSU8gcGFzc3Rocm91Z2ggZGV2aWNlcywg Zm9yIGV4YW1wbGUsIGJ5IHRyaWdnZXJpbmcKK3VubmVjZXNzYXJ5IGludmFsaWRhdGlvbnMgb24g dGhlIGhvc3QgSU9NTVUuCisKK1RoZSBuZXcgY2FsbGJhY2sgYWxsb3dzIGEgdklPTU1VIHRvIGNo ZWNrIGFuZCByZWplY3QgdW5zdXBwb3J0ZWQgZGV2aWNlcworZWFybHkgZHVyaW5nIFBDSSBkZXZp Y2UgcmVnaXN0cmF0aW9uLgorCitDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNv bT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdl aS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgor UmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2Vk LWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmlj IEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8 emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVt IDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBZaSBMaXUgPHlpLmwubGl1 QGludGVsLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwMTI2MTA0MzQyLjI1Mzk2NS05LXNrb2xvdGh1 bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlk ZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NGNlOTcyOTBjMTk4 YTM2ZWZjNTk2YWVmYjc4ZjVkM2IwZTg2ZjZjKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8 ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvcGNpL3BjaS5jICAgICAgICAgfCAyMCAr KysrKysrKysrKysrKysrKysrKworIGluY2x1ZGUvaHcvcGNpL3BjaS5oIHwgMTkgKysrKysrKysr KysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvaHcvcGNpL3BjaS5jIGIvaHcvcGNpL3BjaS5jCitpbmRleCAxNWRkMjMyY2Y4Li4xNDFi N2FkMWY4IDEwMDY0NAorLS0tIGEvaHcvcGNpL3BjaS5jCisrKysgYi9ody9wY2kvcGNpLmMKK0BA IC0xMzUsNiArMTM1LDIxIEBAIHN0YXRpYyB2b2lkIHBjaV9zZXRfbWFzdGVyKFBDSURldmljZSAq ZCwgYm9vbCBlbmFibGUpCisgICAgIGQtPmlzX21hc3RlciA9IGVuYWJsZTsgLyogY2FjaGUgdGhl IHN0YXR1cyAqLworIH0KKyAKKytzdGF0aWMgYm9vbAorK3BjaV9kZXZpY2Vfc3VwcG9ydHNfaW9t bXVfYWRkcmVzc19zcGFjZShQQ0lEZXZpY2UgKmRldiwgRXJyb3IgKiplcnJwKQorK3sKKysgICAg UENJQnVzICpidXM7CisrICAgIFBDSUJ1cyAqaW9tbXVfYnVzOworKyAgICBpbnQgZGV2Zm47Cisr CisrICAgIHBjaV9kZXZpY2VfZ2V0X2lvbW11X2J1c19kZXZmbihkZXYsICZpb21tdV9idXMsICZi dXMsICZkZXZmbik7CisrICAgIGlmIChpb21tdV9idXMgJiYgaW9tbXVfYnVzLT5pb21tdV9vcHMt PnN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UpIHsKKysgICAgICAgIHJldHVybiBpb21tdV9idXMtPmlv bW11X29wcy0+c3VwcG9ydHNfYWRkcmVzc19zcGFjZShidXMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpb21tdV9idXMtPmlvbW11X29wYXF1ZSwgZGV2Zm4sIGVycnApOworKyAg ICB9CisrICAgIHJldHVybiB0cnVlOworK30KKysKKyBzdGF0aWMgdm9pZCBwY2lfaW5pdF9idXNf bWFzdGVyKFBDSURldmljZSAqcGNpX2RldikKKyB7CisgICAgIEFkZHJlc3NTcGFjZSAqZG1hX2Fz ID0gcGNpX2RldmljZV9pb21tdV9hZGRyZXNzX3NwYWNlKHBjaV9kZXYpOworQEAgLTE0MTIsNiAr MTQyNywxMSBAQCBzdGF0aWMgUENJRGV2aWNlICpkb19wY2lfcmVnaXN0ZXJfZGV2aWNlKFBDSURl dmljZSAqcGNpX2RldiwKKyAgICAgcGNpX2Rldi0+Y29uZmlnX3dyaXRlID0gY29uZmlnX3dyaXRl OworICAgICBidXMtPmRldmljZXNbZGV2Zm5dID0gcGNpX2RldjsKKyAgICAgcGNpX2Rldi0+dmVy c2lvbl9pZCA9IDI7IC8qIEN1cnJlbnQgcGNpIGRldmljZSB2bXN0YXRlIHZlcnNpb24gKi8KKysg ICAgaWYgKCFwY2lfZGV2aWNlX3N1cHBvcnRzX2lvbW11X2FkZHJlc3Nfc3BhY2UocGNpX2Rldiwg ZXJycCkpIHsKKysgICAgICAgIGRvX3BjaV91bnJlZ2lzdGVyX2RldmljZShwY2lfZGV2KTsKKysg ICAgICAgIGJ1cy0+ZGV2aWNlc1tkZXZmbl0gPSBOVUxMOworKyAgICAgICAgcmV0dXJuIE5VTEw7 CisrICAgIH0KKyAgICAgaWYgKHBoYXNlX2NoZWNrKFBIQVNFX01BQ0hJTkVfUkVBRFkpKSB7Cisg ICAgICAgICBwY2lfaW5pdF9idXNfbWFzdGVyKHBjaV9kZXYpOworICAgICB9CitkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ody9wY2kvcGNpLmggYi9pbmNsdWRlL2h3L3BjaS9wY2kuaAoraW5kZXggYmRl OWRjYThlMi4uYTE5NzczZDBmOSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvcGNpL3BjaS5oCisr KysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaAorQEAgLTQxNyw2ICs0MTcsMjUgQEAgdHlwZWRlZiBz dHJ1Y3QgSU9NTVVQUklOb3RpZmllciB7CisgICogZnJhbWV3b3JrIGZvciBhIHNldCBvZiBkZXZp Y2VzIG9uIGEgUENJIGJ1cy4KKyAgKi8KKyB0eXBlZGVmIHN0cnVjdCBQQ0lJT01NVU9wcyB7Cisr ICAgIC8qKgorKyAgICAgKiBAc3VwcG9ydHNfYWRkcmVzc19zcGFjZTogT3B0aW9uYWwgcHJlLWNo ZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGEgUENJCisrICAgICAqIGRldmljZSBjYW4gYmUgYXNz b2NpYXRlZCB3aXRoIGFuIElPTU1VLiBJZiB0aGlzIGNhbGxiYWNrIHJldHVybnMgdHJ1ZSwKKysg ICAgICogdGhlIElPTU1VIGFjY2VwdHMgdGhlIGRldmljZSBhc3NvY2lhdGlvbiBhbmQgZ2V0X2Fk ZHJlc3Nfc3BhY2UoKSBjYW4gYmUKKysgICAgICogY2FsbGVkIHRvIG9idGFpbiB0aGUgYWRkcmVz c19zcGFjZSB0byBiZSB1c2VkLgorKyAgICAgKgorKyAgICAgKiBAYnVzOiB0aGUgI1BDSUJ1cyBi ZWluZyBhY2Nlc3NlZC4KKysgICAgICoKKysgICAgICogQG9wYXF1ZTogdGhlIGRhdGEgcGFzc2Vk IHRvIHBjaV9zZXR1cF9pb21tdSgpLgorKyAgICAgKgorKyAgICAgKiBAZGV2Zm46IGRldmljZSBh bmQgZnVuY3Rpb24gbnVtYmVyLgorKyAgICAgKgorKyAgICAgKiBAZXJycDogcGFzcyBhbiBFcnJv ciBvdXQgb25seSB3aGVuIHJldHVybiBmYWxzZQorKyAgICAgKgorKyAgICAgKiBSZXR1cm5zOiB0 cnVlIGlmIHRoZSBkZXZpY2UgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBJT01NVSwgZmFsc2UK KysgICAgICogb3RoZXJ3aXNlIHdpdGggZXJycCBzZXQuCisrICAgICAqLworKyAgICBib29sICgq c3VwcG9ydHNfYWRkcmVzc19zcGFjZSkoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50IGRl dmZuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKTsK KyAgICAgLyoqCisgICAgICAqIEBnZXRfYWRkcmVzc19zcGFjZTogZ2V0IHRoZSBhZGRyZXNzIHNw YWNlIGZvciBhIHNldCBvZiBkZXZpY2VzCisgICAgICAqIG9uIGEgUENJIGJ1cy4KKy0tIAorMi41 Mi4wCisKCmRpZmYgLS1naXQgYS9rdm0taHctcGNpLXBjaS1FbmZvcmNlLXBjaV9zZXR1cF9pb21t dV9wZXJfYnVzLWlzLWNhbGxlZC5wYXRjaCBiL2t2bS1ody1wY2ktcGNpLUVuZm9yY2UtcGNpX3Nl dHVwX2lvbW11X3Blcl9idXMtaXMtY2FsbGVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjNjOGFhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctcGNpLXBjaS1F bmZvcmNlLXBjaV9zZXR1cF9pb21tdV9wZXJfYnVzLWlzLWNhbGxlZC5wYXRjaApAQCAtMCwwICsx LDExMyBAQAorRnJvbSBhZDgyOTM5NWZjZmIyNTY3NTk5YWRiNWQ5NDU2OThiM2Y5MWFlMmFiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorRGF0ZTogV2VkLCAzIEp1biAyMDI2IDE0OjQ0OjEzICswMjAwCitTdWJqZWN0OiBb UEFUQ0ggMDc1LzExMV0gaHcvcGNpL3BjaTogRW5mb3JjZSBwY2lfc2V0dXBfaW9tbXVfcGVyX2J1 cygpIGlzCisgY2FsbGVkIG9ubHkgb25jZSBwZXIgYnVzCitNSU1FLVZlcnNpb246IDEuMAorQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBT TU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBS SEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6 IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBT aGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNzUvMTExXSA0ZWExMTExZDdhOGJh ODBjNGMzZjc5M2Q4ZGRlZjhmMjZlYmQ2NDBjIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKwor SklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC0xNDI0NjUKKwor Q3VycmVudGx5IGl0IGlzIHBvc3NpYmxlIHRvIGF0dGFjaCBzZXZlcmFsIGFybS1zbW11djMgZGV2 aWNlcyB0byB0aGUKK3NhbWUgYnVzIGFsdGhvdWdoIGl0IGlzIGEgd3Jvbmcgc2V0dXAuCisKK0No YW5nZSB0aGUgcHJvdG90eXBlIG9mIHBjaV9zZXR1cF9pb21tdV9wZXJfYnVzIHRvIHBhc3MgYW4g ZXJyb3IKK2hhbmRsZS4gVGhpcyBsYXR0ZXIgaXMgc2V0IHdoZW4gaW9tbXVfcGVyX2J1cyBpcyBh bHJlYWR5IHNldCBhbmQKK3VzZWQgYnkgdGhlIHNpbmdsZSBjYWxsZXIgKHNtbXVfYmFzZV9yZWFs aXplKSB0byByZXBvcnQgYSB1c2VmdWwKK2Vycm9yIHRvIHRoZSBlbmQtdXNlci4KKworV2hpbGUg YXQgaXQgZG9jdW1lbnQgcGNpX3NldHVwX2lvbW11X3Blcl9idXMgY2FsbGJhY2sgaW4gdGhlIGhl YWRlci4KKworRml4ZXM6IDY2ZDJmNjY1ZTE2MyAoImh3L2FybS92aXJ0OiBBbGxvdyB1c2VyLWNy ZWF0YWJsZSBTTU1VdjMgZGV2IGluc3RhbnRpYXRpb24iKQorU2lnbmVkLW9mZi1ieTogRXJpYyBB dWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0 aGFuY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1 bXRob0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQG1h aWxvLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYwNjAzMTI0NDE1LjExMjA4MDgtMS1lcmljLmF1Z2Vy QHJlZGhhdC5jb20KK0Fja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29t PgorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3Jn PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMTdiOWYzODk4MmMxMGNiMDY5NmJjZTczZmNl ZGI5MjdhZWU1MmRlMSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11LWNvbW1vbi5jIHwgIDQgKysrLQorIGh3L3BjaS9w Y2kuYyAgICAgICAgIHwgIDkgKysrKysrKy0tCisgaW5jbHVkZS9ody9wY2kvcGNpLmggfCAxNiAr KysrKysrKysrKysrKystCisgMyBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvYXJtL3NtbXUtY29tbW9uLmMgYi9ody9hcm0v c21tdS1jb21tb24uYworaW5kZXggZDcwY2E4MTc3NS4uZDhjMTY3NTJkNSAxMDA2NDQKKy0tLSBh L2h3L2FybS9zbW11LWNvbW1vbi5jCisrKysgYi9ody9hcm0vc21tdS1jb21tb24uYworQEAgLTk4 MSw3ICs5ODEsOSBAQCBzdGF0aWMgdm9pZCBzbW11X2Jhc2VfcmVhbGl6ZShEZXZpY2VTdGF0ZSAq ZGV2LCBFcnJvciAqKmVycnApCisgICAgICAgICB9CisgCisgICAgICAgICBpZiAocy0+c21tdV9w ZXJfYnVzKSB7CistICAgICAgICAgICAgcGNpX3NldHVwX2lvbW11X3Blcl9idXMocGNpX2J1cywg cy0+aW9tbXVfb3BzLCBzKTsKKysgICAgICAgICAgICBpZiAoIXBjaV9zZXR1cF9pb21tdV9wZXJf YnVzKHBjaV9idXMsIHMtPmlvbW11X29wcywgcywgZXJycCkpIHsKKysgICAgICAgICAgICAgICAg cmV0dXJuOworKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg cGNpX3NldHVwX2lvbW11KHBjaV9idXMsIHMtPmlvbW11X29wcywgcyk7CisgICAgICAgICB9Citk aWZmIC0tZ2l0IGEvaHcvcGNpL3BjaS5jIGIvaHcvcGNpL3BjaS5jCitpbmRleCAzNDQ5MTQ0MjRj Li40ZmQ4YWZjZWVkIDEwMDY0NAorLS0tIGEvaHcvcGNpL3BjaS5jCisrKysgYi9ody9wY2kvcGNp LmMKK0BAIC0zMjU1LDExICszMjU1LDE2IEBAIHZvaWQgcGNpX3NldHVwX2lvbW11KFBDSUJ1cyAq YnVzLCBjb25zdCBQQ0lJT01NVU9wcyAqb3BzLCB2b2lkICpvcGFxdWUpCisgICogSU9NTVUgb3Bz IGFyZSByZXR1cm5lZCwgYXZvaWRpbmcgdGhlIHVzZSBvZiB0aGUgcGFyZW504oCZcyBJT01NVSB3 aGVuCisgICogaXQncyBub3QgYXBwcm9wcmlhdGUuCisgICovCistdm9pZCBwY2lfc2V0dXBfaW9t bXVfcGVyX2J1cyhQQ0lCdXMgKmJ1cywgY29uc3QgUENJSU9NTVVPcHMgKm9wcywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKm9wYXF1ZSkKKytib29sIHBjaV9zZXR1cF9pb21t dV9wZXJfYnVzKFBDSUJ1cyAqYnVzLCBjb25zdCBQQ0lJT01NVU9wcyAqb3BzLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3BhcXVlLCBFcnJvciAqKmVycnApCisgeworKyAg ICBpZiAoYnVzLT5pb21tdV9wZXJfYnVzKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJB biBpb21tdSBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIHRoaXMgYnVzIik7CisrICAgICAgICByZXR1 cm4gZmFsc2U7CisrICAgIH0KKyAgICAgcGNpX3NldHVwX2lvbW11KGJ1cywgb3BzLCBvcGFxdWUp OworICAgICBidXMtPmlvbW11X3Blcl9idXMgPSB0cnVlOworKyAgICByZXR1cm4gdHJ1ZTsKKyB9 CisgCisgc3RhdGljIHZvaWQgcGNpX2Rldl9nZXRfdzY0KFBDSUJ1cyAqYiwgUENJRGV2aWNlICpk ZXYsIHZvaWQgKm9wYXF1ZSkKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3BjaS9wY2kuaCBiL2lu Y2x1ZGUvaHcvcGNpL3BjaS5oCitpbmRleCBlNjcyYzkyMzQ4Li5mMWFkMjlmMGRmIDEwMDY0NAor LS0tIGEvaW5jbHVkZS9ody9wY2kvcGNpLmgKKysrKyBiL2luY2x1ZGUvaHcvcGNpL3BjaS5oCitA QCAtODY0LDcgKzg2NCwyMSBAQCBpbnQgcGNpX2lvbW11X3VucmVnaXN0ZXJfaW90bGJfbm90aWZp ZXIoUENJRGV2aWNlICpkZXYsIHVpbnQzMl90IHBhc2lkLAorICAqLworIHZvaWQgcGNpX3NldHVw X2lvbW11KFBDSUJ1cyAqYnVzLCBjb25zdCBQQ0lJT01NVU9wcyAqb3BzLCB2b2lkICpvcGFxdWUp OworIAorLXZvaWQgcGNpX3NldHVwX2lvbW11X3Blcl9idXMoUENJQnVzICpidXMsIGNvbnN0IFBD SUlPTU1VT3BzICpvcHMsIHZvaWQgKm9wYXF1ZSk7CisrLyoqCisrICogcGNpX3NldHVwX2lvbW11 X3Blcl9idXM6IEluaXRpYWxpemUgc3BlY2lmaWMgSU9NTVUgaGFuZGxlcnMgZm9yIGEgUENJQnVz CisrICoKKysgKiBTaW1pbGFyIHRvIHBjaV9zZXR1cF9pb21tdSBidXQgZW5mb3JjZXMgdGhhdCB0 aGUgaW9tbXUgb25seSBwcm90ZWN0cworKyAqIEBidXMgZG93bnN0cmVhbSBlbmQgcG9pbnRzIGFu ZCBubyBvdGhlciBidXMgaGllcmFyY2h5CisrICoKKysgKiBAYnVzOiB0aGUgI1BDSUJ1cyBiZWlu ZyB1cGRhdGVkLgorKyAqIEBvcHM6IHRoZSAjUENJSU9NTVVPcHMKKysgKiBAb3BhcXVlOiBwYXNz ZWQgdG8gY2FsbGJhY2tzIG9mIHRoZSBAb3BzIHN0cnVjdHVyZS4KKysgKiBAZXJycDogZXJyb3Ig aGFuZGxlCisrICoKKysgKiBSZXR1cm5zIGZhbHNlIG9uIGZhaWx1cmUgd2l0aCBAZXJycCBzZXQs IHRydWUgb24gc3VjY2VzcworKyAqLworK2Jvb2wgcGNpX3NldHVwX2lvbW11X3Blcl9idXMoUENJ QnVzICpidXMsIGNvbnN0IFBDSUlPTU1VT3BzICpvcHMsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2b2lkICpvcGFxdWUsIEVycm9yICoqZXJycCk7CisgCisgcGNpYnVzX3QgcGNpX2Jh cl9hZGRyZXNzKFBDSURldmljZSAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJl ZywgdWludDhfdCB0eXBlLCBwY2lidXNfdCBzaXplKTsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0taHctcGNpLXBjaS1JbnRyb2R1Y2UtYS1jYWxsYmFjay10by1yZXRyaWV2ZS10aGUt TVNJLS5wYXRjaCBiL2t2bS1ody1wY2ktcGNpLUludHJvZHVjZS1hLWNhbGxiYWNrLXRvLXJldHJp ZXZlLXRoZS1NU0ktLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAy YjIxZDcKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctcGNpLXBjaS1JbnRyb2R1Y2UtYS1jYWxs YmFjay10by1yZXRyaWV2ZS10aGUtTVNJLS5wYXRjaApAQCAtMCwwICsxLDE4MiBAQAorRnJvbSA0 NDA4YWJjNTUxNGE0M2RlMjQ0OGE3ZTY0OWUyODNkMjQwN2E1MGViIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+ CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0gg MDI0LzExMV0gaHcvcGNpL3BjaTogSW50cm9kdWNlIGEgY2FsbGJhY2sgdG8gcmV0cmlldmUgdGhl IE1TSQorIGRvb3JiZWxsIEdQQSBkaXJlY3RseQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBh bmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lk cmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8 Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzI0LzExMV0gNDhkYjlkZTg0MDgxYWFhYjA3 MTE4ZjNiNGJhMjNjYWE3MzVlNWViZCAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6 IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworRm9yIGNl cnRhaW4gdklPTU1VIGltcGxlbWVudGF0aW9ucywgc3VjaCBhcyBTTU1VdjMgaW4gYWNjZWxlcmF0 ZWQgbW9kZSwKK3RoZSB0cmFuc2xhdGlvbiB0YWJsZXMgYXJlIHByb2dyYW1tZWQgZGlyZWN0bHkg aW50byB0aGUgcGh5c2ljYWwgU01NVXYzCitpbiBhIG5lc3RlZCBjb25maWd1cmF0aW9uLiBXaGls ZSBRRU1VIGtub3dzIHdoZXJlIHRoZSBndWVzdCB0YWJsZXMgbGl2ZSwKK3NhZmVseSB3YWxraW5n IHRoZW0gaW4gc29mdHdhcmUgd291bGQgcmVxdWlyZSB0cmFwcGluZyBhbmQgb3JkZXJpbmcgYWxs CitndWVzdCBpbnZhbGlkYXRpb25zIG9uIGV2ZXJ5IGNvbW1hbmQgcXVldWUuIFdpdGhvdXQgdGhp cywgUUVNVSBjb3VsZCByYWNlCit3aXRoIGd1ZXN0IHVwZGF0ZXMgYW5kIHdhbGsgc3RhbGUgb3Ig ZnJlZWQgcGFnZSB0YWJsZXMuCisKK1RoaXMgY29uc3RyYWludCBpcyBmdW5kYW1lbnRhbCB0byB0 aGUgZGVzaWduIG9mIEhXLWFjY2VsZXJhdGVkIHZTTU1VIHdoZW4KK3VzZWQgd2l0aCBkb3duc3Ry ZWFtIHZmaW8tcGNpIGVuZHBvaW50IGRldmljZXMsIHdoZXJlIFFFTVUgbXVzdCBuZXZlciB3YWxr CitndWVzdCB0cmFuc2xhdGlvbiB0YWJsZXMgYW5kIG11c3QgcmVseSBvbiB0aGUgcGh5c2ljYWwg U01NVSBmb3IKK3RyYW5zbGF0aW9uLiBGdXR1cmUgYWNjZWxlcmF0ZWQgdlNNTVUgZmVhdHVyZXMs IHN1Y2ggYXMgdmlydHVhbCBDTURRLCB3aWxsCithbHNvIHByZXZlbnQgdHJhcHBpbmcgaW52YWxp ZGF0aW9ucywgcmVpbmZvcmNpbmcgdGhpcyByZXN0cmljdGlvbi4KKworRm9yIHZmaW8tcGNpIGVu ZHBvaW50cyBiZWhpbmQgc3VjaCBhIHZTTU1VLCB0aGUgb25seSB0cmFuc2xhdGlvbiBRRU1VCitu ZWVkcyBpcyBmb3IgdGhlIE1TSSBkb29yYmVsbCB1c2VkIHdoZW4gc2V0dGluZyB1cCBLVk0gTVNJ IHJvdXRlIHRhYmxlcy4KK0luc3RlYWQgb2YgYXR0ZW1wdGluZyBhIHNvZnR3YXJlIHdhbGssIGlu dHJvZHVjZSBhbiBvcHRpb25hbCB2SU9NTVUKK2NhbGxiYWNrIHRoYXQgcmV0dXJucyB0aGUgTVNJ IGRvb3JiZWxsIEdQQSBkaXJlY3RseS4KKwora3ZtX2FyY2hfZml4dXBfbXNpX3JvdXRlKCkgdXNl cyB0aGlzIGNhbGxiYWNrIHdoZW4gYXZhaWxhYmxlIGFuZCBpZ25vcmVzCit0aGUgZ3Vlc3QgcHJv dmlkZWQgSU9WQSBpbiB0aGF0IGNhc2UuCisKK0lmIHRoZSB2SU9NTVUgZG9lcyBub3QgaW1wbGVt ZW50IHRoZSBjYWxsYmFjaywgd2UgZmFsbCBiYWNrIHRvIHRoZQorZXhpc3RpbmcgSU9NTVUgYmFz ZWQgYWRkcmVzcyBzcGFjZSB0cmFuc2xhdGlvbiBwYXRoLgorCitUaGlzIGVuc3VyZXMgY29ycmVj dCBNU0kgcm91dGluZyBmb3IgYWNjZWxlcmF0ZWQgU01NVXYzICsgVkZJTyBwYXNzdGhyb3VnaAor d2hpbGUgYXZvaWRpbmcgdW5zYWZlIHNvZnR3YXJlIHdhbGtzIG9mIGd1ZXN0IHRyYW5zbGF0aW9u IHRhYmxlcy4KKworQXMgYSByZWxhdGVkIGNoYW5nZSwgcmVwbGFjZSBSQ1VfUkVBRF9MT0NLX0dV QVJEKCkgd2l0aCBleHBsaWNpdAorcmN1X3JlYWRfbG9jaygpL3JjdV9yZWFkX3VubG9jaygpLiBU aGUgaW50cm9kdWN0aW9uIG9mIGFuIGVhcmx5IGdvdG8KKyhzZXRfZG9vcmJlbGwpIHBhdGggbWVh bnMgdGhlIFJDVSByZWFkIHNpZGUgY3JpdGljYWwgc2VjdGlvbiBjYW4gbm8gbG9uZ2VyCitiZSBz YWZlbHkgc2NvcGVkIHVzaW5nIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKS4KKworQ2M6IE1pY2hhZWwg Uy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogTmljb2xpbiBDaGVuIDxu aWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQu Y29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0 ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitSZXZpZXdlZC1i eTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorU2lnbmVk LW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitNZXNz YWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMTctc2tvbG90aHVtdGhvQG52aWRpYS5jb20K K1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDVjOTIxYjI5Yzk4OThiYzQ0Yjg2Yjg4MTI3Yjll OWJlZjc2ZGMyZWYpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhh dC5jb20+CistLS0KKyBody9wY2kvcGNpLmMgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysr CisgaW5jbHVkZS9ody9wY2kvcGNpLmggfCAxNyArKysrKysrKysrKysrKysrKworIHRhcmdldC9h cm0va3ZtLmMgICAgIHwgMTggKysrKysrKysrKysrKysrKystCisgMyBmaWxlcyBjaGFuZ2VkLCA1 MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ody9wY2kvcGNp LmMgYi9ody9wY2kvcGNpLmMKK2luZGV4IDFmMmQ0ZDc2ZjkuLjM0NDkxNDQyNGMgMTAwNjQ0Cist LS0gYS9ody9wY2kvcGNpLmMKKysrKyBiL2h3L3BjaS9wY2kuYworQEAgLTI5NjUsNiArMjk2NSwy MyBAQCBib29sIHBjaV9kZXZpY2VfZ2V0X2lvbW11X2J1c19kZXZmbihQQ0lEZXZpY2UgKmRldiwg UENJQnVzICoqcGlvbW11X2J1cywKKyAgICAgcmV0dXJuIGFsaWFzZWQ7CisgfQorIAorK2Jvb2wg cGNpX2RldmljZV9pb21tdV9tc2lfZGlyZWN0X2dwYShQQ0lEZXZpY2UgKmRldiwgaHdhZGRyICpv dXRfZG9vcmJlbGwpCisreworKyAgICBQQ0lCdXMgKmJ1czsKKysgICAgUENJQnVzICppb21tdV9i dXM7CisrICAgIGludCBkZXZmbjsKKysKKysgICAgcGNpX2RldmljZV9nZXRfaW9tbXVfYnVzX2Rl dmZuKGRldiwgJmlvbW11X2J1cywgJmJ1cywgJmRldmZuKTsKKysgICAgaWYgKGlvbW11X2J1cykg eworKyAgICAgICAgaWYgKGlvbW11X2J1cy0+aW9tbXVfb3BzLT5nZXRfbXNpX2RpcmVjdF9ncGEp IHsKKysgICAgICAgICAgICAqb3V0X2Rvb3JiZWxsID0gaW9tbXVfYnVzLT5pb21tdV9vcHMtPmdl dF9tc2lfZGlyZWN0X2dwYShidXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp b21tdV9idXMtPmlvbW11X29wYXF1ZSwgZGV2Zm4pOworKyAgICAgICAgICAgIHJldHVybiB0cnVl OworKyAgICAgICAgfQorKyAgICB9CisrICAgIHJldHVybiBmYWxzZTsKKyt9CisrCisgQWRkcmVz c1NwYWNlICpwY2lfZGV2aWNlX2lvbW11X2FkZHJlc3Nfc3BhY2UoUENJRGV2aWNlICpkZXYpCisg eworICAgICBQQ0lCdXMgKmJ1czsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3BjaS9wY2kuaCBi L2luY2x1ZGUvaHcvcGNpL3BjaS5oCitpbmRleCA1MjhmYWFmYWQyLi5lNjcyYzkyMzQ4IDEwMDY0 NAorLS0tIGEvaW5jbHVkZS9ody9wY2kvcGNpLmgKKysrKyBiL2luY2x1ZGUvaHcvcGNpL3BjaS5o CitAQCAtNjgzLDYgKzY4MywyMiBAQCB0eXBlZGVmIHN0cnVjdCBQQ0lJT01NVU9wcyB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBhc2lkLCBib29sIHByaXZfcmVxLCBi b29sIGV4ZWNfcmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2FkZHIgYWRkciwg Ym9vbCBscGlnLCB1aW50MTZfdCBwcmdpLCBib29sIGlzX3JlYWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgaXNfd3JpdGUpOworKyAgICAvKioKKysgICAgICogQGdldF9tc2lf ZGlyZWN0X2dwYTogZ2V0IHRoZSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIG9mIE1TSSBkb29yYmVs bAorKyAgICAgKiBmb3IgdGhlIGRldmljZSBvbiBhIFBDSSBidXMuCisrICAgICAqCisrICAgICAq IE9wdGlvbmFsIGNhbGxiYWNrLiBJZiBpbXBsZW1lbnRlZCwgaXQgbXVzdCByZXR1cm4gYSB2YWxp ZCBndWVzdAorKyAgICAgKiBwaHlzaWNhbCBhZGRyZXNzIGZvciB0aGUgTVNJIGRvb3JiZWxsCisr ICAgICAqCisrICAgICAqIEBidXM6IHRoZSAjUENJQnVzIGJlaW5nIGFjY2Vzc2VkLgorKyAgICAg KgorKyAgICAgKiBAb3BhcXVlOiB0aGUgZGF0YSBwYXNzZWQgdG8gcGNpX3NldHVwX2lvbW11KCku CisrICAgICAqCisrICAgICAqIEBkZXZmbjogZGV2aWNlIGFuZCBmdW5jdGlvbiBudW1iZXIKKysg ICAgICoKKysgICAgICogUmV0dXJuczogdGhlIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhl IE1TSSBkb29yYmVsbC4KKysgICAgICovCisrICAgIHVpbnQ2NF90ICgqZ2V0X21zaV9kaXJlY3Rf Z3BhKShQQ0lCdXMgKmJ1cywgdm9pZCAqb3BhcXVlLCBpbnQgZGV2Zm4pOworIH0gUENJSU9NTVVP cHM7CisgCisgYm9vbCBwY2lfZGV2aWNlX2dldF9pb21tdV9idXNfZGV2Zm4oUENJRGV2aWNlICpk ZXYsIFBDSUJ1cyAqKnBpb21tdV9idXMsCitAQCAtNjkxLDYgKzcwNyw3IEBAIEFkZHJlc3NTcGFj ZSAqcGNpX2RldmljZV9pb21tdV9hZGRyZXNzX3NwYWNlKFBDSURldmljZSAqZGV2KTsKKyBib29s IHBjaV9kZXZpY2Vfc2V0X2lvbW11X2RldmljZShQQ0lEZXZpY2UgKmRldiwgSG9zdElPTU1VRGV2 aWNlICpoaW9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJy cCk7Cisgdm9pZCBwY2lfZGV2aWNlX3Vuc2V0X2lvbW11X2RldmljZShQQ0lEZXZpY2UgKmRldik7 CisrYm9vbCBwY2lfZGV2aWNlX2lvbW11X21zaV9kaXJlY3RfZ3BhKFBDSURldmljZSAqZGV2LCBo d2FkZHIgKm91dF9kb29yYmVsbCk7CisgCisgLyoqCisgICogcGNpX2RldmljZV9nZXRfdmlvbW11 X2ZsYWdzOiBnZXQgdklPTU1VIGZsYWdzLgorZGlmZiAtLWdpdCBhL3RhcmdldC9hcm0va3ZtLmMg Yi90YXJnZXQvYXJtL2t2bS5jCitpbmRleCBjY2YwZmM1MDFhLi5mZTczMWNjNDlmIDEwMDY0NAor LS0tIGEvdGFyZ2V0L2FybS9rdm0uYworKysrIGIvdGFyZ2V0L2FybS9rdm0uYworQEAgLTE2MTQs MjYgKzE2MTQsNDIgQEAgaW50IGt2bV9hcmNoX2ZpeHVwX21zaV9yb3V0ZShzdHJ1Y3Qga3ZtX2ly cV9yb3V0aW5nX2VudHJ5ICpyb3V0ZSwKKyAgICAgICAgIHJldHVybiAwOworICAgICB9CisgCisr ICAgIC8qCisrICAgICAqIFdlIGRvIGhhdmUgYW4gSU9NTVUgYWRkcmVzcyBzcGFjZSwgYnV0IGZv ciBzb21lIHZJT01NVSBpbXBsZW1lbnRhdGlvbnMKKysgICAgICogKGUuZy4gYWNjZWxlcmF0ZWQg U01NVXYzKSB0aGUgdHJhbnNsYXRpb24gdGFibGVzIGFyZSBwcm9ncmFtbWVkIGludG8KKysgICAg ICogdGhlIHBoeXNpY2FsIFNNTVV2MyBpbiB0aGUgaG9zdCAobmVzdGVkIFMxPWd1ZXN0LCBTMj1o b3N0KS4gUUVNVSBjYW5ub3QKKysgICAgICogd2FsayB0aGVzZSB0YWJsZXMgaW4gYSBzYWZlIHdh eSwgc28gaW4gdGhhdCBjYXNlIHdlIG9idGFpbiB0aGUgTVNJCisrICAgICAqIGRvb3JiZWxsIEdQ QSBkaXJlY3RseSBmcm9tIHRoZSB2SU9NTVUgYmFja2VuZCBhbmQgaWdub3JlIHRoZSBnSU9WQQor KyAgICAgKiBAYWRkcmVzcy4KKysgICAgICovCisrICAgIGlmIChwY2lfZGV2aWNlX2lvbW11X21z aV9kaXJlY3RfZ3BhKGRldiwgJmRvb3JiZWxsX2dwYSkpIHsKKysgICAgICAgIGdvdG8gc2V0X2Rv b3JiZWxsOworKyAgICB9CisrCisgICAgIC8qIE1TSSBkb29yYmVsbCBhZGRyZXNzIGlzIHRyYW5z bGF0ZWQgYnkgYW4gSU9NTVUgKi8KKyAKKy0gICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOworKyAg ICByY3VfcmVhZF9sb2NrKCk7CisgCisgICAgIG1yID0gYWRkcmVzc19zcGFjZV90cmFuc2xhdGUo YXMsIGFkZHJlc3MsICZ4bGF0LCAmbGVuLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1FTVRYQVRUUlNfVU5TUEVDSUZJRUQpOworIAorICAgICBpZiAoIW1yKSB7Cisr ICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKKyAgICAgICAgIHJldHVybiAxOworICAgICB9Cisg CisgICAgIG1ycyA9IG1lbW9yeV9yZWdpb25fZmluZChtciwgeGxhdCwgMSk7CisgCisgICAgIGlm ICghbXJzLm1yKSB7CisrICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKKyAgICAgICAgIHJldHVy biAxOworICAgICB9CisgCisgICAgIGRvb3JiZWxsX2dwYSA9IG1ycy5vZmZzZXRfd2l0aGluX2Fk ZHJlc3Nfc3BhY2U7CisgICAgIG1lbW9yeV9yZWdpb25fdW5yZWYobXJzLm1yKTsKKysgICAgcmN1 X3JlYWRfdW5sb2NrKCk7CisgCisrc2V0X2Rvb3JiZWxsOgorICAgICByb3V0ZS0+dS5tc2kuYWRk cmVzc19sbyA9IGRvb3JiZWxsX2dwYTsKKyAgICAgcm91dGUtPnUubXNpLmFkZHJlc3NfaGkgPSBk b29yYmVsbF9ncGEgPj4gMzI7CisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLWh3 LXBjaS1wY2ktTW92ZS1wY2lfaW5pdF9idXNfbWFzdGVyLWFmdGVyLWFkZGluZy1kZXYucGF0Y2gg Yi9rdm0taHctcGNpLXBjaS1Nb3ZlLXBjaV9pbml0X2J1c19tYXN0ZXItYWZ0ZXItYWRkaW5nLWRl di5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjVkZGE5Ci0tLSAv ZGV2L251bGwKKysrIGIva3ZtLWh3LXBjaS1wY2ktTW92ZS1wY2lfaW5pdF9idXNfbWFzdGVyLWFm dGVyLWFkZGluZy1kZXYucGF0Y2gKQEAgLTAsMCArMSw3OCBAQAorRnJvbSAwMjEzMDgzYzFkODQx NDliNTQ0N2Q2MTUzYWEwNjRjZGRhMzk5NTJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUs IDI5IEphbiAyMDI2IDEzOjMyOjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDA5LzExMV0gaHcv cGNpL3BjaTogTW92ZSBwY2lfaW5pdF9idXNfbWFzdGVyKCkgYWZ0ZXIgYWRkaW5nCisgZGV2aWNl IHRvIGJ1cworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6 IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1 OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgt SmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJl ZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JI LUNvbW1pdDogWzkvMTExXSAwYjMyMmU5NDY5ZTFjOWI1MjYwMjg2MzFiYTk3MmNkZWE2YzcxMDI4 IChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNz aWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NAorCitEdXJpbmcgUENJIGhvdHBsdWcsIGluIGRvX3Bj aV9yZWdpc3Rlcl9kZXZpY2UoKSwgcGNpX2luaXRfYnVzX21hc3RlcigpCitpcyBjYWxsZWQgYmVm b3JlIHN0b3JpbmcgdGhlIHBjaV9kZXYgcG9pbnRlciBpbiBidXMtPmRldmljZXNbZGV2Zm5dLgor CitUaGlzIGNhdXNlcyBhIHByb2JsZW0gaWYgcGNpX2luaXRfYnVzX21hc3RlcigpICh2aWEgaXRz CitnZXRfYWRkcmVzc19zcGFjZSgpIGNhbGxiYWNrKSBhdHRlbXB0cyB0byByZXRyaWV2ZSB0aGUg ZGV2aWNlIHVzaW5nCitwY2lfZmluZF9kZXZpY2UoKSwgc2luY2UgdGhlIFBDSSBkZXZpY2UgaXMg bm90IHlldCB2aXNpYmxlIG9uIHRoZSBidXMuCisKK0ZpeCB0aGlzIGJ5IG1vdmluZyB0aGUgcGNp X2luaXRfYnVzX21hc3RlcigpIGNhbGwgdG8gYWZ0ZXIgdGhlIGRldmljZQoraGFzIGJlZW4gYWRk ZWQgdG8gYnVzLT5kZXZpY2VzW2RldmZuXS4KKworVGhpcyBwcmVwYXJlcyBmb3IgYSBzdWJzZXF1 ZW50IHBhdGNoIHdoZXJlIHRoZSBhY2NlbCBTTU1VdjMKK2dldF9hZGRyZXNzX3NwYWNlKCkgY2Fs bGJhY2sgcmV0cmlldmVzIHRoZSBwY2lfZGV2IHRvIGlkZW50aWZ5IHRoZQorYXR0YWNoZWQgZGV2 aWNlIHR5cGUuCisKK05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLgorCitDYzogTWljaGFl bCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1l cm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+CitSZXZpZXdlZC1ieTogRXJpYyBBdWdl ciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmlj b2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEBy ZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2FvQGxpbmFyby5vcmc+CitTaWdu ZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10aG9AbnZpZGlhLmNvbT4KK1Jl dmlld2VkLWJ5OiBZaSBMaXUgPHlpLmwubGl1QGludGVsLmNvbT4KK01lc3NhZ2UtaWQ6IDIwMjYw MTI2MTA0MzQyLjI1Mzk2NS04LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5 OiBQZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCBlNGVhYjdkNGExNDgwMDE2ODc2ZTc0MDgxZmZlZjEwYWI0OTUyMTBiKQor U2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisg aHcvcGNpL3BjaS5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaHcvcGNpL3BjaS5jIGIvaHcvcGNpL3Bj aS5jCitpbmRleCBkMWMyMjk5OWI5Li5hOGVlYWZkM2IyIDEwMDY0NAorLS0tIGEvaHcvcGNpL3Bj aS5jCisrKysgYi9ody9wY2kvcGNpLmMKK0BAIC0xMzY5LDkgKzEzNjksNiBAQCBzdGF0aWMgUENJ RGV2aWNlICpkb19wY2lfcmVnaXN0ZXJfZGV2aWNlKFBDSURldmljZSAqcGNpX2RldiwKKyAgICAg cGNpX2Rldi0+YnVzX21hc3Rlcl9hcy5tYXhfYm91bmNlX2J1ZmZlcl9zaXplID0KKyAgICAgICAg IHBjaV9kZXYtPm1heF9ib3VuY2VfYnVmZmVyX3NpemU7CisgCistICAgIGlmIChwaGFzZV9jaGVj ayhQSEFTRV9NQUNISU5FX1JFQURZKSkgeworLSAgICAgICAgcGNpX2luaXRfYnVzX21hc3Rlcihw Y2lfZGV2KTsKKy0gICAgfQorICAgICBwY2lfZGV2LT5pcnFfc3RhdGUgPSAwOworICAgICBwY2lf Y29uZmlnX2FsbG9jKHBjaV9kZXYpOworIAorQEAgLTE0MTUsNiArMTQxMiw5IEBAIHN0YXRpYyBQ Q0lEZXZpY2UgKmRvX3BjaV9yZWdpc3Rlcl9kZXZpY2UoUENJRGV2aWNlICpwY2lfZGV2LAorICAg ICBwY2lfZGV2LT5jb25maWdfd3JpdGUgPSBjb25maWdfd3JpdGU7CisgICAgIGJ1cy0+ZGV2aWNl c1tkZXZmbl0gPSBwY2lfZGV2OworICAgICBwY2lfZGV2LT52ZXJzaW9uX2lkID0gMjsgLyogQ3Vy cmVudCBwY2kgZGV2aWNlIHZtc3RhdGUgdmVyc2lvbiAqLworKyAgICBpZiAocGhhc2VfY2hlY2so UEhBU0VfTUFDSElORV9SRUFEWSkpIHsKKysgICAgICAgIHBjaV9pbml0X2J1c19tYXN0ZXIocGNp X2Rldik7CisrICAgIH0KKyAgICAgcmV0dXJuIHBjaV9kZXY7CisgfQorIAorLS0gCisyLjUyLjAK KwoKZGlmZiAtLWdpdCBhL2t2bS1ody1zMzkweC1zY2xwLVVzZS1hZGRyZXNzX3NwYWNlX21lbW9y eV9pc19pby1pbi1zY2xwLnBhdGNoIGIva3ZtLWh3LXMzOTB4LXNjbHAtVXNlLWFkZHJlc3Nfc3Bh Y2VfbWVtb3J5X2lzX2lvLWluLXNjbHAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMWE3OTgwYgotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody1zMzkweC1zY2xwLVVz ZS1hZGRyZXNzX3NwYWNlX21lbW9yeV9pc19pby1pbi1zY2xwLnBhdGNoCkBAIC0wLDAgKzEsNjIg QEAKK0Zyb20gYzRmNzljMWI1MWUzOWRmYzA2YzY5NjUwN2VjNmFjODY4NmI0NTRiNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9QaGlsaXBwZT0yME1hdGhpZXUtRGF1 ZD1DMz1BOT89IDxwaGlsbWRAbGluYXJvLm9yZz4KK0RhdGU6IE1vbiwgMjkgU2VwIDIwMjUgMTU6 Mjg6MDYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwNDgvMTExXSBody9zMzkweC9zY2xwOiBVc2Ug YWRkcmVzc19zcGFjZV9tZW1vcnlfaXNfaW8oKSBpbgorIHNjbHBfc2VydmljZV9jYWxsKCkKK01J TUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJh c2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgor UkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0 OC8xMTFdIDUwNDQ0Y2VjY2I3ZGM5ZTY2ZGRkOGMxMDNiZTk5YWRjNmI3YmI0YjIgKGVhdWdlcjEv Y2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jy b3dzZS9SSEVMLTczNzk2CisKK1doZW4gY3B1X2FkZHJlc3Nfc3BhY2VfaW5pdCgpIGlzbid0IGNh bGxlZCBkdXJpbmcgdkNQVSBjcmVhdGlvbiwKK2l0cyBzaW5nbGUgYWRkcmVzcyBzcGFjZSBpcyB0 aGUgZ2xvYmFsICZhZGRyZXNzX3NwYWNlX21lbW9yeS4KKworQXMgczM5MHggYm9hcmRzIGRvbid0 IGNhbGwgY3B1X2FkZHJlc3Nfc3BhY2VfaW5pdCgpLCBjcHUtPmFzCitwb2ludHMgdG8gJmFkZHJl c3Nfc3BhY2VfbWVtb3J5LgorCitXZSBjYW4gdGhlbiByZXBsYWNlIGNwdV9waHlzaWNhbF9tZW1v cnlfaXNfaW8oKSBieSB0aGUgc2VtYW50aWNhbGx5CitlcXVpdmFsZW50IGFkZHJlc3Nfc3BhY2Vf bWVtb3J5X2lzX2lvKCkgY2FsbC4KKworU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1E YXVkw6kgPHBoaWxtZEBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IFRob21hcyBIdXRoIDx0aHV0 aEByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IFJpY2hhcmQgSGVuZGVyc29uIDxyaWNoYXJkLmhl bmRlcnNvbkBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IEVyaWMgRmFybWFuIDxmYXJtYW5AbGlu dXguaWJtLmNvbT4KK01lc3NhZ2UtSWQ6IDwyMDI1MTAwMjA4NDIwMy42Mzg5OS01LXBoaWxtZEBs aW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMWU0NDA5MzdkNjk5NTE0MjA3 OTQ2YzM2YzM1M2E3YTYxNmY4YjgwNSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIGh3L3MzOTB4L3NjbHAuYyB8IDMgKystCisgMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEv aHcvczM5MHgvc2NscC5jIGIvaHcvczM5MHgvc2NscC5jCitpbmRleCA5NzE4NTY0ZmE0Li4xNjA1 NzM1NmIxIDEwMDY0NAorLS0tIGEvaHcvczM5MHgvc2NscC5jCisrKysgYi9ody9zMzkweC9zY2xw LmMKK0BAIC0xNiw2ICsxNiw3IEBACisgI2luY2x1ZGUgInFlbXUvdW5pdHMuaCIKKyAjaW5jbHVk ZSAicWFwaS9lcnJvci5oIgorICNpbmNsdWRlICJody9ib2FyZHMuaCIKKysjaW5jbHVkZSAic3lz dGVtL21lbW9yeS5oIgorICNpbmNsdWRlICJody9zMzkweC9zY2xwLmgiCisgI2luY2x1ZGUgImh3 L3MzOTB4L2V2ZW50LWZhY2lsaXR5LmgiCisgI2luY2x1ZGUgImh3L3MzOTB4L3MzOTAtcGNpLWJ1 cy5oIgorQEAgLTMwOCw3ICszMDksNyBAQCBpbnQgc2NscF9zZXJ2aWNlX2NhbGwoUzM5MENQVSAq Y3B1LCB1aW50NjRfdCBzY2NiLCB1aW50MzJfdCBjb2RlKQorICAgICBpZiAoZW52LT5wc3cubWFz ayAmIFBTV19NQVNLX1BTVEFURSkgeworICAgICAgICAgcmV0dXJuIC1QR01fUFJJVklMRUdFRDsK KyAgICAgfQorLSAgICBpZiAoY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pbyhzY2NiKSkgeworKyAg ICBpZiAoYWRkcmVzc19zcGFjZV9pc19pbyhDUFUoY3B1KS0+YXMsIHNjY2IpKSB7CisgICAgICAg ICByZXR1cm4gLVBHTV9BRERSRVNTSU5HOworICAgICB9CisgICAgIGlmICgoc2NjYiAmIH4weDFm ZmZVTCkgPT0gMCB8fCAoc2NjYiAmIH4weDFmZmZVTCkgPT0gZW52LT5wc2EKKy0tIAorMi41Mi4w CisKCmRpZmYgLS1naXQgYS9rdm0taHctdmZpby1pb21tdWZkLUNvbnRyb2wtZGlydHktdHJhY2tp bmctZm9yLW5lc3RpbmctcC5wYXRjaCBiL2t2bS1ody12ZmlvLWlvbW11ZmQtQ29udHJvbC1kaXJ0 eS10cmFja2luZy1mb3ItbmVzdGluZy1wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmEyNjk0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taHctdmZpby1pb21tdWZk LUNvbnRyb2wtZGlydHktdHJhY2tpbmctZm9yLW5lc3RpbmctcC5wYXRjaApAQCAtMCwwICsxLDE0 MyBAQAorRnJvbSA4YjcxZjk3ZGZkYTRlMGRmMDhiM2E4YjgzNjU3YjdjNmNjZmVhNmUxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhv QG52aWRpYS5jb20+CitEYXRlOiBXZWQsIDEgQXByIDIwMjYgMDk6NDE6MzMgKzAxMDAKK1N1Ympl Y3Q6IFtQQVRDSCAwNzcvMTExXSBody92ZmlvL2lvbW11ZmQ6IENvbnRyb2wgZGlydHkgdHJhY2tp bmcgZm9yIG5lc3RpbmcKKyBwYXJlbnQgSFdQVAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4K K1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBh bmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lk cmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8 Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzc3LzExMV0gNzRiMDgzYjJlMzViNjkwYzMy ZGMwMWVjMzdhYmU3NmYyZjdhNjNjYiAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6 IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgKKworQ29uZmxp Y3RzOiBjb250ZXh0dWFsIGluIGFsbCBjaGFuZ2VkIGZpbGVzLiBJbiBody9pMzg2L2ludGVsX2lv bW11LmMKK3dlIGRvIG5vdCBoYXZlIG5lc3RlZCBpbnRlbCBpb21tdSBkb3duc3RyZWFtLCBzbyBp bXBhY3RlZCBjb2RlIGRvZXMgbm90CitleGlzdC4gSW4gaHcvdmZpby9kZXZpY2UuYyBhbmQgaW5j bHVkZS9ody92ZmlvL3ZmaW8tZGV2aWNlLmggdGhpcyBpcworZHVlIHRvIG91dCBvZiBvcmRlciBk ZTM2ZGExMDZkY2YgIGh3L3ZmaW86IEFkZCBoZWxwZXIgdG8gcmV0cmlldmUgZGV2aWNlIGZlYXR1 cmUKK2JhY2twb3J0CisKK1FFTVUgc21tdXYzIGFjY2VsIGRvZXMgbm90IHN1cHBvcnQgbGl2ZSBt aWdyYXRpb24geWV0LCBzbyBkaXJ0eQordHJhY2tpbmcgZm9yIHRoZSBuZXN0aW5nIHBhcmVudCBI V1BUIGlzIG5vdCB1c2VmdWwuCisKK0Fsc28sIG5lc3RlZCB2SU9NTVUgdXNlIGNhc2VzIGNhbiBi cmVhayBvbiBzb21lIHBsYXRmb3Jtcy4gRm9yCitleGFtcGxlLCBTTU1VdjMgd2l0aCBIVFRVIG1h eSBhZHZlcnRpc2UgZGlydHkgdHJhY2tpbmcgY2FwYWJpbGl0eSwKK2J1dCB0aGUga2VybmVsIHN1 cHBvcnRzIGl0IG9ubHkgZm9yIHN0YWdlLTEuIFJlcXVlc3RpbmcgZGlydHkKK3RyYWNraW5nIGZv ciBhIG5lc3RpbmcgcGFyZW50IEhXUFQgKHN0YWdlLTIpIGNhbiBmYWlsLgorCitBZGQgYSB2SU9N TVUgZmxhZyB0byBleHBsaWNpdGx5IHJlcXVlc3QgZGlydHkgdHJhY2tpbmcgZm9yIHRoZQorbmVz dGluZyBwYXJlbnQgSFdQVC4gRm9yIG5lc3RlZCBjYXNlcywgZGlydHkgdHJhY2tpbmcgaXMgZW5h YmxlZAorb25seSB3aGVuIHJlcXVlc3RlZCBieSB0aGUgdklPTU1VLgorCitOb24tbmVzdGVkIGNh c2VzIGFuZCBJbnRlbCB2SU9NTVUga2VlcCB0aGUgZXhpc3RpbmcgYmVoYXZpb3IuCisKK0ZpeGVz OiBmYzZkYWZiOThjZWMgKCJody9hcm0vc21tdXYzOiBJbXBsZW1lbnQgZ2V0X3Zpb21tdV9jYXAo KSBjYWxsYmFjayIpCitTaWduZWQtb2ZmLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBaaGVuemhvbmcgRHVhbiA8emhlbnpob25nLmR1 YW5AaW50ZWwuY29tPgorTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvcWVtdS1kZXZlbC8y MDI2MDQwMTA4NDEzMy41NjI2Ni0xLXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2Zm LWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA2NTkyNzVmODQ2OTRlN2IwNmQ2N2Q4NzcxMzc5MDVkMzcxYTNmZGU0KQorU2ln bmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcv dmZpby9kZXZpY2UuYyAgICAgICAgICAgICAgfCAxMSArKysrKysrKysrKworIGh3L3ZmaW8vaW9t bXVmZC5jICAgICAgICAgICAgIHwgMTEgKysrKysrKysrLS0KKyBpbmNsdWRlL2h3L2NvcmUvaW9t bXUuaCAgICAgICB8ICAyICsrCisgaW5jbHVkZS9ody92ZmlvL3ZmaW8tZGV2aWNlLmggfCAgMyAr Ky0KKyA0IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9ody92ZmlvL2RldmljZS5jIGIvaHcvdmZpby9kZXZpY2UuYworaW5kZXgg YzAxZWI3MmVlNy4uNGJkMjQ3NjQ2NCAxMDA2NDQKKy0tLSBhL2h3L3ZmaW8vZGV2aWNlLmMKKysr KyBiL2h3L3ZmaW8vZGV2aWNlLmMKK0BAIC01MjYsNiArNTI2LDE3IEBAIGludCB2ZmlvX2Rldmlj ZV9nZXRfZmVhdHVyZShWRklPRGV2aWNlICp2YmFzZWRldiwKKyAgICAgcmV0dXJuIHZiYXNlZGV2 LT5pb19vcHMtPmRldmljZV9mZWF0dXJlKHZiYXNlZGV2LCBmZWF0dXJlKTsKKyB9CisgCisrYm9v bCB2ZmlvX2RldmljZV9nZXRfdmlvbW11X2ZsYWdzX3dhbnRfbmVzdGluZ19kaXJ0eShWRklPRGV2 aWNlICp2YmFzZWRldikKKyt7CisrICAgIFZGSU9QQ0lEZXZpY2UgKnZkZXYgPSB2ZmlvX3BjaV9m cm9tX3ZmaW9fZGV2aWNlKHZiYXNlZGV2KTsKKysKKysgICAgaWYgKHZkZXYpIHsKKysgICAgICAg IHJldHVybiAhIShwY2lfZGV2aWNlX2dldF92aW9tbXVfZmxhZ3MoUENJX0RFVklDRSh2ZGV2KSkg JgorKyAgICAgICAgICAgICAgICAgIFZJT01NVV9GTEFHX1dBTlRfTkVTVElOR19ESVJUWV9UUkFD S0lORyk7CisrICAgIH0KKysgICAgcmV0dXJuIGZhbHNlOworK30KKysKKyBib29sIHZmaW9fZGV2 aWNlX2dldF92aW9tbXVfZmxhZ3Nfd2FudF9uZXN0aW5nKFZGSU9EZXZpY2UgKnZiYXNlZGV2KQor IHsKKyAgICAgVkZJT1BDSURldmljZSAqdmRldiA9IHZmaW9fcGNpX2Zyb21fdmZpb19kZXZpY2Uo dmJhc2VkZXYpOworZGlmZiAtLWdpdCBhL2h3L3ZmaW8vaW9tbXVmZC5jIGIvaHcvdmZpby9pb21t dWZkLmMKK2luZGV4IDU5ZGMxN2IxNjYuLjdlMDI4N2Y4MTQgMTAwNjQ0CistLS0gYS9ody92Zmlv L2lvbW11ZmQuYworKysrIGIvaHcvdmZpby9pb21tdWZkLmMKK0BAIC0zMDYsNiArMzA2LDcgQEAg c3RhdGljIGJvb2wgaW9tbXVmZF9jZGV2X2F1dG9kb21haW5zX2dldChWRklPRGV2aWNlICp2YmFz ZWRldiwKKyAgICAgRVJSUF9HVUFSRCgpOworICAgICBJT01NVUZEQmFja2VuZCAqaW9tbXVmZCA9 IHZiYXNlZGV2LT5pb21tdWZkOworICAgICBWRklPQ29udGFpbmVyICpiY29udGFpbmVyID0gVkZJ T19JT01NVShjb250YWluZXIpOworKyAgICBib29sIHZpb21tdV9uZXN0aW5nLCB2aW9tbXVfbmVz dGluZ19kaXJ0eTsKKyAgICAgdWludDMyX3QgdHlwZSwgZmxhZ3MgPSAwOworICAgICB1aW50NjRf dCBod19jYXBzOworICAgICBWZW5kb3JDYXBzIGNhcHM7CitAQCAtMzU5LDggKzM2MCwxNCBAQCBz dGF0aWMgYm9vbCBpb21tdWZkX2NkZXZfYXV0b2RvbWFpbnNfZ2V0KFZGSU9EZXZpY2UgKnZiYXNl ZGV2LAorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCisrICAgIHZpb21tdV9uZXN0 aW5nID0gdmZpb19kZXZpY2VfZ2V0X3Zpb21tdV9mbGFnc193YW50X25lc3RpbmcodmJhc2VkZXYp OworKyAgICB2aW9tbXVfbmVzdGluZ19kaXJ0eSA9CisrICAgICAgICB2ZmlvX2RldmljZV9nZXRf dmlvbW11X2ZsYWdzX3dhbnRfbmVzdGluZ19kaXJ0eSh2YmFzZWRldik7CisrCisgICAgIGlmICho d19jYXBzICYgSU9NTVVfSFdfQ0FQX0RJUlRZX1RSQUNLSU5HKSB7CistICAgICAgICBmbGFncyA9 IElPTU1VX0hXUFRfQUxMT0NfRElSVFlfVFJBQ0tJTkc7CisrICAgICAgICBpZiAoIXZpb21tdV9u ZXN0aW5nIHx8IHZpb21tdV9uZXN0aW5nX2RpcnR5KSB7CisrICAgICAgICAgICAgZmxhZ3MgfD0g SU9NTVVfSFdQVF9BTExPQ19ESVJUWV9UUkFDS0lORzsKKysgICAgICAgIH0KKyAgICAgfQorIAor ICAgICAvKgorQEAgLTM2OCw3ICszNzUsNyBAQCBzdGF0aWMgYm9vbCBpb21tdWZkX2NkZXZfYXV0 b2RvbWFpbnNfZ2V0KFZGSU9EZXZpY2UgKnZiYXNlZGV2LAorICAgICAgKiBmb3JjZSB0byBjcmVh dGUgaXQgc28gdGhhdCBpdCBjb3VsZCBiZSByZXVzZWQgYnkgdklPTU1VIHRvIGNyZWF0ZQorICAg ICAgKiBuZXN0ZWQgSFdQVC4KKyAgICAgICovCistICAgIGlmICh2ZmlvX2RldmljZV9nZXRfdmlv bW11X2ZsYWdzX3dhbnRfbmVzdGluZyh2YmFzZWRldikpIHsKKysgICAgaWYgKHZpb21tdV9uZXN0 aW5nKSB7CisgICAgICAgICBmbGFncyB8PSBJT01NVV9IV1BUX0FMTE9DX05FU1RfUEFSRU5UOwor ICAgICB9CisgCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9jb3JlL2lvbW11LmggYi9pbmNsdWRl L2h3L2NvcmUvaW9tbXUuaAoraW5kZXggODZhZjMxNWMxNS4uY2Q1OWEzNjdjZSAxMDA2NDQKKy0t LSBhL2luY2x1ZGUvaHcvY29yZS9pb21tdS5oCisrKysgYi9pbmNsdWRlL2h3L2NvcmUvaW9tbXUu aAorQEAgLTIxLDYgKzIxLDggQEAgZW51bSB2aW9tbXVfZmxhZ3MgeworICAgICAvKiB2SU9NTVUg bmVlZHMgbmVzdGluZyBwYXJlbnQgSFdQVCB0byBjcmVhdGUgbmVzdGVkIEhXUFQgKi8KKyAgICAg VklPTU1VX0ZMQUdfV0FOVF9ORVNUSU5HX1BBUkVOVCA9IEJJVF9VTEwoMCksCisgICAgIFZJT01N VV9GTEFHX1BBU0lEX1NVUFBPUlRFRCA9IEJJVF9VTEwoMSksCisrICAgIC8qIHZJT01NVSBuZWVk cyBkaXJ0eSB0cmFja2luZyBvbiB0aGUgbmVzdGluZyBwYXJlbnQgSFdQVCBmb3IgbmVzdGVkIHVz ZSAqLworKyAgICBWSU9NTVVfRkxBR19XQU5UX05FU1RJTkdfRElSVFlfVFJBQ0tJTkcgPSBCSVRf VUxMKDIpLAorIH07CisgCisgLyogSG9zdCBJT01NVSBxdWlya3MuIEV4dHJhY3RlZCBmcm9tIGhv c3QgSU9NTVUgY2FwYWJpbGl0aWVzICovCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody92ZmlvL3Zm aW8tZGV2aWNlLmggYi9pbmNsdWRlL2h3L3ZmaW8vdmZpby1kZXZpY2UuaAoraW5kZXggMjdlMjk3 NjU5My4uODJjOGZjZTBlZiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvdmZpby92ZmlvLWRldmlj ZS5oCisrKysgYi9pbmNsdWRlL2h3L3ZmaW8vdmZpby1kZXZpY2UuaAorQEAgLTI1OCw5ICsyNTgs MTAgQEAgdm9pZCB2ZmlvX2RldmljZV9wcmVwYXJlKFZGSU9EZXZpY2UgKnZiYXNlZGV2LCBWRklP Q29udGFpbmVyICpiY29udGFpbmVyLAorIAorIHZvaWQgdmZpb19kZXZpY2VfdW5wcmVwYXJlKFZG SU9EZXZpY2UgKnZiYXNlZGV2KTsKKyAKKytib29sIHZmaW9fZGV2aWNlX2dldF92aW9tbXVfZmxh Z3Nfd2FudF9uZXN0aW5nKFZGSU9EZXZpY2UgKnZiYXNlZGV2KTsKKytib29sIHZmaW9fZGV2aWNl X2dldF92aW9tbXVfZmxhZ3Nfd2FudF9uZXN0aW5nX2RpcnR5KFZGSU9EZXZpY2UgKnZiYXNlZGV2 KTsKKyBpbnQgdmZpb19kZXZpY2VfZ2V0X2ZlYXR1cmUoVkZJT0RldmljZSAqdmJhc2VkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlICpm ZWF0dXJlKTsKKy1ib29sIHZmaW9fZGV2aWNlX2dldF92aW9tbXVfZmxhZ3Nfd2FudF9uZXN0aW5n KFZGSU9EZXZpY2UgKnZiYXNlZGV2KTsKKyAKKyBpbnQgdmZpb19kZXZpY2VfZ2V0X3JlZ2lvbl9p bmZvKFZGSU9EZXZpY2UgKnZiYXNlZGV2LCBpbnQgaW5kZXgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdmZpb19yZWdpb25faW5mbyAqKmluZm8pOworLS0gCisyLjUy LjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1ody12ZmlvLXBjaS1TeW50aGVzaXplLVBBU0lELWNhcGFi aWxpdHktZm9yLXZmaW8tcGNpLnBhdGNoIGIva3ZtLWh3LXZmaW8tcGNpLVN5bnRoZXNpemUtUEFT SUQtY2FwYWJpbGl0eS1mb3ItdmZpby1wY2kucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMGQ2OTZkNQotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1ody12ZmlvLXBjaS1T eW50aGVzaXplLVBBU0lELWNhcGFiaWxpdHktZm9yLXZmaW8tcGNpLnBhdGNoCkBAIC0wLDAgKzEs MjE0IEBACitGcm9tIGIzYmI3MTE5ZGIyMWJkYzljZDIwMThiOWY5NTE4NDk3YThlOTA3MTUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK0RhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MzI6MDUgKzAwMDAKK1N1 YmplY3Q6IFtQQVRDSCAwNDQvMTExXSBody92ZmlvL3BjaTogU3ludGhlc2l6ZSBQQVNJRCBjYXBh YmlsaXR5IGZvciB2ZmlvLXBjaQorIGRldmljZXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUg YW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8Op ZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4g PGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0NC8xMTFdIGNlMDZkY2Q1NDNmMzg4YTcw MDcxNzg1Y2UzY2FkZDYyMGM5MDBlNWIgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJB OiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk0CisKK0NvbmZs aWN0czogaHcvdmZpby9wY2kuYyBrZWVwIHVzaW5nIGh3L2h3LmggaW5zdGVhZCBvZiBody9jb3Jl L2h3LWVycm9yLmgKK2JlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSAwNDhhMjM4NTFjZDQgKCJpbmNsdWRl OiBtb3ZlIGh3L2h3LmggdG8gaHcvY29yZS8sCityZW5hbWUiKQorCitBZGQgc3VwcG9ydCBmb3Ig c3ludGhlc2l6aW5nIGEgUENJZSBQQVNJRCBleHRlbmRlZCBjYXBhYmlsaXR5IGZvcgordmZpby1w Y2kgZGV2aWNlcyB3aGVuIFBBU0lEIGlzIGVuYWJsZWQgdmlhIGEgdklPTU1VIGFuZCBzdXBwb3J0 ZWQgYnkKK3RoZSBob3N0IElPTU1VIGJhY2tlbmQuCisKK1BBU0lEIGNhcGFiaWxpdHkgcGFyYW1l dGVycyBhcmUgcmV0cmlldmVkIHZpYSBJT01NVUZEIEFQSXMgYW5kIHRoZQorY2FwYWJpbGl0eSBp cyBpbnNlcnRlZCBpbnRvIHRoZSBQQ0llIGV4dGVuZGVkIGNhcGFiaWxpdHkgbGlzdCB1c2luZwor dGhlIGluc2VydGlvbiBoZWxwZXIuIEEgbmV3IHgtdnBhc2lkLWNhcC1vZmZzZXQgcHJvcGVydHkg YWxsb3dzCitleHBsaWNpdCBjb250cm9sIG92ZXIgdGhlIHBsYWNlbWVudDsgYnkgZGVmYXVsdCB0 aGUgY2FwYWJpbGl0eSBpcworcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIFBDSWUgZXh0ZW5kZWQg Y29uZmlndXJhdGlvbiBzcGFjZS4KKworSWYgdGhlIGtlcm5lbCBkb2VzIG5vdCBleHBvc2UgUEFT SUQgaW5mb3JtYXRpb24gb3IgaW5zZXJ0aW9uIGZhaWxzLAordGhlIGRldmljZSBjb250aW51ZXMg d2l0aG91dCBQQVNJRCBzdXBwb3J0LgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8 am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IFpoYW5nZmVpIEdhbyA8emhhbmdmZWkuZ2Fv QGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQu Y29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRp YS5jb20+CitSZXZpZXdlZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRlbC5jb20+CitNZXNzYWdl LWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMzctc2tvbG90aHVtdGhvQG52aWRpYS5jb20KK1Np Z25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDA2YjM4NDczY2RhOGNiZWI1ZjRhYTBjMjQ4MGMzYjhj MDZhOGQ1MDApCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5j b20+CistLS0KKyBody92ZmlvL3BjaS5jICAgICAgICAgICB8IDc1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCisgaHcvdmZpby9wY2kuaCAgICAgICAgICAgfCAgMSAr CisgaHcvdmZpby90cmFjZS1ldmVudHMgICAgfCAgMSArCisgaW5jbHVkZS9ody9jb3JlL2lvbW11 LmggfCAgMSArCisgNCBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9ody92ZmlvL3BjaS5jIGIvaHcvdmZpby9wY2kuYworaW5kZXggMWJhNjY2OTlkYy4uNmUw NzE0YTYzMCAxMDA2NDQKKy0tLSBhL2h3L3ZmaW8vcGNpLmMKKysrKyBiL2h3L3ZmaW8vcGNpLmMK K0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorIAorICNpbmNsdWRl ICJody9ody5oIgorKyNpbmNsdWRlICJody9jb3JlL2lvbW11LmgiCisgI2luY2x1ZGUgImh3L3Bj aS9tc2kuaCIKKyAjaW5jbHVkZSAiaHcvcGNpL21zaXguaCIKKyAjaW5jbHVkZSAiaHcvcGNpL3Bj aV9icmlkZ2UuaCIKK0BAIC0yNTAxLDkgKzI1MDIsNjIgQEAgc3RhdGljIGludCB2ZmlvX3NldHVw X3JlYmFyX2VjYXAoVkZJT1BDSURldmljZSAqdmRldiwgdWludDE2X3QgcG9zKQorICAgICByZXR1 cm4gMDsKKyB9CisgCisrLyoKKysgKiBUcnkgdG8gcmV0cmlldmUgUEFTSUQgY2FwYWJpbGl0eSBp bmZvcm1hdGlvbiB2aWEgSU9NTVVGRCBBUElzIGFuZCwKKysgKiBpZiBzdXBwb3J0ZWQsIHN5bnRo ZXNpemUgYSBQQVNJRCBQQ0llIGV4dGVuZGVkIGNhcGFiaWxpdHkgZm9yIHRoZQorKyAqIFZGSU8g ZGV2aWNlLgorKyAqCisrICogVXNlIHVzZXItc3BlY2lmaWVkIFBBU0lEIGNhcGFiaWxpdHkgb2Zm c2V0IGlmIHByb3ZpZGVkLCBvdGhlcndpc2UKKysgKiBwbGFjZSBpdCBhdCB0aGUgZW5kIG9mIHRo ZSBQQ0llIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24gc3BhY2UuCisrICovCisrc3RhdGljIGJvb2wg dmZpb19wY2lfc3ludGhlc2l6ZV9wYXNpZF9jYXAoVkZJT1BDSURldmljZSAqdmRldiwgRXJyb3Ig KiplcnJwKQorK3sKKysgICAgSG9zdElPTU1VRGV2aWNlICpoaW9kID0gdmRldi0+dmJhc2VkZXYu aGlvZDsKKysgICAgSG9zdElPTU1VRGV2aWNlQ2xhc3MgKmhpb2RjOworKyAgICBQYXNpZEluZm8g cGFzaWRfaW5mbzsKKysgICAgUENJRGV2aWNlICpwZGV2ID0gUENJX0RFVklDRSh2ZGV2KTsKKysg ICAgdWludDE2X3QgcGFzaWRfb2Zmc2V0OworKworKyAgICBpZiAoIWhpb2QpIHsKKysgICAgICAg IHJldHVybiB0cnVlOworKyAgICB9CisrCisrICAgIGhpb2RjID0gSE9TVF9JT01NVV9ERVZJQ0Vf R0VUX0NMQVNTKGhpb2QpOworKyAgICBpZiAoIWhpb2RjIHx8ICFoaW9kYy0+Z2V0X3Bhc2lkX2lu Zm8gfHwKKysgICAgICAgICFoaW9kYy0+Z2V0X3Bhc2lkX2luZm8oaGlvZCwgJnBhc2lkX2luZm8p IHx8CisrICAgICAgICAhKHBjaV9kZXZpY2VfZ2V0X3Zpb21tdV9mbGFncyhwZGV2KSAmIFZJT01N VV9GTEFHX1BBU0lEX1NVUFBPUlRFRCkpIHsKKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICB9 CisrCisrICAgIC8qIFVzZSB1c2VyLXNwZWNpZmllZCBvZmZzZXQgaWYgc2V0LCBvdGhlcndpc2Ug cGxhY2UgUEFTSUQgYXQgdGhlIGVuZC4gKi8KKysgICAgaWYgKHZkZXYtPnZwYXNpZF9jYXBfb2Zm c2V0KSB7CisrICAgICAgICBwYXNpZF9vZmZzZXQgPSB2ZGV2LT52cGFzaWRfY2FwX29mZnNldDsK KysgICAgfSBlbHNlIHsKKysgICAgICAgIHBhc2lkX29mZnNldCA9IFBDSUVfQ09ORklHX1NQQUNF X1NJWkUgLSBQQ0lfRVhUX0NBUF9QQVNJRF9TSVpFT0Y7CisrICAgIH0KKysKKysgICAgaWYgKCFw Y2llX2luc2VydF9jYXBhYmlsaXR5KHBkZXYsIFBDSV9FWFRfQ0FQX0lEX1BBU0lELCBQQ0lfUEFT SURfVkVSLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzaWRfb2Zmc2V0LCBQ Q0lfRVhUX0NBUF9QQVNJRF9TSVpFT0YpKSB7CisrICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJ2 ZmlvOiBQbGFjaW5nIFBBU0lEIGNhcGFiaWxpdHkgYXQgb2Zmc2V0IDB4JXggZmFpbGVkIiwKKysg ICAgICAgICAgICAgICAgICAgcGFzaWRfb2Zmc2V0KTsKKysgICAgICAgIHJldHVybiBmYWxzZTsK KysgICAgfQorKyAgICB0cmFjZV92ZmlvX3BjaV9zeW50aGVzaXplX3Bhc2lkX2NhcCh2ZGV2LT52 YmFzZWRldi5uYW1lLCBwYXNpZF9vZmZzZXQpOworKworKyAgICBwY2llX3Bhc2lkX2NvbW1vbl9p bml0KHBkZXYsIHBhc2lkX29mZnNldCwgcGFzaWRfaW5mby5tYXhfcGFzaWRfbG9nMiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXNpZF9pbmZvLmV4ZWNfcGVybSwgcGFzaWRfaW5mby5w cml2X21vZCk7CisrCisrICAgIC8qIFBBU0lEIGNhcGFiaWxpdHkgaXMgZnVsbHkgZW11bGF0ZWQg YnkgUUVNVSAqLworKyAgICBtZW1zZXQodmRldi0+ZW11bGF0ZWRfY29uZmlnX2JpdHMgKyBwZGV2 LT5leHAucGFzaWRfY2FwLCAweGZmLAorKyAgICAgICAgICAgUENJX0VYVF9DQVBfUEFTSURfU0la RU9GKTsKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworIHN0YXRpYyB2b2lkIHZmaW9fYWRkX2V4 dF9jYXAoVkZJT1BDSURldmljZSAqdmRldikKKyB7CisgICAgIFBDSURldmljZSAqcGRldiA9IFBD SV9ERVZJQ0UodmRldik7CisrICAgIGJvb2wgcGFzaWRfY2FwX2FkZGVkID0gZmFsc2U7CisrICAg IEVycm9yICplcnIgPSBOVUxMOworICAgICB1aW50MzJfdCBoZWFkZXI7CisgICAgIHVpbnQxNl90 IGNhcF9pZCwgbmV4dCwgc2l6ZTsKKyAgICAgdWludDhfdCBjYXBfdmVyOworQEAgLTI1ODEsMTIg KzI2MzUsMjQgQEAgc3RhdGljIHZvaWQgdmZpb19hZGRfZXh0X2NhcChWRklPUENJRGV2aWNlICp2 ZGV2KQorICAgICAgICAgICAgICAgICBwY2llX2FkZF9jYXBhYmlsaXR5KHBkZXYsIGNhcF9pZCwg Y2FwX3ZlciwgbmV4dCwgc2l6ZSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFr OworKyAgICAgICAgLyoKKysgICAgICAgICAqIFZGSU8ga2VybmVsIGRvZXMgbm90IGV4cG9zZSB0 aGUgUEFTSUQgQ0FQIHRvZGF5LiBXZSBtYXkgc3ludGhlc2l6ZQorKyAgICAgICAgICogb25lIGxh dGVyIHRocm91Z2ggSU9NTVVGRCBBUElzLiBJZiBWRklPIGV2ZXIgc3RhcnRzIGV4cG9zaW5nIGl0 LAorKyAgICAgICAgICogcmVjb3JkIGl0cyBwcmVzZW5jZSBoZXJlIHNvIHdlIGRvIG5vdCBjcmVh dGUgYSBkdXBsaWNhdGUgQ0FQLgorKyAgICAgICAgICovCisrICAgICAgICBjYXNlIFBDSV9FWFRf Q0FQX0lEX1BBU0lEOgorKyAgICAgICAgICAgIHBhc2lkX2NhcF9hZGRlZCA9IHRydWU7CisrICAg ICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg ICAgcGNpZV9hZGRfY2FwYWJpbGl0eShwZGV2LCBjYXBfaWQsIGNhcF92ZXIsIG5leHQsIHNpemUp OworICAgICAgICAgfQorIAorICAgICB9CisgCisrICAgIGlmICghcGFzaWRfY2FwX2FkZGVkICYm ICF2ZmlvX3BjaV9zeW50aGVzaXplX3Bhc2lkX2NhcCh2ZGV2LCAmZXJyKSkgeworKyAgICAgICAg ZXJyb3JfcmVwb3J0X2VycihlcnIpOworKyAgICB9CisrCisgICAgIC8qIENsZWFudXAgY2hhaW4g aGVhZCBJRCBpZiBuZWNlc3NhcnkgKi8KKyAgICAgaWYgKHBjaV9nZXRfd29yZChwZGV2LT5jb25m aWcgKyBQQ0lfQ09ORklHX1NQQUNFX1NJWkUpID09IDB4RkZGRikgeworICAgICAgICAgcGNpX3Nl dF93b3JkKHBkZXYtPmNvbmZpZyArIFBDSV9DT05GSUdfU1BBQ0VfU0laRSwgMCk7CitAQCAtMzc3 Nyw2ICszODQzLDggQEAgc3RhdGljIGNvbnN0IFByb3BlcnR5IHZmaW9fcGNpX3Byb3BlcnRpZXNb XSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICBUWVBFX0lPTU1VRkRfQkFDS0VORCwgSU9NTVVG REJhY2tlbmQgKiksCisgI2VuZGlmCisgICAgIERFRklORV9QUk9QX0JPT0woInNraXAtdnNjLWNo ZWNrIiwgVkZJT1BDSURldmljZSwgc2tpcF92c2NfY2hlY2ssIHRydWUpLAorKyAgICBERUZJTkVf UFJPUF9VSU5UMTYoIngtdnBhc2lkLWNhcC1vZmZzZXQiLCBWRklPUENJRGV2aWNlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgdnBhc2lkX2NhcF9vZmZzZXQsIDApLAorIH07CisgCisgI2lmZGVm IENPTkZJR19JT01NVUZECitAQCAtMzkzNCw2ICs0MDAyLDEzIEBAIHN0YXRpYyB2b2lkIHZmaW9f cGNpX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXN0aW5hdGlvbiB3aGVu IGRvaW5nIGxpdmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJtaWdyYXRpb24gb2YgZGV2aWNlIHN0YXRlIHZpYSAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm11bHRpZmQgY2hhbm5lbHMiKTsKKysgICBvYmplY3RfY2xh c3NfcHJvcGVydHlfc2V0X2Rlc2NyaXB0aW9uKGtsYXNzLCAvKiAxMS4wICovCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIngtdnBhc2lkLWNhcC1vZmZzZXQiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQQ0llIGV4dGVuZGVk IGNvbmZpZ3VyYXRpb24gc3BhY2Ugb2Zmc2V0IGF0IHdoaWNoIHRvIHBsYWNlIGEgIgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW50aGV0aWMgUEFTSUQgZXh0 ZW5kZWQgY2FwYWJpbGl0eSB3aGVuIFBBU0lEIGlzIGVuYWJsZWQgdmlhICIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSB2SU9NTVUuIEEgdmFsdWUgb2YgMCAo ZGVmYXVsdCkgcGxhY2VzIHRoZSBjYXBhYmlsaXR5IGF0IHRoZSAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZCBvZiB0aGUgZXh0ZW5kZWQgY29uZmlndXJh dGlvbiBzcGFjZS4gVGhlIG9mZnNldCBtdXN0IGJlICIKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiNC1ieXRlIGFsaWduZWQgYW5kIHdpdGhpbiB0aGUgUENJZSBl eHRlbmRlZCBjb25maWd1cmF0aW9uIHNwYWNlIik7CisgfQorIAorIHN0YXRpYyBjb25zdCBUeXBl SW5mbyB2ZmlvX3BjaV9pbmZvID0geworZGlmZiAtLWdpdCBhL2h3L3ZmaW8vcGNpLmggYi9ody92 ZmlvL3BjaS5oCitpbmRleCA5NzU4MzY5NDVhLi5jMWM1OWU0MDkyIDEwMDY0NAorLS0tIGEvaHcv dmZpby9wY2kuaAorKysrIGIvaHcvdmZpby9wY2kuaAorQEAgLTE4OCw2ICsxODgsNyBAQCBzdHJ1 Y3QgVkZJT1BDSURldmljZSB7CisgICAgIGJvb2wgZGVmZXJfa3ZtX2lycV9yb3V0aW5nOworICAg ICBib29sIGNsZWFyX3BhcmVudF9hdG9taWNzX29uX2V4aXQ7CisgICAgIGJvb2wgc2tpcF92c2Nf Y2hlY2s7CisrICAgIHVpbnQxNl90IHZwYXNpZF9jYXBfb2Zmc2V0OworICAgICBWRklPRGlzcGxh eSAqZHB5OworICAgICBOb3RpZmllciBpcnFjaGlwX2NoYW5nZV9ub3RpZmllcjsKKyAgICAgVkZJ T1BDSUNQUiBjcHI7CitkaWZmIC0tZ2l0IGEvaHcvdmZpby90cmFjZS1ldmVudHMgYi9ody92Zmlv L3RyYWNlLWV2ZW50cworaW5kZXggNTkyYTAzNDlkNC4uODJhYmZjOTlhZSAxMDA2NDQKKy0tLSBh L2h3L3ZmaW8vdHJhY2UtZXZlbnRzCisrKysgYi9ody92ZmlvL3RyYWNlLWV2ZW50cworQEAgLTQw LDYgKzQwLDcgQEAgdmZpb19wY2lfaG90X3Jlc2V0X3Jlc3VsdChjb25zdCBjaGFyICpuYW1lLCBj b25zdCBjaGFyICpyZXN1bHQpICIlcyBob3QgcmVzZXQ6ICUKKyB2ZmlvX3BjaV9wb3B1bGF0ZV9k ZXZpY2VfY29uZmlnKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWdu ZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpICJEZXZpY2UgJyVzJyBjb25maWc6 IHNpemU6IDB4JWx4LCBvZmZzZXQ6IDB4JWx4LCBmbGFnczogMHglbHgiCisgdmZpb19wY2lfcG9w dWxhdGVfZGV2aWNlX2dldF9pcnFfaW5mb19mYWlsdXJlKGNvbnN0IGNoYXIgKmVycnN0cikgIlZG SU9fREVWSUNFX0dFVF9JUlFfSU5GTyBmYWlsdXJlOiAlcyIKKyB2ZmlvX21kZXYoY29uc3QgY2hh ciAqbmFtZSwgYm9vbCBpc19tZGV2KSAiICglcykgaXNfbWRldiAlZCIKKyt2ZmlvX3BjaV9zeW50 aGVzaXplX3Bhc2lkX2NhcChjb25zdCBjaGFyICpuYW1lLCAgdWludDE2X3Qgb2Zmc2V0KSAgIiVz IG9mZnNldDogMHgleCIKKyB2ZmlvX2FkZF9leHRfY2FwX2Ryb3BwZWQoY29uc3QgY2hhciAqbmFt ZSwgdWludDE2X3QgY2FwLCB1aW50MTZfdCBvZmZzZXQpICIlcyAweCV4QDB4JXgiCisgdmZpb19w Y2lfcmVzZXQoY29uc3QgY2hhciAqbmFtZSkgIiAoJXMpIgorIHZmaW9fcGNpX3Jlc2V0X2Zscihj b25zdCBjaGFyICpuYW1lKSAiJXMgRkxSL1ZGSU9fREVWSUNFX1JFU0VUIgorZGlmZiAtLWdpdCBh L2luY2x1ZGUvaHcvY29yZS9pb21tdS5oIGIvaW5jbHVkZS9ody9jb3JlL2lvbW11LmgKK2luZGV4 IGQ1NDAxYTM5N2IuLjg2YWYzMTVjMTUgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L2NvcmUvaW9t bXUuaAorKysrIGIvaW5jbHVkZS9ody9jb3JlL2lvbW11LmgKK0BAIC0yMCw2ICsyMCw3IEBACisg ZW51bSB2aW9tbXVfZmxhZ3MgeworICAgICAvKiB2SU9NTVUgbmVlZHMgbmVzdGluZyBwYXJlbnQg SFdQVCB0byBjcmVhdGUgbmVzdGVkIEhXUFQgKi8KKyAgICAgVklPTU1VX0ZMQUdfV0FOVF9ORVNU SU5HX1BBUkVOVCA9IEJJVF9VTEwoMCksCisrICAgIFZJT01NVV9GTEFHX1BBU0lEX1NVUFBPUlRF RCA9IEJJVF9VTEwoMSksCisgfTsKKyAKKyAvKiBIb3N0IElPTU1VIHF1aXJrcy4gRXh0cmFjdGVk IGZyb20gaG9zdCBJT01NVSBjYXBhYmlsaXRpZXMgKi8KKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0taW9tbXVmZC1SZW5hbWUtYWxsLXRoZS1pZGV2LWFuZC1pZGV2Yy12YXJpYWJsZXMt dG8taC5wYXRjaCBiL2t2bS1pb21tdWZkLVJlbmFtZS1hbGwtdGhlLWlkZXYtYW5kLWlkZXZjLXZh cmlhYmxlcy10by1oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1 OTkxMmQKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0taW9tbXVmZC1SZW5hbWUtYWxsLXRoZS1pZGV2 LWFuZC1pZGV2Yy12YXJpYWJsZXMtdG8taC5wYXRjaApAQCAtMCwwICsxLDU0MSBAQAorRnJvbSBk ZmVlZTBhZDVjOTMyNTk0NWM3MmI4MjE1NWUwY2M4ODNjMTAyODA3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogWmhlbnpob25nIER1YW4gPHpoZW56aG9uZy5kdWFuQGludGVsLmNvbT4K K0RhdGU6IFdlZCwgMSBBcHIgMjAyNiAwNDowMzo1MyAtMDQwMAorU3ViamVjdDogW1BBVENIIDA3 OS8xMTFdIGlvbW11ZmQ6IFJlbmFtZSBhbGwgdGhlIGlkZXYgYW5kIGlkZXZjIHZhcmlhYmxlcyB0 bworIGhpb2QgYW5kIGhpb2RjCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VS ZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBz dXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29h dGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRo YXQuY29tPgorUkgtQ29tbWl0OiBbNzkvMTExXSA3MGZlOTdhNTkxM2IyYWNiMjg4OGQzZTQ1ZWYw NzIyNjcxNmYzN2EzIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9y ZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitDb25mbGljdHM6IGNvbnRl eHR1YWwgY29uZmxpY3QgaW4gaHcvaTM4Ni9pbnRlbF9pb21tdV9hY2NlbC5jIHNpbmNlCit3ZSBk byBub3QgaGF2ZSBhY2NlbCBpbnRlbCBpb21tdS4gSWdub3JlIGNoYW5nZXMgaW4gdGhpcyBmaWxl LgorCitXZSB1c2VkIGlkZXYgYW5kIGlkZXZjIG5hbWluZyBmb3IgSG9zdElPTU1VRGV2aWNlSU9N TVVGRCBhbmQgY29ycmVzcG9uZGluZworY2xhc3MgdmFyaWFibGVzIHdoaWNoIGZvbGxvd2VkIHRo ZSBpb21tdWZkX2RldmljZSBuYW1pbmcgaW4gbGludXgga2VybmVsLgorCitUaGlzIGlzIG1peGVk IHdpdGggdGhlIGhpb2QgbmFtaW5nIGZvciBiYXNlIHR5cGUgSG9zdElPTU1VRGV2aWNlLiBSZW5h bWUKK0hvc3RJT01NVURldmljZUlPTU1VRkQqIHRvIGhpb2RpKiBmb3IgY29uc2lzdGVuY3kgaW4g UUVNVS4KKworTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCisKK1N1Z2dlc3RlZC1ieTog Q8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogWmhlbnpo b25nIER1YW4gPHpoZW56aG9uZy5kdWFuQGludGVsLmNvbT4KK1Jldmlld2VkLWJ5OiBQaGlsaXBw ZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogQ8OpZHJp YyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvcWVtdS1kZXZlbC8yMDI2MDQwMTA4MDM1NC4xMzQ3MjEyLTEtemhlbnpob25nLmR1YW5AaW50 ZWwuY29tCitTaWduZWQtb2ZmLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+ CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlMmI3MzEwMjc2MDg3MzUxZmFkZDZhZmJlOWU1 YTNmZmY5YzI1ZjhkKQorU2lnbmVkLW9mZi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorLS0tCisgYmFja2VuZHMvaW9tbXVmZC5jICAgICAgICAgfCAyNiArKysrKy0tLS0t LQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICAgIHwgOTMgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0KKyBody9hcm0vc21tdXYzLWFjY2VsLmggICAgICB8ICAyICstCisg aHcvdmZpby9jb250YWluZXItbGVnYWN5LmMgfCAxMCArKy0tCisgaHcvdmZpby9pb21tdWZkLmMg ICAgICAgICAgfCAyNCArKysrKy0tLS0tCisgaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oICAgfCAx MiArKy0tLQorIDYgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9iYWNrZW5kcy9pb21tdWZkLmMgYi9iYWNrZW5kcy9pb21tdWZk LmMKK2luZGV4IDQxNmUxOTM3NTEuLmIzMjhmODk2OTkgMTAwNjQ0CistLS0gYS9iYWNrZW5kcy9p b21tdWZkLmMKKysrKyBiL2JhY2tlbmRzL2lvbW11ZmQuYworQEAgLTU0MSwyNCArNTQxLDI0IEBA IGJvb2wgaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3ZldmVudHEoSU9NTVVGREJhY2tlbmQgKmJlLCB1 aW50MzJfdCB2aW9tbXVfaWQsCisgICAgIHJldHVybiB0cnVlOworIH0KKyAKKy1ib29sIGhvc3Rf aW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAq aWRldiwKKytib29sIGhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoSG9zdElP TU1VRGV2aWNlSU9NTVVGRCAqaGlvZGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IGh3cHRfaWQsIEVycm9yICoqZXJycCkKKyB7CistICAgIEhv c3RJT01NVURldmljZUlPTU1VRkRDbGFzcyAqaWRldmMgPQorLSAgICAgICAgSE9TVF9JT01NVV9E RVZJQ0VfSU9NTVVGRF9HRVRfQ0xBU1MoaWRldik7CisrICAgIEhvc3RJT01NVURldmljZUlPTU1V RkRDbGFzcyAqaGlvZGljID0KKysgICAgICAgIEhPU1RfSU9NTVVfREVWSUNFX0lPTU1VRkRfR0VU X0NMQVNTKGhpb2RpKTsKKyAKKy0gICAgZ19hc3NlcnQoaWRldmMtPmF0dGFjaF9od3B0KTsKKy0g ICAgcmV0dXJuIGlkZXZjLT5hdHRhY2hfaHdwdChpZGV2LCBod3B0X2lkLCBlcnJwKTsKKysgICAg Z19hc3NlcnQoaGlvZGljLT5hdHRhY2hfaHdwdCk7CisrICAgIHJldHVybiBoaW9kaWMtPmF0dGFj aF9od3B0KGhpb2RpLCBod3B0X2lkLCBlcnJwKTsKKyB9CisgCistYm9vbCBob3N0X2lvbW11X2Rl dmljZV9pb21tdWZkX2RldGFjaF9od3B0KEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisr Ym9vbCBob3N0X2lvbW11X2RldmljZV9pb21tdWZkX2RldGFjaF9od3B0KEhvc3RJT01NVURldmlj ZUlPTU1VRkQgKmhpb2RpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFcnJvciAqKmVycnApCisgeworLSAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEQ2xhc3Mg KmlkZXZjID0KKy0gICAgICAgIEhPU1RfSU9NTVVfREVWSUNFX0lPTU1VRkRfR0VUX0NMQVNTKGlk ZXYpOworKyAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEQ2xhc3MgKmhpb2RpYyA9CisrICAgICAg ICBIT1NUX0lPTU1VX0RFVklDRV9JT01NVUZEX0dFVF9DTEFTUyhoaW9kaSk7CisgCistICAgIGdf YXNzZXJ0KGlkZXZjLT5kZXRhY2hfaHdwdCk7CistICAgIHJldHVybiBpZGV2Yy0+ZGV0YWNoX2h3 cHQoaWRldiwgZXJycCk7CisrICAgIGdfYXNzZXJ0KGhpb2RpYy0+ZGV0YWNoX2h3cHQpOworKyAg ICByZXR1cm4gaGlvZGljLT5kZXRhY2hfaHdwdChoaW9kaSwgZXJycCk7CisgfQorIAorIHN0YXRp YyBpbnQgaGlvZF9pb21tdWZkX2dldF9jYXAoSG9zdElPTU1VRGV2aWNlICpoaW9kLCBpbnQgY2Fw LCBFcnJvciAqKmVycnApCitAQCAtNTk0LDEwICs1OTQsMTAgQEAgc3RhdGljIGJvb2wgaGlvZF9p b21tdWZkX2dldF9wYXNpZF9pbmZvKEhvc3RJT01NVURldmljZSAqaGlvZCwKKyAKKyBzdGF0aWMg dm9pZCBoaW9kX2lvbW11ZmRfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqb2MsIGNvbnN0IHZvaWQg KmRhdGEpCisgeworLSAgICBIb3N0SU9NTVVEZXZpY2VDbGFzcyAqaGlvYyA9IEhPU1RfSU9NTVVf REVWSUNFX0NMQVNTKG9jKTsKKysgICAgSG9zdElPTU1VRGV2aWNlQ2xhc3MgKmhpb2RjID0gSE9T VF9JT01NVV9ERVZJQ0VfQ0xBU1Mob2MpOworIAorLSAgICBoaW9jLT5nZXRfY2FwID0gaGlvZF9p b21tdWZkX2dldF9jYXA7CistICAgIGhpb2MtPmdldF9wYXNpZF9pbmZvID0gaGlvZF9pb21tdWZk X2dldF9wYXNpZF9pbmZvOworKyAgICBoaW9kYy0+Z2V0X2NhcCA9IGhpb2RfaW9tbXVmZF9nZXRf Y2FwOworKyAgICBoaW9kYy0+Z2V0X3Bhc2lkX2luZm8gPSBoaW9kX2lvbW11ZmRfZ2V0X3Bhc2lk X2luZm87CisgfTsKKyAKKyBzdGF0aWMgY29uc3QgVHlwZUluZm8gdHlwZXNbXSA9IHsKK2RpZmYg LS1naXQgYS9ody9hcm0vc21tdXYzLWFjY2VsLmMgYi9ody9hcm0vc21tdXYzLWFjY2VsLmMKK2lu ZGV4IGY5NzEyOTM4OGYuLjE2M2QzZTcyNzkgMTAwNjQ0CistLS0gYS9ody9hcm0vc21tdXYzLWFj Y2VsLmMKKysrKyBiL2h3L2FybS9zbW11djMtYWNjZWwuYworQEAgLTE3MiwxNiArMTcyLDE2IEBA IHNtbXV2M19hY2NlbF9jaGVja19od19jb21wYXRpYmxlKFNNTVV2M1N0YXRlICpzLAorIH0KKyAK KyBzdGF0aWMgYm9vbAorLXNtbXV2M19hY2NlbF9od19jb21wYXRpYmxlKFNNTVV2M1N0YXRlICpz LCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2LAorK3NtbXV2M19hY2NlbF9od19jb21wYXRp YmxlKFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpoaW9kaSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVycnApCisgeworICAgICBzdHJ1Y3QgaW9t bXVfaHdfaW5mb19hcm1fc21tdXYzIGluZm87CisgICAgIHVpbnQzMl90IGRhdGFfdHlwZSA9IElP TU1VX0hXX0lORk9fVFlQRV9ERUZBVUxUOworICAgICB1aW50NjRfdCBjYXBzOworIAorLSAgICBp ZiAoIWlvbW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2luZm8oaWRldi0+aW9tbXVmZCwgaWRldi0+ ZGV2aWQsICZkYXRhX3R5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaW5mbywgc2l6ZW9mKGluZm8pLCAmY2FwcywgTlVMTCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVycnApKSB7CisrICAgIGlmICghaW9tbXVmZF9iYWNr ZW5kX2dldF9kZXZpY2VfaW5mbyhoaW9kaS0+aW9tbXVmZCwgaGlvZGktPmRldmlkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGFfdHlwZSwgJmluZm8sIHNp emVvZihpbmZvKSwgJmNhcHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLCBlcnJwKSkgeworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCitA QCAtMjI1LDE1ICsyMjUsMTUgQEAgc3RhdGljIGJvb2wKKyBzbW11djNfYWNjZWxfYWxsb2NfdmRl dihTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2LCBpbnQgc2lkLCBFcnJvciAqKmVycnApCisg eworICAgICBTTU1VdjNBY2NlbFN0YXRlICphY2NlbCA9IGFjY2VsX2Rldi0+c19hY2NlbDsKKy0g ICAgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiA9IGFjY2VsX2Rldi0+aWRldjsKKysgICAg SG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaGlvZGkgPSBhY2NlbF9kZXYtPmhpb2RpOworICAgICBJ T01NVUZEVmRldiAqdmRldiA9IGFjY2VsX2Rldi0+dmRldjsKKyAgICAgdWludDMyX3QgdmRldmlj ZV9pZDsKKyAKKy0gICAgaWYgKCFpZGV2IHx8IHZkZXYpIHsKKysgICAgaWYgKCFoaW9kaSB8fCB2 ZGV2KSB7CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQorIAorLSAgICBpZiAoIWlvbW11 ZmRfYmFja2VuZF9hbGxvY192ZGV2KGlkZXYtPmlvbW11ZmQsIGlkZXYtPmRldmlkLAorKyAgICBp ZiAoIWlvbW11ZmRfYmFja2VuZF9hbGxvY192ZGV2KGhpb2RpLT5pb21tdWZkLCBoaW9kaS0+ZGV2 aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZWwtPnZpb21tdS0+ dmlvbW11X2lkLCBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZk ZXZpY2VfaWQsIGVycnApKSB7CisgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTI1Miw3 ICsyNTIsNyBAQCBzbW11djNfYWNjZWxfZGV2X2FsbG9jX3RyYW5zbGF0ZShTTU1VdjNBY2NlbERl dmljZSAqYWNjZWxfZGV2LCBTVEUgKnN0ZSwKKyB7CisgICAgIHVpbnQ2NF90IHN0ZV8wID0gKHVp bnQ2NF90KXN0ZS0+d29yZFswXSB8ICh1aW50NjRfdClzdGUtPndvcmRbMV0gPDwgMzI7CisgICAg IHVpbnQ2NF90IHN0ZV8xID0gKHVpbnQ2NF90KXN0ZS0+d29yZFsyXSB8ICh1aW50NjRfdClzdGUt PndvcmRbM10gPDwgMzI7CistICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYgPSBhY2Nl bF9kZXYtPmlkZXY7CisrICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmhpb2RpID0gYWNjZWxf ZGV2LT5oaW9kaTsKKyAgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBhY2NlbF9kZXYtPnNf YWNjZWw7CisgICAgIHN0cnVjdCBpb21tdV9od3B0X2FybV9zbW11djMgbmVzdGVkX2RhdGEgPSB7 CisgICAgICAgICAuc3RlID0geworQEAgLTI2Myw3ICsyNjMsNyBAQCBzbW11djNfYWNjZWxfZGV2 X2FsbG9jX3RyYW5zbGF0ZShTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2LCBTVEUgKnN0ZSwK KyAgICAgdWludDMyX3QgaHdwdF9pZCA9IDAsIGZsYWdzID0gMDsKKyAgICAgU01NVVMxSHdwdCAq czFfaHdwdDsKKyAKKy0gICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdwdChpZGV2LT5p b21tdWZkLCBpZGV2LT5kZXZpZCwKKysgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdw dChoaW9kaS0+aW9tbXVmZCwgaGlvZGktPmRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFjY2VsLT52aW9tbXUtPnZpb21tdV9pZCwgZmxhZ3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfSFdQVF9EQVRBX0FSTV9TTU1VVjMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG5lc3RlZF9kYXRhKSwg Jm5lc3RlZF9kYXRhLAorQEAgLTI4NSw3ICsyODUsNyBAQCBib29sIHNtbXV2M19hY2NlbF9pbnN0 YWxsX3N0ZShTTU1VdjNTdGF0ZSAqcywgU01NVURldmljZSAqc2RldiwgaW50IHNpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuaW52YWxfc3RlX2FsbG93ZWQgPSB0cnVlfTsKKyAgICAg U01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworICAgICBTTU1VdjNBY2NlbERl dmljZSAqYWNjZWxfZGV2OworLSAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2OworKyAg ICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpoaW9kaTsKKyAgICAgdWludDMyX3QgY29uZmlnLCBo d3B0X2lkID0gMDsKKyAgICAgU01NVVMxSHdwdCAqczFfaHdwdCA9IE5VTEw7CisgICAgIGNvbnN0 IGNoYXIgKnR5cGU7CitAQCAtMzAwLDcgKzMwMCw3IEBAIGJvb2wgc21tdXYzX2FjY2VsX2luc3Rh bGxfc3RlKFNNTVV2M1N0YXRlICpzLCBTTU1VRGV2aWNlICpzZGV2LCBpbnQgc2lkLAorICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAKKy0gICAgaWRldiA9IGFjY2VsX2Rldi0+aWRldjsK KysgICAgaGlvZGkgPSBhY2NlbF9kZXYtPmhpb2RpOworICAgICBpZiAoIXNtbXV2M19hY2NlbF9h bGxvY192ZGV2KGFjY2VsX2Rldiwgc2lkLCBlcnJwKSkgeworICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICB9CitAQCAtMzQzLDkgKzM0Myw5IEBAIGJvb2wgc21tdXYzX2FjY2VsX2luc3RhbGxf c3RlKFNNTVV2M1N0YXRlICpzLCBTTU1VRGV2aWNlICpzZGV2LCBpbnQgc2lkLAorICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICB9CisgCistICAgIGlmICghaG9zdF9pb21tdV9kZXZpY2VfaW9t bXVmZF9hdHRhY2hfaHdwdChpZGV2LCBod3B0X2lkLCBlcnJwKSkgeworKyAgICBpZiAoIWhvc3Rf aW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoaGlvZGksIGh3cHRfaWQsIGVycnApKSB7 CisgICAgICAgICBpZiAoczFfaHdwdCkgeworLSAgICAgICAgICAgIGlvbW11ZmRfYmFja2VuZF9m cmVlX2lkKGlkZXYtPmlvbW11ZmQsIHMxX2h3cHQtPmh3cHRfaWQpOworKyAgICAgICAgICAgIGlv bW11ZmRfYmFja2VuZF9mcmVlX2lkKGhpb2RpLT5pb21tdWZkLCBzMV9od3B0LT5od3B0X2lkKTsK KyAgICAgICAgICAgICBnX2ZyZWUoczFfaHdwdCk7CisgICAgICAgICB9CisgICAgICAgICByZXR1 cm4gZmFsc2U7CitAQCAtMzUzLDcgKzM1Myw3IEBAIGJvb2wgc21tdXYzX2FjY2VsX2luc3RhbGxf c3RlKFNNTVV2M1N0YXRlICpzLCBTTU1VRGV2aWNlICpzZGV2LCBpbnQgc2lkLAorIAorICAgICAv KiBGcmVlIHRoZSBwcmV2aW91cyBzMV9od3B0ICovCisgICAgIGlmIChhY2NlbF9kZXYtPnMxX2h3 cHQpIHsKKy0gICAgICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGlkZXYtPmlvbW11ZmQsIGFj Y2VsX2Rldi0+czFfaHdwdC0+aHdwdF9pZCk7CisrICAgICAgICBpb21tdWZkX2JhY2tlbmRfZnJl ZV9pZChoaW9kaS0+aW9tbXVmZCwgYWNjZWxfZGV2LT5zMV9od3B0LT5od3B0X2lkKTsKKyAgICAg ICAgIGdfZnJlZShhY2NlbF9kZXYtPnMxX2h3cHQpOworICAgICB9CisgCitAQCAtNTY3LDcgKzU2 Nyw3IEBAIGZyZWVfdmV2ZW50cToKKyB9CisgCisgc3RhdGljIGJvb2wKKy1zbW11djNfYWNjZWxf YWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2 LAorK3NtbXV2M19hY2NlbF9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUgKnMsIEhvc3RJT01NVURl dmljZUlPTU1VRkQgKmhpb2RpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKipl cnJwKQorIHsKKyAgICAgU01NVXYzQWNjZWxTdGF0ZSAqYWNjZWwgPSBzLT5zX2FjY2VsOworQEAg LTU3NywxMSArNTc3LDExIEBAIHNtbXV2M19hY2NlbF9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUg KnMsIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisgICAgIHN0cnVjdCBpb21tdV9od3B0 X2FybV9zbW11djMgYWJvcnRfZGF0YSA9IHsKKyAgICAgICAgIC5zdGUgPSB7IFNNTVVfU1RFX1ZB TElELCAweDBVTEwgfSwKKyAgICAgfTsKKy0gICAgdWludDMyX3QgczJfaHdwdF9pZCA9IGlkZXYt Pmh3cHRfaWQ7CisrICAgIHVpbnQzMl90IHMyX2h3cHRfaWQgPSBoaW9kaS0+aHdwdF9pZDsKKyAg ICAgdWludDMyX3QgdmlvbW11X2lkLCBod3B0X2lkOworICAgICBJT01NVUZEVmlvbW11ICp2aW9t bXU7CisgCistICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX3Zpb21tdShpZGV2LT5pb21t dWZkLCBpZGV2LT5kZXZpZCwKKysgICAgaWYgKCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfdmlvbW11 KGhpb2RpLT5pb21tdWZkLCBoaW9kaS0+ZGV2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVV9WSU9NTVVfVFlQRV9BUk1fU01NVVYzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgczJfaHdwdF9pZCwgJnZpb21tdV9pZCwgZXJycCkp IHsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKK0BAIC01OTAsMjEgKzU5MCwyMSBAQCBzbW11djNf YWNjZWxfYWxsb2NfdmlvbW11KFNNTVV2M1N0YXRlICpzLCBIb3N0SU9NTVVEZXZpY2VJT01NVUZE ICppZGV2LAorICAgICB2aW9tbXUgPSBnX25ldzAoSU9NTVVGRFZpb21tdSwgMSk7CisgICAgIHZp b21tdS0+dmlvbW11X2lkID0gdmlvbW11X2lkOworICAgICB2aW9tbXUtPnMyX2h3cHRfaWQgPSBz Ml9od3B0X2lkOworLSAgICB2aW9tbXUtPmlvbW11ZmQgPSBpZGV2LT5pb21tdWZkOworKyAgICB2 aW9tbXUtPmlvbW11ZmQgPSBoaW9kaS0+aW9tbXVmZDsKKyAgICAgYWNjZWwtPnZpb21tdSA9IHZp b21tdTsKKyAKKyAgICAgLyoKKyAgICAgICogUHJlLWFsbG9jYXRlIEhXUFRzIGZvciBTMSBieXBh c3MgYW5kIGFib3J0IGNhc2VzLiBUaGVzZSB3aWxsIGJlIGF0dGFjaGVkCisgICAgICAqIGxhdGVy IGZvciBndWVzdCBTVEVzIG9yIEdCUEFzIHRoYXQgcmVxdWlyZSBieXBhc3Mgb3IgYWJvcnQgY29u ZmlndXJhdGlvbi4KKyAgICAgICovCistICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3 cHQoaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQsIHZpb21tdV9pZCwKKysgICAgaWYgKCFpb21t dWZkX2JhY2tlbmRfYWxsb2NfaHdwdChoaW9kaS0+aW9tbXVmZCwgaGlvZGktPmRldmlkLCB2aW9t bXVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgSU9NTVVfSFdQ VF9EQVRBX0FSTV9TTU1VVjMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKGFib3J0X2RhdGEpLCAmYWJvcnRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmYWNjZWwtPmFib3J0X2h3cHRfaWQsIGVycnApKSB7CisgICAgICAgICBn b3RvIGZyZWVfdmlvbW11OworICAgICB9CisgCistICAgIGlmICghaW9tbXVmZF9iYWNrZW5kX2Fs bG9jX2h3cHQoaWRldi0+aW9tbXVmZCwgaWRldi0+ZGV2aWQsIHZpb21tdV9pZCwKKysgICAgaWYg KCFpb21tdWZkX2JhY2tlbmRfYWxsb2NfaHdwdChoaW9kaS0+aW9tbXVmZCwgaGlvZGktPmRldmlk LCB2aW9tbXVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgSU9N TVVfSFdQVF9EQVRBX0FSTV9TTU1VVjMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKGJ5cGFzc19kYXRhKSwgJmJ5cGFzc19kYXRhLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZhY2NlbC0+YnlwYXNzX2h3cHRfaWQsIGVycnApKSB7CitA QCAtNjE4LDcgKzYxOCw3IEBAIHNtbXV2M19hY2NlbF9hbGxvY192aW9tbXUoU01NVXYzU3RhdGUg KnMsIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsCisgCisgICAgIC8qIEF0dGFjaCBhIEhX UFQgYmFzZWQgb24gU01NVXYzIEdCUEEuQUJPUlQgdmFsdWUgKi8KKyAgICAgaHdwdF9pZCA9IHNt bXV2M19hY2NlbF9nYnBhX2h3cHQocywgYWNjZWwpOworLSAgICBpZiAoIWhvc3RfaW9tbXVfZGV2 aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQoaWRldiwgaHdwdF9pZCwgZXJycCkpIHsKKysgICAgaWYg KCFob3N0X2lvbW11X2RldmljZV9pb21tdWZkX2F0dGFjaF9od3B0KGhpb2RpLCBod3B0X2lkLCBl cnJwKSkgeworICAgICAgICAgZ290byBmcmVlX3ZldmVudHE7CisgICAgIH0KKyAgICAgcmV0dXJu IHRydWU7CitAQCAtNjI2LDExICs2MjYsMTEgQEAgc21tdXYzX2FjY2VsX2FsbG9jX3Zpb21tdShT TU1VdjNTdGF0ZSAqcywgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldiwKKyBmcmVlX3ZldmVu dHE6CisgICAgIHNtbXV2M19hY2NlbF9mcmVlX3ZldmVudHEoYWNjZWwpOworIGZyZWVfYnlwYXNz X2h3cHQ6CistICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGlkZXYtPmlvbW11ZmQsIGFjY2Vs LT5ieXBhc3NfaHdwdF9pZCk7CisrICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGhpb2RpLT5p b21tdWZkLCBhY2NlbC0+YnlwYXNzX2h3cHRfaWQpOworIGZyZWVfYWJvcnRfaHdwdDoKKy0gICAg aW9tbXVmZF9iYWNrZW5kX2ZyZWVfaWQoaWRldi0+aW9tbXVmZCwgYWNjZWwtPmFib3J0X2h3cHRf aWQpOworKyAgICBpb21tdWZkX2JhY2tlbmRfZnJlZV9pZChoaW9kaS0+aW9tbXVmZCwgYWNjZWwt PmFib3J0X2h3cHRfaWQpOworIGZyZWVfdmlvbW11OgorLSAgICBpb21tdWZkX2JhY2tlbmRfZnJl ZV9pZChpZGV2LT5pb21tdWZkLCB2aW9tbXUtPnZpb21tdV9pZCk7CisrICAgIGlvbW11ZmRfYmFj a2VuZF9mcmVlX2lkKGhpb2RpLT5pb21tdWZkLCB2aW9tbXUtPnZpb21tdV9pZCk7CisgICAgIGdf ZnJlZSh2aW9tbXUpOworICAgICBhY2NlbC0+dmlvbW11ID0gTlVMTDsKKyAgICAgcmV0dXJuIGZh bHNlOworQEAgLTYzOSwyMCArNjM5LDIwIEBAIGZyZWVfdmlvbW11OgorIHN0YXRpYyBib29sIHNt bXV2M19hY2NlbF9zZXRfaW9tbXVfZGV2aWNlKFBDSUJ1cyAqYnVzLCB2b2lkICpvcGFxdWUsIGlu dCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3N0 SU9NTVVEZXZpY2UgKmhpb2QsIEVycm9yICoqZXJycCkKKyB7CistICAgIEhvc3RJT01NVURldmlj ZUlPTU1VRkQgKmlkZXYgPSBIT1NUX0lPTU1VX0RFVklDRV9JT01NVUZEKGhpb2QpOworKyAgICBI b3N0SU9NTVVEZXZpY2VJT01NVUZEICpoaW9kaSA9IEhPU1RfSU9NTVVfREVWSUNFX0lPTU1VRkQo aGlvZCk7CisgICAgIFNNTVVTdGF0ZSAqYnMgPSBvcGFxdWU7CisgICAgIFNNTVV2M1N0YXRlICpz ID0gQVJNX1NNTVVWMyhicyk7CisgICAgIFNNTVVQY2lCdXMgKnNidXMgPSBzbW11X2dldF9zYnVz KGJzLCBidXMpOworICAgICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2ID0gc21tdXYzX2Fj Y2VsX2dldF9kZXYoYnMsIHNidXMsIGJ1cywgZGV2Zm4pOworIAorLSAgICBpZiAoIWlkZXYpIHsK KysgICAgaWYgKCFoaW9kaSkgeworICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAKKy0g ICAgaWYgKGFjY2VsX2Rldi0+aWRldikgeworLSAgICAgICAgaWYgKGFjY2VsX2Rldi0+aWRldiAh PSBpZGV2KSB7CistICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiRGV2aWNlIGFscmVhZHkg aGFzIGFuIGFzc29jaWF0ZWQgaWRldiAweCV4IiwKKy0gICAgICAgICAgICAgICAgICAgICAgIGlk ZXYtPmRldmlkKTsKKysgICAgaWYgKGFjY2VsX2Rldi0+aGlvZGkpIHsKKysgICAgICAgIGlmIChh Y2NlbF9kZXYtPmhpb2RpICE9IGhpb2RpKSB7CisrICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJw LCAiRGV2aWNlIGFscmVhZHkgaGFzIGFuIGFzc29jaWF0ZWQgaGlvZGkgMHgleCIsCisrICAgICAg ICAgICAgICAgICAgICAgICBoaW9kaS0+ZGV2aWQpOworICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJldHVybiB0cnVlOworQEAgLTY2Miw3ICs2NjIsNyBA QCBzdGF0aWMgYm9vbCBzbW11djNfYWNjZWxfc2V0X2lvbW11X2RldmljZShQQ0lCdXMgKmJ1cywg dm9pZCAqb3BhcXVlLCBpbnQgZGV2Zm4sCisgICAgICAqIENoZWNrIHRoZSBob3N0IFNNTVV2MyBh c3NvY2lhdGVkIHdpdGggdGhlIGRldiBpcyBjb21wYXRpYmxlIHdpdGggdGhlCisgICAgICAqIFFF TVUgU01NVXYzIGFjY2VsLgorICAgICAgKi8KKy0gICAgaWYgKCFzbW11djNfYWNjZWxfaHdfY29t cGF0aWJsZShzLCBpZGV2LCBlcnJwKSkgeworKyAgICBpZiAoIXNtbXV2M19hY2NlbF9od19jb21w YXRpYmxlKHMsIGhpb2RpLCBlcnJwKSkgeworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9 CisgCitAQCAtNjcwLDE3ICs2NzAsMTcgQEAgc3RhdGljIGJvb2wgc21tdXYzX2FjY2VsX3NldF9p b21tdV9kZXZpY2UoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwgaW50IGRldmZuLAorICAgICAg ICAgZ290byBkb25lOworICAgICB9CisgCistICAgIGlmICghc21tdXYzX2FjY2VsX2FsbG9jX3Zp b21tdShzLCBpZGV2LCBlcnJwKSkgeworLSAgICAgICAgZXJyb3JfYXBwZW5kX2hpbnQoZXJycCwg IlVuYWJsZSB0byBhbGxvYyB2SU9NTVU6IGlkZXYgZGV2aWQgMHgleDogIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgIGlkZXYtPmRldmlkKTsKKysgICAgaWYgKCFzbW11djNfYWNjZWxfYWxs b2NfdmlvbW11KHMsIGhpb2RpLCBlcnJwKSkgeworKyAgICAgICAgZXJyb3JfYXBwZW5kX2hpbnQo ZXJycCwgIlVuYWJsZSB0byBhbGxvYyB2SU9NTVU6IGhpb2RpIGRldmlkIDB4JXg6ICIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBoaW9kaS0+ZGV2aWQpOworICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICB9CisgCisgZG9uZToKKy0gICAgYWNjZWxfZGV2LT5pZGV2ID0gaWRldjsKKysg ICAgYWNjZWxfZGV2LT5oaW9kaSA9IGhpb2RpOworICAgICBhY2NlbF9kZXYtPnNfYWNjZWwgPSBz LT5zX2FjY2VsOworICAgICBRTElTVF9JTlNFUlRfSEVBRCgmcy0+c19hY2NlbC0+ZGV2aWNlX2xp c3QsIGFjY2VsX2RldiwgbmV4dCk7CistICAgIHRyYWNlX3NtbXV2M19hY2NlbF9zZXRfaW9tbXVf ZGV2aWNlKGRldmZuLCBpZGV2LT5kZXZpZCk7CisrICAgIHRyYWNlX3NtbXV2M19hY2NlbF9zZXRf aW9tbXVfZGV2aWNlKGRldmZuLCBoaW9kaS0+ZGV2aWQpOworICAgICByZXR1cm4gdHJ1ZTsKKyB9 CisgCitAQCAtNjg5LDcgKzY4OSw3IEBAIHN0YXRpYyB2b2lkIHNtbXV2M19hY2NlbF91bnNldF9p b21tdV9kZXZpY2UoUENJQnVzICpidXMsIHZvaWQgKm9wYXF1ZSwKKyB7CisgICAgIFNNTVVTdGF0 ZSAqYnMgPSBvcGFxdWU7CisgICAgIFNNTVVQY2lCdXMgKnNidXMgPSBnX2hhc2hfdGFibGVfbG9v a3VwKGJzLT5zbW11X3BjaWJ1c19ieV9idXNwdHIsIGJ1cyk7CistICAgIEhvc3RJT01NVURldmlj ZUlPTU1VRkQgKmlkZXY7CisrICAgIEhvc3RJT01NVURldmljZUlPTU1VRkQgKmhpb2RpOworICAg ICBTTU1VdjNBY2NlbERldmljZSAqYWNjZWxfZGV2OworICAgICBTTU1VdjNBY2NlbFN0YXRlICph Y2NlbDsKKyAgICAgSU9NTVVGRFZkZXYgKnZkZXY7CitAQCAtNzA1LDE2ICs3MDUsMTYgQEAgc3Rh dGljIHZvaWQgc21tdXYzX2FjY2VsX3Vuc2V0X2lvbW11X2RldmljZShQQ0lCdXMgKmJ1cywgdm9p ZCAqb3BhcXVlLAorICAgICB9CisgCisgICAgIGFjY2VsX2RldiA9IGNvbnRhaW5lcl9vZihzZGV2 LCBTTU1VdjNBY2NlbERldmljZSwgc2Rldik7CistICAgIGlkZXYgPSBhY2NlbF9kZXYtPmlkZXY7 CisrICAgIGhpb2RpID0gYWNjZWxfZGV2LT5oaW9kaTsKKyAgICAgYWNjZWwgPSBhY2NlbF9kZXYt PnNfYWNjZWw7CisgICAgIC8qIFJlLWF0dGFjaCB0aGUgZGVmYXVsdCBzMiBod3B0IGlkICovCist ICAgIGlmICghaG9zdF9pb21tdV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChpZGV2LCBpZGV2 LT5od3B0X2lkLCBOVUxMKSkgeworLSAgICAgICAgZXJyb3JfcmVwb3J0KCJVbmFibGUgdG8gYXR0 YWNoIHRoZSBkZWZhdWx0IEhXIHBhZ2V0YWJsZTogaWRldiBkZXZpZCAiCistICAgICAgICAgICAg ICAgICAgICAgIjB4JXgiLCBpZGV2LT5kZXZpZCk7CisrICAgIGlmICghaG9zdF9pb21tdV9kZXZp Y2VfaW9tbXVmZF9hdHRhY2hfaHdwdChoaW9kaSwgaGlvZGktPmh3cHRfaWQsIE5VTEwpKSB7Cisr ICAgICAgICBlcnJvcl9yZXBvcnQoIlVuYWJsZSB0byBhdHRhY2ggdGhlIGRlZmF1bHQgSFcgcGFn ZXRhYmxlOiBoaW9kaSBkZXZpZCAiCisrICAgICAgICAgICAgICAgICAgICAgIjB4JXgiLCBoaW9k aS0+ZGV2aWQpOworICAgICB9CisgCisgICAgIGlmIChhY2NlbF9kZXYtPnMxX2h3cHQpIHsKKy0g ICAgICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGFjY2VsX2Rldi0+aWRldi0+aW9tbXVmZCwK KysgICAgICAgIGlvbW11ZmRfYmFja2VuZF9mcmVlX2lkKGFjY2VsX2Rldi0+aGlvZGktPmlvbW11 ZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlbF9kZXYtPnMxX2h3cHQt Pmh3cHRfaWQpOworICAgICAgICAgZ19mcmVlKGFjY2VsX2Rldi0+czFfaHdwdCk7CisgICAgICAg ICBhY2NlbF9kZXYtPnMxX2h3cHQgPSBOVUxMOworQEAgLTcyNywxMCArNzI3LDEwIEBAIHN0YXRp YyB2b2lkIHNtbXV2M19hY2NlbF91bnNldF9pb21tdV9kZXZpY2UoUENJQnVzICpidXMsIHZvaWQg Km9wYXF1ZSwKKyAgICAgICAgIGFjY2VsX2Rldi0+dmRldiA9IE5VTEw7CisgICAgIH0KKyAKKy0g ICAgYWNjZWxfZGV2LT5pZGV2ID0gTlVMTDsKKysgICAgYWNjZWxfZGV2LT5oaW9kaSA9IE5VTEw7 CisgICAgIGFjY2VsX2Rldi0+c19hY2NlbCA9IE5VTEw7CisgICAgIFFMSVNUX1JFTU9WRShhY2Nl bF9kZXYsIG5leHQpOworLSAgICB0cmFjZV9zbW11djNfYWNjZWxfdW5zZXRfaW9tbXVfZGV2aWNl KGRldmZuLCBpZGV2LT5kZXZpZCk7CisrICAgIHRyYWNlX3NtbXV2M19hY2NlbF91bnNldF9pb21t dV9kZXZpY2UoZGV2Zm4sIGhpb2RpLT5kZXZpZCk7CisgCisgICAgIGlmIChRTElTVF9FTVBUWSgm YWNjZWwtPmRldmljZV9saXN0KSkgeworICAgICAgICAgc21tdXYzX2FjY2VsX2ZyZWVfdmlvbW11 KGFjY2VsKTsKK0BAIC05MjksMTAgKzkyOSwxMSBAQCBib29sIHNtbXV2M19hY2NlbF9hdHRhY2hf Z2JwYV9od3B0KFNNTVV2M1N0YXRlICpzLCBFcnJvciAqKmVycnApCisgCisgICAgIGh3cHRfaWQg PSBzbW11djNfYWNjZWxfZ2JwYV9od3B0KHMsIGFjY2VsKTsKKyAgICAgUUxJU1RfRk9SRUFDSChh Y2NlbF9kZXYsICZhY2NlbC0+ZGV2aWNlX2xpc3QsIG5leHQpIHsKKy0gICAgICAgIGlmICghaG9z dF9pb21tdV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChhY2NlbF9kZXYtPmlkZXYsIGh3cHRf aWQsCisrICAgICAgICBpZiAoIWhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfYXR0YWNoX2h3cHQo YWNjZWxfZGV2LT5oaW9kaSwgaHdwdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmbG9jYWxfZXJyKSkgeworICAgICAgICAgICAgIGVycm9y X2FwcGVuZF9oaW50KCZsb2NhbF9lcnIsICJGYWlsZWQgdG8gYXR0YWNoIEdCUEEgaHdwdCAldSBm b3IgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpZGV2IGRldmlkICV1IiwgaHdw dF9pZCwgYWNjZWxfZGV2LT5pZGV2LT5kZXZpZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImhpb2RpIGRldmlkICV1IiwgaHdwdF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYWNjZWxfZGV2LT5oaW9kaS0+ZGV2aWQpOworICAgICAgICAgICAgIGVycm9yX3Jl cG9ydF9lcnIobG9jYWxfZXJyKTsKKyAgICAgICAgICAgICBsb2NhbF9lcnIgPSBOVUxMOworICAg ICAgICAgICAgIGFsbF9vayA9IGZhbHNlOworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNj ZWwuaCBiL2h3L2FybS9zbW11djMtYWNjZWwuaAoraW5kZXggZDdiOWY4YThlNi4uZDg5YzExN2Zk MSAxMDA2NDQKKy0tLSBhL2h3L2FybS9zbW11djMtYWNjZWwuaAorKysrIGIvaHcvYXJtL3NtbXV2 My1hY2NlbC5oCitAQCAtMzYsNyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBTTU1VUzFId3B0IHsK KyAKKyB0eXBlZGVmIHN0cnVjdCBTTU1VdjNBY2NlbERldmljZSB7CisgICAgIFNNTVVEZXZpY2Ug c2RldjsKKy0gICAgSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaWRldjsKKysgICAgSG9zdElPTU1V RGV2aWNlSU9NTVVGRCAqaGlvZGk7CisgICAgIFNNTVVTMUh3cHQgKnMxX2h3cHQ7CisgICAgIElP TU1VRkRWZGV2ICp2ZGV2OworICAgICBRTElTVF9FTlRSWShTTU1VdjNBY2NlbERldmljZSkgbmV4 dDsKK2RpZmYgLS1naXQgYS9ody92ZmlvL2NvbnRhaW5lci1sZWdhY3kuYyBiL2h3L3ZmaW8vY29u dGFpbmVyLWxlZ2FjeS5jCitpbmRleCBlNjM5NzYwMzgxLi4wNWI4ZWJlZjRiIDEwMDY0NAorLS0t IGEvaHcvdmZpby9jb250YWluZXItbGVnYWN5LmMKKysrKyBiL2h3L3ZmaW8vY29udGFpbmVyLWxl Z2FjeS5jCitAQCAtMTI1NSwxMiArMTI1NSwxMiBAQCBzdGF0aWMgdm9pZCB2ZmlvX2lvbW11X2xl Z2FjeV9pbnN0YW5jZV9pbml0KE9iamVjdCAqb2JqKQorIAorIHN0YXRpYyB2b2lkIGhpb2RfbGVn YWN5X3ZmaW9fY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqb2MsIGNvbnN0IHZvaWQgKmRhdGEpCisg eworLSAgICBIb3N0SU9NTVVEZXZpY2VDbGFzcyAqaGlvYyA9IEhPU1RfSU9NTVVfREVWSUNFX0NM QVNTKG9jKTsKKysgICAgSG9zdElPTU1VRGV2aWNlQ2xhc3MgKmhpb2RjID0gSE9TVF9JT01NVV9E RVZJQ0VfQ0xBU1Mob2MpOworIAorLSAgICBoaW9jLT5yZWFsaXplID0gaGlvZF9sZWdhY3lfdmZp b19yZWFsaXplOworLSAgICBoaW9jLT5nZXRfY2FwID0gaGlvZF9sZWdhY3lfdmZpb19nZXRfY2Fw OworLSAgICBoaW9jLT5nZXRfaW92YV9yYW5nZXMgPSBoaW9kX2xlZ2FjeV92ZmlvX2dldF9pb3Zh X3JhbmdlczsKKy0gICAgaGlvYy0+Z2V0X3BhZ2Vfc2l6ZV9tYXNrID0gaGlvZF9sZWdhY3lfdmZp b19nZXRfcGFnZV9zaXplX21hc2s7CisrICAgIGhpb2RjLT5yZWFsaXplID0gaGlvZF9sZWdhY3lf dmZpb19yZWFsaXplOworKyAgICBoaW9kYy0+Z2V0X2NhcCA9IGhpb2RfbGVnYWN5X3ZmaW9fZ2V0 X2NhcDsKKysgICAgaGlvZGMtPmdldF9pb3ZhX3JhbmdlcyA9IGhpb2RfbGVnYWN5X3ZmaW9fZ2V0 X2lvdmFfcmFuZ2VzOworKyAgICBoaW9kYy0+Z2V0X3BhZ2Vfc2l6ZV9tYXNrID0gaGlvZF9sZWdh Y3lfdmZpb19nZXRfcGFnZV9zaXplX21hc2s7CisgfTsKKyAKKyBzdGF0aWMgY29uc3QgVHlwZUlu Zm8gdHlwZXNbXSA9IHsKK2RpZmYgLS1naXQgYS9ody92ZmlvL2lvbW11ZmQuYyBiL2h3L3ZmaW8v aW9tbXVmZC5jCitpbmRleCA5MzcwM2EwMDM2Li4xOTFjZjgwMDY4IDEwMDY0NAorLS0tIGEvaHcv dmZpby9pb21tdWZkLmMKKysrKyBiL2h3L3ZmaW8vaW9tbXVmZC5jCitAQCAtODczLDE5ICs4NzMs MTkgQEAgc3RhdGljIHZvaWQgdmZpb19pb21tdV9pb21tdWZkX2NsYXNzX2luaXQoT2JqZWN0Q2xh c3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorIH07CisgCisgc3RhdGljIGJvb2wKKy1ob3N0 X2lvbW11X2RldmljZV9pb21tdWZkX3ZmaW9fYXR0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNlSU9N TVVGRCAqaWRldiwKKytob3N0X2lvbW11X2RldmljZV9pb21tdWZkX3ZmaW9fYXR0YWNoX2h3cHQo SG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaGlvZGksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGh3cHRfaWQsIEVycm9yICoqZXJycCkKKyB7Cist ICAgIFZGSU9EZXZpY2UgKnZiYXNlZGV2ID0gSE9TVF9JT01NVV9ERVZJQ0UoaWRldiktPmFnZW50 OworKyAgICBWRklPRGV2aWNlICp2YmFzZWRldiA9IEhPU1RfSU9NTVVfREVWSUNFKGhpb2RpKS0+ YWdlbnQ7CisgCisgICAgIHJldHVybiAhaW9tbXVmZF9jZGV2X2F0dGFjaF9pb2FzX2h3cHQodmJh c2VkZXYsIGh3cHRfaWQsIGVycnApOworIH0KKyAKKyBzdGF0aWMgYm9vbAorLWhvc3RfaW9tbXVf ZGV2aWNlX2lvbW11ZmRfdmZpb19kZXRhY2hfaHdwdChIb3N0SU9NTVVEZXZpY2VJT01NVUZEICpp ZGV2LAorK2hvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfdmZpb19kZXRhY2hfaHdwdChIb3N0SU9N TVVEZXZpY2VJT01NVUZEICpoaW9kaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRXJyb3IgKiplcnJwKQorIHsKKy0gICAgVkZJT0RldmljZSAqdmJhc2VkZXYg PSBIT1NUX0lPTU1VX0RFVklDRShpZGV2KS0+YWdlbnQ7CisrICAgIFZGSU9EZXZpY2UgKnZiYXNl ZGV2ID0gSE9TVF9JT01NVV9ERVZJQ0UoaGlvZGkpLT5hZ2VudDsKKyAKKyAgICAgcmV0dXJuIGlv bW11ZmRfY2Rldl9kZXRhY2hfaW9hc19od3B0KHZiYXNlZGV2LCBlcnJwKTsKKyB9CitAQCAtODk0 LDcgKzg5NCw3IEBAIHN0YXRpYyBib29sIGhpb2RfaW9tbXVmZF92ZmlvX3JlYWxpemUoSG9zdElP TU1VRGV2aWNlICpoaW9kLCB2b2lkICpvcGFxdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFcnJvciAqKmVycnApCisgeworICAgICBWRklPRGV2aWNlICp2ZGV2ID0g b3BhcXVlOworLSAgICBIb3N0SU9NTVVEZXZpY2VJT01NVUZEICppZGV2OworKyAgICBIb3N0SU9N TVVEZXZpY2VJT01NVUZEICpoaW9kaTsKKyAgICAgSG9zdElPTU1VRGV2aWNlQ2FwcyAqY2FwcyA9 ICZoaW9kLT5jYXBzOworICAgICBWZW5kb3JDYXBzICp2ZW5kb3JfY2FwcyA9ICZjYXBzLT52ZW5k b3JfY2FwczsKKyAgICAgdWludDMyX3QgdHlwZSA9IElPTU1VX0hXX0lORk9fVFlQRV9ERUZBVUxU OworQEAgLTkxNCwxMCArOTE0LDEwIEBAIHN0YXRpYyBib29sIGhpb2RfaW9tbXVmZF92ZmlvX3Jl YWxpemUoSG9zdElPTU1VRGV2aWNlICpoaW9kLCB2b2lkICpvcGFxdWUsCisgICAgIGNhcHMtPmh3 X2NhcHMgPSBod19jYXBzOworICAgICBjYXBzLT5tYXhfcGFzaWRfbG9nMiA9IG1heF9wYXNpZF9s b2cyOworIAorLSAgICBpZGV2ID0gSE9TVF9JT01NVV9ERVZJQ0VfSU9NTVVGRChoaW9kKTsKKy0g ICAgaWRldi0+aW9tbXVmZCA9IHZkZXYtPmlvbW11ZmQ7CistICAgIGlkZXYtPmRldmlkID0gdmRl di0+ZGV2aWQ7CistICAgIGlkZXYtPmh3cHRfaWQgPSB2ZGV2LT5od3B0LT5od3B0X2lkOworKyAg ICBoaW9kaSA9IEhPU1RfSU9NTVVfREVWSUNFX0lPTU1VRkQoaGlvZCk7CisrICAgIGhpb2RpLT5p b21tdWZkID0gdmRldi0+aW9tbXVmZDsKKysgICAgaGlvZGktPmRldmlkID0gdmRldi0+ZGV2aWQ7 CisrICAgIGhpb2RpLT5od3B0X2lkID0gdmRldi0+aHdwdC0+aHdwdF9pZDsKKyAKKyAgICAgcmV0 dXJuIHRydWU7CisgfQorQEAgLTk0NCwxNCArOTQ0LDE0IEBAIGhpb2RfaW9tbXVmZF92ZmlvX2dl dF9wYWdlX3NpemVfbWFzayhIb3N0SU9NTVVEZXZpY2UgKmhpb2QpCisgc3RhdGljIHZvaWQgaGlv ZF9pb21tdWZkX3ZmaW9fY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqb2MsIGNvbnN0IHZvaWQgKmRh dGEpCisgeworICAgICBIb3N0SU9NTVVEZXZpY2VDbGFzcyAqaGlvZGMgPSBIT1NUX0lPTU1VX0RF VklDRV9DTEFTUyhvYyk7CistICAgIEhvc3RJT01NVURldmljZUlPTU1VRkRDbGFzcyAqaWRldmMg PSBIT1NUX0lPTU1VX0RFVklDRV9JT01NVUZEX0NMQVNTKG9jKTsKKysgICAgSG9zdElPTU1VRGV2 aWNlSU9NTVVGRENsYXNzICpoaW9kaWMgPSBIT1NUX0lPTU1VX0RFVklDRV9JT01NVUZEX0NMQVNT KG9jKTsKKyAKKyAgICAgaGlvZGMtPnJlYWxpemUgPSBoaW9kX2lvbW11ZmRfdmZpb19yZWFsaXpl OworICAgICBoaW9kYy0+Z2V0X2lvdmFfcmFuZ2VzID0gaGlvZF9pb21tdWZkX3ZmaW9fZ2V0X2lv dmFfcmFuZ2VzOworICAgICBoaW9kYy0+Z2V0X3BhZ2Vfc2l6ZV9tYXNrID0gaGlvZF9pb21tdWZk X3ZmaW9fZ2V0X3BhZ2Vfc2l6ZV9tYXNrOworIAorLSAgICBpZGV2Yy0+YXR0YWNoX2h3cHQgPSBo b3N0X2lvbW11X2RldmljZV9pb21tdWZkX3ZmaW9fYXR0YWNoX2h3cHQ7CistICAgIGlkZXZjLT5k ZXRhY2hfaHdwdCA9IGhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfdmZpb19kZXRhY2hfaHdwdDsK KysgICAgaGlvZGljLT5hdHRhY2hfaHdwdCA9IGhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfdmZp b19hdHRhY2hfaHdwdDsKKysgICAgaGlvZGljLT5kZXRhY2hfaHdwdCA9IGhvc3RfaW9tbXVfZGV2 aWNlX2lvbW11ZmRfdmZpb19kZXRhY2hfaHdwdDsKKyB9OworIAorIHN0YXRpYyBjb25zdCBUeXBl SW5mbyB0eXBlc1tdID0geworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaCBi L2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAoraW5kZXggMjVkYTc1NDQzNC4uZTQ1ZjRhNWU4NyAx MDA2NDQKKy0tLSBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAorKysrIGIvaW5jbHVkZS9zeXN0 ZW0vaW9tbXVmZC5oCitAQCAtMTM2LDcgKzEzNiw3IEBAIHN0cnVjdCBIb3N0SU9NTVVEZXZpY2VJ T01NVUZEQ2xhc3MgeworICAgICAgKgorICAgICAgKiBNYW5kYXRvcnkgY2FsbGJhY2suCisgICAg ICAqCistICAgICAqIEBpZGV2OiBob3N0IElPTU1VIGRldmljZSBiYWNrZWQgYnkgSU9NTVVGRCBi YWNrZW5kLgorKyAgICAgKiBAaGlvZGk6IGhvc3QgSU9NTVUgZGV2aWNlIGJhY2tlZCBieSBJT01N VUZEIGJhY2tlbmQuCisgICAgICAqCisgICAgICAqIEBod3B0X2lkOiBJRCBvZiBJT01NVUZEIGhh cmR3YXJlIHBhZ2UgdGFibGUuCisgICAgICAqCitAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0cnVjdCBI b3N0SU9NTVVEZXZpY2VJT01NVUZEQ2xhc3MgeworICAgICAgKgorICAgICAgKiBSZXR1cm5zOiB0 cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG9uIGZhaWx1cmUuCisgICAgICAqLworLSAgICBib29sICgq YXR0YWNoX2h3cHQpKEhvc3RJT01NVURldmljZUlPTU1VRkQgKmlkZXYsIHVpbnQzMl90IGh3cHRf aWQsCisrICAgIGJvb2wgKCphdHRhY2hfaHdwdCkoSG9zdElPTU1VRGV2aWNlSU9NTVVGRCAqaGlv ZGksIHVpbnQzMl90IGh3cHRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKipl cnJwKTsKKyAgICAgLyoqCisgICAgICAqIEBkZXRhY2hfaHdwdDogZGV0YWNoIGhvc3QgSU9NTVUg ZGV2aWNlIGZyb20gSU9NTVVGRCBoYXJkd2FyZSBwYWdlIHRhYmxlLgorQEAgLTE1MiwxNyArMTUy LDE3IEBAIHN0cnVjdCBIb3N0SU9NTVVEZXZpY2VJT01NVUZEQ2xhc3MgeworICAgICAgKgorICAg ICAgKiBNYW5kYXRvcnkgY2FsbGJhY2suCisgICAgICAqCistICAgICAqIEBpZGV2OiBob3N0IElP TU1VIGRldmljZSBiYWNrZWQgYnkgSU9NTVVGRCBiYWNrZW5kLgorKyAgICAgKiBAaGlvZGk6IGhv c3QgSU9NTVUgZGV2aWNlIGJhY2tlZCBieSBJT01NVUZEIGJhY2tlbmQuCisgICAgICAqCisgICAg ICAqIEBlcnJwOiBwYXNzIGFuIEVycm9yIG91dCB3aGVuIGF0dGFjaG1lbnQgZmFpbHMuCisgICAg ICAqCisgICAgICAqIFJldHVybnM6IHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFpbHVyZS4K KyAgICAgICovCistICAgIGJvb2wgKCpkZXRhY2hfaHdwdCkoSG9zdElPTU1VRGV2aWNlSU9NTVVG RCAqaWRldiwgRXJyb3IgKiplcnJwKTsKKysgICAgYm9vbCAoKmRldGFjaF9od3B0KShIb3N0SU9N TVVEZXZpY2VJT01NVUZEICpoaW9kaSwgRXJyb3IgKiplcnJwKTsKKyB9OworIAorLWJvb2wgaG9z dF9pb21tdV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChIb3N0SU9NTVVEZXZpY2VJT01NVUZE ICppZGV2LAorK2Jvb2wgaG9zdF9pb21tdV9kZXZpY2VfaW9tbXVmZF9hdHRhY2hfaHdwdChIb3N0 SU9NTVVEZXZpY2VJT01NVUZEICpoaW9kaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgaHdwdF9pZCwgRXJyb3IgKiplcnJwKTsKKy1ib29sIGhv c3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfZGV0YWNoX2h3cHQoSG9zdElPTU1VRGV2aWNlSU9NTVVG RCAqaWRldiwKKytib29sIGhvc3RfaW9tbXVfZGV2aWNlX2lvbW11ZmRfZGV0YWNoX2h3cHQoSG9z dElPTU1VRGV2aWNlSU9NTVVGRCAqaGlvZGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCk7CisgI2VuZGlmCistLSAKKzIuNTIuMAorCgpk aWZmIC0tZ2l0IGEva3ZtLW1lbW9yeS1BbGxvdy1SQU0tZGV2aWNlLXJlZ2lvbnMtdG8tc2tpcC1J T01NVS1tYXBwaW4ucGF0Y2ggYi9rdm0tbWVtb3J5LUFsbG93LVJBTS1kZXZpY2UtcmVnaW9ucy10 by1za2lwLUlPTU1VLW1hcHBpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43YjVkOTAyCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLW1lbW9yeS1BbGxvdy1SQU0tZGV2 aWNlLXJlZ2lvbnMtdG8tc2tpcC1JT01NVS1tYXBwaW4ucGF0Y2gKQEAgLTAsMCArMSwxNDggQEAK K0Zyb20gMzg0ODFkMWJjYjA4ZTU2NTJlOTQ5Y2U2MGJhNWRkNDZlOTVkYzc2NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Budmlk aWEuY29tPgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjQxICswMTAwCitTdWJqZWN0OiBb UEFUQ0ggMDk5LzExMV0gbWVtb3J5OiBBbGxvdyBSQU0gZGV2aWNlIHJlZ2lvbnMgdG8gc2tpcCBJ T01NVQorIG1hcHBpbmcKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgt QXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVl c3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBv cnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIg PGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5j b20+CitSSC1Db21taXQ6IFs5OS8xMTFdIDBmMmRhYzU3NGViMWMyMDQyY2E0ZjBjMmVhMjJlNTQ5 M2Y2ZGMxNzQgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhh dC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk4CisKK0NvbmZsaWN0czogc3lzdGVtL21l bW9yeS5jLiBXZSBkb24ndCBoYXZlIDVhNTI1ZGNiNGQ2MAorKCJzeXN0ZW0vbWVtb3J5OiBDb25z dGlmeSB2YXJpb3VzIE1lbW9yeVJlZ2lvbiBhcmd1bWVudHMiKSBzbword2UgZ2V0IGEgY29udGV4 dHVhbCBjb25mbGljdCB3cnQgbWVtb3J5X3JlZ2lvbl9oYXNfZ3Vlc3RfbWVtZmQKK3doaWNoIGRv ZXMgbm90IHRha2UgYSBjb25zdCBNZW1vcnlSZWdpb24gKiBhcmcgZG93bnN0cmVhbS4gQWxzbwor Zm9yY2VkIHRvIHJlbW92ZSB0aGUgY29uc3QgZm9yIG1lbW9yeV9yZWdpb25fc2tpcF9pb21tdV9t YXAoKS4KK0Fsc28gaW1wYWN0cyBpbmNsdWRlL3N5c3RlbS9tZW1vcnkuaCBkZWNsYXJhdGlvbi4K KzVhNTI1ZGNiNGQ2MCB3b3VsZCBkcmF3IG1vcmUgZGVwZW5kZW5jaWVzIHNvIGJldHRlciB0byBz a2lwIGl0LgorCitTb21lIFJBTSBkZXZpY2UgcmVnaW9ucyBjcmVhdGVkIHdpdGggbWVtb3J5X3Jl Z2lvbl9pbml0X3JhbV9kZXZpY2VfcHRyKCkKK2FyZSBub3QgaW50ZW5kZWQgdG8gYmUgUDJQIERN QSB0YXJnZXRzLgorCitUaGUgVkZJTyBsaXN0ZW5lciBjdXJyZW50bHkgdHJlYXRzIGFsbCBSQU0g ZGV2aWNlIHJlZ2lvbnMgYXMgRE1BCitjYXBhYmxlIGFuZCBhdHRlbXB0cyB0byBtYXAgdGhlbSBp bnRvIHRoZSBJT01NVS4gRm9yIHJlZ2lvbnMgd2l0aG91dAorZG1hLWJ1ZiBiYWNraW5nIHRoaXMg ZmFpbHMgYW5kIHByaW50cyB3YXJuaW5ncyBzdWNoIGFzOgorCisgIElPTU1VX0lPQVNfTUFQIGZh aWxlZDogQmFkIGFkZHJlc3MsIFBDSSBCQVI/CisKK0ludHJvZHVjZSBhIE1lbW9yeVJlZ2lvbiBm bGFnIChyYW1fZGV2aWNlX3NraXBfaW9tbXVfbWFwKSB0byBtYXJrIFJBTQorZGV2aWNlIHJlZ2lv bnMgdGhhdCBzaG91bGQgbm90IGJlIElPTU1VIG1hcHBlZCwgcGFpcmVkIHdpdGgKK21lbW9yeV9y ZWdpb25fc2tpcF9pb21tdV9tYXAoKSAvIG1lbW9yeV9yZWdpb25fc2V0X3NraXBfaW9tbXVfbWFw KCkKK2FjY2Vzc29ycy4gV2hlbiB0aGUgZmxhZyBpcyBzZXQsIHRoZSBWRklPIGxpc3RlbmVyIHNr aXBzIERNQSBtYXBwaW5nCitmb3IgdGhhdCByZWdpb24uCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMu YXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0Budmlk aWEuY29tPgorU2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52 aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktMjEtc2tvbG90aHVt dGhvQG52aWRpYS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRl bGxAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDExYjk3OThjN2I1MjQ3 NjJiOThlYTYyYjFjM2ZiYzYzMDQ2OTk3ODQpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxl cmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody92ZmlvL2xpc3RlbmVyLmMgICAgICB8ICA2 ICsrKysrKworIGh3L3ZmaW8vdHJhY2UtZXZlbnRzICAgIHwgIDEgKworIGluY2x1ZGUvc3lzdGVt L21lbW9yeS5oIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCisgc3lzdGVtL21lbW9yeS5jICAg ICAgICAgfCAxMCArKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9ody92ZmlvL2xpc3RlbmVyLmMgYi9ody92ZmlvL2xpc3RlbmVyLmMK K2luZGV4IGFmY2Y1MThmNTYuLjYwMjQ5YTcyNTIgMTAwNjQ0CistLS0gYS9ody92ZmlvL2xpc3Rl bmVyLmMKKysrKyBiL2h3L3ZmaW8vbGlzdGVuZXIuYworQEAgLTYwOSw2ICs2MDksMTIgQEAgdm9p ZCB2ZmlvX2NvbnRhaW5lcl9yZWdpb25fYWRkKFZGSU9Db250YWluZXIgKmJjb250YWluZXIsCisg ICAgICAgICB9CisgICAgIH0KKyAKKysgICAgaWYgKG1lbW9yeV9yZWdpb25fc2tpcF9pb21tdV9t YXAoc2VjdGlvbi0+bXIpKSB7CisrICAgICAgICB0cmFjZV92ZmlvX2xpc3RlbmVyX3JlZ2lvbl9z a2lwX2RtYV9tYXAobWVtb3J5X3JlZ2lvbl9uYW1lKHNlY3Rpb24tPm1yKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3ZhLCBpbnQxMjhfZ2V0NjQo bGxzaXplKSk7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKyAgICAgcmV0ID0gdmZpb19j b250YWluZXJfZG1hX21hcChiY29udGFpbmVyLCBpb3ZhLCBpbnQxMjhfZ2V0NjQobGxzaXplKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWRkciwgc2VjdGlvbi0+cmVhZG9u bHksIHNlY3Rpb24tPm1yKTsKKyAgICAgaWYgKHJldCkgeworZGlmZiAtLWdpdCBhL2h3L3ZmaW8v dHJhY2UtZXZlbnRzIGIvaHcvdmZpby90cmFjZS1ldmVudHMKK2luZGV4IDgyYWJmYzk5YWUuLmQ5 OGZhNWNlZmIgMTAwNjQ0CistLS0gYS9ody92ZmlvL3RyYWNlLWV2ZW50cworKysrIGIvaHcvdmZp by90cmFjZS1ldmVudHMKK0BAIC0xMDAsNiArMTAwLDcgQEAgdmZpb19saXN0ZW5lcl9yZWdpb25f ZGVsX2lvbW11KGNvbnN0IGNoYXIgKm5hbWUpICJyZWdpb25fZGVsIFtpb21tdV0gJXMiCisgdmZp b19saXN0ZW5lcl9yZWdpb25fYWRkX3JhbSh1aW50NjRfdCBpb3ZhX3N0YXJ0LCB1aW50NjRfdCBp b3ZhX2VuZCwgdm9pZCAqdmFkZHIpICJyZWdpb25fYWRkIFtyYW1dIDB4JSJQUkl4NjQiIC0gMHgl IlBSSXg2NCIgWyVwXSIKKyB2ZmlvX2tub3duX3NhZmVfbWlzYWxpZ25tZW50KGNvbnN0IGNoYXIg Km5hbWUsIHVpbnQ2NF90IGlvdmEsIHVpbnQ2NF90IG9mZnNldF93aXRoaW5fcmVnaW9uLCB1aW50 cHRyX3QgcGFnZV9zaXplKSAiUmVnaW9uIFwiJXNcIiBpb3ZhPTB4JSJQUkl4NjQiIG9mZnNldF93 aXRoaW5fcmVnaW9uPTB4JSJQUkl4NjQiIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZT0weCUiUFJJ eFBUUgorIHZmaW9fbGlzdGVuZXJfcmVnaW9uX2FkZF9ub19kbWFfbWFwKGNvbnN0IGNoYXIgKm5h bWUsIHVpbnQ2NF90IGlvdmEsIHVpbnQ2NF90IHNpemUsIHVpbnQ2NF90IHBhZ2Vfc2l6ZSkgIlJl Z2lvbiBcIiVzXCIgMHglIlBSSXg2NCIgc2l6ZT0weCUiUFJJeDY0IiBpcyBub3QgYWxpZ25lZCB0 byAweCUiUFJJeDY0IiBhbmQgY2Fubm90IGJlIG1hcHBlZCBmb3IgRE1BIgorK3ZmaW9fbGlzdGVu ZXJfcmVnaW9uX3NraXBfZG1hX21hcChjb25zdCBjaGFyICpuYW1lLCB1aW50NjRfdCBpb3ZhLCB1 aW50NjRfdCBzaXplKSAiUmVnaW9uIFwiJXNcIiAweCUiUFJJeDY0IiBzaXplPTB4JSJQUkl4NjQi IG1hcmtlZCB0byBza2lwIElPTU1VIG1hcHBpbmciCisgdmZpb19saXN0ZW5lcl9yZWdpb25fZGVs KHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpICJyZWdpb25fZGVsIDB4JSJQUkl4NjQiIC0g MHglIlBSSXg2NAorIHZmaW9fZGV2aWNlX2RpcnR5X3RyYWNraW5nX3VwZGF0ZSh1aW50NjRfdCBz dGFydCwgdWludDY0X3QgZW5kLCB1aW50NjRfdCBtaW4sIHVpbnQ2NF90IG1heCkgInNlY3Rpb24g MHglIlBSSXg2NCIgLSAweCUiUFJJeDY0IiAtPiB1cGRhdGUgWzB4JSJQUkl4NjQiIC0gMHglIlBS SXg2NCJdIgorIHZmaW9fZGV2aWNlX2RpcnR5X3RyYWNraW5nX3N0YXJ0KGludCBucl9yYW5nZXMs IHVpbnQ2NF90IG1pbjMyLCB1aW50NjRfdCBtYXgzMiwgdWludDY0X3QgbWluNjQsIHVpbnQ2NF90 IG1heDY0LCB1aW50NjRfdCBtaW5wY2ksIHVpbnQ2NF90IG1heHBjaSkgIm5yX3JhbmdlcyAlZCAz MjpbMHglIlBSSXg2NCIgLSAweCUiUFJJeDY0Il0sIDY0OlsweCUiUFJJeDY0IiAtIDB4JSJQUkl4 NjQiXSwgcGNpNjQ6WzB4JSJQUkl4NjQiIC0gMHglIlBSSXg2NCJdIgorZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvc3lzdGVtL21lbW9yeS5oIGIvaW5jbHVkZS9zeXN0ZW0vbWVtb3J5LmgKK2luZGV4IDQ5 MTMyMDZjOGMuLjhlNjBmMDNkNDQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL3N5c3RlbS9tZW1vcnku aAorKysrIGIvaW5jbHVkZS9zeXN0ZW0vbWVtb3J5LmgKK0BAIC04NjYsNiArODY2LDggQEAgc3Ry dWN0IE1lbW9yeVJlZ2lvbiB7CisgCisgICAgIC8qIEZvciBkZXZpY2VzIGRlc2lnbmVkIHRvIHBl cmZvcm0gcmUtZW50cmFudCBJTyBpbnRvIHRoZWlyIG93biBJTyBNUnMgKi8KKyAgICAgYm9vbCBk aXNhYmxlX3JlZW50cmFuY3lfZ3VhcmQ7CisrICAgIC8qIFJBTSBkZXZpY2UgcmVnaW9uIHRoYXQg ZG9lcyBub3QgcmVxdWlyZSBJT01NVSBtYXBwaW5nIGZvciBQMlAgKi8KKysgICAgYm9vbCByYW1f ZGV2aWNlX3NraXBfaW9tbXVfbWFwOworIH07CisgCisgc3RydWN0IElPTU1VTWVtb3J5UmVnaW9u IHsKK0BAIC0xODIxLDYgKzE4MjMsMjUgQEAgc3RhdGljIGlubGluZSBib29sIG1lbW9yeV9yZWdp b25faXNfcm9tZChNZW1vcnlSZWdpb24gKm1yKQorICAqLworIGJvb2wgbWVtb3J5X3JlZ2lvbl9p c19wcm90ZWN0ZWQoTWVtb3J5UmVnaW9uICptcik7CisgCisrLyoqCisrICogbWVtb3J5X3JlZ2lv bl9za2lwX2lvbW11X21hcDogY2hlY2sgd2hldGhlciBhIG1lbW9yeSByZWdpb24gaXMgZXhjbHVk ZWQKKysgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIElPTU1VIG1hcHBpbmcK KysgKgorKyAqIFJldHVybnMgJXRydWUgaWYgQG1yIGlzIGEgUkFNIGRldmljZSByZWdpb24gbWFy a2VkIHRvIHNraXAgSU9NTVUgbWFwcGluZy4KKysgKgorKyAqIEBtcjogdGhlIG1lbW9yeSByZWdp b24gYmVpbmcgcXVlcmllZAorKyAqLworK2Jvb2wgbWVtb3J5X3JlZ2lvbl9za2lwX2lvbW11X21h cChNZW1vcnlSZWdpb24gKm1yKTsKKysKKysvKioKKysgKiBtZW1vcnlfcmVnaW9uX3NldF9za2lw X2lvbW11X21hcDogbWFyayBhIFJBTSBkZXZpY2UgcmVnaW9uIHRvIHNraXAgSU9NTVUKKysgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZworKyAqCisrICogQG1yOiB0 aGUgbWVtb3J5IHJlZ2lvbiBiZWluZyBtb2RpZmllZAorKyAqIEBza2lwOiAldHJ1ZSB0byBza2lw IElPTU1VIG1hcHBpbmcsICVmYWxzZSB0byBhbGxvdyBpdAorKyAqLworK3ZvaWQgbWVtb3J5X3Jl Z2lvbl9zZXRfc2tpcF9pb21tdV9tYXAoTWVtb3J5UmVnaW9uICptciwgYm9vbCBza2lwKTsKKysK KyAvKioKKyAgKiBtZW1vcnlfcmVnaW9uX2hhc19ndWVzdF9tZW1mZDogY2hlY2sgd2hldGhlciBh IG1lbW9yeSByZWdpb24gaGFzIGd1ZXN0X21lbWZkCisgICogICAgIGFzc29jaWF0ZWQKK2RpZmYg LS1naXQgYS9zeXN0ZW0vbWVtb3J5LmMgYi9zeXN0ZW0vbWVtb3J5LmMKK2luZGV4IDU2NDY1NDc5 NDAuLmJkZDUzMzY5YTkgMTAwNjQ0CistLS0gYS9zeXN0ZW0vbWVtb3J5LmMKKysrKyBiL3N5c3Rl bS9tZW1vcnkuYworQEAgLTE4NzUsNiArMTg3NSwxNiBAQCBib29sIG1lbW9yeV9yZWdpb25faXNf cHJvdGVjdGVkKE1lbW9yeVJlZ2lvbiAqbXIpCisgICAgIHJldHVybiBtci0+cmFtICYmIChtci0+ cmFtX2Jsb2NrLT5mbGFncyAmIFJBTV9QUk9URUNURUQpOworIH0KKyAKKytib29sIG1lbW9yeV9y ZWdpb25fc2tpcF9pb21tdV9tYXAoTWVtb3J5UmVnaW9uICptcikKKyt7CisrICAgIHJldHVybiBt ZW1vcnlfcmVnaW9uX2lzX3JhbV9kZXZpY2UobXIpICYmIG1yLT5yYW1fZGV2aWNlX3NraXBfaW9t bXVfbWFwOworK30KKysKKyt2b2lkIG1lbW9yeV9yZWdpb25fc2V0X3NraXBfaW9tbXVfbWFwKE1l bW9yeVJlZ2lvbiAqbXIsIGJvb2wgc2tpcCkKKyt7CisrICAgIG1yLT5yYW1fZGV2aWNlX3NraXBf aW9tbXVfbWFwID0gc2tpcDsKKyt9CisrCisgYm9vbCBtZW1vcnlfcmVnaW9uX2hhc19ndWVzdF9t ZW1mZChNZW1vcnlSZWdpb24gKm1yKQorIHsKKyAgICAgcmV0dXJuIG1yLT5yYW1fYmxvY2sgJiYg bXItPnJhbV9ibG9jay0+Z3Vlc3RfbWVtZmQgPj0gMDsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0tcWRldi1BZGQtYS1Tc2lkU2l6ZU1vZGUtcHJvcGVydHktdHlwZS5wYXRjaCBiL2t2 bS1xZGV2LUFkZC1hLVNzaWRTaXplTW9kZS1wcm9wZXJ0eS10eXBlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYTExZjEKLS0tIC9kZXYvbnVsbAorKysgYi9rdm0t cWRldi1BZGQtYS1Tc2lkU2l6ZU1vZGUtcHJvcGVydHktdHlwZS5wYXRjaApAQCAtMCwwICsxLDEz MSBAQAorRnJvbSA1ZjA1NDZkNDIxNDUwYWVkZTg5YjkyOTkyMGMzOTYzYTgzNTczZTEzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNv bT4KK0RhdGU6IFR1ZSwgMjQgTWFyIDIwMjYgMTQ6MDI6MjkgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SCAwNjAvMTExXSBxZGV2OiBBZGQgYSBTc2lkU2l6ZU1vZGUgcHJvcGVydHkgdHlwZQorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzYwLzEx MV0gOTA3OTUwZDEwNzA5YWY4ZWY1MDE2YzczMjVjZGMyMzJiMWEzOTk5NiAoZWF1Z2VyMS9jZW50 b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3Nl L1JIRUwtMTYwMTkwCisKK0ludHJvZHVjZSBhIG5ldyBlbnVtIHR5cGUgcHJvcGVydHkgYWxsb3dp bmcgdG8gc2V0IGEgU3Vic3RyZWFtIElEIHNpemUKK2ZvciBIVy1hY2NlbGVyYXRlZCBzbW11djMu IFZhbHVlcyBhcmUgYXV0byBhbmQgMC4uMjAuIFRoZSBhdXRvIHZhbHVlCithbGxvd3MgU1NJRCBz aXplIHByb3BlcnR5IHRvIGJlIGRlcml2ZWQgZnJvbSBob3N0IElPTU1VIGNhcGFiaWxpdGllcy4K K0EgdmFsdWUgb2YgMCBkaXNhYmxlcyBTdWJzdHJlYW1JRCwgd2hpbGUgbm9uLXplcm8gdmFsdWVz IHNwZWNpZnkgdGhlCitTU0lEIHNpemUgaW4gYml0cy4KKworUmV2aWV3ZWQtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5h dWdlckByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK0Fja2VkLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhh dC5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgor TWVzc2FnZS1pZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC01LW5hdGhhbmNAbnZpZGlhLmNvbQor U2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgM2EzZGQ2NGU2M2RjNzcyZjYwNjdkODIxNWI3YWRk NzQ3NGU2YTNlNSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0 LmNvbT4KKy0tLQorIGh3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLXN5c3RlbS5jICAgIHwgMTQgKysr KysrKysrKysrKysKKyBpbmNsdWRlL2h3L3FkZXYtcHJvcGVydGllcy1zeXN0ZW0uaCB8ICAzICsr KworIHFhcGkvbWlzYy1hcm0uanNvbiAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysr KysrKworIHFhcGkvcHJhZ21hLmpzb24gICAgICAgICAgICAgICAgICAgIHwgIDEgKworIDQgZmls ZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaHcvY29yZS9xZGV2 LXByb3BlcnRpZXMtc3lzdGVtLmMgYi9ody9jb3JlL3FkZXYtcHJvcGVydGllcy1zeXN0ZW0uYwor aW5kZXggMWY4MTBiN2RkZi4uNjdiM2NlM2ExNiAxMDA2NDQKKy0tLSBhL2h3L2NvcmUvcWRldi1w cm9wZXJ0aWVzLXN5c3RlbS5jCisrKysgYi9ody9jb3JlL3FkZXYtcHJvcGVydGllcy1zeXN0ZW0u YworQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAicWFwaS9xYXBpLXR5cGVzLWJsb2NrLmgi CisgI2luY2x1ZGUgInFhcGkvcWFwaS10eXBlcy1tYWNoaW5lLmgiCisgI2luY2x1ZGUgInFhcGkv cWFwaS10eXBlcy1taWdyYXRpb24uaCIKKysjaW5jbHVkZSAicWFwaS9xYXBpLXR5cGVzLW1pc2Mt YXJtLmgiCisgI2luY2x1ZGUgInFhcGkvcWFwaS12aXNpdC12aXJ0aW8uaCIKKyAjaW5jbHVkZSAi cWFwaS9xbXAvcWVycm9yLmgiCisgI2luY2x1ZGUgInFlbXUvY3R5cGUuaCIKK0BAIC03MjMsNiAr NzI0LDE5IEBAIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3BfemVyb19wYWdlX2RldGVjdGlv biA9IHsKKyAgICAgLnNldF9kZWZhdWx0X3ZhbHVlID0gcWRldl9wcm9waW5mb19zZXRfZGVmYXVs dF92YWx1ZV9lbnVtLAorIH07CisgCisrLyogLS0tIFNzaWRTaXplTW9kZSAtLS0gKi8KKysKKytR RU1VX0JVSUxEX0JVR19PTihzaXplb2YoU3NpZFNpemVNb2RlKSAhPSBzaXplb2YoaW50KSk7Cisr CisrY29uc3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9zc2lkc2l6ZV9tb2RlID0geworKyAgICAu dHlwZSA9ICJTc2lkU2l6ZU1vZGUiLAorKyAgICAuZGVzY3JpcHRpb24gPSAic3NpZHNpemUgbW9k ZTogYXV0bywgMC0yMCIsCisrICAgIC5lbnVtX3RhYmxlID0gJlNzaWRTaXplTW9kZV9sb29rdXAs CisrICAgIC5nZXQgPSBxZGV2X3Byb3BpbmZvX2dldF9lbnVtLAorKyAgICAuc2V0ID0gcWRldl9w cm9waW5mb19zZXRfZW51bSwKKysgICAgLnNldF9kZWZhdWx0X3ZhbHVlID0gcWRldl9wcm9waW5m b19zZXRfZGVmYXVsdF92YWx1ZV9lbnVtLAorK307CisrCisgLyogLS0tIFJlc2VydmVkIFJlZ2lv biAtLS0gKi8KKyAKKyAvKgorZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvcWRldi1wcm9wZXJ0aWVz LXN5c3RlbS5oIGIvaW5jbHVkZS9ody9xZGV2LXByb3BlcnRpZXMtc3lzdGVtLmgKK2luZGV4IDk2 MDFhMTFhMDkuLjdmOWJjZjU5ZjIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2h3L3FkZXYtcHJvcGVy dGllcy1zeXN0ZW0uaAorKysrIGIvaW5jbHVkZS9ody9xZGV2LXByb3BlcnRpZXMtc3lzdGVtLmgK K0BAIC0xMyw2ICsxMyw3IEBAIGV4dGVybiBjb25zdCBQcm9wZXJ0eUluZm8gcWRldl9wcm9wX211 bHRpZmRfY29tcHJlc3Npb247CisgZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3Bf bWlnX21vZGU7CisgZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3BfZ3JhbnVsZV9t b2RlOworIGV4dGVybiBjb25zdCBQcm9wZXJ0eUluZm8gcWRldl9wcm9wX3plcm9fcGFnZV9kZXRl Y3Rpb247CisrZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3Bfc3NpZHNpemVfbW9k ZTsKKyBleHRlcm4gY29uc3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9sb3N0dGlja3BvbGljeTsK KyBleHRlcm4gY29uc3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9ibG9ja2Rldl9vbl9lcnJvcjsK KyBleHRlcm4gY29uc3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9iaW9zX2Noc190cmFuczsKK0BA IC02MCw2ICs2MSw4IEBAIGV4dGVybiBjb25zdCBQcm9wZXJ0eUluZm8gcWRldl9wcm9wX3ZpcnRp b19ncHVfb3V0cHV0X2xpc3Q7CisgI2RlZmluZSBERUZJTkVfUFJPUF9aRVJPX1BBR0VfREVURUNU SU9OKF9uLCBfcywgX2YsIF9kKSBcCisgICAgIERFRklORV9QUk9QX1NJR05FRChfbiwgX3MsIF9m LCBfZCwgcWRldl9wcm9wX3plcm9fcGFnZV9kZXRlY3Rpb24sIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgIFplcm9QYWdlRGV0ZWN0aW9uKQorKyNkZWZpbmUgREVGSU5FX1BST1BfU1NJRFNJWkVf TU9ERShfbiwgX3MsIF9mLCBfZCkgXAorKyAgICBERUZJTkVfUFJPUF9TSUdORUQoX24sIF9zLCBf ZiwgX2QsIHFkZXZfcHJvcF9zc2lkc2l6ZV9tb2RlLCBTc2lkU2l6ZU1vZGUpCisgI2RlZmluZSBE RUZJTkVfUFJPUF9MT1NUVElDS1BPTElDWShfbiwgX3MsIF9mLCBfZCkgXAorICAgICBERUZJTkVf UFJPUF9TSUdORUQoX24sIF9zLCBfZiwgX2QsIHFkZXZfcHJvcF9sb3N0dGlja3BvbGljeSwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgIExvc3RUaWNrUG9saWN5KQorZGlmZiAtLWdpdCBhL3Fh cGkvbWlzYy1hcm0uanNvbiBiL3FhcGkvbWlzYy1hcm0uanNvbgoraW5kZXggZjkyMWQ3NDBmMS4u NDE2YjQyNDBlMiAxMDA2NDQKKy0tLSBhL3FhcGkvbWlzYy1hcm0uanNvbgorKysrIGIvcWFwaS9t aXNjLWFybS5qc29uCitAQCAtNDUsMyArNDUsMTkgQEAKKyAjICAgICAgICAgICAgICAgICAgICAg eyAidmVyc2lvbiI6IDMsICJlbXVsYXRlZCI6IGZhbHNlLCAia2VybmVsIjogdHJ1ZSB9IF0gfQor ICMjCisgeyAnY29tbWFuZCc6ICdxdWVyeS1naWMtY2FwYWJpbGl0aWVzJywgJ3JldHVybnMnOiBb J0dJQ0NhcGFiaWxpdHknXSB9CisrCisrIyMKKysjIEBTc2lkU2l6ZU1vZGU6CisrIworKyMgU01N VXYzIFN1YnN0cmVhbUlEIHNpemUgY29uZmlndXJhdGlvbiBtb2RlLgorKyMKKysjIEBhdXRvOiBk ZXJpdmUgZnJvbSBob3N0IElPTU1VIGNhcGFiaWxpdGllcworKyMKKysjIFZhbHVlcyAwLTIwOiBT U0lEU0laRSB2YWx1ZSBpbiBiaXRzLiAgMCBkaXNhYmxlcyBTdWJzdHJlYW1JRC4KKysjCisrIyBT aW5jZTogMTEuMAorKyMjCisreyAnZW51bSc6ICdTc2lkU2l6ZU1vZGUnLAorKyAgJ2RhdGEnOiBb ICdhdXRvJywgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzkn LAorKyAgICAgICAgICAgICcxMCcsICcxMScsICcxMicsICcxMycsICcxNCcsICcxNScsICcxNics ICcxNycsICcxOCcsCisrICAgICAgICAgICAgJzE5JywgJzIwJyBdIH0gIyBvcmRlciBtYXR0ZXJz LCBzZWUgc3NpZHNpemVfbW9kZV90b192YWx1ZSgpCitkaWZmIC0tZ2l0IGEvcWFwaS9wcmFnbWEu anNvbiBiL3FhcGkvcHJhZ21hLmpzb24KK2luZGV4IDAyM2EyZWY3YmMuLjVhZDQ0ODcxNDcgMTAw NjQ0CistLS0gYS9xYXBpL3ByYWdtYS5qc29uCisrKysgYi9xYXBpL3ByYWdtYS5qc29uCitAQCAt NjcsNiArNjcsNyBAQAorICAgICAgICAgJ1MzOTBDcHVFbnRpdGxlbWVudCcsCisgICAgICAgICAn UzM5MENwdVBvbGFyaXphdGlvbicsCisgICAgICAgICAnUzM5MENwdVN0YXRlJywKKysgICAgICAg ICdTc2lkU2l6ZU1vZGUnLAorICAgICAgICAgJ1N0cmluZycsCisgICAgICAgICAnU3RyaW5nV3Jh cHBlcicsCisgICAgICAgICAnU3lzRW11VGFyZ2V0JywKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0tcWRldi1BZGQtYW4tT2FzTW9kZS1wcm9wZXJ0eS10eXBlLnBhdGNoIGIva3ZtLXFk ZXYtQWRkLWFuLU9hc01vZGUtcHJvcGVydHktdHlwZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNDg5YmM4Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLXFkZXYtQWRk LWFuLU9hc01vZGUtcHJvcGVydHktdHlwZS5wYXRjaApAQCAtMCwwICsxLDEyMCBAQAorRnJvbSBl NjFiZDU0MDhhZjgwZjMxNTBkODUwODk1NGE4Mzc1ODJhMzJmM2FhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IFR1 ZSwgMjQgTWFyIDIwMjYgMTQ6MDI6MjkgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwNjIvMTExXSBx ZGV2OiBBZGQgYW4gT2FzTW9kZSBwcm9wZXJ0eSB0eXBlCitNSU1FLVZlcnNpb246IDEuMAorQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBT TU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBS SEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6 IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBT aGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbNjIvMTExXSBjNzYwYjQyZDQ4NDA4 NTMyMzFlY2MxZTg1ZjdlMGY1MTRhNTM2ODZkIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKwor SklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC0xNjAxOTAKKwor SW50cm9kdWNlIGEgbmV3IGVudW0gdHlwZSBwcm9wZXJ0eSBhbGxvd2luZyB0byBzZXQgYW4gT3V0 cHV0IEFkZHJlc3MKK1NpemUuIFZhbHVlcyBhcmUgYXV0bywgMzIsIDM2LCA0MCwgNDIsIDQ0LCA0 OCwgNTIsIGFuZCA1Niwgd2hlcmUgYQordmFsdWUgb2YgTiBzcGVjaWZpZXMgYW4gTi1iaXQgT0FT LgorCitSZXZpZXdlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorVGVz dGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IFNo YW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorQWNrZWQtYnk6IE1hcmt1 cyBBcm1icnVzdGVyIDxhcm1icnVAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IE5hdGhhbiBD aGVuIDxuYXRoYW5jQG52aWRpYS5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDMyMzE4MjQ1NC4xNDE2 MTEwLTctbmF0aGFuY0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxw ZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkM2Qy ZGUzZDIyN2I2M2RiNTcxNWZjYWE4OWRmMzg4YzkyOWM3YWJhKQorU2lnbmVkLW9mZi1ieTogRXJp YyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaHcvY29yZS9xZGV2LXByb3Bl cnRpZXMtc3lzdGVtLmMgICAgfCAxMyArKysrKysrKysrKysrCisgaW5jbHVkZS9ody9xZGV2LXBy b3BlcnRpZXMtc3lzdGVtLmggfCAgMyArKysKKyBxYXBpL21pc2MtYXJtLmpzb24gICAgICAgICAg ICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5n ZWQsIDQ0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2h3L2NvcmUvcWRldi1wcm9wZXJ0 aWVzLXN5c3RlbS5jIGIvaHcvY29yZS9xZGV2LXByb3BlcnRpZXMtc3lzdGVtLmMKK2luZGV4IDY3 YjNjZTNhMTYuLjkzYjJjNThlYmUgMTAwNjQ0CistLS0gYS9ody9jb3JlL3FkZXYtcHJvcGVydGll cy1zeXN0ZW0uYworKysrIGIvaHcvY29yZS9xZGV2LXByb3BlcnRpZXMtc3lzdGVtLmMKK0BAIC03 MzcsNiArNzM3LDE5IEBAIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3Bfc3NpZHNpemVfbW9k ZSA9IHsKKyAgICAgLnNldF9kZWZhdWx0X3ZhbHVlID0gcWRldl9wcm9waW5mb19zZXRfZGVmYXVs dF92YWx1ZV9lbnVtLAorIH07CisgCisrLyogLS0tIE9hc01vZGUgLS0tICovCisrCisrUUVNVV9C VUlMRF9CVUdfT04oc2l6ZW9mKE9hc01vZGUpICE9IHNpemVvZihpbnQpKTsKKysKKytjb25zdCBQ cm9wZXJ0eUluZm8gcWRldl9wcm9wX29hc19tb2RlID0geworKyAgICAudHlwZSA9ICJPYXNNb2Rl IiwKKysgICAgLmRlc2NyaXB0aW9uID0gIm9hcyBtb2RlOiBhdXRvLCAzMiwgMzYsIDQwLCA0Miwg NDQsIDQ4LCA1MiwgNTYiLAorKyAgICAuZW51bV90YWJsZSA9ICZPYXNNb2RlX2xvb2t1cCwKKysg ICAgLmdldCA9IHFkZXZfcHJvcGluZm9fZ2V0X2VudW0sCisrICAgIC5zZXQgPSBxZGV2X3Byb3Bp bmZvX3NldF9lbnVtLAorKyAgICAuc2V0X2RlZmF1bHRfdmFsdWUgPSBxZGV2X3Byb3BpbmZvX3Nl dF9kZWZhdWx0X3ZhbHVlX2VudW0sCisrfTsKKysKKyAvKiAtLS0gUmVzZXJ2ZWQgUmVnaW9uIC0t LSAqLworIAorIC8qCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9xZGV2LXByb3BlcnRpZXMtc3lz dGVtLmggYi9pbmNsdWRlL2h3L3FkZXYtcHJvcGVydGllcy1zeXN0ZW0uaAoraW5kZXggN2Y5YmNm NTlmMi4uMTUzODAzYzM0YSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvcWRldi1wcm9wZXJ0aWVz LXN5c3RlbS5oCisrKysgYi9pbmNsdWRlL2h3L3FkZXYtcHJvcGVydGllcy1zeXN0ZW0uaAorQEAg LTE0LDYgKzE0LDcgQEAgZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3BfbWlnX21v ZGU7CisgZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3BfZ3JhbnVsZV9tb2RlOwor IGV4dGVybiBjb25zdCBQcm9wZXJ0eUluZm8gcWRldl9wcm9wX3plcm9fcGFnZV9kZXRlY3Rpb247 CisgZXh0ZXJuIGNvbnN0IFByb3BlcnR5SW5mbyBxZGV2X3Byb3Bfc3NpZHNpemVfbW9kZTsKKytl eHRlcm4gY29uc3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9vYXNfbW9kZTsKKyBleHRlcm4gY29u c3QgUHJvcGVydHlJbmZvIHFkZXZfcHJvcF9sb3N0dGlja3BvbGljeTsKKyBleHRlcm4gY29uc3Qg UHJvcGVydHlJbmZvIHFkZXZfcHJvcF9ibG9ja2Rldl9vbl9lcnJvcjsKKyBleHRlcm4gY29uc3Qg UHJvcGVydHlJbmZvIHFkZXZfcHJvcF9iaW9zX2Noc190cmFuczsKK0BAIC02Myw2ICs2NCw4IEBA IGV4dGVybiBjb25zdCBQcm9wZXJ0eUluZm8gcWRldl9wcm9wX3ZpcnRpb19ncHVfb3V0cHV0X2xp c3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBaZXJvUGFnZURldGVjdGlvbikKKyAjZGVmaW5l IERFRklORV9QUk9QX1NTSURTSVpFX01PREUoX24sIF9zLCBfZiwgX2QpIFwKKyAgICAgREVGSU5F X1BST1BfU0lHTkVEKF9uLCBfcywgX2YsIF9kLCBxZGV2X3Byb3Bfc3NpZHNpemVfbW9kZSwgU3Np ZFNpemVNb2RlKQorKyNkZWZpbmUgREVGSU5FX1BST1BfT0FTX01PREUoX24sIF9zLCBfZiwgX2Qp IFwKKysgICAgREVGSU5FX1BST1BfU0lHTkVEKF9uLCBfcywgX2YsIF9kLCBxZGV2X3Byb3Bfb2Fz X21vZGUsIE9hc01vZGUpCisgI2RlZmluZSBERUZJTkVfUFJPUF9MT1NUVElDS1BPTElDWShfbiwg X3MsIF9mLCBfZCkgXAorICAgICBERUZJTkVfUFJPUF9TSUdORUQoX24sIF9zLCBfZiwgX2QsIHFk ZXZfcHJvcF9sb3N0dGlja3BvbGljeSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIExvc3RU aWNrUG9saWN5KQorZGlmZiAtLWdpdCBhL3FhcGkvbWlzYy1hcm0uanNvbiBiL3FhcGkvbWlzYy1h cm0uanNvbgoraW5kZXggNDE2YjQyNDBlMi4uNGRjNjZkMDBlNSAxMDA2NDQKKy0tLSBhL3FhcGkv bWlzYy1hcm0uanNvbgorKysrIGIvcWFwaS9taXNjLWFybS5qc29uCitAQCAtNjEsMyArNjEsMzEg QEAKKyAgICdkYXRhJzogWyAnYXV0bycsICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2 JywgJzcnLCAnOCcsICc5JywKKyAgICAgICAgICAgICAnMTAnLCAnMTEnLCAnMTInLCAnMTMnLCAn MTQnLCAnMTUnLCAnMTYnLCAnMTcnLCAnMTgnLAorICAgICAgICAgICAgICcxOScsICcyMCcgXSB9 ICMgb3JkZXIgbWF0dGVycywgc2VlIHNzaWRzaXplX21vZGVfdG9fdmFsdWUoKQorKworKyMjCisr IyBAT2FzTW9kZToKKysjCisrIyBTTU1VdjMgT3V0cHV0IEFkZHJlc3MgU2l6ZSBjb25maWd1cmF0 aW9uIG1vZGUuCisrIworKyMgQGF1dG86IGRlcml2ZSBmcm9tIGhvc3QgSU9NTVUgY2FwYWJpbGl0 aWVzCisrIworKyMgQDMyOiAzMi1iaXQgb3V0cHV0IGFkZHJlc3Mgc2l6ZQorKyMKKysjIEAzNjog MzYtYml0IG91dHB1dCBhZGRyZXNzIHNpemUKKysjCisrIyBANDA6IDQwLWJpdCBvdXRwdXQgYWRk cmVzcyBzaXplCisrIworKyMgQDQyOiA0Mi1iaXQgb3V0cHV0IGFkZHJlc3Mgc2l6ZQorKyMKKysj IEA0NDogNDQtYml0IG91dHB1dCBhZGRyZXNzIHNpemUKKysjCisrIyBANDg6IDQ4LWJpdCBvdXRw dXQgYWRkcmVzcyBzaXplCisrIworKyMgQDUyOiA1Mi1iaXQgb3V0cHV0IGFkZHJlc3Mgc2l6ZQor KyMKKysjIEA1NjogNTYtYml0IG91dHB1dCBhZGRyZXNzIHNpemUKKysjCisrIyBTaW5jZTogMTEu MAorKyMjCisreyAnZW51bSc6ICdPYXNNb2RlJywKKysgICdkYXRhJzogWyAnYXV0bycsICczMics ICczNicsICc0MCcsICc0MicsICc0NCcsICc0OCcsICc1MicsICc1NicgXSB9CistLSAKKzIuNTIu MAorCgpkaWZmIC0tZ2l0IGEva3ZtLXFlbXUtb3B0aW9ucy5oeC1Eb2N1bWVudC1hcm0tc21tdXYz LWRldmljZS1zLWFjY2VsLXAucGF0Y2ggYi9rdm0tcWVtdS1vcHRpb25zLmh4LURvY3VtZW50LWFy bS1zbW11djMtZGV2aWNlLXMtYWNjZWwtcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40NzBlMjhkCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLXFlbXUtb3B0aW9ucy5o eC1Eb2N1bWVudC1hcm0tc21tdXYzLWRldmljZS1zLWFjY2VsLXAucGF0Y2gKQEAgLTAsMCArMSw5 MSBAQAorRnJvbSBlNjIyNjMxYmE0MDZhOWM3ODY0Y2E3YTNmYzgxMDRiYjA3ZmRlY2Q5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNv bT4KK0RhdGU6IFR1ZSwgMjQgTWFyIDIwMjYgMTQ6MDI6MzAgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SCAwNjQvMTExXSBxZW11LW9wdGlvbnMuaHg6IERvY3VtZW50IGFybS1zbW11djMgZGV2aWNlJ3Mg YWNjZWwKKyBwcm9wZXJ0aWVzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VS ZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBz dXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29h dGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRo YXQuY29tPgorUkgtQ29tbWl0OiBbNjQvMTExXSAzMTBlM2E5MDk0NThhZDMwOGY0ZmJmMmRjMzI5 NmY3YjA3MzNjNjRkIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9y ZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC0xNjAxOTAKKworQ29uZmxpY3RzOiBjb250 ZXh0dWFsIGNvbmZsaWN0IGluIHFlbXUtb3B0aW9ucy5oeCBiZWNhdXNlIHdlCitkb24ndCBoYXZl IC1kZXZpY2UgYW1kLWlvbW11IGRvY3VtZW50YXRpb24gaW50cm9kdWNlZCBieSBjb21taXQKKzkx ODk3M2YxZDQ3NiAoImFtZF9pb21tdTogRG9jdW1lbnQgJy1kZXZpY2UgYW1kLWlvbW11JyBjb21t b24gb3B0aW9ucyIpCisKK0RvY3VtZW50IGFybS1zbW11djMgcHJvcGVydGllcyBmb3Igc2V0dGlu ZyBIVy1hY2NlbGVyYXRpb24sCitSYW5nZSBJbnZhbGlkYXRpb24sIGFuZCBBZGRyZXNzIFRyYW5z bGF0aW9uIFNlcnZpY2VzIHN1cHBvcnQsIGFzCit3ZWxsIGFzIHNldHRpbmcgT3V0cHV0IEFkZHJl c3Mgc2l6ZSBhbmQgU3Vic3RyZWFtIElEIHNpemUuCisKK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2Vy IDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBTaGFtZWVyIEtvbG90aHVtIDxza29sb3RodW10 aG9AbnZpZGlhLmNvbT4KK1Rlc3RlZC1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhv QG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEu Y29tPgorTWVzc2FnZS1pZDogMjAyNjAzMjMxODI0NTQuMTQxNjExMC05LW5hdGhhbmNAbnZpZGlh LmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYWYzNWJjMGMxNDZjZWQ0NGY2YmZlOTg1 ODc0OTVhZTE5M2FkY2VjNCkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KKy0tLQorIHFlbXUtb3B0aW9ucy5oeCB8IDMyICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3FlbXUtb3B0aW9ucy5oeCBiL3FlbXUtb3B0aW9ucy5o eAoraW5kZXggOGVjYTdmYWE5NC4uNjgwYTkwM2RiOCAxMDA2NDQKKy0tLSBhL3FlbXUtb3B0aW9u cy5oeAorKysrIGIvcWVtdS1vcHRpb25zLmh4CitAQCAtMTIzMSwxMyArMTIzMSw0MyBAQCBTUlNU CisgICAgIGBgYXctYml0cz12YWxgYCAodmFsIGJldHdlZW4gMzIgYW5kIDY0LCBkZWZhdWx0IGRl cGVuZHMgb24gbWFjaGluZSkKKyAgICAgICAgIFRoaXMgZGVjaWRlcyB0aGUgYWRkcmVzcyB3aWR0 aCBvZiB0aGUgSU9WQSBhZGRyZXNzIHNwYWNlLgorIAorLWBgLWRldmljZSBhcm0tc21tdXYzLHBy aW1hcnktYnVzPWlkYGAKKytgYC1kZXZpY2UgYXJtLXNtbXV2MyxwcmltYXJ5LWJ1cz1pZFssb3B0 aW9uPS4uLl1gYAorICAgICBUaGlzIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IGBgLW1hY2hpbmUgdmly dGBgIChBUk0pLgorIAorICAgICBgYHByaW1hcnktYnVzPWlkYGAKKyAgICAgICAgIEFjY2VwdHMg ZWl0aGVyIHRoZSBkZWZhdWx0IHJvb3QgY29tcGxleCAocGNpZS4wKSBvciBhCisgICAgICAgICBw eGItcGNpZSBiYXNlZCByb290IGNvbXBsZXguCisgCisrICAgIGBgYWNjZWw9b258b2ZmYGAgKGRl ZmF1bHQ6IG9mZikKKysgICAgICAgIEVuYWJsZXMgZ3Vlc3QgdG8gbGV2ZXJhZ2UgaG9zdCBTTU1V djMgZmVhdHVyZXMgZm9yIGFjY2VsZXJhdGlvbi4KKysgICAgICAgIEVuYWJsaW5nIGFjY2VsIGNv bmZpZ3VyZXMgdGhlIGhvc3QgU01NVXYzIGluIG5lc3RlZCBtb2RlIHRvIHN1cHBvcnQKKysgICAg ICAgIHZmaW8tcGNpIHBhc3N0aHJvdWdoLgorKworKyAgICAgVGhlIGZvbGxvd2luZyBvcHRpb25z IGFyZSBhdmFpbGFibGUgd2hlbiBhY2NlbD1vbi4KKysgICAgIE5vdGU6ICdhdXRvJyBtb2RlIGlz IG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgorKworKyAgICBgYHJpbD1vbnxvZmZgYCAoZGVmYXVs dDogb24pCisrICAgICAgICBTdXBwb3J0IGZvciBSYW5nZSBJbnZhbGlkYXRpb24sIHdoaWNoIGFs bG93cyB0aGUgU01NVXYzIGRyaXZlciB0bworKyAgICAgICAgaW52YWxpZGF0ZSBUTEIgZW50cmll cyBmb3IgYSByYW5nZSBvZiBJT1ZBcyBhdCBvbmNlIGluc3RlYWQgb2YgaXNzdWluZworKyAgICAg ICAgc2VwYXJhdGUgY29tbWFuZHMgdG8gaW52YWxpZGF0ZSBlYWNoIHBhZ2UuIE11c3QgbWF0Y2gg d2l0aCBob3N0IFNNTVV2MworKyAgICAgICAgUmFuZ2UgSW52YWxpZGF0aW9uIHN1cHBvcnQuCisr CisrICAgIGBgYXRzPW9ufG9mZmBgIChkZWZhdWx0OiBvZmYpCisrICAgICAgICBTdXBwb3J0IGZv ciBBZGRyZXNzIFRyYW5zbGF0aW9uIFNlcnZpY2VzLCB3aGljaCBlbmFibGVzIFBDSWUgZGV2aWNl cyB0bworKyAgICAgICAgY2FjaGUgYWRkcmVzcyB0cmFuc2xhdGlvbnMgaW4gdGhlaXIgbG9jYWwg VExCIGFuZCByZWR1Y2UgbGF0ZW5jeS4gSG9zdAorKyAgICAgICAgU01NVXYzIG11c3Qgc3VwcG9y dCBBVFMgaW4gb3JkZXIgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZSBmb3IgdGhlIHZJT01NVS4KKysK KysgICAgYGBvYXM9dmFsYGAgKHN1cHBvcnRlZCB2YWx1ZXMgYXJlIDQ0IGFuZCA0OC4gZGVmYXVs dDogNDQpCisrICAgICAgICBTZXRzIHRoZSBPdXRwdXQgQWRkcmVzcyBTaXplIGluIGJpdHMuIFRo ZSB2YWx1ZSBzZXQgaGVyZSBtdXN0IGJlIGxlc3MKKysgICAgICAgIHRoYW4gb3IgZXF1YWwgdG8g dGhlIGhvc3QgU01NVXYzJ3Mgc3VwcG9ydGVkIE9BUywgc28gdGhhdCB0aGUKKysgICAgICAgIGlu dGVybWVkaWF0ZSBwaHlzaWNhbCBhZGRyZXNzZXMgKElQQSkgY29uc3VtZWQgYnkgaG9zdCBTTU1V IGZvciBzdGFnZS0yCisrICAgICAgICB0cmFuc2xhdGlvbiBkbyBub3QgZXhjZWVkIHRoZSBob3N0 J3MgbWF4IHN1cHBvcnRlZCBJUEEgc2l6ZS4KKysKKysgICAgYGBzc2lkc2l6ZT12YWxgYCAodmFs IGJldHdlZW4gMCBhbmQgMjAuIGRlZmF1bHQ6IDApCisrICAgICAgICBTZXRzIHRoZSBTdWJzdHJl YW0gSUQgc2l6ZSBpbiBiaXRzLiBXaGVuIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLAorKyAgICAg ICAgUEFTSUQgY2FwYWJpbGl0eSBpcyBhZHZlcnRpc2VkIHRvIHRoZSB2SU9NTVUgYW5kIGFjY2Vs ZXJhdGVkIHVzZSBjYXNlcworKyAgICAgICAgc3VjaCBhcyBTaGFyZWQgVmlydHVhbCBBZGRyZXNz aW5nIChTVkEpIGFyZSBzdXBwb3J0ZWQuCisrCisgRVJTVAorIAorIERFRigibmFtZSIsIEhBU19B UkcsIFFFTVVfT1BUSU9OX25hbWUsCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLXFl bXUtb3B0aW9ucy5oeC1TdXBwb3J0LWF1dG8tZm9yLWFjY2VsLVNNTVV2My1wcm9wZXIucGF0Y2gg Yi9rdm0tcWVtdS1vcHRpb25zLmh4LVN1cHBvcnQtYXV0by1mb3ItYWNjZWwtU01NVXYzLXByb3Bl ci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzEyNjE5Ci0tLSAv ZGV2L251bGwKKysrIGIva3ZtLXFlbXUtb3B0aW9ucy5oeC1TdXBwb3J0LWF1dG8tZm9yLWFjY2Vs LVNNTVV2My1wcm9wZXIucGF0Y2gKQEAgLTAsMCArMSw5NCBAQAorRnJvbSBiM2UyMzA1YTExNTkw M2E1ZjdhODg3YWRlNDg2ZjA0MTUwZjk1OTg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogTmF0aGFuIENoZW4gPG5hdGhhbmNAbnZpZGlhLmNvbT4KK0RhdGU6IE1vbiwgOCBKdW4gMjAy NiAxMDo0OTowMCAtMDcwMAorU3ViamVjdDogW1BBVENIIDA3NC8xMTFdIHFlbXUtb3B0aW9ucy5o eDogU3VwcG9ydCAiYXV0byIgZm9yIGFjY2VsIFNNTVV2MworIHByb3BlcnRpZXMKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9y IGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNr ZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs3NC8xMTFd IDA4NTdlOTlhNDYzNWJhMDdiNzJjMTRjNDdlNWE3ODgyMTQwZDc0MDAgKGVhdWdlcjEvY2VudG9z LXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9S SEVMLTE2MzU5NgorCitDb25mbGljdHM6IGNvbnRleHR1YWwgY29uZmxpY3QgaW4gcWVtdS1vcHRp b25zLmh4IGFzIHdlIGRvbid0CitoYXZlIC1kZXZpY2UgYW1kLWlvbW11IGRvY3VtZW50YXRpb24g ZG93bnN0cmVhbQorCitVcGRhdGUgZG9jdW1lbnRhdGlvbiBub3cgdGhhdCAiYXV0byIgaXMgc3Vw cG9ydGVkIGZvciBhY2NlbGVyYXRlZCBTTU1VdjMKK3Byb3BlcnRpZXMuCisKK1Jldmlld2VkLWJ5 OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSZXZpZXdlZC1ieTogU2hhbWVl ciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOYXRo YW4gQ2hlbiA8bmF0aGFuY0BudmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitNZXNzYWdlLWlkOiAyMDI2MDYwODE3NDkwMC4yMjI3MzQwLTEw LW5hdGhhbmNAbnZpZGlhLmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIu bWF5ZGVsbEBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMWI4YzBlZGZl ZTA4YzNkOTZjZjgwY2FiNWQ4NTFjMDU5ZmI3YzE2NykKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0tLQorIHFlbXUtb3B0aW9ucy5oeCB8IDI1ICsr KysrKysrKysrKysrKysrKystLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3FlbXUtb3B0aW9ucy5oeCBiL3FlbXUt b3B0aW9ucy5oeAoraW5kZXggNjgwYTkwM2RiOC4uM2ZlMjE3MWU3MCAxMDA2NDQKKy0tLSBhL3Fl bXUtb3B0aW9ucy5oeAorKysrIGIvcWVtdS1vcHRpb25zLmh4CitAQCAtMTI0MywzMSArMTI0Myw0 NCBAQCBTUlNUCisgICAgICAgICBFbmFibGluZyBhY2NlbCBjb25maWd1cmVzIHRoZSBob3N0IFNN TVV2MyBpbiBuZXN0ZWQgbW9kZSB0byBzdXBwb3J0CisgICAgICAgICB2ZmlvLXBjaSBwYXNzdGhy b3VnaC4KKyAKKy0gICAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHdoZW4g YWNjZWw9b24uCistICAgICBOb3RlOiAnYXV0bycgbW9kZSBpcyBub3QgY3VycmVudGx5IHN1cHBv cnRlZC4KKysgICAgVGhlIGZvbGxvd2luZyBvcHRpb25zIHdpbGwgYmUgc2V0IHRvIGF1dG8gYnkg ZGVmYXVsdCBpZiBub3QgbWFudWFsbHkKKysgICAgc2V0LiBXaGVuIGFjY2VsPW9uIGFuZCB0aGVz ZSBwcm9wZXJ0aWVzIGFyZSBzZXQgdG8gYXV0bywgdGhlIHZhbHVlIGlzCisrICAgIGRlcml2ZWQg ZnJvbSB0aGUgaG9zdCBTTU1VdjMgY2FwYWJpbGl0aWVzIHZpYSBJT01NVV9HRVRfSFdfSU5GTy4g V2l0aAorKyAgICBhY2NlbD1vbiwgdGhpcyByZXF1aXJlcyBhdCBsZWFzdCBvbmUgY29sZC1wbHVn Z2VkIHZmaW8tcGNpIGRldmljZTsgaWYKKysgICAgbm9uZSBpcyBwcmVzZW50IGF0IG1hY2hpbmUg aW5pdCwgUUVNVSB3aWxsIGFib3J0LgorIAorLSAgICBgYHJpbD1vbnxvZmZgYCAoZGVmYXVsdDog b24pCisrICAgIElmIGFjY2VsPW9mZiwgYXV0byB2YWx1ZXMgcmVzb2x2ZSB0byB0aGUgbm9uLWFj Y2VsIGRlZmF1bHRzIGdpdmVuIGJlbG93LgorKworKyAgICBgYHJpbD1vbnxvZmZ8YXV0b2BgIChk ZWZhdWx0OiBhdXRvKQorICAgICAgICAgU3VwcG9ydCBmb3IgUmFuZ2UgSW52YWxpZGF0aW9uLCB3 aGljaCBhbGxvd3MgdGhlIFNNTVV2MyBkcml2ZXIgdG8KKyAgICAgICAgIGludmFsaWRhdGUgVExC IGVudHJpZXMgZm9yIGEgcmFuZ2Ugb2YgSU9WQXMgYXQgb25jZSBpbnN0ZWFkIG9mIGlzc3VpbmcK KyAgICAgICAgIHNlcGFyYXRlIGNvbW1hbmRzIHRvIGludmFsaWRhdGUgZWFjaCBwYWdlLiBNdXN0 IG1hdGNoIHdpdGggaG9zdCBTTU1VdjMKKyAgICAgICAgIFJhbmdlIEludmFsaWRhdGlvbiBzdXBw b3J0LgorIAorLSAgICBgYGF0cz1vbnxvZmZgYCAoZGVmYXVsdDogb2ZmKQorKyAgICAgICAgLSBX aXRoIGFjY2VsPW9mZiwgYXV0byBpcyByZXNvbHZlZCB0byAnb24nLgorKworKyAgICBgYGF0cz1v bnxvZmZ8YXV0b2BgIChkZWZhdWx0OiBhdXRvKQorICAgICAgICAgU3VwcG9ydCBmb3IgQWRkcmVz cyBUcmFuc2xhdGlvbiBTZXJ2aWNlcywgd2hpY2ggZW5hYmxlcyBQQ0llIGRldmljZXMgdG8KKyAg ICAgICAgIGNhY2hlIGFkZHJlc3MgdHJhbnNsYXRpb25zIGluIHRoZWlyIGxvY2FsIFRMQiBhbmQg cmVkdWNlIGxhdGVuY3kuIEhvc3QKKyAgICAgICAgIFNNTVV2MyBtdXN0IHN1cHBvcnQgQVRTIGlu IG9yZGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUgZm9yIHRoZSB2SU9NTVUuCisgCistICAgIGBg b2FzPXZhbGBgIChzdXBwb3J0ZWQgdmFsdWVzIGFyZSA0NCBhbmQgNDguIGRlZmF1bHQ6IDQ0KQor KyAgICAgICAgLSBXaXRoIGFjY2VsPW9mZiwgYXV0byBpcyByZXNvbHZlZCB0byAnb2ZmJy4KKysK KysgICAgYGBvYXM9dmFsfGF1dG9gYCAoc3VwcG9ydGVkIHZhbHVlcyBhcmUgNDQgYW5kIDQ4LiBk ZWZhdWx0OiBhdXRvKQorICAgICAgICAgU2V0cyB0aGUgT3V0cHV0IEFkZHJlc3MgU2l6ZSBpbiBi aXRzLiBUaGUgdmFsdWUgc2V0IGhlcmUgbXVzdCBiZSBsZXNzCisgICAgICAgICB0aGFuIG9yIGVx dWFsIHRvIHRoZSBob3N0IFNNTVV2MydzIHN1cHBvcnRlZCBPQVMsIHNvIHRoYXQgdGhlCisgICAg ICAgICBpbnRlcm1lZGlhdGUgcGh5c2ljYWwgYWRkcmVzc2VzIChJUEEpIGNvbnN1bWVkIGJ5IGhv c3QgU01NVSBmb3Igc3RhZ2UtMgorICAgICAgICAgdHJhbnNsYXRpb24gZG8gbm90IGV4Y2VlZCB0 aGUgaG9zdCdzIG1heCBzdXBwb3J0ZWQgSVBBIHNpemUuCisgCistICAgIGBgc3NpZHNpemU9dmFs YGAgKHZhbCBiZXR3ZWVuIDAgYW5kIDIwLiBkZWZhdWx0OiAwKQorKyAgICAgICAgLSBXaXRoIGFj Y2VsPW9mZiwgYXV0byBpcyByZXNvbHZlZCB0byA0NC4KKysKKysgICAgYGBzc2lkc2l6ZT12YWx8 YXV0b2BgICh2YWwgYmV0d2VlbiAwIGFuZCAyMC4gZGVmYXVsdDogYXV0bykKKyAgICAgICAgIFNl dHMgdGhlIFN1YnN0cmVhbSBJRCBzaXplIGluIGJpdHMuIFdoZW4gc2V0IHRvIGEgbm9uLXplcm8g dmFsdWUsCisgICAgICAgICBQQVNJRCBjYXBhYmlsaXR5IGlzIGFkdmVydGlzZWQgdG8gdGhlIHZJ T01NVSBhbmQgYWNjZWxlcmF0ZWQgdXNlIGNhc2VzCisgICAgICAgICBzdWNoIGFzIFNoYXJlZCBW aXJ0dWFsIEFkZHJlc3NpbmcgKFNWQSkgYXJlIHN1cHBvcnRlZC4KKyAKKysgICAgICAgIC0gV2l0 aCBhY2NlbD1vZmYsIGF1dG8gaXMgcmVzb2x2ZWQgdG8gMC4KKysKKyBFUlNUCisgCisgREVGKCJu YW1lIiwgSEFTX0FSRywgUUVNVV9PUFRJT05fbmFtZSwKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1n aXQgYS9rdm0tcmgtYWFyY2g2NC1yaC1kZXZpY2VzLm1hay1BZGQtQ09ORklHX1RFR1JBMjQxX0NN RFFWLnBhdGNoIGIva3ZtLXJoLWFhcmNoNjQtcmgtZGV2aWNlcy5tYWstQWRkLUNPTkZJR19URUdS QTI0MV9DTURRVi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTUy NzA0Ci0tLSAvZGV2L251bGwKKysrIGIva3ZtLXJoLWFhcmNoNjQtcmgtZGV2aWNlcy5tYWstQWRk LUNPTkZJR19URUdSQTI0MV9DTURRVi5wYXRjaApAQCAtMCwwICsxLDM4IEBACitGcm9tIDg4YzY1 MGJlMDEyOGU4ODMxOWQ2M2NlZWQ2ZDlmMDk5YTRhMjVmMmUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitEYXRlOiBUaHUs IDcgTWF5IDIwMjYgMDg6NTk6NTYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxMTEvMTExXSByaDog YWFyY2g2NC1yaC1kZXZpY2VzLm1hazogQWRkIENPTkZJR19URUdSQTI0MV9DTURRVgorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVy aWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBm b3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1B Y2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzExMS8x MTFdIDRjOGQ1ODI2ZDJlNzdlZDg0MzcyNzNkOTE5MjhiZDYxNjYyMzY4MDcgKGVhdWdlcjEvY2Vu dG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dz ZS9SSEVMLTczNzk4CitVUFNUUkVBTTogUkggT25seQorCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBjb25maWdzL2RldmljZXMvYWFyY2g2 NC1zb2Z0bW11L2FhcmNoNjQtcmgtZGV2aWNlcy5tYWsgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3MvZGV2aWNlcy9hYXJjaDY0LXNv ZnRtbXUvYWFyY2g2NC1yaC1kZXZpY2VzLm1hayBiL2NvbmZpZ3MvZGV2aWNlcy9hYXJjaDY0LXNv ZnRtbXUvYWFyY2g2NC1yaC1kZXZpY2VzLm1haworaW5kZXggOTJkMGIzMjJkMC4uYjBiZmMxOGFm MyAxMDA2NDQKKy0tLSBhL2NvbmZpZ3MvZGV2aWNlcy9hYXJjaDY0LXNvZnRtbXUvYWFyY2g2NC1y aC1kZXZpY2VzLm1haworKysrIGIvY29uZmlncy9kZXZpY2VzL2FhcmNoNjQtc29mdG1tdS9hYXJj aDY0LXJoLWRldmljZXMubWFrCitAQCAtNCw2ICs0LDcgQEAgQ09ORklHX0FSTV9HSUNfS1ZNPXkK KyBDT05GSUdfQVJNX0dJQ1YzPXkKKyBDT05GSUdfQVJNX0dJQz15CisgQ09ORklHX0FSTV9TTU1V VjM9eQorK0NPTkZJR19URUdSQTI0MV9DTURRVj15CisgQ09ORklHX0FSTV9WSVJUPXkKKyBDT05G SUdfQ1hMPXkKKyBDT05GSUdfQ1hMX01FTV9ERVZJQ0U9eQorLS0gCisyLjUyLjAKKwoKZGlmZiAt LWdpdCBhL2t2bS1zeXN0ZW0taW9tbXVmZC1SZW1vdmUtdW51c2VkLXZpb21tdS1wb2ludGVyLWZy b20tSU9NLnBhdGNoIGIva3ZtLXN5c3RlbS1pb21tdWZkLVJlbW92ZS11bnVzZWQtdmlvbW11LXBv aW50ZXItZnJvbS1JT00ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NDYyMDg4ZAotLS0gL2Rldi9udWxsCisrKyBiL2t2bS1zeXN0ZW0taW9tbXVmZC1SZW1vdmUtdW51 c2VkLXZpb21tdS1wb2ludGVyLWZyb20tSU9NLnBhdGNoCkBAIC0wLDAgKzEsNjkgQEAKK0Zyb20g YWFhMjExNDdhYTBmM2NjNGJlOGM5ZjE2MWMxNDc0MDBmMjg0Nzg4OCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29t PgorRGF0ZTogVHVlLCA5IEp1biAyMDI2IDEyOjI1OjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0gg MDgzLzExMV0gc3lzdGVtL2lvbW11ZmQ6IFJlbW92ZSB1bnVzZWQgdmlvbW11IHBvaW50ZXIgZnJv bQorIElPTU1VRkRWZXZlbnRxCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorUkgtTWVyZ2VS ZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRlZCBTTU1VIGFuZCBDTURRViBz dXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQtYnk6IEPDqWRyaWMgTGUgR29h dGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZpbiBTaGFuIDxnc2hhbkByZWRo YXQuY29tPgorUkgtQ29tbWl0OiBbODMvMTExXSBmMjZiZjYwYWRhODJjYWY1ZDVlOGNiZGNiNjQz ZWE5ZTU5OTVkYmNmIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkKKworSklSQTogaHR0cHM6Ly9y ZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5OAorCitUaGUgdmlvbW11IGZpZWxk IGlzIGFzc2lnbmVkIGJ1dCBuZXZlciB1c2VkLiBDYWxsZXJzIGZyZWVpbmcgdGhlCit2ZXZlbnRx IGFscmVhZHkgaGF2ZSBhY2Nlc3MgdG8gdGhlIElPTU1VRkRWaW9tbXUgb2JqZWN0IHRocm91Z2gg b3RoZXIKK3JlZmVyZW5jZXMsIHNvIHRoaXMgZmllbGQgaXMgcmVkdW5kYW50LgorCitSZW1vdmlu ZyBpdCBhbHNvIHNpbXBsaWZpZXMgdXBjb21pbmcgY2hhbmdlcyB3aGVyZSB2ZXZlbnRxIGlzCith bGxvY2F0ZWQgYmFzZWQgb24gdGhlIHZpb21tdSBpZCBiZWZvcmUgdGhlIElPTU1VRkRWaW9tbXUg b2JqZWN0IGlzCitjcmVhdGVkIChlLmcuIHZlbmRvciBDTURRVi1iYXNlZCB2ZXZlbnRxIGFsbG9j YXRpb24pLgorCitObyBmdW5jdGlvbmFsIGNoYW5nZS4KKworUmV2aWV3ZWQtYnk6IE5pY29saW4g Q2hlbiA8bmljb2xpbmNAbnZpZGlhLmNvbT4KK1Jldmlld2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmlj LmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IE5pY29saW4gQ2hlbiA8bmljb2xpbmNAbnZp ZGlhLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0gPHNrb2xvdGh1bXRob0Bu dmlkaWEuY29tPgorVGVzdGVkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+ CitNZXNzYWdlLWlkOiAyMDI2MDYwOTExMjU1Mi4zNzg5OTktNi1za29sb3RodW10aG9AbnZpZGlh LmNvbQorU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOWU2N2E1MGVhOTFkZjUyODU4ODQ5ZDBj MzY4OTFlN2E4OTMxYzA1ZikKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJA cmVkaGF0LmNvbT4KKy0tLQorIGh3L2FybS9zbW11djMtYWNjZWwuYyAgICB8IDEgLQorIGluY2x1 ZGUvc3lzdGVtL2lvbW11ZmQuaCB8IDEgLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2h3L2FybS9zbW11djMtYWNjZWwuYyBiL2h3L2FybS9zbW11djMt YWNjZWwuYworaW5kZXggNGNlZjQ4NzY3OS4uNzBiMjU4MWMxNyAxMDA2NDQKKy0tLSBhL2h3L2Fy bS9zbW11djMtYWNjZWwuYworKysrIGIvaHcvYXJtL3NtbXV2My1hY2NlbC5jCitAQCAtNTUzLDcg KzU1Myw2IEBAIGJvb2wgc21tdXYzX2FjY2VsX2FsbG9jX3ZldmVudHEoU01NVXYzU3RhdGUgKnMs IEVycm9yICoqZXJycCkKKyAgICAgdmV2ZW50cSA9IGdfbmV3MChJT01NVUZEVmV2ZW50cSwgMSk7 CisgICAgIHZldmVudHEtPnZldmVudHFfaWQgPSB2ZXZlbnRxX2lkOworICAgICB2ZXZlbnRxLT52 ZXZlbnRxX2ZkID0gdmV2ZW50cV9mZDsKKy0gICAgdmV2ZW50cS0+dmlvbW11ID0gYWNjZWwtPnZp b21tdTsKKyAgICAgYWNjZWwtPnZldmVudHEgPSB2ZXZlbnRxOworIAorICAgICAvKiBTZXQgdXAg ZXZlbnQgaGFuZGxlciBmb3IgdmV2ZW50cSBmZCAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lz dGVtL2lvbW11ZmQuaCBiL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAoraW5kZXggMmFiYjdjOTYw NS4uNDU5MTA5NmMzZSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvc3lzdGVtL2lvbW11ZmQuaAorKysr IGIvaW5jbHVkZS9zeXN0ZW0vaW9tbXVmZC5oCitAQCAtNTgsNyArNTgsNiBAQCB0eXBlZGVmIHN0 cnVjdCBJT01NVUZEVmRldiB7CisgCisgLyogVmlydHVhbCBldmVudCBxdWV1ZSBpbnRlcmZhY2Ug Zm9yIGEgdklPTU1VICovCisgdHlwZWRlZiBzdHJ1Y3QgSU9NTVVGRFZldmVudHEgeworLSAgICBJ T01NVUZEVmlvbW11ICp2aW9tbXU7CisgICAgIHVpbnQzMl90IHZldmVudHFfaWQ7CisgICAgIHVp bnQzMl90IHZldmVudHFfZmQ7CisgICAgIHVpbnQzMl90IGxhc3RfZXZlbnRfc2VxOyAvKiBTZXF1 ZW5jZSBudW1iZXIgb2YgbGFzdCBwcm9jZXNzZWQgZXZlbnQgKi8KKy0tIAorMi41Mi4wCisKCmRp ZmYgLS1naXQgYS9rdm0tc3lzdGVtLW1lbW9yeS1GYWN0b3ItYWRkcmVzc19zcGFjZV9pc19pby1v dXQucGF0Y2ggYi9rdm0tc3lzdGVtLW1lbW9yeS1GYWN0b3ItYWRkcmVzc19zcGFjZV9pc19pby1v dXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEzZGUxNgotLS0g L2Rldi9udWxsCisrKyBiL2t2bS1zeXN0ZW0tbWVtb3J5LUZhY3Rvci1hZGRyZXNzX3NwYWNlX2lz X2lvLW91dC5wYXRjaApAQCAtMCwwICsxLDkyIEBACitGcm9tIDczOWE3NzFjY2UyMzJmZTU2YjI5 MjkxMDkyZGQ3YzEwZDFmMmIzNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VU Ri04P3E/UGhpbGlwcGU9MjBNYXRoaWV1LURhdWQ9QzM9QTk/PSA8cGhpbG1kQGxpbmFyby5vcmc+ CitEYXRlOiBNb24sIDI5IFNlcCAyMDI1IDE0OjM2OjE5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0gg MDQ2LzExMV0gc3lzdGVtL21lbW9yeTogRmFjdG9yIGFkZHJlc3Nfc3BhY2VfaXNfaW8oKSBvdXQK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1 Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitSSC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBS ZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5kIENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29t PgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdzaGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6 IFs0Ni8xMTFdIDFkY2RkYTljYmIwZGI5MjE1YTY1NGU4ZTdlNmJhYjZiZmI4NDcwMTQgKGVhdWdl cjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBodHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0 L2Jyb3dzZS9SSEVMLTczNzk2CisKK0ZhY3RvciBhZGRyZXNzX3NwYWNlX2lzX2lvKCkgb3V0IG9m IGNwdV9waHlzaWNhbF9tZW1vcnlfaXNfaW8oKS4KKworU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUg TWF0aGlldS1EYXVkw6kgPHBoaWxtZEBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IFRob21hcyBI dXRoIDx0aHV0aEByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IFJpY2hhcmQgSGVuZGVyc29uIDxy aWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnPgorTWVzc2FnZS1JZDogPDIwMjUxMDAyMDg0MjAz LjYzODk5LTMtcGhpbG1kQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4 Mzk5NzZlOWRhNGI1NzdhY2EyODQ4NDdiN2U5NjUzMzJmMmNhNjg3KQorU2lnbmVkLW9mZi1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgaW5jbHVkZS9zeXN0ZW0v bWVtb3J5LmggfCAgOSArKysrKysrKysKKyBzeXN0ZW0vcGh5c21lbS5jICAgICAgICB8IDIxICsr KysrKysrKysrKy0tLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzdGVtL21lbW9yeS5oIGIv aW5jbHVkZS9zeXN0ZW0vbWVtb3J5LmgKK2luZGV4IGUyY2Q2ZWQxMjYuLjQ5MTMyMDZjOGMgMTAw NjQ0CistLS0gYS9pbmNsdWRlL3N5c3RlbS9tZW1vcnkuaAorKysrIGIvaW5jbHVkZS9zeXN0ZW0v bWVtb3J5LmgKK0BAIC0zMDE3LDYgKzMwMTcsMTUgQEAgc3RhdGljIGlubGluZSBNZW1vcnlSZWdp b24gKmFkZHJlc3Nfc3BhY2VfdHJhbnNsYXRlKEFkZHJlc3NTcGFjZSAqYXMsCisgYm9vbCBhZGRy ZXNzX3NwYWNlX2FjY2Vzc192YWxpZChBZGRyZXNzU3BhY2UgKmFzLCBod2FkZHIgYWRkciwgaHdh ZGRyIGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfd3JpdGUs IE1lbVR4QXR0cnMgYXR0cnMpOworIAorKy8qKgorKyAqIGFkZHJlc3Nfc3BhY2VfaXNfaW86IGNo ZWNrIHdoZXRoZXIgYW4gZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzc2VzCisrICogICAgICAgICAgICAg ICAgICAgICAgd2hpdGhpbiBhbiBhZGRyZXNzIHNwYWNlIGlzIEkvTyBtZW1vcnkuCisrICoKKysg KiBAYXM6ICNBZGRyZXNzU3BhY2UgdG8gYmUgYWNjZXNzZWQKKysgKiBAYWRkcjogYWRkcmVzcyB3 aXRoaW4gdGhhdCBhZGRyZXNzIHNwYWNlCisrICovCisrYm9vbCBhZGRyZXNzX3NwYWNlX2lzX2lv KEFkZHJlc3NTcGFjZSAqYXMsIGh3YWRkciBhZGRyKTsKKysKKyAvKiBhZGRyZXNzX3NwYWNlX21h cDogbWFwIGEgcGh5c2ljYWwgbWVtb3J5IHJlZ2lvbiBpbnRvIGEgaG9zdCB2aXJ0dWFsIGFkZHJl c3MKKyAgKgorICAqIE1heSBtYXAgYSBzdWJzZXQgb2YgdGhlIHJlcXVlc3RlZCByYW5nZSwgZ2l2 ZW4gYnkgYW5kIHJldHVybmVkIGluIEBwbGVuLgorZGlmZiAtLWdpdCBhL3N5c3RlbS9waHlzbWVt LmMgYi9zeXN0ZW0vcGh5c21lbS5jCitpbmRleCBlNWRkNzYwZTBiLi4yZTM0MjA1YWQ3IDEwMDY0 NAorLS0tIGEvc3lzdGVtL3BoeXNtZW0uYworKysrIGIvc3lzdGVtL3BoeXNtZW0uYworQEAgLTMz NzYsNiArMzM3NiwxNyBAQCBib29sIGFkZHJlc3Nfc3BhY2VfYWNjZXNzX3ZhbGlkKEFkZHJlc3NT cGFjZSAqYXMsIGh3YWRkciBhZGRyLAorICAgICByZXR1cm4gZmxhdHZpZXdfYWNjZXNzX3ZhbGlk KGZ2LCBhZGRyLCBsZW4sIGlzX3dyaXRlLCBhdHRycyk7CisgfQorIAorK2Jvb2wgYWRkcmVzc19z cGFjZV9pc19pbyhBZGRyZXNzU3BhY2UgKmFzLCBod2FkZHIgYWRkcikKKyt7CisrICAgIE1lbW9y eVJlZ2lvbiAqbXI7CisrCisrICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKKysgICAgbXIgPSBh ZGRyZXNzX3NwYWNlX3RyYW5zbGF0ZShhcywgYWRkciwgJmFkZHIsIE5VTEwsIGZhbHNlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FTVRYQVRUUlNfVU5TUEVDSUZJRUQpOwor KworKyAgICByZXR1cm4gIShtZW1vcnlfcmVnaW9uX2lzX3JhbShtcikgfHwgbWVtb3J5X3JlZ2lv bl9pc19yb21kKG1yKSk7CisrfQorKworIHN0YXRpYyBod2FkZHIKKyBmbGF0dmlld19leHRlbmRf dHJhbnNsYXRpb24oRmxhdFZpZXcgKmZ2LCBod2FkZHIgYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaHdhZGRyIHRhcmdldF9sZW4sCitAQCAtMzc3MiwxNSArMzc4Myw3IEBAIGlu dCBjcHVfbWVtb3J5X3J3X2RlYnVnKENQVVN0YXRlICpjcHUsIHZhZGRyIGFkZHIsCisgCisgYm9v bCBjcHVfcGh5c2ljYWxfbWVtb3J5X2lzX2lvKGh3YWRkciBwaHlzX2FkZHIpCisgeworLSAgICBN ZW1vcnlSZWdpb24qbXI7CistICAgIGh3YWRkciBsID0gMTsKKy0KKy0gICAgUkNVX1JFQURfTE9D S19HVUFSRCgpOworLSAgICBtciA9IGFkZHJlc3Nfc3BhY2VfdHJhbnNsYXRlKCZhZGRyZXNzX3Nw YWNlX21lbW9yeSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaHlzX2FkZHIs ICZwaHlzX2FkZHIsICZsLCBmYWxzZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNRU1UWEFUVFJTX1VOU1BFQ0lGSUVEKTsKKy0KKy0gICAgcmV0dXJuICEobWVtb3J5X3JlZ2lv bl9pc19yYW0obXIpIHx8IG1lbW9yeV9yZWdpb25faXNfcm9tZChtcikpOworKyAgICByZXR1cm4g YWRkcmVzc19zcGFjZV9pc19pbygmYWRkcmVzc19zcGFjZV9tZW1vcnksIHBoeXNfYWRkcik7Cisg fQorIAorIGludCBxZW11X3JhbV9mb3JlYWNoX2Jsb2NrKFJBTUJsb2NrSXRlckZ1bmMgZnVuYywg dm9pZCAqb3BhcXVlKQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBhL2t2bS1zeXN0ZW0tcGh5 c21lbS1SZW1vdmUtY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pby5wYXRjaCBiL2t2bS1zeXN0ZW0t cGh5c21lbS1SZW1vdmUtY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pby5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWNkYzY5Ci0tLSAvZGV2L251bGwKKysrIGIva3Zt LXN5c3RlbS1waHlzbWVtLVJlbW92ZS1jcHVfcGh5c2ljYWxfbWVtb3J5X2lzX2lvLnBhdGNoCkBA IC0wLDAgKzEsNjIgQEAKK0Zyb20gNWYzYWQ0MGViOWZhYmI1OGM3YzY5ODZhZTQyZTgxNGQ1NDAx N2RiOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9QaGlsaXBwZT0y ME1hdGhpZXUtRGF1ZD1DMz1BOT89IDxwaGlsbWRAbGluYXJvLm9yZz4KK0RhdGU6IE1vbiwgMjkg U2VwIDIwMjUgMTU6MzY6MDggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwNDkvMTExXSBzeXN0ZW0v cGh5c21lbTogUmVtb3ZlIGNwdV9waHlzaWNhbF9tZW1vcnlfaXNfaW8oKQorTUlNRS1WZXJzaW9u OiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNj ZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JI LUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1i eTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzQ5LzExMV0gYjIw YjhhMWU4ODA0YzcxMDVmNTQxYWQyMjA5NjdmZDIwNWQ0NTMyMiAoZWF1Z2VyMS9jZW50b3MtcWVt dS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwt NzM3OTYKKworVGhlcmUgYXJlIG5vIG1vcmUgdXNlcyBvZiB0aGUgbGVnYWN5IGNwdV9waHlzaWNh bF9tZW1vcnlfaXNfaW8oKQorbWV0aG9kLiBSZW1vdmUgaXQuCisKK1NpZ25lZC1vZmYtYnk6IFBo aWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRAbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBS aWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZC5oZW5kZXJzb25AbGluYXJvLm9yZz4KK01lc3NhZ2Ut SWQ6IDwyMDI1MTAwMjA4NDIwMy42Mzg5OS02LXBoaWxtZEBsaW5hcm8ub3JnPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgZWMxZWIzNTdjYjg2ZWVlNzRkNjM5NDAxNTRkYjFlMWJmYTg2MDI2 YSkKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KKy0t LQorIGluY2x1ZGUvZXhlYy9jcHUtY29tbW9uLmggfCAyIC0tCisgc3lzdGVtL3BoeXNtZW0uYyAg ICAgICAgICB8IDUgLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDcgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9pbmNsdWRlL2V4ZWMvY3B1LWNvbW1vbi5oIGIvaW5jbHVkZS9leGVjL2NwdS1j b21tb24uaAoraW5kZXggOWI2NThhM2Y0OC4uN2FjMDYxYmZjYiAxMDA2NDQKKy0tLSBhL2luY2x1 ZGUvZXhlYy9jcHUtY29tbW9uLmgKKysrKyBiL2luY2x1ZGUvZXhlYy9jcHUtY29tbW9uLmgKK0BA IC0xNDksOCArMTQ5LDYgQEAgdm9pZCAqY3B1X3BoeXNpY2FsX21lbW9yeV9tYXAoaHdhZGRyIGFk ZHIsCisgdm9pZCBjcHVfcGh5c2ljYWxfbWVtb3J5X3VubWFwKHZvaWQgKmJ1ZmZlciwgaHdhZGRy IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc193cml0ZSwgaHdh ZGRyIGFjY2Vzc19sZW4pOworIAorLWJvb2wgY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pbyhod2Fk ZHIgcGh5c19hZGRyKTsKKy0KKyAvKiBDb2FsZXNjZWQgTU1JTyByZWdpb25zIGFyZSBhcmVhcyB3 aGVyZSB3cml0ZSBvcGVyYXRpb25zIGNhbiBiZSByZW9yZGVyZWQuCisgICogVGhpcyB1c3VhbGx5 IGltcGxpZXMgdGhhdCB3cml0ZSBvcGVyYXRpb25zIGFyZSBzaWRlLWVmZmVjdCBmcmVlLiAgVGhp cyBhbGxvd3MKKyAgKiBiYXRjaGluZyB3aGljaCBjYW4gbWFrZSBhIG1ham9yIGltcGFjdCBvbiBw ZXJmb3JtYW5jZSB3aGVuIHVzaW5nCitkaWZmIC0tZ2l0IGEvc3lzdGVtL3BoeXNtZW0uYyBiL3N5 c3RlbS9waHlzbWVtLmMKK2luZGV4IDJlMzQyMDVhZDcuLjRhMTI5NGY4YTAgMTAwNjQ0CistLS0g YS9zeXN0ZW0vcGh5c21lbS5jCisrKysgYi9zeXN0ZW0vcGh5c21lbS5jCitAQCAtMzc4MSwxMSAr Mzc4MSw2IEBAIGludCBjcHVfbWVtb3J5X3J3X2RlYnVnKENQVVN0YXRlICpjcHUsIHZhZGRyIGFk ZHIsCisgICAgIHJldHVybiAwOworIH0KKyAKKy1ib29sIGNwdV9waHlzaWNhbF9tZW1vcnlfaXNf aW8oaHdhZGRyIHBoeXNfYWRkcikKKy17CistICAgIHJldHVybiBhZGRyZXNzX3NwYWNlX2lzX2lv KCZhZGRyZXNzX3NwYWNlX21lbW9yeSwgcGh5c19hZGRyKTsKKy19CistCisgaW50IHFlbXVfcmFt X2ZvcmVhY2hfYmxvY2soUkFNQmxvY2tJdGVyRnVuYyBmdW5jLCB2b2lkICpvcGFxdWUpCisgewor ICAgICBSQU1CbG9jayAqYmxvY2s7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLXRh cmdldC1pMzg2LWFyY2hfbWVtb3J5X21hcHBpbmctVXNlLWFkZHJlc3Nfc3BhY2VfbWUucGF0Y2gg Yi9rdm0tdGFyZ2V0LWkzODYtYXJjaF9tZW1vcnlfbWFwcGluZy1Vc2UtYWRkcmVzc19zcGFjZV9t ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWM1NDIyCi0tLSAv ZGV2L251bGwKKysrIGIva3ZtLXRhcmdldC1pMzg2LWFyY2hfbWVtb3J5X21hcHBpbmctVXNlLWFk ZHJlc3Nfc3BhY2VfbWUucGF0Y2gKQEAgLTAsMCArMSw4MyBAQAorRnJvbSA5M2Q2OTdjNzA3MTdj MmY5YTU0NDkwOTc3NGFhYTk3OGMwMTE3ZDY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogPT9VVEYtOD9xP1BoaWxpcHBlPTIwTWF0aGlldS1EYXVkPUMzPUE5Pz0gPHBoaWxtZEBsaW5h cm8ub3JnPgorRGF0ZTogTW9uLCAyOSBTZXAgMjAyNSAxNTozNToyOCArMDIwMAorU3ViamVjdDog W1BBVENIIDA0Ny8xMTFdIHRhcmdldC9pMzg2L2FyY2hfbWVtb3J5X21hcHBpbmc6IFVzZQorIGFk ZHJlc3Nfc3BhY2VfbWVtb3J5X2lzX2lvKCkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKKworUkgtQXV0aG9yOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitS SC1NZXJnZVJlcXVlc3Q6IDUwNTogU01NVSBSZWJhc2UgZm9yIGFjY2VsZXJhdGVkIFNNTVUgYW5k IENNRFFWIHN1cHBvcnQKK1JILUppcmE6IFJIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4CitSSC1BY2tlZC1ieTogQ8OpZHJp YyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPgorUkgtQWNrZWQtYnk6IEdhdmluIFNoYW4gPGdz aGFuQHJlZGhhdC5jb20+CitSSC1Db21taXQ6IFs0Ny8xMTFdIDExOGNmNTBjMzg1ZTlkNTNmMGI5 MjVkZTFkNDY1MGQyOGVjMzYwNDkgKGVhdWdlcjEvY2VudG9zLXFlbXUta3ZtKQorCitKSVJBOiBo dHRwczovL3JlZGhhdC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9SSEVMLTczNzk2CisKK1NpbmNlIGFs bCBmdW5jdGlvbnMgaGF2ZSBhbiBhZGRyZXNzIHNwYWNlIGFyZ3VtZW50LCBpdCBpcwordHJpdmlh bCB0byByZXBsYWNlIGNwdV9waHlzaWNhbF9tZW1vcnlfaXNfaW8oKSBieQorYWRkcmVzc19zcGFj ZV9tZW1vcnlfaXNfaW8oKS4KKworU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVk w6kgPHBoaWxtZEBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IFJpY2hhcmQgSGVuZGVyc29uIDxy aWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnPgorTWVzc2FnZS1JZDogPDIwMjUxMDAyMDg0MjAz LjYzODk5LTQtcGhpbG1kQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2 ZmZhYTkyMTk2MTZkMTJiYzZjM2U3Y2IyNmE3N2Y3NDMyYWMwYzcwKQorU2lnbmVkLW9mZi1ieTog RXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgdGFyZ2V0L2kzODYvYXJj aF9tZW1vcnlfbWFwcGluZy5jIHwgMTAgKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90YXJnZXQvaTM4Ni9h cmNoX21lbW9yeV9tYXBwaW5nLmMgYi90YXJnZXQvaTM4Ni9hcmNoX21lbW9yeV9tYXBwaW5nLmMK K2luZGV4IGEyMzk4YzIxNzMuLjU2MGY0Njg5YWIgMTAwNjQ0CistLS0gYS90YXJnZXQvaTM4Ni9h cmNoX21lbW9yeV9tYXBwaW5nLmMKKysrKyBiL3RhcmdldC9pMzg2L2FyY2hfbWVtb3J5X21hcHBp bmcuYworQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIHZvaWQgd2Fsa19wdGUoTWVtb3J5TWFwcGlu Z0xpc3QgKmxpc3QsIEFkZHJlc3NTcGFjZSAqYXMsCisgICAgICAgICB9CisgCisgICAgICAgICBz dGFydF9wYWRkciA9IChwdGUgJiB+MHhmZmYpICYgfigweDFVTEwgPDwgNjMpOworLSAgICAgICAg aWYgKGNwdV9waHlzaWNhbF9tZW1vcnlfaXNfaW8oc3RhcnRfcGFkZHIpKSB7CisrICAgICAgICBp ZiAoYWRkcmVzc19zcGFjZV9pc19pbyhhcywgc3RhcnRfcGFkZHIpKSB7CisgICAgICAgICAgICAg LyogSS9PIHJlZ2lvbiAqLworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQorQEAg LTY1LDcgKzY1LDcgQEAgc3RhdGljIHZvaWQgd2Fsa19wdGUyKE1lbW9yeU1hcHBpbmdMaXN0ICps aXN0LCBBZGRyZXNzU3BhY2UgKmFzLAorICAgICAgICAgfQorIAorICAgICAgICAgc3RhcnRfcGFk ZHIgPSBwdGUgJiB+MHhmZmY7CistICAgICAgICBpZiAoY3B1X3BoeXNpY2FsX21lbW9yeV9pc19p byhzdGFydF9wYWRkcikpIHsKKysgICAgICAgIGlmIChhZGRyZXNzX3NwYWNlX2lzX2lvKGFzLCBz dGFydF9wYWRkcikpIHsKKyAgICAgICAgICAgICAvKiBJL08gcmVnaW9uICovCisgICAgICAgICAg ICAgY29udGludWU7CisgICAgICAgICB9CitAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyB2b2lk IHdhbGtfcGRlKE1lbW9yeU1hcHBpbmdMaXN0ICpsaXN0LCBBZGRyZXNzU3BhY2UgKmFzLAorICAg ICAgICAgaWYgKHBkZSAmIFBHX1BTRV9NQVNLKSB7CisgICAgICAgICAgICAgLyogMiBNQiBwYWdl ICovCisgICAgICAgICAgICAgc3RhcnRfcGFkZHIgPSAocGRlICYgfjB4MWZmZmZmKSAmIH4oMHgx VUxMIDw8IDYzKTsKKy0gICAgICAgICAgICBpZiAoY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pbyhz dGFydF9wYWRkcikpIHsKKysgICAgICAgICAgICBpZiAoYWRkcmVzc19zcGFjZV9pc19pbyhhcywg c3RhcnRfcGFkZHIpKSB7CisgICAgICAgICAgICAgICAgIC8qIEkvTyByZWdpb24gKi8KKyAgICAg ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgfQorQEAgLTE0Miw3ICsxNDIsNyBA QCBzdGF0aWMgdm9pZCB3YWxrX3BkZTIoTWVtb3J5TWFwcGluZ0xpc3QgKmxpc3QsIEFkZHJlc3NT cGFjZSAqYXMsCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgaGlnaF9wYWRkciA9ICgo aHdhZGRyKShwZGUgJiAweDFmZTAwMCkgPDwgMTkpOworICAgICAgICAgICAgIHN0YXJ0X3BhZGRy ID0gKHBkZSAmIH4weDNmZmZmZikgfCBoaWdoX3BhZGRyOworLSAgICAgICAgICAgIGlmIChjcHVf cGh5c2ljYWxfbWVtb3J5X2lzX2lvKHN0YXJ0X3BhZGRyKSkgeworKyAgICAgICAgICAgIGlmIChh ZGRyZXNzX3NwYWNlX2lzX2lvKGFzLCBzdGFydF9wYWRkcikpIHsKKyAgICAgICAgICAgICAgICAg LyogSS9PIHJlZ2lvbiAqLworICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg ICB9CitAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyB2b2lkIHdhbGtfcGRwZShNZW1vcnlNYXBw aW5nTGlzdCAqbGlzdCwgQWRkcmVzc1NwYWNlICphcywKKyAgICAgICAgIGlmIChwZHBlICYgUEdf UFNFX01BU0spIHsKKyAgICAgICAgICAgICAvKiAxIEdCIHBhZ2UgKi8KKyAgICAgICAgICAgICBz dGFydF9wYWRkciA9IChwZHBlICYgfjB4M2ZmZmZmZmYpICYgfigweDFVTEwgPDwgNjMpOworLSAg ICAgICAgICAgIGlmIChjcHVfcGh5c2ljYWxfbWVtb3J5X2lzX2lvKHN0YXJ0X3BhZGRyKSkgewor KyAgICAgICAgICAgIGlmIChhZGRyZXNzX3NwYWNlX2lzX2lvKGFzLCBzdGFydF9wYWRkcikpIHsK KyAgICAgICAgICAgICAgICAgLyogSS9PIHJlZ2lvbiAqLworICAgICAgICAgICAgICAgICBjb250 aW51ZTsKKyAgICAgICAgICAgICB9CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEva3ZtLXRl c3RzLXF0ZXN0LWJpb3MtdGFibGVzLXRlc3QtUHJlcGFyZS1mb3ItSU9SVC1yZXZpc28ucGF0Y2gg Yi9rdm0tdGVzdHMtcXRlc3QtYmlvcy10YWJsZXMtdGVzdC1QcmVwYXJlLWZvci1JT1JULXJldmlz by5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODNjYjk1Ci0tLSAv ZGV2L251bGwKKysrIGIva3ZtLXRlc3RzLXF0ZXN0LWJpb3MtdGFibGVzLXRlc3QtUHJlcGFyZS1m b3ItSU9SVC1yZXZpc28ucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSAyNDUwNDUwNjVjZDA5 NDQwZWQ0OTA5ZmRhYjc0ODNhM2U3ODViNDgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+CitEYXRlOiBUaHUs IDI5IEphbiAyMDI2IDEzOjMyOjA1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDMyLzExMV0gdGVz dHMvcXRlc3QvYmlvcy10YWJsZXMtdGVzdDogUHJlcGFyZSBmb3IgSU9SVAorIHJldmlzb24gdXBn cmFkZQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBT TU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmly YTogUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OTgKK1JILUFja2VkLWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhh dC5jb20+CitSSC1BY2tlZC1ieTogR2F2aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNv bW1pdDogWzMyLzExMV0gYTdlZmUyYjQ3OTRkYjQwNDk1NTJjN2I3NzdkMzk4ZDQ5NWM5MDdiMyAo ZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0pCisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lh bi5uZXQvYnJvd3NlL1JIRUwtNzM3OTQKKworU3Vic2VxdWVudCBwYXRjaCB3aWxsIHVwZ3JhZGUg SU9SVCByZXZpc2lvbiB0byA1IHRvIGFkZCBzdXBwb3J0Citmb3IgSU9SVCBSTVIgbm9kZXMuCisK K0FkZCB0aGUgYWZmZWN0ZWQgSU9SVCBibG9icyB0b8KgYWxsb3dlZC1kaWZmIGxpc3QgZm9yIGJp b3MtdGFibGUKK3Rlc3RzLgorCitSZXZpZXdlZC1ieTogSm9uYXRoYW4gQ2FtZXJvbiA8am9uYXRo YW4uY2FtZXJvbkBodWF3ZWkuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVn ZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQu Y29tPgorVGVzdGVkLWJ5OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8ub3JnPgor U2lnbmVkLW9mZi1ieTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhvQG52aWRpYS5jb20+ CitNZXNzYWdlLWlkOiAyMDI2MDEyNjEwNDM0Mi4yNTM5NjUtMjUtc2tvbG90aHVtdGhvQG52aWRp YS5jb20KK1NpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJv Lm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI4ZTE5NmE3NDZlYjI3OWJhNWI3MTNk ZTliMjM2MjU5Zjk0NGM4MmQpCitTaWduZWQtb2ZmLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2Vy QHJlZGhhdC5jb20+CistLS0KKyB0ZXN0cy9xdGVzdC9iaW9zLXRhYmxlcy10ZXN0LWFsbG93ZWQt ZGlmZi5oIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZm IC0tZ2l0IGEvdGVzdHMvcXRlc3QvYmlvcy10YWJsZXMtdGVzdC1hbGxvd2VkLWRpZmYuaCBiL3Rl c3RzL3F0ZXN0L2Jpb3MtdGFibGVzLXRlc3QtYWxsb3dlZC1kaWZmLmgKK2luZGV4IGRmYjg1MjNj OGIuLjMyNzk2MzhhZDAgMTAwNjQ0CistLS0gYS90ZXN0cy9xdGVzdC9iaW9zLXRhYmxlcy10ZXN0 LWFsbG93ZWQtZGlmZi5oCisrKysgYi90ZXN0cy9xdGVzdC9iaW9zLXRhYmxlcy10ZXN0LWFsbG93 ZWQtZGlmZi5oCitAQCAtMSArMSw1IEBACisgLyogTGlzdCBvZiBjb21tYS1zZXBhcmF0ZWQgY2hh bmdlZCBBTUwgZmlsZXMgdG8gaWdub3JlICovCisrInRlc3RzL2RhdGEvYWNwaS9hYXJjaDY0L3Zp cnQvSU9SVCIsCisrInRlc3RzL2RhdGEvYWNwaS9hYXJjaDY0L3ZpcnQvSU9SVC5pdHNfb2ZmIiwK KysidGVzdHMvZGF0YS9hY3BpL2FhcmNoNjQvdmlydC9JT1JULnNtbXV2My1sZWdhY3kiLAorKyJ0 ZXN0cy9kYXRhL2FjcGkvYWFyY2g2NC92aXJ0L0lPUlQuc21tdXYzLWRldiIsCistLSAKKzIuNTIu MAorCgpkaWZmIC0tZ2l0IGEva3ZtLXRlc3RzLXF0ZXN0LWJpb3MtdGFibGVzLXRlc3QtVXBkYXRl LUlPUlQtYmxvYnMtYWZ0ZXIucGF0Y2ggYi9rdm0tdGVzdHMtcXRlc3QtYmlvcy10YWJsZXMtdGVz dC1VcGRhdGUtSU9SVC1ibG9icy1hZnRlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jMzQ0OWRhCi0tLSAvZGV2L251bGwKKysrIGIva3ZtLXRlc3RzLXF0ZXN0LWJp b3MtdGFibGVzLXRlc3QtVXBkYXRlLUlPUlQtYmxvYnMtYWZ0ZXIucGF0Y2gKQEAgLTAsMCArMSw3 OSBAQAorRnJvbSBkN2FlY2Y3ZWRlYjdlZmJlNGQ3MTEwZjEyNTFhYjM0N2UwMWM3MzBlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2hhbWVlciBLb2xvdGh1bSA8c2tvbG90aHVtdGhv QG52aWRpYS5jb20+CitEYXRlOiBUaHUsIDI5IEphbiAyMDI2IDEzOjMyOjA1ICswMDAwCitTdWJq ZWN0OiBbUEFUQ0ggMDM0LzExMV0gdGVzdHMvcXRlc3QvYmlvcy10YWJsZXMtdGVzdDogVXBkYXRl IElPUlQgYmxvYnMgYWZ0ZXIKKyByZXZpc2lvbiB1cGdyYWRlCitNSU1FLVZlcnNpb246IDEuMAor Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CisKK1JILUF1dGhvcjogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRo YXQuY29tPgorUkgtTWVyZ2VSZXF1ZXN0OiA1MDU6IFNNTVUgUmViYXNlIGZvciBhY2NlbGVyYXRl ZCBTTU1VIGFuZCBDTURRViBzdXBwb3J0CitSSC1KaXJhOiBSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OAorUkgtQWNrZWQt Ynk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KK1JILUFja2VkLWJ5OiBHYXZp biBTaGFuIDxnc2hhbkByZWRoYXQuY29tPgorUkgtQ29tbWl0OiBbMzQvMTExXSA3ZWNlODZmNWE0 NGY2NDUwNjE3NzBiNjg1ZDM0YjQ5MDlmZjU1NjFhIChlYXVnZXIxL2NlbnRvcy1xZW11LWt2bSkK KworSklSQTogaHR0cHM6Ly9yZWRoYXQuYXRsYXNzaWFuLm5ldC9icm93c2UvUkhFTC03Mzc5NAor CitVcGRhdGUgdGhlIHJlZmVyZW5jZSBJT1JUIGJsb2JzIGFmdGVyIHJldmlzaW9uIHVwZ3JhZGUg Zm9yIFJNUiBub2RlCitzdXBwb3J0LiBUaGlzIGFmZmVjdHMgdGhlIGFhcmNoNjQgJ3ZpcnQnIElP UlQgdGVzdHMuCisKK0lPUlQgZGlmZiBpcyB0aGUgc2FtZSBmb3IgYWxsIHRoZSB0ZXN0czoKKwor IC8qCisgICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCisgICogQU1ML0FTTCsg RGlzYXNzZW1ibGVyIHZlcnNpb24gMjAyMzA2MjggKDY0LWJpdCB2ZXJzaW9uKQorICAqIENvcHly aWdodCAoYykgMjAwMCAtIDIwMjMgSW50ZWwgQ29ycG9yYXRpb24KKyAgKgorLSAqIERpc2Fzc2Vt Ymx5IG9mIHRlc3RzL2RhdGEvYWNwaS9hYXJjaDY0L3ZpcnQvSU9SVCwgTW9uIE9jdCAyMCAxNDo0 Mjo0MSAyMDI1CisrICogRGlzYXNzZW1ibHkgb2YgL3RtcC9hbWwtQjRaUkUzLCBNb24gT2N0IDIw IDE0OjQyOjQxIDIwMjUKKyAgKgorICAqIEFDUEkgRGF0YSBUYWJsZSBbSU9SVF0KKyAgKgorICAq IEZvcm1hdDogW0hleE9mZnNldCBEZWNpbWFsT2Zmc2V0IEJ5dGVMZW5ndGhdICBGaWVsZE5hbWUg OiBGaWVsZFZhbHVlIChpbiBoZXgpCisgICovCisKKyBbMDAwaCAwMDAwIDAwNGhdICAgICAgICAg ICAgICAgICAgIFNpZ25hdHVyZSA6ICJJT1JUIiAgICBbSU8gUmVtYXBwaW5nIFRhYmxlXQorIFsw MDRoIDAwMDQgMDA0aF0gICAgICAgICAgICAgICAgVGFibGUgTGVuZ3RoIDogMDAwMDAwODAKKy1b MDA4aCAwMDA4IDAwMWhdICAgICAgICAgICAgICAgICAgICBSZXZpc2lvbiA6IDAzCistWzAwOWgg MDAwOSAwMDFoXSAgICAgICAgICAgICAgICAgICAgQ2hlY2tzdW0gOiBCMworK1swMDhoIDAwMDgg MDAxaF0gICAgICAgICAgICAgICAgICAgIFJldmlzaW9uIDogMDUKKytbMDA5aCAwMDA5IDAwMWhd ICAgICAgICAgICAgICAgICAgICBDaGVja3N1bSA6IEIxCisgWzAwQWggMDAxMCAwMDZoXSAgICAg ICAgICAgICAgICAgICAgICBPZW0gSUQgOiAiQk9DSFMgIgorIFswMTBoIDAwMTYgMDA4aF0gICAg ICAgICAgICAgICAgT2VtIFRhYmxlIElEIDogIkJYUEMgICAgIgorIFswMThoIDAwMjQgMDA0aF0g ICAgICAgICAgICAgICAgT2VtIFJldmlzaW9uIDogMDAwMDAwMDEKKyBbMDFDaCAwMDI4IDAwNGhd ICAgICAgICAgICAgIEFzbCBDb21waWxlciBJRCA6ICJCWFBDIgorIFswMjBoIDAwMzIgMDA0aF0g ICAgICAgQXNsIENvbXBpbGVyIFJldmlzaW9uIDogMDAwMDAwMDEKKyAuLi4KKworUmV2aWV3ZWQt Ynk6IEpvbmF0aGFuIENhbWVyb24gPGpvbmF0aGFuLmNhbWVyb25AaHVhd2VpLmNvbT4KK1Jldmll d2VkLWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CitUZXN0ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogWmhhbmdmZWkgR2Fv IDx6aGFuZ2ZlaS5nYW9AbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3Ro dW0gPHNrb2xvdGh1bXRob0BudmlkaWEuY29tPgorTWVzc2FnZS1pZDogMjAyNjAxMjYxMDQzNDIu MjUzOTY1LTI3LXNrb2xvdGh1bXRob0BudmlkaWEuY29tCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBN YXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNv bW1pdCBmNDhiZGRhZmEyNTE1MDNhMmFhNGE2ZWI5ZGQ2MTJlYzljMDc4MWY3KQorU2lnbmVkLW9m Zi1ieTogRXJpYyBBdWdlciA8ZXJpYy5hdWdlckByZWRoYXQuY29tPgorLS0tCisgdGVzdHMvZGF0 YS9hY3BpL2FhcmNoNjQvdmlydC9JT1JUICAgICAgICAgICAgICAgfCBCaW4gMTI4IC0+IDEyOCBi eXRlcworIHRlc3RzL2RhdGEvYWNwaS9hYXJjaDY0L3ZpcnQvSU9SVC5pdHNfb2ZmICAgICAgIHwg QmluIDE3MiAtPiAxNzIgYnl0ZXMKKyB0ZXN0cy9kYXRhL2FjcGkvYWFyY2g2NC92aXJ0L0lPUlQu c21tdXYzLWRldiAgICB8IEJpbiAzNjQgLT4gMzY0IGJ5dGVzCisgdGVzdHMvZGF0YS9hY3BpL2Fh cmNoNjQvdmlydC9JT1JULnNtbXV2My1sZWdhY3kgfCBCaW4gMjc2IC0+IDI3NiBieXRlcworIHRl c3RzL3F0ZXN0L2Jpb3MtdGFibGVzLXRlc3QtYWxsb3dlZC1kaWZmLmggICAgIHwgICA0IC0tLS0K KyA1IGZpbGVzIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90ZXN0cy9x dGVzdC9iaW9zLXRhYmxlcy10ZXN0LWFsbG93ZWQtZGlmZi5oIGIvdGVzdHMvcXRlc3QvYmlvcy10 YWJsZXMtdGVzdC1hbGxvd2VkLWRpZmYuaAoraW5kZXggMzI3OTYzOGFkMC4uZGZiODUyM2M4YiAx MDA2NDQKKy0tLSBhL3Rlc3RzL3F0ZXN0L2Jpb3MtdGFibGVzLXRlc3QtYWxsb3dlZC1kaWZmLmgK KysrKyBiL3Rlc3RzL3F0ZXN0L2Jpb3MtdGFibGVzLXRlc3QtYWxsb3dlZC1kaWZmLmgKK0BAIC0x LDUgKzEgQEAKKyAvKiBMaXN0IG9mIGNvbW1hLXNlcGFyYXRlZCBjaGFuZ2VkIEFNTCBmaWxlcyB0 byBpZ25vcmUgKi8KKy0idGVzdHMvZGF0YS9hY3BpL2FhcmNoNjQvdmlydC9JT1JUIiwKKy0idGVz dHMvZGF0YS9hY3BpL2FhcmNoNjQvdmlydC9JT1JULml0c19vZmYiLAorLSJ0ZXN0cy9kYXRhL2Fj cGkvYWFyY2g2NC92aXJ0L0lPUlQuc21tdXYzLWxlZ2FjeSIsCistInRlc3RzL2RhdGEvYWNwaS9h YXJjaDY0L3ZpcnQvSU9SVC5zbW11djMtZGV2IiwKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQg YS9rdm0tdmZpby1pb21tdWZkLUZvcmNlLWNyZWF0aW5nLW5lc3RpbmctcGFyZW50LUhXUFQucGF0 Y2ggYi9rdm0tdmZpby1pb21tdWZkLUZvcmNlLWNyZWF0aW5nLW5lc3RpbmctcGFyZW50LUhXUFQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg4MzIxMwotLS0gL2Rl di9udWxsCisrKyBiL2t2bS12ZmlvLWlvbW11ZmQtRm9yY2UtY3JlYXRpbmctbmVzdGluZy1wYXJl bnQtSFdQVC5wYXRjaApAQCAtMCwwICsxLDEyMSBAQAorRnJvbSBlODYwZDU3ZWEyZjVlZDY0ODBk MTcxNzIyNmU5OTYyNmE1ZjRiYTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmhl bnpob25nIER1YW4gPHpoZW56aG9uZy5kdWFuQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgNiBKYW4g MjAyNiAwMToxMjo1MCAtMDUwMAorU3ViamVjdDogW1BBVENIIDA3Ni8xMTFdIHZmaW8vaW9tbXVm ZDogRm9yY2UgY3JlYXRpbmcgbmVzdGluZyBwYXJlbnQgSFdQVAorTUlNRS1WZXJzaW9uOiAxLjAK K0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAorCitSSC1BdXRob3I6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVk aGF0LmNvbT4KK1JILU1lcmdlUmVxdWVzdDogNTA1OiBTTU1VIFJlYmFzZSBmb3IgYWNjZWxlcmF0 ZWQgU01NVSBhbmQgQ01EUVYgc3VwcG9ydAorUkgtSmlyYTogUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OTgKK1JILUFja2Vk LWJ5OiBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+CitSSC1BY2tlZC1ieTogR2F2 aW4gU2hhbiA8Z3NoYW5AcmVkaGF0LmNvbT4KK1JILUNvbW1pdDogWzc2LzExMV0gNDkwOTY5MDc4 NDdhODY1OTgzZTg3OWE5Njg1ODYxMjJkY2NiMjkyZSAoZWF1Z2VyMS9jZW50b3MtcWVtdS1rdm0p CisKK0pJUkE6IGh0dHBzOi8vcmVkaGF0LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1JIRUwtNzM3OTgK KworQ29uZmxpY3RzOiBjb250ZXh0dWFsIGNvbmZsaWN0IGluIGh3L3ZmaW8vZGV2aWNlLmMgYW5k CitpbmNsdWRlL2h3L3ZmaW8vdmZpby1kZXZpY2UuaCBkdWUgdG8gb3V0IG9mIG9yZGVyIGJhY2tw b3J0IG9nCitkZTM2ZGExMDZkY2YgIGh3L3ZmaW86IEFkZCBoZWxwZXIgdG8gcmV0cmlldmUgZGV2 aWNlIGZlYXR1cmUKK2Fsc28gY2hhbmdlIGh3L2NvcmUvaHctZXJyb3IuaCBpbnRvIGZvcm1lciBo dy9ody5oIHNpbmNlIHdlCithbHNvIG1pc3MgMDQ4YTIzODUxY2Q0ICBpbmNsdWRlOiBtb3ZlIGh3 L2h3LmggdG8gaHcvY29yZS8sIHJlbmFtZQorCitDYWxsIHBjaV9kZXZpY2VfZ2V0X3Zpb21tdV9m bGFncygpIHRvIGdldCBpZiB2SU9NTVUgc3VwcG9ydHMKK1ZJT01NVV9GTEFHX1dBTlRfTkVTVElO R19QQVJFTlQuCisKK0lmIHllcywgY3JlYXRlIGEgbmVzdGluZyBwYXJlbnQgSFdQVCBhbmQgYWRk IGl0IHRvIHRoZSBjb250YWluZXIncyBod3B0X2xpc3QsCitsZXR0aW5nIHRoaXMgcGFyZW50IEhX UFQgY292ZXIgdGhlIGVudGlyZSBzZWNvbmQgc3RhZ2UgbWFwcGluZ3MgKEdQQT0+SFBBKS4KKwor VGhpcyBhbGxvd3MgYSBWRklPIHBhc3N0aHJvdWdoIGRldmljZSB0byBkaXJlY3RseSBhdHRhY2gg dG8gdGhpcyBkZWZhdWx0IEhXUFQKK2FuZCB0aGVuIHRvIHVzZSB0aGUgc3lzdGVtIGFkZHJlc3Mg c3BhY2UgYW5kIGl0cyBsaXN0ZW5lci4KKworSW50cm9kdWNlIGEgdmZpb19kZXZpY2VfZ2V0X3Zp b21tdV9mbGFnc193YW50X25lc3RpbmcoKSBoZWxwZXIgdG8gZmFjaWxpdGF0ZQordGhpcyBpbXBs ZW1lbnRhdGlvbi4KKworSXQgaXMgc2FmZSB0byBkbyBzbyBiZWNhdXNlIGEgdklPTU1VIHdpbGwg YmUgYWJsZSB0byBmYWlsIGluIHNldF9pb21tdV9kZXZpY2UoKQorY2FsbCwgaWYgc29tZXRoaW5n IGVsc2UgcmVsYXRlZCB0byB0aGUgVkZJTyBkZXZpY2Ugb3IgdklPTU1VIGlzbid0IGNvbXBhdGli bGUuCisKK1N1Z2dlc3RlZC1ieTogTmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgor U3VnZ2VzdGVkLWJ5OiBZaSBMaXUgPHlpLmwubGl1QGludGVsLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IFpoZW56aG9uZyBEdWFuIDx6aGVuemhvbmcuZHVhbkBpbnRlbC5jb20+CitSZXZpZXdlZC1ieTog Tmljb2xpbiBDaGVuIDxuaWNvbGluY0BudmlkaWEuY29tPgorUmV2aWV3ZWQtYnk6IEVyaWMgQXVn ZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBZaSBMaXUgPHlpLmwubGl1 QGludGVsLmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQu Y29tPgorTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvcWVtdS1kZXZlbC8yMDI2MDEwNjA2 MTMwNC4zMTQ1NDYtOS16aGVuemhvbmcuZHVhbkBpbnRlbC5jb20KK1NpZ25lZC1vZmYtYnk6IEPD qWRyaWMgTGUgR29hdGVyIDxjbGdAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IGMzNDU5YzZiZmFhZDZhM2QwYmVmNGQzZWJjNjc1M2JiM2U2NmMxZWYpCitTaWduZWQtb2Zm LWJ5OiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+CistLS0KKyBody92ZmlvL2Rl dmljZS5jICAgICAgICAgICAgICB8IDEzICsrKysrKysrKysrKysKKyBody92ZmlvL2lvbW11ZmQu YyAgICAgICAgICAgICB8ICA5ICsrKysrKysrKworIGluY2x1ZGUvaHcvdmZpby92ZmlvLWRldmlj ZS5oIHwgIDEgKworIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvaHcvdmZpby9kZXZpY2UuYyBiL2h3L3ZmaW8vZGV2aWNlLmMKK2luZGV4IDMzMGYyNTk4 ZmYuLmMwMWViNzJlZTcgMTAwNjQ0CistLS0gYS9ody92ZmlvL2RldmljZS5jCisrKysgYi9ody92 ZmlvL2RldmljZS5jCitAQCAtMjQsNiArMjQsOCBAQAorICNpbmNsdWRlICJody92ZmlvL3ZmaW8t ZGV2aWNlLmgiCisgI2luY2x1ZGUgImh3L3ZmaW8vcGNpLmgiCisgI2luY2x1ZGUgImh3L2h3Lmgi CisrI2luY2x1ZGUgImh3L2NvcmUvaW9tbXUuaCIKKysjaW5jbHVkZSAiaHcvaHcuaCIKKyAjaW5j bHVkZSAidHJhY2UuaCIKKyAjaW5jbHVkZSAicWFwaS9lcnJvci5oIgorICNpbmNsdWRlICJxZW11 L2Vycm9yLXJlcG9ydC5oIgorQEAgLTUyNCw2ICs1MjYsMTcgQEAgaW50IHZmaW9fZGV2aWNlX2dl dF9mZWF0dXJlKFZGSU9EZXZpY2UgKnZiYXNlZGV2LAorICAgICByZXR1cm4gdmJhc2VkZXYtPmlv X29wcy0+ZGV2aWNlX2ZlYXR1cmUodmJhc2VkZXYsIGZlYXR1cmUpOworIH0KKyAKKytib29sIHZm aW9fZGV2aWNlX2dldF92aW9tbXVfZmxhZ3Nfd2FudF9uZXN0aW5nKFZGSU9EZXZpY2UgKnZiYXNl ZGV2KQorK3sKKysgICAgVkZJT1BDSURldmljZSAqdmRldiA9IHZmaW9fcGNpX2Zyb21fdmZpb19k ZXZpY2UodmJhc2VkZXYpOworKworKyAgICBpZiAodmRldikgeworKyAgICAgICAgcmV0dXJuICEh KHBjaV9kZXZpY2VfZ2V0X3Zpb21tdV9mbGFncyhQQ0lfREVWSUNFKHZkZXYpKSAmCisrICAgICAg ICAgICAgICAgICAgVklPTU1VX0ZMQUdfV0FOVF9ORVNUSU5HX1BBUkVOVCk7CisrICAgIH0KKysg ICAgcmV0dXJuIGZhbHNlOworK30KKysKKyAvKgorICAqIFRyYWRpdGlvbmFsIGlvY3RsKCkgYmFz ZWQgaW8KKyAgKi8KK2RpZmYgLS1naXQgYS9ody92ZmlvL2lvbW11ZmQuYyBiL2h3L3ZmaW8vaW9t bXVmZC5jCitpbmRleCA2N2FjZGZhMTgzLi41OWRjMTdiMTY2IDEwMDY0NAorLS0tIGEvaHcvdmZp by9pb21tdWZkLmMKKysrKyBiL2h3L3ZmaW8vaW9tbXVmZC5jCitAQCAtMzYzLDYgKzM2MywxNSBA QCBzdGF0aWMgYm9vbCBpb21tdWZkX2NkZXZfYXV0b2RvbWFpbnNfZ2V0KFZGSU9EZXZpY2UgKnZi YXNlZGV2LAorICAgICAgICAgZmxhZ3MgPSBJT01NVV9IV1BUX0FMTE9DX0RJUlRZX1RSQUNLSU5H OworICAgICB9CisgCisrICAgIC8qCisrICAgICAqIElmIHZJT01NVSByZXF1ZXN0cyBWRklPJ3Mg Y29vcGVyYXRpb24gdG8gY3JlYXRlIG5lc3RpbmcgcGFyZW50IEhXUFQsCisrICAgICAqIGZvcmNl IHRvIGNyZWF0ZSBpdCBzbyB0aGF0IGl0IGNvdWxkIGJlIHJldXNlZCBieSB2SU9NTVUgdG8gY3Jl YXRlCisrICAgICAqIG5lc3RlZCBIV1BULgorKyAgICAgKi8KKysgICAgaWYgKHZmaW9fZGV2aWNl X2dldF92aW9tbXVfZmxhZ3Nfd2FudF9uZXN0aW5nKHZiYXNlZGV2KSkgeworKyAgICAgICAgZmxh Z3MgfD0gSU9NTVVfSFdQVF9BTExPQ19ORVNUX1BBUkVOVDsKKysgICAgfQorKworICAgICBpZiAo Y3ByX2lzX2luY29taW5nKCkpIHsKKyAgICAgICAgIGh3cHRfaWQgPSB2YmFzZWRldi0+Y3ByLmh3 cHRfaWQ7CisgICAgICAgICBnb3RvIHNraXBfYWxsb2M7CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9o dy92ZmlvL3ZmaW8tZGV2aWNlLmggYi9pbmNsdWRlL2h3L3ZmaW8vdmZpby1kZXZpY2UuaAoraW5k ZXggZmMyOGY1ODBiYS4uMjdlMjk3NjU5MyAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvaHcvdmZpby92 ZmlvLWRldmljZS5oCisrKysgYi9pbmNsdWRlL2h3L3ZmaW8vdmZpby1kZXZpY2UuaAorQEAgLTI2 MCw2ICsyNjAsNyBAQCB2b2lkIHZmaW9fZGV2aWNlX3VucHJlcGFyZShWRklPRGV2aWNlICp2YmFz ZWRldik7CisgCisgaW50IHZmaW9fZGV2aWNlX2dldF9mZWF0dXJlKFZGSU9EZXZpY2UgKnZiYXNl ZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVh dHVyZSAqZmVhdHVyZSk7CisrYm9vbCB2ZmlvX2RldmljZV9nZXRfdmlvbW11X2ZsYWdzX3dhbnRf bmVzdGluZyhWRklPRGV2aWNlICp2YmFzZWRldik7CisgCisgaW50IHZmaW9fZGV2aWNlX2dldF9y ZWdpb25faW5mbyhWRklPRGV2aWNlICp2YmFzZWRldiwgaW50IGluZGV4LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZmaW9fcmVnaW9uX2luZm8gKippbmZvKTsKKy0t IAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9xZW11LnNwZWMgYi9xZW11LnNwZWMKaW5kZXggZDVj NThhNC4uNWRiNGY5ZSAxMDA2NDQKLS0tIGEvcWVtdS5zcGVjCisrKyBiL3FlbXUuc3BlYwpAQCAt MTQzLDcgKzE0Myw3IEBAIE9ic29sZXRlczogJXtuYW1lfS1ibG9jay1zc2ggPD0gJXtlcG9jaH06 JXt2ZXJzaW9ufSAgICAgICAgICAgICAgICAgICAgXAogU3VtbWFyeTogUUVNVSBpcyBhIG1hY2hp bmUgZW11bGF0b3IgYW5kIHZpcnR1YWxpemVyCiBOYW1lOiBxZW11LWt2bQogVmVyc2lvbjogMTAu MS4wCi1SZWxlYXNlOiAyMiV7P3JjcmVsfSV7P2Rpc3R9JXs/Y2Nfc3VmZml4fQorUmVsZWFzZTog MjMlez9yY3JlbH0lez9kaXN0fSV7P2NjX3N1ZmZpeH0KICMgRXBvY2ggYmVjYXVzZSB3ZSBwdXNo ZWQgYSBxZW11LTEuMCBwYWNrYWdlLiBBSVVJIHRoaXMgY2FuJ3QgZXZlciBiZSBkcm9wcGVkCiAj IEVwb2NoIDE1IHVzZWQgZm9yIFJIRUwgOAogIyBFcG9jaCAxNyB1c2VkIGZvciBSSEVMIDkgKGR1 ZSB0byByZWxlYXNlIHZlcnNpb25pbmcgb2Zmc2V0IGluIFJIRUwgOC41KQpAQCAtMTY2LDYgKzE2 NiwxMSBAQCBTb3VyY2UyODogOTUta3ZtLW1lbWxvY2suY29uZgogU291cmNlMzA6IGt2bS1zMzkw eC5jb25mCiBTb3VyY2UzMToga3ZtLXg4Ni5jb25mCiBTb3VyY2UzNjogUkVBRE1FLnRlc3RzCisj IEhhbmRsaW5nIGJpbmFyeSBjaGFuZ2VzIGZvciBNUiA1MDUKK1NvdXJjZTQwOiBJT1JUCitTb3Vy Y2U0MTogSU9SVC5pdHNfb2ZmCitTb3VyY2U0MjogSU9SVC5zbW11djMtZGV2CitTb3VyY2U0Mzog SU9SVC5zbW11djMtbGVnYWN5CiAKIAogUGF0Y2gwMDAxOiAwMDAxLXB5dGhvbi1SZXBsYWNlLWFz eW5jaW8uZ2V0X2V2ZW50X2xvb3AtZm9yLVB5dGhvbi0zLjE0LnBhdGNoCkBAIC04MDksNiArODE0 LDc4MyBAQCBQYXRjaDMyNDoga3ZtLWlvdGVzdHMtMDQ2LVRlc3QtdGhhdC1kaXNjYXJkLXdyaXRl X3plcm9lcy13YWl0LWZvci0ucGF0Y2gKIFBhdGNoMzI1OiBrdm0tcWNvdzItRml4LWRhdGEtbG9z cy1vbi16ZXJvLXdyaXRlLXdpdGgtZGV0ZWN0LXplcm9lcy5wYXRjaAogIyBGb3IgUkhFTC0xODYz ODQgLSB2aXJ0LXN0b3JhZ2U6IEJhY2twb3J0IHN0YWJsZSBicmFuY2ggZml4ZXMKIFBhdGNoMzI2 OiBrdm0tYmxvY2stRml4LWNyYXNoLWFmdGVyLXNldHRpbmctbGF0ZW5jeS1oaXN0b3J5Z3JhbS13 aS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYz IGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAx OTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHBy b3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0 IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4z CisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2Nl bGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9y dCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDMyNzoga3Zt LWJhY2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW8ucGF0 Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZp Y2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0g TlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0 aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9h cm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBG b3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0 ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVM LTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9y IHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzMjg6IGt2bS1iYWNr ZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfYWxsb2NfdmRlLnBhdGNoCisj IEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBj YW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJ QTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAt IFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3Nt bXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJI RUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5l c3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5 NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11 djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzI5OiBrdm0taHctYXJtLXNt bXUtY29tbW9uLUZhY3Rvci1vdXQtY29tbW9uLWhlbHBlci1mdW5jdGlvbi5wYXRjaAorIyBGb3Ig UkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJl IGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFj a3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVM IDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMt YWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTcz Nzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5n IHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBO VklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0g UkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDMzMDoga3ZtLWh3LWFybS1zbW11LWFk ZC1tZW1vcnktcmVnaW9ucy1hcy1wcm9wZXJ0eS1mb3ItYW4tU00ucGF0Y2gKKyMgRm9yIFJIRUwt MTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRh Y2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0 IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4z CisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2Vs OiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBw b3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElB OkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwg MTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01E UVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzMzE6IGt2bS1ody1hcm0tc21tdXYzLUV4dHJh Y3QtY29tbW9uLWRlZmluaXRpb25zLXRvLXNtbXV2My1jLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2 NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQg dG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9h cm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBG b3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVz b2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklE SUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBm b3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFj ZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEK KyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1 cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzMyOiBrdm0taHctYXJtLXNtbXUtY29tbW9uLU1ha2Ut aW9tbXUtb3BzLXBhcnQtb2YtU01NVVN0YXRlLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtS SEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhl IHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBB VVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJt IFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQg LSBSSEVMIDEwLjEKK1BhdGNoMzMzOiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbnRyb2R1Y2Ut c21tdXYzLWFjY2VsLWRldmljZS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4x XVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1 cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2Nl bDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2 IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMg LSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2tw b3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTcz Nzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAx MC4xCitQYXRjaDMzNDoga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW5pdGlhbGl6ZS1zaGFyZWQt c3lzdGVtLWFkZHJlc3MucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJN XTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMg Rm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1 cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5W SURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGll cyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhF TCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2 RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQor UGF0Y2gzMzU6IGt2bS1ody1wY2ktcGNpLU1vdmUtcGNpX2luaXRfYnVzX21hc3Rlci1hZnRlci1h ZGRpbmctZGV2LnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3 byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBS SEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0 IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6 QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBS SEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0 IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAu MQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5U USBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklE SUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNo MzM2OiBrdm0taHctcGNpLUV4cG9ydC1wY2lfZGV2aWNlX2dldF9pb21tdV9idXNfZGV2Zm4tYW5k LXJldC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21t dXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0x NjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRP IHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2tw b3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAx MC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBh Y2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3Vw cG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDMzNzog a3ZtLWh3LXBjaS1wY2ktQWRkLW9wdGlvbmFsLXN1cHBvcnRzX2FkZHJlc3Nfc3BhY2UtY2FsbGIu cGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBk ZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkw IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxl cmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQg Zm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzMzg6IGt2bS1o dy1wY2ktYnJpZGdlLXBjaV9leHBhbmRlcl9icmlkZ2UtTW92ZS1UWVBFX1BYQl9QQ0lFLnBhdGNo CisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNl cyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5W SURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGll cyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJt L3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9y IFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVk IG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03 Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBz bW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzM5OiBrdm0taHctYXJt LXNtbXV2My1hY2NlbC1SZXN0cmljdC1hY2NlbGVyYXRlZC1TTU1VdjMtdG8tdi5wYXRjaAorIyBG b3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2Fu IGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6 QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBS SEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11 djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVM LTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0 aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM0MDoga3ZtLWh3LWFybS1zbW11 djMtSW1wbGVtZW50LWdldF92aW9tbXVfY2FwLWNhbGxiYWNrLnBhdGNoCisjIEZvciBSSEVMLTE0 MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNo ZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDog UmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBO VklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9y dCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFW IHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzQxOiBrdm0taHctcGNpLUludHJvZHVjZS1wY2lf ZGV2aWNlX2dldF92aW9tbXVfZmxhZ3MucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwt MTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2Ft ZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMt YWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2 MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8g cHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01N VXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpC YWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhF TC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJI RUwgMTAuMQorUGF0Y2gzNDI6IGt2bS1ody1wY2ktSW50cm9kdWNlLXBjaV9kZXZpY2VfZ2V0X2hv c3RfaW9tbXVfcXVpcmtzLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FS TV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisj IEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBT dXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJI RUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg dkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTgg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEK K1BhdGNoMzQzOiBrdm0taHctYXJtLXNtbXV2My1jb21tb24tRGVmaW5lLVNURS1DRC1maWVsZHMt dmlhLXJlZ2lzdC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBU d28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3Ig UkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9y dCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVO VFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRj aDM0NDoga3ZtLWh3LWFybS1zbW11djMtY29tbW9uLUFkZC1OU0NGRy1iaXQtZGVmaW5pdGlvbi1m b3ItQ0QucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNt bXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwt MTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcg YWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisj IEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1 cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNDU6 IGt2bS1ody1hcm0tc21tdXYzLWNvbW1vbi1BZGQtU1RFLUNELXNldC1oZWxwZXJzLWZvci1yZXBl LnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMg ZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5 MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQg aHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMK KyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2Vs ZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3Ig UkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0 IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2Ut SG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzQ2OiBrdm0t aHctYXJtLXNtbXV2My1hY2NlbC1BZGQtc2V0LXVuc2V0X2lvbW11X2RldmljZS1jYWxsYi5wYXRj aAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmlj ZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRl ZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwt NzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Ig c21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM0Nzoga3ZtLWh3LWFy bS1zbW11djMtcHJvcGFnYXRlLXNtbXV2M19jbWRxX2NvbnN1bWUtZXJyb3JzLXQucGF0Y2gKKyMg Rm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNh biBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVz dGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2 MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNDg6IGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUFkZC1uZXN0ZWQtdlNURS1pbnN0YWxsLXVuaW5zdGFsLnBhdGNoCisjIEZvciBS SEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUg YXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1h Y2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3 OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcg c3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBS SEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0 IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzQ5OiBrdm0taHctYXJtLXNtbXV2My1h Y2NlbC1JbnN0YWxsLVNNTVV2My1HQlBBLWJhc2VkLWh3cHQucGF0Y2gKKyMgRm9yIFJIRUwtMTQy NDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hl ZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3 L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisj IEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBS ZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0 IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAu MQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYg c3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNTA6IGt2bS1ody1wY2ktcGNpLUludHJvZHVjZS1h LWNhbGxiYWNrLXRvLXJldHJpZXZlLXRoZS1NU0ktLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAt IFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8g dGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0v c21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3Ig UkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2 ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3Ig YXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBv cnQgLSBSSEVMIDEwLjEKK1BhdGNoMzUxOiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1l bnQtZ2V0X21zaV9kaXJlY3RfZ3BhLWNhbC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhF TC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBz YW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt MTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBT TU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0g UkhFTCAxMC4xCitQYXRjaDM1Mjoga3ZtLWh3LWFybS12aXJ0LVNldC1tc2ktZ3BhLXByb3BlcnR5 LnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMg ZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5 MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQg aHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMK KyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2Vs ZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3Ig UkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0 IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2Ut SG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzUzOiBrdm0t aHctYXJtLXNtbXV2My1hY2NlbC1BZGQtc3VwcG9ydC10by1pc3N1ZS1pbnZhbGlkYXRpby5wYXRj aAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmlj ZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRl ZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwt NzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Ig c21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM1NDoga3ZtLWh3LWFy bS1zbW11djMtSW5pdGlhbGl6ZS1JRC1yZWdpc3RlcnMtZWFybHktZHVyaW5nLXIucGF0Y2gKKyMg Rm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNh biBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVz dGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2 MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNTU6IGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUdldC1ob3N0LVNNTVV2My1ody1pbmZvLWFuZC12YWxpLnBhdGNoCisjIEZvciBS SEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUg YXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1h Y2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3 OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcg c3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBS SEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0 IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzU2OiBrdm0taHctcGNpLWhvc3QtZ3Bl eC1BbGxvdy10by1nZW5lcmF0ZS1wcmVzZXJ2ZS1ib290LWNvbi5wYXRjaAorIyBGb3IgUkhFTC0x NDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFj aGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQg aHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMK KyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6 IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0g TlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBv cnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAx MC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURR ViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM1Nzoga3ZtLWh3LWFybS12aXJ0LVNldC1QQ0kt cHJlc2VydmVfY29uZmlnLWZvci1hY2NlbC1TTU1VdjMucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1 IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0 byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNv bHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJ QTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZv ciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQor IyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3Vw cG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNTg6IGt2bS10ZXN0cy1xdGVzdC1iaW9zLXRhYmxlcy10 ZXN0LVByZXBhcmUtZm9yLUlPUlQtcmV2aXNvLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtS SEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhl IHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBB VVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJt IFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQg LSBSSEVMIDEwLjEKK1BhdGNoMzU5OiBrdm0taHctYXJtLXZpcnQtYWNwaS1idWlsZC1BZGQtSU9S VC1STVItcmVnaW9ucy10by1oYW5kbC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0x MC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1l IGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1h Y2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYz NTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBw cm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhv cHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1V djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVM LTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhF TCAxMC4xCitQYXRjaDM2MDoga3ZtLXRlc3RzLXF0ZXN0LWJpb3MtdGFibGVzLXRlc3QtVXBkYXRl LUlPUlQtYmxvYnMtYWZ0ZXIucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1b QVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMK KyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6 IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAt IE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVy dGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6 QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0g UkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5 OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAu MQorUGF0Y2gzNjE6IGt2bS1ody1hcm0tc21tdXYzLUJsb2NrLW1pZ3JhdGlvbi13aGVuLWFjY2Vs LWlzLWVuYWJsZWQucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTog VHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9y IFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBv cnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJ QTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAt IFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3Bv cnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAx MC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZF TlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0 Y2gzNjI6IGt2bS1ody1hcm0tc21tdXYzLUFkZC1hY2NlbC1wcm9wZXJ0eS1mb3ItU01NVXYzLWRl dmljZS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21t dXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0x NjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRP IHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2tw b3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAx MC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBh Y2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3Vw cG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM2Mzog a3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLWEtcHJvcGVydHktdG8tc3BlY2lmeS1SSUwtc3Uu cGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBk ZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkw IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxl cmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQg Zm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNjQ6IGt2bS1o dy1hcm0tc21tdXYzLWFjY2VsLUFkZC1zdXBwb3J0LWZvci1BVFMucGF0Y2gKKyMgRm9yIFJIRUwt MTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRh Y2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0 IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4z CisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2Vs OiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBw b3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElB OkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwg MTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01E UVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNjU6IGt2bS1ody1hcm0tc21tdXYzLWFjY2Vs LUFkZC1wcm9wZXJ0eS10by1zcGVjaWZ5LU9BUy1iaXRzLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2 NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQg dG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9h cm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBG b3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVz b2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklE SUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBm b3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFj ZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEK KyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1 cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzY2OiBrdm0tYmFja2VuZHMtaW9tbXVmZC1SZXRyaWV2 ZS1QQVNJRC13aWR0aC1mcm9tLWlvbW11ZmRfYi5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBb UkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRo ZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3Nt bXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJI RUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUg QVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFy bSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9w cGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZv ciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0 IC0gUkhFTCAxMC4xCitQYXRjaDM2Nzoga3ZtLWJhY2tlbmRzLWlvbW11ZmQtQWRkLWdldF9wYXNp ZF9pbmZvLWNhbGxiYWNrLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FS TV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisj IEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBT dXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJI RUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg dkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTgg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEK K1BhdGNoMzY4OiBrdm0taHctcGNpLUFkZC1oZWxwZXItdG8taW5zZXJ0LVBDSWUtZXh0ZW5kZWQt Y2FwYWJpbGl0eS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBU d28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3Ig UkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9y dCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVO VFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRj aDM2OToga3ZtLWh3LXBjaS1GYWN0b3Itb3V0LWNvbW1vbi1QQVNJRC1jYXBhYmlsaXR5LWluaXRp YWxpemEucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNt bXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwt MTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcg YWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisj IEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1 cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNzA6 IGt2bS1ody12ZmlvLXBjaS1TeW50aGVzaXplLVBBU0lELWNhcGFiaWxpdHktZm9yLXZmaW8tcGNp LnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMg ZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5 MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQg aHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMK KyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2Vs ZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3Ig UkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0 IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2Ut SG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzcxOiBrdm0t aHctYXJtLXNtbXV2My1hY2NlbC1NYWtlLVN1YnN0cmVhbUlELXN1cHBvcnQtY29uZmlndS5wYXRj aAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmlj ZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRl ZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwt NzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Ig c21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM3Mjoga3ZtLXN5c3Rl bS1tZW1vcnktRmFjdG9yLWFkZHJlc3Nfc3BhY2VfaXNfaW8tb3V0LnBhdGNoCisjIEZvciBSSEVM LTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0 YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9y dCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAu MworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2Nl bDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3Vw cG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJ QTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVM IDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENN RFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzczOiBrdm0tdGFyZ2V0LWkzODYtYXJjaF9t ZW1vcnlfbWFwcGluZy1Vc2UtYWRkcmVzc19zcGFjZV9tZS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0 NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVk IHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcv YXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMg Rm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJl c29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQg Zm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4x CisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBz dXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM3NDoga3ZtLWh3LXMzOTB4LXNjbHAtVXNlLWFkZHJl c3Nfc3BhY2VfbWVtb3J5X2lzX2lvLWluLXNjbHAucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0g W1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0 aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9z bW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBS SEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZl IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBh cm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhv cHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBG b3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9y dCAtIFJIRUwgMTAuMQorUGF0Y2gzNzU6IGt2bS1zeXN0ZW0tcGh5c21lbS1SZW1vdmUtY3B1X3Bo eXNpY2FsX21lbW9yeV9pc19pby5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4x XVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1 cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2Nl bDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2 IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMg LSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2tw b3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTcz Nzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAx MC4xCitQYXRjaDM3Njoga3ZtLWJhY2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFj a2VuZF9hbGxvY192ZXYucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJN XTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMg Rm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1 cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5W SURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGll cyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhF TCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2 RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQor UGF0Y2gzNzc6IGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC12aW9tbXUtZnJlZS1oZWxwZXIu cGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBk ZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkw IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxl cmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQg Zm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzNzg6IGt2bS1o dy1hcm0tc21tdXYzLWFjY2VsLUFsbG9jYXRlLXZFVkVOVFEtZm9yLWFjY2VsZXJhdGVkLnBhdGNo CisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNl cyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5W SURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGll cyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJt L3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9y IFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVk IG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03 Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBz bW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzc5OiBrdm0taHctYXJt LXNtbXV2My1JbnRyb2R1Y2UtYS1oZWxwZXItZnVuY3Rpb24tZm9yLWV2ZW50LS5wYXRjaAorIyBG b3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2Fu IGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6 QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBS SEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11 djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVM LTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0 aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM4MDoga3ZtLWh3LWFybS1zbW11 djMtYWNjZWwtUmVhZC1hbmQtcHJvcGFnYXRlLWhvc3QtdklPTU1VLWUucGF0Y2gKKyMgRm9yIFJI RUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBh dHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2tw b3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAx MC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFj Y2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5 NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBz dXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJI RUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg Q01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzODE6IGt2bS1ody1hcm0tc21tdXYzLUNv cnJlY3QtU01NVUVOLWZpZWxkLW5hbWUtaW4tQ1IwLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAt IFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8g dGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0v c21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3Ig UkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2 ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3Ig YXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBv cnQgLSBSSEVMIDEwLjEKK1BhdGNoMzgyOiBrdm0taHctYXJtLXNtbXV2My1GaXgtQ0ZHSV9DRC1o YW5kbGluZy13aGVuLXN0YWdlLTEtaXMtdS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhF TC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBz YW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt MTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBT TU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0g UkhFTCAxMC4xCitQYXRjaDM4Mzoga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQ2hlY2stQVRTLWNv bXBhdGliaWxpdHktYmV0d2Vlbi0ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAu MV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBi dXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNj ZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5 NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03 Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwg MTAuMQorUGF0Y2gzODQ6IGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUNoYW5nZS1hdHMtcHJvcGVy dHktdHlwZS10by1Pbk9mLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FS TV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisj IEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBT dXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJI RUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg dkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTgg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEK K1BhdGNoMzg1OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGFuZ2UtcmlsLXByb3BlcnR5LXR5 cGUtdG8tT25PZi5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBU d28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3Ig UkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9y dCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVO VFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRj aDM4Njoga3ZtLXFkZXYtQWRkLWEtU3NpZFNpemVNb2RlLXByb3BlcnR5LXR5cGUucGF0Y2gKKyMg Rm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNh biBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVz dGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2 MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzODc6IGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUNoYW5nZS1zc2lkc2l6ZS1wcm9wZXJ0eS10eXBlLXRvLnBhdGNoCisjIEZvciBS SEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUg YXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1h Y2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3 OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcg c3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBS SEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0 IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzg4OiBrdm0tcWRldi1BZGQtYW4tT2Fz TW9kZS1wcm9wZXJ0eS10eXBlLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFd W0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVz CisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2Vs OiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYg LSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3Bl cnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAt IFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3Bv cnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3 OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEw LjEKK1BhdGNoMzg5OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1DaGFuZ2Utb2FzLXByb3BlcnR5 LXR5cGUtdG8tT2FzTS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1d OiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBG b3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3Vw cG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJ RElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVz IC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVM IDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZF VkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0g TlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQ YXRjaDM5MDoga3ZtLXFlbXUtb3B0aW9ucy5oeC1Eb2N1bWVudC1hcm0tc21tdXYzLWRldmljZS1z LWFjY2VsLXAucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdv IHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJI RUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQg QVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpC YWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJI RUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg SFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4x CisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRR IHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJ QTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gz OTE6IGt2bS1ody1hcm0tc21tdXYzLUhhdmUtc21tdXYzX2FjY2VsX2luaXQtdGFrZS1hbi1FcnJv ci1wLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11 djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2 MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8g cHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3Bv cnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEw LjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFj Y2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBG b3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBw b3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzkyOiBr dm0taHctYXJtLXNtbXV2My1VcGRhdGUtQVRDLWludmFsaWRhdGlvbi1jaGVjay5wYXRjaAorIyBG b3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2Fu IGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6 QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBS SEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11 djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVM LTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0 aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM5Mzoga3ZtLWh3LWFybS1zbW11 djMtSW1wcm92ZS1hY2NlbC1TTU1VdjMtdXNhZ2UtZG9jdW1lbnRhdGkucGF0Y2gKKyMgRm9yIFJI RUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBh dHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2tw b3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAx MC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFj Y2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5 NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBz dXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJI RUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQg Q01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2gzOTQ6IGt2bS1ody1hcm0tc21tdXYzLWFj Y2VsLUFkZC1oZWxwZXItZm9yLXJlc29sdmluZy1hdXRvLXBhLnBhdGNoCisjIEZvciBSSEVMLTE0 MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNo ZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDog UmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBO VklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9y dCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFW IHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoMzk1OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1J bXBsZW1lbnQtYXV0by12YWx1ZS1mb3ItYXRzLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtS SEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhl IHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBB VVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJt IFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQg LSBSSEVMIDEwLjEKK1BhdGNoMzk2OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQt YXV0by12YWx1ZS1mb3ItcmlsLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFd W0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVz CisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2Vs OiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYg LSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3Bl cnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAt IFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3Bv cnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3 OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEw LjEKK1BhdGNoMzk3OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0by12YWx1 ZS1mb3Itc3NpZHNpei5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1d OiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBG b3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3Vw cG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJ RElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVz IC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVM IDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZF VkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0g TlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQ YXRjaDM5ODoga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW1wbGVtZW50LWF1dG8tdmFsdWUtZm9y LW9hcy5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21t dXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0x NjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRP IHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2tw b3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAx MC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBh Y2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3Vw cG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDM5OTog a3ZtLWh3LWFybS1zbW11djMtU2V0LWRlZmF1bHQtYXRzLXJpbC1zc2lkc2l6ZS1vYXMtdG8tYXUu cGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBk ZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkw IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9w ZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxl cmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQg Zm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MDA6IGt2bS1x ZW11LW9wdGlvbnMuaHgtU3VwcG9ydC1hdXRvLWZvci1hY2NlbC1TTU1VdjMtcHJvcGVyLnBhdGNo CisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNl cyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5W SURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGll cyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJt L3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9y IFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVk IG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03 Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBz bW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDAxOiBrdm0taHctcGNp LXBjaS1FbmZvcmNlLXBjaV9zZXR1cF9pb21tdV9wZXJfYnVzLWlzLWNhbGxlZC5wYXRjaAorIyBG b3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2Fu IGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6 QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBS SEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11 djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVM LTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0 aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYg LSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQwMjoga3ZtLXZmaW8taW9tbXVm ZC1Gb3JjZS1jcmVhdGluZy1uZXN0aW5nLXBhcmVudC1IV1BULnBhdGNoCisjIEZvciBSSEVMLTE0 MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNo ZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBo dy9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMwor IyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDog UmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBO VklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9y dCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFW IHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDAzOiBrdm0taHctdmZpby1pb21tdWZkLUNvbnRy b2wtZGlydHktdHJhY2tpbmctZm9yLW5lc3RpbmctcC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUg LSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRv IHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJt L3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9y IFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29s dmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElB OkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9y IGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2Ut SG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisj IEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBw b3J0IC0gUkhFTCAxMC4xCitQYXRjaDQwNDoga3ZtLWJhY2tlbmRzLWlvbW11ZmQtVXBkYXRlLWlv bW11ZmRfYmFja2VuZF9nZXRfZGV2aWNlX2kucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JI RUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUg c2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11 djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVM LTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFV VE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFj ZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0g U01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3Ig UkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAt IFJIRUwgMTAuMQorUGF0Y2g0MDU6IGt2bS1pb21tdWZkLVJlbmFtZS1hbGwtdGhlLWlkZXYtYW5k LWlkZXZjLXZhcmlhYmxlcy10by1oLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEw LjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUg YnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFj Y2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1 OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHBy b3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9w cGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2 MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFj a3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwt NzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVM IDEwLjEKK1BhdGNoNDA2OiBrdm0tYmFja2VuZHMtaW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9iYWNr ZW5kX2FsbG9jX3Zpb21tdS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtB Uk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cwor IyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDog U3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0g TlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0 aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpC YWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBS SEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0 IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4x CitQYXRjaDQwNzoga3ZtLWJhY2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2Vu ZF9hbGxvY19od18ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTog VHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9y IFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBv cnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJ QTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAt IFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3Bv cnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAx MC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZF TlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0 Y2g0MDg6IGt2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfdmlv bW11X21tLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBz bW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVM LTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFV VE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFj a3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVM IDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhX IGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQor IyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBz dXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDA5 OiBrdm0tc3lzdGVtLWlvbW11ZmQtUmVtb3ZlLXVudXNlZC12aW9tbXUtcG9pbnRlci1mcm9tLUlP TS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYz IGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAx OTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHBy b3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0 IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4z CisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2Nl bGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9y dCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQxMDoga3Zt LWh3LWFybS1zbW11djMtYWNjZWwtSW50cm9kdWNlLUNNRFFWLW9wcy1pbnRlcmZhY2UucGF0Y2gK KyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2Vz IGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJ RElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVz IC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0v c21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3Ig UkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQg bmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTcz Nzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNt bXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6 QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MTE6IGt2bS1ody1hcm0t c21tdXYzLUF2b2lkLWluY2x1ZGluZy1DT05GSUdfREVWSUNFUy1pbi1ody1oLnBhdGNoCisjIEZv ciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4g YmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpC YWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJI RUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt NzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rp bmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMg LSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2tw b3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDEyOiBrdm0taHctYXJtLXRlZ3Jh MjQxLWNtZHF2LUFkZC1UZWdyYTI0MS1DTURRVi1vcHMtYmFja2VuZC5wYXRjaAorIyBGb3IgUkhF TC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0 dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3Bv cnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEw LjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNj ZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1 cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklE SUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhF TCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBD TURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQxMzoga3ZtLWh3LWFybS1zbW11djMtYWNj ZWwtV2lyZS1DTURRVi1vcHMtaW50by1hY2NlbC1saWZlY3kucGF0Y2gKKyMgRm9yIFJIRUwtMTQy NDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hl ZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3 L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisj IEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBS ZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0 IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAu MQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYg c3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MTQ6IGt2bS1ody1hcm0tdmlydC1Vc2Utc3RvcmVk LVNNTVV2My1kZXZpY2UtbGlzdC1mb3ItSU9SVC1iLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAt IFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8g dGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0v c21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3Ig UkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2 ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3Ig YXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBv cnQgLSBSSEVMIDEwLjEKK1BhdGNoNDE1OiBrdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVByb2Jl LWhvc3QtVGVncmEyNDEtQ01EUVYtc3VwcC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhF TC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBz YW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt MTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBT TU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0g UkhFTCAxMC4xCitQYXRjaDQxNjoga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1JbXBsZW1lbnQt Q01EUVYtaW5pdC5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBU d28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3Ig UkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9y dCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElB OkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0g UkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEw LjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVO VFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJ RElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRj aDQxNzoga3ZtLWh3LWFybS12aXJ0LUxpbmstU01NVXYzLUNNRFFWLXJlc291cmNlcy10by1wbGF0 Zm9ybS0ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNt bXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwt MTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNr cG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwg MTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcg YWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisj IEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1 cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpH cmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MTg6 IGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtSW1wbGVtZW50LUNNRFFWLXZJT01NVS1hbGxvYy1m LnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMg ZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5 MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQg aHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMK KyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2Vs ZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3Ig UkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0 IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2Ut SG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDE5OiBrdm0t aHctYXJtLXRlZ3JhMjQxLWNtZHF2LW1tYXAtaG9zdC1WSU5URi1QYWdlMC1mb3ItQ01EUS5wYXRj aAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmlj ZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBO VklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRp ZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRl ZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwt NzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Ig c21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBl cjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQyMDoga3ZtLWh3LWFy bS10ZWdyYTI0MS1jbWRxdi1FbXVsYXRlLUNNRFEtVi1Db25maWctcmVnaW9uLnBhdGNoCisjIEZv ciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4g YmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpC YWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJI RUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt NzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rp bmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMg LSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2tw b3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDIxOiBrdm0taHctYXJtLXRlZ3Jh MjQxLWNtZHF2LUVtdWxhdGUtVkNNRFEtcmVnaXN0ZXItcmVhZHMucGF0Y2gKKyMgRm9yIFJIRUwt MTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRh Y2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0 IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4z CisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2Vs OiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAt IE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBw b3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElB OkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwg MTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01E UVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MjI6IGt2bS1ody1hcm0tdGVncmEyNDEtY21k cXYtRW11bGF0ZS1WQ01EUS1yZWdpc3Rlci13cml0ZXMucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1 IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0 byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZv ciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNv bHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJ QTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZv ciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQor IyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3Vw cG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MjM6IGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtQWxs b2NhdGUtSFctVkNNRFFzLW9uY2UtY29uZmlnLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtS SEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhl IHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21t dXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhF TC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBB VVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3Jh Y2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJt IFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9y IFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQg LSBSSEVMIDEwLjEKK1BhdGNoNDI0OiBrdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LVJvdXRlLWFs bG9jYXRlZC1WQ01EUS1QYWdlMC1hYy5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0x MC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1l IGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1h Y2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYz NTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBw cm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhv cHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1V djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJh Y2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVM LTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhF TCAxMC4xCitQYXRjaDQyNToga3ZtLW1lbW9yeS1BbGxvdy1SQU0tZGV2aWNlLXJlZ2lvbnMtdG8t c2tpcC1JT01NVS1tYXBwaW4ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1b QVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMK KyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6 IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAt IE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVy dGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6 QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0g UkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9y dCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5 OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAu MQorUGF0Y2g0MjY6IGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtVXNlLW1tYXAtZC1ob3N0LVZJ TlRGLXBhZ2UwLWZvLnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06 IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZv ciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBw b3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklE SUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMg LSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2tw b3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwg MTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVW RU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBO VklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1Bh dGNoNDI3OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbnRyb2R1Y2UtY29tbW9uLWhlbHBlci1m b3ItdmV2ZS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28g c21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhF TC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBB VVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJh Y2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhF TCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBI VyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEK KyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEg c3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElB OkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQy ODoga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1SZWFkLWFuZC1wcm9wYWdhdGUtVGVncmEyNDEt Q00ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2 MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYw MTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBw cm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9y dCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAu MworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNj ZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZv ciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBv cnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFj ZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0Mjk6IGt2 bS1ody1hcm0tdGVncmEyNDEtY21kcXYtSW5pdGlhbGl6ZS1yZWdpc3Rlci1zdGF0ZS1vbi1yLnBh dGNoCisjIEZvciBSSEVMLTE0MjQ2NSAtIFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2 aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAt IE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVy dGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcv YXJtL3NtbXV2My1hY2NlbDogUmVzb2x2ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMg Rm9yIFJIRUwtNzM3OTQgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJh dGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3IgYXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhF TC03Mzc5NiAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZv ciBzbW11djMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9w cGVyOkJhY2twb3J0IENNRFFWIHN1cHBvcnQgLSBSSEVMIDEwLjEKK1BhdGNoNDMwOiBrdm0taHct YXJtLXRlZ3JhMjQxLWNtZHF2LUxpbWl0LXF1ZXVlLXNpemUtYmFzZWQtb24tYmFjay5wYXRjaAor IyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMg Y2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklE SUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMg LSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9z bW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBS SEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBu ZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3 OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21t dXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpC YWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQzMToga3ZtLWh3LWFybS1z bW11djMtQWRkLXBlci1kZXZpY2UtaWRlbnRpZmllci1wcm9wZXJ0eS5wYXRjaAorIyBGb3IgUkhF TC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0 dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3Bv cnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEw LjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNj ZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0 IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1 cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklE SUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhF TCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBD TURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQYXRjaDQzMjoga3ZtLWh3LWFybS1zbW11djMtYWNj ZWwtSW50cm9kdWNlLWhlbHBlci10by1xdWVyeS1DTURRVi0ucGF0Y2gKKyMgRm9yIFJIRUwtMTQy NDY1IC0gW1JIRUwtMTAuMV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hl ZCB0byB0aGUgc2FtZSBidXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3 L2FybS9zbW11djMtYWNjZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisj IEZvciBSSEVMLTE2MzU5NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBS ZXNvbHZlIEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5W SURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0 IGZvciBhcm0gU01NVXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdy YWNlLUhvcHBlcjpCYWNrcG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAu MQorIyBGb3IgUkhFTC03Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYg c3VwcG9ydCAtIFJIRUwgMTAuMQorUGF0Y2g0MzM6IGt2bS1ody1hcm0tdmlydC1hY3BpLUFkdmVy dGlzZS1UZWdyYTI0MS1DTURRVi1ub2Rlcy1pbi1ELnBhdGNoCisjIEZvciBSSEVMLTE0MjQ2NSAt IFtSSEVMLTEwLjFdW0FSTV06IFR3byBzbW11djMgZGV2aWNlcyBjYW4gYmUgYXR0YWNoZWQgdG8g dGhlIHNhbWUgYnVzCisjIEZvciBSSEVMLTE2MDE5MCAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0v c21tdXYzLWFjY2VsOiBTdXBwb3J0IEFVVE8gcHJvcGVydGllcyAtIFJIRUwgMTAuMworIyBGb3Ig UkhFTC0xNjM1OTYgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogUmVzb2x2 ZSBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtNzM3OTQgLSBOVklESUE6 R3JhY2UtSG9wcGVyOkJhY2twb3J0IEhXIGFjY2VsZXJhdGVkIG5lc3Rpbmcgc3VwcG9ydCBmb3Ig YXJtIFNNTVV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03Mzc5NiAtIE5WSURJQTpHcmFjZS1I b3BwZXI6QmFja3BvcnQgdkVWRU5UUSBzdXBwb3J0IGZvciBzbW11djMgLSBSSEVMIDEwLjEKKyMg Rm9yIFJIRUwtNzM3OTggLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IENNRFFWIHN1cHBv cnQgLSBSSEVMIDEwLjEKK1BhdGNoNDM0OiBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1FbmZvcmNl LXZpb21tdS1hc3NvY2lhdGlvbi13aGVuLS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhF TC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBz YW1lIGJ1cworIyBGb3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2 My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwt MTYzNTk2IC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVU TyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNl LUhvcHBlcjpCYWNrcG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBT TU1VdjMgLSBSSEVMIDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVy OkJhY2twb3J0IHZFVkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBS SEVMLTczNzk4IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0g UkhFTCAxMC4xCitQYXRjaDQzNToga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1Eb2N1bWVudC10 aGUtQ01EUVYtZGVzaWduLWFuZC0ucGF0Y2gKKyMgRm9yIFJIRUwtMTQyNDY1IC0gW1JIRUwtMTAu MV1bQVJNXTogVHdvIHNtbXV2MyBkZXZpY2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSBi dXMKKyMgRm9yIFJIRUwtMTYwMTkwIC0gTlZJRElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNj ZWw6IFN1cHBvcnQgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTE2MzU5 NiAtIE5WSURJQTpCYWNrcG9ydCBody9hcm0vc21tdXYzLWFjY2VsOiBSZXNvbHZlIEFVVE8gcHJv cGVydGllcyAtIFJIRUwgMTAuMworIyBGb3IgUkhFTC03Mzc5NCAtIE5WSURJQTpHcmFjZS1Ib3Bw ZXI6QmFja3BvcnQgSFcgYWNjZWxlcmF0ZWQgbmVzdGluZyBzdXBwb3J0IGZvciBhcm0gU01NVXYz IC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk2IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCB2RVZFTlRRIHN1cHBvcnQgZm9yIHNtbXV2MyAtIFJIRUwgMTAuMQorIyBGb3IgUkhFTC03 Mzc5OCAtIE5WSURJQTpHcmFjZS1Ib3BwZXI6QmFja3BvcnQgQ01EUVYgc3VwcG9ydCAtIFJIRUwg MTAuMQorUGF0Y2g0MzY6IGt2bS1ody1hcm0tc21tdXYzLUFkZC1jbWRxdi1wcm9wZXJ0eS1mb3It U01NVXYzLWRldmljZS5wYXRjaAorIyBGb3IgUkhFTC0xNDI0NjUgLSBbUkhFTC0xMC4xXVtBUk1d OiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzYW1lIGJ1cworIyBG b3IgUkhFTC0xNjAxOTAgLSBOVklESUE6QmFja3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3Vw cG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVMIDEwLjMKKyMgRm9yIFJIRUwtMTYzNTk2IC0gTlZJ RElBOkJhY2twb3J0IGh3L2FybS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVz IC0gUkhFTCAxMC4zCisjIEZvciBSSEVMLTczNzk0IC0gTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNr cG9ydCBIVyBhY2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVM IDEwLjEKKyMgRm9yIFJIRUwtNzM3OTYgLSBOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZF VkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xCisjIEZvciBSSEVMLTczNzk4IC0g TlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhFTCAxMC4xCitQ YXRjaDQzNzoga3ZtLXJoLWFhcmNoNjQtcmgtZGV2aWNlcy5tYWstQWRkLUNPTkZJR19URUdSQTI0 MV9DTURRVi5wYXRjaAogCiAlaWYgJXtoYXZlX2NsYW5nfQogQnVpbGRSZXF1aXJlczogY2xhbmcK QEAgLTExNDgsNiArMTkzMCw5IEBAIFRoaXMgcGFja2FnZSBwcm92aWRlcyB0aGUgYWRkaXRpb25h bCBELUJ1cyBhdWRpbyBkcml2ZXIgZm9yIFFFTVUuCiAlc2V0dXAgLXEgLW4gcWVtdS0le3ZlcnNp b259JXs/cmNzdHJ9CiAlYXV0b3BhdGNoIC1wMQogCisjIEhhbmRsaW5nIGJpbmFyeSBjaGFuZ2Vz IGZvciBNUiA1MDUKK2NwICV7U09VUkNFNDB9ICV7U09VUkNFNDF9ICV7U09VUkNFNDJ9ICV7U09V UkNFNDN9IHRlc3RzL2RhdGEvYWNwaS9hYXJjaDY0L3ZpcnQvCisKICVnbG9iYWwgcWVtdV9rdm1f YnVpbGQgcWVtdV9rdm1fYnVpbGQKIG1rZGlyIC1wICV7cWVtdV9rdm1fYnVpbGR9CiAKQEAgLTE4 ODgsNiArMjY3MywxMzEgQEAgdXNlcmFkZCAtciAtdSAxMDcgLWcgcWVtdSAtRyBrdm0gLWQgLyAt cyAvc2Jpbi9ub2xvZ2luIFwKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIE1vbiBKdW4gMjkgMjAy NiBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5AcmVkaGF0LmNvbT4gLSAxMC4xLjAtMjMKKy0g a3ZtLWJhY2tlbmRzLWlvbW11ZmQtSW50cm9kdWNlLWlvbW11ZmRfYmFja2VuZF9hbGxvY192aW8u cGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRyb2R1Y2UtaW9t bXVmZF9iYWNrZW5kX2FsbG9jX3ZkZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhF TC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0t c21tdS1jb21tb24tRmFjdG9yLW91dC1jb21tb24taGVscGVyLWZ1bmN0aW9uLnBhdGNoIFtSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11LWFkZC1tZW1vcnktcmVnaW9ucy1hcy1wcm9wZXJ0 eS1mb3ItYW4tU00ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJI RUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1FeHRy YWN0LWNvbW1vbi1kZWZpbml0aW9ucy10by1zbW11djMtYy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCist IGt2bS1ody1hcm0tc21tdS1jb21tb24tTWFrZS1pb21tdS1vcHMtcGFydC1vZi1TTU1VU3RhdGUu cGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhF TC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbnRyb2R1Y2Ut c21tdXYzLWFjY2VsLWRldmljZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUluaXRpYWxpemUtc2hhcmVkLXN5c3RlbS1hZGRyZXNzLnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KKy0ga3ZtLWh3LXBjaS1wY2ktTW92ZS1wY2lfaW5pdF9idXNfbWFzdGVyLWFmdGVyLWFk ZGluZy1kZXYucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctcGNpLUV4cG9ydC1wY2lfZGV2 aWNlX2dldF9pb21tdV9idXNfZGV2Zm4tYW5kLXJldC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2 bS1ody1wY2ktcGNpLUFkZC1vcHRpb25hbC1zdXBwb3J0c19hZGRyZXNzX3NwYWNlLWNhbGxiLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LXBjaS1icmlkZ2UtcGNpX2V4cGFuZGVyX2JyaWRn ZS1Nb3ZlLVRZUEVfUFhCX1BDSUUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNt bXV2My1hY2NlbC1SZXN0cmljdC1hY2NlbGVyYXRlZC1TTU1VdjMtdG8tdi5wYXRjaCBbUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OThdCistIGt2bS1ody1hcm0tc21tdXYzLUltcGxlbWVudC1nZXRfdmlvbW11X2NhcC1jYWxs YmFjay5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5 NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1wY2ktSW50cm9kdWNlLXBjaV9kZXZp Y2VfZ2V0X3Zpb21tdV9mbGFncy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1wY2ktSW50 cm9kdWNlLXBjaV9kZXZpY2VfZ2V0X2hvc3RfaW9tbXVfcXVpcmtzLnBhdGNoIFtSSEVMLTE0MjQ2 NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5 OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtY29tbW9uLURlZmluZS1TVEUtQ0QtZmllbGRzLXZpYS1y ZWdpc3QucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1jb21tb24tQWRk LU5TQ0ZHLWJpdC1kZWZpbml0aW9uLWZvci1DRC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1o dy1hcm0tc21tdXYzLWNvbW1vbi1BZGQtU1RFLUNELXNldC1oZWxwZXJzLWZvci1yZXBlLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXNldC11bnNldF9p b21tdV9kZXZpY2UtY2FsbGIucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2 My1wcm9wYWdhdGUtc21tdXYzX2NtZHFfY29uc3VtZS1lcnJvcnMtdC5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCistIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFkZC1uZXN0ZWQtdlNURS1pbnN0YWxsLXVu aW5zdGFsLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW5z dGFsbC1TTU1VdjMtR0JQQS1iYXNlZC1od3B0LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5 MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3 LXBjaS1wY2ktSW50cm9kdWNlLWEtY2FsbGJhY2stdG8tcmV0cmlldmUtdGhlLU1TSS0ucGF0Y2gg W1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5 NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtZ2V0X21z aV9kaXJlY3RfZ3BhLWNhbC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1 OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tdmlydC1T ZXQtbXNpLWdwYS1wcm9wZXJ0eS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUFkZC1zdXBwb3J0LXRvLWlzc3VlLWludmFsaWRhdGlvLnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtSW5pdGlhbGl6ZS1JRC1yZWdpc3RlcnMtZWFybHkt ZHVyaW5nLXIucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1H ZXQtaG9zdC1TTU1VdjMtaHctaW5mby1hbmQtdmFsaS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2 bS1ody1wY2ktaG9zdC1ncGV4LUFsbG93LXRvLWdlbmVyYXRlLXByZXNlcnZlLWJvb3QtY29uLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS12aXJ0LVNldC1QQ0ktcHJlc2VydmVfY29u ZmlnLWZvci1hY2NlbC1TTU1VdjMucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tdGVzdHMtcXRl c3QtYmlvcy10YWJsZXMtdGVzdC1QcmVwYXJlLWZvci1JT1JULXJldmlzby5wYXRjaCBbUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OThdCistIGt2bS1ody1hcm0tdmlydC1hY3BpLWJ1aWxkLUFkZC1JT1JULVJNUi1yZWdpb25z LXRvLWhhbmRsLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLXRlc3RzLXF0ZXN0LWJpb3MtdGFi bGVzLXRlc3QtVXBkYXRlLUlPUlQtYmxvYnMtYWZ0ZXIucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwt MTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBr dm0taHctYXJtLXNtbXV2My1CbG9jay1taWdyYXRpb24td2hlbi1hY2NlbC1pcy1lbmFibGVkLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtQWRkLWFjY2VsLXByb3BlcnR5 LWZvci1TTU1VdjMtZGV2aWNlLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11 djMtYWNjZWwtQWRkLWEtcHJvcGVydHktdG8tc3BlY2lmeS1SSUwtc3UucGF0Y2ggW1JIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1BZGQtc3VwcG9ydC1mb3ItQVRTLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtQWRkLXByb3BlcnR5LXRv LXNwZWNpZnktT0FTLWJpdHMucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tYmFja2VuZHMtaW9t bXVmZC1SZXRyaWV2ZS1QQVNJRC13aWR0aC1mcm9tLWlvbW11ZmRfYi5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCistIGt2bS1iYWNrZW5kcy1pb21tdWZkLUFkZC1nZXRfcGFzaWRfaW5mby1jYWxsYmFjay5w YXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1wY2ktQWRkLWhlbHBlci10by1pbnNlcnQtUENJ ZS1leHRlbmRlZC1jYXBhYmlsaXR5LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LXBjaS1G YWN0b3Itb3V0LWNvbW1vbi1QQVNJRC1jYXBhYmlsaXR5LWluaXRpYWxpemEucGF0Y2ggW1JIRUwt MTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVM LTczNzk4XQorLSBrdm0taHctdmZpby1wY2ktU3ludGhlc2l6ZS1QQVNJRC1jYXBhYmlsaXR5LWZv ci12ZmlvLXBjaS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhF TC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21tdXYzLWFjY2Vs LU1ha2UtU3Vic3RyZWFtSUQtc3VwcG9ydC1jb25maWd1LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVM LTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0g a3ZtLXN5c3RlbS1tZW1vcnktRmFjdG9yLWFkZHJlc3Nfc3BhY2VfaXNfaW8tb3V0LnBhdGNoIFtS SEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYg UkhFTC03Mzc5OF0KKy0ga3ZtLXRhcmdldC1pMzg2LWFyY2hfbWVtb3J5X21hcHBpbmctVXNlLWFk ZHJlc3Nfc3BhY2VfbWUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctczM5MHgtc2NscC1V c2UtYWRkcmVzc19zcGFjZV9tZW1vcnlfaXNfaW8taW4tc2NscC5wYXRjaCBbUkhFTC0xNDI0NjUg UkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThd CistIGt2bS1zeXN0ZW0tcGh5c21lbS1SZW1vdmUtY3B1X3BoeXNpY2FsX21lbW9yeV9pc19pby5w YXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVM LTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21t dWZkX2JhY2tlbmRfYWxsb2NfdmV2LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVM LTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1z bW11djMtYWNjZWwtQWRkLXZpb21tdS1mcmVlLWhlbHBlci5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCist IGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUFsbG9jYXRlLXZFVkVOVFEtZm9yLWFjY2VsZXJhdGVk LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtSW50cm9kdWNlLWEtaGVs cGVyLWZ1bmN0aW9uLWZvci1ldmVudC0ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJt LXNtbXV2My1hY2NlbC1SZWFkLWFuZC1wcm9wYWdhdGUtaG9zdC12SU9NTVUtZS5wYXRjaCBbUkhF TC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJI RUwtNzM3OThdCistIGt2bS1ody1hcm0tc21tdXYzLUNvcnJlY3QtU01NVUVOLWZpZWxkLW5hbWUt aW4tQ1IwLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtRml4LUNGR0lf Q0QtaGFuZGxpbmctd2hlbi1zdGFnZS0xLWlzLXUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0t aHctYXJtLXNtbXV2My1hY2NlbC1DaGVjay1BVFMtY29tcGF0aWJpbGl0eS1iZXR3ZWVuLS5wYXRj aCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUNoYW5nZS1hdHMtcHJv cGVydHktdHlwZS10by1Pbk9mLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11 djMtYWNjZWwtQ2hhbmdlLXJpbC1wcm9wZXJ0eS10eXBlLXRvLU9uT2YucGF0Y2ggW1JIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4XQorLSBrdm0tcWRldi1BZGQtYS1Tc2lkU2l6ZU1vZGUtcHJvcGVydHktdHlwZS5wYXRjaCBb UkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2 IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUNoYW5nZS1zc2lkc2l6ZS1w cm9wZXJ0eS10eXBlLXRvLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5 NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLXFkZXYtQWRkLWFuLU9h c01vZGUtcHJvcGVydHktdHlwZS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tc21t dXYzLWFjY2VsLUNoYW5nZS1vYXMtcHJvcGVydHktdHlwZS10by1PYXNNLnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KKy0ga3ZtLXFlbXUtb3B0aW9ucy5oeC1Eb2N1bWVudC1hcm0tc21tdXYzLWRldmljZS1z LWFjY2VsLXAucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1IYXZlLXNt bXV2M19hY2NlbF9pbml0LXRha2UtYW4tRXJyb3ItcC5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2 bS1ody1hcm0tc21tdXYzLVVwZGF0ZS1BVEMtaW52YWxpZGF0aW9uLWNoZWNrLnBhdGNoIFtSSEVM LTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhF TC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtSW1wcm92ZS1hY2NlbC1TTU1VdjMtdXNhZ2Ut ZG9jdW1lbnRhdGkucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJI RUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2Nl bC1BZGQtaGVscGVyLWZvci1yZXNvbHZpbmctYXV0by1wYS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhF TC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCist IGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUltcGxlbWVudC1hdXRvLXZhbHVlLWZvci1hdHMucGF0 Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0 by12YWx1ZS1mb3ItcmlsLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5 NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMt YWNjZWwtSW1wbGVtZW50LWF1dG8tdmFsdWUtZm9yLXNzaWRzaXoucGF0Y2ggW1JIRUwtMTQyNDY1 IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4 XQorLSBrdm0taHctYXJtLXNtbXV2My1hY2NlbC1JbXBsZW1lbnQtYXV0by12YWx1ZS1mb3Itb2Fz LnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJI RUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtU2V0LWRlZmF1bHQtYXRz LXJpbC1zc2lkc2l6ZS1vYXMtdG8tYXUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJI RUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tcWVtdS1v cHRpb25zLmh4LVN1cHBvcnQtYXV0by1mb3ItYWNjZWwtU01NVXYzLXByb3Blci5wYXRjaCBbUkhF TC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJI RUwtNzM3OThdCistIGt2bS1ody1wY2ktcGNpLUVuZm9yY2UtcGNpX3NldHVwX2lvbW11X3Blcl9i dXMtaXMtY2FsbGVkLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLXZmaW8taW9tbXVmZC1Gb3Jj ZS1jcmVhdGluZy1uZXN0aW5nLXBhcmVudC1IV1BULnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2 MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3Zt LWh3LXZmaW8taW9tbXVmZC1Db250cm9sLWRpcnR5LXRyYWNraW5nLWZvci1uZXN0aW5nLXAucGF0 Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03 Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1VcGRhdGUtaW9tbXVmZF9i YWNrZW5kX2dldF9kZXZpY2VfaS5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0x NjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1pb21tdWZkLVJl bmFtZS1hbGwtdGhlLWlkZXYtYW5kLWlkZXZjLXZhcmlhYmxlcy10by1oLnBhdGNoIFtSSEVMLTE0 MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03 Mzc5OF0KKy0ga3ZtLWJhY2tlbmRzLWlvbW11ZmQtVXBkYXRlLWlvbW11ZmRfYmFja2VuZF9hbGxv Y192aW9tbXUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwt NzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tYmFja2VuZHMtaW9tbXVmZC1JbnRy b2R1Y2UtaW9tbXVmZF9iYWNrZW5kX2FsbG9jX2h3Xy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0x NjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2 bS1iYWNrZW5kcy1pb21tdWZkLUludHJvZHVjZS1pb21tdWZkX2JhY2tlbmRfdmlvbW11X21tLnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLXN5c3RlbS1pb21tdWZkLVJlbW92ZS11bnVzZWQtdmlv bW11LXBvaW50ZXItZnJvbS1JT00ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXNt bXV2My1hY2NlbC1JbnRyb2R1Y2UtQ01EUVYtb3BzLWludGVyZmFjZS5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCistIGt2bS1ody1hcm0tc21tdXYzLUF2b2lkLWluY2x1ZGluZy1DT05GSUdfREVWSUNFUy1p bi1ody1oLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1B ZGQtVGVncmEyNDEtQ01EUVYtb3BzLWJhY2tlbmQucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0t aHctYXJtLXNtbXV2My1hY2NlbC1XaXJlLUNNRFFWLW9wcy1pbnRvLWFjY2VsLWxpZmVjeS5wYXRj aCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTcz Nzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tdmlydC1Vc2Utc3RvcmVkLVNNTVV2My1kZXZp Y2UtbGlzdC1mb3ItSU9SVC1iLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2 MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdy YTI0MS1jbWRxdi1Qcm9iZS1ob3N0LVRlZ3JhMjQxLUNNRFFWLXN1cHAucGF0Y2ggW1JIRUwtMTQy NDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTcz Nzk4XQorLSBrdm0taHctYXJtLXRlZ3JhMjQxLWNtZHF2LUltcGxlbWVudC1DTURRVi1pbml0LnBh dGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwt NzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS12aXJ0LUxpbmstU01NVXYzLUNNRFFWLXJl c291cmNlcy10by1wbGF0Zm9ybS0ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwt MTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXRl Z3JhMjQxLWNtZHF2LUltcGxlbWVudC1DTURRVi12SU9NTVUtYWxsb2MtZi5wYXRjaCBbUkhFTC0x NDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwt NzM3OThdCistIGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtbW1hcC1ob3N0LVZJTlRGLVBhZ2Uw LWZvci1DTURRLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVM LTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRx di1FbXVsYXRlLUNNRFEtVi1Db25maWctcmVnaW9uLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2 MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3Zt LWh3LWFybS10ZWdyYTI0MS1jbWRxdi1FbXVsYXRlLVZDTURRLXJlZ2lzdGVyLXJlYWRzLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1FbXVsYXRlLVZDTURR LXJlZ2lzdGVyLXdyaXRlcy5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1 OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1ody1hcm0tdGVncmEy NDEtY21kcXYtQWxsb2NhdGUtSFctVkNNRFFzLW9uY2UtY29uZmlnLnBhdGNoIFtSSEVMLTE0MjQ2 NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5 OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1Sb3V0ZS1hbGxvY2F0ZWQtVkNNRFEtUGFn ZTAtYWMucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3 OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0tbWVtb3J5LUFsbG93LVJBTS1kZXZpY2Ut cmVnaW9ucy10by1za2lwLUlPTU1VLW1hcHBpbi5wYXRjaCBbUkhFTC0xNDI0NjUgUkhFTC0xNjAx OTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThdCistIGt2bS1o dy1hcm0tdGVncmEyNDEtY21kcXYtVXNlLW1tYXAtZC1ob3N0LVZJTlRGLXBhZ2UwLWZvLnBhdGNo IFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3 OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW50cm9kdWNlLWNvbW1v bi1oZWxwZXItZm9yLXZldmUucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYz NTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXRlZ3Jh MjQxLWNtZHF2LVJlYWQtYW5kLXByb3BhZ2F0ZS1UZWdyYTI0MS1DTS5wYXRjaCBbUkhFTC0xNDI0 NjUgUkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3 OThdCistIGt2bS1ody1hcm0tdGVncmEyNDEtY21kcXYtSW5pdGlhbGl6ZS1yZWdpc3Rlci1zdGF0 ZS1vbi1yLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTcz Nzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1M aW1pdC1xdWV1ZS1zaXplLWJhc2VkLW9uLWJhY2sucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYw MTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0t aHctYXJtLXNtbXV2My1BZGQtcGVyLWRldmljZS1pZGVudGlmaWVyLXByb3BlcnR5LnBhdGNoIFtS SEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0IFJIRUwtNzM3OTYg UkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS1zbW11djMtYWNjZWwtSW50cm9kdWNlLWhlbHBlci10 by1xdWVyeS1DTURRVi0ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2 IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHctYXJtLXZpcnQtYWNw aS1BZHZlcnRpc2UtVGVncmEyNDEtQ01EUVYtbm9kZXMtaW4tRC5wYXRjaCBbUkhFTC0xNDI0NjUg UkhFTC0xNjAxOTAgUkhFTC0xNjM1OTYgUkhFTC03Mzc5NCBSSEVMLTczNzk2IFJIRUwtNzM3OThd CistIGt2bS1ody1hcm0tc21tdXYzLWFjY2VsLUVuZm9yY2UtdmlvbW11LWFzc29jaWF0aW9uLXdo ZW4tLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBSSEVMLTczNzk0 IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0ga3ZtLWh3LWFybS10ZWdyYTI0MS1jbWRxdi1Eb2N1 bWVudC10aGUtQ01EUVYtZGVzaWduLWFuZC0ucGF0Y2ggW1JIRUwtMTQyNDY1IFJIRUwtMTYwMTkw IFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBSSEVMLTczNzk4XQorLSBrdm0taHct YXJtLXNtbXV2My1BZGQtY21kcXYtcHJvcGVydHktZm9yLVNNTVV2My1kZXZpY2UucGF0Y2ggW1JI RUwtMTQyNDY1IFJIRUwtMTYwMTkwIFJIRUwtMTYzNTk2IFJIRUwtNzM3OTQgUkhFTC03Mzc5NiBS SEVMLTczNzk4XQorLSBrdm0tcmgtYWFyY2g2NC1yaC1kZXZpY2VzLm1hay1BZGQtQ09ORklHX1RF R1JBMjQxX0NNRFFWLnBhdGNoIFtSSEVMLTE0MjQ2NSBSSEVMLTE2MDE5MCBSSEVMLTE2MzU5NiBS SEVMLTczNzk0IFJIRUwtNzM3OTYgUkhFTC03Mzc5OF0KKy0gUmVzb2x2ZXM6IFJIRUwtMTQyNDY1 CisgIChbUkhFTC0xMC4xXVtBUk1dOiBUd28gc21tdXYzIGRldmljZXMgY2FuIGJlIGF0dGFjaGVk IHRvIHRoZSBzYW1lIGJ1cykKKy0gUmVzb2x2ZXM6IFJIRUwtMTYwMTkwCisgIChOVklESUE6QmFj a3BvcnQgaHcvYXJtL3NtbXV2My1hY2NlbDogU3VwcG9ydCBBVVRPIHByb3BlcnRpZXMgLSBSSEVM IDEwLjMpCistIFJlc29sdmVzOiBSSEVMLTE2MzU5NgorICAoTlZJRElBOkJhY2twb3J0IGh3L2Fy bS9zbW11djMtYWNjZWw6IFJlc29sdmUgQVVUTyBwcm9wZXJ0aWVzIC0gUkhFTCAxMC4zKQorLSBS ZXNvbHZlczogUkhFTC03Mzc5NAorICAoTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBIVyBh Y2NlbGVyYXRlZCBuZXN0aW5nIHN1cHBvcnQgZm9yIGFybSBTTU1VdjMgLSBSSEVMIDEwLjEpCist IFJlc29sdmVzOiBSSEVMLTczNzk2CisgIChOVklESUE6R3JhY2UtSG9wcGVyOkJhY2twb3J0IHZF VkVOVFEgc3VwcG9ydCBmb3Igc21tdXYzIC0gUkhFTCAxMC4xKQorLSBSZXNvbHZlczogUkhFTC03 Mzc5OAorICAoTlZJRElBOkdyYWNlLUhvcHBlcjpCYWNrcG9ydCBDTURRViBzdXBwb3J0IC0gUkhF TCAxMC4xKQorCiAqIFR1ZSBKdW4gMjMgMjAyNiBNaXJvc2xhdiBSZXphbmluYSA8bXJlemFuaW5A cmVkaGF0LmNvbT4gLSAxMC4xLjAtMjIKIC0ga3ZtLWJsa2RlYnVnLUFkZC1kZWxheS1ucy1vcHRp b24ucGF0Y2ggW1JIRUwtMTIxNjg2XQogLSBrdm0tYmxvY2stQWRkLWJsa19jb19zdGFydC1lbmRf cmVxdWVzdC1hbmQtQkRSVl9SRVFfTk9fUS5wYXRjaCBbUkhFTC0xMjE2ODZdCgpkaWZmIC0tZ2l0 IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggY2Y4MTM0NC4uNTc5MGRhYiAxMDA2NDQKLS0tIGEv c291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxLDUgQEAKIFNIQTUxMiAocWVtdS0xMC4xLjAu dGFyLnh6KSA9IDIwNTUyYTUyNGI2YjI5ODE4MWRmMWFmNzA4NGI0NzBkZWQzZmU4ZDE1MDVmMDUw MTFkZGEzYzMzY2JjM2Q5MWY1MThjZTAyNmI0NGJhMWE4YjdmMzRjNjRhZTgxYWZkZGNlZGEzODMw NjZmNDc3MmEzYTJhNjMzM2EyNjM4Y2FmCitTSEE1MTIgKElPUlQpID0gZDA3Mjc5YjAyY2UxNjAx NDE0MjhiYmMyNTZmZmU4OWZhNzI2MGNmN2ZjZDhkNDExMWVhNTlhMWFlNGU5ZjdhYTZhMmE5NGI2 MDk0ZjRmYjI2YzA4Y2NlZTNjYThjYWQ0NjdlOGJkMTM4YmY5MDgyMDdlNzNhZjc4YmZjN2U1NjQK K1NIQTUxMiAoSU9SVC5pdHNfb2ZmKSA9IGQ1MTRiZDk5NWUzODA3NjJjMjc1OTNlNjc2OWEyYmY5 MmIwZmRiYzRhMTg3YTEzNGY2ZjQxZTJmODdhODgyNGE3YzZmYTk5MzM2MmFiN2VjODQ2NjI4ZGNj MGFkNWUxODAwMGY2MGYyZjVhM2UzMGYxZWQxMTMxNDc0ZTcxOTgzCitTSEE1MTIgKElPUlQuc21t dXYzLWRldikgPSA0MzI0ODBlMzk5MmU1ZTdhMmM2MjU4ZTBlZjZmZDA5NGVhZTEzZTllNzZmOGNi ZTRlZTkzYmQxMDk0NGZiNmMwN2NlOTRmYTI1Zjk3MDQ3NDFjOWU2Y2NmNmQ5OWE4NjcwMDg0NTNj YjA4MTViYjk1MTc2ODBiNjYyZjdmMWE1ZQorU0hBNTEyIChJT1JULnNtbXV2My1sZWdhY3kpID0g Mzk2MDlkOTU2YWU2NDNmZTE3YTRhMWE1YTBlZWQxMTMyNjg3NDk4MmEyNjQ2YzczMzdlMjFlOTk0 YzhmZjZjMWNlMDhiZjI3Mzk2YjVkYjc0NDMwYTQyMGU2Y2M2MjgwMDVhNzVlZTc2OTdjM2MyZGM4 Mjk4ODJkYmUxMDdiOTUK