Re: [PATCH v2] riscv: Implement TLS Descriptors
"Luke Zhuang" <[email protected]> Mon, 03 Aug 2026 10:03:39 +0800
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Message-ID | <ca0076c6-77c6-487d-97f7-bac25eac0db2.luke.zhuang@linux.alibaba.com> |
------=ALIBOUNDARY_2236_7f162cddc700_6a6ff6fb_44a23 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Z2VudGxlIHBpbmcgOikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyb206THVrZSBaaHVhbmcgPGx1a2Uuemh1YW5nQGxp bnV4LmFsaWJhYmEuY29tPgpTZW5kIFRpbWU6V2VkLCBKdWwgMTUsIDIwMjYsIDIzOjE1ClRvOiJs aWJjLWFscGhhIjxsaWJjLWFscGhhQHNvdXJjZXdhcmUub3JnPgpDQzoiYWRoZW1lcnZhbC56YW5l bGxhIjxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz47IGZ3ZWltZXI8ZndlaW1lckByZWRo YXQuY29tPjsgc2Nod2FiPHNjaHdhYkBzdXNlLmRlPjsgcGFsbWVyPHBhbG1lckByaXZvc2luYy5j b20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyBydWkzMTQ8cnVpMzE0QGdtYWlsLmNvbT47 IHJ1aXU8cnVpdUBibHVld2hhbGUuc3lzdGVtcz47IGRpbGZyaWRnZTxkaWxmcmlkZ2VAZ2VudG9v Lm9yZz47ICJraXRvLmNoZW5nIjxraXRvLmNoZW5nQGdtYWlsLmNvbT47IEx1a2UgWmh1YW5nPGx1 a2Uuemh1YW5nQGxpbnV4LmFsaWJhYmEuY29tPjsgVGF0c3V5dWtpIElzaGk8aXNoaXRhdHN1eXVr aUBnbWFpbC5jb20+OyBCb3lhbyBXYW5nPHdhbmdib3lhb0BieXRlZGFuY2UuY29tPgpTdWJqZWN0 OltQQVRDSCB2Ml0gcmlzY3Y6IEltcGxlbWVudCBUTFMgRGVzY3JpcHRvcnMKRnJvbTogIkx1a2Ug Wmh1YW5nIiA8bHVrZS56aHVhbmdAbGludXguYWxpYmFiYS5jb20+CkltcGxlbWVudCBUTFMgRGVz Y3JpcHRvcnMgKFRMU0RFU0MpIGZvciBSSVNDLVYsIGFzIHNwZWNpZmllZCBieSB0aGUKUklTQy1W IHBzQUJJIFRMU0RFU0MgZXh0ZW5zaW9uIFsxXS4KVGhpcyBhZGRzIHRoZSBSSVNDLVYgVExTREVT QyByZWxvY2F0aW9uIGhhbmRsaW5nIGFuZCB0aGUgdGhyZWUgcmVzb2x2ZXIKZW50cnkgcG9pbnRz IHVzZWQgYnkgdGhlIGR5bmFtaWMgbG9hZGVyOgogLSBfZGxfdGxzZGVzY191bmRlZndlYWs6IGZv ciB1bmRlZmluZWQgd2VhayBUTFMgc3ltYm9scy4KIC0gX2RsX3Rsc2Rlc2NfcmV0dXJuOiBmb3Ig c3ltYm9scyBpbiB0aGUgc3RhdGljIFRMUyBibG9jay4KIC0gX2RsX3Rsc2Rlc2NfZHluYW1pYzog Zm9yIGR5bmFtaWMgVExTIHN5bWJvbHMuClRoZSBkeW5hbWljIHJlc29sdmVyIGltcGxlbWVudHMg dGhlIHVzdWFsIGZhc3QgcGF0aCBieSBjaGVja2luZyB0aGUgRFRWCmdlbmVyYXRpb24gY291bnRl ciwgYW5kIGZhbGxzIGJhY2sgdG8gX190bHNfZ2V0X2FkZHIgb24gdGhlIHNsb3cgcGF0aC4KVGhp cyB3b3JrIGlzIGJhc2VkIG9uIFRhdHN1eXVraSBJc2hpJ3Mgb3JpZ2luYWwgcGF0Y2ggc2VyaWVz IFsyXSwgYW5kCmlzIGJlaW5nIHJlbGFuZGVkIHdpdGggaGlzIGF1dGhvcml6YXRpb24uIFRoZSBy ZWxhbmQgaW5jbHVkZXMgdGhlCmZvbGxvd2luZyB1cGRhdGVzOgogKiBEbyBub3Qgc2F2ZSBhbmQg cmVzdG9yZSB2ZWN0b3IgcmVnaXN0ZXJzIGluIF9kbF90bHNkZXNjX2R5bmFtaWMuCiBUaGUgUklT Qy1WIHBzQUJJIG5vdyBkZWZpbmVzIHZlY3RvciByZWdpc3RlcnMgYW5kIHZlY3RvciBDU1JzIGFz CiBjYWxsZXItY2xvYmJlcmVkIGFjcm9zcyBUTFNERVNDIGNhbGxzIFszXSwgc28gcHJlc2Vydmlu ZyBsaXZlIHZlY3Rvcgogc3RhdGUgaXMgdGhlIGNvbXBpbGVyJ3MgcmVzcG9uc2liaWxpdHkuICh0 aGUgR0NDIHBhcnQgaXMgYWxyZWFkeQogY2hlY2tlZC1pbiBbNF0pCiAqIENhbGwgSElEREVOX0pV TVBUQVJHRVQoX190bHNfZ2V0X2FkZHIpIGluc3RlYWQgb2YgYSBkaXJlY3QgY2FsbCwKIGF2b2lk aW5nIFBMVCBpbmRpcmVjdGlvbiBpbiBsZC5zby4KICogUmVhcnJhbmdlIFRMU0RFU0MgZW50cmll cyBpbiBlbGZfbWFjaGluZV9yZWxhIGluIGFyZy1iZWZvcmUtZW50cnkKIG9yZGVyLCBhbmQgdXNl IGEgdm9sYXRpbGUgdGxzZGVzYyBwb2ludGVyLCBtYXRjaGluZyB0aGUgYmVoYXZpb3IKIG9mIG90 aGVyIGFyY2hpdGVjdHVyZXMgbGlrZSB4ODYvYXJtLgogKiBBZGQgbXRsc19kZXNjcmlwdG9yPWRl c2MgaW4gcHJlY29uZmlndXJlLmFjIGluc3RlZCBvZiBwcmVjb25maWd1cmUKICogQWRkIENGSSB0 byB0aGUgYXNzZW1ibHkgY29kZSBpbiB0aGUgZGwtdGxzZGVzYy5TCiAqIEFkZCBhIGJyYW5kIG5l dyB0ZXN0IGhlYWRlciBmaWxlIHN5c2RlcHMvcmlzY3YvdHN0LWdudTItdGxzMi5oCiAoYWxpZ25z IHRvIGFybS94ODYpLCB0byB0ZXN0IHRoYXQgdGhlIHJlc29sdmVyIHByZXNlcnZlcyB0aGUKIHJl cXVpcmVkIGNhbGxlci1zYXZlZCBHUFIgYW5kIEZQUiBzdGF0ZS4KQmFzaWMgR0NDIGFuZCBiaW51 dGlscyBzdXBwb3J0IGZvciBSSVNDLVYgVExTREVTQyByZWxvY2F0aW9ucyBpcyBhbHJlYWR5CnVw c3RyZWFtIFs1XVs2XS4gTGlua2VyIHJlbGF4YXRpb24gc3VwcG9ydCBpcyBvbiB0aGUgd2F5IGJ1 dCBzaG91bGQgbm90CmJlIGEgYmxvY2tlci4KWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi1u b24taXNhL3Jpc2N2LWVsZi1wc2FiaS1kb2MvcHVsbC8zNzMgPGh0dHBzOi8vZ2l0aHViLmNvbS9y aXNjdi1ub24taXNhL3Jpc2N2LWVsZi1wc2FiaS1kb2MvcHVsbC8zNzMgPgpbMl0gaHR0cHM6Ly9p bmJveC5zb3VyY2V3YXJlLm9yZy9saWJjLWFscGhhLzA5QTE0Qzc3LTlFRUEtNDcwNy05RTM2LUQz QUFGOEE5OEIyNEBnbWFpbC5jb20vVC8jdSA8aHR0cHM6Ly9pbmJveC5zb3VyY2V3YXJlLm9yZy9s aWJjLWFscGhhLzA5QTE0Qzc3LTlFRUEtNDcwNy05RTM2LUQzQUFGOEE5OEIyNEBnbWFpbC5jb20v VC8jdSA+ClszXSBodHRwczovL2dpdGh1Yi5jb20vcmlzY3Ytbm9uLWlzYS9yaXNjdi1lbGYtcHNh YmktZG9jL3B1bGwvNDk2IDxodHRwczovL2dpdGh1Yi5jb20vcmlzY3Ytbm9uLWlzYS9yaXNjdi1l bGYtcHNhYmktZG9jL3B1bGwvNDk2ID4KWzRdIGh0dHBzOi8vZ2NjLmdudS5vcmcvY2dpdC9nY2Mv Y29tbWl0Lz9pZD0wNzQ4ZDJjODNmYzA0NDBmMTAxZmUwMWNjM2RmYzk3YzhlMTFjM2IyIDxodHRw czovL2djYy5nbnUub3JnL2NnaXQvZ2NjL2NvbW1pdC8/aWQ9MDc0OGQyYzgzZmMwNDQwZjEwMWZl MDFjYzNkZmM5N2M4ZTExYzNiMiA+Cls1XSBodHRwczovL2djYy5nbnUub3JnL2NnaXQvZ2NjL2Nv bW1pdC8/aWQ9OTcwNjk2NTdjNGU0MGIyMDljN2I3NzRlMTJmYWFjYTEzODEyYTg2YyA8aHR0cHM6 Ly9nY2MuZ251Lm9yZy9jZ2l0L2djYy9jb21taXQvP2lkPTk3MDY5NjU3YzRlNDBiMjA5YzdiNzc0 ZTEyZmFhY2ExMzgxMmE4NmMgPgpbNl0gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Ymlu dXRpbHMtZ2RiLmdpdCA8aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9YmludXRpbHMtZ2Ri LmdpdCA+O2E9Y29tbWl0ZGlmZjtoPTE1OWFmYmI3NjE3ZDJjOGE5Y2QzZjMzNTAzNzQ3MTFmMzdm NjA0NDIKQ28tYXV0aG9yZWQtYnk6IFRhdHN1eXVraSBJc2hpIDxpc2hpdGF0c3V5dWtpQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEJveWFvIFdhbmcgPHdhbmdib3lhb0BieXRlZGFuY2UuY29t PgpTaWduZWQtb2ZmLWJ5OiBMdWtlIFpodWFuZyA8bHVrZS56aHVhbmdAbGludXguYWxpYmFiYS5j b20+Ci0tLQogc3lzZGVwcy9yaXNjdi9NYWtlZmlsZSB8IDEwICsrCiBzeXNkZXBzL3Jpc2N2L2Rs LWxvb2t1cGNmZy5oIHwgMjcgKysrKwogc3lzZGVwcy9yaXNjdi9kbC1tYWNoaW5lLmggfCA1NCAr KysrKystCiBzeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2MuUyB8IDI2MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2MuaCB8IDQ4ICsrKysr KysKIHN5c2RlcHMvcmlzY3YvbGlua21hcC5oIHwgMSArCiBzeXNkZXBzL3Jpc2N2L3ByZWNvbmZp Z3VyZSB8IDEgKwogc3lzZGVwcy9yaXNjdi9wcmVjb25maWd1cmUuYWMgfCAxICsKIHN5c2RlcHMv cmlzY3YvdGxzZGVzYy5jIHwgMzggKysrKysKIHN5c2RlcHMvcmlzY3YvdGxzZGVzYy5zeW0gfCAx OSArKysKIHN5c2RlcHMvcmlzY3YvdHN0LWdudTItdGxzMi5oIHwgMjAxICsrKysrKysrKysrKysr KysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCA2NTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvZGwtbG9va3VwY2ZnLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2MuUwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvZGwtdGxzZGVzYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3lzZGVwcy9yaXNjdi90bHNkZXNjLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2 L3Rsc2Rlc2Muc3ltCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi90c3QtZ251Mi10 bHMyLmgKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvTWFrZWZpbGUgYi9zeXNkZXBzL3Jpc2N2 L01ha2VmaWxlCmluZGV4IGMwODc1M2FlOGEuLmZjMTYwODFjZGUgMTAwNjQ0Ci0tLSBhL3N5c2Rl cHMvcmlzY3YvTWFrZWZpbGUKKysrIGIvc3lzZGVwcy9yaXNjdi9NYWtlZmlsZQpAQCAtNCw2ICs0 LDE2IEBAIGVuZGlmCiBpZmVxICgkKHN1YmRpciksZWxmKQogZ2VuLWFzLWNvbnN0LWhlYWRlcnMg Kz0gZGwtbGluay5zeW0KK3N5c2RlcC1kbC1yb3V0aW5lcyArPSBcCisgZGwtdGxzZGVzYyBcCisg dGxzZGVzYyBcCisgIyByb3V0aW5lcworZW5kaWYKKworaWZlcSAoJChzdWJkaXIpLGNzdSkKK2dl bi1hcy1jb25zdC1oZWFkZXJzICs9IFwKKyB0bHNkZXNjLnN5bSBcCisgIyBnZW4tYXMtY29uc3Qt aGVhZGVycwogZW5kaWYKICMgUklTQy1WJ3MgYXNzZW1ibGVyIGFsc28gbmVlZHMgdG8ga25vdyBh Ym91dCBQSUMgYXMgaXQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbgpkaWZmIC0tZ2l0IGEvc3lzZGVw cy9yaXNjdi9kbC1sb29rdXBjZmcuaCBiL3N5c2RlcHMvcmlzY3YvZGwtbG9va3VwY2ZnLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDE0YzhjOGY4ZQotLS0gL2Rldi9u dWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvZGwtbG9va3VwY2ZnLmgKQEAgLTAsMCArMSwyNyBAQAor LyogQ29uZmlndXJhdGlvbiBvZiBsb29rdXAgZnVuY3Rpb25zLgorIENvcHlyaWdodCAoQykgMjAy NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgR05VIEMgTGlicmFyeS4KKworIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCisgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFsb25nIHdpdGgg dGhlIEdOVSBDIExpYnJhcnkuIElmIG5vdCwgc2VlCisgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPiA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ID4uICovCisKKyNkZWZpbmUg RExfVU5NQVBfSVNfU1BFQ0lBTAorCisjaW5jbHVkZV9uZXh0IDxkbC1sb29rdXBjZmcuaD4KKwor c3RydWN0IGxpbmtfbWFwOworCitleHRlcm4gdm9pZCBfZGxfdW5tYXAgKHN0cnVjdCBsaW5rX21h cCAqbWFwKTsKKworI2RlZmluZSBETF9VTk1BUChtYXApIF9kbF91bm1hcCAobWFwKQpkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9kbC1tYWNoaW5lLmggYi9zeXNkZXBzL3Jpc2N2L2RsLW1hY2hp bmUuaAppbmRleCBiYWJiNTJhZjIwLi43OWYwZDAyY2FiIDEwMDY0NAotLS0gYS9zeXNkZXBzL3Jp c2N2L2RsLW1hY2hpbmUuaAorKysgYi9zeXNkZXBzL3Jpc2N2L2RsLW1hY2hpbmUuaApAQCAtMjUs NiArMjUsNyBAQAogI2luY2x1ZGUgPGVsZi9lbGYuaD4KICNpbmNsdWRlIDxzeXMvYXNtLmg+CiAj aW5jbHVkZSA8ZGwtdGxzLmg+CisjaW5jbHVkZSA8ZGwtdGxzZGVzYy5oPgogI2luY2x1ZGUgPGRs LWlyZWwuaD4KICNpbmNsdWRlIDxkbC1zdGF0aWMtdGxzLmg+CiAjaW5jbHVkZSA8ZGwtbWFjaGlu ZS1yZWwuaD4KQEAgLTUxLDcgKzUyLDggQEAKIHx8IChfX1dPUkRTSVpFID09IDMyICYmICh0eXBl KSA9PSBSX1JJU0NWX1RMU19UUFJFTDMyKSBcCiB8fCAoX19XT1JEU0laRSA9PSA2NCAmJiAodHlw ZSkgPT0gUl9SSVNDVl9UTFNfRFRQUkVMNjQpIFwKIHx8IChfX1dPUkRTSVpFID09IDY0ICYmICh0 eXBlKSA9PSBSX1JJU0NWX1RMU19EVFBNT0Q2NCkgXAotIHx8IChfX1dPUkRTSVpFID09IDY0ICYm ICh0eXBlKSA9PSBSX1JJU0NWX1RMU19UUFJFTDY0KSkpIFwKKyB8fCAoX19XT1JEU0laRSA9PSA2 NCAmJiAodHlwZSkgPT0gUl9SSVNDVl9UTFNfVFBSRUw2NCkgXAorIHx8ICgodHlwZSkgPT0gUl9S SVNDVl9UTFNERVNDKSkpIFwKIHwgKEVMRl9SVFlQRV9DTEFTU19DT1BZICogKCh0eXBlKSA9PSBS X1JJU0NWX0NPUFkpKSkKIC8qIFJldHVybiBub256ZXJvIGlmZiBFTEYgaGVhZGVyIGlzIGNvbXBh dGlibGUgd2l0aCB0aGUgcnVubmluZyBob3N0LiAqLwpAQCAtMjIwLDYgKzIyMiwzNyBAQCBlbGZf bWFjaGluZV9yZWxhIChzdHJ1Y3QgbGlua19tYXAgKm1hcCwgc3RydWN0IHJfc2NvcGVfZWxlbSAq c2NvcGVbXSwKIH0KIGJyZWFrOworIGNhc2UgUl9SSVNDVl9UTFNERVNDOgorIHsKKyBzdHJ1Y3Qg dGxzZGVzYyB2b2xhdGlsZSAqdGQgPQorIChzdHJ1Y3QgdGxzZGVzYyB2b2xhdGlsZSAqKXJlbG9j X2FkZHI7CisgaWYgKCFzeW0pCisgeworIHRkLT5hcmcgPSAodm9pZCAqKSByZWxvYy0+cl9hZGRl bmQ7CisgdGQtPmVudHJ5ID0gX2RsX3Rsc2Rlc2NfdW5kZWZ3ZWFrOworIH0KKyBlbHNlCisgewor IyBpZm5kZWYgU0hBUkVECisgQ0hFQ0tfU1RBVElDX1RMUyAobWFwLCBzeW1fbWFwKTsKKyMgZWxz ZQorIGlmICghVFJZX1NUQVRJQ19UTFMgKG1hcCwgc3ltX21hcCkpCisgeworIHRkLT5hcmcgPSBf ZGxfbWFrZV90bHNkZXNjX2R5bmFtaWMKKyAoc3ltX21hcCwgc3ltLT5zdF92YWx1ZSArIHJlbG9j LT5yX2FkZGVuZCk7CisgdGQtPmVudHJ5ID0gX2RsX3Rsc2Rlc2NfZHluYW1pYzsKKyB9CisgZWxz ZQorIyBlbmRpZgorIHsKKyB0ZC0+YXJnCisgPSAodm9pZCAqKSAoVExTX1RQUkVMX1ZBTFVFIChz eW1fbWFwLCBzeW0pICsgcmVsb2MtPnJfYWRkZW5kKTsKKyB0ZC0+ZW50cnkgPSBfZGxfdGxzZGVz Y19yZXR1cm47CisgfQorIH0KKyBicmVhazsKKyB9CisKIGNhc2UgUl9SSVNDVl9DT1BZOgogewog aWYgKF9fZ2xpYmNfdW5saWtlbHkgKHN5bSA9PSBOVUxMKSkKQEAgLTI5MCw2ICszMjMsMjUgQEAg ZWxmX21hY2hpbmVfbGF6eV9yZWwgKHN0cnVjdCBsaW5rX21hcCAqbWFwLCBzdHJ1Y3Qgcl9zY29w ZV9lbGVtICpzY29wZVtdLAogZWxzZQogKnJlbG9jX2FkZHIgPSBtYXAtPmxfbWFjaC5wbHQ7CiB9 CisgZWxzZSBpZiAoX19nbGliY19saWtlbHkgKHJfdHlwZSA9PSBSX1JJU0NWX1RMU0RFU0MpKQor IHsKKyBjb25zdCBFbGZfU3ltbmR4IHN5bW5keCA9IEVMRlcgKFJfU1lNKSAocmVsb2MtPnJfaW5m byk7CisgY29uc3QgRWxmVyAoU3ltKSAqc3ltdGFiID0gKGNvbnN0IHZvaWQgKilEX1BUUiAobWFw LCBsX2luZm9bRFRfU1lNVEFCXSk7CisgY29uc3QgRWxmVyAoU3ltKSAqc3ltID0gJnN5bXRhYltz eW1uZHhdOworIGNvbnN0IHN0cnVjdCByX2ZvdW5kX3ZlcnNpb24gKnZlcnNpb24gPSBOVUxMOwor CisgaWYgKG1hcC0+bF9pbmZvW1ZFUlNZTUlEWCAoRFRfVkVSU1lNKV0gIT0gTlVMTCkKKyB7Cisg Y29uc3QgRWxmVyAoSGFsZikgKnZlcm51bSA9CisgKGNvbnN0IHZvaWQgKilEX1BUUiAobWFwLCBs X2luZm9bVkVSU1lNSURYIChEVF9WRVJTWU0pXSk7CisgdmVyc2lvbiA9ICZtYXAtPmxfdmVyc2lv bnNbdmVybnVtW3N5bW5keF0gJiAweDdmZmZdOworIH0KKworIC8qIEFsd2F5cyBpbml0aWFsaXpl IFRMUyBkZXNjcmlwdG9ycyBjb21wbGV0ZWx5LCBiZWNhdXNlIGxhenkKKyBpbml0aWFsaXphdGlv biByZXF1aXJlcyBzeW5jaHJvbml6YXRpb24gYXQgZXZlcnkgVExTIGFjY2Vzcy4gKi8KKyBlbGZf bWFjaGluZV9yZWxhIChtYXAsIHNjb3BlLCByZWxvYywgc3ltLCB2ZXJzaW9uLCByZWxvY19hZGRy LAorIHNraXBfaWZ1bmMpOworIH0KIGVsc2UgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHJfdHlwZSA9 PSBSX1JJU0NWX0lSRUxBVElWRSkpCiB7CiBFbGZXKEFkZHIpIHZhbHVlID0gbWFwLT5sX2FkZHIg KyByZWxvYy0+cl9hZGRlbmQ7CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2Mu UyBiL3N5c2RlcHMvcmlzY3YvZGwtdGxzZGVzYy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjNiNzdkZDM2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2 L2RsLXRsc2Rlc2MuUwpAQCAtMCwwICsxLDI2MCBAQAorLyogVGhyZWFkLWxvY2FsIHN0b3JhZ2Ug aGFuZGxpbmcgaW4gdGhlIEVMRiBkeW5hbWljIGxpbmtlci4KKyBSSVNDLVYgdmVyc2lvbi4KKyBD b3B5cmlnaHQgKEMpIDIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKKyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKworIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCisgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgPGh0dHBz Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPiA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ ID4uICovCisKKyNpbmNsdWRlIDxzeXNkZXAuaD4KKyNpbmNsdWRlIDx0bHMuaD4KKyNpbmNsdWRl IDx0bHNkZXNjLmg+CisKKy8qIFRoZSBmYXN0IHBhdGggZG9lcyBub3QgY2FsbCBmdW5jdGlvbiBh bmQgZG9lcyBub3QgbmVlZCB0byBhbGlnbiBzcCwgYnV0CisgdG8gc2ltcGxpZnkgaGFuZGxpbmcg d2hlbiBnb2luZyBpbnRvIHRoZSBzbG93IHBhdGgsIGtlZXAgc3AgYWxpZ25lZCBhbGwKKyB0aGUg dGltZS4KKyAqLworI2RlZmluZSBGUkFNRV9TSVpFX0ZBU1QgKC0oKC0zICogU1pSRUcpICYgQUxN QVNLKSkKKworLyogVGhlIHNsb3cgcGF0aCBzYXZlIHNsb3QgbGF5b3V0LCBmcm9tIGxvd2VyIGFk ZHJlc3MgdG8gaGlnaGVyIGFkZHJlc3MsIGlzOgorIDEuIDEyIEdQIHJlZ2lzdGVycworIDIuIDIw IEZQIHJlZ2lzdGVycworCisgQmVzaWRlcyBhMCBhbmQgdDAsIHRoZSB2ZWN0b3IgcmVnaXN0ZXJz IGFyZSBhbHNvIGNhbGxlci1zYXZlZCBwZXIgdGhlIHBzQUJJCisgKHJpc2N2LW5vbi1pc2Evcmlz Y3YtZWxmLXBzYWJpLWRvYyM0OTYpIHNvIHRoZXkgYXJlIG5vdCBwcmVzZXJ2ZWQgYWNyb3NzCisg dGhlIFRMU0RFU0MgaWZ1bmMuCisgKi8KKyNpZiBkZWZpbmVkKF9fcmlzY3ZfZmxvYXRfYWJpX3Nv ZnQpCisjIGRlZmluZSBGUkFNRV9TSVpFX1NMT1cgKC0oKC0xMiAqIFNaUkVHKSAmIEFMTUFTSykp CisjZWxzZQorIyBkZWZpbmUgRlJBTUVfU0laRV9TTE9XICgtKCgtMTIgKiBTWlJFRyAtIDIwICog U1pGUkVHKSAmIEFMTUFTSykpCisjZW5kaWYKKworIC50ZXh0CisKKyAvKiBDb21wdXRlIHRoZSB0 aHJlYWQgcG9pbnRlciBvZmZzZXQgZm9yIHN5bWJvbHMgaW4gdGhlIHN0YXRpYworIFRMUyBibG9j ay4gVGhlIG9mZnNldCBpcyB0aGUgc2FtZSBmb3IgYWxsIHRocmVhZHMuCisgUHJvdG90eXBlOgor IF9kbF90bHNkZXNjX3JldHVybiAodGxzZGVzYyAqKSA7CisgKi8KK0VOVFJZIChfZGxfdGxzZGVz Y19yZXR1cm4pCisgY2ZpX3JldHVybl9jb2x1bW4gKHQwKQorIFJFR19MIGEwLCBUTFNERVNDX0FS RyhhMCkKKyBqciB0MAorRU5EIChfZGxfdGxzZGVzY19yZXR1cm4pCisKKyAvKiBIYW5kbGVyIGZv ciB1bmRlZmluZWQgd2VhayBUTFMgc3ltYm9scy4KKyBQcm90b3R5cGU6CisgX2RsX3Rsc2Rlc2Nf dW5kZWZ3ZWFrICh0bHNkZXNjICopOworCisgVGhlIHNlY29uZCB3b3JkIG9mIHRoZSBkZXNjcmlw dG9yIGNvbnRhaW5zIHRoZSBhZGRlbmQuCisgUmV0dXJuIHRoZSBhZGRlbmQgbWludXMgdGhlIHRo cmVhZCBwb2ludGVyLiBUaGlzIGVuc3VyZXMKKyB0aGF0IHdoZW4gdGhlIGNhbGxlciBhZGRzIG9u IHRoZSB0aHJlYWQgcG9pbnRlciBpdCBnZXRzIGJhY2sKKyB0aGUgYWRkZW5kLiAqLworCitFTlRS WSAoX2RsX3Rsc2Rlc2NfdW5kZWZ3ZWFrKQorIGNmaV9yZXR1cm5fY29sdW1uICh0MCkKKyBSRUdf TCBhMCwgVExTREVTQ19BUkcoYTApCisgc3ViIGEwLCBhMCwgdHAKKyBqciB0MAorRU5EIChfZGxf dGxzZGVzY191bmRlZndlYWspCisKKyNpZmRlZiBTSEFSRUQKKyAvKiBIYW5kbGVyIGZvciBkeW5h bWljIFRMUyBzeW1ib2xzLgorIFByb3RvdHlwZToKKyBfZGxfdGxzZGVzY19keW5hbWljICh0bHNk ZXNjICopIDsKKworIFRoZSBzZWNvbmQgd29yZCBvZiB0aGUgZGVzY3JpcHRvciBwb2ludHMgdG8g YQorIHRsc2Rlc2NfZHluYW1pY19hcmcgc3RydWN0dXJlLgorCisgUmV0dXJucyB0aGUgb2Zmc2V0 IGJldHdlZW4gdGhlIHRocmVhZCBwb2ludGVyIGFuZCB0aGUKKyBvYmplY3QgcmVmZXJlbmNlZCBi eSB0aGUgYXJndW1lbnQuCisKKyB1bnNpZ25lZCBsb25nCisgX2RsX3Rsc2Rlc2NfZHluYW1pYyAo c3RydWN0IHRsc2Rlc2MgKnRkcCkKKyB7Cisgc3RydWN0IHRsc2Rlc2NfZHluYW1pY19hcmcgKnRk ID0gdGRwLT5hcmc7CisgZHR2X3QgKmR0diA9ICooZHR2X3QgKiopKChjaGFyICopX190aHJlYWRf cG9pbnRlciArIFRDQkhFQURfRFRWKTsKKyBpZiAoX19idWlsdGluX2V4cGVjdCAodGQtPmdlbl9j b3VudCA8PSBkdHZbMF0uY291bnRlcgorICYmIChkdHZbdGQtPnRsc2luZm8udGlfbW9kdWxlXS5w b2ludGVyLnZhbAorICE9IFRMU19EVFZfVU5BTExPQ0FURUQpLAorIDEpKQorIHJldHVybiBkdHZb dGQtPnRsc2luZm8udGlfbW9kdWxlXS5wb2ludGVyLnZhbAorICsgdGQtPnRsc2luZm8udGlfb2Zm c2V0CisgLSBfX3RocmVhZF9wb2ludGVyOworCisgcmV0dXJuIF9fdGxzX2dldF9hZGRyICgmdGQt PnRsc2luZm8pIC0gX190aHJlYWRfcG9pbnRlcjsKKyB9CisgKi8KKworRU5UUlkgKF9kbF90bHNk ZXNjX2R5bmFtaWMpCisgY2ZpX3JldHVybl9jb2x1bW4gKHQwKQorIC8qIFNhdmUganVzdCBlbm91 Z2ggcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZmFzdCBwYXRoLCBpZiB3ZSBmYWxsCisgaW50byBzbG93 IHBhdGggd2Ugd2lsbCBzYXZlIGFkZGl0aW9uYWwgcmVnaXN0ZXJzLiAqLworIGFkZCBzcCwgc3As IC1GUkFNRV9TSVpFX0ZBU1QKKyBjZmlfYWRqdXN0X2NmYV9vZmZzZXQgKEZSQU1FX1NJWkVfRkFT VCkKKyBSRUdfUyB0MCwgMCpTWlJFRyhzcCkKKyBSRUdfUyB0MSwgMSpTWlJFRyhzcCkKKyBSRUdf UyB0MiwgMipTWlJFRyhzcCkKKyBjZmlfcmVsX29mZnNldCAodDAsIDAqU1pSRUcpCisgY2ZpX3Jl bF9vZmZzZXQgKHQxLCAxKlNaUkVHKQorIGNmaV9yZWxfb2Zmc2V0ICh0MiwgMipTWlJFRykKKwor IC8qIHQwID0gZHR2ICovCisgUkVHX0wgdDAsIFRDQkhFQURfRFRWKHRwKQorIC8qIGEwID0gdGRw LT5hcmcgKi8KKyBSRUdfTCBhMCwgVExTREVTQ19BUkcoYTApCisgLyogdDEgPSB0ZC0+Z2VuX2Nv dW50ICovCisgUkVHX0wgdDEsIFRMU0RFU0NfR0VOX0NPVU5UKGEwKQorIC8qIHQyID0gZHR2WzBd LmNvdW50ZXIgKi8KKyBSRUdfTCB0MiwgRFRWX0NPVU5URVIodDApCisgYmx0dSB0MiwgdDEsIC5M c2xvdworIC8qIHQxID0gdGQtPnRsc2luZm8udGlfbW9kdWxlICovCisgUkVHX0wgdDEsIFRMU0RF U0NfTU9ESUQoYTApCisgc2xsaSB0MSwgdDEsIFBUUkxPRyArIDEgLyogc2l6ZW9mKGR0dl90KSA9 PSBzaXplb2Yodm9pZCopICogMiAqLworIGFkZCB0MSwgdDEsIHQwCisgLyogdDEgPSBkdHZbdGQt PnRsc2luZm8udGlfbW9kdWxlXS5wb2ludGVyLnZhbCAqLworIFJFR19MIHQxLCAwKHQxKQorIGxp IHQyLCBUTFNfRFRWX1VOQUxMT0NBVEVECisgYmVxIHQxLCB0MiwgLkxzbG93CisgLyogdDIgPSB0 ZC0+dGxzaW5mby50aV9vZmZzZXQgKi8KKyBjZmlfcmVtZW1iZXJfc3RhdGUKKyBSRUdfTCB0Miwg VExTREVTQ19NT0RPRkYoYTApCisgYWRkIGEwLCB0MSwgdDIKKy5McmV0OgorIHN1YiBhMCwgYTAs IHRwCisgUkVHX0wgdDAsIDAqU1pSRUcoc3ApCisgY2ZpX3Jlc3RvcmUgKHQwKQorIFJFR19MIHQx LCAxKlNaUkVHKHNwKQorIGNmaV9yZXN0b3JlICh0MSkKKyBSRUdfTCB0MiwgMipTWlJFRyhzcCkK KyBjZmlfcmVzdG9yZSAodDIpCisgYWRkIHNwLCBzcCwgRlJBTUVfU0laRV9GQVNUCisgY2ZpX2Fk anVzdF9jZmFfb2Zmc2V0ICgtRlJBTUVfU0laRV9GQVNUKQorIGpyIHQwCisuTHNsb3c6CisgLyog VGhpcyBpcyB0aGUgc2xvdyBwYXRoLiBXZSBuZWVkIHRvIGNhbGwgX190bHNfZ2V0X2FkZHIoKSB3 aGljaAorIG1lYW5zIHdlIG5lZWQgdG8gc2F2ZSBhbmQgcmVzdG9yZSBhbGwgdGhlIHJlZ2lzdGVy IHRoYXQgdGhlCisgY2FsbGVlIHdpbGwgdHJhc2guICovCisKKyAvKiBTYXZlIHRoZSByZW1haW5p bmcgcmVnaXN0ZXJzIHRoYXQgd2UgbXVzdCB0cmVhdCBhcyBjYWxsZXIgc2F2ZS4gKi8KKyBjZmlf cmVzdG9yZV9zdGF0ZQorIGFkZGkgc3AsIHNwLCAtRlJBTUVfU0laRV9TTE9XCisgY2ZpX2FkanVz dF9jZmFfb2Zmc2V0IChGUkFNRV9TSVpFX1NMT1cpCisgUkVHX1MgcmEsIDAqU1pSRUcoc3ApCisg UkVHX1MgYTEsIDEqU1pSRUcoc3ApCisgUkVHX1MgYTIsIDIqU1pSRUcoc3ApCisgUkVHX1MgYTMs IDMqU1pSRUcoc3ApCisgUkVHX1MgYTQsIDQqU1pSRUcoc3ApCisgUkVHX1MgYTUsIDUqU1pSRUco c3ApCisgUkVHX1MgYTYsIDYqU1pSRUcoc3ApCisgUkVHX1MgYTcsIDcqU1pSRUcoc3ApCisgUkVH X1MgdDMsIDgqU1pSRUcoc3ApCisgUkVHX1MgdDQsIDkqU1pSRUcoc3ApCisgUkVHX1MgdDUsIDEw KlNaUkVHKHNwKQorIFJFR19TIHQ2LCAxMSpTWlJFRyhzcCkKKyBjZmlfcmVsX29mZnNldCAocmEs IDAqU1pSRUcpCisgY2ZpX3JlbF9vZmZzZXQgKGExLCAxKlNaUkVHKQorIGNmaV9yZWxfb2Zmc2V0 IChhMiwgMipTWlJFRykKKyBjZmlfcmVsX29mZnNldCAoYTMsIDMqU1pSRUcpCisgY2ZpX3JlbF9v ZmZzZXQgKGE0LCA0KlNaUkVHKQorIGNmaV9yZWxfb2Zmc2V0IChhNSwgNSpTWlJFRykKKyBjZmlf cmVsX29mZnNldCAoYTYsIDYqU1pSRUcpCisgY2ZpX3JlbF9vZmZzZXQgKGE3LCA3KlNaUkVHKQor IGNmaV9yZWxfb2Zmc2V0ICh0MywgOCpTWlJFRykKKyBjZmlfcmVsX29mZnNldCAodDQsIDkqU1pS RUcpCisgY2ZpX3JlbF9vZmZzZXQgKHQ1LCAxMCpTWlJFRykKKyBjZmlfcmVsX29mZnNldCAodDYs IDExKlNaUkVHKQorCisjaWZuZGVmIF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQKKyBGUkVHX1MgZnQw LCAoMTIqU1pSRUcgKyAwKlNaRlJFRykoc3ApCisgRlJFR19TIGZ0MSwgKDEyKlNaUkVHICsgMSpT WkZSRUcpKHNwKQorIEZSRUdfUyBmdDIsICgxMipTWlJFRyArIDIqU1pGUkVHKShzcCkKKyBGUkVH X1MgZnQzLCAoMTIqU1pSRUcgKyAzKlNaRlJFRykoc3ApCisgRlJFR19TIGZ0NCwgKDEyKlNaUkVH ICsgNCpTWkZSRUcpKHNwKQorIEZSRUdfUyBmdDUsICgxMipTWlJFRyArIDUqU1pGUkVHKShzcCkK KyBGUkVHX1MgZnQ2LCAoMTIqU1pSRUcgKyA2KlNaRlJFRykoc3ApCisgRlJFR19TIGZ0NywgKDEy KlNaUkVHICsgNypTWkZSRUcpKHNwKQorIEZSRUdfUyBmYTAsICgxMipTWlJFRyArIDgqU1pGUkVH KShzcCkKKyBGUkVHX1MgZmExLCAoMTIqU1pSRUcgKyA5KlNaRlJFRykoc3ApCisgRlJFR19TIGZh MiwgKDEyKlNaUkVHICsgMTAqU1pGUkVHKShzcCkKKyBGUkVHX1MgZmEzLCAoMTIqU1pSRUcgKyAx MSpTWkZSRUcpKHNwKQorIEZSRUdfUyBmYTQsICgxMipTWlJFRyArIDEyKlNaRlJFRykoc3ApCisg RlJFR19TIGZhNSwgKDEyKlNaUkVHICsgMTMqU1pGUkVHKShzcCkKKyBGUkVHX1MgZmE2LCAoMTIq U1pSRUcgKyAxNCpTWkZSRUcpKHNwKQorIEZSRUdfUyBmYTcsICgxMipTWlJFRyArIDE1KlNaRlJF Rykoc3ApCisgRlJFR19TIGZ0OCwgKDEyKlNaUkVHICsgMTYqU1pGUkVHKShzcCkKKyBGUkVHX1Mg ZnQ5LCAoMTIqU1pSRUcgKyAxNypTWkZSRUcpKHNwKQorIEZSRUdfUyBmdDEwLCAoMTIqU1pSRUcg KyAxOCpTWkZSRUcpKHNwKQorIEZSRUdfUyBmdDExLCAoMTIqU1pSRUcgKyAxOSpTWkZSRUcpKHNw KQorI2VuZGlmCisKKyBjYWxsIEhJRERFTl9KVU1QVEFSR0VUKF9fdGxzX2dldF9hZGRyKQorIGFk ZGkgYTAsIGEwLCAtVExTX0RUVl9PRkZTRVQKKworIFJFR19MIHJhLCAwKlNaUkVHKHNwKQorIGNm aV9yZXN0b3JlIChyYSkKKyBSRUdfTCBhMSwgMSpTWlJFRyhzcCkKKyBjZmlfcmVzdG9yZSAoYTEp CisgUkVHX0wgYTIsIDIqU1pSRUcoc3ApCisgY2ZpX3Jlc3RvcmUgKGEyKQorIFJFR19MIGEzLCAz KlNaUkVHKHNwKQorIGNmaV9yZXN0b3JlIChhMykKKyBSRUdfTCBhNCwgNCpTWlJFRyhzcCkKKyBj ZmlfcmVzdG9yZSAoYTQpCisgUkVHX0wgYTUsIDUqU1pSRUcoc3ApCisgY2ZpX3Jlc3RvcmUgKGE1 KQorIFJFR19MIGE2LCA2KlNaUkVHKHNwKQorIGNmaV9yZXN0b3JlIChhNikKKyBSRUdfTCBhNywg NypTWlJFRyhzcCkKKyBjZmlfcmVzdG9yZSAoYTcpCisgUkVHX0wgdDMsIDgqU1pSRUcoc3ApCisg Y2ZpX3Jlc3RvcmUgKHQzKQorIFJFR19MIHQ0LCA5KlNaUkVHKHNwKQorIGNmaV9yZXN0b3JlICh0 NCkKKyBSRUdfTCB0NSwgMTAqU1pSRUcoc3ApCisgY2ZpX3Jlc3RvcmUgKHQ1KQorIFJFR19MIHQ2 LCAxMSpTWlJFRyhzcCkKKyBjZmlfcmVzdG9yZSAodDYpCisKKyNpZm5kZWYgX19yaXNjdl9mbG9h dF9hYmlfc29mdAorIEZSRUdfTCBmdDAsICgxMipTWlJFRyArIDAqU1pGUkVHKShzcCkKKyBGUkVH X0wgZnQxLCAoMTIqU1pSRUcgKyAxKlNaRlJFRykoc3ApCisgRlJFR19MIGZ0MiwgKDEyKlNaUkVH ICsgMipTWkZSRUcpKHNwKQorIEZSRUdfTCBmdDMsICgxMipTWlJFRyArIDMqU1pGUkVHKShzcCkK KyBGUkVHX0wgZnQ0LCAoMTIqU1pSRUcgKyA0KlNaRlJFRykoc3ApCisgRlJFR19MIGZ0NSwgKDEy KlNaUkVHICsgNSpTWkZSRUcpKHNwKQorIEZSRUdfTCBmdDYsICgxMipTWlJFRyArIDYqU1pGUkVH KShzcCkKKyBGUkVHX0wgZnQ3LCAoMTIqU1pSRUcgKyA3KlNaRlJFRykoc3ApCisgRlJFR19MIGZh MCwgKDEyKlNaUkVHICsgOCpTWkZSRUcpKHNwKQorIEZSRUdfTCBmYTEsICgxMipTWlJFRyArIDkq U1pGUkVHKShzcCkKKyBGUkVHX0wgZmEyLCAoMTIqU1pSRUcgKyAxMCpTWkZSRUcpKHNwKQorIEZS RUdfTCBmYTMsICgxMipTWlJFRyArIDExKlNaRlJFRykoc3ApCisgRlJFR19MIGZhNCwgKDEyKlNa UkVHICsgMTIqU1pGUkVHKShzcCkKKyBGUkVHX0wgZmE1LCAoMTIqU1pSRUcgKyAxMypTWkZSRUcp KHNwKQorIEZSRUdfTCBmYTYsICgxMipTWlJFRyArIDE0KlNaRlJFRykoc3ApCisgRlJFR19MIGZh NywgKDEyKlNaUkVHICsgMTUqU1pGUkVHKShzcCkKKyBGUkVHX0wgZnQ4LCAoMTIqU1pSRUcgKyAx NipTWkZSRUcpKHNwKQorIEZSRUdfTCBmdDksICgxMipTWlJFRyArIDE3KlNaRlJFRykoc3ApCisg RlJFR19MIGZ0MTAsICgxMipTWlJFRyArIDE4KlNaRlJFRykoc3ApCisgRlJFR19MIGZ0MTEsICgx MipTWlJFRyArIDE5KlNaRlJFRykoc3ApCisjZW5kaWYKKworIGFkZGkgc3AsIHNwLCBGUkFNRV9T SVpFX1NMT1cKKyBjZmlfYWRqdXN0X2NmYV9vZmZzZXQgKC1GUkFNRV9TSVpFX1NMT1cpCisgaiAu THJldAorRU5EIChfZGxfdGxzZGVzY19keW5hbWljKQorIC5oaWRkZW4gSElEREVOX0pVTVBUQVJH RVQoX190bHNfZ2V0X2FkZHIpCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvZGwt dGxzZGVzYy5oIGIvc3lzZGVwcy9yaXNjdi9kbC10bHNkZXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uMzY2YjQ1NDE4MwotLS0gL2Rldi9udWxsCisrKyBiL3N5c2Rl cHMvcmlzY3YvZGwtdGxzZGVzYy5oCkBAIC0wLDAgKzEsNDggQEAKKy8qIFRocmVhZC1sb2NhbCBz dG9yYWdlIGRlc2NyaXB0b3IgaGFuZGxpbmcgaW4gdGhlIEVMRiBkeW5hbWljIGxpbmtlci4KKyBS SVNDLVYgdmVyc2lvbi4KKyBDb3B5cmlnaHQgKEMpIDIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUg dGhlIEdOVQorIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5LiBJZiBu b3QsIHNlZQorIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4gPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPiA+LiAqLworCisjaWZuZGVmIF9ETF9UTFNERVNDX0gKKyMgZGVmaW5l IF9ETF9UTFNERVNDX0ggMQorCisjaW5jbHVkZSA8ZGwtdGxzLmg+CisKKy8qIFR5cGUgdXNlZCB0 byByZXByZXNlbnQgYSBUTFMgZGVzY3JpcHRvciBpbiB0aGUgR09ULiAqLworc3RydWN0IHRsc2Rl c2MKK3sKKyB1bnNpZ25lZCBsb25nICgqZW50cnkpIChzdHJ1Y3QgdGxzZGVzYyAqKTsKKyB2b2lk ICphcmc7Cit9OworCisvKiBUeXBlIHVzZWQgYXMgdGhlIGFyZ3VtZW50IGluIGEgVExTIGRlc2Ny aXB0b3IgZm9yIGEgc3ltYm9sIHRoYXQKKyBuZWVkcyBkeW5hbWljIFRMUyBvZmZzZXRzLiAqLwor c3RydWN0IHRsc2Rlc2NfZHluYW1pY19hcmcKK3sKKyB0bHNfaW5kZXggdGxzaW5mbzsKKyBzaXpl X3QgZ2VuX2NvdW50OworfTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX2RsX3Rsc2Rlc2NfcmV0 dXJuIChzdHJ1Y3QgdGxzZGVzYyAqKSBhdHRyaWJ1dGVfaGlkZGVuOworZXh0ZXJuIHVuc2lnbmVk IGxvbmcgX2RsX3Rsc2Rlc2NfdW5kZWZ3ZWFrIChzdHJ1Y3QgdGxzZGVzYyAqKSBhdHRyaWJ1dGVf aGlkZGVuOworCisjIGlmZGVmIFNIQVJFRAorZXh0ZXJuIHZvaWQgKl9kbF9tYWtlX3Rsc2Rlc2Nf ZHluYW1pYyAoc3RydWN0IGxpbmtfbWFwICosIHNpemVfdCk7CitleHRlcm4gdW5zaWduZWQgbG9u ZyBfZGxfdGxzZGVzY19keW5hbWljIChzdHJ1Y3QgdGxzZGVzYyAqKSBhdHRyaWJ1dGVfaGlkZGVu OworIyBlbmRpZgorCisjZW5kaWYgLyogX0RMX1RMU0RFU0NfSCAqLwpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy9yaXNjdi9saW5rbWFwLmggYi9zeXNkZXBzL3Jpc2N2L2xpbmttYXAuaAppbmRleCBhYzE3 MGJiMzQyLi4yZmEzZjZkNDNmIDEwMDY0NAotLS0gYS9zeXNkZXBzL3Jpc2N2L2xpbmttYXAuaAor KysgYi9zeXNkZXBzL3Jpc2N2L2xpbmttYXAuaApAQCAtMSw0ICsxLDUgQEAKIHN0cnVjdCBsaW5r X21hcF9tYWNoaW5lCiB7CiBFbGZXKEFkZHIpIHBsdDsgLyogQWRkcmVzcyBvZiAucGx0LiAqLwor IHZvaWQgKnRsc2Rlc2NfdGFibGU7IC8qIEFkZHJlc3Mgb2YgVExTIGRlc2NyaXB0b3IgaGFzaCB0 YWJsZS4gKi8KIH07CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3VyZSBiL3N5 c2RlcHMvcmlzY3YvcHJlY29uZmlndXJlCmluZGV4IDU3ZmU2ODIyY2YuLjdjMzBjZjA0NWMgMTAw NzU1Ci0tLSBhL3N5c2RlcHMvcmlzY3YvcHJlY29uZmlndXJlCisrKyBiL3N5c2RlcHMvcmlzY3Yv cHJlY29uZmlndXJlCkBAIC03NCw2ICs3NCw3IEBAIHJpc2N2KikKIGJhc2VfbWFjaGluZT1yaXNj dgogbWFjaGluZT1yaXNjdi9ydiR4bGVuLyRmbG9hdF9tYWNoaW5lCisgbXRsc19kZXNjcmlwdG9y PWRlc2MKIHByaW50ZiAiJXNcbiIgIiNkZWZpbmUgUklTQ1ZfQUJJX1hMRU4gJHhsZW4iID4+Y29u ZmRlZnMuaApkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9wcmVjb25maWd1cmUuYWMgYi9zeXNk ZXBzL3Jpc2N2L3ByZWNvbmZpZ3VyZS5hYwppbmRleCA1MjQxNDkxOWFlLi4xN2Y5YTUzMTJiIDEw MDY0NAotLS0gYS9zeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3VyZS5hYworKysgYi9zeXNkZXBzL3Jp c2N2L3ByZWNvbmZpZ3VyZS5hYwpAQCAtNzQsNiArNzQsNyBAQCByaXNjdiopCiBiYXNlX21hY2hp bmU9cmlzY3YKIG1hY2hpbmU9cmlzY3YvcnYkeGxlbi8kZmxvYXRfbWFjaGluZQorIG10bHNfZGVz Y3JpcHRvcj1kZXNjCiBBQ19ERUZJTkVfVU5RVU9URUQoW1JJU0NWX0FCSV9YTEVOXSwgWyR4bGVu XSkKIEFDX0RFRklORV9VTlFVT1RFRChbUklTQ1ZfQUJJX0ZMRU5dLCBbJGFiaV9mbGVuXSkKZGlm ZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvdGxzZGVzYy5jIGIvc3lzZGVwcy9yaXNjdi90bHNkZXNj LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjJjZWYzZGI3NwotLS0g L2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvdGxzZGVzYy5jCkBAIC0wLDAgKzEsMzggQEAK Ky8qIE1hbmFnZSBUTFMgZGVzY3JpcHRvcnMuIFJJU0MtViB2ZXJzaW9uLgorIENvcHlyaWdodCAo QykgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyBUaGlzIGZpbGUgaXMgcGFy dCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCisgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgPGh0dHBzOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPiA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ID4uICovCisKKyNp bmNsdWRlIDxsZHNvZGVmcy5oPgorI2luY2x1ZGUgPHRscy5oPgorI2luY2x1ZGUgPGRsLXRscy5o PgorI2luY2x1ZGUgPGRsLXRsc2Rlc2MuaD4KKyNpbmNsdWRlIDxkbC11bm1hcC1zZWdtZW50cy5o PgorI2luY2x1ZGUgPHRsc2Rlc2NodGFiLmg+CisKKy8qIFVubWFwIHRoZSBkeW5hbWljIG9iamVj dCwgYnV0IGFsc28gcmVsZWFzZSBpdHMgVExTIGRlc2NyaXB0b3IgdGFibGUKKyBpZiB0aGVyZSBp cyBvbmUuICovCisKK3ZvaWQKK19kbF91bm1hcCAoc3RydWN0IGxpbmtfbWFwICptYXApCit7Cisg X2RsX3VubWFwX3NlZ21lbnRzIChtYXApOworCisjaWZkZWYgU0hBUkVECisgaWYgKG1hcC0+bF9t YWNoLnRsc2Rlc2NfdGFibGUpCisgaHRhYl9kZWxldGUgKG1hcC0+bF9tYWNoLnRsc2Rlc2NfdGFi bGUpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L3Rsc2Rlc2Muc3ltIGIv c3lzZGVwcy9yaXNjdi90bHNkZXNjLnN5bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi42NTJlNzJlYTU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi90bHNk ZXNjLnN5bQpAQCAtMCwwICsxLDE5IEBACisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8 c3lzZGVwLmg+CisjaW5jbHVkZSA8dGxzLmg+CisjaW5jbHVkZSA8bGluay5oPgorI2luY2x1ZGUg PGRsLXRscy5oPgorI2luY2x1ZGUgPGRsLXRsc2Rlc2MuaD4KKworLS0KKworLS0gQWJ1c2UgdGxz LmggbWFjcm9zIHRvIGRlcml2ZSBvZmZzZXRzIHJlbGF0aXZlIHRvIHRoZSB0aHJlYWQgcmVnaXN0 ZXIuCisKK1RMU0RFU0NfQVJHIG9mZnNldG9mKHN0cnVjdCB0bHNkZXNjLCBhcmcpCitUTFNERVND X0dFTl9DT1VOVCBvZmZzZXRvZihzdHJ1Y3QgdGxzZGVzY19keW5hbWljX2FyZywgZ2VuX2NvdW50 KQorVExTREVTQ19NT0RJRCBvZmZzZXRvZihzdHJ1Y3QgdGxzZGVzY19keW5hbWljX2FyZywgdGxz aW5mby50aV9tb2R1bGUpCitUTFNERVNDX01PRE9GRiBvZmZzZXRvZihzdHJ1Y3QgdGxzZGVzY19k eW5hbWljX2FyZywgdGxzaW5mby50aV9vZmZzZXQpCitUQ0JIRUFEX0RUViBvZmZzZXRvZih0Y2Jo ZWFkX3QsIGR0dikgLSBzaXplb2YodGNiaGVhZF90KSAtIFRMU19UQ0JfT0ZGU0VUCitEVFZfQ09V TlRFUiBvZmZzZXRvZihkdHZfdCwgY291bnRlcikKK1RMU19EVFZfVU5BTExPQ0FURUQgVExTX0RU Vl9VTkFMTE9DQVRFRAorVExTX0RUVl9PRkZTRVQgVExTX0RUVl9PRkZTRVQKZGlmZiAtLWdpdCBh L3N5c2RlcHMvcmlzY3YvdHN0LWdudTItdGxzMi5oIGIvc3lzZGVwcy9yaXNjdi90c3QtZ251Mi10 bHMyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWY1YjM0NWVmMgot LS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvdHN0LWdudTItdGxzMi5oCkBAIC0wLDAg KzEsMjAxIEBACisvKiBUZXN0IFRMU0RFU0MgcmVsb2NhdGlvbi4gUklTQy1WIHZlcnNpb24uCisg Q29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorCisgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUKKyBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyA8aHR0cHM6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4g Pi4gKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVk ZSA8c3RkbGliLmg+CisKKy8qIFRoZSBUTFNERVNDIGNhbGxpbmcgY29udmVudGlvbiByZXF1aXJl cyBfZGxfdGxzZGVzY19keW5hbWljIHRvIHByZXNlcnZlCisgZXZlcnkgcmVnaXN0ZXIgZXhjZXB0 IGEwICh0aGUgYXJndW1lbnQvcmV0dXJuIHZhbHVlKSBhbmQgdDAgKHRoZSByZXR1cm4KKyBhZGRy ZXNzKS4gT24gdGhlIHNsb3cgcGF0aCBpdCBjYWxscyBfX3Rsc19nZXRfYWRkciwgYW4gb3JkaW5h cnkgZnVuY3Rpb24KKyB0aGF0IG1heSBjbG9iYmVyIGFsbCBjYWxsZXItc2F2ZWQgcmVnaXN0ZXJz LCBzbyB0aGUgcmVzb2x2ZXIgbXVzdCBzYXZlIGFuZAorIHJlc3RvcmUgdGhlIGNhbGxlci1zYXZl ZCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGExLWE3IGFuZCB0MS10NiwgYW5kCisgdGhlIDIw IGNhbGxlci1zYXZlZCBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMgKGZ0MC1mdDcsIGZhMC1mYTcs IGZ0OC1mdDExKSwKKyBhcm91bmQgdGhhdCBjYWxsLiBMb2FkIHNlbnRpbmVsIHZhbHVlcyBpbnRv IHRoZW0gYmVmb3JlIHRoZSBUTFMgYWNjZXNzIGFuZAorIHZlcmlmeSB0aGF0IHRoZXkgYXJlIHVu Y2hhbmdlZCBhZnRlcndhcmRzLgorCisgVmVjdG9yIHJlZ2lzdGVycyBhbmQgdmVjdG9yIENTUnMg YXJlIGludGVudGlvbmFsbHkgKm5vdCogY2hlY2tlZDogcGVyIHRoZQorIFJJU0MtViBwc0FCSSB0 aGV5IGFyZSBjbG9iYmVyZWQgYnkgdGhlIFRMU0RFU0MgY2FsbCAoc2VlCisgcmlzY3Ytbm9uLWlz YS9yaXNjdi1lbGYtcHNhYmktZG9jIzQ5NiksIHNvIHRoZSBjb21waWxlciwgbm90IHRoZSBkeW5h bWljCisgbGlua2VyLCBpcyByZXNwb25zaWJsZSBmb3IgcHJlc2VydmluZyB0aGVtIGFjcm9zcyB0 aGUgYWNjZXNzLiAqLworCisjZGVmaW5lIElOSVRfVExTREVTQ19DQUxMKCkgXAorIHJlZ2lzdGVy IHVuc2lnbmVkIGxvbmcgdGxzZGVzY19ncF9hMSBhc20gKCJhMSIpID0gMTE7IFwKKyByZWdpc3Rl ciB1bnNpZ25lZCBsb25nIHRsc2Rlc2NfZ3BfYTIgYXNtICgiYTIiKSA9IDEyOyBcCisgcmVnaXN0 ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2EzIGFzbSAoImEzIikgPSAxMzsgXAorIHJlZ2lz dGVyIHVuc2lnbmVkIGxvbmcgdGxzZGVzY19ncF9hNCBhc20gKCJhNCIpID0gMTQ7IFwKKyByZWdp c3RlciB1bnNpZ25lZCBsb25nIHRsc2Rlc2NfZ3BfYTUgYXNtICgiYTUiKSA9IDE1OyBcCisgcmVn aXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2E2IGFzbSAoImE2IikgPSAxNjsgXAorIHJl Z2lzdGVyIHVuc2lnbmVkIGxvbmcgdGxzZGVzY19ncF9hNyBhc20gKCJhNyIpID0gMTc7IFwKKyBy ZWdpc3RlciB1bnNpZ25lZCBsb25nIHRsc2Rlc2NfZ3BfdDEgYXNtICgidDEiKSA9IDIxOyBcCisg cmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX3QyIGFzbSAoInQyIikgPSAyMjsgXAor IHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgdGxzZGVzY19ncF90MyBhc20gKCJ0MyIpID0gMjM7IFwK KyByZWdpc3RlciB1bnNpZ25lZCBsb25nIHRsc2Rlc2NfZ3BfdDQgYXNtICgidDQiKSA9IDI0OyBc CisgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX3Q1IGFzbSAoInQ1IikgPSAyNTsg XAorIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgdGxzZGVzY19ncF90NiBhc20gKCJ0NiIpID0gMjY7 CisKKyNkZWZpbmUgTE9BRF9SRUdJU1RFUl9HUCgpIFwKKyBhc20gdm9sYXRpbGUgKCIiIFwKKyA6 ICIrciIgKHRsc2Rlc2NfZ3BfYTEpLCAiK3IiICh0bHNkZXNjX2dwX2EyKSwgXAorICIrciIgKHRs c2Rlc2NfZ3BfYTMpLCAiK3IiICh0bHNkZXNjX2dwX2E0KSwgXAorICIrciIgKHRsc2Rlc2NfZ3Bf YTUpLCAiK3IiICh0bHNkZXNjX2dwX2E2KSwgXAorICIrciIgKHRsc2Rlc2NfZ3BfYTcpLCAiK3Ii ICh0bHNkZXNjX2dwX3QxKSwgXAorICIrciIgKHRsc2Rlc2NfZ3BfdDIpLCAiK3IiICh0bHNkZXNj X2dwX3QzKSwgXAorICIrciIgKHRsc2Rlc2NfZ3BfdDQpLCAiK3IiICh0bHNkZXNjX2dwX3Q1KSwg XAorICIrciIgKHRsc2Rlc2NfZ3BfdDYpIFwKKyA6IFwKKyA6ICJtZW1vcnkiKQorCisjZGVmaW5l IFNBVkVfUkVHSVNURVJfR1AoKSBcCisgTE9BRF9SRUdJU1RFUl9HUCAoKTsgXAorIGlmICh0bHNk ZXNjX2dwX2ExICE9IDExIHx8IHRsc2Rlc2NfZ3BfYTIgIT0gMTIgXAorIHx8IHRsc2Rlc2NfZ3Bf YTMgIT0gMTMgfHwgdGxzZGVzY19ncF9hNCAhPSAxNCBcCisgfHwgdGxzZGVzY19ncF9hNSAhPSAx NSB8fCB0bHNkZXNjX2dwX2E2ICE9IDE2IFwKKyB8fCB0bHNkZXNjX2dwX2E3ICE9IDE3IHx8IHRs c2Rlc2NfZ3BfdDEgIT0gMjEgXAorIHx8IHRsc2Rlc2NfZ3BfdDIgIT0gMjIgfHwgdGxzZGVzY19n cF90MyAhPSAyMyBcCisgfHwgdGxzZGVzY19ncF90NCAhPSAyNCB8fCB0bHNkZXNjX2dwX3Q1ICE9 IDI1IFwKKyB8fCB0bHNkZXNjX2dwX3Q2ICE9IDI2KSBcCisgeyBcCisgcHJpbnRmICgiR1AgcmVn aXN0ZXJzIGNvbXBhcmUgZmFpbGVkIVxuIik7IFwKKyBhYm9ydCAoKTsgXAorIH0KKworI2RlZmlu ZSBDTE9CQkVSX1JFR0lTVEVSX0dQKCkgXAorIGFzbSB2b2xhdGlsZSAoImxpIGExLCAxMDEiIDo6 OiAiYTEiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIGEyLCAxMDIiIDo6OiAiYTIiKTsgXAorIGFz bSB2b2xhdGlsZSAoImxpIGEzLCAxMDMiIDo6OiAiYTMiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxp IGE0LCAxMDQiIDo6OiAiYTQiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIGE1LCAxMDUiIDo6OiAi YTUiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIGE2LCAxMDYiIDo6OiAiYTYiKTsgXAorIGFzbSB2 b2xhdGlsZSAoImxpIGE3LCAxMDciIDo6OiAiYTciKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIHQx LCAxMTEiIDo6OiAidDEiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIHQyLCAxMTIiIDo6OiAidDIi KTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIHQzLCAxMTMiIDo6OiAidDMiKTsgXAorIGFzbSB2b2xh dGlsZSAoImxpIHQ0LCAxMTQiIDo6OiAidDQiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIHQ1LCAx MTUiIDo6OiAidDUiKTsgXAorIGFzbSB2b2xhdGlsZSAoImxpIHQ2LCAxMTYiIDo6OiAidDYiKQor CisjaWZuZGVmIF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQKKworIyBkZWZpbmUgTE9BRF9SRUdJU1RF Ul9GTE9BVCgpIFwKKyBkb3VibGUgc3JjX2Zsb2F0WzIwXTsgXAorIGZvciAoaW50IGkgPSAwOyBp IDwgMjA7IGkrKykgXAorIHNyY19mbG9hdFtpXSA9IGkgKyAxOyBcCisgYXNtIHZvbGF0aWxlICgi ZmxkIGZ0MCwgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzBdKSA6ICJmdDAiKTsgXAorIGFzbSB2b2xh dGlsZSAoImZsZCBmdDEsICUwIiA6OiAibSIgKHNyY19mbG9hdFsxXSkgOiAiZnQxIik7IFwKKyBh c20gdm9sYXRpbGUgKCJmbGQgZnQyLCAlMCIgOjogIm0iIChzcmNfZmxvYXRbMl0pIDogImZ0MiIp OyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZ0MywgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzNdKSA6 ICJmdDMiKTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBmdDQsICUwIiA6OiAibSIgKHNyY19mbG9h dFs0XSkgOiAiZnQ0Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ1LCAlMCIgOjogIm0iIChz cmNfZmxvYXRbNV0pIDogImZ0NSIpOyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZ0NiwgJTAiIDo6 ICJtIiAoc3JjX2Zsb2F0WzZdKSA6ICJmdDYiKTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBmdDcs ICUwIiA6OiAibSIgKHNyY19mbG9hdFs3XSkgOiAiZnQ3Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJm bGQgZmEwLCAlMCIgOjogIm0iIChzcmNfZmxvYXRbOF0pIDogImZhMCIpOyBcCisgYXNtIHZvbGF0 aWxlICgiZmxkIGZhMSwgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzldKSA6ICJmYTEiKTsgXAorIGFz bSB2b2xhdGlsZSAoImZsZCBmYTIsICUwIiA6OiAibSIgKHNyY19mbG9hdFsxMF0pIDogImZhMiIp OyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZhMywgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzExXSkg OiAiZmEzIik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZmE0LCAlMCIgOjogIm0iIChzcmNfZmxv YXRbMTJdKSA6ICJmYTQiKTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBmYTUsICUwIiA6OiAibSIg KHNyY19mbG9hdFsxM10pIDogImZhNSIpOyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZhNiwgJTAi IDo6ICJtIiAoc3JjX2Zsb2F0WzE0XSkgOiAiZmE2Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQg ZmE3LCAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTVdKSA6ICJmYTciKTsgXAorIGFzbSB2b2xhdGls ZSAoImZsZCBmdDgsICUwIiA6OiAibSIgKHNyY19mbG9hdFsxNl0pIDogImZ0OCIpOyBcCisgYXNt IHZvbGF0aWxlICgiZmxkIGZ0OSwgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzE3XSkgOiAiZnQ5Iik7 IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZnQxMCwgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzE4XSkg OiAiZnQxMCIpOyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZ0MTEsICUwIiA6OiAibSIgKHNyY19m bG9hdFsxOV0pIDogImZ0MTEiKTsKKworIyBkZWZpbmUgU0FWRV9SRUdJU1RFUl9GTE9BVCgpIFwK KyBkb3VibGUgcmVzdG9yZV9mbG9hdFsyMF07IFwKKyBhc20gdm9sYXRpbGUgKCJmc2QgZnQwLCAl MCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzBdKSk7IFwKKyBhc20gdm9sYXRpbGUgKCJmc2QgZnQx LCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzFdKSk7IFwKKyBhc20gdm9sYXRpbGUgKCJmc2Qg ZnQyLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzJdKSk7IFwKKyBhc20gdm9sYXRpbGUgKCJm c2QgZnQzLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzNdKSk7IFwKKyBhc20gdm9sYXRpbGUg KCJmc2QgZnQ0LCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzRdKSk7IFwKKyBhc20gdm9sYXRp bGUgKCJmc2QgZnQ1LCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzVdKSk7IFwKKyBhc20gdm9s YXRpbGUgKCJmc2QgZnQ2LCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzZdKSk7IFwKKyBhc20g dm9sYXRpbGUgKCJmc2QgZnQ3LCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzddKSk7IFwKKyBh c20gdm9sYXRpbGUgKCJmc2QgZmEwLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzhdKSk7IFwK KyBhc20gdm9sYXRpbGUgKCJmc2QgZmExLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzldKSk7 IFwKKyBhc20gdm9sYXRpbGUgKCJmc2QgZmEyLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzEw XSkpOyBcCisgYXNtIHZvbGF0aWxlICgiZnNkIGZhMywgJTAiIDogIj1tIiAocmVzdG9yZV9mbG9h dFsxMV0pKTsgXAorIGFzbSB2b2xhdGlsZSAoImZzZCBmYTQsICUwIiA6ICI9bSIgKHJlc3RvcmVf ZmxvYXRbMTJdKSk7IFwKKyBhc20gdm9sYXRpbGUgKCJmc2QgZmE1LCAlMCIgOiAiPW0iIChyZXN0 b3JlX2Zsb2F0WzEzXSkpOyBcCisgYXNtIHZvbGF0aWxlICgiZnNkIGZhNiwgJTAiIDogIj1tIiAo cmVzdG9yZV9mbG9hdFsxNF0pKTsgXAorIGFzbSB2b2xhdGlsZSAoImZzZCBmYTcsICUwIiA6ICI9 bSIgKHJlc3RvcmVfZmxvYXRbMTVdKSk7IFwKKyBhc20gdm9sYXRpbGUgKCJmc2QgZnQ4LCAlMCIg OiAiPW0iIChyZXN0b3JlX2Zsb2F0WzE2XSkpOyBcCisgYXNtIHZvbGF0aWxlICgiZnNkIGZ0OSwg JTAiIDogIj1tIiAocmVzdG9yZV9mbG9hdFsxN10pKTsgXAorIGFzbSB2b2xhdGlsZSAoImZzZCBm dDEwLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzE4XSkpOyBcCisgYXNtIHZvbGF0aWxlICgi ZnNkIGZ0MTEsICUwIiA6ICI9bSIgKHJlc3RvcmVfZmxvYXRbMTldKSk7IFwKKyBpZiAobWVtY21w IChzcmNfZmxvYXQsIHJlc3RvcmVfZmxvYXQsIHNpemVvZiAoc3JjX2Zsb2F0KSkgIT0gMCkgXAor IHsgXAorIHByaW50ZiAoIkZsb2F0IHJlZ2lzdGVycyBjb21wYXJlIGZhaWxlZCFcbiIpOyBcCisg YWJvcnQgKCk7IFwKKyB9CisKKy8qIENsb2JiZXIgdGhlIGNhbGxlci1zYXZlZCBmbG9hdGluZy1w b2ludCByZWdpc3RlcnMgaW5zaWRlIG1hbGxvYywgd2hpY2ggaXMKKyByZWFjaGVkIHRocm91Z2gg X190bHNfZ2V0X2FkZHIgb24gdGhlIFRMU0RFU0Mgc2xvdyBwYXRoLiBJZiB0aGUgcmVzb2x2ZXIK KyBmYWlscyB0byBzYXZlIGFuZCByZXN0b3JlIHRoZW0sIHRoZSBzZW50aW5lbHMgcGxhbnRlZCBi eQorIEJFRk9SRV9UTFNERVNDX0NBTEwgd2lsbCBiZSBjb3JydXB0ZWQgYW5kIEFGVEVSX1RMU0RF U0NfQ0FMTCB3aWxsIGFib3J0LiAqLworIyBkZWZpbmUgUFJFUEFSRV9NQUxMT0MoKSBcCit7IFwK KyBzdGF0aWMgY29uc3QgZG91YmxlIGNsb2JiZXJfZmxvYXRbMjBdID0gXAorIHsgMTAxLCAxMDIs IDEwMywgMTA0LCAxMDUsIDEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwLCBcCisgMTExLCAxMTIsIDEx MywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMTgsIDExOSwgMTIwIH07IFwKKyBDTE9CQkVSX1JFR0lT VEVSX0dQICgpOyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZ0MCwgJTAiIDo6ICJtIiAoY2xvYmJl cl9mbG9hdFswXSkgOiAiZnQwIik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZnQxLCAlMCIgOjog Im0iIChjbG9iYmVyX2Zsb2F0WzFdKSA6ICJmdDEiKTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBm dDIsICUwIiA6OiAibSIgKGNsb2JiZXJfZmxvYXRbMl0pIDogImZ0MiIpOyBcCisgYXNtIHZvbGF0 aWxlICgiZmxkIGZ0MywgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFszXSkgOiAiZnQzIik7IFwK KyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ0LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzRdKSA6 ICJmdDQiKTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBmdDUsICUwIiA6OiAibSIgKGNsb2JiZXJf ZmxvYXRbNV0pIDogImZ0NSIpOyBcCisgYXNtIHZvbGF0aWxlICgiZmxkIGZ0NiwgJTAiIDo6ICJt IiAoY2xvYmJlcl9mbG9hdFs2XSkgOiAiZnQ2Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ3 LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzddKSA6ICJmdDciKTsgXAorIGFzbSB2b2xhdGls ZSAoImZsZCBmYTAsICUwIiA6OiAibSIgKGNsb2JiZXJfZmxvYXRbOF0pIDogImZhMCIpOyBcCisg YXNtIHZvbGF0aWxlICgiZmxkIGZhMSwgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFs5XSkgOiAi ZmExIik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZmEyLCAlMCIgOjogIm0iIChjbG9iYmVyX2Zs b2F0WzEwXSkgOiAiZmEyIik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZmEzLCAlMCIgOjogIm0i IChjbG9iYmVyX2Zsb2F0WzExXSkgOiAiZmEzIik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZmE0 LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzEyXSkgOiAiZmE0Iik7IFwKKyBhc20gdm9sYXRp bGUgKCJmbGQgZmE1LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzEzXSkgOiAiZmE1Iik7IFwK KyBhc20gdm9sYXRpbGUgKCJmbGQgZmE2LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzE0XSkg OiAiZmE2Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZmE3LCAlMCIgOjogIm0iIChjbG9iYmVy X2Zsb2F0WzE1XSkgOiAiZmE3Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ4LCAlMCIgOjog Im0iIChjbG9iYmVyX2Zsb2F0WzE2XSkgOiAiZnQ4Iik7IFwKKyBhc20gdm9sYXRpbGUgKCJmbGQg ZnQ5LCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzE3XSkgOiAiZnQ5Iik7IFwKKyBhc20gdm9s YXRpbGUgKCJmbGQgZnQxMCwgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsxOF0pIDogImZ0MTAi KTsgXAorIGFzbSB2b2xhdGlsZSAoImZsZCBmdDExLCAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0 WzE5XSkgOiAiZnQxMSIpOyBcCit9CisKKyMgZGVmaW5lIEJFRk9SRV9UTFNERVNDX0NBTEwoKSBc CisgTE9BRF9SRUdJU1RFUl9HUCAoKTsgXAorIExPQURfUkVHSVNURVJfRkxPQVQgKCkKKworIyBk ZWZpbmUgQUZURVJfVExTREVTQ19DQUxMKCkgXAorIFNBVkVfUkVHSVNURVJfR1AgKCk7IFwKKyBT QVZFX1JFR0lTVEVSX0ZMT0FUICgpCisKKyNlbHNlIC8qIF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQg Ki8KKworIyBkZWZpbmUgUFJFUEFSRV9NQUxMT0MoKSBcCisgQ0xPQkJFUl9SRUdJU1RFUl9HUCAo KQorCisjIGRlZmluZSBCRUZPUkVfVExTREVTQ19DQUxMKCkgXAorIExPQURfUkVHSVNURVJfR1Ag KCkKKworIyBkZWZpbmUgQUZURVJfVExTREVTQ19DQUxMKCkgXAorIFNBVkVfUkVHSVNURVJfR1Ag KCkKKworI2VuZGlmIC8qIF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQgKi8KKworI2luY2x1ZGVfbmV4 dCA8dHN0LWdudTItdGxzMi5oPgotLSAKMi40Ny4xCg== ------=ALIBOUNDARY_2236_7f162cddc700_6a6ff6fb_44a23 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBjbGFzcz0iX19hbGl5dW5fZW1haWxfYm9keV9ibG9jayI+PGRpdiAgc3R5bGU9ImZvbnQt ZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQsIFNpbVN1biI+PGRpdiAgc3R5 bGU9ImNsZWFyOiBib3RoOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aVNDLUxp Z2h0LCBTaW1TdW47Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBT VEhlaXRpU0MtTGlnaHQsIFNpbVN1biI+PGJyID48L3NwYW4+PC9kaXY+PGRpdiAgc3R5bGU9ImNs ZWFyOiBib3RoOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aVNDLUxpZ2h0LCBT aW1TdW47Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRp U0MtTGlnaHQsIFNpbVN1biI+Z2VudGxlIHBpbmcgOik8L3NwYW4+PC9kaXY+PGJsb2NrcXVvdGUg IHN0eWxlPSJtYXJnaW4tcmlnaHQ6MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2ZvbnQt ZmFtaWx5OlRhaG9tYSxBcmlhbCxTVEhlaXRpLFNpbVN1bjtmb250LXNpemU6MTRweDtjb2xvcjoj MDAwMDAwIj48ZGl2ICBjbGFzcz0iYWxpbWFpbC1xdW90ZSI+PGRpdiAgc3R5bGU9ImNsZWFyOiBi b3RoIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS08L2Rpdj48ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGgiPkZyb206THVrZSBa aHVhbmcgJmx0O2x1a2Uuemh1YW5nQGxpbnV4LmFsaWJhYmEuY29tJmd0OzwvZGl2PjxkaXYgIHN0 eWxlPSJjbGVhcjogYm90aCI+U2VuZCBUaW1lOldlZCwgSnVsIDE1LCAyMDI2LCAyMzoxNTwvZGl2 PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aCI+VG86ImxpYmMtYWxwaGEiJmx0O2xpYmMtYWxwaGFA c291cmNld2FyZS5vcmcmZ3Q7PC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoIj5DQzoiYWRo ZW1lcnZhbC56YW5lbGxhIiZsdDthZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZyZndDs7IGZ3 ZWltZXImbHQ7ZndlaW1lckByZWRoYXQuY29tJmd0Ozsgc2Nod2FiJmx0O3NjaHdhYkBzdXNlLmRl Jmd0OzsgcGFsbWVyJmx0O3BhbG1lckByaXZvc2luYy5jb20mZ3Q7OyBhbmRyZXcmbHQ7YW5kcmV3 QHNpZml2ZS5jb20mZ3Q7OyBydWkzMTQmbHQ7cnVpMzE0QGdtYWlsLmNvbSZndDs7IHJ1aXUmbHQ7 cnVpdUBibHVld2hhbGUuc3lzdGVtcyZndDs7IGRpbGZyaWRnZSZsdDtkaWxmcmlkZ2VAZ2VudG9v Lm9yZyZndDs7ICJraXRvLmNoZW5nIiZsdDtraXRvLmNoZW5nQGdtYWlsLmNvbSZndDs7IEx1a2Ug Wmh1YW5nJmx0O2x1a2Uuemh1YW5nQGxpbnV4LmFsaWJhYmEuY29tJmd0OzsgVGF0c3V5dWtpIElz aGkmbHQ7aXNoaXRhdHN1eXVraUBnbWFpbC5jb20mZ3Q7OyBCb3lhbyBXYW5nJmx0O3dhbmdib3lh b0BieXRlZGFuY2UuY29tJmd0OzwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aCI+U3ViamVj dDpbUEFUQ0ggdjJdIHJpc2N2OiBJbXBsZW1lbnQgVExTIERlc2NyaXB0b3JzPC9kaXY+PGRpdiAg c3R5bGU9ImNsZWFyOiBib3RoIj48YnIgPjwvZGl2PkZyb206ICJMdWtlIFpodWFuZyIgJmx0O2x1 a2Uuemh1YW5nQGxpbnV4LmFsaWJhYmEuY29tJmd0OzxiciA+PGJyID5JbXBsZW1lbnQgVExTIERl c2NyaXB0b3JzIChUTFNERVNDKSBmb3IgUklTQy1WLCBhcyBzcGVjaWZpZWQgYnkgdGhlPGJyID5S SVNDLVYgcHNBQkkgVExTREVTQyBleHRlbnNpb24gWzFdLjxiciA+PGJyID5UaGlzIGFkZHMgdGhl IFJJU0MtViBUTFNERVNDIHJlbG9jYXRpb24gaGFuZGxpbmcgYW5kIHRoZSB0aHJlZSByZXNvbHZl cjxiciA+ZW50cnkgcG9pbnRzIHVzZWQgYnkgdGhlIGR5bmFtaWMgbG9hZGVyOjxiciA+PGJyID4m bmJzcDsgLSBfZGxfdGxzZGVzY191bmRlZndlYWs6IGZvciB1bmRlZmluZWQgd2VhayBUTFMgc3lt Ym9scy48YnIgPiZuYnNwOyAtIF9kbF90bHNkZXNjX3JldHVybjogZm9yIHN5bWJvbHMgaW4gdGhl IHN0YXRpYyBUTFMgYmxvY2suPGJyID4mbmJzcDsgLSBfZGxfdGxzZGVzY19keW5hbWljOiBmb3Ig ZHluYW1pYyBUTFMgc3ltYm9scy48YnIgPjxiciA+VGhlIGR5bmFtaWMgcmVzb2x2ZXIgaW1wbGVt ZW50cyB0aGUgdXN1YWwgZmFzdCBwYXRoIGJ5IGNoZWNraW5nIHRoZSBEVFY8YnIgPmdlbmVyYXRp b24gY291bnRlciwgYW5kIGZhbGxzIGJhY2sgdG8gX190bHNfZ2V0X2FkZHIgb24gdGhlIHNsb3cg cGF0aC48YnIgPjxiciA+VGhpcyB3b3JrIGlzIGJhc2VkIG9uIFRhdHN1eXVraSBJc2hpJ3Mgb3Jp Z2luYWwgcGF0Y2ggc2VyaWVzIFsyXSwgYW5kPGJyID5pcyBiZWluZyByZWxhbmRlZCB3aXRoIGhp cyBhdXRob3JpemF0aW9uLiZuYnNwOyBUaGUgcmVsYW5kIGluY2x1ZGVzIHRoZTxiciA+Zm9sbG93 aW5nIHVwZGF0ZXM6PGJyID48YnIgPiZuYnNwOyAqIERvIG5vdCBzYXZlIGFuZCByZXN0b3JlIHZl Y3RvciByZWdpc3RlcnMgaW4gX2RsX3Rsc2Rlc2NfZHluYW1pYy48YnIgPiZuYnNwOyAmbmJzcDsg VGhlIFJJU0MtViBwc0FCSSBub3cgZGVmaW5lcyB2ZWN0b3IgcmVnaXN0ZXJzIGFuZCB2ZWN0b3Ig Q1NScyBhczxiciA+Jm5ic3A7ICZuYnNwOyBjYWxsZXItY2xvYmJlcmVkIGFjcm9zcyBUTFNERVND IGNhbGxzIFszXSwgc28gcHJlc2VydmluZyBsaXZlIHZlY3RvcjxiciA+Jm5ic3A7ICZuYnNwOyBz dGF0ZSBpcyB0aGUgY29tcGlsZXIncyByZXNwb25zaWJpbGl0eS4gKHRoZSBHQ0MgcGFydCBpcyBh bHJlYWR5PGJyID4mbmJzcDsgJm5ic3A7IGNoZWNrZWQtaW4gWzRdKTxiciA+PGJyID4mbmJzcDsg KiBDYWxsIEhJRERFTl9KVU1QVEFSR0VUKF9fdGxzX2dldF9hZGRyKSBpbnN0ZWFkIG9mIGEgZGly ZWN0IGNhbGwsPGJyID4mbmJzcDsgJm5ic3A7IGF2b2lkaW5nIFBMVCBpbmRpcmVjdGlvbiBpbiBs ZC5zby48YnIgPjxiciA+Jm5ic3A7ICogUmVhcnJhbmdlIFRMU0RFU0MgZW50cmllcyBpbiBlbGZf bWFjaGluZV9yZWxhIGluIGFyZy1iZWZvcmUtZW50cnk8YnIgPiZuYnNwOyAmbmJzcDsgb3JkZXIs IGFuZCB1c2UgYSB2b2xhdGlsZSB0bHNkZXNjIHBvaW50ZXIsIG1hdGNoaW5nIHRoZSBiZWhhdmlv cjxiciA+Jm5ic3A7ICZuYnNwOyBvZiBvdGhlciBhcmNoaXRlY3R1cmVzIGxpa2UgeDg2L2FybS48 YnIgPjxiciA+Jm5ic3A7ICogQWRkIG10bHNfZGVzY3JpcHRvcj1kZXNjIGluIHByZWNvbmZpZ3Vy ZS5hYyBpbnN0ZWQgb2YgcHJlY29uZmlndXJlPGJyID48YnIgPiZuYnNwOyAqIEFkZCBDRkkgdG8g dGhlIGFzc2VtYmx5IGNvZGUgaW4gdGhlIGRsLXRsc2Rlc2MuUzxiciA+PGJyID4mbmJzcDsgKiBB ZGQgYSBicmFuZCBuZXcgdGVzdCBoZWFkZXIgZmlsZSBzeXNkZXBzL3Jpc2N2L3RzdC1nbnUyLXRs czIuaDxiciA+Jm5ic3A7ICZuYnNwOyAoYWxpZ25zIHRvIGFybS94ODYpLCB0byB0ZXN0IHRoYXQg dGhlIHJlc29sdmVyIHByZXNlcnZlcyB0aGU8YnIgPiZuYnNwOyAmbmJzcDsgcmVxdWlyZWQgY2Fs bGVyLXNhdmVkIEdQUiBhbmQgRlBSIHN0YXRlLjxiciA+PGJyID5CYXNpYyBHQ0MgYW5kIGJpbnV0 aWxzIHN1cHBvcnQgZm9yIFJJU0MtViBUTFNERVNDIHJlbG9jYXRpb25zIGlzIGFscmVhZHk8YnIg PnVwc3RyZWFtIFs1XVs2XS4gTGlua2VyIHJlbGF4YXRpb24gc3VwcG9ydCBpcyBvbiB0aGUgd2F5 IGJ1dCBzaG91bGQgbm90PGJyID5iZSBhIGJsb2NrZXIuPGJyID48YnIgPlsxXSA8YSAgaHJlZj0i aHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2LW5vbi1pc2EvcmlzY3YtZWxmLXBzYWJpLWRvYy9wdWxs LzM3MyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi1ub24taXNhL3Jp c2N2LWVsZi1wc2FiaS1kb2MvcHVsbC8zNzM8L2E+PGJyID5bMl0gPGEgIGhyZWY9Imh0dHBzOi8v aW5ib3guc291cmNld2FyZS5vcmcvbGliYy1hbHBoYS8wOUExNEM3Ny05RUVBLTQ3MDctOUUzNi1E M0FBRjhBOThCMjRAZ21haWwuY29tL1QvI3UiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2luYm94 LnNvdXJjZXdhcmUub3JnL2xpYmMtYWxwaGEvMDlBMTRDNzctOUVFQS00NzA3LTlFMzYtRDNBQUY4 QTk4QjI0QGdtYWlsLmNvbS9ULyN1PC9hPjxiciA+WzNdIDxhICBocmVmPSJodHRwczovL2dpdGh1 Yi5jb20vcmlzY3Ytbm9uLWlzYS9yaXNjdi1lbGYtcHNhYmktZG9jL3B1bGwvNDk2IiB0YXJnZXQ9 Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2LW5vbi1pc2EvcmlzY3YtZWxmLXBzYWJp LWRvYy9wdWxsLzQ5NjwvYT48YnIgPls0XSA8YSAgaHJlZj0iaHR0cHM6Ly9nY2MuZ251Lm9yZy9j Z2l0L2djYy9jb21taXQvP2lkPTA3NDhkMmM4M2ZjMDQ0MGYxMDFmZTAxY2MzZGZjOTdjOGUxMWMz YjIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2djYy5nbnUub3JnL2NnaXQvZ2NjL2NvbW1pdC8/ aWQ9MDc0OGQyYzgzZmMwNDQwZjEwMWZlMDFjYzNkZmM5N2M4ZTExYzNiMjwvYT48YnIgPls1XSA8 YSAgaHJlZj0iaHR0cHM6Ly9nY2MuZ251Lm9yZy9jZ2l0L2djYy9jb21taXQvP2lkPTk3MDY5NjU3 YzRlNDBiMjA5YzdiNzc0ZTEyZmFhY2ExMzgxMmE4NmMiIHRhcmdldD0iX2JsYW5rIj5odHRwczov L2djYy5nbnUub3JnL2NnaXQvZ2NjL2NvbW1pdC8/aWQ9OTcwNjk2NTdjNGU0MGIyMDljN2I3NzRl MTJmYWFjYTEzODEyYTg2YzwvYT48YnIgPls2XSA8YSAgaHJlZj0iaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9naXQvP3A9YmludXRpbHMtZ2RiLmdpdCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vc291 cmNld2FyZS5vcmcvZ2l0Lz9wPWJpbnV0aWxzLWdkYi5naXQ8L2E+O2E9Y29tbWl0ZGlmZjtoPTE1 OWFmYmI3NjE3ZDJjOGE5Y2QzZjMzNTAzNzQ3MTFmMzdmNjA0NDI8YnIgPjxiciA+Q28tYXV0aG9y ZWQtYnk6IFRhdHN1eXVraSBJc2hpICZsdDtpc2hpdGF0c3V5dWtpQGdtYWlsLmNvbSZndDs8YnIg PkNvLWF1dGhvcmVkLWJ5OiBCb3lhbyBXYW5nICZsdDt3YW5nYm95YW9AYnl0ZWRhbmNlLmNvbSZn dDs8YnIgPlNpZ25lZC1vZmYtYnk6IEx1a2UgWmh1YW5nICZsdDtsdWtlLnpodWFuZ0BsaW51eC5h bGliYWJhLmNvbSZndDs8YnIgPi0tLTxiciA+IHN5c2RlcHMvcmlzY3YvTWFrZWZpbGUmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgfCZuYnNwOyAxMCArKzxiciA+IHN5c2RlcHMvcmlzY3YvZGwt bG9va3VwY2ZnLmgmbmJzcDsgfCZuYnNwOyAyNyArKysrPGJyID4gc3lzZGVwcy9yaXNjdi9kbC1t YWNoaW5lLmgmbmJzcDsgJm5ic3A7IHwmbmJzcDsgNTQgKysrKysrLTxiciA+IHN5c2RlcHMvcmlz Y3YvZGwtdGxzZGVzYy5TJm5ic3A7ICZuYnNwOyB8IDI2MCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrPGJyID4gc3lzZGVwcy9yaXNjdi9kbC10bHNkZXNjLmgmbmJzcDsgJm5ic3A7 IHwmbmJzcDsgNDggKysrKysrKzxiciA+IHN5c2RlcHMvcmlzY3YvbGlua21hcC5oICZuYnNwOyAm bmJzcDsgJm5ic3A7IHwgJm5ic3A7IDEgKzxiciA+IHN5c2RlcHMvcmlzY3YvcHJlY29uZmlndXJl Jm5ic3A7ICZuYnNwOyB8ICZuYnNwOyAxICs8YnIgPiBzeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3Vy ZS5hYyB8ICZuYnNwOyAxICs8YnIgPiBzeXNkZXBzL3Jpc2N2L3Rsc2Rlc2MuYyAmbmJzcDsgJm5i c3A7ICZuYnNwOyB8Jm5ic3A7IDM4ICsrKysrPGJyID4gc3lzZGVwcy9yaXNjdi90bHNkZXNjLnN5 bSAmbmJzcDsgJm5ic3A7IHwmbmJzcDsgMTkgKysrPGJyID4gc3lzZGVwcy9yaXNjdi90c3QtZ251 Mi10bHMyLmggfCAyMDEgKysrKysrKysrKysrKysrKysrKysrKysrKys8YnIgPiAxMSBmaWxlcyBj aGFuZ2VkLCA2NTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKTxiciA+IGNyZWF0ZSBtb2Rl IDEwMDY0NCBzeXNkZXBzL3Jpc2N2L2RsLWxvb2t1cGNmZy5oPGJyID4gY3JlYXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMvcmlzY3YvZGwtdGxzZGVzYy5TPGJyID4gY3JlYXRlIG1vZGUgMTAwNjQ0IHN5 c2RlcHMvcmlzY3YvZGwtdGxzZGVzYy5oPGJyID4gY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMv cmlzY3YvdGxzZGVzYy5jPGJyID4gY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvdGxz ZGVzYy5zeW08YnIgPiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi90c3QtZ251Mi10 bHMyLmg8YnIgPjxiciA+ZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvTWFrZWZpbGUgYi9zeXNk ZXBzL3Jpc2N2L01ha2VmaWxlPGJyID5pbmRleCBjMDg3NTNhZThhLi5mYzE2MDgxY2RlIDEwMDY0 NDxiciA+LS0tIGEvc3lzZGVwcy9yaXNjdi9NYWtlZmlsZTxiciA+KysrIGIvc3lzZGVwcy9yaXNj di9NYWtlZmlsZTxiciA+QEAgLTQsNiArNCwxNiBAQCBlbmRpZjxiciA+IDxiciA+IGlmZXEgKCQo c3ViZGlyKSxlbGYpPGJyID4gZ2VuLWFzLWNvbnN0LWhlYWRlcnMgKz0gZGwtbGluay5zeW08YnIg PitzeXNkZXAtZGwtcm91dGluZXMgKz0gXDxiciA+KyZuYnNwOyBkbC10bHNkZXNjIFw8YnIgPism bmJzcDsgdGxzZGVzYyBcPGJyID4rJm5ic3A7ICMgcm91dGluZXM8YnIgPitlbmRpZjxiciA+Kzxi ciA+K2lmZXEgKCQoc3ViZGlyKSxjc3UpPGJyID4rZ2VuLWFzLWNvbnN0LWhlYWRlcnMgKz0gXDxi ciA+KyZuYnNwOyB0bHNkZXNjLnN5bSBcPGJyID4rJm5ic3A7ICMgZ2VuLWFzLWNvbnN0LWhlYWRl cnM8YnIgPiBlbmRpZjxiciA+IDxiciA+ICMgUklTQy1WJ3MgYXNzZW1ibGVyIGFsc28gbmVlZHMg dG8ga25vdyBhYm91dCBQSUMgYXMgaXQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbjxiciA+ZGlmZiAt LWdpdCBhL3N5c2RlcHMvcmlzY3YvZGwtbG9va3VwY2ZnLmggYi9zeXNkZXBzL3Jpc2N2L2RsLWxv b2t1cGNmZy5oPGJyID5uZXcgZmlsZSBtb2RlIDEwMDY0NDxiciA+aW5kZXggMDAwMDAwMDAwMC4u NDE0YzhjOGY4ZTxiciA+LS0tIC9kZXYvbnVsbDxiciA+KysrIGIvc3lzZGVwcy9yaXNjdi9kbC1s b29rdXBjZmcuaDxiciA+QEAgLTAsMCArMSwyNyBAQDxiciA+Ky8qIENvbmZpZ3VyYXRpb24gb2Yg bG9va3VwIGZ1bmN0aW9ucy48YnIgPisgJm5ic3A7IENvcHlyaWdodCAoQykgMjAyNiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy48YnIgPisgJm5ic3A7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBHTlUgQyBMaWJyYXJ5LjxiciA+KzxiciA+KyAmbmJzcDsgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yPGJyID4rICZu YnNwOyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljPGJyID4rICZuYnNwOyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXI8YnIgPisgJm5ic3A7IHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjxiciA+KzxiciA+ KyAmbmJzcDsgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCw8YnIgPisgJm5ic3A7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mPGJyID4rICZuYnNwOyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuJm5ic3A7IFNl ZSB0aGUgR05VPGJyID4rICZuYnNwOyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLjxiciA+KzxiciA+KyAmbmJzcDsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYzxiciA+KyAmbmJzcDsgTGlj ZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5LiZuYnNwOyBJZiBub3QsIHNlZTxiciA+ KyAmbmJzcDsgJmx0OzxhICBocmVmPSJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLyZndDsi IHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLyZndDs8L2E+LiZu YnNwOyAqLzxiciA+KzxiciA+KyNkZWZpbmUgRExfVU5NQVBfSVNfU1BFQ0lBTDxiciA+KzxiciA+ KyNpbmNsdWRlX25leHQgJmx0O2RsLWxvb2t1cGNmZy5oJmd0OzxiciA+KzxiciA+K3N0cnVjdCBs aW5rX21hcDs8YnIgPis8YnIgPitleHRlcm4gdm9pZCBfZGxfdW5tYXAgKHN0cnVjdCBsaW5rX21h cCAqbWFwKTs8YnIgPis8YnIgPisjZGVmaW5lIERMX1VOTUFQKG1hcCkgX2RsX3VubWFwIChtYXAp PGJyID5kaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9kbC1tYWNoaW5lLmggYi9zeXNkZXBzL3Jp c2N2L2RsLW1hY2hpbmUuaDxiciA+aW5kZXggYmFiYjUyYWYyMC4uNzlmMGQwMmNhYiAxMDA2NDQ8 YnIgPi0tLSBhL3N5c2RlcHMvcmlzY3YvZGwtbWFjaGluZS5oPGJyID4rKysgYi9zeXNkZXBzL3Jp c2N2L2RsLW1hY2hpbmUuaDxiciA+QEAgLTI1LDYgKzI1LDcgQEA8YnIgPiAjaW5jbHVkZSAmbHQ7 ZWxmL2VsZi5oJmd0OzxiciA+ICNpbmNsdWRlICZsdDtzeXMvYXNtLmgmZ3Q7PGJyID4gI2luY2x1 ZGUgJmx0O2RsLXRscy5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDtkbC10bHNkZXNjLmgmZ3Q7PGJy ID4gI2luY2x1ZGUgJmx0O2RsLWlyZWwuaCZndDs8YnIgPiAjaW5jbHVkZSAmbHQ7ZGwtc3RhdGlj LXRscy5oJmd0OzxiciA+ICNpbmNsdWRlICZsdDtkbC1tYWNoaW5lLXJlbC5oJmd0OzxiciA+QEAg LTUxLDcgKzUyLDggQEA8YnIgPiZuYnNwOyAmbmJzcDsgJm5ic3A7IHx8IChfX1dPUkRTSVpFID09 IDMyICZhbXA7JmFtcDsgKHR5cGUpID09IFJfUklTQ1ZfVExTX1RQUkVMMzIpIFw8YnIgPiZuYnNw OyAmbmJzcDsgJm5ic3A7IHx8IChfX1dPUkRTSVpFID09IDY0ICZhbXA7JmFtcDsgKHR5cGUpID09 IFJfUklTQ1ZfVExTX0RUUFJFTDY0KSBcPGJyID4mbmJzcDsgJm5ic3A7ICZuYnNwOyB8fCAoX19X T1JEU0laRSA9PSA2NCAmYW1wOyZhbXA7ICh0eXBlKSA9PSBSX1JJU0NWX1RMU19EVFBNT0Q2NCkg XDxiciA+LSAmbmJzcDsgJm5ic3A7IHx8IChfX1dPUkRTSVpFID09IDY0ICZhbXA7JmFtcDsgKHR5 cGUpID09IFJfUklTQ1ZfVExTX1RQUkVMNjQpKSkgXDxiciA+KyAmbmJzcDsgJm5ic3A7IHx8IChf X1dPUkRTSVpFID09IDY0ICZhbXA7JmFtcDsgKHR5cGUpID09IFJfUklTQ1ZfVExTX1RQUkVMNjQp IFw8YnIgPisgJm5ic3A7ICZuYnNwOyB8fCAoKHR5cGUpID09IFJfUklTQ1ZfVExTREVTQykpKSZu YnNwOyAmbmJzcDsgXDxiciA+Jm5ic3A7ICZuYnNwOyB8IChFTEZfUlRZUEVfQ0xBU1NfQ09QWSAq ICgodHlwZSkgPT0gUl9SSVNDVl9DT1BZKSkpPGJyID4gPGJyID4gLyogUmV0dXJuIG5vbnplcm8g aWZmIEVMRiBoZWFkZXIgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBydW5uaW5nIGhvc3QuJm5ic3A7 ICovPGJyID5AQCAtMjIwLDYgKzIyMiwzNyBAQCBlbGZfbWFjaGluZV9yZWxhIChzdHJ1Y3QgbGlu a19tYXAgKm1hcCwgc3RydWN0IHJfc2NvcGVfZWxlbSAqc2NvcGVbXSw8YnIgPiZuYnNwOyB9PGJy ID4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgYnJlYWs7PGJyID4gPGJyID4rJm5ic3A7ICZuYnNwOyBj YXNlIFJfUklTQ1ZfVExTREVTQzo8YnIgPismbmJzcDsgJm5ic3A7ICZuYnNwOyB7PGJyID4rIHN0 cnVjdCB0bHNkZXNjIHZvbGF0aWxlICp0ZCA9PGJyID4rICZuYnNwOyAmbmJzcDsgKHN0cnVjdCB0 bHNkZXNjIHZvbGF0aWxlICopcmVsb2NfYWRkcjs8YnIgPisgaWYgKCFzeW0pPGJyID4rICZuYnNw OyB7PGJyID4rICZuYnNwOyAmbmJzcDsgdGQtJmd0O2FyZyA9ICh2b2lkICopIHJlbG9jLSZndDty X2FkZGVuZDs8YnIgPisgJm5ic3A7ICZuYnNwOyB0ZC0mZ3Q7ZW50cnkgPSBfZGxfdGxzZGVzY191 bmRlZndlYWs7PGJyID4rICZuYnNwOyB9PGJyID4rIGVsc2U8YnIgPisgJm5ic3A7IHs8YnIgPisj IGlmbmRlZiBTSEFSRUQ8YnIgPisgJm5ic3A7ICZuYnNwOyBDSEVDS19TVEFUSUNfVExTIChtYXAs IHN5bV9tYXApOzxiciA+KyMgZWxzZTxiciA+KyAmbmJzcDsgJm5ic3A7IGlmICghVFJZX1NUQVRJ Q19UTFMgKG1hcCwgc3ltX21hcCkpPGJyID4rICZuYnNwOyAmbmJzcDsgJm5ic3A7IHs8YnIgPism bmJzcDsgdGQtJmd0O2FyZyA9IF9kbF9tYWtlX3Rsc2Rlc2NfZHluYW1pYzxiciA+KyZuYnNwOyAm bmJzcDsgKHN5bV9tYXAsIHN5bS0mZ3Q7c3RfdmFsdWUgKyByZWxvYy0mZ3Q7cl9hZGRlbmQpOzxi ciA+KyZuYnNwOyB0ZC0mZ3Q7ZW50cnkgPSBfZGxfdGxzZGVzY19keW5hbWljOzxiciA+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyB9PGJyID4rICZuYnNwOyAmbmJzcDsgZWxzZTxiciA+KyMgZW5kaWY8 YnIgPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgezxiciA+KyZuYnNwOyB0ZC0mZ3Q7YXJnPGJyID4r Jm5ic3A7ICZuYnNwOyA9ICh2b2lkICopIChUTFNfVFBSRUxfVkFMVUUgKHN5bV9tYXAsIHN5bSkg KyByZWxvYy0mZ3Q7cl9hZGRlbmQpOzxiciA+KyZuYnNwOyB0ZC0mZ3Q7ZW50cnkgPSBfZGxfdGxz ZGVzY19yZXR1cm47PGJyID4rICZuYnNwOyAmbmJzcDsgJm5ic3A7IH08YnIgPisgJm5ic3A7IH08 YnIgPisgYnJlYWs7PGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgfTxiciA+KzxiciA+ICZuYnNw OyAmbmJzcDsgY2FzZSBSX1JJU0NWX0NPUFk6PGJyID4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgezxi ciA+Jm5ic3A7IGlmIChfX2dsaWJjX3VubGlrZWx5IChzeW0gPT0gTlVMTCkpPGJyID5AQCAtMjkw LDYgKzMyMywyNSBAQCBlbGZfbWFjaGluZV9sYXp5X3JlbCAoc3RydWN0IGxpbmtfbWFwICptYXAs IHN0cnVjdCByX3Njb3BlX2VsZW0gKnNjb3BlW10sPGJyID4gJm5ic3A7ICZuYnNwOyAmbmJzcDsg ZWxzZTxiciA+Jm5ic3A7ICpyZWxvY19hZGRyID0gbWFwLSZndDtsX21hY2gucGx0OzxiciA+ICZu YnNwOyAmbmJzcDsgfTxiciA+KyZuYnNwOyBlbHNlIGlmIChfX2dsaWJjX2xpa2VseSAocl90eXBl ID09IFJfUklTQ1ZfVExTREVTQykpPGJyID4rJm5ic3A7ICZuYnNwOyB7PGJyID4rJm5ic3A7ICZu YnNwOyAmbmJzcDsgY29uc3QgRWxmX1N5bW5keCBzeW1uZHggPSBFTEZXIChSX1NZTSkgKHJlbG9j LSZndDtyX2luZm8pOzxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IGNvbnN0IEVsZlcgKFN5bSkg KnN5bXRhYiA9IChjb25zdCB2b2lkICopRF9QVFIgKG1hcCwgbF9pbmZvW0RUX1NZTVRBQl0pOzxi ciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IGNvbnN0IEVsZlcgKFN5bSkgKnN5bSA9ICZhbXA7c3lt dGFiW3N5bW5keF07PGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgY29uc3Qgc3RydWN0IHJfZm91 bmRfdmVyc2lvbiAqdmVyc2lvbiA9IE5VTEw7PGJyID4rPGJyID4rJm5ic3A7ICZuYnNwOyAmbmJz cDsgaWYgKG1hcC0mZ3Q7bF9pbmZvW1ZFUlNZTUlEWCAoRFRfVkVSU1lNKV0gIT0gTlVMTCk8YnIg PisgezxiciA+KyAmbmJzcDsgY29uc3QgRWxmVyAoSGFsZikgKnZlcm51bSA9PGJyID4rICZuYnNw OyAmbmJzcDsgJm5ic3A7IChjb25zdCB2b2lkICopRF9QVFIgKG1hcCwgbF9pbmZvW1ZFUlNZTUlE WCAoRFRfVkVSU1lNKV0pOzxiciA+KyAmbmJzcDsgdmVyc2lvbiA9ICZhbXA7bWFwLSZndDtsX3Zl cnNpb25zW3Zlcm51bVtzeW1uZHhdICZhbXA7IDB4N2ZmZl07PGJyID4rIH08YnIgPis8YnIgPism bmJzcDsgJm5ic3A7ICZuYnNwOyAvKiBBbHdheXMgaW5pdGlhbGl6ZSBUTFMgZGVzY3JpcHRvcnMg Y29tcGxldGVseSwgYmVjYXVzZSBsYXp5PGJyID4rJm5ic3A7IGluaXRpYWxpemF0aW9uIHJlcXVp cmVzIHN5bmNocm9uaXphdGlvbiBhdCBldmVyeSBUTFMgYWNjZXNzLiZuYnNwOyAqLzxiciA+KyZu YnNwOyAmbmJzcDsgJm5ic3A7IGVsZl9tYWNoaW5lX3JlbGEgKG1hcCwgc2NvcGUsIHJlbG9jLCBz eW0sIHZlcnNpb24sIHJlbG9jX2FkZHIsPGJyID4rICZuYnNwOyBza2lwX2lmdW5jKTs8YnIgPism bmJzcDsgJm5ic3A7IH08YnIgPiAmbmJzcDsgZWxzZSBpZiAoX19nbGliY191bmxpa2VseSAocl90 eXBlID09IFJfUklTQ1ZfSVJFTEFUSVZFKSk8YnIgPiAmbmJzcDsgJm5ic3A7IHs8YnIgPiAmbmJz cDsgJm5ic3A7ICZuYnNwOyBFbGZXKEFkZHIpIHZhbHVlID0gbWFwLSZndDtsX2FkZHIgKyByZWxv Yy0mZ3Q7cl9hZGRlbmQ7PGJyID5kaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9kbC10bHNkZXNj LlMgYi9zeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2MuUzxiciA+bmV3IGZpbGUgbW9kZSAxMDA2NDQ8 YnIgPmluZGV4IDAwMDAwMDAwMDAuLjNiNzdkZDM2YTE8YnIgPi0tLSAvZGV2L251bGw8YnIgPisr KyBiL3N5c2RlcHMvcmlzY3YvZGwtdGxzZGVzYy5TPGJyID5AQCAtMCwwICsxLDI2MCBAQDxiciA+ Ky8qIFRocmVhZC1sb2NhbCBzdG9yYWdlIGhhbmRsaW5nIGluIHRoZSBFTEYgZHluYW1pYyBsaW5r ZXIuPGJyID4rICZuYnNwOyBSSVNDLVYgdmVyc2lvbi48YnIgPisgJm5ic3A7IENvcHlyaWdodCAo QykgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy48YnIgPis8YnIgPisgJm5ic3A7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LjxiciA+KzxiciA+KyAmbmJz cDsgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yPGJyID4rICZuYnNwOyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljPGJyID4rICZuYnNwOyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXI8YnIgPisgJm5ic3A7 IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLjxiciA+KzxiciA+KyAmbmJzcDsgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCw8YnIgPisgJm5ic3A7IGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mPGJyID4rICZuYnNwOyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuJm5ic3A7IFNlZSB0aGUgR05VPGJyID4rICZuYnNwOyBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjxiciA+KzxiciA+KyAmbmJzcDsgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYzxiciA+KyAmbmJzcDsgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZTxiciA+KyAmbmJzcDsgJmx0OzxhICBocmVmPSJodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLyZndDsiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLyZndDs8L2E+LiZuYnNwOyAqLzxiciA+KzxiciA+KyNpbmNsdWRlICZsdDtzeXNkZXAuaCZn dDs8YnIgPisjaW5jbHVkZSAmbHQ7dGxzLmgmZ3Q7PGJyID4rI2luY2x1ZGUgJmx0O3Rsc2Rlc2Mu aCZndDs8YnIgPis8YnIgPisvKiBUaGUgZmFzdCBwYXRoIGRvZXMgbm90IGNhbGwgZnVuY3Rpb24g YW5kIGRvZXMgbm90IG5lZWQgdG8gYWxpZ24gc3AsIGJ1dDxiciA+KyAmbmJzcDsgdG8gc2ltcGxp ZnkgaGFuZGxpbmcgd2hlbiBnb2luZyBpbnRvIHRoZSBzbG93IHBhdGgsIGtlZXAgc3AgYWxpZ25l ZCBhbGw8YnIgPisgJm5ic3A7IHRoZSB0aW1lLjxiciA+KyAqLzxiciA+KyNkZWZpbmUgRlJBTUVf U0laRV9GQVNUICgtKCgtMyAqIFNaUkVHKSAmYW1wOyBBTE1BU0spKTxiciA+KzxiciA+Ky8qIFRo ZSBzbG93IHBhdGggc2F2ZSBzbG90IGxheW91dCwgZnJvbSBsb3dlciBhZGRyZXNzIHRvIGhpZ2hl ciBhZGRyZXNzLCBpczo8YnIgPisgJm5ic3A7IDEuIDEyIEdQIHJlZ2lzdGVyczxiciA+KyAmbmJz cDsgMi4gMjAgRlAgcmVnaXN0ZXJzPGJyID4rPGJyID4rICZuYnNwOyBCZXNpZGVzIGEwIGFuZCB0 MCwgdGhlIHZlY3RvciByZWdpc3RlcnMgYXJlIGFsc28gY2FsbGVyLXNhdmVkIHBlciB0aGUgcHNB Qkk8YnIgPisgJm5ic3A7IChyaXNjdi1ub24taXNhL3Jpc2N2LWVsZi1wc2FiaS1kb2MjNDk2KSBz byB0aGV5IGFyZSBub3QgcHJlc2VydmVkIGFjcm9zczxiciA+KyAmbmJzcDsgdGhlIFRMU0RFU0Mg aWZ1bmMuPGJyID4rICovPGJyID4rI2lmIGRlZmluZWQoX19yaXNjdl9mbG9hdF9hYmlfc29mdCk8 YnIgPisjIGRlZmluZSBGUkFNRV9TSVpFX1NMT1cgKC0oKC0xMiAqIFNaUkVHKSAmYW1wOyBBTE1B U0spKTxiciA+KyNlbHNlPGJyID4rIyBkZWZpbmUgRlJBTUVfU0laRV9TTE9XICgtKCgtMTIgKiBT WlJFRyAtIDIwICogU1pGUkVHKSAmYW1wOyBBTE1BU0spKTxiciA+KyNlbmRpZjxiciA+KzxiciA+ KyAudGV4dDxiciA+KzxiciA+KyAvKiBDb21wdXRlIHRoZSB0aHJlYWQgcG9pbnRlciBvZmZzZXQg Zm9yIHN5bWJvbHMgaW4gdGhlIHN0YXRpYzxiciA+KyZuYnNwOyAmbmJzcDsgVExTIGJsb2NrLiZu YnNwOyBUaGUgb2Zmc2V0IGlzIHRoZSBzYW1lIGZvciBhbGwgdGhyZWFkcy48YnIgPismbmJzcDsg Jm5ic3A7IFByb3RvdHlwZTo8YnIgPismbmJzcDsgJm5ic3A7IF9kbF90bHNkZXNjX3JldHVybiAo dGxzZGVzYyAqKSA7PGJyID4rJm5ic3A7ICovPGJyID4rRU5UUlkgKF9kbF90bHNkZXNjX3JldHVy bik8YnIgPisgY2ZpX3JldHVybl9jb2x1bW4gKHQwKTxiciA+KyBSRUdfTCBhMCwgVExTREVTQ19B UkcoYTApPGJyID4rIGpyIHQwPGJyID4rRU5EIChfZGxfdGxzZGVzY19yZXR1cm4pPGJyID4rPGJy ID4rIC8qIEhhbmRsZXIgZm9yIHVuZGVmaW5lZCB3ZWFrIFRMUyBzeW1ib2xzLjxiciA+KyZuYnNw OyAmbmJzcDsgUHJvdG90eXBlOjxiciA+KyZuYnNwOyAmbmJzcDsgX2RsX3Rsc2Rlc2NfdW5kZWZ3 ZWFrICh0bHNkZXNjICopOzxiciA+KzxiciA+KyZuYnNwOyAmbmJzcDsgVGhlIHNlY29uZCB3b3Jk IG9mIHRoZSBkZXNjcmlwdG9yIGNvbnRhaW5zIHRoZSBhZGRlbmQuPGJyID4rJm5ic3A7ICZuYnNw OyBSZXR1cm4gdGhlIGFkZGVuZCBtaW51cyB0aGUgdGhyZWFkIHBvaW50ZXIuJm5ic3A7IFRoaXMg ZW5zdXJlczxiciA+KyZuYnNwOyAmbmJzcDsgdGhhdCB3aGVuIHRoZSBjYWxsZXIgYWRkcyBvbiB0 aGUgdGhyZWFkIHBvaW50ZXIgaXQgZ2V0cyBiYWNrPGJyID4rJm5ic3A7ICZuYnNwOyB0aGUgYWRk ZW5kLiZuYnNwOyAqLzxiciA+KzxiciA+K0VOVFJZIChfZGxfdGxzZGVzY191bmRlZndlYWspPGJy ID4rIGNmaV9yZXR1cm5fY29sdW1uICh0MCk8YnIgPisgUkVHX0wgYTAsIFRMU0RFU0NfQVJHKGEw KTxiciA+KyBzdWIgYTAsIGEwLCB0cDxiciA+KyBqciB0MDxiciA+K0VORCAoX2RsX3Rsc2Rlc2Nf dW5kZWZ3ZWFrKTxiciA+KzxiciA+KyNpZmRlZiBTSEFSRUQ8YnIgPisgLyogSGFuZGxlciBmb3Ig ZHluYW1pYyBUTFMgc3ltYm9scy48YnIgPismbmJzcDsgJm5ic3A7IFByb3RvdHlwZTo8YnIgPism bmJzcDsgJm5ic3A7IF9kbF90bHNkZXNjX2R5bmFtaWMgKHRsc2Rlc2MgKikgOzxiciA+KzxiciA+ KyZuYnNwOyAmbmJzcDsgVGhlIHNlY29uZCB3b3JkIG9mIHRoZSBkZXNjcmlwdG9yIHBvaW50cyB0 byBhPGJyID4rJm5ic3A7ICZuYnNwOyB0bHNkZXNjX2R5bmFtaWNfYXJnIHN0cnVjdHVyZS48YnIg Pis8YnIgPismbmJzcDsgJm5ic3A7IFJldHVybnMgdGhlIG9mZnNldCBiZXR3ZWVuIHRoZSB0aHJl YWQgcG9pbnRlciBhbmQgdGhlPGJyID4rJm5ic3A7ICZuYnNwOyBvYmplY3QgcmVmZXJlbmNlZCBi eSB0aGUgYXJndW1lbnQuPGJyID4rPGJyID4rJm5ic3A7ICZuYnNwOyB1bnNpZ25lZCBsb25nPGJy ID4rJm5ic3A7ICZuYnNwOyBfZGxfdGxzZGVzY19keW5hbWljIChzdHJ1Y3QgdGxzZGVzYyAqdGRw KTxiciA+KyZuYnNwOyAmbmJzcDsgezxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0cnVjdCB0 bHNkZXNjX2R5bmFtaWNfYXJnICp0ZCA9IHRkcC0mZ3Q7YXJnOzxiciA+KyZuYnNwOyAmbmJzcDsg Jm5ic3A7IGR0dl90ICpkdHYgPSAqKGR0dl90ICoqKSgoY2hhciAqKV9fdGhyZWFkX3BvaW50ZXIg KyBUQ0JIRUFEX0RUVik7PGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgaWYgKF9fYnVpbHRpbl9l eHBlY3QgKHRkLSZndDtnZW5fY291bnQgJmx0Oz0gZHR2WzBdLmNvdW50ZXI8YnIgPismbmJzcDsg JmFtcDsmYW1wOyAoZHR2W3RkLSZndDt0bHNpbmZvLnRpX21vZHVsZV0ucG9pbnRlci52YWw8YnIg PismbmJzcDsgJm5ic3A7ICZuYnNwOyAhPSBUTFNfRFRWX1VOQUxMT0NBVEVEKSw8YnIgPismbmJz cDsgMSkpPGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJldHVybiBkdHZbdGQtJmd0 O3Rsc2luZm8udGlfbW9kdWxlXS5wb2ludGVyLnZhbDxiciA+KyZuYnNwOyArIHRkLSZndDt0bHNp bmZvLnRpX29mZnNldDxiciA+KyZuYnNwOyAtIF9fdGhyZWFkX3BvaW50ZXI7PGJyID4rPGJyID4r Jm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0dXJuIF9fdGxzX2dldF9hZGRyICgmYW1wO3RkLSZndDt0 bHNpbmZvKSAtIF9fdGhyZWFkX3BvaW50ZXI7PGJyID4rJm5ic3A7ICZuYnNwOyB9PGJyID4rJm5i c3A7ICovPGJyID4rPGJyID4rRU5UUlkgKF9kbF90bHNkZXNjX2R5bmFtaWMpPGJyID4rIGNmaV9y ZXR1cm5fY29sdW1uICh0MCk8YnIgPisgLyogU2F2ZSBqdXN0IGVub3VnaCByZWdpc3RlcnMgdG8g c3VwcG9ydCBmYXN0IHBhdGgsIGlmIHdlIGZhbGw8YnIgPismbmJzcDsgJm5ic3A7IGludG8gc2xv dyBwYXRoIHdlIHdpbGwgc2F2ZSBhZGRpdGlvbmFsIHJlZ2lzdGVycy4mbmJzcDsgKi88YnIgPisg YWRkIHNwLCBzcCwgLUZSQU1FX1NJWkVfRkFTVDxiciA+KyBjZmlfYWRqdXN0X2NmYV9vZmZzZXQg KEZSQU1FX1NJWkVfRkFTVCk8YnIgPisgUkVHX1MgdDAsIDAqU1pSRUcoc3ApPGJyID4rIFJFR19T IHQxLCAxKlNaUkVHKHNwKTxiciA+KyBSRUdfUyB0MiwgMipTWlJFRyhzcCk8YnIgPisgY2ZpX3Jl bF9vZmZzZXQgKHQwLCAwKlNaUkVHKTxiciA+KyBjZmlfcmVsX29mZnNldCAodDEsIDEqU1pSRUcp PGJyID4rIGNmaV9yZWxfb2Zmc2V0ICh0MiwgMipTWlJFRyk8YnIgPis8YnIgPisgLyogdDAgPSBk dHYgKi88YnIgPisgUkVHX0wgdDAsIFRDQkhFQURfRFRWKHRwKTxiciA+KyAvKiBhMCA9IHRkcC0m Z3Q7YXJnICovPGJyID4rIFJFR19MIGEwLCBUTFNERVNDX0FSRyhhMCk8YnIgPisgLyogdDEgPSB0 ZC0mZ3Q7Z2VuX2NvdW50ICovPGJyID4rIFJFR19MIHQxLCBUTFNERVNDX0dFTl9DT1VOVChhMCk8 YnIgPisgLyogdDIgPSBkdHZbMF0uY291bnRlciAqLzxiciA+KyBSRUdfTCB0MiwgRFRWX0NPVU5U RVIodDApPGJyID4rIGJsdHUgdDIsIHQxLCAuTHNsb3c8YnIgPisgLyogdDEgPSB0ZC0mZ3Q7dGxz aW5mby50aV9tb2R1bGUgKi88YnIgPisgUkVHX0wgdDEsIFRMU0RFU0NfTU9ESUQoYTApPGJyID4r IHNsbGkgdDEsIHQxLCBQVFJMT0cgKyAxIC8qIHNpemVvZihkdHZfdCkgPT0gc2l6ZW9mKHZvaWQq KSAqIDIgKi88YnIgPisgYWRkIHQxLCB0MSwgdDA8YnIgPisgLyogdDEgPSBkdHZbdGQtJmd0O3Rs c2luZm8udGlfbW9kdWxlXS5wb2ludGVyLnZhbCZuYnNwOyAqLzxiciA+KyBSRUdfTCB0MSwgMCh0 MSk8YnIgPisgbGkgdDIsIFRMU19EVFZfVU5BTExPQ0FURUQ8YnIgPisgYmVxIHQxLCB0MiwgLkxz bG93PGJyID4rIC8qIHQyID0gdGQtJmd0O3Rsc2luZm8udGlfb2Zmc2V0ICovPGJyID4rIGNmaV9y ZW1lbWJlcl9zdGF0ZTxiciA+KyBSRUdfTCB0MiwgVExTREVTQ19NT0RPRkYoYTApPGJyID4rIGFk ZCBhMCwgdDEsIHQyPGJyID4rLkxyZXQ6PGJyID4rIHN1YiBhMCwgYTAsIHRwPGJyID4rIFJFR19M IHQwLCAwKlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAodDApPGJyID4rIFJFR19MIHQxLCAx KlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAodDEpPGJyID4rIFJFR19MIHQyLCAyKlNaUkVH KHNwKTxiciA+KyBjZmlfcmVzdG9yZSAodDIpPGJyID4rIGFkZCBzcCwgc3AsIEZSQU1FX1NJWkVf RkFTVDxiciA+KyBjZmlfYWRqdXN0X2NmYV9vZmZzZXQgKC1GUkFNRV9TSVpFX0ZBU1QpPGJyID4r IGpyIHQwPGJyID4rLkxzbG93OjxiciA+KyAvKiBUaGlzIGlzIHRoZSBzbG93IHBhdGguJm5ic3A7 IFdlIG5lZWQgdG8gY2FsbCBfX3Rsc19nZXRfYWRkcigpIHdoaWNoPGJyID4rJm5ic3A7ICZuYnNw OyBtZWFucyB3ZSBuZWVkIHRvIHNhdmUgYW5kIHJlc3RvcmUgYWxsIHRoZSByZWdpc3RlciB0aGF0 IHRoZTxiciA+KyZuYnNwOyAmbmJzcDsgY2FsbGVlIHdpbGwgdHJhc2guJm5ic3A7ICovPGJyID4r PGJyID4rIC8qIFNhdmUgdGhlIHJlbWFpbmluZyByZWdpc3RlcnMgdGhhdCB3ZSBtdXN0IHRyZWF0 IGFzIGNhbGxlciBzYXZlLiZuYnNwOyAqLzxiciA+KyBjZmlfcmVzdG9yZV9zdGF0ZTxiciA+KyBh ZGRpIHNwLCBzcCwgLUZSQU1FX1NJWkVfU0xPVzxiciA+KyBjZmlfYWRqdXN0X2NmYV9vZmZzZXQg KEZSQU1FX1NJWkVfU0xPVyk8YnIgPisgUkVHX1MgcmEsIDAqU1pSRUcoc3ApPGJyID4rIFJFR19T IGExLCAxKlNaUkVHKHNwKTxiciA+KyBSRUdfUyBhMiwgMipTWlJFRyhzcCk8YnIgPisgUkVHX1Mg YTMsIDMqU1pSRUcoc3ApPGJyID4rIFJFR19TIGE0LCA0KlNaUkVHKHNwKTxiciA+KyBSRUdfUyBh NSwgNSpTWlJFRyhzcCk8YnIgPisgUkVHX1MgYTYsIDYqU1pSRUcoc3ApPGJyID4rIFJFR19TIGE3 LCA3KlNaUkVHKHNwKTxiciA+KyBSRUdfUyB0MywgOCpTWlJFRyhzcCk8YnIgPisgUkVHX1MgdDQs IDkqU1pSRUcoc3ApPGJyID4rIFJFR19TIHQ1LCAxMCpTWlJFRyhzcCk8YnIgPisgUkVHX1MgdDYs IDExKlNaUkVHKHNwKTxiciA+KyBjZmlfcmVsX29mZnNldCAocmEsIDAqU1pSRUcpPGJyID4rIGNm aV9yZWxfb2Zmc2V0IChhMSwgMSpTWlJFRyk8YnIgPisgY2ZpX3JlbF9vZmZzZXQgKGEyLCAyKlNa UkVHKTxiciA+KyBjZmlfcmVsX29mZnNldCAoYTMsIDMqU1pSRUcpPGJyID4rIGNmaV9yZWxfb2Zm c2V0IChhNCwgNCpTWlJFRyk8YnIgPisgY2ZpX3JlbF9vZmZzZXQgKGE1LCA1KlNaUkVHKTxiciA+ KyBjZmlfcmVsX29mZnNldCAoYTYsIDYqU1pSRUcpPGJyID4rIGNmaV9yZWxfb2Zmc2V0IChhNywg NypTWlJFRyk8YnIgPisgY2ZpX3JlbF9vZmZzZXQgKHQzLCA4KlNaUkVHKTxiciA+KyBjZmlfcmVs X29mZnNldCAodDQsIDkqU1pSRUcpPGJyID4rIGNmaV9yZWxfb2Zmc2V0ICh0NSwgMTAqU1pSRUcp PGJyID4rIGNmaV9yZWxfb2Zmc2V0ICh0NiwgMTEqU1pSRUcpPGJyID4rPGJyID4rI2lmbmRlZiBf X3Jpc2N2X2Zsb2F0X2FiaV9zb2Z0PGJyID4rIEZSRUdfUyBmdDAsICgxMipTWlJFRyArIDAqU1pG UkVHKShzcCk8YnIgPisgRlJFR19TIGZ0MSwgKDEyKlNaUkVHICsgMSpTWkZSRUcpKHNwKTxiciA+ KyBGUkVHX1MgZnQyLCAoMTIqU1pSRUcgKyAyKlNaRlJFRykoc3ApPGJyID4rIEZSRUdfUyBmdDMs ICgxMipTWlJFRyArIDMqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZ0NCwgKDEyKlNaUkVHICsg NCpTWkZSRUcpKHNwKTxiciA+KyBGUkVHX1MgZnQ1LCAoMTIqU1pSRUcgKyA1KlNaRlJFRykoc3Ap PGJyID4rIEZSRUdfUyBmdDYsICgxMipTWlJFRyArIDYqU1pGUkVHKShzcCk8YnIgPisgRlJFR19T IGZ0NywgKDEyKlNaUkVHICsgNypTWkZSRUcpKHNwKTxiciA+KyBGUkVHX1MgZmEwLCAoMTIqU1pS RUcgKyA4KlNaRlJFRykoc3ApPGJyID4rIEZSRUdfUyBmYTEsICgxMipTWlJFRyArIDkqU1pGUkVH KShzcCk8YnIgPisgRlJFR19TIGZhMiwgKDEyKlNaUkVHICsgMTAqU1pGUkVHKShzcCk8YnIgPisg RlJFR19TIGZhMywgKDEyKlNaUkVHICsgMTEqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZhNCwg KDEyKlNaUkVHICsgMTIqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZhNSwgKDEyKlNaUkVHICsg MTMqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZhNiwgKDEyKlNaUkVHICsgMTQqU1pGUkVHKShz cCk8YnIgPisgRlJFR19TIGZhNywgKDEyKlNaUkVHICsgMTUqU1pGUkVHKShzcCk8YnIgPisgRlJF R19TIGZ0OCwgKDEyKlNaUkVHICsgMTYqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZ0OSwgKDEy KlNaUkVHICsgMTcqU1pGUkVHKShzcCk8YnIgPisgRlJFR19TIGZ0MTAsICgxMipTWlJFRyArIDE4 KlNaRlJFRykoc3ApPGJyID4rIEZSRUdfUyBmdDExLCAoMTIqU1pSRUcgKyAxOSpTWkZSRUcpKHNw KTxiciA+KyNlbmRpZjxiciA+KzxiciA+KyBjYWxsIEhJRERFTl9KVU1QVEFSR0VUKF9fdGxzX2dl dF9hZGRyKTxiciA+KyBhZGRpIGEwLCBhMCwgLVRMU19EVFZfT0ZGU0VUPGJyID4rPGJyID4rIFJF R19MIHJhLCAwKlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAocmEpPGJyID4rIFJFR19MIGEx LCAxKlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAoYTEpPGJyID4rIFJFR19MIGEyLCAyKlNa UkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAoYTIpPGJyID4rIFJFR19MIGEzLCAzKlNaUkVHKHNw KTxiciA+KyBjZmlfcmVzdG9yZSAoYTMpPGJyID4rIFJFR19MIGE0LCA0KlNaUkVHKHNwKTxiciA+ KyBjZmlfcmVzdG9yZSAoYTQpPGJyID4rIFJFR19MIGE1LCA1KlNaUkVHKHNwKTxiciA+KyBjZmlf cmVzdG9yZSAoYTUpPGJyID4rIFJFR19MIGE2LCA2KlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9y ZSAoYTYpPGJyID4rIFJFR19MIGE3LCA3KlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAoYTcp PGJyID4rIFJFR19MIHQzLCA4KlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAodDMpPGJyID4r IFJFR19MIHQ0LCA5KlNaUkVHKHNwKTxiciA+KyBjZmlfcmVzdG9yZSAodDQpPGJyID4rIFJFR19M IHQ1LCAxMCpTWlJFRyhzcCk8YnIgPisgY2ZpX3Jlc3RvcmUgKHQ1KTxiciA+KyBSRUdfTCB0Niwg MTEqU1pSRUcoc3ApPGJyID4rIGNmaV9yZXN0b3JlICh0Nik8YnIgPis8YnIgPisjaWZuZGVmIF9f cmlzY3ZfZmxvYXRfYWJpX3NvZnQ8YnIgPisgRlJFR19MIGZ0MCwgKDEyKlNaUkVHICsgMCpTWkZS RUcpKHNwKTxiciA+KyBGUkVHX0wgZnQxLCAoMTIqU1pSRUcgKyAxKlNaRlJFRykoc3ApPGJyID4r IEZSRUdfTCBmdDIsICgxMipTWlJFRyArIDIqU1pGUkVHKShzcCk8YnIgPisgRlJFR19MIGZ0Mywg KDEyKlNaUkVHICsgMypTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZnQ0LCAoMTIqU1pSRUcgKyA0 KlNaRlJFRykoc3ApPGJyID4rIEZSRUdfTCBmdDUsICgxMipTWlJFRyArIDUqU1pGUkVHKShzcCk8 YnIgPisgRlJFR19MIGZ0NiwgKDEyKlNaUkVHICsgNipTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wg ZnQ3LCAoMTIqU1pSRUcgKyA3KlNaRlJFRykoc3ApPGJyID4rIEZSRUdfTCBmYTAsICgxMipTWlJF RyArIDgqU1pGUkVHKShzcCk8YnIgPisgRlJFR19MIGZhMSwgKDEyKlNaUkVHICsgOSpTWkZSRUcp KHNwKTxiciA+KyBGUkVHX0wgZmEyLCAoMTIqU1pSRUcgKyAxMCpTWkZSRUcpKHNwKTxiciA+KyBG UkVHX0wgZmEzLCAoMTIqU1pSRUcgKyAxMSpTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZmE0LCAo MTIqU1pSRUcgKyAxMipTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZmE1LCAoMTIqU1pSRUcgKyAx MypTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZmE2LCAoMTIqU1pSRUcgKyAxNCpTWkZSRUcpKHNw KTxiciA+KyBGUkVHX0wgZmE3LCAoMTIqU1pSRUcgKyAxNSpTWkZSRUcpKHNwKTxiciA+KyBGUkVH X0wgZnQ4LCAoMTIqU1pSRUcgKyAxNipTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZnQ5LCAoMTIq U1pSRUcgKyAxNypTWkZSRUcpKHNwKTxiciA+KyBGUkVHX0wgZnQxMCwgKDEyKlNaUkVHICsgMTgq U1pGUkVHKShzcCk8YnIgPisgRlJFR19MIGZ0MTEsICgxMipTWlJFRyArIDE5KlNaRlJFRykoc3Ap PGJyID4rI2VuZGlmPGJyID4rPGJyID4rIGFkZGkgc3AsIHNwLCBGUkFNRV9TSVpFX1NMT1c8YnIg PisgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICgtRlJBTUVfU0laRV9TTE9XKTxiciA+KyBqIC5McmV0 PGJyID4rRU5EIChfZGxfdGxzZGVzY19keW5hbWljKTxiciA+KyAuaGlkZGVuIEhJRERFTl9KVU1Q VEFSR0VUKF9fdGxzX2dldF9hZGRyKTxiciA+KyNlbmRpZjxiciA+ZGlmZiAtLWdpdCBhL3N5c2Rl cHMvcmlzY3YvZGwtdGxzZGVzYy5oIGIvc3lzZGVwcy9yaXNjdi9kbC10bHNkZXNjLmg8YnIgPm5l dyBmaWxlIG1vZGUgMTAwNjQ0PGJyID5pbmRleCAwMDAwMDAwMDAwLi4zNjZiNDU0MTgzPGJyID4t LS0gL2Rldi9udWxsPGJyID4rKysgYi9zeXNkZXBzL3Jpc2N2L2RsLXRsc2Rlc2MuaDxiciA+QEAg LTAsMCArMSw0OCBAQDxiciA+Ky8qIFRocmVhZC1sb2NhbCBzdG9yYWdlIGRlc2NyaXB0b3IgaGFu ZGxpbmcgaW4gdGhlIEVMRiBkeW5hbWljIGxpbmtlci48YnIgPisgJm5ic3A7IFJJU0MtViB2ZXJz aW9uLjxiciA+KyAmbmJzcDsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLjxiciA+KyAmbmJzcDsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuPGJyID4rPGJyID4rICZuYnNwOyBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3I8YnIgPisgJm5ic3A7IG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWM8YnIgPisg Jm5ic3A7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcjxiciA+KyAmbmJzcDsgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPGJyID4rPGJyID4rICZuYnNwOyBUaGUg R05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLDxiciA+KyAmbmJzcDsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Y8YnIgPisgJm5ic3A7IE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4mbmJzcDsgU2VlIHRoZSBHTlU8YnIg PisgJm5ic3A7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu PGJyID4rPGJyID4rICZuYnNwOyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljPGJyID4rICZuYnNwOyBMaWNlbnNlIGFsb25nIHdp dGggdGhlIEdOVSBDIExpYnJhcnkuJm5ic3A7IElmIG5vdCwgc2VlPGJyID4rICZuYnNwOyAmbHQ7 PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvJmd0OyIgdGFyZ2V0PSJfYmxh bmsiPmh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvJmd0OzwvYT4uJm5ic3A7ICovPGJyID4r PGJyID4rI2lmbmRlZiBfRExfVExTREVTQ19IPGJyID4rIyBkZWZpbmUgX0RMX1RMU0RFU0NfSCAx PGJyID4rPGJyID4rI2luY2x1ZGUgJmx0O2RsLXRscy5oJmd0OzxiciA+KzxiciA+Ky8qIFR5cGUg dXNlZCB0byByZXByZXNlbnQgYSBUTFMgZGVzY3JpcHRvciBpbiB0aGUgR09ULiZuYnNwOyAqLzxi ciA+K3N0cnVjdCB0bHNkZXNjPGJyID4rezxiciA+KyZuYnNwOyB1bnNpZ25lZCBsb25nICgqZW50 cnkpIChzdHJ1Y3QgdGxzZGVzYyAqKTs8YnIgPismbmJzcDsgdm9pZCAqYXJnOzxiciA+K307PGJy ID4rPGJyID4rLyogVHlwZSB1c2VkIGFzIHRoZSBhcmd1bWVudCBpbiBhIFRMUyBkZXNjcmlwdG9y IGZvciBhIHN5bWJvbCB0aGF0PGJyID4rICZuYnNwOyBuZWVkcyBkeW5hbWljIFRMUyBvZmZzZXRz LiZuYnNwOyAqLzxiciA+K3N0cnVjdCB0bHNkZXNjX2R5bmFtaWNfYXJnPGJyID4rezxiciA+KyZu YnNwOyB0bHNfaW5kZXggdGxzaW5mbzs8YnIgPismbmJzcDsgc2l6ZV90IGdlbl9jb3VudDs8YnIg Pit9OzxiciA+KzxiciA+K2V4dGVybiB1bnNpZ25lZCBsb25nIF9kbF90bHNkZXNjX3JldHVybiAo c3RydWN0IHRsc2Rlc2MgKikgYXR0cmlidXRlX2hpZGRlbjs8YnIgPitleHRlcm4gdW5zaWduZWQg bG9uZyBfZGxfdGxzZGVzY191bmRlZndlYWsgKHN0cnVjdCB0bHNkZXNjICopIGF0dHJpYnV0ZV9o aWRkZW47PGJyID4rPGJyID4rIyBpZmRlZiBTSEFSRUQ8YnIgPitleHRlcm4gdm9pZCAqX2RsX21h a2VfdGxzZGVzY19keW5hbWljIChzdHJ1Y3QgbGlua19tYXAgKiwgc2l6ZV90KTs8YnIgPitleHRl cm4gdW5zaWduZWQgbG9uZyBfZGxfdGxzZGVzY19keW5hbWljIChzdHJ1Y3QgdGxzZGVzYyAqKSBh dHRyaWJ1dGVfaGlkZGVuOzxiciA+KyMgZW5kaWY8YnIgPis8YnIgPisjZW5kaWYgLyogX0RMX1RM U0RFU0NfSCAqLzxiciA+ZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbGlua21hcC5oIGIvc3lz ZGVwcy9yaXNjdi9saW5rbWFwLmg8YnIgPmluZGV4IGFjMTcwYmIzNDIuLjJmYTNmNmQ0M2YgMTAw NjQ0PGJyID4tLS0gYS9zeXNkZXBzL3Jpc2N2L2xpbmttYXAuaDxiciA+KysrIGIvc3lzZGVwcy9y aXNjdi9saW5rbWFwLmg8YnIgPkBAIC0xLDQgKzEsNSBAQDxiciA+IHN0cnVjdCBsaW5rX21hcF9t YWNoaW5lPGJyID4gJm5ic3A7IHs8YnIgPiAmbmJzcDsgJm5ic3A7IEVsZlcoQWRkcikgcGx0OyAv KiBBZGRyZXNzIG9mIC5wbHQuJm5ic3A7ICovPGJyID4rJm5ic3A7ICZuYnNwOyB2b2lkICp0bHNk ZXNjX3RhYmxlOyAvKiBBZGRyZXNzIG9mIFRMUyBkZXNjcmlwdG9yIGhhc2ggdGFibGUuJm5ic3A7 ICovPGJyID4gJm5ic3A7IH07PGJyID5kaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9wcmVjb25m aWd1cmUgYi9zeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3VyZTxiciA+aW5kZXggNTdmZTY4MjJjZi4u N2MzMGNmMDQ1YyAxMDA3NTU8YnIgPi0tLSBhL3N5c2RlcHMvcmlzY3YvcHJlY29uZmlndXJlPGJy ID4rKysgYi9zeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3VyZTxiciA+QEAgLTc0LDYgKzc0LDcgQEAg cmlzY3YqKTxiciA+IDxiciA+ICZuYnNwOyAmbmJzcDsgYmFzZV9tYWNoaW5lPXJpc2N2PGJyID4g Jm5ic3A7ICZuYnNwOyBtYWNoaW5lPXJpc2N2L3J2JHhsZW4vJGZsb2F0X21hY2hpbmU8YnIgPism bmJzcDsgJm5ic3A7IG10bHNfZGVzY3JpcHRvcj1kZXNjPGJyID4gPGJyID4gJm5ic3A7ICZuYnNw OyBwcmludGYgIiVzXG4iICIjZGVmaW5lIFJJU0NWX0FCSV9YTEVOICR4bGVuIiAmZ3Q7Jmd0O2Nv bmZkZWZzLmg8YnIgPiA8YnIgPmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L3ByZWNvbmZpZ3Vy ZS5hYyBiL3N5c2RlcHMvcmlzY3YvcHJlY29uZmlndXJlLmFjPGJyID5pbmRleCA1MjQxNDkxOWFl Li4xN2Y5YTUzMTJiIDEwMDY0NDxiciA+LS0tIGEvc3lzZGVwcy9yaXNjdi9wcmVjb25maWd1cmUu YWM8YnIgPisrKyBiL3N5c2RlcHMvcmlzY3YvcHJlY29uZmlndXJlLmFjPGJyID5AQCAtNzQsNiAr NzQsNyBAQCByaXNjdiopPGJyID4gPGJyID4gJm5ic3A7ICZuYnNwOyBiYXNlX21hY2hpbmU9cmlz Y3Y8YnIgPiAmbmJzcDsgJm5ic3A7IG1hY2hpbmU9cmlzY3YvcnYkeGxlbi8kZmxvYXRfbWFjaGlu ZTxiciA+KyZuYnNwOyAmbmJzcDsgbXRsc19kZXNjcmlwdG9yPWRlc2M8YnIgPiA8YnIgPiAmbmJz cDsgJm5ic3A7IEFDX0RFRklORV9VTlFVT1RFRChbUklTQ1ZfQUJJX1hMRU5dLCBbJHhsZW5dKTxi ciA+ICZuYnNwOyAmbmJzcDsgQUNfREVGSU5FX1VOUVVPVEVEKFtSSVNDVl9BQklfRkxFTl0sIFsk YWJpX2ZsZW5dKTxiciA+ZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvdGxzZGVzYy5jIGIvc3lz ZGVwcy9yaXNjdi90bHNkZXNjLmM8YnIgPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PGJyID5pbmRleCAw MDAwMDAwMDAwLi5mMmNlZjNkYjc3PGJyID4tLS0gL2Rldi9udWxsPGJyID4rKysgYi9zeXNkZXBz L3Jpc2N2L3Rsc2Rlc2MuYzxiciA+QEAgLTAsMCArMSwzOCBAQDxiciA+Ky8qIE1hbmFnZSBUTFMg ZGVzY3JpcHRvcnMuJm5ic3A7IFJJU0MtViB2ZXJzaW9uLjxiciA+KyAmbmJzcDsgQ29weXJpZ2h0 IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLjxiciA+KyAmbmJzcDsgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuPGJyID4rPGJyID4rICZuYnNwOyBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3I8YnIgPisgJm5ic3A7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWM8YnIgPisgJm5ic3A7IExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcjxiciA+KyAmbmJzcDsgdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uPGJyID4rPGJyID4rICZuYnNwOyBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciA+KyAmbmJzcDsgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Y8 YnIgPisgJm5ic3A7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4mbmJzcDsgU2VlIHRoZSBHTlU8YnIgPisgJm5ic3A7IExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPGJyID4rPGJyID4rICZuYnNwOyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj PGJyID4rICZuYnNwOyBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlPGJyID4rICZuYnNwOyAmbHQ7PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvJmd0OyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Jmd0OzwvYT4uJm5ic3A7ICovPGJyID4rPGJyID4rI2luY2x1ZGUgJmx0O2xkc29kZWZzLmgmZ3Q7 PGJyID4rI2luY2x1ZGUgJmx0O3Rscy5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDtkbC10bHMuaCZn dDs8YnIgPisjaW5jbHVkZSAmbHQ7ZGwtdGxzZGVzYy5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDtk bC11bm1hcC1zZWdtZW50cy5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDt0bHNkZXNjaHRhYi5oJmd0 OzxiciA+KzxiciA+Ky8qIFVubWFwIHRoZSBkeW5hbWljIG9iamVjdCwgYnV0IGFsc28gcmVsZWFz ZSBpdHMgVExTIGRlc2NyaXB0b3IgdGFibGU8YnIgPisgJm5ic3A7IGlmIHRoZXJlIGlzIG9uZS4m bmJzcDsgKi88YnIgPis8YnIgPit2b2lkPGJyID4rX2RsX3VubWFwIChzdHJ1Y3QgbGlua19tYXAg Km1hcCk8YnIgPit7PGJyID4rJm5ic3A7IF9kbF91bm1hcF9zZWdtZW50cyAobWFwKTs8YnIgPis8 YnIgPisjaWZkZWYgU0hBUkVEPGJyID4rJm5ic3A7IGlmIChtYXAtJmd0O2xfbWFjaC50bHNkZXNj X3RhYmxlKTxiciA+KyZuYnNwOyAmbmJzcDsgaHRhYl9kZWxldGUgKG1hcC0mZ3Q7bF9tYWNoLnRs c2Rlc2NfdGFibGUpOzxiciA+KyNlbmRpZjxiciA+K308YnIgPmRpZmYgLS1naXQgYS9zeXNkZXBz L3Jpc2N2L3Rsc2Rlc2Muc3ltIGIvc3lzZGVwcy9yaXNjdi90bHNkZXNjLnN5bTxiciA+bmV3IGZp bGUgbW9kZSAxMDA2NDQ8YnIgPmluZGV4IDAwMDAwMDAwMDAuLjY1MmU3MmVhNTg8YnIgPi0tLSAv ZGV2L251bGw8YnIgPisrKyBiL3N5c2RlcHMvcmlzY3YvdGxzZGVzYy5zeW08YnIgPkBAIC0wLDAg KzEsMTkgQEA8YnIgPisjaW5jbHVkZSAmbHQ7c3RkZGVmLmgmZ3Q7PGJyID4rI2luY2x1ZGUgJmx0 O3N5c2RlcC5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDt0bHMuaCZndDs8YnIgPisjaW5jbHVkZSAm bHQ7bGluay5oJmd0OzxiciA+KyNpbmNsdWRlICZsdDtkbC10bHMuaCZndDs8YnIgPisjaW5jbHVk ZSAmbHQ7ZGwtdGxzZGVzYy5oJmd0OzxiciA+KzxiciA+Ky0tPGJyID4rPGJyID4rLS0gQWJ1c2Ug dGxzLmggbWFjcm9zIHRvIGRlcml2ZSBvZmZzZXRzIHJlbGF0aXZlIHRvIHRoZSB0aHJlYWQgcmVn aXN0ZXIuPGJyID4rPGJyID4rVExTREVTQ19BUkcmbmJzcDsgb2Zmc2V0b2Yoc3RydWN0IHRsc2Rl c2MsIGFyZyk8YnIgPitUTFNERVNDX0dFTl9DT1VOVCBvZmZzZXRvZihzdHJ1Y3QgdGxzZGVzY19k eW5hbWljX2FyZywgZ2VuX2NvdW50KTxiciA+K1RMU0RFU0NfTU9ESUQmbmJzcDsgb2Zmc2V0b2Yo c3RydWN0IHRsc2Rlc2NfZHluYW1pY19hcmcsIHRsc2luZm8udGlfbW9kdWxlKTxiciA+K1RMU0RF U0NfTU9ET0ZGJm5ic3A7IG9mZnNldG9mKHN0cnVjdCB0bHNkZXNjX2R5bmFtaWNfYXJnLCB0bHNp bmZvLnRpX29mZnNldCk8YnIgPitUQ0JIRUFEX0RUViZuYnNwOyBvZmZzZXRvZih0Y2JoZWFkX3Qs IGR0dikgLSBzaXplb2YodGNiaGVhZF90KSAtIFRMU19UQ0JfT0ZGU0VUPGJyID4rRFRWX0NPVU5U RVImbmJzcDsgb2Zmc2V0b2YoZHR2X3QsIGNvdW50ZXIpPGJyID4rVExTX0RUVl9VTkFMTE9DQVRF RCBUTFNfRFRWX1VOQUxMT0NBVEVEPGJyID4rVExTX0RUVl9PRkZTRVQmbmJzcDsgVExTX0RUVl9P RkZTRVQ8YnIgPmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L3RzdC1nbnUyLXRsczIuaCBiL3N5 c2RlcHMvcmlzY3YvdHN0LWdudTItdGxzMi5oPGJyID5uZXcgZmlsZSBtb2RlIDEwMDY0NDxiciA+ aW5kZXggMDAwMDAwMDAwMC4uZWY1YjM0NWVmMjxiciA+LS0tIC9kZXYvbnVsbDxiciA+KysrIGIv c3lzZGVwcy9yaXNjdi90c3QtZ251Mi10bHMyLmg8YnIgPkBAIC0wLDAgKzEsMjAxIEBAPGJyID4r LyogVGVzdCBUTFNERVNDIHJlbG9jYXRpb24uJm5ic3A7IFJJU0MtViB2ZXJzaW9uLjxiciA+KyAm bmJzcDsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLjxi ciA+KyAmbmJzcDsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuPGJyID4r PGJyID4rICZuYnNwOyBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3I8YnIgPisgJm5ic3A7IG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWM8YnIgPisgJm5ic3A7IExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcjxi ciA+KyAmbmJzcDsgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uPGJyID4rPGJyID4rICZuYnNwOyBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciA+ KyAmbmJzcDsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2Y8YnIgPisgJm5ic3A7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4mbmJzcDsgU2VlIHRoZSBHTlU8YnIgPisgJm5ic3A7IExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPGJyID4rPGJyID4r ICZuYnNwOyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljPGJyID4rICZuYnNwOyBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBD IExpYnJhcnk7IGlmIG5vdCwgc2VlPGJyID4rICZuYnNwOyAmbHQ7PGEgIGhyZWY9Imh0dHBzOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvJmd0OyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvJmd0OzwvYT4uJm5ic3A7ICovPGJyID4rPGJyID4rI2luY2x1ZGUgJmx0 O3N0ZGlvLmgmZ3Q7PGJyID4rI2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OzxiciA+KyNpbmNsdWRl ICZsdDtzdGRsaWIuaCZndDs8YnIgPis8YnIgPisvKiBUaGUgVExTREVTQyBjYWxsaW5nIGNvbnZl bnRpb24gcmVxdWlyZXMgX2RsX3Rsc2Rlc2NfZHluYW1pYyB0byBwcmVzZXJ2ZTxiciA+KyAmbmJz cDsgZXZlcnkgcmVnaXN0ZXIgZXhjZXB0IGEwICh0aGUgYXJndW1lbnQvcmV0dXJuIHZhbHVlKSBh bmQgdDAgKHRoZSByZXR1cm48YnIgPisgJm5ic3A7IGFkZHJlc3MpLiZuYnNwOyBPbiB0aGUgc2xv dyBwYXRoIGl0IGNhbGxzIF9fdGxzX2dldF9hZGRyLCBhbiBvcmRpbmFyeSBmdW5jdGlvbjxiciA+ KyAmbmJzcDsgdGhhdCBtYXkgY2xvYmJlciBhbGwgY2FsbGVyLXNhdmVkIHJlZ2lzdGVycywgc28g dGhlIHJlc29sdmVyIG11c3Qgc2F2ZSBhbmQ8YnIgPisgJm5ic3A7IHJlc3RvcmUgdGhlIGNhbGxl ci1zYXZlZCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGExLWE3IGFuZCB0MS10NiwgYW5kPGJy ID4rICZuYnNwOyB0aGUgMjAgY2FsbGVyLXNhdmVkIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyAo ZnQwLWZ0NywgZmEwLWZhNywgZnQ4LWZ0MTEpLDxiciA+KyAmbmJzcDsgYXJvdW5kIHRoYXQgY2Fs bC4mbmJzcDsgTG9hZCBzZW50aW5lbCB2YWx1ZXMgaW50byB0aGVtIGJlZm9yZSB0aGUgVExTIGFj Y2VzcyBhbmQ8YnIgPisgJm5ic3A7IHZlcmlmeSB0aGF0IHRoZXkgYXJlIHVuY2hhbmdlZCBhZnRl cndhcmRzLjxiciA+KzxiciA+KyAmbmJzcDsgVmVjdG9yIHJlZ2lzdGVycyBhbmQgdmVjdG9yIENT UnMgYXJlIGludGVudGlvbmFsbHkgKm5vdCogY2hlY2tlZDogcGVyIHRoZTxiciA+KyAmbmJzcDsg UklTQy1WIHBzQUJJIHRoZXkgYXJlIGNsb2JiZXJlZCBieSB0aGUgVExTREVTQyBjYWxsIChzZWU8 YnIgPisgJm5ic3A7IHJpc2N2LW5vbi1pc2EvcmlzY3YtZWxmLXBzYWJpLWRvYyM0OTYpLCBzbyB0 aGUgY29tcGlsZXIsIG5vdCB0aGUgZHluYW1pYzxiciA+KyAmbmJzcDsgbGlua2VyLCBpcyByZXNw b25zaWJsZSBmb3IgcHJlc2VydmluZyB0aGVtIGFjcm9zcyB0aGUgYWNjZXNzLiZuYnNwOyAqLzxi ciA+KzxiciA+KyNkZWZpbmUgSU5JVF9UTFNERVNDX0NBTEwoKSZuYnNwOyAmbmJzcDsgJm5ic3A7 IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2ExIGFzbSAo ImExIikgPSAxMTsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0 bHNkZXNjX2dwX2EyIGFzbSAoImEyIikgPSAxMjsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0 ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2EzIGFzbSAoImEzIikgPSAxMzsgJm5ic3A7IFw8 YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2E0IGFzbSAoImE0 IikgPSAxNDsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNk ZXNjX2dwX2E1IGFzbSAoImE1IikgPSAxNTsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIg dW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2E2IGFzbSAoImE2IikgPSAxNjsgJm5ic3A7IFw8YnIg PismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX2E3IGFzbSAoImE3Iikg PSAxNzsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNj X2dwX3QxIGFzbSAoInQxIikgPSAyMTsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5z aWduZWQgbG9uZyB0bHNkZXNjX2dwX3QyIGFzbSAoInQyIikgPSAyMjsgJm5ic3A7IFw8YnIgPism bmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX3QzIGFzbSAoInQzIikgPSAy MzsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dw X3Q0IGFzbSAoInQ0IikgPSAyNDsgJm5ic3A7IFw8YnIgPismbmJzcDsgcmVnaXN0ZXIgdW5zaWdu ZWQgbG9uZyB0bHNkZXNjX2dwX3Q1IGFzbSAoInQ1IikgPSAyNTsgJm5ic3A7IFw8YnIgPismbmJz cDsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0bHNkZXNjX2dwX3Q2IGFzbSAoInQ2IikgPSAyNjs8 YnIgPis8YnIgPisjZGVmaW5lIExPQURfUkVHSVNURVJfR1AoKSZuYnNwOyAmbmJzcDsgJm5ic3A7 IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiIiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJy ID4rJm5ic3A7IDogIityIiAodGxzZGVzY19ncF9hMSksICIrciIgKHRsc2Rlc2NfZ3BfYTIpLCZu YnNwOyBcPGJyID4rJm5ic3A7ICZuYnNwOyAiK3IiICh0bHNkZXNjX2dwX2EzKSwgIityIiAodGxz ZGVzY19ncF9hNCksJm5ic3A7IFw8YnIgPismbmJzcDsgJm5ic3A7ICIrciIgKHRsc2Rlc2NfZ3Bf YTUpLCAiK3IiICh0bHNkZXNjX2dwX2E2KSwmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgIity IiAodGxzZGVzY19ncF9hNyksICIrciIgKHRsc2Rlc2NfZ3BfdDEpLCZuYnNwOyBcPGJyID4rJm5i c3A7ICZuYnNwOyAiK3IiICh0bHNkZXNjX2dwX3QyKSwgIityIiAodGxzZGVzY19ncF90MyksJm5i c3A7IFw8YnIgPismbmJzcDsgJm5ic3A7ICIrciIgKHRsc2Rlc2NfZ3BfdDQpLCAiK3IiICh0bHNk ZXNjX2dwX3Q1KSwmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgIityIiAodGxzZGVzY19ncF90 NikmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgOiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJy ID4rJm5ic3A7IDogIm1lbW9yeSIpPGJyID4rPGJyID4rI2RlZmluZSBTQVZFX1JFR0lTVEVSX0dQ KCkmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IExPQURfUkVHSVNURVJfR1AgKCk7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgaWYgKHRsc2Rlc2NfZ3BfYTEgIT0g MTEgfHwgdGxzZGVzY19ncF9hMiAhPSAxMiAmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgJm5i c3A7IHx8IHRsc2Rlc2NfZ3BfYTMgIT0gMTMgfHwgdGxzZGVzY19ncF9hNCAhPSAxNCAmbmJzcDsg XDxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IHx8IHRsc2Rlc2NfZ3BfYTUgIT0gMTUgfHwgdGxz ZGVzY19ncF9hNiAhPSAxNiAmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IHx8IHRs c2Rlc2NfZ3BfYTcgIT0gMTcgfHwgdGxzZGVzY19ncF90MSAhPSAyMSAmbmJzcDsgXDxiciA+KyZu YnNwOyAmbmJzcDsgJm5ic3A7IHx8IHRsc2Rlc2NfZ3BfdDIgIT0gMjIgfHwgdGxzZGVzY19ncF90 MyAhPSAyMyAmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IHx8IHRsc2Rlc2NfZ3Bf dDQgIT0gMjQgfHwgdGxzZGVzY19ncF90NSAhPSAyNSAmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJz cDsgJm5ic3A7IHx8IHRsc2Rlc2NfZ3BfdDYgIT0gMjYpJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxi ciA+KyZuYnNwOyAmbmJzcDsgeyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxiciA+KyZu YnNwOyAmbmJzcDsgJm5ic3A7IHByaW50ZiAoIkdQIHJlZ2lzdGVycyBjb21wYXJlIGZhaWxlZCFc biIpOyAmbmJzcDsgXDxiciA+KyZuYnNwOyAmbmJzcDsgJm5ic3A7IGFib3J0ICgpOyZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7ICZuYnNwOyB9PGJyID4rPGJyID4rI2Rl ZmluZSBDTE9CQkVSX1JFR0lTVEVSX0dQKCkmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5i c3A7IGFzbSB2b2xhdGlsZSAoImxpIGExLCAxMDEiIDo6OiAiYTEiKTsgJm5ic3A7ICZuYnNwOyBc PGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIGEyLCAxMDIiIDo6OiAiYTIiKTsgJm5ic3A7 ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIGEzLCAxMDMiIDo6OiAiYTMi KTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIGE0LCAxMDQi IDo6OiAiYTQiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxp IGE1LCAxMDUiIDo6OiAiYTUiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xh dGlsZSAoImxpIGE2LCAxMDYiIDo6OiAiYTYiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7 IGFzbSB2b2xhdGlsZSAoImxpIGE3LCAxMDciIDo6OiAiYTciKTsgJm5ic3A7ICZuYnNwOyBcPGJy ID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIHQxLCAxMTEiIDo6OiAidDEiKTsgJm5ic3A7ICZu YnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIHQyLCAxMTIiIDo6OiAidDIiKTsg Jm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIHQzLCAxMTMiIDo6 OiAidDMiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImxpIHQ0 LCAxMTQiIDo6OiAidDQiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGls ZSAoImxpIHQ1LCAxMTUiIDo6OiAidDUiKTsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IGFz bSB2b2xhdGlsZSAoImxpIHQ2LCAxMTYiIDo6OiAidDYiKTxiciA+KzxiciA+KyNpZm5kZWYgX19y aXNjdl9mbG9hdF9hYmlfc29mdDxiciA+KzxiciA+KyMgZGVmaW5lIExPQURfUkVHSVNURVJfRkxP QVQoKSZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgZG91YmxlIHNyY19mbG9hdFsy MF07ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgZm9yIChpbnQgaSA9IDA7IGkg Jmx0OyAyMDsgaSsrKSZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgJm5ic3A7IHNy Y19mbG9hdFtpXSA9IGkgKyAxOyZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgYXNt IHZvbGF0aWxlICgiZmxkIGZ0MCwmbmJzcDsgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzBdKSZuYnNw OyA6ICJmdDAiKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQxLCZu YnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRbMV0pJm5ic3A7IDogImZ0MSIpOyZuYnNwOyBcPGJy ID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZsZCBmdDIsJm5ic3A7ICUwIiA6OiAibSIgKHNyY19m bG9hdFsyXSkmbmJzcDsgOiAiZnQyIik7Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxl ICgiZmxkIGZ0MywmbmJzcDsgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzNdKSZuYnNwOyA6ICJmdDMi KTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ0LCZuYnNwOyAlMCIg OjogIm0iIChzcmNfZmxvYXRbNF0pJm5ic3A7IDogImZ0NCIpOyZuYnNwOyBcPGJyID4rJm5ic3A7 IGFzbSB2b2xhdGlsZSAoImZsZCBmdDUsJm5ic3A7ICUwIiA6OiAibSIgKHNyY19mbG9hdFs1XSkm bmJzcDsgOiAiZnQ1Iik7Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZ0 NiwmbmJzcDsgJTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzZdKSZuYnNwOyA6ICJmdDYiKTsmbmJzcDsg XDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ3LCZuYnNwOyAlMCIgOjogIm0iIChz cmNfZmxvYXRbN10pJm5ic3A7IDogImZ0NyIpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xh dGlsZSAoImZsZCBmYTAsJm5ic3A7ICUwIiA6OiAibSIgKHNyY19mbG9hdFs4XSkmbmJzcDsgOiAi ZmEwIik7Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZhMSwmbmJzcDsg JTAiIDo6ICJtIiAoc3JjX2Zsb2F0WzldKSZuYnNwOyA6ICJmYTEiKTsmbmJzcDsgXDxiciA+KyZu YnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZmEyLCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRb MTBdKSA6ICJmYTIiKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZmEz LCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTFdKSA6ICJmYTMiKTsmbmJzcDsgXDxiciA+ KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZmE0LCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxv YXRbMTJdKSA6ICJmYTQiKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQg ZmE1LCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTNdKSA6ICJmYTUiKTsmbmJzcDsgXDxi ciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZmE2LCZuYnNwOyAlMCIgOjogIm0iIChzcmNf ZmxvYXRbMTRdKSA6ICJmYTYiKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJm bGQgZmE3LCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTVdKSA6ICJmYTciKTsmbmJzcDsg XDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQ4LCZuYnNwOyAlMCIgOjogIm0iIChz cmNfZmxvYXRbMTZdKSA6ICJmdDgiKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUg KCJmbGQgZnQ5LCZuYnNwOyAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTddKSA6ICJmdDkiKTsmbmJz cDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQxMCwgJTAiIDo6ICJtIiAoc3Jj X2Zsb2F0WzE4XSkgOiAiZnQxMCIpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAo ImZsZCBmdDExLCAlMCIgOjogIm0iIChzcmNfZmxvYXRbMTldKSA6ICJmdDExIik7PGJyID4rPGJy ID4rIyBkZWZpbmUgU0FWRV9SRUdJU1RFUl9GTE9BVCgpJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxi ciA+KyZuYnNwOyBkb3VibGUgcmVzdG9yZV9mbG9hdFsyMF07Jm5ic3A7ICZuYnNwOyAmbmJzcDsg XDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmc2QgZnQwLCZuYnNwOyAlMCIgOiAiPW0iIChy ZXN0b3JlX2Zsb2F0WzBdKSk7Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZnNk IGZ0MSwmbmJzcDsgJTAiIDogIj1tIiAocmVzdG9yZV9mbG9hdFsxXSkpOyZuYnNwOyBcPGJyID4r Jm5ic3A7IGFzbSB2b2xhdGlsZSAoImZzZCBmdDIsJm5ic3A7ICUwIiA6ICI9bSIgKHJlc3RvcmVf ZmxvYXRbMl0pKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmc2QgZnQzLCZu YnNwOyAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzNdKSk7Jm5ic3A7IFw8YnIgPismbmJzcDsg YXNtIHZvbGF0aWxlICgiZnNkIGZ0NCwmbmJzcDsgJTAiIDogIj1tIiAocmVzdG9yZV9mbG9hdFs0 XSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZzZCBmdDUsJm5ic3A7ICUw IiA6ICI9bSIgKHJlc3RvcmVfZmxvYXRbNV0pKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9s YXRpbGUgKCJmc2QgZnQ2LCZuYnNwOyAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzZdKSk7Jm5i c3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZnNkIGZ0NywmbmJzcDsgJTAiIDogIj1t IiAocmVzdG9yZV9mbG9hdFs3XSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAo ImZzZCBmYTAsJm5ic3A7ICUwIiA6ICI9bSIgKHJlc3RvcmVfZmxvYXRbOF0pKTsmbmJzcDsgXDxi ciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmc2QgZmExLCZuYnNwOyAlMCIgOiAiPW0iIChyZXN0 b3JlX2Zsb2F0WzldKSk7Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZnNkIGZh MiwmbmJzcDsgJTAiIDogIj1tIiAocmVzdG9yZV9mbG9hdFsxMF0pKTsmbmJzcDsgXDxiciA+KyZu YnNwOyBhc20gdm9sYXRpbGUgKCJmc2QgZmEzLCZuYnNwOyAlMCIgOiAiPW0iIChyZXN0b3JlX2Zs b2F0WzExXSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZzZCBmYTQsJm5i c3A7ICUwIiA6ICI9bSIgKHJlc3RvcmVfZmxvYXRbMTJdKSk7Jm5ic3A7IFw8YnIgPismbmJzcDsg YXNtIHZvbGF0aWxlICgiZnNkIGZhNSwmbmJzcDsgJTAiIDogIj1tIiAocmVzdG9yZV9mbG9hdFsx M10pKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmc2QgZmE2LCZuYnNwOyAl MCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzE0XSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2 b2xhdGlsZSAoImZzZCBmYTcsJm5ic3A7ICUwIiA6ICI9bSIgKHJlc3RvcmVfZmxvYXRbMTVdKSk7 Jm5ic3A7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZnNkIGZ0OCwmbmJzcDsgJTAiIDog Ij1tIiAocmVzdG9yZV9mbG9hdFsxNl0pKTsmbmJzcDsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRp bGUgKCJmc2QgZnQ5LCZuYnNwOyAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzE3XSkpOyZuYnNw OyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZzZCBmdDEwLCAlMCIgOiAiPW0iIChyZXN0 b3JlX2Zsb2F0WzE4XSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZzZCBm dDExLCAlMCIgOiAiPW0iIChyZXN0b3JlX2Zsb2F0WzE5XSkpOyZuYnNwOyBcPGJyID4rJm5ic3A7 IGlmIChtZW1jbXAgKHNyY19mbG9hdCwgcmVzdG9yZV9mbG9hdCwgc2l6ZW9mIChzcmNfZmxvYXQp KSAhPSAwKSBcPGJyID4rJm5ic3A7ICZuYnNwOyB7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBcPGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHJpbnRmICgiRmxvYXQgcmVnaXN0ZXJzIGNv bXBhcmUgZmFpbGVkIVxuIik7ICZuYnNwOyBcPGJyID4rJm5ic3A7ICZuYnNwOyAmbmJzcDsgYWJv cnQgKCk7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgJm5ic3A7IH08 YnIgPis8YnIgPisvKiBDbG9iYmVyIHRoZSBjYWxsZXItc2F2ZWQgZmxvYXRpbmctcG9pbnQgcmVn aXN0ZXJzIGluc2lkZSBtYWxsb2MsIHdoaWNoIGlzPGJyID4rICZuYnNwOyByZWFjaGVkIHRocm91 Z2ggX190bHNfZ2V0X2FkZHIgb24gdGhlIFRMU0RFU0Mgc2xvdyBwYXRoLiZuYnNwOyBJZiB0aGUg cmVzb2x2ZXI8YnIgPisgJm5ic3A7IGZhaWxzIHRvIHNhdmUgYW5kIHJlc3RvcmUgdGhlbSwgdGhl IHNlbnRpbmVscyBwbGFudGVkIGJ5PGJyID4rICZuYnNwOyBCRUZPUkVfVExTREVTQ19DQUxMIHdp bGwgYmUgY29ycnVwdGVkIGFuZCBBRlRFUl9UTFNERVNDX0NBTEwgd2lsbCBhYm9ydC4mbmJzcDsg Ki88YnIgPisjIGRlZmluZSBQUkVQQVJFX01BTExPQygpJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxi ciA+K3sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgc3RhdGljIGNv bnN0IGRvdWJsZSBjbG9iYmVyX2Zsb2F0WzIwXSA9Jm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7 ICZuYnNwOyB7IDEwMSwgMTAyLCAxMDMsIDEwNCwgMTA1LCAxMDYsIDEwNywgMTA4LCAxMDksIDEx MCwgJm5ic3A7IFw8YnIgPismbmJzcDsgJm5ic3A7ICZuYnNwOyAxMTEsIDExMiwgMTEzLCAxMTQs IDExNSwgMTE2LCAxMTcsIDExOCwgMTE5LCAxMjAgfTsmbmJzcDsgXDxiciA+KyZuYnNwOyBDTE9C QkVSX1JFR0lTVEVSX0dQICgpOyZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgYXNt IHZvbGF0aWxlICgiZmxkIGZ0MCwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFswXSkm bmJzcDsgOiAiZnQwIik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZ0MSwmbmJz cDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsxXSkmbmJzcDsgOiAiZnQxIik7IFw8YnIgPism bmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZ0MiwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9m bG9hdFsyXSkmbmJzcDsgOiAiZnQyIik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxk IGZ0MywmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFszXSkmbmJzcDsgOiAiZnQzIik7 IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZ0NCwmbmJzcDsgJTAiIDo6ICJtIiAo Y2xvYmJlcl9mbG9hdFs0XSkmbmJzcDsgOiAiZnQ0Iik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0 aWxlICgiZmxkIGZ0NSwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFs1XSkmbmJzcDsg OiAiZnQ1Iik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZ0NiwmbmJzcDsgJTAi IDo6ICJtIiAoY2xvYmJlcl9mbG9hdFs2XSkmbmJzcDsgOiAiZnQ2Iik7IFw8YnIgPismbmJzcDsg YXNtIHZvbGF0aWxlICgiZmxkIGZ0NywmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFs3 XSkmbmJzcDsgOiAiZnQ3Iik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZhMCwm bmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFs4XSkmbmJzcDsgOiAiZmEwIik7IFw8YnIg PismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZhMSwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJl cl9mbG9hdFs5XSkmbmJzcDsgOiAiZmExIik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgi ZmxkIGZhMiwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsxMF0pIDogImZhMiIpOyBc PGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZsZCBmYTMsJm5ic3A7ICUwIiA6OiAibSIgKGNs b2JiZXJfZmxvYXRbMTFdKSA6ICJmYTMiKTsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJm bGQgZmE0LCZuYnNwOyAlMCIgOjogIm0iIChjbG9iYmVyX2Zsb2F0WzEyXSkgOiAiZmE0Iik7IFw8 YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxkIGZhNSwmbmJzcDsgJTAiIDo6ICJtIiAoY2xv YmJlcl9mbG9hdFsxM10pIDogImZhNSIpOyBcPGJyID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZs ZCBmYTYsJm5ic3A7ICUwIiA6OiAibSIgKGNsb2JiZXJfZmxvYXRbMTRdKSA6ICJmYTYiKTsgXDxi ciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZmE3LCZuYnNwOyAlMCIgOjogIm0iIChjbG9i YmVyX2Zsb2F0WzE1XSkgOiAiZmE3Iik7IFw8YnIgPismbmJzcDsgYXNtIHZvbGF0aWxlICgiZmxk IGZ0OCwmbmJzcDsgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsxNl0pIDogImZ0OCIpOyBcPGJy ID4rJm5ic3A7IGFzbSB2b2xhdGlsZSAoImZsZCBmdDksJm5ic3A7ICUwIiA6OiAibSIgKGNsb2Ji ZXJfZmxvYXRbMTddKSA6ICJmdDkiKTsgXDxiciA+KyZuYnNwOyBhc20gdm9sYXRpbGUgKCJmbGQg ZnQxMCwgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsxOF0pIDogImZ0MTAiKTsgXDxiciA+KyZu YnNwOyBhc20gdm9sYXRpbGUgKCJmbGQgZnQxMSwgJTAiIDo6ICJtIiAoY2xvYmJlcl9mbG9hdFsx OV0pIDogImZ0MTEiKTsgXDxiciA+K308YnIgPis8YnIgPisjIGRlZmluZSBCRUZPUkVfVExTREVT Q19DQUxMKCkmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IExPQURfUkVHSVNURVJf R1AgKCk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgTE9BRF9SRUdJU1RFUl9G TE9BVCAoKTxiciA+KzxiciA+KyMgZGVmaW5lIEFGVEVSX1RMU0RFU0NfQ0FMTCgpJm5ic3A7ICZu YnNwOyAmbmJzcDsgXDxiciA+KyZuYnNwOyBTQVZFX1JFR0lTVEVSX0dQICgpOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBcPGJyID4rJm5ic3A7IFNBVkVfUkVHSVNURVJfRkxPQVQgKCk8YnIgPis8YnIg PisjZWxzZSAvKiBfX3Jpc2N2X2Zsb2F0X2FiaV9zb2Z0ICovPGJyID4rPGJyID4rIyBkZWZpbmUg UFJFUEFSRV9NQUxMT0MoKSZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgQ0xPQkJF Ul9SRUdJU1RFUl9HUCAoKTxiciA+KzxiciA+KyMgZGVmaW5lIEJFRk9SRV9UTFNERVNDX0NBTEwo KSZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPismbmJzcDsgTE9BRF9SRUdJU1RFUl9HUCAoKTxi ciA+KzxiciA+KyMgZGVmaW5lIEFGVEVSX1RMU0RFU0NfQ0FMTCgpJm5ic3A7ICZuYnNwOyAmbmJz cDsgXDxiciA+KyZuYnNwOyBTQVZFX1JFR0lTVEVSX0dQICgpPGJyID4rPGJyID4rI2VuZGlmIC8q IF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQgKi88YnIgPis8YnIgPisjaW5jbHVkZV9uZXh0ICZsdDt0 c3QtZ251Mi10bHMyLmgmZ3Q7PGJyID4tLSA8YnIgPjIuNDcuMTwvZGl2PjwvYmxvY2txdW90ZT48 L2Rpdj48L2Rpdj4= ------=ALIBOUNDARY_2236_7f162cddc700_6a6ff6fb_44a23--