From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42896) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBE21-0005DY-IB for qemu-devel@nongnu.org; Thu, 18 May 2017 01:31:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dBE1x-00086g-EN for qemu-devel@nongnu.org; Thu, 18 May 2017 01:31:25 -0400 Resent-Message-Id: In-Reply-To: <536fb79a-5753-4143-a5a6-7a189ef5137e@ONE.local> Message-ID: <149508547028.609.9088696617244871022@c05f1edc8ed1> Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 From: no-reply@patchew.org Date: Wed, 17 May 2017 22:31:10 -0700 (PDT) Subject: Re: [Qemu-devel] (no subject) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: flytart@gmail.com Cc: famz@redhat.com, qemu-devel@nongnu.org, flypie@rocketmail.com, peter.maydell@linaro.org, qemu-arm@nongnu.org SGksCgpUaGlzIHNlcmllcyBzZWVtcyB0byBoYXZlIHNvbWUgY29kaW5nIHN0eWxlIHByb2JsZW1z LiBTZWUgb3V0cHV0IGJlbG93IGZvcgptb3JlIGluZm9ybWF0aW9uOgoKU3ViamVjdDogW1FlbXUt ZGV2ZWxdIChubyBzdWJqZWN0KQpUeXBlOiBzZXJpZXMKTWVzc2FnZS1pZDogNTM2ZmI3OWEtNTc1 My00MTQzLWE1YTYtN2ExODllZjUxMzdlQE9ORS5sb2NhbAoKPT09IFRFU1QgU0NSSVBUIEJFR0lO ID09PQojIS9iaW4vYmFzaAoKQkFTRT1iYXNlCm49MQp0b3RhbD0kKGdpdCBsb2cgLS1vbmVsaW5l ICRCQVNFLi4gfCB3YyAtbCkKZmFpbGVkPTAKCmdpdCBjb25maWcgLS1sb2NhbCBkaWZmLnJlbmFt ZWxpbWl0IDAKZ2l0IGNvbmZpZyAtLWxvY2FsIGRpZmYucmVuYW1lcyBUcnVlCgpjb21taXRzPSIk KGdpdCBsb2cgLS1mb3JtYXQ9JUggLS1yZXZlcnNlICRCQVNFLi4pIgpmb3IgYyBpbiAkY29tbWl0 czsgZG8KICAgIGVjaG8gIkNoZWNraW5nIFBBVENIICRuLyR0b3RhbDogJChnaXQgbG9nIC1uIDEg LS1mb3JtYXQ9JXMgJGMpLi4uIgogICAgaWYgISBnaXQgc2hvdyAkYyAtLWZvcm1hdD1lbWFpbCB8 IC4vc2NyaXB0cy9jaGVja3BhdGNoLnBsIC0tbWFpbGJhY2sgLTsgdGhlbgogICAgICAgIGZhaWxl ZD0xCiAgICAgICAgZWNobwogICAgZmkKICAgIG49JCgobisxKSkKZG9uZQoKZXhpdCAkZmFpbGVk Cj09PSBURVNUIFNDUklQVCBFTkQgPT09CgpVcGRhdGluZyAzYzhjZjVhOWMyMWZmODc4MjE2NGQx ZGVmN2Y0NGJkODg4NzEzMzg0ClN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAndGVzdCcKMzJkNWQ3 OCAobm8gc3ViamVjdCkKCj09PSBPVVRQVVQgQkVHSU4gPT09CkNoZWNraW5nIFBBVENIIDEvMTog KG5vIHN1YmplY3QpLi4uCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0ICcrKycg KGN0eDpXeEIpCiMzNDogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzo1ODoKKyAgICBmb3Ig KGkgPSAwOyBpIDwgMTA7IGkgKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJS T1I6IHNwYWNlIHByb2hpYml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVu dGhlc2lzICcoJwojMzc6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6NjA6CisgICAgICAg IGlmIChpbmRleCA8IHNpemVvZiAocy0+ZnNlbCkpIHsKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVk IGJlZm9yZSB0aGF0ICcrKycgKGN0eDpXeEIpCiM0NjogRklMRTogaHcvZ3Bpby9iY20yODM1X2dw aW8uYzo3MDoKKyAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkgKyspIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBu YW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojNDk6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9n cGlvLmM6NzI6CisgICAgICAgIGlmIChpbmRleCA8IHNpemVvZiAocy0+ZnNlbCkpIHsKCkVSUk9S OiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJ34nIChjdHg6V3hXKQojMTAwOiBGSUxFOiBo dy9ncGlvL2JjbTI4MzVfZ3Bpby5jOjExNToKKyAgICB1aW50MzJfdCBjaGFuZ2VzID0gdmFsICYg fiAqbGV2OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcHJv aGliaXRlZCBiZWZvcmUgdGhhdCAnKysnIChjdHg6V3hCKQojMTA1OiBGSUxFOiBody9ncGlvL2Jj bTI4MzVfZ3Bpby5jOjExOToKKyAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVm b3JlIHRoYXQgJysrJyAoY3R4Old4QikKIzEyMTogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8u YzoxMzY6CisgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpICsrKSB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJ34n IChjdHg6V3hXKQojMTI5OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjE0MzoKKyAgICAq bGV2ICY9IH4gdmFsOwogICAgICAgICAgICAgXgoKRVJST1I6IHN3aXRjaCBhbmQgY2FzZSBzaG91 bGQgYmUgYXQgdGhlIHNhbWUgaW5kZW50CiMxNDE6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlv LmM6MTUyOgogICAgIHN3aXRjaCAob2Zmc2V0KSB7CisgICAgICAgIGNhc2UgR1BGU0VMMDoKKyAg ICAgICAgY2FzZSBHUEZTRUwxOgorICAgICAgICBjYXNlIEdQRlNFTDI6CisgICAgICAgIGNhc2Ug R1BGU0VMMzoKKyAgICAgICAgY2FzZSBHUEZTRUw0OgorICAgICAgICBjYXNlIEdQRlNFTDU6Clsu Li5dCisgICAgICAgIGNhc2UgR1BTRVQwOgorICAgICAgICBjYXNlIEdQU0VUMToKWy4uLl0KKyAg ICAgICAgY2FzZSBHUENMUjA6CisgICAgICAgIGNhc2UgR1BDTFIxOgpbLi4uXQorICAgICAgICBj YXNlIEdQTEVWMDoKWy4uLl0KKyAgICAgICAgY2FzZSBHUExFVjE6ClsuLi5dCisgICAgICAgIGNh c2UgR1BFRFMwOgorICAgICAgICBjYXNlIEdQRURTMToKKyAgICAgICAgY2FzZSBHUFJFTjA6Cisg ICAgICAgIGNhc2UgR1BSRU4xOgorICAgICAgICBjYXNlIEdQRkVOMDoKKyAgICAgICAgY2FzZSBH UEZFTjE6CisgICAgICAgIGNhc2UgR1BIRU4wOgorICAgICAgICBjYXNlIEdQSEVOMToKKyAgICAg ICAgY2FzZSBHUExFTjA6CisgICAgICAgIGNhc2UgR1BMRU4xOgorICAgICAgICBjYXNlIEdQQVJF TjA6CisgICAgICAgIGNhc2UgR1BBUkVOMToKKyAgICAgICAgY2FzZSBHUEFGRU4wOgorICAgICAg ICBjYXNlIEdQQUZFTjE6CisgICAgICAgIGNhc2UgR1BQVUQ6CisgICAgICAgIGNhc2UgR1BQVURD TEswOgorICAgICAgICBjYXNlIEdQUFVEQ0xLMToKWy4uLl0KKyAgICAgICAgZGVmYXVsdDoKCkVS Uk9SOiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJy0nIChjdHg6V3hXKQojMjAwOiBGSUxF OiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjE2OToKKyAgICAgICAgICAgIGlmIChzLT5wYW5lbC5z b2NrZXQgIT0gLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVS Uk9SOiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJy0nIChjdHg6V3hXKQojMjA4OiBGSUxF OiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjE3NzoKKyAgICAgICAgICAgIGlmIChzLT5wYW5lbC5z b2NrZXQgIT0gLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVS Uk9SOiBzd2l0Y2ggYW5kIGNhc2Ugc2hvdWxkIGJlIGF0IHRoZSBzYW1lIGluZGVudAojMjUyOiBG SUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjIxOToKICAgICBzd2l0Y2ggKG9mZnNldCkgewor ICAgICAgICBjYXNlIEdQRlNFTDA6CisgICAgICAgIGNhc2UgR1BGU0VMMToKKyAgICAgICAgY2Fz ZSBHUEZTRUwyOgorICAgICAgICBjYXNlIEdQRlNFTDM6CisgICAgICAgIGNhc2UgR1BGU0VMNDoK KyAgICAgICAgY2FzZSBHUEZTRUw1OgpbLi4uXQorICAgICAgICBjYXNlIEdQU0VUMDoKWy4uLl0K KyAgICAgICAgY2FzZSBHUFNFVDE6ClsuLi5dCisgICAgICAgIGNhc2UgR1BDTFIwOgpbLi4uXQor ICAgICAgICBjYXNlIEdQQ0xSMToKWy4uLl0KKyAgICAgICAgY2FzZSBHUExFVjA6CisgICAgICAg IGNhc2UgR1BMRVYxOgpbLi4uXQorICAgICAgICBjYXNlIEdQRURTMDoKKyAgICAgICAgY2FzZSBH UEVEUzE6CisgICAgICAgIGNhc2UgR1BSRU4wOgorICAgICAgICBjYXNlIEdQUkVOMToKKyAgICAg ICAgY2FzZSBHUEZFTjA6CisgICAgICAgIGNhc2UgR1BGRU4xOgorICAgICAgICBjYXNlIEdQSEVO MDoKKyAgICAgICAgY2FzZSBHUEhFTjE6CisgICAgICAgIGNhc2UgR1BMRU4wOgorICAgICAgICBj YXNlIEdQTEVOMToKKyAgICAgICAgY2FzZSBHUEFSRU4wOgorICAgICAgICBjYXNlIEdQQVJFTjE6 CisgICAgICAgIGNhc2UgR1BBRkVOMDoKKyAgICAgICAgY2FzZSBHUEFGRU4xOgorICAgICAgICBj YXNlIEdQUFVEOgorICAgICAgICBjYXNlIEdQUFVEQ0xLMDoKKyAgICAgICAgY2FzZSBHUFBVRENM SzE6ClsuLi5dCisgICAgICAgIGRlZmF1bHQ6CgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRl ciB0aGF0ICctJyAoY3R4Old4VykKIzMwODogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzoy MzA6CisgICAgICAgICAgICBpZiAocy0+cGFuZWwuc29ja2V0ICE9IC0gMSkgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFj dGVycwojMzEwOiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjIzMjoKKyAgICAgICAgICAg ICAgICBzZW5kZGF0YXRvcGFuZWwoJnMtPnBhbmVsLCBEYXRhLCB0cnVlKTsgLy9Kb2huIEJyYWRs ZXkgZHVtbXkgR1BJTyBQYW5lbAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiMz MTA6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6MjMyOgorICAgICAgICAgICAgICAgIHNl bmRkYXRhdG9wYW5lbCgmcy0+cGFuZWwsIERhdGEsIHRydWUpOyAvL0pvaG4gQnJhZGxleSBkdW1t eSBHUElPIFBhbmVsCgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0ICctJyAoY3R4 Old4VykKIzMxNTogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzoyMzc6CisgICAgICAgICAg ICBpZiAocy0+cGFuZWwuc29ja2V0ICE9IC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzE4OiBGSUxF OiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjI0MDoKKyAgICAgICAgICAgICAgICBzZW5kZGF0YXRv cGFuZWwoJnMtPnBhbmVsLCBEYXRhLCB0cnVlKTsgLy9Kb2huIEJyYWRsZXkgZHVtbXkgR1BJTyBQ YW5lbAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiMzMTg6IEZJTEU6IGh3L2dw aW8vYmNtMjgzNV9ncGlvLmM6MjQwOgorICAgICAgICAgICAgICAgIHNlbmRkYXRhdG9wYW5lbCgm cy0+cGFuZWwsIERhdGEsIHRydWUpOyAvL0pvaG4gQnJhZGxleSBkdW1teSBHUElPIFBhbmVsCgpF UlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0ICctJyAoY3R4Old4VykKIzMyMzogRklM RTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzoyNDU6CisgICAgICAgICAgICBpZiAocy0+cGFuZWwu c29ja2V0ICE9IC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpX QVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzI1OiBGSUxFOiBody9ncGlvL2JjbTI4 MzVfZ3Bpby5jOjI0NzoKKyAgICAgICAgICAgICAgICBzZW5kZGF0YXRvcGFuZWwoJnMtPnBhbmVs LCBEYXRhLCBmYWxzZSk7IC8vSm9obiBCcmFkbGV5IGR1bW15IEdQSU8gUGFuZWwKCkVSUk9SOiBk byBub3QgdXNlIEM5OSAvLyBjb21tZW50cwojMzI1OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bp by5jOjI0NzoKKyAgICAgICAgICAgICAgICBzZW5kZGF0YXRvcGFuZWwoJnMtPnBhbmVsLCBEYXRh LCBmYWxzZSk7IC8vSm9obiBCcmFkbGV5IGR1bW15IEdQSU8gUGFuZWwKCkVSUk9SOiBzcGFjZSBw cm9oaWJpdGVkIGFmdGVyIHRoYXQgJy0nIChjdHg6V3hXKQojMzMwOiBGSUxFOiBody9ncGlvL2Jj bTI4MzVfZ3Bpby5jOjI1MjoKKyAgICAgICAgICAgIGlmIChzLT5wYW5lbC5zb2NrZXQgIT0gLSAx KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMzMzM6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6MjU1 OgorICAgICAgICAgICAgICAgIHNlbmRkYXRhdG9wYW5lbCgmcy0+cGFuZWwsIERhdGEsIGZhbHNl KTsgLy9Kb2huIEJyYWRsZXkgZHVtbXkgR1BJTyBQYW5lbAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5 IC8vIGNvbW1lbnRzCiMzMzM6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6MjU1OgorICAg ICAgICAgICAgICAgIHNlbmRkYXRhdG9wYW5lbCgmcy0+cGFuZWwsIERhdGEsIGZhbHNlKTsgLy9K b2huIEJyYWRsZXkgZHVtbXkgR1BJTyBQYW5lbAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVm b3JlIHRoYXQgJysrJyAoY3R4Old4QikKIzM3NjogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8u YzoyOTY6CisgICAgZm9yIChpID0gMDsgaSA8IDY7IGkgKyspIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICBeCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMzg5OiBGSUxFOiBo dy9ncGlvL2JjbTI4MzVfZ3Bpby5jOjMxMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuZW5kaWFubmVzcyA9IERFVklDRV9OQVRJVkVfRU5ESUFOLAoK V0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQwNTogRklMRTogaHcvZ3Bpby9iY20y ODM1X2dwaW8uYzozMTk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5maWVsZHMgPSAoVk1TdGF0ZUZpZWxkW10pCgpFUlJPUjogc3BhY2Ug cHJvaGliaXRlZCBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kIG9wZW4gcGFyZW50aGVzaXMgJygn CiM0MjA6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6MzM1OgorICAgIHFidXNfY3JlYXRl X2lucGxhY2UoJnMtPnNkYnVzLCBzaXplb2YgKHMtPnNkYnVzKSwKCkVSUk9SOiBkbyBub3QgdXNl IEM5OSAvLyBjb21tZW50cwojNDMxOiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjM0NToK KyAgICAgICAgc2VuZHBpbmNvdW50KCZzLT5wYW5lbCwgNTQpOyAvL1BJIEhhcyA1NCBQaW5zCgpX QVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDMyOiBGSUxFOiBody9ncGlvL2JjbTI4 MzVfZ3Bpby5jOjM0NjoKKyAgICAgICAgc2VuZGVuYWJsZWRtYXAoJnMtPnBhbmVsLCAweDAwM0ZG RkZGRkZGRkZGRkMpOyAvL1BpbnMgMCAmIDEgYXJlIEkyQyBzbyBkaXNhYmxlCgpFUlJPUjogZG8g bm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzQzMjogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8u YzozNDY6CisgICAgICAgIHNlbmRlbmFibGVkbWFwKCZzLT5wYW5lbCwgMHgwMDNGRkZGRkZGRkZG RkZDKTsgLy9QaW5zIDAgJiAxIGFyZSBJMkMgc28gZGlzYWJsZQoKRVJST1I6IGxpbmUgb3ZlciA5 MCBjaGFyYWN0ZXJzCiM0MzM6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6MzQ3OgorICAg ICAgICBzZW5kaW5wdXRtYXAoJnMtPnBhbmVsLCAweDAwMDAwMDAwMDAwMDAwMDApOyAvL1RoZXJl IGFyZSBubyBkZWRpY2F0ZWQgaW5wdXQgcGlucyBJIGtub3cgb2ZmCgpFUlJPUjogZG8gbm90IHVz ZSBDOTkgLy8gY29tbWVudHMKIzQzMzogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzozNDc6 CisgICAgICAgIHNlbmRpbnB1dG1hcCgmcy0+cGFuZWwsIDB4MDAwMDAwMDAwMDAwMDAwMCk7IC8v VGhlcmUgYXJlIG5vIGRlZGljYXRlZCBpbnB1dCBwaW5zIEkga25vdyBvZmYKCldBUk5JTkc6IGxp bmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0MzQ6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6 MzQ4OgorICAgICAgICBzZW5kb3V0cHV0bWFwKCZzLT5wYW5lbCwgMHgwMDAwODAwMDAwMDAwMDAw KTsgLy9QaW4gNTMgaXMgZGVkaWNhdGVkIG91dHB1dCBMRUQKCkVSUk9SOiBkbyBub3QgdXNlIEM5 OSAvLyBjb21tZW50cwojNDM0OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjM0ODoKKyAg ICAgICAgc2VuZG91dHB1dG1hcCgmcy0+cGFuZWwsIDB4MDAwMDgwMDAwMDAwMDAwMCk7IC8vUGlu IDUzIGlzIGRlZGljYXRlZCBvdXRwdXQgTEVECgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFj dGVycwojNDM2OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjM1MDoKKyAgICAgICAgcHJp bnRmKCJDb3VsZG4ndCBjb25uZWN0IHRvIGEgR1BJTyBwYW5lbFxuIik7IC8vSm9obiBCcmFkbGV5 IGR1bW15IEdQSU8gUGFuZWwKCkVSUk9SOiBkbyBub3QgdXNlIEM5OSAvLyBjb21tZW50cwojNDM2 OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjM1MDoKKyAgICAgICAgcHJpbnRmKCJDb3Vs ZG4ndCBjb25uZWN0IHRvIGEgR1BJTyBwYW5lbFxuIik7IC8vSm9obiBCcmFkbGV5IGR1bW15IEdQ SU8gUGFuZWwKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJyYnIChjdHg6V3hX KQojNDY2OiBGSUxFOiBody9ncGlvL2JjbTI4MzVfZ3Bpby5jOjM4MToKKyAgICBkYy0+dm1zZCA9 ICYgdm1zdGF0ZV9iY20yODM1X2dwaW87CiAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2Ug cHJvaGliaXRlZCBhZnRlciB0aGF0ICcmJyAoY3R4Old4VykKIzQ2NzogRklMRTogaHcvZ3Bpby9i Y20yODM1X2dwaW8uYzozODI6CisgICAgZGMtPnJlYWxpemUgPSAmIGJjbTI4MzVfZ3Bpb19yZWFs aXplOwogICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYWZ0ZXIg dGhhdCAnJicgKGN0eDpXeFcpCiM0Njg6IEZJTEU6IGh3L2dwaW8vYmNtMjgzNV9ncGlvLmM6Mzgz OgorICAgIGRjLT5yZXNldCA9ICYgYmNtMjgzNV9ncGlvX3Jlc2V0OwogICAgICAgICAgICAgICAg IF4KCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0Nzk6IEZJTEU6IGh3L2dwaW8v YmNtMjgzNV9ncGlvLmM6Mzg5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5pbnN0YW5jZV9zaXplID0gc2l6ZW9mIChCQ00yODM1R3Bpb1N0YXRlKSwKCkVSUk9S OiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJlbnRo ZXNpcyAnKCcKIzQ3OTogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzozODk6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluc3RhbmNlX3NpemUgPSBzaXpl b2YgKEJDTTI4MzVHcGlvU3RhdGUpLAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMK IzQ4MTogRklMRTogaHcvZ3Bpby9iY20yODM1X2dwaW8uYzozOTE6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsYXNzX2luaXQgPSBiY20yODM1X2dwaW9fY2xh c3NfaW5pdCwKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBi ZSBhdm9pZGVkCiM1MzA6IEZJTEU6IGluY2x1ZGUvcWVtdS9QYW5lbEVtdS5oOjE3OgorI2lmZGVm IF9fY3BsdXNwbHVzCgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzUzOTogRklM RTogaW5jbHVkZS9xZW11L1BhbmVsRW11Lmg6MjY6CisjZGVmaW5lIERFRkFVTFRfUE9SVCAweGIx ZmYgICAgICAgLy80NTU2NwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTQ3OiBGSUxFOiBpbmNsdWRlL3FlbXUvUGFuZWxFbXUuaDozNDoKK15JICAgICAgICAgICAg ICAgICAgICAgICB1bmxlc3Mgc29tZXRoaW5nIGNoYW5nZWQgKi8kCgpFUlJPUjogZG8gbm90IHVz ZSBDOTkgLy8gY29tbWVudHMKIzU0ODogRklMRTogaW5jbHVkZS9xZW11L1BhbmVsRW11Lmg6MzU6 CisgICAgICAgIGludCBQcm90b2NvbEluVXNlOyAgLy9XaGF0IHZlcnNpb24gb2YgdGhlIHByb3Rv Y29sIGFyZSB3ZSB1c2luZy4KCkVSUk9SOiAiZm9vKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIi CiM1NTE6IEZJTEU6IGluY2x1ZGUvcWVtdS9QYW5lbEVtdS5oOjM4OgorICAgIGJvb2wgcGFuZWxf b3BlbihwYW5lbF9jb25uZWN0aW9uX3QqIGgpOwoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJl ICJmb28gKmJhciIKIzU1MzogRklMRTogaW5jbHVkZS9xZW11L1BhbmVsRW11Lmg6NDA6CisgICAg Ym9vbCBwYW5lbF9yZWFkKHBhbmVsX2Nvbm5lY3Rpb25fdCogaCwgdWludDY0X3QgKnBpblMpOwoK RVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzU1NDogRklMRTogaW5jbHVk ZS9xZW11L1BhbmVsRW11Lmg6NDE6CisgICAgdm9pZCBzZW5kZGF0YXRvcGFuZWwocGFuZWxfY29u bmVjdGlvbl90KiBoLCB1aW50NjRfdCBwaW5TLCBib29sIFZhbHVlKTsKCkVSUk9SOiAiZm9vKiBi YXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM1NTU6IEZJTEU6IGluY2x1ZGUvcWVtdS9QYW5lbEVt dS5oOjQyOgorICAgIHZvaWQgcGFuZWxfc2VuZF9yZWFkX2NvbW1hbmQocGFuZWxfY29ubmVjdGlv bl90KiBoKTsKCkVSUk9SOiAiZm9vKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiM1NTY6IEZJ TEU6IGluY2x1ZGUvcWVtdS9QYW5lbEVtdS5oOjQzOgorICAgIHZvaWQgc2VuZHBpbmNvdW50KHBh bmVsX2Nvbm5lY3Rpb25fdCogaCwgaW50IE51bSk7CgpFUlJPUjogImZvbyogYmFyIiBzaG91bGQg YmUgImZvbyAqYmFyIgojNTU3OiBGSUxFOiBpbmNsdWRlL3FlbXUvUGFuZWxFbXUuaDo0NDoKKyAg ICB2b2lkIHNlbmRlbmFibGVkbWFwKHBhbmVsX2Nvbm5lY3Rpb25fdCogaCwgdWludDY0X3QgcGlu cyk7CgpFUlJPUjogImZvbyogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojNTU4OiBGSUxFOiBp bmNsdWRlL3FlbXUvUGFuZWxFbXUuaDo0NToKKyAgICB2b2lkIHNlbmRpbnB1dG1hcChwYW5lbF9j b25uZWN0aW9uX3QqIGgsIHVpbnQ2NF90IHBpbnMpOwoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxk IGJlICJmb28gKmJhciIKIzU1OTogRklMRTogaW5jbHVkZS9xZW11L1BhbmVsRW11Lmg6NDY6Cisg ICAgdm9pZCBzZW5kb3V0cHV0bWFwKHBhbmVsX2Nvbm5lY3Rpb25fdCogaCwgdWludDY0X3QgcGlu cyk7CgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZv aWRlZAojNTYyOiBGSUxFOiBpbmNsdWRlL3FlbXUvUGFuZWxFbXUuaDo0OToKKyNpZmRlZiBfX2Nw bHVzcGx1cwoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJl IGF2b2lkZWQKIzU5NjogRklMRTogdXRpbC9QYW5lbEVtdS5jOjEzOgorI2lmZGVmIF9fTUlOR1cz Ml9fCgpFUlJPUjogb3BlbiBicmFjZSAneycgZm9sbG93aW5nIGVudW0gZ28gb24gdGhlIHNhbWUg bGluZQojNjA4OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MjU6Cit0eXBlZGVmIGVudW0KK3sKCkVS Uk9SOiBkbyBub3QgdXNlIEM5OSAvLyBjb21tZW50cwojNjI1OiBGSUxFOiB1dGlsL1BhbmVsRW11 LmM6NDI6CisjZGVmaW5lIFBBQ0tFVExFTiAgIDAgIC8vSW5jbHVkZXMgUGFja2V0IExlbmd0aAoK RVJST1I6IG9wZW4gYnJhY2UgJ3snIGZvbGxvd2luZyBzdHJ1Y3QgZ28gb24gdGhlIHNhbWUgbGlu ZQojNjI5OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6NDY6Cit0eXBlZGVmIHN0cnVjdAorewoKRVJS T1I6ICJmb28qIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzYzNTogRklMRTogdXRpbC9QYW5l bEVtdS5jOjUyOgorc3RhdGljIHZvaWQgcGFuZWxfc2VuZF9wcm90b2NvbF9jb21tYW5kKHBhbmVs X2Nvbm5lY3Rpb25fdCogaCkKCkVSUk9SOiAiZm9vKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIi CiM2NDc6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzo2NDoKK3ZvaWQgcGFuZWxfc2VuZF9yZWFkX2Nv bW1hbmQocGFuZWxfY29ubmVjdGlvbl90KiBoKQoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJl ICJmb28gKmJhciIKIzY1ODogRklMRTogdXRpbC9QYW5lbEVtdS5jOjc1Ogordm9pZCBzZW5kZGF0 YXRvcGFuZWwocGFuZWxfY29ubmVjdGlvbl90KiBoLCB1aW50NjRfdCBwaW4sIGJvb2wgdmFsKQoK RVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnLScgKGN0eDpWeFYpCiM2NjI6IEZJ TEU6IHV0aWwvUGFuZWxFbXUuYzo3OToKKyAgICBQa3QuRGF0YVtQQUNLRVRMRU5dID0gKGNoYXIg KikgJlBrdC5EYXRhWzYgKyAxXS0oY2hhciAqKSAmUGt0LkRhdGFbMF07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJl cXVpcmVkIGFyb3VuZCB0aGF0ICcmJyAoY3R4OlZ4VikKIzY2NTogRklMRTogdXRpbC9QYW5lbEVt dS5jOjgyOgorICAgIFBrdC5EYXRhWzNdID0gKHVuc2lnbmVkIHNob3J0IGludCkgKChwaW4gPj4g MTYpJjB4RkZGRik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcmJyAoY3R4OlZ4 VikKIzY2NzogRklMRTogdXRpbC9QYW5lbEVtdS5jOjg0OgorICAgIFBrdC5EYXRhWzVdID0gKHVu c2lnbmVkIHNob3J0IGludCkgKChwaW4gPj4gNDgpJjB4RkZGRik7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogImZvbyogYmFyIiBz aG91bGQgYmUgImZvbyAqYmFyIgojNjczOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6OTA6Cit2b2lk IHNlbmRwaW5jb3VudChwYW5lbF9jb25uZWN0aW9uX3QqIGgsIGludCB2YWwpCgpFUlJPUjogc3Bh Y2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICctJyAoY3R4OlZ4VikKIzY3NzogRklMRTogdXRpbC9Q YW5lbEVtdS5jOjk0OgorICAgIFBrdC5EYXRhW1BBQ0tFVExFTl0gPSAoY2hhciAqKSAmUGt0LkRh dGFbMiArIDFdLShjaGFyICopICZQa3QuRGF0YVswXTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiAiZm9vKiBiYXIiIHNob3VsZCBi ZSAiZm9vICpiYXIiCiM2ODQ6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxMDE6Cit2b2lkIHNlbmRl bmFibGVkbWFwKHBhbmVsX2Nvbm5lY3Rpb25fdCogaCwgdWludDY0X3QgcGluKQoKRVJST1I6IHNw YWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnLScgKGN0eDpWeFYpCiM2ODg6IEZJTEU6IHV0aWwv UGFuZWxFbXUuYzoxMDU6CisgICAgUGt0LkRhdGFbUEFDS0VUTEVOXSA9IChjaGFyICopICZQa3Qu RGF0YVs1ICsgMV0tKGNoYXIgKikgJlBrdC5EYXRhWzBdOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBh cm91bmQgdGhhdCAnJicgKGN0eDpWeFYpCiM2OTE6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxMDg6 CisgICAgUGt0LkRhdGFbM10gPSAodW5zaWduZWQgc2hvcnQgaW50KSAoKHBpbiA+PiAxNikmMHhG RkZGKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJyYnIChjdHg6VnhWKQojNjkz OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTEwOgorICAgIFBrdC5EYXRhWzVdID0gKHVuc2lnbmVk IHNob3J0IGludCkgKChwaW4gPj4gNDgpJjB4RkZGRik7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogImZvbyogYmFyIiBzaG91bGQg YmUgImZvbyAqYmFyIgojNjk4OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTE1Ogordm9pZCBzZW5k aW5wdXRtYXAocGFuZWxfY29ubmVjdGlvbl90KiBoLCB1aW50NjRfdCBwaW4pCgpFUlJPUjogc3Bh Y2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICctJyAoY3R4OlZ4VikKIzcwMjogRklMRTogdXRpbC9Q YW5lbEVtdS5jOjExOToKKyAgICBQa3QuRGF0YVtQQUNLRVRMRU5dID0gKGNoYXIgKikgJlBrdC5E YXRhWzUgKyAxXS0oY2hhciAqKSAmUGt0LkRhdGFbMF07CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFy b3VuZCB0aGF0ICcmJyAoY3R4OlZ4VikKIzcwNTogRklMRTogdXRpbC9QYW5lbEVtdS5jOjEyMjoK KyAgICBQa3QuRGF0YVszXSA9ICh1bnNpZ25lZCBzaG9ydCBpbnQpICgocGluID4+IDE2KSYweEZG RkYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnJicgKGN0eDpWeFYpCiM3MDc6 IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxMjQ6CisgICAgUGt0LkRhdGFbNV0gPSAodW5zaWduZWQg c2hvcnQgaW50KSAoKHBpbiA+PiA0OCkmMHhGRkZGKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiAiZm9vKiBiYXIiIHNob3VsZCBi ZSAiZm9vICpiYXIiCiM3MTI6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxMjk6Cit2b2lkIHNlbmRv dXRwdXRtYXAocGFuZWxfY29ubmVjdGlvbl90KiBoLCB1aW50NjRfdCBwaW4pCgpFUlJPUjogc3Bh Y2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICctJyAoY3R4OlZ4VikKIzcxNjogRklMRTogdXRpbC9Q YW5lbEVtdS5jOjEzMzoKKyAgICBQa3QuRGF0YVtQQUNLRVRMRU5dID0gKGNoYXIgKikgJlBrdC5E YXRhWzUgKyAxXS0oY2hhciAqKSAmUGt0LkRhdGFbMF07CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFy b3VuZCB0aGF0ICcmJyAoY3R4OlZ4VikKIzcxOTogRklMRTogdXRpbC9QYW5lbEVtdS5jOjEzNjoK KyAgICBQa3QuRGF0YVszXSA9ICh1bnNpZ25lZCBzaG9ydCBpbnQpICgocGluID4+IDE2KSYweEZG RkYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnJicgKGN0eDpWeFYpCiM3MjE6 IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxMzg6CisgICAgUGt0LkRhdGFbNV0gPSAodW5zaWduZWQg c2hvcnQgaW50KSAoKHBpbiA+PiA0OCkmMHhGRkZGKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGFm dGVyIHRoYXQgJy0nIChjdHg6V3hXKQojNzI4OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTQ1Ogor ICAgIGlmIChzZW5kKGgtPnNvY2tldCwgKGNoYXIgKikgUGt0LCBQa3QtPkRhdGFbUEFDS0VUTEVO XSwgMCkgPT0gLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lm aWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojNzMwOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6 MTQ3OgorI2lmZGVmIF9fTUlOR1czMl9fCgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0 aGF0ICctJyAoY3R4Old4VykKIzczNTogRklMRTogdXRpbC9QYW5lbEVtdS5jOjE1MjoKKyAgICAg ICAgaC0+c29ja2V0ID0gLSAxOyAvKiBhY3QgbGlrZSB3ZSBuZXZlciBjb25uZWN0ZWQgKi8KICAg ICAgICAgICAgICAgICAgICAgXgoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJlICJmb28gKmJh ciIKIzc0MDogRklMRTogdXRpbC9QYW5lbEVtdS5jOjE1NzoKK2Jvb2wgcGFuZWxfcmVhZChwYW5l bF9jb25uZWN0aW9uX3QqIGgsIHVpbnQ2NF90KiBEYXRhKQoKRVJST1I6IHNwYWNlIHByb2hpYml0 ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojNzQ2OiBG SUxFOiB1dGlsL1BhbmVsRW11LmM6MTYzOgorICAgIENvbW1hbmRQYWNrZXQgKlBrdFB0ciA9IChD b21tYW5kUGFja2V0ICopIG1hbGxvYyhzaXplb2YgKENvbW1hbmRQYWNrZXQpKTsKCkVSUk9SOiBz cGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJy0nIChjdHg6V3hXKQojNzU4OiBGSUxFOiB1dGls L1BhbmVsRW11LmM6MTc1OgorICAgIGlmIChoLT5zb2NrZXQgIT0gLSAxKSB7CiAgICAgICAgICAg ICAgICAgICAgICBeCgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzc2MjogRklM RTogdXRpbC9QYW5lbEVtdS5jOjE3OToKKy8vICAgICAgcHJpbnRmKFBBTkVMX05BTUUgInBhbmVs X3JlYWRcbiIpOwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnJiYnIChjdHg6 VnhPKQojNzY1OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTgyOgorICAgICAgICB3aGlsZSAoTm9F cnJvciYmISBOb0RhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2Ug cHJvaGliaXRlZCBhZnRlciB0aGF0ICchJyAoY3R4Ok94VykKIzc2NTogRklMRTogdXRpbC9QYW5l bEVtdS5jOjE4MjoKKyAgICAgICAgd2hpbGUgKE5vRXJyb3ImJiEgTm9EYXRhKSB7CiAgICAgICAg ICAgICAgICAgICAgICAgICBeCgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzc3MDog RklMRTogdXRpbC9QYW5lbEVtdS5jOjE4NzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKChMZW5n dGhJbkJ1ZmZlciA9IHJlY3YoaC0+c29ja2V0LCAoY2hhciAqKSAmUGt0W1JlYWRTdGFydF0sIHNp emVvZiAoKlBrdCkgLSBSZWFkU3RhcnQsIDApKSA+IDApIHsKCkVSUk9SOiBzcGFjZSBwcm9oaWJp dGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzc3MDog RklMRTogdXRpbC9QYW5lbEVtdS5jOjE4NzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKChMZW5n dGhJbkJ1ZmZlciA9IHJlY3YoaC0+c29ja2V0LCAoY2hhciAqKSAmUGt0W1JlYWRTdGFydF0sIHNp emVvZiAoKlBrdCkgLSBSZWFkU3RhcnQsIDApKSA+IDApIHsKCkVSUk9SOiBkbyBub3QgdXNlIGFz c2lnbm1lbnQgaW4gaWYgY29uZGl0aW9uCiM3NzA6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxODc6 CisgICAgICAgICAgICAgICAgICAgIGlmICgoTGVuZ3RoSW5CdWZmZXIgPSByZWN2KGgtPnNvY2tl dCwgKGNoYXIgKikgJlBrdFtSZWFkU3RhcnRdLCBzaXplb2YgKCpQa3QpIC0gUmVhZFN0YXJ0LCAw KSkgPiAwKSB7CgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBiZWZvcmUgdGhhdCAnKysnIChjdHg6 V3hCKQojNzcyOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTg5OgorICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IExlbmd0aEluQnVmZmVyID4gMDsgaSArKykgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CgpFUlJPUjogdGhhdCBvcGVuIGJyYWNlIHsgc2hvdWxkIGJlIG9uIHRoZSBwcmV2aW91cyBsaW5l CiM3NzQ6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoxOTE6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN3aXRjaCAoUGt0LT5EYXRhW2kgKyBQQUNLRVRUWVBFXSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMK Izc3ODogRklMRTogdXRpbC9QYW5lbEVtdS5jOjE5NToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqRGF0YSB8PSAoKHVpbnQ2NF90KSBQa3QtPkRhdGFbaSArIDNdKSA8 PCAxNjsKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM3Nzk6IEZJTEU6IHV0aWwv UGFuZWxFbXUuYzoxOTY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KkRhdGEgfD0gKCh1aW50NjRfdCkgUGt0LT5EYXRhW2kgKyA0XSkgPDwgMzI7CgpXQVJOSU5HOiBs aW5lIG92ZXIgODAgY2hhcmFjdGVycwojNzgwOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MTk3Ogor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpEYXRhIHw9ICgodWludDY0 X3QpIFBrdC0+RGF0YVtpICsgNV0pIDw8IDQ4OwoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJh Y3RlcnMKIzc4NjogRklMRTogdXRpbC9QYW5lbEVtdS5jOjIwMzoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoLT5Qcm90b2NvbEluVXNlID0gKGludCkgUGt0LT5EYXRh W2kgKyAyXTsKCkVSUk9SOiB0aGF0IG9wZW4gYnJhY2UgeyBzaG91bGQgYmUgb24gdGhlIHByZXZp b3VzIGxpbmUKIzc4NzogRklMRTogdXRpbC9QYW5lbEVtdS5jOjIwNDoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZihoLT5Qcm90b2NvbEluVXNlIT0tMSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CgpFUlJPUjogc3BhY2VzIHJlcXVp cmVkIGFyb3VuZCB0aGF0ICchPScgKGN0eDpWeE8pCiM3ODc6IEZJTEU6IHV0aWwvUGFuZWxFbXUu YzoyMDQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaC0+UHJv dG9jb2xJblVzZSE9LTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhhdCAn LScgKGN0eDpPeFYpCiM3ODc6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyMDQ6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaC0+UHJvdG9jb2xJblVzZSE9LTEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAn KCcKIzc4NzogRklMRTogdXRpbC9QYW5lbEVtdS5jOjIwNDoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZihoLT5Qcm90b2NvbEluVXNlIT0tMSkKCkVSUk9SOiBsaW5l IG92ZXIgOTAgY2hhcmFjdGVycwojNzg5OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MjA2OgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoUEFORUxfTkFN RSAiUHJvdG9jb2wgJWQgaW4gdXNlZFxuIixoLT5Qcm90b2NvbEluVXNlKTsKCkVSUk9SOiBzcGFj ZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzc4OTogRklMRTogdXRpbC9QYW5l bEVtdS5jOjIwNjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJpbnRmKFBBTkVMX05BTUUgIlByb3RvY29sICVkIGluIHVzZWRcbiIsaC0+UHJvdG9jb2xJblVz ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHRoYXQgb3BlbiBicmFj ZSB7IHNob3VsZCBiZSBvbiB0aGUgcHJldmlvdXMgbGluZQojNzkxOiBGSUxFOiB1dGlsL1BhbmVs RW11LmM6MjA4OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CgpFUlJPUjogZWxzZSBz aG91bGQgZm9sbG93IGNsb3NlIGJyYWNlICd9JwojNzkxOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6 MjA4OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCgpFUlJPUjogdHJhaWxpbmcgd2hp dGVzcGFjZQojNzkzOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MjEwOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoUEFORUxfTkFNRSAiTm8gQ29tbW9u IFByb3RvY29sXG4iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICQKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojNzkzOiBGSUxFOiB1dGlsL1BhbmVs RW11LmM6MjEwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoUEFORUxfTkFNRSAiTm8gQ29tbW9uIFByb3RvY29sXG4iKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJh Y3RlcnMKIzc5ODogRklMRTogdXRpbC9QYW5lbEVtdS5jOjIxNToKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoUEFORUxfTkFNRSAiSW52YWxpZCBkYXRhIHJl Y2VpdmVkXG4iKTsKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojODAyOiBGSUxFOiB1 dGlsL1BhbmVsRW11LmM6MjE5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICs9 IFBrdC0+RGF0YVtQQUNLRVRMRU5dOyAvLwkJCQkJCQkJUGt0PShDb21tYW5kUGFja2V0ICopJihQ a3QtPkRhdGFbUGt0LT5EYXRhW1BBQ0tFVExFTl1dKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMjogRklMRTogdXRpbC9QYW5lbEVtdS5jOjIxOToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArPSBQa3QtPkRhdGFbUEFDS0VUTEVOXTsgLy9e SV5JXkleSV5JXkleSV5JUGt0PShDb21tYW5kUGFja2V0ICopJihQa3QtPkRhdGFbUGt0LT5EYXRh W1BBQ0tFVExFTl1dKTskCgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzgwMjog RklMRTogdXRpbC9QYW5lbEVtdS5jOjIxOToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaSArPSBQa3QtPkRhdGFbUEFDS0VUTEVOXTsgLy8JCQkJCQkJCVBrdD0oQ29tbWFuZFBhY2tl dCAqKSYoUGt0LT5EYXRhW1BrdC0+RGF0YVtQQUNLRVRMRU5dXSk7CgpFUlJPUjogc3BhY2UgcHJv aGliaXRlZCBiZWZvcmUgdGhhdCAnKysnIChjdHg6V3hCKQojODA1OiBGSUxFOiB1dGlsL1BhbmVs RW11LmM6MjIyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IExlbmd0aEluQnVmZmVyOyBqICsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKV0FSTklORzog YXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzgyNjogRklM RTogdXRpbC9QYW5lbEVtdS5jOjI0MzoKKyNpZmRlZiBfX01JTkdXMzJfXwoKRVJST1I6IHNwYWNl IHByb2hpYml0ZWQgYWZ0ZXIgdGhhdCAnLScgKGN0eDpXeFcpCiM4MzE6IEZJTEU6IHV0aWwvUGFu ZWxFbXUuYzoyNDg6CisgICAgICAgICAgICAgICAgaC0+c29ja2V0ID0gLSAxOyAvKiBhY3QgbGlr ZSB3ZSBuZXZlciBjb25uZWN0ZWQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpF UlJPUjogImZvbyogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojODQzOiBGSUxFOiB1dGlsL1Bh bmVsRW11LmM6MjYwOgorYm9vbCBwYW5lbF9vcGVuKHBhbmVsX2Nvbm5lY3Rpb25fdCogaCkKCkVS Uk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM4NDY6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNjM6 CisjaWZkZWYgX19NSU5HVzMyX18gICAgJAoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmlj IGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzg0NjogRklMRTogdXRpbC9QYW5lbEVtdS5jOjI2 MzoKKyNpZmRlZiBfX01JTkdXMzJfXyAgICAKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM4 NDk6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNjY6CisgICAgc3RydWN0IHNvY2thZGRyX2luIHJl bW90ZTsgICAgJAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzg1MTogRklMRTogdXRpbC9Q YW5lbEVtdS5jOjI2ODoKKyAgICAkCgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojODU0OiBG SUxFOiB1dGlsL1BhbmVsRW11LmM6MjcxOgorI2lmZGVmIF9fTUlOR1czMl9fICAgICQKCldBUk5J Tkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM4NTQ6 IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNzE6CisjaWZkZWYgX19NSU5HVzMyX18gICAgCgpFUlJP UjogdHJhaWxpbmcgd2hpdGVzcGFjZQojODU3OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6Mjc0Ogor ICAgIHByaW50ZigiTk9UIF9fTUlOR1czMl9fXG4iKTsgICAkCgpFUlJPUjogdHJhaWxpbmcgd2hp dGVzcGFjZQojODU4OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6Mjc1OgorI2VuZGlmICAgICQKCkVS Uk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM4NTk6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNzY6 CisgICAgJAoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnPScgKGN0eDpWeE8p CiM4NjA6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNzc6CisgICAgaC0+c29ja2V0PS0xOwogICAg ICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhhdCAnLScgKGN0eDpP eFYpCiM4NjA6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyNzc6CisgICAgaC0+c29ja2V0PS0xOwog ICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICc9JyAo Y3R4OlZ4TykKIzg2MTogRklMRTogdXRpbC9QYW5lbEVtdS5jOjI3ODoKKyAgICBoLT5Qcm90b2Nv bEluVXNlPS0xOwogICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQg YmVmb3JlIHRoYXQgJy0nIChjdHg6T3hWKQojODYxOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6Mjc4 OgorICAgIGgtPlByb3RvY29sSW5Vc2U9LTE7CiAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP UjogdHJhaWxpbmcgd2hpdGVzcGFjZQojODYyOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6Mjc5Ogor ICAgICQKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBh dm9pZGVkCiM4NjM6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyODA6CisjaWZkZWYgX19NSU5HVzMy X18KCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzg2NTogRklMRTogdXRpbC9QYW5lbEVtdS5jOjI4MjoKKyAgICBpZiAoV1NBU3Rh cnR1cChNQUtFV09SRCgxLCAxKSwgJndzYWRhdGEpID09IFNPQ0tFVF9FUlJPUikgewpbLi4uXQor ICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBlbHNlIHNob3VsZCBmb2xsb3cgY2xvc2UgYnJhY2UgJ30n CiM4Njg6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoyODU6CisgICAgfQorICAgIGVsc2UKCkVSUk9S OiBzcGFjZSBwcm9oaWJpdGVkIGFmdGVyIHRoYXQgJy0nIChjdHg6V3hXKQojODcxOiBGSUxFOiB1 dGlsL1BhbmVsRW11LmM6Mjg4OgorICAgICAgICBpZiAoKGgtPnNvY2tldCA9IHNvY2tldChBRl9J TkVULCBTT0NLX1NUUkVBTSwgMCkpICE9IC0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBkbyBub3QgdXNl IGFzc2lnbm1lbnQgaW4gaWYgY29uZGl0aW9uCiM4NzE6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzoy ODg6CisgICAgICAgIGlmICgoaC0+c29ja2V0ID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFN LCAwKSkgIT0gLSAxKSB7CgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBz aG91bGQgYmUgYXZvaWRlZAojODcyOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6Mjg5OgorI2lmZGVm IF9fTUlOR1czMl9fCgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojODc2OiBGSUxFOiB1dGls L1BhbmVsRW11LmM6MjkzOgorICAgICAgICAgICAgcmVtb3RlLnNpbl9hZGRyLnNfYWRkciA9IGlu ZXRfYWRkcigiMTI3LjAuMC4xIik7ICAgICAgICAgICAgJAoKRVJST1I6IHVzZSBtZW1zZXQoKSBp bnN0ZWFkIG9mIGJ6ZXJvKCkKIzg3ODogRklMRTogdXRpbC9QYW5lbEVtdS5jOjI5NToKKyAgICAg ICAgICAgIGJ6ZXJvKChjaGFyICopJnJlbW90ZSwgc2l6ZW9mKHJlbW90ZSkpOwoKRVJST1I6IGxp bmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiM4ODM6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzozMDA6Cisg ICAgICAgICAgICBpZiAoKHJ2PWNvbm5lY3QoaC0+c29ja2V0LCAoc3RydWN0IHNvY2thZGRyICop ICZyZW1vdGUsIHNpemVvZiAocmVtb3RlKSkpICE9IC0gMSkgewoKRVJST1I6IHNwYWNlIHByb2hp Yml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojODgz OiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MzAwOgorICAgICAgICAgICAgaWYgKChydj1jb25uZWN0 KGgtPnNvY2tldCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmcmVtb3RlLCBzaXplb2YgKHJlbW90ZSkp KSAhPSAtIDEpIHsKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJz0nIChjdHg6 VnhWKQojODgzOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MzAwOgorICAgICAgICAgICAgaWYgKChy dj1jb25uZWN0KGgtPnNvY2tldCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmcmVtb3RlLCBzaXplb2Yg KHJlbW90ZSkpKSAhPSAtIDEpIHsKICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2Ug cHJvaGliaXRlZCBhZnRlciB0aGF0ICctJyAoY3R4Old4VykKIzg4MzogRklMRTogdXRpbC9QYW5l bEVtdS5jOjMwMDoKKyAgICAgICAgICAgIGlmICgocnY9Y29ubmVjdChoLT5zb2NrZXQsIChzdHJ1 Y3Qgc29ja2FkZHIgKikgJnJlbW90ZSwgc2l6ZW9mIChyZW1vdGUpKSkgIT0gLSAxKSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBkbyBub3QgdXNlIGFzc2lnbm1l bnQgaW4gaWYgY29uZGl0aW9uCiM4ODM6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzozMDA6CisgICAg ICAgICAgICBpZiAoKHJ2PWNvbm5lY3QoaC0+c29ja2V0LCAoc3RydWN0IHNvY2thZGRyICopICZy ZW1vdGUsIHNpemVvZiAocmVtb3RlKSkpICE9IC0gMSkgewoKV0FSTklORzogYXJjaGl0ZWN0dXJl IHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzg4NDogRklMRTogdXRpbC9QYW5l bEVtdS5jOjMwMToKKyNpZmRlZiBfX01JTkdXMzJfXwoKV0FSTklORzogbGluZSBvdmVyIDgwIGNo YXJhY3RlcnMKIzg4NjogRklMRTogdXRpbC9QYW5lbEVtdS5jOjMwMzoKKyAgICAgICAgICAgICAg ICBzZXRzb2Nrb3B0KGgtPnNvY2tldCwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLCAmdmFsdWUs IHNpemVvZiAoIHZhbHVlKSk7CgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBiZXR3ZWVuIGZ1bmN0 aW9uIG5hbWUgYW5kIG9wZW4gcGFyZW50aGVzaXMgJygnCiM4ODY6IEZJTEU6IHV0aWwvUGFuZWxF bXUuYzozMDM6CisgICAgICAgICAgICAgICAgc2V0c29ja29wdChoLT5zb2NrZXQsIElQUFJPVE9f VENQLCBUQ1BfTk9ERUxBWSwgJnZhbHVlLCBzaXplb2YgKCB2YWx1ZSkpOwoKRVJST1I6IHNwYWNl IHByb2hpYml0ZWQgYWZ0ZXIgdGhhdCBvcGVuIHBhcmVudGhlc2lzICcoJwojODg2OiBGSUxFOiB1 dGlsL1BhbmVsRW11LmM6MzAzOgorICAgICAgICAgICAgICAgIHNldHNvY2tvcHQoaC0+c29ja2V0 LCBJUFBST1RPX1RDUCwgVENQX05PREVMQVksICZ2YWx1ZSwgc2l6ZW9mICggdmFsdWUpKTsKCkVS Uk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzg5NDogRklMRTog dXRpbC9QYW5lbEVtdS5jOjMxMToKKyAgICAgICAgICAgICAgICBwcmludGYoUEFORUxfTkFNRSAi Q29ubmVjdGVkIE9LICVkXG4iLHJ2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzg5Nzog RklMRTogdXRpbC9QYW5lbEVtdS5jOjMxNDoKKyAgICAgICAgICAgICAgICAkCgpFUlJPUjogc3Bh Y2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICc9JyAoY3R4OlZ4VikKIzg5ODogRklMRTogdXRpbC9Q YW5lbEVtdS5jOjMxNToKKyAgICAgICAgICAgICAgICByZXR1cm52YWw9dHJ1ZTsKICAgICAgICAg ICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcg KGN0eDpWeFYpCiM5MDA6IEZJTEU6IHV0aWwvUGFuZWxFbXUuYzozMTc6CisgICAgICAgICAgICAg ICAgcHJpbnRmKFBBTkVMX05BTUUgImNvbm5lY3Rpb24gRmFpbGVzICVkXG4iLHJ2KTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpX QVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAoj OTAxOiBGSUxFOiB1dGlsL1BhbmVsRW11LmM6MzE4OgorI2lmZGVmIF9fTUlOR1czMl9fCgpFUlJP Ujogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0ICctJyAoY3R4Old4VykKIzkwNjogRklMRTog dXRpbC9QYW5lbEVtdS5jOjMyMzoKKyAgICAgICAgICAgICAgICBoLT5zb2NrZXQgPSAtIDE7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKdG90YWw6IDEyNSBlcnJvcnMsIDI4IHdhcm5p bmdzLCA4NTcgbGluZXMgY2hlY2tlZAoKWW91ciBwYXRjaCBoYXMgc3R5bGUgcHJvYmxlbXMsIHBs ZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMg cmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlO RVJTLgoKPT09IE9VVFBVVCBFTkQgPT09CgpUZXN0IGNvbW1hbmQgZXhpdGVkIHdpdGggY29kZTog MQoKCi0tLQpFbWFpbCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBQYXRjaGV3IFtodHRwOi8v cGF0Y2hldy5vcmcvXS4KUGxlYXNlIHNlbmQgeW91ciBmZWVkYmFjayB0byBwYXRjaGV3LWRldmVs QGZyZWVsaXN0cy5vcmc=