From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from <gentoo-hardened+bounces-3407-garchives=archives.gentoo.org@lists.gentoo.org>) id 1QbYxn-00062j-47 for garchives@archives.gentoo.org; Tue, 28 Jun 2011 14:08:38 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B2D1D1C059 for <garchives@archives.gentoo.org>; Tue, 28 Jun 2011 14:08:21 +0000 (UTC) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by pigeon.gentoo.org (Postfix) with ESMTP id BE9651C042 for <gentoo-hardened@lists.gentoo.org>; Tue, 28 Jun 2011 13:47:57 +0000 (UTC) Received: by iyf40 with SMTP id 40so199702iyf.40 for <gentoo-hardened@lists.gentoo.org>; Tue, 28 Jun 2011 06:47:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=nFyYaeofN8hJimvxPhC7b4vNf3QhlKOdxjv5sm5+mP0=; b=A7L5sHtHYYvMV16DYlEi1nHI2Wl9/kUwulEceTq3SjsPoWMBwlFW5koQ/lzPSE3wMd HLqGVsUkls6iF6mKsJOXYTULI3AB1oxc8qKFjh6nGZIDUHHDS+xnhlLTLQ9oEphL7c7B Zk98rHqMJbQrGCHyUBqxQsFNkQNWb/B1bFviw= Precedence: bulk List-Post: <mailto:gentoo-hardened@lists.gentoo.org> List-Help: <mailto:gentoo-hardened+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-hardened+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-hardened+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-hardened.gentoo.org> X-BeenThere: gentoo-hardened@lists.gentoo.org Reply-to: gentoo-hardened@lists.gentoo.org MIME-Version: 1.0 Received: by 10.231.83.67 with SMTP id e3mr6977531ibl.78.1309268876430; Tue, 28 Jun 2011 06:47:56 -0700 (PDT) Received: by 10.231.32.138 with HTTP; Tue, 28 Jun 2011 06:47:55 -0700 (PDT) Date: Tue, 28 Jun 2011 15:47:55 +0200 Message-ID: <BANLkTiktN3deVD80bFLkSSzG5fh6zF71Ww@mail.gmail.com> Subject: [gentoo-hardened] Problems with re-emerging openssh From: nert <nert.pinx@gmail.com> To: gentoo-hardened@lists.gentoo.org Content-Type: multipart/mixed; boundary=000e0cd4b3744b8f7a04a6c5ea41 X-Archives-Salt: X-Archives-Hash: 00a78f0b5ba88554c7bf70493c0b1ddd --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: multipart/alternative; boundary=000e0cd4b3744b8f7404a6c5ea3f --000e0cd4b3744b8f7404a6c5ea3f Content-Type: text/plain; charset=UTF-8 Hello everybody, I use hardened gentoo, now with disabled grsecurity, and I can't emerge openssh because it is unable to find libpam even though it really is there (if you ask why to reemerge, well I just want to do emerge -e @world with new versions of everything). I would file a bugreport but I haven't done that before and I would like to be sure it's not my machine that causes the problem. In attachments, there are all the things you should need, but if something is missing, I'll send whatever you say (I hope I'll erase all passwords there :) ). This is just the simplest part from what happened, for full story you can skip to the last paragraph. This is the actual error: checking for pam_set_item in -lpam... no configure: error: *** libpam missing The full story: I am using Gentoo for a few years now and I was able to help myself out with all the passive support available (google, man/info pages etc.) but recently I've stumbled upon a weird problem that seem unsolvable for me, so I'm trying to write to you guys as my first try of getting any active help. Everything worked well until I tried to install qemu on one machine. The installation failed on searching for libraries that were actually there, but ld reported them missing. I realised, that when emerging qemu on x86_64 machine, I should just try to emulate x86_64 (and not i386 as I tried for the first time) and so I switched to x86_64 in /etc/make.conf and everything went well. I suppose, that the error message should have said something about incompatible library version (non-compatible ELF class or something), I guess. After this problem occurred, I had the same libraries missing while emerging different package that had nothing to do with any architecture stuff. I was using ccache that time and I desperately wanted to get the package installed, so I tried to compile it myself (it worked) and tried to compile it after I established the portage environment (it didn't work). So I straced the command in both cases and with the environment it used ccache, so I disabled ccache and it worked. However after cleaning the ccache and enabling it back, it didn't work again. Because that didn't bother me too much, I left the ccache disabled and went on. Now I had new error with libraries, this time with openssh. The package failed in the configuration phase while searching for pam_set_item in -lpam. When I tried to compile the same thing (testing the symbol), it compiled correctly and it didn't matter if I was in clean environment or in the one given by portage. I didn't know what to do. After one day of googling, I tried lots of possibilities and nothing helped. I tried to emerge it with ccache again and it gave me error with openssl (cannot find openssl libcrypto). After checking that libcrypto is on this system, I reemerged openssl and it didn't help. I disabled ccache and I was still stuck with this openssl libcrypto error. As a last resort, I rebooted (I really did that :'( ) and I am back with the -lpam error. Everything else (from what I tried) works great. I'm not sure if I should file a bug because I haven't done that before either (but I created my account there today). So please if anyone can guide me to some path, I'd be very grateful. Thanks anyone who answers in advance. --000e0cd4b3744b8f7404a6c5ea3f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello everybody,<br><br>I use hardened gentoo, now with disabled grsecurity= , and I can't emerge openssh because it is unable to find libpam even t= hough it really is there (if you ask why to reemerge, well I just want to d= o emerge -e @world with new versions of everything). I would file a bugrepo= rt but I haven't done that before and I would like to be sure it's = not my machine that causes the problem. In attachments, there are all the t= hings you should need, but if something is missing, I'll send whatever = you say (I hope I'll erase all passwords there :) ). This is just the s= implest part from what happened, for full story you can skip to the last pa= ragraph.<br> This is the actual error:<br>checking for pam_set_item in -lpam... no<br>co= nfigure: error: *** libpam missing<br><br>The full story: I am using Gentoo= for a few years now and I was able to help myself out with all the passive= support available (google, man/info pages etc.) but recently I've stum= bled upon a weird problem that seem unsolvable for me, so I'm trying to= write to you guys as my first try of getting any active help. Everything w= orked well until I tried to install qemu on one machine. The installation f= ailed on searching for libraries that were actually there, but ld reported = them missing. I realised, that when emerging qemu on x86_64 machine, I shou= ld just try to emulate x86_64 (and not i386 as I tried for the first time) = and so I switched to x86_64 in /etc/make.conf and everything went well. I s= uppose, that the error message should have said something about incompatibl= e library version (non-compatible ELF class or something), I guess. After t= his problem occurred, I had the same libraries missing while emerging diffe= rent package that had nothing to do with any architecture stuff. I was usin= g ccache that time and I desperately wanted to get the package installed, s= o I tried to compile it myself (it worked) and tried to compile it after I = established the portage environment (it didn't work). So I straced the = command in both cases and with the environment it used ccache, so I disable= d ccache and it worked. However after cleaning the ccache and enabling it b= ack, it didn't work again. Because that didn't bother me too much, = I left the ccache disabled and went on. Now I had new error with libraries,= this time with openssh. The package failed in the configuration phase whil= e searching for pam_set_item in -lpam. When I tried to compile the same thi= ng (testing the symbol), it compiled correctly and it didn't matter if = I was in clean environment or in the one given by portage. I didn't kno= w what to do. After one day of googling, I tried lots of possibilities and = nothing helped. I tried to emerge it with ccache again and it gave me error= with openssl (cannot find openssl libcrypto). After checking that libcrypt= o is on this system, I reemerged openssl and it didn't help. I disabled= ccache and I was still stuck with this openssl libcrypto error. As a last = resort, I rebooted (I really did that :'( ) and I am back with the -lpa= m error. Everything else (from what I tried) works great. I'm not sure = if I should file a bug because I haven't done that before either (but I= created my account there today). So please if anyone can guide me to some = path, I'd be very grateful.<br> Thanks anyone who answers in advance.<br> --000e0cd4b3744b8f7404a6c5ea3f-- --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: text/plain; charset=US-ASCII; name="emerge-info.txt" Content-Disposition: attachment; filename="emerge-info.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpgwpoqx1 YXBwLXNoZWxscy9iYXNoOiAgICAgICAgICA0LjJfcDEwCmRldi1sYW5nL3B5dGhvbjogICAgICAg ICAgMi43LjIsIDMuMgpkZXYtdXRpbC9jY2FjaGU6ICAgICAgICAgIDMuMS41CmRldi11dGlsL3Br Z2NvbmZpZzogICAgICAgMC4yNgpzeXMtYXBwcy9iYXNlbGF5b3V0OiAgICAgIDIuMC4zCnN5cy1h cHBzL29wZW5yYzogICAgICAgICAgMC44LjMKc3lzLWFwcHMvc2FuZGJveDogICAgICAgICAyLjUK c3lzLWRldmVsL2F1dG9jb25mOiAgICAgICAyLjY4CnN5cy1kZXZlbC9hdXRvbWFrZTogICAgICAg MS4xMS4xLXIxCnN5cy1kZXZlbC9iaW51dGlsczogICAgICAgMi4yMQpzeXMtZGV2ZWwvZ2NjOiAg ICAgICAgICAgIDQuNS4yCnN5cy1kZXZlbC9nY2MtY29uZmlnOiAgICAgMS40LjEtcjEKc3lzLWRl dmVsL2xpYnRvb2w6ICAgICAgICAyLjQtcjEKc3lzLWRldmVsL21ha2U6ICAgICAgICAgICAzLjgy LXIxCnN5cy1rZXJuZWwvbGludXgtaGVhZGVyczogMi42LjM4ICh2aXJ0dWFsL29zLWhlYWRlcnMp CnN5cy1saWJzL2dsaWJjOiAgICAgICAgICAgMi4xMy1yMgpSZXBvc2l0b3JpZXM6CgpnZW50b28K ICAgIGxvY2F0aW9uOiAvdXNyL3BvcnRhZ2UKICAgIHN5bmM6IHJzeW5jOi8vcnN5bmMuZXVyb3Bl LmdlbnRvby5vcmcvZ2VudG9vLXBvcnRhZ2UKICAgIHByaW9yaXR5OiAtMTAwMAoKQUJJPSJhbWQ2 NCIKQUNDRVBUX0tFWVdPUkRTPSJhbWQ2NCB+YW1kNjQiCkFDQ0VQVF9MSUNFTlNFPSIqIC1ARVVM QSIKQUNDRVBUX1BST1BFUlRJRVM9IioiCkFMU0FfQ0FSRFM9ImFsaTU0NTEgYWxzNDAwMCBhdGlp eHAgYXRpaXhwLW1vZGVtIGJ0ODd4IGNhMDEwNiBjbWlwY2kgZW11MTBrMXggZW5zMTM3MCBlbnMx MzcxIGVzMTkzOCBlczE5NjggZm04MDEgaGRhLWludGVsIGludGVsOHgwIGludGVsOHgwbSBtYWVz dHJvMyB0cmlkZW50IHVzYi1hdWRpbyB2aWE4Mnh4IHZpYTgyeHgtbW9kZW0geW1mcGNpIgpBTFNB X1BDTV9QTFVHSU5TPSJhZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25vb3AgZW1w dHkgZXh0cGx1ZyBmaWxlIGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBsaW5lYXIg bWV0ZXIgbW1hcF9lbXVsIG11bGF3IG11bHRpIG51bGwgcGx1ZyByYXRlIHJvdXRlIHNoYXJlIHNo bSBzb2Z0dm9sIgpBUEFDSEUyX01PRFVMRVM9ImFjdGlvbnMgYWxpYXMgYXV0aF9iYXNpYyBhdXRo bl9hbGlhcyBhdXRobl9hbm9uIGF1dGhuX2RibSBhdXRobl9kZWZhdWx0IGF1dGhuX2ZpbGUgYXV0 aHpfZGJtIGF1dGh6X2RlZmF1bHQgYXV0aHpfZ3JvdXBmaWxlIGF1dGh6X2hvc3QgYXV0aHpfb3du ZXIgYXV0aHpfdXNlciBhdXRvaW5kZXggY2FjaGUgY2dpIGNnaWQgZGF2IGRhdl9mcyBkYXZfbG9j ayBkZWZsYXRlIGRpciBkaXNrX2NhY2hlIGVudiBleHBpcmVzIGV4dF9maWx0ZXIgZmlsZV9jYWNo ZSBmaWx0ZXIgaGVhZGVycyBpbmNsdWRlIGluZm8gbG9nX2NvbmZpZyBsb2dpbyBtZW1fY2FjaGUg bWltZSBtaW1lX21hZ2ljIG5lZ290aWF0aW9uIHJld3JpdGUgc2V0ZW52aWYgc3BlbGluZyBzdGF0 dXMgdW5pcXVlX2lkIHVzZXJkaXIgdXNlcnRyYWNrIHZob3N0X2FsaWFzIgpBUkNIPSJhbWQ2NCIK QVNGTEFHU194ODY9Ii0tMzIiCkFVVE9DTEVBTj0ieWVzIgpDQUxMSUdSQV9GRUFUVVJFUz0iYnJh aW5kdW1wIGZsb3cga2FyYm9uIGtleGkga3ByZXNlbnRlciBrcml0YSB0YWJsZXMgd29yZHMiCkNB TUVSQVM9InB0cDIiCkNCVUlMRD0ieDg2XzY0LXBjLWxpbnV4LWdudSIKQ0NBQ0hFX0RJUj0iL3Zh ci90bXAvY2NhY2hlIgpDQ0FDSEVfU0laRT0iMkciCkNGTEFHUz0iLW1hcmNoPW5hdGl2ZSAtTzIg LXBpcGUiCkNGTEFHU194ODY9Ii1tMzIiCkNIT1NUPSJ4ODZfNjQtcGMtbGludXgtZ251IgpDSE9T VF9hbWQ2ND0ieDg2XzY0LXBjLWxpbnV4LWdudSIKQ0hPU1RfeDg2PSJpNjg2LXBjLWxpbnV4LWdu dSIKQ0xFQU5fREVMQVk9IjUiCkNPTExFQ1REX1BMVUdJTlM9ImRmIGludGVyZmFjZSBpcnEgbG9h ZCBtZW1vcnkgcnJkdG9vbCBzd2FwIHN5c2xvZyIKQ09MTElTSU9OX0lHTk9SRT0iL2xpYi9tb2R1 bGVzIgpDT05GSUdfUFJPVEVDVD0iL2V0YyAvdXNyL3NoYXJlL29wZW52cG4vZWFzeS1yc2EiCkNP TkZJR19QUk9URUNUX01BU0s9Ii9ldGMvY2EtY2VydGlmaWNhdGVzLmNvbmYgL2V0Yy9lbnYuZCAv ZXRjL2ZvbnRzL2ZvbnRzLmNvbmYgL2V0Yy9nY29uZiAvZXRjL2dlbnRvby1yZWxlYXNlIC9ldGMv cmV2ZGVwLXJlYnVpbGQgL2V0Yy9zYW5kYm94LmQgL2V0Yy90ZXJtaW5mbyIKQ1hYRkxBR1M9Ii1t YXJjaD1uYXRpdmUgLU8yIC1waXBlIgpERUZBVUxUX0FCST0iYW1kNjQiCkRJU1RESVI9Ii91c3Iv cG9ydGFnZS9kaXN0ZmlsZXMiCkVESVRPUj0iZW1hY3MiCkVMSUJDPSJnbGliYyIKRU1FUkdFX0RF RkFVTFRfT1BUUz0iLXYiCkVNRVJHRV9XQVJOSU5HX0RFTEFZPSIxMCIKRVBSRUZJWD0iIgpFUk9P VD0iLyIKRkNGTEFHUz0iIgpGRUFUVVJFUz0iYXNzdW1lLWRpZ2VzdHMgYmlucGtnLWxvZ3MgZGlz dGxvY2tzIGVidWlsZC1sb2NrcyBmaXhsYWZpbGVzIGZpeHBhY2thZ2VzIG5ld3MgcGFyYWxsZWwt ZmV0Y2ggcHJvdGVjdC1vd25lZCBzYW5kYm94IHNmcGVybXMgc3RyaWN0IHVua25vd24tZmVhdHVy ZXMtd2FybiB1bm1lcmdlLWxvZ3MgdW5tZXJnZS1vcnBoYW5zIHVzZXJmZXRjaCIKRkVUQ0hDT01N QU5EPSIvdXNyL2Jpbi93Z2V0IC10IDMgLVQgNjAgLS1wYXNzaXZlLWZ0cCAtTyAiJHtESVNURElS fS8ke0ZJTEV9IiAiJHtVUkl9IiIKRkVUQ0hDT01NQU5EX1JTWU5DPSJyc3luYyAtYXZQICIke1VS SX0iICIke0RJU1RESVJ9LyR7RklMRX0iIgpGRVRDSENPTU1BTkRfU0ZUUD0iYmFzaCAtYyAieD1c JHsyI3NmdHA6Ly99IDsgaG9zdD1cJHt4JSUvKn0gOyBwb3J0PVwke2hvc3QjIyo6fSA7IGhvc3Q9 XCR7aG9zdCU6Kn0gOyBbWyBcJHtob3N0fSA9IFwke3BvcnR9IF1dICYmIHBvcnQ9MjIgOyBleGVj IHNmdHAgLVAgXCR7cG9ydH0gXCJcJHtob3N0fTovXCR7eCMqL31cIiBcIlwkMVwiIiBzZnRwICIk e0RJU1RESVJ9LyR7RklMRX0iICIke1VSSX0iIgpGRVRDSENPTU1BTkRfU1NIPSJiYXNoIC1jICJ4 PVwkezIjc3NoOi8vfSA7IGhvc3Q9XCR7eCUlLyp9IDsgcG9ydD1cJHtob3N0IyMqOn0gOyBob3N0 PVwke2hvc3QlOip9IDsgW1sgXCR7aG9zdH0gPSBcJHtwb3J0fSBdXSAmJiBwb3J0PTIyIDsgZXhl YyByc3luYyAtLXJzaD1cInNzaCAtcFwke3BvcnR9XCIgLWF2UCBcIlwke2hvc3R9Oi9cJHt4Iyov fVwiIFwiXCQxXCIiIHJzeW5jICIke0RJU1RESVJ9LyR7RklMRX0iICIke1VSSX0iIgpGRkxBR1M9 IiIKR0NDX1NQRUNTPSIiCkdFTlRPT19NSVJST1JTPSJodHRwOi8vZ2VudG9vLm1pcnJvci5ka20u Y3ovcHViL2dlbnRvbyBmdHA6Ly9nZW50b28ubWlycm9yLmRrbS5jei9wdWIvZ2VudG9vIHJzeW5j Oi8vZ2VudG9vLm1pcnJvci5ka20uY3ovcHViL2dlbnRvbyBmdHA6Ly9nZW50b28ubWlycm9yLndl YjR1LmN6LyBodHRwOi8vZ2VudG9vLm1pcnJvci53ZWI0dS5jei8gaHR0cDovL2dlbnRvby5zdXBw Lm5hbWUvIGZ0cDovL2Z0cC5maS5tdW5pLmN6L3B1Yi9saW51eC9nZW50b28vIGh0dHA6Ly9mdHAu ZmkubXVuaS5jei9wdWIvbGludXgvZ2VudG9vLyBodHRwOi8vZGlzdGZpbGVzLmdlbnRvby5vcmci CkdQU0RfUFJPVE9DT0xTPSJhc2h0ZWNoIGFpdmRtIGVhcnRobWF0ZSBldmVybW9yZSBmdjE4IGdh cm1pbiBnYXJtaW50eHQgZ3BzY2xvY2sgaXRyYXggbXRrMzMwMSBubWVhIG50cmlwIG5hdmNvbSBv Y2VhbnNlcnZlciBvbGRzdHlsZSBvbmNvcmUgcnRjbTEwNHYyIHJ0Y20xMDR2MyBzaXJmIHN1cGVy c3RhcjIgdGltaW5nIHRzaXAgdHJpcG1hdGUgdG50IHVieCIKSE9NRT0iL3Jvb3QiCklORk9QQVRI PSIvdXNyL3NoYXJlL2luZm86L3Vzci9zaGFyZS9iaW51dGlscy1kYXRhL3g4Nl82NC1wYy1saW51 eC1nbnUvMi4yMS9pbmZvOi91c3Ivc2hhcmUvZ2NjLWRhdGEveDg2XzY0LXBjLWxpbnV4LWdudS80 LjUuMi9pbmZvOi91c3Ivc2hhcmUvaW5mby9lbWFjcy0yMyIKSU5QVVRfREVWSUNFUz0ia2V5Ym9h cmQgbW91c2UgZXZkZXYiCktFUk5FTD0ibGludXgiCkxDRF9ERVZJQ0VTPSJiYXlyYWQgY2ZvbnR6 IGNmb250ejYzMyBnbGsgaGQ0NDc4MCBsYjIxNiBsY2RtMDAxIG10eG9yYiBuY3Vyc2VzIHRleHQi CkxERkxBR1M9Ii1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIgpMREZMQUdTX3g4Nj0iLW0gZWxmX2kz ODYiCkxFU1M9Ii1SIC1NIC0tc2hpZnQgNSIKTEVTU09QRU49InxsZXNzcGlwZSAlcyIKTElCRElS X2FtZDY0PSJsaWI2NCIKTElCRElSX2FtZDY0X2Zic2Q9ImxpYjY0IgpMSUJESVJfcHBjPSJsaWIz MiIKTElCRElSX3BwYzY0PSJsaWI2NCIKTElCRElSX3MzOTA9ImxpYjMyIgpMSUJESVJfczM5MHg9 ImxpYjY0IgpMSUJESVJfc3BhcmMzMj0ibGliMzIiCkxJQkRJUl9zcGFyYzY0PSJsaWI2NCIKTElC RElSX3g4Nj0ibGliMzIiCkxJQkRJUl94ODZfZmJzZD0ibGliMzIiCkxPR05BTUU9InJvb3QiCkxT X0NPTE9SUz0icnM9MDpkaT0wMTszNDpsbj0wMTszNjptaD0wMDpwaT00MDszMzpzbz0wMTszNTpk bz0wMTszNTpiZD00MDszMzswMTpjZD00MDszMzswMTpvcj0wMTswNTszNzs0MTptaT0wMTswNTsz Nzs0MTpzdT0zNzs0MTpzZz0zMDs0MzpjYT0zMDs0MTp0dz0zMDs0Mjpvdz0zNDs0MjpzdD0zNzs0 NDpleD0wMTszMjoqLnRhcj0wMTszMToqLnRnej0wMTszMToqLmFyaj0wMTszMToqLnRhej0wMTsz MToqLmx6aD0wMTszMToqLmx6bWE9MDE7MzE6Ki50bHo9MDE7MzE6Ki50eHo9MDE7MzE6Ki56aXA9 MDE7MzE6Ki56PTAxOzMxOiouWj0wMTszMToqLmR6PTAxOzMxOiouZ3o9MDE7MzE6Ki5sej0wMTsz MToqLnh6PTAxOzMxOiouYnoyPTAxOzMxOiouYno9MDE7MzE6Ki50Yno9MDE7MzE6Ki50YnoyPTAx OzMxOioudHo9MDE7MzE6Ki5kZWI9MDE7MzE6Ki5ycG09MDE7MzE6Ki5qYXI9MDE7MzE6Ki53YXI9 MDE7MzE6Ki5lYXI9MDE7MzE6Ki5zYXI9MDE7MzE6Ki5yYXI9MDE7MzE6Ki5hY2U9MDE7MzE6Ki56 b289MDE7MzE6Ki5jcGlvPTAxOzMxOiouN3o9MDE7MzE6Ki5yej0wMTszMToqLmpwZz0wMTszNToq LmpwZWc9MDE7MzU6Ki5naWY9MDE7MzU6Ki5ibXA9MDE7MzU6Ki5wYm09MDE7MzU6Ki5wZ209MDE7 MzU6Ki5wcG09MDE7MzU6Ki50Z2E9MDE7MzU6Ki54Ym09MDE7MzU6Ki54cG09MDE7MzU6Ki50aWY9 MDE7MzU6Ki50aWZmPTAxOzM1OioucG5nPTAxOzM1Oiouc3ZnPTAxOzM1Oiouc3Znej0wMTszNToq Lm1uZz0wMTszNToqLnBjeD0wMTszNToqLm1vdj0wMTszNToqLm1wZz0wMTszNToqLm1wZWc9MDE7 MzU6Ki5tMnY9MDE7MzU6Ki5ta3Y9MDE7MzU6Ki5vZ209MDE7MzU6Ki5tcDQ9MDE7MzU6Ki5tNHY9 MDE7MzU6Ki5tcDR2PTAxOzM1Oioudm9iPTAxOzM1OioucXQ9MDE7MzU6Ki5udXY9MDE7MzU6Ki53 bXY9MDE7MzU6Ki5hc2Y9MDE7MzU6Ki5ybT0wMTszNToqLnJtdmI9MDE7MzU6Ki5mbGM9MDE7MzU6 Ki5hdmk9MDE7MzU6Ki5mbGk9MDE7MzU6Ki5mbHY9MDE7MzU6Ki5nbD0wMTszNToqLmRsPTAxOzM1 OioueGNmPTAxOzM1OioueHdkPTAxOzM1OioueXV2PTAxOzM1OiouY2dtPTAxOzM1OiouZW1mPTAx OzM1OiouYXh2PTAxOzM1OiouYW54PTAxOzM1Oioub2d2PTAxOzM1Oioub2d4PTAxOzM1OioucGRm PTAwOzMyOioucHM9MDA7MzI6Ki50eHQ9MDA7MzI6Ki5wYXRjaD0wMDszMjoqLmRpZmY9MDA7MzI6 Ki5sb2c9MDA7MzI6Ki50ZXg9MDA7MzI6Ki5kb2M9MDA7MzI6Ki5hYWM9MDA7MzY6Ki5hdT0wMDsz NjoqLmZsYWM9MDA7MzY6Ki5taWQ9MDA7MzY6Ki5taWRpPTAwOzM2OioubWthPTAwOzM2OioubXAz PTAwOzM2OioubXBjPTAwOzM2Oioub2dnPTAwOzM2OioucmE9MDA7MzY6Ki53YXY9MDA7MzY6Ki5h eGE9MDA7MzY6Ki5vZ2E9MDA7MzY6Ki5zcHg9MDA7MzY6Ki54c3BmPTAwOzM2OiIKTUFLRU9QVFM9 Ii1qMyIKTUFOUEFUSD0iL3Vzci9sb2NhbC9zaGFyZS9tYW46L3Vzci9zaGFyZS9tYW46L3Vzci9z aGFyZS9iaW51dGlscy1kYXRhL3g4Nl82NC1wYy1saW51eC1nbnUvMi4yMS9tYW46L3Vzci9zaGFy ZS9nY2MtZGF0YS94ODZfNjQtcGMtbGludXgtZ251LzQuNS4yL21hbiIKTVVMVElMSUJfQUJJUz0i YW1kNjQgeDg2IgpNVUxUSUxJQl9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0IgpN VUxUSUxJQl9TVFJJQ1RfRElSUz0iL2xpYjMyIC9saWIgL3Vzci9saWIzMiAvdXNyL2xpYiAvdXNy L2tkZS8qL2xpYjMyIC91c3Iva2RlLyovbGliIC91c3IvcXQvKi9saWIzMiAvdXNyL3F0LyovbGli IC91c3IvWDExUjYvbGliMzIgL3Vzci9YMTFSNi9saWIiCk1VTFRJTElCX1NUUklDVF9FWEVNUFQ9 IihwZXJsNXxnY2N8Z2NjLWxpYnxiaW51dGlsc3xlY2xpcHNlLTN8ZGVidWd8cG9ydGFnZXx1ZGV2 KSIKTkVUQkVBTlM9ImFwaXN1cHBvcnQgY25kIGdyb292eSBnc2YgaGFybmVzcyBpZGUgaWRlbnRp dHkgajJlZSBqYXZhIG1vYmlsaXR5IG5iIHBocCBwcm9maWxlciBzb2EgdmlzdWFsd2ViIHdlYmNv bW1vbiB3ZWJzdmNjb21tb24geG1sIgpOT0NPTE9SPSJ0cnVlIgpQQUdFUj0iL3Vzci9iaW4vbGVz cyIKUEFUSD0iL3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jp bjovc2JpbjovYmluOi9vcHQvYmluOi91c3IveDg2XzY0LXBjLWxpbnV4LWdudS9nY2MtYmluLzQu NS4yIgpQSFBfVEFSR0VUUz0icGhwNS0zIgpQS0dESVI9Ii91c3IvcG9ydGFnZS9wYWNrYWdlcyIK UE9SVEFHRV9BUkNITElTVD0icHBjIHNwYXJjNjQtZnJlZWJzZCBwcGMtb3BlbmJzZCB4ODYtb3Bl bmJzZCBwcGM2NCB4ODYtd2lubnQgeDg2LWZic2QgcHBjLWFpeCBhbHBoYSBhcm0geDg2LWZyZWVi c2QgczM5MCBhbWQ2NCBhcm0tbGludXggeDg2LW1hY29zIHg2NC1vcGVuYnNkIGlhNjQtaHB1eCBo cHBhIHg4Ni1uZXRic2QgeDg2LWN5Z3dpbiBhbWQ2NC1saW51eCBpYTY0LWxpbnV4IHg4NiBzcGFy Yy1zb2xhcmlzIHg2NC1mcmVlYnNkIHNwYXJjNjQtc29sYXJpcyB4ODYtbGludXggeDY0LW1hY29z IHNwYXJjIG02OGstbWludCBpYTY0IG1pcHMgcHBjLW1hY29zIHg4Ni1pbnRlcml4IGhwcGEtaHB1 eCBhbWQ2NC1mYnNkIHg2NC1zb2xhcmlzIG1pcHMtaXJpeCBtNjhrIHNoIHg4Ni1zb2xhcmlzIHNw YXJjLWZic2QiClBPUlRBR0VfQklOSE9TVF9DSFVOS1NJWkU9IjMwMDAiClBPUlRBR0VfQklOX1BB VEg9Ii91c3IvbGliNjQvcG9ydGFnZS9iaW4iClBPUlRBR0VfQ09NUFJFU1NfRVhDTFVERV9TVUZG SVhFUz0iY3NzIGdpZiBodG1bbF0/IGpwW2VdP2cganMgcGRmIHBuZyIKUE9SVEFHRV9DT05GSUdS T09UPSIvIgpQT1JUQUdFX0RFQlVHPSIwIgpQT1JUQUdFX0RFUENBQ0hFRElSPSIvdmFyL2NhY2hl L2VkYi9kZXAiClBPUlRBR0VfRUxPR19DTEFTU0VTPSJpbmZvIHdhcm4gZXJyb3IgbG9nIHFhIgpQ T1JUQUdFX0VMT0dfTUFJTEZST009ImdsYWRvc0BrZW50dXMubmV0IgpQT1JUQUdFX0VMT0dfTUFJ TFNVQkpFQ1Q9Iltwb3J0YWdlXSAke1BBQ0tBR0V9IGVtZXJnZWQgb24gJHtIT1NUfSB3aXRoIG1l c3NhZ2VzIgpQT1JUQUdFX0VMT0dfTUFJTFVSST0iKioqQGdtYWlsLmNvbSAqKipAKioqOioqKkBz bXRwLmdtYWlsLmNvbToxMDA1ODciClBPUlRBR0VfRUxPR19TWVNURU09InNhdmUgc2F2ZV9zdW1t YXJ5IG1haWxfc3VtbWFyeSBzeXNsb2c6d2FybixlcnJvciIKUE9SVEFHRV9GRVRDSF9DSEVDS1NV TV9UUllfTUlSUk9SUz0iNSIKUE9SVEFHRV9GRVRDSF9SRVNVTUVfTUlOX1NJWkU9IjM1MEsiClBP UlRBR0VfR0lEPSIyNTAiClBPUlRBR0VfR1BHX1NJR05JTkdfQ09NTUFORD0iZ3BnIC0tc2lnbiAt LWNsZWFyc2lnbiAtLXllcyAtLWRlZmF1bHQta2V5ICIke1BPUlRBR0VfR1BHX0tFWX0iIC0taG9t ZWRpciAiJHtQT1JUQUdFX0dQR19ESVJ9IiAiJHtGSUxFfSIiClBPUlRBR0VfSU5TVF9HSUQ9IjAi ClBPUlRBR0VfSU5TVF9VSUQ9IjAiClBPUlRBR0VfTklDRU5FU1M9IjUiClBPUlRBR0VfUFlNX1BB VEg9Ii91c3IvbGliNjQvcG9ydGFnZS9weW0iClBPUlRBR0VfUlNZTkNfT1BUUz0iLS1yZWN1cnNp dmUgLS1saW5rcyAtLXNhZmUtbGlua3MgLS1wZXJtcyAtLXRpbWVzIC0tY29tcHJlc3MgLS1mb3Jj ZSAtLXdob2xlLWZpbGUgLS1kZWxldGUgLS1zdGF0cyAtLXRpbWVvdXQ9MTgwIC0tZXhjbHVkZT0v ZGlzdGZpbGVzIC0tZXhjbHVkZT0vbG9jYWwgLS1leGNsdWRlPS9wYWNrYWdlcyIKUE9SVEFHRV9S U1lOQ19SRVRSSUVTPSItMSIKUE9SVEFHRV9TQU5EQk9YX0NPTVBBVF9MRVZFTD0iMTYiClBPUlRB R0VfU1lOQ19TVEFMRT0iMzAiClBPUlRBR0VfVE1QRElSPSIvdmFyL3RtcCIKUE9SVEFHRV9WRVJC T1NFPSIxIgpQT1JUQUdFX1dPUktESVJfTU9ERT0iMDcwMCIKUE9SVERJUj0iL3Vzci9wb3J0YWdl IgpQT1JURElSX09WRVJMQVk9IiIKUE9SVF9MT0dESVI9Ii92YXIvbG9nL3BvcnRhZ2UiClBSRUxJ TktfUEFUSF9NQVNLPSIvdXNyL2xpYjY0L2xpYmZyZWVibDMuc286L3Vzci9saWI2NC9saWJuc3Nk Ym0zLnNvOi91c3IvbGliNjQvbGlic29mdG9rbjMuc28iClBST0ZJTEVfT05MWV9WQVJJQUJMRVM9 IkFSQ0ggRUxJQkMgS0VSTkVMIFVTRVJMQU5EIgpQV0Q9Ii9yb290IgpQWVRIT05ET05UV1JJVEVC WVRFQ09ERT0iMSIKUUVNVV9TT0ZUTU1VX1RBUkdFVFM9IiIKUUVNVV9VU0VSX1RBUkdFVFM9Imkz ODYgeDg2XzY0IgpSRVNVTUVDT01NQU5EPSIvdXNyL2Jpbi93Z2V0IC1jIC10IDMgLVQgNjAgLS1w YXNzaXZlLWZ0cCAtTyAiJHtESVNURElSfS8ke0ZJTEV9IiAiJHtVUkl9IiIKUkVTVU1FQ09NTUFO RF9SU1lOQz0icnN5bmMgLWF2UCAiJHtVUkl9IiAiJHtESVNURElSfS8ke0ZJTEV9IiIKUkVTVU1F Q09NTUFORF9TU0g9ImJhc2ggLWMgIng9XCR7MiNzc2g6Ly99IDsgaG9zdD1cJHt4JSUvKn0gOyBw b3J0PVwke2hvc3QjIyo6fSA7IGhvc3Q9XCR7aG9zdCU6Kn0gOyBbWyBcJHtob3N0fSA9IFwke3Bv cnR9IF1dICYmIHBvcnQ9MjIgOyBleGVjIHJzeW5jIC0tcnNoPVwic3NoIC1wXCR7cG9ydH1cIiAt YXZQIFwiXCR7aG9zdH06L1wke3gjKi99XCIgXCJcJDFcIiIgcnN5bmMgIiR7RElTVERJUn0vJHtG SUxFfSIgIiR7VVJJfSIiClJPT1Q9Ii8iClJPT1RQQVRIPSIvb3B0L2JpbjovdXNyL3g4Nl82NC1w Yy1saW51eC1nbnUvZ2NjLWJpbi80LjUuMiIKUlBNRElSPSIvdXNyL3BvcnRhZ2UvcnBtIgpSVUJZ X1RBUkdFVFM9InJ1YnkxOCIKU0hFTEw9Ii9iaW4vYmFzaCIKU0hMVkw9IjEiClNUQUdFMV9VU0U9 ImhhcmRlbmVkIG11bHRpbGliIG5wdGwgbnB0bG9ubHkiClNZTUxJTktfTElCPSJ5ZXMiClNZTkM9 InJzeW5jOi8vcnN5bmMuZXVyb3BlLmdlbnRvby5vcmcvZ2VudG9vLXBvcnRhZ2UiClRFUk09Inh0 ZXJtIgpVU0VSPSJyb290IgpVU0VSTEFORD0iR05VIgpVU0VfRVhQQU5EPSJBTFNBX0NBUkRTIEFM U0FfUENNX1BMVUdJTlMgQVBBQ0hFMl9NT0RVTEVTIEFQQUNIRTJfTVBNUyBDQUxMSUdSQV9GRUFU VVJFUyBDQU1FUkFTIENPTExFQ1REX1BMVUdJTlMgQ1JPU1NDT01QSUxFX09QVFMgRFJBQ1VUX01P RFVMRVMgRFZCX0NBUkRTIEVMSUJDIEZDRFNMX0NBUkRTIEZPTzJaSlNfREVWSUNFUyBGUklUWkNB UElfQ0FSRFMgR1BTRF9QUk9UT0NPTFMgSU5QVVRfREVWSUNFUyBLRVJORUwgTENEX0RFVklDRVMg TElOR1VBUyBMSVJDX0RFVklDRVMgTUlTRE5fQ0FSRFMgTkVUQkVBTlNfTU9EVUxFUyBOR0lOWF9N T0RVTEVTX0hUVFAgTkdJTlhfTU9EVUxFU19NQUlMIFBIUF9UQVJHRVRTIFFFTVVfU09GVE1NVV9U QVJHRVRTIFFFTVVfVVNFUl9UQVJHRVRTIFJVQllfVEFSR0VUUyBTQU5FX0JBQ0tFTkRTIFVTRVJM QU5EIFZJREVPX0NBUkRTIFhGQ0VfUExVR0lOUyBYVEFCTEVTX0FERE9OUyIKVVNFX0VYUEFORF9I SURERU49IkNST1NTQ09NUElMRV9PUFRTIEVMSUJDIEtFUk5FTCBVU0VSTEFORCIKVVNFX09SREVS PSJlbnY6cGtnOmNvbmY6ZGVmYXVsdHM6cGtnaW50ZXJuYWw6ZW52LmQiClZJREVPX0NBUkRTPSJp bnRlbCIKWFRBQkxFU19BRERPTlM9InF1b3RhMiBwc2QgcGtub2NrIGxzY2FuIGxlbmd0aDIgaXB2 NG9wdGlvbnMgaXBzZXQgaXBwMnAgaWZhY2UgZ2VvaXAgZnV6enkgY29uZGl0aW9uIHRlZSB0YXJw aXQgc3lzcnEgc3RlYWwgcmF3bmF0IGxvZ21hcmsgaXBtYXJrIGRoY3BtYWMgZGVsdWRlIGNoYW9z IGFjY291bnQiCl89Ii91c3IvYmluL2VtZXJnZSIKUG9ydGFnZSAyLjEuMTAuMyAoaGFyZGVuZWQv bGludXgvYW1kNjQsIGdjYy00LjUuMiwgZ2xpYmMtMi4xMy1yMiwgMi42LjM5LWhhcmRlbmVkLXIy IHg4Nl82NCkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbSBTZXR0aW5n cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpTeXN0ZW0gdW5hbWU6IExpbnV4LTIuNi4zOS1oYXJkZW5lZC1yMi14ODZfNjQt SW50ZWwtUi1fQXRvbS1UTS1fQ1BVX0Q1MTBfQF8xLjY2R0h6LXdpdGgtZ2VudG9vLTIuMC4zClRp bWVzdGFtcCBvZiB0cmVlOiBUdWUsIDI4IEp1biAyMDExIDAwOjE1OjAxICswMDAwCmNjYWNoZSB2 ZXJzaW9uIDMuMS41IFtkaXNhYmxlZF0KVVNFPSJhY2wgYW1kNjQgYmFzaC1jb21wbGV0aW9uIGJl cmtkYiBiemlwMiBjYXBzIGNsaSBjcmFja2xpYiBjcnlwdCBjdXBzIGN4eCBkcmkgZW1hY3MgZ2Ri bSBnaXQgZ251dGxzIGhhcmRlbmVkIGljb252IGlkbiBpcHY2IGp1c3RpZnkgbG1fc2Vuc29ycyBs em1hIG1teCBtb2R1bGVzIG11ZGZsYXAgbXVsdGlsaWIgbXVsdGl1c2VyIG5jdXJzZXMgbmxzIG5w dGwgbnB0bG9ubHkgb2ZmZW5zaXZlIG9wZW5tcCBwYW0gcGNyZSBwZXJsIHBpYyBwcHBkIHByZWRp Y3Rpb24gcHl0aG9uIHB5dGhvbjMgcmFyIHJlYWRsaW5lIHJvbWlvIHNhc2wgc2Vuc29yZCBzZXNz aW9uIHNtcCBzcWxpdGUgc3NlIHNzZTIgc3NsIHN1YnZlcnNpb24gc3lzZnMgdGhyZWFkcyB1bmlj b2RlIHVyYW5kb20gdmkgdmltIHZ0IHhvcmcgemxpYiIgQUxTQV9DQVJEUz0iYWxpNTQ1MSBhbHM0 MDAwIGF0aWl4cCBhdGlpeHAtbW9kZW0gYnQ4N3ggY2EwMTA2IGNtaXBjaSBlbXUxMGsxeCBlbnMx MzcwIGVuczEzNzEgZXMxOTM4IGVzMTk2OCBmbTgwMSBoZGEtaW50ZWwgaW50ZWw4eDAgaW50ZWw4 eDBtIG1hZXN0cm8zIHRyaWRlbnQgdXNiLWF1ZGlvIHZpYTgyeHggdmlhODJ4eC1tb2RlbSB5bWZw Y2kiIEFMU0FfUENNX1BMVUdJTlM9ImFkcGNtIGFsYXcgYXN5bSBjb3B5IGRtaXggZHNoYXJlIGRz bm9vcCBlbXB0eSBleHRwbHVnIGZpbGUgaG9va3MgaWVjOTU4IGlvcGx1ZyBsYWRzcGEgbGZsb2F0 IGxpbmVhciBtZXRlciBtbWFwX2VtdWwgbXVsYXcgbXVsdGkgbnVsbCBwbHVnIHJhdGUgcm91dGUg c2hhcmUgc2htIHNvZnR2b2wiIEFQQUNIRTJfTU9EVUxFUz0iYWN0aW9ucyBhbGlhcyBhdXRoX2Jh c2ljIGF1dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhuX2RlZmF1bHQgYXV0aG5f ZmlsZSBhdXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0aHpfaG9zdCBh dXRoel9vd25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBjZ2kgY2dpZCBkYXYgZGF2X2Zz IGRhdl9sb2NrIGRlZmxhdGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2ZpbHRlciBm aWxlX2NhY2hlIGZpbHRlciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxvZ2lvIG1l bV9jYWNoZSBtaW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRlbnZpZiBzcGVs aW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiIENBTExJ R1JBX0ZFQVRVUkVTPSJicmFpbmR1bXAgZmxvdyBrYXJib24ga2V4aSBrcHJlc2VudGVyIGtyaXRh IHRhYmxlcyB3b3JkcyIgQ0FNRVJBUz0icHRwMiIgQ09MTEVDVERfUExVR0lOUz0iZGYgaW50ZXJm YWNlIGlycSBsb2FkIG1lbW9yeSBycmR0b29sIHN3YXAgc3lzbG9nIiBFTElCQz0iZ2xpYmMiIEdQ U0RfUFJPVE9DT0xTPSJhc2h0ZWNoIGFpdmRtIGVhcnRobWF0ZSBldmVybW9yZSBmdjE4IGdhcm1p biBnYXJtaW50eHQgZ3BzY2xvY2sgaXRyYXggbXRrMzMwMSBubWVhIG50cmlwIG5hdmNvbSBvY2Vh bnNlcnZlciBvbGRzdHlsZSBvbmNvcmUgcnRjbTEwNHYyIHJ0Y20xMDR2MyBzaXJmIHN1cGVyc3Rh cjIgdGltaW5nIHRzaXAgdHJpcG1hdGUgdG50IHVieCIgSU5QVVRfREVWSUNFUz0ia2V5Ym9hcmQg bW91c2UgZXZkZXYiIEtFUk5FTD0ibGludXgiIExDRF9ERVZJQ0VTPSJiYXlyYWQgY2ZvbnR6IGNm b250ejYzMyBnbGsgaGQ0NDc4MCBsYjIxNiBsY2RtMDAxIG10eG9yYiBuY3Vyc2VzIHRleHQiIFBI UF9UQVJHRVRTPSJwaHA1LTMiIFFFTVVfVVNFUl9UQVJHRVRTPSJpMzg2IHg4Nl82NCIgUlVCWV9U QVJHRVRTPSJydWJ5MTgiIFVTRVJMQU5EPSJHTlUiIFZJREVPX0NBUkRTPSJpbnRlbCIgWFRBQkxF U19BRERPTlM9InF1b3RhMiBwc2QgcGtub2NrIGxzY2FuIGxlbmd0aDIgaXB2NG9wdGlvbnMgaXBz ZXQgaXBwMnAgaWZhY2UgZ2VvaXAgZnV6enkgY29uZGl0aW9uIHRlZSB0YXJwaXQgc3lzcnEgc3Rl YWwgcmF3bmF0IGxvZ21hcmsgaXBtYXJrIGRoY3BtYWMgZGVsdWRlIGNoYW9zIGFjY291bnQiIAoK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSBTZXR0aW5ncwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpVU0U9ImhwbiAobXVsdGlsaWIpIHBhbSAtWCAtWDUwOSAta2VyYmVyb3MgLWxkYXAgLWxpYmVk aXQgKC1zZWxpbnV4KSAtc2tleSAtc3RhdGljIC10Y3BkIgoKbmV0LW1pc2Mvb3BlbnNzaC01Ljhf cDIgd2FzIGJ1aWx0IHdpdGggdGhlIGZvbGxvd2luZzoKCg== --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpgwp66w0 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IE9wZW5TU0ggY29uZmlndXJlIFBvcnRhYmxl LCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52b2NhdGlvbiBj b21tYW5kIGxpbmUgd2FzCgogICQgLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLWJ1aWxkPXg4 Nl82NC1wYy1saW51eC1nbnUgLS1ob3N0PXg4Nl82NC1wYy1saW51eC1nbnUgLS1tYW5kaXI9L3Vz ci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAtLWRhdGFkaXI9L3Vzci9zaGFy ZSAtLXN5c2NvbmZkaXI9L2V0YyAtLWxvY2Fsc3RhdGVkaXI9L3Zhci9saWIgLS1saWJkaXI9L3Vz ci9saWI2NCAtLXdpdGgtbGRmbGFncz0tV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtLWRpc2FibGUt c3RyaXAgLS1zeXNjb25mZGlyPS9ldGMvc3NoIC0tbGliZXhlY2Rpcj0vdXNyL2xpYjY0L21pc2Mg LS1kYXRhZGlyPS91c3Ivc2hhcmUvb3BlbnNzaCAtLXdpdGgtcHJpdnNlcC1wYXRoPS92YXIvZW1w dHkgLS13aXRoLXByaXZzZXAtdXNlcj1zc2hkIC0td2l0aC1tZDUtcGFzc3dvcmRzIC0td2l0aC1z c2wtZW5naW5lIC0td2l0aC1wYW0gLS13aXRob3V0LWtlcmJlcm9zNSAtLXdpdGhvdXQtbGliZWRp dCAtLXdpdGhvdXQtc2VsaW51eCAtLXdpdGhvdXQtc2tleSAtLXdpdGhvdXQtdGNwLXdyYXBwZXJz CgojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0tLS0tLS0tLSAjIwoKaG9zdG5h bWUgPSBnbGFkb3MKdW5hbWUgLW0gPSB4ODZfNjQKdW5hbWUgLXIgPSAyLjYuMzktaGFyZGVuZWQt cjIKdW5hbWUgLXMgPSBMaW51eAp1bmFtZSAtdiA9ICMzIFNNUCBUdWUgSnVuIDI4IDE0OjQ4OjI4 IENFU1QgMjAxMQoKL3Vzci9iaW4vdW5hbWUgLXAgPSBJbnRlbChSKSBBdG9tKFRNKSBDUFUgRDUx MCBAIDEuNjZHSHoKL2Jpbi91bmFtZSAtWCAgICAgPSB1bmtub3duCgovYmluL2FyY2ggICAgICAg ICAgICAgID0gdW5rbm93bgovdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gdW5rbm93bgovdXNyL2Nv bnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgovdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gdW5rbm93 bgovYmluL21hY2hpbmUgICAgICAgICAgID0gdW5rbm93bgovdXNyL2Jpbi9vc2xldmVsICAgICAg ID0gdW5rbm93bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93bgoKUEFUSDogL3Vzci9s aWI2NC9wb3J0YWdlL2Jpbi9lYnVpbGQtaGVscGVycwpQQVRIOiAvdXNyL2xvY2FsL3NiaW4KUEFU SDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL3Vzci9zYmluClBBVEg6IC91c3IvYmluClBBVEg6IC9z YmluClBBVEg6IC9iaW4KUEFUSDogL29wdC9iaW4KUEFUSDogL3Vzci94ODZfNjQtcGMtbGludXgt Z251L2djYy1iaW4vNC41LjIKCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAjIwoj IyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjI2MDI6IGNoZWNraW5nIGZvciB4ODZfNjQtcGMt bGludXgtZ251LWdjYwpjb25maWd1cmU6MjYxODogZm91bmQgL3Vzci9iaW4veDg2XzY0LXBjLWxp bnV4LWdudS1nY2MKY29uZmlndXJlOjI2Mjk6IHJlc3VsdDogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MKY29uZmlndXJlOjI4OTg6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmln dXJlOjI5MDc6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC0tdmVyc2lvbiA+JjUKeDg2XzY0LXBj LWxpbnV4LWdudS1nY2MgKEdlbnRvbyBIYXJkZW5lZCA0LjUuMiBwMS4wLCBwaWUtMC40LjUpIDQu NS4yCkNvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KVGhp cyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25z LiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1cmU6MjkxODogJD8gPSAw CmNvbmZpZ3VyZToyOTA3OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtdiA+JjUKVXNpbmcgYnVp bHQtaW4gc3BlY3MuCkNPTExFQ1RfR0NDPS91c3IveDg2XzY0LXBjLWxpbnV4LWdudS9nY2MtYmlu LzQuNS4yL3g4Nl82NC1wYy1saW51eC1nbnUtZ2NjCkNPTExFQ1RfTFRPX1dSQVBQRVI9L3Vzci9s aWJleGVjL2djYy94ODZfNjQtcGMtbGludXgtZ251LzQuNS4yL2x0by13cmFwcGVyClRhcmdldDog eDg2XzY0LXBjLWxpbnV4LWdudQpDb25maWd1cmVkIHdpdGg6IC92YXIvdG1wL3BvcnRhZ2Uvc3lz LWRldmVsL2djYy00LjUuMi93b3JrL2djYy00LjUuMi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAt LWJpbmRpcj0vdXNyL3g4Nl82NC1wYy1saW51eC1nbnUvZ2NjLWJpbi80LjUuMiAtLWluY2x1ZGVk aXI9L3Vzci9saWIvZ2NjL3g4Nl82NC1wYy1saW51eC1nbnUvNC41LjIvaW5jbHVkZSAtLWRhdGFk aXI9L3Vzci9zaGFyZS9nY2MtZGF0YS94ODZfNjQtcGMtbGludXgtZ251LzQuNS4yIC0tbWFuZGly PS91c3Ivc2hhcmUvZ2NjLWRhdGEveDg2XzY0LXBjLWxpbnV4LWdudS80LjUuMi9tYW4gLS1pbmZv ZGlyPS91c3Ivc2hhcmUvZ2NjLWRhdGEveDg2XzY0LXBjLWxpbnV4LWdudS80LjUuMi9pbmZvIC0t d2l0aC1neHgtaW5jbHVkZS1kaXI9L3Vzci9saWIvZ2NjL3g4Nl82NC1wYy1saW51eC1nbnUvNC41 LjIvaW5jbHVkZS9nKystdjQgLS1ob3N0PXg4Nl82NC1wYy1saW51eC1nbnUgLS1idWlsZD14ODZf NjQtcGMtbGludXgtZ251IC0tZGlzYWJsZS1hbHRpdmVjIC0tZGlzYWJsZS1maXhlZC1wb2ludCAt LXdpdGhvdXQtcHBsIC0td2l0aG91dC1jbG9vZyAtLWRpc2FibGUtbHRvIC0tZW5hYmxlLW5scyAt LXdpdGhvdXQtaW5jbHVkZWQtZ2V0dGV4dCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1kaXNhYmxlLXdl cnJvciAtLWVuYWJsZS1zZWN1cmVwbHQgLS1lbmFibGUtbXVsdGlsaWIgLS1lbmFibGUtbGlibXVk ZmxhcCAtLWRpc2FibGUtbGlic3NwIC0tZW5hYmxlLWVzcCAtLWVuYWJsZS1saWJnb21wIC0tZW5h YmxlLWNsZCAtLXdpdGgtcHl0aG9uLWRpcj0vc2hhcmUvZ2NjLWRhdGEveDg2XzY0LXBjLWxpbnV4 LWdudS80LjUuMi9weXRob24gLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZSAtLWRpc2FibGUtbGli Z2NqIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtdGhy ZWFkcz1wb3NpeCAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS13 aXRoLWJ1Z3VybD1odHRwOi8vYnVncy5nZW50b28ub3JnLyAtLXdpdGgtcGtndmVyc2lvbj0nR2Vu dG9vIEhhcmRlbmVkIDQuNS4yIHAxLjAsIHBpZS0wLjQuNScKVGhyZWFkIG1vZGVsOiBwb3NpeApn Y2MgdmVyc2lvbiA0LjUuMiAoR2VudG9vIEhhcmRlbmVkIDQuNS4yIHAxLjAsIHBpZS0wLjQuNSkg CmNvbmZpZ3VyZToyOTE4OiAkPyA9IDAKY29uZmlndXJlOjI5MDc6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1WID4mNQp4ODZfNjQtcGMtbGludXgtZ251LWdjYzogJy1WJyBvcHRpb24gbXVzdCBo YXZlIGFyZ3VtZW50CmNvbmZpZ3VyZToyOTE4OiAkPyA9IDEKY29uZmlndXJlOjI5MDc6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1xdmVyc2lvbiA+JjUKeDg2XzY0LXBjLWxpbnV4LWdudS1nY2M6 IHVucmVjb2duaXplZCBvcHRpb24gJy1xdmVyc2lvbicKeDg2XzY0LXBjLWxpbnV4LWdudS1nY2M6 IG5vIGlucHV0IGZpbGVzCmNvbmZpZ3VyZToyOTE4OiAkPyA9IDEKY29uZmlndXJlOjI5Mzg6IGNo ZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJlOjI5NjA6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlICAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjI5NjQ6ICQ/ID0gMApjb25maWd1 cmU6MzAxMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMwMTU6IGNoZWNraW5nIGZvciBDIGNvbXBp bGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQpjb25maWd1cmU6MzAxNzogcmVzdWx0OiBhLm91 dApjb25maWd1cmU6MzAyMzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpjb25m aWd1cmU6MzAzMDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6MzAzNDogJD8gPSAwCmNvbmZpZ3VyZTozMDU2OiByZXN1bHQ6IApjb25maWd1cmU6 MzA3ODogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nCmNvbmZpZ3VyZToz MDg2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1P MiAtcGlwZSAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy ZTozMDkwOiAkPyA9IDAKY29uZmlndXJlOjMwOTc6IC4vY29uZnRlc3QKY29uZmlndXJlOjMxMDE6 ICQ/ID0gMApjb25maWd1cmU6MzExNjogcmVzdWx0OiBubwpjb25maWd1cmU6MzEyMTogY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjMxNDM6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlICBjb25mdGVzdC5jID4mNQpj b25maWd1cmU6MzE0NzogJD8gPSAwCmNvbmZpZ3VyZTozMTY4OiByZXN1bHQ6IG8KY29uZmlndXJl OjMxNzI6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpj b25maWd1cmU6MzE5MTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozMTkxOiAkPyA9IDAKY29uZmlndXJl OjMyMDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMjA5OiBjaGVja2luZyB3aGV0aGVyIHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIGFjY2VwdHMgLWcKY29uZmlndXJlOjMyMjk6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzIyOTogJD8gPSAw CmNvbmZpZ3VyZTozMjcwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzI4NzogY2hlY2tpbmcgZm9y IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1 cmU6MzM1MTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzM1MTogJD8gPSAwCmNvbmZpZ3VyZTozMzY0 OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZTozNDE3OiBjaGVja2luZyBidWlsZCBzeXN0 ZW0gdHlwZQpjb25maWd1cmU6MzQzMTogcmVzdWx0OiB4ODZfNjQtcGMtbGludXgtZ251CmNvbmZp Z3VyZTozNDUxOiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlCmNvbmZpZ3VyZTozNDY0OiByZXN1 bHQ6IHg4Nl82NC1wYy1saW51eC1nbnUKY29uZmlndXJlOjM0OTA6IGNoZWNraW5nIGhvdyB0byBy dW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTozNTIxOiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MzUyMTogJD8gPSAwCmNvbmZpZ3VyZTozNTM1 OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjk6Mjg6 IGZhdGFsIGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTozNTM1OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gt dW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJlOjM1 NjA6IHJlc3VsdDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUKY29uZmlndXJlOjM1ODA6IHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTozNTgwOiAkPyA9 IDAKY29uZmlndXJlOjM1OTQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5j CmNvbmZ0ZXN0LmM6OToyODogZmF0YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjM1OTQ6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICIiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVu dC5oPgpjb25maWd1cmU6MzYyMzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcg bGluZXMgYW5kIC1lCmNvbmZpZ3VyZTozNjgxOiByZXN1bHQ6IC9iaW4vZ3JlcApjb25maWd1cmU6 MzY4NjogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTozNzQ4OiByZXN1bHQ6IC9iaW4vZ3Jl cCAtRQpjb25maWd1cmU6Mzc1MzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMKY29u ZmlndXJlOjM3NzM6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzc3MzogJD8gPSAwCmNvbmZpZ3VyZToz ODQ2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1P MiAtcGlwZSAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy ZTozODQ2OiAkPyA9IDAKY29uZmlndXJlOjM4NDY6IC4vY29uZnRlc3QKY29uZmlndXJlOjM4NDY6 ICQ/ID0gMApjb25maWd1cmU6Mzg1NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4NzA6IGNoZWNr aW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6Mzg3MDogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToz ODcwOiAkPyA9IDAKY29uZmlndXJlOjM4NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODcwOiBj aGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6Mzg3MDogeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZTozODcwOiAkPyA9IDAKY29uZmlndXJlOjM4NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozODcw OiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmlndXJlOjM4NzA6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlICBjb25mdGVzdC5jID4mNQpjb25maWd1 cmU6Mzg3MDogJD8gPSAwCmNvbmZpZ3VyZTozODcwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg3 MDogY2hlY2tpbmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZTozODcwOiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjM4NzA6ICQ/ID0gMApjb25maWd1cmU6Mzg3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM4 NzA6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6Mzg3MDogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp Z3VyZTozODcwOiAkPyA9IDAKY29uZmlndXJlOjM4NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToz ODcwOiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3VyZTozODcwOiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjM4NzA6ICQ/ID0gMApjb25maWd1cmU6Mzg3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjM4NzA6IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZTozODcwOiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjM4NzA6ICQ/ID0gMApjb25maWd1cmU6Mzg3MDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjM4NzA6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6Mzg3MDogeDg2XzY0LXBj LWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZpZ3VyZTozODcwOiAkPyA9IDAKY29uZmlndXJlOjM4NzA6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTozODcwOiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjM4NzA6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlICBjb25mdGVzdC5jID4m NQpjb25maWd1cmU6Mzg3MDogJD8gPSAwCmNvbmZpZ3VyZTozODcwOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6Mzg4MjogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbgpj b25maWd1cmU6Mzg5NzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjA6MTM6IGVycm9yOiBleHBlY3Rl ZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdhJwpjb25m aWd1cmU6Mzg5NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFi bGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmbmRlZiBfX0FQUExFX0NDX18KfCAJICAgICAg IG5vdCBhIHVuaXZlcnNhbCBjYXBhYmxlIGNvbXBpbGVyCnwgCSAgICAgI2VuZGlmCnwgCSAgICAg dHlwZWRlZiBpbnQgZHVtbXk7CnwgCmNvbmZpZ3VyZTozOTQyOiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjM5NDI6ICQ/ID0gMApjb25maWd1cmU6Mzk2MDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMg LW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1 bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNjo0OiBlcnJvcjogJ25vdCcgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZ0ZXN0LmM6MjY6NDogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KY29uZnRlc3QuYzoyNjo4OiBlcnJvcjogZXhwZWN0ZWQgJzsnIGJl Zm9yZSAnYmlnJwpjb25maWd1cmU6Mzk2MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNT SCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRy b3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgp8IAkJI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7 CnwgI2lmIEJZVEVfT1JERVIgIT0gQklHX0VORElBTgp8IAkJIG5vdCBiaWcgZW5kaWFuCnwgCQkj ZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjQwODg6IHJlc3VsdDog bm8KY29uZmlndXJlOjQxMTI6IGNoZWNraW5nIGZvciBnYXdrCmNvbmZpZ3VyZTo0MTI4OiBmb3Vu ZCAvdXNyL2Jpbi9nYXdrCmNvbmZpZ3VyZTo0MTM5OiByZXN1bHQ6IGdhd2sKY29uZmlndXJlOjQx NTU6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo0MjI1 OiByZXN1bHQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FCmNvbmZpZ3VyZTo0MjQ1OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NDI0NTogJD8gPSAw CmNvbmZpZ3VyZTo0MjU5OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpj b25mdGVzdC5jOjE5OjI4OiBmYXRhbCBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NDI1OTog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo0Mjkw OiBjaGVja2luZyBmb3IgeDg2XzY0LXBjLWxpbnV4LWdudS1yYW5saWIKY29uZmlndXJlOjQzMDY6 IGZvdW5kIC91c3IvYmluL3g4Nl82NC1wYy1saW51eC1nbnUtcmFubGliCmNvbmZpZ3VyZTo0MzE3 OiByZXN1bHQ6IHg4Nl82NC1wYy1saW51eC1nbnUtcmFubGliCmNvbmZpZ3VyZTo0MzkzOiBjaGVj a2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZTo0NDYxOiByZXN1bHQ6 IC91c3IvYmluL2luc3RhbGwgLWMKY29uZmlndXJlOjQ0NzI6IGNoZWNraW5nIGZvciBlZ3JlcApj b25maWd1cmU6NDUzNDogcmVzdWx0OiAvYmluL2dyZXAgLUUKY29uZmlndXJlOjQ1NDE6IGNoZWNr aW5nIGZvciBhcgpjb25maWd1cmU6NDU1OTogZm91bmQgL3Vzci9iaW4vYXIKY29uZmlndXJlOjQ1 NzE6IHJlc3VsdDogL3Vzci9iaW4vYXIKY29uZmlndXJlOjQ1ODE6IGNoZWNraW5nIGZvciBjYXQK Y29uZmlndXJlOjQ1OTk6IGZvdW5kIC9iaW4vY2F0CmNvbmZpZ3VyZTo0NjExOiByZXN1bHQ6IC9i aW4vY2F0CmNvbmZpZ3VyZTo0NjIxOiBjaGVja2luZyBmb3Iga2lsbApjb25maWd1cmU6NDYzOTog Zm91bmQgL2Jpbi9raWxsCmNvbmZpZ3VyZTo0NjUxOiByZXN1bHQ6IC9iaW4va2lsbApjb25maWd1 cmU6NDY2MzogY2hlY2tpbmcgZm9yIHBlcmw1CmNvbmZpZ3VyZTo0Njk2OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo0NjYzOiBjaGVja2luZyBmb3IgcGVybApjb25maWd1cmU6NDY4MTogZm91bmQgL3Vz ci9iaW4vcGVybApjb25maWd1cmU6NDY5MzogcmVzdWx0OiAvdXNyL2Jpbi9wZXJsCmNvbmZpZ3Vy ZTo0NzA2OiBjaGVja2luZyBmb3Igc2VkCmNvbmZpZ3VyZTo0NzI0OiBmb3VuZCAvYmluL3NlZApj b25maWd1cmU6NDczNjogcmVzdWx0OiAvYmluL3NlZApjb25maWd1cmU6NDc0NzogY2hlY2tpbmcg Zm9yIGVudApjb25maWd1cmU6NDc4MDogcmVzdWx0OiBubwpjb25maWd1cmU6NDc4ODogY2hlY2tp bmcgZm9yIGJhc2gKY29uZmlndXJlOjQ4MDY6IGZvdW5kIC9iaW4vYmFzaApjb25maWd1cmU6NDgx ODogcmVzdWx0OiAvYmluL2Jhc2gKY29uZmlndXJlOjQ4Mjg6IGNoZWNraW5nIGZvciBrc2gKY29u ZmlndXJlOjQ4NTg6IHJlc3VsdDogL2Jpbi9iYXNoCmNvbmZpZ3VyZTo0ODY4OiBjaGVja2luZyBm b3Igc2gKY29uZmlndXJlOjQ4OTg6IHJlc3VsdDogL2Jpbi9iYXNoCmNvbmZpZ3VyZTo0OTA4OiBj aGVja2luZyBmb3Igc2gKY29uZmlndXJlOjQ5MjY6IGZvdW5kIC9iaW4vc2gKY29uZmlndXJlOjQ5 Mzg6IHJlc3VsdDogL2Jpbi9zaApjb25maWd1cmU6NDk0ODogY2hlY2tpbmcgZm9yIGdyb2ZmCmNv bmZpZ3VyZTo0OTY2OiBmb3VuZCAvdXNyL2Jpbi9ncm9mZgpjb25maWd1cmU6NDk3ODogcmVzdWx0 OiAvdXNyL2Jpbi9ncm9mZgpjb25maWd1cmU6NDk4ODogY2hlY2tpbmcgZm9yIG5yb2ZmCmNvbmZp Z3VyZTo1MDA2OiBmb3VuZCAvdXNyL2Jpbi9ucm9mZgpjb25maWd1cmU6NTAxODogcmVzdWx0OiAv dXNyL2Jpbi9ucm9mZgpjb25maWd1cmU6NTAyODogY2hlY2tpbmcgZm9yIG1hbmRvYwpjb25maWd1 cmU6NTA2MTogcmVzdWx0OiBubwpjb25maWd1cmU6NTA4NDogY2hlY2tpbmcgZm9yIGdyb3VwYWRk CmNvbmZpZ3VyZTo1MTAyOiBmb3VuZCAvdXNyL3NiaW4vZ3JvdXBhZGQKY29uZmlndXJlOjUxMTU6 IHJlc3VsdDogL3Vzci9zYmluL2dyb3VwYWRkCmNvbmZpZ3VyZTo1MTI1OiBjaGVja2luZyBmb3Ig dXNlcmFkZApjb25maWd1cmU6NTE0MzogZm91bmQgL3Vzci9zYmluL3VzZXJhZGQKY29uZmlndXJl OjUxNTY6IHJlc3VsdDogL3Vzci9zYmluL3VzZXJhZGQKY29uZmlndXJlOjUxNjY6IGNoZWNraW5n IGZvciBwa2dtawpjb25maWd1cmU6NTE5NDogcmVzdWx0OiBubwpjb25maWd1cmU6NTIxODogY2hl Y2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmls ZXMKY29uZmlndXJlOjUyNjM6IHJlc3VsdDogbm8KY29uZmlndXJlOjUyNjk6IGNoZWNraW5nIGZv ciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3Vy ZTo1Mjk0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjUyOTQ6ICQ/ID0gMApjb25maWd1cmU6NTMyNjog cmVzdWx0OiBubwpjb25maWd1cmU6NTQyNTogY2hlY2tpbmcgZm9yIGxvZ2luCmNvbmZpZ3VyZTo1 NDQzOiBmb3VuZCAvYmluL2xvZ2luCmNvbmZpZ3VyZTo1NDU1OiByZXN1bHQ6IC9iaW4vbG9naW4K Y29uZmlndXJlOjU0NzM6IGNoZWNraW5nIGZvciBwYXNzd2QKY29uZmlndXJlOjU0OTE6IGZvdW5k IC91c3IvYmluL3Bhc3N3ZApjb25maWd1cmU6NTUwMzogcmVzdWx0OiAvdXNyL2Jpbi9wYXNzd2QK Y29uZmlndXJlOjU1MjQ6IGNoZWNraW5nIGZvciBpbmxpbmUKY29uZmlndXJlOjU1NDA6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlICBjb25mdGVzdC5j ID4mNQpjb25maWd1cmU6NTU0MDogJD8gPSAwCmNvbmZpZ3VyZTo1NTQ4OiByZXN1bHQ6IGlubGlu ZQpjb25maWd1cmU6NTU2NzogY2hlY2tpbmcgd2hldGhlciBMTE9OR19NQVggaXMgZGVjbGFyZWQK Y29uZmlndXJlOjU1Njc6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTU2NzogJD8gPSAwCmNvbmZpZ3Vy ZTo1NTY3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU4ODogY2hlY2tpbmcgaWYgeDg2XzY0LXBj LWxpbnV4LWdudS1nY2Mgc3VwcG9ydHMgLVdhbGwKY29uZmlndXJlOjU1OTY6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsICBjb25mdGVzdC5j ID4mNQpjb25mdGVzdC5jOjIxOjY6IHdhcm5pbmc6IHJldHVybiB0eXBlIG9mICdtYWluJyBpcyBu b3QgJ2ludCcKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIxOjE5 OiB3YXJuaW5nOiAncmV0dXJuJyB3aXRoIGEgdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyB2 b2lkCmNvbmZpZ3VyZTo1NTk2OiAkPyA9IDAKY29uZmlndXJlOjU1OTc6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo1NjA4OiBjaGVja2luZyBpZiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyBzdXBwb3J0 cyAtV3BvaW50ZXItYXJpdGgKY29uZmlndXJlOjU2MTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2Nj IC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzoyMTo2OiB3YXJuaW5nOiByZXR1cm4gdHlwZSBvZiAnbWFpbicg aXMgbm90ICdpbnQnCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoy MToxOTogd2FybmluZzogJ3JldHVybicgd2l0aCBhIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5p bmcgdm9pZApjb25maWd1cmU6NTYxNjogJD8gPSAwCmNvbmZpZ3VyZTo1NjE3OiByZXN1bHQ6IHll cwpjb25maWd1cmU6NTYyODogY2hlY2tpbmcgaWYgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mgc3Vw cG9ydHMgLVd1bmluaXRpYWxpemVkCmNvbmZpZ3VyZTo1NjM2OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1 bmluaXRpYWxpemVkICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjIxOjY6IHdhcm5pbmc6IHJl dHVybiB0eXBlIG9mICdtYWluJyBpcyBub3QgJ2ludCcKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgpjb25mdGVzdC5jOjIxOjE5OiB3YXJuaW5nOiAncmV0dXJuJyB3aXRoIGEgdmFsdWUs IGluIGZ1bmN0aW9uIHJldHVybmluZyB2b2lkCmNvbmZpZ3VyZTo1NjM2OiAkPyA9IDAKY29uZmln dXJlOjU2Mzc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NjQ4OiBjaGVja2luZyBpZiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyBzdXBwb3J0cyAtV3NpZ24tY29tcGFyZQpjb25maWd1cmU6NTY1Njog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwg LVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAgY29uZnRlc3Qu YyA+JjUKY29uZnRlc3QuYzoyMTo2OiB3YXJuaW5nOiByZXR1cm4gdHlwZSBvZiAnbWFpbicgaXMg bm90ICdpbnQnCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMTox OTogd2FybmluZzogJ3JldHVybicgd2l0aCBhIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcg dm9pZApjb25maWd1cmU6NTY1NjogJD8gPSAwCmNvbmZpZ3VyZTo1NjU3OiByZXN1bHQ6IHllcwpj b25maWd1cmU6NTY2ODogY2hlY2tpbmcgaWYgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mgc3VwcG9y dHMgLVdmb3JtYXQtc2VjdXJpdHkKY29uZmlndXJlOjU2NzY6IHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3Vu aW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZ0ZXN0LmM6MjE6Njogd2FybmluZzogcmV0dXJuIHR5cGUgb2YgJ21haW4nIGlzIG5v dCAnaW50Jwpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjE6MTk6 IHdhcm5pbmc6ICdyZXR1cm4nIHdpdGggYSB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIHZv aWQKY29uZmlndXJlOjU2NzY6ICQ/ID0gMApjb25maWd1cmU6NTY3NzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjU2ODg6IGNoZWNraW5nIGlmIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIHN1cHBvcnRz IC1Xbm8tcG9pbnRlci1zaWduCmNvbmZpZ3VyZTo1Njk2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjIxOjY6IHdhcm5pbmc6IHJldHVybiB0eXBl IG9mICdtYWluJyBpcyBub3QgJ2ludCcKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpj b25mdGVzdC5jOjIxOjE5OiB3YXJuaW5nOiAncmV0dXJuJyB3aXRoIGEgdmFsdWUsIGluIGZ1bmN0 aW9uIHJldHVybmluZyB2b2lkCmNvbmZpZ3VyZTo1Njk2OiAkPyA9IDAKY29uZmlndXJlOjU2OTc6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NzA4OiBjaGVja2luZyBpZiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyBzdXBwb3J0cyAtV25vLXVudXNlZC1yZXN1bHQKY29uZmlndXJlOjU3MTY6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0ICBjb25mdGVzdC5jID4mNQpj b25mdGVzdC5jOjIxOjY6IHdhcm5pbmc6IHJldHVybiB0eXBlIG9mICdtYWluJyBpcyBub3QgJ2lu dCcKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIxOjE5OiB3YXJu aW5nOiAncmV0dXJuJyB3aXRoIGEgdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyB2b2lkCmNv bmZpZ3VyZTo1NzE2OiAkPyA9IDAKY29uZmlndXJlOjU3MTc6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo1NzI4OiBjaGVja2luZyBpZiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyBzdXBwb3J0cyAtZm5v LXN0cmljdC1hbGlhc2luZwpjb25maWd1cmU6NTczNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0 aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2ln biAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6MjE6Njogd2FybmluZzogcmV0dXJuIHR5cGUgb2YgJ21haW4nIGlzIG5vdCAn aW50Jwpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjE6MTk6IHdh cm5pbmc6ICdyZXR1cm4nIHdpdGggYSB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIHZvaWQK Y29uZmlndXJlOjU3MzY6ICQ/ID0gMApjb25maWd1cmU6NTczNzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjU3NDc6IGNoZWNraW5nIGdjYyB2ZXJzaW9uCmNvbmZpZ3VyZTo1NzU4OiByZXN1bHQ6IDQu NS4yCmNvbmZpZ3VyZTo1NzYxOiBjaGVja2luZyBpZiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyBh Y2NlcHRzIC1mbm8tYnVpbHRpbi1tZW1zZXQKY29uZmlndXJlOjU3NzI6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0 LmMgID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjM6MTog d2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgpjb25maWd1 cmU6NTc3MjogJD8gPSAwCmNvbmZpZ3VyZTo1NzczOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTc4 OTogY2hlY2tpbmcgaWYgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mgc3VwcG9ydHMgLWZzdGFjay1w cm90ZWN0b3ItYWxsCmNvbmZpZ3VyZTo1ODAyOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBj b25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1 bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRl ci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0 aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2Vycm9yICAtV2wsLU8xIC1XbCwtLWFz LW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdlcnJvciBjb25mdGVzdC5jICA+JjUKY29u ZmlndXJlOjU4MDI6ICQ/ID0gMApjb25maWd1cmU6NTgwMzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjU4MDc6IGNoZWNraW5nIGlmIC1mc3RhY2stcHJvdGVjdG9yLWFsbCB3b3Jrcwpjb25maWd1cmU6 NTgyMjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29t cGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1 bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCBj b25mdGVzdC5jICA+JjUKY29uZmlndXJlOjU4MjI6ICQ/ID0gMApjb25maWd1cmU6NTgyMjogLi9j b25mdGVzdApjb25maWd1cmU6NTgyMjogJD8gPSAwCmNvbmZpZ3VyZTo1ODIzOiByZXN1bHQ6IHll cwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgYnN0cmluZy5oIHVzYWJpbGl0eQpjb25maWd1cmU6 NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NTU6MjE6IGZhdGFsIGVycm9yOiBic3RyaW5nLmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxl Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BB VEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRF X19OT05OVUxMX18gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpbmNsdWRlIDxic3RyaW5nLmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBic3RyaW5nLmggcHJlc2VuY2UKY29uZmlndXJlOjYw MTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MjI6 MjE6IGZhdGFsIGVycm9yOiBic3RyaW5nLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9w ZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4 LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNL ICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3 ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8YnN0cmluZy5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBu bwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIGJzdHJpbmcuaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgY3J5cHQuaCB1c2FiaWxpdHkKY29u ZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgY3J5cHQuaCBwcmVzZW5j ZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMK Y29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjYwMTY6IGNoZWNraW5nIGZvciBjcnlwdC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHll cwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgY3J5cHRvL3NoYTIuaCB1c2FiaWxpdHkKY29uZmln dXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUg LVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3It YWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjU2OjI1OiBmYXRhbCBlcnJvcjogY3J5cHRv L3NoYTIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi UG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW RV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2Rl ZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9B VFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxjcnlw dG8vc2hhMi5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hl Y2tpbmcgY3J5cHRvL3NoYTIuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxp bnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoyMzoyNTogZmF0YWwgZXJyb3I6 IGNyeXB0by9zaGEyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVy bWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0gi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFi bGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2lu Igp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5l IEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGNyeXB0by9zaGEyLmg+CmNvbmZpZ3Vy ZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgY3J5cHRvL3No YTIuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg ZGlyZW50LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYw MTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNo ZWNraW5nIGRpcmVudC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIGRpcmVudC5oCmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZW5kaWFu LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAt bWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxp emVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1X bm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0 IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5n IGVuZGlhbi5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIGVuZGlhbi5oCmNvbmZpZ3Vy ZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZmVhdHVyZXMuaCB1 c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJj aD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQg LVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11 bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZz dGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAw CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZmVh dHVyZXMuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBmZWF0dXJlcy5oCmNvbmZpZ3Vy ZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZmNudGwuaCB1c2Fi aWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1u YXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdz aWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVz ZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZmNudGwu aCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNv bmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBmY250bC5oCmNvbmZpZ3VyZTo2MDE2OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZmxvYXRpbmdwb2ludC5oIHVzYWJp bGl0eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjA6Mjc6IGZhdGFsIGVy cm9yOiBmbG9hdGluZ3BvaW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9w ZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0gg UG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBt aW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmlu L2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAj ZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwg I2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lT X1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNU RENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4K fCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8 ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQg U1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9y eS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8 ZmxvYXRpbmdwb2ludC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgZmxvYXRpbmdwb2ludC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjI3OjI3OiBmYXRh bCBlcnJvcjogZmxvYXRpbmdwb2ludC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVu U1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1k ZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAi L2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2Qi CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZ UFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0gg MQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxmbG9hdGluZ3BvaW50Lmg+CmNvbmZp Z3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgZmxvYXRp bmdwb2ludC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVj a2luZyBnZXRvcHQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAt V3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2lu dGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVp bHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1 cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgZ2V0b3B0LmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgZ2V0b3B0 LmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBn bG9iLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt YyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRp YWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVt c2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6 ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNr aW5nIGdsb2IuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBnbG9iLmgKY29uZmlndXJl OjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBpYS5oIHVzYWJpbGl0 eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjI6MTY6IGZhdGFsIGVycm9y OiBpYS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQ b3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVm aW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FU VFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9G RUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9Q VF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8aWEuaD4KY29uZmlndXJlOjYwMTY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGlhLmggcHJlc2VuY2UKY29uZmln dXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0 LmM6Mjk6MTY6IGZhdGFsIGVycm9yOiBpYS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJP cGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5p eC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFD SyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNz d2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVf Q1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFO X0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAx CnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGlhLmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgaWEuaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgaWFmLmggdXNhYmlsaXR5CmNvbmZp Z3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo2MjoxNzogZmF0YWwgZXJyb3I6IGlhZi5o OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZp Z3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9Q QVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJF U19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEK fCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8aWFmLmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBpYWYuaCBwcmVzZW5jZQpjb25maWd1cmU6 NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoy OToxNzogZmF0YWwgZXJyb3I6IGlhZi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVu U1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1k ZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAi L2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2Qi CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZ UFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0gg MQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwg I2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGlhZi5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0 OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIGlhZi5oCmNvbmZpZ3VyZTo2MDE2OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBsaW1pdHMuaCB1c2FiaWxpdHkKY29u ZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgbGltaXRzLmggcHJlc2Vu Y2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5j CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo2MDE2OiBjaGVja2luZyBmb3IgbGltaXRzLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBsb2dpbi5oIHVzYWJpbGl0eQpjb25maWd1cmU6 NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjM6MTk6IGZhdGFsIGVycm9yOiBsb2dpbi5oOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRI X1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9f Tk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVO VF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19I IDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAj ZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxsb2dp bi5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg bG9naW4uaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzozMDoxOTogZmF0YWwgZXJyb3I6IGxvZ2luLmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJl OjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhf UEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19O T05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0gg MQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNk ZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxsb2dpbi5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0 OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIGxvZ2luLmgKY29uZmlndXJlOjYwMTY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG1haWxsb2NrLmggdXNhYmlsaXR5 CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1 cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG1haWxsb2NrLmgg cHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25m dGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgbWFpbGxvY2suaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG5kaXIuaCB1c2FiaWxpdHkKY29u ZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjY0OjE4OiBmYXRhbCBlcnJvcjogbmRp ci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNv bmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5l IF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFU VVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9I IDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8bmRpci5oPgpjb25maWd1cmU6NjAxNjogcmVz dWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgbmRpci5oIHByZXNlbmNlCmNvbmZpZ3Vy ZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5j OjMxOjE4OiBmYXRhbCBlcnJvcjogbmRpci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJP cGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5p eC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFD SyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNz d2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVf Q1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFO X0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAx CnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVm aW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG5kaXIuaD4KY29uZmlndXJlOjYwMTY6IHJlc3Vs dDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBuZGlyLmgKY29uZmlndXJlOjYwMTY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG5ldC9pZl90dW4uaCB1c2FiaWxp dHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjY0OjI0OiBmYXRhbCBlcnJv cjogbmV0L2lmX3R1bi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRl cm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NI Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRh YmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJv dC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dp biIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmlu ZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZp bmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBI QVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGlu Y2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAj IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZk ZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYm IGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYK fCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8 ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gK fCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gK fCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwg IyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8bmV0L2lmX3R1bi5oPgpj b25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgbmV0L2lm X3R1bi5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt RSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjMxOjI0OiBmYXRhbCBlcnJvcjogbmV0L2lmX3R1bi5o OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZp Z3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9Q QVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJF U19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEK fCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9NQUlMTE9DS19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PG5ldC9pZl90dW4uaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6 IGNoZWNraW5nIGZvciBuZXQvaWZfdHVuLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29u ZmlndXJlOjYwMTY6IGNoZWNraW5nIG5ldGRiLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRl c3QuYyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG5ldGRiLmggcHJlc2VuY2UKY29uZmlndXJlOjYw MTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2 OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVj a2luZyBmb3IgbmV0ZGIuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYw MTY6IGNoZWNraW5nIG5ldGdyb3VwLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzo2NToyMjogZmF0YWwgZXJyb3I6IG5ldGdyb3VwLmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Im9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJ Tl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BS T0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18g MQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZp bmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFW RV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxM T0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8bmV0Z3JvdXAuaD4KY29uZmln dXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIG5ldGdyb3VwLmgg cHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25m dGVzdC5jCmNvbmZ0ZXN0LmM6MzI6MjI6IGZhdGFsIGVycm9yOiBuZXRncm91cC5oOiBObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg TE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NX RF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVM TF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAj ZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5l IEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9N QUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxuZXRncm91cC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpj b25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIG5ldGdyb3VwLmgKY29uZmlndXJlOjYwMTY6IHJl c3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHBhbS9wYW1fYXBwbC5oIHVzYWJpbGl0 eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjU6MjY6IGZhdGFsIGVycm9y OiBwYW0vcGFtX2FwcGwuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0 ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNT SCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRy b3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9n aW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVm aW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUg SEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERC X0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNpbmNsdWRlIDxwYW0vcGFtX2FwcGwuaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29u ZmlndXJlOjYwMTY6IGNoZWNraW5nIHBhbS9wYW1fYXBwbC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2 MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjMy OjI2OiBmYXRhbCBlcnJvcjogcGFtL3BhbV9hcHBsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNz aC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZB TExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmlu L3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUg SEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9F TkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05U TF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNk ZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHBhbS9wYW1fYXBwbC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgZm9yIHBhbS9wYW1fYXBwbC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBwYXRocy5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjAx NjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBwYXRocy5oIHByZXNlbmNlCmNvbmZpZ3Vy ZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6 NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjog Y2hlY2tpbmcgZm9yIHBhdGhzLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo2MDE2OiBjaGVja2luZyBwb2xsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjYwMTY6IGNoZWNraW5nIHBvbGwuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0g MApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZv ciBwb2xsLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVj a2luZyBwdHkuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3Vu aW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVy LXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRp bi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6 NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjog Y2hlY2tpbmcgcHR5LmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYw MTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgcHR5LmgKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyByZWFkcGFzc3Bo cmFzZS5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0 aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2ln biAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1l bXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6Njg6 Mjg6IGZhdGFsIGVycm9yOiByZWFkcGFzc3BocmFzZS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5z c2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9G QUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jp bi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5l IEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVf RU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNO VExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEK fCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAj ZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUg SEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHJlYWRwYXNzcGhyYXNl Lmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBy ZWFkcGFzc3BocmFzZS5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjM1OjI4OiBmYXRhbCBlcnJvcjogcmVh ZHBhc3NwaHJhc2UuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJt aW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4i CnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5l IEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFW RV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0gg MQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVm aW5lIEhBVkVfUFRZX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8cmVh ZHBhc3NwaHJhc2UuaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6 IGNoZWNraW5nIGZvciByZWFkcGFzc3BocmFzZS5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBycGMvdHlwZXMuaCB1c2FiaWxpdHkKY29uZmlndXJl OjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBl IC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdm b3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxs ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgcnBjL3R5cGVzLmggcHJlc2VuY2UK Y29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNv bmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo2MDE2OiBjaGVja2luZyBmb3IgcnBjL3R5cGVzLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzZWN1cml0eS9wYW1fYXBwbC5oIHVzYWJpbGl0 eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzZWN1cml0eS9w YW1fYXBwbC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIHNlY3VyaXR5L3BhbV9hcHBs LmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBz aGEyLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt YyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRp YWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVt c2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo3MDox ODogZmF0YWwgZXJyb3I6IHNoYTIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxh dGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi T3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNT SCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2 QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9i aW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8 ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBU X0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEK fCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNk ZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZF X05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9I IDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5j bHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMg aW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRl ZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYg ZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8 ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwg IyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8 ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8 ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAj IGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzaGEyLmg+CmNvbmZpZ3Vy ZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzaGEyLmggcHJlc2Vu Y2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5j CmNvbmZ0ZXN0LmM6Mzc6MTg6IGZhdGFsIGVycm9yOiBzaGEyLmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5z c2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi b3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9H UkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91 c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNk ZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFW RV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9C X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0gg MQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVf UlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHNoYTIuaD4KY29uZmlndXJlOjYwMTY6IHJl c3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzaGEyLmgKY29uZmlndXJlOjYw MTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHNoYWRvdy5oIHVzYWJpbGl0 eQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzaGFkb3cuaCBw cmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0 ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzaGFkb3cuaApjb25maWd1cmU6NjAxNjogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN0ZGRlZi5oIHVzYWJpbGl0eQpjb25m aWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIg LXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFy ZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQg LWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rv ci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYw MTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzdGRkZWYuaCBwcmVzZW5j ZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMK Y29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjYwMTY6IGNoZWNraW5nIGZvciBzdGRkZWYuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1 cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzdHJpbmdz LmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBz eXMvYXVkaXQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3Vu aW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVy LXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRp bi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5j Ojc1OjIzOiBmYXRhbCBlcnJvcjogc3lzL2F1ZGl0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNz aC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZB TExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmlu L3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUg SEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9F TkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05U TF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNk ZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBI QVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhB VkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNpbmNsdWRlIDxzeXMvYXVkaXQuaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmln dXJlOjYwMTY6IGNoZWNraW5nIHN5cy9hdWRpdC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjQyOjIzOiBm YXRhbCBlcnJvcjogc3lzL2F1ZGl0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGls YXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg Ik9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5T U0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRl dkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hF QURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIv YmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIK fCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQ VF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAx CnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAj ZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUg SEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFW RV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExf SCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9X X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL2F1ZGl0Lmg+CmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL2F1ZGl0LmgK Y29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9i aXR5cGVzLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYw MTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNo ZWNraW5nIHN5cy9iaXR5cGVzLmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL2Jp dHlwZXMuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNr aW5nIHN5cy9ic2R0dHkuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0 aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1w b2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t YnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25m dGVzdC5jOjc2OjI0OiBmYXRhbCBlcnJvcjogc3lzL2JzZHR0eS5oOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVu c3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg Im9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJP R1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIv dXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAj ZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhB VkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xP Ql9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19I IDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNk ZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZF X1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2Rl ZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHN5cy9ic2R0 dHkuaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5n IHN5cy9ic2R0dHkuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzo0MzoyNDogZmF0YWwgZXJyb3I6IHN5cy9i c2R0dHkuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi UG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW RV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2Rl ZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9B VFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUg SEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVf RkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRP UFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEK fCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNk ZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhB VkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NF Q1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBI QVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19C SVRZUEVTX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL2JzZHR0 eS5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg Zm9yIHN5cy9ic2R0dHkuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgc3lzL2NkZWZzLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9jZGVmcy5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2 OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjog JD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tp bmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NjAxNjogY2hlY2tpbmcgc3lzL2Rpci5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjAxNjogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2lu dGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0 eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzeXMvZGlyLmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAk PyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2lu ZyBmb3Igc3lzL2Rpci5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgc3lzL21tYW4uaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRl ci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkg LVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4m NQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL21tYW4uaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5n IGZvciBzeXMvbW1hbi5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgc3lzL25kaXIuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRl ci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkg LVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4m NQpjb25mdGVzdC5jOjc5OjIyOiBmYXRhbCBlcnJvcjogc3lzL25kaXIuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi b3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg IiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lO X1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJP RyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAx CnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZF X0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExP Q0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEK fCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUg SEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19NTUFOX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzeXMvbmRpci5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0 OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL25kaXIuaCBwcmVzZW5jZQpjb25maWd1 cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3Qu Yzo0NjoyMjogZmF0YWwgZXJyb3I6IHN5cy9uZGlyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNz aC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZB TExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmlu L3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUg SEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9F TkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05U TF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNk ZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBI QVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhB VkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NE RUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1B Tl9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy9uZGlyLmg+CmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lz L25kaXIuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tp bmcgc3lzL3BvbGwuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAt V3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2lu dGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVp bHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1 cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgc3lzL3BvbGwuaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBj LWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25m aWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzeXMv cG9sbC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tp bmcgc3lzL3ByY3RsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGgg LVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9p bnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1 aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYw MTY6IGNoZWNraW5nIHN5cy9wcmN0bC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIHN5 cy9wcmN0bC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hl Y2tpbmcgc3lzL3BzdGF0LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJp dGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8t cG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5v LWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29u ZnRlc3QuYzo4MToyMzogZmF0YWwgZXJyb3I6IHN5cy9wc3RhdC5oOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVu c3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg Im9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJP R1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIv dXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAj ZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhB VkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xP Ql9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19I IDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNk ZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZF X1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2Rl ZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUFJDVExfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgI2luY2x1ZGUgPHN5cy9wc3RhdC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBu bwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL3BzdGF0LmggcHJlc2VuY2UKY29uZmlndXJl OjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6 NDg6MjM6IGZhdGFsIGVycm9yOiBzeXMvcHN0YXQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3No LXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFM TEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4v cGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBI QVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VO RElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRM X0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwg I2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2Rl ZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhB VkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFW RV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RF RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFO X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RM X0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3BzdGF0Lmg+CmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lz L3BzdGF0LmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNr aW5nIHN5cy9zZWxlY3QuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0 aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1w b2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t YnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NjAxNjogY2hlY2tpbmcgc3lzL3NlbGVjdC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAw CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9y IHN5cy9zZWxlY3QuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6 IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL3N0cmVhbS5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjAx NjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODM6MjQ6IGZhdGFsIGVycm9yOiBzeXMvc3RyZWFtLmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxl Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BB VEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRF X19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVT X0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8 ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhB VkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9I IDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9Q QU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERE RUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KY29uZmln dXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9zdHJlYW0u aCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNv bmZ0ZXN0LmMKY29uZnRlc3QuYzo1MDoyNDogZmF0YWwgZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6 NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9Q QVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05P Tk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRf SCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAx CnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2Rl ZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhB VkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9Q QVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8 ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9B UFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN5cy9zdHJlYW0uaD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJl OjYwMTY6IGNoZWNraW5nIGZvciBzeXMvc3RyZWFtLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDog bm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9zdHJvcHRzLmggdXNhYmlsaXR5CmNvbmZp Z3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAx NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9zdHJvcHRzLmggcHJl c2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVz dC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL3N0cm9wdHMuaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9zdHJ0aW8uaCB1c2FiaWxp dHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjg0OjI0OiBmYXRhbCBlcnJv cjogc3lzL3N0cnRpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRl cm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NI Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRh YmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJv dC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dp biIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmlu ZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZp bmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBI QVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJf SCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNk ZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAj ZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RST1BUU19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9z dGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJf SAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9N RU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0 cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3Ry aW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGlu dHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0 ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlz dGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8c3lzL3N0cnRpby5oPgpjb25maWd1cmU6NjAxNjog cmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL3N0cnRpby5oIHByZXNlbmNl CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpj b25mdGVzdC5jOjUxOjI0OiBmYXRhbCBlcnJvcjogc3lzL3N0cnRpby5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJv cGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5f UFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9H ICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEK fCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVm aW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5l IEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVf R0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9D S19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8 ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBI QVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwg I2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy9zdHJ0aW8uaD4KY29uZmlndXJlOjYwMTY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciBzeXMvc3RydGlvLmgKY29u ZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy9zdGF0 dmZzLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt YyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRp YWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVt c2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6 ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNr aW5nIHN5cy9zdGF0dmZzLmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJl OjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL3N0YXR2 ZnMuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5n IHN5cy9zeXNtYWNyb3MuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0 aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1w b2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t YnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 NjAxNjogY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8g PSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg Zm9yIHN5cy9zeXNtYWNyb3MuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjYwMTY6IGNoZWNraW5nIHN5cy90aW1lLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHN5cy90aW1lLmggcHJlc2VuY2UKY29uZmlndXJlOjYw MTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2 OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVj a2luZyBmb3Igc3lzL3RpbWUuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjYwMTY6IGNoZWNraW5nIHN5cy90aW1lcnMuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1X cG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2Vj dXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVz dC5jID4mNQpjb25mdGVzdC5jOjg3OjI0OiBmYXRhbCBlcnJvcjogc3lzL3RpbWVycy5oOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BB U1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9O TlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9I IDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEK fCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVm aW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFW RV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BB VEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwg I2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQ UExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNS T1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5j bHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMg aW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRl ZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYg ZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8 ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwg IyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8 ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8 ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAj IGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzeXMvdGltZXJzLmg+CmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzeXMvdGlt ZXJzLmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1F ICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6NTQ6MjQ6IGZhdGFsIGVycm9yOiBzeXMvdGltZXJzLmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjYwMTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxl Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BB VEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRF X19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVT X0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8 ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhB VkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9I IDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9Q QU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERE RUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZ U01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdGltZXJzLmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL3RpbWVycy5oCmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBzeXMvdW4uaCB1c2FiaWxp dHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZp Z3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgc3lzL3VuLmgg cHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25m dGVzdC5jCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3Igc3lzL3VuLmgKY29uZmlndXJlOjYwMTY6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyB0aW1lLmggdXNhYmlsaXR5CmNvbmZp Z3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAx NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHRpbWUuaCBwcmVzZW5jZQpj b25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29u ZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjYwMTY6IGNoZWNraW5nIGZvciB0aW1lLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo2MDE2OiBjaGVja2luZyB0bXBkaXIuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25m dGVzdC5jID4mNQpjb25mdGVzdC5jOjg5OjIwOiBmYXRhbCBlcnJvcjogdG1wZGlyLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYw MTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFT U1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05O VUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZp bmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZF X01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFU SFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAj ZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQ TF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JP U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9I IDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9T VERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1 ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRl IDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8dG1wZGlyLmg+CmNvbmZpZ3VyZTo2MDE2 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyB0bXBkaXIuaCBwcmVzZW5jZQpj b25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29u ZnRlc3QuYzo1NjoyMDogZmF0YWwgZXJyb3I6IHRtcGRpci5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3No Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9w ZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JB TV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNy L2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVm aW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhB VkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVf RkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9I IDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEK fCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZp bmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQ Q19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBI QVZFX1RJTUVfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx0bXBkaXIu aD4KY29uZmlndXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZv ciB0bXBkaXIuaApjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hl Y2tpbmcgdHR5ZW50LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGgg LVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9p bnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1 aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYw MTY6IGNoZWNraW5nIHR0eWVudC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZp Z3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIHR0eWVu dC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcg dWNyZWQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2Nj IC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5p dGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNp Z24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1t ZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjkw OjE5OiBmYXRhbCBlcnJvcjogdWNyZWQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3Bl blNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgt ZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sg Ii9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dk Igp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NS WVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9I IDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8 ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBI QVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9M TF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFE T1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxz eXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRl IDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUg PHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVf U1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVk IEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNs dWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1 ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNs dWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNs dWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVk ZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHVjcmVkLmg+CmNvbmZpZ3VyZTo2MDE2 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyB1Y3JlZC5oIHByZXNlbmNlCmNv bmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25m dGVzdC5jOjU3OjE5OiBmYXRhbCBlcnJvcjogdWNyZWQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVu c3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1f RkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9i aW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmlu ZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZF X0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZD TlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwg I2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5l IEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUg SEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19N TUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BS Q1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFW RV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDx1Y3JlZC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25m aWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIHVjcmVkLmgKY29uZmlndXJlOjYwMTY6IHJlc3VsdDog bm8KY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6NjAxNjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIHVzZXJzZWMuaCB1c2FiaWxpdHkK Y29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjkxOjIxOiBmYXRhbCBlcnJvcjog dXNlcnNlYy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0 ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAj ZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZF X0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmlu ZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFW RV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dF VE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0gg MQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwg I2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUg SEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5l IEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMg aW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8 ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBp ZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMg JiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRp Zgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19I CnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNf SAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRf SAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gK fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx1c2Vyc2VjLmg+CmNv bmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyB1c2Vyc2Vj LmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBj b25mdGVzdC5jCmNvbmZ0ZXN0LmM6NTg6MjE6IGZhdGFsIGVycm9yOiB1c2Vyc2VjLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYw MTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFT U1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05O VUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZp bmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZF X01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFU SFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAj ZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQ TF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JP U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9I IDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDx1c2Vyc2VjLmg+CmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBj aGVja2luZyBmb3IgdXNlcnNlYy5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo2MDE2OiBjaGVja2luZyB1dGlsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzo5MToxODogZmF0YWwgZXJyb3I6IHV0aWwuaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3Bl bnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BS T0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAi L3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwg I2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBI QVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dM T0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tf SCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAj ZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFW RV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNk ZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZp bmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAjaW5jbHVkZSA8dXRpbC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25m aWd1cmU6NjAxNjogY2hlY2tpbmcgdXRpbC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2MDE2OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjU4OjE4OiBmYXRh bCBlcnJvcjogdXRpbC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBpbGF0aW9uIHRl cm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NI Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRh YmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJv dC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dp biIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmlu ZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZp bmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBI QVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJf SCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNk ZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAj ZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8dXRpbC5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBu bwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgZm9yIHV0aWwuaApjb25maWd1cmU6NjAxNjogcmVz dWx0OiBubwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgdXRpbWUuaCB1c2FiaWxpdHkKY29uZmln dXJlOjYwMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUg LVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3It YWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tpbmcgdXRpbWUuaCBwcmVzZW5jZQpj b25maWd1cmU6NjAxNjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29u ZmlndXJlOjYwMTY6ICQ/ID0gMApjb25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjYwMTY6IGNoZWNraW5nIGZvciB1dGltZS5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpj b25maWd1cmU6NjAxNjogY2hlY2tpbmcgdXRtcC5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjAxNjog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwg LVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1z ZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3Qt YWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyB1dG1wLmggcHJlc2VuY2UKY29uZmlndXJlOjYw MTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2MDE2 OiAkPyA9IDAKY29uZmlndXJlOjYwMTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MDE2OiBjaGVj a2luZyBmb3IgdXRtcC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAx NjogY2hlY2tpbmcgdXRtcHguaCB1c2FiaWxpdHkKY29uZmlndXJlOjYwMTY6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1h cml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVdu by1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpj b25maWd1cmU6NjAxNjogJD8gPSAwCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NjAxNjogY2hlY2tpbmcgdXRtcHguaCBwcmVzZW5jZQpjb25maWd1cmU6NjAxNjogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYwMTY6ICQ/ID0gMApj b25maWd1cmU6NjAxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYwMTY6IGNoZWNraW5nIGZvciB1 dG1weC5oCmNvbmZpZ3VyZTo2MDE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjAxNjogY2hlY2tp bmcgdmlzLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo2MDE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo5 NDoxNzogZmF0YWwgZXJyb3I6IHZpcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2MDE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVu U1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1k ZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAi L2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2Qi CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZ UFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0gg MQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwg I2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhB VkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xM X0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURP V19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhB VkVfVVRNUFhfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgI2luY2x1ZGUgPHZpcy5oPgpjb25maWd1cmU6NjAxNjogcmVzdWx0OiBubwpjb25m aWd1cmU6NjAxNjogY2hlY2tpbmcgdmlzLmggcHJlc2VuY2UKY29uZmlndXJlOjYwMTY6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6NjE6MTc6IGZhdGFs IGVycm9yOiB2aXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJt aW5hdGVkLgpjb25maWd1cmU6NjAxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4i CnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5l IEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFW RV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0gg MQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVm aW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0gg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8dmlzLmg+CmNvbmZpZ3VyZTo2 MDE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE2OiBjaGVja2luZyBmb3IgdmlzLmgKY29uZmln dXJlOjYwMTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMzA6IGNoZWNraW5nIGZvciBsYXN0bG9n LmgKY29uZmlndXJlOjYwMzA6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjAzMDogJD8gPSAwCmNvbmZp Z3VyZTo2MDMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjA0OTogY2hlY2tpbmcgZm9yIHN5cy9w dG1zLmgKY29uZmlndXJlOjYwNDk6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1u YXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdz aWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVz ZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjY4OjIyOiBmYXRhbCBl cnJvcjogc3lzL3B0bXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0 ZXJtaW5hdGVkLgpjb25maWd1cmU6NjA0OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNT SCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRy b3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9n aW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVm aW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUg SEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERC X0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAj ZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwg I2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBY X0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAKfCAjaWZkZWYgSEFWRV9TWVNfU1RSRUFNX0gKfCAjIGluY2x1ZGUgPHN5cy9zdHJlYW0uaD4K fCAjZW5kaWYKfCAKfCAKfCAjaW5jbHVkZSA8c3lzL3B0bXMuaD4KY29uZmlndXJlOjYwNDk6IHJl c3VsdDogbm8KY29uZmlndXJlOjYwNjg6IGNoZWNraW5nIGZvciBsb2dpbl9jYXAuaApjb25maWd1 cmU6NjA2ODogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBp cGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAt V2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjY6MjM6IGZhdGFsIGVycm9yOiBsb2dpbl9j YXAuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpj b25maWd1cmU6NjA2ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9y dGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBI QVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmlu ZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRS SUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVB VFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRf SCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZp bmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVf UFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VS SVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZF X1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19E SVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9M TF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VM RUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU Uk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAx CnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZp bmUgSEFWRV9MQVNUTE9HX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgCnwgCnwgI2luY2x1ZGUgPGxvZ2luX2NhcC5oPgpjb25maWd1cmU6 NjA2ODogcmVzdWx0OiBubwpjb25maWd1cmU6NjA4NTogY2hlY2tpbmcgZm9yIHN5cy9tb3VudC5o CmNvbmZpZ3VyZTo2MDg1OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYwODU6ICQ/ID0gMApjb25maWd1 cmU6NjA4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY3Mzg6IGNoZWNraW5nIGxpbnV4L2lmX3R1 bi5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjczODogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMg LW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFs aXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAt V25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNl dCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NzM4OiAk PyA9IDAKY29uZmlndXJlOjY3Mzg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NzM4OiBjaGVja2lu ZyBsaW51eC9pZl90dW4uaCBwcmVzZW5jZQpjb25maWd1cmU6NjczODogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjY3Mzg6ICQ/ID0gMApjb25maWd1cmU6 NjczODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY3Mzg6IGNoZWNraW5nIGZvciBsaW51eC9pZl90 dW4uaApjb25maWd1cmU6NjczODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjc0NTA6IGNoZWNraW5n IGNvbXBpbGVyIGFuZCBmbGFncyBmb3Igc2FuaXR5CmNvbmZpZ3VyZTo3NDY0OiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIGNvbmZ0ZXN0LmMgID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNv bmZ0ZXN0LmM6NzY6MTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g J2V4aXQnCmNvbmZ0ZXN0LmM6NzY6MTI6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKY29uZmlndXJlOjc0NjQ6ICQ/ ID0gMApjb25maWd1cmU6NzQ2NDogLi9jb25mdGVzdApjb25maWd1cmU6NzQ2NDogJD8gPSAwCmNv bmZpZ3VyZTo3NDY1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzQ4MDogY2hlY2tpbmcgZm9yIHlw X21hdGNoCmNvbmZpZ3VyZTo3NDgwOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVz dCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRp YWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVt c2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgID4mNQov dmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NSYXhqdlIubzog SW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgeXBfbWF0Y2gnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZTo3NDgwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQ b3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVm aW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FU VFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9G RUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9Q VF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2Rl ZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFW RV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VD VVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhB VkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJ VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q T0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T RUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RU WUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2Rl ZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVm aW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8 ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBf RVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmlu ZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVf TElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hf VFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgeXBfbWF0Y2ggdG8gYW4gaW5ub2N1b3VzIHZhcmlh bnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB5cF9tYXRjaC4KfCAgICBGb3IgZXhhbXBs ZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVm aW5lIHlwX21hdGNoIGlubm9jdW91c195cF9tYXRjaAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8g ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAg d2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB5cF9tYXRjaCAoKTsgYmVsb3cuCnwgICAgIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNl CnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgeXBfbWF0Y2gKfCAK fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg b2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAj ZW5kaWYKfCBjaGFyIHlwX21hdGNoICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3lwX21hdGNoIHx8IGRlZmluZWQgX19zdHViX19f eXBfbWF0Y2gKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIHlwX21hdGNoICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NzQ4MDog cmVzdWx0OiBubwpjb25maWd1cmU6NzQ4NDogY2hlY2tpbmcgZm9yIHlwX21hdGNoIGluIC1sbnNs CmNvbmZpZ3VyZTo3NTA5OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFy Y2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVk IC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8t dW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1m c3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxuc2wgICA+JjUK Y29uZmlndXJlOjc1MDk6ICQ/ID0gMApjb25maWd1cmU6NzUxODogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjc1MzE6IGNoZWNraW5nIGZvciBzZXRzb2Nrb3B0CmNvbmZpZ3VyZTo3NTMxOiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2Fs bCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0 LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0t YXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxuc2wgID4mNQpjb25maWd1cmU6NzUzMTogJD8gPSAwCmNv bmZpZ3VyZTo3NTMxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzU4NTogY2hlY2tpbmcgZm9yIGRp cm5hbWUKY29uZmlndXJlOjc1ODU6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0 IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlh bGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24g LVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1z ZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbG5zbCAg PiY1CmNvbmZpZ3VyZTo3NTg1OiAkPyA9IDAKY29uZmlndXJlOjc1ODU6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo3NTkyOiBjaGVja2luZyBsaWJnZW4uaCB1c2FiaWxpdHkKY29uZmlndXJlOjc1OTI6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6NzU5MjogJD8gPSAwCmNvbmZpZ3VyZTo3NTkyOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NzU5MjogY2hlY2tpbmcgbGliZ2VuLmggcHJlc2VuY2UKY29uZmlndXJl Ojc1OTI6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo3 NTkyOiAkPyA9IDAKY29uZmlndXJlOjc1OTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3NTkyOiBj aGVja2luZyBmb3IgbGliZ2VuLmgKY29uZmlndXJlOjc1OTI6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo3NzExOiBjaGVja2luZyBmb3IgZ2V0c3BuYW0KY29uZmlndXJlOjc3MTE6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1X cG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2Vj dXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgY29uZnRlc3QuYyAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo3NzExOiAkPyA9IDAKY29uZmln dXJlOjc3MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3NzU3OiBjaGVja2luZyBmb3IgbGlicmFy eSBjb250YWluaW5nIGJhc2VuYW1lCmNvbmZpZ3VyZTo3Nzg4OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXIt YXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1X bm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNv bmZ0ZXN0LmMgLWxuc2wgID4mNQpjb25maWd1cmU6Nzc4ODogJD8gPSAwCmNvbmZpZ3VyZTo3ODA1 OiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmlndXJlOjc4NDU6IGNoZWNraW5nIHpsaWIuaCB1 c2FiaWxpdHkKY29uZmlndXJlOjc4NDU6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJj aD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQg LVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11 bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZz dGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Nzg0NTogJD8gPSAw CmNvbmZpZ3VyZTo3ODQ1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Nzg0NTogY2hlY2tpbmcgemxp Yi5oIHByZXNlbmNlCmNvbmZpZ3VyZTo3ODQ1OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAg Y29uZnRlc3QuYwpjb25maWd1cmU6Nzg0NTogJD8gPSAwCmNvbmZpZ3VyZTo3ODQ1OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6Nzg0NTogY2hlY2tpbmcgZm9yIHpsaWIuaApjb25maWd1cmU6Nzg0NTog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjc4NTM6IGNoZWNraW5nIGZvciBkZWZsYXRlIGluIC1segpj b25maWd1cmU6Nzg3ODogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNo PW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAt V3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVu dXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0 YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVj dG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1seiAgLWxuc2wgID4m NQpjb25maWd1cmU6Nzg3ODogJD8gPSAwCmNvbmZpZ3VyZTo3ODg3OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6Nzk1MzogY2hlY2tpbmcgZm9yIHBvc3NpYmx5IGJ1Z2d5IHpsaWIKY29uZmlndXJlOjc5 ODY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHogLWxuc2wgID4mNQpjb25mdGVzdC5j OiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6ODc6Mzogd2FybmluZzogaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2V4aXQnCmNvbmZ0ZXN0LmM6ODc6Mzogd2FybmluZzog aW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdl eGl0Jwpjb25maWd1cmU6Nzk4NjogJD8gPSAwCmNvbmZpZ3VyZTo3OTg2OiAuL2NvbmZ0ZXN0CmZv dW5kIHpsaWIgdmVyc2lvbiAxLjIuNSAoMTAyMDUwMCkKY29uZmlndXJlOjc5ODY6ICQ/ID0gMApj b25maWd1cmU6Nzk4NzogcmVzdWx0OiBubwpjb25maWd1cmU6ODAxMTogY2hlY2tpbmcgZm9yIHN0 cmNhc2VjbXAKY29uZmlndXJlOjgwMTE6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0 ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5p dGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNp Z24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1t ZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0 YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHog LWxuc2wgID4mNQpjb25mdGVzdC5jOjEwMjo2OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBm b3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3N0cmNhc2VjbXAnCmNvbmZpZ3VyZTo4MDExOiAkPyA9IDAK Y29uZmlndXJlOjgwMTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MDYwOiBjaGVja2luZyBmb3Ig dXRpbWVzCmNvbmZpZ3VyZTo4MDYwOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVz dCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRp YWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVt c2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx6IC1s bnNsICA+JjUKY29uZmlndXJlOjgwNjA6ICQ/ID0gMApjb25maWd1cmU6ODA2MDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjgxMTY6IGNoZWNraW5nIGxpYnV0aWwuaCB1c2FiaWxpdHkKY29uZmlndXJl OjgxMTY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBl IC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdm b3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxs ICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjExMzoyMTogZmF0YWwgZXJyb3I6IGxpYnV0aWwu aDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25m aWd1cmU6ODExNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFi bGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBf UEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJV VEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9E SVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVS RVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAx CnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVm aW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUg SEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZ X0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZ X1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NU RERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNU X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9Q VFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwg I2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUg SEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQ QU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVm aW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5P IEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNF X0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVY X0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9D T01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVf TElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9I IDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVm aW5lIEhBVkVfVVRJTUVTIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0 ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8 ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1P UllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmlu Zy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5n cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGlu dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQu aD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8bGlidXRpbC5oPgpjb25maWd1cmU6ODExNjogcmVzdWx0 OiBubwpjb25maWd1cmU6ODExNjogY2hlY2tpbmcgbGlidXRpbC5oIHByZXNlbmNlCmNvbmZpZ3Vy ZTo4MTE2OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRSAgY29uZnRlc3QuYwpjb25mdGVzdC5j OjgwOjIxOiBmYXRhbCBlcnJvcjogbGlidXRpbC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo4MTE2OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gt dW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxM QkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9w YXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhB VkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5E SUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExf SCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAj ZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVm aW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFW RV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZF X1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5f SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVm aW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExP Q0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8 ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAg Ii92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01f QURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RV Tl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVO X1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJO QU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAx CnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bGlidXRpbC5oPgpjb25maWd1cmU6ODExNjogcmVz dWx0OiBubwpjb25maWd1cmU6ODExNjogY2hlY2tpbmcgZm9yIGxpYnV0aWwuaApjb25maWd1cmU6 ODExNjogcmVzdWx0OiBubwpjb25maWd1cmU6ODEyNjogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29u dGFpbmluZyBsb2dpbgpjb25maWd1cmU6ODE1NzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8g Y29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1X dW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50 ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWls dGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVk IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5j IC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIv dGVtcC9jY3M2RlZYaS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4 MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBsb2dpbicKY29sbGVjdDI6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjgxNTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9w ZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0gg UG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBt aW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmlu L2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAj ZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwg I2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVm aW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFW RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9O RVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAx CnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9V VE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01P VU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NX RF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBM SU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cv YnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8 ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEK fCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9B RiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5l IEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu ICJDIgp8ICNlbmRpZgp8IGNoYXIgbG9naW4gKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1 cm4gbG9naW4gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4MTU3OiB4ODZf NjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAt V2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9y bWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0 cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVds LC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsICAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6 ODE1NzogJD8gPSAwCmNvbmZpZ3VyZTo4MTc0OiByZXN1bHQ6IC1sdXRpbApjb25maWd1cmU6ODE4 NzogY2hlY2tpbmcgZm9yIGZtdF9zY2FsZWQKY29uZmlndXJlOjgxODc6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVk ZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQt bWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjQnk1VjBILm86IEluIGZ1bmN0aW9uIGBtYWluJzoK Y29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZtdF9zY2Fs ZWQnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4MTg3OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9H SU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9Q Uk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9f IDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVm aW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhB VkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlM TE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0gg MQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmlu ZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAx CnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwg I2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf VVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0df SCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdF IDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUg U1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVm aW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2Rl ZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8 ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwg I2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNk ZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUg SEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElN RVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSBmbXRfc2NhbGVkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgZm10X3NjYWxlZC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxs aW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGZtdF9zY2FsZWQg aW5ub2N1b3VzX2ZtdF9zY2FsZWQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0 dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBj b25mbGljdCB3aXRoIGNoYXIgZm10X3NjYWxlZCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAK fCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNs dWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZm10X3NjYWxlZAp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgZm10X3NjYWxlZCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMg Zm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdp dGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0 aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq Lwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9mbXRfc2NhbGVkIHx8IGRlZmluZWQgX19zdHViX19fZm10 X3NjYWxlZAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1 cm4gZm10X3NjYWxlZCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjgxODc6 IHJlc3VsdDogbm8KY29uZmlndXJlOjgxODc6IGNoZWNraW5nIGZvciBsb2dvdXQKY29uZmlndXJl OjgxODc6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUK Y29uZmlndXJlOjgxODc6ICQ/ID0gMApjb25maWd1cmU6ODE4NzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgxODc6IGNoZWNraW5nIGZvciB1cGR3dG1wCmNvbmZpZ3VyZTo4MTg3OiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4MTg3OiAk PyA9IDAKY29uZmlndXJlOjgxODc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MTg3OiBjaGVja2lu ZyBmb3IgbG9nd3RtcApjb25maWd1cmU6ODE4NzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8g Y29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1X dW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50 ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWls dGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVk IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5j IC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODE4NzogJD8gPSAwCmNvbmZpZ3VyZTo4 MTg3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODE5OTogY2hlY2tpbmcgZm9yIHN0cmZ0aW1lCmNv bmZpZ3VyZTo4MTk5OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9 bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1X c2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51 c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3Rh Y2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5z bCAgPiY1CmNvbmZ0ZXN0LmM6MTA3OjY6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBi dWlsdC1pbiBmdW5jdGlvbiAnc3RyZnRpbWUnCmNvbmZpZ3VyZTo4MTk5OiAkPyA9IDAKY29uZmln dXJlOjgxOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjU0OiBjaGVja2luZyBmb3IgR0xPQl9B TFRESVJGVU5DIHN1cHBvcnQKY29uZmlndXJlOjgyNzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4 Mjg1OiBjaGVja2luZyBmb3IgZ2xfbWF0Y2hjIGZpZWxkIGluIGdsb2JfdApjb25maWd1cmU6ODI5 ODogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzo5 MDoxMjogZXJyb3I6ICdnbG9iX3QnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2dsX21hdGNoYycKY29u ZmlndXJlOjgyOTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRh YmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUg X1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRV UkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0gg MQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5l IEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BU WV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklU WV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElS X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVD VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJP UFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5l IEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUg UEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2Rl ZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJO TyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVT RV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5V WF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5f Q09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZF X0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5f SCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2Rl ZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVf TE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAg MQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5D IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgICNpbmNsdWRlIDxnbG9iLmg+CnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBnbG9iX3QgZzsgZy5nbF9tYXRjaGMgPSAxOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6ODMwODogcmVzdWx0OiBubwpjb25maWd1cmU6ODMxNjogY2hlY2tp bmcgZm9yIGdsX3N0YXR2IGFuZCBHTE9CX0tFRVBTVEFUIGV4dGVuc2lvbnMgZm9yIGdsb2IKY29u ZmlndXJlOjgzMzU6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNv bmZ0ZXN0LmM6OTI6MjogZXJyb3I6ICNlcnJvciAiZ2xvYiBkb2VzIG5vdCBzdXBwb3J0IEdMT0Jf S0VFUFNUQVQgZXh0ZW5zaW9uIgpjb25mdGVzdC5jOjk1OjI6IGVycm9yOiAnZ2xvYl90JyBoYXMg bm8gbWVtYmVyIG5hbWVkICdnbF9zdGF0dicKY29uZnRlc3QuYzo5NToxNDogZXJyb3I6ICdOVUxM JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZnRlc3QuYzo5NTox NDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNl IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjgzMzU6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5z c2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi b3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9H UkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91 c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNk ZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFW RV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9C X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0gg MQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVf UlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVm aW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5l IEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0gg MQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNk ZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVV U0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BB VEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJ TlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmlu ZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5l IFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBI QVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JB U0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwg I2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhB VkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJG VElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgICNpbmNsdWRlIDxnbG9iLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAjaWZu ZGVmIEdMT0JfS0VFUFNUQVQKfCAjZXJyb3IgImdsb2IgZG9lcyBub3Qgc3VwcG9ydCBHTE9CX0tF RVBTVEFUIGV4dGVuc2lvbiIKfCAjZW5kaWYKfCBnbG9iX3QgZzsKfCBnLmdsX3N0YXR2ID0gTlVM TDsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjgzNDU6IHJlc3VsdDogbm8K Y29uZmlndXJlOjgzNTI6IGNoZWNraW5nIHdoZXRoZXIgR0xPQl9OT01BVENIIGlzIGRlY2xhcmVk CmNvbmZpZ3VyZTo4MzUyOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgzNTI6ICQ/ID0gMApjb25maWd1 cmU6ODM1MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzNjU6IGNoZWNraW5nIHdoZXRoZXIgc3Ry dWN0IGRpcmVudCBhbGxvY2F0ZXMgc3BhY2UgZm9yIGRfbmFtZQpjb25maWd1cmU6ODM4NDogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25mdGVzdC5j OiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6OTA6MjM6IHdhcm5pbmc6IGltcGxpY2l0 IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdleGl0Jwpjb25mdGVzdC5jOjkwOjMyOiB3YXJuaW5n OiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24g J2V4aXQnCmNvbmZpZ3VyZTo4Mzg0OiAkPyA9IDAKY29uZmlndXJlOjgzODQ6IC4vY29uZnRlc3QK Y29uZmlndXJlOjgzODQ6ICQ/ID0gMApjb25maWd1cmU6ODM4NTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjg0MDE6IGNoZWNraW5nIGZvciAvcHJvYy9waWQvZmQgZGlyZWN0b3J5CmNvbmZpZ3VyZTo4 NDA3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIGFyYzRyYW5kb20K Y29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJj aD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQg LVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11 bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZz dGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1s bnNsICA+JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2Nj VFp0b0VILm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVu ZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFyYzRyYW5kb20nCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAx IGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVu U1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBv cnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWlu ZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9s b2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2Rl ZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNk ZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmlu ZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVf TElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVU REJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8 ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEK fCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg SEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRN UFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VO VF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0Rf UFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElO S19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0 bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAj ZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwg I2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVm aW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBI QVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAx CnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZp bmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xP Ql9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAj ZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZp bmUgYXJjNHJhbmRvbSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+ IGRlY2xhcmVzIGFyYzRyYW5kb20uCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBhcmM0cmFuZG9tIGlubm9j dW91c19hcmM0cmFuZG9tCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIGFyYzRyYW5kb20gKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lm ZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8 YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFyYzRyYW5kb20KfCAKfCAvKiBPdmVycmlk ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFy IGFyYzRyYW5kb20gKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcg c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAj aWYgZGVmaW5lZCBfX3N0dWJfYXJjNHJhbmRvbSB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FyYzRyYW5k b20KfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGFy YzRyYW5kb20gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgYXJjNHJhbmRvbV9idWYKY29uZmln dXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+ JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2Njem5GVUow Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYGFyYzRyYW5kb21fYnVmJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBl eGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNT SCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRy b3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9n aW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVm aW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUg SEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERC X0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAj ZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwg I2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBY X0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRf SCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BS RUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktf T1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1w Igp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2Rl ZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNk ZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEK fCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFW RV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8 ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5l IEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0Jf SEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2Rl ZmluZSBIQVZFX1BST0NfUElEIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5l IGFyYzRyYW5kb21fYnVmIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMu aD4gZGVjbGFyZXMgYXJjNHJhbmRvbV9idWYuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8 bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBhcmM0cmFuZG9t X2J1ZiBpbm5vY3VvdXNfYXJjNHJhbmRvbV9idWYKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRl ZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdo aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYXJjNHJhbmRvbV9idWYgKCk7IGJlbG93Lgp8ICAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAj ZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFyYzRyYW5k b21fYnVmCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhcmM0cmFuZG9tX2J1ZiAoKTsKfCAvKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwg ICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVh bGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs IG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hcmM0cmFuZG9tX2J1 ZiB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FyYzRyYW5kb21fYnVmCnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBhcmM0cmFuZG9tX2J1ZiAoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjg5 NjQ6IGNoZWNraW5nIGZvciBhcmM0cmFuZG9tX3VuaWZvcm0KY29uZmlndXJlOjg5NjQ6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1X YWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3Jt YXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9y dGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjVEpmUEdtLm86IEluIGZ1bmN0aW9u IGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g YGFyYzRyYW5kb21fdW5pZm9ybScKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMK Y29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBv cnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZp bmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRU UklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhB VkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZF QVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BU X0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVm aW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZF X1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNV UklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf RElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BP TExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NF TEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZ RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVm aW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZp bmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwg I2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9F UlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5l IFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9M SU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9U VU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBI QVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJH RU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwg I2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhB VkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dU TVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJG VU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9Q Uk9DX1BJRCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhcmM0cmFuZG9t X3VuaWZvcm0gdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNs YXJlcyBhcmM0cmFuZG9tX3VuaWZvcm0uCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGlt aXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBhcmM0cmFuZG9tX3Vu aWZvcm0gaW5ub2N1b3VzX2FyYzRyYW5kb21fdW5pZm9ybQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIg dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAg ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBhcmM0cmFuZG9tX3VuaWZvcm0gKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IGFyYzRyYW5kb21fdW5pZm9ybQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0 IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3Bs dXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgYXJjNHJhbmRvbV91bmlmb3JtICgp Owp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo IGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1 bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19z dHViX2FyYzRyYW5kb21fdW5pZm9ybSB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FyYzRyYW5kb21fdW5p Zm9ybQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g YXJjNHJhbmRvbV91bmlmb3JtICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIGFzcHJpbnRmCmNv bmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9 bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1X c2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51 c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3Rh Y2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5z bCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgYjY0X250b3AKY29uZmlndXJlOjg5NjQ6IHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBl IC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdm b3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxs ICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAv cG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjSDFXMUNPLm86IEluIGZ1bmN0 aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gYGI2NF9udG9wJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFU SF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVf X05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNf SCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwg I2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5l IEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFW RV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0gg MQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BB TV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERF Rl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lT TUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFW RV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1f VFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5l IFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQ RVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JU TVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lG X1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01Q QVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElC TlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEK fCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5l IEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dP VVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwg I2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElE IDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAv KiBEZWZpbmUgYjY0X250b3AgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyBiNjRfbnRvcC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGI2NF9udG9wIGlubm9j dW91c19iNjRfbnRvcAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNy b3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0 IHdpdGggY2hhciBiNjRfbnRvcCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYg X19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3Nl cnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYjY0X250b3AKfCAKfCAvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq Lwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGI2NF9u dG9wICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5n IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmlu ZWQgX19zdHViX2I2NF9udG9wIHx8IGRlZmluZWQgX19zdHViX19fYjY0X250b3AKfCBjaG9rZSBt ZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGI2NF9udG9wICgpOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1 cmU6ODk2NDogY2hlY2tpbmcgZm9yIF9fYjY0X250b3AKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9ydGFn ZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjOU1vQWg4Lm86IEluIGZ1bmN0aW9uIGBt YWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9f YjY0X250b3AnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4 OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BB U1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9O TlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9I IDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEK fCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVm aW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFW RV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BB VEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwg I2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQ UExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNS T1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5f SCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xB U1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlf S0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BU X1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0K fCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAx CnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVO X0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9B RiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wg MQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNk ZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFW RV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAx CnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVm aW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8 ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERl ZmluZSBfX2I2NF9udG9wIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMu aD4gZGVjbGFyZXMgX19iNjRfbnRvcC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIF9fYjY0X250b3AgaW5u b2N1b3VzX19fYjY0X250b3AKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgX19iNjRfbnRvcCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRz Lmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAj aWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRl IDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgX19iNjRfbnRvcAp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgX19iNjRfbnRvcCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9y IGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGgg RU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGlu ZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8 ICNpZiBkZWZpbmVkIF9fc3R1Yl9fX2I2NF9udG9wIHx8IGRlZmluZWQgX19zdHViX19fX19iNjRf bnRvcAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g X19iNjRfbnRvcCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJl c3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBiNjRfcHRvbgpjb25maWd1cmU6 ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29t cGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1 bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQov dmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2M3THdqbXIubzog SW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgYjY0X3B0b24nCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQ b3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVm aW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FU VFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9G RUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9Q VF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2Rl ZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFW RV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VD VVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhB VkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJ VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q T0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T RUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RU WUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2Rl ZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVm aW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8 ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBf RVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmlu ZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVf TElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hf VFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElC R0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8 ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBI QVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dX VE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElS RlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVf UFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIERlZmluZSBiNjRfcHRvbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIGI2NF9wdG9uLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAx MWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgYjY0X3B0 b24gaW5ub2N1b3VzX2I2NF9wdG9uCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIGI2NF9wdG9uICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1p dHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8 bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8 ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1 ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBiNjRfcHRvbgp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgYjY0X3B0b24gKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcg c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAj aWYgZGVmaW5lZCBfX3N0dWJfYjY0X3B0b24gfHwgZGVmaW5lZCBfX3N0dWJfX19iNjRfcHRvbgp8 IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYjY0X3B0 b24gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgX19iNjRfcHRvbgpjb25maWd1cmU6ODk2NDog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBp cGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAt V2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3Rt cC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NOQkhKMUsubzogSW4gZnVu Y3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgX19iNjRfcHRvbicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29u ZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRh YmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUg X1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRV UkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0gg MQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5l IEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BU WV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklU WV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElS X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVD VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJP UFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5l IEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUg UEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2Rl ZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJO TyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVT RV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5V WF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5f Q09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZF X0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5f SCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2Rl ZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVf TE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAg MQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5D IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9D X1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgLyogRGVmaW5lIF9fYjY0X3B0b24gdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2Ug PGxpbWl0cy5oPiBkZWNsYXJlcyBfX2I2NF9wdG9uLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAx MWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgX19iNjRf cHRvbiBpbm5vY3VvdXNfX19iNjRfcHRvbgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5l IF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2gg Y2FuIGNvbmZsaWN0IHdpdGggY2hhciBfX2I2NF9wdG9uICgpOyBiZWxvdy4KfCAgICAgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8 ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAq Lwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAj IGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBfX2I2NF9wdG9uCnwgCnwg LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2Vu ZGlmCnwgY2hhciBfX2I2NF9wdG9uICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX19fYjY0X3B0b24gfHwgZGVmaW5lZCBfX3N0dWJf X19fX2I2NF9wdG9uCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBfX2I2NF9wdG9uICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIGJjb3B5CmNvbmZp Z3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0 aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2ln bi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2Vk LXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2st cHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3It YWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAg PiY1CmNvbmZ0ZXN0LmM6MTEyOjY6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWls dC1pbiBmdW5jdGlvbiAnYmNvcHknCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5 NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgYmluZHJlc3Zwb3J0 X3NhCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAt bWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxp emVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1X bm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0 IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1w cm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1s eiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVt cC9jY1NxTEVLZS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYp OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBiaW5kcmVzdnBvcnRfc2EnCmNvbGxlY3QyOiBsZCBy ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJP cGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5p eC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFD SyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNz d2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVf Q1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFO X0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAx CnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVm aW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5l IEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9Q T0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NI QURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRW RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5l IEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tF RF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNk ZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92 YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURK VVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9M SU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BS RVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1F IDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwg I2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFW RV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAg MQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNk ZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01B VENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAx CnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVm aW5lIGJpbmRyZXN2cG9ydF9zYSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGlt aXRzLmg+IGRlY2xhcmVzIGJpbmRyZXN2cG9ydF9zYS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVgg MTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGJpbmRy ZXN2cG9ydF9zYSBpbm5vY3VvdXNfYmluZHJlc3Zwb3J0X3NhCnwgCnwgLyogU3lzdGVtIGhlYWRl ciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8 ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGJpbmRyZXN2cG9ydF9zYSAoKTsgYmVs b3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp bmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0 cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYg YmluZHJlc3Zwb3J0X3NhCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBiaW5kcmVzdnBvcnRfc2EgKCk7CnwgLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfYmlu ZHJlc3Zwb3J0X3NhIHx8IGRlZmluZWQgX19zdHViX19fYmluZHJlc3Zwb3J0X3NhCnwgY2hva2Ug bWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBiaW5kcmVzdnBvcnRf c2EgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgY2xvY2sKY29uZmlndXJlOjg5NjQ6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1X YWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3Jt YXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5 NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNo ZWNraW5nIGZvciBjbG9zZWZyb20KY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1h cml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVdu by1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFz LW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29u ZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9v cGVuc3NoLTUuOF9wMi90ZW1wL2NjdGVLR0dRLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRl c3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGNsb3NlZnJvbScKY29s bGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5z c2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi b3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9H UkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91 c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNk ZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFW RV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9C X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0gg MQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVf UlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVm aW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5l IEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0gg MQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNk ZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVV U0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BB VEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJ TlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmlu ZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5l IFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBI QVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JB U0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwg I2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhB VkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJG VElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9DX1BJRCAxCnwgI2RlZmluZSBIQVZF X0FTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfQkNPUFkgMQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBjbG9zZWZyb20gdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBjbG9zZWZyb20uCnwg ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCnwgI2RlZmluZSBjbG9zZWZyb20gaW5ub2N1b3VzX2Nsb3NlZnJvbQp8IAp8IC8qIFN5 c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJv dG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBjbG9zZWZyb20gKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIGNsb3NlZnJvbQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgY2xvc2Vmcm9tICgpOwp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK fCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3Jt YWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2Nsb3NlZnJvbSB8 fCBkZWZpbmVkIF9fc3R1Yl9fX2Nsb3NlZnJvbQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gY2xvc2Vmcm9tICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcg Zm9yIGRpcmZkCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25m dGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZz dGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1 dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgZmNobW9kCmNvbmZpZ3Vy ZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxs IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1 CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo4OTY0OiBjaGVja2luZyBmb3IgZmNob3duCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAk PyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2lu ZyBmb3IgZnJlZWFkZHJpbmZvCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJp dGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8t cG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5v LWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0 ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmln dXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgZnN0YXR2 ZnMKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1t YXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6 ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVdu by11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQg LWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6 IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBmdXRpbWVzCmNvbmZpZ3VyZTo4OTY0 OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwt TzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZp Z3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4 OTY0OiBjaGVja2luZyBmb3IgZ2V0YWRkcmluZm8KY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1X cG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2Vj dXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5n IGZvciBnZXRjd2QKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNv bmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3Vu aW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVy LXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRp bi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAt ZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAt bHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2 NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBnZXRncm91cGxpc3QK Y29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJj aD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQg LVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11 bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZz dGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1s bnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBnZXRuYW1laW5mbwpjb25maWd1cmU6ODk2 NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIg LXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFy ZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQg LWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rv ci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25m aWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODk2NDogY2hlY2tpbmcgZm9yIGdldG9wdApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2lu dGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0 eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVds LC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRl ZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAw CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9y IGdldHBlZXJlaWQKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNv bmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3Vu aW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVy LXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRp bi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAt ZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAt bHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUu OF9wMi90ZW1wL2NjY2dvckdPLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRl eHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldHBlZXJlaWQnCmNvbGxlY3QyOiBs ZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gt dW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxM QkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9w YXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhB VkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5E SUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExf SCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAj ZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVm aW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFW RV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZF X1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5f SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVm aW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExP Q0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8 ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAg Ii92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01f QURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RV Tl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVO X1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJO QU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAx CnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUg SEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdU TVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8 ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9O T01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5U RiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZp bmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZD SE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFU VkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEK fCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0cGVlcmVpZCB0byBhbiBpbm5vY3Vv dXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHBlZXJlaWQuCnwgICAg Rm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4g ICovCnwgI2RlZmluZSBnZXRwZWVyZWlkIGlubm9jdW91c19nZXRwZWVyZWlkCnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90 b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldHBlZXJlaWQgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIGdldHBlZXJlaWQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1 cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldHBlZXJlaWQgKCk7CnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZ2V0cGVlcmVp ZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldHBlZXJlaWQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8 IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGdldHBlZXJlaWQgKCk7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVj a2luZyBmb3IgZ2V0cGVlcnVjcmVkCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXIt YXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1X bm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNv bmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mv b3BlbnNzaC01LjhfcDIvdGVtcC9jY2t3cncxNS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0 ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRwZWVydWNyZWQn CmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJv cGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5f UFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9H ICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEK fCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVm aW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5l IEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVf R0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9D S19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8 ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBI QVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwg I2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2Rl ZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRN UF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEK fCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BU X1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5l IF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmlu ZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNk ZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2Rl ZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZp bmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFW RV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMg MQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmlu ZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVf U1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUg SEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xP Q0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERSSU5GTyAxCnwgI2RlZmlu ZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAxCnwgI2RlZmluZSBIQVZF X0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VU R1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8ICNkZWZpbmUgSEFWRV9H RVRPUFQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0cGVlcnVjcmVk IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 cGVlcnVjcmVkLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJl cyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZ2V0cGVlcnVjcmVkIGlubm9jdW91c19nZXRw ZWVydWNyZWQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgZ2V0cGVlcnVjcmVkICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBnZXRwZWVydWNyZWQKfCAKfCAvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdl dHBlZXJ1Y3JlZCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1 bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5P U1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBz dGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNp ZiBkZWZpbmVkIF9fc3R1Yl9nZXRwZWVydWNyZWQgfHwgZGVmaW5lZCBfX3N0dWJfX19nZXRwZWVy dWNyZWQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJu IGdldHBlZXJ1Y3JlZCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6 IHJlc3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBfZ2V0cHR5CmNvbmZpZ3Vy ZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxs IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1 Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY1NlZEk4by5v OiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBfZ2V0cHR5Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1 cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi UG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW RV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2Rl ZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9B VFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUg SEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVf RkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRP UFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEK fCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNk ZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhB VkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NF Q1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBI QVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19C SVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9U VFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVf SCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNk ZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2Rl ZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIK fCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQ X0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZp bmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZF X0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NI X1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5l IEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJ QkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEK fCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUg SEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9H V1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJ UkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZF X1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09Q WSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZp bmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9G UkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZV VElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENX RCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJ TkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg LyogRGVmaW5lIF9nZXRwdHkgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyBfZ2V0cHR5Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgX2dldHB0eSBpbm5vY3Vv dXNfX2dldHB0eQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp dGggY2hhciBfZ2V0cHR5ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4 aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NU RENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5o Pgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBfZ2V0cHR5CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVz ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBfZ2V0cHR5ICgp Owp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo IGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1 bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19z dHViX19nZXRwdHkgfHwgZGVmaW5lZCBfX3N0dWJfX19fZ2V0cHR5CnwgY2hva2UgbWUKfCAjZW5k aWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBfZ2V0cHR5ICgpOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDog Y2hlY2tpbmcgZm9yIGdldHJsaW1pdApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVy LWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAt V25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0t YXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBj b25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNv bmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIGdl dHR0eWVudApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRl c3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0 aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2ln biAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1l bXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3Rh Y2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRp bCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIGdsb2IKY29uZmlndXJlOjg5 NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29u ZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl Ojg5NjQ6IGNoZWNraW5nIGZvciBncm91cF9mcm9tX2dpZApjb25maWd1cmU6ODk2NDogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0 YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NRb0c4UnUubzogSW4gZnVuY3Rpb24g YG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg Z3JvdXBfZnJvbV9naWQnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9Q QVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJF U19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEK fCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBI QVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlf SCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlf UEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE REVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BU U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T WVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBI QVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBB TV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZp bmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8g RVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0Vf QlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhf SUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NP TVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9M SUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0gg MQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZp bmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xP R09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEK fCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19Q SUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAj ZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZF X0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERS SU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAx CnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAj ZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8 ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgLyogRGVmaW5lIGdyb3VwX2Zyb21fZ2lkIHRvIGFuIGlubm9jdW91cyB2YXJp YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ3JvdXBfZnJvbV9naWQuCnwgICAgRm9y IGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICov CnwgI2RlZmluZSBncm91cF9mcm9tX2dpZCBpbm5vY3VvdXNfZ3JvdXBfZnJvbV9naWQKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ3JvdXBfZnJv bV9naWQgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlm CnwgCnwgI3VuZGVmIGdyb3VwX2Zyb21fZ2lkCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBp bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZk ZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBncm91cF9mcm9tX2dp ZCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3 aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3 aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVk IF9fc3R1Yl9ncm91cF9mcm9tX2dpZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dyb3VwX2Zyb21fZ2lk CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBncm91 cF9mcm9tX2dpZCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJl c3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBpbmV0X2F0b24KY29uZmlndXJl Ojg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUK Y29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjg5NjQ6IGNoZWNraW5nIGZvciBpbmV0X250b2EKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6 ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNr aW5nIGZvciBpbmV0X250b3AKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2Nj IC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0 aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1w b2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t YnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5l ZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRl c3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1 cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBpbm5ldGdy CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFy Y2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVk IC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8t dW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1m c3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAt bG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgbG9naW5fZ2V0Y2FwYm9vbApjb25maWd1 cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFs bCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4m NQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NGdzZQeFEu bzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgbG9naW5fZ2V0Y2FwYm9vbCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEg ZXhpdCBzdGF0dXMKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5T U0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9y dGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5k cm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xv Z2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVm aW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEK fCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2Rl ZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5l IEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9M SU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRE Ql9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwg I2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVm aW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1Q WF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5U X0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9Q UkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5L X09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRt cCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNk ZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAj ZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAx CnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZp bmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhB VkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEK fCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmlu ZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9C X0hBU19BTFRESVJGVU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNk ZWZpbmUgSEFWRV9QUk9DX1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAjZGVmaW5l IEhBVkVfQkNPUFkgMQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RJUkZE IDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dOIDEKfCAjZGVm aW5lIEhBVkVfRlJFRUFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMgMQp8ICNkZWZp bmUgSEFWRV9GVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg SEFWRV9HRVRDV0QgMQp8ICNkZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNkZWZpbmUgSEFW RV9HRVROQU1FSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmluZSBIQVZFX0dF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBIQVZFX0dMT0Ig MQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT0EgMQp8 ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdSIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGxvZ2luX2dldGNhcGJvb2wgdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBsb2dpbl9nZXRjYXBi b29sLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbG9naW5fZ2V0Y2FwYm9vbCBpbm5vY3VvdXNfbG9naW5f Z2V0Y2FwYm9vbAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp dGggY2hhciBsb2dpbl9nZXRjYXBib29sICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBsb2dpbl9nZXRjYXBib29sCnwgCnwgLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlm CnwgY2hhciBsb2dpbl9nZXRjYXBib29sICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAg ICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBh bGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2xvZ2luX2dldGNhcGJvb2wgfHwgZGVmaW5l ZCBfX3N0dWJfX19sb2dpbl9nZXRjYXBib29sCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBsb2dpbl9nZXRjYXBib29sICgpOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hl Y2tpbmcgZm9yIG1kNV9jcnlwdApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFy aXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25v LXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZu by1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25m dGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29w ZW5zc2gtNS44X3AyL3RlbXAvY2N5VmlESDAubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVz dC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbWQ1X2NyeXB0Jwpjb2xs ZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNz aCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJv cGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dS QU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vz ci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2Rl ZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZF X0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0Jf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAx CnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVm aW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9S UENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZp bmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUg SEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAx CnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2Rl ZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVT RUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFU SF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElO VVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5l IFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUg U1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhB VkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFT RU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAj ZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFW RV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZU SU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVf QVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEK fCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUg SEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFW RV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRB RERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQ TElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BU IDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEK fCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmlu ZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBI QVZFX0lOTkVUR1IgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgbWQ1X2Ny eXB0IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMg bWQ1X2NyeXB0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJl cyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbWQ1X2NyeXB0IGlubm9jdW91c19tZDVfY3J5 cHQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl ZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIg bWQ1X2NyeXB0ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8 ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNl bmRpZgp8IAp8ICN1bmRlZiBtZDVfY3J5cHQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVy bmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGlu dCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0 aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRl ZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIG1kNV9jcnlwdCAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9tZDVfY3J5cHQgfHwgZGVmaW5lZCBfX3N0dWJfX19tZDVfY3J5cHQKfCBjaG9rZSBtZQp8ICNl bmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIG1kNV9jcnlwdCAoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjg5 NjQ6IGNoZWNraW5nIGZvciBtZW1tb3ZlCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVk IGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZ0ZXN0LmM6MTMyOjY6IHdhcm5p bmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAnbWVtbW92ZScKY29u ZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl Ojg5NjQ6IGNoZWNraW5nIGZvciBta2R0ZW1wCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9 IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBm b3IgbW1hcApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRl c3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0 aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2ln biAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1l bXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3Rh Y2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRp bCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIG5nZXRhZGRyaW5mbwpjb25m aWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9y LWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wg ID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2N0WUFB MzQubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgbmdldGFkZHJpbmZvJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBl eGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNT SCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRy b3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9n aW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8 ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVm aW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUg SEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERC X0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAj ZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwg I2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBY X0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRf SCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BS RUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktf T1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1w Igp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2Rl ZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNk ZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEK fCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFW RV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8 ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5l IEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0Jf SEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2Rl ZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUg SEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQg MQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZp bmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmlu ZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBI QVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZF X0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAx CnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwg I2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZp bmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZF X01NQVAgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgbmdldGFkZHJpbmZv IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbmdl dGFkZHJpbmZvLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJl cyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbmdldGFkZHJpbmZvIGlubm9jdW91c19uZ2V0 YWRkcmluZm8KfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgbmdldGFkZHJpbmZvICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBuZ2V0YWRkcmluZm8KfCAKfCAvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIG5n ZXRhZGRyaW5mbyAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1 bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5P U1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBz dGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNp ZiBkZWZpbmVkIF9fc3R1Yl9uZ2V0YWRkcmluZm8gfHwgZGVmaW5lZCBfX3N0dWJfX19uZ2V0YWRk cmluZm8KfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJu IG5nZXRhZGRyaW5mbyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6 IHJlc3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBuc2xlZXAKY29uZmlndXJl Ojg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUK L3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjckRQVkRvLm86 IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCBy ZWZlcmVuY2UgdG8gYG5zbGVlcCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMK Y29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBv cnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZp bmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRU UklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhB VkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZF QVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BU X0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVm aW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZF X1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNV UklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf RElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BP TExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NF TEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZ RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVm aW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZp bmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwg I2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9F UlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5l IFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9M SU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9U VU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBI QVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJH RU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwg I2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhB VkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dU TVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJG VU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9Q Uk9DX1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfQkNPUFkg MQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RJUkZEIDEKfCAjZGVmaW5l IEhBVkVfRkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dOIDEKfCAjZGVmaW5lIEhBVkVfRlJF RUFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9GVVRJ TUVTIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRDV0Qg MQp8ICNkZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNkZWZpbmUgSEFWRV9HRVROQU1FSU5G TyAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBIQVZFX0dMT0IgMQp8ICNkZWZpbmUg SEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT0EgMQp8ICNkZWZpbmUgSEFW RV9JTkVUX05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdSIDEKfCAjZGVmaW5lIEhBVkVfTUVN TU9WRSAxCnwgI2RlZmluZSBIQVZFX01LRFRFTVAgMQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIG5zbGVlcCB0byBhbiBpbm5vY3VvdXMg dmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG5zbGVlcC4KfCAgICBGb3IgZXhh bXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAj ZGVmaW5lIG5zbGVlcCBpbm5vY3VvdXNfbnNsZWVwCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBk ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3 aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG5zbGVlcCAoKTsgYmVsb3cuCnwgICAgIFByZWZl ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UK fCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAg Ki8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwg IyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgbnNsZWVwCnwgCnwgLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlm CnwgY2hhciBuc2xlZXAgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRo IEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhp bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8K fCAjaWYgZGVmaW5lZCBfX3N0dWJfbnNsZWVwIHx8IGRlZmluZWQgX19zdHViX19fbnNsZWVwCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBuc2xlZXAg KCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igb2dldGFkZHJpbmZvCmNvbmZpZ3VyZTo4OTY0OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1X Zm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFs bCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEg LVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1w L3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY0JqUU5oSS5vOiBJbiBmdW5j dGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNl IHRvIGBvZ2V0YWRkcmluZm8nCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv bmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0 YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5l IF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFU VVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9I IDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmlu ZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9Q VFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJ VFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVf U1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJ Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xM X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxF Q1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RS T1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmlu ZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5l IFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNk ZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJS Tk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBV U0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElO VVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVO X0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFW RV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VO X0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNk ZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZF X0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1Q IDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVO QyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJP Q19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEK fCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBI QVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVB RERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1F UyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEK fCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8g MQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVmaW5lIEhB VkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5lIEhBVkVf SU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZFX01FTU1P VkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBvZ2V0YWRkcmluZm8gdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBvZ2V0YWRkcmluZm8uCnwg ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCnwgI2RlZmluZSBvZ2V0YWRkcmluZm8gaW5ub2N1b3VzX29nZXRhZGRyaW5mbwp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBvZ2V0YWRk cmluZm8gKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlm CnwgCnwgI3VuZGVmIG9nZXRhZGRyaW5mbwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgb2dldGFkZHJpbmZvICgp Owp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo IGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1 bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19z dHViX29nZXRhZGRyaW5mbyB8fCBkZWZpbmVkIF9fc3R1Yl9fX29nZXRhZGRyaW5mbwp8IGNob2tl IG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gb2dldGFkZHJpbmZv ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpj b25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIG9wZW5sb2dfcgpjb25maWd1cmU6ODk2NDogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9w b3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NsZlhNbTEubzogSW4gZnVuY3Rp b24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0 byBgb3BlbmxvZ19yJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFU SF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVf X05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNf SCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwg I2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5l IEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFW RV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0gg MQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BB TV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERF Rl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lT TUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFW RV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1f VFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5l IFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQ RVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JU TVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lG X1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01Q QVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElC TlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEK fCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5l IEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dP VVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwg I2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElE IDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2Rl ZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9G Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklO Rk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8 ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2Rl ZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAj ZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lO RVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRf TlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEK fCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgb3BlbmxvZ19yIHRvIGFuIGlubm9jdW91cyB2YXJp YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgb3BlbmxvZ19yLgp8ICAgIEZvciBleGFt cGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNk ZWZpbmUgb3BlbmxvZ19yIGlubm9jdW91c19vcGVubG9nX3IKfCAKfCAvKiBTeXN0ZW0gaGVhZGVy IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwg ICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgb3BlbmxvZ19yICgpOyBiZWxvdy4KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+Cnwg I2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBvcGVubG9n X3IKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAi QyIKfCAjZW5kaWYKfCBjaGFyIG9wZW5sb2dfciAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBk ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFs d2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVk CnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg YW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9vcGVubG9nX3IgfHwgZGVmaW5lZCBf X3N0dWJfX19vcGVubG9nX3IKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuIG9wZW5sb2dfciAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBvcGVucHR5 CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFy Y2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVk IC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8t dW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1m c3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAt bG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgcG9sbApjb25maWd1cmU6ODk2NDogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6 ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDog Y2hlY2tpbmcgZm9yIHByY3RsCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJp dGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8t cG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5v LWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0 ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmln dXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgcHN0YXQK Y29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJj aD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQg LVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11 bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZz dGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1s bnNsICA+JjUKL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2Nj REd0VVA0Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVu ZGVmaW5lZCByZWZlcmVuY2UgdG8gYHBzdGF0Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0 IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4i CnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5l IEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFW RV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0gg MQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVm aW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0gg MQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAx CnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJ WCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BO T1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8 ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmlu ZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZp bmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAj ZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBI QVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9M SUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNk ZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhB VkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFT X0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmlu ZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFW RV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUg SEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBI QVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZF X0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dF VE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwg I2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2Rl ZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUg SEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01N QVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2Rl ZmluZSBIQVZFX1BSQ1RMIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHBz dGF0IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMg cHN0YXQuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdl dHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBwc3RhdCBpbm5vY3VvdXNfcHN0YXQKfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgcHN0YXQgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IHBzdGF0CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciBwc3RhdCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBk ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFs d2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVk CnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg YW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9wc3RhdCB8fCBkZWZpbmVkIF9fc3R1 Yl9fX3BzdGF0CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJl dHVybiBwc3RhdCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJl c3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciByZWFkcGFzc3BocmFzZQpjb25m aWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9y LWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wg ID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2MyNE9r N2IubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgcmVhZHBhc3NwaHJhc2UnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAx IGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVu U1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBv cnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWlu ZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9s b2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2Rl ZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNk ZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmlu ZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVf TElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVU REJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8 ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEK fCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg SEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRN UFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VO VF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0Rf UFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElO S19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0 bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAj ZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwg I2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVm aW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBI QVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAx CnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZp bmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xP Ql9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAj ZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmlu ZSBIQVZFX0JDT1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJG RCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2Rl ZmluZSBIQVZFX0ZSRUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVm aW5lIEhBVkVfRlVUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5l IEhBVkVfR0VUQ1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhB VkVfR0VUTkFNRUlORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9H RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9C IDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEK fCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2Rl ZmluZSBIQVZFX01FTU1PVkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhB VkVfTU1BUCAxCnwgI2RlZmluZSBIQVZFX09QRU5QVFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEK fCAjZGVmaW5lIEhBVkVfUFJDVEwgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZp bmUgcmVhZHBhc3NwaHJhc2UgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyByZWFkcGFzc3BocmFzZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHJlYWRwYXNz cGhyYXNlIGlubm9jdW91c19yZWFkcGFzc3BocmFzZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8g ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAg d2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciByZWFkcGFzc3BocmFzZSAoKTsgYmVsb3cuCnwg ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8 ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgcmVhZHBh c3NwaHJhc2UKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHJlYWRwYXNzcGhyYXNlICgpOwp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK fCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3Jt YWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3JlYWRwYXNzcGhy YXNlIHx8IGRlZmluZWQgX19zdHViX19fcmVhZHBhc3NwaHJhc2UKfCBjaG9rZSBtZQp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHJlYWRwYXNzcGhyYXNlICgpOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6 ODk2NDogY2hlY2tpbmcgZm9yIHJlYWxwYXRoCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9 IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBm b3IgcmVjdm1zZwpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29u ZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1m c3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1s dXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHJyZXN2cG9ydF9hZgpj b25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNo PW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAt V3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVu dXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0 YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVj dG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxu c2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHll cwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHNlbmRtc2cKY29uZmlndXJlOjg5NjQ6IHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBl IC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdm b3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxs ICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJl Ojg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6 IGNoZWNraW5nIGZvciBzZXRkdGFibGVzaXplCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0 LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY2RkdmJKeC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6 CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzZXRkdGFi bGVzaXplJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2 NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNT V0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5V TExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAx CnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwg I2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmlu ZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVf TUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRI U19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNk ZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBM X0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9T X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0gg MQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBI QVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNU TE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tM VURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9U WVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwg I2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8 ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9I IDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYg MQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEK fCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVm aW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8 ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmlu ZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAj ZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBI QVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0Qg MQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8 ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZp bmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBI QVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5l IEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf R0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRP TiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAx CnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVm aW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9P UEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAj ZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5l IEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBzZXRkdGFibGVzaXplIHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc2V0ZHRhYmxlc2l6ZS4KfCAgICBG b3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAg Ki8KfCAjZGVmaW5lIHNldGR0YWJsZXNpemUgaW5ub2N1b3VzX3NldGR0YWJsZXNpemUKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2V0ZHRhYmxl c2l6ZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBv biBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGlu Y2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAKfCAjdW5kZWYgc2V0ZHRhYmxlc2l6ZQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgc2V0ZHRhYmxlc2l6ZSAo KTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGlj aCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRo IF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9f c3R1Yl9zZXRkdGFibGVzaXplIHx8IGRlZmluZWQgX19zdHViX19fc2V0ZHRhYmxlc2l6ZQp8IGNo b2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc2V0ZHRhYmxl c2l6ZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDog bm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBzZXRlZ2lkCmNvbmZpZ3VyZTo4OTY0OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1X Zm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFs bCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEg LVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3Vy ZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0 OiBjaGVja2luZyBmb3Igc2V0ZW52CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXIt YXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1X bm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNv bmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29u ZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0 ZXVpZApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3Qg LW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFs aXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAt V25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNl dCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2st cHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAt bHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHNldGdyb3VwZW50CmNvbmZpZ3Vy ZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxs IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1 Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY1B3R3UwQy5v OiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBzZXRncm91cGVudCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8 ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhB VkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVm aW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBI QVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVf R0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNf SCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEK fCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmlu ZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhB VkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VU SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEK fCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8 ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVgg IiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9U U1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAj ZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUg SEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5l IFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2Rl ZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFW RV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElC WiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVm aW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZF X0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19B TFRESVJGVU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUg SEFWRV9QUk9DX1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVf QkNPUFkgMQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RJUkZEIDEKfCAj ZGVmaW5lIEhBVkVfRkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dOIDEKfCAjZGVmaW5lIEhB VkVfRlJFRUFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMgMQp8ICNkZWZpbmUgSEFW RV9GVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9H RVRDV0QgMQp8ICNkZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRO QU1FSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBIQVZFX0dMT0IgMQp8ICNk ZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT0EgMQp8ICNkZWZp bmUgSEFWRV9JTkVUX05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdSIDEKfCAjZGVmaW5lIEhB VkVfTUVNTU9WRSAxCnwgI2RlZmluZSBIQVZFX01LRFRFTVAgMQp8ICNkZWZpbmUgSEFWRV9NTUFQ IDEKfCAjZGVmaW5lIEhBVkVfT1BFTlBUWSAxCnwgI2RlZmluZSBIQVZFX1BPTEwgMQp8ICNkZWZp bmUgSEFWRV9QUkNUTCAxCnwgI2RlZmluZSBIQVZFX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEhBVkVf UkVDVk1TRyAxCnwgI2RlZmluZSBIQVZFX1JSRVNWUE9SVF9BRiAxCnwgI2RlZmluZSBIQVZFX1NF TkRNU0cgMQp8ICNkZWZpbmUgSEFWRV9TRVRFR0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VURU5WIDEK fCAjZGVmaW5lIEhBVkVfU0VURVVJRCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERl ZmluZSBzZXRncm91cGVudCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIHNldGdyb3VwZW50Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxp bWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2V0Z3JvdXBlbnQg aW5ub2N1b3VzX3NldGdyb3VwZW50CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIHNldGdyb3VwZW50ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxs aW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAg ICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8 IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzZXRncm91cGVudAp8IAp8IC8q IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8 ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRp Zgp8IGNoYXIgc2V0Z3JvdXBlbnQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0 aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFp bCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBz b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz LiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfc2V0Z3JvdXBlbnQgfHwgZGVmaW5lZCBfX3N0dWJf X19zZXRncm91cGVudAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gc2V0Z3JvdXBlbnQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZTo4OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0Z3JvdXBz CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFy Y2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVk IC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8t dW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1m c3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAt bG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0bG9naW4KY29uZmlndXJlOjg5NjQ6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUg LVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3It YWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZnRl c3QuYzoxNTE6NzogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0 dHJpYnV0ZV9fJyBiZWZvcmUgJ21lJwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi T3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVu aXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJB Q0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFz c3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZF X0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElB Tl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0gg MQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2Rl ZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmlu ZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVf UE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9T SEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU VkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmlu ZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NL RURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAj ZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIv dmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FE SlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5f TElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9Q UkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFN RSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhB VkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1Q IDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAj ZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9N QVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYg MQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5l IEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hP V04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZG UyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAx CnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwg I2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5l IEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lO RVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVU R1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwg I2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhB VkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEgg MQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEK fCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZp bmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVf U0VUR1JPVVBTIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHNldGxvZ2lu IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc2V0 bG9naW4uCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdl dHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBzZXRsb2dpbiBpbm5vY3VvdXNfc2V0bG9naW4KfCAK fCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg ZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2V0bG9n aW4gKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNs dWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwg CnwgI3VuZGVmIHNldGxvZ2luCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90 b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1 c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzZXRsb2dpbiAoKTsKfCAvKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1l bnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl IGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zZXRsb2dp biB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NldGxvZ2luCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzZXRsb2dpbiAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5n IGZvciBzZXRwYXNzZW50CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt byBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGgg LVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9p bnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1 aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVk ZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0 LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNz aC01LjhfcDIvdGVtcC9jY1JkcmJKZC5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6 KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzZXRwYXNzZW50Jwpjb2xsZWN0 MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVu c3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1f RkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9i aW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmlu ZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZF X0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZD TlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwg I2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5l IEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUg SEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19N TUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BS Q1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFW RV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwg I2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmlu ZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFS R1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9C VE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhf T09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNT SF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NI X1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVf RElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5B TUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVm aW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9V UERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1F IDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dM T0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQ UklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAj ZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFW RV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9G U1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERS SU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElT VCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEK fCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAj ZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBI QVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZF X0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVN UCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVm aW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVB TFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JU X0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5l IEhBVkVfU0VUR1JPVVBTIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHNl dHBhc3NlbnQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNs YXJlcyBzZXRwYXNzZW50Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBk ZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2V0cGFzc2VudCBpbm5vY3VvdXNf c2V0cGFzc2VudAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp dGggY2hhciBzZXRwYXNzZW50ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzZXRwYXNzZW50CnwgCnwgLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzZXRw YXNzZW50ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0 aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRl ZmluZWQgX19zdHViX3NldHBhc3NlbnQgfHwgZGVmaW5lZCBfX3N0dWJfX19zZXRwYXNzZW50Cnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzZXRwYXNz ZW50ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBu bwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHNldHBjcmVkCmNvbmZpZ3VyZTo4OTY0OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1X Zm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFs bCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEg LVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1w L3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY2hkY0xNdy5vOiBJbiBmdW5j dGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNl IHRvIGBzZXRwY3JlZCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmln dXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxl Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BB VEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRF X19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVT X0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8 ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhB VkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9I IDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9Q QU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERE RUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZ U01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhB VkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFN X1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmlu ZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBF UEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9C VE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9J Rl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09N UEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJ Qk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAx CnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmlu ZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9H T1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8 ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9DX1BJ RCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfQkNPUFkgMQp8ICNk ZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RJUkZEIDEKfCAjZGVmaW5lIEhBVkVf RkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dOIDEKfCAjZGVmaW5lIEhBVkVfRlJFRUFERFJJ TkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9GVVRJTUVTIDEK fCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRDV0QgMQp8ICNk ZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNkZWZpbmUgSEFWRV9HRVROQU1FSU5GTyAxCnwg I2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBIQVZFX0dMT0IgMQp8ICNkZWZpbmUgSEFWRV9J TkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT0EgMQp8ICNkZWZpbmUgSEFWRV9JTkVU X05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdSIDEKfCAjZGVmaW5lIEhBVkVfTUVNTU9WRSAx CnwgI2RlZmluZSBIQVZFX01LRFRFTVAgMQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEKfCAjZGVmaW5l IEhBVkVfT1BFTlBUWSAxCnwgI2RlZmluZSBIQVZFX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9QUkNU TCAxCnwgI2RlZmluZSBIQVZFX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEhBVkVfUkVDVk1TRyAxCnwg I2RlZmluZSBIQVZFX1JSRVNWUE9SVF9BRiAxCnwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQp8ICNk ZWZpbmUgSEFWRV9TRVRFR0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VURU5WIDEKfCAjZGVmaW5lIEhB VkVfU0VURVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEdST1VQUyAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IC8qIERlZmluZSBzZXRwY3JlZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4g Y2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNldHBjcmVkLgp8ICAgIEZvciBleGFtcGxlLCBIUC1V WCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2V0 cGNyZWQgaW5ub2N1b3VzX3NldHBjcmVkCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNldHBjcmVkICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxs aW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAg ICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8 IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzZXRwY3JlZAp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgc2V0cGNyZWQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRo IEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhp bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8K fCAjaWYgZGVmaW5lZCBfX3N0dWJfc2V0cGNyZWQgfHwgZGVmaW5lZCBfX3N0dWJfX19zZXRwY3Jl ZAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc2V0 cGNyZWQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0cHJvY3RpdGxlCmNvbmZpZ3VyZTo4 OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1P MiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21w YXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3Vs dCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVj dG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92 YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY2ZBd3dJUy5vOiBJ biBmdW5jdGlvbiBgbWFpbic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBzZXRwcm9jdGl0bGUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh dHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAj ZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZF X0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmlu ZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFW RV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dF VE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0gg MQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwg I2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUg SEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5l IEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElN RV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwg I2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAj ZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIh Igp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNV UFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2Rl ZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhB VkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBT U0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZp bmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVf TElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlog MQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmlu ZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9M T0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxU RElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhB VkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JD T1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZF X0ZSRUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVf RlVUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VU Q1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFN RUlORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQg MQp8ICNkZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVm aW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5l IEhBVkVfSU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZF X01FTU1PVkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAx CnwgI2RlZmluZSBIQVZFX09QRU5QVFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5l IEhBVkVfUFJDVEwgMQp8ICNkZWZpbmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZNU0cgMQp8ICNkZWZpbmUgSEFWRV9SUkVTVlBPUlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5E TVNHIDEKfCAjZGVmaW5lIEhBVkVfU0VURUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwg I2RlZmluZSBIQVZFX1NFVEVVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRHUk9VUFMgMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc2V0cHJvY3RpdGxlIHRvIGFuIGlubm9jdW91 cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc2V0cHJvY3RpdGxlLgp8ICAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLwp8ICNkZWZpbmUgc2V0cHJvY3RpdGxlIGlubm9jdW91c19zZXRwcm9jdGl0bGUKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2V0cHJvY3Rp dGxlICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5j bHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8 IAp8ICN1bmRlZiBzZXRwcm9jdGl0bGUKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBt aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBf X2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHNldHByb2N0aXRsZSAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9zZXRwcm9jdGl0bGUgfHwgZGVmaW5lZCBfX3N0dWJfX19zZXRwcm9jdGl0bGUKfCBjaG9rZSBt ZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHNldHByb2N0aXRsZSAo KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29u ZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBzZXRyZWdpZApjb25maWd1cmU6ODk2NDogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2 NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hl Y2tpbmcgZm9yIHNldHJldWlkCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJp dGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8t cG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5v LWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0 ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmln dXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0cmxp bWl0CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAt bWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxp emVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1X bm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0 IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1w cm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1s eiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc2V0c2lkCmNvbmZpZ3VyZTo4OTY0 OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwt TzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZp Z3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4 OTY0OiBjaGVja2luZyBmb3Igc2V0dmJ1Zgpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2lu dGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0 eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVds LC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRl ZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAw CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9y IHNpZ2FjdGlvbgpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29u ZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1m c3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1s dXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHNpZ3ZlYwpjb25maWd1 cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFs bCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4m NQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHNucHJpbnRmCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2Fs bCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0 LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0t YXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZ0ZXN0LmM6MTUz OjY6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAnc25w cmludGYnCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc29ja2V0cGFpcgpjb25maWd1cmU6ODk2NDog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBp cGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAt V2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1 cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2 NDogY2hlY2tpbmcgZm9yIHN0YXRmcwpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVy LWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAt V25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0t YXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBj b25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNv bmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHN0 YXR2ZnMKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0 IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlh bGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24g LVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1z ZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwg LWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBzdHJkdXAKY29uZmlndXJlOjg5 NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29u ZnRlc3QuYzoxNTc6Njogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1 bmN0aW9uICdzdHJkdXAnCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc3RyZXJyb3IKY29uZmlndXJl Ojg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUK Y29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjg5NjQ6IGNoZWNraW5nIGZvciBzdHJsY2F0CmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMt bGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2Uv bmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY085Z3l3di5vOiBJbiBmdW5jdGlvbiBgbWFp bic6CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzdHJs Y2F0Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExP R0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0Rf UFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExf XyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwg I2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBI QVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJ TExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19I IDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZp bmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0gg MQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8 ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9H X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURH RSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBF IFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2Rl ZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNk ZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEK fCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8 ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAj ZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5l IEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJ TUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNk ZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBI QVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVm aW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZF X0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNk ZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUg SEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZF X0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhB VkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VU VFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAx CnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwg I2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5l IEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVO UFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVm aW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhB VkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZF X1NFVEVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlE IDEKfCAjZGVmaW5lIEhBVkVfU0VUR1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSRVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NFVFNJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFW RV9TSUdBQ1RJT04gMQp8ICNkZWZpbmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBS SU5URiAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMg MQp8ICNkZWZpbmUgSEFWRV9TVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVm aW5lIEhBVkVfU1RSRVJST1IgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg c3RybGNhdCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIHN0cmxjYXQuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xh cmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBzdHJsY2F0IGlubm9jdW91c19zdHJsY2F0 CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHN0 cmxjYXQgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlm CnwgCnwgI3VuZGVmIHN0cmxjYXQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHN0cmxjYXQgKCk7CnwgLyogVGhl IEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVt ZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFy ZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfc3RybGNh dCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3N0cmxjYXQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHN0cmxjYXQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBm b3Igc3RybGNweQpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29u ZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1m c3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1s dXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44 X3AyL3RlbXAvY2M4dHExeU8ubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4 dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RybGNweScKY29sbGVjdDI6IGxkIHJl dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9w ZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4 LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNL ICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3 ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9D UllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5f SCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEK fCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUg SEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BP TExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hB RE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUg SEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VE X1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2Rl ZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zh ci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpV U1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJ TlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJF UEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUg MQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZF X0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAx CnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2Rl ZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFU Q0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9DX1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEK fCAjZGVmaW5lIEhBVkVfQkNPUFkgMQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBI QVZFX0RJUkZEIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dO IDEKfCAjZGVmaW5lIEhBVkVfRlJFRUFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMg MQp8ICNkZWZpbmUgSEFWRV9GVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgSEFWRV9HRVRDV0QgMQp8ICNkZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNk ZWZpbmUgSEFWRV9HRVROQU1FSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBI QVZFX0dMT0IgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVU X05UT0EgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdS IDEKfCAjZGVmaW5lIEhBVkVfTUVNTU9WRSAxCnwgI2RlZmluZSBIQVZFX01LRFRFTVAgMQp8ICNk ZWZpbmUgSEFWRV9NTUFQIDEKfCAjZGVmaW5lIEhBVkVfT1BFTlBUWSAxCnwgI2RlZmluZSBIQVZF X1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCnwgI2RlZmluZSBIQVZFX1JFQUxQQVRIIDEK fCAjZGVmaW5lIEhBVkVfUkVDVk1TRyAxCnwgI2RlZmluZSBIQVZFX1JSRVNWUE9SVF9BRiAxCnwg I2RlZmluZSBIQVZFX1NFTkRNU0cgMQp8ICNkZWZpbmUgSEFWRV9TRVRFR0lEIDEKfCAjZGVmaW5l IEhBVkVfU0VURU5WIDEKfCAjZGVmaW5lIEhBVkVfU0VURVVJRCAxCnwgI2RlZmluZSBIQVZFX1NF VEdST1VQUyAxCnwgI2RlZmluZSBIQVZFX1NFVFJFR0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVV SUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRTSUQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRWQlVGIDEKfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKfCAjZGVm aW5lIEhBVkVfU0lHVkVDIDEKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFW RV9TT0NLRVRQQUlSIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEZTIDEKfCAjZGVmaW5lIEhBVkVfU1RB VFZGUyAxCnwgI2RlZmluZSBIQVZFX1NUUkRVUCAxCnwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHN0cmxjcHkgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzdHJsY3B5Lgp8ICAgIEZv ciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAq Lwp8ICNkZWZpbmUgc3RybGNweSBpbm5vY3VvdXNfc3RybGNweQp8IAp8IC8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK fCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzdHJsY3B5ICgpOyBiZWxvdy4KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+Cnwg I2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzdHJsY3B5 CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMi CnwgI2VuZGlmCnwgY2hhciBzdHJsY3B5ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAg ICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBh bGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3N0cmxjcHkgfHwgZGVmaW5lZCBfX3N0dWJf X19zdHJsY3B5CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJl dHVybiBzdHJsY3B5ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDog cmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHN0cm1vZGUKY29uZmlndXJl Ojg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUK L3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjNElmTzk3Lm86 IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCBy ZWZlcmVuY2UgdG8gYHN0cm1vZGUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQ b3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVm aW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FU VFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9G RUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9Q VF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2Rl ZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFW RV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VD VVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhB VkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJ VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q T0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T RUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RU WUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2Rl ZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVm aW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8 ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBf RVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmlu ZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVf TElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hf VFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElC R0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8 ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBI QVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dX VE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElS RlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVf UFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZ IDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmlu ZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZS RUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVU SU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dE IDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlO Rk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVmaW5l IEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5lIEhB VkVfSU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZFX01F TU1PVkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwg I2RlZmluZSBIQVZFX09QRU5QVFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5lIEhB VkVfUFJDVEwgMQp8ICNkZWZpbmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZN U0cgMQp8ICNkZWZpbmUgSEFWRV9SUkVTVlBPUlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETVNH IDEKfCAjZGVmaW5lIEhBVkVfU0VURUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwgI2Rl ZmluZSBIQVZFX1NFVEVVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRHUk9VUFMgMQp8ICNkZWZpbmUg SEFWRV9TRVRSRUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJFVUlEIDEKfCAjZGVmaW5lIEhBVkVf U0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUU0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUVkJV RiAxCnwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCnwgI2RlZmluZSBIQVZFX1NJR1ZFQyAxCnwg I2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUEFJUiAxCnwgI2Rl ZmluZSBIQVZFX1NUQVRGUyAxCnwgI2RlZmluZSBIQVZFX1NUQVRWRlMgMQp8ICNkZWZpbmUgSEFW RV9TVFJEVVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIERlZmluZSBzdHJtb2RlIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgc3RybW9kZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHN0cm1vZGUg aW5ub2N1b3VzX3N0cm1vZGUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgc3RybW9kZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+ IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgc3RybW9kZQp8IAp8IC8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgc3Ry bW9kZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9zdHJtb2RlIHx8IGRlZmluZWQgX19zdHViX19fc3RybW9kZQp8IGNob2tlIG1l CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc3RybW9kZSAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJl Ojg5NjQ6IGNoZWNraW5nIGZvciBzdHJudmlzCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIGNvbmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1Ci92YXIvdG1wL3BvcnRhZ2UvbmV0 LW1pc2Mvb3BlbnNzaC01LjhfcDIvdGVtcC9jY0RJeE5zZi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6 CmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MTYpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzdHJudmlz Jwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi b3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg IiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lO X1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJP RyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAx CnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZF X0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExP Q0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEK fCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUg SEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNk ZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VU TVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAx CnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQ VF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmlu ZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZp bmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAj ZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNk ZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVm aW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhB VkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVT IDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZp bmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZF X1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5l IEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NM T0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNk ZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZp bmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFW RV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dF VEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVf R0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZ RU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwg I2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2Rl ZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhB VkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZ IDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5l IEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVf UlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NF VEVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEK fCAjZGVmaW5lIEhBVkVfU0VUR1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRSRVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX1NFVFNJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9T SUdBQ1RJT04gMQp8ICNkZWZpbmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5U RiAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8 ICNkZWZpbmUgSEFWRV9TVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5l IEhBVkVfU1RSRVJST1IgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc3Ry bnZpcyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVz IHN0cm52aXMuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBzdHJudmlzIGlubm9jdW91c19zdHJudmlzCnwg CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHN0cm52 aXMgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNs dWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwg CnwgI3VuZGVmIHN0cm52aXMKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHN0cm52aXMgKCk7CnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfc3RybnZpcyB8 fCBkZWZpbmVkIF9fc3R1Yl9fX3N0cm52aXMKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8 IG1haW4gKCkKfCB7CnwgcmV0dXJuIHN0cm52aXMgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Ig c3RycHRpbWUKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0 ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5p dGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNp Z24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1t ZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0 YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0 aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciBzdHJ0b251bQpjb25maWd1 cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFs bCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4m NQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NLaUpuaFIu bzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgc3RydG9udW0nCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh dHVzCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAj ZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZF X0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmlu ZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFW RV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dF VE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0gg MQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwg I2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUg SEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5l IEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElN RV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwg I2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAj ZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIh Igp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNV UFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2Rl ZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhB VkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBT U0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZp bmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVf TElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlog MQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmlu ZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9M T0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxU RElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhB VkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JD T1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZF X0ZSRUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVf RlVUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VU Q1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFN RUlORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQg MQp8ICNkZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVm aW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5l IEhBVkVfSU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZF X01FTU1PVkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAx CnwgI2RlZmluZSBIQVZFX09QRU5QVFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5l IEhBVkVfUFJDVEwgMQp8ICNkZWZpbmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZNU0cgMQp8ICNkZWZpbmUgSEFWRV9SUkVTVlBPUlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5E TVNHIDEKfCAjZGVmaW5lIEhBVkVfU0VURUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwg I2RlZmluZSBIQVZFX1NFVEVVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRHUk9VUFMgMQp8ICNkZWZp bmUgSEFWRV9TRVRSRUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJFVUlEIDEKfCAjZGVmaW5lIEhB VkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUU0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VU VkJVRiAxCnwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCnwgI2RlZmluZSBIQVZFX1NJR1ZFQyAx CnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUEFJUiAxCnwg I2RlZmluZSBIQVZFX1NUQVRGUyAxCnwgI2RlZmluZSBIQVZFX1NUQVRWRlMgMQp8ICNkZWZpbmUg SEFWRV9TVFJEVVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX1NU UlBUSU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHN0cnRvbnVtIHRv IGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc3RydG9u dW0uCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRp bWVvZmRheS4gICovCnwgI2RlZmluZSBzdHJ0b251bSBpbm5vY3VvdXNfc3RydG9udW0KfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc3RydG9udW0g KCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1RE Q19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRl IDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwg I3VuZGVmIHN0cnRvbnVtCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzdHJ0b251bSAoKTsKfCAvKiBUaGUgR05V IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRz CnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFj dHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9y bWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zdHJ0b251bSB8 fCBkZWZpbmVkIF9fc3R1Yl9fX3N0cnRvbnVtCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBzdHJ0b251bSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZv ciBzdHJ0b2xsCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25m dGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZz dGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWx1 dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igc3RydG91bApjb25maWd1 cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFs bCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4m NQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHN3YXAzMgpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBj LWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwg LVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1z ZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3Qt YWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwt TzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFz LW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdl L25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NaemVocEMubzogSW4gZnVuY3Rpb24gYG1h aW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3dh cDMyJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExP R0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0Rf UFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExf XyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwg I2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBI QVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJ TExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19I IDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZp bmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0gg MQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8 ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZF X1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9H X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURH RSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBF IFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2Rl ZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNk ZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEK fCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8 ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAj ZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5l IEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJ TUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNk ZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBI QVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVm aW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZF X0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNk ZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUg SEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZF X0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhB VkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VU VFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAx CnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwg I2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5l IEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVO UFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVm aW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhB VkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZF X1NFVEVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlE IDEKfCAjZGVmaW5lIEhBVkVfU0VUR1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSRVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NFVFNJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFW RV9TSUdBQ1RJT04gMQp8ICNkZWZpbmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBS SU5URiAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMg MQp8ICNkZWZpbmUgSEFWRV9TVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVm aW5lIEhBVkVfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPTEwgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgLyogRGVmaW5lIHN3YXAzMiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIHN3YXAzMi4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHN3YXAzMiBp bm5vY3VvdXNfc3dhcDMyCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIHN3YXAzMiAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYg X19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3Nl cnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgc3dhcDMyCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzd2FwMzIg KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfc3dhcDMyIHx8IGRlZmluZWQgX19zdHViX19fc3dhcDMyCnwgY2hva2UgbWUKfCAjZW5k aWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzd2FwMzIgKCk7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4OTY0OiBj aGVja2luZyBmb3Igc3lzY29uZgpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFy aXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25v LXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZu by1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25m dGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZp Z3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHRjZ2V0 cGdycApjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3Qg LW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFs aXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAt V25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNl dCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2st cHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAt bHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHRpbWluZ3NhZmVfYmNtcApjb25m aWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9y LWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wg ID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NDVlU2 WG0ubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgdGltaW5nc2FmZV9iY21wJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQg MSBleGl0IHN0YXR1cwpjb25maWd1cmU6ODk2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3Bl blNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQ b3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1p bmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4v bG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNk ZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAj ZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZp bmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZF X0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05F VERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEK fCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAx CnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VU TVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9V TlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dE X1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJ TktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9i dG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwg I2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8 ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FG IDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUg SEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4g MQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVm aW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdM T0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwg I2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZp bmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElS RkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNk ZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2Rl ZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmlu ZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBI QVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVf R0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xP QiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAx CnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNk ZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBI QVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAx CnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZp bmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5l IEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZpbmUgSEFWRV9T RVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUR1JPVVBT IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVVJRCAxCnwg I2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFNJRCAxCnwgI2RlZmlu ZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQp8ICNkZWZpbmUgSEFW RV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX1NPQ0tF VFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8ICNkZWZpbmUgSEFWRV9TVEFUVkZTIDEK fCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQp8ICNkZWZp bmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQp8ICNkZWZpbmUgSEFW RV9TVFJUT1VMIDEKfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxCnwgI2RlZmluZSBIQVZFX1RDR0VU UEdSUCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSB0aW1pbmdzYWZlX2Jj bXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB0 aW1pbmdzYWZlX2JjbXAuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRl Y2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSB0aW1pbmdzYWZlX2JjbXAgaW5ub2N1 b3VzX3RpbWluZ3NhZmVfYmNtcAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1 YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNv bmZsaWN0IHdpdGggY2hhciB0aW1pbmdzYWZlX2JjbXAgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIg PGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwg ICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICov CnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMg aW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHRpbWluZ3NhZmVfYmNtcAp8 IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8 ICNlbmRpZgp8IGNoYXIgdGltaW5nc2FmZV9iY21wICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5 IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3RpbWluZ3NhZmVfYmNtcCB8fCBk ZWZpbmVkIF9fc3R1Yl9fX3RpbWluZ3NhZmVfYmNtcAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gdGltaW5nc2FmZV9iY21wICgpOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDog Y2hlY2tpbmcgZm9yIHRydW5jYXRlCmNvbmZpZ3VyZTo4OTY0OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXIt YXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1X bm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNv bmZ0ZXN0LmMgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29u ZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3IgdW5z ZXRlbnYKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0 IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlh bGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24g LVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1z ZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwg LWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjg5NjQ6IGNoZWNraW5nIGZvciB1cGR3dG1weApjb25maWd1cmU6 ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29t cGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1 bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpj b25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6ODk2NDogY2hlY2tpbmcgZm9yIHVzZXJfZnJvbV91aWQKY29uZmlndXJlOjg5NjQ6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1X YWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3Jt YXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9y dGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjV2hkSUhzLm86IEluIGZ1bmN0aW9u IGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g YHVzZXJfZnJvbV91aWQnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZTo4OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJs ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTE9HSU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9Q QVRIX1BBU1NXRF9QUk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9fTk9OTlVMTF9fIDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJF U19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEK fCAjZGVmaW5lIEhBVkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9NQUlMTE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBI QVZFX1BBVEhTX0ggMQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlf SCAxCnwgI2RlZmluZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlf UEFNX0FQUExfSCAxCnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE REVGX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BU U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T WVNNQUNST1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVU5fSCAxCnwgI2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfVVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBI QVZFX0xBU1RMT0dfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBB TV9UVFlfS0xVREdFIDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZp bmUgU1BUX1RZUEUgU1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8g RVBFUk0KfCAjZGVmaW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0Vf QlRNUCAxCnwgI2RlZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhf SUZfVFVOX0ggMQp8ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NP TVBBVF9BRiAxCnwgI2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9M SUJOU0wgMQp8ICNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0gg MQp8ICNkZWZpbmUgSEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZp bmUgSEFWRV9VVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xP R09VVCAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEK fCAjZGVmaW5lIEhBVkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19Q SUQgMQp8ICNkZWZpbmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAj ZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZF X0ZDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERS SU5GTyAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAx CnwgI2RlZmluZSBIQVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAj ZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8 ICNkZWZpbmUgSEFWRV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9HRVRUVFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVmaW5lIEhBVkVf SU5FVF9BVE9OIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5lIEhBVkVfSU5F VF9OVE9QIDEKfCAjZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZFX01FTU1PVkUg MQp8ICNkZWZpbmUgSEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwgI2RlZmlu ZSBIQVZFX09QRU5QVFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfUFJD VEwgMQp8ICNkZWZpbmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZNU0cgMQp8 ICNkZWZpbmUgSEFWRV9SUkVTVlBPUlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKfCAj ZGVmaW5lIEhBVkVfU0VURUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwgI2RlZmluZSBI QVZFX1NFVEVVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRHUk9VUFMgMQp8ICNkZWZpbmUgSEFWRV9T RVRSRUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUU0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUVkJVRiAxCnwg I2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCnwgI2RlZmluZSBIQVZFX1NJR1ZFQyAxCnwgI2RlZmlu ZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUEFJUiAxCnwgI2RlZmluZSBI QVZFX1NUQVRGUyAxCnwgI2RlZmluZSBIQVZFX1NUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9TVFJE VVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX1NUUlBUSU1FIDEK fCAjZGVmaW5lIEhBVkVfU1RSVE9MTCAxCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQp8ICNkZWZp bmUgSEFWRV9TWVNDT05GIDEKfCAjZGVmaW5lIEhBVkVfVENHRVRQR1JQIDEKfCAjZGVmaW5lIEhB VkVfVFJVTkNBVEUgMQp8ICNkZWZpbmUgSEFWRV9VTlNFVEVOViAxCnwgI2RlZmluZSBIQVZFX1VQ RFdUTVBYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHVzZXJfZnJvbV91 aWQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB1 c2VyX2Zyb21fdWlkLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNs YXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgdXNlcl9mcm9tX3VpZCBpbm5vY3VvdXNf dXNlcl9mcm9tX3VpZAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNy b3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0 IHdpdGggY2hhciB1c2VyX2Zyb21fdWlkICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiB1c2VyX2Zyb21fdWlkCnwgCnwgLyogT3Zl cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND CnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwg Y2hhciB1c2VyX2Zyb21fdWlkICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhp cyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwg d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29t ZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4g ICovCnwgI2lmIGRlZmluZWQgX19zdHViX3VzZXJfZnJvbV91aWQgfHwgZGVmaW5lZCBfX3N0dWJf X191c2VyX2Zyb21fdWlkCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHJldHVybiB1c2VyX2Zyb21fdWlkICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6ODk2NDogcmVzdWx0OiBubwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHZhc3By aW50Zgpjb25maWd1cmU6ODk2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3Qg LW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFs aXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAt V25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNl dCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2st cHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAt bHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODk2NDogY2hlY2tpbmcgZm9yIHZoYW5ndXAKY29uZmlndXJlOjg5 NjQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29u ZmlndXJlOjg5NjQ6ICQ/ID0gMApjb25maWd1cmU6ODk2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl Ojg5NjQ6IGNoZWNraW5nIGZvciB2c25wcmludGYKY29uZmlndXJlOjg5NjQ6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1X cG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2Vj dXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgY29uZnRlc3QuYyAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZnRlc3QuYzoxNjk6Njog d2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICd2c25wcmlu dGYnCmNvbmZpZ3VyZTo4OTY0OiAkPyA9IDAKY29uZmlndXJlOjg5NjQ6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo4OTY0OiBjaGVja2luZyBmb3Igd2FpdHBpZApjb25maWd1cmU6ODk2NDogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6ODk2 NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODk4NDogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6 ODk4NDogJD8gPSAwCmNvbmZpZ3VyZTo4OTk0OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWlu aW5nIGRsb3Blbgpjb25maWd1cmU6OTAyNTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29u ZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1m c3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1s dXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44 X3AyL3RlbXAvY2M4N2FCUjMubzogSW4gZnVuY3Rpb24gYG1haW4nOgpjb25mdGVzdC5jOigudGV4 dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZGxvcGVuJwpjb2xsZWN0MjogbGQgcmV0 dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6OTAyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3Bl blNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgt ZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sg Ii9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dk Igp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NS WVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9I IDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8 ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBI QVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9M TF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFE T1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBI QVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURf UEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVm aW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFy L2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVT VCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElO VVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQ RU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAx CnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVf TE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEK fCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVm aW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRD SCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhB VkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04g MQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAx CnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhB VkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRf TlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1Ig MQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2Rl ZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVf UE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8 ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAj ZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZpbmUg SEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VU R1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVVJ RCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFNJRCAxCnwg I2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQp8ICNkZWZp bmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZF X1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8ICNkZWZpbmUgSEFWRV9TVEFU VkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQp8 ICNkZWZpbmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT1VMIDEKfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxCnwgI2RlZmluZSBIQVZF X1RDR0VUUEdSUCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DQVRFIDEKfCAjZGVmaW5lIEhBVkVfVU5T RVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QWCAxCnwgI2RlZmluZSBIQVZFX1ZBU1BSSU5U RiAxCnwgI2RlZmluZSBIQVZFX1ZIQU5HVVAgMQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9XQUlUUElEIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNw bHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZGxvcGVuICgpOwp8IGludAp8IG1haW4g KCkKfCB7CnwgcmV0dXJuIGRsb3BlbiAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjkwMjU6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRp dmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWdu LWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQt cmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1w cm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsICAtbHV0aWwgLWx6IC1s bnNsICA+JjUKY29uZmlndXJlOjkwMjU6ICQ/ID0gMApjb25maWd1cmU6OTA0MjogcmVzdWx0OiAt bGRsCmNvbmZpZ3VyZTo5MDU3OiBjaGVja2luZyBmb3IgZ2FpX3N0cmVycm9yCmNvbmZpZ3VyZTo5 MDU3OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1P MiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21w YXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3Vs dCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVj dG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+ JjUKY29uZmlndXJlOjkwNTc6ICQ/ID0gMApjb25maWd1cmU6OTA1NzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjkwODQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8y IC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBh cmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0 IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0 b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNv bmZ0ZXN0LmM6MTY0OjU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBm cm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKY29uZmlndXJlOjkwODQ6ICQ/ID0gMApjb25maWd1cmU6 OTA5NTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBuYW5vc2xlZXAKY29uZmlndXJl OjkxMjY6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wg ID4mNQpjb25maWd1cmU6OTEyNjogJD8gPSAwCmNvbmZpZ3VyZTo5MTQzOiByZXN1bHQ6IG5vbmUg cmVxdWlyZWQKY29uZmlndXJlOjkxNTQ6IGNoZWNraW5nIHdoZXRoZXIgZ2V0cnVzYWdlIGlzIGRl Y2xhcmVkCmNvbmZpZ3VyZTo5MTU0OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9 bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1X c2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51 c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3Rh Y2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgpjb25mdGVzdC5jOjE5NDoxMDogZXJyb3I6ICdnZXRydXNhZ2UnIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjE5NDoxMDogbm90ZTogZWFj aCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1 bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjkxNTQ6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5zc2giCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9w ZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAib3BlbnNzaC11bml4 LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMT0dJTl9QUk9HUkFNX0ZBTExCQUNL ICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3 ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxMX18gMQp8ICNkZWZpbmUgSEFWRV9D UllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9FTkRJQU5f SCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEK fCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUgSEFWRV9HTE9CX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01BSUxMT0NLX0ggMQp8ICNkZWZpbmUg SEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNfSCAxCnwgI2RlZmluZSBIQVZFX1BP TExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVmaW5lIEhBVkVfUlBDX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IIDEKfCAjZGVmaW5lIEhBVkVfU0hB RE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVFZG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAjZGVmaW5lIEhBVkVfVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QX0ggMQp8ICNkZWZpbmUg SEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExPR19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVER0UgMQp8ICNkZWZpbmUgTE9DS0VE X1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdWCnwgI2Rl ZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNkZWZpbmUgX1BBVEhfQlRNUCAiL3Zh ci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAjZGVmaW5lIExJTlVYX09PTV9BREpV U1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAxCnwgI2RlZmluZSBTU0hfVFVOX0xJ TlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEKfCAjZGVmaW5lIFNTSF9UVU5fUFJF UEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwgI2RlZmluZSBIQVZFX0RJUk5BTUUg MQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VUSU1FUyAxCnwgI2RlZmluZSBIQVZF X0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUCAx CnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCnwgI2Rl ZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HTE9CX05PTUFU Q0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9DX1BJRCAxCnwgI2RlZmluZSBIQVZFX0FTUFJJTlRGIDEK fCAjZGVmaW5lIEhBVkVfQkNPUFkgMQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxCnwgI2RlZmluZSBI QVZFX0RJUkZEIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNIT1dO IDEKfCAjZGVmaW5lIEhBVkVfRlJFRUFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRWRlMg MQp8ICNkZWZpbmUgSEFWRV9GVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgSEFWRV9HRVRDV0QgMQp8ICNkZWZpbmUgSEFWRV9HRVRHUk9VUExJU1QgMQp8ICNk ZWZpbmUgSEFWRV9HRVROQU1FSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX0dFVFRUWUVOVCAxCnwgI2RlZmluZSBI QVZFX0dMT0IgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04gMQp8ICNkZWZpbmUgSEFWRV9JTkVU X05UT0EgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQp8ICNkZWZpbmUgSEFWRV9JTk5FVEdS IDEKfCAjZGVmaW5lIEhBVkVfTUVNTU9WRSAxCnwgI2RlZmluZSBIQVZFX01LRFRFTVAgMQp8ICNk ZWZpbmUgSEFWRV9NTUFQIDEKfCAjZGVmaW5lIEhBVkVfT1BFTlBUWSAxCnwgI2RlZmluZSBIQVZF X1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCnwgI2RlZmluZSBIQVZFX1JFQUxQQVRIIDEK fCAjZGVmaW5lIEhBVkVfUkVDVk1TRyAxCnwgI2RlZmluZSBIQVZFX1JSRVNWUE9SVF9BRiAxCnwg I2RlZmluZSBIQVZFX1NFTkRNU0cgMQp8ICNkZWZpbmUgSEFWRV9TRVRFR0lEIDEKfCAjZGVmaW5l IEhBVkVfU0VURU5WIDEKfCAjZGVmaW5lIEhBVkVfU0VURVVJRCAxCnwgI2RlZmluZSBIQVZFX1NF VEdST1VQUyAxCnwgI2RlZmluZSBIQVZFX1NFVFJFR0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVV SUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRTSUQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRWQlVGIDEKfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKfCAjZGVm aW5lIEhBVkVfU0lHVkVDIDEKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFW RV9TT0NLRVRQQUlSIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEZTIDEKfCAjZGVmaW5lIEhBVkVfU1RB VFZGUyAxCnwgI2RlZmluZSBIQVZFX1NUUkRVUCAxCnwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEK fCAjZGVmaW5lIEhBVkVfU1RSUFRJTUUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0xMIDEKfCAjZGVm aW5lIEhBVkVfU1RSVE9VTCAxCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQp8ICNkZWZpbmUgSEFW RV9UQ0dFVFBHUlAgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQ0FURSAxCnwgI2RlZmluZSBIQVZFX1VO U0VURU5WIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUFggMQp8ICNkZWZpbmUgSEFWRV9WQVNQUklO VEYgMQp8ICNkZWZpbmUgSEFWRV9WSEFOR1VQIDEKfCAjZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDEK fCAjZGVmaW5lIEhBVkVfV0FJVFBJRCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZp bmUgRU5BQkxFX1BLQ1MxMSAvKiovCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2Rl ZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0NPTlNUX0dBSV9TVFJFUlJP Ul9QUk9UTyAxCnwgI2RlZmluZSBIQVZFX05BTk9TTEVFUCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZu ZGVmIGdldHJ1c2FnZQp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIGdldHJ1c2FnZTsK fCAjZWxzZQp8ICAgKHZvaWQpIGdldHJ1c2FnZTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjkxNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjkx Njk6IGNoZWNraW5nIHdoZXRoZXIgc3Ryc2VwIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo5MTY5OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAt V3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNl Y3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRl c3QuYyA+JjUKY29uZmlndXJlOjkxNjk6ICQ/ID0gMApjb25maWd1cmU6OTE2OTogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjkxNzg6IGNoZWNraW5nIGZvciBzdHJzZXAKY29uZmlndXJlOjkxNzg6IHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBl IC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdm b3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxs ICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25m aWd1cmU6OTE3ODogJD8gPSAwCmNvbmZpZ3VyZTo5MTc4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 OTE5MDogY2hlY2tpbmcgd2hldGhlciB0Y3NlbmRicmVhayBpcyBkZWNsYXJlZApjb25maWd1cmU6 OTE5MDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MTkwOiAkPyA9IDAKY29uZmlndXJlOjkxOTA6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTo5MjExOiBjaGVja2luZyB3aGV0aGVyIGhfZXJybm8gaXMgZGVj bGFyZWQKY29uZmlndXJlOjkyMTE6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1u YXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdz aWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVz ZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6OTIxMTogJD8gPSAwCmNv bmZpZ3VyZTo5MjExOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTIyNDogY2hlY2tpbmcgd2hldGhl ciBTSFVUX1JEIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo5MjI0OiB4ODZfNjQtcGMtbGludXgtZ251 LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1 bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRl ci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0 aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjkyMjQ6ICQ/ID0gMApjb25maWd1cmU6OTIyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkyNDA6 IGNoZWNraW5nIHdoZXRoZXIgT19OT05CTE9DSyBpcyBkZWNsYXJlZApjb25maWd1cmU6OTI0MDog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwg LVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1z ZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3Qt YWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MjQwOiAkPyA9IDAKY29uZmlndXJlOjkyNDA6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo5MjYxOiBjaGVja2luZyB3aGV0aGVyIHdyaXRldiBpcyBkZWNsYXJlZApj b25maWd1cmU6OTI2MTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29t cGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1 bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MjYxOiAkPyA9IDAKY29uZmlndXJl OjkyNjE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5Mjc4OiBjaGVja2luZyB3aGV0aGVyIE1BWFNZ TUxJTktTIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZTo5Mjc4OiB4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmlu aXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1z aWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4t bWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjky Nzg6ICQ/ID0gMApjb25maWd1cmU6OTI3ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkyOTM6IGNo ZWNraW5nIHdoZXRoZXIgb2Zmc2V0b2YgaXMgZGVjbGFyZWQKY29uZmlndXJlOjkyOTM6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1jIC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICBjb25mdGVzdC5j ID4mNQpjb25maWd1cmU6OTI5MzogJD8gPSAwCmNvbmZpZ3VyZTo5MjkzOiByZXN1bHQ6IHllcwpj b25maWd1cmU6OTMxMDogY2hlY2tpbmcgZm9yIHNldHJlc3VpZApjb25maWd1cmU6OTMxMDogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZp Z3VyZTo5MzEwOiAkPyA9IDAKY29uZmlndXJlOjkzMTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5 MzE2OiBjaGVja2luZyBpZiBzZXRyZXN1aWQgc2VlbXMgdG8gd29yawpjb25maWd1cmU6OTMzMTog eDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBp cGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAt V2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1h bGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNv bmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxNjY6MTogd2FybmluZzog aW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ3NldHJlc3VpZCcKY29uZmlndXJlOjkz MzE6ICQ/ID0gMApjb25maWd1cmU6OTMzMTogLi9jb25mdGVzdApjb25maWd1cmU6OTMzMTogJD8g PSAwCmNvbmZpZ3VyZTo5MzMyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTM1MjogY2hlY2tpbmcg Zm9yIHNldHJlc2dpZApjb25maWd1cmU6OTM1MjogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8g Y29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1X dW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50 ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWls dGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVk IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5j IC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo5MzUyOiAkPyA9IDAKY29uZmln dXJlOjkzNTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MzU4OiBjaGVja2luZyBpZiBzZXRyZXNn aWQgc2VlbXMgdG8gd29yawpjb25maWd1cmU6OTM3MzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRo IC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBv aW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1i dWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVz dC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoxNjc6MTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ3NldHJlc2dpZCcKY29uZmlndXJlOjkzNzM6ICQ/ID0gMApjb25maWd1cmU6OTM3 MzogLi9jb25mdGVzdApjb25maWd1cmU6OTM3MzogJD8gPSAwCmNvbmZpZ3VyZTo5Mzc0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6OTM5NTogY2hlY2tpbmcgZm9yIGdldHRpbWVvZmRheQpjb25maWd1 cmU6OTM5NTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFs bCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5z bCAgPiY1CmNvbmZpZ3VyZTo5Mzk1OiAkPyA9IDAKY29uZmlndXJlOjkzOTU6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo5Mzk1OiBjaGVja2luZyBmb3IgdGltZQpjb25maWd1cmU6OTM5NTogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3Vy ZTo5Mzk1OiAkPyA9IDAKY29uZmlndXJlOjkzOTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5NDA3 OiBjaGVja2luZyBmb3IgZW5kdXRlbnQKY29uZmlndXJlOjk0MDc6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRl ci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkg LVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQg Y29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6OTQwNzogJD8g PSAwCmNvbmZpZ3VyZTo5NDA3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQwNzogY2hlY2tpbmcg Zm9yIGdldHV0ZW50CmNvbmZpZ3VyZTo5NDA3OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBj b25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1 bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRl ci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0 aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQg LWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMg LWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjk0MDc6ICQ/ID0gMApjb25maWd1 cmU6OTQwNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjk0MDc6IGNoZWNraW5nIGZvciBnZXR1dGlk CmNvbmZpZ3VyZTo5NDA3OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFy Y2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVk IC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8t dW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1m c3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0aWwg LWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjk0MDc6ICQ/ID0gMApjb25maWd1cmU6OTQwNzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjk0MDc6IGNoZWNraW5nIGZvciBnZXR1dGxpbmUKY29uZmlndXJl Ojk0MDc6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUg LU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNv bXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVz dWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90 ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg LVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wg ID4mNQpjb25maWd1cmU6OTQwNzogJD8gPSAwCmNvbmZpZ3VyZTo5NDA3OiByZXN1bHQ6IHllcwpj b25maWd1cmU6OTQwNzogY2hlY2tpbmcgZm9yIHB1dHV0bGluZQpjb25maWd1cmU6OTQwNzogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZp Z3VyZTo5NDA3OiAkPyA9IDAKY29uZmlndXJlOjk0MDc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5 NDA3OiBjaGVja2luZyBmb3Igc2V0dXRlbnQKY29uZmlndXJlOjk0MDc6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVk ZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6OTQwNzog JD8gPSAwCmNvbmZpZ3VyZTo5NDA3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQxODogY2hlY2tp bmcgZm9yIHV0bXBuYW1lCmNvbmZpZ3VyZTo5NDE4OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt byBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGgg LVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9p bnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1 aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVk ZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0 LmMgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjk0MTg6ICQ/ID0gMApjb25m aWd1cmU6OTQxODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjk0MzA6IGNoZWNraW5nIGZvciBlbmR1 dHhlbnQKY29uZmlndXJlOjk0MzA6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0 IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlh bGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24g LVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1z ZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1s dXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6OTQzMDogJD8gPSAwCmNvbmZpZ3VyZTo5NDMw OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQzMDogY2hlY2tpbmcgZm9yIGdldHV0eGVudApjb25m aWd1cmU6OTQzMDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9y LWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAt bG5zbCAgPiY1CmNvbmZpZ3VyZTo5NDMwOiAkPyA9IDAKY29uZmlndXJlOjk0MzA6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo5NDMwOiBjaGVja2luZyBmb3IgZ2V0dXR4aWQKY29uZmlndXJlOjk0MzA6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUg LVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3It YWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpj b25maWd1cmU6OTQzMDogJD8gPSAwCmNvbmZpZ3VyZTo5NDMwOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6OTQzMDogY2hlY2tpbmcgZm9yIGdldHV0eGxpbmUKY29uZmlndXJlOjk0MzA6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6 OTQzMDogJD8gPSAwCmNvbmZpZ3VyZTo5NDMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQzMDog Y2hlY2tpbmcgZm9yIGdldHV0eHVzZXIKY29uZmlndXJlOjk0MzA6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRl ci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkg LVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQg Y29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdlL25l dC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2NRNzZYRWcubzogSW4gZnVuY3Rpb24gYG1haW4n Ogpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ2V0dXR4 dXNlcicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjk0MzA6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5TU0giCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgIm9wZW5zc2giCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5TU0ggUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAib3BlbnNzaC11bml4LWRldkBtaW5kcm90Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBM T0dJTl9QUk9HUkFNX0ZBTExCQUNLICIvYmluL2xvZ2luIgp8ICNkZWZpbmUgX1BBVEhfUEFTU1dE X1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX19OT05OVUxM X18gMQp8ICNkZWZpbmUgSEFWRV9DUllQVF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9FTkRJQU5fSCAxCnwgI2RlZmluZSBIQVZFX0ZFQVRVUkVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQp8ICNkZWZpbmUg SEFWRV9HTE9CX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX01B SUxMT0NLX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfUEFUSFNf SCAxCnwgI2RlZmluZSBIQVZFX1BPTExfSCAxCnwgI2RlZmluZSBIQVZFX1BUWV9IIDEKfCAjZGVm aW5lIEhBVkVfUlBDX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9I IDEKfCAjZGVmaW5lIEhBVkVfU0hBRE9XX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERERUZfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQklUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfRElSX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfTU1BTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19QUkNUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVFJPUFRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVFZGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NZU01BQ1JPU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEK fCAjZGVmaW5lIEhBVkVfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1VUSU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9VVE1QX0ggMQp8ICNkZWZpbmUgSEFWRV9VVE1QWF9IIDEKfCAjZGVmaW5lIEhBVkVfTEFTVExP R19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQp8ICNkZWZpbmUgUEFNX1RUWV9LTFVE R0UgMQp8ICNkZWZpbmUgTE9DS0VEX1BBU1NXRF9QUkVGSVggIiEiCnwgI2RlZmluZSBTUFRfVFlQ RSBTUFRfUkVVU0VBUkdWCnwgI2RlZmluZSBMSU5LX09QTk9UU1VQUF9FUlJOTyBFUEVSTQp8ICNk ZWZpbmUgX1BBVEhfQlRNUCAiL3Zhci9sb2cvYnRtcCIKfCAjZGVmaW5lIFVTRV9CVE1QIDEKfCAj ZGVmaW5lIExJTlVYX09PTV9BREpVU1QgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9UVU5fSCAx CnwgI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEKfCAjZGVmaW5lIFNTSF9UVU5fQ09NUEFUX0FGIDEK fCAjZGVmaW5lIFNTSF9UVU5fUFJFUEVORF9BRiAxCnwgI2RlZmluZSBIQVZFX0xJQk5TTCAxCnwg I2RlZmluZSBIQVZFX0RJUk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJHRU5fSCAxCnwgI2RlZmlu ZSBIQVZFX0JBU0VOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1VU SU1FUyAxCnwgI2RlZmluZSBIQVZFX0xPR0lOIDEKfCAjZGVmaW5lIEhBVkVfTE9HT1VUIDEKfCAj ZGVmaW5lIEhBVkVfVVBEV1RNUCAxCnwgI2RlZmluZSBIQVZFX0xPR1dUTVAgMQp8ICNkZWZpbmUg SEFWRV9TVFJGVElNRSAxCnwgI2RlZmluZSBHTE9CX0hBU19BTFRESVJGVU5DIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQp8ICNkZWZpbmUgSEFWRV9QUk9DX1BJRCAxCnwgI2Rl ZmluZSBIQVZFX0FTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfQkNPUFkgMQp8ICNkZWZpbmUgSEFW RV9DTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RJUkZEIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EIDEK fCAjZGVmaW5lIEhBVkVfRkNIT1dOIDEKfCAjZGVmaW5lIEhBVkVfRlJFRUFERFJJTkZPIDEKfCAj ZGVmaW5lIEhBVkVfRlNUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9GVVRJTUVTIDEKfCAjZGVmaW5l IEhBVkVfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRDV0QgMQp8ICNkZWZpbmUgSEFW RV9HRVRHUk9VUExJU1QgMQp8ICNkZWZpbmUgSEFWRV9HRVROQU1FSU5GTyAxCnwgI2RlZmluZSBI QVZFX0dFVE9QVCAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX0dF VFRUWUVOVCAxCnwgI2RlZmluZSBIQVZFX0dMT0IgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX0FUT04g MQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT0EgMQp8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQp8 ICNkZWZpbmUgSEFWRV9JTk5FVEdSIDEKfCAjZGVmaW5lIEhBVkVfTUVNTU9WRSAxCnwgI2RlZmlu ZSBIQVZFX01LRFRFTVAgMQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEKfCAjZGVmaW5lIEhBVkVfT1BF TlBUWSAxCnwgI2RlZmluZSBIQVZFX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCnwgI2Rl ZmluZSBIQVZFX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEhBVkVfUkVDVk1TRyAxCnwgI2RlZmluZSBI QVZFX1JSRVNWUE9SVF9BRiAxCnwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQp8ICNkZWZpbmUgSEFW RV9TRVRFR0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VURU5WIDEKfCAjZGVmaW5lIEhBVkVfU0VURVVJ RCAxCnwgI2RlZmluZSBIQVZFX1NFVEdST1VQUyAxCnwgI2RlZmluZSBIQVZFX1NFVFJFR0lEIDEK fCAjZGVmaW5lIEhBVkVfU0VUUkVVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRTSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRWQlVGIDEKfCAjZGVmaW5lIEhB VkVfU0lHQUNUSU9OIDEKfCAjZGVmaW5lIEhBVkVfU0lHVkVDIDEKfCAjZGVmaW5lIEhBVkVfU05Q UklOVEYgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRQQUlSIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEZT IDEKfCAjZGVmaW5lIEhBVkVfU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX1NUUkRVUCAxCnwgI2Rl ZmluZSBIQVZFX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfU1RSUFRJTUUgMQp8ICNkZWZpbmUg SEFWRV9TVFJUT0xMIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9VTCAxCnwgI2RlZmluZSBIQVZFX1NZ U0NPTkYgMQp8ICNkZWZpbmUgSEFWRV9UQ0dFVFBHUlAgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQ0FU RSAxCnwgI2RlZmluZSBIQVZFX1VOU0VURU5WIDEKfCAjZGVmaW5lIEhBVkVfVVBEV1RNUFggMQp8 ICNkZWZpbmUgSEFWRV9WQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9WSEFOR1VQIDEKfCAjZGVm aW5lIEhBVkVfVlNOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfV0FJVFBJRCAxCnwgI2RlZmluZSBI QVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgRU5BQkxFX1BLQ1MxMSAvKiovCnwgI2RlZmluZSBIQVZF X0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBI QVZFX0NPTlNUX0dBSV9TVFJFUlJPUl9QUk9UTyAxCnwgI2RlZmluZSBIQVZFX05BTk9TTEVFUCAx CnwgI2RlZmluZSBIQVZFX1NUUlNFUCAxCnwgI2RlZmluZSBIQVZFX1RDU0VOREJSRUFLIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9IX0VSUk5PIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TSFVUX1JEIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9PX05PTkJMT0NLIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9XUklU RVYgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01BWFNZTUxJTktTIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9PRkZTRVRPRiAxCnwgI2RlZmluZSBIQVZFX1NFVFJFU1VJRCAxCnwgI2RlZmluZSBIQVZFX1NF VFJFU0dJRCAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9FTkRVVEVOVCAxCnwgI2RlZmluZSBIQVZFX0dFVFVURU5UIDEK fCAjZGVmaW5lIEhBVkVfR0VUVVRJRCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUTElORSAxCnwgI2Rl ZmluZSBIQVZFX1BVVFVUTElORSAxCnwgI2RlZmluZSBIQVZFX1NFVFVURU5UIDEKfCAjZGVmaW5l IEhBVkVfVVRNUE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9FTkRVVFhFTlQgMQp8ICNkZWZpbmUgSEFW RV9HRVRVVFhFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVFhJRCAxCnwgI2RlZmluZSBIQVZFX0dF VFVUWExJTkUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0dXR4dXNl ciB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdl dHV0eHVzZXIuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBnZXR1dHh1c2VyIGlubm9jdW91c19nZXR1dHh1 c2VyCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFy IGdldHV0eHVzZXIgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19f CnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+Cnwg I2VuZGlmCnwgCnwgI3VuZGVmIGdldHV0eHVzZXIKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldHV0eHVzZXIg KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfZ2V0dXR4dXNlciB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldHV0eHVzZXIKfCBjaG9rZSBt ZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGdldHV0eHVzZXIgKCk7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo5NDMwOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo5NDMwOiBjaGVja2luZyBmb3IgcHV0dXR4bGluZQpjb25maWd1cmU6OTQzMDogeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdh bGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1h dC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1X bCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3Vy ZTo5NDMwOiAkPyA9IDAKY29uZmlndXJlOjk0MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5NDQy OiBjaGVja2luZyBmb3Igc2V0dXR4ZGIKY29uZmlndXJlOjk0NDI6IHg4Nl82NC1wYy1saW51eC1n bnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRl ci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkg LVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwt LWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQg Y29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQovdmFyL3RtcC9wb3J0YWdlL25l dC1taXNjL29wZW5zc2gtNS44X3AyL3RlbXAvY2Njc0F5NUsubzogSW4gZnVuY3Rpb24gYG1haW4n Ogpjb25mdGVzdC5jOigudGV4dCsweDE2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc2V0dXR4 ZGInCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo5NDQyOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJvcGVuc3NoIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgIm9wZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9H SU5fUFJPR1JBTV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9Q Uk9HICIvdXNyL2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9f IDEKfCAjZGVmaW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVm aW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhB VkVfR0xPQl9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlM TE9DS19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0gg MQp8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmlu ZSBIQVZFX1JQQ19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAx CnwgI2RlZmluZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwg I2RlZmluZSBIQVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf VVRNUF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0df SCAxCnwgI2RlZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdF IDEKfCAjZGVmaW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUg U1BUX1JFVVNFQVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVm aW5lIF9QQVRIX0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2Rl ZmluZSBMSU5VWF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8 ICNkZWZpbmUgU1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwg I2RlZmluZSBTU0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNk ZWZpbmUgSEFWRV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUg SEFWRV9CQVNFTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElN RVMgMQp8ICNkZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2Rl ZmluZSBIQVZFX1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhB VkVfU1RSRlRJTUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZp bmUgSEFWRV9BU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAjZGVmaW5lIEhBVkVf Q0xPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PRCAxCnwg I2RlZmluZSBIQVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERSSU5GTyAxCnwgI2Rl ZmluZSBIQVZFX0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAxCnwgI2RlZmluZSBI QVZFX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAjZGVmaW5lIEhBVkVf R0VUR1JPVVBMSVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8ICNkZWZpbmUgSEFW RV9HRVRPUFQgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9HRVRU VFlFTlQgMQp8ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEK fCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKfCAj ZGVmaW5lIEhBVkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZFX01FTU1PVkUgMQp8ICNkZWZpbmUg SEFWRV9NS0RURU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwgI2RlZmluZSBIQVZFX09QRU5Q VFkgMQp8ICNkZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQp8ICNkZWZp bmUgSEFWRV9SRUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZNU0cgMQp8ICNkZWZpbmUgSEFW RV9SUkVTVlBPUlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKfCAjZGVmaW5lIEhBVkVf U0VURUdJRCAxCnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwgI2RlZmluZSBIQVZFX1NFVEVVSUQg MQp8ICNkZWZpbmUgSEFWRV9TRVRHUk9VUFMgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRUdJRCAxCnwg I2RlZmluZSBIQVZFX1NFVFJFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVm aW5lIEhBVkVfU0VUU0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUVkJVRiAxCnwgI2RlZmluZSBIQVZF X1NJR0FDVElPTiAxCnwgI2RlZmluZSBIQVZFX1NJR1ZFQyAxCnwgI2RlZmluZSBIQVZFX1NOUFJJ TlRGIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUEFJUiAxCnwgI2RlZmluZSBIQVZFX1NUQVRGUyAx CnwgI2RlZmluZSBIQVZFX1NUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9TVFJEVVAgMQp8ICNkZWZp bmUgSEFWRV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX1NUUlBUSU1FIDEKfCAjZGVmaW5lIEhB VkVfU1RSVE9MTCAxCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQp8ICNkZWZpbmUgSEFWRV9TWVND T05GIDEKfCAjZGVmaW5lIEhBVkVfVENHRVRQR1JQIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkNBVEUg MQp8ICNkZWZpbmUgSEFWRV9VTlNFVEVOViAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVBYIDEKfCAj ZGVmaW5lIEhBVkVfVkFTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfVkhBTkdVUCAxCnwgI2RlZmlu ZSBIQVZFX1ZTTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX1dBSVRQSUQgMQp8ICNkZWZpbmUgSEFW RV9JU0JMQU5LIDEKfCAjZGVmaW5lIEVOQUJMRV9QS0NTMTEgLyoqLwp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFW RV9DT05TVF9HQUlfU1RSRVJST1JfUFJPVE8gMQp8ICNkZWZpbmUgSEFWRV9OQU5PU0xFRVAgMQp8 ICNkZWZpbmUgSEFWRV9TVFJTRVAgMQp8ICNkZWZpbmUgSEFWRV9UQ1NFTkRCUkVBSyAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSF9FUlJOTyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU0hVVF9SRCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfT19OT05CTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfV1JJVEVW IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NQVhTWU1MSU5LUyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf T0ZGU0VUT0YgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVNVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRS RVNHSUQgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9USU1F IDEKfCAjZGVmaW5lIEhBVkVfRU5EVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVEVOVCAxCnwg I2RlZmluZSBIQVZFX0dFVFVUSUQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVExJTkUgMQp8ICNkZWZp bmUgSEFWRV9QVVRVVExJTkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRVVEVOVCAxCnwgI2RlZmluZSBI QVZFX1VUTVBOQU1FIDEKfCAjZGVmaW5lIEhBVkVfRU5EVVRYRU5UIDEKfCAjZGVmaW5lIEhBVkVf R0VUVVRYRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYSUQgMQp8ICNkZWZpbmUgSEFWRV9HRVRV VFhMSU5FIDEKfCAjZGVmaW5lIEhBVkVfUFVUVVRYTElORSAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIERlZmluZSBzZXR1dHhkYiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNldHV0eGRiLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAx MWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2V0dXR4 ZGIgaW5ub2N1b3VzX3NldHV0eGRiCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIHNldHV0eGRiICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1p dHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8 bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8 ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1 ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzZXR1dHhkYgp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgc2V0dXR4ZGIgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcg c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAj aWYgZGVmaW5lZCBfX3N0dWJfc2V0dXR4ZGIgfHwgZGVmaW5lZCBfX3N0dWJfX19zZXR1dHhkYgp8 IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc2V0dXR4 ZGIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo5NDQyOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo5NDQyOiBjaGVja2luZyBmb3Igc2V0dXR4ZW50CmNvbmZpZ3VyZTo5NDQyOiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1X Zm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFs bCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEg LVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29u ZmlndXJlOjk0NDI6ICQ/ID0gMApjb25maWd1cmU6OTQ0MjogcmVzdWx0OiB5ZXMKY29uZmlndXJl Ojk0NDI6IGNoZWNraW5nIGZvciB1dG1weG5hbWUKY29uZmlndXJlOjk0NDI6IHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1X cG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2Vj dXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8x IC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1u ZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6OTQ0 MjogJD8gPSAwCmNvbmZpZ3VyZTo5NDQyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTQ1MzogY2hl Y2tpbmcgZm9yIGdldGxhc3Rsb2d4YnluYW1lCmNvbmZpZ3VyZTo5NDUzOiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3Bv aW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3Vy aXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAt V2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVl ZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKL3Zhci90bXAvcG9ydGFn ZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi90ZW1wL2NjU1ZHejVFLm86IEluIGZ1bmN0aW9uIGBt YWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxNik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdl dGxhc3Rsb2d4YnluYW1lJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m aWd1cmU6OTQ1MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFi bGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBf UEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJV VEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9E SVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVS RVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAx CnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVm aW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUg SEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZ X0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZ X1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NU RERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNU X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9Q VFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwg I2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUg SEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQ QU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVm aW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5P IEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNF X0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVY X0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9D T01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVf TElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9I IDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVm aW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9M T0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAx CnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0Nf UElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwg I2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFW RV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQURE UklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMg MQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwg I2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEK fCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVm aW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZF X0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lO RVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZF IDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZp bmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BS Q1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEK fCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwg I2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUg SEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUR1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVf U0VUUkVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFNJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8 ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQp8ICNkZWZpbmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZp bmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUg SEFWRV9TVEFURlMgMQp8ICNkZWZpbmUgSEFWRV9TVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RS RFVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9TVFJQVElNRSAx CnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDEKfCAjZGVm aW5lIEhBVkVfU1lTQ09ORiAxCnwgI2RlZmluZSBIQVZFX1RDR0VUUEdSUCAxCnwgI2RlZmluZSBI QVZFX1RSVU5DQVRFIDEKfCAjZGVmaW5lIEhBVkVfVU5TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9V UERXVE1QWCAxCnwgI2RlZmluZSBIQVZFX1ZBU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX1ZIQU5H VVAgMQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9XQUlUUElEIDEK fCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBFTkFCTEVfUEtDUzExIC8qKi8KfCAj ZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEK fCAjZGVmaW5lIEhBVkVfQ09OU1RfR0FJX1NUUkVSUk9SX1BST1RPIDEKfCAjZGVmaW5lIEhBVkVf TkFOT1NMRUVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0VQIDEKfCAjZGVmaW5lIEhBVkVfVENTRU5E QlJFQUsgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0hfRVJSTk8gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NIVVRfUkQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09fTk9OQkxPQ0sgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1dSSVRFViAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUFYU1lNTElOS1MgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX09GRlNFVE9GIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVTVUlEIDEKfCAjZGVm aW5lIEhBVkVfU0VUUkVTR0lEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfVElNRSAxCnwgI2RlZmluZSBIQVZFX0VORFVURU5UIDEKfCAjZGVmaW5lIEhBVkVf R0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVElEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRM SU5FIDEKfCAjZGVmaW5lIEhBVkVfUFVUVVRMSU5FIDEKfCAjZGVmaW5lIEhBVkVfU0VUVVRFTlQg MQp8ICNkZWZpbmUgSEFWRV9VVE1QTkFNRSAxCnwgI2RlZmluZSBIQVZFX0VORFVUWEVOVCAxCnwg I2RlZmluZSBIQVZFX0dFVFVUWEVOVCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUWElEIDEKfCAjZGVm aW5lIEhBVkVfR0VUVVRYTElORSAxCnwgI2RlZmluZSBIQVZFX1BVVFVUWExJTkUgMQp8ICNkZWZp bmUgSEFWRV9TRVRVVFhFTlQgMQp8ICNkZWZpbmUgSEFWRV9VVE1QWE5BTUUgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0bGFzdGxvZ3hieW5hbWUgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXRsYXN0bG9neGJ5bmFt ZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldGxhc3Rsb2d4YnluYW1lIGlubm9jdW91c19nZXRsYXN0 bG9neGJ5bmFtZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp dGggY2hhciBnZXRsYXN0bG9neGJ5bmFtZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRz Lmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAj aWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRl IDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZ2V0bGFzdGxvZ3hieW5hbWUKfCAKfCAv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K fCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5k aWYKfCBjaGFyIGdldGxhc3Rsb2d4YnluYW1lICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRl ZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3 YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQK fCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh biBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2dldGxhc3Rsb2d4YnluYW1lIHx8IGRl ZmluZWQgX19zdHViX19fZ2V0bGFzdGxvZ3hieW5hbWUKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8 IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGdldGxhc3Rsb2d4YnluYW1lICgpOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6OTQ1MzogcmVzdWx0OiBubwpjb25maWd1cmU6OTQ2 MzogY2hlY2tpbmcgZm9yIGRhZW1vbgpjb25maWd1cmU6OTQ2MzogeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVy LWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAt V25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0t YXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBj b25mdGVzdC5jIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTo5NDYzOiAkPyA9 IDAKY29uZmlndXJlOjk0NjM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5NTE0OiBjaGVja2luZyBm b3IgZ2V0cGFnZXNpemUKY29uZmlndXJlOjk1MTQ6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1v IGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAt V3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2lu dGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVp bHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRl ZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3Qu YyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6OTUxNDogJD8gPSAwCmNvbmZp Z3VyZTo5NTE0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTU2NzogY2hlY2tpbmcgd2hldGhlciBz bnByaW50ZiBjb3JyZWN0bHkgdGVybWluYXRlcyBsb25nIHN0cmluZ3MKY29uZmlndXJlOjk1ODE6 IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1w aXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUg LVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3It YWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1P MSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpj b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MTg0OjE6IHdhcm5pbmc6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdleGl0Jwpjb25mdGVzdC5jOjE4NDo1 Mjogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWlu IGZ1bmN0aW9uICdleGl0Jwpjb25maWd1cmU6OTU4MTogJD8gPSAwCmNvbmZpZ3VyZTo5NTgxOiAu L2NvbmZ0ZXN0CmNvbmZpZ3VyZTo5NTgxOiAkPyA9IDAKY29uZmlndXJlOjk1ODI6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo5NjU1OiBjaGVja2luZyB3aGV0aGVyIHNucHJpbnRmIGNhbiBkZWNsYXJl IGNvbnN0IGNoYXIgKmZtdApjb25maWd1cmU6OTY2NDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0 aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2ln biAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1l bXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxODQ6NTogd2FybmluZzogbnVsbCBhcmd1bWVu dCB3aGVyZSBub24tbnVsbCByZXF1aXJlZCAoYXJndW1lbnQgMykKY29uZnRlc3QuYzoxODQ6NTog d2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgpjb25maWd1 cmU6OTY2NDogJD8gPSAwCmNvbmZpZ3VyZTo5NjY1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTY4 MTogY2hlY2tpbmcgd2hldGhlciBzeXN0ZW0gc3VwcG9ydHMgU09fUEVFUkNSRUQgZ2V0c29ja29w dApjb25maWd1cmU6OTY5NTogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLWMgLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24t Y29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1y ZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXBy b3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWlu JzoKY29uZnRlc3QuYzoxODg6NTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJwpjb25maWd1 cmU6OTY5NTogJD8gPSAwCmNvbmZpZ3VyZTo5Njk2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTcx MjogY2hlY2tpbmcgZm9yIChvdmVybHkpIHN0cmljdCBta3N0ZW1wCmNvbmZpZ3VyZTo5NzM0OiB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlw ZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1X Zm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFs bCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEg LVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29u ZnRlc3QuYzoxODY6MTogd2FybmluZzogcmV0dXJuIHR5cGUgZGVmYXVsdHMgdG8gJ2ludCcKY29u ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjE4OToxOiB3YXJuaW5nOiBp bXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAndW5saW5rJwpjb25maWd1cmU6OTczNDog JD8gPSAwCmNvbmZpZ3VyZTo5NzM0OiAuL2NvbmZ0ZXN0CmNvbmZpZ3VyZTo5NzM0OiAkPyA9IDEK Y29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi T3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlblNT SCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgtZGV2 QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9i aW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dkIgp8 ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NSWVBU X0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9IIDEK fCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNk ZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBIQVZF X05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9MTF9I IDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFET1df SCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElN RV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBIQVZF X1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf TU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURfUEFT U1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVmaW5l IExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFyL2xv Zy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVTVCAx CnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElOVVgg MQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQRU5E X0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAxCnwg I2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNkZWZp bmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVfTE9H SU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEKfCAj ZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVmaW5l IEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRDSCAx CnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8ICNk ZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhBVkVf RElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04gMQp8 ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAxCnwg I2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwgI2Rl ZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5lIEhB VkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhBVkVf R0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRP QSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1IgMQp8 ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2RlZmlu ZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVfUE9M TCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8ICNk ZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAjZGVm aW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZpbmUgSEFW RV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUR1JP VVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVVJRCAx CnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFNJRCAxCnwgI2Rl ZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQp8ICNkZWZpbmUg SEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX1NP Q0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8ICNkZWZpbmUgSEFWRV9TVEFUVkZT IDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQp8ICNk ZWZpbmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQp8ICNkZWZpbmUg SEFWRV9TVFJUT1VMIDEKfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxCnwgI2RlZmluZSBIQVZFX1RD R0VUUEdSUCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DQVRFIDEKfCAjZGVmaW5lIEhBVkVfVU5TRVRF TlYgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QWCAxCnwgI2RlZmluZSBIQVZFX1ZBU1BSSU5URiAx CnwgI2RlZmluZSBIQVZFX1ZIQU5HVVAgMQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQp8ICNk ZWZpbmUgSEFWRV9XQUlUUElEIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBF TkFCTEVfUEtDUzExIC8qKi8KfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5l IEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfQ09OU1RfR0FJX1NUUkVSUk9SX1BS T1RPIDEKfCAjZGVmaW5lIEhBVkVfTkFOT1NMRUVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0VQIDEK fCAjZGVmaW5lIEhBVkVfVENTRU5EQlJFQUsgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0hfRVJSTk8g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NIVVRfUkQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09fTk9O QkxPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1dSSVRFViAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf TUFYU1lNTElOS1MgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09GRlNFVE9GIDEKfCAjZGVmaW5lIEhB VkVfU0VUUkVTVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVTR0lEIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfVElNRSAxCnwgI2RlZmluZSBIQVZFX0VORFVU RU5UIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVElEIDEK fCAjZGVmaW5lIEhBVkVfR0VUVVRMSU5FIDEKfCAjZGVmaW5lIEhBVkVfUFVUVVRMSU5FIDEKfCAj ZGVmaW5lIEhBVkVfU0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9VVE1QTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX0VORFVUWEVOVCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUWEVOVCAxCnwgI2RlZmluZSBI QVZFX0dFVFVUWElEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYTElORSAxCnwgI2RlZmluZSBIQVZF X1BVVFVUWExJTkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRVVFhFTlQgMQp8ICNkZWZpbmUgSEFWRV9V VE1QWE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9EQUVNT04gMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBTTlBSSU5URl9DT05TVCBjb25zdAp8ICNkZWZpbmUgSEFWRV9TT19Q RUVSQ1JFRCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxzdGRsaWIu aD4KfCBtYWluKCkgeyBjaGFyIHRlbXBsYXRlW109ImNvbmZ0ZXN0Lm1rc3RlbXAtdGVzdCI7Cnwg aWYgKG1rc3RlbXAodGVtcGxhdGUpID09IC0xKQp8IAlleGl0KDEpOwp8IHVubGluayh0ZW1wbGF0 ZSk7IGV4aXQoMCk7CnwgfQp8IApjb25maWd1cmU6OTc0MTogcmVzdWx0OiB5ZXMKY29uZmlndXJl Ojk3NTU6IGNoZWNraW5nIGlmIG9wZW5wdHkgY29ycmVjdGx5IGhhbmRsZXMgY29udHJvbGxpbmcg dHR5CmNvbmZpZ3VyZTo5ODAwOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAt bWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxp emVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1X bm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0 IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1w cm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAtbHV0 aWwgLWx6IC1sbnNsICA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVz dC5jOjE5NzoyOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZm9y aycKY29uZnRlc3QuYzoxOTk6Mzogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ2V4aXQnCmNvbmZ0ZXN0LmM6MTk5OjM6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBs aWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKY29uZnRlc3QuYzoy MDM6NDogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0 LWluIGZ1bmN0aW9uICdleGl0Jwpjb25mdGVzdC5jOjIwNzozOiB3YXJuaW5nOiBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnY2xvc2UnCmNvbmZ0ZXN0LmM6MjA4OjM6IHdhcm5pbmc6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdzZXRzaWQnCmNvbmZ0ZXN0LmM6MjA5 OjM6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdvcGVucHR5Jwpj b25mdGVzdC5jOjIxMjo0OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZTo5ODAwOiAkPyA9IDAKY29u ZmlndXJlOjk4MDA6IC4vY29uZnRlc3QKY29uZmlndXJlOjk4MDA6ICQ/ID0gMApjb25maWd1cmU6 OTgwMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDE0OiBjaGVja2luZyB3aGV0aGVyIGdldHBn cnAgcmVxdWlyZXMgemVybyBhcmd1bWVudHMKY29uZmlndXJlOjEwMDMxOiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtYyAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJp dGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8t cG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5v LWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgY29uZnRlc3QuYyA+JjUKY29u ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIyMToxOiBlcnJvcjogdG9v IG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdnZXRwZ3JwJwovdXNyL2luY2x1ZGUvdW5pc3Rk Lmg6NjMzOjE2OiBub3RlOiBkZWNsYXJlZCBoZXJlCmNvbmZpZ3VyZToxMDAzMTogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNz aCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiT3BlblNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJv cGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dS QU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vz ci9iaW4vcGFzc3dkIgp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2Rl ZmluZSBIQVZFX0NSWVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX0VORElBTl9IIDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZF X0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0Jf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAx CnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVm aW5lIEhBVkVfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9S UENfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZp bmUgSEFWRV9TSEFET1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19NTUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1BSQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUVkZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUg SEFWRV9USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAx CnwgI2RlZmluZSBIQVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2Rl ZmluZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVT RUFSR1YKfCAjZGVmaW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFU SF9CVE1QICIvdmFyL2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElO VVhfT09NX0FESlVTVCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5l IFNTSF9UVU5fTElOVVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUg U1NIX1RVTl9QUkVQRU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhB VkVfRElSTkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFT RU5BTUUgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAj ZGVmaW5lIEhBVkVfTE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFW RV9VUERXVE1QIDEKfCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZU SU1FIDEKfCAjZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0dMT0JfTk9NQVRDSCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVf QVNQUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEK fCAjZGVmaW5lIEhBVkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUg SEFWRV9GQ0hPV04gMQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFW RV9GU1RBVFZGUyAxCnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRB RERSSU5GTyAxCnwgI2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQ TElTVCAxCnwgI2RlZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BU IDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEK fCAjZGVmaW5lIEhBVkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmlu ZSBIQVZFX0lORVRfTlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBI QVZFX0lOTkVUR1IgMQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtE VEVNUCAxCnwgI2RlZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAj ZGVmaW5lIEhBVkVfUE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVf UkVBTFBBVEggMQp8ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQ T1JUX0FGIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQg MQp8ICNkZWZpbmUgSEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVm aW5lIEhBVkVfU0VUR1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNkZWZpbmUg SEFWRV9TRVRSRVVJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZF X1NFVFNJRCAxCnwgI2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJ T04gMQp8ICNkZWZpbmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwg I2RlZmluZSBIQVZFX1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8ICNkZWZp bmUgSEFWRV9TVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5lIEhBVkVf U1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRP TEwgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDEKfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxCnwg I2RlZmluZSBIQVZFX1RDR0VUUEdSUCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DQVRFIDEKfCAjZGVm aW5lIEhBVkVfVU5TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QWCAxCnwgI2RlZmluZSBI QVZFX1ZBU1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX1ZIQU5HVVAgMQp8ICNkZWZpbmUgSEFWRV9W U05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9XQUlUUElEIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFO SyAxCnwgI2RlZmluZSBFTkFCTEVfUEtDUzExIC8qKi8KfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVS Uk9SIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfQ09OU1Rf R0FJX1NUUkVSUk9SX1BST1RPIDEKfCAjZGVmaW5lIEhBVkVfTkFOT1NMRUVQIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0VQIDEKfCAjZGVmaW5lIEhBVkVfVENTRU5EQlJFQUsgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0hfRVJSTk8gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NIVVRfUkQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX09fTk9OQkxPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1dSSVRFViAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfTUFYU1lNTElOS1MgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09GRlNFVE9G IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVTVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVTR0lEIDEK fCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0VORFVURU5UIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRFTlQgMQp8ICNkZWZpbmUg SEFWRV9HRVRVVElEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRMSU5FIDEKfCAjZGVmaW5lIEhBVkVf UFVUVVRMSU5FIDEKfCAjZGVmaW5lIEhBVkVfU0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9VVE1Q TkFNRSAxCnwgI2RlZmluZSBIQVZFX0VORFVUWEVOVCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUWEVO VCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUWElEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYTElORSAx CnwgI2RlZmluZSBIQVZFX1BVVFVUWExJTkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRVVFhFTlQgMQp8 ICNkZWZpbmUgSEFWRV9VVE1QWE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9EQUVNT04gMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBTTlBSSU5URl9DT05TVCBjb25zdAp8ICNk ZWZpbmUgSEFWRV9TT19QRUVSQ1JFRCAxCnwgI2RlZmluZSBIQVZFX1NUUklDVF9NS1NURU1QIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQK fCBtYWluICgpCnwgewp8IGdldHBncnAgKDApOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTAwMzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDEwODogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2lu dGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0 eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVds LC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRl ZCBjb25mdGVzdC5jIC1sc3NsIC1sY3J5cHRvIC1sZGwgLWx6ICAgLWxkbCAtbHV0aWwgLWx6IC1s bnNsICA+JjUKY29uZmlndXJlOjEwMTA4OiAkPyA9IDAKY29uZmlndXJlOjEwMTY0OiBjaGVja2lu ZyBPcGVuU1NMIGhlYWRlciB2ZXJzaW9uCmNvbmZpZ3VyZToxMDE5NTogeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2lu dGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0 eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNp bmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVds LC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRl ZCBjb25mdGVzdC5jIC1sc3NsIC1sY3J5cHRvIC1sZGwgLWx6ICAgLWxkbCAtbHV0aWwgLWx6IC1s bnNsICA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjE5ODoz OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZXhpdCcKY29uZnRl c3QuYzoxOTg6Mzogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9m IGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpjb25mdGVzdC5jOjIwMDoyOiB3YXJuaW5nOiBmb3Jt YXQgJyV4JyBleHBlY3RzIHR5cGUgJ3Vuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCAzIGhhcyB0 eXBlICdsb25nIGludCcKY29uZmlndXJlOjEwMTk1OiAkPyA9IDAKY29uZmlndXJlOjEwMTk1OiAu L2NvbmZ0ZXN0CmNvbmZpZ3VyZToxMDE5NTogJD8gPSAwCmNvbmZpZ3VyZToxMDE5ODogcmVzdWx0 OiAxMDAwMDA0ZiAoT3BlblNTTCAxLjAuMGQgOCBGZWIgMjAxMSkKY29uZmlndXJlOjEwMjE0OiBj aGVja2luZyBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbgpjb25maWd1cmU6MTAyNDY6IHg4Nl82NC1w Yy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxs IC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQt c2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1h cy1uZWVkZWQgY29uZnRlc3QuYyAtbHNzbCAtbGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1dGls IC1seiAtbG5zbCAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3Qu YzoyMDE6Mjogd2FybmluZzogZm9ybWF0ICcleCcgZXhwZWN0cyB0eXBlICd1bnNpZ25lZCBpbnQn LCBidXQgYXJndW1lbnQgMyBoYXMgdHlwZSAnbG9uZyB1bnNpZ25lZCBpbnQnCmNvbmZpZ3VyZTox MDI0NjogJD8gPSAwCmNvbmZpZ3VyZToxMDI0NjogLi9jb25mdGVzdApjb25maWd1cmU6MTAyNDY6 ICQ/ID0gMApjb25maWd1cmU6MTAyNDk6IHJlc3VsdDogMTAwMDAwNGYgKE9wZW5TU0wgMS4wLjBk IDggRmViIDIwMTEpCmNvbmZpZ3VyZToxMDI3NjogY2hlY2tpbmcgd2hldGhlciBPcGVuU1NMJ3Mg aGVhZGVycyBtYXRjaCB0aGUgbGlicmFyeQpjb25maWd1cmU6MTAyOTM6IHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9p bnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJp dHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVk ZWQgY29uZnRlc3QuYyAtbHNzbCAtbGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1dGlsIC1seiAt bG5zbCAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxOTA6 MTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2V4aXQnCmNvbmZ0 ZXN0LmM6MTkwOjE4OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZ0ZXN0LmM6MTkwOjE6IHdhcm5pbmc6IGlt cGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdTU0xlYXknCmNvbmZpZ3VyZToxMDI5Mzog JD8gPSAwCmNvbmZpZ3VyZToxMDI5MzogLi9jb25mdGVzdApjb25maWd1cmU6MTAyOTM6ICQ/ID0g MApjb25maWd1cmU6MTAyOTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDMyNDogY2hlY2tpbmcg aWYgcHJvZ3JhbXMgdXNpbmcgT3BlblNTTCBmdW5jdGlvbnMgd2lsbCBsaW5rCmNvbmZpZ3VyZTox MDMzMzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAt TzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29t cGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1 bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3Rl Y3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sc3NsIC1sY3J5cHRvIC1sZGwgLWx6 ICAgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21h aW4nOgpjb25mdGVzdC5jOjE4OToxOiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5v bi12b2lkIGZ1bmN0aW9uCmNvbmZpZ3VyZToxMDMzMzogJD8gPSAwCmNvbmZpZ3VyZToxMDMzNTog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMzc3OiBjaGVja2luZyBmb3IgUlNBX2dlbmVyYXRlX2tl eV9leApjb25maWd1cmU6MTAzNzc6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0 IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlh bGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24g LVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1z ZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHNzbCAt bGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZpZ3VyZTox MDM3NzogJD8gPSAwCmNvbmZpZ3VyZToxMDM3NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMzc3 OiBjaGVja2luZyBmb3IgRFNBX2dlbmVyYXRlX3BhcmFtZXRlcnNfZXgKY29uZmlndXJlOjEwMzc3 OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAt cGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJl IC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9y LWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwt TzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxzc2wgLWxjcnlwdG8gLWxkbCAtbHogICAt bGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6MTAzNzc6ICQ/ID0gMApjb25maWd1 cmU6MTAzNzc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDM3NzogY2hlY2tpbmcgZm9yIEJOX2lz X3ByaW1lX2V4CmNvbmZpZ3VyZToxMDM3NzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29u ZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1m c3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1s c3NsIC1sY3J5cHRvIC1sZGwgLWx6ICAgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmln dXJlOjEwMzc3OiAkPyA9IDAKY29uZmlndXJlOjEwMzc3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MTAzNzc6IGNoZWNraW5nIGZvciBSU0FfZ2V0X2RlZmF1bHRfbWV0aG9kCmNvbmZpZ3VyZToxMDM3 NzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIg LXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFy ZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQg LWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rv ci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2ws LU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sc3NsIC1sY3J5cHRvIC1sZGwgLWx6ICAg LWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjEwMzc3OiAkPyA9IDAKY29uZmln dXJlOjEwMzc3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAzOTE6IGNoZWNraW5nIGZvciBPcGVu U1NMIEVOR0lORSBzdXBwb3J0CmNvbmZpZ3VyZToxMDQwNjogeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLWMgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5p bml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXIt c2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGlu LW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTox MDQwNjogJD8gPSAwCmNvbmZpZ3VyZToxMDQwNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNDI0 OiBjaGVja2luZyB3aGV0aGVyIE9wZW5TU0wgaGFzIGNyaXBwbGVkIEFFUyBzdXBwb3J0CmNvbmZp Z3VyZToxMDQzNDogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5h dGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3Np Z24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNl ZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9y LWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1sc3NsIC1sY3J5cHRvIC1s ZGwgLWx6ICAgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICA+JjUKY29uZmlndXJlOjEwNDM0OiAkPyA9 IDAKY29uZmlndXJlOjEwNDM2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDQ1MjogY2hlY2tpbmcg aWYgRVZQX0RpZ2VzdFVwZGF0ZSByZXR1cm5zIGFuIGludApjb25maWd1cmU6MTA0NjI6IHg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1X YWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3Jt YXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAt V2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHNzbCAtbGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1 dGlsIC1seiAtbG5zbCAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRl c3QuYzoxOTU6MTogd2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5j dGlvbgpjb25maWd1cmU6MTA0NjI6ICQ/ID0gMApjb25maWd1cmU6MTA0NjQ6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxMDUzMzogY2hlY2tpbmcgZm9yIGNyeXB0IGluIC1sY3J5cHQKY29uZmlndXJl OjEwNTU4OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxs IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxjcnlwdCAgLWxzc2wgLWxjcnlw dG8gLWxkbCAtbHogICAtbGRsIC1sdXRpbCAtbHogLWxuc2wgID4mNQpjb25maWd1cmU6MTA1NTg6 ICQ/ID0gMApjb25maWd1cmU6MTA1Njc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDU3OTogY2hl Y2tpbmcgZm9yIFNIQTI1Nl9VcGRhdGUKY29uZmlndXJlOjEwNTc5OiB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50 ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5 IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2ws LS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVk IGNvbmZ0ZXN0LmMgLWxzc2wgLWxjcnlwdG8gLWxkbCAtbHogICAtbGRsIC1sdXRpbCAtbHogLWxu c2wgIC1sY3J5cHQgPiY1CmNvbmZpZ3VyZToxMDU3OTogJD8gPSAwCmNvbmZpZ3VyZToxMDU3OTog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNTc5OiBjaGVja2luZyBmb3IgRVZQX3NoYTI1Ngpjb25m aWd1cmU6MTA1Nzk6IHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1u YXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdz aWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVz ZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFj ay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rv ci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29uZnRlc3QuYyAtbHNzbCAtbGNyeXB0byAt bGRsIC1seiAgIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgLWxjcnlwdCA+JjUKY29uZmlndXJlOjEw NTc5OiAkPyA9IDAKY29uZmlndXJlOjEwNTc5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTA1OTM6 IGNoZWNraW5nIHdoZXRoZXIgT3BlblNTTCBoYXMgY29tcGxldGUgRUNDIHN1cHBvcnQKY29uZmln dXJlOjEwNjEzOiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0 aXZlIC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2ln bi1jb21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2Vk LXJlc3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2st cHJvdGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3It YWxsIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxzc2wgLWxjcnlwdG8gLWxk bCAtbHogICAtbGRsIC1sdXRpbCAtbHogLWxuc2wgIC1sY3J5cHQgPiY1CmNvbmZ0ZXN0LmM6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMDY6MTY6IHdhcm5pbmc6IHVudXNlZCB2YXJp YWJsZSAnbScKY29uZnRlc3QuYzoyMDU6MTA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnZScK Y29uZnRlc3QuYzoyMDc6MTogd2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9p ZCBmdW5jdGlvbgpjb25maWd1cmU6MTA2MTM6ICQ/ID0gMApjb25maWd1cmU6MTA2MTU6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxMDYzODogY2hlY2tpbmcgZm9yIGlhX29wZW5pbmZvIGluIC1saWFm CmNvbmZpZ3VyZToxMDY2MzogeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1h cmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXpl ZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25v LXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAt ZnN0YWNrLXByb3RlY3Rvci1hbGwgIC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJv dGVjdG9yLWFsbCAtV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1saWFmICAtbHNz bCAtbGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAgLWxjcnlwdCA+JjUK L3Vzci9saWIvZ2NjL3g4Nl82NC1wYy1saW51eC1nbnUvNC41LjIvLi4vLi4vLi4vLi4veDg2XzY0 LXBjLWxpbnV4LWdudS9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1saWFmCmNvbGxlY3QyOiBsZCByZXR1 cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxMDY2MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiT3BlblNTSCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbnNzaCIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiUG9ydGFibGUiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3Bl blNTSCBQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVuc3NoLXVuaXgt ZGV2QG1pbmRyb3Qub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sg Ii9iaW4vbG9naW4iCnwgI2RlZmluZSBfUEFUSF9QQVNTV0RfUFJPRyAiL3Vzci9iaW4vcGFzc3dk Igp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfX05PTk5VTExfXyAxCnwgI2RlZmluZSBIQVZFX0NS WVBUX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX0VORElBTl9I IDEKfCAjZGVmaW5lIEhBVkVfRkVBVFVSRVNfSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8 ICNkZWZpbmUgSEFWRV9HRVRPUFRfSCAxCnwgI2RlZmluZSBIQVZFX0dMT0JfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfTUFJTExPQ0tfSCAxCnwgI2RlZmluZSBI QVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9QQVRIU19IIDEKfCAjZGVmaW5lIEhBVkVfUE9M TF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRZX0ggMQp8ICNkZWZpbmUgSEFWRV9SUENfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NFQ1VSSVRZX1BBTV9BUFBMX0ggMQp8ICNkZWZpbmUgSEFWRV9TSEFE T1dfSCAxCnwgI2RlZmluZSBIQVZFX1NURERFRl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19CSVRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19ESVJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BSQ1RMX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUUk9QVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUVkZT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1lTTUFDUk9TX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8ICNkZWZpbmUgSEFWRV9USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9UVFlFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1VUTVBfSCAxCnwgI2RlZmluZSBI QVZFX1VUTVBYX0ggMQp8ICNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfTU9VTlRfSCAxCnwgI2RlZmluZSBQQU1fVFRZX0tMVURHRSAxCnwgI2RlZmluZSBMT0NLRURf UEFTU1dEX1BSRUZJWCAiISIKfCAjZGVmaW5lIFNQVF9UWVBFIFNQVF9SRVVTRUFSR1YKfCAjZGVm aW5lIExJTktfT1BOT1RTVVBQX0VSUk5PIEVQRVJNCnwgI2RlZmluZSBfUEFUSF9CVE1QICIvdmFy L2xvZy9idG1wIgp8ICNkZWZpbmUgVVNFX0JUTVAgMQp8ICNkZWZpbmUgTElOVVhfT09NX0FESlVT VCAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKfCAjZGVmaW5lIFNTSF9UVU5fTElO VVggMQp8ICNkZWZpbmUgU1NIX1RVTl9DT01QQVRfQUYgMQp8ICNkZWZpbmUgU1NIX1RVTl9QUkVQ RU5EX0FGIDEKfCAjZGVmaW5lIEhBVkVfTElCTlNMIDEKfCAjZGVmaW5lIEhBVkVfRElSTkFNRSAx CnwgI2RlZmluZSBIQVZFX0xJQkdFTl9IIDEKfCAjZGVmaW5lIEhBVkVfQkFTRU5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVTIDEKfCAjZGVmaW5lIEhBVkVf TE9HSU4gMQp8ICNkZWZpbmUgSEFWRV9MT0dPVVQgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QIDEK fCAjZGVmaW5lIEhBVkVfTE9HV1RNUCAxCnwgI2RlZmluZSBIQVZFX1NUUkZUSU1FIDEKfCAjZGVm aW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dMT0JfTk9NQVRD SCAxCnwgI2RlZmluZSBIQVZFX1BST0NfUElEIDEKfCAjZGVmaW5lIEhBVkVfQVNQUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9CQ09QWSAxCnwgI2RlZmluZSBIQVZFX0NMT0NLIDEKfCAjZGVmaW5lIEhB VkVfRElSRkQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ0hPV04g MQp8ICNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQp8ICNkZWZpbmUgSEFWRV9GU1RBVFZGUyAx CnwgI2RlZmluZSBIQVZFX0ZVVElNRVMgMQp8ICNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBIQVZFX0dFVENXRCAxCnwgI2RlZmluZSBIQVZFX0dFVEdST1VQTElTVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVE5BTUVJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUT1BUIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKfCAjZGVmaW5lIEhB VkVfR0xPQiAxCnwgI2RlZmluZSBIQVZFX0lORVRfQVRPTiAxCnwgI2RlZmluZSBIQVZFX0lORVRf TlRPQSAxCnwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCnwgI2RlZmluZSBIQVZFX0lOTkVUR1Ig MQp8ICNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKfCAjZGVmaW5lIEhBVkVfTUtEVEVNUCAxCnwgI2Rl ZmluZSBIQVZFX01NQVAgMQp8ICNkZWZpbmUgSEFWRV9PUEVOUFRZIDEKfCAjZGVmaW5lIEhBVkVf UE9MTCAxCnwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKfCAjZGVmaW5lIEhBVkVfUkVBTFBBVEggMQp8 ICNkZWZpbmUgSEFWRV9SRUNWTVNHIDEKfCAjZGVmaW5lIEhBVkVfUlJFU1ZQT1JUX0FGIDEKfCAj ZGVmaW5lIEhBVkVfU0VORE1TRyAxCnwgI2RlZmluZSBIQVZFX1NFVEVHSUQgMQp8ICNkZWZpbmUg SEFWRV9TRVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VU R1JPVVBTIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVHSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVVJ RCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFNJRCAxCnwg I2RlZmluZSBIQVZFX1NFVFZCVUYgMQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQp8ICNkZWZp bmUgSEFWRV9TSUdWRUMgMQp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZF X1NPQ0tFVFBBSVIgMQp8ICNkZWZpbmUgSEFWRV9TVEFURlMgMQp8ICNkZWZpbmUgSEFWRV9TVEFU VkZTIDEKfCAjZGVmaW5lIEhBVkVfU1RSRFVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQp8 ICNkZWZpbmUgSEFWRV9TVFJQVElNRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPTEwgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT1VMIDEKfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxCnwgI2RlZmluZSBIQVZF X1RDR0VUUEdSUCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DQVRFIDEKfCAjZGVmaW5lIEhBVkVfVU5T RVRFTlYgMQp8ICNkZWZpbmUgSEFWRV9VUERXVE1QWCAxCnwgI2RlZmluZSBIQVZFX1ZBU1BSSU5U RiAxCnwgI2RlZmluZSBIQVZFX1ZIQU5HVVAgMQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9XQUlUUElEIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmlu ZSBFTkFCTEVfUEtDUzExIC8qKi8KfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVm aW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfQ09OU1RfR0FJX1NUUkVSUk9S X1BST1RPIDEKfCAjZGVmaW5lIEhBVkVfTkFOT1NMRUVQIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0VQ IDEKfCAjZGVmaW5lIEhBVkVfVENTRU5EQlJFQUsgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0hfRVJS Tk8gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NIVVRfUkQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09f Tk9OQkxPQ0sgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1dSSVRFViAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUFYU1lNTElOS1MgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX09GRlNFVE9GIDEKfCAjZGVmaW5l IEhBVkVfU0VUUkVTVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkVTR0lEIDEKfCAjZGVmaW5lIEhB VkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfVElNRSAxCnwgI2RlZmluZSBIQVZFX0VO RFVURU5UIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVElE IDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRMSU5FIDEKfCAjZGVmaW5lIEhBVkVfUFVUVVRMSU5FIDEK fCAjZGVmaW5lIEhBVkVfU0VUVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9VVE1QTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0VORFVUWEVOVCAxCnwgI2RlZmluZSBIQVZFX0dFVFVUWEVOVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFVUWElEIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYTElORSAxCnwgI2RlZmluZSBI QVZFX1BVVFVUWExJTkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRVVFhFTlQgMQp8ICNkZWZpbmUgSEFW RV9VVE1QWE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9EQUVNT04gMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBTTlBSSU5URl9DT05TVCBjb25zdAp8ICNkZWZpbmUgSEFWRV9T T19QRUVSQ1JFRCAxCnwgI2RlZmluZSBIQVZFX1NUUklDVF9NS1NURU1QIDEKfCAjZGVmaW5lIEdF VFBHUlBfVk9JRCAxCnwgI2RlZmluZSBIQVZFX09QRU5TU0wgMQp8ICNkZWZpbmUgSEFWRV9SU0Ff R0VORVJBVEVfS0VZX0VYIDEKfCAjZGVmaW5lIEhBVkVfRFNBX0dFTkVSQVRFX1BBUkFNRVRFUlNf RVggMQp8ICNkZWZpbmUgSEFWRV9CTl9JU19QUklNRV9FWCAxCnwgI2RlZmluZSBIQVZFX1JTQV9H RVRfREVGQVVMVF9NRVRIT0QgMQp8ICNkZWZpbmUgVVNFX09QRU5TU0xfRU5HSU5FIDEKfCAjZGVm aW5lIEhBVkVfU0hBMjU2X1VQREFURSAxCnwgI2RlZmluZSBIQVZFX0VWUF9TSEEyNTYgMQp8ICNk ZWZpbmUgT1BFTlNTTF9IQVNfRUNDIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlm CnwgY2hhciBpYV9vcGVuaW5mbyAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBpYV9v cGVuaW5mbyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNjcyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxMDcwMDogY2hlY2tpbmcgd2hldGhlciBPcGVuU1NMJ3MgUFJORyBp cyBpbnRlcm5hbGx5IHNlZWRlZApjb25maWd1cmU6MTA3MjA6IHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIC1vIGNvbmZ0ZXN0IC1tYXJjaD1uYXRpdmUgLU8yIC1waXBlIC1XYWxsIC1XcG9pbnRlci1h cml0aCAtV3VuaW5pdGlhbGl6ZWQgLVdzaWduLWNvbXBhcmUgLVdmb3JtYXQtc2VjdXJpdHkgLVdu by1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcmVzdWx0IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tYnVpbHRpbi1tZW1zZXQgLWZzdGFjay1wcm90ZWN0b3ItYWxsICAtV2wsLU8xIC1XbCwtLWFz LW5lZWRlZCAtZnN0YWNrLXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgY29u ZnRlc3QuYyAtbHNzbCAtbGNyeXB0byAtbGRsIC1seiAgIC1sZGwgLWx1dGlsIC1seiAtbG5zbCAg LWxjcnlwdCA+JjUKY29uZmlndXJlOjEwNzIwOiAkPyA9IDAKY29uZmlndXJlOjEwNzIwOiAuL2Nv bmZ0ZXN0CmNvbmZpZ3VyZToxMDcyMDogJD8gPSAwCmNvbmZpZ3VyZToxMDcyMzogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjEwNzUzOiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwKY29uZmlndXJl OjEwNzc4OiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtbyBjb25mdGVzdCAtbWFyY2g9bmF0aXZl IC1PMiAtcGlwZSAtV2FsbCAtV3BvaW50ZXItYXJpdGggLVd1bmluaXRpYWxpemVkIC1Xc2lnbi1j b21wYXJlIC1XZm9ybWF0LXNlY3VyaXR5IC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXJl c3VsdCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJ1aWx0aW4tbWVtc2V0IC1mc3RhY2stcHJv dGVjdG9yLWFsbCAgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQgLWZzdGFjay1wcm90ZWN0b3ItYWxs IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIGNvbmZ0ZXN0LmMgLWxkbCAgLWxzc2wgLWxjcnlwdG8g LWxkbCAtbHogICAtbGRsIC1sdXRpbCAtbHogLWxuc2wgIC1sY3J5cHQgPiY1CmNvbmZpZ3VyZTox MDc3ODogJD8gPSAwCmNvbmZpZ3VyZToxMDc4NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNzk4 OiBjaGVja2luZyBmb3IgcGFtX3NldF9pdGVtIGluIC1scGFtCmNvbmZpZ3VyZToxMDgyMzogeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gY29uZnRlc3QgLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUg LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1XdW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zv cm1hdC1zZWN1cml0eSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1idWlsdGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwg IC1XbCwtTzEgLVdsLC0tYXMtbmVlZGVkIC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtV2wsLU8xIC1X bCwtLWFzLW5lZWRlZCBjb25mdGVzdC5jIC1scGFtICAtbGRsIC1sc3NsIC1sY3J5cHRvIC1sZGwg LWx6ICAgLWxkbCAtbHV0aWwgLWx6IC1sbnNsICAtbGNyeXB0ID4mNQovdXNyL2xpYi9nY2MveDg2 XzY0LXBjLWxpbnV4LWdudS80LjUuMi8uLi8uLi8uLi8uLi94ODZfNjQtcGMtbGludXgtZ251L2Jp bi9sZDogY2Fubm90IGZpbmQgL3Vzci9saWI2NC9saWJjX25vbnNoYXJlZC5hCi91c3IvbGliL2dj Yy94ODZfNjQtcGMtbGludXgtZ251LzQuNS4yLy4uLy4uLy4uLy4uL3g4Nl82NC1wYy1saW51eC1n bnUvYmluL2xkOiBjYW5ub3QgZmluZCAvbGliNjQvbGQtbGludXgteDg2LTY0LnNvLjIKY29sbGVj dDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjEwODIzOiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJPcGVuU1NIIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuc3No Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICJQb3J0YWJsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIm9w ZW5zc2gtdW5peC1kZXZAbWluZHJvdC5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTE9HSU5fUFJPR1JB TV9GQUxMQkFDSyAiL2Jpbi9sb2dpbiIKfCAjZGVmaW5lIF9QQVRIX1BBU1NXRF9QUk9HICIvdXNy L2Jpbi9wYXNzd2QiCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9fTk9OTlVMTF9fIDEKfCAjZGVm aW5lIEhBVkVfQ1JZUFRfSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhB VkVfRU5ESUFOX0ggMQp8ICNkZWZpbmUgSEFWRV9GRUFUVVJFU19IIDEKfCAjZGVmaW5lIEhBVkVf RkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKfCAjZGVmaW5lIEhBVkVfR0xPQl9I IDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9NQUlMTE9DS19IIDEK fCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX1BBVEhTX0ggMQp8ICNkZWZp bmUgSEFWRV9QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9QVFlfSCAxCnwgI2RlZmluZSBIQVZFX1JQ Q19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCnwgI2RlZmlu ZSBIQVZFX1NIQURPV19IIDEKfCAjZGVmaW5lIEhBVkVfU1REREVGX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0RJUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X01NQU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UFJDVExfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RST1BUU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRWRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TWVNNQUNST1NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgI2RlZmluZSBI QVZFX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1RUWUVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9VVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfVVRNUF9IIDEK fCAjZGVmaW5lIEhBVkVfVVRNUFhfSCAxCnwgI2RlZmluZSBIQVZFX0xBU1RMT0dfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19NT1VOVF9IIDEKfCAjZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKfCAjZGVm aW5lIExPQ0tFRF9QQVNTV0RfUFJFRklYICIhIgp8ICNkZWZpbmUgU1BUX1RZUEUgU1BUX1JFVVNF QVJHVgp8ICNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KfCAjZGVmaW5lIF9QQVRI X0JUTVAgIi92YXIvbG9nL2J0bXAiCnwgI2RlZmluZSBVU0VfQlRNUCAxCnwgI2RlZmluZSBMSU5V WF9PT01fQURKVVNUIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfVFVOX0ggMQp8ICNkZWZpbmUg U1NIX1RVTl9MSU5VWCAxCnwgI2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCnwgI2RlZmluZSBT U0hfVFVOX1BSRVBFTkRfQUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJOU0wgMQp8ICNkZWZpbmUgSEFW RV9ESVJOQU1FIDEKfCAjZGVmaW5lIEhBVkVfTElCR0VOX0ggMQp8ICNkZWZpbmUgSEFWRV9CQVNF TkFNRSAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9VVElNRVMgMQp8ICNk ZWZpbmUgSEFWRV9MT0dJTiAxCnwgI2RlZmluZSBIQVZFX0xPR09VVCAxCnwgI2RlZmluZSBIQVZF X1VQRFdUTVAgMQp8ICNkZWZpbmUgSEFWRV9MT0dXVE1QIDEKfCAjZGVmaW5lIEhBVkVfU1RSRlRJ TUUgMQp8ICNkZWZpbmUgR0xPQl9IQVNfQUxURElSRlVOQyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0xPQl9OT01BVENIIDEKfCAjZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQp8ICNkZWZpbmUgSEFWRV9B U1BSSU5URiAxCnwgI2RlZmluZSBIQVZFX0JDT1BZIDEKfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQp8 ICNkZWZpbmUgSEFWRV9ESVJGRCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PRCAxCnwgI2RlZmluZSBI QVZFX0ZDSE9XTiAxCnwgI2RlZmluZSBIQVZFX0ZSRUVBRERSSU5GTyAxCnwgI2RlZmluZSBIQVZF X0ZTVEFUVkZTIDEKfCAjZGVmaW5lIEhBVkVfRlVUSU1FUyAxCnwgI2RlZmluZSBIQVZFX0dFVEFE RFJJTkZPIDEKfCAjZGVmaW5lIEhBVkVfR0VUQ1dEIDEKfCAjZGVmaW5lIEhBVkVfR0VUR1JPVVBM SVNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8gMQp8ICNkZWZpbmUgSEFWRV9HRVRPUFQg MQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9HRVRUVFlFTlQgMQp8 ICNkZWZpbmUgSEFWRV9HTE9CIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9BVE9OIDEKfCAjZGVmaW5l IEhBVkVfSU5FVF9OVE9BIDEKfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKfCAjZGVmaW5lIEhB VkVfSU5ORVRHUiAxCnwgI2RlZmluZSBIQVZFX01FTU1PVkUgMQp8ICNkZWZpbmUgSEFWRV9NS0RU RU1QIDEKfCAjZGVmaW5lIEhBVkVfTU1BUCAxCnwgI2RlZmluZSBIQVZFX09QRU5QVFkgMQp8ICNk ZWZpbmUgSEFWRV9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQp8ICNkZWZpbmUgSEFWRV9S RUFMUEFUSCAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZNU0cgMQp8ICNkZWZpbmUgSEFWRV9SUkVTVlBP UlRfQUYgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKfCAjZGVmaW5lIEhBVkVfU0VURUdJRCAx CnwgI2RlZmluZSBIQVZFX1NFVEVOViAxCnwgI2RlZmluZSBIQVZFX1NFVEVVSUQgMQp8ICNkZWZp bmUgSEFWRV9TRVRHUk9VUFMgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRUdJRCAxCnwgI2RlZmluZSBI QVZFX1NFVFJFVUlEIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf U0VUU0lEIDEKfCAjZGVmaW5lIEhBVkVfU0VUVkJVRiAxCnwgI2RlZmluZSBIQVZFX1NJR0FDVElP TiAxCnwgI2RlZmluZSBIQVZFX1NJR1ZFQyAxCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAj ZGVmaW5lIEhBVkVfU09DS0VUUEFJUiAxCnwgI2RlZmluZSBIQVZFX1NUQVRGUyAxCnwgI2RlZmlu ZSBIQVZFX1NUQVRWRlMgMQp8ICNkZWZpbmUgSEFWRV9TVFJEVVAgMQp8ICNkZWZpbmUgSEFWRV9T VFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX1NUUlBUSU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9M TCAxCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQp8ICNkZWZpbmUgSEFWRV9TWVNDT05GIDEKfCAj ZGVmaW5lIEhBVkVfVENHRVRQR1JQIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkNBVEUgMQp8ICNkZWZp bmUgSEFWRV9VTlNFVEVOViAxCnwgI2RlZmluZSBIQVZFX1VQRFdUTVBYIDEKfCAjZGVmaW5lIEhB VkVfVkFTUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfVkhBTkdVUCAxCnwgI2RlZmluZSBIQVZFX1ZT TlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX1dBSVRQSUQgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5L IDEKfCAjZGVmaW5lIEVOQUJMRV9QS0NTMTEgLyoqLwp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJS T1IgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9DT05TVF9H QUlfU1RSRVJST1JfUFJPVE8gMQp8ICNkZWZpbmUgSEFWRV9OQU5PU0xFRVAgMQp8ICNkZWZpbmUg SEFWRV9TVFJTRVAgMQp8ICNkZWZpbmUgSEFWRV9UQ1NFTkRCUkVBSyAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSF9FUlJOTyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU0hVVF9SRCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfT19OT05CTE9DSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfV1JJVEVWIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9NQVhTWU1MSU5LUyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfT0ZGU0VUT0Yg MQp8ICNkZWZpbmUgSEFWRV9TRVRSRVNVSUQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSRVNHSUQgMQp8 ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9USU1FIDEKfCAjZGVm aW5lIEhBVkVfRU5EVVRFTlQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVEVOVCAxCnwgI2RlZmluZSBI QVZFX0dFVFVUSUQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVExJTkUgMQp8ICNkZWZpbmUgSEFWRV9Q VVRVVExJTkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRVVEVOVCAxCnwgI2RlZmluZSBIQVZFX1VUTVBO QU1FIDEKfCAjZGVmaW5lIEhBVkVfRU5EVVRYRU5UIDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYRU5U IDEKfCAjZGVmaW5lIEhBVkVfR0VUVVRYSUQgMQp8ICNkZWZpbmUgSEFWRV9HRVRVVFhMSU5FIDEK fCAjZGVmaW5lIEhBVkVfUFVUVVRYTElORSAxCnwgI2RlZmluZSBIQVZFX1NFVFVUWEVOVCAxCnwg I2RlZmluZSBIQVZFX1VUTVBYTkFNRSAxCnwgI2RlZmluZSBIQVZFX0RBRU1PTiAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFNOUFJJTlRGX0NPTlNUIGNvbnN0CnwgI2Rl ZmluZSBIQVZFX1NPX1BFRVJDUkVEIDEKfCAjZGVmaW5lIEhBVkVfU1RSSUNUX01LU1RFTVAgMQp8 ICNkZWZpbmUgR0VUUEdSUF9WT0lEIDEKfCAjZGVmaW5lIEhBVkVfT1BFTlNTTCAxCnwgI2RlZmlu ZSBIQVZFX1JTQV9HRU5FUkFURV9LRVlfRVggMQp8ICNkZWZpbmUgSEFWRV9EU0FfR0VORVJBVEVf UEFSQU1FVEVSU19FWCAxCnwgI2RlZmluZSBIQVZFX0JOX0lTX1BSSU1FX0VYIDEKfCAjZGVmaW5l IEhBVkVfUlNBX0dFVF9ERUZBVUxUX01FVEhPRCAxCnwgI2RlZmluZSBVU0VfT1BFTlNTTF9FTkdJ TkUgMQp8ICNkZWZpbmUgSEFWRV9TSEEyNTZfVVBEQVRFIDEKfCAjZGVmaW5lIEhBVkVfRVZQX1NI QTI1NiAxCnwgI2RlZmluZSBPUEVOU1NMX0hBU19FQ0MgMQp8ICNkZWZpbmUgSEFWRV9MSUJETCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgcGFtX3NldF9pdGVtICgp Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBhbV9zZXRfaXRlbSAoKTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwODMyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDg0 MjogZXJyb3I6ICoqKiBsaWJwYW0gbWlzc2luZwoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBD YWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPXg4 Nl82NC1wYy1saW51eC1nbnUKYWNfY3ZfY19iaWdlbmRpYW49bm8KYWNfY3ZfY19jb21waWxlcl9n bnU9eWVzCmFjX2N2X2NfaW5saW5lPWlubGluZQphY19jdl9lbnZfQ0Nfc2V0PQphY19jdl9lbnZf Q0NfdmFsdWU9CmFjX2N2X2Vudl9DRkxBR1Nfc2V0PXNldAphY19jdl9lbnZfQ0ZMQUdTX3ZhbHVl PSctbWFyY2g9bmF0aXZlIC1PMiAtcGlwZScKYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KYWNfY3Zf ZW52X0NQUEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNfY3ZfZW52X0NQUF92YWx1 ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PXNldAphY19jdl9lbnZfTERGTEFHU192YWx1ZT0nLVds LC1PMSAtV2wsLS1hcy1uZWVkZWQnCmFjX2N2X2Vudl9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQlNf dmFsdWU9CmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9c2V0CmFjX2N2X2Vudl9idWlsZF9hbGlh c192YWx1ZT14ODZfNjQtcGMtbGludXgtZ251CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD1zZXQK YWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9eDg2XzY0LXBjLWxpbnV4LWdudQphY19jdl9lbnZf dGFyZ2V0X2FsaWFzX3NldD0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfZnVu Y19CTl9pc19wcmltZV9leD15ZXMKYWNfY3ZfZnVuY19EU0FfZ2VuZXJhdGVfcGFyYW1ldGVyc19l eD15ZXMKYWNfY3ZfZnVuY19FVlBfc2hhMjU2PXllcwphY19jdl9mdW5jX1JTQV9nZW5lcmF0ZV9r ZXlfZXg9eWVzCmFjX2N2X2Z1bmNfUlNBX2dldF9kZWZhdWx0X21ldGhvZD15ZXMKYWNfY3ZfZnVu Y19TSEEyNTZfVXBkYXRlPXllcwphY19jdl9mdW5jX19fYjY0X250b3A9bm8KYWNfY3ZfZnVuY19f X2I2NF9wdG9uPW5vCmFjX2N2X2Z1bmNfX2dldHB0eT1ubwphY19jdl9mdW5jX2FyYzRyYW5kb209 bm8KYWNfY3ZfZnVuY19hcmM0cmFuZG9tX2J1Zj1ubwphY19jdl9mdW5jX2FyYzRyYW5kb21fdW5p Zm9ybT1ubwphY19jdl9mdW5jX2FzcHJpbnRmPXllcwphY19jdl9mdW5jX2I2NF9udG9wPW5vCmFj X2N2X2Z1bmNfYjY0X3B0b249bm8KYWNfY3ZfZnVuY19iY29weT15ZXMKYWNfY3ZfZnVuY19iaW5k cmVzdnBvcnRfc2E9bm8KYWNfY3ZfZnVuY19jbG9jaz15ZXMKYWNfY3ZfZnVuY19jbG9zZWZyb209 bm8KYWNfY3ZfZnVuY19kYWVtb249eWVzCmFjX2N2X2Z1bmNfZGlyZmQ9eWVzCmFjX2N2X2Z1bmNf ZGlybmFtZT15ZXMKYWNfY3ZfZnVuY19lbmR1dGVudD15ZXMKYWNfY3ZfZnVuY19lbmR1dHhlbnQ9 eWVzCmFjX2N2X2Z1bmNfZmNobW9kPXllcwphY19jdl9mdW5jX2ZjaG93bj15ZXMKYWNfY3ZfZnVu Y19mbXRfc2NhbGVkPW5vCmFjX2N2X2Z1bmNfZnJlZWFkZHJpbmZvPXllcwphY19jdl9mdW5jX2Zz dGF0dmZzPXllcwphY19jdl9mdW5jX2Z1dGltZXM9eWVzCmFjX2N2X2Z1bmNfZ2FpX3N0cmVycm9y PXllcwphY19jdl9mdW5jX2dldGFkZHJpbmZvPXllcwphY19jdl9mdW5jX2dldGN3ZD15ZXMKYWNf Y3ZfZnVuY19nZXRncm91cGxpc3Q9eWVzCmFjX2N2X2Z1bmNfZ2V0bGFzdGxvZ3hieW5hbWU9bm8K YWNfY3ZfZnVuY19nZXRuYW1laW5mbz15ZXMKYWNfY3ZfZnVuY19nZXRvcHQ9eWVzCmFjX2N2X2Z1 bmNfZ2V0cGFnZXNpemU9eWVzCmFjX2N2X2Z1bmNfZ2V0cGVlcmVpZD1ubwphY19jdl9mdW5jX2dl dHBlZXJ1Y3JlZD1ubwphY19jdl9mdW5jX2dldHBncnBfdm9pZD15ZXMKYWNfY3ZfZnVuY19nZXRy bGltaXQ9eWVzCmFjX2N2X2Z1bmNfZ2V0c3BuYW09eWVzCmFjX2N2X2Z1bmNfZ2V0dGltZW9mZGF5 PXllcwphY19jdl9mdW5jX2dldHR0eWVudD15ZXMKYWNfY3ZfZnVuY19nZXR1dGVudD15ZXMKYWNf Y3ZfZnVuY19nZXR1dGlkPXllcwphY19jdl9mdW5jX2dldHV0bGluZT15ZXMKYWNfY3ZfZnVuY19n ZXR1dHhlbnQ9eWVzCmFjX2N2X2Z1bmNfZ2V0dXR4aWQ9eWVzCmFjX2N2X2Z1bmNfZ2V0dXR4bGlu ZT15ZXMKYWNfY3ZfZnVuY19nZXR1dHh1c2VyPW5vCmFjX2N2X2Z1bmNfZ2xvYj15ZXMKYWNfY3Zf ZnVuY19ncm91cF9mcm9tX2dpZD1ubwphY19jdl9mdW5jX2luZXRfYXRvbj15ZXMKYWNfY3ZfZnVu Y19pbmV0X250b2E9eWVzCmFjX2N2X2Z1bmNfaW5ldF9udG9wPXllcwphY19jdl9mdW5jX2lubmV0 Z3I9eWVzCmFjX2N2X2Z1bmNfbG9naW5fZ2V0Y2FwYm9vbD1ubwphY19jdl9mdW5jX2xvZ291dD15 ZXMKYWNfY3ZfZnVuY19sb2d3dG1wPXllcwphY19jdl9mdW5jX21kNV9jcnlwdD1ubwphY19jdl9m dW5jX21lbW1vdmU9eWVzCmFjX2N2X2Z1bmNfbWtkdGVtcD15ZXMKYWNfY3ZfZnVuY19tbWFwPXll cwphY19jdl9mdW5jX25nZXRhZGRyaW5mbz1ubwphY19jdl9mdW5jX25zbGVlcD1ubwphY19jdl9m dW5jX29nZXRhZGRyaW5mbz1ubwphY19jdl9mdW5jX29wZW5sb2dfcj1ubwphY19jdl9mdW5jX29w ZW5wdHk9eWVzCmFjX2N2X2Z1bmNfcG9sbD15ZXMKYWNfY3ZfZnVuY19wcmN0bD15ZXMKYWNfY3Zf ZnVuY19wc3RhdD1ubwphY19jdl9mdW5jX3B1dHV0bGluZT15ZXMKYWNfY3ZfZnVuY19wdXR1dHhs aW5lPXllcwphY19jdl9mdW5jX3JlYWRwYXNzcGhyYXNlPW5vCmFjX2N2X2Z1bmNfcmVhbHBhdGg9 eWVzCmFjX2N2X2Z1bmNfcmVjdm1zZz15ZXMKYWNfY3ZfZnVuY19ycmVzdnBvcnRfYWY9eWVzCmFj X2N2X2Z1bmNfc2VuZG1zZz15ZXMKYWNfY3ZfZnVuY19zZXRkdGFibGVzaXplPW5vCmFjX2N2X2Z1 bmNfc2V0ZWdpZD15ZXMKYWNfY3ZfZnVuY19zZXRlbnY9eWVzCmFjX2N2X2Z1bmNfc2V0ZXVpZD15 ZXMKYWNfY3ZfZnVuY19zZXRncm91cGVudD1ubwphY19jdl9mdW5jX3NldGdyb3Vwcz15ZXMKYWNf Y3ZfZnVuY19zZXRsb2dpbj1ubwphY19jdl9mdW5jX3NldHBhc3NlbnQ9bm8KYWNfY3ZfZnVuY19z ZXRwY3JlZD1ubwphY19jdl9mdW5jX3NldHByb2N0aXRsZT1ubwphY19jdl9mdW5jX3NldHJlZ2lk PXllcwphY19jdl9mdW5jX3NldHJlc2dpZD15ZXMKYWNfY3ZfZnVuY19zZXRyZXN1aWQ9eWVzCmFj X2N2X2Z1bmNfc2V0cmV1aWQ9eWVzCmFjX2N2X2Z1bmNfc2V0cmxpbWl0PXllcwphY19jdl9mdW5j X3NldHNpZD15ZXMKYWNfY3ZfZnVuY19zZXRzb2Nrb3B0PXllcwphY19jdl9mdW5jX3NldHV0ZW50 PXllcwphY19jdl9mdW5jX3NldHV0eGRiPW5vCmFjX2N2X2Z1bmNfc2V0dXR4ZW50PXllcwphY19j dl9mdW5jX3NldHZidWY9eWVzCmFjX2N2X2Z1bmNfc2lnYWN0aW9uPXllcwphY19jdl9mdW5jX3Np Z3ZlYz15ZXMKYWNfY3ZfZnVuY19zbnByaW50Zj15ZXMKYWNfY3ZfZnVuY19zb2NrZXRwYWlyPXll cwphY19jdl9mdW5jX3N0YXRmcz15ZXMKYWNfY3ZfZnVuY19zdGF0dmZzPXllcwphY19jdl9mdW5j X3N0cmNhc2VjbXA9eWVzCmFjX2N2X2Z1bmNfc3RyZHVwPXllcwphY19jdl9mdW5jX3N0cmVycm9y PXllcwphY19jdl9mdW5jX3N0cmZ0aW1lPXllcwphY19jdl9mdW5jX3N0cmxjYXQ9bm8KYWNfY3Zf ZnVuY19zdHJsY3B5PW5vCmFjX2N2X2Z1bmNfc3RybW9kZT1ubwphY19jdl9mdW5jX3N0cm52aXM9 bm8KYWNfY3ZfZnVuY19zdHJwdGltZT15ZXMKYWNfY3ZfZnVuY19zdHJzZXA9eWVzCmFjX2N2X2Z1 bmNfc3RydG9sbD15ZXMKYWNfY3ZfZnVuY19zdHJ0b251bT1ubwphY19jdl9mdW5jX3N0cnRvdWw9 eWVzCmFjX2N2X2Z1bmNfc3dhcDMyPW5vCmFjX2N2X2Z1bmNfc3lzY29uZj15ZXMKYWNfY3ZfZnVu Y190Y2dldHBncnA9eWVzCmFjX2N2X2Z1bmNfdGltZT15ZXMKYWNfY3ZfZnVuY190aW1pbmdzYWZl X2JjbXA9bm8KYWNfY3ZfZnVuY190cnVuY2F0ZT15ZXMKYWNfY3ZfZnVuY191bnNldGVudj15ZXMK YWNfY3ZfZnVuY191cGR3dG1wPXllcwphY19jdl9mdW5jX3VwZHd0bXB4PXllcwphY19jdl9mdW5j X3VzZXJfZnJvbV91aWQ9bm8KYWNfY3ZfZnVuY191dGltZXM9eWVzCmFjX2N2X2Z1bmNfdXRtcG5h bWU9eWVzCmFjX2N2X2Z1bmNfdXRtcHhuYW1lPXllcwphY19jdl9mdW5jX3Zhc3ByaW50Zj15ZXMK YWNfY3ZfZnVuY192aGFuZ3VwPXllcwphY19jdl9mdW5jX3ZzbnByaW50Zj15ZXMKYWNfY3ZfZnVu Y193YWl0cGlkPXllcwphY19jdl9mdW5jX3lwX21hdGNoPW5vCmFjX2N2X2hhdmVfZGVjbF9HTE9C X05PTUFUQ0g9eWVzCmFjX2N2X2hhdmVfZGVjbF9MTE9OR19NQVg9eWVzCmFjX2N2X2hhdmVfZGVj bF9NQVhTWU1MSU5LUz15ZXMKYWNfY3ZfaGF2ZV9kZWNsX09fTk9OQkxPQ0s9eWVzCmFjX2N2X2hh dmVfZGVjbF9TSFVUX1JEPXllcwphY19jdl9oYXZlX2RlY2xfZ2V0cnVzYWdlPW5vCmFjX2N2X2hh dmVfZGVjbF9oX2Vycm5vPXllcwphY19jdl9oYXZlX2RlY2xfb2Zmc2V0b2Y9eWVzCmFjX2N2X2hh dmVfZGVjbF9zdHJzZXA9eWVzCmFjX2N2X2hhdmVfZGVjbF90Y3NlbmRicmVhaz15ZXMKYWNfY3Zf aGF2ZV9kZWNsX3dyaXRldj15ZXMKYWNfY3ZfaGVhZGVyX2JzdHJpbmdfaD1ubwphY19jdl9oZWFk ZXJfY3J5cHRfaD15ZXMKYWNfY3ZfaGVhZGVyX2NyeXB0b19zaGEyX2g9bm8KYWNfY3ZfaGVhZGVy X2RpcmVudF9oPXllcwphY19jdl9oZWFkZXJfZW5kaWFuX2g9eWVzCmFjX2N2X2hlYWRlcl9mY250 bF9oPXllcwphY19jdl9oZWFkZXJfZmVhdHVyZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX2Zsb2F0aW5n cG9pbnRfaD1ubwphY19jdl9oZWFkZXJfZ2V0b3B0X2g9eWVzCmFjX2N2X2hlYWRlcl9nbG9iX2g9 eWVzCmFjX2N2X2hlYWRlcl9pYV9oPW5vCmFjX2N2X2hlYWRlcl9pYWZfaD1ubwphY19jdl9oZWFk ZXJfaW50dHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX2xhc3Rsb2dfaD15ZXMKYWNfY3ZfaGVhZGVy X2xpYmdlbl9oPXllcwphY19jdl9oZWFkZXJfbGlidXRpbF9oPW5vCmFjX2N2X2hlYWRlcl9saW1p dHNfaD15ZXMKYWNfY3ZfaGVhZGVyX2xpbnV4X2lmX3R1bl9oPXllcwphY19jdl9oZWFkZXJfbG9n aW5fY2FwX2g9bm8KYWNfY3ZfaGVhZGVyX2xvZ2luX2g9bm8KYWNfY3ZfaGVhZGVyX21haWxsb2Nr X2g9eWVzCmFjX2N2X2hlYWRlcl9tZW1vcnlfaD15ZXMKYWNfY3ZfaGVhZGVyX25kaXJfaD1ubwph Y19jdl9oZWFkZXJfbmV0X2lmX3R1bl9oPW5vCmFjX2N2X2hlYWRlcl9uZXRkYl9oPXllcwphY19j dl9oZWFkZXJfbmV0Z3JvdXBfaD1ubwphY19jdl9oZWFkZXJfcGFtX3BhbV9hcHBsX2g9bm8KYWNf Y3ZfaGVhZGVyX3BhdGhzX2g9eWVzCmFjX2N2X2hlYWRlcl9wb2xsX2g9eWVzCmFjX2N2X2hlYWRl cl9wdHlfaD15ZXMKYWNfY3ZfaGVhZGVyX3JlYWRwYXNzcGhyYXNlX2g9bm8KYWNfY3ZfaGVhZGVy X3JwY190eXBlc19oPXllcwphY19jdl9oZWFkZXJfc2VjdXJpdHlfcGFtX2FwcGxfaD15ZXMKYWNf Y3ZfaGVhZGVyX3NoYTJfaD1ubwphY19jdl9oZWFkZXJfc2hhZG93X2g9eWVzCmFjX2N2X2hlYWRl cl9zdGRjPXllcwphY19jdl9oZWFkZXJfc3RkZGVmX2g9eWVzCmFjX2N2X2hlYWRlcl9zdGRpbnRf aD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGxpYl9oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVz CmFjX2N2X2hlYWRlcl9zdHJpbmdzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfYXVkaXRfaD1ubwph Y19jdl9oZWFkZXJfc3lzX2JpdHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19ic2R0dHlfaD1u bwphY19jdl9oZWFkZXJfc3lzX2NkZWZzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfZGlyX2g9eWVz CmFjX2N2X2hlYWRlcl9zeXNfbW1hbl9oPXllcwphY19jdl9oZWFkZXJfc3lzX21vdW50X2g9eWVz CmFjX2N2X2hlYWRlcl9zeXNfbmRpcl9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfcG9sbF9oPXllcwph Y19jdl9oZWFkZXJfc3lzX3ByY3RsX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfcHN0YXRfaD1ubwph Y19jdl9oZWFkZXJfc3lzX3B0bXNfaD1ubwphY19jdl9oZWFkZXJfc3lzX3NlbGVjdF9oPXllcwph Y19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zdGF0dmZzX2g9eWVz CmFjX2N2X2hlYWRlcl9zeXNfc3RyZWFtX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zdHJvcHRzX2g9 eWVzCmFjX2N2X2hlYWRlcl9zeXNfc3RydGlvX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNy b3NfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190aW1lX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdGlt ZXJzX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oPXllcwphY19jdl9oZWFkZXJfc3lzX3Vu X2g9eWVzCmFjX2N2X2hlYWRlcl90aW1lX2g9eWVzCmFjX2N2X2hlYWRlcl90bXBkaXJfaD1ubwph Y19jdl9oZWFkZXJfdHR5ZW50X2g9eWVzCmFjX2N2X2hlYWRlcl91Y3JlZF9oPW5vCmFjX2N2X2hl YWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaGVhZGVyX3VzZXJzZWNfaD1ubwphY19jdl9oZWFkZXJf dXRpbF9oPW5vCmFjX2N2X2hlYWRlcl91dGltZV9oPXllcwphY19jdl9oZWFkZXJfdXRtcF9oPXll cwphY19jdl9oZWFkZXJfdXRtcHhfaD15ZXMKYWNfY3ZfaGVhZGVyX3Zpc19oPW5vCmFjX2N2X2hl YWRlcl96bGliX2g9eWVzCmFjX2N2X2hvc3Q9eDg2XzY0LXBjLWxpbnV4LWdudQphY19jdl9saWJf Y3J5cHRfY3J5cHQ9eWVzCmFjX2N2X2xpYl9kbF9kbG9wZW49eWVzCmFjX2N2X2xpYl9pYWZfaWFf b3BlbmluZm89bm8KYWNfY3ZfbGliX25zbF95cF9tYXRjaD15ZXMKYWNfY3ZfbGliX3BhbV9wYW1f c2V0X2l0ZW09bm8KYWNfY3ZfbGliX3pfZGVmbGF0ZT15ZXMKYWNfY3Zfb2JqZXh0PW8KYWNfY3Zf cGF0aF9BUj0vdXNyL2Jpbi9hcgphY19jdl9wYXRoX0NBVD0vYmluL2NhdAphY19jdl9wYXRoX0VH UkVQPScvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfR1JFUD0vYmluL2dyZXAKYWNfY3ZfcGF0aF9H Uk9GRj0vdXNyL2Jpbi9ncm9mZgphY19jdl9wYXRoX0tJTEw9L2Jpbi9raWxsCmFjX2N2X3BhdGhf TE9HSU5fUFJPR1JBTV9GQUxMQkFDSz0vYmluL2xvZ2luCmFjX2N2X3BhdGhfTlJPRkY9L3Vzci9i aW4vbnJvZmYKYWNfY3ZfcGF0aF9QQVRIX0dST1VQQUREX1BST0c9L3Vzci9zYmluL2dyb3VwYWRk CmFjX2N2X3BhdGhfUEFUSF9QQVNTV0RfUFJPRz0vdXNyL2Jpbi9wYXNzd2QKYWNfY3ZfcGF0aF9Q QVRIX1VTRVJBRERfUFJPRz0vdXNyL3NiaW4vdXNlcmFkZAphY19jdl9wYXRoX1BFUkw9L3Vzci9i aW4vcGVybAphY19jdl9wYXRoX1NFRD0vYmluL3NlZAphY19jdl9wYXRoX1NIPS9iaW4vc2gKYWNf Y3ZfcGF0aF9URVNUX01JTlVTX1NfU0g9L2Jpbi9iYXNoCmFjX2N2X3BhdGhfaW5zdGFsbD0nL3Vz ci9iaW4vaW5zdGFsbCAtYycKYWNfY3ZfcHJvZ19BV0s9Z2F3awphY19jdl9wcm9nX0NDPXg4Nl82 NC1wYy1saW51eC1nbnUtZ2NjCmFjX2N2X3Byb2dfQ1BQPSd4ODZfNjQtcGMtbGludXgtZ251LWdj YyAtRScKYWNfY3ZfcHJvZ19NQUtFX1BBQ0tBR0VfU1VQUE9SVEVEPW5vCmFjX2N2X3Byb2dfUkFO TElCPXg4Nl82NC1wYy1saW51eC1nbnUtcmFubGliCmFjX2N2X3Byb2dfY2NfYzg5PQphY19jdl9w cm9nX2NjX2c9eWVzCmFjX2N2X3NlYXJjaF9iYXNlbmFtZT0nbm9uZSByZXF1aXJlZCcKYWNfY3Zf c2VhcmNoX2Rsb3Blbj0tbGRsCmFjX2N2X3NlYXJjaF9sb2dpbj0tbHV0aWwKYWNfY3Zfc2VhcmNo X25hbm9zbGVlcD0nbm9uZSByZXF1aXJlZCcKYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHM9bm8K YWNfY3Zfc3lzX2xhcmdlZmlsZV9DQz1ubwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0 cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFSPScvdXNyL2Jpbi9h cicKQVdLPSdnYXdrJwpDQVQ9Jy9iaW4vY2F0JwpDQz0neDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mn CkNGTEFHUz0nLW1hcmNoPW5hdGl2ZSAtTzIgLXBpcGUgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1X dW5pbml0aWFsaXplZCAtV3NpZ24tY29tcGFyZSAtV2Zvcm1hdC1zZWN1cml0eSAtV25vLXBvaW50 ZXItc2lnbiAtV25vLXVudXNlZC1yZXN1bHQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1idWls dGluLW1lbXNldCAtZnN0YWNrLXByb3RlY3Rvci1hbGwnCkNPTU1FTlRfT1VUX0VDQz0nJwpDUFA9 J3g4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1FJwpDUFBGTEFHUz0nJwpERUZTPScnCkVDSE9fQz0n JwpFQ0hPX049Jy1uJwpFQ0hPX1Q9JycKRUdSRVA9Jy9iaW4vZ3JlcCAtRScKRU5UPScnCkVYRUVY VD0nJwpHUkVQPScvYmluL2dyZXAnCkdST0ZGPScvdXNyL2Jpbi9ncm9mZicKSU5TVEFMTF9EQVRB PScke0lOU1RBTEx9IC1tIDY0NCcKSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwpJTlNUQUxM X1NDUklQVD0nJHtJTlNUQUxMfScKSU5TVEFMTF9TU0hfUFJOR19DTURTPScnCklOU1RBTExfU1NI X1JBTkRfSEVMUEVSPScnCktJTEw9Jy9iaW4va2lsbCcKS1JCNUNPTkY9JycKTEQ9J3g4Nl82NC1w Yy1saW51eC1nbnUtZ2NjJwpMREZMQUdTPSctV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCAtZnN0YWNr LXByb3RlY3Rvci1hbGwgLVdsLC1PMSAtV2wsLS1hcy1uZWVkZWQnCkxJQkVESVQ9JycKTElCT0JK Uz0nJwpMSUJTPSctbGRsIC1sc3NsIC1sY3J5cHRvIC1sZGwgLWx6ICAgLWxkbCAtbHV0aWwgLWx6 IC1sbnNsICAtbGNyeXB0JwpMT0dJTl9QUk9HUkFNX0ZBTExCQUNLPScvYmluL2xvZ2luJwpMVExJ Qk9CSlM9JycKTUFLRV9QQUNLQUdFX1NVUFBPUlRFRD0nbm8nCk1BTkRPQz0nJwpNQU5GTVQ9Jy91 c3IvYmluL25yb2ZmIC1tYW5kb2MnCk1BTlRZUEU9JycKTlJPRkY9Jy91c3IvYmluL25yb2ZmJwpP QkpFWFQ9J28nClBBQ0tBR0VfQlVHUkVQT1JUPSdvcGVuc3NoLXVuaXgtZGV2QG1pbmRyb3Qub3Jn JwpQQUNLQUdFX05BTUU9J09wZW5TU0gnClBBQ0tBR0VfU1RSSU5HPSdPcGVuU1NIIFBvcnRhYmxl JwpQQUNLQUdFX1RBUk5BTUU9J29wZW5zc2gnClBBQ0tBR0VfVVJMPScnClBBQ0tBR0VfVkVSU0lP Tj0nUG9ydGFibGUnClBBVEhfR1JPVVBBRERfUFJPRz0nL3Vzci9zYmluL2dyb3VwYWRkJwpQQVRI X1BBU1NXRF9QUk9HPScvdXNyL2Jpbi9wYXNzd2QnClBBVEhfU0VQQVJBVE9SPSc6JwpQQVRIX1VT RVJBRERfUFJPRz0nL3Vzci9zYmluL3VzZXJhZGQnClBFUkw9Jy91c3IvYmluL3BlcmwnClBLR0NP TkZJRz0nJwpQUklWU0VQX1BBVEg9JycKUFJPR19BUlA9JycKUFJPR19ERj0nJwpQUk9HX0lGQ09O RklHPScnClBST0dfSVBDUz0nJwpQUk9HX0pTVEFUPScnClBST0dfTEFTVD0nJwpQUk9HX0xBU1RM T0c9JycKUFJPR19MUz0nJwpQUk9HX05FVFNUQVQ9JycKUFJPR19QUz0nJwpQUk9HX1NBUj0nJwpQ Uk9HX1RBSUw9JycKUFJPR19VUFRJTUU9JycKUFJPR19WTVNUQVQ9JycKUFJPR19XPScnClBST0df V0hPPScnClJBTkxJQj0neDg2XzY0LXBjLWxpbnV4LWdudS1yYW5saWInClNFRD0nL2Jpbi9zZWQn ClNIPScvYmluL3NoJwpTSEVMTD0nL2Jpbi9zaCcKU1NIRExJQlM9JycKU1NITElCUz0nJwpTU0hf UFJJVlNFUF9VU0VSPScnClNUQVJUVVBfU0NSSVBUX1NIRUxMPScvYmluL3NoJwpTVFJJUF9PUFQ9 JycKVEVTVF9NSU5VU19TX1NIPScvYmluL2Jhc2gnClRFU1RfU0hFTEw9J3NoJwpURVNUX1NTSF9F Q0M9J3llcycKVEVTVF9TU0hfSVBWNj0nJwpURVNUX1NTSF9TSEEyNTY9J3llcycKWEFVVEhfUEFU SD0nJwphY19jdF9DQz0nJwpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYnVpbGQ9J3g4Nl82 NC1wYy1saW51eC1nbnUnCmJ1aWxkX2FsaWFzPSd4ODZfNjQtcGMtbGludXgtZ251JwpidWlsZF9j cHU9J3g4Nl82NCcKYnVpbGRfb3M9J2xpbnV4LWdudScKYnVpbGRfdmVuZG9yPSdwYycKZGF0YWRp cj0nL3Vzci9zaGFyZS9vcGVuc3NoJwpkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2Nk aXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2Nk aXJ9JwpleGVjX3ByZWZpeD0nTk9ORScKaG9zdD0neDg2XzY0LXBjLWxpbnV4LWdudScKaG9zdF9h bGlhcz0neDg2XzY0LXBjLWxpbnV4LWdudScKaG9zdF9jcHU9J3g4Nl82NCcKaG9zdF9vcz0nbGlu dXgtZ251Jwpob3N0X3ZlbmRvcj0ncGMnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVkZWRpcj0n JHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9Jy91c3Ivc2hhcmUvaW5mbycKbGliZGlyPScvdXNy L2xpYjY0JwpsaWJleGVjZGlyPScvdXNyL2xpYjY0L21pc2MnCmxvY2FsZWRpcj0nJHtkYXRhcm9v dGRpcn0vbG9jYWxlJwpsb2NhbHN0YXRlZGlyPScvdmFyL2xpYicKbWFuZGlyPScvdXNyL3NoYXJl L21hbicKbWFuc3ViZGlyPScnCm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPSck e2RvY2Rpcn0nCnBpZGRpcj0nJwpwcmVmaXg9Jy91c3InCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9 J3MseCx4LCcKcHNkaXI9JyR7ZG9jZGlyfScKc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicK c2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnN5c2NvbmZkaXI9Jy9ldGMvc3NoJwp0YXJn ZXRfYWxpYXM9JycKdXNlcl9wYXRoPScnCnhhdXRoX3BhdGg9JycKCiMjIC0tLS0tLS0tLS0tICMj CiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVmcy5oICovCiNk ZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuU1NIIgojZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3Bl bnNzaCIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIlBvcnRhYmxlIgojZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJPcGVuU1NIIFBvcnRhYmxlIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJvcGVu c3NoLXVuaXgtZGV2QG1pbmRyb3Qub3JnIgojZGVmaW5lIFBBQ0tBR0VfVVJMICIiCiNkZWZpbmUg U1REQ19IRUFERVJTIDEKI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQojZGVmaW5lIEhBVkVfU1RETElCX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQojZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQojZGVmaW5lIEhBVkVf VU5JU1REX0ggMQojZGVmaW5lIExPR0lOX1BST0dSQU1fRkFMTEJBQ0sgIi9iaW4vbG9naW4iCiNk ZWZpbmUgX1BBVEhfUEFTU1dEX1BST0cgIi91c3IvYmluL3Bhc3N3ZCIKI2RlZmluZSBIQVZFX0FU VFJJQlVURV9fTk9OTlVMTF9fIDEKI2RlZmluZSBIQVZFX0NSWVBUX0ggMQojZGVmaW5lIEhBVkVf RElSRU5UX0ggMQojZGVmaW5lIEhBVkVfRU5ESUFOX0ggMQojZGVmaW5lIEhBVkVfRkVBVFVSRVNf SCAxCiNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKI2RlZmluZSBIQVZFX0dFVE9QVF9IIDEKI2RlZmlu ZSBIQVZFX0dMT0JfSCAxCiNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCiNkZWZpbmUgSEFWRV9NQUlM TE9DS19IIDEKI2RlZmluZSBIQVZFX05FVERCX0ggMQojZGVmaW5lIEhBVkVfUEFUSFNfSCAxCiNk ZWZpbmUgSEFWRV9QT0xMX0ggMQojZGVmaW5lIEhBVkVfUFRZX0ggMQojZGVmaW5lIEhBVkVfUlBD X1RZUEVTX0ggMQojZGVmaW5lIEhBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCAxCiNkZWZpbmUgSEFW RV9TSEFET1dfSCAxCiNkZWZpbmUgSEFWRV9TVERERUZfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQojZGVm aW5lIEhBVkVfU1lTX0JJVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCiNkZWZp bmUgSEFWRV9TWVNfRElSX0ggMQojZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCiNkZWZpbmUgSEFW RV9TWVNfUE9MTF9IIDEKI2RlZmluZSBIQVZFX1NZU19QUkNUTF9IIDEKI2RlZmluZSBIQVZFX1NZ U19TRUxFQ1RfSCAxCiNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKI2RlZmluZSBIQVZFX1NZU19T VFJPUFRTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NUQVRWRlNfSCAxCiNkZWZpbmUgSEFWRV9TWVNf U1lTTUFDUk9TX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCiNkZWZpbmUgSEFWRV9TWVNf VU5fSCAxCiNkZWZpbmUgSEFWRV9USU1FX0ggMQojZGVmaW5lIEhBVkVfVFRZRU5UX0ggMQojZGVm aW5lIEhBVkVfVU5JU1REX0ggMQojZGVmaW5lIEhBVkVfVVRJTUVfSCAxCiNkZWZpbmUgSEFWRV9V VE1QX0ggMQojZGVmaW5lIEhBVkVfVVRNUFhfSCAxCiNkZWZpbmUgSEFWRV9MQVNUTE9HX0ggMQoj ZGVmaW5lIEhBVkVfU1lTX01PVU5UX0ggMQojZGVmaW5lIFBBTV9UVFlfS0xVREdFIDEKI2RlZmlu ZSBMT0NLRURfUEFTU1dEX1BSRUZJWCAiISIKI2RlZmluZSBTUFRfVFlQRSBTUFRfUkVVU0VBUkdW CiNkZWZpbmUgTElOS19PUE5PVFNVUFBfRVJSTk8gRVBFUk0KI2RlZmluZSBfUEFUSF9CVE1QICIv dmFyL2xvZy9idG1wIgojZGVmaW5lIFVTRV9CVE1QIDEKI2RlZmluZSBMSU5VWF9PT01fQURKVVNU IDEKI2RlZmluZSBIQVZFX0xJTlVYX0lGX1RVTl9IIDEKI2RlZmluZSBTU0hfVFVOX0xJTlVYIDEK I2RlZmluZSBTU0hfVFVOX0NPTVBBVF9BRiAxCiNkZWZpbmUgU1NIX1RVTl9QUkVQRU5EX0FGIDEK I2RlZmluZSBIQVZFX0xJQk5TTCAxCiNkZWZpbmUgSEFWRV9ESVJOQU1FIDEKI2RlZmluZSBIQVZF X0xJQkdFTl9IIDEKI2RlZmluZSBIQVZFX0JBU0VOQU1FIDEKI2RlZmluZSBIQVZFX0xJQlogMQoj ZGVmaW5lIEhBVkVfVVRJTUVTIDEKI2RlZmluZSBIQVZFX0xPR0lOIDEKI2RlZmluZSBIQVZFX0xP R09VVCAxCiNkZWZpbmUgSEFWRV9VUERXVE1QIDEKI2RlZmluZSBIQVZFX0xPR1dUTVAgMQojZGVm aW5lIEhBVkVfU1RSRlRJTUUgMQojZGVmaW5lIEdMT0JfSEFTX0FMVERJUkZVTkMgMQojZGVmaW5l IEhBVkVfREVDTF9HTE9CX05PTUFUQ0ggMQojZGVmaW5lIEhBVkVfUFJPQ19QSUQgMQojZGVmaW5l IEhBVkVfQVNQUklOVEYgMQojZGVmaW5lIEhBVkVfQkNPUFkgMQojZGVmaW5lIEhBVkVfQ0xPQ0sg MQojZGVmaW5lIEhBVkVfRElSRkQgMQojZGVmaW5lIEhBVkVfRkNITU9EIDEKI2RlZmluZSBIQVZF X0ZDSE9XTiAxCiNkZWZpbmUgSEFWRV9GUkVFQUREUklORk8gMQojZGVmaW5lIEhBVkVfRlNUQVRW RlMgMQojZGVmaW5lIEhBVkVfRlVUSU1FUyAxCiNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTyAxCiNk ZWZpbmUgSEFWRV9HRVRDV0QgMQojZGVmaW5lIEhBVkVfR0VUR1JPVVBMSVNUIDEKI2RlZmluZSBI QVZFX0dFVE5BTUVJTkZPIDEKI2RlZmluZSBIQVZFX0dFVE9QVCAxCiNkZWZpbmUgSEFWRV9HRVRS TElNSVQgMQojZGVmaW5lIEhBVkVfR0VUVFRZRU5UIDEKI2RlZmluZSBIQVZFX0dMT0IgMQojZGVm aW5lIEhBVkVfSU5FVF9BVE9OIDEKI2RlZmluZSBIQVZFX0lORVRfTlRPQSAxCiNkZWZpbmUgSEFW RV9JTkVUX05UT1AgMQojZGVmaW5lIEhBVkVfSU5ORVRHUiAxCiNkZWZpbmUgSEFWRV9NRU1NT1ZF IDEKI2RlZmluZSBIQVZFX01LRFRFTVAgMQojZGVmaW5lIEhBVkVfTU1BUCAxCiNkZWZpbmUgSEFW RV9PUEVOUFRZIDEKI2RlZmluZSBIQVZFX1BPTEwgMQojZGVmaW5lIEhBVkVfUFJDVEwgMQojZGVm aW5lIEhBVkVfUkVBTFBBVEggMQojZGVmaW5lIEhBVkVfUkVDVk1TRyAxCiNkZWZpbmUgSEFWRV9S UkVTVlBPUlRfQUYgMQojZGVmaW5lIEhBVkVfU0VORE1TRyAxCiNkZWZpbmUgSEFWRV9TRVRFR0lE IDEKI2RlZmluZSBIQVZFX1NFVEVOViAxCiNkZWZpbmUgSEFWRV9TRVRFVUlEIDEKI2RlZmluZSBI QVZFX1NFVEdST1VQUyAxCiNkZWZpbmUgSEFWRV9TRVRSRUdJRCAxCiNkZWZpbmUgSEFWRV9TRVRS RVVJRCAxCiNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQojZGVmaW5lIEhBVkVfU0VUU0lEIDEKI2Rl ZmluZSBIQVZFX1NFVFZCVUYgMQojZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKI2RlZmluZSBIQVZF X1NJR1ZFQyAxCiNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCiNkZWZpbmUgSEFWRV9TT0NLRVRQQUlS IDEKI2RlZmluZSBIQVZFX1NUQVRGUyAxCiNkZWZpbmUgSEFWRV9TVEFUVkZTIDEKI2RlZmluZSBI QVZFX1NUUkRVUCAxCiNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCiNkZWZpbmUgSEFWRV9TVFJQVElN RSAxCiNkZWZpbmUgSEFWRV9TVFJUT0xMIDEKI2RlZmluZSBIQVZFX1NUUlRPVUwgMQojZGVmaW5l IEhBVkVfU1lTQ09ORiAxCiNkZWZpbmUgSEFWRV9UQ0dFVFBHUlAgMQojZGVmaW5lIEhBVkVfVFJV TkNBVEUgMQojZGVmaW5lIEhBVkVfVU5TRVRFTlYgMQojZGVmaW5lIEhBVkVfVVBEV1RNUFggMQoj ZGVmaW5lIEhBVkVfVkFTUFJJTlRGIDEKI2RlZmluZSBIQVZFX1ZIQU5HVVAgMQojZGVmaW5lIEhB VkVfVlNOUFJJTlRGIDEKI2RlZmluZSBIQVZFX1dBSVRQSUQgMQojZGVmaW5lIEhBVkVfSVNCTEFO SyAxCiNkZWZpbmUgRU5BQkxFX1BLQ1MxMSAvKiovCiNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1Ig MQojZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKI2RlZmluZSBIQVZFX0NPTlNUX0dBSV9TVFJF UlJPUl9QUk9UTyAxCiNkZWZpbmUgSEFWRV9OQU5PU0xFRVAgMQojZGVmaW5lIEhBVkVfU1RSU0VQ IDEKI2RlZmluZSBIQVZFX1RDU0VOREJSRUFLIDEKI2RlZmluZSBIQVZFX0RFQ0xfSF9FUlJOTyAx CiNkZWZpbmUgSEFWRV9ERUNMX1NIVVRfUkQgMQojZGVmaW5lIEhBVkVfREVDTF9PX05PTkJMT0NL IDEKI2RlZmluZSBIQVZFX0RFQ0xfV1JJVEVWIDEKI2RlZmluZSBIQVZFX0RFQ0xfTUFYU1lNTElO S1MgMQojZGVmaW5lIEhBVkVfREVDTF9PRkZTRVRPRiAxCiNkZWZpbmUgSEFWRV9TRVRSRVNVSUQg MQojZGVmaW5lIEhBVkVfU0VUUkVTR0lEIDEKI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCiNk ZWZpbmUgSEFWRV9USU1FIDEKI2RlZmluZSBIQVZFX0VORFVURU5UIDEKI2RlZmluZSBIQVZFX0dF VFVURU5UIDEKI2RlZmluZSBIQVZFX0dFVFVUSUQgMQojZGVmaW5lIEhBVkVfR0VUVVRMSU5FIDEK I2RlZmluZSBIQVZFX1BVVFVUTElORSAxCiNkZWZpbmUgSEFWRV9TRVRVVEVOVCAxCiNkZWZpbmUg SEFWRV9VVE1QTkFNRSAxCiNkZWZpbmUgSEFWRV9FTkRVVFhFTlQgMQojZGVmaW5lIEhBVkVfR0VU VVRYRU5UIDEKI2RlZmluZSBIQVZFX0dFVFVUWElEIDEKI2RlZmluZSBIQVZFX0dFVFVUWExJTkUg MQojZGVmaW5lIEhBVkVfUFVUVVRYTElORSAxCiNkZWZpbmUgSEFWRV9TRVRVVFhFTlQgMQojZGVm aW5lIEhBVkVfVVRNUFhOQU1FIDEKI2RlZmluZSBIQVZFX0RBRU1PTiAxCiNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCiNkZWZpbmUgU05QUklOVEZfQ09OU1QgY29uc3QKI2RlZmluZSBIQVZFX1NP X1BFRVJDUkVEIDEKI2RlZmluZSBIQVZFX1NUUklDVF9NS1NURU1QIDEKI2RlZmluZSBHRVRQR1JQ X1ZPSUQgMQojZGVmaW5lIEhBVkVfT1BFTlNTTCAxCiNkZWZpbmUgSEFWRV9SU0FfR0VORVJBVEVf S0VZX0VYIDEKI2RlZmluZSBIQVZFX0RTQV9HRU5FUkFURV9QQVJBTUVURVJTX0VYIDEKI2RlZmlu ZSBIQVZFX0JOX0lTX1BSSU1FX0VYIDEKI2RlZmluZSBIQVZFX1JTQV9HRVRfREVGQVVMVF9NRVRI T0QgMQojZGVmaW5lIFVTRV9PUEVOU1NMX0VOR0lORSAxCiNkZWZpbmUgSEFWRV9TSEEyNTZfVVBE QVRFIDEKI2RlZmluZSBIQVZFX0VWUF9TSEEyNTYgMQojZGVmaW5lIE9QRU5TU0xfSEFTX0VDQyAx CiNkZWZpbmUgSEFWRV9MSUJETCAxCgpjb25maWd1cmU6IGV4aXQgMQo= --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: text/plain; charset=US-ASCII; name="emerge-pvq.txt" Content-Disposition: attachment; filename="emerge-pvq.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpgwpp9h2 W2VidWlsZCAgIFIgICBdIG5ldC1taXNjL29wZW5zc2gtNS44X3AyICBVU0U9ImhwbiBwYW0gLVgg LVg1MDkgLWtlcmJlcm9zIC1sZGFwIC1saWJlZGl0ICgtc2VsaW51eCkgLXNrZXkgLXN0YXRpYyAt dGNwZCIgCg== --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: application/octet-stream; name=environment Content-Disposition: attachment; filename=environment Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpgwppps3 ZGVjbGFyZSAteCBBQkk9ImFtZDY0IgpkZWNsYXJlIC14IEFMU0FfQ0FSRFM9IiIKZGVjbGFyZSAt eCBBTFNBX1BDTV9QTFVHSU5TPSJhZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25v b3AgZW1wdHkgZXh0cGx1ZyBmaWxlIGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBs aW5lYXIgbWV0ZXIgbW1hcF9lbXVsIG11bGF3IG11bHRpIG51bGwgcGx1ZyByYXRlIHJvdXRlIHNo YXJlIHNobSBzb2Z0dm9sIgpkZWNsYXJlIC14IEFQQUNIRTJfTU9EVUxFUz0iYWN0aW9ucyBhbGlh cyBhdXRoX2Jhc2ljIGF1dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhuX2RlZmF1 bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0 aHpfaG9zdCBhdXRoel9vd25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBjZ2kgY2dpZCBk YXYgZGF2X2ZzIGRhdl9sb2NrIGRlZmxhdGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0 X2ZpbHRlciBmaWxlX2NhY2hlIGZpbHRlciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmln IGxvZ2lvIG1lbV9jYWNoZSBtaW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRl bnZpZiBzcGVsaW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxp YXMiCmRlY2xhcmUgLXggQVJDSD0iYW1kNjQiCmRlY2xhcmUgLXggQVNGTEFHU194ODY9Ii0tMzIi CmRlY2xhcmUgLS0gQVRfTTRESVI9IiIKZGVjbGFyZSAtLSBBVVRPVE9PTFNfQVVUT19ERVBFTkQ9 InllcyIKZGVjbGFyZSAtLSBBVVRPVE9PTFNfREVQRU5EPSJ8fCAoID1zeXMtZGV2ZWwvYXV0b21h a2UtMS4xMSogICkgPj1zeXMtZGV2ZWwvYXV0b2NvbmYtMi42MSA+PXN5cy1kZXZlbC9saWJ0b29s LTIuMi42YiIKZGVjbGFyZSAteCBDQUxMSUdSQV9GRUFUVVJFUz0iYnJhaW5kdW1wIGZsb3cga2Fy Ym9uIGtleGkga3ByZXNlbnRlciBrcml0YSB0YWJsZXMgd29yZHMiCmRlY2xhcmUgLXggQ0FNRVJB Uz0icHRwMiIKZGVjbGFyZSAteCBDQlVJTEQ9Ing4Nl82NC1wYy1saW51eC1nbnUiCmRlY2xhcmUg LXggQ0ZMQUdTPSItbWFyY2g9bmF0aXZlIC1PMiAtcGlwZSIKZGVjbGFyZSAteCBDRkxBR1NfZGVm YXVsdApkZWNsYXJlIC14IENGTEFHU194ODY9Ii1tMzIiCmRlY2xhcmUgLXggQ0hPU1Q9Ing4Nl82 NC1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0hPU1RfYW1kNjQ9Ing4Nl82NC1wYy1saW51eC1n bnUiCmRlY2xhcmUgLXggQ0hPU1RfZGVmYXVsdD0ieDg2XzY0LXBjLWxpbnV4LWdudSIKZGVjbGFy ZSAteCBDSE9TVF94ODY9Imk2ODYtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENPTExFQ1REX1BM VUdJTlM9ImRmIGludGVyZmFjZSBpcnEgbG9hZCBtZW1vcnkgcnJkdG9vbCBzd2FwIHN5c2xvZyIK ZGVjbGFyZSAteCBDUk9TU0NPTVBJTEVfT1BUUz0iIgpkZWNsYXJlIC14IENUQVJHRVRfZGVmYXVs dD0ieDg2XzY0LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDWFhGTEFHUz0iLW1hcmNoPW5hdGl2 ZSAtTzIgLXBpcGUiCmRlY2xhcmUgLXggREVGQVVMVF9BQkk9ImFtZDY0IgpkZWNsYXJlIC14IERF RklORURfUEhBU0VTPSIgY29uZmlndXJlIGluc3RhbGwgcG9zdGluc3QgcHJlcGFyZSBzZXR1cCB0 ZXN0IgpkZWNsYXJlIERFUEVORD0icGFtPyAoIHZpcnR1YWwvcGFtICkKCWtlcmJlcm9zPyAoIHZp cnR1YWwva3JiNSApCglzZWxpbnV4PyAoID49c3lzLWxpYnMvbGlic2VsaW51eC0xLjI4ICkKCXNr ZXk/ICggPj1zeXMtYXV0aC9za2V5LTEuMS41LXIxICkKCWxkYXA/ICggbmV0LW5kcy9vcGVubGRh cCApCglsaWJlZGl0PyAoIGRldi1saWJzL2xpYmVkaXQgKQoJPj1kZXYtbGlicy9vcGVuc3NsLTAu OS42ZAoJPj1zeXMtbGlicy96bGliLTEuMi4zCgl0Y3BkPyAoID49c3lzLWFwcHMvdGNwLXdyYXBw ZXJzLTcuNiApCglYPyAoIHgxMS1hcHBzL3hhdXRoICkKCXVzZXJsYW5kX0dOVT8gKCBzeXMtYXBw cy9zaGFkb3cgKQoJZGV2LXV0aWwvcGtnY29uZmlnCgl2aXJ0dWFsL29zLWhlYWRlcnMKCXN5cy1k ZXZlbC9hdXRvY29uZiAgfHwgKCA9c3lzLWRldmVsL2F1dG9tYWtlLTEuMTEqICApID49c3lzLWRl dmVsL2F1dG9jb25mLTIuNjEgPj1zeXMtZGV2ZWwvbGlidG9vbC0yLjIuNmIiCmRlY2xhcmUgREVT Q1JJUFRJT049IlBvcnQgb2YgT3BlbkJTRCdzIGZyZWUgU1NIIHJlbGVhc2UiCmRlY2xhcmUgLXgg REVTVFRSRUU9Ii91c3IiCmRlY2xhcmUgLXggRElST1BUSU9OUz0iLW0wNzU1IgpkZWNsYXJlIC14 IEVBUEk9IjIiCmRlY2xhcmUgLXggRUxJQkM9ImdsaWJjIgpkZWNsYXJlIC0tIEVMVF9QQVRDSF9E SVI9Ii91c3IvcG9ydGFnZS9lY2xhc3MvRUxULXBhdGNoZXMiCmRlY2xhcmUgLS0gRVBBVENIX0VY Q0xVREU9IiIKZGVjbGFyZSAtLSBFUEFUQ0hfRk9SQ0U9Im5vIgpkZWNsYXJlIC0tIEVQQVRDSF9N VUxUSV9NU0c9IkFwcGx5aW5nIHZhcmlvdXMgcGF0Y2hlcyAoYnVnZml4ZXMvdXBkYXRlcykgLi4u IgpkZWNsYXJlIC0tIEVQQVRDSF9PUFRTPSItZzAgLUUgLS1uby1iYWNrdXAtaWYtbWlzbWF0Y2gi CmRlY2xhcmUgLS0gRVBBVENIX1NJTkdMRV9NU0c9IiIKZGVjbGFyZSAtLSBFUEFUQ0hfU09VUkNF PSIvdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3dvcmsvcGF0Y2giCmRl Y2xhcmUgLS0gRVBBVENIX1NVRkZJWD0icGF0Y2guYnoyIgpkZWNsYXJlIC14IEVYRU9QVElPTlM9 Ii1tMDc1NSIKZGVjbGFyZSAteCBGQ0ZMQUdTPSIiCmRlY2xhcmUgLXggRkVUQ0hDT01NQU5EX1NT SD0iYmFzaCAtYyBcIng9XFxcJHsyI3NzaDovL30gOyBob3N0PVxcXCR7eCUlLyp9IDsgcG9ydD1c XFwke2hvc3QjIyo6fSA7IGhvc3Q9XFxcJHtob3N0JToqfSA7IFtbIFxcXCR7aG9zdH0gPSBcXFwk e3BvcnR9IF1dICYmIHBvcnQ9MjIgOyBleGVjIHJzeW5jIC0tcnNoPVxcXCJzc2ggLXBcXFwke3Bv cnR9XFxcIiAtYXZQIFxcXCJcXFwke2hvc3R9Oi9cXFwke3gjKi99XFxcIiBcXFwiXFxcJDFcXFwi XCIgcnN5bmMgXCJcJHtESVNURElSfS9cJHtGSUxFfVwiIFwiXCR7VVJJfVwiIgpkZWNsYXJlIC14 IEZGTEFHUz0iIgpkZWNsYXJlIC14IEdDQ19TUEVDUz0iIgpkZWNsYXJlIC14IEdQU0RfUFJPVE9D T0xTPSJhc2h0ZWNoIGFpdmRtIGVhcnRobWF0ZSBldmVybW9yZSBmdjE4IGdhcm1pbiBnYXJtaW50 eHQgZ3BzY2xvY2sgaXRyYXggbXRrMzMwMSBubWVhIG50cmlwIG5hdmNvbSBvY2VhbnNlcnZlciBv bGRzdHlsZSBvbmNvcmUgcnRjbTEwNHYyIHJ0Y20xMDR2MyBzaXJmIHN1cGVyc3RhcjIgdGltaW5n IHRzaXAgdHJpcG1hdGUgdG50IHVieCIKZGVjbGFyZSBIT01FUEFHRT0iaHR0cDovL3d3dy5vcGVu c3NoLm9yZy8iCmRlY2xhcmUgLS0gSFBOX1BBVENIPSJvcGVuc3NoLTUuOHAxLWhwbjEzdjExLmRp ZmYuZ3oiCmRlY2xhcmUgLXggSU5IRVJJVEVEPSIgdG9vbGNoYWluLWZ1bmNzIG11bHRpbGliIHBv cnRhYmlsaXR5IGV1dGlscyBmbGFnLW8tbWF0aWMgbGlidG9vbCBhdXRvdG9vbHMgcGFtIgpkZWNs YXJlIC14IElOUFVUX0RFVklDRVM9ImtleWJvYXJkIG1vdXNlIGV2ZGV2IgpkZWNsYXJlIC14IElO U0RFU1RUUkVFPSIiCmRlY2xhcmUgLXggSU5TT1BUSU9OUz0iLW0wNjQ0IgpkZWNsYXJlIElVU0U9 IitocG4ga2VyYmVyb3MgbGRhcCBsaWJlZGl0IHBhbSBzZWxpbnV4IHNrZXkgc3RhdGljIHRjcGQg WCBYNTA5ICIKZGVjbGFyZSAteCBLRVJORUw9ImxpbnV4IgpkZWNsYXJlIC14IEtFUk5FTF9BQkk9 ImFtZDY0IgpkZWNsYXJlIC14IEtFWVdPUkRTPSJ+YWxwaGEgfmFtZDY0IH5hcm0gfmhwcGEgfmlh NjQgfm02OGsgfm1pcHMgfnBwYyB+cHBjNjQgfnMzOTAgfnNoIH5zcGFyYyB+eDg2IH5zcGFyYy1m YnNkIH54ODYtZmJzZCIKZGVjbGFyZSAteCBLVj0iMi42LjM5LWhhcmRlbmVkLXIyIgpkZWNsYXJl IC14IExDRF9ERVZJQ0VTPSIiCmRlY2xhcmUgLS0gTERBUF9QQVRDSD0ib3BlbnNzaC1scGstNS44 cDItMC4zLjE0LnBhdGNoLmd6IgpkZWNsYXJlIC14IExERkxBR1M9Ii1XbCwtTzEgLVdsLC0tYXMt bmVlZGVkIgpkZWNsYXJlIC14IExERkxBR1NfZGVmYXVsdApkZWNsYXJlIC14IExERkxBR1NfeDg2 PSItbSBlbGZfaTM4NiIKZGVjbGFyZSAteCBMSUJESVJfYW1kNjQ9ImxpYjY0IgpkZWNsYXJlIC14 IExJQkRJUl9hbWQ2NF9mYnNkPSJsaWI2NCIKZGVjbGFyZSAteCBMSUJESVJfZGVmYXVsdD0ibGli IgpkZWNsYXJlIC14IExJQkRJUl9wcGM9ImxpYjMyIgpkZWNsYXJlIC14IExJQkRJUl9wcGM2ND0i bGliNjQiCmRlY2xhcmUgLXggTElCRElSX3MzOTA9ImxpYjMyIgpkZWNsYXJlIC14IExJQkRJUl9z MzkweD0ibGliNjQiCmRlY2xhcmUgLXggTElCRElSX3NwYXJjMzI9ImxpYjMyIgpkZWNsYXJlIC14 IExJQkRJUl9zcGFyYzY0PSJsaWI2NCIKZGVjbGFyZSAteCBMSUJESVJfeDg2PSJsaWIzMiIKZGVj bGFyZSAteCBMSUJESVJfeDg2X2Zic2Q9ImxpYjMyIgpkZWNsYXJlIC14IExJQk9QVElPTlM9Ii1t MDY0NCIKZGVjbGFyZSAteCBMSUNFTlNFPSJhcy1pcyIKZGVjbGFyZSAteCBNQUtFT1BUUz0iLWoz IgpkZWNsYXJlIC14IE1VTFRJTElCX0FCSVM9ImFtZDY0IHg4NiIKZGVjbGFyZSAteCBNVUxUSUxJ Ql9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0IgpkZWNsYXJlIC14IE1VTFRJTElC X1NUUklDVF9ESVJTPSIvbGliMzIgL2xpYiAvdXNyL2xpYjMyIC91c3IvbGliIC91c3Iva2RlLyov bGliMzIgL3Vzci9rZGUvKi9saWIgL3Vzci9xdC8qL2xpYjMyIC91c3IvcXQvKi9saWIgL3Vzci9Y MTFSNi9saWIzMiAvdXNyL1gxMVI2L2xpYiIKZGVjbGFyZSAteCBNVUxUSUxJQl9TVFJJQ1RfRVhF TVBUPSIocGVybDV8Z2NjfGdjYy1saWJ8YmludXRpbHN8ZWNsaXBzZS0zfGRlYnVnfHBvcnRhZ2V8 dWRldikiCmRlY2xhcmUgLXggTkVUQkVBTlM9ImFwaXN1cHBvcnQgY25kIGdyb292eSBnc2YgaGFy bmVzcyBpZGUgaWRlbnRpdHkgajJlZSBqYXZhIG1vYmlsaXR5IG5iIHBocCBwcm9maWxlciBzb2Eg dmlzdWFsd2ViIHdlYmNvbW1vbiB3ZWJzdmNjb21tb24geG1sIgpkZWNsYXJlIC0tIFBBUkNIPSJv cGVuc3NoLTUuOHAyIgpkZWNsYXJlIC14IFBBVEg9Ii91c3IvbGliNjQvcG9ydGFnZS9iaW4vZWJ1 aWxkLWhlbHBlcnM6L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNy L2Jpbjovc2JpbjovYmluOi9vcHQvYmluOi91c3IveDg2XzY0LXBjLWxpbnV4LWdudS9nY2MtYmlu LzQuNS4yIgpkZWNsYXJlIFBERVBFTkQ9IiAiCmRlY2xhcmUgLXggUEhQX1RBUkdFVFM9IiIKZGVj bGFyZSAteCBQT1JUQUdFX0NPTVBSRVNTX0VYQ0xVREVfU1VGRklYRVM9ImNzcyBnaWYgaHRtW2xd PyBqcFtlXT9nIGpzIHBkZiBwbmciCmRlY2xhcmUgLWEgUE9SVEFHRV9ET0NPTVBSRVNTPScoWzBd PSIvdXNyL3NoYXJlL2RvYyIgWzFdPSIvdXNyL3NoYXJlL2luZm8iIFsyXT0iL3Vzci9zaGFyZS9t YW4iKScKZGVjbGFyZSAtYSBQT1JUQUdFX0RPQ09NUFJFU1NfU0tJUD0nKFswXT0iL3Vzci9zaGFy ZS9kb2Mvb3BlbnNzaC01LjhfcDIvaHRtbCIpJwpkZWNsYXJlIC14IFBPUlRBR0VfTklDRU5FU1M9 IjUiCmRlY2xhcmUgLXggUFJFTElOS19QQVRIX01BU0s9Ii91c3IvbGliNjQvbGliZnJlZWJsMy5z bzovdXNyL2xpYjY0L2xpYm5zc2RibTMuc286L3Vzci9saWI2NC9saWJzb2Z0b2tuMy5zbyIKZGVj bGFyZSAteCBQUk9GSUxFX09OTFlfVkFSSUFCTEVTPSJBUkNIIEVMSUJDIEtFUk5FTCBVU0VSTEFO RCIKZGVjbGFyZSAteCBQUk9QRVJUSUVTPSIiCmRlY2xhcmUgLXggUFJPVklERT0iIgpkZWNsYXJl IC14IFBZVEhPTkRPTlRXUklURUJZVEVDT0RFPSIxIgpkZWNsYXJlIC14IFFFTVVfU09GVE1NVV9U QVJHRVRTPSIiCmRlY2xhcmUgLXggUUVNVV9VU0VSX1RBUkdFVFM9ImkzODYgeDg2XzY0IgpkZWNs YXJlIC14IFJERVBFTkQ9InBhbT8gKCB2aXJ0dWFsL3BhbSApCglrZXJiZXJvcz8gKCB2aXJ0dWFs L2tyYjUgKQoJc2VsaW51eD8gKCA+PXN5cy1saWJzL2xpYnNlbGludXgtMS4yOCApCglza2V5PyAo ID49c3lzLWF1dGgvc2tleS0xLjEuNS1yMSApCglsZGFwPyAoIG5ldC1uZHMvb3BlbmxkYXAgKQoJ bGliZWRpdD8gKCBkZXYtbGlicy9saWJlZGl0ICkKCT49ZGV2LWxpYnMvb3BlbnNzbC0wLjkuNmQK CT49c3lzLWxpYnMvemxpYi0xLjIuMwoJdGNwZD8gKCA+PXN5cy1hcHBzL3RjcC13cmFwcGVycy03 LjYgKQoJWD8gKCB4MTEtYXBwcy94YXV0aCApCgl1c2VybGFuZF9HTlU/ICggc3lzLWFwcHMvc2hh ZG93ICkKCXBhbT8gKCA+PXN5cy1hdXRoL3BhbWJhc2UtMjAwODEwMjggKSAgIgpkZWNsYXJlIFJF UVVJUkVEX1VTRT0iICIKZGVjbGFyZSAteCBSRVNUUklDVD0iIgpkZWNsYXJlIC14IFJFU1VNRUNP TU1BTkRfU1NIPSJiYXNoIC1jIFwieD1cXFwkezIjc3NoOi8vfSA7IGhvc3Q9XFxcJHt4JSUvKn0g OyBwb3J0PVxcXCR7aG9zdCMjKjp9IDsgaG9zdD1cXFwke2hvc3QlOip9IDsgW1sgXFxcJHtob3N0 fSA9IFxcXCR7cG9ydH0gXV0gJiYgcG9ydD0yMiA7IGV4ZWMgcnN5bmMgLS1yc2g9XFxcInNzaCAt cFxcXCR7cG9ydH1cXFwiIC1hdlAgXFxcIlxcXCR7aG9zdH06L1xcXCR7eCMqL31cXFwiIFxcXCJc XFwkMVxcXCJcIiByc3luYyBcIlwke0RJU1RESVJ9L1wke0ZJTEV9XCIgXCJcJHtVUkl9XCIiCmRl Y2xhcmUgLXggUlVCWV9UQVJHRVRTPSIiCmRlY2xhcmUgLXggUz0iL3Zhci90bXAvcG9ydGFnZS9u ZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi93b3JrL29wZW5zc2gtNS44cDIiCmRlY2xhcmUgLXggU0FO REJPWF9ERUJVRz0iMCIKZGVjbGFyZSAteCBTQU5EQk9YX0RFTlk9IiIKZGVjbGFyZSAteCBTQU5E Qk9YX1BJRD0iMzY5MCIKZGVjbGFyZSAteCBTQU5EQk9YX1BSRURJQ1Q9Ii92YXIvdG1wL3BvcnRh Z2UvbmV0LW1pc2Mvb3BlbnNzaC01LjhfcDIvaG9tZWRpcjovZGV2L2NyeXB0bzovdmFyL2NhY2hl L2ZvbnRjb25maWciCmRlY2xhcmUgLXggU0FOREJPWF9SRUFEPSIvOi9kZXYvc3RkaW46L3Zhci90 bXAiCmRlY2xhcmUgLXggU0FOREJPWF9WRVJCT1NFPSIxIgpkZWNsYXJlIC14IFNBTkRCT1hfV1JJ VEU9IjovZGV2L2NvbnNvbGU6L2Rldi9mZDovZGV2L2Z1bGw6L2Rldi9udWxsOi9kZXYvcHRzLzov ZGV2L3B0eTovZGV2L3NobTovZGV2L3N0ZGVycjovZGV2L3N0ZG91dDovZGV2L3R0czovZGV2L3R0 eTovZGV2L3ZjLzovZGV2L3plcm86L3Byb2Mvc2VsZi9mZDovdG1wLzovdXNyL2xpYi9jZjovdXNy L2xpYi9jb25mdGVzdDovdXNyL2xpYjMyL2NmOi91c3IvbGliMzIvY29uZnRlc3Q6L3Vzci9saWI2 NC9jZjovdXNyL2xpYjY0L2NvbmZ0ZXN0Oi91c3IvdG1wL2NmOi91c3IvdG1wL2NvbmZ0ZXN0Oi92 YXIvdG1wOi92YXIvdG1wLzovdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3Ay L2hvbWVkaXIvLmJhc2hfaGlzdG9yeSIKZGVjbGFyZSAteCBTTE9UPSIwIgpkZWNsYXJlIFNSQ19V Ukk9Im1pcnJvcjovL29wZW5ic2QvT3BlblNTSC9wb3J0YWJsZS9vcGVuc3NoLTUuOHAyLnRhci5n egoJaHBuPyAoIGh0dHA6Ly93d3cucHNjLmVkdS9uZXR3b3JraW5nL3Byb2plY3RzL2hwbi1zc2gv b3BlbnNzaC01LjhwMS1ocG4xM3YxMS5kaWZmLmd6IG1pcnJvcjovL2dlbnRvby9vcGVuc3NoLTUu OHAxLWhwbjEzdjExLmRpZmYuZ3ogKQoJbGRhcD8gKCBtaXJyb3I6Ly9nZW50b28vb3BlbnNzaC1s cGstNS44cDItMC4zLjE0LnBhdGNoLmd6ICkKCVg1MDk/ICggaHR0cDovL3JvdW1lbnBldHJvdi5p bmZvL29wZW5zc2gveDUwOS02LjIuNC9vcGVuc3NoLTUuOHAxK3g1MDktNi4yLjQuZGlmZi5neiAp CgkiCmRlY2xhcmUgLXggU1RBR0UxX1VTRT0iaGFyZGVuZWQgbXVsdGlsaWIgbnB0bCBucHRsb25s eSIKZGVjbGFyZSAteCBTWU1MSU5LX0xJQj0ieWVzIgpkZWNsYXJlIC14IFVTRT0iYW1kNjQgZWxp YmNfZ2xpYmMgaHBuIGtlcm5lbF9saW51eCBtdWx0aWxpYiBwYW0gdXNlcmxhbmRfR05VIgpkZWNs YXJlIC14IFVTRVJMQU5EPSJHTlUiCmRlY2xhcmUgLXggVklERU9fQ0FSRFM9IiIKZGVjbGFyZSAt eCBXQU5UX0FVVE9DT05GPSIyLjUiCmRlY2xhcmUgLXggV0FOVF9BVVRPTUFLRT0iMS4xMSIKZGVj bGFyZSAtLSBYNTA5X1BBVENIPSJvcGVuc3NoLTUuOHAxK3g1MDktNi4yLjQuZGlmZi5neiIKZGVj bGFyZSAtLSBYNTA5X1ZFUj0iNi4yLjQiCmRlY2xhcmUgLXggWFRBQkxFU19BRERPTlM9InF1b3Rh MiBwc2QgcGtub2NrIGxzY2FuIGxlbmd0aDIgaXB2NG9wdGlvbnMgaXBzZXQgaXBwMnAgaWZhY2Ug Z2VvaXAgZnV6enkgY29uZGl0aW9uIHRlZSB0YXJwaXQgc3lzcnEgc3RlYWwgcmF3bmF0IGxvZ21h cmsgaXBtYXJrIGRoY3BtYWMgZGVsdWRlIGNoYW9zIGFjY291bnQiCmRlY2xhcmUgLS0gXz0iUEtH X0lOU1RBTExfTUFTSyIKZGVjbGFyZSAteCBfRV9ET0NERVNUVFJFRV89IiIKZGVjbGFyZSAteCBf RV9FWEVERVNUVFJFRV89IiIKZGVjbGFyZSAtLSBfTEFURVNUX0FVVE9NQUtFPSIxLjExIgpkZWNs YXJlIC0tIF9fX0VDTEFTU19SRUNVUl9NVUxUSUxJQj0ieWVzIgpkZWNsYXJlIC0tIF9fX0VDTEFT U19SRUNVUl9UT09MQ0hBSU5fRlVOQ1M9InllcyIKRUxUX2xpYnRvb2xfdmVyc2lvbiAoKSAKeyAK ICAgICggdW5zZXQgVkVSU0lPTjsKICAgIGV2YWwgJChncmVwIC1lICdeW1s6c3BhY2U6XV0qVkVS U0lPTj0nICIkMSIpOwogICAgZWNobyAiJHtWRVJTSU9OOi0wfSIgKQp9CkVMVF90cnlfYW5kX2Fw cGx5X3BhdGNoICgpIAp7IAogICAgbG9jYWwgcmV0PTA7CiAgICBsb2NhbCBmaWxlPSQxOwogICAg bG9jYWwgcGF0Y2g9JDI7CiAgICBlY2hvIC1lICJcblRyeWluZyAkKGJhc2VuYW1lICIkKGRpcm5h bWUgIiR7cGF0Y2h9IikiKS0ke3BhdGNoIyMqL30ucGF0Y2ggb24gJHtmaWxlfSIgPj4gIiR7VH0v ZWxpYnRvb2wubG9nIiAyPiYxOwogICAgaWYgcGF0Y2ggLXAwIC0tZHJ5LXJ1biAiJHtmaWxlfSIg IiR7cGF0Y2h9IiA+PiAiJHtUfS9lbGlidG9vbC5sb2ciIDI+JjE7IHRoZW4KICAgICAgICBlaW5m byAiICBBcHBseWluZyAkKGJhc2VuYW1lICIkKGRpcm5hbWUgIiR7cGF0Y2h9IikiKS0ke3BhdGNo IyMqL30ucGF0Y2ggLi4uIjsKICAgICAgICBwYXRjaCAtcDAgLWcwIC0tbm8tYmFja3VwLWlmLW1p c21hdGNoICIke2ZpbGV9IiAiJHtwYXRjaH0iID4+ICIke1R9L2VsaWJ0b29sLmxvZyIgMj4mMTsK ICAgICAgICByZXQ9JD87CiAgICAgICAgZXhwb3J0IEVMVF9BUFBMSUVEX1BBVENIRVM9IiR7RUxU X0FQUExJRURfUEFUQ0hFU30gJHtwYXRjaCMjKi99IjsKICAgIGVsc2UKICAgICAgICByZXQ9MTsK ICAgIGZpOwogICAgcmV0dXJuICIke3JldH0iCn0KRUxUX3dhbGtfcGF0Y2hlcyAoKSAKeyAKICAg IGxvY2FsIHBhdGNoOwogICAgbG9jYWwgcmV0PTE7CiAgICBsb2NhbCBmaWxlPSQxOwogICAgbG9j YWwgcGF0Y2hfc2V0PSQyOwogICAgbG9jYWwgcGF0Y2hfZGlyPSIke0VMVF9QQVRDSF9ESVJ9LyR7 cGF0Y2hfc2V0fSI7CiAgICBsb2NhbCByZW1faW50X2RlcD0kMzsKICAgIFtbIC16ICR7cGF0Y2hf c2V0fSBdXSAmJiByZXR1cm4gMTsKICAgIFtbICEgLWQgJHtwYXRjaF9kaXJ9IF1dICYmIHJldHVy biAxOwogICAgcHVzaGQgIiR7RUxUX1BBVENIX0RJUn0iID4gL2Rldi9udWxsOwogICAgZm9yIHBh dGNoIGluICQoZmluZCAiJHtwYXRjaF9zZXR9IiAtbWF4ZGVwdGggMSAtdHlwZSBmIHwgTENfQUxM PUMgc29ydCAtcik7CiAgICBkbwogICAgICAgIGlmIFtbIC1uICR7cmVtX2ludF9kZXB9IF1dOyB0 aGVuCiAgICAgICAgICAgIGxvY2FsIHRtcD0iJHtUfS8kJC5yZW1faW50X2RlcHMucGF0Y2giOwog ICAgICAgICAgICBzZWQgLWUgInN8QFJFTV9JTlRfREVQQHwke3JlbV9pbnRfZGVwfXxnIiAiJHtw YXRjaH0iID4gIiR7dG1wfSI7CiAgICAgICAgICAgIHBhdGNoPSR7dG1wfTsKICAgICAgICBmaTsK ICAgICAgICBpZiBFTFRfdHJ5X2FuZF9hcHBseV9wYXRjaCAiJHtmaWxlfSIgIiR7cGF0Y2h9Ijsg dGhlbgogICAgICAgICAgICByZXQ9MDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZmk7CiAg ICBkb25lOwogICAgcG9wZCA+IC9kZXYvbnVsbDsKICAgIHJldHVybiAke3JldH0KfQpWRVJfbWFq b3IgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFZFUj0kQDsK ICAgIGVjaG8gIiR7VkVSJSVbXls6ZGlnaXQ6XV0qfSIKfQpWRVJfbWljcm8gKCkgCnsgCiAgICBb WyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFZFUj0kQDsKICAgIFZFUj0ke1ZFUiMq LioufTsKICAgIGVjaG8gIiR7VkVSJSVbXls6ZGlnaXQ6XV0qfSIKfQpWRVJfbWlub3IgKCkgCnsg CiAgICBbWyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFZFUj0kQDsKICAgIFZFUj0k e1ZFUiMqLn07CiAgICBlY2hvICIke1ZFUiUlW15bOmRpZ2l0Ol1dKn0iCn0KVkVSX3RvX2ludCAo KSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHJldHVybiAxOwogICAgbG9jYWwgVkVSX01BSk9SPSQo VkVSX21ham9yICIkMSIpOwogICAgbG9jYWwgVkVSX01JTk9SPSQoVkVSX21pbm9yICIkMSIpOwog ICAgbG9jYWwgVkVSX01JQ1JPPSQoVkVSX21pY3JvICIkMSIpOwogICAgbG9jYWwgVkVSX2ludD0k KCggVkVSX01BSk9SICogNjU1MzYgKyBWRVJfTUlOT1IgKiAyNTYgKyBWRVJfTUlDUk8gKSk7CiAg ICBpZiBbWyAke1ZFUl9pbnR9IC1nZSA2NTUzNiBdXTsgdGhlbgogICAgICAgIGVjaG8gIiR7VkVS X2ludH0iOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBlY2hvIDE7CiAgICByZXR1cm4g MQp9Cl9jZHJvbV9sb2NhdGVfZmlsZV9vbl9jZCAoKSAKeyAKICAgIGxvY2FsIG1saW5lPSIiOwog ICAgbG9jYWwgc2hvd2VkbXNnPTAgc2hvd2pvbGlldG1zZz0wOwogICAgd2hpbGUgW1sgLXogJHtD RFJPTV9ST09UfSBdXTsgZG8KICAgICAgICBsb2NhbCBpPTA7CiAgICAgICAgbG9jYWwgLWEgY2Rz ZXQ9KCR7Ki8vOi8gfSk7CiAgICAgICAgaWYgW1sgLW4gJHtDRFJPTV9TRVR9IF1dOyB0aGVuCiAg ICAgICAgICAgIGNkc2V0PSgke2Nkc2V0WyR7Q0RST01fU0VUfV19KTsKICAgICAgICBmaTsKICAg ICAgICB3aGlsZSBbWyAtbiAke2Nkc2V0WyR7aX1dfSBdXTsgZG8KICAgICAgICAgICAgbG9jYWwg ZGlyPSQoZGlybmFtZSAke2Nkc2V0WyR7aX1dfSk7CiAgICAgICAgICAgIGxvY2FsIGZpbGU9JChi YXNlbmFtZSAke2Nkc2V0WyR7aX1dfSk7CiAgICAgICAgICAgIGxvY2FsIHBvaW50PSBub2RlPSBm cz0gZm9vPTsKICAgICAgICAgICAgd2hpbGUgcmVhZCBwb2ludCBub2RlIGZzIGZvbzsgZG8KICAg ICAgICAgICAgICAgIFtbICIgY2Q5NjYwIGlzbzk2NjAgdWRmICIgIT0gKiIgJHtmc30gIiogXV0g JiYgISBbWyAke2ZzfSA9PSAic3ViZnMiICYmICIsJHtvcHRzfSwiID09ICoiLGZzPWNkZnNzLCIq IF1dICYmIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgcG9pbnQ9JHtwb2ludC8vXDA0MC8gfTsK ICAgICAgICAgICAgICAgIFtbICEgLWQgJHtwb2ludH0vJHtkaXJ9IF1dICYmIGNvbnRpbnVlOwog ICAgICAgICAgICAgICAgW1sgLXogJChmaW5kICIke3BvaW50fS8ke2Rpcn0iIC1tYXhkZXB0aCAx IC1pbmFtZSAiJHtmaWxlfSIpIF1dICYmIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgZXhwb3J0 IENEUk9NX1JPT1Q9JHtwb2ludH07CiAgICAgICAgICAgICAgICBleHBvcnQgQ0RST01fU0VUPSR7 aX07CiAgICAgICAgICAgICAgICBleHBvcnQgQ0RST01fTUFUQ0g9JHtjZHNldFske2l9XX07CiAg ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGRvbmUgPDw8ICIkKGdldF9tb3VudHMp IjsKICAgICAgICAgICAgKCgrK2kpKTsKICAgICAgICBkb25lOwogICAgICAgIGVjaG87CiAgICAg ICAgaWYgW1sgJHtzaG93ZWRtc2d9IC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAgIGlmIFtbICR7 Q0RST01fVE9UQUxfQ0RTfSAtZXEgMSBdXTsgdGhlbgogICAgICAgICAgICAgICAgaWYgW1sgLXog JHtDRFJPTV9OQU1FfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2Ug aW5zZXJ0K21vdW50IHRoZSBjZHJvbSBmb3IgJHtQTn0gbm93ICEiOwogICAgICAgICAgICAgICAg ZWxzZQogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2UgaW5zZXJ0K21vdW50IHRoZSAk e0NEUk9NX05BTUV9IGNkcm9tIG5vdyAhIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAg ICBlbHNlCiAgICAgICAgICAgICAgICBpZiBbWyAteiAke0NEUk9NX05BTUVfMX0gXV07IHRoZW4K ICAgICAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3VudCBjZCAjJHtDRFJP TV9DVVJSRU5UX0NEfSBmb3IgJHtQTn0gbm93ICEiOwogICAgICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgICAgIGxvY2FsIHZhcj0iQ0RST01fTkFNRV8ke0NEUk9NX0NVUlJFTlRfQ0R9 IjsKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3VudCB0aGUgJHsh dmFyfSBjZHJvbSBub3cgISI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAg ICAgICAgICAgIHNob3dlZG1zZz0xOwogICAgICAgIGZpOwogICAgICAgIGVpbmZvICJQcmVzcyBy ZXR1cm4gdG8gc2NhbiBmb3IgdGhlIGNkIGFnYWluIjsKICAgICAgICBlaW5mbyAib3IgaGl0IENU UkwrQyB0byBhYm9ydCB0aGUgZW1lcmdlLiI7CiAgICAgICAgZWNobzsKICAgICAgICBpZiBbWyAk e3Nob3dqb2xpZXRtc2d9IC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAgIHNob3dqb2xpZXRtc2c9 MTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGV3YXJuICJJZiB5b3UgYXJlIGhhdmluZyB0cm91 YmxlIHdpdGggdGhlIGRldGVjdGlvbiI7CiAgICAgICAgICAgIGV3YXJuICJvZiB5b3VyIENELCBp dCBpcyBwb3NzaWJsZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSI7CiAgICAgICAgICAgIGV3YXJuICJK b2xpZXQgc3VwcG9ydCBlbmFibGVkIGluIHlvdXIga2VybmVsLiAgUGxlYXNlIjsKICAgICAgICAg ICAgZXdhcm4gImNoZWNrIHRoYXQgQ09ORklHX0pPTElFVCBpcyBlbmFibGVkIGluIHlvdXIga2Vy bmVsLiI7CiAgICAgICAgICAgIGViZWVwIDU7CiAgICAgICAgZmk7CiAgICAgICAgcmVhZCB8fCBk aWUgInNvbWV0aGluZyBpcyBzY3Jld2VkIHdpdGggeW91ciBzeXN0ZW0iOwogICAgZG9uZQp9Cl9l bGlidG9vbGl6ZSAoKSAKeyAKICAgIGxvY2FsIG9wdHMgZz07CiAgICBbWyAtbiAkKGF1dG90b29s c19jaGVja19tYWNybyBBQ19QUk9HX0xJQlRPT0wgQU1fUFJPR19MSUJUT09MIExUX0lOSVQpIF1d IHx8IHJldHVybiAwOwogICAgW1sgLWYgR05VbWFrZWZpbGUuYW0gfHwgLWYgTWFrZWZpbGUuYW0g XV0gJiYgb3B0cz0iLS1hdXRvbWFrZSI7CiAgICBbWyAke0NIT1NUfSA9PSAqLWRhcndpbiogXV0g JiYgZz1nOwogICAgYXV0b3Rvb2xzX3J1bl90b29sICR7TElCVE9PTElaRTotJHtnfWxpYnRvb2xp emV9ICIkQCIgJHtvcHRzfTsKICAgIGVhY2xvY2FsCn0KX2VwYXRjaF9kcmF3X2xpbmUgKCkgCnsg CiAgICBbWyAteiAkMSBdXSAmJiBzZXQgIiQocHJpbnRmICIlNjVzIiAnJykiOwogICAgZWNobyAi JHsxLy8/Lz19Igp9Cl9maWx0ZXItaGFyZGVuZWQgKCkgCnsgCiAgICBsb2NhbCBmOwogICAgZm9y IGYgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgY2FzZSAiJHtmfSIgaW4gCiAgICAgICAgICAgIC1m UElDIHwgLWZwaWMgfCAtZlBJRSB8IC1mcGllIHwgLVdsLHBpZSB8IC1waWUpCiAgICAgICAgICAg ICAgICBnY2Mtc3BlY3MtcGllIHx8IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3Eg LW5vcGllIHx8IGFwcGVuZC1mbGFncyAtbm9waWUKICAgICAgICAgICAgOzsKICAgICAgICAgICAg LWZzdGFjay1wcm90ZWN0b3IpCiAgICAgICAgICAgICAgICBnY2Mtc3BlY3Mtc3NwIHx8IGNvbnRp bnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3EgLWZuby1zdGFjay1wcm90ZWN0b3IgfHwgYXBw ZW5kLWZsYWdzICQodGVzdC1mbGFncyAtZm5vLXN0YWNrLXByb3RlY3RvcikKICAgICAgICAgICAg OzsKICAgICAgICAgICAgLWZzdGFjay1wcm90ZWN0b3ItYWxsKQogICAgICAgICAgICAgICAgZ2Nj LXNwZWNzLXNzcC10by1hbGwgfHwgY29udGludWU7CiAgICAgICAgICAgICAgICBpcy1mbGFncSAt Zm5vLXN0YWNrLXByb3RlY3Rvci1hbGwgfHwgYXBwZW5kLWZsYWdzICQodGVzdC1mbGFncyAtZm5v LXN0YWNrLXByb3RlY3Rvci1hbGwpCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIC1mbm8tc3Ry aWN0LW92ZXJmbG93KQogICAgICAgICAgICAgICAgZ2NjLXNwZWNzLW5vc3RyaWN0IHx8IGNvbnRp bnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3EgLWZzdHJpY3Qtb3ZlcmZsb3cgfHwgYXBwZW5k LWZsYWdzICQodGVzdC1mbGFncyAtZnN0cmljdC1vdmVyZmxvdykKICAgICAgICAgICAgOzsKICAg ICAgICBlc2FjOwogICAgZG9uZQp9Cl9maWx0ZXItdmFyICgpIAp7IAogICAgbG9jYWwgZiB4IFZB UiBWQUw7CiAgICBkZWNsYXJlIC1hIG5ldzsKICAgIFZBUj0kMTsKICAgIHNoaWZ0OwogICAgZXZh bCBWQUw9XCR7JHtWQVJ9fTsKICAgIGZvciBmIGluICR7VkFMfTsKICAgIGRvCiAgICAgICAgZm9y IHggaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBbWyAke2Z9ID09ICR7eH0gXV0gJiYg Y29udGludWUgMjsKICAgICAgICBkb25lOwogICAgICAgIGV2YWwgbmV3XFtcJHtcI25ld1xbQF19 XT1cJHtmfTsKICAgIGRvbmU7CiAgICBldmFsIGV4cG9ydCAke1ZBUn09XCR7bmV3XFsqXX0KfQpf Z2NjLWluc3RhbGwtZGlyICgpIAp7IAogICAgZWNobyAiJChMQ19BTEw9QyAkKHRjLWdldENDKSAt cHJpbnQtc2VhcmNoLWRpcnMgMj4gL2Rldi9udWxsIHwJCWF3ayAnJDE9PSJpbnN0YWxsOiIge3By aW50ICQyfScpIgp9Cl9nY2Mtc3BlY3MtZGlyZWN0aXZlX3JhdyAoKSAKeyAKICAgIGxvY2FsIGNj PSQodGMtZ2V0Q0MpOwogICAgbG9jYWwgc3BlY2ZpbGVzPSQoTENfQUxMPUMgJHtjY30gLXYgMj4m MSB8IGF3ayAnJDE9PSJSZWFkaW5nIiB7cHJpbnQgJE5GfScpOwogICAgJHtjY30gLWR1bXBzcGVj cyAyPiAvZGV2L251bGwgfCBjYXQgLSAke3NwZWNmaWxlc30gfCBhd2sgLXYgZGlyZWN0aXZlPSQx ICdCRUdJTgl7IHBzcGVjPSIiOyBzcGVjPSIiOyBvdXRzaWRlPTEgfQokMT09IioiZGlyZWN0aXZl IjoiICB7IHBzcGVjPXNwZWM7IHNwZWM9IiI7IG91dHNpZGU9MDsgbmV4dCB9CglvdXRzaWRlIHx8 IE5GPT0wIHx8ICggc3Vic3RyKCQxLDEsMSk9PSIqIiAmJiBzdWJzdHIoJDEsbGVuZ3RoKCQxKSwx KT09IjoiICkgeyBvdXRzaWRlPTE7IG5leHQgfQoJc3BlYz09IiIgJiYgc3Vic3RyKCQwLDEsMSk9 PSIrIiB7IHNwZWM9cHNwZWMgIiAiIHN1YnN0cigkMCwyKTsgbmV4dCB9Cgl7IHNwZWM9c3BlYyAk MCB9CkVORAl7IHByaW50IHNwZWMgfSc7CiAgICByZXR1cm4gMAp9Cl9nY2Mtc3BlY3MtZXhpc3Rz ICgpIAp7IAogICAgW1sgLWYgJChfZ2NjLWluc3RhbGwtZGlyKS8kMSBdXQp9Cl9nY2NfZnVsbHZl cnNpb24gKCkgCnsgCiAgICBsb2NhbCB2ZXI9IiQxIjsKICAgIHNoaWZ0OwogICAgc2V0IC0tIGAk KHRjLWdldENQUCAiJEAiKSAtRSAtUCAtIDw8PCJfX0dOVUNfXyBfX0dOVUNfTUlOT1JfXyBfX0dO VUNfUEFUQ0hMRVZFTF9fImA7CiAgICBldmFsIGVjaG8gIiR2ZXIiCn0KX2lzX2ZsYWdxICgpIAp7 IAogICAgbG9jYWwgeDsKICAgIGZvciB4IGluICR7ITF9OwogICAgZG8KICAgICAgICBbWyAke3h9 ID09ICQyIF1dICYmIHJldHVybiAwOwogICAgZG9uZTsKICAgIHJldHVybiAxCn0KX3VucGFja190 YXIgKCkgCnsgCiAgICBpZiBbICIke3l9IiA9PSAidGFyIiBdOyB0aGVuCiAgICAgICAgJDEgLWMg LS0gIiRzcmNkaXIkeCIgfCB0YXIgeG9mIC07CiAgICAgICAgYXNzZXJ0X3NpZ3BpcGVfb2sgIiRt eWZhaWwiOwogICAgZWxzZQogICAgICAgICQxIC1jIC0tICIke3NyY2Rpcn0ke3h9IiA+ICR7eCUu Kn0gfHwgZGllICIkbXlmYWlsIjsKICAgIGZpCn0KYXBwZW5kLWNmbGFncyAoKSAKeyAKICAgIFtb IC16ICQqIF1dICYmIHJldHVybiAwOwogICAgZXhwb3J0IENGTEFHUz0iJHtDRkxBR1N9ICQqIjsK ICAgIHJldHVybiAwCn0KYXBwZW5kLWNwcGZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYg cmV0dXJuIDA7CiAgICBleHBvcnQgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICQqIjsKICAgIHJldHVy biAwCn0KYXBwZW5kLWN4eGZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7 CiAgICBleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9ICQqIjsKICAgIHJldHVybiAwCn0KYXBw ZW5kLWZmbGFncyAoKSAKeyAKICAgIFtbIC16ICQqIF1dICYmIHJldHVybiAwOwogICAgZXhwb3J0 IEZGTEFHUz0iJHtGRkxBR1N9ICQqIjsKICAgIGV4cG9ydCBGQ0ZMQUdTPSIke0ZDRkxBR1N9ICQq IjsKICAgIHJldHVybiAwCn0KYXBwZW5kLWZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYg cmV0dXJuIDA7CiAgICBhcHBlbmQtY2ZsYWdzICIkQCI7CiAgICBhcHBlbmQtY3h4ZmxhZ3MgIiRA IjsKICAgIGFwcGVuZC1mZmxhZ3MgIiRAIjsKICAgIHJldHVybiAwCn0KYXBwZW5kLWxkZmxhZ3Mg KCkgCnsgCiAgICBbWyAteiAkKiBdXSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGZsYWc7CiAgICBm b3IgZmxhZyBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAke2ZsYWd9ID09IC1sKiBdXSAmJiBl d2FybiAiQXBwZW5kaW5nIGEgbGlicmFyeSBsaW5rIGluc3RydWN0aW9uICgke2ZsYWd9KTsgbGli cmFyaWVzIHRvIGxpbmsgdG8gc2hvdWxkIG5vdCBiZSBwYXNzZWQgdGhyb3VnaCBMREZMQUdTIjsK ICAgIGRvbmU7CiAgICBleHBvcnQgTERGTEFHUz0iJHtMREZMQUdTfSAkKiI7CiAgICByZXR1cm4g MAp9CmFwcGVuZC1sZnMtZmxhZ3MgKCkgCnsgCiAgICBbWyAtbiAkQCBdXSAmJiBkaWUgImFwcGVu ZC1sZnMtZmxhZ3MgdGFrZXMgbm8gYXJndW1lbnRzIjsKICAgIGFwcGVuZC1jcHBmbGFncyAtRF9G SUxFX09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09V UkNFCn0KYXBwZW5kLWxpYnMgKCkgCnsgCiAgICBbWyAteiAkKiBdXSAmJiByZXR1cm4gMDsKICAg IGxvY2FsIGZsYWc7CiAgICBmb3IgZmxhZyBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAke2Zs YWd9ID09IC1sKiBdXSAmJiBmbGFnPSR7ZmxhZyMtbH07CiAgICAgICAgZXhwb3J0IExJQlM9IiR7 TElCU30gLWwke2ZsYWd9IjsKICAgIGRvbmU7CiAgICByZXR1cm4gMAp9CmF1dG90b29sc19jaGVj a19tYWNybyAoKSAKeyAKICAgIFtbIC1mIGNvbmZpZ3VyZS5hYyB8fCAtZiBjb25maWd1cmUuaW4g XV0gfHwgcmV0dXJuIDA7CiAgICBsb2NhbCBtYWNybzsKICAgIGZvciBtYWNybyBpbiAiJEAiOwog ICAgZG8KICAgICAgICBXQU5UX0FVVE9DT05GPSIyLjUiIGF1dG9jb25mICQoYXV0b3Rvb2xzX200 ZGlyX2luY2x1ZGUpIC0tdHJhY2U9IiR7bWFjcm99IiAyPiAvZGV2L251bGw7CiAgICBkb25lOwog ICAgcmV0dXJuIDAKfQphdXRvdG9vbHNfZW52X3NldHVwICgpIAp7IAogICAgaWYgW1sgJHtXQU5U X0FVVE9NQUtFfSA9PSAibGF0ZXN0IiBdXTsgdGhlbgogICAgICAgIGxvY2FsIHB2OwogICAgICAg IGZvciBwdiBpbiAke19MQVRFU1RfQVVUT01BS0V9OwogICAgICAgIGRvCiAgICAgICAgICAgIFJP T1Q9LyBoYXNfdmVyc2lvbiAiPXN5cy1kZXZlbC9hdXRvbWFrZS0ke3B2fSoiICYmIGV4cG9ydCBX QU5UX0FVVE9NQUtFPSIkcHYiOwogICAgICAgIGRvbmU7CiAgICAgICAgW1sgJHtXQU5UX0FVVE9N QUtFfSA9PSAibGF0ZXN0IiBdXSAmJiBkaWUgIkNhbm5vdCBmaW5kIHRoZSBsYXRlc3QgYXV0b21h a2UhIFRyaWVkICR7X0xBVEVTVF9BVVRPTUFLRX0iOwogICAgZmk7CiAgICBbWyAke1dBTlRfQVVU T0NPTkZ9ID09ICJsYXRlc3QiIF1dICYmIGV4cG9ydCBXQU5UX0FVVE9DT05GPTIuNQp9CmF1dG90 b29sc19nZXRfYXV4ZGlyICgpIAp7IAogICAgbG9jYWwgYXV4ZGlyX3NjYW5fb3V0OwogICAgYXV4 ZGlyX3NjYW5fb3V0PSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdfQVVYX0RJUiIp OwogICAgW1sgLW4gJHthdXhkaXJfc2Nhbl9vdXR9IF1dIHx8IHJldHVybiAwOwogICAgZWNobyAk e2F1eGRpcl9zY2FuX291dH0gfCBnYXdrICcoJDAgIX4gL15bWzpzcGFjZTpdXSooI3xkbmwpLykg ewoJCWlmIChtYXRjaCgkMCwgL0FDX0NPTkZJR19BVVhfRElSOiguKikkLywgcmVzKSkKCQkJcHJp bnQgcmVzWzFdCgl9JyB8IHVuaXE7CiAgICByZXR1cm4gMAp9CmF1dG90b29sc19nZXRfc3ViZGly cyAoKSAKeyAKICAgIGxvY2FsIHN1YmRpcnNfc2Nhbl9vdXQ7CiAgICBzdWJkaXJzX3NjYW5fb3V0 PSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdfU1VCRElSUyIpOwogICAgW1sgLW4g JHtzdWJkaXJzX3NjYW5fb3V0fSBdXSB8fCByZXR1cm4gMDsKICAgIGVjaG8gIiR7c3ViZGlyc19z Y2FuX291dH0iIHwgZ2F3ayAnKCQwICF+IC9eW1s6c3BhY2U6XV0qKCN8ZG5sKS8pIHsKCQlpZiAo bWF0Y2goJDAsIC9BQ19DT05GSUdfU1VCRElSUzooLiopJC8sIHJlcykpCgkJCXByaW50IHJlc1sx XQoJfScgfCB1bmlxOwogICAgcmV0dXJuIDAKfQphdXRvdG9vbHNfbTRkaXJfaW5jbHVkZSAoKSAK eyAKICAgIFtbIC1uICR7QVRfTTRESVJ9IF1dIHx8IHJldHVybjsKICAgIGxvY2FsIGluY2x1ZGVf b3B0cz07CiAgICBmb3IgeCBpbiAke0FUX000RElSfTsKICAgIGRvCiAgICAgICAgY2FzZSAiJHt4 fSIgaW4gCiAgICAgICAgICAgICItSSIpCgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQog ICAgICAgICAgICAgICAgW1sgISAtZCAke3h9IF1dICYmIGV3YXJuICJhdXRvdG9vbHMuZWNsYXNz OiAnJHt4fScgZG9lcyBub3QgZXhpc3QiOwogICAgICAgICAgICAgICAgaW5jbHVkZV9vcHRzPSIk e2luY2x1ZGVfb3B0c30gLUkgJHt4fSIKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAg ZG9uZTsKICAgIGVjaG8gJGluY2x1ZGVfb3B0cwp9CmF1dG90b29sc19ydW5fdG9vbCAoKSAKeyAK ICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAidW5wYWNrIiAmJiAke0VCVUlMRF9QSEFTRX0g IT0gInByZXBhcmUiIF1dOyB0aGVuCiAgICAgICAgZXdhcm4gIlFBIFdhcm5pbmc6IHJ1bm5pbmcg JDEgaW4gJHtFQlVJTERfUEhBU0V9IHBoYXNlIjsKICAgIGZpOwogICAgYXV0b3Rvb2xzX2Vudl9z ZXR1cDsKICAgIGxvY2FsIFNUREVSUl9UQVJHRVQ9IiR7VH0vJDEub3V0IjsKICAgIGlmIFtbIC1l ICR7U1RERVJSX1RBUkdFVH0gXV07IHRoZW4KICAgICAgICBTVERFUlJfVEFSR0VUPSIke1R9LyQx LSQkLm91dCI7CiAgICBmaTsKICAgIHByaW50ZiAiKioqKiogJDEgKioqKipcbioqKioqIFBXRDog JHtQV0R9XG4qKioqKiAkKlxuXG4iID4gIiR7U1RERVJSX1RBUkdFVH0iOwogICAgZWJlZ2luICJS dW5uaW5nICRAIjsKICAgICIkQCIgPj4gIiR7U1RERVJSX1RBUkdFVH0iIDI+JjE7CiAgICBlZW5k ICQ/OwogICAgaWYgW1sgJD8gIT0gMCAmJiAke05PX0ZBSUx9ICE9IDEgXV07IHRoZW4KICAgICAg ICBlY2hvOwogICAgICAgIGVlcnJvciAiRmFpbGVkIFJ1bm5pbmcgJDEgISI7CiAgICAgICAgZWVy cm9yOwogICAgICAgIGVlcnJvciAiSW5jbHVkZSBpbiB5b3VyIGJ1Z3JlcG9ydCB0aGUgY29udGVu dHMgb2Y6IjsKICAgICAgICBlZXJyb3I7CiAgICAgICAgZWVycm9yICIgICR7U1RERVJSX1RBUkdF VH0iOwogICAgICAgIGVjaG87CiAgICAgICAgZGllICJGYWlsZWQgUnVubmluZyAkMSAhIjsKICAg IGZpCn0KYnVpbHRfd2l0aF91c2UgKCkgCnsgCiAgICBsb2NhbCBoaWRkZW49Im5vIjsKICAgIGlm IFtbICQxID09ICItLWhpZGRlbiIgXV07IHRoZW4KICAgICAgICBoaWRkZW49InllcyI7CiAgICAg ICAgc2hpZnQ7CiAgICBmaTsKICAgIGxvY2FsIG1pc3NpbmdfYWN0aW9uPSJkaWUiOwogICAgaWYg W1sgJDEgPT0gIi0tbWlzc2luZyIgXV07IHRoZW4KICAgICAgICBtaXNzaW5nX2FjdGlvbj0kMjsK ICAgICAgICBzaGlmdDsKICAgICAgICBzaGlmdDsKICAgICAgICBjYXNlICR7bWlzc2luZ19hY3Rp b259IGluIAogICAgICAgICAgICB0cnVlIHwgZmFsc2UgfCBkaWUpCgogICAgICAgICAgICA7Owog ICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgZGllICJ1bmtub3duIGFjdGlvbiAnJHttaXNz aW5nX2FjdGlvbn0nIgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBmaTsKICAgIGxv Y2FsIG9wdD0kMTsKICAgIFtbICR7b3B0OjA6MX0gPSAiLSIgXV0gJiYgc2hpZnQgfHwgb3B0PSIt YSI7CiAgICBsb2NhbCBQS0c9JChiZXN0X3ZlcnNpb24gJDEpOwogICAgW1sgLXogJHtQS0d9IF1d ICYmIGRpZSAiVW5hYmxlIHRvIHJlc29sdmUgJDEgdG8gYW4gaW5zdGFsbGVkIHBhY2thZ2UiOwog ICAgc2hpZnQ7CiAgICBsb2NhbCBVU0VGSUxFPSR7Uk9PVH0vdmFyL2RiL3BrZy8ke1BLR30vVVNF OwogICAgbG9jYWwgSVVTRUZJTEU9JHtST09UfS92YXIvZGIvcGtnLyR7UEtHfS9JVVNFOwogICAg aWYgW1sgISAtZSAke1VTRUZJTEV9IF1dIHx8IFtbICEgLWUgJHtJVVNFRklMRX0gJiYgJHtoaWRk ZW59ID09ICJubyIgXV07IHRoZW4KICAgICAgICBjYXNlICR7bWlzc2luZ19hY3Rpb259IGluIAog ICAgICAgICAgICB0cnVlKQogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgOzsK ICAgICAgICAgICAgZmFsc2UpCiAgICAgICAgICAgICAgICByZXR1cm4gMQogICAgICAgICAgICA7 OwogICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAgICBkaWUgIlVuYWJsZSB0byBkZXRlcm1p bmUgd2hhdCBVU0UgZmxhZ3MgJFBLRyB3YXMgYnVpbHQgd2l0aCIKICAgICAgICAgICAgOzsKICAg ICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbWyAke2hpZGRlbn0gPT0gIm5vIiBdXTsgdGhlbgog ICAgICAgIGxvY2FsIElVU0VfQlVJTFQ9KCQoPCIke0lVU0VGSUxFfSIpKTsKICAgICAgICBsb2Nh bCBleHBhbmQ7CiAgICAgICAgZm9yIGV4cGFuZCBpbiAkKGVjaG8gJHtVU0VfRVhQQU5EfSB8IHRy ICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAk MSA9PSAke2V4cGFuZH1fKiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZXhwYW5kPSIiOwogICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICAgICAg aWYgW1sgLW4gJHtleHBhbmR9IF1dOyB0aGVuCiAgICAgICAgICAgIGlmICEgaGFzICQxICR7SVVT RV9CVUlMVFtAXSNbLStdfTsgdGhlbgogICAgICAgICAgICAgICAgY2FzZSAke21pc3NpbmdfYWN0 aW9ufSBpbiAKICAgICAgICAgICAgICAgICAgICB0cnVlKQogICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gMAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZmFs c2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAgICAgICAgICAgIGRpZSAi JFBLRyBkb2VzIG5vdCBhY3R1YWxseSBzdXBwb3J0IHRoZSAkMSBVU0UgZmxhZyEiCiAgICAgICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIGZpOwogICAg ICAgIGZpOwogICAgZmk7CiAgICBsb2NhbCBVU0VfQlVJTFQ9JCg8JHtVU0VGSUxFfSk7CiAgICB3 aGlsZSBbWyAkIyAtZ3QgMCBdXTsgZG8KICAgICAgICBpZiBbWyAke29wdH0gPSAiLW8iIF1dOyB0 aGVuCiAgICAgICAgICAgIGhhcyAkMSAke1VTRV9CVUlMVH0gJiYgcmV0dXJuIDA7CiAgICAgICAg ZWxzZQogICAgICAgICAgICBoYXMgJDEgJHtVU0VfQlVJTFR9IHx8IHJldHVybiAxOwogICAgICAg IGZpOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsKICAgIFtbICR7b3B0fSA9ICItYSIgXV0KfQpj ZHJvbV9nZXRfY2RzICgpIAp7IAogICAgbG9jYWwgY2RjbnQ9MDsKICAgIGxvY2FsIGY9OwogICAg Zm9yIGYgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgZXhwb3J0 IENEUk9NX0NIRUNLXyR7Y2RjbnR9PSIkZiI7CiAgICBkb25lOwogICAgZXhwb3J0IENEUk9NX1RP VEFMX0NEUz0ke2NkY250fTsKICAgIGV4cG9ydCBDRFJPTV9DVVJSRU5UX0NEPTE7CiAgICBpZiBb WyAtbiAke0NEX1JPT1R9JHtDRF9ST09UXzF9IF1dOyB0aGVuCiAgICAgICAgbG9jYWwgdmFyPTsK ICAgICAgICBjZGNudD0wOwogICAgICAgIHdoaWxlIFtbICR7Y2RjbnR9IC1sdCAke0NEUk9NX1RP VEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICgoKytjZGNudCkpOwogICAgICAgICAgICB2YXI9 IkNEX1JPT1RfJHtjZGNudH0iOwogICAgICAgICAgICBbWyAteiAkeyF2YXJ9IF1dICYmIHZhcj0i Q0RfUk9PVCI7CiAgICAgICAgICAgIGlmIFtbIC16ICR7IXZhcn0gXV07IHRoZW4KICAgICAgICAg ICAgICAgIGVlcnJvciAiWW91IG11c3QgZWl0aGVyIHVzZSBqdXN0IHRoZSBDRF9ST09UIjsKICAg ICAgICAgICAgICAgIGVlcnJvciAib3Igc3BlY2lmeSBBTEwgdGhlIENEX1JPT1RfWCB2YXJpYWJs ZXMuIjsKICAgICAgICAgICAgICAgIGVlcnJvciAiSW4gdGhpcyBjYXNlLCB5b3Ugd2lsbCBuZWVk ICR7Q0RST01fVE9UQUxfQ0RTfSBDRF9ST09UX1ggdmFyaWFibGVzLiI7CiAgICAgICAgICAgICAg ICBkaWUgImNvdWxkIG5vdCBsb2NhdGUgQ0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAgICAgIGZp OwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IENEUk9NX1JPT1Q9JHtDRF9ST09UXzE6LSR7 Q0RfUk9PVH19OwogICAgICAgIGVpbmZvICJGb3VuZCBDRCAjJHtDRFJPTV9DVVJSRU5UX0NEfSBy b290IGF0ICR7Q0RST01fUk9PVH0iOwogICAgICAgIGV4cG9ydCBDRFJPTV9TRVQ9LTE7CiAgICAg ICAgZm9yIGYgaW4gJHtDRFJPTV9DSEVDS18xLy86LyB9OwogICAgICAgIGRvCiAgICAgICAgICAg ICgoKytDRFJPTV9TRVQpKTsKICAgICAgICAgICAgW1sgLWUgJHtDRFJPTV9ST09UfS8ke2Z9IF1d ICYmIGJyZWFrOwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IENEUk9NX01BVENIPSR7Zn07 CiAgICAgICAgcmV0dXJuOwogICAgZmk7CiAgICBpZiBbWyAke0NEUk9NX1RPVEFMX0NEU30gLWVx IDEgXV07IHRoZW4KICAgICAgICBlaW5mbyAiVGhpcyBlYnVpbGQgd2lsbCBuZWVkIHRoZSAke0NE Uk9NX05BTUU6LWNkcm9tIGZvciAke1BOfX0iOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8g IklmIHlvdSBkbyBub3QgaGF2ZSB0aGUgQ0QsIGJ1dCBoYXZlIHRoZSBkYXRhIGZpbGVzIjsKICAg ICAgICBlaW5mbyAibW91bnRlZCBzb21ld2hlcmUgb24geW91ciBmaWxlc3lzdGVtLCBqdXN0IGV4 cG9ydCI7CiAgICAgICAgZWluZm8gInRoZSB2YXJpYWJsZSBDRF9ST09UIHNvIHRoYXQgaXQgcG9p bnRzIHRvIHRoZSI7CiAgICAgICAgZWluZm8gImRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxl cy4iOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIkZvciBleGFtcGxlOiI7CiAgICAgICAg ZWluZm8gImV4cG9ydCBDRF9ST09UPS9tbnQvY2Ryb20iOwogICAgICAgIGVjaG87CiAgICBlbHNl CiAgICAgICAgaWYgW1sgLW4gJHtDRFJPTV9OQU1FX1NFVH0gXV07IHRoZW4KICAgICAgICAgICAg Y2RjbnQ9MDsKICAgICAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01fVE9UQUxf Q0RTfSBdXTsgZG8KICAgICAgICAgICAgICAgICgoKytjZGNudCkpOwogICAgICAgICAgICAgICAg ZXhwb3J0IENEUk9NX05BTUVfJHtjZGNudH09IiR7Q0RST01fTkFNRV9TRVRbJCgoJHtjZGNudH0t MSkpXX0iOwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgICAgIGVpbmZvICJUaGlz IHBhY2thZ2Ugd2lsbCBuZWVkIGFjY2VzcyB0byAke0NEUk9NX1RPVEFMX0NEU30gY2RzLiI7CiAg ICAgICAgY2RjbnQ9MDsKICAgICAgICB3aGlsZSBbWyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RB TF9DRFN9IF1dOyBkbwogICAgICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICAgICAgdmFyPSJD RFJPTV9OQU1FXyR7Y2RjbnR9IjsKICAgICAgICAgICAgW1sgISAteiAkeyF2YXJ9IF1dICYmIGVp bmZvICIgQ0QgJHtjZGNudH06ICR7IXZhcn0iOwogICAgICAgIGRvbmU7CiAgICAgICAgZWNobzsK ICAgICAgICBlaW5mbyAiSWYgeW91IGRvIG5vdCBoYXZlIHRoZSBDRHMsIGJ1dCBoYXZlIHRoZSBk YXRhIGZpbGVzIjsKICAgICAgICBlaW5mbyAibW91bnRlZCBzb21ld2hlcmUgb24geW91ciBmaWxl c3lzdGVtLCBqdXN0IGV4cG9ydCI7CiAgICAgICAgZWluZm8gInRoZSBmb2xsb3dpbmcgdmFyaWFi bGVzIHNvIHRoZXkgcG9pbnQgdG8gdGhlIHJpZ2h0IHBsYWNlOiI7CiAgICAgICAgZWluZm9uICIi OwogICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01f VE9UQUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgICAgIGVj aG8gLW4gIiBDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICBkb25lOwogICAgICAgIGVjaG87CiAg ICAgICAgZWluZm8gIk9yLCBpZiB5b3UgaGF2ZSBhbGwgdGhlIGZpbGVzIGluIHRoZSBzYW1lIHBs YWNlLCBvciI7CiAgICAgICAgZWluZm8gInlvdSBvbmx5IGhhdmUgb25lIGNkcm9tLCB5b3UgY2Fu IGV4cG9ydCBDRF9ST09UIjsKICAgICAgICBlaW5mbyAiYW5kIHRoYXQgcGxhY2Ugd2lsbCBiZSB1 c2VkIGFzIHRoZSBzYW1lIGRhdGEgc291cmNlIjsKICAgICAgICBlaW5mbyAiZm9yIGFsbCB0aGUg Q0RzLiI7CiAgICAgICAgZWNobzsKICAgICAgICBlaW5mbyAiRm9yIGV4YW1wbGU6IjsKICAgICAg ICBlaW5mbyAiZXhwb3J0IENEX1JPT1RfMT0vbW50L2Nkcm9tIjsKICAgICAgICBlY2hvOwogICAg Zmk7CiAgICBleHBvcnQgQ0RST01fU0VUPSIiOwogICAgZXhwb3J0IENEUk9NX0NVUlJFTlRfQ0Q9 MDsKICAgIGNkcm9tX2xvYWRfbmV4dF9jZAp9CmNkcm9tX2xvYWRfbmV4dF9jZCAoKSAKeyAKICAg IGxvY2FsIHZhcjsKICAgICgoKytDRFJPTV9DVVJSRU5UX0NEKSk7CiAgICB1bnNldCBDRFJPTV9S T09UOwogICAgdmFyPUNEX1JPT1RfJHtDRFJPTV9DVVJSRU5UX0NEfTsKICAgIFtbIC16ICR7IXZh cn0gXV0gJiYgdmFyPSJDRF9ST09UIjsKICAgIGlmIFtbIC16ICR7IXZhcn0gXV07IHRoZW4KICAg ICAgICB2YXI9IkNEUk9NX0NIRUNLXyR7Q0RST01fQ1VSUkVOVF9DRH0iOwogICAgICAgIF9jZHJv bV9sb2NhdGVfZmlsZV9vbl9jZCAkeyF2YXJ9OwogICAgZWxzZQogICAgICAgIGV4cG9ydCBDRFJP TV9ST09UPSR7IXZhcn07CiAgICBmaTsKICAgIGVpbmZvICJGb3VuZCBDRCAjJHtDRFJPTV9DVVJS RU5UX0NEfSByb290IGF0ICR7Q0RST01fUk9PVH0iCn0KY2hlY2tfbGljZW5zZSAoKSAKeyAKICAg IGxvY2FsIGxpYz0kMTsKICAgIGlmIFsgLXogIiR7bGljfSIgXTsgdGhlbgogICAgICAgIGxpYz0i JHtQT1JURElSfS9saWNlbnNlcy8ke0xJQ0VOU0V9IjsKICAgIGVsc2UKICAgICAgICBpZiBbIC1l ICIke1BPUlRESVJ9L2xpY2Vuc2VzLyR7bGljfSIgXTsgdGhlbgogICAgICAgICAgICBsaWM9IiR7 UE9SVERJUn0vbGljZW5zZXMvJHtsaWN9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFsg LWUgIiR7UFdEfS8ke2xpY30iIF07IHRoZW4KICAgICAgICAgICAgICAgIGxpYz0iJHtQV0R9LyR7 bGljfSI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFsgLWUgIiR7bGljfSIg XTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGxpYz0iJHtsaWN9IjsKICAgICAgICAgICAgICAg IGZpOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGZpOwogICAgbG9jYWwgbD0iYGJh c2VuYW1lICR7bGljfWAiOwogICAgbG9jYWwgYWxpYzsKICAgIGVzaG9wdHNfcHVzaCAtbyBub2ds b2I7CiAgICBmb3IgYWxpYyBpbiAke0FDQ0VQVF9MSUNFTlNFfTsKICAgIGRvCiAgICAgICAgaWYg W1sgJHthbGljfSA9PSAke2x9IF1dOyB0aGVuCiAgICAgICAgICAgIGVzaG9wdHNfcG9wOwogICAg ICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBlc2hvcHRzX3BvcDsK ICAgIFsgISAtZiAiJHtsaWN9IiBdICYmIGRpZSAiQ291bGQgbm90IGZpbmQgcmVxdWVzdGVkIGxp Y2Vuc2UgJHtsaWN9IjsKICAgIGxvY2FsIGxpY21zZz0kKGVta3RlbXApOwogICAgY2F0ID4gJHts aWNtc2d9ICA8PC1FT0YKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgpUaGUgZm9sbG93aW5nIGxpY2Vuc2Ugb3V0bGluZXMgdGhlIHRlcm1z IG9mIHVzZSBvZiB0aGlzCnBhY2thZ2UuICBZb3UgTVVTVCBhY2NlcHQgdGhpcyBsaWNlbnNlIGZv ciBpbnN0YWxsYXRpb24gdG8KY29udGludWUuICBXaGVuIHlvdSBhcmUgZG9uZSB2aWV3aW5nLCBo aXQgJ3EnLglJZiB5b3UKQ1RSTCtDIG91dCBvZiB0aGlzLCB0aGUgaW5zdGFsbCB3aWxsIG5vdCBy dW4hCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKCkVPRgoKICAgIGNhdCAke2xpY30gPj4gJHtsaWNtc2d9OwogICAgJHtQQUdFUjotbGVz c30gJHtsaWNtc2d9IHx8IGRpZSAiQ291bGQgbm90IGV4ZWN1dGUgcGFnZXIgKCR7UEFHRVJ9KSB0 byBhY2NlcHQgJHtsaWN9IjsKICAgIGVpbmZvbiAiRG8geW91IGFjY2VwdCB0aGUgdGVybXMgb2Yg dGhpcyBsaWNlbnNlICgke2x9KT8gW3llcy9ub10gIjsKICAgIHJlYWQgYWxpYzsKICAgIGNhc2Ug JHthbGljfSBpbiAKICAgICAgICB5ZXMgfCBZZXMgfCB5IHwgWSkKICAgICAgICAgICAgcmV0dXJu IDAKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVj aG87CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVlcnJvciAiWW91IE1VU1QgYWNjZXB0 IHRoZSBsaWNlbnNlIHRvIGNvbnRpbnVlISAgRXhpdGluZyEiOwogICAgICAgICAgICBkaWUgIkZh aWxlZCB0byBhY2NlcHQgbGljZW5zZSIKICAgICAgICA7OwogICAgZXNhYwp9CmNsZWFucGFtZCAo KSAKeyAKICAgIHdoaWxlIFtbIC1uICQxIF1dOyBkbwogICAgICAgIGlmICEgaGFzX3ZlcnNpb24g c3lzLWxpYnMvcGFtOyB0aGVuCiAgICAgICAgICAgIHNlZCAtaSAtZSAnL3BhbV9zaGVsbHNcfHBh bV9jb25zb2xlL3M6XjojOicgIiR7RH0vZXRjL3BhbS5kLyQxIjsKICAgICAgICBmaTsKICAgICAg ICBzaGlmdDsKICAgIGRvbmUKfQpkYXJ3aW50b29saXplICgpIAp7IAogICAgZGllICJVc2UgZWxp YnRvb2xpemUiCn0KZGxvcGVuX2xpYiAoKSAKeyAKICAgIGNhc2UgIiR7Q0hPU1R9IiBpbiAKICAg ICAgICAqLWxpbnV4LWdudSogfCAqLWxpbnV4LXVjbGliYyB8ICotaW50ZXJpeCopCiAgICAgICAg ICAgIGVjaG8gIi1sZGwiCiAgICAgICAgOzsKICAgIGVzYWMKfQpkb2ljb24gKCkgCnsgCiAgICAo IGxvY2FsIGkgaiByZXQ7CiAgICBpbnNpbnRvIC91c3Ivc2hhcmUvcGl4bWFwczsKICAgIGZvciBp IGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1mICR7aX0gXV07IHRoZW4KICAgICAgICAg ICAgZG9pbnMgIiR7aX0iOwogICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICBlbHNlCiAg ICAgICAgICAgIGlmIFtbIC1kICR7aX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGZvciBqIGlu ICIke2l9Ii8qLnBuZzsKICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgZG9p bnMgIiR7an0iOwogICAgICAgICAgICAgICAgICAgICgocmV0Kz0kPykpOwogICAgICAgICAgICAg ICAgZG9uZTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgKCgrK3JldCkpOwogICAg ICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBleGl0ICR7cmV0fSApCn0KZG9t ZW51ICgpIAp7IAogICAgKCBsb2NhbCBpIGogcmV0PTA7CiAgICBpbnNpbnRvIC91c3Ivc2hhcmUv YXBwbGljYXRpb25zOwogICAgZm9yIGkgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgaWYgW1sgLWYg JHtpfSBdXTsgdGhlbgogICAgICAgICAgICBkb2lucyAiJHtpfSI7CiAgICAgICAgICAgICgocmV0 Kz0kPykpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWQgJHtpfSBdXTsgdGhlbgog ICAgICAgICAgICAgICAgZm9yIGogaW4gIiR7aX0iLyouZGVza3RvcDsKICAgICAgICAgICAgICAg IGRvCiAgICAgICAgICAgICAgICAgICAgZG9pbnMgIiR7an0iOwogICAgICAgICAgICAgICAgICAg ICgocmV0Kz0kPykpOwogICAgICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgKCgrK3JldCkpOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGRv bmU7CiAgICBleGl0ICR7cmV0fSApCn0KZG9wYW1kICgpIAp7IAogICAgW1sgLXogJDEgXV0gJiYg ZGllICJkb3BhbWQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IjsKICAgIGlmIGhhc3Eg cGFtICR7SVVTRX0gJiYgISB1c2UgcGFtOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsK ICAgICggaW5zaW50byAvZXRjL3BhbS5kOwogICAgaW5zb3B0cyAtbSAwNjQ0OwogICAgZG9pbnMg IiRAIiApIHx8IGRpZSAiZmFpbGVkIHRvIGluc3RhbGwgJEAiOwogICAgY2xlYW5wYW1kICIkQCIK fQpkb3BhbW1vZCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIGRpZSAiZG9wYW1tb2QgcmVxdWly ZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IjsKICAgIGlmIGhhc3EgcGFtICR7SVVTRX0gJiYgISB1 c2UgcGFtOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGV4ZWludG8gJChnZXRw YW1fbW9kX2Rpcik7CiAgICBkb2V4ZSAiJEAiIHx8IGRpZSAiZmFpbGVkIHRvIGluc3RhbGwgJEAi Cn0KZG9wYW1zZWN1cml0eSAoKSAKeyAKICAgIFtbICQjIC1sdCAyIF1dICYmIGRpZSAiZG9wYW1z ZWN1cml0eSByZXF1aXJlcyBhdCBsZWFzdCB0d28gYXJndW1lbnRzIjsKICAgIGlmIGhhc3EgcGFt ICR7SVVTRX0gJiYgISB1c2UgcGFtOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAg ICggaW5zaW50byAvZXRjL3NlY3VyaXR5LyQxOwogICAgaW5zb3B0cyAtbSAwNjQ0OwogICAgZG9p bnMgIiR7QDoyfSIgKSB8fCBkaWUgImZhaWxlZCB0byBpbnN0YWxsICR7QDoyfSIKfQpkeW5fcHJl dGVuZCAoKSAKeyAKICAgIGlmIFtbIC1lICRQT1JUQUdFX0JVSUxERElSLy5wcmV0ZW5kZWQgXV07 IHRoZW4KICAgICAgICB2ZWNobyAiPj4+IEl0IGFwcGVhcnMgdGhhdCAnJFBGJyBpcyBhbHJlYWR5 IHByZXRlbmRlZDsgc2tpcHBpbmcuIjsKICAgICAgICB2ZWNobyAiPj4+IFJlbW92ZSAnJFBPUlRB R0VfQlVJTERESVIvLnByZXRlbmRlZCcgdG8gZm9yY2UgcHJldGVuZC4iOwogICAgICAgIHJldHVy biAwOwogICAgZmk7CiAgICBlYnVpbGRfcGhhc2UgcHJlX3BrZ19wcmV0ZW5kOwogICAgZWJ1aWxk X3BoYXNlIHBrZ19wcmV0ZW5kOwogICAgID4+ICIkUE9SVEFHRV9CVUlMRERJUi8ucHJldGVuZGVk IiB8fCBkaWUgIkZhaWxlZCB0byBjcmVhdGUgJFBPUlRBR0VfQlVJTERESVIvLnByZXRlbmRlZCI7 CiAgICBlYnVpbGRfcGhhc2UgcG9zdF9wa2dfcHJldGVuZAp9CmVhY2xvY2FsICgpIAp7IAogICAg bG9jYWwgYWNsb2NhbF9vcHRzOwogICAgbG9jYWwgYW1mbGFnc19maWxlOwogICAgZm9yIGFtZmxh Z3NfZmlsZSBpbiBHTlVtYWtlZmlsZS5hbSBNYWtlZmlsZS5hbSBHTlVtYWtlZmlsZS5pbiBNYWtl ZmlsZS5pbjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHthbWZsYWdzX2ZpbGV9IF1dIHx8IGNvbnRp bnVlOwogICAgICAgIGF1dG90b29sc19lbnZfc2V0dXA7CiAgICAgICAgYWNsb2NhbF9vcHRzPSQo c2VkIC1uICcvXkFDTE9DQUxfQU1GTEFHU1tbOnNwYWNlOl1dKj0vczpbXj1dKj06OnAnICR7YW1m bGFnc19maWxlfSk7CiAgICAgICAgZXZhbCBhY2xvY2FsX29wdHM9XCIke2FjbG9jYWxfb3B0c31c IjsKICAgICAgICBicmVhazsKICAgIGRvbmU7CiAgICBbWyAhIC1mIGFjbG9jYWwubTQgfHwgLW4g JChncmVwIC1lICdnZW5lcmF0ZWQuKmJ5IGFjbG9jYWwnIGFjbG9jYWwubTQpIF1dICYmIGF1dG90 b29sc19ydW5fdG9vbCBhY2xvY2FsICQoYXV0b3Rvb2xzX200ZGlyX2luY2x1ZGUpICIkQCIgJHth Y2xvY2FsX29wdHN9Cn0KZWF1dG9jb25mICgpIAp7IAogICAgaWYgW1sgISAtZiBjb25maWd1cmUu YWMgJiYgISAtZiBjb25maWd1cmUuaW4gXV07IHRoZW4KICAgICAgICBlY2hvOwogICAgICAgIGVl cnJvciAiTm8gY29uZmlndXJlLnthYyxpbn0gcHJlc2VudCBpbiAnJHtQV0R9JyEiOwogICAgICAg IGVjaG87CiAgICAgICAgZGllICJObyBjb25maWd1cmUue2FjLGlufSBwcmVzZW50ISI7CiAgICBm aTsKICAgIGF1dG90b29sc19ydW5fdG9vbCBhdXRvY29uZiAkKGF1dG90b29sc19tNGRpcl9pbmNs dWRlKSAiJEAiCn0KZWF1dG9oZWFkZXIgKCkgCnsgCiAgICBbWyAtbiAkKGF1dG90b29sc19jaGVj a19tYWNybyAiQUNfQ09ORklHX0hFQURFUlMiKSBdXSB8fCByZXR1cm4gMDsKICAgIE5PX0ZBSUw9 MSBhdXRvdG9vbHNfcnVuX3Rvb2wgYXV0b2hlYWRlciAkKGF1dG90b29sc19tNGRpcl9pbmNsdWRl KSAiJEAiCn0KZWF1dG9tYWtlICgpIAp7IAogICAgbG9jYWwgZXh0cmFfb3B0czsKICAgIGxvY2Fs IG1ha2VmaWxlX25hbWU7CiAgICBmb3IgbWFrZWZpbGVfbmFtZSBpbiB7R05VbWFrZWZpbGUse00s bX1ha2VmaWxlfS57YW0saW59ICIiOwogICAgZG8KICAgICAgICBbWyAtZiAke21ha2VmaWxlX25h bWV9IF1dICYmIGJyZWFrOwogICAgZG9uZTsKICAgIFtbIC16ICR7bWFrZWZpbGVfbmFtZX0gXV0g JiYgcmV0dXJuIDA7CiAgICBpZiBbWyAke21ha2VmaWxlX25hbWV9ID09ICouaW4gXV07IHRoZW4K ICAgICAgICBpZiAhIGdyZXAgLXFzIEFNX0lOSVRfQVVUT01BS0UgY29uZmlndXJlLj8/OyB0aGVu CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGlmIFtb IC16ICR7RlJPTV9FQVVUT1JFQ09ORn0gJiYgLWYgJHttYWtlZmlsZV9uYW1lJS5hbX0uaW4gXV07 IHRoZW4KICAgICAgICAgICAgbG9jYWwgdXNlZF9hdXRvbWFrZTsKICAgICAgICAgICAgbG9jYWwg aW5zdGFsbGVkX2F1dG9tYWtlOwogICAgICAgICAgICBpbnN0YWxsZWRfYXV0b21ha2U9JChXQU5U X0FVVE9NQUtFPSBhdXRvbWFrZSAtLXZlcnNpb24gfCBoZWFkIC1uIDEgfCAJCQlzZWQgLWUgJ3M6 LiooR05VIGF1dG9tYWtlKSA6OicpOwogICAgICAgICAgICB1c2VkX2F1dG9tYWtlPSQoaGVhZCAt biAxIDwgJHttYWtlZmlsZV9uYW1lJS5hbX0uaW4gfCAJCQlzZWQgLWUgJ3M6LipieSBhdXRvbWFr ZSBcKC4qXCkgZnJvbSAuKjpcMTonKTsKICAgICAgICAgICAgaWYgW1sgJHtpbnN0YWxsZWRfYXV0 b21ha2V9ICE9ICR7dXNlZF9hdXRvbWFrZX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGVpbmZv ICJBdXRvbWFrZSB1c2VkIGZvciB0aGUgcGFja2FnZSAoJHt1c2VkX2F1dG9tYWtlfSkgZGlmZmVy cyBmcm9tIjsKICAgICAgICAgICAgICAgIGVpbmZvICJ0aGUgaW5zdGFsbGVkIHZlcnNpb24gKCR7 aW5zdGFsbGVkX2F1dG9tYWtlfSkuIjsKICAgICAgICAgICAgICAgIGVhdXRvcmVjb25mOwogICAg ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7 CiAgICBbWyAtZiBJTlNUQUxMICYmIC1mIEFVVEhPUlMgJiYgLWYgQ2hhbmdlTG9nICYmIC1mIE5F V1MgXV0gfHwgZXh0cmFfb3B0cz0iJHtleHRyYV9vcHRzfSAtLWZvcmVpZ24iOwogICAgYXV0b3Rv b2xzX3J1bl90b29sIGF1dG9tYWtlIC0tYWRkLW1pc3NpbmcgLS1jb3B5ICR7ZXh0cmFfb3B0c30g IiRAIgp9CmVhdXRvcG9pbnQgKCkgCnsgCiAgICBhdXRvdG9vbHNfcnVuX3Rvb2wgYXV0b3BvaW50 ICIkQCIKfQplYXV0b3JlY29uZiAoKSAKeyAKICAgIGxvY2FsIHggYXV4ZGlyIGc7CiAgICBpZiBb WyAteiAke0FUX05PX1JFQ1VSU0lWRX0gXV07IHRoZW4KICAgICAgICBmb3IgeCBpbiAkKGF1dG90 b29sc19nZXRfc3ViZGlycyk7CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sgLWQgJHt4fSBd XTsgdGhlbgogICAgICAgICAgICAgICAgcHVzaGQgIiR7eH0iID4gL2Rldi9udWxsOwogICAgICAg ICAgICAgICAgQVRfTk9FTElCVE9PTElaRT0ieWVzIiBlYXV0b3JlY29uZjsKICAgICAgICAgICAg ICAgIHBvcGQgPiAvZGV2L251bGw7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICBm aTsKICAgIGF1eGRpcj0kKGF1dG90b29sc19nZXRfYXV4ZGlyKTsKICAgIGVpbmZvICJSdW5uaW5n IGVhdXRvcmVjb25mIGluICcke1BXRH0nIC4uLiI7CiAgICBbWyAtbiAke2F1eGRpcn0gXV0gJiYg bWtkaXIgLXAgJHthdXhkaXJ9OwogICAgZWFjbG9jYWw7CiAgICBbWyAke0NIT1NUfSA9PSAqLWRh cndpbiogXV0gJiYgZz1nOwogICAgaWYgJHtMSUJUT09MSVpFOi0ke2d9bGlidG9vbGl6ZX0gLW4g LS1pbnN0YWxsICY+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgX2VsaWJ0b29saXplIC0tY29weSAt LWZvcmNlIC0taW5zdGFsbDsKICAgIGVsc2UKICAgICAgICBfZWxpYnRvb2xpemUgLS1jb3B5IC0t Zm9yY2U7CiAgICBmaTsKICAgIGVhdXRvY29uZjsKICAgIGVhdXRvaGVhZGVyOwogICAgRlJPTV9F QVVUT1JFQ09ORj0ieWVzIiBlYXV0b21ha2UgJHtBTV9PUFRTfTsKICAgIFtbICR7QVRfTk9FTElC VE9PTElaRX0gPT0gInllcyIgXV0gJiYgcmV0dXJuIDA7CiAgICBTPSR7UFdEfSBlbGlidG9vbGl6 ZTsKICAgIHJldHVybiAwCn0KZWJlZXAgKCkgCnsgCiAgICBsb2NhbCBuOwogICAgaWYgW1sgLXog JHtFQkVFUF9JR05PUkV9IF1dOyB0aGVuCiAgICAgICAgZm9yICgobj0xIDsgbiA8PSAkezE6LTV9 IDsgbisrKSkKICAgICAgICBkbwogICAgICAgICAgICBlY2hvIC1uZSAiXGEiOwogICAgICAgICAg ICBzbGVlcCAwLjEgJj4vZGV2L251bGw7CiAgICAgICAgICAgIHNsZWVwIDAsMSAmPi9kZXYvbnVs bDsKICAgICAgICAgICAgZWNobyAtbmUgIlxhIjsKICAgICAgICAgICAgc2xlZXAgMTsKICAgICAg ICBkb25lOwogICAgZmkKfQplY3ZzX2NsZWFuICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgc2V0 IC0tIC47CiAgICBmaW5kICIkQCIgLXR5cGUgZCAtbmFtZSAnQ1ZTJyAtcHJ1bmUgLXByaW50MCB8 IHhhcmdzIC0wIHJtIC1yZjsKICAgIGZpbmQgIiRAIiAtdHlwZSBmIC1uYW1lICcuY3ZzKicgLXBy aW50MCB8IHhhcmdzIC0wIHJtIC1yZgp9CmVkb3MydW5peCAoKSAKeyAKICAgIGVjaG8gIiRAIiB8 IHhhcmdzIHNlZCAtaSAncy9cciQvLycKfQplZ2V0ZW50ICgpIAp7IAogICAgY2FzZSAke0NIT1NU fSBpbiAKICAgICAgICAqLWRhcndpbls2NzhdKQogICAgICAgICAgICBjYXNlICIkMiIgaW4gCiAg ICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBuaWR1bXAgJDEgLiB8 IGF3ayAtRiI6IiAieyBpZiAoXCQxIH4gL14kMlwkLykge3ByaW50IFwkMDtleGl0O30gfSIKICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgICAgIG5p ZHVtcCAkMSAuIHwgYXdrIC1GIjoiICJ7IGlmIChcJDMgPT0gJDIpIHtwcmludCBcJDA7ZXhpdDt9 IH0iCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2FjCiAgICAgICAgOzsKICAgICAg ICAqLWRhcndpbiopCiAgICAgICAgICAgIGxvY2FsIG15dHlwZT0kMTsKICAgICAgICAgICAgW1sg InBhc3N3ZCIgPT0gJG15dHlwZSBdXSAmJiBteXR5cGU9IlVzZXJzIjsKICAgICAgICAgICAgW1sg Imdyb3VwIiA9PSAkbXl0eXBlIF1dICYmIG15dHlwZT0iR3JvdXBzIjsKICAgICAgICAgICAgY2Fz ZSAiJDIiIGluIAogICAgICAgICAgICAgICAgKlshMC05XSopCiAgICAgICAgICAgICAgICAgICAg ZHNjbCAuIC1yZWFkIC8kbXl0eXBlLyQyIDI+IC9kZXYvbnVsbCB8IGdyZXAgUmVjb3JkTmFtZQog ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAg bG9jYWwgbXlrZXk9IlVuaXF1ZUlEIjsKICAgICAgICAgICAgICAgICAgICBbWyAkbXl0eXBlID09 ICJHcm91cHMiIF1dICYmIG15a2V5PSJQcmltYXJ5R3JvdXBJRCI7CiAgICAgICAgICAgICAgICAg ICAgZHNjbCAuIC1zZWFyY2ggLyRteXR5cGUgJG15a2V5ICQyIDI+IC9kZXYvbnVsbAogICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYwogICAgICAgIDs7CiAgICAgICAgKi1mcmVlYnNk KiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgbG9jYWwgb3B0cyBhY3Rpb249InVzZXIiOwog ICAgICAgICAgICBbWyAkMSA9PSAicGFzc3dkIiBdXSB8fCBhY3Rpb249Imdyb3VwIjsKICAgICAg ICAgICAgaWYgW1sgJDIgPT0gW1s6ZGlnaXQ6XV0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBb WyAke2FjdGlvbn0gPT0gInVzZXIiIF1dICYmIG9wdHM9Ii11IiB8fCBvcHRzPSItZyI7CiAgICAg ICAgICAgIGZpOwogICAgICAgICAgICBwdyBzaG93ICR7YWN0aW9ufSAke29wdHN9ICIkMiIgLXEK ICAgICAgICA7OwogICAgICAgICotbmV0YnNkKiB8ICotb3BlbmJzZCopCiAgICAgICAgICAgIGdy ZXAgIiQyOlwqOiIgL2V0Yy8kMQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgdHlw ZSAtcCBuc2NkICY+L2Rldi9udWxsICYmIG5zY2QgLWkgIiQxIjsKICAgICAgICAgICAgZ2V0ZW50 ICIkMSIgIiQyIgogICAgICAgIDs7CiAgICBlc2FjCn0KZWdldGhvbWUgKCkgCnsgCiAgICBlbnQ9 JChlZ2V0ZW50IHBhc3N3ZCAkMSk7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotZGFy d2luKiB8ICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGVjaG8gJHtlbnR9 IHwgY3V0IC1kOiAtZjkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gJHtl bnR9IHwgY3V0IC1kOiAtZjYKICAgICAgICA7OwogICAgZXNhYwp9CmVnZXRzaGVsbCAoKSAKeyAK ICAgIGVudD0kKGVnZXRlbnQgcGFzc3dkICIkMSIpOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAg ICAgICAqLWRhcndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBl Y2hvICR7ZW50fSB8IGN1dCAtZDogLWYxMAogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAg ICAgZWNobyAke2VudH0gY3V0IC1kOiAtZjcKICAgICAgICA7OwogICAgZXNhYwp9CmVsaWJ0b29s aXplICgpIAp7IAogICAgbG9jYWwgeDsKICAgIGxvY2FsIGRvX3BvcnRhZ2U9Im5vIjsKICAgIGxv Y2FsIGRvX3JldmVyc2VkZXBzPSJubyI7CiAgICBsb2NhbCBkb19vbmx5X3BhdGNoZXM9Im5vIjsK ICAgIGxvY2FsIGRvX3VjbGliYz0ieWVzIjsKICAgIGxvY2FsIGRlcHRvcmVtb3ZlPTsKICAgIGxv Y2FsIGRvX3NoYWxsb3c9Im5vIjsKICAgIGxvY2FsIGVsdF9wYXRjaGVzPSJpbnN0YWxsLXNoIGx0 bWFpbiBwb3J0YWdlIHJlbGluayBtYXhfY21kX2xlbiBzZWQgdGVzdCB0bXAgY3Jvc3MgYXMtbmVl ZGVkIjsKICAgIGZvciB4IGluICIkQCI7CiAgICBkbwogICAgICAgIGNhc2UgJHt4fSBpbiAKICAg ICAgICAgICAgLS1wb3J0YWdlKQogICAgICAgICAgICAgICAgZG9fcG9ydGFnZT0ieWVzIgogICAg ICAgICAgICA7OwogICAgICAgICAgICAtLXJldmVyc2UtZGVwcykKICAgICAgICAgICAgICAgIGRv X3JldmVyc2VkZXBzPSJ5ZXMiOwogICAgICAgICAgICAgICAgZWx0X3BhdGNoZXMrPSIgZml4LXJl bGluayIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgLS1wYXRjaC1vbmx5KQogICAgICAgICAg ICAgICAgZG9fb25seV9wYXRjaGVzPSJ5ZXMiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIC0t cmVtb3ZlLWludGVybmFsLWRlcD0qKQogICAgICAgICAgICAgICAgZGVwdG9yZW1vdmU9JHt4Iy0t cmVtb3ZlLWludGVybmFsLWRlcD19OwogICAgICAgICAgICAgICAgW1sgLW4gJHtkZXB0b3JlbW92 ZX0gXV0gJiYgZWx0X3BhdGNoZXMrPSIgcmVtLWludC1kZXAiCiAgICAgICAgICAgIDs7CiAgICAg ICAgICAgIC0tc2hhbGxvdykKICAgICAgICAgICAgICAgIGRvX3NoYWxsb3c9InllcyIKICAgICAg ICAgICAgOzsKICAgICAgICAgICAgLS1uby11Y2xpYmMpCiAgICAgICAgICAgICAgICBkb191Y2xp YmM9Im5vIgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgZWVy cm9yICJJbnZhbGlkIGVsaWJ0b29saXplIG9wdGlvbjogJHt4fSI7CiAgICAgICAgICAgICAgICBk aWUgImVsaWJ0b29saXplIGNhbGxlZCB3aXRoICR7eH0gPz8iCiAgICAgICAgICAgIDs7CiAgICAg ICAgZXNhYzsKICAgIGRvbmU7CiAgICBbWyAke2RvX3VjbGliY30gPT0gInllcyIgXV0gJiYgZWx0 X3BhdGNoZXMrPSIgdWNsaWJjLWNvbmYgdWNsaWJjLWx0Y29uZiI7CiAgICBjYXNlICR7Q0hPU1R9 IGluIAogICAgICAgICotYWl4KikKICAgICAgICAgICAgZWx0X3BhdGNoZXMrPSIgaGFyZGNvZGUg YWl4cnRsIGFpeC1ub3VuZGVmIgogICAgICAgIDs7CiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAg ICAgICBlbHRfcGF0Y2hlcys9IiBkYXJ3aW4tbHRjb25mIGRhcndpbi1sdG1haW4gZGFyd2luLWNv bmYiCiAgICAgICAgOzsKICAgICAgICAqLWZyZWVic2QqKQogICAgICAgICAgICBlbHRfcGF0Y2hl cys9IiBmYnNkLWNvbmYgZmJzZC1sdGNvbmYiCiAgICAgICAgOzsKICAgICAgICAqLWhwdXgqKQog ICAgICAgICAgICBlbHRfcGF0Y2hlcys9IiBocHV4LWNvbmYgZGVwbGlicyBoYy1mbGFnLWxkIGhh cmRjb2RlIGhhcmRjb2RlLXJlbGluayByZWxpbmstcHJvZyBuby1sYyIKICAgICAgICA7OwogICAg ICAgICotaXJpeCopCiAgICAgICAgICAgIGVsdF9wYXRjaGVzKz0iIGlyaXgtbHRtYWluIgogICAg ICAgIDs7CiAgICAgICAgKi1taW50KikKICAgICAgICAgICAgZWx0X3BhdGNoZXMrPSIgbWludC1j b25mIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgJCh0Yy1nZXRMRCkgLS12ZXJzaW9uIDI+ JjEgfCBncmVwIC1xcyAnR05VIGdvbGQnOyB0aGVuCiAgICAgICAgZWx0X3BhdGNoZXMrPSIgZ29s ZC1jb25mIjsKICAgIGZpOwogICAgc2V0IC0tOwogICAgaWYgW1sgJHtkb19zaGFsbG93fSA9PSAi eWVzIiBdXTsgdGhlbgogICAgICAgIFtbIC1mICR7U30vbHRtYWluLnNoIF1dICYmIHNldCAtLSAi JHtTfSI7CiAgICBlbHNlCiAgICAgICAgc2V0IC0tICQoZmluZCAiJHtTfSIgLW5hbWUgbHRtYWlu LnNoIC1wcmludGYgJyVoICcpOwogICAgZmk7CiAgICBsb2NhbCBkIHA7CiAgICBmb3IgZCBpbiAi JEAiOwogICAgZG8KICAgICAgICBleHBvcnQgRUxUX0FQUExJRURfUEFUQ0hFUz07CiAgICAgICAg W1sgLWYgJHtkfS8uZWxpYnRvb2xpemVkIF1dICYmIGNvbnRpbnVlOwogICAgICAgIGVpbmZvICJS dW5uaW5nIGVsaWJ0b29saXplIGluOiAke2QjJHtXT1JLRElSfS99LyI7CiAgICAgICAgZm9yIHAg aW4gJHtlbHRfcGF0Y2hlc307CiAgICAgICAgZG8KICAgICAgICAgICAgbG9jYWwgcmV0PTA7CiAg ICAgICAgICAgIGNhc2UgJHtwfSBpbiAKICAgICAgICAgICAgICAgIHBvcnRhZ2UpCiAgICAgICAg ICAgICAgICAgICAgaWYgISBncmVwIC1xcyAnV2UgZG8gbm90IHdhbnQgcG9ydGFnZScgIiR7ZH0v bHRtYWluLnNoIjsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVz ICIke2R9L2x0bWFpbi5zaCIgIiR7cH0iOwogICAgICAgICAgICAgICAgICAgICAgICByZXQ9JD87 CiAgICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAg ICByZW0taW50LWRlcCkKICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke2R9 L2x0bWFpbi5zaCIgIiR7cH0iICIke2RlcHRvcmVtb3ZlfSI7CiAgICAgICAgICAgICAgICAgICAg cmV0PSQ/CiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZml4LXJlbGluaykKICAg ICAgICAgICAgICAgICAgICBpZiBncmVwIC1xcyAnaW5zdF9wcmVmaXhfZGlyJyAiJHtkfS9sdG1h aW4uc2giOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7 ZH0vbHRtYWluLnNoIiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0kPzsKICAg ICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIG1h eF9jbWRfbGVuKQogICAgICAgICAgICAgICAgICAgIGlmIGdyZXAgLXFzICdtYXhfY21kX2xlbicg IiR7ZH0vbHRtYWluLnNoIjsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19w YXRjaGVzICIke2R9L2x0bWFpbi5zaCIgIiR7cH0iOwogICAgICAgICAgICAgICAgICAgICAgICBy ZXQ9JD87CiAgICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgIDs7CiAgICAgICAg ICAgICAgICBhcy1uZWVkZWQpCiAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAi JHtkfS9sdG1haW4uc2giICIke3B9IjsKICAgICAgICAgICAgICAgICAgICByZXQ9JD8KICAgICAg ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICB1Y2xpYmMtY29uZikKICAgICAgICAgICAgICAg ICAgICBpZiBncmVwIC1xcyAnVHJhbnNmb3JtIGxpbnV4JyAiJHtkfS9jb25maWd1cmUiOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7ZH0vY29uZmlndXJl IiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbICEgLWUgJHtkfS9jb25maWd1 cmUgXV0gJiYgZ3JlcCAtcXMgJ1RyYW5zZm9ybSBsaW51eCcgIiR7ZH0vLi4vY29uZmlndXJlIjsg dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS8u Li9jb25maWd1cmUiICIke3B9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldD0kPzsK ICAgICAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICAgICAgZmkKICAgICAg ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICB1Y2xpYmMtbHRjb25mKQogICAgICAgICAgICAg ICAgICAgIGlmIFtbIC1zICR7ZH0vbHRjb25maWcgXV07IHRoZW4KICAgICAgICAgICAgICAgICAg ICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS9sdGNvbmZpZyIgIiR7cH0iOwogICAgICAgICAg ICAgICAgICAgICAgICByZXQ9JD87CiAgICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICBmYnNkLWNvbmYpCiAgICAgICAgICAgICAgICAgICAgaWYg Z3JlcCAtcXMgJ3ZlcnNpb25fdHlwZT1mcmVlYnNkLScgIiR7ZH0vY29uZmlndXJlIjsgdGhlbgog ICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke2R9L2NvbmZpZ3VyZSIg IiR7cH0iOwogICAgICAgICAgICAgICAgICAgICAgICByZXQ9JD87CiAgICAgICAgICAgICAgICAg ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBpZiBbWyAhIC1lICR7ZH0vY29uZmlndXJl IF1dICYmIGdyZXAgLXFzICd2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0nICIke2R9Ly4uL2NvbmZpZ3Vy ZSI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7 ZH0vLi4vY29uZmlndXJlIiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQ9 JD87CiAgICAgICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIGZpCiAg ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZmJzZC1sdGNvbmYpCiAgICAgICAgICAg ICAgICAgICAgaWYgW1sgLXMgJHtkfS9sdGNvbmZpZyBdXTsgdGhlbgogICAgICAgICAgICAgICAg ICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke2R9L2x0Y29uZmlnIiAiJHtwfSI7CiAgICAgICAg ICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgIGRhcndpbi1jb25mKQogICAgICAgICAgICAgICAgICAg IGlmIGdyZXAgLXFzICcmJiBlY2hvIFwuc28gfHwnICIke2R9L2NvbmZpZ3VyZSI7IHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS9jb25maWd1cmUiICIk e3B9IjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAg IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgISAtZSAke2R9L2NvbmZpZ3VyZSBd XSAmJiBncmVwIC1xcyAnJiYgZWNobyBcLnNvIHx8JyAiJHtkfS8uLi9jb25maWd1cmUiOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke2R9Ly4uL2Nv bmZpZ3VyZSIgIiR7cH0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAg ICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgIGRhcndpbi1sdGNvbmYpCiAgICAgICAgICAgICAgICAg ICAgaWYgW1sgLXMgJHtkfS9sdGNvbmZpZyBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAg ICBFTFRfd2Fsa19wYXRjaGVzICIke2R9L2x0Y29uZmlnIiAiJHtwfSI7CiAgICAgICAgICAgICAg ICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgIGRhcndpbi1sdG1haW4pCiAgICAgICAgICAgICAgICAgICAgaWYg W1sgLWUgJHtkfS9sdG1haW4uc2ggXV0gJiYgISBncmVwIC1xcyAndmVyc3RyaW5nPSItY29tcGF0 aWJpbGl0eV92ZXJzaW9uJyAiJHtkfS9sdG1haW4uc2giOyB0aGVuCiAgICAgICAgICAgICAgICAg ICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7ZH0vbHRtYWluLnNoIiAiJHtwfSI7CiAgICAgICAg ICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgIGFpeHJ0bCB8IGhwdXgtY29uZikKICAgICAgICAgICAg ICAgICAgICByZXQ9MTsKICAgICAgICAgICAgICAgICAgICBsb2NhbCBzdWJyZXQ9MDsKICAgICAg ICAgICAgICAgICAgICB3aGlsZSBbWyAkc3VicmV0IC1lcSAwIF1dOyBkbwogICAgICAgICAgICAg ICAgICAgICAgICBzdWJyZXQ9MTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWUgJHtk fS9jb25maWd1cmUgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxr X3BhdGNoZXMgIiR7ZH0vY29uZmlndXJlIiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdWJyZXQ9JD87CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIFtbICEgLWUgJHtkfS9jb25maWd1cmUgJiYgLWUgJHtkfS8uLi9j b25maWd1cmUgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fs a19wYXRjaGVzICIke2R9Ly4uL2NvbmZpZ3VyZSIgIiR7cH0iOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN1YnJldD0kPzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpOwog ICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sg JHN1YnJldCAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0PTA7 CiAgICAgICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIGRvbmUKICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBtaW50LWNvbmYgfCBnb2xkLWNvbmYpCiAg ICAgICAgICAgICAgICAgICAgcmV0PTE7CiAgICAgICAgICAgICAgICAgICAgbG9jYWwgc3VicmV0 PTE7CiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWUgJHtkfS9jb25maWd1cmUgXV07IHRoZW4K ICAgICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS9jb25maWd1cmUi ICIke3B9IjsKICAgICAgICAgICAgICAgICAgICAgICAgc3VicmV0PSQ/OwogICAgICAgICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWUgJHtkfS8uLi9jb25m aWd1cmUgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNo ZXMgIiR7ZH0vLi4vY29uZmlndXJlIiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdWJyZXQ9JD87CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIFtbIC1lICR7ZH0vLi4vLi4vY29uZmlndXJlIF1dOyB0aGVuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS8uLi8uLi9j b25maWd1cmUiICIke3B9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXQ9 JD87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICAg ICAgZmk7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICAgICAgaWYgW1sg JHN1YnJldCAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICByZXQ9MDsKICAg ICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGlu c3RhbGwtc2gpCiAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHtkfS9pbnN0 YWxsLXNoIiAiJHtwfSI7CiAgICAgICAgICAgICAgICAgICAgcmV0PSQ/CiAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgY3Jvc3MpCiAgICAgICAgICAgICAgICAgICAgaWYgdGMtaXMt Y3Jvc3MtY29tcGlsZXI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0 Y2hlcyAiJHtkfS9sdG1haW4uc2giICIke3B9IjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0 PSQ/OwogICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAg ICAgICAgKikKICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke2R9L2x0bWFp bi5zaCIgIiR7cH0iOwogICAgICAgICAgICAgICAgICAgIHJldD0kPwogICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgaWYgW1sgJHtyZXR9IC1uZSAwIF1dOyB0 aGVuCiAgICAgICAgICAgICAgICBjYXNlICR7cH0gaW4gCiAgICAgICAgICAgICAgICAgICAgcmVs aW5rKQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCB2ZXJzaW9uPSQoRUxUX2xpYnRvb2xf dmVyc2lvbiAiJHtkfS9sdG1haW4uc2giKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgISBn cmVwIC1xcyAnaW5zdF9wcmVmaXhfZGlyJyAiJHtkfS9sdG1haW4uc2giICYmIFtbICQoVkVSX3Rv X2ludCAiJHt2ZXJzaW9ufSIpIC1nZSAkKFZFUl90b19pbnQgIjEuNC4wIikgXV07IHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV3YXJuICIgIENvdWxkIG5vdCBhcHBseSByZWxpbmsu cGF0Y2ghIjsKICAgICAgICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICAgICAgICAgIHBvcnRhZ2UpCiAgICAgICAgICAgICAgICAgICAgICAgIGlm IFtbICR7ZG9fcG9ydGFnZX0gPT0gInllcyIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICEgZ3JlcCAtcXMgJ1dlIGRvIG5vdCB3YW50IHBvcnRhZ2UnICIke2R9L2x0bWFp bi5zaCI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiUG9ydGFnZSBwYXRjaCByZXF1ZXN0ZWQs IGJ1dCBmYWlsZWQgdG8gYXBwbHkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl ZXJyb3IgIlBsZWFzZSBmaWxlIGEgYnVnIHJlcG9ydCB0byBhZGQgYSBwcm9wZXIgcGF0Y2guIjsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIlBvcnRhZ2UgcGF0Y2ggcmVxdWVz dGVkLCBidXQgZmFpbGVkIHRvIGFwcGx5ISI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aTsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgZ3JlcCAtcXMgJ1dlIGRvIG5vdCB3YW50IHBvcnRhZ2UnICIke2R9L2x0bWFpbi5zaCI7 IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsIHZl cnNpb249JChFTFRfbGlidG9vbF92ZXJzaW9uICIke2R9Ii9sdG1haW4uc2gpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWVycm9yICJQb3J0YWdlIHBhdGNoIGZhaWxlZCB0byBhcHBseSAobHRtYWluLnNoIHZlcnNp b24gJHt2ZXJzaW9ufSkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZXJyb3Ig IlBsZWFzZSBmaWxlIGEgYnVnIHJlcG9ydCB0byBhZGQgYSBwcm9wZXIgcGF0Y2guIjsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIlBvcnRhZ2UgcGF0Y2ggZmFpbGVkIHRvIGFw cGx5ISI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVMVF9BUFBMSUVEX1BBVENIRVM9InBvcnRhZ2UiOwogICAgICAgICAgICAgICAg ICAgICAgICBmaQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgdWNs aWJjLSopCiAgICAgICAgICAgICAgICAgICAgICAgIFtbICR7Q0hPU1R9ID09ICotdWNsaWJjIF1d ICYmIGV3YXJuICIgIHVDbGliYyBwYXRjaCBzZXQgJyR7cH0nIGZhaWxlZCB0byBhcHBseSEiCiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBmYnNkLSopCiAgICAgICAg ICAgICAgICAgICAgICAgIGlmIFtbICR7Q0hPU1R9ID09ICotZnJlZWJzZCogXV07IHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbIC16ICQoZ3JlcCAnSGFuZGxlIEdlbnRvby9G cmVlQlNEIGFzIGl0IHdhcyBMaW51eCcgCQkJCQkJCQkiJHtkfS9jb25maWd1cmUiICIke2R9Ly4u L2NvbmZpZ3VyZSIgMj4vZGV2L251bGwpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWVycm9yICIgIEZyZWVCU0QgcGF0Y2ggc2V0ICcke3B9JyBmYWlsZWQgdG8gYXBw bHkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIkZyZWVCU0QgcGF0Y2gg c2V0ICcke3B9JyBmYWlsZWQgdG8gYXBwbHkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpOwogICAgICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAgICAgZGFyd2luLSopCiAgICAgICAgICAgICAgICAgICAgICAgIFtbICR7 Q0hPU1R9ID09ICoiLWRhcndpbiIqIF1dICYmIGV3YXJuICIgIERhcndpbiBwYXRjaCBzZXQgJyR7 cH0nIGZhaWxlZCB0byBhcHBseSEiCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgIGVzYWM7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICAgICAgaWYgW1sgLXog JHtFTFRfQVBQTElFRF9QQVRDSEVTfSBdXTsgdGhlbgogICAgICAgICAgICBpZiBbWyAke2RvX3Bv cnRhZ2V9ID09ICJubyIgJiYgJHtkb19yZXZlcnNlZGVwc30gPT0gIm5vIiAmJiAke2RvX29ubHlf cGF0Y2hlc30gPT0gIm5vIiAmJiAke2RlcHRvcmVtb3ZlfSA9PSAiIiBdXTsgdGhlbgogICAgICAg ICAgICAgICAgZXdhcm4gIkNhbm5vdCBhcHBseSBhbnkgcGF0Y2hlcywgcGxlYXNlIGZpbGUgYSBi dWcgYWJvdXQgdGhpcyI7CiAgICAgICAgICAgICAgICBkaWU7CiAgICAgICAgICAgIGZpOwogICAg ICAgIGZpOwogICAgICAgIHJtIC1mICIke2R9L2xpYnRvb2wiOwogICAgICAgICA+ICIke2R9Ly5l bGlidG9vbGl6ZWQiOwogICAgZG9uZQp9CmVta3RlbXAgKCkgCnsgCiAgICBsb2NhbCBleGU9InRv dWNoIjsKICAgIFtbICQxID09IC1kIF1dICYmIGV4ZT0ibWtkaXIiICYmIHNoaWZ0OwogICAgbG9j YWwgdG9wZGlyPSQxOwogICAgaWYgW1sgLXogJHt0b3BkaXJ9IF1dOyB0aGVuCiAgICAgICAgW1sg LXogJHtUfSBdXSAmJiB0b3BkaXI9Ii90bXAiIHx8IHRvcGRpcj0ke1R9OwogICAgZmk7CiAgICBp ZiAhIHR5cGUgLVAgbWt0ZW1wID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgbG9jYWwgdG1wPS87 CiAgICAgICAgd2hpbGUgW1sgLWUgJHt0bXB9IF1dOyBkbwogICAgICAgICAgICB0bXA9JHt0b3Bk aXJ9L3RtcC4ke1JBTkRPTX0uJHtSQU5ET019LiR7UkFORE9NfTsKICAgICAgICBkb25lOwogICAg ICAgICR7ZXhlfSAiJHt0bXB9IiB8fCAke2V4ZX0gLXAgIiR7dG1wfSI7CiAgICAgICAgZWNobyAi JHt0bXB9IjsKICAgIGVsc2UKICAgICAgICBpZiBbWyAke2V4ZX0gPT0gInRvdWNoIiBdXTsgdGhl bgogICAgICAgICAgICBUTVBESVI9IiR7dG9wZGlyfSIgbWt0ZW1wIC10IHRtcC5YWFhYWFhYWFhY OwogICAgICAgIGVsc2UKICAgICAgICAgICAgVE1QRElSPSIke3RvcGRpcn0iIG1rdGVtcCAtZHQg dG1wLlhYWFhYWFhYWFg7CiAgICAgICAgZmk7CiAgICBmaQp9CmVuZXdncm91cCAoKSAKeyAKICAg IGNhc2UgJHtFQlVJTERfUEhBU0V9IGluIAogICAgICAgIHVucGFjayB8IGNvbXBpbGUgfCB0ZXN0 IHwgaW5zdGFsbCkKICAgICAgICAgICAgZWVycm9yICInZW5ld2dyb3VwKCknIGNhbGxlZCBmcm9t ICcke0VCVUlMRF9QSEFTRX0oKScgd2hpY2ggaXMgbm90IGEgcGtnXyogZnVuY3Rpb24uIjsKICAg ICAgICAgICAgZWVycm9yICJQYWNrYWdlIGZhaWxzIGF0IFFBIGFuZCBhdCBsaWZlLiAgUGxlYXNl IGZpbGUgYSBidWcuIjsKICAgICAgICAgICAgZGllICJCYWQgcGFja2FnZSEgIGVuZXdncm91cCBp cyBvbmx5IGZvciB1c2UgaW4gcGtnXyogZnVuY3Rpb25zISIKICAgICAgICA7OwogICAgZXNhYzsK ICAgIGxvY2FsIGVncm91cD0iJDEiOwogICAgc2hpZnQ7CiAgICBpZiBbIC16ICIke2Vncm91cH0i IF07IHRoZW4KICAgICAgICBlZXJyb3IgIk5vIGdyb3VwIHNwZWNpZmllZCAhIjsKICAgICAgICBk aWUgIkNhbm5vdCBjYWxsIGVuZXdncm91cCB3aXRob3V0IGEgZ3JvdXAiOwogICAgZmk7CiAgICBp ZiBbWyAtbiAkKGVnZXRlbnQgZ3JvdXAgIiR7ZWdyb3VwfSIpIF1dOyB0aGVuCiAgICAgICAgcmV0 dXJuIDA7CiAgICBmaTsKICAgIGVpbmZvICJBZGRpbmcgZ3JvdXAgJyR7ZWdyb3VwfScgdG8geW91 ciBzeXN0ZW0gLi4uIjsKICAgIGxvY2FsIG9wdHM9OwogICAgbG9jYWwgZWdpZD0iJDEiOwogICAg c2hpZnQ7CiAgICBpZiBbICEgLXogIiR7ZWdpZH0iIF07IHRoZW4KICAgICAgICBpZiBbICIke2Vn aWR9IiAtZ3QgMCBdOyB0aGVuCiAgICAgICAgICAgIGlmIFsgLXogImBlZ2V0ZW50IGdyb3VwICR7 ZWdpZH1gIiBdOyB0aGVuCiAgICAgICAgICAgICAgICBpZiBbWyAiJHtDSE9TVH0iID09ICotZGFy d2luKiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9wdHM9IiR7b3B0c30gJHtlZ2lkfSI7 CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgb3B0cz0iJHtvcHRzfSAt ZyAke2VnaWR9IjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICBlZ2lkPSJuZXh0IGF2YWlsYWJsZTsgcmVxdWVzdGVkIGdpZCB0YWtlbiI7CiAgICAg ICAgICAgIGZpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZWVycm9yICJHcm91cGlkIGdpdmVu IGJ1dCBpcyBub3QgZ3JlYXRlciB0aGFuIDAgISI7CiAgICAgICAgICAgIGRpZSAiJHtlZ2lkfSBp cyBub3QgYSB2YWxpZCBHSUQiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGVnaWQ9Im5l eHQgYXZhaWxhYmxlIjsKICAgIGZpOwogICAgZWluZm8gIiAtIEdyb3VwaWQ6ICR7ZWdpZH0iOwog ICAgbG9jYWwgZWV4dHJhPSIkQCI7CiAgICBvcHRzPSIke29wdHN9ICR7ZWV4dHJhfSI7CiAgICBs b2NhbCBvbGRzYW5kYm94PSIke1NBTkRCT1hfT059IjsKICAgIGV4cG9ydCBTQU5EQk9YX09OPSIw IjsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBp ZiBbICEgLXogIiR7ZWV4dHJhfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgZWluZm8gIkV4dHJh IG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gRGFyd2luL09TIFggeWV0IjsKICAgICAgICAg ICAgICAgIGVpbmZvICJQbGVhc2UgcmVwb3J0IHRoZSBlYnVpbGQgYWxvbmcgd2l0aCB0aGUgaW5m byBiZWxvdyI7CiAgICAgICAgICAgICAgICBlaW5mbyAiZWV4dHJhOiAke2VleHRyYX0iOwogICAg ICAgICAgICAgICAgZGllICJSZXF1aXJlZCBmdW5jdGlvbiBtaXNzaW5nIjsKICAgICAgICAgICAg Zmk7CiAgICAgICAgICAgIGNhc2UgJHtlZ2lkfSBpbiAKICAgICAgICAgICAgICAgICpbITAtOV0q KQogICAgICAgICAgICAgICAgICAgIGZvciAoKGVnaWQgPSAxMDE7IGVnaWQgPD0gOTk5OyBlZ2lk KyspKQogICAgICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgICAgIFtbIC16 ICQoZWdldGVudCBncm91cCAke2VnaWR9KSBdXSAmJiBicmVhazsKICAgICAgICAgICAgICAgICAg ICBkb25lCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgICAgICBk c2NsIC4gY3JlYXRlIC9ncm91cHMvJHtlZ3JvdXB9IGdpZCAke2VnaWR9OwogICAgICAgICAgICBk c2NsIC4gY3JlYXRlIC9ncm91cHMvJHtlZ3JvdXB9IHBhc3N3ZCAnKicKICAgICAgICA7OwogICAg ICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGNhc2UgJHtlZ2lkfSBp biAKICAgICAgICAgICAgICAgICpbITAtOV0qKQogICAgICAgICAgICAgICAgICAgIGZvciAoKGVn aWQgPSAxMDE7IGVnaWQgPD0gOTk5OyBlZ2lkKyspKQogICAgICAgICAgICAgICAgICAgIGRvCiAg ICAgICAgICAgICAgICAgICAgICAgIFtbIC16ICQoZWdldGVudCBncm91cCAke2VnaWR9KSBdXSAm JiBicmVhazsKICAgICAgICAgICAgICAgICAgICBkb25lCiAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICBlc2FjOwogICAgICAgICAgICBwdyBncm91cGFkZCAke2Vncm91cH0gLWcgJHtlZ2lk fSB8fCBkaWUgImVuZXdncm91cCBmYWlsZWQiCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCop CiAgICAgICAgICAgIGNhc2UgJHtlZ2lkfSBpbiAKICAgICAgICAgICAgICAgICpbITAtOV0qKQog ICAgICAgICAgICAgICAgICAgIGZvciAoKGVnaWQgPSAxMDE7IGVnaWQgPD0gOTk5OyBlZ2lkKysp KQogICAgICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgICAgIFtbIC16ICQo ZWdldGVudCBncm91cCAke2VnaWR9KSBdXSAmJiBicmVhazsKICAgICAgICAgICAgICAgICAgICBk b25lCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgICAgICBncm91 cGFkZCAtZyAke2VnaWR9ICR7ZWdyb3VwfSB8fCBkaWUgImVuZXdncm91cCBmYWlsZWQiCiAgICAg ICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBncm91cGFkZCAtciAke29wdHN9ICR7ZWdyb3Vw fSB8fCBkaWUgImVuZXdncm91cCBmYWlsZWQiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBleHBv cnQgU0FOREJPWF9PTj0iJHtvbGRzYW5kYm94fSIKfQplbmV3dXNlciAoKSAKeyAKICAgIGNhc2Ug JHtFQlVJTERfUEhBU0V9IGluIAogICAgICAgIHVucGFjayB8IGNvbXBpbGUgfCB0ZXN0IHwgaW5z dGFsbCkKICAgICAgICAgICAgZWVycm9yICInZW5ld3VzZXIoKScgY2FsbGVkIGZyb20gJyR7RUJV SUxEX1BIQVNFfSgpJyB3aGljaCBpcyBub3QgYSBwa2dfKiBmdW5jdGlvbi4iOwogICAgICAgICAg ICBlZXJyb3IgIlBhY2thZ2UgZmFpbHMgYXQgUUEgYW5kIGF0IGxpZmUuICBQbGVhc2UgZmlsZSBh IGJ1Zy4iOwogICAgICAgICAgICBkaWUgIkJhZCBwYWNrYWdlISAgZW5ld3VzZXIgaXMgb25seSBm b3IgdXNlIGluIHBrZ18qIGZ1bmN0aW9ucyEiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBsb2Nh bCBldXNlcj0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgLXogJHtldXNlcn0gXV07IHRoZW4KICAg ICAgICBlZXJyb3IgIk5vIHVzZXJuYW1lIHNwZWNpZmllZCAhIjsKICAgICAgICBkaWUgIkNhbm5v dCBjYWxsIGVuZXd1c2VyIHdpdGhvdXQgYSB1c2VybmFtZSI7CiAgICBmaTsKICAgIGlmIFtbIC1u ICQoZWdldGVudCBwYXNzd2QgIiR7ZXVzZXJ9IikgXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsK ICAgIGZpOwogICAgZWluZm8gIkFkZGluZyB1c2VyICcke2V1c2VyfScgdG8geW91ciBzeXN0ZW0g Li4uIjsKICAgIGxvY2FsIG9wdHM9OwogICAgbG9jYWwgZXVpZD0kMTsKICAgIHNoaWZ0OwogICAg aWYgW1sgLW4gJHtldWlkfSAmJiAke2V1aWR9ICE9IC0xIF1dOyB0aGVuCiAgICAgICAgaWYgW1sg JHtldWlkfSAtZ3QgMCBdXTsgdGhlbgogICAgICAgICAgICBpZiBbWyAtbiAkKGVnZXRlbnQgcGFz c3dkICR7ZXVpZH0pIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBldWlkPSJuZXh0IjsKICAgICAg ICAgICAgZmk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlZXJyb3IgIlVzZXJpZCBnaXZlbiBi dXQgaXMgbm90IGdyZWF0ZXIgdGhhbiAwICEiOwogICAgICAgICAgICBkaWUgIiR7ZXVpZH0gaXMg bm90IGEgdmFsaWQgVUlEIjsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBldWlkPSJuZXh0 IjsKICAgIGZpOwogICAgaWYgW1sgJHtldWlkfSA9PSAibmV4dCIgXV07IHRoZW4KICAgICAgICBm b3IgKChldWlkID0gMTAxOyBldWlkIDw9IDk5OTsgZXVpZCsrKSkKICAgICAgICBkbwogICAgICAg ICAgICBbWyAteiAkKGVnZXRlbnQgcGFzc3dkICR7ZXVpZH0pIF1dICYmIGJyZWFrOwogICAgICAg IGRvbmU7CiAgICBmaTsKICAgIG9wdHM9IiR7b3B0c30gLXUgJHtldWlkfSI7CiAgICBlaW5mbyAi IC0gVXNlcmlkOiAke2V1aWR9IjsKICAgIGxvY2FsIGVzaGVsbD0kMTsKICAgIHNoaWZ0OwogICAg aWYgW1sgISAteiAke2VzaGVsbH0gXV0gJiYgW1sgJHtlc2hlbGx9ICE9ICItMSIgXV07IHRoZW4K ICAgICAgICBpZiBbWyAhIC1lICR7Uk9PVH0ke2VzaGVsbH0gXV07IHRoZW4KICAgICAgICAgICAg ZWVycm9yICJBIHNoZWxsIHdhcyBzcGVjaWZpZWQgYnV0IGl0IGRvZXMgbm90IGV4aXN0ICEiOwog ICAgICAgICAgICBkaWUgIiR7ZXNoZWxsfSBkb2VzIG5vdCBleGlzdCBpbiAke1JPT1R9IjsKICAg ICAgICBmaTsKICAgICAgICBpZiBbWyAke2VzaGVsbH0gPT0gKi9mYWxzZSB8fCAke2VzaGVsbH0g PT0gKi9ub2xvZ2luIF1dOyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiRG8gbm90IHNwZWNpZnkg JHtlc2hlbGx9IHlvdXJzZWxmLCB1c2UgLTEiOwogICAgICAgICAgICBkaWUgIlBhc3MgJy0xJyBh cyB0aGUgc2hlbGwgcGFyYW1ldGVyIjsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBmb3Ig c2hlbGwgaW4gL3NiaW4vbm9sb2dpbiAvdXNyL3NiaW4vbm9sb2dpbiAvYmluL2ZhbHNlIC91c3Iv YmluL2ZhbHNlIC9kZXYvbnVsbDsKICAgICAgICBkbwogICAgICAgICAgICBbWyAteCAke1JPT1R9 JHtzaGVsbH0gXV0gJiYgYnJlYWs7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBbWyAke3NoZWxs fSA9PSAiL2Rldi9udWxsIiBdXTsgdGhlbgogICAgICAgICAgICBlZXJyb3IgIlVuYWJsZSB0byBp ZGVudGlmeSB0aGUgc2hlbGwgdG8gdXNlLCBwcm9jZWVkaW5nIHdpdGggdXNlcmxhbmQgZGVmYXVs dC4iOwogICAgICAgICAgICBjYXNlICR7VVNFUkxBTkR9IGluIAogICAgICAgICAgICAgICAgR05V KQogICAgICAgICAgICAgICAgICAgIHNoZWxsPSIvYmluL2ZhbHNlIgogICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgIEJTRCkKICAgICAgICAgICAgICAgICAgICBzaGVsbD0iL3NiaW4v bm9sb2dpbiIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBEYXJ3aW4pCiAgICAg ICAgICAgICAgICAgICAgc2hlbGw9Ii91c3Ivc2Jpbi9ub2xvZ2luIgogICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgZGllICJVbmFibGUgdG8g aWRlbnRpZnkgdGhlIGRlZmF1bHQgc2hlbGwgZm9yIHVzZXJsYW5kICR7VVNFUkxBTkR9IgogICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICBmaTsKICAgICAgICBlc2hl bGw9JHtzaGVsbH07CiAgICBmaTsKICAgIGVpbmZvICIgLSBTaGVsbDogJHtlc2hlbGx9IjsKICAg IG9wdHM9IiR7b3B0c30gLXMgJHtlc2hlbGx9IjsKICAgIGxvY2FsIGVob21lPSQxOwogICAgc2hp ZnQ7CiAgICBpZiBbWyAteiAke2Vob21lfSBdXSB8fCBbWyAke2Vob21lfSA9PSAiLTEiIF1dOyB0 aGVuCiAgICAgICAgZWhvbWU9Ii9kZXYvbnVsbCI7CiAgICBmaTsKICAgIGVpbmZvICIgLSBIb21l OiAke2Vob21lfSI7CiAgICBvcHRzPSIke29wdHN9IC1kICR7ZWhvbWV9IjsKICAgIGxvY2FsIGVn cm91cHM9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbICEgLXogJHtlZ3JvdXBzfSBdXTsgdGhlbgog ICAgICAgIGxvY2FsIG9sZGlmcz0ke0lGU307CiAgICAgICAgbG9jYWwgZGVmZ3JvdXA9IiIgZXhn cm91cHM9IiI7CiAgICAgICAgZXhwb3J0IElGUz0iLCI7CiAgICAgICAgZm9yIGcgaW4gJHtlZ3Jv dXBzfTsKICAgICAgICBkbwogICAgICAgICAgICBleHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAg ICAgICAgaWYgW1sgLXogJChlZ2V0ZW50IGdyb3VwICIke2d9IikgXV07IHRoZW4KICAgICAgICAg ICAgICAgIGVlcnJvciAiWW91IG11c3QgYWRkIGdyb3VwICR7Z30gdG8gdGhlIHN5c3RlbSBmaXJz dCI7CiAgICAgICAgICAgICAgICBkaWUgIiR7Z30gaXMgbm90IGEgdmFsaWQgR0lEIjsKICAgICAg ICAgICAgZmk7CiAgICAgICAgICAgIGlmIFtbIC16ICR7ZGVmZ3JvdXB9IF1dOyB0aGVuCiAgICAg ICAgICAgICAgICBkZWZncm91cD0ke2d9OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICBleGdyb3Vwcz0iJHtleGdyb3Vwc30sJHtnfSI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAg ICBleHBvcnQgSUZTPSIsIjsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9ydCBJRlM9JHtvbGRp ZnN9OwogICAgICAgIG9wdHM9IiR7b3B0c30gLWcgJHtkZWZncm91cH0iOwogICAgICAgIGlmIFtb ICEgLXogJHtleGdyb3Vwc30gXV07IHRoZW4KICAgICAgICAgICAgb3B0cz0iJHtvcHRzfSAtRyAk e2V4Z3JvdXBzOjF9IjsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBlZ3JvdXBzPSIobm9u ZSkiOwogICAgZmk7CiAgICBlaW5mbyAiIC0gR3JvdXBzOiAke2Vncm91cHN9IjsKICAgIGxvY2Fs IG9sZHNhbmRib3g9JHtTQU5EQk9YX09OfTsKICAgIGV4cG9ydCBTQU5EQk9YX09OPSIwIjsKICAg IGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBpZiBbWyAt eiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvdXNlcnMvJHtldXNl cn0gdWlkICR7ZXVpZH07CiAgICAgICAgICAgICAgICBkc2NsIC4gY3JlYXRlIC91c2Vycy8ke2V1 c2VyfSBzaGVsbCAke2VzaGVsbH07CiAgICAgICAgICAgICAgICBkc2NsIC4gY3JlYXRlIC91c2Vy cy8ke2V1c2VyfSBob21lICR7ZWhvbWV9OwogICAgICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAv dXNlcnMvJHtldXNlcn0gcmVhbG5hbWUgImFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IjsKICAg ICAgICAgICAgICAgIGxvY2FsIG9sZGlmcz0ke0lGU307CiAgICAgICAgICAgICAgICBleHBvcnQg SUZTPSIsIjsKICAgICAgICAgICAgICAgIGZvciBnIGluICR7ZWdyb3Vwc307CiAgICAgICAgICAg ICAgICBkbwogICAgICAgICAgICAgICAgICAgIGRzY2wgLiBtZXJnZSAvZ3JvdXBzLyR7Z30gdXNl cnMgJHtldXNlcn07CiAgICAgICAgICAgICAgICBkb25lOwogICAgICAgICAgICAgICAgZXhwb3J0 IElGUz0ke29sZGlmc307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICJF eHRyYSBvcHRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIERhcndpbiB5ZXQiOwogICAgICAgICAg ICAgICAgZWluZm8gIlBsZWFzZSByZXBvcnQgdGhlIGVidWlsZCBhbG9uZyB3aXRoIHRoZSBpbmZv IGJlbG93IjsKICAgICAgICAgICAgICAgIGVpbmZvICJlZXh0cmE6ICRAIjsKICAgICAgICAgICAg ICAgIGRpZSAiUmVxdWlyZWQgZnVuY3Rpb24gbWlzc2luZyI7CiAgICAgICAgICAgIGZpCiAgICAg ICAgOzsKICAgICAgICAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBpZiBb WyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgcHcgdXNlcmFkZCAke2V1c2VyfSAke29w dHN9IC1jICJhZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgZGllICJlbmV3dXNlciBmYWlsZWQi OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRAIjsK ICAgICAgICAgICAgICAgIHB3IHVzZXJhZGQgJHtldXNlcn0gJHtvcHRzfSAiJEAiIHx8IGRpZSAi ZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAgICotbmV0 YnNkKikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAgICAgIHVz ZXJhZGQgJHtvcHRzfSAke2V1c2VyfSB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICIgLSBFeHRyYTogJEAiOwogICAgICAgICAg ICAgICAgdXNlcmFkZCAke29wdHN9ICR7ZXVzZXJ9ICIkQCIgfHwgZGllICJlbmV3dXNlciBmYWls ZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgKi1vcGVuYnNkKikKICAgICAg ICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAgICAgIHVzZXJhZGQgLXUgJHtl dWlkfSAtcyAke2VzaGVsbH0gLWQgJHtlaG9tZX0gLWMgIkFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7 UE59IiAtZyAke2Vncm91cHN9ICR7ZXVzZXJ9IHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAg ICAgICAgICAgICB1c2VyYWRkIC11ICR7ZXVpZH0gLXMgJHtlc2hlbGx9IC1kICR7ZWhvbWV9IC1j ICJBZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgLWcgJHtlZ3JvdXBzfSAke2V1c2VyfSAiJEAi IHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAg ICAgICopCiAgICAgICAgICAgIGlmIFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICB1 c2VyYWRkIC1yICR7b3B0c30gLWMgImFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiAke2V1c2Vy fSB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgIGVpbmZvICIgLSBFeHRyYTogJEAiOwogICAgICAgICAgICAgICAgdXNlcmFkZCAtciAke29w dHN9ICIkQCIgJHtldXNlcn0gfHwgZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBm aQogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgISAtZSAke1JPT1R9LyR7ZWhvbWV9IF1d OyB0aGVuCiAgICAgICAgZWluZm8gIiAtIENyZWF0aW5nICR7ZWhvbWV9IGluICR7Uk9PVH0iOwog ICAgICAgIG1rZGlyIC1wICIke1JPT1R9LyR7ZWhvbWV9IjsKICAgICAgICBjaG93biAke2V1c2Vy fSAiJHtST09UfS8ke2Vob21lfSI7CiAgICAgICAgY2htb2QgNzU1ICIke1JPT1R9LyR7ZWhvbWV9 IjsKICAgIGZpOwogICAgZXhwb3J0IFNBTkRCT1hfT049JHtvbGRzYW5kYm94fQp9CmVwYXRjaCAo KSAKeyAKICAgIGZ1bmN0aW9uIF9lcGF0Y2hfZHJhd19saW5lICgpIAogICAgeyAKICAgICAgICBb WyAteiAkMSBdXSAmJiBzZXQgIiQocHJpbnRmICIlNjVzIiAnJykiOwogICAgICAgIGVjaG8gIiR7 MS8vPy89fSIKICAgIH07CiAgICB1bnNldCBQNENPTkZJRyBQNFBPUlQgUDRVU0VSOwogICAgaWYg W1sgJCMgLWd0IDEgXV07IHRoZW4KICAgICAgICBsb2NhbCBtOwogICAgICAgIGZvciBtIGluICIk QCI7CiAgICAgICAgZG8KICAgICAgICAgICAgZXBhdGNoICIke219IjsKICAgICAgICBkb25lOwog ICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBTSU5HTEVfUEFUQ0g9Im5vIjsKICAg IFtbICQjIC1lcSAwIF1dICYmIHNldCAtLSAiJHtFUEFUQ0hfU09VUkNFfSI7CiAgICBpZiBbWyAt ZiAkMSBdXTsgdGhlbgogICAgICAgIFNJTkdMRV9QQVRDSD0ieWVzIjsKICAgICAgICBzZXQgLS0g IiQxIjsKICAgICAgICBsb2NhbCBFUEFUQ0hfU1VGRklYPSQxOwogICAgZWxzZQogICAgICAgIGlm IFtbIC1kICQxIF1dOyB0aGVuCiAgICAgICAgICAgIHNldCAtLSAiJDEiLyoke0VQQVRDSF9TVUZG SVg6Ky4iJHtFUEFUQ0hfU1VGRklYfSJ9OwogICAgICAgIGVsc2UKICAgICAgICAgICAgW1sgJCMg LW5lIDAgXV0gJiYgRVBBVENIX1NPVVJDRT0kMTsKICAgICAgICAgICAgZWNobzsKICAgICAgICAg ICAgZWVycm9yICJDYW5ub3QgZmluZCBcJEVQQVRDSF9TT1VSQ0UhICBWYWx1ZSBmb3IgXCRFUEFU Q0hfU09VUkNFIGlzOiI7CiAgICAgICAgICAgIGVlcnJvcjsKICAgICAgICAgICAgZWVycm9yICIg ICR7RVBBVENIX1NPVVJDRX0iOwogICAgICAgICAgICBlZXJyb3IgIiAgKCAke0VQQVRDSF9TT1VS Q0UjIyovfSApIjsKICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgZGllICJDYW5ub3QgZmlu ZCBcJEVQQVRDSF9TT1VSQ0UhIjsKICAgICAgICBmaTsKICAgIGZpOwogICAgbG9jYWwgUElQRV9D TUQ7CiAgICBjYXNlICR7RVBBVENIX1NVRkZJWCMjKlwufSBpbiAKICAgICAgICB4eikKICAgICAg ICAgICAgUElQRV9DTUQ9Inh6IC1kYyIKICAgICAgICA7OwogICAgICAgIGx6bWEpCiAgICAgICAg ICAgIFBJUEVfQ01EPSJsem1hIC1kYyIKICAgICAgICA7OwogICAgICAgIGJ6MikKICAgICAgICAg ICAgUElQRV9DTUQ9ImJ6aXAyIC1kYyIKICAgICAgICA7OwogICAgICAgIGd6IHwgWiB8IHopCiAg ICAgICAgICAgIFBJUEVfQ01EPSJnemlwIC1kYyIKICAgICAgICA7OwogICAgICAgIFpJUCB8IHpp cCkKICAgICAgICAgICAgUElQRV9DTUQ9InVuemlwIC1wIgogICAgICAgIDs7CiAgICAgICAgKikK CiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBbWyAke1NJTkdMRV9QQVRDSH0gPT0gIm5vIiBdXSAm JiBlaW5mbyAiJHtFUEFUQ0hfTVVMVElfTVNHfSI7CiAgICBsb2NhbCB4OwogICAgZm9yIHggaW4g IiRAIjsKICAgIGRvCiAgICAgICAgW1sgISAtZiAke3h9IF1dICYmIGNvbnRpbnVlOwogICAgICAg IGxvY2FsIHBhdGNobmFtZT0ke3gjIyovfTsKICAgICAgICBsb2NhbCBhPSR7cGF0Y2huYW1lIypf fTsKICAgICAgICBhPSR7YSUlXyp9OwogICAgICAgIGlmICEgW1sgJHtTSU5HTEVfUEFUQ0h9ID09 ICJ5ZXMiIHx8ICR7RVBBVENIX0ZPUkNFfSA9PSAieWVzIiB8fCAke2F9ID09IGFsbCB8fCAke2F9 ID09ICR7QVJDSH0gXV07IHRoZW4KICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgZmk7CiAg ICAgICAgaWYgW1sgLW4gJHtFUEFUQ0hfRVhDTFVERX0gXV07IHRoZW4KICAgICAgICAgICAgZXNo b3B0c19wdXNoIC1vIG5vZ2xvYjsKICAgICAgICAgICAgbG9jYWwgZXg7CiAgICAgICAgICAgIGZv ciBleCBpbiAke0VQQVRDSF9FWENMVURFfTsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAg IGlmIFtbICR7cGF0Y2huYW1lfSA9PSAke2V4fSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAg IGVzaG9wdHNfcG9wOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIDI7CiAgICAgICAgICAg ICAgICBmaTsKICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgZXNob3B0c19wb3A7CiAgICAg ICAgZmk7CiAgICAgICAgaWYgW1sgJHtTSU5HTEVfUEFUQ0h9ID09ICJ5ZXMiIF1dOyB0aGVuCiAg ICAgICAgICAgIGlmIFtbIC1uICR7RVBBVENIX1NJTkdMRV9NU0d9IF1dOyB0aGVuCiAgICAgICAg ICAgICAgICBlaW5mbyAiJHtFUEFUQ0hfU0lOR0xFX01TR30iOwogICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICBlaW5mbyAiQXBwbHlpbmcgJHtwYXRjaG5hbWV9IC4uLiI7CiAgICAgICAg ICAgIGZpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZWluZm8gIiAgJHtwYXRjaG5hbWV9IC4u LiI7CiAgICAgICAgZmk7CiAgICAgICAgbG9jYWwgU1RERVJSX1RBUkdFVD0iJHtUfS8ke3BhdGNo bmFtZX0ub3V0IjsKICAgICAgICBpZiBbWyAtZSAke1NUREVSUl9UQVJHRVR9IF1dOyB0aGVuCiAg ICAgICAgICAgIFNUREVSUl9UQVJHRVQ9IiR7VH0vJHtwYXRjaG5hbWV9LSQkLm91dCI7CiAgICAg ICAgZmk7CiAgICAgICAgcHJpbnRmICIqKioqKiAlcyAqKioqKlxuXG4iICIke3BhdGNobmFtZX0i ID4gIiR7U1RERVJSX1RBUkdFVH0iOwogICAgICAgIGxvY2FsIGNvdW50PTA7CiAgICAgICAgbG9j YWwgUEFUQ0hfVEFSR0VUOwogICAgICAgIGlmIFtbIC1uICR7UElQRV9DTUR9IF1dOyB0aGVuCiAg ICAgICAgICAgIFBBVENIX1RBUkdFVD0iJHtUfS8kJC5wYXRjaCI7CiAgICAgICAgICAgIGVjaG8g IlBJUEVfQ09NTUFORDogICR7UElQRV9DTUR9ICR7eH0gPiAke1BBVENIX1RBUkdFVH0iID4+ICIk e1NUREVSUl9UQVJHRVR9IjsKICAgICAgICAgICAgaWYgISAoICR7UElQRV9DTUR9ICIke3h9IiA+ ICIke1BBVENIX1RBUkdFVH0iICkgPj4gIiR7U1RERVJSX1RBUkdFVH0iIDI+JjE7IHRoZW4KICAg ICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBlZXJyb3IgIkNvdWxkIG5vdCBleHRy YWN0IHBhdGNoISI7CiAgICAgICAgICAgICAgICBjb3VudD01OwogICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgUEFUQ0hfVEFSR0VU PSR7eH07CiAgICAgICAgZmk7CiAgICAgICAgbG9jYWwgYWJzX3BhdGhzPSQoZWdyZXAgLW4gJ15b LStdezN9IC8nICIke1BBVENIX1RBUkdFVH0iIHwgYXdrICckMiAhPSAiL2Rldi9udWxsIiB7IHBy aW50IH0nKTsKICAgICAgICBpZiBbWyAtbiAke2Fic19wYXRoc30gXV07IHRoZW4KICAgICAgICAg ICAgY291bnQ9MTsKICAgICAgICAgICAgcHJpbnRmICJOT1RFOiBza2lwcGluZyAtcDAgZHVlIHRv IGFic29sdXRlIHBhdGhzIGluIHBhdGNoOlxuJXNcbiIgIiR7YWJzX3BhdGhzfSIgPj4gIiR7U1RE RVJSX1RBUkdFVH0iOwogICAgICAgIGZpOwogICAgICAgIGxvY2FsIHJlbF9wYXRocz0kKGVncmVw IC1uICdeWy0rXXszfSBbXgldKlsuXVsuXS8nICIke1BBVENIX1RBUkdFVH0iKTsKICAgICAgICBp ZiBbWyAtbiAke3JlbF9wYXRoc30gXV07IHRoZW4KICAgICAgICAgICAgZXFhd2FybiAiUUEgTm90 aWNlOiBZb3VyIHBhdGNoIHVzZXMgcmVsYXRpdmUgcGF0aHMgJy4uLycuIjsKICAgICAgICAgICAg ZXFhd2FybiAiIEluIHRoZSBmdXR1cmUgdGhpcyB3aWxsIGNhdXNlIGEgZmFpbHVyZS4iOwogICAg ICAgICAgICBlcWF3YXJuICIke3JlbF9wYXRoc30iOwogICAgICAgIGZpOwogICAgICAgIHdoaWxl IFtbICR7Y291bnR9IC1sdCA1IF1dOyBkbwogICAgICAgICAgICAoIF9lcGF0Y2hfZHJhd19saW5l ICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiOwogICAgICAgICAgICBlY2hvOwogICAgICAgICAg ICBlY2hvICJQQVRDSCBDT01NQU5EOiAgcGF0Y2ggLXAke2NvdW50fSAke0VQQVRDSF9PUFRTfSA8 ICcke1BBVENIX1RBUkdFVH0nIjsKICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgX2VwYXRj aF9kcmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1lfSAqKioqKiIgKSA+PiAiJHtTVERFUlJfVEFS R0VUfSI7CiAgICAgICAgICAgIGlmICggcGF0Y2ggLXAke2NvdW50fSAke0VQQVRDSF9PUFRTfSAt LWRyeS1ydW4gLWYgPCAiJHtQQVRDSF9UQVJHRVR9IiApID4+ICIke1NUREVSUl9UQVJHRVR9IiAy PiYxOyB0aGVuCiAgICAgICAgICAgICAgICAoIF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAke3Bh dGNobmFtZX0gKioqKioiOwogICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAgIGVj aG8gIkFDVFVBTExZIEFQUExZSU5HICR7cGF0Y2huYW1lfSAuLi4iOwogICAgICAgICAgICAgICAg ZWNobzsKICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAke3BhdGNobmFt ZX0gKioqKioiOwogICAgICAgICAgICAgICAgcGF0Y2ggLXAke2NvdW50fSAke0VQQVRDSF9PUFRT fSA8ICIke1BBVENIX1RBUkdFVH0iIDI+JjEgKSA+PiAiJHtTVERFUlJfVEFSR0VUfSI7CiAgICAg ICAgICAgICAgICBpZiBbICQ/IC1uZSAwIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hv OwogICAgICAgICAgICAgICAgICAgIGVlcnJvciAiQSBkcnktcnVuIG9mIHBhdGNoIGNvbW1hbmQg c3VjY2VlZGVkLCBidXQgYWN0dWFsbHkiOwogICAgICAgICAgICAgICAgICAgIGVlcnJvciAiYXBw bHlpbmcgdGhlIHBhdGNoIGZhaWxlZCEiOwogICAgICAgICAgICAgICAgICAgIGNvdW50PTU7CiAg ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBmaTsK ICAgICAgICAgICAgOiAkKCggY291bnQrKyApKTsKICAgICAgICBkb25lOwogICAgICAgIGlmIFtb IC1uICR7UElQRV9DTUR9IF1dOyB0aGVuCiAgICAgICAgICAgIHJtIC1mICIke1BBVENIX1RBUkdF VH0iOwogICAgICAgIGZpOwogICAgICAgIGlmIFtbICR7Y291bnR9IC1nZSA1IF1dOyB0aGVuCiAg ICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVlcnJvciAiRmFpbGVkIFBhdGNoOiAke3BhdGNo bmFtZX0gISI7CiAgICAgICAgICAgIGVlcnJvciAiICggJHtQQVRDSF9UQVJHRVR9ICkiOwogICAg ICAgICAgICBlZXJyb3I7CiAgICAgICAgICAgIGVlcnJvciAiSW5jbHVkZSBpbiB5b3VyIGJ1Z3Jl cG9ydCB0aGUgY29udGVudHMgb2Y6IjsKICAgICAgICAgICAgZWVycm9yOwogICAgICAgICAgICBl ZXJyb3IgIiAgJHtTVERFUlJfVEFSR0VUfSI7CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAg IGRpZSAiRmFpbGVkIFBhdGNoOiAke3BhdGNobmFtZX0hIjsKICAgICAgICBmaTsKICAgICAgICBy bSAtZiAiJHtTVERFUlJfVEFSR0VUfSI7CiAgICAgICAgZWVuZCAwOwogICAgZG9uZTsKICAgIFtb ICR7U0lOR0xFX1BBVENIfSA9PSAibm8iIF1dICYmIGVpbmZvICJEb25lIHdpdGggcGF0Y2hpbmci OwogICAgOgp9CmVwYXRjaF91c2VyICgpIAp7IAogICAgW1sgJCMgLW5lIDAgXV0gJiYgZGllICJl cGF0Y2hfdXNlciB0YWtlcyBubyBvcHRpb25zIjsKICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0UgY2hl Y2sgYmFzZT0ke1BPUlRBR0VfQ09ORklHUk9PVCUvfS9ldGMvcG9ydGFnZS9wYXRjaGVzOwogICAg Zm9yIGNoZWNrIGluIHske0NBVEVHT1JZfS8ke1BGfSwke0NBVEVHT1JZfS8ke1B9LCR7Q0FURUdP Ull9LyR7UE59fTsKICAgIGRvCiAgICAgICAgRVBBVENIX1NPVVJDRT0ke2Jhc2V9LyR7Q1RBUkdF VH0vJHtjaGVja307CiAgICAgICAgW1sgLXIgJHtFUEFUQ0hfU09VUkNFfSBdXSB8fCBFUEFUQ0hf U09VUkNFPSR7YmFzZX0vJHtDSE9TVH0vJHtjaGVja307CiAgICAgICAgW1sgLXIgJHtFUEFUQ0hf U09VUkNFfSBdXSB8fCBFUEFUQ0hfU09VUkNFPSR7YmFzZX0vJHtjaGVja307CiAgICAgICAgaWYg W1sgLWQgJHtFUEFUQ0hfU09VUkNFfSBdXTsgdGhlbgogICAgICAgICAgICBFUEFUQ0hfU09VUkNF PSR7RVBBVENIX1NPVVJDRX0gRVBBVENIX1NVRkZJWD0icGF0Y2giIEVQQVRDSF9GT1JDRT0ieWVz IiBFUEFUQ0hfTVVMVElfTVNHPSJBcHBseWluZyB1c2VyIHBhdGNoZXMgZnJvbSAke0VQQVRDSF9T T1VSQ0V9IC4uLiIgZXBhdGNoOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAg IGRvbmU7CiAgICByZXR1cm4gMQp9CmVwYXVzZSAoKSAKeyAKICAgIFtbIC16ICR7RVBBVVNFX0lH Tk9SRX0gXV0gJiYgc2xlZXAgJHsxOi01fQp9CmVwdW50X2N4eCAoKSAKeyAKICAgIGxvY2FsIGRp cj0kMTsKICAgIFtbIC16ICR7ZGlyfSBdXSAmJiBkaXI9JHtTfTsKICAgIGViZWdpbiAiUmVtb3Zp bmcgdXNlbGVzcyBDKysgY2hlY2tzIjsKICAgIGxvY2FsIGY7CiAgICBmaW5kICIke2Rpcn0iIC1u YW1lIGNvbmZpZ3VyZSB8IHdoaWxlIHJlYWQgZjsgZG8KICAgICAgICBwYXRjaCAtLW5vLWJhY2t1 cC1pZi1taXNtYXRjaCAtcDAgIiR7Zn0iICIke1BPUlRESVJ9L2VjbGFzcy9FTFQtcGF0Y2hlcy9u b2N4eC9ub2N4eC5wYXRjaCIgPiAvZGV2L251bGw7CiAgICBkb25lOwogICAgZWVuZCAwCn0KZXNo b3B0c19wb3AgKCkgCnsgCiAgICBbWyAkIyAtbmUgMCBdXSAmJiBkaWUgImVzaG9wdHNfcG9wIHRh a2VzIG5vIGFyZ3VtZW50cyI7CiAgICBsb2NhbCBpPSQoKCAkeyNfX0VTSE9QVFNfU0FWRV9fW0Bd fSAtIDEgKSk7CiAgICBbWyAke2l9IC1lcSAtMSBdXSAmJiBkaWUgImVzaG9wdHNfe3B1c2gscG9w fTogdW5iYWxhbmNlZCBwYWlyIjsKICAgIGxvY2FsIHM9JHtfX0VTSE9QVFNfU0FWRV9fWyRpXX07 CiAgICB1bnNldCBfX0VTSE9QVFNfU0FWRV9fWyRpXTsKICAgIGlmIFtbICR7c30gPT0gInNob3B0 IC0iKiBdXTsgdGhlbgogICAgICAgIGV2YWwgIiR7c30iIHx8IGRpZSAiZXNob3B0c19wb3A6IHNh bml0eTogaW52YWxpZCBzaG9wdCBvcHRpb25zOiAke3N9IjsKICAgIGVsc2UKICAgICAgICBzZXQg KyQtIHx8IGRpZSAiZXNob3B0c19wb3A6IHNhbml0eTogaW52YWxpZCBzaGVsbCBzZXR0aW5nczog JC0iOwogICAgICAgIHNldCAtJHtzfSB8fCBkaWUgImVzaG9wdHNfcG9wOiBzYW5pdHk6IHVuYWJs ZSB0byByZXN0b3JlIHNhdmVkIHNoZWxsIHNldHRpbmdzOiAke3N9IjsKICAgIGZpCn0KZXNob3B0 c19wdXNoICgpIAp7IAogICAgbG9jYWwgaT0keyNfX0VTSE9QVFNfU0FWRV9fW0BdfTsKICAgIGlm IFtbICQxID09IC1bc3VdIF1dOyB0aGVuCiAgICAgICAgX19FU0hPUFRTX1NBVkVfX1skaV09JChz aG9wdCAtcCk7CiAgICAgICAgW1sgJCMgLWVxIDAgXV0gJiYgcmV0dXJuIDA7CiAgICAgICAgc2hv cHQgIiRAIiB8fCBkaWUgImVzaG9wdHNfcHVzaDogYmFkIG9wdGlvbnMgdG8gc2hvcHQ6ICQqIjsK ICAgIGVsc2UKICAgICAgICBfX0VTSE9QVFNfU0FWRV9fWyRpXT0kLTsKICAgICAgICBbWyAkIyAt ZXEgMCBdXSAmJiByZXR1cm4gMDsKICAgICAgICBzZXQgIiRAIiB8fCBkaWUgImVzaG9wdHNfcHVz aDogYmFkIG9wdGlvbnMgdG8gc2V0OiAkKiI7CiAgICBmaQp9CmVzdm5fY2xlYW4gKCkgCnsgCiAg ICBbWyAteiAkKiBdXSAmJiBzZXQgLS0gLjsKICAgIGZpbmQgIiRAIiAtdHlwZSBkIC1uYW1lICcu c3ZuJyAtcHJ1bmUgLXByaW50MCB8IHhhcmdzIC0wIHJtIC1yZgp9CmZpbHRlci1mbGFncyAoKSAK eyAKICAgIF9maWx0ZXItaGFyZGVuZWQgIiRAIjsKICAgIF9maWx0ZXItdmFyIENGTEFHUyAiJEAi OwogICAgX2ZpbHRlci12YXIgQ1BQRkxBR1MgIiRAIjsKICAgIF9maWx0ZXItdmFyIENYWEZMQUdT ICIkQCI7CiAgICBfZmlsdGVyLXZhciBGRkxBR1MgIiRAIjsKICAgIF9maWx0ZXItdmFyIEZDRkxB R1MgIiRAIjsKICAgIHJldHVybiAwCn0KZmlsdGVyLWxkZmxhZ3MgKCkgCnsgCiAgICBfZmlsdGVy LXZhciBMREZMQUdTICIkQCI7CiAgICByZXR1cm4gMAp9CmZpbHRlci1sZnMtZmxhZ3MgKCkgCnsg CiAgICBbWyAtbiAkQCBdXSAmJiBkaWUgImZpbHRlci1sZnMtZmxhZ3MgdGFrZXMgbm8gYXJndW1l bnRzIjsKICAgIGZpbHRlci1mbGFncyAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklM RV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09VUkNFCn0KZmlsdGVyLW1mcG1hdGggKCkgCnsgCiAg ICBsb2NhbCBvcmlnX21mcG1hdGggbmV3X21hdGggcHJ1bmVfbWF0aDsKICAgIG9yaWdfbWZwbWF0 aD0kKGdldC1mbGFnIC1tZnBtYXRoKTsKICAgIG5ld19tYXRoPSQoZ2V0LWZsYWcgbWZwbWF0aCk7 CiAgICBuZXdfbWF0aD0iICR7bmV3X21hdGgvLywvIH0gIjsKICAgIHBydW5lX21hdGg9IiI7CiAg ICBmb3IgcHJ1bmVfbWF0aCBpbiAiJEAiOwogICAgZG8KICAgICAgICBuZXdfbWF0aD0ke25ld19t YXRoLyAke3BydW5lX21hdGh9IC8gfTsKICAgIGRvbmU7CiAgICBuZXdfbWF0aD0kKGVjaG8gJHtu ZXdfbWF0aH0pOwogICAgbmV3X21hdGg9JHtuZXdfbWF0aC8vIC8sfTsKICAgIGlmIFtbIC16ICR7 bmV3X21hdGh9IF1dOyB0aGVuCiAgICAgICAgZmlsdGVyLWZsYWdzICR7b3JpZ19tZnBtYXRofTsK ICAgIGVsc2UKICAgICAgICByZXBsYWNlLWZsYWdzICR7b3JpZ19tZnBtYXRofSAtbWZwbWF0aD0k e25ld19tYXRofTsKICAgIGZpOwogICAgcmV0dXJuIDAKfQpmaW5kX3VucGFja2FibGVfZmlsZSAo KSAKeyAKICAgIGxvY2FsIHNyYz0kMTsKICAgIGlmIFtbIC16ICR7c3JjfSBdXTsgdGhlbgogICAg ICAgIHNyYz0ke0RJU1RESVJ9LyR7QX07CiAgICBlbHNlCiAgICAgICAgaWYgW1sgLWUgJHtESVNU RElSfS8ke3NyY30gXV07IHRoZW4KICAgICAgICAgICAgc3JjPSR7RElTVERJUn0vJHtzcmN9Owog ICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWUgJHtQV0R9LyR7c3JjfSBdXTsgdGhlbgog ICAgICAgICAgICAgICAgc3JjPSR7UFdEfS8ke3NyY307CiAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgIGlmIFtbIC1lICR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHNy Yz0ke3NyY307CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7 CiAgICBmaTsKICAgIFtbICEgLWUgJHtzcmN9IF1dICYmIHJldHVybiAxOwogICAgZWNobyAiJHtz cmN9Igp9CmdjYy1mdWxsdmVyc2lvbiAoKSAKeyAKICAgIF9nY2NfZnVsbHZlcnNpb24gJyQxLiQy LiQzJyAiJEAiCn0KZ2NjLW1ham9yLXZlcnNpb24gKCkgCnsgCiAgICBfZ2NjX2Z1bGx2ZXJzaW9u ICckMScgIiRAIgp9CmdjYy1taWNyby12ZXJzaW9uICgpIAp7IAogICAgX2djY19mdWxsdmVyc2lv biAnJDMnICIkQCIKfQpnY2MtbWlub3ItdmVyc2lvbiAoKSAKeyAKICAgIF9nY2NfZnVsbHZlcnNp b24gJyQyJyAiJEAiCn0KZ2NjLXNwZWNzLWRpcmVjdGl2ZSAoKSAKeyAKICAgIGxvY2FsIGRpcmVj dGl2ZSBzdWJkbmFtZSBzdWJkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9IiQoX2djYy1zcGVjcy1k aXJlY3RpdmVfcmF3ICQxKSI7CiAgICB3aGlsZSBbWyAke2RpcmVjdGl2ZX0gPT0gKiVcKCpcKSog XV07IGRvCiAgICAgICAgc3ViZG5hbWU9JHtkaXJlY3RpdmUvKiVcKH07CiAgICAgICAgc3ViZG5h bWU9JHtzdWJkbmFtZS9cKSp9OwogICAgICAgIHN1YmRpcmVjdGl2ZT0iJChfZ2NjLXNwZWNzLWRp cmVjdGl2ZV9yYXcgJHtzdWJkbmFtZX0pIjsKICAgICAgICBkaXJlY3RpdmU9IiR7ZGlyZWN0aXZl Ly9cJSgke3N1YmRuYW1lfSkvJHtzdWJkaXJlY3RpdmV9fSI7CiAgICBkb25lOwogICAgZWNobyAi JHtkaXJlY3RpdmV9IjsKICAgIHJldHVybiAwCn0KZ2NjLXNwZWNzLW5vc3RyaWN0ICgpIAp7IAog ICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBj YzEpOwogICAgcmV0dXJuICQoW1sgIiR7ZGlyZWN0aXZlL1x7IWZzdHJpY3Qtb3ZlcmZsb3c6fSIg IT0gIiR7ZGlyZWN0aXZlfSIgXV0pCn0KZ2NjLXNwZWNzLW5vdyAoKSAKeyAKICAgIGxvY2FsIGRp cmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgbGlua19jb21tYW5k KTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2ZS9ceyFub25vdzp9IiAhPSAiJHtkaXJlY3Rp dmV9IiBdXSkKfQpnY2Mtc3BlY3MtcGllICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAg ZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgIiR7 ZGlyZWN0aXZlL1x7IW5vcGllOn0iICE9ICIke2RpcmVjdGl2ZX0iIF1dKQp9CmdjYy1zcGVjcy1y ZWxybyAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVj cy1kaXJlY3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2ZS9c eyFub3JlbHJvOn0iICE9ICIke2RpcmVjdGl2ZX0iIF1dKQp9CmdjYy1zcGVjcy1zc3AgKCkgCnsg CiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZl IGNjMSk7CiAgICByZXR1cm4gJChbWyAiJHtkaXJlY3RpdmUvXHshZm5vLXN0YWNrLXByb3RlY3Rv cjp9IiAhPSAiJHtkaXJlY3RpdmV9IiBdXSkKfQpnY2Mtc3BlY3Mtc3NwLXRvLWFsbCAoKSAKeyAK ICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUg Y2MxKTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2ZS9ceyFmbm8tc3RhY2stcHJvdGVjdG9y LWFsbDp9IiAhPSAiJHtkaXJlY3RpdmV9IiBdXSkKfQpnY2MtdmVyc2lvbiAoKSAKeyAKICAgIF9n Y2NfZnVsbHZlcnNpb24gJyQxLiQyJyAiJEAiCn0KZ2VuX3Vzcl9sZHNjcmlwdCAoKSAKeyAKICAg IGxvY2FsIGxpYiBsaWJkaXI9JChnZXRfbGliZGlyKSBvdXRwdXRfZm9ybWF0PSIiIGF1dG89ZmFs c2Ugc3VmZml4PSQoZ2V0X2xpYm5hbWUpOwogICAgW1sgLXogJHtFRCtzZXR9IF1dICYmIGxvY2Fs IEVEPSR7RCUvfSR7RVBSRUZJWH0vOwogICAgdGMtaXMtc3RhdGljLW9ubHkgJiYgcmV0dXJuOwog ICAgZG9kaXIgL3Vzci8ke2xpYmRpcn07CiAgICBpZiBbWyAkMSA9PSAiLWEiIF1dOyB0aGVuCiAg ICAgICAgYXV0bz10cnVlOwogICAgICAgIHNoaWZ0OwogICAgICAgIGRvZGlyIC8ke2xpYmRpcn07 CiAgICBmaTsKICAgIG91dHB1dF9mb3JtYXQ9JCgkKHRjLWdldENDKSAke0NGTEFHU30gJHtMREZM QUdTfSAtV2wsLS12ZXJib3NlIDI+JjEgfCBzZWQgLW4gJ3MvXk9VVFBVVF9GT1JNQVQoIlwoW14i XSpcKSIsLiovXDEvcCcpOwogICAgW1sgLW4gJHtvdXRwdXRfZm9ybWF0fSBdXSAmJiBvdXRwdXRf Zm9ybWF0PSJPVVRQVVRfRk9STUFUICggJHtvdXRwdXRfZm9ybWF0fSApIjsKICAgIGZvciBsaWIg aW4gIiRAIjsKICAgIGRvCiAgICAgICAgbG9jYWwgdGxpYjsKICAgICAgICBpZiAke2F1dG99OyB0 aGVuCiAgICAgICAgICAgIGxpYj0ibGliJHtsaWJ9JHtzdWZmaXh9IjsKICAgICAgICBlbHNlCiAg ICAgICAgICAgIFtbIC1yICR7RUR9LyR7bGliZGlyfS8ke2xpYn0gXV0gfHwgY29udGludWU7CiAg ICAgICAgZmk7CiAgICAgICAgY2FzZSAke0NUQVJHRVQ6LSR7Q0hPU1R9fSBpbiAKICAgICAgICAg ICAgKi1kYXJ3aW4qKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAg ICAgICAgICAgIHRsaWI9JChzY2FubWFjaG8gLXFGJyVTI0YnICIke0VEfSIvdXNyLyR7bGliZGly fS8ke2xpYn0pOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHRsaWI9 JChzY2FubWFjaG8gLXFGJyVTI0YnICIke0VEfSIvJHtsaWJkaXJ9LyR7bGlifSk7CiAgICAgICAg ICAgICAgICBmaTsKICAgICAgICAgICAgICAgIFtbIC16ICR7dGxpYn0gXV0gJiYgZGllICJ1bmFi bGUgdG8gcmVhZCBpbnN0YWxsX25hbWUgZnJvbSAke2xpYn0iOwogICAgICAgICAgICAgICAgdGxp Yj0ke3RsaWIjIyovfTsKICAgICAgICAgICAgICAgIGlmICR7YXV0b307IHRoZW4KICAgICAgICAg ICAgICAgICAgICBtdiAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHtsaWIlJHtzdWZmaXh9fS4qJHtz dWZmaXgjLn0gIiR7RUR9Ii8ke2xpYmRpcn0vIHx8IGRpZTsKICAgICAgICAgICAgICAgICAgICBp ZiBbWyAke3RsaWJ9ICE9ICR7bGliJSR7c3VmZml4fX0uKiR7c3VmZml4Iy59IF1dOyB0aGVuCiAg ICAgICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke3RsaWIlJHtz dWZmaXh9fS4qJHtzdWZmaXgjLn0gIiR7RUR9Ii8ke2xpYmRpcn0vIHx8IGRpZTsKICAgICAgICAg ICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBybSAtZiAiJHtFRH0iLyR7bGliZGly fS8ke2xpYn07CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGlmIFtbICEgLXcg IiR7RUR9LyR7bGliZGlyfS8ke3RsaWJ9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGNo bW9kIHUrdyAiJHtFRH0ke2xpYmRpcn0vJHt0bGlifSI7CiAgICAgICAgICAgICAgICAgICAgbG9j YWwgbm93cml0ZT15ZXM7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGluc3Rh bGxfbmFtZV90b29sIC1pZCAiJHtFUFJFRklYfSIvJHtsaWJkaXJ9LyR7dGxpYn0gIiR7RUR9Ii8k e2xpYmRpcn0vJHt0bGlifSB8fCBkaWUgImluc3RhbGxfbmFtZV90b29sIGZhaWxlZCI7CiAgICAg ICAgICAgICAgICBbWyAtbiAke25vd3JpdGV9IF1dICYmIGNobW9kIHUtdyAiJHtFRH0ke2xpYmRp cn0vJHt0bGlifSI7CiAgICAgICAgICAgICAgICBwdXNoZCAiJHtFRH0vdXNyLyR7bGliZGlyfSIg PiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICBsbiAtc25mICIuLi8uLi8ke2xpYmRpcn0vJHt0 bGlifSIgIiR7bGlifSI7CiAgICAgICAgICAgICAgICBwb3BkID4gL2Rldi9udWxsCiAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICotYWl4KiB8ICotaXJpeCogfCAqNjQqLWhwdXgqIHwgKi1pbnRl cml4KiB8ICotd2lubnQqKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAg ICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIke0VEfSIvJHts aWJkaXJ9LyB8fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0kKHJlYWRsaW5rICIke0VE fSIvJHtsaWJkaXJ9LyR7bGlifSk7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0ke3RsaWIjIyov fTsKICAgICAgICAgICAgICAgICAgICBpZiBbWyAteiAke3RsaWJ9IF1dOyB0aGVuCiAgICAgICAg ICAgICAgICAgICAgICAgIHRsaWI9JHtsaWJ9OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgcm0gLWYgIiR7RUR9Ii8ke2xpYmRpcn0vJHtsaWJ9OwogICAg ICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg ICAgIHRsaWI9JHtsaWJ9OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBwdXNo ZCAiJHtFRH0vdXNyLyR7bGliZGlyfSIgPiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICBsbiAt c25mICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIgIiR7bGlifSI7CiAgICAgICAgICAgICAgICBw b3BkID4gL2Rldi9udWxsCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGhwcGEqLWhwdXgqKQog ICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHRsaWI9 JChjaGF0ciAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHtsaWJ9IHwgc2VkIC1uICcvaW50ZXJuYWwg bmFtZTove247cy9eICovLztwO3F9Jyk7CiAgICAgICAgICAgICAgICAgICAgW1sgLXogJHt0bGli fSBdXSAmJiB0bGliPSR7bGlifTsKICAgICAgICAgICAgICAgICAgICB0bGliPSR7dGxpYiMjKi99 OwogICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIk e0VEfSIvJHtsaWJkaXJ9LyB8fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHt0bGli fSAhPSAke2xpYn0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIv dXNyLyR7bGliZGlyfS8ke3RsaWJ9KiAiJHtFRH0iLyR7bGliZGlyfS8gfHwgZGllOwogICAgICAg ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIFtbICR7dGxpYn0gIT0gJHtsaWJ9 IF1dICYmIHJtIC1mICIke0VEfSIvJHtsaWJkaXJ9LyR7bGlifTsKICAgICAgICAgICAgICAgIGVs c2UKICAgICAgICAgICAgICAgICAgICB0bGliPSQoY2hhdHIgIiR7RUR9Ii8ke2xpYmRpcn0vJHts aWJ9IHwgc2VkIC1uICcvaW50ZXJuYWwgbmFtZTove247cy9eICovLztwO3F9Jyk7CiAgICAgICAg ICAgICAgICAgICAgW1sgLXogJHt0bGlifSBdXSAmJiB0bGliPSR7bGlifTsKICAgICAgICAgICAg ICAgICAgICB0bGliPSR7dGxpYiMjKi99OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg ICAgICBwdXNoZCAiJHtFRH0iL3Vzci8ke2xpYmRpcn0gPiAvZGV2L251bGw7CiAgICAgICAgICAg ICAgICBsbiAtc25mICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIgIiR7bGlifSI7CiAgICAgICAg ICAgICAgICBbWyAke3RsaWJ9ICE9ICR7bGlifSBdXSAmJiBsbiAtc25mICIuLi8uLi8ke2xpYmRp cn0vJHt0bGlifSIgIiR7dGxpYn0iOwogICAgICAgICAgICAgICAgcG9wZCA+IC9kZXYvbnVsbAog ICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsg dGhlbgogICAgICAgICAgICAgICAgICAgIHRsaWI9JChzY2FuZWxmIC1xRiclUyNGJyAiJHtFRH0i L3Vzci8ke2xpYmRpcn0vJHtsaWJ9KTsKICAgICAgICAgICAgICAgICAgICBbWyAteiAke3RsaWJ9 IF1dICYmIGRpZSAidW5hYmxlIHRvIHJlYWQgU09OQU1FIGZyb20gJHtsaWJ9IjsKICAgICAgICAg ICAgICAgICAgICBtdiAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHtsaWJ9KiAiJHtFRH0iLyR7bGli ZGlyfS8gfHwgZGllOwogICAgICAgICAgICAgICAgICAgIGlmIFtbICR7dGxpYn0gIT0gJHtsaWJ9 KiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBtdiAiJHtFRH0iL3Vzci8ke2xpYmRp cn0vJHt0bGlifSogIiR7RUR9Ii8ke2xpYmRpcn0vIHx8IGRpZTsKICAgICAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgICAgICAgICBybSAtZiAiJHtFRH0iLyR7bGliZGlyfS8ke2xpYn07 CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgdGxpYj0ke2xpYn07CiAg ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGNhdCA+ICIke0VEfS91c3IvJHtsaWJk aXJ9LyR7bGlifSIgIDw8LUVORF9MRFNDUklQVAovKiBHTlUgbGQgc2NyaXB0CiAgIFNpbmNlIEdl bnRvbyBoYXMgY3JpdGljYWwgZHluYW1pYyBsaWJyYXJpZXMgaW4gL2xpYiwgYW5kIHRoZSBzdGF0 aWMgdmVyc2lvbnMKICAgaW4gL3Vzci9saWIsIHdlIG5lZWQgdG8gaGF2ZSBhICJmYWtlIiBkeW5h bWljIGxpYiBpbiAvdXNyL2xpYiwgb3RoZXJ3aXNlIHdlCiAgIHJ1biBpbnRvIGxpbmtpbmcgcHJv YmxlbXMuICBUaGlzICJmYWtlIiBkeW5hbWljIGxpYiBpcyBhIGxpbmtlciBzY3JpcHQgdGhhdAog ICByZWRpcmVjdHMgdGhlIGxpbmtlciB0byB0aGUgcmVhbCBsaWIuICBBbmQgeWVzLCB0aGlzIHdv cmtzIGluIHRoZSBjcm9zcy0KICAgY29tcGlsaW5nIHNjZW5hcmlvIGFzIHRoZSBzeXNyb290LWVk IGxpbmtlciB3aWxsIHByZXBlbmQgdGhlIHJlYWwgcGF0aC4KCiAgIFNlZSBidWcgaHR0cDovL2J1 Z3MuZ2VudG9vLm9yZy80NDExIGZvciBtb3JlIGluZm8uCiAqLwoke291dHB1dF9mb3JtYXR9CkdS T1VQICggJHtFUFJFRklYfS8ke2xpYmRpcn0vJHt0bGlifSApCkVORF9MRFNDUklQVAoKICAgICAg ICAgICAgOzsKICAgICAgICBlc2FjCiAgICAgICAgZnBlcm1zIGEreCAiL3Vzci8ke2xpYmRpcn0v JHtsaWJ9IiB8fCBkaWUgImNvdWxkIG5vdCBjaGFuZ2UgcGVybXMgb24gJHtsaWJ9IjsKICAgIGRv bmUKfQpnZXQtZmxhZyAoKSAKeyAKICAgIGxvY2FsIGYgZmluZGZsYWc9IiQxIjsKICAgIGZvciBm IGluICR7Q0ZMQUdTfSAke0NYWEZMQUdTfSAke0ZGTEFHU30gJHtGQ0ZMQUdTfTsKICAgIGRvCiAg ICAgICAgaWYgWyAiJHtmLyR7ZmluZGZsYWd9fSIgIT0gIiR7Zn0iIF07IHRoZW4KICAgICAgICAg ICAgcHJpbnRmICIlc1xuIiAiJHtmLy0ke2ZpbmRmbGFnfT19IjsKICAgICAgICAgICAgcmV0dXJu IDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgcmV0dXJuIDEKfQpnZXRfYWJpX0FTRkxBR1Mg KCkgCnsgCiAgICBnZXRfYWJpX3ZhciBBU0ZMQUdTICIkQCIKfQpnZXRfYWJpX0NGTEFHUyAoKSAK eyAKICAgIGdldF9hYmlfdmFyIENGTEFHUyAiJEAiCn0KZ2V0X2FiaV9DSE9TVCAoKSAKeyAKICAg IGdldF9hYmlfdmFyIENIT1NUICIkQCIKfQpnZXRfYWJpX0NUQVJHRVQgKCkgCnsgCiAgICBnZXRf YWJpX3ZhciBDVEFSR0VUICIkQCIKfQpnZXRfYWJpX0ZBS0VfVEFSR0VUUyAoKSAKeyAKICAgIGdl dF9hYmlfdmFyIEZBS0VfVEFSR0VUUyAiJEAiCn0KZ2V0X2FiaV9MREZMQUdTICgpIAp7IAogICAg Z2V0X2FiaV92YXIgTERGTEFHUyAiJEAiCn0KZ2V0X2FiaV9MSUJESVIgKCkgCnsgCiAgICBnZXRf YWJpX3ZhciBMSUJESVIgIiRAIgp9CmdldF9hYmlfdmFyICgpIAp7IAogICAgbG9jYWwgZmxhZz0k MTsKICAgIGxvY2FsIGFiaTsKICAgIGlmIFsgJCMgLWd0IDEgXTsgdGhlbgogICAgICAgIGFiaT0k ezJ9OwogICAgZWxzZQogICAgICAgIGlmIFsgLW4gIiR7QUJJfSIgXTsgdGhlbgogICAgICAgICAg ICBhYmk9JHtBQkl9OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgWyAtbiAiJHtERUZBVUxU X0FCSX0iIF07IHRoZW4KICAgICAgICAgICAgICAgIGFiaT0ke0RFRkFVTFRfQUJJfTsKICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgYWJpPSJkZWZhdWx0IjsKICAgICAgICAgICAgZmk7 CiAgICAgICAgZmk7CiAgICBmaTsKICAgIGxvY2FsIHZhcj0iJHtmbGFnfV8ke2FiaX0iOwogICAg ZWNobyAkeyF2YXJ9Cn0KZ2V0X2FsbF9hYmlzICgpIAp7IAogICAgbG9jYWwgb3JkZXI9IiI7CiAg ICBpZiBbWyAteiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAgICAgZWNobyAiZGVmYXVs dCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGZvciB4IGluICR7TVVMVElMSUJfQUJJ U307CiAgICBkbwogICAgICAgIGlmIFtbICR7eH0gIT0gJHtERUZBVUxUX0FCSX0gXV07IHRoZW4K ICAgICAgICAgICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0ke3h9IjsKICAgICAgICBmaTsK ICAgIGRvbmU7CiAgICBvcmRlcj0iJHtvcmRlcjorJHtvcmRlcn0gfSR7REVGQVVMVF9BQkl9IjsK ICAgIGVjaG8gJHtvcmRlcn07CiAgICByZXR1cm4gMAp9CmdldF9hbGxfbGliZGlycyAoKSAKeyAK ICAgIGxvY2FsIGxpYmRpcnM7CiAgICBsb2NhbCBhYmk7CiAgICBsb2NhbCBkaXI7CiAgICBmb3Ig YWJpIGluICR7TVVMVElMSUJfQUJJU307CiAgICBkbwogICAgICAgIGxpYmRpcnMrPSIgJChnZXRf YWJpX0xJQkRJUiAke2FiaX0pIjsKICAgIGRvbmU7CiAgICBbWyAiICR7bGliZGlyc30gIiAhPSAq IiBsaWIgIiogXV0gJiYgbGliZGlycys9IiBsaWIiOwogICAgZWNobyAiJHtsaWJkaXJzfSIKfQpn ZXRfYm1ha2UgKCkgCnsgCiAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAqQlNEIF1dOyB0aGVuCiAg ICAgICAgZWNobyBtYWtlOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7VVNFUkxBTkR9ID09ICJE YXJ3aW4iIF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8gYnNkbWFrZTsKICAgICAgICBlbHNlCiAg ICAgICAgICAgIGVjaG8gcG1ha2U7CiAgICAgICAgZmk7CiAgICBmaQp9CmdldF9pbnN0YWxsX2Fi aXMgKCkgCnsgCiAgICBsb2NhbCBvcmRlcj0iIjsKICAgIGlmIFtbIC16ICR7TVVMVElMSUJfQUJJ U30gXV07IHRoZW4KICAgICAgICBlY2hvICJkZWZhdWx0IjsKICAgICAgICByZXR1cm4gMDsKICAg IGZpOwogICAgaWYgW1sgJHtFTVVMVElMSUJfUEtHfSA9PSAidHJ1ZSIgXV07IHRoZW4KICAgICAg ICBmb3IgeCBpbiAke01VTFRJTElCX0FCSVN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtb ICR7eH0gIT0gIiR7REVGQVVMVF9BQkl9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgaGFzcSAk e3h9ICR7QUJJX0RFTll9IHx8IG9yZGVyPSIke29yZGVyfSAke3h9IjsKICAgICAgICAgICAgZmk7 CiAgICAgICAgZG9uZTsKICAgICAgICBoYXNxICR7REVGQVVMVF9BQkl9ICR7QUJJX0RFTll9IHx8 IG9yZGVyPSIke29yZGVyfSAke0RFRkFVTFRfQUJJfSI7CiAgICAgICAgaWYgW1sgLW4gJHtBQklf QUxMT1d9IF1dOyB0aGVuCiAgICAgICAgICAgIGxvY2FsIG9yZGVyYT0iIjsKICAgICAgICAgICAg Zm9yIHggaW4gJHtvcmRlcn07CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBoYXNx ICR7eH0gJHtBQklfQUxMT1d9OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgb3JkZXJhPSIke29y ZGVyYX0gJHt4fSI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZG9uZTsKICAgICAg ICAgICAgb3JkZXI9JHtvcmRlcmF9OwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIG9yZGVy PSR7REVGQVVMVF9BQkl9OwogICAgZmk7CiAgICBpZiBbWyAteiAke29yZGVyfSBdXTsgdGhlbgog ICAgICAgIGRpZSAiVGhlIEFCSSBsaXN0IGlzIGVtcHR5LiAgQXJlIHlvdSB1c2luZyBhIHByb3Bl ciBtdWx0aWxpYiBwcm9maWxlPyAgUGVyaGFwcyB5b3VyIFVTRSBmbGFncyBvciBNVUxUSUxJQl9B QklTIGFyZSB0b28gcmVzdHJpY3RpdmUgZm9yIHRoaXMgcGFja2FnZS4iOwogICAgZmk7CiAgICBl Y2hvICR7b3JkZXJ9OwogICAgcmV0dXJuIDAKfQpnZXRfbGliZGlyICgpIAp7IAogICAgbG9jYWwg Q09ORl9MSUJESVI7CiAgICBpZiBbIC1uICIke0NPTkZfTElCRElSX09WRVJSSURFfSIgXTsgdGhl bgogICAgICAgIGVjaG8gJHtDT05GX0xJQkRJUl9PVkVSUklERX07CiAgICBlbHNlCiAgICAgICAg Z2V0X2FiaV9MSUJESVI7CiAgICBmaQp9CmdldF9saWJkaXJfb3ZlcnJpZGUgKCkgCnsgCiAgICBp ZiBoYXNfbXVsdGlsaWJfcHJvZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0X2xpYmRpcl9v dmVycmlkZSBjYWxsZWQsIGJ1dCBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ldyBt dWx0aWxpYiBhcHByb2FjaC4gIFBsZWFzZSBmaWxlIGEgYnVnIGF0IGh0dHA6Ly9idWdzLmdlbnRv by5vcmcgYW5kIGFzc2lnbiBpdCB0byBlcmFkaWNhdG9yQGdlbnRvby5vcmciOwogICAgICAgIGV4 aXQgMTsKICAgIGZpOwogICAgQ09ORl9MSUJESVI9IiQxIjsKICAgIENPTkZfTElCRElSX09WRVJS SURFPSIkMSI7CiAgICBMSUJESVJfZGVmYXVsdD0iJDEiCn0KZ2V0X2xpYm5hbWUgKCkgCnsgCiAg ICBsb2NhbCBsaWJuYW1lOwogICAgbG9jYWwgdmVyPSQxOwogICAgY2FzZSAke0NIT1NUfSBpbiAK ICAgICAgICAqLWN5Z3dpbiB8IG1pbmd3KiB8ICotbWluZ3cqKQogICAgICAgICAgICBsaWJuYW1l PSJkbGwiCiAgICAgICAgOzsKICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgIGxpYm5hbWU9 ImR5bGliIgogICAgICAgIDs7CiAgICAgICAgKi1taW50KikKICAgICAgICAgICAgbGlibmFtZT0i aXJyZWxldmFudCIKICAgICAgICA7OwogICAgICAgIGhwcGEqLWhwdXgqKQogICAgICAgICAgICBs aWJuYW1lPSJzbCIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGxpYm5hbWU9InNv IgogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgLXogJCogXV07IHRoZW4KICAgICAgICBl Y2hvICIuJHtsaWJuYW1lfSI7CiAgICBlbHNlCiAgICAgICAgZm9yIHZlciBpbiAiJEAiOwogICAg ICAgIGRvCiAgICAgICAgICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgICAgICAgICAqLWRh cndpbiopCiAgICAgICAgICAgICAgICAgICAgZWNobyAiLiR7dmVyfS4ke2xpYm5hbWV9IgogICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICotbWludCopCiAgICAgICAgICAgICAgICAg ICAgZWNobyAiLiR7bGlibmFtZX0iCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg KikKICAgICAgICAgICAgICAgICAgICBlY2hvICIuJHtsaWJuYW1lfS4ke3Zlcn0iCiAgICAgICAg ICAgICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGRvbmU7CiAgICBmaQp9CmdldF9t b2RuYW1lICgpIAp7IAogICAgbG9jYWwgbW9kbmFtZTsKICAgIGxvY2FsIHZlcj0kMTsKICAgIGNh c2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBtb2RuYW1lPSJi dW5kbGUiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBtb2RuYW1lPSJzbyIKICAg ICAgICA7OwogICAgZXNhYzsKICAgIGVjaG8gIi4ke21vZG5hbWV9Igp9CmdldF9tb3VudHMgKCkg CnsgCiAgICBsb2NhbCBwb2ludD0gbm9kZT0gZnM9IG9wdHM9IGZvbz07CiAgICBpZiBbWyAkKHVu YW1lIC1zKSA9PSAiTGludXgiIF1dOyB0aGVuCiAgICAgICAgd2hpbGUgcmVhZCBub2RlIHBvaW50 IGZzIG9wdHMgZm9vOyBkbwogICAgICAgICAgICBlY2hvICIke3BvaW50fSAke25vZGV9ICR7ZnN9 ICR7b3B0c30iOwogICAgICAgIGRvbmUgPCAvcHJvYy9tb3VudHM7CiAgICAgICAgcmV0dXJuOwog ICAgZmk7CiAgICBsb2NhbCBJRlM9JwknOwogICAgTENfQUxMPUMgbW91bnQgLXAgfCB3aGlsZSBy ZWFkIG5vZGUgcG9pbnQgZnMgZm9vOyBkbwogICAgICAgIG9wdHM9JHtmcyMqIH07CiAgICAgICAg ZnM9JHtmcyUlICp9OwogICAgICAgIGVjaG8gIiR7cG9pbnQvLyAvXDA0MH0gJHtub2RlLy8gL1ww NDB9ICR7ZnMlJSAqfSAke29wdHMvLyAvXDA0MH0iOwogICAgZG9uZQp9CmdldF9tdWx0aWxpYmRp ciAoKSAKeyAKICAgIGlmIGhhc19tdWx0aWxpYl9wcm9maWxlOyB0aGVuCiAgICAgICAgZWVycm9y ICJnZXRfbXVsdGlsaWJkaXIgY2FsbGVkLCBidXQgaXQgc2hvdWxkbid0IGJlIG5lZWRlZCB3aXRo IHRoZSBuZXcgbXVsdGlsaWIgYXBwcm9hY2guICBQbGVhc2UgZmlsZSBhIGJ1ZyBhdCBodHRwOi8v YnVncy5nZW50b28ub3JnIGFuZCBhc3NpZ24gaXQgdG8gZXJhZGljYXRvckBnZW50b28ub3JnIjsK ICAgICAgICBleGl0IDE7CiAgICBmaTsKICAgIGVjaG8gJHtDT05GX01VTFRJTElCRElSOj1saWIz Mn0KfQpnZXRwYW1fbW9kX2RpciAoKSAKeyAKICAgIGlmIGhhc192ZXJzaW9uIHN5cy1saWJzL3Bh bSB8fCBoYXNfdmVyc2lvbiBzeXMtbGlicy9vcGVucGFtOyB0aGVuCiAgICAgICAgUEFNX01PRF9E SVI9LyQoZ2V0X2xpYmRpcikvc2VjdXJpdHk7CiAgICBlbHNlCiAgICAgICAgUEFNX01PRF9ESVI9 LyQoZ2V0X2xpYmRpcikvc2VjdXJpdHk7CiAgICBmaTsKICAgIGVjaG8gJHtQQU1fTU9EX0RJUn0K fQpoYXNfaGFyZGVuZWQgKCkgCnsgCiAgICBld2FybiAiaGFzX2hhcmRlbmVkOiBkZXByZWNhdGVk LCBwbGVhc2UgdXNlIGdjYy1zcGVjcy17cmVscm8sbm93fSgpISIgMT4mMjsKICAgIHRlc3RfdmVy c2lvbl9pbmZvIEhhcmRlbmVkICYmIHJldHVybiAwOwogICAgW1sgLWYgJHtHQ0NfU1BFQ1N9ICYm ICR7R0NDX1NQRUNTfSAhPSAke0dDQ19TUEVDUy9oYXJkZW5lZC99IF1dCn0KaGFzX20zMiAoKSAK eyAKICAgIFsgIiQodGMtYXJjaCkiID0gImFtZDY0IiBdICYmIGhhc19tdWx0aWxpYl9wcm9maWxl ICYmIHJldHVybiAwOwogICAgbG9jYWwgdGVtcD0kKGVta3RlbXApOwogICAgZWNobyAiaW50IG1h aW4oKSB7IHJldHVybigwKTsgfSIgPiAiJHt0ZW1wfSIuYzsKICAgIE1ZX0NDPSQodGMtZ2V0Q0Mp OwogICAgJHtNWV9DQy8gLiovfSAtbTMyIC1vICIkKGVta3RlbXApIiAiJHt0ZW1wfSIuYyA+IC9k ZXYvbnVsbCAyPiYxOwogICAgbG9jYWwgcmV0PSQ/OwogICAgcm0gLWYgIiR7dGVtcH0iLmM7CiAg ICBbWyAke3JldH0gIT0gMSBdXSAmJiByZXR1cm4gMDsKICAgIHJldHVybiAxCn0KaGFzX202NCAo KSAKeyAKICAgIGxvY2FsIHRlbXA9IiQoZW1rdGVtcCkiOwogICAgZWNobyAiaW50IG1haW4oKSB7 IHJldHVybigwKTsgfSIgPiAiJHt0ZW1wfSIuYzsKICAgIE1ZX0NDPSQodGMtZ2V0Q0MpOwogICAg JHtNWV9DQy8gLiovfSAtbTY0IC1vICIkKGVta3RlbXApIiAiJHt0ZW1wfSIuYyA+IC9kZXYvbnVs bCAyPiYxOwogICAgbG9jYWwgcmV0PSQ/OwogICAgcm0gLWYgIiR7dGVtcH0iLmM7CiAgICBbWyAk e3JldH0gIT0gMSBdXSAmJiByZXR1cm4gMDsKICAgIHJldHVybiAxCn0KaGFzX211bHRpbGliX3By b2ZpbGUgKCkgCnsgCiAgICBbIC1uICIke01VTFRJTElCX0FCSVN9IiAtYSAiJHtNVUxUSUxJQl9B QklTfSIgIT0gIiR7TVVMVElMSUJfQUJJUy8gL30iIF0KfQpoYXNfcGljICgpIAp7IAogICAgZXdh cm4gImhhc19waWM6IGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgZ2NjLXNwZWNzLXBpZSgpISIgMT4m MjsKICAgIFtbICR7Q0ZMQUdTLy1mUElDfSAhPSAke0NGTEFHU30gfHwgJHtDRkxBR1MvLWZwaWN9 ICE9ICR7Q0ZMQUdTfSBdXSB8fCBnY2Mtc3BlY3MtcGllCn0KaGFzX3BpZSAoKSAKeyAKICAgIGV3 YXJuICJoYXNfcGllOiBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGdjYy1zcGVjcy1waWUoKSEiIDE+ JjI7CiAgICBbWyAke0NGTEFHUy8tZlBJRX0gIT0gJHtDRkxBR1N9IHx8ICR7Q0ZMQUdTLy1mcGll fSAhPSAke0NGTEFHU30gXV0gfHwgZ2NjLXNwZWNzLXBpZQp9Cmhhc19zc3AgKCkgCnsgCiAgICBl d2FybiAiaGFzX3NzcDogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mtc3BlY3Mtc3NwKCkhIiAx PiYyOwogICAgW1sgJHtDRkxBR1MvLWZzdGFjay1wcm90ZWN0b3J9ICE9ICR7Q0ZMQUdTfSB8fCAt biAkKGVjaG8gfCAkKHRjLWdldENDKSAke0NGTEFHU30gLUUgLWRNIC0gfCBncmVwIF9fU1NQX18p IF1dIHx8IGdjYy1zcGVjcy1zc3AKfQpoYXNfc3NwX2FsbCAoKSAKeyAKICAgIGV3YXJuICJoYXNf c3NwX2FsbDogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mtc3BlY3Mtc3NwKCkhIiAxPiYyOwog ICAgW1sgJHtDRkxBR1MvLWZzdGFjay1wcm90ZWN0b3ItYWxsfSAhPSAke0NGTEFHU30gfHwgLW4g JChlY2hvIHwgJCh0Yy1nZXRDQykgJHtDRkxBR1N9IC1FIC1kTSAtIHwgZ3JlcCBfX1NTUF9BTExf XykgXV0gfHwgZ2NjLXNwZWNzLXNzcC10by1hbGwKfQpoZWxwZXJzX2RpZSAoKSAKeyAKICAgIGNh c2UgIiR7RUFQSTotMH0iIGluIAogICAgICAgIDAgfCAxIHwgMiB8IDMpCiAgICAgICAgICAgIGVj aG8gLWUgIiRAIiAxPiYyCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBkaWUgIiRA IgogICAgICAgIDs7CiAgICBlc2FjCn0KaXMtZmxhZyAoKSAKeyAKICAgIGlzLWZsYWdxICIkQCIg JiYgZWNobyB0cnVlCn0KaXMtZmxhZ3EgKCkgCnsgCiAgICBbWyAtbiAkMiBdXSAmJiBkaWUgIlVz YWdlOiBpcy1mbGFnIDxmbGFnPiI7CiAgICBfaXNfZmxhZ3EgQ0ZMQUdTICQxIHx8IF9pc19mbGFn cSBDWFhGTEFHUyAkMSB8fCBfaXNfZmxhZ3EgRkZMQUdTICQxIHx8IF9pc19mbGFncSBGQ0ZMQUdT ICQxCn0KaXMtbGRmbGFnICgpIAp7IAogICAgaXMtbGRmbGFncSAiJEAiICYmIGVjaG8gdHJ1ZQp9 CmlzLWxkZmxhZ3EgKCkgCnsgCiAgICBbWyAtbiAkMiBdXSAmJiBkaWUgIlVzYWdlOiBpcy1sZGZs YWcgPGZsYWc+IjsKICAgIF9pc19mbGFncSBMREZMQUdTICQxCn0KaXMtbG9naW4tZGlzYWJsZWQg KCkgCnsgCiAgICBzaGVsbD0kKGVnZXRzaGVsbCAiJDEiKTsKICAgIGNhc2UgJHtzaGVsbH0gaW4g CiAgICAgICAgL2Jpbi9mYWxzZSB8IC91c3IvYmluL2ZhbHNlIHwgL3NiaW4vbm9sb2dpbiB8IC91 c3Ivc2Jpbi9ub2xvZ2luKQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIDs7CiAgICAgICAg KikKICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICA7OwogICAgZXNhYwp9CmlzX2ZpbmFsX2Fi aSAoKSAKeyAKICAgIGhhc19tdWx0aWxpYl9wcm9maWxlIHx8IHJldHVybiAwOwogICAgc2V0IC0t ICQoZ2V0X2luc3RhbGxfYWJpcyk7CiAgICBsb2NhbCBMQVNUX0FCST0kIzsKICAgIFtbICR7IUxB U1RfQUJJfSA9PSAke0FCSX0gXV0KfQptYWtlX2Rlc2t0b3BfZW50cnkgKCkgCnsgCiAgICBbWyAt eiAkMSBdXSAmJiBkaWUgIm1ha2VfZGVza3RvcF9lbnRyeTogWW91IG11c3Qgc3BlY2lmeSB0aGUg ZXhlY3V0YWJsZSI7CiAgICBsb2NhbCBleGVjPSR7MX07CiAgICBsb2NhbCBuYW1lPSR7MjotJHtQ Tn19OwogICAgbG9jYWwgaWNvbj0kezM6LSR7UE59fTsKICAgIGxvY2FsIHR5cGU9JHs0fTsKICAg IGxvY2FsIGZpZWxkcz0kezV9OwogICAgaWYgW1sgLXogJHt0eXBlfSBdXTsgdGhlbgogICAgICAg IGxvY2FsIGNhdG1haj0ke0NBVEVHT1JZJSUtKn07CiAgICAgICAgbG9jYWwgY2F0bWluPSR7Q0FU RUdPUlkjIyotfTsKICAgICAgICBjYXNlICR7Y2F0bWFqfSBpbiAKICAgICAgICAgICAgYXBwKQog ICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgYWNj ZXNzaWJpbGl0eSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BY2Nlc3NpYmlsaXR5CiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhZG1pbikKICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT1TeXN0ZW0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgIGFudGl2aXJ1cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TeXN0 ZW0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGFyY2gpCiAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGU9QXJjaGl2aW5nCiAgICAgICAgICAgICAgICAgICAgOzsK ICAgICAgICAgICAgICAgICAgICBiYWNrdXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 QXJjaGl2aW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBjZHIp CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGlzY0J1cm5pbmcKICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgICAgIGRpY3RzKQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPURpY3Rpb25hcnkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg ICAgIGRvYykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Eb2N1bWVudGF0aW9uCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlZGl0b3JzKQogICAgICAgICAg ICAgICAgICAgICAgICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICAgICAgICAgIGVtYWNzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVRleHRF ZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGVtdWxhdGlv bikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbXVsYXRvcgogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbGFwdG9wKQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPUhhcmR3YXJlU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg ICAgICAgICAgIG9mZmljZSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1PZmZpY2UKICAg ICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBkYSkKICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZT1QREEKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg ICAgICAgIHZpbSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRpdG9yCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB4ZW1hY3MpCiAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU9VGV4dEVkaXRvcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICBlc2FjCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGRldikKICAgICAgICAg ICAgICAgIHR5cGU9IkRldmVsb3BtZW50IgogICAgICAgICAgICA7OwogICAgICAgICAgICBnYW1l cykKICAgICAgICAgICAgICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAg IGFjdGlvbiB8IGZwcykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BY3Rpb25HYW1lCiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhcmNhZGUpCiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9QXJjYWRlR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAgICAgYm9hcmQpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Qm9h cmRHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlbXVsYXRp b24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RW11bGF0b3IKICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgICAgIGtpZHMpCiAgICAgICAgICAgICAgICAgICAgICAg IHR5cGU9S2lkc0dhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg IHB1enpsZSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Mb2dpY0dhbWUKICAgICAgICAg ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHJvZ3VlbGlrZSkKICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZT1Sb2xlUGxheWluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICAgICAgcnBnKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVJvbGVQbGF5 aW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBzaW11bGF0aW9u KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVNpbXVsYXRpb24KICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgICAgIHNwb3J0cykKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZT1TcG9ydHNHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg ICAgICBzdHJhdGVneSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TdHJhdGVneUdhbWUK ICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAg ICAgIHR5cGU9IkdhbWU7JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZ25vbWUp CiAgICAgICAgICAgICAgICB0eXBlPSJHbm9tZTtHVEsiCiAgICAgICAgICAgIDs7CiAgICAgICAg ICAgIGtkZSkKICAgICAgICAgICAgICAgIHR5cGU9IktERTtRdCIKICAgICAgICAgICAgOzsKICAg ICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAgIHR5cGU9Ik5ldHdvcms7RW1haWwiCiAgICAg ICAgICAgIDs7CiAgICAgICAgICAgIG1lZGlhKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1p bn0gaW4gCiAgICAgICAgICAgICAgICAgICAgZ2Z4KQogICAgICAgICAgICAgICAgICAgICAgICB0 eXBlPUdyYXBoaWNzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAq KQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJhZGlvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGU9VHVuZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzb3VuZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUF1 ZGlvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UVgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVv KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9VmlkZW8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9IkF1ZGlvVmlkZW87JHt0eXBlfSIKICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgZXNhYwogICAgICAgICAgICA7OwogICAgICAgICAgICBu ZXQpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAg ICBkaWFsdXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGlhbHVwCiAgICAgICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBmdHApCiAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGU9RmlsZVRyYW5zZmVyCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICAgICBpbSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1JbnN0YW50TWVzc2FnaW5n CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBpcmMpCiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9SVJDQ2xpZW50CiAgICAgICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgICAgICAgICBtYWlsKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVtYWls CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBuZXdzKQogICAgICAg ICAgICAgICAgICAgICAgICB0eXBlPU5ld3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgIG5udHApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9TmV3cwogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcDJwKQogICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICAgICAgdm9pcCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZWxlcGhv bnkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAg ICAgICAgIHR5cGU9Ik5ldHdvcms7JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAg c2NpKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAg ICAgYXN0cm8qKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFzdHJvbm9teQogICAgICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYmlvKikKICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT1CaW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICAgICBjYWxjKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1DYWxjdWxhdG9yCiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBjaGVtKikKICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT1DaGVtaXN0cnkKICAgICAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICAgICAgICAgIGVsZWMqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVsZWN0 cm9uaWNzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBnZW8qKQog ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUdlb2xvZ3kKICAgICAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICAgICAgICAgIG1hdGgqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PU1hdGgKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBoeXNpY3Mp CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9UGh5c2ljcwogICAgICAgICAgICAgICAgICAg IDs7CiAgICAgICAgICAgICAgICAgICAgdmlzdWFsKikKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT1EYXRhVmlzdWFsaXphdGlvbgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICBlc2FjOwogICAgICAgICAgICAgICAgdHlwZT0iRWR1Y2F0aW9uO1NjaWVuY2U7JHt0eXBl fSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgc3lzKQogICAgICAgICAgICAgICAgdHlwZT0i U3lzdGVtIgogICAgICAgICAgICA7OwogICAgICAgICAgICB3d3cpCiAgICAgICAgICAgICAgICBj YXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBjbGllbnQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU9V2ViQnJvd3NlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICBlc2FjOwogICAgICAgICAgICAgICAgdHlwZT0iTmV0d29yazske3R5cGV9Igog ICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgdHlwZT0KICAgICAg ICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbICIke1NMT1R9IiA9PSAiMCIg XTsgdGhlbgogICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0iOwogICAgZWxzZQogICAg ICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0tJHtTTE9UfSI7CiAgICBmaTsKICAgIGxvY2Fs IGRlc2t0b3A9IiR7VH0vJChlY2hvICR7ZXhlY30gfCBzZWQgJ3M6W1s6c3BhY2U6XS86XTpfOmcn KS0ke2Rlc2t0b3BfbmFtZX0uZGVza3RvcCI7CiAgICB0eXBlPSR7dHlwZSU7fSR7dHlwZTorO307 CiAgICBlc2hvcHRzX3B1c2ggLXMgZXh0Z2xvYjsKICAgIGlmIFtbIC1uICR7aWNvbn0gJiYgJHtp Y29ufSAhPSAvKiBdXSAmJiBbWyAke2ljb259ID09ICoueHBtIHx8ICR7aWNvbn0gPT0gKi5wbmcg fHwgJHtpY29ufSA9PSAqLnN2ZyBdXTsgdGhlbgogICAgICAgIGV3YXJuICJBcyBkZXNjcmliZWQg aW4gdGhlIEljb24gVGhlbWUgU3BlY2lmaWNhdGlvbiwgaWNvbiBmaWxlIGV4dGVuc2lvbnMgYXJl IG5vdCI7CiAgICAgICAgZXdhcm4gImFsbG93ZWQgaW4gLmRlc2t0b3AgZmlsZXMgaWYgdGhlIHZh bHVlIGlzIG5vdCBhbiBhYnNvbHV0ZSBwYXRoLiI7CiAgICAgICAgaWNvbj0ke2ljb24lLkAoeHBt fHBuZ3xzdmcpfTsKICAgIGZpOwogICAgZXNob3B0c19wb3A7CiAgICBjYXQgPiAiJHtkZXNrdG9w fSIgIDw8LUVPRgpbRGVza3RvcCBFbnRyeV0KTmFtZT0ke25hbWV9ClR5cGU9QXBwbGljYXRpb24K Q29tbWVudD0ke0RFU0NSSVBUSU9OfQpFeGVjPSR7ZXhlY30KVHJ5RXhlYz0ke2V4ZWMlJSAqfQpJ Y29uPSR7aWNvbn0KQ2F0ZWdvcmllcz0ke3R5cGV9CkVPRgoKICAgIGlmIFtbICR7ZmllbGRzOi09 fSAhPSAqPSogXV07IHRoZW4KICAgICAgICBld2FybiAibWFrZV9kZXNrdG9wX2VudHJ5OiB1cGRh dGUgeW91ciA1dGggYXJnIHRvIHJlYWQgUGF0aD0ke2ZpZWxkc30iOwogICAgICAgIGZpZWxkcz0i UGF0aD0ke2ZpZWxkc30iOwogICAgZmk7CiAgICBbWyAtbiAke2ZpZWxkc30gXV0gJiYgcHJpbnRm ICclYlxuJyAiJHtmaWVsZHN9IiA+PiAiJHtkZXNrdG9wfSI7CiAgICAoIGluc2ludG8gL3Vzci9z aGFyZS9hcHBsaWNhdGlvbnM7CiAgICBkb2lucyAiJHtkZXNrdG9wfSIgKSB8fCBkaWUgImluc3Rh bGxpbmcgZGVza3RvcCBmaWxlIGZhaWxlZCIKfQptYWtlX3Nlc3Npb25fZGVza3RvcCAoKSAKeyAK ICAgIFtbIC16ICQxIF1dICYmIGVlcnJvciAiJDA6IFlvdSBtdXN0IHNwZWNpZnkgdGhlIHRpdGxl IiAmJiByZXR1cm4gMTsKICAgIFtbIC16ICQyIF1dICYmIGVlcnJvciAiJDA6IFlvdSBtdXN0IHNw ZWNpZnkgdGhlIGNvbW1hbmQiICYmIHJldHVybiAxOwogICAgbG9jYWwgdGl0bGU9JDE7CiAgICBs b2NhbCBjb21tYW5kPSQyOwogICAgbG9jYWwgZGVza3RvcD0ke1R9LyR7d206LSR7UE59fS5kZXNr dG9wOwogICAgc2hpZnQgMjsKICAgIGNhdCA+ICIke2Rlc2t0b3B9IiAgPDwtRU9GCltEZXNrdG9w IEVudHJ5XQpOYW1lPSR7dGl0bGV9CkNvbW1lbnQ9VGhpcyBzZXNzaW9uIGxvZ3MgeW91IGludG8g JHt0aXRsZX0KRXhlYz0ke2NvbW1hbmR9ICQqClRyeUV4ZWM9JHtjb21tYW5kfQpUeXBlPVhTZXNz aW9uCkVPRgoKICAgICggaW5zaW50byAvdXNyL3NoYXJlL3hzZXNzaW9uczsKICAgIGRvaW5zICIk e2Rlc2t0b3B9IiApCn0KbWFrZV93cmFwcGVyICgpIAp7IAogICAgbG9jYWwgd3JhcHBlcj0kMSBi aW49JDIgY2hkaXI9JDMgbGliZGlyPSQ0IHBhdGg9JDU7CiAgICBsb2NhbCB0bXB3cmFwcGVyPSQo ZW1rdGVtcCk7CiAgICBjYXQgPiAiJHt0bXB3cmFwcGVyfSIgIDw8RU9GCiMhL2Jpbi9zaApjZCAi JHtjaGRpcjotLn0iCmlmIFsgLW4gIiR7bGliZGlyfSIgXSA7IHRoZW4KCWlmIFsgIlwke0xEX0xJ QlJBUllfUEFUSCtzZXR9IiA9ICJzZXQiIF0gOyB0aGVuCgkJZXhwb3J0IExEX0xJQlJBUllfUEFU SD0iXCR7TERfTElCUkFSWV9QQVRIfToke2xpYmRpcn0iCgllbHNlCgkJZXhwb3J0IExEX0xJQlJB UllfUEFUSD0iJHtsaWJkaXJ9IgoJZmkKZmkKZXhlYyAke2Jpbn0gIlwkQCIKRU9GCgogICAgY2ht b2QgZ28rcnggIiR7dG1wd3JhcHBlcn0iOwogICAgaWYgW1sgLW4gJHtwYXRofSBdXTsgdGhlbgog ICAgICAgICggZXhlaW50byAiJHtwYXRofSI7CiAgICAgICAgbmV3ZXhlICIke3RtcHdyYXBwZXJ9 IiAiJHt3cmFwcGVyfSIgKSB8fCBkaWU7CiAgICBlbHNlCiAgICAgICAgbmV3YmluICIke3RtcHdy YXBwZXJ9IiAiJHt3cmFwcGVyfSIgfHwgZGllOwogICAgZmkKfQptYXliZV9mYWlsICgpIAp7IAog ICAgW1sgLXogJHshMn0gXV0gJiYgZWNobyAkezF9Cn0KbXVsdGlsaWJfZW52ICgpIAp7IAogICAg bG9jYWwgQ1RBUkdFVD0kezE6LSR7Q1RBUkdFVH19OwogICAgY2FzZSAke0NUQVJHRVR9IGluIAog ICAgICAgIHg4Nl82NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfeDg2PSR7Q0ZMQUdTX3g4 Ni0tbTMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3g4Nj0ke0NUQVJHRVQveDg2XzY0L2k2 ODZ9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF94ODY9JHtDSE9TVF94ODZ9OwogICAgICAg ICAgICBpZiBbWyAke1NZTUxJTktfTElCfSA9PSAieWVzIiBdXTsgdGhlbgogICAgICAgICAgICAg ICAgZXhwb3J0IExJQkRJUl94ODY9ImxpYjMyIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgZXhwb3J0IExJQkRJUl94ODY9ImxpYiI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAg ICBleHBvcnQgQ0ZMQUdTX2FtZDY0PSR7Q0ZMQUdTX2FtZDY0LS1tNjR9OwogICAgICAgICAgICBl eHBvcnQgQ0hPU1RfYW1kNjQ9JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRf YW1kNjQ9JHtDSE9TVF9hbWQ2NH07CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfYW1kNjQ9Imxp YjY0IjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU194MzI9JHtDRkxBR1NfeDMyLS1teDMyfTsK ICAgICAgICAgICAgZXhwb3J0IENIT1NUX3gzMj0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBv cnQgQ1RBUkdFVF94MzI9JHtDSE9TVF94MzJ9OwogICAgICAgICAgICBleHBvcnQgTElCRElSX3gz Mj0ibGlieDMyIjsKICAgICAgICAgICAgOiAke01VTFRJTElCX0FCSVM9YW1kNjQgeDg2fTsKICAg ICAgICAgICAgOiAke0RFRkFVTFRfQUJJPWFtZDY0fQogICAgICAgIDs7CiAgICAgICAgbWlwczY0 KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19vMzI9JHtDRkxBR1NfbzMyLS1tYWJpPTMyfTsK ICAgICAgICAgICAgZXhwb3J0IENIT1NUX28zMj0ke0NUQVJHRVQvbWlwczY0L21pcHN9OwogICAg ICAgICAgICBleHBvcnQgQ1RBUkdFVF9vMzI9JHtDSE9TVF9vMzJ9OwogICAgICAgICAgICBleHBv cnQgTElCRElSX28zMj0ibGliIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19uMzI9JHtDRkxB R1NfbjMyLS1tYWJpPW4zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9uMzI9JHtDVEFSR0VU fTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfbjMyPSR7Q0hPU1RfbjMyfTsKICAgICAgICAg ICAgZXhwb3J0IExJQkRJUl9uMzI9ImxpYjMyIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19u NjQ9JHtDRkxBR1NfbjY0LS1tYWJpPTY0fTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX242ND0k e0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uNjQ9JHtDSE9TVF9uNjR9Owog ICAgICAgICAgICBleHBvcnQgTElCRElSX242ND0ibGliNjQiOwogICAgICAgICAgICA6ICR7TVVM VElMSUJfQUJJUz1uNjQgbjMyIG8zMn07CiAgICAgICAgICAgIDogJHtERUZBVUxUX0FCST1uMzJ9 CiAgICAgICAgOzsKICAgICAgICBwb3dlcnBjNjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdT X3BwYz0ke0NGTEFHU19wcGMtLW0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9wcGM9JHtD VEFSR0VUL3Bvd2VycGM2NC9wb3dlcnBjfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfcHBj PSR7Q0hPU1RfcHBjfTsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9wcGM9ImxpYiI7CiAgICAg ICAgICAgIGV4cG9ydCBDRkxBR1NfcHBjNjQ9JHtDRkxBR1NfcHBjNjQtLW02NH07CiAgICAgICAg ICAgIGV4cG9ydCBDSE9TVF9wcGM2ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RB UkdFVF9wcGM2ND0ke0NIT1NUX3BwYzY0fTsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9wcGM2 ND0ibGliNjQiOwogICAgICAgICAgICA6ICR7TVVMVElMSUJfQUJJUz1wcGM2NCBwcGN9OwogICAg ICAgICAgICA6ICR7REVGQVVMVF9BQkk9cHBjNjR9CiAgICAgICAgOzsKICAgICAgICBzMzkweCop CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfczM5MD0ke0NGTEFHU19zMzkwLS1tMzF9OwogICAg ICAgICAgICBleHBvcnQgQ0hPU1RfczM5MD0ke0NUQVJHRVQvczM5MHgvczM5MH07CiAgICAgICAg ICAgIGV4cG9ydCBDVEFSR0VUX3MzOTA9JHtDSE9TVF9zMzkwfTsKICAgICAgICAgICAgZXhwb3J0 IExJQkRJUl9zMzkwPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3MzOTB4PSR7Q0ZM QUdTX3MzOTB4LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfczM5MHg9JHtDVEFSR0VU fTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfczM5MHg9JHtDSE9TVF9zMzkweH07CiAgICAg ICAgICAgIGV4cG9ydCBMSUJESVJfczM5MHg9ImxpYjY0IjsKICAgICAgICAgICAgOiAke01VTFRJ TElCX0FCSVM9czM5MHggczM5MH07CiAgICAgICAgICAgIDogJHtERUZBVUxUX0FCST1zMzkweH0K ICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zcGFy YzMyPSR7Q0ZMQUdTX3NwYXJjMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmMzMj0k e0NUQVJHRVQvc3BhcmM2NC9zcGFyY307CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3NwYXJj MzI9JHtDSE9TVF9zcGFyYzMyfTsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9zcGFyYzMyPSJs aWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3NwYXJjNjQ9JHtDRkxBR1Nfc3BhcmM2NC0t bTY0fTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3NwYXJjNjQ9JHtDVEFSR0VUfTsKICAgICAg ICAgICAgZXhwb3J0IENUQVJHRVRfc3BhcmM2ND0ke0NIT1NUX3NwYXJjNjR9OwogICAgICAgICAg ICBleHBvcnQgTElCRElSX3NwYXJjNjQ9ImxpYjY0IjsKICAgICAgICAgICAgOiAke01VTFRJTElC X0FCSVM9c3BhcmM2NCBzcGFyYzMyfTsKICAgICAgICAgICAgOiAke0RFRkFVTFRfQUJJPXNwYXJj NjR9CiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICA6ICR7TVVMVElMSUJfQUJJUz1k ZWZhdWx0fTsKICAgICAgICAgICAgOiAke0RFRkFVTFRfQUJJPWRlZmF1bHR9CiAgICAgICAgOzsK ICAgIGVzYWM7CiAgICBleHBvcnQgTVVMVElMSUJfQUJJUyBERUZBVUxUX0FCSQp9Cm11bHRpbGli X3Rvb2xjaGFpbl9zZXR1cCAoKSAKeyAKICAgIGxvY2FsIHYgdnY7CiAgICBleHBvcnQgQUJJPSQx OwogICAgaWYgW1sgJHtfX0RFRkFVTFRfQUJJX1NBVkVEfSA9PSAidHJ1ZSIgXV07IHRoZW4KICAg ICAgICBmb3IgdiBpbiBDSE9TVCBDQlVJTEQgQVMgQ0MgQ1hYIExEOwogICAgICAgIGRvCiAgICAg ICAgICAgIHZ2PSJfX2FiaV9zYXZlZF8ke3Z9IjsKICAgICAgICAgICAgZXhwb3J0ICR7dn09IiR7 IXZ2fSI7CiAgICAgICAgICAgIHVuc2V0ICR7dnZ9OwogICAgICAgIGRvbmU7CiAgICAgICAgdW5z ZXQgX19ERUZBVUxUX0FCSV9TQVZFRDsKICAgIGZpOwogICAgaWYgW1sgJHtBQkl9ICE9ICR7REVG QVVMVF9BQkl9IF1dOyB0aGVuCiAgICAgICAgZm9yIHYgaW4gQ0hPU1QgQ0JVSUxEIEFTIENDIENY WCBMRDsKICAgICAgICBkbwogICAgICAgICAgICBleHBvcnQgX19hYmlfc2F2ZWRfJHt2fT0iJHsh dn0iOwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IF9fREVGQVVMVF9BQklfU0FWRUQ9InRy dWUiOwogICAgICAgIGV4cG9ydCBDSE9TVD0kKGdldF9hYmlfQ0hPU1QgJHtERUZBVUxUX0FCSX0p OwogICAgICAgIGV4cG9ydCBBUz0iJCh0Yy1nZXRBUykgJChnZXRfYWJpX0FTRkxBR1MpIjsKICAg ICAgICBleHBvcnQgQ0M9IiQodGMtZ2V0Q0MpICQoZ2V0X2FiaV9DRkxBR1MpIjsKICAgICAgICBl eHBvcnQgQ1hYPSIkKHRjLWdldENYWCkgJChnZXRfYWJpX0NGTEFHUykiOwogICAgICAgIGV4cG9y dCBMRD0iJCh0Yy1nZXRMRCkgJChnZXRfYWJpX0xERkxBR1MpIjsKICAgICAgICBleHBvcnQgQ0hP U1Q9JChnZXRfYWJpX0NIT1NUICQxKTsKICAgICAgICBleHBvcnQgQ0JVSUxEPSQoZ2V0X2FiaV9D SE9TVCAkMSk7CiAgICBmaQp9Cm5ld2ljb24gKCkgCnsgCiAgICAoIGluc2ludG8gL3Vzci9zaGFy ZS9waXhtYXBzOwogICAgbmV3aW5zICIkQCIgKQp9Cm5ld21lbnUgKCkgCnsgCiAgICAoIGluc2lu dG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBuZXdpbnMgIiRAIiApCn0KbmV3cGFtZCAo KSAKeyAKICAgIFtbICQjIC1uZSAyIF1dICYmIGRpZSAibmV3cGFtZCByZXF1aXJlcyB0d28gYXJn dW1lbnRzIjsKICAgIGlmIGhhc3EgcGFtICR7SVVTRX0gJiYgISB1c2UgcGFtOyB0aGVuCiAgICAg ICAgcmV0dXJuIDA7CiAgICBmaTsKICAgICggaW5zaW50byAvZXRjL3BhbS5kOwogICAgaW5zb3B0 cyAtbSAwNjQ0OwogICAgbmV3aW5zICIkMSIgIiQyIiApIHx8IGRpZSAiZmFpbGVkIHRvIGluc3Rh bGwgJDEgYXMgJDIiOwogICAgY2xlYW5wYW1kICQyCn0KbmV3cGFtbW9kICgpIAp7IAogICAgW1sg JCMgLW5lIDIgXV0gJiYgZGllICJuZXdwYW1tb2QgcmVxdWlyZXMgdHdvIGFyZ3VlbWVudHMiOwog ICAgaWYgaGFzcSBwYW0gJHtJVVNFfSAmJiAhIHVzZSBwYW07IHRoZW4KICAgICAgICByZXR1cm4g MDsKICAgIGZpOwogICAgZXhlaW50byAkKGdldHBhbV9tb2RfZGlyKTsKICAgIG5ld2V4ZSAiJDEi ICIkMiIgfHwgZGllICJmYWlsZWQgdG8gaW5zdGFsbCAkMSBhcyAkMiIKfQpuZXdwYW1zZWN1cml0 eSAoKSAKeyAKICAgIFtbICQjIC1uZSAzIF1dICYmIGRpZSAibmV3cGFtc2VjdXJpdHkgcmVxdWly ZXMgdGhyZWUgYXJndW1lbnRzIjsKICAgIGlmIGhhc3EgcGFtICR7SVVTRX0gJiYgISB1c2UgcGFt OyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgICggaW5zaW50byAvZXRjL3NlY3Vy aXR5LyQxOwogICAgaW5zb3B0cyAtbSAwNjQ0OwogICAgbmV3aW5zICIkMiIgIiQzIiApIHx8IGRp ZSAiZmFpbGVkIHRvIGluc3RhbGwgJDIgYXMgJDMiCn0Kbm8tYXMtbmVlZGVkICgpIAp7IAogICAg Y2FzZSAkKCQodGMtZ2V0TEQpIC12IDI+JjEgPC9kZXYvbnVsbCkgaW4gCiAgICAgICAgKkdOVSop CiAgICAgICAgICAgIGVjaG8gIi1XbCwtLW5vLWFzLW5lZWRlZCIKICAgICAgICA7OwogICAgZXNh Ywp9Cm5vbmZhdGFsICgpIAp7IAogICAgaWYgaGFzICIke0VBUEk6LTB9IiAwIDEgMiAzIDNfcHJl MjsgdGhlbgogICAgICAgIGRpZSAiJEZVTkNOQU1FKCkgbm90IHN1cHBvcnRlZCBpbiB0aGlzIEVB UEkiOwogICAgZmk7CiAgICBpZiBbWyAkIyAtbHQgMSBdXTsgdGhlbgogICAgICAgIGRpZSAiJEZV TkNOQU1FKCk6IE1pc3NpbmcgYXJndW1lbnQiOwogICAgZmk7CiAgICBQT1JUQUdFX05PTkZBVEFM PTEgIiRAIgp9Cm51bWJlcl9hYmlzICgpIAp7IAogICAgc2V0IC0tIGBnZXRfaW5zdGFsbF9hYmlz YDsKICAgIGVjaG8gJCMKfQpwYW1fZXBhbV9leHBhbmQgKCkgCnsgCiAgICBzZWQgLW4gLWUgJ3N8 IyVFUEFNLVwoW1s6YWxwaGE6XS1dXCtcKTpcKFstKzw+PS8uIVs6YWxudW06XV1cK1wpJSMuKnxc MSBcMnxwJyAiJEAiIHwgc29ydCAtdSB8IHdoaWxlIHJlYWQgY29uZGl0aW9uIHBhcmFtZXRlcjsg ZG8KICAgICAgICBkaXNhYmxlPSJ5ZXMiOwogICAgICAgIGNhc2UgIiRjb25kaXRpb24iIGluIAog ICAgICAgICAgICBJZi1IYXMpCiAgICAgICAgICAgICAgICBtZXNzYWdlPSJUaGlzIGNhbiBiZSB1 c2VkIG9ubHkgaWYgeW91IGhhdmUgJHtwYXJhbWV0ZXJ9IGluc3RhbGxlZCI7CiAgICAgICAgICAg ICAgICBoYXNfdmVyc2lvbiAiJHBhcmFtZXRlciIgJiYgZGlzYWJsZT0ibm8iCiAgICAgICAgICAg IDs7CiAgICAgICAgICAgIFVzZS1GbGFnKQogICAgICAgICAgICAgICAgbWVzc2FnZT0iVGhpcyBj YW4gYmUgdXNlZCBvbmx5IGlmIHlvdSBlbmFibGVkIHRoZSAke3BhcmFtZXRlcn0gVVNFIGZsYWci OwogICAgICAgICAgICAgICAgdXNlICIkcGFyYW1ldGVyIiAmJiBkaXNhYmxlPSJubyIKICAgICAg ICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGVlcnJvciAiVW5rbm93biBF UEFNIGNvbmRpdGlvbiAnJHtjb25kaXRpb259JyAoJyR7cGFyYW1ldGVyfScpIjsKICAgICAgICAg ICAgICAgIGRpZSAiVW5rbm93biBFUEFNIGNvbmRpdGlvbiAnJHtjb25kaXRpb259JyAoJyR7cGFy YW1ldGVyfScpIgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICAgICAgaWYgWyAiJHtk aXNhYmxlfSIgPSAieWVzIiBdOyB0aGVuCiAgICAgICAgICAgIHNlZCAtaSAtZSAiLyMlRVBBTS0k e2NvbmRpdGlvbn06JHtwYXJhbWV0ZXIvXC8vXFwvfSUjL2QiICIkQCI7CiAgICAgICAgZWxzZQog ICAgICAgICAgICBzZWQgLWkgLWUgInN8IyVFUEFNLSR7Y29uZGl0aW9ufToke3BhcmFtZXRlcn0l I3x8IiAiJEAiOwogICAgICAgIGZpOwogICAgZG9uZQp9CnBhbWRfbWltaWMgKCkgCnsgCiAgICBb WyAkIyAtbHQgMyBdXSAmJiBkaWUgInBhbWRfbWltaWMgcmVxdWlyZXMgYXQgbGVhc3QgdGhyZWUg YXJnbWVudHMiOwogICAgaWYgaGFzcSBwYW0gJHtJVVNFfSAmJiAhIHVzZSBwYW07IHRoZW4KICAg ICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgZG9kaXIgL2V0Yy9wYW0uZDsKICAgIHBhbWRmaWxl PSR7RH0vZXRjL3BhbS5kLyQyOwogICAgZWNobyAtZSAiIyBGaWxlIGF1dG9nZW5lcmF0ZWQgYnkg cGFtZF9taW1pYyBpbiBwYW0gZWNsYXNzXG5cbiIgPj4gJHBhbWRmaWxlOwogICAgb3JpZ2luYWxz dGFjaz0kMTsKICAgIGF1dGhsZXZlbHM9ImF1dGggYWNjb3VudCBwYXNzd29yZCBzZXNzaW9uIjsK ICAgIGlmIGhhc192ZXJzaW9uICc8c3lzLWxpYnMvcGFtLTAuNzgnOyB0aGVuCiAgICAgICAgbWlt aWM9Ilx0cmVxdWlyZWRcdFx0cGFtX3N0YWNrLnNvIHNlcnZpY2U9JHtvcmlnaW5hbHN0YWNrfSI7 CiAgICBlbHNlCiAgICAgICAgbWltaWM9Ilx0aW5jbHVkZVx0XHQke29yaWdpbmFsc3RhY2t9IjsK ICAgIGZpOwogICAgc2hpZnQ7CiAgICBzaGlmdDsKICAgIHdoaWxlIFtbIC1uICQxIF1dOyBkbwog ICAgICAgIGhhc3EgJDEgJHthdXRobGV2ZWxzfSB8fCBkaWUgInVua25vd24gbGV2ZWwgdHlwZSI7 CiAgICAgICAgZWNobyAtZSAiJDEke21pbWljfSIgPj4gJHtwYW1kZmlsZX07CiAgICAgICAgc2hp ZnQ7CiAgICBkb25lCn0KcGFtZF9taW1pY19zeXN0ZW0gKCkgCnsgCiAgICBbWyAkIyAtbHQgMiBd XSAmJiBkaWUgInBhbWRfbWltaWNfc3lzdGVtIHJlcXVpcmVzIGF0IGxlYXN0IHR3byBhcmdtZW50 cyI7CiAgICBwYW1kX21pbWljIHN5c3RlbS1hdXRoICIkQCIKfQpwYW1tb2RfaGlkZV9zeW1ib2xz ICgpIAp7IAogICAgY2F0IC0gPiAiJHtUfSIvcGFtLWVjbGFzcy1wYW1fc3ltYm9scy52ZXIgIDw8 RU9GCnsKCWdsb2JhbDogcGFtX3NtXyo7Cglsb2NhbDogKjsKfTsKRU9GCgogICAgYXBwZW5kLWxk ZmxhZ3MgLVdsLC0tdmVyc2lvbi1zY3JpcHQ9IiR7VH0iL3BhbS1lY2xhc3MtcGFtX3N5bWJvbHMu dmVyCn0KcGF0aF9leGlzdHMgKCkgCnsgCiAgICBsb2NhbCBvcHQ9JDE7CiAgICBbWyAke29wdH0g PT0gLVthb10gXV0gJiYgc2hpZnQgfHwgb3B0PSItYSI7CiAgICBbWyAkIyAtZXEgMCBdXSAmJiBy ZXR1cm4gMTsKICAgIGxvY2FsIHAgcj0wOwogICAgZm9yIHAgaW4gIiRAIjsKICAgIGRvCiAgICAg ICAgW1sgLWUgJHtwfSBdXTsKICAgICAgICA6ICQoKCByICs9ICQ/ICkpOwogICAgZG9uZTsKICAg IGNhc2UgJHtvcHR9IGluIAogICAgICAgIC1hKQogICAgICAgICAgICByZXR1cm4gJCgoIHIgIT0g MCApKQogICAgICAgIDs7CiAgICAgICAgLW8pCiAgICAgICAgICAgIHJldHVybiAkKCggciA9PSAk IyApKQogICAgICAgIDs7CiAgICBlc2FjCn0KcGtnX25vZmV0Y2ggKCkgCnsgCiAgICBfZWFwaTBf cGtnX25vZmV0Y2ggIiRAIgp9CnBrZ19wb3N0aW5zdCAoKSAKeyAKICAgIGVuZXdncm91cCBzc2hk IDIyOwogICAgZW5ld3VzZXIgc3NoZCAyMiAtMSAvdmFyL2VtcHR5IHNzaGQ7CiAgICBlbG9nICJT dGFydGluZyB3aXRoIG9wZW5zc2gtNS44cDEsIHRoZSBzZXJ2ZXIgd2lsbCBkZWZhdWx0IHRvIGEg bmV3ZXIga2V5IjsKICAgIGVsb2cgImFsZ29yaXRobSAoRUNEU0EpLiAgWW91IGFyZSBlbmNvdXJh Z2VkIHRvIG1hbnVhbGx5IHVwZGF0ZSB5b3VyIHN0b3JlZCI7CiAgICBlbG9nICJrZXlzIGxpc3Qg YXMgc2VydmVycyB1cGRhdGUgdGhlaXJzLiAgU2VlIHNzaC1rZXlzY2FuKDEpIGZvciBtb3JlIGlu Zm8uIjsKICAgIGVjaG87CiAgICBld2FybiAiUmVtZW1iZXIgdG8gbWVyZ2UgeW91ciBjb25maWcg ZmlsZXMgaW4gL2V0Yy9zc2gvIGFuZCB0aGVuIjsKICAgIGV3YXJuICJyZWxvYWQgc3NoZDogJy9l dGMvaW5pdC5kL3NzaGQgcmVsb2FkJy4iOwogICAgaWYgdXNlIHBhbTsgdGhlbgogICAgICAgIGVj aG87CiAgICAgICAgZXdhcm4gIlBsZWFzZSBiZSBhd2FyZSB1c2VycyBuZWVkIGEgdmFsaWQgc2hl bGwgaW4gL2V0Yy9wYXNzd2QiOwogICAgICAgIGV3YXJuICJpbiBvcmRlciB0byBiZSBhbGxvd2Vk IHRvIGxvZ2luLiI7CiAgICBmaTsKICAgIGlmIFtbIC1uICR7SFBOX1BBVENIfSBdXSAmJiB1c2Ug aHBuOyB0aGVuCiAgICAgICAgZWNobzsKICAgICAgICBlaW5mbyAiRm9yIHRoZSBIUE4gc2VydmVy IGxvZ2dpbmcgcGF0Y2gsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IjsKICAgICAgICBlaW5mbyAieW91 ciBzeXNsb2cgYXBwbGljYXRpb24gYWxzbyBsaXN0ZW5zIGF0IC92YXIvZW1wdHkvZGV2L2xvZy4i OwogICAgZmkKfQpwa2dfc2V0dXAgKCkgCnsgCiAgICBmdW5jdGlvbiBtYXliZV9mYWlsICgpIAog ICAgeyAKICAgICAgICBbWyAteiAkeyEyfSBdXSAmJiBlY2hvICR7MX0KICAgIH07CiAgICBsb2Nh bCBmYWlsPSIKCQkkKHVzZSBYNTA5ICYmIG1heWJlX2ZhaWwgWDUwOSBYNTA5X1BBVENIKQoJCSQo dXNlIGxkYXAgJiYgbWF5YmVfZmFpbCBsZGFwIExEQVBfUEFUQ0gpCgkJJCh1c2UgaHBuICYmIG1h eWJlX2ZhaWwgaHBuIEhQTl9QQVRDSCkKCSI7CiAgICBmYWlsPSQoZWNobyAke2ZhaWx9KTsKICAg IGlmIFtbIC1uICR7ZmFpbH0gXV07IHRoZW4KICAgICAgICBlZXJyb3IgIlNvcnJ5LCBidXQgdGhp cyB2ZXJzaW9uIGRvZXMgbm90IHlldCBzdXBwb3J0IGZlYXR1cmVzIjsKICAgICAgICBlZXJyb3Ig InRoYXQgeW91IHJlcXVlc3RlZDoJICR7ZmFpbH0iOwogICAgICAgIGVlcnJvciAiUGxlYXNlIG1h c2sgJHtQRn0gZm9yIG5vdyBhbmQgY2hlY2sgYmFjayBsYXRlcjoiOwogICAgICAgIGVlcnJvciAi ICMgZWNobyAnPSR7Q0FURUdPUll9LyR7UEZ9JyA+PiAvZXRjL3BvcnRhZ2UvcGFja2FnZS5tYXNr IjsKICAgICAgICBkaWUgImJvb29vbyI7CiAgICBmaQp9CnByZXNlcnZlX29sZF9saWIgKCkgCnsg CiAgICBpZiBbWyAke0VCVUlMRF9QSEFTRX0gIT0gInByZWluc3QiIF1dOyB0aGVuCiAgICAgICAg ZWVycm9yICJwcmVzZXJ2ZV9vbGRfbGliKCkgbXVzdCBiZSBjYWxsZWQgZnJvbSBwa2dfcHJlaW5z dCgpIG9ubHkiOwogICAgICAgIGRpZSAiSW52YWxpZCBwcmVzZXJ2ZV9vbGRfbGliKCkgdXNhZ2Ui OwogICAgZmk7CiAgICBbWyAteiAkMSBdXSAmJiBkaWUgIlVzYWdlOiBwcmVzZXJ2ZV9vbGRfbGli IDxsaWJyYXJ5IHRvIHByZXNlcnZlPiBbbW9yZSBsaWJyYXJpZXMgdG8gcHJlc2VydmVdIjsKICAg IGhhcyBwcmVzZXJ2ZS1saWJzICR7RkVBVFVSRVN9ICYmIHJldHVybiAwOwogICAgbG9jYWwgbGli IGRpcjsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHtST09UfS8k e2xpYn0gXV0gfHwgY29udGludWU7CiAgICAgICAgZGlyPSR7bGliJS8qfTsKICAgICAgICBkb2Rp ciAke2Rpcn0gfHwgZGllICJkb2RpciAke2Rpcn0gZmFpbGVkIjsKICAgICAgICBjcCAiJHtST09U fSIvJHtsaWJ9ICIke0R9Ii8ke2xpYn0gfHwgZGllICJjcCAke2xpYn0gZmFpbGVkIjsKICAgICAg ICB0b3VjaCAiJHtEfSIvJHtsaWJ9OwogICAgZG9uZQp9CnByZXNlcnZlX29sZF9saWJfbm90aWZ5 ICgpIAp7IAogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ICE9ICJwb3N0aW5zdCIgXV07IHRoZW4K ICAgICAgICBlZXJyb3IgInByZXNlcnZlX29sZF9saWJfbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQg ZnJvbSBwa2dfcG9zdGluc3QoKSBvbmx5IjsKICAgICAgICBkaWUgIkludmFsaWQgcHJlc2VydmVf b2xkX2xpYl9ub3RpZnkoKSB1c2FnZSI7CiAgICBmaTsKICAgIGhhcyBwcmVzZXJ2ZS1saWJzICR7 RkVBVFVSRVN9ICYmIHJldHVybiAwOwogICAgbG9jYWwgbGliIG5vdGljZT0wOwogICAgZm9yIGxp YiBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAtZSAke1JPT1R9LyR7bGlifSBdXSB8fCBjb250 aW51ZTsKICAgICAgICBpZiBbWyAke25vdGljZX0gLWVxIDAgXV07IHRoZW4KICAgICAgICAgICAg bm90aWNlPTE7CiAgICAgICAgICAgIGV3YXJuICJPbGQgdmVyc2lvbnMgb2YgaW5zdGFsbGVkIGxp YnJhcmllcyB3ZXJlIGRldGVjdGVkIG9uIHlvdXIgc3lzdGVtLiI7CiAgICAgICAgICAgIGV3YXJu ICJJbiBvcmRlciB0byBhdm9pZCBicmVha2luZyBwYWNrYWdlcyB0aGF0IGRlcGVuZCBvbiB0aGVz ZSBvbGQgbGlicywiOwogICAgICAgICAgICBld2FybiAidGhlIGxpYnJhcmllcyBhcmUgbm90IGJl aW5nIHJlbW92ZWQuICBZb3UgbmVlZCB0byBydW4gcmV2ZGVwLXJlYnVpbGQiOwogICAgICAgICAg ICBld2FybiAiaW4gb3JkZXIgdG8gcmVtb3ZlIHRoZXNlIG9sZCBkZXBlbmRlbmNpZXMuICBJZiB5 b3UgZG8gbm90IGhhdmUgdGhpcyI7CiAgICAgICAgICAgIGV3YXJuICJoZWxwZXIgcHJvZ3JhbSwg c2ltcGx5IGVtZXJnZSB0aGUgJ2dlbnRvb2xraXQnIHBhY2thZ2UuIjsKICAgICAgICAgICAgZXdh cm47CiAgICAgICAgZmk7CiAgICAgICAgW1sgJHtQTn0gPT0gIm1wZnIiIF1dICYmIGxpYj0ke2xp YiMjKi99OwogICAgICAgIGV3YXJuICIgICMgcmV2ZGVwLXJlYnVpbGQgLS1saWJyYXJ5ICcke2xp Yn0nIjsKICAgIGRvbmU7CiAgICBpZiBbWyAke25vdGljZX0gLWVxIDEgXV07IHRoZW4KICAgICAg ICBld2FybjsKICAgICAgICBld2FybiAiT25jZSB5b3UndmUgZmluaXNoZWQgcnVubmluZyByZXZk ZXAtcmVidWlsZCwgaXQgc2hvdWxkIGJlIHNhZmUgdG8iOwogICAgICAgIGV3YXJuICJkZWxldGUg dGhlIG9sZCBsaWJyYXJpZXMuICBIZXJlIGlzIGEgY29weSAmIHBhc3RlIGZvciB0aGUgbGF6eToi OwogICAgICAgIGZvciBsaWIgaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBld2FybiAi ICAjIHJtICcke2xpYn0nIjsKICAgICAgICBkb25lOwogICAgZmkKfQpyYXctbGRmbGFncyAoKSAK eyAKICAgIGxvY2FsIHggaW5wdXQ9IiRAIjsKICAgIFtbIC16ICR7aW5wdXR9IF1dICYmIGlucHV0 PSR7TERGTEFHU307CiAgICBzZXQgLS07CiAgICBmb3IgeCBpbiAke2lucHV0fTsKICAgIGRvCiAg ICAgICAgeD0ke3gjLVdsLH07CiAgICAgICAgc2V0IC0tICIkQCIgJHt4Ly8sLyB9OwogICAgZG9u ZTsKICAgIGVjaG8gIiRAIgp9CnJlZ2lzdGVyX3N1Y2Nlc3NfaG9vayAoKSAKeyAKICAgIGxvY2Fs IHg7CiAgICBmb3IgeCBpbiAkKjsKICAgIGRvCiAgICAgICAgaGFzcSAkeCAkRUJVSUxEX1NVQ0NF U1NfSE9PS1MgfHwgZXhwb3J0IEVCVUlMRF9TVUNDRVNTX0hPT0tTPSIkRUJVSUxEX1NVQ0NFU1Nf SE9PS1MgJHgiOwogICAgZG9uZQp9CnJlcGxhY2UtY3B1LWZsYWdzICgpIAp7IAogICAgbG9jYWwg bmV3Y3B1PSIkIyI7CiAgICBuZXdjcHU9IiR7IW5ld2NwdX0iOwogICAgd2hpbGUgWyAkIyAtZ3Qg MSBdOyBkbwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tYXJjaD0kezF9IiAiLW1hcmNoPSR7bmV3 Y3B1fSI7CiAgICAgICAgcmVwbGFjZS1mbGFncyAiLW1jcHU9JHsxfSIgIi1tY3B1PSR7bmV3Y3B1 fSI7CiAgICAgICAgcmVwbGFjZS1mbGFncyAiLW10dW5lPSR7MX0iICItbXR1bmU9JHtuZXdjcHV9 IjsKICAgICAgICBzaGlmdDsKICAgIGRvbmU7CiAgICByZXR1cm4gMAp9CnJlcGxhY2UtZmxhZ3Mg KCkgCnsgCiAgICBbWyAkIyAhPSAyIF1dICYmIGVjaG8gJiYgZWVycm9yICJVc2FnZTogcmVwbGFj ZS1mbGFncyA8b2xkIGZsYWc+IDxuZXcgZmxhZz4iICYmIGRpZSAicmVwbGFjZS1mbGFncyB0YWtl cyAyIGFyZ3VtZW50cywgbm90ICQjIjsKICAgIGxvY2FsIGYgZnNldDsKICAgIGRlY2xhcmUgLWEg bmV3X0NGTEFHUyBuZXdfQ1hYRkxBR1MgbmV3X0ZGTEFHUyBuZXdfRkNGTEFHUzsKICAgIGZvciBm c2V0IGluIENGTEFHUyBDWFhGTEFHUyBGRkxBR1MgRkNGTEFHUzsKICAgIGRvCiAgICAgICAgZm9y IGYgaW4gJHshZnNldH07CiAgICAgICAgZG8KICAgICAgICAgICAgW1sgJHtmfSA9PSAkezF9IF1d ICYmIGY9JHsyfTsKICAgICAgICAgICAgZXZhbCBuZXdfJHtmc2V0fVxbXCR7XCNuZXdfJHtmc2V0 fVxbQF19XT1cJHtmfTsKICAgICAgICBkb25lOwogICAgICAgIGV2YWwgZXhwb3J0ICR7ZnNldH09 XCR7bmV3XyR7ZnNldH1cWypdfTsKICAgIGRvbmU7CiAgICByZXR1cm4gMAp9CnJlcGxhY2Utc3Bh cmM2NC1mbGFncyAoKSAKeyAKICAgIGxvY2FsIFNQQVJDNjRfQ1BVUz0idWx0cmFzcGFyYzMgdWx0 cmFzcGFyYyB2OSI7CiAgICBpZiBbICIke0NGTEFHUy9tdHVuZX0iICE9ICIke0NGTEFHU30iIF07 IHRoZW4KICAgICAgICBmb3IgeCBpbiAke1NQQVJDNjRfQ1BVU307CiAgICAgICAgZG8KICAgICAg ICAgICAgQ0ZMQUdTPSIke0NGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4fSI7CiAgICAgICAgZG9u ZTsKICAgIGVsc2UKICAgICAgICBmb3IgeCBpbiAke1NQQVJDNjRfQ1BVU307CiAgICAgICAgZG8K ICAgICAgICAgICAgQ0ZMQUdTPSIke0NGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4IC1tdHVuZT0k e3h9fSI7CiAgICAgICAgZG9uZTsKICAgIGZpOwogICAgaWYgWyAiJHtDWFhGTEFHUy9tdHVuZX0i ICE9ICIke0NYWEZMQUdTfSIgXTsgdGhlbgogICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVT fTsKICAgICAgICBkbwogICAgICAgICAgICBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tbWNwdT0ke3h9 Ly1tY3B1PXY4fSI7CiAgICAgICAgZG9uZTsKICAgIGVsc2UKICAgICAgICBmb3IgeCBpbiAke1NQ QVJDNjRfQ1BVU307CiAgICAgICAgZG8KICAgICAgICAgICAgQ1hYRkxBR1M9IiR7Q1hYRkxBR1Mv LW1jcHU9JHt4fS8tbWNwdT12OCAtbXR1bmU9JHt4fX0iOwogICAgICAgIGRvbmU7CiAgICBmaTsK ICAgIGV4cG9ydCBDRkxBR1MgQ1hYRkxBR1MKfQpzZXEgKCkgCnsgCiAgICBsb2NhbCBwPSQodHlw ZSAtUCBzZXEpOwogICAgaWYgW1sgLW4gJHtwfSBdXTsgdGhlbgogICAgICAgICIke3B9IiAiJEAi OwogICAgICAgIHJldHVybiAkPzsKICAgIGZpOwogICAgY2FzZSAkIyBpbiAKICAgICAgICAxKQog ICAgICAgICAgICBtaW49MSBtYXg9JDEgc3RlcD0xCiAgICAgICAgOzsKICAgICAgICAyKQogICAg ICAgICAgICBtaW49JDEgbWF4PSQyIHN0ZXA9MQogICAgICAgIDs7CiAgICAgICAgMykKICAgICAg ICAgICAgbWluPSQxIG1heD0kMyBzdGVwPSQyCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAg ICAgICBkaWUgInNlcSBjYWxsZWQgd2l0aCB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIgogICAg ICAgIDs7CiAgICBlc2FjOwogICAgcD0kKHR5cGUgLVAgam90KTsKICAgIGlmIFtbIC1uICR7cH0g XV07IHRoZW4KICAgICAgICBsb2NhbCByZXBzOwogICAgICAgIGlmIFtbICR7c3RlcH0gIT0gMCBd XTsgdGhlbgogICAgICAgICAgICByZXBzPSQoKCAobWF4IC0gbWluKSAvIHN0ZXAgKyAxICkpOwog ICAgICAgIGVsc2UKICAgICAgICAgICAgcmVwcz0wOwogICAgICAgIGZpOwogICAgICAgIGpvdCAk cmVwcyAkbWluICRtYXggJHN0ZXA7CiAgICAgICAgcmV0dXJuICQ/OwogICAgZmk7CiAgICB3aGls ZSA6OyBkbwogICAgICAgIFtbICRtYXggPCAkbWluICYmICRzdGVwID4gMCBdXSAmJiBicmVhazsK ICAgICAgICBbWyAkbWluIDwgJG1heCAmJiAkc3RlcCA8IDAgXV0gJiYgYnJlYWs7CiAgICAgICAg ZWNobyAkbWluOwogICAgICAgIDogJCgoIG1pbiArPSBzdGVwICkpOwogICAgZG9uZTsKICAgIHJl dHVybiAwCn0Kc2V0dXAtYWxsb3dlZC1mbGFncyAoKSAKeyAKICAgIGlmIFtbIC16ICR7QUxMT1dF RF9GTEFHU30gXV07IHRoZW4KICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0iLXBpcGUiOwog ICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1PIC1PMCAtTzEg LU8yIC1tY3B1IC1tYXJjaCAtbXR1bmUiOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIk e0FMTE9XRURfRkxBR1N9IC1mc3RhY2stcHJvdGVjdG9yIC1mc3RhY2stcHJvdGVjdG9yLWFsbCI7 CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLWZib3VuZHMt Y2hlY2tpbmcgLWZuby1zdHJpY3Qtb3ZlcmZsb3ciOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZM QUdTPSIke0FMTE9XRURfRkxBR1N9IC1mbm8tUElFIC1mbm8tcGllIC1mbm8tdW5pdC1hdC1hLXRp bWUiOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1nIC1n WzAtOV0gLWdnZGIgLWdnZGJbMC05XSAtZ3N0YWJzIC1nc3RhYnMrIjsKICAgICAgICBleHBvcnQg QUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtZm5vLWlkZW50IC1mcGVybWlzc2l2ZSI7 CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLVcqIC13IjsK ICAgIGZpOwogICAgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtZm5vLXN0YWNrLXBy b3RlY3RvciAtZm5vLXN0YWNrLXByb3RlY3Rvci1hbGwgCQktZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLWJvdW5kcy1jaGVja2luZyAtZnN0cmljdC1vdmVyZmxvdyAtZm5vLW9taXQtZnJhbWUtcG9p bnRlciI7CiAgICBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1tcmVncGFybSAtbW5v LWFwcC1yZWdzIC1tYXBwLXJlZ3MgCQktbW5vLW1teCAtbW5vLXNzZSAtbW5vLXNzZTIgLW1uby1z c2UzIC1tbm8tc3NzZTMgLW1uby1zc2U0IC1tbm8tc3NlNC4xIAkJLW1uby1zc2U0LjIgLW1uby1h dnggLW1uby1hZXMgLW1uby1wY2xtdWwgLW1uby1zc2U0YSAtbW5vLTNkbm93IAkJLW1uby1wb3Bj bnQgLW1uby1hYm0gCQktbWlwczEgLW1pcHMyIC1taXBzMyAtbWlwczQgLW1pcHMzMiAtbWlwczY0 IC1taXBzMTYgLW1wbHQgCQktbXNvZnQtZmxvYXQgLW1uby1zb2Z0LWZsb2F0IC1taGFyZC1mbG9h dCAtbW5vLWhhcmQtZmxvYXQgLW1mcHUgCQktbWllZWUgLW1pZWVlLXdpdGgtaW5leGFjdCAtbXNj aGVkdWxlIC1tZmxvYXQtZ3BycyAtbXNwZSAtbW5vLXNwZSAJCS1tdGxzLWRpcmVjdC1zZWctcmVm cyAtbW5vLXRscy1kaXJlY3Qtc2VnLXJlZnMgCQktbWZsYXQgLW1uby1mbGF0IC1tbm8tZmFzdGVy LXN0cnVjdHMgLW1mYXN0ZXItc3RydWN0cyAJCS1tMzIgLW02NCAtbWFiaSAtbWxpdHRsZS1lbmRp YW4gLW1iaWctZW5kaWFuIC1FTCAtRUIgLWZQSUMgCQktbWxpdmUtZzAgLW1jbW9kZWwgLW1zdGFj ay1iaWFzIC1tbm8tc3RhY2stYmlhcyAJCS1tc2VjdXJlLXBsdCAtbSotdG9jIC1EKiAtVSoiOwog ICAgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtbW5vLWZtYTQgLW1uby1tb3ZiZSAt bW5vLXhvcCAtbW5vLWx3cCI7CiAgICBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1t bm8tZnNnc2Jhc2UgLW1uby1yZHJuZCAtbW5vLWYxNmMgCQktbW5vLWJtaSAtbW5vLXRibSI7CiAg ICBleHBvcnQgVU5TVEFCTEVfRkxBR1M9Ii1PcyAtTzMgLWZyZW9yZGVyLWJsb2NrcyI7CiAgICBy ZXR1cm4gMAp9CnNyY19jb21waWxlICgpIAp7IAogICAgX2VhcGkyX3NyY19jb21waWxlICIkQCIK fQpzcmNfY29uZmlndXJlICgpIAp7IAogICAgYWRkd3JpdGUgL2Rldi9wdG14OwogICAgYWRkcHJl ZGljdCAvZXRjL3NrZXkvc2tleWtleXM7CiAgICB1c2Ugc3RhdGljICYmIGFwcGVuZC1sZGZsYWdz IC1zdGF0aWM7CiAgICBlY29uZiAtLXdpdGgtbGRmbGFncz0iJHtMREZMQUdTfSIgLS1kaXNhYmxl LXN0cmlwIC0tc3lzY29uZmRpcj0vZXRjL3NzaCAtLWxpYmV4ZWNkaXI9L3Vzci8kKGdldF9saWJk aXIpL21pc2MgLS1kYXRhZGlyPS91c3Ivc2hhcmUvb3BlbnNzaCAtLXdpdGgtcHJpdnNlcC1wYXRo PS92YXIvZW1wdHkgLS13aXRoLXByaXZzZXAtdXNlcj1zc2hkIC0td2l0aC1tZDUtcGFzc3dvcmRz IC0td2l0aC1zc2wtZW5naW5lICQoc3RhdGljX3VzZV93aXRoIHBhbSkgJChzdGF0aWNfdXNlX3dp dGgga2VyYmVyb3Mga2VyYmVyb3M1IC91c3IpICR7TERBUF9QQVRDSDorJCh1c2UgWDUwOSB8fCAo IHVzZSBsZGFwICYmIHVzZV93aXRoIGxkYXAgKSl9ICQodXNlX3dpdGggbGliZWRpdCkgJCh1c2Vf d2l0aCBzZWxpbnV4KSAkKHVzZV93aXRoIHNrZXkpICQodXNlX3dpdGggdGNwZCB0Y3Atd3JhcHBl cnMpCn0Kc3JjX2luc3RhbGwgKCkgCnsgCiAgICBlbWFrZSBpbnN0YWxsLW5va2V5cyBERVNURElS PSIke0R9IiB8fCBkaWU7CiAgICBmcGVybXMgNjAwIC9ldGMvc3NoL3NzaGRfY29uZmlnOwogICAg ZG9iaW4gY29udHJpYi9zc2gtY29weS1pZCB8fCBkaWU7CiAgICBuZXdpbml0ZCAiJHtGSUxFU0RJ Un0iL3NzaGQucmM2LjIgc3NoZDsKICAgIG5ld2NvbmZkICIke0ZJTEVTRElSfSIvc3NoZC5jb25m ZCBzc2hkOwogICAga2VlcGRpciAvdmFyL2VtcHR5OwogICAgaWYgISBncmVwIC1xICcjZGVmaW5l IE9QRU5TU0xfSEFTX0VDQyAxJyBjb25maWcuaDsgdGhlbgogICAgICAgIGRvc2VkICdzOiYmIGdl bl9rZXkgZWNkc2E6OicgL2V0Yy9pbml0LmQvc3NoZCB8fCBkaWU7CiAgICBmaTsKICAgIG5ld3Bh bWQgIiR7RklMRVNESVJ9Ii9zc2hkLnBhbV9pbmNsdWRlLjIgc3NoZDsKICAgIGlmIHVzZSBwYW07 IHRoZW4KICAgICAgICBzZWQgLWkgLWUgIi9eI1VzZVBBTSAvczouKjpVc2VQQU0geWVzOiIgLWUg Ii9eI1Bhc3N3b3JkQXV0aGVudGljYXRpb24gL3M6Lio6UGFzc3dvcmRBdXRoZW50aWNhdGlvbiBu bzoiIC1lICIvXiNQcmludE1vdGQgL3M6Lio6UHJpbnRNb3RkIG5vOiIgLWUgIi9eI1ByaW50TGFz dExvZyAvczouKjpQcmludExhc3RMb2cgbm86IiAiJHtEfSIvZXRjL3NzaC9zc2hkX2NvbmZpZyB8 fCBkaWUgInNlZCBvZiBjb25maWd1cmF0aW9uIGZpbGUgZmFpbGVkIjsKICAgIGZpOwogICAgaWYg W1sgLW4gJHtIUE5fUEFUQ0h9IF1dICYmIHVzZSBocG47IHRoZW4KICAgICAgICBrZWVwZGlyIC92 YXIvZW1wdHkvZGV2OwogICAgZmk7CiAgICBkb21hbiBjb250cmliL3NzaC1jb3B5LWlkLjE7CiAg ICBkb2RvYyBDaGFuZ2VMb2cgQ1JFRElUUyBPVkVSVklFVyBSRUFETUUqIFRPRE8gc3NoZF9jb25m aWc7CiAgICBkaXJvcHRzIC1tIDA3MDA7CiAgICBkb2RpciAvZXRjL3NrZWwvLnNzaAp9CnNyY19w cmVwYXJlICgpIAp7IAogICAgc2VkIC1pIC1lICcvX1BBVEhfWEFVVEgvczovdXNyL1gxMVI2L2Jp bi94YXV0aDovdXNyL2Jpbi94YXV0aDonIHBhdGhuYW1lcy5oIHx8IGRpZTsKICAgIGNwIHZlcnNp b24uaCB2ZXJzaW9uLmgucHJpc3RpbmU7CiAgICBpZiB1c2UgWDUwOTsgdGhlbgogICAgICAgIGVw YXRjaCAiJHtXT1JLRElSfSIvJHtYNTA5X1BBVENIJS4qfTsKICAgICAgICBlcGF0Y2ggIiR7RklM RVNESVJ9Ii8ke1BOfS01LjhfcDEteDUwOS1ocG4tZ2x1ZS5wYXRjaDsKICAgIGZpOwogICAgaWYg ISB1c2UgWDUwOTsgdGhlbgogICAgICAgIGlmIFtbIC1uICR7TERBUF9QQVRDSH0gXV0gJiYgdXNl IGxkYXA7IHRoZW4KICAgICAgICAgICAgZXBhdGNoICIke1dPUktESVJ9Ii8ke0xEQVBfUEFUQ0gl Lip9OwogICAgICAgICAgICBtdiB2ZXJzaW9uLmggdmVyc2lvbi5oLmxwazsKICAgICAgICAgICAg Y3AgLWYgdmVyc2lvbi5oLnByaXN0aW5lIHZlcnNpb24uaDsKICAgICAgICBmaTsKICAgIGVsc2UK ICAgICAgICB1c2UgbGRhcCAmJiBld2FybiAiU29ycnksIFg1MDkgYW5kIExEQVAgY29uZmxpY3Qg aW50ZXJuYWxseSwgZGlzYWJsaW5nIExEQVAiOwogICAgZmk7CiAgICBlcGF0Y2ggIiR7RklMRVNE SVJ9Ii8ke1BOfS00LjdfcDEtR1NTQVBJLWRucy5wYXRjaDsKICAgIGlmIFtbIC1uICR7SFBOX1BB VENIfSBdXSAmJiB1c2UgaHBuOyB0aGVuCiAgICAgICAgc2VkIC1pICcvU1NIX1BPUlRBQkxFL3M6 cDE6cDI6JyAiJHtXT1JLRElSfSIvJHtIUE5fUEFUQ0glLip9OwogICAgICAgIGVwYXRjaCAiJHtX T1JLRElSfSIvJHtIUE5fUEFUQ0glLip9OwogICAgICAgIGVwYXRjaCAiJHtGSUxFU0RJUn0iLyR7 UE59LTUuNl9wMS1ocG4tcHJvZ3Jlc3NtZXRlci5wYXRjaDsKICAgICAgICBtdiB2ZXJzaW9uLmgg dmVyc2lvbi5oLmhwbjsKICAgICAgICBjcCAtZiB2ZXJzaW9uLmgucHJpc3RpbmUgdmVyc2lvbi5o OwogICAgICAgIHNlZCAtaSAtZSAnL2Flcy4uLi1jdHIuKlNTSF9DSVBIRVJfU1NIMi9zLGV2cF9h ZXNfY3RyX210LGV2cF9hZXNfMTI4X2N0ciwnIGNpcGhlci5jIHx8IGRpZTsKICAgIGZpOwogICAg c2VkIC1pICJzOi1sY3J5cHRvOiQocGtnLWNvbmZpZyAtLWxpYnMgb3BlbnNzbCk6IiBjb25maWd1 cmV7LC5hY30gfHwgZGllOwogICAgc2VkIC1pIC1lICdzOl5QQVRIPS86I1BBVEg9LzonIGNvbmZp Z3VyZSB8fCBkaWU7CiAgICAoIHNlZCAnL14jZGVmaW5lIFNTSF9SRUxFQVNFL2QnIHZlcnNpb24u aC4qIHwgc29ydCAtdTsKICAgIHByaW50ZiAnI2RlZmluZSBTU0hfUkVMRUFTRSBTU0hfVkVSU0lP TiBTU0hfUE9SVEFCTEUgJXMgJXNcbicgIiQoWyAtZSB2ZXJzaW9uLmguaHBuIF0gJiYgZWNobyBT U0hfSFBOKSIgIiQoWyAtZSB2ZXJzaW9uLmgubHBrIF0gJiYgZWNobyBTU0hfTFBLKSIgKSA+IHZl cnNpb24uaDsKICAgIGVhdXRvcmVjb25mCn0Kc3JjX3Rlc3QgKCkgCnsgCiAgICBsb2NhbCB0IHRl c3RzIHNraXBwZWQgZmFpbGVkIHBhc3NlZCBzaGVsbDsKICAgIHRlc3RzPSJpbnRlcm9wLXRlc3Rz IGNvbXBhdC10ZXN0cyI7CiAgICBza2lwcGVkPSIiOwogICAgc2hlbGw9JChnZXRlbnQgcGFzc3dk ICR7VUlEfSB8IGN1dCAtZDogLWY3KTsKICAgIGlmIFtbICR7c2hlbGx9ID09ICovbm9sb2dpbiBd XSB8fCBbWyAke3NoZWxsfSA9PSAqL2ZhbHNlIF1dOyB0aGVuCiAgICAgICAgZWxvZyAiUnVubmlu ZyB0aGUgZnVsbCBPcGVuU1NIIHRlc3RzdWl0ZSI7CiAgICAgICAgZWxvZyAicmVxdWlyZXMgYSB1 c2FibGUgc2hlbGwgZm9yIHRoZSAncG9ydGFnZSciOwogICAgICAgIGVsb2cgInVzZXIsIHNvIHdl IHdpbGwgcnVuIGEgc3Vic2V0IG9ubHkuIjsKICAgICAgICBza2lwcGVkPSIke3NraXBwZWR9IHRl c3RzIjsKICAgIGVsc2UKICAgICAgICB0ZXN0cz0iJHt0ZXN0c30gdGVzdHMiOwogICAgZmk7CiAg ICBmb3IgdCBpbiAke3Rlc3RzfTsKICAgIGRvCiAgICAgICAgZW1ha2UgLWsgLWoxICR7dH0gPCAv ZGV2L251bGwgJiYgcGFzc2VkPSIke3Bhc3NlZH0ke3R9ICIgfHwgZmFpbGVkPSIke2ZhaWxlZH0k e3R9ICI7CiAgICBkb25lOwogICAgZWluZm8gIlBhc3NlZCB0ZXN0czogJHtwYXNzZWR9IjsKICAg IGV3YXJuICJTa2lwcGVkIHRlc3RzOiAke3NraXBwZWR9IjsKICAgIGlmIFtbIC1uICR7ZmFpbGVk fSBdXTsgdGhlbgogICAgICAgIGV3YXJuICJGYWlsZWQgdGVzdHM6ICR7ZmFpbGVkfSI7CiAgICAg ICAgZGllICJTb21lIHRlc3RzIGZhaWxlZDogJHtmYWlsZWR9IjsKICAgIGVsc2UKICAgICAgICBl aW5mbyAiRmFpbGVkIHRlc3RzOiAke2ZhaWxlZH0iOwogICAgICAgIHJldHVybiAwOwogICAgZmkK fQpzcmNfdW5wYWNrICgpIAp7IAogICAgX2VhcGkwX3NyY191bnBhY2sgIiRAIgp9CnN0YXRpY191 c2Vfd2l0aCAoKSAKeyAKICAgIGxvY2FsIGZsYWc9JDE7CiAgICBpZiB1c2Ugc3RhdGljICYmIHVz ZSAke2ZsYWd9OyB0aGVuCiAgICAgICAgZXdhcm4gIkRpc2FibGluZyAnJHtmbGFnfScgc3VwcG9y dCBiZWNhdXNlIG9mIFVTRT0nc3RhdGljJyI7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgW1sgLXog JDEgXV0gJiYgZmxhZz0iJHtmbGFnfSAke2ZsYWd9IjsKICAgICAgICBzZXQgLS0gISR7ZmxhZ30g IiRAIjsKICAgIGZpOwogICAgdXNlX3dpdGggIiRAIgp9CnN0cmlwLWZsYWdzICgpIAp7IAogICAg bG9jYWwgeCB5IGZsYWcgTkVXX0NGTEFHUyBORVdfQ1hYRkxBR1MgTkVXX0ZGTEFHUyBORVdfRkNG TEFHUzsKICAgIHNldHVwLWFsbG93ZWQtZmxhZ3M7CiAgICBsb2NhbCBORVdfQ0ZMQUdTPSIiOwog ICAgbG9jYWwgTkVXX0NYWEZMQUdTPSIiOwogICAgbG9jYWwgTkVXX0ZGTEFHUz0iIjsKICAgIGxv Y2FsIE5FV19GQ0ZMQUdTPSIiOwogICAgaWYgaGFzICJ+JCh0Yy1hcmNoKSIgJHtBQ0NFUFRfS0VZ V09SRFN9OyB0aGVuCiAgICAgICAgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAke1VO U1RBQkxFX0ZMQUdTfSI7CiAgICBmaTsKICAgIHNldCAtZjsKICAgIGZvciB4IGluICR7Q0ZMQUdT fTsKICAgIGRvCiAgICAgICAgZm9yIHkgaW4gJHtBTExPV0VEX0ZMQUdTfTsKICAgICAgICBkbwog ICAgICAgICAgICBmbGFnPSR7eCUlPSp9OwogICAgICAgICAgICBpZiBbICIke2ZsYWclJSR7eX19 IiA9ICIiIF07IHRoZW4KICAgICAgICAgICAgICAgIE5FV19DRkxBR1M9IiR7TkVXX0NGTEFHU30g JHt4fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9u ZTsKICAgIGRvbmU7CiAgICBmb3IgeCBpbiAke0NYWEZMQUdTfTsKICAgIGRvCiAgICAgICAgZm9y IHkgaW4gJHtBTExPV0VEX0ZMQUdTfTsKICAgICAgICBkbwogICAgICAgICAgICBmbGFnPSR7eCUl PSp9OwogICAgICAgICAgICBpZiBbICIke2ZsYWclJSR7eX19IiA9ICIiIF07IHRoZW4KICAgICAg ICAgICAgICAgIE5FV19DWFhGTEFHUz0iJHtORVdfQ1hYRkxBR1N9ICR7eH0iOwogICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICBkb25lOwogICAg Zm9yIHggaW4gJHtGRkxBR1N9OwogICAgZG8KICAgICAgICBmb3IgeSBpbiAke0FMTE9XRURfRkxB R1N9OwogICAgICAgIGRvCiAgICAgICAgICAgIGZsYWc9JHt4JSU9Kn07CiAgICAgICAgICAgIGlm IFsgIiR7ZmxhZyUlJHt5fX0iID0gIiIgXTsgdGhlbgogICAgICAgICAgICAgICAgTkVXX0ZGTEFH Uz0iJHtORVdfRkZMQUdTfSAke3h9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICBmaTsKICAgICAgICBkb25lOwogICAgZG9uZTsKICAgIGZvciB4IGluICR7RkNGTEFHU307CiAg ICBkbwogICAgICAgIGZvciB5IGluICR7QUxMT1dFRF9GTEFHU307CiAgICAgICAgZG8KICAgICAg ICAgICAgZmxhZz0ke3glJT0qfTsKICAgICAgICAgICAgaWYgWyAiJHtmbGFnJSUke3l9fSIgPSAi IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBORVdfRkNGTEFHUz0iJHtORVdfRkNGTEFHU30gJHt4 fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK ICAgIGRvbmU7CiAgICBpZiBbICIke0NGTEFHUy8tT30iICE9ICIke0NGTEFHU30iIC1hICIke05F V19DRkxBR1MvLU99IiA9ICIke05FV19DRkxBR1N9IiBdOyB0aGVuCiAgICAgICAgTkVXX0NGTEFH Uz0iJHtORVdfQ0ZMQUdTfSAtTzIiOwogICAgZmk7CiAgICBpZiBbICIke0NYWEZMQUdTLy1PfSIg IT0gIiR7Q1hYRkxBR1N9IiAtYSAiJHtORVdfQ1hYRkxBR1MvLU99IiA9ICIke05FV19DWFhGTEFH U30iIF07IHRoZW4KICAgICAgICBORVdfQ1hYRkxBR1M9IiR7TkVXX0NYWEZMQUdTfSAtTzIiOwog ICAgZmk7CiAgICBpZiBbICIke0ZGTEFHUy8tT30iICE9ICIke0ZGTEFHU30iIC1hICIke05FV19G RkxBR1MvLU99IiA9ICIke05FV19GRkxBR1N9IiBdOyB0aGVuCiAgICAgICAgTkVXX0ZGTEFHUz0i JHtORVdfRkZMQUdTfSAtTzIiOwogICAgZmk7CiAgICBpZiBbICIke0ZDRkxBR1MvLU99IiAhPSAi JHtGQ0ZMQUdTfSIgLWEgIiR7TkVXX0ZDRkxBR1MvLU99IiA9ICIke05FV19GQ0ZMQUdTfSIgXTsg dGhlbgogICAgICAgIE5FV19GQ0ZMQUdTPSIke05FV19GQ0ZMQUdTfSAtTzIiOwogICAgZmk7CiAg ICBzZXQgK2Y7CiAgICBleHBvcnQgQ0ZMQUdTPSIke05FV19DRkxBR1N9IjsKICAgIGV4cG9ydCBD WFhGTEFHUz0iJHtORVdfQ1hYRkxBR1N9IjsKICAgIGV4cG9ydCBGRkxBR1M9IiR7TkVXX0ZGTEFH U30iOwogICAgZXhwb3J0IEZDRkxBR1M9IiR7TkVXX0ZDRkxBR1N9IjsKICAgIHJldHVybiAwCn0K c3RyaXAtbGluZ3VhcyAoKSAKeyAKICAgIGxvY2FsIGxzIG5ld2xzIG5vbHM7CiAgICBpZiBbWyAk MSA9PSAiLWkiIF1dIHx8IFtbICQxID09ICItdSIgXV07IHRoZW4KICAgICAgICBsb2NhbCBvcD0k MTsKICAgICAgICBzaGlmdDsKICAgICAgICBscz0kKGZpbmQgIiQxIiAtbmFtZSAnKi5wbycgLWV4 ZWMgYmFzZW5hbWUge30gLnBvICc7Jyk7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgbG9jYWwgZCBm OwogICAgICAgIGZvciBkIGluICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sgJHtv cH0gPT0gIi11IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgbmV3bHM9JHtsc307CiAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgIG5ld2xzPSIiOwogICAgICAgICAgICBmaTsKICAgICAg ICAgICAgZm9yIGYgaW4gJChmaW5kICIkZCIgLW5hbWUgJyoucG8nIC1leGVjIGJhc2VuYW1lIHt9 IC5wbyAnOycpOwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgW1sgJHtvcH0gPT0g Ii1pIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGhhc3EgJHtmfSAke2xzfSAmJiBuZXds cz0iJHtuZXdsc30gJHtmfSI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg ICAgaGFzcSAke2Z9ICR7bHN9IHx8IG5ld2xzPSIke25ld2xzfSAke2Z9IjsKICAgICAgICAgICAg ICAgIGZpOwogICAgICAgICAgICBkb25lOwogICAgICAgICAgICBscz0ke25ld2xzfTsKICAgICAg ICBkb25lOwogICAgZWxzZQogICAgICAgIGxzPSIkQCI7CiAgICBmaTsKICAgIG5vbHM9IiI7CiAg ICBuZXdscz0iIjsKICAgIGZvciBmIGluICR7TElOR1VBU307CiAgICBkbwogICAgICAgIGlmIGhh c3EgJHtmfSAke2xzfTsgdGhlbgogICAgICAgICAgICBuZXdscz0iJHtuZXdsc30gJHtmfSI7CiAg ICAgICAgZWxzZQogICAgICAgICAgICBub2xzPSIke25vbHN9ICR7Zn0iOwogICAgICAgIGZpOwog ICAgZG9uZTsKICAgIFtbIC1uICR7bm9sc30gXV0gJiYgZXdhcm4gIlNvcnJ5LCBidXQgJHtQTn0g ZG9lcyBub3Qgc3VwcG9ydCB0aGUgTElOR1VBUzoiICR7bm9sc307CiAgICBleHBvcnQgTElOR1VB Uz0ke25ld2xzOjF9Cn0Kc3RyaXAtdW5zdXBwb3J0ZWQtZmxhZ3MgKCkgCnsgCiAgICBleHBvcnQg Q0ZMQUdTPSQodGVzdC1mbGFncy1DQyAke0NGTEFHU30pOwogICAgZXhwb3J0IENYWEZMQUdTPSQo dGVzdC1mbGFncy1DWFggJHtDWFhGTEFHU30pOwogICAgZXhwb3J0IEZGTEFHUz0kKHRlc3QtZmxh Z3MtRjc3ICR7RkZMQUdTfSk7CiAgICBleHBvcnQgRkNGTEFHUz0kKHRlc3QtZmxhZ3MtRkMgJHtG Q0ZMQUdTfSkKfQp0Yy1hcmNoICgpIAp7IAogICAgdGMtbmluamFfbWFnaWNfdG9fYXJjaCBwb3J0 YWdlICIkQCIKfQp0Yy1hcmNoLWtlcm5lbCAoKSAKeyAKICAgIHRjLW5pbmphX21hZ2ljX3RvX2Fy Y2gga2VybiAiJEAiCn0KdGMtZW5kaWFuICgpIAp7IAogICAgbG9jYWwgaG9zdD0kMTsKICAgIFtb IC16ICR7aG9zdH0gXV0gJiYgaG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGhvc3Q9JHto b3N0JSUtKn07CiAgICBjYXNlICR7aG9zdH0gaW4gCiAgICAgICAgYWxwaGEqKQogICAgICAgICAg ICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJtKmIqKQogICAgICAgICAgICBlY2hvIGJp ZwogICAgICAgIDs7CiAgICAgICAgYXJtKikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAg ICA7OwogICAgICAgIGNyaXMqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAg ICAgICAgaHBwYSopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBpPzg2 KikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGlhNjQqKQogICAg ICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgbTY4KikKICAgICAgICAgICAg ZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIG1pcHMqbCopCiAgICAgICAgICAgIGVjaG8gbGl0 dGxlCiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAg ICA7OwogICAgICAgIHBvd2VycGMqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAg ICAgICAgczM5MCopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBzaCpi KikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHNoKikKICAgICAgICAg ICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgZWNo byBiaWcKICAgICAgICA7OwogICAgICAgIHg4Nl82NCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxl CiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlY2hvIHd0ZgogICAgICAgIDs7CiAg ICBlc2FjCn0KdGMtZXhwb3J0ICgpIAp7IAogICAgbG9jYWwgdmFyOwogICAgZm9yIHZhciBpbiAi JEAiOwogICAgZG8KICAgICAgICBbWyAkKHR5cGUgLXQgdGMtZ2V0JHt2YXJ9KSAhPSAiZnVuY3Rp b24iIF1dICYmIGRpZSAidGMtZXhwb3J0OiBpbnZhbGlkIGV4cG9ydCB2YXJpYWJsZSAnJHt2YXJ9 JyI7CiAgICAgICAgZXZhbCB0Yy1nZXQke3Zhcn0gPiAvZGV2L251bGw7CiAgICBkb25lCn0KdGMt Z2V0QVIgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEFSIGFyICIkQCIKfQp0Yy1nZXRBUyAoKSAKeyAK ICAgIHRjLWdldFBST0cgQVMgYXMgIiRAIgp9CnRjLWdldEJVSUxEX0NDICgpIAp7IAogICAgbG9j YWwgdjsKICAgIGZvciB2IGluIENDX0ZPUl9CVUlMRCBCVUlMRF9DQyBIT1NUQ0M7CiAgICBkbwog ICAgICAgIGlmIFtbIC1uICR7IXZ9IF1dOyB0aGVuCiAgICAgICAgICAgIGV4cG9ydCBCVUlMRF9D Qz0keyF2fTsKICAgICAgICAgICAgZWNobyAiJHshdn0iOwogICAgICAgICAgICByZXR1cm4gMDsK ICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgaWYgW1sgLW4gJHtD QlVJTER9IF1dOyB0aGVuCiAgICAgICAgc2VhcmNoPSQodHlwZSAtcCAke0NCVUlMRH0tZ2NjKTsK ICAgICAgICBzZWFyY2g9JHtzZWFyY2gjIyovfTsKICAgIGZpOwogICAgc2VhcmNoPSR7c2VhcmNo Oi1nY2N9OwogICAgZXhwb3J0IEJVSUxEX0NDPSR7c2VhcmNofTsKICAgIGVjaG8gIiR7c2VhcmNo fSIKfQp0Yy1nZXRDQyAoKSAKeyAKICAgIHRjLWdldFBST0cgQ0MgZ2NjICIkQCIKfQp0Yy1nZXRD UFAgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIENQUCBjcHAgIiRAIgp9CnRjLWdldENYWCAoKSAKeyAK ICAgIHRjLWdldFBST0cgQ1hYIGcrKyAiJEAiCn0KdGMtZ2V0RExMV1JBUCAoKSAKeyAKICAgIHRj LWdldFBST0cgRExMV1JBUCBkbGx3cmFwICIkQCIKfQp0Yy1nZXRGNzcgKCkgCnsgCiAgICB0Yy1n ZXRQUk9HIEY3NyBnZm9ydHJhbiAiJEAiCn0KdGMtZ2V0RkMgKCkgCnsgCiAgICB0Yy1nZXRQUk9H IEZDIGdmb3J0cmFuICIkQCIKfQp0Yy1nZXRHQ0ogKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEdDSiBn Y2ogIiRAIgp9CnRjLWdldExEICgpIAp7IAogICAgdGMtZ2V0UFJPRyBMRCBsZCAiJEAiCn0KdGMt Z2V0Tk0gKCkgCnsgCiAgICB0Yy1nZXRQUk9HIE5NIG5tICIkQCIKfQp0Yy1nZXRPQkpDT1BZICgp IAp7IAogICAgdGMtZ2V0UFJPRyBPQkpDT1BZIG9iamNvcHkgIiRAIgp9CnRjLWdldFBLR19DT05G SUcgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIFBLR19DT05GSUcgcGtnLWNvbmZpZyAiJEAiCn0KdGMt Z2V0UFJPRyAoKSAKeyAKICAgIGxvY2FsIHZhcj0kMTsKICAgIGxvY2FsIHByb2c9JDI7CiAgICBp ZiBbWyAtbiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAgICAgZWNobyAiJHshdmFyfSI7CiAgICAgICAg cmV0dXJuIDA7CiAgICBmaTsKICAgIGxvY2FsIHNlYXJjaD07CiAgICBbWyAtbiAkMyBdXSAmJiBz ZWFyY2g9JCh0eXBlIC1wICIkMy0ke3Byb2d9Iik7CiAgICBbWyAteiAke3NlYXJjaH0gJiYgLW4g JHtDSE9TVH0gXV0gJiYgc2VhcmNoPSQodHlwZSAtcCAiJHtDSE9TVH0tJHtwcm9nfSIpOwogICAg W1sgLW4gJHtzZWFyY2h9IF1dICYmIHByb2c9JHtzZWFyY2gjIyovfTsKICAgIGV4cG9ydCAke3Zh cn09JHtwcm9nfTsKICAgIGVjaG8gIiR7IXZhcn0iCn0KdGMtZ2V0UkFOTElCICgpIAp7IAogICAg dGMtZ2V0UFJPRyBSQU5MSUIgcmFubGliICIkQCIKfQp0Yy1nZXRSQyAoKSAKeyAKICAgIHRjLWdl dFBST0cgUkMgd2luZHJlcyAiJEAiCn0KdGMtZ2V0U1RSSVAgKCkgCnsgCiAgICB0Yy1nZXRQUk9H IFNUUklQIHN0cmlwICIkQCIKfQp0Yy1oYXMtb3Blbm1wICgpIAp7IAogICAgbG9jYWwgYmFzZT0i JHtUfS90ZXN0LXRjLW9wZW5tcCI7CiAgICBjYXQgPiAiJHtiYXNlfS5jIiAgPDwtRU9GCiNpbmNs dWRlIDxvbXAuaD4KaW50IG1haW4oKSB7CmludCBudGhyZWFkcywgdGlkLCByZXQgPSAwOwojcHJh Z21hIG9tcCBwYXJhbGxlbCBwcml2YXRlKG50aHJlYWRzLCB0aWQpCnsKdGlkID0gb21wX2dldF90 aHJlYWRfbnVtKCk7Cm50aHJlYWRzID0gb21wX2dldF9udW1fdGhyZWFkcygpOyByZXQgKz0gdGlk ICsgbnRocmVhZHM7Cn0KcmV0dXJuIHJldDsKfQpFT0YKCiAgICAkKHRjLWdldENDICIkQCIpIC1m b3Blbm1wICIke2Jhc2V9LmMiIC1vICIke2Jhc2V9IiAmPi9kZXYvbnVsbDsKICAgIGxvY2FsIHJl dD0kPzsKICAgIHJtIC1mICIke2Jhc2V9Iio7CiAgICByZXR1cm4gJHtyZXR9Cn0KdGMtaGFzLXRs cyAoKSAKeyAKICAgIGxvY2FsIGJhc2U9IiR7VH0vdGVzdC10Yy10bHMiOwogICAgY2F0ID4gIiR7 YmFzZX0uYyIgIDw8LUVPRgppbnQgZm9vKGludCAqaSkgewpzdGF0aWMgX190aHJlYWQgaW50IGog PSAwOwpyZXR1cm4gKmkgPyBqIDogKmk7Cn0KRU9GCgogICAgbG9jYWwgZmxhZ3M7CiAgICBjYXNl ICQxIGluIAogICAgICAgIC1zKQogICAgICAgICAgICBmbGFncz0iLVMiCiAgICAgICAgOzsKICAg ICAgICAtYykKICAgICAgICAgICAgZmxhZ3M9Ii1jIgogICAgICAgIDs7CiAgICAgICAgLWwpCgog ICAgICAgIDs7CiAgICAgICAgLSopCiAgICAgICAgICAgIGRpZSAiVXNhZ2U6IHRjLWhhcy10bHMg Wy1jfC1sXSBbdG9vbGNoYWluIHByZWZpeF0iCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICA6ICR7 ZmxhZ3M6PS1mUElDIC1zaGFyZWQgLVdsLC16LGRlZnN9OwogICAgW1sgJDEgPT0gLSogXV0gJiYg c2hpZnQ7CiAgICAkKHRjLWdldENDICIkQCIpICR7ZmxhZ3N9ICIke2Jhc2V9LmMiIC1vICIke2Jh c2V9IiAmPi9kZXYvbnVsbDsKICAgIGxvY2FsIHJldD0kPzsKICAgIHJtIC1mICIke2Jhc2V9Iio7 CiAgICByZXR1cm4gJHtyZXR9Cn0KdGMtaXMtY3Jvc3MtY29tcGlsZXIgKCkgCnsgCiAgICByZXR1 cm4gJChbWyAke0NCVUlMRDotJHtDSE9TVH19ICE9ICR7Q0hPU1R9IF1dKQp9CnRjLWlzLWhhcmRm bG9hdCAoKSAKeyAKICAgIFtbICR7Q1RBUkdFVC8vXy8tfSA9PSAqLWhhcmRmbG9hdC0qIF1dICYm IGVjaG8gInllcyIgfHwgZWNobyAibm8iCn0KdGMtaXMtc29mdGZsb2F0ICgpIAp7IAogICAgY2Fz ZSAke0NUQVJHRVR9IGluIAogICAgICAgIGJmaW4qIHwgaDgzMDAqKQogICAgICAgICAgICBlY2hv ICJvbmx5IgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgW1sgJHtDVEFSR0VULy9f Ly19ID09ICotc29mdGZsb2F0LSogXV0gJiYgZWNobyAieWVzIiB8fCBlY2hvICJubyIKICAgICAg ICA7OwogICAgZXNhYwp9CnRjLWlzLXN0YXRpYy1vbmx5ICgpIAp7IAogICAgbG9jYWwgaG9zdD0k e0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIHJldHVybiAkKFtbICR7aG9zdH0gPT0gKi1taW50KiBd XSkKfQp0Yy1uaW5qYV9tYWdpY190b19hcmNoICgpIAp7IAogICAgZnVuY3Rpb24gbmluaiAoKSAK ICAgIHsgCiAgICAgICAgW1sgJHt0eXBlfSA9PSAia2VybiIgXV0gJiYgZWNobyAkMSB8fCBlY2hv ICQyCiAgICB9OwogICAgbG9jYWwgdHlwZT0kMTsKICAgIGxvY2FsIGhvc3Q9JDI7CiAgICBbWyAt eiAke2hvc3R9IF1dICYmIGhvc3Q9JHtDVEFSR0VUOi0ke0NIT1NUfX07CiAgICBjYXNlICR7aG9z dH0gaW4gCiAgICAgICAgYWxwaGEqKQogICAgICAgICAgICBlY2hvIGFscGhhCiAgICAgICAgOzsK ICAgICAgICBhcm0qKQogICAgICAgICAgICBlY2hvIGFybQogICAgICAgIDs7CiAgICAgICAgYXZy KikKICAgICAgICAgICAgbmluaiBhdnIzMiBhdnIKICAgICAgICA7OwogICAgICAgIGJmaW4qKQog ICAgICAgICAgICBuaW5qIGJsYWNrZmluIGJmaW4KICAgICAgICA7OwogICAgICAgIGNyaXMqKQog ICAgICAgICAgICBlY2hvIGNyaXMKICAgICAgICA7OwogICAgICAgIGhwcGEqKQogICAgICAgICAg ICBuaW5qIHBhcmlzYyBocHBhCiAgICAgICAgOzsKICAgICAgICBpPzg2KikKICAgICAgICAgICAg aWYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV0gJiYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1sdCAk KEtWX3RvX2ludCAyLjYuMjQpIHx8ICR7aG9zdH0gPT0gKmZyZWVic2QqIF1dOyB0aGVuCiAgICAg ICAgICAgICAgICBlY2hvIGkzODY7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVj aG8geDg2OwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgaWE2NCopCiAgICAgICAg ICAgIGVjaG8gaWE2NAogICAgICAgIDs7CiAgICAgICAgbTY4KikKICAgICAgICAgICAgZWNobyBt NjhrCiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAgICAgICAgICAgZWNobyBtaXBzCiAgICAg ICAgOzsKICAgICAgICBuaW9zMiopCiAgICAgICAgICAgIGVjaG8gbmlvczIKICAgICAgICA7Owog ICAgICAgIG5pb3MqKQogICAgICAgICAgICBlY2hvIG5pb3MKICAgICAgICA7OwogICAgICAgIHBv d2VycGMqKQogICAgICAgICAgICBpZiBbWyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBbWyAkKEtW X3RvX2ludCAke0tWfSkgLWdlICQoS1ZfdG9faW50IDIuNi4xNikgXV07IHRoZW4KICAgICAgICAg ICAgICAgIGVjaG8gcG93ZXJwYzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgaWYg W1sgJHt0eXBlfSA9PSAia2VybiIgXV0gJiYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1lcSAkKEtW X3RvX2ludCAyLjYuMTUpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtob3N0 fSA9PSBwb3dlcnBjNjQqIF1dIHx8IFtbICR7UFJPRklMRV9BUkNIfSA9PSAicHBjNjQiIF1dOyB0 aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcG93ZXJwYzsKICAgICAgICAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcHBjOwogICAgICAgICAgICAg ICAgICAgIGZpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGlmIFtb ICR7aG9zdH0gPT0gcG93ZXJwYzY0KiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBl Y2hvIHBwYzY0OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgaWYgW1sgJHtQUk9GSUxFX0FSQ0h9ID09ICJwcGM2NCIgXV07IHRoZW4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5pbmogcHBjNjQgcHBjOwogICAgICAgICAgICAgICAgICAgICAgICBl bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHBwYzsKICAgICAgICAgICAgICAg ICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBmaTsK ICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAgIHMzOTAqKQogICAgICAgICAgICBlY2hv IHMzOTAKICAgICAgICA7OwogICAgICAgIHNoNjQqKQogICAgICAgICAgICBuaW5qIHNoNjQgc2gK ICAgICAgICA7OwogICAgICAgIHNoKikKICAgICAgICAgICAgZWNobyBzaAogICAgICAgIDs7CiAg ICAgICAgc3BhcmM2NCopCiAgICAgICAgICAgIG5pbmogc3BhcmM2NCBzcGFyYwogICAgICAgIDs7 CiAgICAgICAgc3BhcmMqKQogICAgICAgICAgICBbWyAke1BST0ZJTEVfQVJDSH0gPT0gInNwYXJj NjQiIF1dICYmIG5pbmogc3BhcmM2NCBzcGFyYyB8fCBlY2hvIHNwYXJjCiAgICAgICAgOzsKICAg ICAgICB2YXgqKQogICAgICAgICAgICBlY2hvIHZheAogICAgICAgIDs7CiAgICAgICAgeDg2XzY0 KikKICAgICAgICAgICAgaWYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV0gJiYgW1sgJChLVl90b19p bnQgJHtLVn0pIC1nZSAkKEtWX3RvX2ludCAyLjYuMjQpIF1dOyB0aGVuCiAgICAgICAgICAgICAg ICBlY2hvIHg4NjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbmluaiB4ODZfNjQg YW1kNjQ7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBl Y2hvIHVua25vd24KICAgICAgICA7OwogICAgZXNhYwp9CnRlc3QtZmxhZy1DQyAoKSAKeyAKICAg IHRlc3QtZmxhZy1QUk9HICJDQyIgIiQxIgp9CnRlc3QtZmxhZy1DWFggKCkgCnsgCiAgICB0ZXN0 LWZsYWctUFJPRyAiQ1hYIiAiJDEiCn0KdGVzdC1mbGFnLUY3NyAoKSAKeyAKICAgIHRlc3QtZmxh Zy1QUk9HICJGNzciICIkMSIKfQp0ZXN0LWZsYWctRkMgKCkgCnsgCiAgICB0ZXN0LWZsYWctUFJP RyAiRkMiICIkMSIKfQp0ZXN0LWZsYWctUFJPRyAoKSAKeyAKICAgIGxvY2FsIGNvbXA9JDE7CiAg ICBsb2NhbCBmbGFncz0iJDIiOwogICAgW1sgLXogJHtjb21wfSB8fCAteiAke2ZsYWdzfSBdXSAm JiByZXR1cm4gMTsKICAgIGxvY2FsIFBST0c9JCh0Yy1nZXQke2NvbXB9KTsKICAgICR7UFJPR30g JHtmbGFnc30gLVMgLW8gL2Rldi9udWxsIC14YyAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMQp9 CnRlc3QtZmxhZ3MgKCkgCnsgCiAgICB0ZXN0LWZsYWdzLUNDICIkQCIKfQp0ZXN0LWZsYWdzLUND ICgpIAp7IAogICAgdGVzdC1mbGFncy1QUk9HICJDQyIgIiRAIgp9CnRlc3QtZmxhZ3MtQ1hYICgp IAp7IAogICAgdGVzdC1mbGFncy1QUk9HICJDWFgiICIkQCIKfQp0ZXN0LWZsYWdzLUY3NyAoKSAK eyAKICAgIHRlc3QtZmxhZ3MtUFJPRyAiRjc3IiAiJEAiCn0KdGVzdC1mbGFncy1GQyAoKSAKeyAK ICAgIHRlc3QtZmxhZ3MtUFJPRyAiRkMiICIkQCIKfQp0ZXN0LWZsYWdzLVBST0cgKCkgCnsgCiAg ICBsb2NhbCBjb21wPSQxOwogICAgbG9jYWwgZmxhZ3M7CiAgICBsb2NhbCB4OwogICAgc2hpZnQ7 CiAgICBbWyAteiAke2NvbXB9IF1dICYmIHJldHVybiAxOwogICAgeD0iIjsKICAgIGZvciB4IGlu ICIkQCI7CiAgICBkbwogICAgICAgIHRlc3QtZmxhZy0ke2NvbXB9ICIke3h9IiAmJiBmbGFncz0i JHtmbGFnc30ke2ZsYWdzOisgfSR7eH0iOwogICAgZG9uZTsKICAgIGVjaG8gIiR7ZmxhZ3N9IjsK ICAgIFtbIC1uICR7ZmxhZ3N9IF1dCn0KdGVzdF9mbGFnICgpIAp7IAogICAgZXdhcm4gInRlc3Rf ZmxhZzogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB0ZXN0LWZsYWdzKCkhIiAxPiYyOwogICAgdGVz dC1mbGFncy1DQyAiJEAiCn0KdGVzdF92ZXJzaW9uX2luZm8gKCkgCnsgCiAgICBpZiBbWyAkKCQo dGMtZ2V0Q0MpIC0tdmVyc2lvbiAyPiYxKSA9PSAqJDEqIF1dOyB0aGVuCiAgICAgICAgcmV0dXJu IDA7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIDE7CiAgICBmaQp9CnRyZWVjb3B5ICgpIAp7IAog ICAgZGVzdD0keyEjfTsKICAgIGZpbGVzX2NvdW50PSQjOwogICAgd2hpbGUgKCggJCMgPiAxICkp OyBkbwogICAgICAgIGRpcnN0cnVjdD0kKGRpcm5hbWUgIiQxIik7CiAgICAgICAgbWtkaXIgLXAg IiR7ZGVzdH0vJHtkaXJzdHJ1Y3R9IjsKICAgICAgICBjcCAtcFBSICIkMSIgIiR7ZGVzdH0vJHtk aXJzdHJ1Y3R9IjsKICAgICAgICBzaGlmdDsKICAgIGRvbmUKfQp1Y2xpYmN0b29saXplICgpIAp7 IAogICAgZGllICJVc2UgZWxpYnRvb2xpemUiCn0KdW5wYWNrX21ha2VzZWxmICgpIAp7IAogICAg bG9jYWwgc3JjX2lucHV0PSR7MTotJHtBfX07CiAgICBsb2NhbCBzcmM9JChmaW5kX3VucGFja2Fi bGVfZmlsZSAiJHtzcmNfaW5wdXR9Iik7CiAgICBsb2NhbCBza2lwPSQyOwogICAgbG9jYWwgZXhl PSQzOwogICAgW1sgLXogJHtzcmN9IF1dICYmIGRpZSAiQ291bGQgbm90IGxvY2F0ZSBzb3VyY2Ug Zm9yICcke3NyY19pbnB1dH0nIjsKICAgIGxvY2FsIHNocnRzcmM9JChiYXNlbmFtZSAiJHtzcmN9 Iik7CiAgICBlY2hvICI+Pj4gVW5wYWNraW5nICR7c2hydHNyY30gdG8gJHtQV0R9IjsKICAgIGlm IFtbIC16ICR7c2tpcH0gXV07IHRoZW4KICAgICAgICBsb2NhbCB2ZXI9JChncmVwIC1tMSAtYSAn Iy4qTWFrZXNlbGYnICIke3NyY30iIHwgYXdrICd7cHJpbnQgJE5GfScpOwogICAgICAgIGxvY2Fs IHNraXA9MDsKICAgICAgICBleGU9dGFpbDsKICAgICAgICBjYXNlICR7dmVyfSBpbiAKICAgICAg ICAgICAgMS41LiogfCAxLjYuMC1udikKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5z a2lwPSAiJHtzcmN9IiB8IGN1dCAtZD0gLWYyKQogICAgICAgICAgICA7OwogICAgICAgICAgICAy LjAgfCAyLjAuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF4nCSd0YWlsICIke3Ny Y30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKQogICAgICAgICAgICA7OwogICAgICAg ICAgICAyLjEuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5vZmZzZXQ9ICIke3Ny Y30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKTsKICAgICAgICAgICAgICAgICgoIHNr aXArKyApKQogICAgICAgICAgICA7OwogICAgICAgICAgICAyLjEuMikKICAgICAgICAgICAgICAg IHNraXA9JChncmVwIC1hIF5vZmZzZXQ9ICIke3NyY30iIHwgYXdrICd7cHJpbnQgJDN9JyB8IGhl YWQgLW4gMSk7CiAgICAgICAgICAgICAgICAoKCBza2lwKysgKSkKICAgICAgICAgICAgOzsKICAg ICAgICAgICAgMi4xLjMpCiAgICAgICAgICAgICAgICBza2lwPWBncmVwIC1hIF5vZmZzZXQ9ICIk e3NyY30iIHwgYXdrICd7cHJpbnQgJDN9J2A7CiAgICAgICAgICAgICAgICAoKCBza2lwKysgKSkK ICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjQgfCAyLjEuNSkKICAgICAgICAgICAgICAg IHNraXA9JChncmVwIC1hIG9mZnNldD0uKmhlYWQuKndjICIke3NyY30iIHwgYXdrICd7cHJpbnQg JDN9JyB8IGhlYWQgLW4gMSk7CiAgICAgICAgICAgICAgICBza2lwPSQoaGVhZCAtbiAke3NraXB9 ICIke3NyY30iIHwgd2MgLWMpOwogICAgICAgICAgICAgICAgZXhlPSJkZCIKICAgICAgICAgICAg OzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGVlcnJvciAiSSdtIHNvcnJ5LCBidXQg SSB3YXMgdW5hYmxlIHRvIHN1cHBvcnQgdGhlIE1ha2VzZWxmIGZpbGUuIjsKICAgICAgICAgICAg ICAgIGVlcnJvciAiVGhlIHZlcnNpb24gSSBkZXRlY3RlZCB3YXMgJyR7dmVyfScuIjsKICAgICAg ICAgICAgICAgIGVlcnJvciAiUGxlYXNlIGZpbGUgYSBidWcgYWJvdXQgdGhlIGZpbGUgJHtzaHJ0 c3JjfSBhdCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgImh0dHA6Ly9idWdzLmdlbnRvby5vcmcv IHNvIHRoYXQgc3VwcG9ydCBjYW4gYmUgYWRkZWQuIjsKICAgICAgICAgICAgICAgIGRpZSAibWFr ZXNlbGYgdmVyc2lvbiAnJHt2ZXJ9JyBub3Qgc3VwcG9ydGVkIgogICAgICAgICAgICA7OwogICAg ICAgIGVzYWM7CiAgICAgICAgZGVidWctcHJpbnQgIkRldGVjdGVkIE1ha2VzZWxmIHZlcnNpb24g JHt2ZXJ9IC4uLiB1c2luZyAke3NraXB9IGFzIG9mZnNldCI7CiAgICBmaTsKICAgIGNhc2UgJHtl eGV9IGluIAogICAgICAgIHRhaWwpCiAgICAgICAgICAgIGV4ZT0idGFpbCAtbiArJHtza2lwfSAn JHtzcmN9JyIKICAgICAgICA7OwogICAgICAgIGRkKQogICAgICAgICAgICBleGU9ImRkIGlicz0k e3NraXB9IHNraXA9MSBpZj0nJHtzcmN9JyIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAg ICAgIGRpZSAibWFrZXNlbGYgY2FudCBoYW5kbGUgZXhlICcke2V4ZX0nIgogICAgICAgIDs7CiAg ICBlc2FjOwogICAgbG9jYWwgZmlsZXR5cGUgdG1wZmlsZT0kKGVta3RlbXApOwogICAgZXZhbCAk e2V4ZX0gMj4gL2Rldi9udWxsIHwgaGVhZCAtYyA1MTIgPiAiJHt0bXBmaWxlfSI7CiAgICBmaWxl dHlwZT0kKGZpbGUgLWIgIiR7dG1wZmlsZX0iKSB8fCBkaWU7CiAgICBjYXNlICR7ZmlsZXR5cGV9 IGluIAogICAgICAgICp0YXJcIGFyY2hpdmUqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IHRh ciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAgIGJ6aXAyKikKICAgICAg ICAgICAgZXZhbCAke2V4ZX0gfCBiemlwMiAtZGMgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAt CiAgICAgICAgOzsKICAgICAgICBnemlwKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCB0YXIg LS1uby1zYW1lLW93bmVyIC14emYgLQogICAgICAgIDs7CiAgICAgICAgY29tcHJlc3MqKQogICAg ICAgICAgICBldmFsICR7ZXhlfSB8IGd1bnppcCB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0K ICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVlcnJvciAiVW5rbm93biBmaWxldHlw ZSBcIiR7ZmlsZXR5cGV9XCIgPyI7CiAgICAgICAgICAgIGZhbHNlCiAgICAgICAgOzsKICAgIGVz YWM7CiAgICBhc3NlcnQgImZhaWx1cmUgdW5wYWNraW5nICgke2ZpbGV0eXBlfSkgbWFrZXNlbGYg JHtzaHJ0c3JjfSAoJyR7dmVyfScgKyR7c2tpcH0pIgp9CnVucGFja19wZHYgKCkgCnsgCiAgICBs b2NhbCBzcmM9JChmaW5kX3VucGFja2FibGVfZmlsZSAiJDEiKTsKICAgIGxvY2FsIHNpemVvZmZf dD0kMjsKICAgIFtbIC16ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNl IGZvciAnJDEnIjsKICAgIFtbIC16ICR7c2l6ZW9mZl90fSBdXSAmJiBkaWUgIk5vIGlkZWEgd2hh dCBvZmZfdCBzaXplIHdhcyB1c2VkIGZvciB0aGlzIHBkdiA6KCI7CiAgICBsb2NhbCBzaHJ0c3Jj PSQoYmFzZW5hbWUgIiR7c3JjfSIpOwogICAgZWNobyAiPj4+IFVucGFja2luZyAke3NocnRzcmN9 IHRvICR7UFdEfSI7CiAgICBsb2NhbCBtZXRhc2tpcD0kKHRhaWwgLWMgJHtzaXplb2ZmX3R9ICIk e3NyY30iIHwgaGV4ZHVtcCAtZSBcIiVpXCIpOwogICAgbG9jYWwgdGFpbHNraXA9JCh0YWlsIC1j ICQoKCR7c2l6ZW9mZl90fSoyKSkgIiR7c3JjfSIgfCBoZWFkIC1jICR7c2l6ZW9mZl90fSB8IGhl eGR1bXAgLWUgXCIlaVwiKTsKICAgIGxvY2FsIG1ldGFmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWls IC1jICskKCgke21ldGFza2lwfSsxKSkgIiR7c3JjfSIgPiAiJHttZXRhZmlsZX0iOwogICAgbG9j YWwgZGF0YWZpbGU9JCh0YWlsIC1jICskKCgke21ldGFza2lwfSsxKSkgIiR7c3JjfSIgfCBzdHJp bmdzIHwgaGVhZCAtbiAxKTsKICAgIGRhdGFmaWxlPSQoYmFzZW5hbWUgIiR7ZGF0YWZpbGV9Iik7 CiAgICBsb2NhbCB0bXBmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke3RhaWxza2lw fSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgNTEyID4gJHt0bXBmaWxlfTsKICAg IGxvY2FsIGlzY29tcHJlc3NlZD0kKGZpbGUgLWIgIiR7dG1wZmlsZX0iKTsKICAgIGlmIFtbICR7 aXNjb21wcmVzc2VkOjA6OH0gPT0gImNvbXByZXNzIiBdXTsgdGhlbgogICAgICAgIGlzY29tcHJl c3NlZD0xOwogICAgICAgIG12ICR7dG1wZmlsZX17LC5afTsKICAgICAgICBndW56aXAgJHt0bXBm aWxlfTsKICAgIGVsc2UKICAgICAgICBpc2NvbXByZXNzZWQ9MDsKICAgIGZpOwogICAgbG9jYWwg aXN0YXI9JChmaWxlIC1iICIke3RtcGZpbGV9Iik7CiAgICBpZiBbWyAke2lzdGFyOjA6OX0gPT0g IlBPU0lYIHRhciIgXV07IHRoZW4KICAgICAgICBpc3Rhcj0xOwogICAgZWxzZQogICAgICAgIGlz dGFyPTA7CiAgICBmaTsKICAgIGlmIFsgJHtpc2NvbXByZXNzZWR9IC1lcSAxIF07IHRoZW4KICAg ICAgICBpZiBbICR7aXN0YXJ9IC1lcSAxIF07IHRoZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgo JHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNr aXB9LSR7dGFpbHNraXB9KSkgfCB0YXIgLXh6ZiAtOwogICAgICAgIGVsc2UKICAgICAgICAgICAg dGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1j ICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9KSkgfCBnemlwIC1kYyA+ICR7ZGF0YWZpbGV9Owog ICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGlmIFsgJHtpc3Rhcn0gLWVxIDEgXTsgdGhlbgog ICAgICAgICAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVs bCB8IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSB8IHRhciAtLW5vLXNhbWUt b3duZXIgLXhmIC07CiAgICAgICAgZWxzZQogICAgICAgICAgICB0YWlsIC1jICskKCgke3RhaWxz a2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0 YWlsc2tpcH0pKSA+ICR7ZGF0YWZpbGV9OwogICAgICAgIGZpOwogICAgZmk7CiAgICB0cnVlCn0K dmFsaWRhdGVfZGVza3RvcF9lbnRyaWVzICgpIAp7IAogICAgaWYgW1sgLXggL3Vzci9iaW4vZGVz a3RvcC1maWxlLXZhbGlkYXRlIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIkNoZWNraW5nIGRlc2t0 b3AgZW50cnkgdmFsaWRpdHkiOwogICAgICAgIGxvY2FsIGRpcmVjdG9yaWVzPSIiOwogICAgICAg IGZvciBkIGluIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zICRAOwogICAgICAgIGRvCiAgICAgICAg ICAgIFtbIC1kICR7RH0ke2R9IF1dICYmIGRpcmVjdG9yaWVzPSIke2RpcmVjdG9yaWVzfSAke0R9 JHtkfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsg dGhlbgogICAgICAgICAgICBmb3IgRklMRSBpbiAkKGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUg IipcLmRlc2t0b3AiIAkJCQkJCQktbm90IC1wYXRoICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9k ZXYvbnVsbCk7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVz a3RvcC1maWxlLXZhbGlkYXRlICR7RklMRX0gfCBncmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJ CXNlZCAtZSAic3xlcnJvcjogfHwiIC1lICJzfCR7RklMRX06fC0tfGciICk7CiAgICAgICAgICAg ICAgICBbWyAtbiAkdGVtcCBdXSAmJiBlbG9nICR7dGVtcC8tLS8ke0ZJTEUvJHtEfS99On07CiAg ICAgICAgICAgIGRvbmU7CiAgICAgICAgZmk7CiAgICAgICAgZWNobyAiIjsKICAgIGVsc2UKICAg ICAgICBlaW5mbyAiUGFzc2luZyBkZXNrdG9wIGVudHJ5IHZhbGlkaXR5IGNoZWNrLiBJbnN0YWxs IGRldi11dGlsL2Rlc2t0b3AtZmlsZS11dGlscywgaWYgeW91IHdhbnQgdG8gaGVscCB0byBpbXBy b3ZlIEdlbnRvby4iOwogICAgZmkKfQo= --000e0cd4b3744b8f7a04a6c5ea41 Content-Type: application/octet-stream; name="net-misc:openssh-5.8_p2:20110628-132635.log" Content-Disposition: attachment; filename="net-misc:openssh-5.8_p2:20110628-132635.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpgwpq854 G1szMjswMW0gKiAbWzM5OzQ5OzAwbVBhY2thZ2U6ICAgIG5ldC1taXNjL29wZW5zc2gtNS44X3Ay ChtbMzI7MDFtICogG1szOTs0OTswMG1SZXBvc2l0b3J5OiBnZW50b28KG1szMjswMW0gKiAbWzM5 OzQ5OzAwbU1haW50YWluZXI6IHJvYmJhdDJAZ2VudG9vLm9yZyBiYXNlLXN5c3RlbUBnZW50b28u b3JnChtbMzI7MDFtICogG1szOTs0OTswMG1VU0U6ICAgICAgICBhbWQ2NCBlbGliY19nbGliYyBo cG4ga2VybmVsX2xpbnV4IG11bHRpbGliIHBhbSB1c2VybGFuZF9HTlUKG1szMjswMW0gKiAbWzM5 OzQ5OzAwbUZFQVRVUkVTOiAgIHNhbmRib3gKPj4+IFVucGFja2luZyBzb3VyY2UuLi4KPj4+IFVu cGFja2luZyBvcGVuc3NoLTUuOHAyLnRhci5neiB0byAvdmFyL3RtcC9wb3J0YWdlL25ldC1taXNj L29wZW5zc2gtNS44X3AyL3dvcmsKPj4+IFVucGFja2luZyBvcGVuc3NoLTUuOHAxLWhwbjEzdjEx LmRpZmYuZ3ogdG8gL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi93b3Jr Cj4+PiBTb3VyY2UgdW5wYWNrZWQgaW4gL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3No LTUuOF9wMi93b3JrCj4+PiBQcmVwYXJpbmcgc291cmNlIGluIC92YXIvdG1wL3BvcnRhZ2UvbmV0 LW1pc2Mvb3BlbnNzaC01LjhfcDIvd29yay9vcGVuc3NoLTUuOHAyIC4uLgogG1szMjswMW0qG1sw bSBBcHBseWluZyBvcGVuc3NoLTQuN19wMS1HU1NBUEktZG5zLnBhdGNoIC4uLgobW0EbWzE5OUMg G1szNDswMW1bIBtbMzI7MDFtb2sbWzM0OzAxbSBdG1swbQogG1szMjswMW0qG1swbSBBcHBseWlu ZyBvcGVuc3NoLTUuOHAxLWhwbjEzdjExLmRpZmYgLi4uChtbQRtbMTk5QyAbWzM0OzAxbVsgG1sz MjswMW1vaxtbMzQ7MDFtIF0bWzBtCiAbWzMyOzAxbSobWzBtIEFwcGx5aW5nIG9wZW5zc2gtNS42 X3AxLWhwbi1wcm9ncmVzc21ldGVyLnBhdGNoIC4uLgobW0EbWzE5OUMgG1szNDswMW1bIBtbMzI7 MDFtb2sbWzM0OzAxbSBdG1swbQogG1szMjswMW0qG1swbSBSdW5uaW5nIGVhdXRvcmVjb25mIGlu ICcvdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3dvcmsvb3BlbnNzaC01 LjhwMicgLi4uCiAbWzMyOzAxbSobWzBtIFJ1bm5pbmcgYXV0b2NvbmYgLi4uChtbQRtbMTk5QyAb WzM0OzAxbVsgG1szMjswMW1vaxtbMzQ7MDFtIF0bWzBtCiAbWzMyOzAxbSobWzBtIFJ1bm5pbmcg YXV0b2hlYWRlciAuLi4KG1tBG1sxOTlDIBtbMzQ7MDFtWyAbWzMyOzAxbW9rG1szNDswMW0gXRtb MG0KPj4+IFNvdXJjZSBwcmVwYXJlZC4KPj4+IENvbmZpZ3VyaW5nIHNvdXJjZSBpbiAvdmFyL3Rt cC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3dvcmsvb3BlbnNzaC01LjhwMiAuLi4K ICogZWNvbmY6IHVwZGF0aW5nIG9wZW5zc2gtNS44cDIvY29uZmlnLnN1YiB3aXRoIC91c3Ivc2hh cmUvZ251Y29uZmlnL2NvbmZpZy5zdWIKICogZWNvbmY6IHVwZGF0aW5nIG9wZW5zc2gtNS44cDIv Y29uZmlnLmd1ZXNzIHdpdGggL3Vzci9zaGFyZS9nbnVjb25maWcvY29uZmlnLmd1ZXNzCi4vY29u ZmlndXJlIC0tcHJlZml4PS91c3IgLS1idWlsZD14ODZfNjQtcGMtbGludXgtZ251IC0taG9zdD14 ODZfNjQtcGMtbGludXgtZ251IC0tbWFuZGlyPS91c3Ivc2hhcmUvbWFuIC0taW5mb2Rpcj0vdXNy L3NoYXJlL2luZm8gLS1kYXRhZGlyPS91c3Ivc2hhcmUgLS1zeXNjb25mZGlyPS9ldGMgLS1sb2Nh bHN0YXRlZGlyPS92YXIvbGliIC0tbGliZGlyPS91c3IvbGliNjQgLS13aXRoLWxkZmxhZ3M9LVds LC1PMSAtV2wsLS1hcy1uZWVkZWQgLS1kaXNhYmxlLXN0cmlwIC0tc3lzY29uZmRpcj0vZXRjL3Nz aCAtLWxpYmV4ZWNkaXI9L3Vzci9saWI2NC9taXNjIC0tZGF0YWRpcj0vdXNyL3NoYXJlL29wZW5z c2ggLS13aXRoLXByaXZzZXAtcGF0aD0vdmFyL2VtcHR5IC0td2l0aC1wcml2c2VwLXVzZXI9c3No ZCAtLXdpdGgtbWQ1LXBhc3N3b3JkcyAtLXdpdGgtc3NsLWVuZ2luZSAtLXdpdGgtcGFtIC0td2l0 aG91dC1rZXJiZXJvczUgLS13aXRob3V0LWxpYmVkaXQgLS13aXRob3V0LXNlbGludXggLS13aXRo b3V0LXNrZXkgLS13aXRob3V0LXRjcC13cmFwcGVycwpjaGVja2luZyBmb3IgeDg2XzY0LXBjLWxp bnV4LWdudS1nY2MuLi4geDg2XzY0LXBjLWxpbnV4LWdudS1nY2MKY2hlY2tpbmcgd2hldGhlciB0 aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVs dCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0 YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpj aGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIg d2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciB4 ODZfNjQtcGMtbGludXgtZ251LWdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3IgeDg2 XzY0LXBjLWxpbnV4LWdudS1nY2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uIG5vbmUgbmVl ZGVkCmNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uIHg4Nl82NC1wYy1saW51eC1nbnUKY2hl Y2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiB4ODZfNjQtcGMtbGludXgtZ251CmNoZWNraW5nIGhv dyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1F CmNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAvYmlu L2dyZXAKY2hlY2tpbmcgZm9yIGVncmVwLi4uIC9iaW4vZ3JlcCAtRQpjaGVja2luZyBmb3IgQU5T SSBDIGhlYWRlciBmaWxlcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oLi4uIHllcwpj aGVja2luZyBmb3Igc3lzL3N0YXQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0ZGxpYi5oLi4uIHll cwpjaGVja2luZyBmb3Igc3RyaW5nLmguLi4geWVzCmNoZWNraW5nIGZvciBtZW1vcnkuaC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIHN0cmluZ3MuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGludHR5cGVzLmgu Li4geWVzCmNoZWNraW5nIGZvciBzdGRpbnQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHVuaXN0ZC5o Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuLi4uIG5v CmNoZWNraW5nIGZvciBnYXdrLi4uIGdhd2sKY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVw cm9jZXNzb3IuLi4geDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLUUKY2hlY2tpbmcgZm9yIHg4Nl82 NC1wYy1saW51eC1nbnUtcmFubGliLi4uIHg4Nl82NC1wYy1saW51eC1nbnUtcmFubGliCmNoZWNr aW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpj aGVja2luZyBmb3IgZWdyZXAuLi4gKGNhY2hlZCkgL2Jpbi9ncmVwIC1FCmNoZWNraW5nIGZvciBh ci4uLiAvdXNyL2Jpbi9hcgpjaGVja2luZyBmb3IgY2F0Li4uIC9iaW4vY2F0CmNoZWNraW5nIGZv ciBraWxsLi4uIC9iaW4va2lsbApjaGVja2luZyBmb3IgcGVybDUuLi4gbm8KY2hlY2tpbmcgZm9y IHBlcmwuLi4gL3Vzci9iaW4vcGVybApjaGVja2luZyBmb3Igc2VkLi4uIC9iaW4vc2VkCmNoZWNr aW5nIGZvciBlbnQuLi4gbm8KY2hlY2tpbmcgZm9yIGJhc2guLi4gL2Jpbi9iYXNoCmNoZWNraW5n IGZvciBrc2guLi4gKGNhY2hlZCkgL2Jpbi9iYXNoCmNoZWNraW5nIGZvciBzaC4uLiAoY2FjaGVk KSAvYmluL2Jhc2gKY2hlY2tpbmcgZm9yIHNoLi4uIC9iaW4vc2gKY2hlY2tpbmcgZm9yIGdyb2Zm Li4uIC91c3IvYmluL2dyb2ZmCmNoZWNraW5nIGZvciBucm9mZi4uLiAvdXNyL2Jpbi9ucm9mZgpj aGVja2luZyBmb3IgbWFuZG9jLi4uIG5vCmNoZWNraW5nIGZvciBncm91cGFkZC4uLiAvdXNyL3Ni aW4vZ3JvdXBhZGQKY2hlY2tpbmcgZm9yIHVzZXJhZGQuLi4gL3Vzci9zYmluL3VzZXJhZGQKY2hl Y2tpbmcgZm9yIHBrZ21rLi4uIG5vCmNoZWNraW5nIGZvciBzcGVjaWFsIEMgY29tcGlsZXIgb3B0 aW9ucyBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uIG5vCmNoZWNraW5nIGZvciBfRklMRV9PRkZT RVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uIG5vCmNoZWNraW5nIGZvciBs b2dpbi4uLiAvYmluL2xvZ2luCmNoZWNraW5nIGZvciBwYXNzd2QuLi4gL3Vzci9iaW4vcGFzc3dk CmNoZWNraW5nIGZvciBpbmxpbmUuLi4gaW5saW5lCmNoZWNraW5nIHdoZXRoZXIgTExPTkdfTUFY IGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2luZyBpZiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyBz dXBwb3J0cyAtV2FsbC4uLiB5ZXMKY2hlY2tpbmcgaWYgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg c3VwcG9ydHMgLVdwb2ludGVyLWFyaXRoLi4uIHllcwpjaGVja2luZyBpZiB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyBzdXBwb3J0cyAtV3VuaW5pdGlhbGl6ZWQuLi4geWVzCmNoZWNraW5nIGlmIHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIHN1cHBvcnRzIC1Xc2lnbi1jb21wYXJlLi4uIHllcwpjaGVj a2luZyBpZiB4ODZfNjQtcGMtbGludXgtZ251LWdjYyBzdXBwb3J0cyAtV2Zvcm1hdC1zZWN1cml0 eS4uLiB5ZXMKY2hlY2tpbmcgaWYgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mgc3VwcG9ydHMgLVdu by1wb2ludGVyLXNpZ24uLi4geWVzCmNoZWNraW5nIGlmIHg4Nl82NC1wYy1saW51eC1nbnUtZ2Nj IHN1cHBvcnRzIC1Xbm8tdW51c2VkLXJlc3VsdC4uLiB5ZXMKY2hlY2tpbmcgaWYgeDg2XzY0LXBj LWxpbnV4LWdudS1nY2Mgc3VwcG9ydHMgLWZuby1zdHJpY3QtYWxpYXNpbmcuLi4geWVzCmNoZWNr aW5nIGdjYyB2ZXJzaW9uLi4uIDQuNS4yCmNoZWNraW5nIGlmIHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIGFjY2VwdHMgLWZuby1idWlsdGluLW1lbXNldC4uLiB5ZXMKY2hlY2tpbmcgaWYgeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2Mgc3VwcG9ydHMgLWZzdGFjay1wcm90ZWN0b3ItYWxsLi4uIHllcwpj aGVja2luZyBpZiAtZnN0YWNrLXByb3RlY3Rvci1hbGwgd29ya3MuLi4geWVzCmNoZWNraW5nIGJz dHJpbmcuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgYnN0cmluZy5oIHByZXNlbmNlLi4uIG5v CmNoZWNraW5nIGZvciBic3RyaW5nLmguLi4gbm8KY2hlY2tpbmcgY3J5cHQuaCB1c2FiaWxpdHku Li4geWVzCmNoZWNraW5nIGNyeXB0LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBjcnlw dC5oLi4uIHllcwpjaGVja2luZyBjcnlwdG8vc2hhMi5oIHVzYWJpbGl0eS4uLiBubwpjaGVja2lu ZyBjcnlwdG8vc2hhMi5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBjcnlwdG8vc2hhMi5o Li4uIG5vCmNoZWNraW5nIGRpcmVudC5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgZGlyZW50 LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBkaXJlbnQuaC4uLiB5ZXMKY2hlY2tpbmcg ZW5kaWFuLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBlbmRpYW4uaCBwcmVzZW5jZS4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGVuZGlhbi5oLi4uIHllcwpjaGVja2luZyBmZWF0dXJlcy5oIHVzYWJp bGl0eS4uLiB5ZXMKY2hlY2tpbmcgZmVhdHVyZXMuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcg Zm9yIGZlYXR1cmVzLmguLi4geWVzCmNoZWNraW5nIGZjbnRsLmggdXNhYmlsaXR5Li4uIHllcwpj aGVja2luZyBmY250bC5oIHByZXNlbmNlLi4uIHllcwpjaGVja2luZyBmb3IgZmNudGwuaC4uLiB5 ZXMKY2hlY2tpbmcgZmxvYXRpbmdwb2ludC5oIHVzYWJpbGl0eS4uLiBubwpjaGVja2luZyBmbG9h dGluZ3BvaW50LmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9yIGZsb2F0aW5ncG9pbnQuaC4u LiBubwpjaGVja2luZyBnZXRvcHQuaCB1c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIGdldG9wdC5o IHByZXNlbmNlLi4uIHllcwpjaGVja2luZyBmb3IgZ2V0b3B0LmguLi4geWVzCmNoZWNraW5nIGds b2IuaCB1c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIGdsb2IuaCBwcmVzZW5jZS4uLiB5ZXMKY2hl Y2tpbmcgZm9yIGdsb2IuaC4uLiB5ZXMKY2hlY2tpbmcgaWEuaCB1c2FiaWxpdHkuLi4gbm8KY2hl Y2tpbmcgaWEuaCBwcmVzZW5jZS4uLiBubwpjaGVja2luZyBmb3IgaWEuaC4uLiBubwpjaGVja2lu ZyBpYWYuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgaWFmLmggcHJlc2VuY2UuLi4gbm8KY2hl Y2tpbmcgZm9yIGlhZi5oLi4uIG5vCmNoZWNraW5nIGxpbWl0cy5oIHVzYWJpbGl0eS4uLiB5ZXMK Y2hlY2tpbmcgbGltaXRzLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBsaW1pdHMuaC4u LiB5ZXMKY2hlY2tpbmcgbG9naW4uaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgbG9naW4uaCBw cmVzZW5jZS4uLiBubwpjaGVja2luZyBmb3IgbG9naW4uaC4uLiBubwpjaGVja2luZyBtYWlsbG9j ay5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgbWFpbGxvY2suaCBwcmVzZW5jZS4uLiB5ZXMK Y2hlY2tpbmcgZm9yIG1haWxsb2NrLmguLi4geWVzCmNoZWNraW5nIG5kaXIuaCB1c2FiaWxpdHku Li4gbm8KY2hlY2tpbmcgbmRpci5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBuZGlyLmgu Li4gbm8KY2hlY2tpbmcgbmV0L2lmX3R1bi5oIHVzYWJpbGl0eS4uLiBubwpjaGVja2luZyBuZXQv aWZfdHVuLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9yIG5ldC9pZl90dW4uaC4uLiBubwpj aGVja2luZyBuZXRkYi5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgbmV0ZGIuaCBwcmVzZW5j ZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIG5ldGRiLmguLi4geWVzCmNoZWNraW5nIG5ldGdyb3VwLmgg dXNhYmlsaXR5Li4uIG5vCmNoZWNraW5nIG5ldGdyb3VwLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tp bmcgZm9yIG5ldGdyb3VwLmguLi4gbm8KY2hlY2tpbmcgcGFtL3BhbV9hcHBsLmggdXNhYmlsaXR5 Li4uIG5vCmNoZWNraW5nIHBhbS9wYW1fYXBwbC5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZv ciBwYW0vcGFtX2FwcGwuaC4uLiBubwpjaGVja2luZyBwYXRocy5oIHVzYWJpbGl0eS4uLiB5ZXMK Y2hlY2tpbmcgcGF0aHMuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHBhdGhzLmguLi4g eWVzCmNoZWNraW5nIHBvbGwuaCB1c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIHBvbGwuaCBwcmVz ZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHBvbGwuaC4uLiB5ZXMKY2hlY2tpbmcgcHR5LmggdXNh YmlsaXR5Li4uIHllcwpjaGVja2luZyBwdHkuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9y IHB0eS5oLi4uIHllcwpjaGVja2luZyByZWFkcGFzc3BocmFzZS5oIHVzYWJpbGl0eS4uLiBubwpj aGVja2luZyByZWFkcGFzc3BocmFzZS5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciByZWFk cGFzc3BocmFzZS5oLi4uIG5vCmNoZWNraW5nIHJwYy90eXBlcy5oIHVzYWJpbGl0eS4uLiB5ZXMK Y2hlY2tpbmcgcnBjL3R5cGVzLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBycGMvdHlw ZXMuaC4uLiB5ZXMKY2hlY2tpbmcgc2VjdXJpdHkvcGFtX2FwcGwuaCB1c2FiaWxpdHkuLi4geWVz CmNoZWNraW5nIHNlY3VyaXR5L3BhbV9hcHBsLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZv ciBzZWN1cml0eS9wYW1fYXBwbC5oLi4uIHllcwpjaGVja2luZyBzaGEyLmggdXNhYmlsaXR5Li4u IG5vCmNoZWNraW5nIHNoYTIuaCBwcmVzZW5jZS4uLiBubwpjaGVja2luZyBmb3Igc2hhMi5oLi4u IG5vCmNoZWNraW5nIHNoYWRvdy5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgc2hhZG93Lmgg cHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzaGFkb3cuaC4uLiB5ZXMKY2hlY2tpbmcgc3Rk ZGVmLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBzdGRkZWYuaCBwcmVzZW5jZS4uLiB5ZXMK Y2hlY2tpbmcgZm9yIHN0ZGRlZi5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RkaW50LmguLi4gKGNh Y2hlZCkgeWVzCmNoZWNraW5nIGZvciBzdHJpbmcuaC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcg Zm9yIHN0cmluZ3MuaC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgc3lzL2F1ZGl0LmggdXNhYmls aXR5Li4uIG5vCmNoZWNraW5nIHN5cy9hdWRpdC5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZv ciBzeXMvYXVkaXQuaC4uLiBubwpjaGVja2luZyBzeXMvYml0eXBlcy5oIHVzYWJpbGl0eS4uLiB5 ZXMKY2hlY2tpbmcgc3lzL2JpdHlwZXMuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5 cy9iaXR5cGVzLmguLi4geWVzCmNoZWNraW5nIHN5cy9ic2R0dHkuaCB1c2FiaWxpdHkuLi4gbm8K Y2hlY2tpbmcgc3lzL2JzZHR0eS5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBzeXMvYnNk dHR5LmguLi4gbm8KY2hlY2tpbmcgc3lzL2NkZWZzLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2lu ZyBzeXMvY2RlZnMuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oLi4u IHllcwpjaGVja2luZyBzeXMvZGlyLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBzeXMvZGly LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvZGlyLmguLi4geWVzCmNoZWNraW5n IHN5cy9tbWFuLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBzeXMvbW1hbi5oIHByZXNlbmNl Li4uIHllcwpjaGVja2luZyBmb3Igc3lzL21tYW4uaC4uLiB5ZXMKY2hlY2tpbmcgc3lzL25kaXIu aCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgc3lzL25kaXIuaCBwcmVzZW5jZS4uLiBubwpjaGVj a2luZyBmb3Igc3lzL25kaXIuaC4uLiBubwpjaGVja2luZyBzeXMvcG9sbC5oIHVzYWJpbGl0eS4u LiB5ZXMKY2hlY2tpbmcgc3lzL3BvbGwuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5 cy9wb2xsLmguLi4geWVzCmNoZWNraW5nIHN5cy9wcmN0bC5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hl Y2tpbmcgc3lzL3ByY3RsLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvcHJjdGwu aC4uLiB5ZXMKY2hlY2tpbmcgc3lzL3BzdGF0LmggdXNhYmlsaXR5Li4uIG5vCmNoZWNraW5nIHN5 cy9wc3RhdC5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBzeXMvcHN0YXQuaC4uLiBubwpj aGVja2luZyBzeXMvc2VsZWN0LmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBzeXMvc2VsZWN0 LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvc2VsZWN0LmguLi4geWVzCmNoZWNr aW5nIGZvciBzeXMvc3RhdC5oLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBzeXMvc3RyZWFtLmgg dXNhYmlsaXR5Li4uIG5vCmNoZWNraW5nIHN5cy9zdHJlYW0uaCBwcmVzZW5jZS4uLiBubwpjaGVj a2luZyBmb3Igc3lzL3N0cmVhbS5oLi4uIG5vCmNoZWNraW5nIHN5cy9zdHJvcHRzLmggdXNhYmls aXR5Li4uIHllcwpjaGVja2luZyBzeXMvc3Ryb3B0cy5oIHByZXNlbmNlLi4uIHllcwpjaGVja2lu ZyBmb3Igc3lzL3N0cm9wdHMuaC4uLiB5ZXMKY2hlY2tpbmcgc3lzL3N0cnRpby5oIHVzYWJpbGl0 eS4uLiBubwpjaGVja2luZyBzeXMvc3RydGlvLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9y IHN5cy9zdHJ0aW8uaC4uLiBubwpjaGVja2luZyBzeXMvc3RhdHZmcy5oIHVzYWJpbGl0eS4uLiB5 ZXMKY2hlY2tpbmcgc3lzL3N0YXR2ZnMuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5 cy9zdGF0dmZzLmguLi4geWVzCmNoZWNraW5nIHN5cy9zeXNtYWNyb3MuaCB1c2FiaWxpdHkuLi4g eWVzCmNoZWNraW5nIHN5cy9zeXNtYWNyb3MuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN5cy9zeXNtYWNyb3MuaC4uLiB5ZXMKY2hlY2tpbmcgc3lzL3RpbWUuaCB1c2FiaWxpdHkuLi4g eWVzCmNoZWNraW5nIHN5cy90aW1lLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzeXMv dGltZS5oLi4uIHllcwpjaGVja2luZyBzeXMvdGltZXJzLmggdXNhYmlsaXR5Li4uIG5vCmNoZWNr aW5nIHN5cy90aW1lcnMuaCBwcmVzZW5jZS4uLiBubwpjaGVja2luZyBmb3Igc3lzL3RpbWVycy5o Li4uIG5vCmNoZWNraW5nIHN5cy91bi5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgc3lzL3Vu LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvdW4uaC4uLiB5ZXMKY2hlY2tpbmcg dGltZS5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgdGltZS5oIHByZXNlbmNlLi4uIHllcwpj aGVja2luZyBmb3IgdGltZS5oLi4uIHllcwpjaGVja2luZyB0bXBkaXIuaCB1c2FiaWxpdHkuLi4g bm8KY2hlY2tpbmcgdG1wZGlyLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9yIHRtcGRpci5o Li4uIG5vCmNoZWNraW5nIHR0eWVudC5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgdHR5ZW50 LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciB0dHllbnQuaC4uLiB5ZXMKY2hlY2tpbmcg dWNyZWQuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgdWNyZWQuaCBwcmVzZW5jZS4uLiBubwpj aGVja2luZyBmb3IgdWNyZWQuaC4uLiBubwpjaGVja2luZyBmb3IgdW5pc3RkLmguLi4gKGNhY2hl ZCkgeWVzCmNoZWNraW5nIHVzZXJzZWMuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgdXNlcnNl Yy5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciB1c2Vyc2VjLmguLi4gbm8KY2hlY2tpbmcg dXRpbC5oIHVzYWJpbGl0eS4uLiBubwpjaGVja2luZyB1dGlsLmggcHJlc2VuY2UuLi4gbm8KY2hl Y2tpbmcgZm9yIHV0aWwuaC4uLiBubwpjaGVja2luZyB1dGltZS5oIHVzYWJpbGl0eS4uLiB5ZXMK Y2hlY2tpbmcgdXRpbWUuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHV0aW1lLmguLi4g eWVzCmNoZWNraW5nIHV0bXAuaCB1c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIHV0bXAuaCBwcmVz ZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHV0bXAuaC4uLiB5ZXMKY2hlY2tpbmcgdXRtcHguaCB1 c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIHV0bXB4LmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5n IGZvciB1dG1weC5oLi4uIHllcwpjaGVja2luZyB2aXMuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tp bmcgdmlzLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9yIHZpcy5oLi4uIG5vCmNoZWNraW5n IGZvciBsYXN0bG9nLmguLi4geWVzCmNoZWNraW5nIGZvciBzeXMvcHRtcy5oLi4uIG5vCmNoZWNr aW5nIGZvciBsb2dpbl9jYXAuaC4uLiBubwpjaGVja2luZyBmb3Igc3lzL21vdW50LmguLi4geWVz CmNoZWNraW5nIGxpbnV4L2lmX3R1bi5oIHVzYWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgbGludXgv aWZfdHVuLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciBsaW51eC9pZl90dW4uaC4uLiB5 ZXMKY2hlY2tpbmcgY29tcGlsZXIgYW5kIGZsYWdzIGZvciBzYW5pdHkuLi4geWVzCmNoZWNraW5n IGZvciB5cF9tYXRjaC4uLiBubwpjaGVja2luZyBmb3IgeXBfbWF0Y2ggaW4gLWxuc2wuLi4geWVz CmNoZWNraW5nIGZvciBzZXRzb2Nrb3B0Li4uIHllcwpjaGVja2luZyBmb3IgZGlybmFtZS4uLiB5 ZXMKY2hlY2tpbmcgbGliZ2VuLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBsaWJnZW4uaCBw cmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGxpYmdlbi5oLi4uIHllcwpjaGVja2luZyBmb3Ig Z2V0c3BuYW0uLi4geWVzCmNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgYmFzZW5hbWUu Li4gbm9uZSByZXF1aXJlZApjaGVja2luZyB6bGliLmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2lu ZyB6bGliLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5nIGZvciB6bGliLmguLi4geWVzCmNoZWNr aW5nIGZvciBkZWZsYXRlIGluIC1sei4uLiB5ZXMKY2hlY2tpbmcgZm9yIHBvc3NpYmx5IGJ1Z2d5 IHpsaWIuLi4gbm8KY2hlY2tpbmcgZm9yIHN0cmNhc2VjbXAuLi4geWVzCmNoZWNraW5nIGZvciB1 dGltZXMuLi4geWVzCmNoZWNraW5nIGxpYnV0aWwuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcg bGlidXRpbC5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBsaWJ1dGlsLmguLi4gbm8KY2hl Y2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBsb2dpbi4uLiAtbHV0aWwKY2hlY2tpbmcgZm9y IGZtdF9zY2FsZWQuLi4gbm8KY2hlY2tpbmcgZm9yIGxvZ291dC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHVwZHd0bXAuLi4geWVzCmNoZWNraW5nIGZvciBsb2d3dG1wLi4uIHllcwpjaGVja2luZyBmb3Ig c3RyZnRpbWUuLi4geWVzCmNoZWNraW5nIGZvciBHTE9CX0FMVERJUkZVTkMgc3VwcG9ydC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGdsX21hdGNoYyBmaWVsZCBpbiBnbG9iX3QuLi4gbm8KY2hlY2tpbmcg Zm9yIGdsX3N0YXR2IGFuZCBHTE9CX0tFRVBTVEFUIGV4dGVuc2lvbnMgZm9yIGdsb2IuLi4gbm8K Y2hlY2tpbmcgd2hldGhlciBHTE9CX05PTUFUQ0ggaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgc3RydWN0IGRpcmVudCBhbGxvY2F0ZXMgc3BhY2UgZm9yIGRfbmFtZS4uLiB5ZXMK Y2hlY2tpbmcgZm9yIC9wcm9jL3BpZC9mZCBkaXJlY3RvcnkuLi4geWVzCmNoZWNraW5nIGZvciBh cmM0cmFuZG9tLi4uIG5vCmNoZWNraW5nIGZvciBhcmM0cmFuZG9tX2J1Zi4uLiBubwpjaGVja2lu ZyBmb3IgYXJjNHJhbmRvbV91bmlmb3JtLi4uIG5vCmNoZWNraW5nIGZvciBhc3ByaW50Zi4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGI2NF9udG9wLi4uIG5vCmNoZWNraW5nIGZvciBfX2I2NF9udG9wLi4u IG5vCmNoZWNraW5nIGZvciBiNjRfcHRvbi4uLiBubwpjaGVja2luZyBmb3IgX19iNjRfcHRvbi4u LiBubwpjaGVja2luZyBmb3IgYmNvcHkuLi4geWVzCmNoZWNraW5nIGZvciBiaW5kcmVzdnBvcnRf c2EuLi4gbm8KY2hlY2tpbmcgZm9yIGNsb2NrLi4uIHllcwpjaGVja2luZyBmb3IgY2xvc2Vmcm9t Li4uIG5vCmNoZWNraW5nIGZvciBkaXJmZC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGZjaG1vZC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGZjaG93bi4uLiB5ZXMKY2hlY2tpbmcgZm9yIGZyZWVhZGRyaW5mby4u LiB5ZXMKY2hlY2tpbmcgZm9yIGZzdGF0dmZzLi4uIHllcwpjaGVja2luZyBmb3IgZnV0aW1lcy4u LiB5ZXMKY2hlY2tpbmcgZm9yIGdldGFkZHJpbmZvLi4uIHllcwpjaGVja2luZyBmb3IgZ2V0Y3dk Li4uIHllcwpjaGVja2luZyBmb3IgZ2V0Z3JvdXBsaXN0Li4uIHllcwpjaGVja2luZyBmb3IgZ2V0 bmFtZWluZm8uLi4geWVzCmNoZWNraW5nIGZvciBnZXRvcHQuLi4geWVzCmNoZWNraW5nIGZvciBn ZXRwZWVyZWlkLi4uIG5vCmNoZWNraW5nIGZvciBnZXRwZWVydWNyZWQuLi4gbm8KY2hlY2tpbmcg Zm9yIF9nZXRwdHkuLi4gbm8KY2hlY2tpbmcgZm9yIGdldHJsaW1pdC4uLiB5ZXMKY2hlY2tpbmcg Zm9yIGdldHR0eWVudC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdsb2IuLi4geWVzCmNoZWNraW5nIGZv ciBncm91cF9mcm9tX2dpZC4uLiBubwpjaGVja2luZyBmb3IgaW5ldF9hdG9uLi4uIHllcwpjaGVj a2luZyBmb3IgaW5ldF9udG9hLi4uIHllcwpjaGVja2luZyBmb3IgaW5ldF9udG9wLi4uIHllcwpj aGVja2luZyBmb3IgaW5uZXRnci4uLiB5ZXMKY2hlY2tpbmcgZm9yIGxvZ2luX2dldGNhcGJvb2wu Li4gbm8KY2hlY2tpbmcgZm9yIG1kNV9jcnlwdC4uLiBubwpjaGVja2luZyBmb3IgbWVtbW92ZS4u LiB5ZXMKY2hlY2tpbmcgZm9yIG1rZHRlbXAuLi4geWVzCmNoZWNraW5nIGZvciBtbWFwLi4uIHll cwpjaGVja2luZyBmb3IgbmdldGFkZHJpbmZvLi4uIG5vCmNoZWNraW5nIGZvciBuc2xlZXAuLi4g bm8KY2hlY2tpbmcgZm9yIG9nZXRhZGRyaW5mby4uLiBubwpjaGVja2luZyBmb3Igb3BlbmxvZ19y Li4uIG5vCmNoZWNraW5nIGZvciBvcGVucHR5Li4uIHllcwpjaGVja2luZyBmb3IgcG9sbC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIHByY3RsLi4uIHllcwpjaGVja2luZyBmb3IgcHN0YXQuLi4gbm8KY2hl Y2tpbmcgZm9yIHJlYWRwYXNzcGhyYXNlLi4uIG5vCmNoZWNraW5nIGZvciByZWFscGF0aC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIHJlY3Ztc2cuLi4geWVzCmNoZWNraW5nIGZvciBycmVzdnBvcnRfYWYu Li4geWVzCmNoZWNraW5nIGZvciBzZW5kbXNnLi4uIHllcwpjaGVja2luZyBmb3Igc2V0ZHRhYmxl c2l6ZS4uLiBubwpjaGVja2luZyBmb3Igc2V0ZWdpZC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHNldGVu di4uLiB5ZXMKY2hlY2tpbmcgZm9yIHNldGV1aWQuLi4geWVzCmNoZWNraW5nIGZvciBzZXRncm91 cGVudC4uLiBubwpjaGVja2luZyBmb3Igc2V0Z3JvdXBzLi4uIHllcwpjaGVja2luZyBmb3Igc2V0 bG9naW4uLi4gbm8KY2hlY2tpbmcgZm9yIHNldHBhc3NlbnQuLi4gbm8KY2hlY2tpbmcgZm9yIHNl dHBjcmVkLi4uIG5vCmNoZWNraW5nIGZvciBzZXRwcm9jdGl0bGUuLi4gbm8KY2hlY2tpbmcgZm9y IHNldHJlZ2lkLi4uIHllcwpjaGVja2luZyBmb3Igc2V0cmV1aWQuLi4geWVzCmNoZWNraW5nIGZv ciBzZXRybGltaXQuLi4geWVzCmNoZWNraW5nIGZvciBzZXRzaWQuLi4geWVzCmNoZWNraW5nIGZv ciBzZXR2YnVmLi4uIHllcwpjaGVja2luZyBmb3Igc2lnYWN0aW9uLi4uIHllcwpjaGVja2luZyBm b3Igc2lndmVjLi4uIHllcwpjaGVja2luZyBmb3Igc25wcmludGYuLi4geWVzCmNoZWNraW5nIGZv ciBzb2NrZXRwYWlyLi4uIHllcwpjaGVja2luZyBmb3Igc3RhdGZzLi4uIHllcwpjaGVja2luZyBm b3Igc3RhdHZmcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmR1cC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN0cmVycm9yLi4uIHllcwpjaGVja2luZyBmb3Igc3RybGNhdC4uLiBubwpjaGVja2luZyBmb3Ig c3RybGNweS4uLiBubwpjaGVja2luZyBmb3Igc3RybW9kZS4uLiBubwpjaGVja2luZyBmb3Igc3Ry bnZpcy4uLiBubwpjaGVja2luZyBmb3Igc3RycHRpbWUuLi4geWVzCmNoZWNraW5nIGZvciBzdHJ0 b251bS4uLiBubwpjaGVja2luZyBmb3Igc3RydG9sbC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cnRv dWwuLi4geWVzCmNoZWNraW5nIGZvciBzd2FwMzIuLi4gbm8KY2hlY2tpbmcgZm9yIHN5c2NvbmYu Li4geWVzCmNoZWNraW5nIGZvciB0Y2dldHBncnAuLi4geWVzCmNoZWNraW5nIGZvciB0aW1pbmdz YWZlX2JjbXAuLi4gbm8KY2hlY2tpbmcgZm9yIHRydW5jYXRlLi4uIHllcwpjaGVja2luZyBmb3Ig dW5zZXRlbnYuLi4geWVzCmNoZWNraW5nIGZvciB1cGR3dG1weC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHVzZXJfZnJvbV91aWQuLi4gbm8KY2hlY2tpbmcgZm9yIHZhc3ByaW50Zi4uLiB5ZXMKY2hlY2tp bmcgZm9yIHZoYW5ndXAuLi4geWVzCmNoZWNraW5nIGZvciB2c25wcmludGYuLi4geWVzCmNoZWNr aW5nIGZvciB3YWl0cGlkLi4uIHllcwpjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGRs b3Blbi4uLiAtbGRsCmNoZWNraW5nIGZvciBnYWlfc3RyZXJyb3IuLi4geWVzCmNoZWNraW5nIGZv ciBsaWJyYXJ5IGNvbnRhaW5pbmcgbmFub3NsZWVwLi4uIG5vbmUgcmVxdWlyZWQKY2hlY2tpbmcg d2hldGhlciBnZXRydXNhZ2UgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBzdHJz ZXAgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIGZvciBzdHJzZXAuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgdGNzZW5kYnJlYWsgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg aF9lcnJubyBpcyBkZWNsYXJlZC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBTSFVUX1JEIGlzIGRl Y2xhcmVkLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIE9fTk9OQkxPQ0sgaXMgZGVjbGFyZWQuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgd3JpdGV2IGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIE1BWFNZTUxJTktTIGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG9m ZnNldG9mIGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2luZyBmb3Igc2V0cmVzdWlkLi4uIHllcwpj aGVja2luZyBpZiBzZXRyZXN1aWQgc2VlbXMgdG8gd29yay4uLiB5ZXMKY2hlY2tpbmcgZm9yIHNl dHJlc2dpZC4uLiB5ZXMKY2hlY2tpbmcgaWYgc2V0cmVzZ2lkIHNlZW1zIHRvIHdvcmsuLi4geWVz CmNoZWNraW5nIGZvciBnZXR0aW1lb2ZkYXkuLi4geWVzCmNoZWNraW5nIGZvciB0aW1lLi4uIHll cwpjaGVja2luZyBmb3IgZW5kdXRlbnQuLi4geWVzCmNoZWNraW5nIGZvciBnZXR1dGVudC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGdldHV0aWQuLi4geWVzCmNoZWNraW5nIGZvciBnZXR1dGxpbmUuLi4g eWVzCmNoZWNraW5nIGZvciBwdXR1dGxpbmUuLi4geWVzCmNoZWNraW5nIGZvciBzZXR1dGVudC4u LiB5ZXMKY2hlY2tpbmcgZm9yIHV0bXBuYW1lLi4uIHllcwpjaGVja2luZyBmb3IgZW5kdXR4ZW50 Li4uIHllcwpjaGVja2luZyBmb3IgZ2V0dXR4ZW50Li4uIHllcwpjaGVja2luZyBmb3IgZ2V0dXR4 aWQuLi4geWVzCmNoZWNraW5nIGZvciBnZXR1dHhsaW5lLi4uIHllcwpjaGVja2luZyBmb3IgZ2V0 dXR4dXNlci4uLiBubwpjaGVja2luZyBmb3IgcHV0dXR4bGluZS4uLiB5ZXMKY2hlY2tpbmcgZm9y IHNldHV0eGRiLi4uIG5vCmNoZWNraW5nIGZvciBzZXR1dHhlbnQuLi4geWVzCmNoZWNraW5nIGZv ciB1dG1weG5hbWUuLi4geWVzCmNoZWNraW5nIGZvciBnZXRsYXN0bG9neGJ5bmFtZS4uLiBubwpj aGVja2luZyBmb3IgZGFlbW9uLi4uIHllcwpjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUuLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgc25wcmludGYgY29ycmVjdGx5IHRlcm1pbmF0ZXMgbG9uZyBzdHJp bmdzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHNucHJpbnRmIGNhbiBkZWNsYXJlIGNvbnN0IGNo YXIgKmZtdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBzeXN0ZW0gc3VwcG9ydHMgU09fUEVFUkNS RUQgZ2V0c29ja29wdC4uLiB5ZXMKY2hlY2tpbmcgZm9yIChvdmVybHkpIHN0cmljdCBta3N0ZW1w Li4uIHllcwpjaGVja2luZyBpZiBvcGVucHR5IGNvcnJlY3RseSBoYW5kbGVzIGNvbnRyb2xsaW5n IHR0eS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnZXRwZ3JwIHJlcXVpcmVzIHplcm8gYXJndW1l bnRzLi4uIHllcwpjaGVja2luZyBPcGVuU1NMIGhlYWRlciB2ZXJzaW9uLi4uIDEwMDAwMDRmIChP cGVuU1NMIDEuMC4wZCA4IEZlYiAyMDExKQpjaGVja2luZyBPcGVuU1NMIGxpYnJhcnkgdmVyc2lv bi4uLiAxMDAwMDA0ZiAoT3BlblNTTCAxLjAuMGQgOCBGZWIgMjAxMSkKY2hlY2tpbmcgd2hldGhl ciBPcGVuU1NMJ3MgaGVhZGVycyBtYXRjaCB0aGUgbGlicmFyeS4uLiB5ZXMKY2hlY2tpbmcgaWYg cHJvZ3JhbXMgdXNpbmcgT3BlblNTTCBmdW5jdGlvbnMgd2lsbCBsaW5rLi4uIHllcwpjaGVja2lu ZyBmb3IgUlNBX2dlbmVyYXRlX2tleV9leC4uLiB5ZXMKY2hlY2tpbmcgZm9yIERTQV9nZW5lcmF0 ZV9wYXJhbWV0ZXJzX2V4Li4uIHllcwpjaGVja2luZyBmb3IgQk5faXNfcHJpbWVfZXguLi4geWVz CmNoZWNraW5nIGZvciBSU0FfZ2V0X2RlZmF1bHRfbWV0aG9kLi4uIHllcwpjaGVja2luZyBmb3Ig T3BlblNTTCBFTkdJTkUgc3VwcG9ydC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBPcGVuU1NMIGhh cyBjcmlwcGxlZCBBRVMgc3VwcG9ydC4uLiBubwpjaGVja2luZyBpZiBFVlBfRGlnZXN0VXBkYXRl IHJldHVybnMgYW4gaW50Li4uIHllcwpjaGVja2luZyBmb3IgY3J5cHQgaW4gLWxjcnlwdC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIFNIQTI1Nl9VcGRhdGUuLi4geWVzCmNoZWNraW5nIGZvciBFVlBfc2hh MjU2Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIE9wZW5TU0wgaGFzIGNvbXBsZXRlIEVDQyBzdXBw b3J0Li4uIHllcwpjaGVja2luZyBmb3IgaWFfb3BlbmluZm8gaW4gLWxpYWYuLi4gbm8KY2hlY2tp bmcgd2hldGhlciBPcGVuU1NMJ3MgUFJORyBpcyBpbnRlcm5hbGx5IHNlZWRlZC4uLiB5ZXMKY2hl Y2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uIHllcwpjaGVja2luZyBmb3IgcGFtX3NldF9pdGVt IGluIC1scGFtLi4uIG5vCmNvbmZpZ3VyZTogZXJyb3I6ICoqKiBsaWJwYW0gbWlzc2luZwoKISEh IFBsZWFzZSBhdHRhY2ggdGhlIGZvbGxvd2luZyBmaWxlIHdoZW4gc2Vla2luZyBzdXBwb3J0Ogoh ISEgL3Zhci90bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMi93b3JrL29wZW5zc2gt NS44cDIvY29uZmlnLmxvZwogG1szMTswMW0qG1swbSBFUlJPUjogbmV0LW1pc2Mvb3BlbnNzaC01 LjhfcDIgZmFpbGVkIChjb25maWd1cmUgcGhhc2UpOgogG1szMTswMW0qG1swbSAgIGVjb25mIGZh aWxlZAogG1szMTswMW0qG1swbSAKIBtbMzE7MDFtKhtbMG0gQ2FsbCBzdGFjazoKIBtbMzE7MDFt KhtbMG0gICAgIGVidWlsZC5zaCwgbGluZSAgIDU2OiAgQ2FsbGVkIHNyY19jb25maWd1cmUKIBtb MzE7MDFtKhtbMG0gICBlbnZpcm9ubWVudCwgbGluZSAzMjUzOiAgQ2FsbGVkIGVjb25mICctLXdp dGgtbGRmbGFncz0tV2wsLU8xIC1XbCwtLWFzLW5lZWRlZCcgJy0tZGlzYWJsZS1zdHJpcCcgJy0t c3lzY29uZmRpcj0vZXRjL3NzaCcgJy0tbGliZXhlY2Rpcj0vdXNyL2xpYjY0L21pc2MnICctLWRh dGFkaXI9L3Vzci9zaGFyZS9vcGVuc3NoJyAnLS13aXRoLXByaXZzZXAtcGF0aD0vdmFyL2VtcHR5 JyAnLS13aXRoLXByaXZzZXAtdXNlcj1zc2hkJyAnLS13aXRoLW1kNS1wYXNzd29yZHMnICctLXdp dGgtc3NsLWVuZ2luZScgJy0td2l0aC1wYW0nICctLXdpdGhvdXQta2VyYmVyb3M1JyAnLS13aXRo b3V0LWxpYmVkaXQnICctLXdpdGhvdXQtc2VsaW51eCcgJy0td2l0aG91dC1za2V5JyAnLS13aXRo b3V0LXRjcC13cmFwcGVycycKIBtbMzE7MDFtKhtbMG0gICAgIGVidWlsZC5zaCwgbGluZSAgNTU3 OiAgQ2FsbGVkIGRpZQogG1szMTswMW0qG1swbSBUaGUgc3BlY2lmaWMgc25pcHBldCBvZiBjb2Rl OgogG1szMTswMW0qG1swbSAgIAkJCWRpZSAiZWNvbmYgZmFpbGVkIgogG1szMTswMW0qG1swbSAK IBtbMzE7MDFtKhtbMG0gSWYgeW91IG5lZWQgc3VwcG9ydCwgcG9zdCB0aGUgb3V0cHV0IG9mICdl bWVyZ2UgLS1pbmZvID1uZXQtbWlzYy9vcGVuc3NoLTUuOF9wMicsCiAbWzMxOzAxbSobWzBtIHRo ZSBjb21wbGV0ZSBidWlsZCBsb2cgYW5kIHRoZSBvdXRwdXQgb2YgJ2VtZXJnZSAtcHF2ID1uZXQt bWlzYy9vcGVuc3NoLTUuOF9wMicuCiAbWzMxOzAxbSobWzBtIFRoZSBjb21wbGV0ZSBidWlsZCBs b2cgaXMgbG9jYXRlZCBhdCAnL3Zhci9sb2cvcG9ydGFnZS9uZXQtbWlzYzpvcGVuc3NoLTUuOF9w MjoyMDExMDYyOC0xMzI2MzUubG9nJy4KIBtbMzE7MDFtKhtbMG0gVGhlIGVidWlsZCBlbnZpcm9u bWVudCBmaWxlIGlzIGxvY2F0ZWQgYXQgJy92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNz aC01LjhfcDIvdGVtcC9lbnZpcm9ubWVudCcuCiAbWzMxOzAxbSobWzBtIFM6ICcvdmFyL3RtcC9w b3J0YWdlL25ldC1taXNjL29wZW5zc2gtNS44X3AyL3dvcmsvb3BlbnNzaC01LjhwMicK --000e0cd4b3744b8f7a04a6c5ea41--