From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 85241118 for ; Thu, 13 Jun 2019 23:25:17 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3033408069044281872==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] xbps-src improvements To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 14 Jun 2019 01:25:16 +0200 Message-ID: <20190613232516.P3Gh0ROqWT7v_ipAHnS0trPy-D-M5Fi8c_4Lk30x-0o@z> GitHub notification mails are now in MIME to allow UTF8. --===============3033408069044281872== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIHhicHMtc3JjLWltcHJvdmVtZW50cwpodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTI0MzMKCnhicHMtc3JjIGltcHJvdmVt ZW50cwoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8xMjQzMy5wYXRjaCBpcyBhdHRhY2hlZA== --===============3033408069044281872== Content-Type: application/text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-xbps-src-improvements-12433.patch" RnJvbSAwNzJhNzA0ZWViN2FlNTVjMzMzY2I3MzRlNWE2NTkwMzA3MDBmMjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTIgSnVuIDIwMTkgMjM6NTA6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvOF0geGJw cy1zcmM6IGRvbid0IGNoZWNrIGlmIGJhc2UtY2hyb290IGlzIGluc3RhbGxlZCBmb3IKIGV2ZXJ5 IHNpbmdsZSBzb3VyY2VkIHRlbXBsYXRlCgotLS0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nv bW1vbi5zaCB8IDkgKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1v bi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCBjZGYxODAzYTRk NS4uNjJkNmFlMzBhZWMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1v bi5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKQEAgLTM3MiwxMiAr MzcyLDkgQEAgc2V0dXBfcGtnKCkgewogICAgIGVzYWMKIAogICAgICMgQ2hlY2sgaWYgYmFzZS1j aHJvb3QgaXMgYWxyZWFkeSBpbnN0YWxsZWQuCi0gICAgaWYgWyAteiAiJGJvb3RzdHJhcCIgLWEg Inokc2hvd19wcm9ibGVtcyIgIT0gInppZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KLSAgICAgICAg Y2hlY2tfaW5zdGFsbGVkX3BrZyBiYXNlLWNocm9vdC0wLjFfMQotICAgICAgICBpZiBbICQ/IC1u ZSAwIF07IHRoZW4KLSAgICAgICAgICAgIG1zZ19yZWQgIiR7cGtnfSBpcyBub3QgYSBib290c3Ry YXAgcGFja2FnZSBhbmQgY2Fubm90IGJlIGJ1aWx0IHdpdGhvdXQgaXQuXG4iCi0gICAgICAgICAg ICBtc2dfZXJyb3IgIlBsZWFzZSBpbnN0YWxsIGJvb3RzdHJhcCBwYWNrYWdlcyBhbmQgdHJ5IGFn YWluLlxuIgotICAgICAgICBmaQorICAgIGlmIFsgLXogIiRib290c3RyYXAiIC1hIC16ICIkQ0hS T09UX1JFQURZIiAtYSAieiRzaG93X3Byb2JsZW1zIiAhPSAiemlnbm9yZS1wcm9ibGVtcyIgXTsg dGhlbgorICAgICAgICBtc2dfcmVkICIke3BrZ30gaXMgbm90IGEgYm9vdHN0cmFwIHBhY2thZ2Ug YW5kIGNhbm5vdCBiZSBidWlsdCB3aXRob3V0IGl0LlxuIgorICAgICAgICBtc2dfZXJyb3IgIlBs ZWFzZSBpbnN0YWxsIGJvb3RzdHJhcCBwYWNrYWdlcyBhbmQgdHJ5IGFnYWluLlxuIgogICAgIGZp CiAKICAgICBzb3VyY2Vwa2c9IiR7cGtnbmFtZX0iCgpGcm9tIGM0YjIxMzc3N2ZmNjhlMGJmMDcx ZGM4YzliYTRkOTY3NzU2ODViMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IER1bmNh ZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogV2VkLCAxMiBKdW4gMjAxOSAyMzo1MTow OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi84XSB4YnBzLXNyYzogbGVzcyBmb3JraW5nIGluIGdl dF9zdWJwa2dzIGFuZAogdW5zZXRfcGFja2FnZV9mdW5jcwoKLS0tCiBjb21tb24veGJwcy1zcmMv c2h1dGlscy9jb21tb24uc2ggfCAyMyArKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxz L2NvbW1vbi5zaAppbmRleCA2MmQ2YWUzMGFlYy4uNjVhZTUwYTAwYTAgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9jb21tb24uc2gKQEAgLTI1OCwyMSArMjU4LDI0IEBAIHJ1bl9wa2dfaG9va3MoKSB7CiB1 bnNldF9wYWNrYWdlX2Z1bmNzKCkgewogICAgIGxvY2FsIGYKIAotICAgIGZvciBmIGluICQodHlw ZXNldCAtRnxncmVwIC1FICdfcGFja2FnZSQnKTsgZG8KLSAgICAgICAgZXZhbCB1bnNldCAtZiAk ZgorICAgIGZvciBmIGluICIkKHR5cGVzZXQgLUYpIjsgZG8KKyAgICAgICAgY2FzZSAiJGYiIGlu CisgICAgICAgICpfcGFja2FnZSkKKyAgICAgICAgICAgIHVuc2V0IC1mICIkZiIKKyAgICAgICAg ICAgIDs7CisgICAgICAgIGVzYWMKICAgICBkb25lCiB9CiAKIGdldF9zdWJwa2dzKCkgewotICAg IGxvY2FsIGFyZ3MgbGlzdAorICAgIGxvY2FsIGYKIAotICAgIGFyZ3M9IiQodHlwZXNldCAtRnxn cmVwIC1FICdfcGFja2FnZSQnKSIKLSAgICBzZXQgLS0gJHthcmdzfQotICAgIHdoaWxlIFsgJCMg LWd0IDAgXTsgZG8KLSAgICAgICAgbGlzdCs9IiAkezMlX3BhY2thZ2V9Ijsgc2hpZnQgMwotICAg IGRvbmUKLSAgICBmb3IgZiBpbiAke2xpc3R9OyBkbwotICAgICAgICBlY2hvICIkZiIKKyAgICBm b3IgZiBpbiAkKHR5cGVzZXQgLUYpOyBkbworICAgICAgICBjYXNlICIkZiIgaW4KKyAgICAgICAg Kl9wYWNrYWdlKQorICAgICAgICAgICAgZWNobyAiJHtmJV9wYWNrYWdlfSIKKyAgICAgICAgICAg IDs7CisgICAgICAgIGVzYWMKICAgICBkb25lCiB9CiAKCkZyb20gNTBmMGZmOGMxMDg5OTZiZDEz YmE5NTMwMDQ4YmUwYzc0YWNhOGFjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVu Y2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBXZWQsIDEyIEp1biAyMDE5IDIzOjUy OjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzLzhdIHhicHMtc3JjOiBzaW1wbGlmeSBzZXRfYnVp bGRfb3B0aW9ucwoKLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2ggfCA0NyAr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0 aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCmluZGV4 IDY1YWU1MGEwMGEwLi5jNDQ3ZTVmZDg1MCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtMTU0LDcgKzE1NCw3IEBAIG1zZ19ub3JtYWxfYXBwZW5kKCkgewogfQogCiBzZXRfYnVpbGRf b3B0aW9ucygpIHsKLSAgICBsb2NhbCBmIGogb3B0IG9wdHZhbCBfb3B0c3NldCBwa2dvcHRzIF9w a2duYW1lCisgICAgbG9jYWwgZiBqIHBrZ29wdHMgX3BrZ25hbWUKICAgICBsb2NhbCAtQSBvcHRp b25zCiAKICAgICBpZiBbIC16ICIkYnVpbGRfb3B0aW9ucyIgXTsgdGhlbgpAQCAtMTcwLDMwICsx NzAsMjEgQEAgc2V0X2J1aWxkX29wdGlvbnMoKSB7CiAgICAgICAgIGZpCiAgICAgICAgIE9JRlM9 IiRJRlMiOyBJRlM9JywnCiAgICAgICAgIGZvciBqIGluICR7cGtnb3B0c307IGRvCi0gICAgICAg ICAgICBvcHQ9JHtqI1x+fQotICAgICAgICAgICAgb3B0X2Rpc2FibGVkPSR7ajowOjF9Ci0gICAg ICAgICAgICBpZiBbICIkb3B0IiA9ICIkZiIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGlmIFsg IiRvcHRfZGlzYWJsZWQiICE9ICJ+IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGV2YWwg b3B0aW9uc1skb3B0XT0xCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg ICBldmFsIG9wdGlvbnNbJG9wdF09MAotICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBm aQorICAgICAgICAgICAgY2FzZSAiJGoiIGluCisgICAgICAgICAgICAiJGYiKSBvcHRpb25zWyRq XT0xIDs7CisgICAgICAgICAgICAifiRmIikgb3B0aW9uc1ske2ojXH59XT0wIDs7CisgICAgICAg ICAgICBlc2FjCiAgICAgICAgIGRvbmUKICAgICAgICAgSUZTPSIkT0lGUyIKICAgICBkb25lCiAK ICAgICBmb3IgZiBpbiAke2J1aWxkX29wdGlvbnNfZGVmYXVsdH07IGRvCi0gICAgICAgIG9wdHZh bD0ke29wdGlvbnNbJGZdfQotICAgICAgICBpZiBbWyAteiAiJG9wdHZhbCIgXV0gfHwgW1sgJG9w dHZhbCAtZXEgMSBdXTsgdGhlbgotICAgICAgICAgICAgb3B0aW9uc1skZl09MQotICAgICAgICBm aQorICAgICAgICBbWyAteiAiJHtvcHRpb25zWyRmXX0iIF1dICYmIG9wdGlvbnNbJGZdPTEKICAg ICBkb25lCiAKICAgICAjIFByZXBhcmUgZmluYWwgb3B0aW9ucy4KICAgICBmb3IgZiBpbiAkeyFv cHRpb25zW0BdfTsgZG8KLSAgICAgICAgb3B0dmFsPSR7b3B0aW9uc1skZl19Ci0gICAgICAgIGlm IFtbICRvcHR2YWwgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgaWYgW1sgJHtvcHRpb25zWyRmXX0g LWVxIDEgXV07IHRoZW4KICAgICAgICAgICAgIGV2YWwgZXhwb3J0IGJ1aWxkX29wdGlvbl8ke2Z9 PTEKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZXZhbCB1bnNldCBidWlsZF9vcHRpb25fJHtm fQpAQCAtMjEwLDI1ICsyMDEsMTMgQEAgc2V0X2J1aWxkX29wdGlvbnMoKSB7CiAgICAgICAgIHJl dHVybiAwCiAgICAgZmkKIAotICAgIGZvciBmIGluICR7YnVpbGRfb3B0aW9uc307IGRvCi0gICAg ICAgIGV2YWwgb3B0dmFsPSR7b3B0aW9uc1skZl19Ci0gICAgICAgIGlmIFtbICRvcHR2YWwgLWVx IDEgXV07IHRoZW4KLSAgICAgICAgICAgIF9vcHRzc2V0Kz0iICR7Zn0iCi0gICAgICAgIGVsc2UK LSAgICAgICAgICAgIF9vcHRzc2V0Kz0iIH4ke2Z9IgotICAgICAgICBmaQotICAgIGRvbmUKLQot ICAgIGZvciBmIGluICR7X29wdHNzZXR9OyBkbwotICAgICAgICBpZiBbIC16ICIkUEtHX0JVSUxE X09QVElPTlMiIF07IHRoZW4KLSAgICAgICAgICAgIFBLR19CVUlMRF9PUFRJT05TPSIkZiIKLSAg ICAgICAgZWxzZQotICAgICAgICAgICAgUEtHX0JVSUxEX09QVElPTlMrPSIgJGYiCi0gICAgICAg IGZpCi0gICAgZG9uZQotCiAgICAgIyBTb3J0IHBrZyBidWlsZCBvcHRpb25zIGFscGhhYmV0aWNh bGx5LgotICAgIGV4cG9ydCBQS0dfQlVJTERfT1BUSU9OUz0iJChlY2hvICIkUEtHX0JVSUxEX09Q VElPTlMifHRyICcgJyAnXG4nfHNvcnR8dHIgJ1xuJyAnICcpIgorICAgIGV4cG9ydCBQS0dfQlVJ TERfT1BUSU9OUz0kKAorICAgICAgICBmb3IgZiBpbiAke2J1aWxkX29wdGlvbnN9OyBkbworICAg ICAgICAgICAgW1sgIiR7b3B0aW9uc1skZl19IiAtZXEgMSBdXSB8fCBwcmludGYgJ34nCisgICAg ICAgICAgICBwcmludGYgJyVzXG4nICIkZiIKKyAgICAgICAgZG9uZSB8IHNvcnQKKyAgICApCiB9 CiAKIHNvdXJjZV9maWxlKCkgewoKRnJvbSA2NWY5M2I0NDk2MDAwMTE5MTIzYTkzZWE1NjdiYmI2 NTQ0ZTE0OWQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVu QHZvaWRsaW51eC5vcmc+CkRhdGU6IFRodSwgMTMgSnVuIDIwMTkgMDA6Mjk6NDkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDQvOF0geGJwcy1zcmM6IG9wZW4gJFhCUFNfTUFTVEVSRElSL2V0Yy94YnBz L3hicHMtc3JjLmNvbmYKIG9ubHkgb25jZQoKLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9j aHJvb3Quc2ggfCAxMyArKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGls cy9jaHJvb3Quc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKaW5kZXggNTBl YjE5NWE0YmQuLjk2OGVhMGU4NDNhIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGls cy9jaHJvb3Quc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCkBAIC0z LDE3ICszLDExIEBACiAjIEZJWE1FOiAkWEJQU19GRkxBR1MgaXMgbm90IHNldCB3aGVuIGNocm9v dF9pbml0KCkgaXMgcnVuCiAjIEl0IGlzIHNldCBpbiBjb21tb24vYnVpbGQtcHJvZmlsZXMvYm9v dHN0cmFwLnNoIGJ1dCBsb3N0IHNvbWV3aGVyZT8KIGNocm9vdF9pbml0KCkgewotICAgIFhCUFNT UkNfQ0Y9JFhCUFNfTUFTVEVSRElSL2V0Yy94YnBzL3hicHMtc3JjLmNvbmYKLQogICAgIG1rZGly IC1wICRYQlBTX01BU1RFUkRJUi9ldGMveGJwcwogCi0gICAgY2F0ID4gJFhCUFNTUkNfQ0YgPDxf RU9GCisgICAgY2F0ID4gJFhCUFNfTUFTVEVSRElSL2V0Yy94YnBzL3hicHMtc3JjLmNvbmYgPDxf RU9GCiAjIEdlbmVyYXRlZCBjb25maWd1cmF0aW9uIGZpbGUgYnkgeGJwcy1zcmMsIERPIE5PVCBF RElUIQotX0VPRgotICAgIGlmIFsgLWUgIiRYQlBTX0NPTkZJR19GSUxFIiBdOyB0aGVuCi0gICAg ICAgIGdyZXAgLUUgJ15YQlBTXy4qJyAkWEJQU19DT05GSUdfRklMRSA+PiAkWEJQU1NSQ19DRgot ICAgIGZpCi0gICAgY2F0ID4+ICRYQlBTU1JDX0NGIDw8X0VPRgorJChncmVwIC1FICdeWEJQU18u KicgIiRYQlBTX0NPTkZJR19GSUxFIikKIFhCUFNfTUFTVEVSRElSPS8KIFhCUFNfQ0ZMQUdTPSIk WEJQU19DRkxBR1MiCiBYQlBTX0NYWEZMQUdTPSIkWEJQU19DWFhGTEFHUyIKQEAgLTIxLDEwICsx NSw5IEBAIFhCUFNfRkZMQUdTPSItZlBJQyAtcGlwZSIKIFhCUFNfQ1BQRkxBR1M9IiRYQlBTX0NQ UEZMQUdTIgogWEJQU19MREZMQUdTPSIkWEJQU19MREZMQUdTIgogWEJQU19IT1NURElSPS9ob3N0 CisjIEVuZCBvZiBjb25maWd1cmF0aW9uIGZpbGUuCiBfRU9GCiAKLSAgICBlY2hvICIjIEVuZCBv ZiBjb25maWd1cmF0aW9uIGZpbGUuIiA+PiAkWEJQU1NSQ19DRgotCiAgICAgIyBDcmVhdGUgY3Vz dG9tIHNjcmlwdCB0byBzdGFydCB0aGUgY2hyb290IGJhc2ggc2hlbGwuCiAgICAgY2F0ID4gJFhC UFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsIDw8X0VPRgogIyEvYmluL3NoCgpGcm9tIGJjZWRm ODI1NmU5N2IzM2E0NDIzZTlmNmExZmM5NGRjNTUxNGIyNmQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IER1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogVGh1LCAxMyBK dW4gMjAxOSAwMDozNzo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS84XSB4YnBzLXNyYzogdXNl IHN1YnN0aXR1dGlvbnMgaW5zdGVhZCBvZiBzZWQgZm9yIHhicHMtc2hlbGwKCi0tLQogY29tbW9u L3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoIHwgMTYgKysrKy0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvY2hyb290LnNoCmluZGV4IDk2OGVhMGU4NDNhLi5lYThmN2I2MjQ2NSAxMDA2NDQKLS0tIGEv Y29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9z aHV0aWxzL2Nocm9vdC5zaApAQCAtMjgsMjAgKzI4LDEyIEBAIFhCUFNfU1JDX1ZFUlNJT049IiRY QlBTX1NSQ19WRVJTSU9OIgogCiBQQVRIPS92b2lkLXBhY2thZ2VzOi91c3IvYmluOi91c3Ivc2Jp bgogCi1leGVjIGVudiAtaSAtLSBTSEVMTD0vYmluL3NoIFBBVEg9IlwkUEFUSCIgRElTVENDX0hP U1RTPSJcJFhCUFNfRElTVENDX0hPU1RTIiBESVNUQ0NfRElSPSIvaG9zdC9kaXN0Y2MiIEBAWEFS Q0hAQCBcCi0gICAgQEBDSEVDS0BAIENDQUNIRV9ESVI9Ii9ob3N0L2NjYWNoZSIgSU5fQ0hST09U PTEgTENfQ09MTEFURT1DIExBTkc9ZW5fVVMuVVRGLTggVEVSTT1saW51eCBIT01FPSIvdG1wIiBc CitleGVjIGVudiAtaSAtLSBTSEVMTD0vYmluL3NoIFBBVEg9IlwkUEFUSCIgRElTVENDX0hPU1RT PSJcJFhCUFNfRElTVENDX0hPU1RTIiBESVNUQ0NfRElSPSIvaG9zdC9kaXN0Y2MiIFwKKyAgICAk e1hCUFNfQVJDSCtYQlBTX0FSQ0g9JFhCUFNfQVJDSH0gJHtYQlBTX0NIRUNLX1BLR1MrWEJQU19D SEVDS19QS0dTPSRYQlBTX0NIRUNLX1BLR1N9IFwKKyAgICBDQ0FDSEVfRElSPSIvaG9zdC9jY2Fj aGUiIElOX0NIUk9PVD0xIExDX0NPTExBVEU9QyBMQU5HPWVuX1VTLlVURi04IFRFUk09bGludXgg SE9NRT0iL3RtcCIgXAogICAgIFBTMT0iW1x1QCRYQlBTX01BU1RFUkRJUiBcV10kICIgL2Jpbi9i YXNoICtoCiBfRU9GCi0gICAgaWYgWyAtbiAiJFhCUFNfQVJDSCIgXTsgdGhlbgotICAgICAgICBz ZWQgLWUgInMsQEBYQVJDSEBALFhCUFNfQVJDSD0ke1hCUFNfQVJDSH0sZyIgLWkgJFhCUFNfTUFT VEVSRElSL2Jpbi94YnBzLXNoZWxsCi0gICAgZWxzZQotICAgICAgICBzZWQgLWUgJ3MsQEBYQVJD SEBALCxnJyAtaSAkWEJQU19NQVNURVJESVIvYmluL3hicHMtc2hlbGwKLSAgICBmaQotICAgIGlm IFsgLXogIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLSAgICAgICAgc2VkIC1lICdzLEBAQ0hF Q0tAQCwsZycgLWkgJFhCUFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsCi0gICAgZWxzZQotICAg ICAgICBzZWQgLWUgInMsQEBDSEVDS0BALFhCUFNfQ0hFQ0tfUEtHUz0kWEJQU19DSEVDS19QS0dT LGciIC1pICRYQlBTX01BU1RFUkRJUi9iaW4veGJwcy1zaGVsbAotICAgIGZpCisKICAgICBjaG1v ZCA3NTUgJFhCUFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsCiAKICAgICBjcCAtZiAvZXRjL3Jl c29sdi5jb25mICRYQlBTX01BU1RFUkRJUi9ldGMKCkZyb20gODllOTQ3ZGM5NDdkNmFjOGVjMzc5 NmUzMTljN2QzN2EwMjM1YWYxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBUaHUsIDEzIEp1biAyMDE5IDIzOjU2OjM5 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2LzhdIHhicHM6IHVwZGF0ZSB0byAwLjU0LWdpdC4gRE8g Tk9UIE1FUkdFCgotLS0KIC4uLi94YnBzL3BhdGNoZXMvZml4LTMyLWJpdC1mb3JtYXR0aW5nLnBh dGNoICB8ICA2MiAtLS0KIHNyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1jb25mZGlyLXNpemUucGF0 Y2ggICB8ICA0MiAtLQogc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNo ICAgIHwgIDUyIC0tCiAuLi4vcGF0Y2hlcy9maXgtbmFtZXNwYWNlLXZpb2xhdGlvbi5wYXRjaCAg ICAgfCA0NzUgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9v dGRpci1zaXplLnBhdGNoICAgfCAgMjUgLQogc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXN0cm5j YXQtZGFzaC5wYXRjaCAgIHwgIDE0IC0KIHNyY3BrZ3MveGJwcy90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxNCArLQogNyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDY3NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hicHMvcGF0Y2hl cy9maXgtMzItYml0LWZvcm1hdHRpbmcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3hicHMvcGF0Y2hlcy9maXgtY29uZmRpci1zaXplLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LW5hbWVzcGFjZS12aW9sYXRpb24ucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9vdGRpci1zaXpl LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXN0cm5j YXQtZGFzaC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1i aXQtZm9ybWF0dGluZy5wYXRjaCBiL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1iaXQtZm9y bWF0dGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTMwMjkyYjlmYTAu LjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1iaXQtZm9ybWF0 dGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLUZyb20gNGVhZjQ1YTc2 NzllNTlmNmUyNGQ1NDY0ZGMxYTEyMmJkMDU5ZGJiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEZveGxldCA8Zm94bGV0QGZ1cmNvZGUuY28+Ci1EYXRlOiBUdWUsIDE3IEp1bCAyMDE4 IDIwOjI2OjA4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBzdHJpbmcgZm9ybWF0dGluZyBv ZiA2NC1iaXQgdW5zaWduZWQgaW50ZWdlcnMKLQotLS0tCi0gYmluL3hicHMtY3JlYXRlL21haW4u YyB8IDQgKystLQotIGxpYi9wYWNrYWdlX3VucGFjay5jICAgfCA2ICsrKy0tLQotIDIgZmlsZXMg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGJp bi94YnBzLWNyZWF0ZS9tYWluLmMgYmluL3hicHMtY3JlYXRlL21haW4uYwotaW5kZXggZDAzYjlm MzkuLmFhYzk2NzZhIDEwMDY0NAotLS0tIGJpbi94YnBzLWNyZWF0ZS9tYWluLmMKLSsrKyBiaW4v eGJwcy1jcmVhdGUvbWFpbi5jCi1AQCAtNDI2LDcgKzQyNiw3IEBAIGZ0d19jYihjb25zdCBjaGFy ICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQgKnNiLCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIg X3VudXNlCi0gCQlUQUlMUV9GT1JFQUNIKHhlcCwgJnhlbnRyeV9saXN0LCBlbnRyaWVzKSB7Ci0g CQkJaWYgKHNiLT5zdF9ubGluayA+IDEgJiYgeGVwLT5pbm9kZSA9PSBzYi0+c3RfaW5vKSB7Ci0g CQkJCS8qIG1hdGNoZWQgKi8KLS0JCQkJcHJpbnRmKCIlbHUgJWx1XG4iLCB4ZXAtPmlub2RlLCBz Yi0+c3RfaW5vKTsKLSsJCQkJcHJpbnRmKCIlIlBSSXU2NCIgJSJQUkl1NjQiXG4iLCB4ZXAtPmlu b2RlLCBzYi0+c3RfaW5vKTsKLSAJCQkJaGxpbmsgPSB0cnVlOwotIAkJCQlicmVhazsKLSAJCQl9 Ci1AQCAtNDQxLDcgKzQ0MSw3IEBAIGZ0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3Ry dWN0IHN0YXQgKnNiLCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIgX3VudXNlCi0gCQkJeGJwc19k aWN0aW9uYXJ5X2dldF91aW50NjQobGlua2luZm8sICJpbm9kZSIsICZpbm9kZSk7Ci0gCQkJaWYg KGlub2RlID09IHNiLT5zdF9pbm8pIHsKLSAJCQkJLyogbWF0Y2hlZCAqLwotLQkJCQlwcmludGYo IiVsdSAlbHVcbiIsIGlub2RlLCBzYi0+c3RfaW5vKTsKLSsJCQkJcHJpbnRmKCIlIlBSSXU2NCIg JSJQUkl1NjQiXG4iLCBpbm9kZSwgc2ItPnN0X2lubyk7Ci0gCQkJCWJyZWFrOwotIAkJCX0KLSAJ CX0KLWRpZmYgLS1naXQgbGliL3BhY2thZ2VfdW5wYWNrLmMgbGliL3BhY2thZ2VfdW5wYWNrLmMK LWluZGV4IDY1NDZhNzdhLi4yNWE2Mzg4ZSAxMDA2NDQKLS0tLSBsaWIvcGFja2FnZV91bnBhY2su YwotKysrIGxpYi9wYWNrYWdlX3VucGFjay5jCi1AQCAtMzc3LDEzICszNzcsMTMgQEAgdW5wYWNr X2FyY2hpdmUoc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQkJICAgIGFyY2hpdmVfZW50cnlf Z2lkKGVudHJ5KSkgIT0gMCkgewotIAkJCQl4YnBzX2RiZ19wcmludGYoeGhwLAotIAkJCQkgICAg IiVzOiBmYWlsZWQgIgotLQkJCQkgICAgInRvIHNldCB1aWQvZ2lkIHRvICV6dTolenUgKCVzKVxu IiwKLSsJCQkJICAgICJ0byBzZXQgdWlkL2dpZCB0byAlIlBSSXU2NCI6JSJQUkl1NjQiICglcylc biIsCi0gCQkJCSAgICBwa2d2ZXIsIGFyY2hpdmVfZW50cnlfdWlkKGVudHJ5KSwKLSAJCQkJICAg IGFyY2hpdmVfZW50cnlfZ2lkKGVudHJ5KSwKLSAJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7Ci0g CQkJfSBlbHNlIHsKLSAJCQkJeGJwc19kYmdfcHJpbnRmKHhocCwgIiVzOiBlbnRyeSAlcyBjaGFu Z2VkICIKLS0JCQkJICAgICJ1aWQvZ2lkIHRvICV6dTolenUuXG4iLCBwa2d2ZXIsIGVudHJ5X3Bu YW1lLAotKwkJCQkgICAgInVpZC9naWQgdG8gJSJQUkl1NjQiOiUiUFJJdTY0Ii5cbiIsIHBrZ3Zl ciwgZW50cnlfcG5hbWUsCi0gCQkJCSAgICBhcmNoaXZlX2VudHJ5X3VpZChlbnRyeSksCi0gCQkJ CSAgICBhcmNoaXZlX2VudHJ5X2dpZChlbnRyeSkpOwotIAkJCX0KLUBAIC00MjYsNyArNDI2LDcg QEAgdW5wYWNrX2FyY2hpdmUoc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQkJCSAgICAgIEFU X1NZTUxJTktfTk9GT0xMT1cpID09IC0xKSB7Ci0gCQkJCXhicHNfZGJnX3ByaW50Zih4aHAsCi0g CQkJCSAgICAiJXM6IGZhaWxlZCAiCi0tCQkJCSAgICAidG8gc2V0IG10aW1lICVqdSB0byAlczog JXNcbiIsCi0rCQkJCSAgICAidG8gc2V0IG10aW1lICVsdSB0byAlczogJXNcbiIsCi0gCQkJCSAg ICBwa2d2ZXIsIGFyY2hpdmVfZW50cnlfbXRpbWVfbnNlYyhlbnRyeSksCi0gCQkJCSAgICBlbnRy eV9wbmFtZSwKLSAJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7Ci0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MveGJwcy9wYXRjaGVzL2ZpeC1jb25mZGlyLXNpemUucGF0Y2ggYi9zcmNwa2dzL3hicHMvcGF0 Y2hlcy9maXgtY29uZmRpci1zaXplLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBmZWM5Zjk5YTgxNi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4 LWNvbmZkaXItc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS0tLSB0 ZXN0cy94YnBzL2xpYnhicHMvY29uZmlnL21haW4uYwkyMDE4LTA3LTMwIDEzOjQ3OjA4LjAwMDAw MDAwMCArMDIwMAotKysrIHRlc3RzL3hicHMvbGlieGJwcy9jb25maWcvbWFpbi5jCTIwMTgtMDgt MDcgMDg6Mzc6MzcuOTAwNjkwOTUzICswMjAwCi1AQCAtMzksNiArMzksOCBAQAotIAlzdHJ1Y3Qg eGJwc19oYW5kbGUgeGg7Ci0gCWNvbnN0IGNoYXIgKnRjc2RpcjsKLSAJY2hhciAqYnVmLCAqYnVm MiwgcHdkW1BBVEhfTUFYXTsKLSsJY2hhciBjb25mZGlyW1BBVEhfTUFYICsgMSArIHNpemVvZigi eGJwcy5kIildOwotKwlzaXplX3QgbGVuOwotIAotIAkvKiBnZXQgdGVzdCBzb3VyY2UgZGlyICov Ci0gCXRjc2RpciA9IGF0Zl90Y19nZXRfY29uZmlnX3Zhcih0YywgInNyY2RpciIpOwotQEAgLTQ4 LDcgKzUwLDkgQEAKLSAKLSAJeGJwc19zdHJsY3B5KHhoLnJvb3RkaXIsIHB3ZCwgc2l6ZW9mKHho LnJvb3RkaXIpKTsKLSAJeGJwc19zdHJsY3B5KHhoLm1ldGFkaXIsIHB3ZCwgc2l6ZW9mKHhoLm1l dGFkaXIpKTsKLS0Jc25wcmludGYoeGguY29uZmRpciwgc2l6ZW9mKHhoLmNvbmZkaXIpLCAiJXMv eGJwcy5kIiwgcHdkKTsKLSsJbGVuID0gc25wcmludGYoY29uZmRpciwgc2l6ZW9mKGNvbmZkaXIp LCAiJXMveGJwcy5kIiwgcHdkKTsKLSsJQVRGX1JFUVVJUkVfRVEoKGxlbiA8IHNpemVvZih4aC5j b25mZGlyKSksIDEpOwotKwltZW1jcHkoeGguY29uZmRpciwgY29uZmRpciwgbGVuICsgMSk7Ci0g Ci0gCUFURl9SRVFVSVJFX0VRKHhicHNfbWtwYXRoKHhoLmNvbmZkaXIsIDA3NTUpLCAwKTsKLSAK LUBAIC04OCw2ICs4OCw4IEBACi0gCXN0cnVjdCB4YnBzX2hhbmRsZSB4aDsKLSAJY29uc3QgY2hh ciAqdGNzZGlyOwotIAljaGFyICpidWYsICpidWYyLCBwd2RbUEFUSF9NQVhdOwotKwljaGFyIGNv bmZkaXJbUEFUSF9NQVggKyAxICsgc2l6ZW9mKCJ4YnBzLmQiKV07Ci0rCXNpemVfdCBsZW47Ci0g Ci0gCS8qIGdldCB0ZXN0IHNvdXJjZSBkaXIgKi8KLSAJdGNzZGlyID0gYXRmX3RjX2dldF9jb25m aWdfdmFyKHRjLCAic3JjZGlyIik7Ci1AQCAtOTcsNyArOTksOSBAQAotIAotIAl4YnBzX3N0cmxj cHkoeGgucm9vdGRpciwgdGNzZGlyLCBzaXplb2YoeGgucm9vdGRpcikpOwotIAl4YnBzX3N0cmxj cHkoeGgubWV0YWRpciwgdGNzZGlyLCBzaXplb2YoeGgubWV0YWRpcikpOwotLQlzbnByaW50Zih4 aC5jb25mZGlyLCBzaXplb2YoeGguY29uZmRpciksICIlcy94YnBzLmQiLCBwd2QpOwotKwlsZW4g PSBzbnByaW50Zihjb25mZGlyLCBzaXplb2YoY29uZmRpciksICIlcy94YnBzLmQiLCBwd2QpOwot KwlBVEZfUkVRVUlSRV9FUSgobGVuIDwgc2l6ZW9mKHhoLmNvbmZkaXIpKSwgMSk7Ci0rCW1lbWNw eSh4aC5jb25mZGlyLCBjb25mZGlyLCBsZW4gKyAxKTsKLSAKLSAJQVRGX1JFUVVJUkVfRVEoeGJw c19ta3BhdGgoeGguY29uZmRpciwgMDc1NSksIDApOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy94 YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNoIGIvc3JjcGtncy94YnBzL3BhdGNoZXMv Zml4LWh0dHBzLXByb3h5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjBj MjQ1YjNhZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBz LXByb3h5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSAwN2VjOTgy YjA3OGY4NjcyYzhjZGJiNDJiZjJlODYxYzk2OWFiNDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogRHVuY2FlbiA8bWFpbEBkdW5jYW5vLmRlPgotRGF0ZTogTW9uLCA4IEFwciAyMDE5 IDEzOjE2OjUzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGxpYi9mZXRjaC9odHRwLmM6IGlnbm9y ZSBoZWFkZXJzIGFmdGVyIENPTk5FQ1QgcmVzcG9uc2UKLQotLS0tCi0gbGliL2ZldGNoL2h0dHAu YyB8IDE5ICsrKysrKysrKysrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGxpYi9mZXRjaC9odHRwLmMgbGliL2Zl dGNoL2h0dHAuYwotaW5kZXggZGNjN2JmN2QuLmNiMjc5MDVlIDEwMDY0NAotLS0tIGxpYi9mZXRj aC9odHRwLmMKLSsrKyBsaWIvZmV0Y2gvaHR0cC5jCi1AQCAtNzIxLDYgKzcyMSw4IEBAIGh0dHBf Y29ubmVjdChzdHJ1Y3QgdXJsICpVUkwsIHN0cnVjdCB1cmwgKnB1cmwsIGNvbnN0IGNoYXIgKmZs YWdzLCBpbnQgKmNhY2hlZCkKLSB7Ci0gCXN0cnVjdCB1cmwgKmN1cmw7Ci0gCWNvbm5fdCAqY29u bjsKLSsJY29uc3QgY2hhciAqcDsKLSsJaGRyX3QgaDsKLSAJaW50IGFmLCB2ZXJib3NlOwotICNp ZmRlZiBUQ1BfTk9QVVNICi0gCWludCB2YWw7Ci1AQCAtNzU5LDEwICs3NjEsMjUgQEAgaHR0cF9j b25uZWN0KHN0cnVjdCB1cmwgKlVSTCwgc3RydWN0IHVybCAqcHVybCwgY29uc3QgY2hhciAqZmxh Z3MsIGludCAqY2FjaGVkKQotIAkJaHR0cF9jbWQoY29ubiwgIlxyXG4iKTsKLSAKLSAJCWlmICho dHRwX2dldF9yZXBseShjb25uKSAhPSBIVFRQX09LKSB7Ci0rCQkJaHR0cF9zZXRlcnIoY29ubi0+ ZXJyKTsKLSAJCQlmZXRjaF9jbG9zZShjb25uKTsKLSAJCQlyZXR1cm4gKE5VTEwpOwotIAkJfQot LQkJaHR0cF9nZXRfcmVwbHkoY29ubik7Ci0rCQkvKiBSZWFkIGFuZCBkaXNjYXJkIHRoZSByZXN0 IG9mIHRoZSBwcm94eSByZXNwb25zZSAqLwotKwkJZG8gewotKwkJCXN3aXRjaCAoKGggPSBodHRw X25leHRfaGVhZGVyKGNvbm4sICZwKSkpIHsKLSsJCQljYXNlIGhkcl9zeXNlcnJvcjoKLSsJCQkJ ZmV0Y2hfc3lzZXJyKCk7Ci0rCQkJCWZldGNoX2Nsb3NlKGNvbm4pOwotKwkJCQlyZXR1cm4gKE5V TEwpOwotKwkJCWNhc2UgaGRyX2Vycm9yOgotKwkJCQlodHRwX3NldGVycihIVFRQX1BST1RPQ09M X0VSUk9SKTsKLSsJCQkJZmV0Y2hfY2xvc2UoY29ubik7Ci0rCQkJCXJldHVybiAoTlVMTCk7Ci0r CQkJZGVmYXVsdDoKLSsJCQkJLyogaWdub3JlICovIDsKLSsJCQl9Ci0rCQl9IHdoaWxlIChoID4g aGRyX2VuZCk7Ci0gCX0KLSAJaWYgKHN0cmNhc2VjbXAoVVJMLT5zY2hlbWUsIFNDSEVNRV9IVFRQ UykgPT0gMCAmJgotIAkgICAgZmV0Y2hfc3NsKGNvbm4sIFVSTCwgdmVyYm9zZSkgPT0gLTEpIHsK LS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1uYW1l c3BhY2UtdmlvbGF0aW9uLnBhdGNoIGIvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LW5hbWVzcGFj ZS12aW9sYXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3YjAyMDJk ODhlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtbmFtZXNwYWNl LXZpb2xhdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3NSArMCwwIEBACi1Gcm9tIDBm MzM4NTk3MDE1MjcxZWU1MDQxMDBjMzJmZDJjNDkyNmVmZGI0MjMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBGb3hsZXQgPGZveGxldEBmdXJjb2RlLmNvPgotRGF0ZTogVHVlLCAxNyBK dWwgMjAxOCAyMjoyNDoyNiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBGaXggbmFtZXNwYWNlIHZp b2xhdGlvbgotCi0tLS0KLSBiaW4veGJwcy1hbHRlcm5hdGl2ZXMvbWFpbi5jICAgICAgICB8ICAy ICstCi0gYmluL3hicHMtY3JlYXRlL21haW4uYyAgICAgICAgICAgICAgfCAgNCArLS0KLSBiaW4v eGJwcy1pbnN0YWxsL21haW4uYyAgICAgICAgICAgICB8ICA0ICstLQotIGJpbi94YnBzLWluc3Rh bGwvc3RhdGVfY2IuYyAgICAgICAgIHwgIDIgKy0KLSBiaW4veGJwcy1wa2dkYi9jaGVjay5jICAg ICAgICAgICAgICB8ICA2ICsrLS0tCi0gYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVlZGVk LmMgfCAgMiArLQotIGJpbi94YnBzLXF1ZXJ5L2xpc3QuYyAgICAgICAgICAgICAgIHwgMzggKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSBiaW4veGJwcy1xdWVyeS9vd25lZGJ5LmMgICAg ICAgICAgICB8IDEwICsrKystLS0tCi0gYmluL3hicHMtcXVlcnkvc2VhcmNoLmMgICAgICAgICAg ICAgfCAgOCArKystLS0KLSBiaW4veGJwcy1yZWNvbmZpZ3VyZS9tYWluLmMgICAgICAgICB8ICAy ICstCi0gYmluL3hicHMtcmVtb3ZlL2NsZWFuLWNhY2hlLmMgICAgICAgfCAgNCArLS0KLSBiaW4v eGJwcy1yZW1vdmUvbWFpbi5jICAgICAgICAgICAgICB8ICAyICstCi0gYmluL3hicHMtcmluZGV4 L2luZGV4LWNsZWFuLmMgICAgICAgfCAgNCArLS0KLSBiaW4veGJwcy1yaW5kZXgvcmVtb3ZlLW9i c29sZXRlcy5jICB8ICAyICstCi0gYmluL3hicHMtdWNocm9vdC9tYWluLmMgICAgICAgICAgICAg fCAgNCArLS0KLSBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g bGliL3BhY2thZ2Vfb3JwaGFucy5jICAgICAgICAgICAgICAgfCAgMiArLQotIGxpYi9wbGlzdF9m ZXRjaC5jICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0KLSBsaWIvcnBvb2wuYyAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA2ICsrLS0tCi0gbGliL3RyYW5zYWN0aW9uX2NvbmZsaWN0cy5j ICAgICAgICAgfCAgMiArLQotIDIwIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDU2 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGJpbi94YnBzLWFsdGVybmF0aXZlcy9tYWluLmMg YmluL3hicHMtYWx0ZXJuYXRpdmVzL21haW4uYwotaW5kZXggYzcyMmE3NGIuLjk0YWIzMWU4IDEw MDY0NAotLS0tIGJpbi94YnBzLWFsdGVybmF0aXZlcy9tYWluLmMKLSsrKyBiaW4veGJwcy1hbHRl cm5hdGl2ZXMvbWFpbi5jCi1AQCAtNTUsNyArNTUsNyBAQCB1c2FnZShib29sIGZhaWwpCi0gfQot IAotIHN0YXRpYyBpbnQKLS1zdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRh ICp4c2NkLCB2b2lkICpjYmQgX3VudXNlZCkKLStzdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19z dGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lkICpjYmQgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0g ZmFsc2U7Ci0gCi1kaWZmIC0tZ2l0IGJpbi94YnBzLWNyZWF0ZS9tYWluLmMgYmluL3hicHMtY3Jl YXRlL21haW4uYwotaW5kZXggYWFjOTY3NmEuLjJjMjExMjE1IDEwMDY0NAotLS0tIGJpbi94YnBz LWNyZWF0ZS9tYWluLmMKLSsrKyBiaW4veGJwcy1jcmVhdGUvbWFpbi5jCi1AQCAtMTk5LDcgKzE5 OSw3IEBAIHByb2Nlc3Nfb25lX2FsdGVybmF0aXZlKGNvbnN0IGNoYXIgKmFsdGdybmFtZSwgY29u c3QgY2hhciAqdmFsKQotIAotIAotIHN0YXRpYyB2b2lkCi0tcHJvY2Vzc19kaWN0X29mX2FycmF5 cyhjb25zdCBjaGFyICprZXkgX3VudXNlZCwgY29uc3QgY2hhciAqdmFsKQotK3Byb2Nlc3NfZGlj dF9vZl9hcnJheXMoY29uc3QgY2hhciAqa2V5IFVOVVNFRCwgY29uc3QgY2hhciAqdmFsKQotIHsK LSAJY2hhciAqYWx0Z3JuYW1lLCAqYXJncywgKnAsICpzYXZlcHRyOwotIAotQEAgLTMwMiw3ICsz MDIsNyBAQCBlbnRyeV9pc19jb25mX2ZpbGUoY29uc3QgY2hhciAqZmlsZSkKLSB9Ci0gCi0gc3Rh dGljIGludAotLWZ0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQgKnNi LCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIgX3VudXNlZCkKLStmdHdfY2IoY29uc3QgY2hhciAq ZnBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0ICpzYiwgY29uc3Qgc3RydWN0IGRpcmVudCAqZGlyIFVO VVNFRCkKLSB7Ci0gCXN0cnVjdCB4ZW50cnkgKnhlID0gTlVMTDsKLSAJeGJwc19kaWN0aW9uYXJ5 X3QgZmlsZWluZm8gPSBOVUxMOwotZGlmZiAtLWdpdCBiaW4veGJwcy1pbnN0YWxsL21haW4uYyBi aW4veGJwcy1pbnN0YWxsL21haW4uYwotaW5kZXggYjU3ZjJmZTkuLmRhMjBkYTFhIDEwMDY0NAot LS0tIGJpbi94YnBzLWluc3RhbGwvbWFpbi5jCi0rKysgYmluL3hicHMtaW5zdGFsbC9tYWluLmMK LUBAIC02OCw3ICs2OCw3IEBAIHVzYWdlKGJvb2wgZmFpbCkKLSB9Ci0gCi0gc3RhdGljIHZvaWQK LS11bnBhY2tfcHJvZ3Jlc3NfY2IoY29uc3Qgc3RydWN0IHhicHNfdW5wYWNrX2NiX2RhdGEgKnhw ZCwgdm9pZCAqY2JkYXRhIF91bnVzZWQpCi0rdW5wYWNrX3Byb2dyZXNzX2NiKGNvbnN0IHN0cnVj dCB4YnBzX3VucGFja19jYl9kYXRhICp4cGQsIHZvaWQgKmNiZGF0YSBVTlVTRUQpCi0gewotIAlp ZiAoeHBkLT5lbnRyeSA9PSBOVUxMIHx8IHhwZC0+ZW50cnlfdG90YWxfY291bnQgPD0gMCkKLSAJ CXJldHVybjsKLUBAIC04MCw3ICs4MCw3IEBAIHVucGFja19wcm9ncmVzc19jYihjb25zdCBzdHJ1 Y3QgeGJwc191bnBhY2tfY2JfZGF0YSAqeHBkLCB2b2lkICpjYmRhdGEgX3VudXNlZCkKLSB9Ci0g Ci0gc3RhdGljIGludAotLXJlcG9faW1wb3J0X2tleV9jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBv LCB2b2lkICphcmcgX3VudXNlZCwgYm9vbCAqZG9uZSBfdW51c2VkKQotK3JlcG9faW1wb3J0X2tl eV9jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICphcmcgVU5VU0VELCBib29sICpkb25l IFVOVVNFRCkKLSB7Ci0gCWludCBydjsKLSAKLWRpZmYgLS1naXQgYmluL3hicHMtaW5zdGFsbC9z dGF0ZV9jYi5jIGJpbi94YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotaW5kZXggNTE4OWI5YTkuLmEy MDYzY2VhIDEwMDY0NAotLS0tIGJpbi94YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotKysrIGJpbi94 YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotQEAgLTMyLDcgKzMyLDcgQEAKLSAjaW5jbHVkZSAiZGVm cy5oIgotIAotIGludAotLXN0YXRlX2NiKGNvbnN0IHN0cnVjdCB4YnBzX3N0YXRlX2NiX2RhdGEg KnhzY2QsIHZvaWQgKmNiZGF0YSBfdW51c2VkKQotK3N0YXRlX2NiKGNvbnN0IHN0cnVjdCB4YnBz X3N0YXRlX2NiX2RhdGEgKnhzY2QsIHZvaWQgKmNiZGF0YSBVTlVTRUQpCi0gewotIAl4YnBzX2Rp Y3Rpb25hcnlfdCBwa2dkOwotIAljb25zdCBjaGFyICppbnN0dmVyLCAqbmV3dmVyOwotZGlmZiAt LWdpdCBiaW4veGJwcy1wa2dkYi9jaGVjay5jIGJpbi94YnBzLXBrZ2RiL2NoZWNrLmMKLWluZGV4 IGVkMzkzMzk4Li42YWUxMWRiNyAxMDA2NDQKLS0tLSBiaW4veGJwcy1wa2dkYi9jaGVjay5jCi0r KysgYmluL3hicHMtcGtnZGIvY2hlY2suYwotQEAgLTM2LDExICszNiwxMSBAQAotICNpbmNsdWRl ICJkZWZzLmgiCi0gCi0gc3RhdGljIGludAotLXBrZ2RiX2NiKHN0cnVjdCB4YnBzX2hhbmRsZSAq eGhwIF91bnVzZWQsCi0rcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAgVU5VU0VELAot IAkJeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwKLSsJCWNv bnN0IGNoYXIgKmtleSBVTlVTRUQsCi0gCQl2b2lkICphcmcsCi0tCQlib29sICpkb25lIF91bnVz ZWQpCi0rCQlib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCWNvbnN0IGNoYXIgKnBrZ3ZlcjsKLSAJ Y2hhciAqcGtnbmFtZTsKLWRpZmYgLS1naXQgYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVl ZGVkLmMgYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVlZGVkLmMKLWluZGV4IGQyMjQ5MzA0 Li4yYjEzN2IzZiAxMDA2NDQKLS0tLSBiaW4veGJwcy1wa2dkYi9jaGVja19wa2dfdW5uZWVkZWQu YwotKysrIGJpbi94YnBzLXBrZ2RiL2NoZWNrX3BrZ191bm5lZWRlZC5jCi1AQCAtNDMsNyArNDMs NyBAQAotICAqIAkgIGFuZCByZW1vdmUgdGhlbSBpZiB0aGF0IHdhcyB0cnVlLgotICAqLwotIGlu dAotLWNoZWNrX3BrZ191bm5lZWRlZChzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkLCBj b25zdCBjaGFyICpwa2duYW1lLCB2b2lkICphcmcpCi0rY2hlY2tfcGtnX3VubmVlZGVkKHN0cnVj dCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwgY29uc3QgY2hhciAqcGtnbmFtZSwgdm9pZCAqYXJn KQotIHsKLSAJeGJwc19hcnJheV90IHJlcGxhY2VzOwotIAl4YnBzX2RpY3Rpb25hcnlfdCBwa2dk ID0gYXJnOwotZGlmZiAtLWdpdCBiaW4veGJwcy1xdWVyeS9saXN0LmMgYmluL3hicHMtcXVlcnkv bGlzdC5jCi1pbmRleCBkZGRhOGJlOC4uZjA4MzM0YzMgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcXVl cnkvbGlzdC5jCi0rKysgYmluL3hicHMtcXVlcnkvbGlzdC5jCi1AQCAtMzgsMTEgKzM4LDExIEBA IHN0cnVjdCBsaXN0X3BrZ3Zlcl9jYiB7Ci0gfTsKLSAKLSBpbnQKLS1saXN0X3BrZ3NfaW5fZGlj dChzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkLAotK2xpc3RfcGtnc19pbl9kaWN0KHN0 cnVjdCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCSAgeGJwc19vYmplY3RfdCBvYmosCi0t CQkgIGNvbnN0IGNoYXIgKmtleSBfdW51c2VkLAotKwkJICBjb25zdCBjaGFyICprZXkgVU5VU0VE LAotIAkJICB2b2lkICphcmcsCi0tCQkgIGJvb2wgKmxvb3BfZG9uZSBfdW51c2VkKQotKwkJICBi b29sICpsb29wX2RvbmUgVU5VU0VEKQotIHsKLSAJc3RydWN0IGxpc3RfcGtndmVyX2NiICpscGMg PSBhcmc7Ci0gCWNvbnN0IGNoYXIgKnBrZ3ZlciwgKnNob3J0X2Rlc2MsICpzdGF0ZV9zdHI7Ci1A QCAtODgsMTEgKzg4LDExIEBAIGxpc3RfcGtnc19pbl9kaWN0KHN0cnVjdCB4YnBzX2hhbmRsZSAq eGhwIF91bnVzZWQsCi0gfQotIAotIGludAotLWxpc3RfbWFudWFsX3BrZ3Moc3RydWN0IHhicHNf aGFuZGxlICp4aHAgX3VudXNlZCwKLStsaXN0X21hbnVhbF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRs ZSAqeGhwIFVOVVNFRCwKLSAJCSB4YnBzX29iamVjdF90IG9iaiwKLS0JCSBjb25zdCBjaGFyICpr ZXkgX3VudXNlZCwKLS0JCSB2b2lkICphcmcgX3VudXNlZCwKLS0JCSBib29sICpsb29wX2RvbmUg X3VudXNlZCkKLSsJCSBjb25zdCBjaGFyICprZXkgVU5VU0VELAotKwkJIHZvaWQgKmFyZyBVTlVT RUQsCi0rCQkgYm9vbCAqbG9vcF9kb25lIFVOVVNFRCkKLSB7Ci0gCWNvbnN0IGNoYXIgKnBrZ3Zl cjsKLSAJYm9vbCBhdXRvbWF0aWMgPSBmYWxzZTsKLUBAIC0xMDcsMTEgKzEwNywxMSBAQCBsaXN0 X21hbnVhbF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0gfQotIAotIGlu dAotLWxpc3RfaG9sZF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rbGlz dF9ob2xkX3BrZ3Moc3RydWN0IHhicHNfaGFuZGxlICp4aHAgVU5VU0VELAotIAkJeGJwc19vYmpl Y3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwKLS0JCXZvaWQgKmFyZyBfdW51 c2VkLAotLQkJYm9vbCAqbG9vcF9kb25lIF91bnVzZWQpCi0rCQljb25zdCBjaGFyICprZXkgVU5V U0VELAotKwkJdm9pZCAqYXJnIFVOVVNFRCwKLSsJCWJvb2wgKmxvb3BfZG9uZSBVTlVTRUQpCi0g ewotIAljb25zdCBjaGFyICpwa2d2ZXI7Ci0gCi1AQCAtMTI0LDExICsxMjQsMTEgQEAgbGlzdF9o b2xkX3BrZ3Moc3RydWN0IHhicHNfaGFuZGxlICp4aHAgX3VudXNlZCwKLSB9Ci0gCi0gaW50Ci0t bGlzdF9yZXBvbG9ja19wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rbGlz dF9yZXBvbG9ja19wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCXhicHNf b2JqZWN0X3Qgb2JqLAotLQkJY29uc3QgY2hhciAqa2V5IF91bnVzZWQsCi0tCQl2b2lkICphcmcg X3VudXNlZCwKLS0JCWJvb2wgKmxvb3BfZG9uZSBfdW51c2VkKQotKwkJY29uc3QgY2hhciAqa2V5 IFVOVVNFRCwKLSsJCXZvaWQgKmFyZyBVTlVTRUQsCi0rCQlib29sICpsb29wX2RvbmUgVU5VU0VE KQotIHsKLSAJY29uc3QgY2hhciAqcGtndmVyOwotIAotQEAgLTE3MSw3ICsxNzEsNyBAQCBsaXN0 X3BrZ3NfcGtnZGIoc3RydWN0IHhicHNfaGFuZGxlICp4aHApCi0gfQotIAotIHN0YXRpYyBpbnQK LS1yZXBvX2xpc3RfdXJpX2NiKHN0cnVjdCB4YnBzX3JlcG8gKnJlcG8sIHZvaWQgKmFyZyBfdW51 c2VkLCBib29sICpkb25lIF91bnVzZWQpCi0rcmVwb19saXN0X3VyaV9jYihzdHJ1Y3QgeGJwc19y ZXBvICpyZXBvLCB2b2lkICphcmcgVU5VU0VELCBib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCWNv bnN0IGNoYXIgKnNpZ25lZGJ5ID0gTlVMTDsKLSAJdWludDE2X3QgcHVia2V5c2l6ZSA9IDA7Ci1A QCAtMjE5LDExICsyMTksMTEgQEAgc3RydWN0IGZmbG9uZ2VzdCB7Ci0gfTsKLSAKLSBzdGF0aWMg aW50Ci0tX2ZpbmRfbG9uZ2VzdF9wa2d2ZXJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAgX3Vu dXNlZCwKLStfZmluZF9sb25nZXN0X3BrZ3Zlcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBV TlVTRUQsCi0gCQkJeGJwc19vYmplY3RfdCBvYmosCi0tCQkJY29uc3QgY2hhciAqa2V5IF91bnVz ZWQsCi0rCQkJY29uc3QgY2hhciAqa2V5IFVOVVNFRCwKLSAJCQl2b2lkICphcmcsCi0tCQkJYm9v bCAqbG9vcF9kb25lIF91bnVzZWQpCi0rCQkJYm9vbCAqbG9vcF9kb25lIFVOVVNFRCkKLSB7Ci0g CXN0cnVjdCBmZmxvbmdlc3QgKmZmbCA9IGFyZzsKLSAJY29uc3QgY2hhciAqcGtndmVyOwotZGlm ZiAtLWdpdCBiaW4veGJwcy1xdWVyeS9vd25lZGJ5LmMgYmluL3hicHMtcXVlcnkvb3duZWRieS5j Ci1pbmRleCBmYzg2ODRkYy4uMTFmNzZhOTkgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcXVlcnkvb3du ZWRieS5jCi0rKysgYmluL3hicHMtcXVlcnkvb3duZWRieS5jCi1AQCAtOTcsOSArOTcsOSBAQCBt YXRjaF9maWxlc19ieV9wYXR0ZXJuKHhicHNfZGljdGlvbmFyeV90IHBrZ19maWxlc2QsCi0gc3Rh dGljIGludAotIG93bmVkYnlfcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQl4 YnBzX29iamVjdF90IG9iaiwKLS0JCWNvbnN0IGNoYXIgKm9ial9rZXkgX3VudXNlZCwKLSsJCWNv bnN0IGNoYXIgKm9ial9rZXkgVU5VU0VELAotIAkJdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBf dW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0gewotIAl4YnBzX2RpY3Rpb25hcnlfdCBw a2dtZXRhZDsKLSAJeGJwc19hcnJheV90IGZpbGVzX2tleXM7Ci1AQCAtMTI5LDkgKzEyOSw5IEBA IG93bmVkYnlfcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gc3RhdGljIGludAot IHJlcG9fbWF0Y2hfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQl4YnBzX29iamVjdF90 IG9iaiwKLS0JCWNvbnN0IGNoYXIgKmtleSBfdW51c2VkLAotKwkJY29uc3QgY2hhciAqa2V5IFVO VVNFRCwKLSAJCXZvaWQgKmFyZywKLS0JCWJvb2wgKmRvbmUgX3VudXNlZCkKLSsJCWJvb2wgKmRv bmUgVU5VU0VEKQotIHsKLSAJeGJwc19kaWN0aW9uYXJ5X3QgZmlsZXNkOwotIAl4YnBzX2FycmF5 X3QgZmlsZXNfa2V5czsKLUBAIC0xNjMsNyArMTYzLDcgQEAgcmVwb19tYXRjaF9jYihzdHJ1Y3Qg eGJwc19oYW5kbGUgKnhocCwKLSB9Ci0gCi0gc3RhdGljIGludAotLXJlcG9fb3duZWRieV9jYihz dHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICphcmcsIGJvb2wgKmRvbmUgX3VudXNlZCkKLSty ZXBvX293bmVkYnlfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpk b25lIFVOVVNFRCkKLSB7Ci0gCXhicHNfYXJyYXlfdCBhbGxrZXlzOwotIAlzdHJ1Y3QgZmZkYXRh ICpmZmQgPSBhcmc7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXF1ZXJ5L3NlYXJjaC5jIGJpbi94YnBz LXF1ZXJ5L3NlYXJjaC5jCi1pbmRleCA0YjdlZjA1NC4uNDFlMTIxMWQgMTAwNjQ0Ci0tLS0gYmlu L3hicHMtcXVlcnkvc2VhcmNoLmMKLSsrKyBiaW4veGJwcy1xdWVyeS9zZWFyY2guYwotQEAgLTk0 LDExICs5NCwxMSBAQCBwcmludF9yZXN1bHRzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwLCBzdHJ1 Y3Qgc2VhcmNoX2RhdGEgKnNkKQotIH0KLSAKLSBzdGF0aWMgaW50Ci0tc2VhcmNoX2FycmF5X2Ni KHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rc2VhcmNoX2FycmF5X2NiKHN0cnVj dCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCXhicHNfb2JqZWN0X3Qgb2JqLAotLQkJY29u c3QgY2hhciAqa2V5IF91bnVzZWQsCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELAotIAkJdm9p ZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0g ewotIAl4YnBzX29iamVjdF90IG9iajI7Ci0gCXN0cnVjdCBzZWFyY2hfZGF0YSAqc2QgPSBhcmc7 Ci1AQCAtMjEwLDcgKzIxMCw3IEBAIHNlYXJjaF9hcnJheV9jYihzdHJ1Y3QgeGJwc19oYW5kbGUg KnhocCBfdW51c2VkLAotIH0KLSAKLSBzdGF0aWMgaW50Ci0tc2VhcmNoX3JlcG9fY2Ioc3RydWN0 IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rc2VhcmNo X3JlcG9fY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIFVO VVNFRCkKLSB7Ci0gCXhicHNfYXJyYXlfdCBhbGxrZXlzOwotIAlzdHJ1Y3Qgc2VhcmNoX2RhdGEg KnNkID0gYXJnOwotZGlmZiAtLWdpdCBiaW4veGJwcy1yZWNvbmZpZ3VyZS9tYWluLmMgYmluL3hi cHMtcmVjb25maWd1cmUvbWFpbi5jCi1pbmRleCA4MTQ5NTlhOC4uMTUwOGMzNzUgMTAwNjQ0Ci0t LS0gYmluL3hicHMtcmVjb25maWd1cmUvbWFpbi5jCi0rKysgYmluL3hicHMtcmVjb25maWd1cmUv bWFpbi5jCi1AQCAtNTIsNyArNTIsNyBAQCB1c2FnZShib29sIGZhaWwpCi0gfQotIAotIHN0YXRp YyBpbnQKLS1zdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2 b2lkICpjYmQgX3VudXNlZCkKLStzdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9k YXRhICp4c2NkLCB2b2lkICpjYmQgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0gZmFsc2U7Ci0g Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXJlbW92ZS9jbGVhbi1jYWNoZS5jIGJpbi94YnBzLXJlbW92 ZS9jbGVhbi1jYWNoZS5jCi1pbmRleCBkYWNjOWE1OS4uYjNlMDA2MjIgMTAwNjQ0Ci0tLS0gYmlu L3hicHMtcmVtb3ZlL2NsZWFuLWNhY2hlLmMKLSsrKyBiaW4veGJwcy1yZW1vdmUvY2xlYW4tY2Fj aGUuYwotQEAgLTM4LDggKzM4LDggQEAKLSAKLSBzdGF0aWMgaW50Ci0gY2xlYW5lcl9jYihzdHJ1 Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICpr ZXkgX3VudXNlZCwgdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJY29uc3Qg Y2hhciAqa2V5IFVOVVNFRCwgdm9pZCAqYXJnLAotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0gewot IAl4YnBzX2RpY3Rpb25hcnlfdCByZXBvX3BrZ2Q7Ci0gCWNvbnN0IGNoYXIgKmJpbnBrZywgKnJz aGEyNTY7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXJlbW92ZS9tYWluLmMgYmluL3hicHMtcmVtb3Zl L21haW4uYwotaW5kZXggMjU1NTRlOGMuLjgzOGU2MTBiIDEwMDY0NAotLS0tIGJpbi94YnBzLXJl bW92ZS9tYWluLmMKLSsrKyBiaW4veGJwcy1yZW1vdmUvbWFpbi5jCi1AQCAtNjQsNyArNjQsNyBA QCB1c2FnZShib29sIGZhaWwpCi0gfQotIAotIHN0YXRpYyBpbnQKLS1zdGF0ZV9jYl9ybShjb25z dCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lkICpjYmRhdGEgX3VudXNlZCkK LStzdGF0ZV9jYl9ybShjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lk ICpjYmRhdGEgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0gZmFsc2U7Ci0gCi1kaWZmIC0tZ2l0 IGJpbi94YnBzLXJpbmRleC9pbmRleC1jbGVhbi5jIGJpbi94YnBzLXJpbmRleC9pbmRleC1jbGVh bi5jCi1pbmRleCAzNjRkNTdlZC4uMjdjZWRkNmUgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcmluZGV4 L2luZGV4LWNsZWFuLmMKLSsrKyBiaW4veGJwcy1yaW5kZXgvaW5kZXgtY2xlYW4uYwotQEAgLTQ3 LDkgKzQ3LDkgQEAgc3RydWN0IENsZWFuZXJDYkluZm8gewotIHN0YXRpYyBpbnQKLSBpZHhfY2xl YW5lcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwKLSAJCXhicHNfb2JqZWN0X3Qgb2JqLAot LQkJY29uc3QgY2hhciAqa2V5IF91bnVzZWQsCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELAot IAkJdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVT RUQpCi0gewotIAlzdHJ1Y3QgQ2xlYW5lckNiSW5mbyAqaW5mbyA9IGFyZzsKLSAJY29uc3QgY2hh ciAqYXJjaCwgKnBrZ3ZlciwgKnNoYTI1NjsKLWRpZmYgLS1naXQgYmluL3hicHMtcmluZGV4L3Jl bW92ZS1vYnNvbGV0ZXMuYyBiaW4veGJwcy1yaW5kZXgvcmVtb3ZlLW9ic29sZXRlcy5jCi1pbmRl eCBmNDI2ZmU3Yy4uODBjZjJmZmYgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcmluZGV4L3JlbW92ZS1v YnNvbGV0ZXMuYwotKysrIGJpbi94YnBzLXJpbmRleC9yZW1vdmUtb2Jzb2xldGVzLmMKLUBAIC02 NSw3ICs2NSw3IEBAIHJlbW92ZV9wa2coY29uc3QgY2hhciAqcmVwb2RpciwgY29uc3QgY2hhciAq ZmlsZSkKLSB9Ci0gCi0gc3RhdGljIGludAotLWNsZWFuZXJfY2Ioc3RydWN0IHhicHNfaGFuZGxl ICp4aHAsIHhicHNfb2JqZWN0X3Qgb2JqLCBjb25zdCBjaGFyICprZXkgX3VudXNlZCwgdm9pZCAq YXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rY2xlYW5lcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUg KnhocCwgeGJwc19vYmplY3RfdCBvYmosIGNvbnN0IGNoYXIgKmtleSBVTlVTRUQsIHZvaWQgKmFy ZywgYm9vbCAqZG9uZSBVTlVTRUQpCi0gewotIAlzdHJ1Y3QgeGJwc19yZXBvICpyZXBvID0gKChz dHJ1Y3QgeGJwc19yZXBvICoqKWFyZylbMF0sICpzdGFnZSA9ICgoc3RydWN0IHhicHNfcmVwbyAq KilhcmcpWzFdOwotIAljb25zdCBjaGFyICpiaW5wa2c7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXVj aHJvb3QvbWFpbi5jIGJpbi94YnBzLXVjaHJvb3QvbWFpbi5jCi1pbmRleCAwZWUxMzI1My4uYzIz MmRlOGUgMTAwNjQ0Ci0tLS0gYmluL3hicHMtdWNocm9vdC9tYWluLmMKLSsrKyBiaW4veGJwcy11 Y2hyb290L21haW4uYwotQEAgLTEwOSw4ICsxMDksOCBAQCBkaWUoY29uc3QgY2hhciAqZm10LCAu Li4pCi0gfQotIAotIHN0YXRpYyBpbnQKLS1mdHdfY2IoY29uc3QgY2hhciAqZnBhdGgsIGNvbnN0 IHN0cnVjdCBzdGF0ICpzYiBfdW51c2VkLCBpbnQgdHlwZSwKLS0JCXN0cnVjdCBGVFcgKmZ0d2J1 ZiBfdW51c2VkKQotK2Z0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQg KnNiIFVOVVNFRCwgaW50IHR5cGUsCi0rCQlzdHJ1Y3QgRlRXICpmdHdidWYgVU5VU0VEKQotIHsK LSAJaW50IHN2ZXJybm8gPSAwOwotIAotZGlmZiAtLWdpdCBjb25maWd1cmUgY29uZmlndXJlCi1p bmRleCAzMmNjNTU2OS4uZWJlZjk5MGEgMTAwNzU1Ci0tLS0gY29uZmlndXJlCi0rKysgY29uZmln dXJlCi1AQCAtMTkyLDcgKzE5Miw3IEBAIGVjaG8gIkNQUEZMQUdTICs9CS1EWEJQU19TWVNDT05G X1BBVEg9XFxcIiR7RVRDRElSfVxcXCIiID4+JENPTkZJR19NSwotIGVjaG8gIkNQUEZMQUdTICs9 CS1EWEJQU19TWVNERUZDT05GX1BBVEg9XFxcIiR7U0hBUkVESVJ9L3hicHMuZFxcXCIiID4+JENP TkZJR19NSwotIGVjaG8gIkNQUEZMQUdTICs9CS1EWEJQU19WRVJTSU9OPVxcXCIke1ZFUlNJT059 XFxcIiIgPj4kQ09ORklHX01LCi0gZWNobyAiQ1BQRkxBR1MgKz0JLURYQlBTX01FVEFfUEFUSD1c XFwiJHtEQkRJUn1cXFwiIiA+PiRDT05GSUdfTUsKLS1lY2hvICJDUFBGTEFHUyArPQktRF91bnVz ZWQ9XCJfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSlcIiIgPj4kQ09ORklHX01LCi0rZWNobyAi Q1BQRkxBR1MgKz0JLURVTlVTRUQ9XCJfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSlcIiIgPj4k Q09ORklHX01LCi0gCi0gaWYgWyAtZCAuZ2l0IF07IHRoZW4KLSAJX2dpdHJldj0kKGdpdCByZXYt cGFyc2UgLS1zaG9ydCBIRUFEKQotZGlmZiAtLWdpdCBsaWIvcGFja2FnZV9vcnBoYW5zLmMgbGli L3BhY2thZ2Vfb3JwaGFucy5jCi1pbmRleCA0YTMxZmUxZC4uYjkwOGMwNDkgMTAwNjQ0Ci0tLS0g bGliL3BhY2thZ2Vfb3JwaGFucy5jCi0rKysgbGliL3BhY2thZ2Vfb3JwaGFucy5jCi1AQCAtNjAs NyArNjAsNyBAQAotICAqLwotIAotIHhicHNfYXJyYXlfdAotLXhicHNfZmluZF9wa2dfb3JwaGFu cyhzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJwc19hcnJheV90IG9ycGhhbnNfdXNlciBfdW51 c2VkKQotK3hicHNfZmluZF9wa2dfb3JwaGFucyhzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJw c19hcnJheV90IG9ycGhhbnNfdXNlciBVTlVTRUQpCi0gewotIAl4YnBzX2FycmF5X3QgcmRlcHMs IHJlcWJ5LCBhcnJheSA9IE5VTEw7Ci0gCXhicHNfZGljdGlvbmFyeV90IHBrZ2QsIGRlcHBrZ2Q7 Ci1kaWZmIC0tZ2l0IGxpYi9wbGlzdF9mZXRjaC5jIGxpYi9wbGlzdF9mZXRjaC5jCi1pbmRleCBh MTUzNTUxNS4uZmVkZDhjZTggMTAwNjQ0Ci0tLS0gbGliL3BsaXN0X2ZldGNoLmMKLSsrKyBsaWIv cGxpc3RfZmV0Y2guYwotQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IGZldGNoX2FyY2hpdmUgewot IH07Ci0gCi0gc3RhdGljIGludAotLWZldGNoX2FyY2hpdmVfb3BlbihzdHJ1Y3QgYXJjaGl2ZSAq YSBfdW51c2VkLCB2b2lkICpjbGllbnRfZGF0YSkKLStmZXRjaF9hcmNoaXZlX29wZW4oc3RydWN0 IGFyY2hpdmUgKmEgVU5VU0VELCB2b2lkICpjbGllbnRfZGF0YSkKLSB7Ci0gCXN0cnVjdCBmZXRj aF9hcmNoaXZlICpmID0gY2xpZW50X2RhdGE7Ci0gCi1AQCAtNTksNyArNTksNyBAQCBmZXRjaF9h cmNoaXZlX29wZW4oc3RydWN0IGFyY2hpdmUgKmEgX3VudXNlZCwgdm9pZCAqY2xpZW50X2RhdGEp Ci0gfQotIAotIHN0YXRpYyBzc2l6ZV90Ci0tZmV0Y2hfYXJjaGl2ZV9yZWFkKHN0cnVjdCBhcmNo aXZlICphIF91bnVzZWQsIHZvaWQgKmNsaWVudF9kYXRhLCBjb25zdCB2b2lkICoqYnVmKQotK2Zl dGNoX2FyY2hpdmVfcmVhZChzdHJ1Y3QgYXJjaGl2ZSAqYSBVTlVTRUQsIHZvaWQgKmNsaWVudF9k YXRhLCBjb25zdCB2b2lkICoqYnVmKQotIHsKLSAJc3RydWN0IGZldGNoX2FyY2hpdmUgKmYgPSBj bGllbnRfZGF0YTsKLSAKLUBAIC02OCw3ICs2OCw3IEBAIGZldGNoX2FyY2hpdmVfcmVhZChzdHJ1 Y3QgYXJjaGl2ZSAqYSBfdW51c2VkLCB2b2lkICpjbGllbnRfZGF0YSwgY29uc3Qgdm9pZCAqKmJ1 Ci0gfQotIAotIHN0YXRpYyBpbnQKLS1mZXRjaF9hcmNoaXZlX2Nsb3NlKHN0cnVjdCBhcmNoaXZl ICphIF91bnVzZWQsIHZvaWQgKmNsaWVudF9kYXRhKQotK2ZldGNoX2FyY2hpdmVfY2xvc2Uoc3Ry dWN0IGFyY2hpdmUgKmEgVU5VU0VELCB2b2lkICpjbGllbnRfZGF0YSkKLSB7Ci0gCXN0cnVjdCBm ZXRjaF9hcmNoaXZlICpmID0gY2xpZW50X2RhdGE7Ci0gCi1kaWZmIC0tZ2l0IGxpYi9ycG9vbC5j IGxpYi9ycG9vbC5jCi1pbmRleCA5YWNjMTE4MS4uOTRhZjcyOTggMTAwNjQ0Ci0tLS0gbGliL3Jw b29sLmMKLSsrKyBsaWIvcnBvb2wuYwotQEAgLTEyMCw3ICsxMjAsNyBAQCB4YnBzX3Jwb29sX2dl dF9yZXBvKGNvbnN0IGNoYXIgKnVybCkKLSB9Ci0gCi0gdm9pZAotLXhicHNfcnBvb2xfcmVsZWFz ZShzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkKQotK3hicHNfcnBvb2xfcmVsZWFzZShz dHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBVTlVTRUQpCi0gewotIAlzdHJ1Y3QgeGJwc19yZXBvICpy ZXBvOwotIAotQEAgLTE5NSw3ICsxOTUsNyBAQCBmaW5kX3BrZ19jYihzdHJ1Y3QgeGJwc19yZXBv ICpyZXBvLCB2b2lkICphcmcsIGJvb2wgKmRvbmUpCi0gfQotIAotIHN0YXRpYyBpbnQKLS1maW5k X3BrZ19yZXZkZXBzX2NiKHN0cnVjdCB4YnBzX3JlcG8gKnJlcG8sIHZvaWQgKmFyZywgYm9vbCAq ZG9uZSBfdW51c2VkKQotK2ZpbmRfcGtnX3JldmRlcHNfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVw bywgdm9pZCAqYXJnLCBib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCXN0cnVjdCBycG9vbF9mcGtn ICpycGYgPSBhcmc7Ci0gCXhicHNfYXJyYXlfdCByZXZkZXBzID0gTlVMTDsKLUBAIC0yMTYsNyAr MjE2LDcgQEAgZmluZF9wa2dfcmV2ZGVwc19jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lk ICphcmcsIGJvb2wgKmRvbmUgX3VudXNlZCkKLSB9Ci0gCi0gc3RhdGljIGludAotLWZpbmRfYmVz dF9wa2dfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIF91 bnVzZWQpCi0rZmluZF9iZXN0X3BrZ19jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICph cmcsIGJvb2wgKmRvbmUgVU5VU0VEKQotIHsKLSAJc3RydWN0IHJwb29sX2Zwa2cgKnJwZiA9IGFy ZzsKLSAJeGJwc19kaWN0aW9uYXJ5X3QgcGtnZDsKLWRpZmYgLS1naXQgbGliL3RyYW5zYWN0aW9u X2NvbmZsaWN0cy5jIGxpYi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotaW5kZXggMDk5NzVjZWUu LjM4Nzg5NWE0IDEwMDY0NAotLS0tIGxpYi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotKysrIGxp Yi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotQEAgLTE0OCw3ICsxNDgsNyBAQCBwa2dfY29uZmxp Y3RzX3RyYW5zKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwLCB4YnBzX2FycmF5X3QgYXJyYXksCi0g Ci0gc3RhdGljIGludAotIHBrZ2RiX2NvbmZsaWN0c19jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnho cCwgeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwgdm9pZCAq YXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELCB2b2lk ICphcmcsIGJvb2wgKmRvbmUgVU5VU0VEKQotIHsKLSAJeGJwc19hcnJheV90IHBrZ19jZmxpY3Rz LCB0cmFuc19jZmxpY3RzLCBwa2dzID0gYXJnOwotIAl4YnBzX2RpY3Rpb25hcnlfdCBwa2dkOwot LS0gCi0yLjE5LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXJvb3Rk aXItc2l6ZS5wYXRjaCBiL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1yb290ZGlyLXNpemUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3Y2E3YjI2NTg4Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9vdGRpci1zaXplLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLS0tIGxpYi9pbml0ZW5kLmMJMjAxOC0wNy0zMCAx Mzo0NzowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBsaWIvaW5pdGVuZC5jCTIwMTgtMDgtMDcgMDg6 Mjg6MjQuMjYxNjYyMzkxICswMjAwCi1AQCAtMzk4LDYgKzM5OCw3IEBACi0gewotIAlzdHJ1Y3Qg dXRzbmFtZSB1bjsKLSAJY2hhciBjd2RbUEFUSF9NQVgtMV0sIHN5c2NvbmZkaXJbWEJQU19NQVhQ QVRIK3NpemVvZihYQlBTX1NZU0RFRkNPTkZfUEFUSCldLCAqYnVmOwotKwljaGFyIHJlbHBhdGhb UEFUSF9NQVgrMStYQlBTX01BWFBBVEhdOwotIAljb25zdCBjaGFyICpyZXBvZGlyLCAqbmF0aXZl X2FyY2g7Ci0gCWludCBydjsKLSAKLUBAIC00MTIsOSArNDEzLDEzIEBACi0gCQl4aHAtPnJvb3Rk aXJbMF0gPSAnLyc7Ci0gCQl4aHAtPnJvb3RkaXJbMV0gPSAnXDAnOwotIAl9IGVsc2UgaWYgKHho cC0+cm9vdGRpclswXSAhPSAnLycpIHsKLSsJCXNpemVfdCBsZW47Ci0gCQlidWYgPSBzdHJkdXAo eGhwLT5yb290ZGlyKTsKLS0JCXNucHJpbnRmKHhocC0+cm9vdGRpciwgc2l6ZW9mKHhocC0+cm9v dGRpciksICIlcy8lcyIsIGN3ZCwgYnVmKTsKLSsJCWxlbiA9IHNucHJpbnRmKHJlbHBhdGgsIHNp emVvZihyZWxwYXRoKSwgIiVzLyVzIiwgY3dkLCBidWYpOwotIAkJZnJlZShidWYpOwotKwkJaWYg KGxlbiA+PSBYQlBTX01BWFBBVEgpCi0rCQkJcmV0dXJuIEVOT1RTVVA7Ci0rCQltZW1jcHkoeGhw LT5yb290ZGlyLCByZWxwYXRoLCBsZW4gKyAxKTsKLSAJfQotIAl4YnBzX2RiZ19wcmludGYoeGhw LCAiJXNcbiIsIFhCUFNfUkVMVkVSKTsKLSAJLyogc2V0IGNvbmZkaXIgKi8KZGlmZiAtLWdpdCBh L3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1zdHJuY2F0LWRhc2gucGF0Y2ggYi9zcmNwa2dzL3hi cHMvcGF0Y2hlcy9maXgtc3RybmNhdC1kYXNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhY2FiZjQxODY1ZC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNo ZXMvZml4LXN0cm5jYXQtZGFzaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK LS0tLSBiaW4veGJwcy1jaGVja3ZlcnMvbWFpbi5jCTIwMTgtMDctMzAgMTM6NDc6MDguMDAwMDAw MDAwICswMjAwCi0rKysgYmluL3hicHMtY2hlY2t2ZXJzL21haW4uYwkyMDE4LTA4LTA3IDA4OjQ3 OjAzLjA3MDcyMDEwOSArMDIwMAotQEAgLTU5OSw5ICs1OTksOSBAQAotIAllbHNlCi0gCQlyY3Yt PnBrZ2QgPSB4YnBzX3Jwb29sX2dldF9wa2coJnJjdi0+eGhwLCBzcmN2ZXIpOwotIAotLQlzcmN2 ZXIgPSBzdHJuY2F0KHNyY3ZlciwgIi0iLCAxKTsKLSsJc3JjdmVyID0gc3RybmNhdChzcmN2ZXIs ICItIiwgMik7Ci0gCXNyY3ZlciA9IHN0cm5jYXQoc3JjdmVyLCB2ZXJzaW9uLnYucywgdmVyc2lv bi52Lmxlbik7Ci0tCXNyY3ZlciA9IHN0cm5jYXQoc3JjdmVyLCAiXyIsIDEpOwotKwlzcmN2ZXIg PSBzdHJuY2F0KHNyY3ZlciwgIl8iLCAyKTsKLSAJc3JjdmVyID0gc3RybmNhdChzcmN2ZXIsIHJl dmlzaW9uLnYucywgcmV2aXNpb24udi5sZW4pOwotIAotIAl4YnBzX2RpY3Rpb25hcnlfZ2V0X2Nz dHJpbmdfbm9jb3B5KHJjdi0+cGtnZCwgInBrZ3ZlciIsICZyZXBvdmVyKTsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MveGJwcy90ZW1wbGF0ZSBiL3NyY3BrZ3MveGJwcy90ZW1wbGF0ZQppbmRleCAyM2M4 ZDkwMGM0YS4uYzQyYzFmYjM4NWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGJwcy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3hicHMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3hicHMnCiBwa2duYW1lPXhicHMKLXZlcnNpb249MC41MwotcmV2aXNpb249MTAK K3ZlcnNpb249MC41NAorcmV2aXNpb249MQorX2dpdHJldj0iZjE4Y2Y4N2UzYTU5YmVkMGViZWQ1 Y2NlZDY0NjljMTE3OTFkMzNlZCIKK3dya3NyYz0ieGJwcy0ke19naXRyZXZ9IgogYm9vdHN0cmFw PXllcwogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBzaG9ydF9kZXNjPSJUaGUgWEJQUyBwYWNrYWdl IHN5c3RlbSB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJKdWFuIFJQIDx4dHJhZW1lQHZvaWRsaW51 eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3hicHMiCiBs aWNlbnNlPSJCU0QtMi1DbGF1c2UiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3hicHMvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTM2MGIzMTQ5 MTQxZmVjNDZkZDZkYTkwMTk2MDViY2VlNDhlZTRkMjliZmZlNWFhNDdhOWZkNWZhNjhjY2Q1ZjQK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgveGJwcy9hcmNoaXZlLyR7 X2dpdHJldn0udGFyLmd6IgorY2hlY2tzdW09NTE3NTM3MGM0ODc1MmU0OGY2YmE2YTFkZWM3MjYw MWE3NTNkNjAzN2JlNDA3MzgxMDdmNTMzMWI3ODc2OGJlNQogCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWciCiBjaGVja2RlcGVuZHM9Imt5dWEiCkBAIC00OCw4ICs1MCw4IEBAIHBvc3RfaW5z dGFsbCgpIHsKIAkJCSR7REVTVERJUn0vdXNyL3NoYXJlL3hicHMuZC8wMC1yZXBvc2l0b3J5LW1h aW4uY29uZgogCQk7OwogCWVzYWMKLQl2bGljZW5zZSBDT1BZSU5HCi0JdmxpY2Vuc2UgQ09QWUlO Ry4zUkRQQVJUWQorCXZsaWNlbnNlIExJQ0VOU0UubWQKKwl2bGljZW5zZSBMSUNFTlNFLjNSRFBB UlRZCiB9CiAKIGxpYnhicHNfcGFja2FnZSgpIHsKCkZyb20gZjIwNmU1YjM4ODBmZDY1NGQzMTc0 ZGZiZDI2Nzc4MjQ3YmUxMjgxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBUaHUsIDEzIEp1biAyMDE5IDIzOjU3OjI3 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3LzhdIHhicHMtc3JjOiB1cGRhdGUgZm9yIHhicHMgMC41 NAoKLS0tCiB4YnBzLXNyYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hicHMtc3JjIGIveGJwcy1zcmMKaW5k ZXggNjVjNDVhZGE1NmQuLjI1ZTBlZmY4MjU0IDEwMDc1NQotLS0gYS94YnBzLXNyYworKysgYi94 YnBzLXNyYwpAQCAtNDE2LDcgKzQxNiw3IEBAIHNldHVwX2Rpc3RmaWxlc19taXJyb3IoKSB7CiAg ICAgZG9uZQogfQogCi1yZWFkb25seSBYQlBTX1ZFUlNJT05fUkVRPSIwLjQ2IgorcmVhZG9ubHkg WEJQU19WRVJTSU9OX1JFUT0iMC41NCIKIHJlYWRvbmx5IFhCUFNfVkVSU0lPTj0kKHhicHMtdWhl bHBlciAtVnxhd2sgJ3twcmludCAkMn0nKQogcmVhZG9ubHkgWEJQU19TUkNfVkVSU0lPTj0iMTEz IgogZXhwb3J0IFhCUFNfTUFDSElORT0kKHhicHMtdWhlbHBlciBhcmNoKQpAQCAtNTYxLDggKzU2 MSw4IEBAIGVsc2UKICAgICByZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9ORElS L3hicHMtc3JjL2xpYmV4ZWMKICAgICByZWFkb25seSBYQlBTX0JVSUxESEVMUEVSRElSPSRYQlBT X0NPTU1PTkRJUi9idWlsZC1oZWxwZXIKIGZpCi1yZWFkb25seSBYQlBTX0ZFVENIX0NNRD0ieGJw cy11aGVscGVyIGZldGNoIgotcmVhZG9ubHkgWEJQU19ESUdFU1RfQ01EPSJ4YnBzLXVoZWxwZXIg ZGlnZXN0IgorcmVhZG9ubHkgWEJQU19GRVRDSF9DTUQ9InhicHMtZmV0Y2giCityZWFkb25seSBY QlBTX0RJR0VTVF9DTUQ9InhicHMtZGlnZXN0IgogcmVhZG9ubHkgWEJQU19DTVBWRVJfQ01EPSJ4 YnBzLXVoZWxwZXIgY21wdmVyIgogCiByZWFkb25seSBYQlBTX1RBUkdFVD0iJDEiCgpGcm9tIDM1 Yzc0ODg1ZTM2NzdjZmY2ZTZiMTIzMWQ2MjM0NGY1MDI2YjNjY2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IER1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogRnJpLCAx NCBKdW4gMjAxOSAwMToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggOC84XSB4YnBzLXNyYzog dXNlIHhicHMtY2hlY2t2ZXJzIHRvIGZpbmQKIHtob3N0LGNoZWNrLG1ha2UsfWRlcGVuZHMKCi0t LQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoIHwgMjkxICsr KysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCAxODIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRf ZGVwZW5kZW5jaWVzLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5j aWVzLnNoCmluZGV4IDU1YThlZTYzNWNkLi44MzRmYzVhNjgyNyAxMDA2NDQKLS0tIGEvY29tbW9u L3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoCisrKyBiL2NvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaApAQCAtMSw3ICsxLDE0IEBACiAjIHZp bTogc2V0IHRzPTQgc3c9NCBldDoKICMKK3RlbXBsYXRlX3BrZ3ZlcnMoKSB7CisgICAgeGJwcy1j aGVja3ZlcnMgLUQgL3ZvaWQtcGFja2FnZXMgLXNtICIkQCIgfCBcCisgICAgICAgIHdoaWxlIHJl YWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZlcjsgZG8KKyAgICAgICAgICAgIGVjaG8g IiR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCisgICAgICAgIGRvbmUKK30KKwogc2V0dXBfcGtnX2Rl cGVuZHMoKSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgaiBfcGtnZGVwbmFtZSBfcGtnZGVwIF9ycGtn bmFtZSBfZGVwbmFtZSBfZGVwdmVyIF9yZXBsYWNlbWVudAorICAgIGxvY2FsIHBrZz0iJDEiIGog X3BrZ2RlcG5hbWUgX3BrZ2RlcCBfcnBrZ25hbWUgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZl ciBfcmVwbGFjZW1lbnQKIAogICAgIGlmIFsgLW4gIiRwa2ciIF07IHRoZW4KICAgICAgICAgIyBz dWJwa2cKQEAgLTMzLDcgKzQwLDggQEAgc2V0dXBfcGtnX2RlcGVuZHMoKSB7CiAgICAgICAgICAg ICBpZiBbIC16ICIke19wa2dkZXBuYW1lfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgIF9wa2dk ZXBuYW1lPSIke19yZXBsYWNlbWVudH0+PTAiCiAgICAgICAgICAgICBmaQotICAgICAgICAgICAg cnVuX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0/JHtfcGtnZGVwbmFtZX0iCisgICAgICAgICAgICAj IHJ1bl9kZXBlbmRzKz0iICR7X2RlcG5hbWV9PyR7X3BrZ2RlcG5hbWV9IgorICAgICAgICAgICAg cnVuX2RlcGVuZHMrPSIgJHtfcGtnZGVwbmFtZX0iCiAgICAgICAgICAgICAjZWNobyAiQWRkaW5n IGRlcGVuZGVuY3kgdmlydHVhbDogICR7X2RlcG5hbWV9PyR7X3BrZ2RlcG5hbWV9IgogICAgICAg ICBlbHNlCiAgICAgICAgICAgICBpZiBbIC16ICIke19wa2dkZXBuYW1lfSIgXTsgdGhlbgpAQCAt NDQsMjMgKzUyLDcgQEAgc2V0dXBfcGtnX2RlcGVuZHMoKSB7CiAgICAgICAgICAgICBydW5fZGVw ZW5kcys9IiAke19wa2dkZXB9IgogICAgICAgICBmaQogICAgIGRvbmUKLSAgICBmb3IgaiBpbiAk e2hvc3RtYWtlZGVwZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAg ICAgX2RlcHZlcj0kKHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwgZXhpdCAkPwot ICAgICAgICBob3N0X2J1aWxkX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAg ICBkb25lCi0gICAgaWYgWyAtbiAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgotICAgICAgICBm b3IgaiBpbiAke2NoZWNrZGVwZW5kc307IGRvCi0gICAgICAgICAgICBfZGVwbmFtZT0iJHtqJVw/ Kn0iCi0gICAgICAgICAgICBfZGVwdmVyPSQoc3JjcGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9 KSB8fCBleGl0ICQ/Ci0gICAgICAgICAgICBob3N0X2NoZWNrX2RlcGVuZHMrPSIgJHtfZGVwbmFt ZX0tJHtfZGVwdmVyfSIKLSAgICAgICAgZG9uZQotICAgIGZpCi0gICAgZm9yIGogaW4gJHttYWtl ZGVwZW5kc307IGRvCi0gICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAgICAgX2RlcHZl cj0kKHNyY3BrZ19nZXRfdmVyc2lvbiAke19kZXBuYW1lfSkgfHwgZXhpdCAkPwotICAgICAgICBi dWlsZF9kZXBlbmRzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCi0gICAgZG9uZQorCiB9CiAK ICMgSW5zdGFsbCBhIHJlcXVpcmVkIHBhY2thZ2UgZGVwZW5kZW5jeSwgbGlrZToKQEAgLTEwMiw2 ICs5NCw0MiBAQCBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zKCkgewogICAgIHJldHVybiAkcnZhbAog fQogCitpbnN0YWxsX3BrZ3NfZnJvbV9yZXBvcygpIHsKKyAgICBsb2NhbCBjcm9zcz0iJDEiIHJ2 YWw9IHRtcGxvZ2Y9CisgICAgc2hpZnQgMQorCisgICAgWyAkIyAtZXEgMCBdICYmIHJldHVybiAw CisKKyAgICBta2RpciAtcCAkWEJQU19TVEFURURJUgorICAgIHRtcGxvZ2Y9JHtYQlBTX1NUQVRF RElSfS94YnBzXyR7WEJQU19UQVJHRVRfTUFDSElORX1fYmRlcC5sb2cKKworICAgIGlmIFsgLW4g IiRjcm9zcyIgXTsgdGhlbgorICAgICAgICAkWEJQU19JTlNUQUxMX1hDTUQgLUF5ZCAiJEAiID4k dG1wbG9nZiAyPiYxCisgICAgZWxzZQorICAgICAgICAkWEJQU19JTlNUQUxMX0NNRCAtQXlkICIk QCIgPiR0bXBsb2dmIDI+JjEKKyAgICBmaQorICAgIHJ2YWw9JD8KKyAgICBpZiBbICRydmFsIC1u ZSAwIC1hICRydmFsIC1uZSAxNyBdOyB0aGVuCisgICAgICAgICMgeGJwcy1pbnN0YWxsIGNhbiBy ZXR1cm46CisgICAgICAgICMKKyAgICAgICAgIyBTVUNDRVNTICAoMCk6IHBhY2thZ2UgaW5zdGFs bGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgIyBFTk9FTlQgICAoMik6IHBhY2thZ2UgbWlzc2lu ZyBpbiByZXBvc2l0b3JpZXMuCisgICAgICAgICMgRU5YSU8gICAgKDYpOiBwYWNrYWdlIGRlcGVu ZHMgb24gaW52YWxpZCBkZXBlbmRlbmNpZXMuCisgICAgICAgICMgRUFHQUlOICAoMTEpOiBwYWNr YWdlIGNvbmZsaWN0cy4KKyAgICAgICAgIyBFRVhJU1QgICgxNyk6IHBhY2thZ2UgYWxyZWFkeSBp bnN0YWxsZWQuCisgICAgICAgICMgRU5PREVWICAoMTkpOiBwYWNrYWdlIGRlcGVuZHMgb24gbWlz c2luZyBkZXBlbmRlbmNpZXMuCisgICAgICAgICMgRU5PVFNVUCAoOTUpOiBubyByZXBvc2l0b3Jp ZXMgcmVnaXN0ZXJlZC4KKyAgICAgICAgIworICAgICAgICBbIC16ICIkWEJQU19LRUVQX0FMTCIg XSAmJiByZW1vdmVfcGtnX2F1dG9kZXBzCisgICAgICAgICMgbXNnX3JlZCAiJHBrZ3ZlcjogZmFp bGVkIHRvIGluc3RhbGwgJyQxJyBkZXBlbmRlbmN5ISAoZXJyb3IgJHJ2YWwpXG4iCisgICAgICAg IGNhdCAkdG1wbG9nZgorICAgICAgICBtc2dfZXJyb3IgIlBsZWFzZSBzZWUgYWJvdmUgZm9yIHRo ZSByZWFsIGVycm9yLCBleGl0aW5nLi4uXG4iCisgICAgZmkKKyAgICBbICRydmFsIC1lcSAxNyBd ICYmIHJ2YWw9MAorICAgIHJldHVybiAkcnZhbAorfQorCisKICMKICMgUmV0dXJucyAwIGlmIHBr Z3BhdHRlcm4gaW4gJDEgaXMgbWF0Y2hlZCBhZ2FpbnN0IGN1cnJlbnQgaW5zdGFsbGVkCiAjIHBh Y2thZ2UsIDEgaWYgbm8gbWF0Y2ggYW5kIDIgaWYgbm90IGluc3RhbGxlZC4KQEAgLTE5Nyw2ICsy MjUsNyBAQCBpbnN0YWxsX3BrZ19kZXBzKCkgewogCiAgICAgc2V0dXBfcGtnX2RlcGVuZHMKIAor ICAgIAogICAgIFsgLW4gIiRidWlsZF9zdHlsZSIgXSAmJiBzdHlsZT0iIFskYnVpbGRfc3R5bGVd IgogCiAgICAgZm9yIHMgaW4gJGJ1aWxkX2hlbHBlcjsgZG8KQEAgLTIwOSwxODkgKzIzOCw4NCBA QCBpbnN0YWxsX3BrZ19kZXBzKCkgewogICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBidWls ZGluZyR7c3R5bGV9IC4uLlxuIgogICAgIGZpCiAKLSAgICBpZiBbIC16ICIkYnVpbGRfZGVwZW5k cyIgLWEgLXogIiRob3N0X2J1aWxkX2RlcGVuZHMiIC1hIC16ICIkaG9zdF9jaGVja19kZXBlbmRz IiAtYSAteiAiJHJ1bl9kZXBlbmRzIiBdOyB0aGVuCi0gICAgICAgIHJldHVybiAwCi0gICAgZmkK LQogICAgICMKICAgICAjIEhvc3QgYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKLSAgICBmb3Ig aSBpbiAke2hvc3RfYnVpbGRfZGVwZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSQoJFhCUFNf VUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAiJGkiIDI+L2Rldi9udWxsKQotICAgICAgICBjaGVja19w a2dkZXBfbWF0Y2hlZCAiJGkiIHZlcnNpb24KLSAgICAgICAgbG9jYWwgcnZhbD0kPwotICAgICAg ICBpZiBbICRydmFsIC1lcSAwIF07IHRoZW4KLSAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAk e2l9OiBpbnN0YWxsZWQuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRy dmFsIC1lcSAxIF07IHRoZW4KLSAgICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX0NNRCB2 ZXJzaW9uICR7X3JlYWxwa2d9KQotICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2 ZXIiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogaW5zdGFs bGVkICRpdmVyICh2aXJ0dWFscGtnKS4iCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogdW5yZXNv bHZlZCBidWlsZCBkZXBlbmRlbmN5ISIKLSAgICAgICAgICAgICAgICByZXR1cm4gMQotICAgICAg ICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVwbz0kKCRYQlBTX1FVRVJZX0NN RCAtUiAtcHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgICAgIGlmIFsgLW4g IiR7cmVwb30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTog Zm91bmQgKCRyZXBvKSIKLSAgICAgICAgICAgICAgICBob3N0X2JpbnBrZ19kZXBzKz0oIiR7aX0i KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgaWYgWyAtbiAiJHtob3N0ZGVwZW5kc30i IF07IHRoZW4KKyAgICAgICAgbG9jYWwgLWEgX2hvc3RkZXBlbmRzCisgICAgICAgIGZvciBpIGlu ICR7aG9zdGRlcGVuZHN9OyBkbworICAgICAgICAgICAgX2hvc3RkZXBlbmRzKz0oIiRpIikKKyAg ICAgICAgZG9uZQorICAgICAgICBpPTAKKyAgICAgICAgd2hpbGUgcmVhZCAtciBfZGVwbmFtZSBf ZGVwcmVwb3ZlciBfZGVwdmVyOyBkbworICAgICAgICAgICAgX2RlcG5hbWU9JHtfaG9zdGRlcGVu ZHNbJCgoIGkrKyApKV19CisgICAgICAgICAgICBpZiBbICIkX2RlcHZlciIgIT0gIiRfZGVwcmVw b3ZlciIgXTsgdGhlbgorICAgICAgICAgICAgICAgIGhvc3RfbWlzc2luZ19kZXBzKz0oIiR7X2Rl cG5hbWV9LSR7X2RlcHZlcn0iKQogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVj aG8gIiAgIFtob3N0XSAke2l9OiBub3QgZm91bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgLXog IiRjcm9zcyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBpZiBbICIke19yZWFscGtnfSIg PSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgbXNnX2Vycm9y ICIke3BrZ306IFtob3N0XSBidWlsZCBsb29wIGRldGVjdGVkOiAke19yZWFscGtnfSA8LT4gJHt0 YXJnZXRwa2d9IFtkZXBlbmRzIG9uIGl0c2VsZl1cbiIKLSAgICAgICAgICAgICAgICAgICAgZWxp ZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICAg ICAgbXNnX2Vycm9yICIke3BrZ306IFtob3N0XSBidWlsZCBsb29wIGRldGVjdGVkOiAkcGtnIDwt PiAke19yZWFscGtnfVxuIgotICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAg IGZpCisgICAgICAgICAgICAgICAgaG9zdF9iaW5wa2dfZGVwcys9IiAke19kZXBuYW1lfS0ke19k ZXB2ZXJ9IgogICAgICAgICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgaG9zdF9taXNzaW5n X2RlcHMrPSgiJHtpfSIpCi0gICAgZG9uZQorICAgICAgICAgICAgaG9zdF9idWlsZF9kZXBlbmRz Kz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCisgICAgICAgIGRvbmUgPCA8KHhicHMtY2hlY2t2 ZXJzIC1EIC92b2lkLXBhY2thZ2VzIC1zbSAkKHByaW50ZiAic3JjcGtncy8lcy90ZW1wbGF0ZVxu IiAke2hvc3RtYWtlZGVwZW5kc30pKQorICAgIGZpCiAKICAgICAjCiAgICAgIyBIb3N0IGNoZWNr IGRlcGVuZGVuY2llcy4KICAgICAjCi0gICAgZm9yIGkgaW4gJHtob3N0X2NoZWNrX2RlcGVuZHN9 OyBkbwotICAgICAgICBfcmVhbHBrZz0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICRp IDI+L2Rldi9udWxsKSIKLSAgICAgICAgY2hlY2tfcGtnZGVwX21hdGNoZWQgIiRpIiB2ZXJzaW9u Ci0gICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYgWyAkcnZhbCAtZXEgMCBdOyB0aGVu Ci0gICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IGluc3RhbGxlZC4iCi0gICAgICAg ICAgICBjb250aW51ZQotICAgICAgICBlbGlmIFsgJHJ2YWwgLWVxIDEgXTsgdGhlbgotICAgICAg ICAgICAgaXZlcj0kKCRYQlBTX1VIRUxQRVJfQ01EIHZlcnNpb24gJHtfcmVhbHBrZ30pCi0gICAg ICAgICAgICBpZiBbICQ/IC1lcSAwIC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAgICAgICAg ICAgIGVjaG8gIiAgIFtjaGVja10gJHtpfTogaW5zdGFsbGVkICRpdmVyICh2aXJ0dWFscGtnKS4i Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IHVucmVzb2x2ZWQgY2hlY2sgZGVwZW5kZW5jeSEi Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgICAgIGZpCi0gICAgICAgIGVsc2UK LSAgICAgICAgICAgIHJlcG89JCgkWEJQU19RVUVSWV9DTUQgLVIgLXByZXBvc2l0b3J5ICR7aX0g Mj4vZGV2L251bGwpCi0gICAgICAgICAgICBpZiBbIC1uICIke3JlcG99IiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBmb3VuZCAoJHJlcG8pIgotICAgICAg ICAgICAgICAgIGNoZWNrX2JpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAgICAgICAgICAgIGNv bnRpbnVlCisgICAgaWYgWyAtbiAiJFhCUFNfQ0hFQ0tfUEtHUyIgLWEgLW4gIiR7Y2hlY2tkZXBl bmRzfSIgXTsgdGhlbgorICAgICAgICBsb2NhbCAtYSBfY2hlY2tkZXBlbmRzCisgICAgICAgIGZv ciBpIGluICR7Y2hlY2tkZXBlbmRzfTsgZG8KKyAgICAgICAgICAgIF9jaGVja2RlcGVuZHMrPSgi JGkiKQorICAgICAgICBkb25lCisgICAgICAgIGk9MAorICAgICAgICB3aGlsZSByZWFkIC1yIF9k ZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXI7IGRvCisgICAgICAgICAgICBfZGVwbmFtZT0ke19j aGVja2RlcGVuZHNbJCgoIGkrKyApKV19CisgICAgICAgICAgICBpZiBbICIkX2RlcHZlciIgIT0g IiRfZGVwcmVwb3ZlciIgXTsgdGhlbgorICAgICAgICAgICAgICAgIGhvc3RfbWlzc2luZ19kZXBz Kz0oIiR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iKQogICAgICAgICAgICAgZWxzZQotICAgICAgICAg ICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtpfTogbm90IGZvdW5kLiIKLSAgICAgICAgICAgICAg ICBpZiBbICIke19yZWFscGtnfSIgPSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAg ICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2NoZWNrXSBidWlsZCBsb29wIGRldGVjdGVkOiAk e19yZWFscGtnfSA8LT4gJHt0YXJnZXRwa2d9IFtkZXBlbmRzIG9uIGl0c2VsZl0hXG4iCi0gICAg ICAgICAgICAgICAgZWxpZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhlbgotICAgICAg ICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2NoZWNrXSBidWlsZCBsb29wIGRldGVj dGVkOiAkcGtnIDwtPiAke19yZWFscGtnfVxuIgotICAgICAgICAgICAgICAgIGZpCisgICAgICAg ICAgICAgICAgaG9zdF9iaW5wa2dfZGVwcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgogICAg ICAgICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgY2hlY2tfbWlzc2luZ19kZXBzKz0oIiR7 aX0iKQotICAgIGRvbmUKLQorICAgICAgICAgICAgaG9zdF9jaGVja19kZXBlbmRzKz0iICR7X2Rl cG5hbWV9LSR7X2RlcHZlcn0iCisgICAgICAgIGRvbmUgPCA8KHhicHMtY2hlY2t2ZXJzIC1EIC92 b2lkLXBhY2thZ2VzIC1zbSAkKHByaW50ZiAic3JjcGtncy8lcy90ZW1wbGF0ZVxuIiAke2hvc3Rj aGVja2RlcGVuZHN9KSkKKyAgICBmaQogCiAgICAgIwogICAgICMgVGFyZ2V0IGJ1aWxkIGRlcGVu ZGVuY2llcy4KICAgICAjCi0gICAgZm9yIGkgaW4gJHtidWlsZF9kZXBlbmRzfTsgZG8KLSAgICAg ICAgX3JlYWxwa2c9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAkaSAyPi9kZXYvbnVs bCkiCi0gICAgICAgICMgQ2hlY2sgaWYgZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMs IGlnbm9yZSBpdC4KLSAgICAgICAgdW5zZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJw YWNrYWdlc307IGRvCi0gICAgICAgICAgICBbICIkaiIgPSAiJHtfcmVhbHBrZ30iIF0gJiYgZm91 bmQ9MSAmJiBicmVhaworICAgIGlmIFsgLW4gIiR7bWFrZWRlcGVuZHN9IiBdOyB0aGVuCisgICAg ICAgIGxvY2FsIC1hIF9tYWtlZGVwZW5kcworICAgICAgICBmb3IgaSBpbiAke21ha2VkZXBlbmRz fTsgZG8KKyAgICAgICAgICAgIF9tYWtlZGVwZW5kcys9KCIkaSIpCiAgICAgICAgIGRvbmUKLSAg ICAgICAgWyAtbiAiJGZvdW5kIiBdICYmIGNvbnRpbnVlCi0gICAgICAgIGNoZWNrX3BrZ2RlcF9t YXRjaGVkICIke2l9IiB2ZXJzaW9uICRjcm9zcwotICAgICAgICBsb2NhbCBydmFsPSQ/Ci0gICAg ICAgIGlmIFsgJHJ2YWwgLWVxIDAgXTsgdGhlbgotICAgICAgICAgICAgZWNobyAiICAgW3Rhcmdl dF0gJHtpfTogaW5zdGFsbGVkLiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGVsaWYg WyAkcnZhbCAtZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICBpdmVyPSQoJFhCUFNfVUhFTFBFUl9Y Q01EIHZlcnNpb24gJHtfcmVhbHBrZ30pCi0gICAgICAgICAgICBpZiBbICQ/IC1lcSAwIC1hIC1u ICIkaXZlciIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7aX06 IGluc3RhbGxlZCAkaXZlciAodmlydHVhbHBrZykuIgotICAgICAgICAgICAgICAgIGNvbnRpbnVl CisgICAgICAgIGk9MAorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBvdmVy IF9kZXB2ZXI7IGRvCisgICAgICAgICAgICBfZGVwbmFtZT0ke19tYWtlZGVwZW5kc1skKCggaSsr ICkpXX0KKyAgICAgICAgICAgIGlmIFsgIiRfZGVwdmVyIiAhPSAiJF9kZXByZXBvdmVyIiBdOyB0 aGVuCisgICAgICAgICAgICAgICAgbWlzc2luZ19kZXBzKz0oIiR7X2RlcG5hbWV9LSR7X2RlcHZl cn0iKQogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRd ICR7aX06IHVucmVzb2x2ZWQgYnVpbGQgZGVwZW5kZW5jeSEiCi0gICAgICAgICAgICAgICAgcmV0 dXJuIDEKKyAgICAgICAgICAgICAgICBiaW5wa2dfZGVwcys9IiAke19kZXBuYW1lfS0ke19kZXB2 ZXJ9IgogICAgICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVwbz0kKCRY QlBTX1FVRVJZX1hDTUQgLVIgLXByZXBvc2l0b3J5ICR7aX0gMj4vZGV2L251bGwpCi0gICAgICAg ICAgICBpZiBbIC1uICIke3JlcG99IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZWNobyAiICAg W3RhcmdldF0gJHtpfTogZm91bmQgKCRyZXBvKSIKLSAgICAgICAgICAgICAgICBiaW5wa2dfZGVw cys9KCIke2l9IikKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7aX06IG5vdCBmb3VuZC4iCi0gICAg ICAgICAgICAgICAgaWYgWyAiJHtfcmVhbHBrZ30iID0gIiR0YXJnZXRwa2ciIF07IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFt0YXJnZXRdIGJ1aWxkIGxvb3Ag ZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxm XVxuIgotICAgICAgICAgICAgICAgIGVsaWYgWyAiJHtfcmVhbHBrZ30iID0gIiRwa2ciIF07IHRo ZW4KLSAgICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFt0YXJnZXRdIGJ1aWxk IGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCi0gICAgICAgICAgICAgICAg ZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgIG1pc3NpbmdfZGVwcys9KCIk e2l9IikKLSAgICBkb25lCisgICAgICAgICAgICBidWlsZF9kZXBlbmRzKz0iICR7X2RlcG5hbWV9 LSR7X2RlcHZlcn0iCisgICAgICAgIGRvbmUgPCA8KHhicHMtY2hlY2t2ZXJzIC1EIC92b2lkLXBh Y2thZ2VzIC1zbSAkKHByaW50ZiAic3JjcGtncy8lcy90ZW1wbGF0ZVxuIiAke21ha2VkZXBlbmRz fSkpCisgICAgZmkKKwogCiAgICAgIwogICAgICMgVGFyZ2V0IHJ1biB0aW1lIGRlcGVuZGVuY2ll cwogICAgICMKLSAgICBmb3IgaSBpbiAke3J1bl9kZXBlbmRzfTsgZG8KLSAgICAgICAgX3JlYWxw a2c9IiR7aSVcPyp9IgotICAgICAgICBfY3VycGtnPSIke19yZWFscGtnfSIKLSAgICAgICAgX3Zw a2c9IiR7aSMqXD99IgotICAgICAgICBpZiBbICIke19yZWFscGtnfSIgIT0gIiR7X3Zwa2d9IiBd OyB0aGVuCi0gICAgICAgICAgICBfcmVhbHBrZz0iJHtfdnBrZ30iCi0gICAgICAgIGVsc2UKLSAg ICAgICAgICAgIHVuc2V0IF9jdXJwa2cKLSAgICAgICAgZmkKLSAgICAgICAgcGtnbj0kKCRYQlBT X1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgIiR7X3JlYWxwa2d9IikKLSAgICAgICAgaWYgWyAt eiAiJHBrZ24iIF07IHRoZW4KLSAgICAgICAgICAgIHBrZ249JCgkWEJQU19VSEVMUEVSX0NNRCBn ZXRwa2duYW1lICIke19yZWFscGtnfSIpCi0gICAgICAgICAgICBpZiBbIC16ICIkcGtnbiIgXTsg dGhlbgotICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHBrZ3ZlcjogaW52YWxpZCBydW50aW1l IGRlcGVuZGVuY3k6ICR7X3JlYWxwa2d9XG4iCi0gICAgICAgICAgICBmaQotICAgICAgICBmaQot ICAgICAgICAjIENoZWNrIGlmIGRlcGVuZGVuY3kgaXMgYSBzdWJwa2csIGlmIGl0IGlzLCBpZ25v cmUgaXQuCi0gICAgICAgIHVuc2V0IGZvdW5kCi0gICAgICAgIGZvciBqIGluICR7c3VicGFja2Fn ZXN9OyBkbwotICAgICAgICAgICAgWyAiJGoiID0gIiR7cGtnbn0iIF0gJiYgZm91bmQ9MSAmJiBi cmVhaworICAgIGlmIFsgLW4gIiR7ZGVwZW5kc30iIF07IHRoZW4KKyAgICAgICAgbG9jYWwgLWEg X2RlcGVuZHMKKyAgICAgICAgZm9yIGkgaW4gJHtkZXBlbmRzfTsgZG8KKyAgICAgICAgICAgIF9k ZXBlbmRzKz0oIiRpIikKICAgICAgICAgZG9uZQotICAgICAgICBbIC1uICIkZm91bmQiIF0gJiYg Y29udGludWUKLSAgICAgICAgX3Byb3BzPSQoJFhCUFNfUVVFUllfWENNRCAtUiAtcHBrZ3Zlcixy ZXBvc2l0b3J5ICR7X3JlYWxwa2d9IDI+L2Rldi9udWxsKQotICAgICAgICBpZiBbIC1uICIke19w cm9wc30iIF07IHRoZW4KLSAgICAgICAgICAgIHNldCAtLSAke19wcm9wc30KLSAgICAgICAgICAg ICRYQlBTX1VIRUxQRVJfQ01EIHBrZ21hdGNoICR7MX0gIiR7X3JlYWxwa2d9IgotICAgICAgICAg ICAgaWYgWyAkPyAtZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICAgICAgaWYgWyAtbiAiJHtfY3Vy cGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtf Y3VycGtnfToke19yZWFscGtnfSAodmlydHVhbCBkZXBlbmRlbmN5KTogZm91bmQgJDEgKCQyKSIK LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50 aW1lXSAke19yZWFscGtnfTogZm91bmQgJDEgKCQyKSIKLSAgICAgICAgICAgICAgICBmaQotICAg ICAgICAgICAgICAgIHNoaWZ0IDIKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg ICAgZWxzZQotICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306JHtfcmVhbHBr Z30gKHZpcnR1YWwgZGVwZW5kZW5jeSk6IG5vdCBmb3VuZC4iCi0gICAgICAgICAgICAgICAgZWxz ZQotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306IG5v dCBmb3VuZC4iCi0gICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAg ICBzaGlmdCAyCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30i IF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfTok e19yZWFscGtnfSAodmlydHVhbCBkZXBlbmRlbmN5KTogbm90IGZvdW5kLiIKLSAgICAgICAgICAg IGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306IG5v dCBmb3VuZC4iCisgICAgICAgIGk9MAorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9k ZXByZXBvdmVyIF9kZXB2ZXI7IGRvCisgICAgICAgICAgICBfZGVwbmFtZT0ke19kZXBlbmRzWyQo KCBpKysgKSldfQorICAgICAgICAgICAgaWYgWyAiJF9kZXB2ZXIiICE9ICIkX2RlcHJlcG92ZXIi IF07IHRoZW4KKyAgICAgICAgICAgICAgICBtaXNzaW5nX2RlcHMrPSgiJHtfZGVwbmFtZX0tJHtf ZGVwdmVyfSIpCiAgICAgICAgICAgICBmaQotICAgICAgICBmaQotICAgICAgICBpZiBbICIke19y ZWFscGtnfSIgPSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgbXNnX2Vycm9yICIk e3BrZ306IFtydW5dIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3Rhcmdl dHBrZ30gW2RlcGVuZHMgb24gaXRzZWxmXVxuIgotICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9 IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3J1bl0g YnVpbGQgbG9vcCBkZXRlY3RlZDogJHBrZyA8LT4gJHtfcmVhbHBrZ31cbiIKLSAgICAgICAgZmkK LSAgICAgICAgbWlzc2luZ19yZGVwcys9KCIke19yZWFscGtnfSIpCi0gICAgZG9uZQorICAgICAg ICAgICAgYnVpbGRfZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgorICAgICAgICBk b25lIDwgPCh4YnBzLWNoZWNrdmVycyAtRCAvdm9pZC1wYWNrYWdlcyAtc20gJChwcmludGYgInNy Y3BrZ3MvJXMvdGVtcGxhdGVcbiIgJHtydW5fZGVwZW5kc30pKQorICAgIGZpCiAKICAgICBpZiBb IC1uICIkWEJQU19CVUlMRF9PTkxZX09ORV9QS0ciIF07IHRoZW4KICAgICAgICAgICAgZm9yIGkg aW4gJHtob3N0X21pc3NpbmdfZGVwc1tAXX07IGRvCkBAIC00MDgsNiArMzMyLDEwIEBAIGluc3Rh bGxfcGtnX2RlcHMoKSB7CiAgICAgICAgICAgIGRvbmUKICAgICBmaQogCisgICAgaWYgWyAteiAi JGJ1aWxkX2RlcGVuZHMiIC1hIC16ICIkaG9zdF9idWlsZF9kZXBlbmRzIiAtYSAteiAiJGhvc3Rf Y2hlY2tfZGVwZW5kcyIgLWEgLXogIiRydW5fZGVwZW5kcyIgXTsgdGhlbgorICAgICAgICByZXR1 cm4gMAorICAgIGZpCisKICAgICAjIE1pc3NpbmcgaG9zdCBkZXBlbmRlbmNpZXMsIGJ1aWxkIGZy b20gc3JjcGtncy4KICAgICBmb3IgaSBpbiAke2hvc3RfbWlzc2luZ19kZXBzW0BdfTsgZG8KICAg ICAgICAgIyBwYWNrYWdlcyBub3QgZm91bmQgaW4gcmVwb3MsIGluc3RhbGwgZnJvbSBzb3VyY2Uu CkBAIC00NjgsMTYgKzM5NiwxNSBAQCBpbnN0YWxsX3BrZ19kZXBzKCkgewogCiAgICAgZm9yIGkg aW4gJHtob3N0X2JpbnBrZ19kZXBzW0BdfTsgZG8KICAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3Zl cjogaW5zdGFsbGluZyBob3N0IGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5zdGFs bF9wa2dfZnJvbV9yZXBvcyAiJHtpfSIKICAgICBkb25lCi0KICAgICBmb3IgaSBpbiAke2NoZWNr X2JpbnBrZ19kZXBzW0BdfTsgZG8KICAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogaW5zdGFs bGluZyBjaGVjayBkZXBlbmRlbmN5ICckaScgLi4uXG4iCi0gICAgICAgIGluc3RhbGxfcGtnX2Zy b21fcmVwb3MgIiR7aX0iCiAgICAgZG9uZQorICAgIGluc3RhbGxfcGtnc19mcm9tX3JlcG9zICIi ICR7aG9zdF9iaW5wa2dfZGVwc1tAXX0gJHtjaGVja19iaW5wa2dfZGVwc1tAXX0KKwogCiAgICAg Zm9yIGkgaW4gJHtiaW5wa2dfZGVwc1tAXX07IGRvCiAgICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2 ZXI6IGluc3RhbGxpbmcgdGFyZ2V0IGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5z dGFsbF9wa2dfZnJvbV9yZXBvcyAiJGkiICRjcm9zcwogICAgIGRvbmUKKyAgICBpbnN0YWxsX3Br Z3NfZnJvbV9yZXBvcyAiJGNyb3NzIiAke2JpbnBrZ19kZXBzW0BdfQogfQo= --===============3033408069044281872==--