[PATCH 3/3] platform: generic: spacemit: k3: add platform support
Troy Mitchell <[email protected]> Fri, 24 Jul 2026 02:27:03 -0700
| Newsgroups | org.infradead.lists.opensbi |
|---|---|
| Message-ID | <[email protected]> |
RnJvbTogWGlhbmJpbiBaaHUgPHhpYW5iaW4uemh1QGxpbnV4LnNwYWNlbWl0LmNvbT4KCkFkZCBp bml0aWFsIE9wZW5TQkkgcGxhdGZvcm0gc3VwcG9ydCBmb3IgdGhlIFNwYWNlbWlUIEszIFNvQywg d2hpY2gKaGFzIDE2IGhhcnRzICg4IFgxMDAgaGFydHMgaW4gY2x1c3RlcnMgQzAvQzEsIDggQTEw MCBoYXJ0cyBpbiBDMi9DMykuCgpEdXJpbmcgY29sZCBib290LCB0aGUgYm9vdCBoYXJ0IHNldHMg d2FybS1ib290IGVudHJ5IHZlY3RvcnMgZm9yIGFsbApmb3VyIGNsdXN0ZXJzLCBlbmFibGVzIEND SSBzbm9vcGluZywgY2xlYXJzIFBNVSBwb3dlci1kb3duIHZvdGUgYml0cwpmb3IgYWxsIGhhcnRz IHNvIFdGSSBkb2VzIG5vdCB0cmlnZ2VyIHBvd2VyLWRvd24sIGFuZCB3YWtlcyBhbGwKbm9uLWJv b3QgaGFydHMgKDEtMTUpIHNvIHRoZXkgZW50ZXIgV0ZJIHdhaXRpbmcgZm9yIHRoZSBrZXJuZWwu CgpQZXItaGFydCBpbml0aWFsaXphdGlvbiBwcm9ncmFtcyBQTUEgYXR0cmlidXRlcywgZW5hYmxl cyBkY2FjaGUvaWNhY2hlCnZpYSBNU0VUVVAsIHNldHMgc21wZW5beF0gaW4gTUwyU0VUVVAgdG8g ZW5hYmxlIEwxIEQtY2FjaGUgc25vb3BpbmcKYW5kIHByZWZldGNoIGZvciB0aGlzIGNvcmUgKGhh cmR3YXJlIHRoZW4gbWFpbnRhaW5zIGNvaGVyZW5jeSBiZXR3ZWVuCnRoaXMgY29yZSdzIEwxIEQt Y2FjaGUgYW5kIGFsbCBvdGhlciBjYWNoZXMgaW4gdGhlIHN5c3RlbSksIGFuZCBlbmFibGVzCnRo ZSBIIGV4dGVuc2lvbiBpbiBNSVNBIGZvciBYMTAwIGhhcnRzIChNSVNBLkggaXMgd3JpdGFibGUg b24gSzMgWDEwMApjb3JlczsgTS1tb2RlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgdG8gYWN0aXZh dGUgaHlwZXJ2aXNvciBzdXBwb3J0KS4KCmszX2FzbS5TIHByb3ZpZGVzIHRoZSB3YXJtLWJvb3Qg ZW50cnkgc3R1YiB0aGF0IGVuYWJsZXMgY2FjaGVzIGFuZApzZXRzIHNtcGVuW3hdIHRvIGVuYWJs ZSBMMSBELWNhY2hlIHNub29waW5nIGJlZm9yZSBqdW1waW5nIHRvIEMgY29kZS4KVGhpcyBlbnN1 cmVzIHRoYXQgd2hlbiB0aGUgYm9vdCBoYXJ0IHdha2VzIHRoZSBvdGhlciBjb3JlcywgdGhvc2Ug Y29yZXMKZW50ZXIgd2l0aCB0aGVpciBsb2NhbCBjYWNoZXMgYWN0aXZlIGFuZCBMMSBELWNhY2hl IGNvaGVyZW5jeSBlbmFibGVkCnNvIHRoZXkgY2FuIG9ic2VydmUgYW55IHNoYXJlZC1kYXRhIHdy aXRlcyBtYWRlIGJ5IHRoZSBib290IGhhcnQgZHVyaW5nCmNvbGQtYm9vdCBpbml0aWFsaXphdGlv bi4gVGhlIGJvb3QgaGFydCBlbmFibGVzIGdsb2JhbCBDQ0ktNTUwCnNub29wL0RWTSByZXF1ZXN0 cyBzZXBhcmF0ZWx5IGJlZm9yZSB3YWtpbmcgdGhlIHNlY29uZGFyeSBoYXJ0cy4KCk5ldyBmaWxl czoKLSBwbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQvazMuaDogSzMtc3BlY2lmaWMg cmVnaXN0ZXIgZGVmaW5pdGlvbnMKLSBwbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQv azNfYXNtLmg6CiAgd2FybS1ib290IGVudHJ5IHN5bWJvbCBkZWNsYXJhdGlvbgotIHBsYXRmb3Jt L2dlbmVyaWMvc3BhY2VtaXQvazMuYzogSzMgcGxhdGZvcm0gZHJpdmVyCi0gcGxhdGZvcm0vZ2Vu ZXJpYy9zcGFjZW1pdC9rM19hc20uUzogd2FybS1ib290IGFzc2VtYmx5IGVudHJ5IHN0dWIKClNp Z25lZC1vZmYtYnk6IFhpYW5iaW4gWmh1IDx4aWFuYmluLnpodUBsaW51eC5zcGFjZW1pdC5jb20+ CkNvLWRldmVsb3BlZC1ieTogVHJveSBNaXRjaGVsbCA8dHJveS5taXRjaGVsbEBsaW51eC5zcGFj ZW1pdC5jb20+ClNpZ25lZC1vZmYtYnk6IFRyb3kgTWl0Y2hlbGwgPHRyb3kubWl0Y2hlbGxAbGlu dXguc3BhY2VtaXQuY29tPgotLS0KIHBsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZyAgICAgICAgICAg ICAgICAgICB8ICAgNSArCiBwbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVmY29uZmlnICAgICAg ICAgfCAgIDEgKwogcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2NvbW1vbi5oIHwg ICA0ICstCiBwbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQvazMuaCAgICAgfCAxNDQg KysrKysrKysrKysrKysrKwogcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2szX2Fz bS5oIHwgIDE2ICsrCiBwbGF0Zm9ybS9nZW5lcmljL3NwYWNlbWl0L2szLmMgICAgICAgICAgICAg fCAyNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHBsYXRmb3JtL2dlbmVyaWMvc3Bh Y2VtaXQvazNfYXNtLlMgICAgICAgICB8ICAzMyArKysrCiBwbGF0Zm9ybS9nZW5lcmljL3NwYWNl bWl0L29iamVjdHMubWsgICAgICAgfCAgIDIgKwogOCBmaWxlcyBjaGFuZ2VkLCA0NjggaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvS2Nv bmZpZyBiL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZwppbmRleCA5NTg2MTBkMy4uMDMwMmVkYTYg MTAwNjQ0Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZworKysgYi9wbGF0Zm9ybS9nZW5l cmljL0tjb25maWcKQEAgLTEwOSw2ICsxMDksMTEgQEAgY29uZmlnIFBMQVRGT1JNX1NQQUNFTUlU X0sxCiAJc2VsZWN0IFBMQVRGT1JNX1NQQUNFTUlUCiAJZGVmYXVsdCBuCiAKK2NvbmZpZyBQTEFU Rk9STV9TUEFDRU1JVF9LMworCWJvb2wgIlNwYWNlbWl0IEszIHN1cHBvcnQiCisJc2VsZWN0IFBM QVRGT1JNX1NQQUNFTUlUCisJZGVmYXVsdCBuCisKIGNvbmZpZyBDUFVfTUlQU19QODcwMAogCWJv b2wKIAlkZWZhdWx0IG4KZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9kZWZj b25maWcgYi9wbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVmY29uZmlnCmluZGV4IDM0MWY2YjI1 Li41OGQ0MDg5OCAxMDA2NDQKLS0tIGEvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNvbmZp ZworKysgYi9wbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVmY29uZmlnCkBAIC0xNSw2ICsxNSw3 IEBAIENPTkZJR19QTEFURk9STV9USEVBRD15CiBDT05GSUdfUExBVEZPUk1fTUlQU19QODcwMF9F WUVRN0g9eQogQ09ORklHX1BMQVRGT1JNX01JUFNfUDg3MDBfQk9TVE9OPXkKIENPTkZJR19QTEFU Rk9STV9TUEFDRU1JVF9LMT15CitDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVRfSzM9eQogQ09ORklH X0ZEVF9DQUNIRT15CiBDT05GSUdfRkRUX0NBQ0hFX0FOREVTX0xMQ0FDSEU9eQogQ09ORklHX0ZE VF9DQUNIRV9TSUZJVkVfQ0NBQ0hFPXkKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvaW5j bHVkZS9zcGFjZW1pdC9jb21tb24uaCBiL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1p dC9jb21tb24uaAppbmRleCAzMTdiYjNlOS4uN2I1MGNjNGYgMTAwNjQ0Ci0tLSBhL3BsYXRmb3Jt L2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9jb21tb24uaAorKysgYi9wbGF0Zm9ybS9nZW5lcmlj L2luY2x1ZGUvc3BhY2VtaXQvY29tbW9uLmgKQEAgLTksNyArOSw5IEBACiAjaWZuZGVmIF9fUklT Q1ZfU1BBQ0VNSVRfQ09NTU9OX0hfXwogI2RlZmluZSBfX1JJU0NWX1NQQUNFTUlUX0NPTU1PTl9I X18KIAorI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpbmNsdWRlIDxzYmkvc2JpX2JpdG9wcy5oPgor I2VuZGlmCiAKICNkZWZpbmUgQ1NSX01TRVRVUAkJCQkweDdjMAogI2RlZmluZSBDU1JfTUwyU0VU VVAJCQkJMHg3ZjAKQEAgLTc0LDcgKzc2LDcgQEAKICNkZWZpbmUgUE1VX0FQX0lETEVfQ09SRV9J RExFCQkJQklUKDApCiAvKiBiaXQgMTogQ09SRV9QV1JEV04gLSBwb3dlciBvZmYgY29yZSBvbiBX RkkgKHJlcXVpcmVzIENPUkVfSURMRSBzZXQpICovCiAjZGVmaW5lIFBNVV9BUF9JRExFX0NPUkVf UFdSRFdOCQkJQklUKDEpCi0vKiBiaXQgMjogQ29yZSBMMSBTUkFNIFBvd2VyIERvd24gLSByZXNl cnZlZC9ub3QgdXNlZCBpbiBLMSBhbmQgSzMgKi8KKy8qIGJpdCAyOiBDb3JlIEwxIFNSQU0gUG93 ZXIgRG93biAtIHJlc2VydmVkIGluIEsxLCB1c2VkIGluIEszICovCiAjZGVmaW5lIFBNVV9BUF9J RExFX0NPUkVfTDFfU1JBTV9QV1JEV04JCUJJVCgyKQogLyogYml0IDM6IE1BU0tfR0lDX05JUlFf VE9fQ09SRSAtIG1hc2sgbklSUSBmcm9tIEdJQywgYXV0by1jbGVhcmVkIGJ5IEhXIG9uIHBvd2Vy LWRvd24gZW50cnkgKi8KICNkZWZpbmUgUE1VX0FQX0lETEVfTUFTS19HSUNfTklSUQkJQklUKDMp CmRpZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQvazMuaCBiL3Bs YXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9rMy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwLi5hODRkOWVkOAotLS0gL2Rldi9udWxsCisrKyBiL3BsYXRmb3JtL2dl bmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9rMy5oCkBAIC0wLDAgKzEsMTQ0IEBACisvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlICovCisvKgorICogQ29weXJpZ2h0IChjKSAy MDI2IFNwYWNlbWlUCisgKiBBdXRob3JzOgorICogICBYaWFuYmluIFpodSA8eGlhbmJpbi56aHVA bGludXguc3BhY2VtaXQuY29tPgorICogICBUcm95IE1pdGNoZWxsIDx0cm95Lm1pdGNoZWxsQGxp bnV4LnNwYWNlbWl0LmNvbT4KKyAqLworCisjaWZuZGVmIF9fUklTQ1ZfU1BBQ0VNSVRfSzNfSF9f CisjZGVmaW5lIF9fUklTQ1ZfU1BBQ0VNSVRfSzNfSF9fCisKKyNpbmNsdWRlIDxzcGFjZW1pdC9j b21tb24uaD4KKworLyogUE1BIGNvbmZpZ3VyYXRpb24gQ1NSICovCisjZGVmaW5lIENTUl9QTUFD RkcwCQkJCTB4YmMwCisKKy8qCisgKiBQTUFDRkcwIGF1ZGlvIGJ1ZmZlciByZWdpb24gZmllbGQ6 IGJpdHMgWzU1OjQ4XS4KKyAqIE1hc2sgYW5kIGF0dHJpYnV0ZSBhcmUgYXBwbGllZCBhZnRlciBh IDQ4LWJpdCBzaGlmdCBiZWNhdXNlCisgKiBjc3JjL2NzcnMgb25seSBhY2NlcHQgYSAxMi1iaXQg aW1tZWRpYXRlIG9yIGEgcmVnaXN0ZXIuCisgKi8KKyNkZWZpbmUgUE1BQ0ZHMF9BVURJT19CVUZf RklFTERfTUFTSwkJMHhmZgorI2RlZmluZSBQTUFDRkcwX0FVRElPX0JVRl9GSUVMRF9TSElGVAkJ NDgKKyNkZWZpbmUgUE1BQ0ZHMF9BVURJT19CVUZfQVRUUl9DQUNIRUFCTEUJMHgyMAorCisvKgor ICogUE1BQ0ZHMCBYSVAgcmVnaW9uIGZpZWxkOiBiaXRzIFsyMzoxNl0uCisgKiBMb3dlciAxMiBi aXRzIGFyZSB6ZXJvIHNvIEdBUyBlbWl0cyBhIHNpbmdsZSBsdWkgaW5zdHJ1Y3Rpb24uCisgKi8K KyNkZWZpbmUgUE1BQ0ZHMF9YSVBfRklFTERfQ0xFQVIJCQkweDAwZmYwMDAwVUwKKyNkZWZpbmUg UE1BQ0ZHMF9YSVBfQVRUUl9JTwkJCTB4MDAyMjAwMDBVTAorCisjZGVmaW5lIENTUl9NTDJISU5U CQkJCTB4N2Y3CisKKy8qIEVuYWJsZSBpbnN0cnVjdGlvbiBwcmVmZXRjaCBpbiBMMiBjYWNoZSBv biBtaXNzICovCisjZGVmaW5lIE1MMlNFVFVQX0lQUkYJCQkJQklUKDE2KQorLyogRW5hYmxlIFRM QiBwcmVmZXRjaCBpbiBMMiBjYWNoZSAqLworI2RlZmluZSBNTDJTRVRVUF9UUFJGCQkJCUJJVCgx OCkKKy8qIEVuYWJsZSB0b3Atb2YtY2xrIG9mIHRyYWNlICovCisjZGVmaW5lIE1MMkhJTlRfVFJB Q0VfVE9QX0lDR0VOCQkJQklUKDI2KQorCisvKgorICogQ29tYmluZWQgTVNFVFVQIGZsYWdzIGVu YWJsZWQgYXQgYm9vdCB0aW1lOiBERXxJRXxCUEV8UEZFfE1NRXxFQ0NFLgorICogRXhwcmVzc2Vk IGFzIGEgcGxhaW4gaGV4IGNvbnN0YW50IHNvIGl0IGNhbiBiZSB1c2VkIGluIGFzc2VtYmx5IChC SVQoKQorICogZXhwYW5kcyB0byAxVUw8PG4gd2hpY2ggR0FTIGNhbm5vdCBldmFsdWF0ZSkuCisg Ki8KKyNkZWZpbmUgTVNFVFVQX0JPT1RfRkxBR1MJCQkweDEwMDczCisKKy8qIEExMDAgY29yZXM6 IGhhcnQgOC0xMSBiZWxvbmcgdG8gQzIgY2x1c3RlciwgaGFydCAxMi0xNSB0byBDMyBjbHVzdGVy ICovCisjZGVmaW5lIFBNVV9DQVBfQ09SRThfV0FLRVVQCQkJKFBNVV9BUF9CQVNFICsgMHgzNjAp CisjZGVmaW5lIFBNVV9DQVBfQ09SRTlfV0FLRVVQCQkJKFBNVV9BUF9CQVNFICsgMHgzNjQpCisj ZGVmaW5lIFBNVV9DQVBfQ09SRTEwX1dBS0VVUAkJCShQTVVfQVBfQkFTRSArIDB4MzY4KQorI2Rl ZmluZSBQTVVfQ0FQX0NPUkUxMV9XQUtFVVAJCQkoUE1VX0FQX0JBU0UgKyAweDM2YykKKyNkZWZp bmUgUE1VX0NBUF9DT1JFMTJfV0FLRVVQCQkJKFBNVV9BUF9CQVNFICsgMHgyMmMpCisjZGVmaW5l IFBNVV9DQVBfQ09SRTEzX1dBS0VVUAkJCShQTVVfQVBfQkFTRSArIDB4MjMwKQorI2RlZmluZSBQ TVVfQ0FQX0NPUkUxNF9XQUtFVVAJCQkoUE1VX0FQX0JBU0UgKyAweDIzNCkKKyNkZWZpbmUgUE1V X0NBUF9DT1JFMTVfV0FLRVVQCQkJKFBNVV9BUF9CQVNFICsgMHgyMzgpCisKKy8qIEExMDAgcGVy LWNvcmUgaWRsZSBjb25maWcgcmVnaXN0ZXJzIChoYXJ0cyA4LTE1KSAqLworI2RlZmluZSBQTVVf Q0FQX0NPUkU4X0lETEVfQ0ZHCQkJKFBNVV9BUF9CQVNFICsgMHgzNDApCisjZGVmaW5lIFBNVV9D QVBfQ09SRTlfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDM0NCkKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTBfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDM0OCkKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTFfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDM0YykKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTJfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDIwYykKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTNfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDIxMCkKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTRfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDIxNCkKKyNkZWZpbmUgUE1VX0NB UF9DT1JFMTVfSURMRV9DRkcJCQkoUE1VX0FQX0JBU0UgKyAweDIxOCkKKworLyogQ1ggQ0FQTVAg Y2x1c3RlciBpZGxlIGNvbmZpZyByZWdpc3RlcnMgKi8KKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lE TEVfQ0ZHMAkJKFBNVV9BUF9CQVNFICsgMHgxMjApCisjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExF X0NGRzEJCShQTVVfQVBfQkFTRSArIDB4MGU0KQorI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9D RkcyCQkoUE1VX0FQX0JBU0UgKyAweDE1MCkKKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZH MwkJKFBNVV9BUF9CQVNFICsgMHgxNTQpCisjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NGRzQJ CShQTVVfQVBfQkFTRSArIDB4MzE0KQorI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9DRkc1CQko UE1VX0FQX0JBU0UgKyAweDMxOCkKKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNgkJKFBN VV9BUF9CQVNFICsgMHgzMWMpCisjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NGRzcJCShQTVVf QVBfQkFTRSArIDB4MzIwKQorI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9DRkc4CQkoUE1VX0FQ X0JBU0UgKyAweDM1MCkKKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHOQkJKFBNVV9BUF9C QVNFICsgMHgzNTQpCisjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NGRzEwCQkoUE1VX0FQX0JB U0UgKyAweDM1OCkKKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMTEJCShQTVVfQVBfQkFT RSArIDB4MzVjKQorI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxMgkJKFBNVV9BUF9CQVNF ICsgMHgyMWMpCisjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NGRzEzCQkoUE1VX0FQX0JBU0Ug KyAweDIyMCkKKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMTQJCShQTVVfQVBfQkFTRSAr IDB4MjI0KQorI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxNQkJKFBNVV9BUF9CQVNFICsg MHgyMjgpCisKKyNkZWZpbmUgUE1VX0FQX0lETEVfUFdSRE9XTl9LM19NQVNLCQkoUE1VX0FQX0lE TEVfQ09SRV9JRExFIHwJCVwKKwkJCQkJCSBQTVVfQVBfSURMRV9DT1JFX1BXUkRXTiB8CQlcCisJ CQkJCQkgUE1VX0FQX0lETEVfQ09SRV9MMV9TUkFNX1BXUkRXTiB8CVwKKwkJCQkJCSBQTVVfQVBf SURMRV9NQVNLX0dJQ19OSVJRIHwJCVwKKwkJCQkJCSBQTVVfQVBfSURMRV9NQVNLX0dJQ19ORklR KQorCisvKgorICogUE1VIENYIHBlci1jbHVzdGVyIGlkbGUgY29udHJvbCBiaXRzIChQTVVfQ1hf Q0FQTVBuX0lETEVfQ0ZHKS4KKyAqLworLyogYml0IDA6IE1QIElkbGUgLSBnYXRlIGNsdXN0ZXIg Y2xvY2tzIGV4dGVybmFsbHkgb24gV0ZJICovCisjZGVmaW5lIFBNVV9DWF9JRExFX01QX0lETEUJ CQlCSVQoMCkKKy8qIGJpdCAxOiBNUCBQb3dlciBEb3duIC0gcG93ZXIgb2ZmIGNsdXN0ZXIgbG9n aWMgd2hlbiBpZGxlICovCisjZGVmaW5lIFBNVV9DWF9JRExFX01QX1BXUkRXTgkJCUJJVCgxKQor LyogYml0IDI6IEwyIENhY2hlIFNSQU0gUG93ZXIgRG93biAqLworI2RlZmluZSBQTVVfQ1hfSURM RV9MMl9TUkFNX1BXUkRXTgkJQklUKDIpCisvKiBiaXQgMzogU0NVIFNSQU0gUG93ZXIgRG93biAt IG5vdCB1c2VkLCBTQ1UgU1JBTSBkb2VzIG5vdCBzdXBwb3J0IHJldGVudGlvbiAqLworI2RlZmlu ZSBQTVVfQ1hfSURMRV9NUF9TQ1VfU1JBTV9QV1JEV04JCUJJVCgzKQorLyogYml0IDc6IEFDTkFD VE0gSGFyZHdhcmUgQ29udHJvbCAtIEhXIGNvbnRyb2xzIEFDTkFDVE0gcG9ydCBvbiBNUCBsb3cg cG93ZXIgZW50cnkgKi8KKyNkZWZpbmUgUE1VX0NYX0lETEVfQUNOQUNUTV9IV19DVFJMCQlCSVQo NykKKworI2RlZmluZSBDTFVTVEVSX1BXUl9ET1dOX1ZBTFVFCQkJKFBNVV9DWF9JRExFX01QX0lE TEUgfAkJXAorCQkJCQkJIFBNVV9DWF9JRExFX01QX1BXUkRXTiB8CVwKKwkJCQkJCSBQTVVfQ1hf SURMRV9MMl9TUkFNX1BXUkRXTiB8CVwKKwkJCQkJCSBQTVVfQ1hfSURMRV9NUF9TQ1VfU1JBTV9Q V1JEV04gfCBcCisJCQkJCQkgUE1VX0NYX0lETEVfQUNOQUNUTV9IV19DVFJMKQorCisvKiBib290 IGVudHJ5IGZvciBBMTAwIGNsdXN0ZXJzICovCisjZGVmaW5lIEMyX1JWQkFERFJfTE9fQUREUgkJ CSgweGQ0MjgyYzAwICsgMHgzZTgpCisjZGVmaW5lIEMyX1JWQkFERFJfSElfQUREUgkJCSgweGQ0 MjgyYzAwICsgMHgzZWMpCisjZGVmaW5lIEMzX1JWQkFERFJfTE9fQUREUgkJCSgweGQ0MjgyYzAw ICsgMHgyNjApCisjZGVmaW5lIEMzX1JWQkFERFJfSElfQUREUgkJCSgweGQ0MjgyYzAwICsgMHgy NjQpCisKKy8qCisgKiBQTVUgQVAgY29yZSBXRkkgc3RhdHVzIHJlZ2lzdGVycy4gIEVhY2ggYml0 IGluZGljYXRlcyB0aGUgY29ycmVzcG9uZGluZworICogY29yZSBoYXMgZW50ZXJlZCBXRkkgaWRs ZSBzdGF0ZS4KKyAqCisgKiBYMTAwIGhhcnRzICgwLTcpOiBQTVVfQVBfWDEwMF9JRExFX1NUQVRV UworICogICBjbHVzdGVyIDAgKGhhcnRzIDAtMyk6IGJpdHMgNCwgNywgMTAsIDEzCisgKiAgIGNs dXN0ZXIgMSAoaGFydHMgNC03KTogYml0cyAyMCwgMjMsIDI2LCAyOQorICogQTEwMCBoYXJ0cyAo OC0xNSk6IFBNVV9BUF9BMTAwX0lETEVfU1RBVFVTCisgKiAgIGNsdXN0ZXIgMiAoaGFydHMgOC0x MSk6ICBiaXRzIDQsIDcsIDEwLCAxMworICogICBjbHVzdGVyIDMgKGhhcnRzIDEyLTE1KTogYml0 cyAyMCwgMjMsIDI2LCAyOQorICovCisjZGVmaW5lIFBNVV9BUF9YMTAwX0lETEVfU1RBVFVTCQkJ MHhkNDI4Mjg5MAorI2RlZmluZSBQTVVfQVBfQTEwMF9JRExFX1NUQVRVUwkJCTB4ZDQyODI4ODAK KworI2RlZmluZSBQTEFURk9STV9BMTAwX0ZJUlNUX0lECQkJOAorI2RlZmluZSBQTEFURk9STV9B MTAwX0xBU1RfSUQJCQkxNQorCisjZGVmaW5lIFBMQVRfQ0NJX0szX0FJRE1BX0lGQUNFX0lYCQkw CisjZGVmaW5lIFBMQVRfQ0NJX0szX0NMVVNURVIwX0lGQUNFX0lYCQkxCisjZGVmaW5lIFBMQVRf Q0NJX0szX0NMVVNURVIxX0lGQUNFX0lYCQkyCisjZGVmaW5lIFBMQVRfQ0NJX0szX0NMVVNURVIy XzBfSUZBQ0VfSVgJMworI2RlZmluZSBQTEFUX0NDSV9LM19DTFVTVEVSMl8xX0lGQUNFX0lYCTQK KyNkZWZpbmUgUExBVF9DQ0lfSzNfQ0xVU1RFUjNfMF9JRkFDRV9JWAk1CisjZGVmaW5lIFBMQVRf Q0NJX0szX0NMVVNURVIzXzFfSUZBQ0VfSVgJNgorCisjZW5kaWYgLyogX19SSVNDVl9TUEFDRU1J VF9LM19IX18gKi8KZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1p dC9rM19hc20uaCBiL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9rM19hc20uaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNzBjMDA0NzgKLS0tIC9kZXYvbnVs bAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQvazNfYXNtLmgKQEAgLTAs MCArMSwxNiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZSAqLwor LyoKKyAqIENvcHlyaWdodCAoYykgMjAyNiBTcGFjZW1pVAorICogQXV0aG9yczoKKyAqICAgWGlh bmJpbiBaaHUgPHhpYW5iaW4uemh1QGxpbnV4LnNwYWNlbWl0LmNvbT4KKyAqICAgVHJveSBNaXRj aGVsbCA8dHJveS5taXRjaGVsbEBsaW51eC5zcGFjZW1pdC5jb20+CisgKi8KKworI2lmbmRlZiBf X1JJU0NWX1NQQUNFTUlUX0szX0FTTV9IX18KKyNkZWZpbmUgX19SSVNDVl9TUEFDRU1JVF9LM19B U01fSF9fCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCit2b2lkIF9zcGFjZW1pdF9rM193YXJtX3N0 YXJ0KHZvaWQpOworI2VuZGlmCisKKyNlbmRpZiAvKiBfX1JJU0NWX1NQQUNFTUlUX0szX0FTTV9I X18gKi8KZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvazMuYyBiL3BsYXRm b3JtL2dlbmVyaWMvc3BhY2VtaXQvazMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uMzE4YWE5ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL3NwYWNl bWl0L2szLmMKQEAgLTAsMCArMSwyNjQgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI2IFNwYWNlbWlUCisgKiBB dXRob3JzOgorICogICBYaWFuYmluIFpodSA8eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29t PgorICogICBUcm95IE1pdGNoZWxsIDx0cm95Lm1pdGNoZWxsQGxpbnV4LnNwYWNlbWl0LmNvbT4K KyAqLworCisjaW5jbHVkZSA8cGxhdGZvcm1fb3ZlcnJpZGUuaD4KKyNpbmNsdWRlIDxzYmkvcmlz Y3ZfaW8uaD4KKyNpbmNsdWRlIDxzYmkvc2JpX2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxzYmkvc2Jp X3RpbWVyLmg+CisjaW5jbHVkZSA8c3BhY2VtaXQvazMuaD4KKyNpbmNsdWRlIDxzcGFjZW1pdC9r M19hc20uaD4KKyNpbmNsdWRlIDxzcGFjZW1pdC9zcGFjZW1pdC5oPgorCisjZGVmaW5lIFBMQVRG T1JNX01BWF9DUFVTCQkJMTYKKworLyoKKyAqIE1heGltdW0gdGltZSB0byB3YWl0IGZvciBlYWNo IHNlY29uZGFyeSBoYXJ0IHRvIGVudGVyIFdGSSBhZnRlciBpdCBpcworICogd29rZW4gZHVyaW5n IGNvbGQgYm9vdC4gVXNlIHRoZSBwbGF0Zm9ybSB0aW1lciBzbyB0aGUgdGltZW91dCBkb2VzIG5v dAorICogZGVwZW5kIG9uIENQVSBmcmVxdWVuY3kgb3IgTU1JTyBsYXRlbmN5LgorICovCisjZGVm aW5lIEhBUlRfV0ZJX1RJTUVPVVRfTVMJCQkxMDAKKworc3RhdGljIGNvbnN0IGludCBjY2lfbWFw W10gPSB7CisJUExBVF9DQ0lfSzNfQUlETUFfSUZBQ0VfSVgsCisJUExBVF9DQ0lfSzNfQ0xVU1RF UjBfSUZBQ0VfSVgsCisJUExBVF9DQ0lfSzNfQ0xVU1RFUjFfSUZBQ0VfSVgsCisJUExBVF9DQ0lf SzNfQ0xVU1RFUjJfMF9JRkFDRV9JWCwKKwlQTEFUX0NDSV9LM19DTFVTVEVSMl8xX0lGQUNFX0lY LAorCVBMQVRfQ0NJX0szX0NMVVNURVIzXzBfSUZBQ0VfSVgsCisJUExBVF9DQ0lfSzNfQ0xVU1RF UjNfMV9JRkFDRV9JWCwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGN4X2NhcG1w X2lkbGVfY2ZnW10gPSB7CisJUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMCwgIFBNVV9DWF9DQVBNUF9J RExFX0NGRzEsCisJUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMiwgIFBNVV9DWF9DQVBNUF9JRExFX0NG RzMsCisJUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNCwgIFBNVV9DWF9DQVBNUF9JRExFX0NGRzUsCisJ UE1VX0NYX0NBUE1QX0lETEVfQ0ZHNiwgIFBNVV9DWF9DQVBNUF9JRExFX0NGRzcsCisJUE1VX0NY X0NBUE1QX0lETEVfQ0ZHOCwgIFBNVV9DWF9DQVBNUF9JRExFX0NGRzksCisJUE1VX0NYX0NBUE1Q X0lETEVfQ0ZHMTAsIFBNVV9DWF9DQVBNUF9JRExFX0NGRzExLAorCVBNVV9DWF9DQVBNUF9JRExF X0NGRzEyLCBQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxMywKKwlQTVVfQ1hfQ0FQTVBfSURMRV9DRkcx NCwgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMTUsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQg bG9uZyBjb3JlX3B3cmRvd25fcmVnW10gPSB7CisJUE1VX0FQX0NPUkUwX0lETEVfQ0ZHLCAgIFBN VV9BUF9DT1JFMV9JRExFX0NGRywKKwlQTVVfQVBfQ09SRTJfSURMRV9DRkcsICAgUE1VX0FQX0NP UkUzX0lETEVfQ0ZHLAorCVBNVV9BUF9DT1JFNF9JRExFX0NGRywgICBQTVVfQVBfQ09SRTVfSURM RV9DRkcsCisJUE1VX0FQX0NPUkU2X0lETEVfQ0ZHLCAgIFBNVV9BUF9DT1JFN19JRExFX0NGRywK KwlQTVVfQ0FQX0NPUkU4X0lETEVfQ0ZHLCAgUE1VX0NBUF9DT1JFOV9JRExFX0NGRywKKwlQTVVf Q0FQX0NPUkUxMF9JRExFX0NGRywgUE1VX0NBUF9DT1JFMTFfSURMRV9DRkcsCisJUE1VX0NBUF9D T1JFMTJfSURMRV9DRkcsIFBNVV9DQVBfQ09SRTEzX0lETEVfQ0ZHLAorCVBNVV9DQVBfQ09SRTE0 X0lETEVfQ0ZHLCBQTVVfQ0FQX0NPUkUxNV9JRExFX0NGRywKK307CisKKy8qIFdha2V1cCByZWdp c3RlcnMgaW5kZXhlZCBieSBoYXJ0IElEICgwLTE1KS4gKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBsb25nIGNvcmVfd2FrZXVwX3JlZ1tdID0geworCVBNVV9BUF9DT1JFMF9XQUtFVVAsICAgICBQ TVVfQVBfQ09SRTFfV0FLRVVQLAorCVBNVV9BUF9DT1JFMl9XQUtFVVAsICAgICBQTVVfQVBfQ09S RTNfV0FLRVVQLAorCVBNVV9BUF9DT1JFNF9XQUtFVVAsICAgICBQTVVfQVBfQ09SRTVfV0FLRVVQ LAorCVBNVV9BUF9DT1JFNl9XQUtFVVAsICAgICBQTVVfQVBfQ09SRTdfV0FLRVVQLAorCVBNVV9D QVBfQ09SRThfV0FLRVVQLCAgICBQTVVfQ0FQX0NPUkU5X1dBS0VVUCwKKwlQTVVfQ0FQX0NPUkUx MF9XQUtFVVAsICAgUE1VX0NBUF9DT1JFMTFfV0FLRVVQLAorCVBNVV9DQVBfQ09SRTEyX1dBS0VV UCwgICBQTVVfQ0FQX0NPUkUxM19XQUtFVVAsCisJUE1VX0NBUF9DT1JFMTRfV0FLRVVQLCAgIFBN VV9DQVBfQ09SRTE1X1dBS0VVUCwKK307CisKKy8qCisgKiBXRkkgaWRsZSBzdGF0dXMgcmVnaXN0 ZXJzIGFuZCBwZXItaGFydCBtYXNrIGJpdHMuICBFYWNoIGhhcnQgaGFzIGEKKyAqIGRlZGljYXRl ZCBiaXQgaW4gb25lIG9mIHR3byBzdGF0dXMgcmVnaXN0ZXJzIChYMTAwIGhhcnRzIDAtNyBpbgor ICogUE1VX0FQX1gxMDBfSURMRV9TVEFUVVMsIEExMDAgaGFydHMgOC0xNSBpbiBQTVVfQVBfQTEw MF9JRExFX1NUQVRVUykuCisgKiBJbmRleCAwIGlzIHVudXNlZCDigJQgdGhlIGJvb3QgaGFydCBu ZXZlciB3YWl0cyBvbiBpdHNlbGYuCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIHdm aV9zdGF0dXNfcmVnW10gPSB7CisJMCwKKwlQTVVfQVBfWDEwMF9JRExFX1NUQVRVUywgUE1VX0FQ X1gxMDBfSURMRV9TVEFUVVMsCisJUE1VX0FQX1gxMDBfSURMRV9TVEFUVVMsIFBNVV9BUF9YMTAw X0lETEVfU1RBVFVTLAorCVBNVV9BUF9YMTAwX0lETEVfU1RBVFVTLCBQTVVfQVBfWDEwMF9JRExF X1NUQVRVUywKKwlQTVVfQVBfWDEwMF9JRExFX1NUQVRVUywKKwlQTVVfQVBfQTEwMF9JRExFX1NU QVRVUywgUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMsCisJUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMs IFBNVV9BUF9BMTAwX0lETEVfU1RBVFVTLAorCVBNVV9BUF9BMTAwX0lETEVfU1RBVFVTLCBQTVVf QVBfQTEwMF9JRExFX1NUQVRVUywKKwlQTVVfQVBfQTEwMF9JRExFX1NUQVRVUywgUE1VX0FQX0Ex MDBfSURMRV9TVEFUVVMsCit9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgd2ZpX3N0YXR1 c19tYXNrW10gPSB7CisJMCwKKwlCSVQoNyksICBCSVQoMTApLCBCSVQoMTMpLCBCSVQoMjApLAor CUJJVCgyMyksIEJJVCgyNiksIEJJVCgyOSksCisJQklUKDQpLCAgQklUKDcpLCAgQklUKDEwKSwg QklUKDEzKSwKKwlCSVQoMjApLCBCSVQoMjMpLCBCSVQoMjYpLCBCSVQoMjkpLAorfTsKKworLyoK KyAqIENsZWFyIHRoZSBwb3dlci1kb3duIGJpdHMgZm9yIGJvdGggdGhlIGNvcmUgYW5kIGl0cyBj bHVzdGVyIHNvIHRoYXQKKyAqIHRoZSBoYXJ0IGRvZXMgbm90IHRyaWdnZXIgYSBwb3dlci1kb3du IHNlcXVlbmNlIG9uIFdGSS4gIENhbGxlZCBkdXJpbmcKKyAqIGNvbGQgYm9vdCB0byBlbnN1cmUg Y29yZXMgYW5kIGNsdXN0ZXJzIHN0YXkgcG93ZXJlZCB3aGlsZSBTQkkgaW5pdGlhbGl6ZXMuCisg Ki8KK3N0YXRpYyB2b2lkIHNwYWNlbWl0X2Rpc2FibGVfcHdyZG93bl9jb3JlKHUzMiBoYXJ0aWQp Cit7CisJdW5zaWduZWQgaW50IHZhbHVlOworCisJaWYgKGhhcnRpZCA+PSBhcnJheV9zaXplKGN4 X2NhcG1wX2lkbGVfY2ZnKSkKKwkJcmV0dXJuOworCisJdmFsdWUgPSByZWFkbCgodm9pZCAqKSh1 bnNpZ25lZCBsb25nKWN4X2NhcG1wX2lkbGVfY2ZnW2hhcnRpZF0pOworCXZhbHVlICY9IH5DTFVT VEVSX1BXUl9ET1dOX1ZBTFVFOworCXdyaXRlbCh2YWx1ZSwgKHZvaWQgKikodW5zaWduZWQgbG9u ZyljeF9jYXBtcF9pZGxlX2NmZ1toYXJ0aWRdKTsKKworCXZhbHVlID0gcmVhZGwoKHZvaWQgKiko dW5zaWduZWQgbG9uZyljb3JlX3B3cmRvd25fcmVnW2hhcnRpZF0pOworCXZhbHVlICY9IH5QTVVf QVBfSURMRV9QV1JET1dOX0szX01BU0s7CisJd3JpdGVsKHZhbHVlLCAodm9pZCAqKSh1bnNpZ25l ZCBsb25nKWNvcmVfcHdyZG93bl9yZWdbaGFydGlkXSk7Cit9CisKKy8qCisgKiBQZXItaGFydCBo YXJkd2FyZSBpbml0aWFsaXphdGlvbiwgbWlycm9yaW5nIHdoYXQgd2FybS1ib290IGhhcnRzIHBy ZXZpb3VzbHkKKyAqIGRpZCBpbiBhc3NlbWJseSBiZWZvcmUgZW50ZXJpbmcgQyBjb2RlLiAgQ2Fs bGVkIG9uIGV2ZXJ5IGhhcnQgb24gYm90aCBjb2xkCisgKiBhbmQgd2FybSBib290IHBhdGhzLgor ICoKKyAqIDEuIFBNQTogc2V0IGF1ZGlvIGJ1ZmZlciAoYml0cyBbNTU6NDhdKSBjYWNoZWFibGUg YW5kIFhJUAorICogICAgcmVnaW9uIChiaXRzIFsyMzoxNl0pIGFzIElPIGJlZm9yZSBlbmFibGlu ZyBkY2FjaGUuCisgKiAyLiBFbmFibGUgZGNhY2hlL2ljYWNoZSBhbmQgb3RoZXIgQ1BVIGZlYXR1 cmVzIChNU0VUVVApLgorICogMy4gU2V0IHNtcGVuW3hdIGluIE1MMlNFVFVQIHRvIGVuYWJsZSBM MSBELWNhY2hlIHNub29waW5nIGFuZCBwcmVmZXRjaC4KKyAqIDQuIEVuYWJsZSBIIGV4dGVuc2lv biBpbiBNSVNBIChYMTAwIG9ubHk7IG5vdCBpbXBsZW1lbnRlZCBvbiBBMTAwKS4KKyAqLworc3Rh dGljIHZvaWQgc3BhY2VtaXRfazNfaGFydF9pbml0KHUzMiBoYXJ0aWQpCit7CisJY3NyX2NsZWFy KENTUl9QTUFDRkcwLAorCQkgICh1bnNpZ25lZCBsb25nKVBNQUNGRzBfQVVESU9fQlVGX0ZJRUxE X01BU0sKKwkJICA8PCBQTUFDRkcwX0FVRElPX0JVRl9GSUVMRF9TSElGVCk7CisJY3NyX3NldChD U1JfUE1BQ0ZHMCwKKwkJKHVuc2lnbmVkIGxvbmcpUE1BQ0ZHMF9BVURJT19CVUZfQVRUUl9DQUNI RUFCTEUKKwkJPDwgUE1BQ0ZHMF9BVURJT19CVUZfRklFTERfU0hJRlQpOworCWNzcl9jbGVhcihD U1JfUE1BQ0ZHMCwgUE1BQ0ZHMF9YSVBfRklFTERfQ0xFQVIpOworCWNzcl9zZXQoQ1NSX1BNQUNG RzAsIFBNQUNGRzBfWElQX0FUVFJfSU8pOworCWFzbSB2b2xhdGlsZSgic2ZlbmNlLnZtYSIgOiA6 IDogIm1lbW9yeSIpOworCisJY3NyX3NldChDU1JfTVNFVFVQLCBNU0VUVVBfREUgfCBNU0VUVVBf SUUgfCBNU0VUVVBfQlBFIHwKKwkJTVNFVFVQX1BGRSB8IE1TRVRVUF9NTUUgfCBNU0VUVVBfRUND RSk7CisJY3NyX3NldChDU1JfTUwyU0VUVVAsIDEgPDwgKGhhcnRpZCAlIFBMQVRGT1JNX01BWF9D UFVTX1BFUl9DTFVTVEVSKSk7CisJY3NyX3NldChDU1JfTUwyU0VUVVAsIE1MMlNFVFVQX0lQUkYg fCBNTDJTRVRVUF9UUFJGKTsKKwljc3Jfc2V0KENTUl9NTDJISU5ULCBNTDJISU5UX1RSQUNFX1RP UF9JQ0dFTik7CisKKwlpZiAoaGFydGlkIDwgUExBVEZPUk1fQTEwMF9GSVJTVF9JRCkgeworCQl1 bnNpZ25lZCBsb25nIG1pc2EgPSBjc3JfcmVhZChDU1JfTUlTQSk7CisKKwkJLyoKKwkJICogTUlT QS5IIGlzIHdyaXRhYmxlIG9uIEszIFgxMDAgY29yZXM6IHRoZSBIIGV4dGVuc2lvbiBpcworCQkg KiBpbXBsZW1lbnRlZCBidXQgZGlzYWJsZWQgb3V0IG9mIHJlc2V0LCBhbmQgTS1tb2RlIG11c3QK KwkJICogZXhwbGljaXRseSBzZXQgdGhpcyBiaXQgdG8gZW5hYmxlIGh5cGVydmlzb3Igc3VwcG9y dC4KKwkJICogQTEwMCBjb3JlcyBkbyBub3QgaW1wbGVtZW50IEgsIHNvIHRoaXMgd3JpdGUgaXMg WDEwMC1vbmx5LgorCQkgKi8KKwkJbWlzYSB8PSAxVUwgPDwgKCdIJyAtICdBJyk7CisJCWNzcl93 cml0ZShDU1JfTUlTQSwgbWlzYSk7CisJfQorfQorCisvKgorICogT25lLXRpbWUgcGxhdGZvcm0g c2V0dXAgcnVuIGJ5IHRoZSBib290IGhhcnQgZHVyaW5nIGNvbGQgYm9vdDoKKyAqIHNldCB3YXJt LWJvb3QgZW50cnkgZm9yIGFsbCBmb3VyIGNsdXN0ZXJzLCBlbmFibGUgQ0NJIHNub29waW5nLAor ICogYW5kIHdha2UgYWxsIG5vbi1ib290IGhhcnRzICgxLTE1KSBzbyB0aGV5IGVudGVyIFdGSSBh bmQgd2FpdAorICogZm9yIHRoZSBrZXJuZWwgdG8gYnJpbmcgdGhlbSBvbmxpbmUuCisgKi8KK3N0 YXRpYyB2b2lkIHNwYWNlbWl0X2szX3ByZV9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBl bnRyeSA9ICh1bnNpZ25lZCBsb25nKSZfc3BhY2VtaXRfazNfd2FybV9zdGFydDsKKwlpbnQgaTsK KworCXdyaXRlbCgodTMyKWVudHJ5LCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKUMwX1JWQkFERFJf TE9fQUREUik7CisJd3JpdGVsKCh1MzIpKGVudHJ5ID4+IDMyKSwgKHZvaWQgKikodW5zaWduZWQg bG9uZylDMF9SVkJBRERSX0hJX0FERFIpOworCisJd3JpdGVsKCh1MzIpZW50cnksICh2b2lkICop KHVuc2lnbmVkIGxvbmcpQzFfUlZCQUREUl9MT19BRERSKTsKKwl3cml0ZWwoKHUzMikoZW50cnkg Pj4gMzIpLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKUMxX1JWQkFERFJfSElfQUREUik7CisKKwl3 cml0ZWwoKHUzMillbnRyeSwgKHZvaWQgKikodW5zaWduZWQgbG9uZylDMl9SVkJBRERSX0xPX0FE RFIpOworCXdyaXRlbCgodTMyKShlbnRyeSA+PiAzMiksICh2b2lkICopKHVuc2lnbmVkIGxvbmcp QzJfUlZCQUREUl9ISV9BRERSKTsKKworCXdyaXRlbCgodTMyKWVudHJ5LCAodm9pZCAqKSh1bnNp Z25lZCBsb25nKUMzX1JWQkFERFJfTE9fQUREUik7CisJd3JpdGVsKCh1MzIpKGVudHJ5ID4+IDMy KSwgKHZvaWQgKikodW5zaWduZWQgbG9uZylDM19SVkJBRERSX0hJX0FERFIpOworCisJZm9yIChp ID0gMDsgaSA8IGFycmF5X3NpemUoY2NpX21hcCk7IGkrKykKKwkJY2NpX2VuYWJsZV9zbm9vcF9k dm1fcmVxcyhjY2lfbWFwLCBpKTsKKworCS8qIENsZWFyIGNvcmUgYW5kIGNsdXN0ZXIgcG93ZXIt ZG93biB2b3RlcyBzbyBXRkkgZG9lcyBub3QgdHJpZ2dlciBwb3dlci1kb3duLiAqLworCWZvciAo aSA9IDA7IGkgPCBQTEFURk9STV9NQVhfQ1BVUzsgaSsrKQorCQlzcGFjZW1pdF9kaXNhYmxlX3B3 cmRvd25fY29yZShpKTsKKworCS8qCisJICogV2FrZSB1cCBhbGwgbm9uLWJvb3QgaGFydHMgKDEt MTUpLiAgRWFjaCBoYXJ0IE4gaGFzIGEgZGVkaWNhdGVkIFBNVQorCSAqIHdha2V1cCByZWdpc3Rl ciAoUE1VX0FQL0NBUF9DT1JFbl9XQUtFVVApLiAgV3JpdGluZyBCSVQoTikgdG8gaGFydCBOJ3MK KwkgKiByZWdpc3RlciB0cmlnZ2VycyB0aGUgd2FrZXVwIHB1bHNlIGZvciB0aGF0IGhhcnQuICBU aGlzIGlzIGNvbmZpcm1lZCBieQorCSAqIGhhcmR3YXJlOiB0aGUgcmVnaXN0ZXIgYWRkcmVzcyBz ZWxlY3RzIHRoZSB0YXJnZXQgaGFydCwgYW5kIHRoZSB2YWx1ZQorCSAqIHdyaXR0ZW4gbXVzdCBo YXZlIGJpdCBOIHNldCAobm90IGEgZml4ZWQgdHJpZ2dlciBiaXQpLgorCSAqIFNlZSBLMyBVc2Vy IE1hbnVhbCwgIjE2IFBlcmlwaGVyYWxzIC8gUG93ZXIgTWFuYWdlbWVudCAvIFdha2V1cCBDb3Jl Ii4KKwkgKi8KKwlmb3IgKGkgPSAxOyBpIDwgYXJyYXlfc2l6ZShjb3JlX3dha2V1cF9yZWcpOyBp KyspCisJCXdyaXRlbCgxIDw8IGksICh2b2lkICopKHVuc2lnbmVkIGxvbmcpY29yZV93YWtldXBf cmVnW2ldKTsKKworCS8qCisJICogV2FpdCBmb3IgZWFjaCBub24tYm9vdCBoYXJ0IHRvIGVudGVy IFdGSS4gIFN0YXR1cyBiaXQgcG9zaXRpb25zIGFyZQorCSAqIG5vbi11bmlmb3JtIChzZWUgazMu aCksIHNvIHVzZSB0aGUgZmlsZS1zY29wZSBsb29rdXAgdGFibGVzLgorCSAqLworCWZvciAoaSA9 IDE7IGkgPCBQTEFURk9STV9NQVhfQ1BVUzsgaSsrKSB7CisJCXU2NCBkZWFkbGluZSA9IHNiaV90 aW1lcl92YWx1ZV9hZnRlcl9tc2VjcyhIQVJUX1dGSV9USU1FT1VUX01TKTsKKworCQl3aGlsZSAo IShyZWFkbCgodm9pZCAqKSh1bnNpZ25lZCBsb25nKXdmaV9zdGF0dXNfcmVnW2ldKSAmIHdmaV9z dGF0dXNfbWFza1tpXSkpIHsKKwkJCWlmIChzYmlfdGltZXJfdmFsdWUoKSA+PSBkZWFkbGluZSkg eworCQkJCXNiaV9wcmludGYoIndhcm46IGhhcnQgJWQgZGlkIG5vdCBlbnRlciBXRklcbiIsIGkp OworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorfQorCisvKgorICogUGxhdGZvcm0gZWFybHkg aW5pdGlhbGl6YXRpb24uCisgKi8KK3N0YXRpYyBpbnQgc3BhY2VtaXRfazNfZWFybHlfaW5pdChi b29sIGNvbGRfYm9vdCkKK3sKKwlpbnQgcmM7CisKKwlpZiAoY29sZF9ib290KQorCQlzcGFjZW1p dF9rM19wcmVfaW5pdCgpOworCisJcmMgPSBnZW5lcmljX2Vhcmx5X2luaXQoY29sZF9ib290KTsK KwlpZiAocmMpCisJCXJldHVybiByYzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgYm9vbCBz cGFjZW1pdF9jb2xkX2Jvb3RfYWxsb3dlZCh1MzIgaGFydGlkKQoreworCS8qCisJICogUnVuIHBl ci1oYXJ0IGhhcmR3YXJlIGluaXQgKFBNQSwgZGNhY2hlL2ljYWNoZSwgYW5kIEwxIEQtY2FjaGUK KwkgKiBzbm9vcCBlbmFibGUpIGhlcmUgc28gaXQgZXhlY3V0ZXMgb24gZXZlcnkgaGFydCBiZWZv cmUgYW55IFNCSQorCSAqIGNvZGUgcnVucy4gIGNvbGRfYm9vdF9hbGxvd2VkIGlzIHRoZSBlYXJs aWVzdCBwZXItaGFydCBob29rCisJICogYXZhaWxhYmxlIGluIHRoZSBnZW5lcmljIHBsYXRmb3Jt LgorCSAqLworCXNwYWNlbWl0X2szX2hhcnRfaW5pdChoYXJ0aWQpOworCisJcmV0dXJuICFoYXJ0 aWQ7Cit9CisKK3N0YXRpYyBpbnQgc3BhY2VtaXRfazNfcGxhdGZvcm1faW5pdChjb25zdCB2b2lk ICpmZHQsIGludCBub2Rlb2ZmLAorCQkJCSAgICAgY29uc3Qgc3RydWN0IGZkdF9tYXRjaCAqbWF0 Y2gpCit7CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMuZWFybHlfaW5pdCA9IHNwYWNlbWl0X2szX2Vh cmx5X2luaXQ7CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMuY29sZF9ib290X2FsbG93ZWQgPSBzcGFj ZW1pdF9jb2xkX2Jvb3RfYWxsb3dlZDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGZkdF9tYXRjaCBzcGFjZW1pdF9rM19tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUg PSAic3BhY2VtaXQsazMiIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9OworCitjb25zdCBzdHJ1 Y3QgZmR0X2RyaXZlciBzcGFjZW1pdF9rMyA9IHsKKwkubWF0Y2hfdGFibGUgPSBzcGFjZW1pdF9r M19tYXRjaCwKKwkuaW5pdCA9IHNwYWNlbWl0X2szX3BsYXRmb3JtX2luaXQsCit9OwpkaWZmIC0t Z2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9rM19hc20uUyBiL3BsYXRmb3JtL2dlbmVy aWMvc3BhY2VtaXQvazNfYXNtLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LmZlNDVjY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9r M19hc20uUwpAQCAtMCwwICsxLDMzIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDI2IFNwYWNlbWlUCisgKiBBdXRo b3JzOgorICogICBYaWFuYmluIFpodSA8eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29tPgor ICogICBUcm95IE1pdGNoZWxsIDx0cm95Lm1pdGNoZWxsQGxpbnV4LnNwYWNlbWl0LmNvbT4KKyAq LworCisjZGVmaW5lIF9fQVNTRU1CTFlfXworI2luY2x1ZGUgPHNwYWNlbWl0L2NvbW1vbi5oPgor I2luY2x1ZGUgPHNwYWNlbWl0L2szLmg+CisKKwkuc2VjdGlvbiAuZW50cnksICJheCIsICVwcm9n Yml0cworCS5hbGlnbiAzCisJLmdsb2JsIF9zcGFjZW1pdF9rM193YXJtX3N0YXJ0Citfc3BhY2Vt aXRfazNfd2FybV9zdGFydDoKKwkvKiBFbmFibGUgZGNhY2hlLCBpY2FjaGUsIGFuZCBDUFUgZmVh dHVyZXMgKi8KKwlsaQl0MCwgTVNFVFVQX0JPT1RfRkxBR1MKKwljc3JzCUNTUl9NU0VUVVAsIHQw CisKKwkvKgorCSAqIFNldCBzbXBlblt4XSBpbiBNTDJTRVRVUCB0byBlbmFibGUgTDEgRC1jYWNo ZSBzbm9vcGluZyBmb3IgdGhpcworCSAqIGNvcmUsIHNvIHRoZSBoYXJkd2FyZSBtYWludGFpbnMg Y29oZXJlbmN5IGJldHdlZW4gdGhpcyBjb3JlJ3MgTDEKKwkgKiBELWNhY2hlIGFuZCBhbGwgb3Ro ZXIgY2FjaGVzIGluIHRoZSBzeXN0ZW0uCisJICogVGhlIGJpdCBwb3NpdGlvbiBpcyAxIDw8ICho YXJ0aWQgJSBQTEFURk9STV9NQVhfQ1BVU19QRVJfQ0xVU1RFUikuCisJICovCisJY3Nycgl0MCwg bWhhcnRpZAorCWFuZGkJdDAsIHQwLCAoUExBVEZPUk1fTUFYX0NQVVNfUEVSX0NMVVNURVIgLSAx KQorCWxpCXQxLCAxCisJc2xsCXQxLCB0MSwgdDAKKwljc3JzCUNTUl9NTDJTRVRVUCwgdDEKKwor CWoJX3N0YXJ0X3dhcm0KZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvb2Jq ZWN0cy5tayBiL3BsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvb2JqZWN0cy5tawppbmRleCA4MzA5 YWQxZi4uMjgyNTQzYjUgMTAwNjQ0Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvb2Jq ZWN0cy5taworKysgYi9wbGF0Zm9ybS9nZW5lcmljL3NwYWNlbWl0L29iamVjdHMubWsKQEAgLTUs MyArNSw1IEBACiBwbGF0Zm9ybS1vYmpzLSQoQ09ORklHX1BMQVRGT1JNX1NQQUNFTUlUKSArPSBz cGFjZW1pdC9zcGFjZW1pdC5vCiBjYXJyYXktcGxhdGZvcm1fb3ZlcnJpZGVfbW9kdWxlcy0kKENP TkZJR19QTEFURk9STV9TUEFDRU1JVF9LMSkgKz0gc3BhY2VtaXRfazEKIHBsYXRmb3JtLW9ianMt JChDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVRfSzEpICs9IHNwYWNlbWl0L2sxLm8KK2NhcnJheS1w bGF0Zm9ybV9vdmVycmlkZV9tb2R1bGVzLSQoQ09ORklHX1BMQVRGT1JNX1NQQUNFTUlUX0szKSAr PSBzcGFjZW1pdF9rMworcGxhdGZvcm0tb2Jqcy0kKENPTkZJR19QTEFURk9STV9TUEFDRU1JVF9L MykgKz0gc3BhY2VtaXQvazMubyBzcGFjZW1pdC9rM19hc20ubwoKLS0gCjIuNTUuMAoKCi0tIApv cGVuc2JpIG1haWxpbmcgbGlzdApvcGVuc2JpQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9vcGVuc2JpCg==