Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1lC0-00DUee-8N for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 10:26:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r1lBy-00792Y-Oh for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 10:26:18 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1lBx-00792P-GC for pgsql-hackers@lists.postgresql.org; Sat, 11 Nov 2023 10:26:18 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1lBo-0052sK-LT for pgsql-hackers@lists.postgresql.org; Sat, 11 Nov 2023 10:26:16 +0000 Received: from [192.168.1.120] (unknown [46.164.237.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: d.koval@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 0E853E20FEF for ; Sat, 11 Nov 2023 13:26:05 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1699698365; bh=pQpFINw09OJwMtR0gMMawpaFeKQZHTyBiYbL7Or7y2w=; h=Message-ID:Date:User-Agent:Subject:To:References:From:In-Reply-To: From; b=scBTTQZNj9ssuTK/TR04I2u+fkcL6/eGdyHsCVSyxJN7kiyAtMNJngb72YTC56Vjn BdrhyXyu9f1mHHtqhT+gJ1mp9pmJ53lmU9YzUW3PlStq/XrMtj/ORhXFhkzUShfOoE RpLiOnBCuPRgzdU/ixMVmI8sRVh27Shwosn9mXrGnlokzIYoHawY6TjWwX9TAY2UpX BJF3L0acwlenYVAWHTjj11xdm6YdeZTeTuVId1AnxLw/INnV0um8Y1TXBhSV4N3XGv Oex0/B1o2SPu9Or8icJSmBVtAUovFR1abKmFxsjRTnKeyp8Y0yUj6x2+ND8jTaQ8RK odst3zyCkepVw== Content-Type: multipart/mixed; boundary="------------Ab0P5aQdWo0YkyKG3aU00GwI" Message-ID: <0ce01509-0e45-4b8e-b229-b9003e7c29ef@postgrespro.ru> Date: Sat, 11 Nov 2023 13:26:03 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: pgsql-hackers@lists.postgresql.org References: <496ef6b0-4923-0dcc-1fa7-bec51829a9f3@postgrespro.ru> <168985419302.1131.15826271058071638302.pgcf@coridan.postgresql.org> Content-Language: en-US From: Dmitry Koval In-Reply-To: <168985419302.1131.15826271058071638302.pgcf@coridan.postgresql.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Ab0P5aQdWo0YkyKG3aU00GwI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Rebased version attached to email. -- With best regards, Dmitry Koval Postgres Professional: http://postgrespro.com --------------Ab0P5aQdWo0YkyKG3aU00GwI Content-Type: text/plain; charset=UTF-8; name="v20-0001-ALTER-TABLE-MERGE-PARTITIONS-command.patch" Content-Disposition: attachment; filename="v20-0001-ALTER-TABLE-MERGE-PARTITIONS-command.patch" Content-Transfer-Encoding: base64 RnJvbSBkYWIwYzU5N2U4YWJkYjQzZDdkMmM0MDQyODRjY2ZjZDk2YjJlNDQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IE1vbiwgMTkgU2VwIDIwMjIgMTY6MDY6MDMgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyMCAxLzNdIEFMVEVSIFRBQkxFIE1FUkdFIFBBUlRJVElPTlMgY29tbWFuZAoK LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAz NTEgKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAg ICAgICAgfCAgMjIgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAg ICAgICAgICB8ICA4OSArKysKIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRz LmMgICAgICAgICB8IDIwNyArKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFy dGJvdW5kcy5oICAgICAgICAgfCAgIDYgKwogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9wYXJ0 aXRpb24tbWVyZ2Uub3V0ICAgIHwgMTk5ICsrKysrCiBzcmMvdGVzdC9pc29sYXRpb24vaXNv bGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3BhcnRpdGlvbi1tZXJnZS5zcGVjIHwgIDU0ICsrCiAuLi4vdGVzdF9kZGxfZGVwYXJz ZS90ZXN0X2RkbF9kZXBhcnNlLmMgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IHwgNzM2ICsrKysrKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsICAgICAgfCA0MzQg KysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAg ICAgICB8ICAgMSArCiAxNSBmaWxlcyBjaGFuZ2VkLCAyMTAwIGluc2VydGlvbnMoKyksIDE5 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9wYXJ0aXRpb24tbWVyZ2Uub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRpdGlvbi1tZXJnZS5zcGVjCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdl LnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZTQ1NmNjZDc2Ny4uZjAy YjhhOWRiZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTY1MCw2ICs2NTAs OCBAQCBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNrTm9Gb3JlaWduS2V5UmVmcyhSZWxhdGlv biBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlQ29tcHJlc3Npb24oT2lk IGF0dHR5cGlkLCBjb25zdCBjaGFyICpjb21wcmVzc2lvbik7CiBzdGF0aWMgY2hhciBHZXRB dHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqc3RvcmFnZW1vZGUp OwogCitzdGF0aWMgdm9pZCBBVEV4ZWNNZXJnZVBhcnRpdGlvbnMoTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCSAgUGFydGl0 aW9uQ21kICpjbWQsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiAKIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAqCQlEZWZpbmVSZWxhdGlvbgpAQCAtNDY3OSw2ICs0NjgxLDEwIEBA IEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoTGlzdCAqY21kcykKIAkJCQljbWRfbG9ja21vZGUg PSBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2s7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRf TWVyZ2VQYXJ0aXRpb25zOgorCQkJCWNtZF9sb2NrbW9kZSA9IEFjY2Vzc0V4Y2x1c2l2ZUxv Y2s7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CQkJLyogb29wcyAqLwogCQkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgYWx0ZXIgdGFibGUgdHlwZTogJWQiLAogCQkJCQkgKGlu dCkgY21kLT5zdWJ0eXBlKTsKQEAgLTUwOTMsNiArNTA5OSwxMSBAQCBBVFByZXBDbWQoTGlz dCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAJCQkvKiBO byBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0gQVRfUEFTU19N SVNDOwogCQkJYnJlYWs7CisJCWNhc2UgQVRfTWVyZ2VQYXJ0aXRpb25zOgorCQkJQVRTaW1w bGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKKwkJCS8qIE5v IGNvbW1hbmQtc3BlY2lmaWMgcHJlcCBuZWVkZWQgKi8KKwkJCXBhc3MgPSBBVF9QQVNTX01J U0M7CisJCQlicmVhazsKIAkJZGVmYXVsdDoJCQkJLyogb29wcyAqLwogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBhbHRlciB0YWJsZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGNt ZC0+c3VidHlwZSk7CkBAIC01NDgxLDYgKzU0OTIsMTQgQEAgQVRFeGVjQ21kKExpc3QgKip3 cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJY2FzZSBBVF9EZXRhY2hQYXJ0aXRp b25GaW5hbGl6ZToKIAkJCWFkZHJlc3MgPSBBVEV4ZWNEZXRhY2hQYXJ0aXRpb25GaW5hbGl6 ZShyZWwsICgoUGFydGl0aW9uQ21kICopIGNtZC0+ZGVmKS0+bmFtZSk7CiAJCQlicmVhazsK KwkJY2FzZSBBVF9NZXJnZVBhcnRpdGlvbnM6CisJCQljbWQgPSBBVFBhcnNlVHJhbnNmb3Jt Q21kKHdxdWV1ZSwgdGFiLCByZWwsIGNtZCwgZmFsc2UsIGxvY2ttb2RlLAorCQkJCQkJCQkJ ICBjdXJfcGFzcywgY29udGV4dCk7CisJCQlBc3NlcnQoY21kICE9IE5VTEwpOworCQkJQXNz ZXJ0KHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUp OworCQkJQVRFeGVjTWVyZ2VQYXJ0aXRpb25zKHdxdWV1ZSwgdGFiLCByZWwsIChQYXJ0aXRp b25DbWQgKikgY21kLT5kZWYsCisJCQkJCQkJCSAgY29udGV4dCk7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoJCQkJLyogb29wcyAqLwogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBh bHRlciB0YWJsZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGNtZC0+c3VidHlwZSk7CkBAIC02 NDY3LDYgKzY0ODYsOCBAQCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhBbHRlclRhYmxl VHlwZSBjbWR0eXBlKQogCQkJcmV0dXJuICJERVRBQ0ggUEFSVElUSU9OIjsKIAkJY2FzZSBB VF9EZXRhY2hQYXJ0aXRpb25GaW5hbGl6ZToKIAkJCXJldHVybiAiREVUQUNIIFBBUlRJVElP TiAuLi4gRklOQUxJWkUiOworCQljYXNlIEFUX01lcmdlUGFydGl0aW9uczoKKwkJCXJldHVy biAiTUVSR0UgUEFSVElUSU9OUyI7CiAJCWNhc2UgQVRfQWRkSWRlbnRpdHk6CiAJCQlyZXR1 cm4gIkFMVEVSIENPTFVNTiAuLi4gQUREIElERU5USVRZIjsKIAkJY2FzZSBBVF9TZXRJZGVu dGl0eToKQEAgLTE4NDkyLDYgKzE4NTEzLDM3IEBAIFF1ZXVlUGFydGl0aW9uQ29uc3RyYWlu dFZhbGlkYXRpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gc2NhbnJlbCwKIAl9CiB9CiAK Ky8qCisgKiBhdHRhY2hQYXJ0aXRpb25UYWJsZTogYXR0YWNoIG5ldyBwYXJ0aXRpb24gdG8g cGFydGl0aW9uZWQgdGFibGUKKyAqCisgKiB3cXVldWU6IHRoZSBBTFRFUiBUQUJMRSB3b3Jr IHF1ZXVlOyBjYW4gYmUgTlVMTCB3aGVuIG5vdCBydW5uaW5nIGFzIHBhcnQKKyAqICAgb2Yg YW4gQUxURVIgVEFCTEUgc2VxdWVuY2UuCisgKiByZWw6IHBhcnRpdGlvbmVkIHJlbGF0aW9u OworICogYXR0YWNocmVsOiByZWxhdGlvbiBvZiBhdHRhY2hlZCBwYXJ0aXRpb247CisgKiBi b3VuZDogYm91bmRzIG9mIGF0dGFjaGVkIHJlbGF0aW9uLgorICovCitzdGF0aWMgdm9pZAor YXR0YWNoUGFydGl0aW9uVGFibGUoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBSZWxh dGlvbiBhdHRhY2hyZWwsIFBhcnRpdGlvbkJvdW5kU3BlYyAqYm91bmQpCit7CisJLyogT0sg dG8gY3JlYXRlIGluaGVyaXRhbmNlLiAgUmVzdCBvZiB0aGUgY2hlY2tzIHBlcmZvcm1lZCB0 aGVyZSAqLworCUNyZWF0ZUluaGVyaXRhbmNlKGF0dGFjaHJlbCwgcmVsKTsKKworCS8qIFVw ZGF0ZSB0aGUgcGdfY2xhc3MgZW50cnkuICovCisJU3RvcmVQYXJ0aXRpb25Cb3VuZChhdHRh Y2hyZWwsIHJlbCwgYm91bmQpOworCisJLyogRW5zdXJlIHRoZXJlIGV4aXN0cyBhIGNvcnJl Y3Qgc2V0IG9mIGluZGV4ZXMgaW4gdGhlIHBhcnRpdGlvbi4gKi8KKwlBdHRhY2hQYXJ0aXRp b25FbnN1cmVJbmRleGVzKHdxdWV1ZSwgcmVsLCBhdHRhY2hyZWwpOworCisJLyogYW5kIHRy aWdnZXJzICovCisJQ2xvbmVSb3dUcmlnZ2Vyc1RvUGFydGl0aW9uKHJlbCwgYXR0YWNocmVs KTsKKworCS8qCisJICogQ2xvbmUgZm9yZWlnbiBrZXkgY29uc3RyYWludHMuICBDYWxsZWUg aXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAKKwkgKiBmb3IgcGhhc2UgMyBjb25zdHJh aW50IHZlcmlmaWNhdGlvbi4KKwkgKi8KKwlDbG9uZUZvcmVpZ25LZXlDb25zdHJhaW50cyh3 cXVldWUsIHJlbCwgYXR0YWNocmVsKTsKK30KKwogLyoKICAqIEFMVEVSIFRBQkxFIDxuYW1l PiBBVFRBQ0ggUEFSVElUSU9OIDxwYXJ0aXRpb24tbmFtZT4gRk9SIFZBTFVFUwogICoKQEAg LTE4Njg0LDIzICsxODczNiw4IEBAIEFURXhlY0F0dGFjaFBhcnRpdGlvbihMaXN0ICoqd3F1 ZXVlLCBSZWxhdGlvbiByZWwsIFBhcnRpdGlvbkNtZCAqY21kLAogCWNoZWNrX25ld19wYXJ0 aXRpb25fYm91bmQoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXR0YWNocmVsKSwgcmVsLAog CQkJCQkJCSAgY21kLT5ib3VuZCwgcHN0YXRlKTsKIAotCS8qIE9LIHRvIGNyZWF0ZSBpbmhl cml0YW5jZS4gIFJlc3Qgb2YgdGhlIGNoZWNrcyBwZXJmb3JtZWQgdGhlcmUgKi8KLQlDcmVh dGVJbmhlcml0YW5jZShhdHRhY2hyZWwsIHJlbCk7Ci0KLQkvKiBVcGRhdGUgdGhlIHBnX2Ns YXNzIGVudHJ5LiAqLwotCVN0b3JlUGFydGl0aW9uQm91bmQoYXR0YWNocmVsLCByZWwsIGNt ZC0+Ym91bmQpOwotCi0JLyogRW5zdXJlIHRoZXJlIGV4aXN0cyBhIGNvcnJlY3Qgc2V0IG9m IGluZGV4ZXMgaW4gdGhlIHBhcnRpdGlvbi4gKi8KLQlBdHRhY2hQYXJ0aXRpb25FbnN1cmVJ bmRleGVzKHdxdWV1ZSwgcmVsLCBhdHRhY2hyZWwpOwotCi0JLyogYW5kIHRyaWdnZXJzICov Ci0JQ2xvbmVSb3dUcmlnZ2Vyc1RvUGFydGl0aW9uKHJlbCwgYXR0YWNocmVsKTsKLQotCS8q Ci0JICogQ2xvbmUgZm9yZWlnbiBrZXkgY29uc3RyYWludHMuICBDYWxsZWUgaXMgcmVzcG9u c2libGUgZm9yIHNldHRpbmcgdXAKLQkgKiBmb3IgcGhhc2UgMyBjb25zdHJhaW50IHZlcmlm aWNhdGlvbi4KLQkgKi8KLQlDbG9uZUZvcmVpZ25LZXlDb25zdHJhaW50cyh3cXVldWUsIHJl bCwgYXR0YWNocmVsKTsKKwkvKiBBdHRhY2ggcGFydGl0aW9uIHRvIHBhcnRpdGlvbmVkIHRh YmxlLiAqLworCWF0dGFjaFBhcnRpdGlvblRhYmxlKHdxdWV1ZSwgcmVsLCBhdHRhY2hyZWws IGNtZC0+Ym91bmQpOwogCiAJLyoKIAkgKiBHZW5lcmF0ZSBwYXJ0aXRpb24gY29uc3RyYWlu dCBmcm9tIHRoZSBwYXJ0aXRpb24gYm91bmQgc3BlY2lmaWNhdGlvbi4KQEAgLTIwMjQyLDMg KzIwMjc5LDI4MyBAQCBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3Qg Y2hhciAqc3RvcmFnZW1vZGUpCiAKIAlyZXR1cm4gY3N0b3JhZ2U7CiB9CisKKy8qCisgKiBj cmVhdGVQYXJ0aXRpb25UYWJsZTogY3JlYXRlIHRhYmxlIGZvciBuZXcgcGFydGl0aW9uIHdp dGggZ2l2ZW4gbmFtZQorICogKG5ld1BhcnROYW1lKSBsaWtlIHRhYmxlIChtb2RlbFJlbE5h bWUpCisgKgorICogRW11bGF0ZXMgY29tbWFuZDogQ1JFQVRFIFRBQkxFIDxuZXdQYXJ0TmFt ZT4gKExJS0UgPG1vZGVsUmVsTmFtZT4KKyAqIElOQ0xVRElORyBBTEwgRVhDTFVESU5HIElO REVYRVMpCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVQYXJ0aXRpb25UYWJsZShSYW5nZVZh ciAqbmV3UGFydE5hbWUsIFJhbmdlVmFyICptb2RlbFJlbE5hbWUsCisJCQkJCSBBbHRlclRh YmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCit7CisJQ3JlYXRlU3RtdCAqY3JlYXRlU3Rt dDsKKwlUYWJsZUxpa2VDbGF1c2UgKnRsYzsKKwlQbGFubmVkU3RtdCAqd3JhcHBlcjsKKwor CWNyZWF0ZVN0bXQgPSBtYWtlTm9kZShDcmVhdGVTdG10KTsKKwljcmVhdGVTdG10LT5yZWxh dGlvbiA9IG5ld1BhcnROYW1lOworCWNyZWF0ZVN0bXQtPnRhYmxlRWx0cyA9IE5JTDsKKwlj cmVhdGVTdG10LT5pbmhSZWxhdGlvbnMgPSBOSUw7CisJY3JlYXRlU3RtdC0+Y29uc3RyYWlu dHMgPSBOSUw7CisJY3JlYXRlU3RtdC0+b3B0aW9ucyA9IE5JTDsKKwljcmVhdGVTdG10LT5v bmNvbW1pdCA9IE9OQ09NTUlUX05PT1A7CisJY3JlYXRlU3RtdC0+dGFibGVzcGFjZW5hbWUg PSBOVUxMOworCWNyZWF0ZVN0bXQtPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKworCXRsYyA9 IG1ha2VOb2RlKFRhYmxlTGlrZUNsYXVzZSk7CisJdGxjLT5yZWxhdGlvbiA9IG1vZGVsUmVs TmFtZTsKKworCS8qCisJICogSW5kZXhlcyB3aWxsIGJlIGluaGVyaXRlZCBvbiAiYXR0YWNo IG5ldyBwYXJ0aXRpb25zIiBzdGFnZSwgYWZ0ZXIgZGF0YQorCSAqIG1vdmluZy4KKwkgKi8K Kwl0bGMtPm9wdGlvbnMgPSBDUkVBVEVfVEFCTEVfTElLRV9BTEwgJiB+Q1JFQVRFX1RBQkxF X0xJS0VfSU5ERVhFUzsKKwl0bGMtPnJlbGF0aW9uT2lkID0gSW52YWxpZE9pZDsKKwljcmVh dGVTdG10LT50YWJsZUVsdHMgPSBsYXBwZW5kKGNyZWF0ZVN0bXQtPnRhYmxlRWx0cywgdGxj KTsKKworCS8qIE5lZWQgdG8gbWFrZSBhIHdyYXBwZXIgUGxhbm5lZFN0bXQuICovCisJd3Jh cHBlciA9IG1ha2VOb2RlKFBsYW5uZWRTdG10KTsKKwl3cmFwcGVyLT5jb21tYW5kVHlwZSA9 IENNRF9VVElMSVRZOworCXdyYXBwZXItPmNhblNldFRhZyA9IGZhbHNlOworCXdyYXBwZXIt PnV0aWxpdHlTdG10ID0gKE5vZGUgKikgY3JlYXRlU3RtdDsKKwl3cmFwcGVyLT5zdG10X2xv Y2F0aW9uID0gY29udGV4dC0+cHN0bXQtPnN0bXRfbG9jYXRpb247CisJd3JhcHBlci0+c3Rt dF9sZW4gPSBjb250ZXh0LT5wc3RtdC0+c3RtdF9sZW47CisKKwlQcm9jZXNzVXRpbGl0eSh3 cmFwcGVyLAorCQkJCSAgIGNvbnRleHQtPnF1ZXJ5U3RyaW5nLAorCQkJCSAgIGZhbHNlLAor CQkJCSAgIFBST0NFU1NfVVRJTElUWV9TVUJDT01NQU5ELAorCQkJCSAgIE5VTEwsCisJCQkJ ICAgTlVMTCwKKwkJCQkgICBOb25lX1JlY2VpdmVyLAorCQkJCSAgIE5VTEwpOworfQorCisv KgorICogU3RydWN0IHdpdGggY29udGV4dCBvZiBtZXJnZWQgcGFydGl0aW9uCisgKi8KK3R5 cGVkZWYgc3RydWN0IE1lcmdlZFBhcnRDb250ZXh0Cit7CisJUmVsYXRpb24JcGFydFJlbDsJ CS8qIHJlbGF0aW9uIGZvciBwYXJ0aXRpb24gKi8KK30JCQlNZXJnZWRQYXJ0Q29udGV4dDsK KworLyoKKyAqIG1vdmVNZXJnZWRUYWJsZXNSb3dzOiBzY2FuIG1lcmdlZCBwYXJ0aXRpb25z IChwYXJ0Q29udGV4dCkgb2YgcGFydGl0aW9uZWQKKyAqIHRhYmxlIChyZWwpIGFuZCBtb3Zl IHJvd3MgaW50byBuZXcgcGFydGl0aW9uIChuZXdQYXJ0UmVsKS4KKyAqLworc3RhdGljIHZv aWQKK21vdmVNZXJnZWRUYWJsZXNSb3dzKFJlbGF0aW9uIHJlbCwgTGlzdCAqcGFydENvbnRl eHQsIFJlbGF0aW9uIG5ld1BhcnRSZWwpCit7CisJQ29tbWFuZElkCW15Y2lkOworCisJLyog VGhlIEZTTSBpcyBlbXB0eSwgc28gZG9uJ3QgYm90aGVyIHVzaW5nIGl0LiAqLworCWludAkJ CXRpX29wdGlvbnMgPSBUQUJMRV9JTlNFUlRfU0tJUF9GU007CisJTGlzdENlbGwgICAqbGlz dHB0cjsKKwlCdWxrSW5zZXJ0U3RhdGUgYmlzdGF0ZTsJLyogc3RhdGUgb2YgYnVsayBpbnNl cnRzIGZvciBwYXJ0aXRpb24gKi8KKwlUdXBsZVRhYmxlU2xvdCAqZHN0c2xvdDsKKworCW15 Y2lkID0gR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKTsKKworCS8qIFByZXBhcmUgYSBCdWxr SW5zZXJ0U3RhdGUgZm9yIHRhYmxlX3R1cGxlX2luc2VydC4gKi8KKwliaXN0YXRlID0gR2V0 QnVsa0luc2VydFN0YXRlKCk7CisKKwkvKiBDcmVhdGUgbmVjZXNzYXJ5IHR1cGxlIHNsb3Qu ICovCisJZHN0c2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChSZWxhdGlvbkdldERl c2NyKG5ld1BhcnRSZWwpLAorCQkJCQkJCQkJICAgdGFibGVfc2xvdF9jYWxsYmFja3MobmV3 UGFydFJlbCkpOworCUV4ZWNTdG9yZUFsbE51bGxUdXBsZShkc3RzbG90KTsKKworCWZvcmVh Y2gobGlzdHB0ciwgcGFydENvbnRleHQpCisJeworCQlNZXJnZWRQYXJ0Q29udGV4dCAqcGMg PSAoTWVyZ2VkUGFydENvbnRleHQgKikgbGZpcnN0KGxpc3RwdHIpOworCQlUdXBsZVRhYmxl U2xvdCAqc3Jjc2xvdDsKKwkJVHVwbGVDb252ZXJzaW9uTWFwICp0dXBsZV9tYXA7CisJCVRh YmxlU2NhbkRlc2Mgc2NhbjsKKwkJU25hcHNob3QJc25hcHNob3Q7CisKKwkJLyogQ3JlYXRl IHR1cGxlIHNsb3QgZm9yIG5ldyBwYXJ0aXRpb24uICovCisJCXNyY3Nsb3QgPSBNYWtlU2lu Z2xlVHVwbGVUYWJsZVNsb3QoUmVsYXRpb25HZXREZXNjcihwYy0+cGFydFJlbCksCisJCQkJ CQkJCQkJICAgdGFibGVfc2xvdF9jYWxsYmFja3MocGMtPnBhcnRSZWwpKTsKKworCQkvKgor CQkgKiBNYXAgY29tcHV0aW5nIGZvciBtb3ZpbmcgYXR0cmlidXRlcyBvZiBtZXJnZWQgcGFy dGl0aW9uIHRvIG5ldworCQkgKiBwYXJ0aXRpb24uCisJCSAqLworCQl0dXBsZV9tYXAgPSBj b252ZXJ0X3R1cGxlc19ieV9uYW1lKFJlbGF0aW9uR2V0RGVzY3IocGMtPnBhcnRSZWwpLAor CQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVzY3IobmV3UGFydFJlbCkpOworCisJCS8qIFNj YW4gdGhyb3VnaCB0aGUgcm93cy4gKi8KKwkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90 KEdldExhdGVzdFNuYXBzaG90KCkpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHBjLT5w YXJ0UmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisKKwkJd2hpbGUgKHRhYmxlX3NjYW5fZ2V0 bmV4dHNsb3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNyY3Nsb3QpKQorCQl7CisJ CQlUdXBsZVRhYmxlU2xvdCAqaW5zZXJ0c2xvdDsKKworCQkJLyogRXh0cmFjdCBkYXRhIGZy b20gb2xkIHR1cGxlLiAqLworCQkJc2xvdF9nZXRhbGxhdHRycyhzcmNzbG90KTsKKworCQkJ aWYgKHR1cGxlX21hcCkKKwkJCXsKKwkJCQkvKiBOZWVkIHRvIHVzZSBtYXAgZm9yIGNvcHkg YXR0cmlidXRlcy4gKi8KKwkJCQlpbnNlcnRzbG90ID0gZXhlY3V0ZV9hdHRyX21hcF9zbG90 KHR1cGxlX21hcC0+YXR0ck1hcCwgc3Jjc2xvdCwgZHN0c2xvdCk7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJLyogQ29weSBhdHRyaWJ1dGVzIGRpcmVjdGx5LiAqLworCQkJCWluc2Vy dHNsb3QgPSBkc3RzbG90OworCisJCQkJRXhlY0NsZWFyVHVwbGUoaW5zZXJ0c2xvdCk7CisK KwkJCQltZW1jcHkoaW5zZXJ0c2xvdC0+dHRzX3ZhbHVlcywgc3Jjc2xvdC0+dHRzX3ZhbHVl cywKKwkJCQkJICAgc2l6ZW9mKERhdHVtKSAqIHNyY3Nsb3QtPnR0c19udmFsaWQpOworCQkJ CW1lbWNweShpbnNlcnRzbG90LT50dHNfaXNudWxsLCBzcmNzbG90LT50dHNfaXNudWxsLAor CQkJCQkgICBzaXplb2YoYm9vbCkgKiBzcmNzbG90LT50dHNfbnZhbGlkKTsKKworCQkJCUV4 ZWNTdG9yZVZpcnR1YWxUdXBsZShpbnNlcnRzbG90KTsKKwkJCX0KKworCQkJLyogV3JpdGUg dGhlIHR1cGxlIG91dCB0byB0aGUgbmV3IHJlbGF0aW9uLiAqLworCQkJdGFibGVfdHVwbGVf aW5zZXJ0KG5ld1BhcnRSZWwsIGluc2VydHNsb3QsIG15Y2lkLCB0aV9vcHRpb25zLCBiaXN0 YXRlKTsKKworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJfQorCisJCXRhYmxlX2Vu ZHNjYW4oc2Nhbik7CisJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CisKKwkJaWYg KHR1cGxlX21hcCkKKwkJCWZyZWVfY29udmVyc2lvbl9tYXAodHVwbGVfbWFwKTsKKworCQlF eGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KHNyY3Nsb3QpOworCX0KKworCUV4ZWNEcm9w U2luZ2xlVHVwbGVUYWJsZVNsb3QoZHN0c2xvdCk7CisJRnJlZUJ1bGtJbnNlcnRTdGF0ZShi aXN0YXRlKTsKKworCXRhYmxlX2ZpbmlzaF9idWxrX2luc2VydChuZXdQYXJ0UmVsLCB0aV9v cHRpb25zKTsKK30KKworLyoKKyAqIEFMVEVSIFRBQkxFIDxuYW1lPiBNRVJHRSBQQVJUSVRJ T05TIDxwYXJ0aXRpb24tbGlzdD4gSU5UTyA8cGFydGl0aW9uLW5hbWU+CisgKi8KK3N0YXRp YyB2b2lkCitBVEV4ZWNNZXJnZVBhcnRpdGlvbnMoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRh YmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCisJCQkJCSAgUGFydGl0aW9uQ21kICpjbWQs IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKK3sKKwlSZWxhdGlvbgluZXdQ YXJ0UmVsOworCUxpc3RDZWxsICAgKmxpc3RwdHI7CisJTGlzdAkgICAqcGFydENvbnRleHRz ID0gTklMOworCU9pZAkJCWRlZmF1bHRQYXJ0T2lkOworCWNoYXIJCXRtcFJlbE5hbWVbTkFN RURBVEFMRU5dOworCVJhbmdlVmFyICAgKm1lcmdlUGFydE5hbWUgPSBjbWQtPm5hbWU7CisJ Ym9vbAkJaXNTYW1lTmFtZSA9IGZhbHNlOworCisJLyoKKwkgKiBMb2NrIGFsbCBtZXJnZWQg cGFydGl0aW9ucywgY2hlY2sgdGhlbSBhbmQgY3JlYXRlIGxpc3Qgd2l0aCBwYXJ0aXRpb25z CisJICogY29udGV4dHMuCisJICovCisJZm9yZWFjaChsaXN0cHRyLCBjbWQtPnBhcnRsaXN0 KQorCXsKKwkJUmFuZ2VWYXIgICAqbmFtZSA9IChSYW5nZVZhciAqKSBsZmlyc3QobGlzdHB0 cik7CisJCU1lcmdlZFBhcnRDb250ZXh0ICpwYzsKKworCQlwYyA9IChNZXJnZWRQYXJ0Q29u dGV4dCAqKSBwYWxsb2MwKHNpemVvZihNZXJnZWRQYXJ0Q29udGV4dCkpOworCisJCS8qCisJ CSAqIFdlIGFyZSBnb2luZyB0byBkZXRhY2ggYW5kIHJlbW92ZSB0aGlzIHBhcnRpdGlvbjog bmVlZCB0byB1c2UKKwkJICogZXhjbHVzaXZlIGxvY2sgZm9yIHByZXZlbnQgRE1MLXF1ZXJp ZXMgdG8gdGhlIHBhcnRpdGlvbi4KKwkJICovCisJCXBjLT5wYXJ0UmVsID0gdGFibGVfb3Bl bnJ2KG5hbWUsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJCWlmIChwYy0+cGFydFJlbC0+ cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04pCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVy cm1zZygiY2Fubm90IG1lcmdlIG5vbi10YWJsZSBwYXJ0aXRpb24gXCIlc1wiIiwKKwkJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShwYy0+cGFydFJlbCkpKSk7CisKKwkJLyoKKwkJ ICogQ2hlY2tpbmcgdGhhdCB0d28gcGFydGl0aW9ucyBoYXZlIHRoZSBzYW1lIG5hbWUgd2Fz IGJlZm9yZSwKKwkJICogaW4gZnVuY3Rpb24gdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9yTWVy Z2UoKS4KKwkJICovCisJCWlmIChlcXVhbChuYW1lLCBjbWQtPm5hbWUpKQorCQkJLyogT25l IG5ldyBwYXJ0aXRpb24gY2FuIGhhdmUgdGhlIHNhbWUgbmFtZSBhcyBtZXJnZWQgcGFydGl0 aW9uLiAqLworCQkJaXNTYW1lTmFtZSA9IHRydWU7CisKKwkJLyogU3RvcmUgcGFydGl0aW9u IGNvbnRleHQgaW50byBwYXJ0aXRpb25zIGxpc3QuICovCisJCXBhcnRDb250ZXh0cyA9IGxh cHBlbmQocGFydENvbnRleHRzLCBwYyk7CisJfQorCisJLyogRGV0YWNoIGFsbCBtZXJnZWQg cGFydGl0aW9ucy4gKi8KKwlkZWZhdWx0UGFydE9pZCA9CisJCWdldF9kZWZhdWx0X29pZF9m cm9tX3BhcnRkZXNjKFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhyZWwsIHRydWUpKTsKKwlm b3JlYWNoKGxpc3RwdHIsIHBhcnRDb250ZXh0cykKKwl7CisJCU1lcmdlZFBhcnRDb250ZXh0 ICpwYyA9IChNZXJnZWRQYXJ0Q29udGV4dCAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJUmVt b3ZlSW5oZXJpdGFuY2UocGMtPnBhcnRSZWwsIHJlbCwgZmFsc2UpOworCQkvKiBEbyB0aGUg ZmluYWwgcGFydCBvZiBkZXRhY2hpbmcuICovCisJCURldGFjaFBhcnRpdGlvbkZpbmFsaXpl KHJlbCwgcGMtPnBhcnRSZWwsIGZhbHNlLCBkZWZhdWx0UGFydE9pZCk7CisJfQorCisJLyog Q3JlYXRlIHRhYmxlIGZvciBuZXcgcGFydGl0aW9uLCB1c2UgcGFydGl0aW9uZWQgdGFibGUg YXMgbW9kZWwuICovCisJaWYgKGlzU2FtZU5hbWUpCisJeworCQkvKiBDcmVhdGUgcGFydGl0 aW9uIHRhYmxlIHdpdGggZ2VuZXJhdGVkIHRlbXBhcmFyeSBuYW1lLiAqLworCQlzcHJpbnRm KHRtcFJlbE5hbWUsICJtZXJnZS0ldS0lWC10bXAiLCBSZWxhdGlvbkdldFJlbGlkKHJlbCks IE15UHJvY1BpZCk7CisJCW1lcmdlUGFydE5hbWUgPSBtYWtlUmFuZ2VWYXIoZ2V0X25hbWVz cGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAorCQkJCQkJCQkJIHRtcFJl bE5hbWUsIC0xKTsKKwl9CisJY3JlYXRlUGFydGl0aW9uVGFibGUobWVyZ2VQYXJ0TmFtZSwK KwkJCQkJCSBtYWtlUmFuZ2VWYXIoZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFt ZXNwYWNlKHJlbCkpLAorCQkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp LCAtMSksCisJCQkJCQkgY29udGV4dCk7CisKKwkvKiBPcGVuIHRoZSBuZXcgcGFydGl0aW9u IGFuZCBhY3F1aXJlIGV4Y2x1c2l2ZSBsb2NrIG9uIGl0LiAqLworCW5ld1BhcnRSZWwgPSB0 YWJsZV9vcGVucnYobWVyZ2VQYXJ0TmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkv KiBDb3B5IGRhdGEgZnJvbSBtZXJnZWQgcGFydGl0aW9ucyB0byBuZXcgcGFydGl0aW9uLiAq LworCW1vdmVNZXJnZWRUYWJsZXNSb3dzKHJlbCwgcGFydENvbnRleHRzLCBuZXdQYXJ0UmVs KTsKKworCS8qCisJICogQXR0YWNoIG5ldyBwYXJ0aXRpb24gdG8gcGFydGl0aW9uZWQgdGFi bGUuIHdxdWV1ZSA9IE5VTEw6IHZlcmlmaWNhdGlvbgorCSAqIGZvciBlYWNoIGNsb25lZCBj b25zdHJhaW50IGlzIG5vdCBuZWVkLgorCSAqLworCWF0dGFjaFBhcnRpdGlvblRhYmxlKE5V TEwsIHJlbCwgbmV3UGFydFJlbCwgY21kLT5ib3VuZCk7CisKKwkvKiBVbmxvY2sgYW5kIGRy b3AgbWVyZ2VkIHBhcnRpdGlvbnMuICovCisJZm9yZWFjaChsaXN0cHRyLCBwYXJ0Q29udGV4 dHMpCisJeworCQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKwkJTWVyZ2VkUGFydENvbnRleHQg KnBjID0gKE1lcmdlZFBhcnRDb250ZXh0ICopIGxmaXJzdChsaXN0cHRyKTsKKworCQkvKiBH ZXQgcmVsYXRpb24gaWQgYmVmb3JlIHRhYmxlX2Nsb3NlKCkgY2FsbC4gKi8KKwkJb2JqZWN0 Lm9iamVjdElkID0gUmVsYXRpb25HZXRSZWxpZChwYy0+cGFydFJlbCk7CisJCW9iamVjdC5j bGFzc0lkID0gUmVsYXRpb25SZWxhdGlvbklkOworCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAw OworCisJCS8qIEtlZXAgdGhlIGxvY2sgdW50aWwgY29tbWl0LiAqLworCQl0YWJsZV9jbG9z ZShwYy0+cGFydFJlbCwgTm9Mb2NrKTsKKworCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwg RFJPUF9SRVNUUklDVCwgMCk7CisKKwkJcGZyZWUocGMpOworCX0KKworCS8qIFJlbmFtZSBu ZXcgcGFydGl0aW9uIGlmIGl0IGlzIG5lZWRlZC4gKi8KKwlpZiAoaXNTYW1lTmFtZSkKKwl7 CisJCS8qCisJCSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2Ug dGhlIG5ldyBwYXJ0aXRpb24gdHVwbGUKKwkJICogdmlzaWJsZSBmb3IgcmVuYW1lLgorCQkg Ki8KKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJLyogUmVuYW1lIHBhcnRpdGlv bi4gKi8KKwkJUmVuYW1lUmVsYXRpb25JbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKG5ld1Bh cnRSZWwpLAorCQkJCQkJCSAgIGNtZC0+bmFtZS0+cmVsbmFtZSwgZmFsc2UsIGZhbHNlKTsK Kwl9CisJLyogS2VlcCB0aGUgbG9jayB1bnRpbCBjb21taXQuICovCisJdGFibGVfY2xvc2Uo bmV3UGFydFJlbCwgTm9Mb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGMyMjRkZjRlY2Mu LjI0MmI4YzI3MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNzQzLDcgKzc0Myw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJT1JERVIgT1JESU5BTElUWSBPVEhFUlMgT1VUX1Ag T1VURVJfUAogCU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9XTkVS CiAKLQlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJ TkcgUEFTU1dPUkQKKwlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElU SU9OIFBBUlRJVElPTlMgUEFTU0lORyBQQVNTV09SRAogCVBMQUNJTkcgUExBTlMgUE9MSUNZ CiAJUE9TSVRJT04gUFJFQ0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBB UkVEIFBSSU1BUlkKIAlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBS T0NFRFVSRVMgUFJPR1JBTSBQVUJMSUNBVElPTgpAQCAtMjI4NSw2ICsyMjg1LDcgQEAgcGFy dGl0aW9uX2NtZDoKIAkJCQkJbi0+c3VidHlwZSA9IEFUX0F0dGFjaFBhcnRpdGlvbjsKIAkJ CQkJY21kLT5uYW1lID0gJDM7CiAJCQkJCWNtZC0+Ym91bmQgPSAkNDsKKwkJCQkJY21kLT5w YXJ0bGlzdCA9IE5VTEw7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOwogCQkJCQlu LT5kZWYgPSAoTm9kZSAqKSBjbWQ7CiAKQEAgLTIyOTksNiArMjMwMCw3IEBAIHBhcnRpdGlv bl9jbWQ6CiAJCQkJCW4tPnN1YnR5cGUgPSBBVF9EZXRhY2hQYXJ0aXRpb247CiAJCQkJCWNt ZC0+bmFtZSA9ICQzOwogCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0 bGlzdCA9IE5VTEw7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9ICQ0OwogCQkJCQluLT5kZWYg PSAoTm9kZSAqKSBjbWQ7CiAKQEAgLTIzMTIsNiArMjMxNCwyMSBAQCBwYXJ0aXRpb25fY21k OgogCQkJCQluLT5zdWJ0eXBlID0gQVRfRGV0YWNoUGFydGl0aW9uRmluYWxpemU7CiAJCQkJ CWNtZC0+bmFtZSA9ICQzOwogCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5w YXJ0bGlzdCA9IE5VTEw7CisJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOworCQkJCQlu LT5kZWYgPSAoTm9kZSAqKSBjbWQ7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJ CQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4gTUVSR0UgUEFSVElUSU9OUyAoKSBJTlRPIDxwYXJ0 aXRpb25fbmFtZT4gKi8KKwkJCXwgTUVSR0UgUEFSVElUSU9OUyAnKCcgcXVhbGlmaWVkX25h bWVfbGlzdCAnKScgSU5UTyBxdWFsaWZpZWRfbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJUYWJs ZUNtZCAqbiA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCQlQYXJ0aXRpb25DbWQg KmNtZCA9IG1ha2VOb2RlKFBhcnRpdGlvbkNtZCk7CisKKwkJCQkJbi0+c3VidHlwZSA9IEFU X01lcmdlUGFydGl0aW9uczsKKwkJCQkJY21kLT5uYW1lID0gJDc7CisJCQkJCWNtZC0+Ym91 bmQgPSBOVUxMOworCQkJCQljbWQtPnBhcnRsaXN0ID0gJDQ7CiAJCQkJCWNtZC0+Y29uY3Vy cmVudCA9IGZhbHNlOwogCQkJCQluLT5kZWYgPSAoTm9kZSAqKSBjbWQ7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKQEAgLTIzMjgsNiArMjM0NSw3IEBAIGluZGV4X3BhcnRpdGlvbl9jbWQ6 CiAJCQkJCW4tPnN1YnR5cGUgPSBBVF9BdHRhY2hQYXJ0aXRpb247CiAJCQkJCWNtZC0+bmFt ZSA9ICQzOwogCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9 IE5VTEw7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOwogCQkJCQluLT5kZWYgPSAo Tm9kZSAqKSBjbWQ7CiAKQEAgLTE3MjU3LDYgKzE3Mjc1LDcgQEAgdW5yZXNlcnZlZF9rZXl3 b3JkOgogCQkJfCBQQVJTRVIKIAkJCXwgUEFSVElBTAogCQkJfCBQQVJUSVRJT04KKwkJCXwg UEFSVElUSU9OUwogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECiAJCQl8IFBMQU5TCkBA IC0xNzg1OCw2ICsxNzg3Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFSU0VS CiAJCQl8IFBBUlRJQUwKIAkJCXwgUEFSVElUSU9OCisJCQl8IFBBUlRJVElPTlMKIAkJCXwg UEFTU0lORwogCQkJfCBQQVNTV09SRAogCQkJfCBQTEFDSU5HCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYwppbmRleCBjZjBkNDMyYWIxLi42YzRkYzNmMWIxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV91dGlsY21kLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgorI2luY2x1ZGUgInBhcnRpdGlvbmluZy9w YXJ0ZGVzYy5oIgorI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgiCiAjaW5j bHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMzM3OCw2ICszMzgwLDgwIEBAIHRy YW5zZm9ybVJ1bGVTdG10KFJ1bGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmlu ZywKIH0KIAogCisvKgorICogdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9yTWVyZ2UKKyAqCQlB bmFseXplIHRoZSBBTFRFUiBUQUJMTEUgLi4uIE1FUkdFIFBBUlRJVElPTlMgY29tbWFuZAor ICoKKyAqIERvZXMgc2ltcGxlIGNoZWNrcyBmb3IgbWVyZ2VkIHBhcnRpdGlvbnMuIENhbGN1 bGF0ZXMgYm91bmQgb2YgcmVzdWx0CisgKiBwYXJ0aXRpb24uCisgKi8KK3N0YXRpYyB2b2lk Cit0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JNZXJnZShDcmVhdGVTdG10Q29udGV4dCAqY3h0 LCBQYXJ0aXRpb25DbWQgKnBhcnRjbWQpCit7CisJT2lkCQkJZGVmYXVsdFBhcnRPaWQ7CisJ T2lkCQkJcGFydE9pZDsKKwlSZWxhdGlvbglwYXJlbnQgPSBjeHQtPnJlbDsKKwlQYXJ0aXRp b25LZXkga2V5OworCWNoYXIJCXN0cmF0ZWd5OworCUxpc3RDZWxsICAgKmxpc3RwdHIsCisJ CQkgICAqbGlzdHB0cjI7CisJYm9vbAkJaXNEZWZhdWx0UGFydCA9IGZhbHNlOworCUxpc3QJ ICAgKnBhcnRPaWRzID0gTklMOworCisJaWYgKHBhcmVudC0+cmRfcmVsLT5yZWxraW5kICE9 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNn KCJcIiVzXCIgaXMgbm90IGEgcGFydGl0aW9uZWQgdGFibGUiLCBSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShwYXJlbnQpKSkpOworCisJa2V5ID0gUmVsYXRpb25HZXRQYXJ0aXRpb25LZXko cGFyZW50KTsKKwlzdHJhdGVneSA9IGdldF9wYXJ0aXRpb25fc3RyYXRlZ3koa2V5KTsKKwor CWlmIChzdHJhdGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfSEFTSCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJIGVycm1zZygicGFydGl0aW9uIG9mIGhhc2gtcGFydGl0aW9uZWQgdGFibGUgY2Fubm90 IGJlIG1lcmdlZCIpKSk7CisKKwkvKiBJcyBjdXJyZW50IHBhcnRpdGlvbiBhIERFRkFVTFQg cGFydGl0aW9uPyAqLworCWRlZmF1bHRQYXJ0T2lkID0gZ2V0X2RlZmF1bHRfb2lkX2Zyb21f cGFydGRlc2MoCisJCQkJCQkJCQkJCQkgICBSZWxhdGlvbkdldFBhcnRpdGlvbkRlc2MocGFy ZW50LCB0cnVlKSk7CisKKwlmb3JlYWNoKGxpc3RwdHIsIHBhcnRjbWQtPnBhcnRsaXN0KQor CXsKKwkJUmFuZ2VWYXIgICAqbmFtZSA9IChSYW5nZVZhciAqKSBsZmlyc3QobGlzdHB0cik7 CisKKwkJLyogUGFydGl0aW9ucyBpbiB0aGUgbGlzdCBzaG91bGQgaGF2ZSBkaWZmZXJlbnQg bmFtZXMuICovCisJCWZvcl9lYWNoX2NlbGwobGlzdHB0cjIsIHBhcnRjbWQtPnBhcnRsaXN0 LCBsbmV4dChwYXJ0Y21kLT5wYXJ0bGlzdCwgbGlzdHB0cikpCisJCXsKKwkJCVJhbmdlVmFy ICAgKm5hbWUyID0gKFJhbmdlVmFyICopIGxmaXJzdChsaXN0cHRyMik7CisKKwkJCWlmIChl cXVhbChuYW1lLCBuYW1lMikpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRFVQTElDQVRFX1RBQkxFKSwKKwkJCQkJCSBlcnJtc2coInBhcnRpdGlvbiB3 aXRoIG5hbWUgXCIlc1wiIGFscmVhZHkgdXNlZCIsIG5hbWUtPnJlbG5hbWUpKSwKKwkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwgbmFtZTItPmxvY2F0aW9uKSk7CisJ CX0KKworCQkvKiBTZWFyY2ggREVGQVVMVCBwYXJ0aXRpb24gaW4gdGhlIGxpc3QuICovCisJ CXBhcnRPaWQgPSBSYW5nZVZhckdldFJlbGlkKG5hbWUsIE5vTG9jaywgZmFsc2UpOworCQlp ZiAocGFydE9pZCA9PSBkZWZhdWx0UGFydE9pZCkKKwkJCWlzRGVmYXVsdFBhcnQgPSB0cnVl OworCQlwYXJ0T2lkcyA9IGxhcHBlbmRfb2lkKHBhcnRPaWRzLCBwYXJ0T2lkKTsKKwl9CisK KwkvKiBBbGxvY2F0ZSBib3VuZCBvZiByZXN1bHQgcGFydGl0aW9uLiAqLworCUFzc2VydChw YXJ0Y21kLT5ib3VuZCA9PSBOVUxMKTsKKwlwYXJ0Y21kLT5ib3VuZCA9IG1ha2VOb2RlKFBh cnRpdGlvbkJvdW5kU3BlYyk7CisKKwkvKiBGaWxsIHBhcnRpdGlvbiBib3VuZC4gKi8KKwlw YXJ0Y21kLT5ib3VuZC0+c3RyYXRlZ3kgPSBzdHJhdGVneTsKKwlwYXJ0Y21kLT5ib3VuZC0+ bG9jYXRpb24gPSAtMTsKKwlwYXJ0Y21kLT5ib3VuZC0+aXNfZGVmYXVsdCA9IGlzRGVmYXVs dFBhcnQ7CisJaWYgKCFpc0RlZmF1bHRQYXJ0KQorCQljYWxjdWxhdGVfcGFydGl0aW9uX2Jv dW5kX2Zvcl9tZXJnZShwYXJlbnQsIHBhcnRjbWQtPnBhcnRsaXN0LAorCQkJCQkJCQkJCQlw YXJ0T2lkcywgcGFydGNtZC0+Ym91bmQsCisJCQkJCQkJCQkJCWN4dC0+cHN0YXRlKTsKK30K KwogLyoKICAqIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10IC0KICAqCQlwYXJzZSBhbmFseXNp cyBmb3IgQUxURVIgVEFCTEUKQEAgLTM2NDgsNiArMzcyNCwxOSBAQCB0cmFuc2Zvcm1BbHRl clRhYmxlU3RtdChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCW5ld2Nt ZHMgPSBsYXBwZW5kKG5ld2NtZHMsIGNtZCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRf TWVyZ2VQYXJ0aXRpb25zOgorCQkJCXsKKwkJCQkJUGFydGl0aW9uQ21kICpwYXJ0Y21kID0g KFBhcnRpdGlvbkNtZCAqKSBjbWQtPmRlZjsKKworCQkJCQlpZiAobGlzdF9sZW5ndGgocGFy dGNtZC0+cGFydGxpc3QpIDwgMikKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJCSBl cnJtc2coImxpc3Qgb2YgbmV3IHBhcnRpdGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0IGxlYXN0 IHR3byBpdGVtcyIpKSk7CisJCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZEZvck1lcmdlKCZj eHQsIHBhcnRjbWQpOworCQkJCQluZXdjbWRzID0gbGFwcGVuZChuZXdjbWRzLCBjbWQpOwor CQkJCQlicmVhazsKKwkJCQl9CisKIAkJCWRlZmF1bHQ6CiAKIAkJCQkvKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYyBiL3NyYy9iYWNrZW5k L3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKaW5kZXggOWYyMDdiNDRjMy4uMjEzMjg5ZjUx NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYwor KysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCkBAIC00OTc4LDMg KzQ5NzgsMjEwIEBAIHNhdGlzZmllc19oYXNoX3BhcnRpdGlvbihQR19GVU5DVElPTl9BUkdT KQogCiAJUEdfUkVUVVJOX0JPT0wocm93SGFzaCAlIG1vZHVsdXMgPT0gcmVtYWluZGVyKTsK IH0KKworLyoKKyAqIGNoZWNrX3R3b19wYXJ0aXRpb25zX2JvdW5kc19yYW5nZQorICoKKyAq IChmdW5jdGlvbiBmb3IgQlkgUkFOR0UgcGFydGl0aW9uaW5nKQorICoKKyAqIFRoaXMgaXMg YSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNoZWNrX3BhcnRpdGlvbnNfZm9yX3NwbGl0KCkgYW5k CisgKiBjYWxjdWxhdGVfcGFydGl0aW9uX2JvdW5kX2Zvcl9tZXJnZSgpLgorICogVGhpcyBm dW5jdGlvbiBjb21wYXJlcyB1cHBlciBib3VuZCBvZiBmaXJzdF9ib3VuZCBhbmQgbG93ZXIg Ym91bmQgb2YKKyAqIHNlY29uZF9ib3VuZC4gVGhlc2UgYm91bmRzIHNob3VsZCBiZSBlcXVh bHMgZXhjZXB0IGNhc2UKKyAqICJkZWZhdWx0UGFydCA9PSB0cnVlIiAodGhpcyBtZWFucyB0 aGF0IG9uZSBvZiBzcGxpdCBwYXJ0aXRpb25zIGlzIERFRkFVTFQpLgorICogSW4gdGhpcyBj YXNlIHVwcGVyIGJvdW5kIG9mIGZpcnN0X2JvdW5kIGNhbiBiZSBsZXNzIHRoYW4gbG93ZXIg Ym91bmQgb2YKKyAqIHNlY29uZF9ib3VuZCBiZWNhdXNlIHNwYWNlIGJldHdlZW4gb2YgdGhl c2UgYm91bmRzIHdpbGwgYmUgaW5jbHVkZWQgaW4KKyAqIERFRkFVTFQgcGFydGl0aW9uLgor ICoKKyAqIHBhcmVudDoJCQlwYXJ0aXRpb25lZCB0YWJsZQorICogZmlyc3RfbmFtZToJCW5h bWUgb2YgZmlyc3QgcGFydGl0aW9uCisgKiBmaXJzdF9ib3VuZDoJCWJvdW5kIG9mIGZpcnN0 IHBhcnRpdGlvbgorICogc2Vjb25kX25hbWU6CQluYW1lIG9mIHNlY29uZCBwYXJ0aXRpb24K KyAqIHNlY29uZF9ib3VuZDoJYm91bmQgb2Ygc2Vjb25kIHBhcnRpdGlvbgorICogZGVmYXVs dFBhcnQ6CQl0cnVlIGlmIG9uZSBvZiBzcGxpdCBwYXJ0aXRpb25zIGlzIERFRkFVTFQKKyAq IHBzdGF0ZToJCQlwb2ludGVyIHRvIFBhcnNlU3RhdGUgc3RydWN0IGZvciBkZXRlcm1pbmUg ZXJyb3IgcG9zaXRpb24KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX3R3b19wYXJ0aXRpb25z X2JvdW5kc19yYW5nZShSZWxhdGlvbiBwYXJlbnQsCisJCQkJCQkJCSAgUmFuZ2VWYXIgKmZp cnN0X25hbWUsCisJCQkJCQkJCSAgUGFydGl0aW9uQm91bmRTcGVjICpmaXJzdF9ib3VuZCwK KwkJCQkJCQkJICBSYW5nZVZhciAqc2Vjb25kX25hbWUsCisJCQkJCQkJCSAgUGFydGl0aW9u Qm91bmRTcGVjICpzZWNvbmRfYm91bmQsCisJCQkJCQkJCSAgYm9vbCBkZWZhdWx0UGFydCwK KwkJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFydGl0aW9uS2V5IGtleSA9 IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJUGFydGl0aW9uUmFuZ2VCb3Vu ZCAqZmlyc3RfdXBwZXI7CisJUGFydGl0aW9uUmFuZ2VCb3VuZCAqc2Vjb25kX2xvd2VyOwor CWludAkJCWNtcHZhbDsKKworCUFzc2VydChrZXktPnN0cmF0ZWd5ID09IFBBUlRJVElPTl9T VFJBVEVHWV9SQU5HRSk7CisKKwlmaXJzdF91cHBlciA9IG1ha2Vfb25lX3BhcnRpdGlvbl9y Ym91bmQoa2V5LCAtMSwgZmlyc3RfYm91bmQtPnVwcGVyZGF0dW1zLCBmYWxzZSk7CisJc2Vj b25kX2xvd2VyID0gbWFrZV9vbmVfcGFydGl0aW9uX3Jib3VuZChrZXksIC0xLCBzZWNvbmRf Ym91bmQtPmxvd2VyZGF0dW1zLCB0cnVlKTsKKworCS8qCisJICogbG93ZXIxPWZhbHNlICh0 aGUgc2Vjb25kIHRvIGxhc3QgYXJndW1lbnQpIGZvciBjb3JyZWN0IGNvbXBhcmlzb24gbG93 ZXIKKwkgKiBhbmQgdXBwZXIgYm91bmRzLgorCSAqLworCWNtcHZhbCA9IHBhcnRpdGlvbl9y Ym91bmRfY21wKGtleS0+cGFydG5hdHRzLAorCQkJCQkJCQkgIGtleS0+cGFydHN1cGZ1bmMs CisJCQkJCQkJCSAga2V5LT5wYXJ0Y29sbGF0aW9uLAorCQkJCQkJCQkgIHNlY29uZF9sb3dl ci0+ZGF0dW1zLCBzZWNvbmRfbG93ZXItPmtpbmQsCisJCQkJCQkJCSAgZmFsc2UsIGZpcnN0 X3VwcGVyKTsKKwlpZiAoKCFkZWZhdWx0UGFydCAmJiBjbXB2YWwpIHx8IChkZWZhdWx0UGFy dCAmJiBjbXB2YWwgPCAwKSkKKwl7CisJCVBhcnRpdGlvblJhbmdlRGF0dW0gKmRhdHVtID0g bGluaXRpYWwoc2Vjb25kX2JvdW5kLT5sb3dlcmRhdHVtcyk7CisKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAor CQkJCSBlcnJtc2coImxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiBcIiVzXCIgY29uZmxpY3Rz IHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uIFwiJXNcIiIsCisJCQkJ CQlzZWNvbmRfbmFtZS0+cmVsbmFtZSwgZmlyc3RfbmFtZS0+cmVsbmFtZSksCisJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRhdHVtLT5sb2NhdGlvbikpKTsKKwl9Cit9CisK Ky8qCisgKiBnZXRfcGFydGl0aW9uX2JvdW5kX3NwZWMKKyAqCisgKiBSZXR1cm5zIGRlc2Ny aXB0aW9uIG9mIHBhcnRpdGlvbiB3aXRoIE9pZCAicGFydE9pZCIgYW5kIG5hbWUgIm5hbWUi LgorICovCitzdGF0aWMgUGFydGl0aW9uQm91bmRTcGVjICoKK2dldF9wYXJ0aXRpb25fYm91 bmRfc3BlYyhPaWQgcGFydE9pZCwgUmFuZ2VWYXIgKm5hbWUpCit7CisJSGVhcFR1cGxlCXR1 cGxlOworCURhdHVtCQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJUGFydGl0aW9uQm91bmRT cGVjICpib3VuZHNwZWMgPSBOVUxMOworCisJLyogVHJ5IGZldGNoaW5nIHRoZSB0dXBsZSBm cm9tIHRoZSBjYXRjYWNoZSwgZm9yIHNwZWVkLiAqLworCXR1cGxlID0gU2VhcmNoU3lzQ2Fj aGUxKFJFTE9JRCwgcGFydE9pZCk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkK KwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHJlbGF0aW9uIFwiJXNc IiIsCisJCQkgbmFtZS0+cmVsbmFtZSk7CisKKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihS RUxPSUQsIHR1cGxlLAorCQkJCQkJCUFudW1fcGdfY2xhc3NfcmVscGFydGJvdW5kLAorCQkJ CQkJCSZpc251bGwpOworCWlmIChpc251bGwpCisJCWVsb2coRVJST1IsICJwYXJ0aXRpb24g Ym91bmQgZm9yIHJlbGF0aW9uIFwiJXNcIiBpcyBudWxsIiwKKwkJCSBuYW1lLT5yZWxuYW1l KTsKKworCWJvdW5kc3BlYyA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKGRh dHVtKSk7CisKKwlpZiAoIUlzQShib3VuZHNwZWMsIFBhcnRpdGlvbkJvdW5kU3BlYykpCisJ CWVsb2coRVJST1IsICJleHBlY3RlZCBQYXJ0aXRpb25Cb3VuZFNwZWMgZm9yIHJlbGF0aW9u IFwiJXNcIiIsCisJCQkgbmFtZS0+cmVsbmFtZSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOworCXJldHVybiBib3VuZHNwZWM7Cit9CisKKy8qCisgKiBjYWxjdWxhdGVfcGFydGl0 aW9uX2JvdW5kX2Zvcl9tZXJnZQorICoKKyAqIENhbGN1bGF0ZXMgdGhlIGJvdW5kIG9mIG1l cmdlZCBwYXJ0aXRpb24gInNwZWMiIGJ5IHVzaW5nIHRoZSBib3VuZHMgb2YKKyAqIHBhcnRp dGlvbnMgdG8gYmUgbWVyZ2VkLgorICoKKyAqIHBhcmVudDoJCQlwYXJ0aXRpb25lZCB0YWJs ZQorICogcGFydE5hbWVzOgkJbmFtZXMgb2YgcGFydGl0aW9ucyB0byBiZSBtZXJnZWQKKyAq IHBhcnRPaWRzOgkJT2lkcyBvZiBwYXJ0aXRpb25zIHRvIGJlIG1lcmdlZAorICogc3BlYyAo b3V0KToJCWJvdW5kcyBzcGVjaWZpY2F0aW9uIG9mIHRoZSBtZXJnZWQgcGFydGl0aW9uCisg KiBwc3RhdGU6CQkJcG9pbnRlciB0byBQYXJzZVN0YXRlIHN0cnVjdCBmb3IgZGV0ZXJtaW5l IGVycm9yIHBvc2l0aW9uCisgKi8KK3ZvaWQKK2NhbGN1bGF0ZV9wYXJ0aXRpb25fYm91bmRf Zm9yX21lcmdlKFJlbGF0aW9uIHBhcmVudCwKKwkJCQkJCQkJCUxpc3QgKnBhcnROYW1lcywK KwkJCQkJCQkJCUxpc3QgKnBhcnRPaWRzLAorCQkJCQkJCQkJUGFydGl0aW9uQm91bmRTcGVj ICpzcGVjLAorCQkJCQkJCQkJUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCVBhcnRpdGlvbktl eSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktleShwYXJlbnQpOworCVBhcnRpdGlvbkJv dW5kU3BlYyAqYm91bmQ7CisKKwlBc3NlcnQoIXNwZWMtPmlzX2RlZmF1bHQpOworCisJc3dp dGNoIChrZXktPnN0cmF0ZWd5KQorCXsKKwkJY2FzZSBQQVJUSVRJT05fU1RSQVRFR1lfUkFO R0U6CisJCQl7CisJCQkJaW50CQkJaTsKKwkJCQlQYXJ0aXRpb25SYW5nZUJvdW5kICoqbG93 ZXJfYm91bmRzOworCQkJCWludAkJCW5wYXJ0cyA9IGxpc3RfbGVuZ3RoKHBhcnRPaWRzKTsK KwkJCQlMaXN0CSAgICpib3VuZHMgPSBOSUw7CisKKwkJCQlsb3dlcl9ib3VuZHMgPSAoUGFy dGl0aW9uUmFuZ2VCb3VuZCAqKikKKwkJCQkJcGFsbG9jMChucGFydHMgKiBzaXplb2YoUGFy dGl0aW9uUmFuZ2VCb3VuZCAqKSk7CisKKwkJCQkvKgorCQkJCSAqIENyZWF0ZSBhcnJheSBv ZiBsb3dlciBib3VuZHMgYW5kIGxpc3Qgb2YKKwkJCQkgKiBQYXJ0aXRpb25Cb3VuZFNwZWMu CisJCQkJICovCisJCQkJZm9yIChpID0gMDsgaSA8IG5wYXJ0czsgaSsrKQorCQkJCXsKKwkJ CQkJYm91bmQgPSBnZXRfcGFydGl0aW9uX2JvdW5kX3NwZWMobGlzdF9udGhfb2lkKHBhcnRP aWRzLCBpKSwKKwkJCQkJCQkJCQkJCQkgKFJhbmdlVmFyICopIGxpc3RfbnRoKHBhcnROYW1l cywgaSkpOworCisJCQkJCWxvd2VyX2JvdW5kc1tpXSA9IG1ha2Vfb25lX3BhcnRpdGlvbl9y Ym91bmQoa2V5LCBpLCBib3VuZC0+bG93ZXJkYXR1bXMsIHRydWUpOworCQkJCQlib3VuZHMg PSBsYXBwZW5kKGJvdW5kcywgYm91bmQpOworCQkJCX0KKworCQkJCS8qIFNvcnQgYXJyYXkg b2YgbG93ZXIgYm91bmRzLiAqLworCQkJCXFzb3J0X2FyZyhsb3dlcl9ib3VuZHMsIG5wYXJ0 cywgc2l6ZW9mKFBhcnRpdGlvblJhbmdlQm91bmQgKiksCisJCQkJCQkgIHFzb3J0X3BhcnRp dGlvbl9yYm91bmRfY21wLCAodm9pZCAqKSBrZXkpOworCisJCQkJLyogUmFuZ2VzIG9mIHBh cnRpdGlvbnMgc2hvdWxkIG5vdCBvdmVybGFwLiAqLworCQkJCWZvciAoaSA9IDE7IGkgPCBu cGFydHM7IGkrKykKKwkJCQl7CisJCQkJCWludAkJCWluZGV4ID0gbG93ZXJfYm91bmRzW2ld LT5pbmRleDsKKwkJCQkJaW50CQkJcHJldl9pbmRleCA9IGxvd2VyX2JvdW5kc1tpIC0gMV0t PmluZGV4OworCisJCQkJCWNoZWNrX3R3b19wYXJ0aXRpb25zX2JvdW5kc19yYW5nZShwYXJl bnQsCisJCQkJCQkJCQkJCQkJICAoUmFuZ2VWYXIgKikgbGlzdF9udGgocGFydE5hbWVzLCBw cmV2X2luZGV4KSwKKwkJCQkJCQkJCQkJCQkgIChQYXJ0aXRpb25Cb3VuZFNwZWMgKikgbGlz dF9udGgoYm91bmRzLCBwcmV2X2luZGV4KSwKKwkJCQkJCQkJCQkJCQkgIChSYW5nZVZhciAq KSBsaXN0X250aChwYXJ0TmFtZXMsIGluZGV4KSwKKwkJCQkJCQkJCQkJCQkgIChQYXJ0aXRp b25Cb3VuZFNwZWMgKikgbGlzdF9udGgoYm91bmRzLCBpbmRleCksCisJCQkJCQkJCQkJCQkJ ICBmYWxzZSwgcHN0YXRlKTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIExvd2VyIGJvdW5k IG9mIGZpcnN0IHBhcnRpdGlvbiBpcyBhIGxvd2VyIGJvdW5kIG9mIG1lcmdlZAorCQkJCSAq IHBhcnRpdGlvbi4KKwkJCQkgKi8KKwkJCQlzcGVjLT5sb3dlcmRhdHVtcyA9CisJCQkJCSgo UGFydGl0aW9uQm91bmRTcGVjICopIGxpc3RfbnRoKGJvdW5kcywgbG93ZXJfYm91bmRzWzBd LT5pbmRleCkpLT5sb3dlcmRhdHVtczsKKworCQkJCS8qCisJCQkJICogVXBwZXIgYm91bmQg b2YgbGFzdCBwYXJ0aXRpb24gaXMgYSB1cHBlciBib3VuZCBvZiBtZXJnZWQKKwkJCQkgKiBw YXJ0aXRpb24uCisJCQkJICovCisJCQkJc3BlYy0+dXBwZXJkYXR1bXMgPQorCQkJCQkoKFBh cnRpdGlvbkJvdW5kU3BlYyAqKSBsaXN0X250aChib3VuZHMsIGxvd2VyX2JvdW5kc1tucGFy dHMgLSAxXS0+aW5kZXgpKS0+dXBwZXJkYXR1bXM7CisKKwkJCQlwZnJlZShsb3dlcl9ib3Vu ZHMpOworCQkJCWxpc3RfZnJlZShib3VuZHMpOworCQkJCWJyZWFrOworCQkJfQorCisJCWNh c2UgUEFSVElUSU9OX1NUUkFURUdZX0xJU1Q6CisJCQl7CisJCQkJTGlzdENlbGwgICAqbGlz dHB0ciwKKwkJCQkJCSAgICpsaXN0cHRyMjsKKworCQkJCS8qIENvbnNvbGlkYXRlIGJvdW5k cyBmb3IgYWxsIHBhcnRpdGlvbnMgaW4gdGhlIGxpc3QuICovCisJCQkJZm9yYm90aChsaXN0 cHRyLCBwYXJ0T2lkcywgbGlzdHB0cjIsIHBhcnROYW1lcykKKwkJCQl7CisJCQkJCVJhbmdl VmFyICAgKm5hbWUgPSAoUmFuZ2VWYXIgKikgbGZpcnN0KGxpc3RwdHIyKTsKKwkJCQkJT2lk CQkJY3VyT2lkID0gbGZpcnN0X29pZChsaXN0cHRyKTsKKworCQkJCQlib3VuZCA9IGdldF9w YXJ0aXRpb25fYm91bmRfc3BlYyhjdXJPaWQsIG5hbWUpOworCQkJCQlzcGVjLT5saXN0ZGF0 dW1zID0gbGlzdF9jb25jYXQoc3BlYy0+bGlzdGRhdHVtcywgYm91bmQtPmxpc3RkYXR1bXMp OworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgcGFydGl0aW9uIHN0cmF0ZWd5OiAlZCIsCisJCQkJIChpbnQpIGtl eS0+c3RyYXRlZ3kpOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBlNDk0 MzA5ZGE4Li4zMWI2ZTJhYjI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC05MjQs NiArOTI0LDE3IEBAIHR5cGVkZWYgc3RydWN0IFBhcnRpdGlvblJhbmdlRGF0dW0KIAlpbnQJ CQlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9 IFBhcnRpdGlvblJhbmdlRGF0dW07CiAKKy8qCisgKiBQYXJ0aXRpb25EZXNjIC0gaW5mbyBh Ym91dCBzaW5nbGUgcGFydGl0aW9uIGZvciBBTFRFUiBUQUJMRSBTUExJVCBQQVJUSVRJT04g Y29tbWFuZAorICovCit0eXBlZGVmIHN0cnVjdCBTaW5nbGVQYXJ0aXRpb25TcGVjCit7CisJ Tm9kZVRhZwkJdHlwZTsKKworCVJhbmdlVmFyICAgKm5hbWU7CQkJLyogbmFtZSBvZiBwYXJ0 aXRpb24gKi8KKwlQYXJ0aXRpb25Cb3VuZFNwZWMgKmJvdW5kOwkvKiBGT1IgVkFMVUVTLCBp ZiBhdHRhY2hpbmcgKi8KK30gU2luZ2xlUGFydGl0aW9uU3BlYzsKKwogLyoKICAqIFBhcnRp dGlvbkNtZCAtIGluZm8gZm9yIEFMVEVSIFRBQkxFL0lOREVYIEFUVEFDSC9ERVRBQ0ggUEFS VElUSU9OIGNvbW1hbmRzCiAgKi8KQEAgLTkzMiw2ICs5NDMsNyBAQCB0eXBlZGVmIHN0cnVj dCBQYXJ0aXRpb25DbWQKIAlOb2RlVGFnCQl0eXBlOwogCVJhbmdlVmFyICAgKm5hbWU7CQkJ LyogbmFtZSBvZiBwYXJ0aXRpb24gdG8gYXR0YWNoL2RldGFjaCAqLwogCVBhcnRpdGlvbkJv dW5kU3BlYyAqYm91bmQ7CS8qIEZPUiBWQUxVRVMsIGlmIGF0dGFjaGluZyAqLworCUxpc3QJ ICAgKnBhcnRsaXN0OwkJLyogbGlzdCBvZiBwYXJ0aXRpb25zLCBmb3IgU1BMSVQgUEFSVElU SU9OIGNvbW1hbmQgKi8KIAlib29sCQljb25jdXJyZW50OwogfSBQYXJ0aXRpb25DbWQ7CiAK QEAgLTIyNDcsNiArMjI1OSw3IEBAIHR5cGVkZWYgZW51bSBBbHRlclRhYmxlVHlwZQogCUFU X0F0dGFjaFBhcnRpdGlvbiwJCQkvKiBBVFRBQ0ggUEFSVElUSU9OICovCiAJQVRfRGV0YWNo UGFydGl0aW9uLAkJCS8qIERFVEFDSCBQQVJUSVRJT04gKi8KIAlBVF9EZXRhY2hQYXJ0aXRp b25GaW5hbGl6ZSwgLyogREVUQUNIIFBBUlRJVElPTiBGSU5BTElaRSAqLworCUFUX01lcmdl UGFydGl0aW9ucywJCQkvKiBNRVJHRSBQQVJUSVRJT05TICovCiAJQVRfQWRkSWRlbnRpdHks CQkJCS8qIEFERCBJREVOVElUWSAqLwogCUFUX1NldElkZW50aXR5LAkJCQkvKiBTRVQgaWRl bnRpdHkgY29sdW1uIG9wdGlvbnMgKi8KIAlBVF9Ecm9wSWRlbnRpdHksCQkJLyogRFJPUCBJ REVOVElUWSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDU5ODRkY2ZhNGIuLmY3NmE3YzMw MjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTMyNCw2ICszMjQsNyBAQCBQR19LRVlXT1JE KCJwYXJhbWV0ZXIiLCBQQVJBTUVURVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInBhcnNlciIsIFBBUlNFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJQUwsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpdGlvbiIsIFBBUlRJVElP TiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicGFydGl0 aW9ucyIsIFBBUlRJVElPTlMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywgUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bh cnRpdGlvbmluZy9wYXJ0Ym91bmRzLmggYi9zcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFy dGJvdW5kcy5oCmluZGV4IDUzYmNjODY3ZGYuLjdiOTViYjczYjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFydGl0aW9uaW5nL3BhcnRib3VuZHMuaApAQCAtMTQzLDQgKzE0MywxMCBAQCBleHRlcm4g aW50CXBhcnRpdGlvbl9yYW5nZV9kYXR1bV9ic2VhcmNoKEZtZ3JJbmZvICpwYXJ0c3VwZnVu YywKIGV4dGVybiBpbnQJcGFydGl0aW9uX2hhc2hfYnNlYXJjaChQYXJ0aXRpb25Cb3VuZElu Zm8gYm91bmRpbmZvLAogCQkJCQkJCQkgICBpbnQgbW9kdWx1cywgaW50IHJlbWFpbmRlcik7 CiAKK2V4dGVybiB2b2lkIGNhbGN1bGF0ZV9wYXJ0aXRpb25fYm91bmRfZm9yX21lcmdlKFJl bGF0aW9uIHBhcmVudCwKKwkJCQkJCQkJCQkJCUxpc3QgKnBhcnROYW1lcywKKwkJCQkJCQkJ CQkJCUxpc3QgKnBhcnRPaWRzLAorCQkJCQkJCQkJCQkJUGFydGl0aW9uQm91bmRTcGVjICpz cGVjLAorCQkJCQkJCQkJCQkJUGFyc2VTdGF0ZSAqcHN0YXRlKTsKKwogI2VuZGlmCQkJCQkJ CS8qIFBBUlRCT1VORFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3BhcnRpdGlvbi1tZXJnZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvcGFydGl0aW9uLW1lcmdlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi45ODQ0NmFhYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3BhcnRpdGlvbi1tZXJnZS5vdXQKQEAgLTAsMCArMSwxOTkgQEAKK1Bh cnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9u OiBzMmIgczJpIHMyYyBzMWIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJi OiBCRUdJTjsKK3N0ZXAgczJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0 MDEnKTsKK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMxYjogQkVHSU47CitzdGVwIHMxbWVy ZzogQUxURVIgVEFCTEUgdHBhcnQgTUVSR0UgUEFSVElUSU9OUyAodHBhcnRfMDBfMTAsIHRw YXJ0XzEwXzIwKSBJTlRPIHRwYXJ0XzAwXzIwOworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBz MnU6IFVQREFURSB0cGFydCBTRVQgdCA9ICd0ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3 YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMydTogPC4uLiBjb21wbGV0 ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7 CisgaXx0ICAgICAgICAgIAorLS0rLS0tLS0tLS0tLS0KKyA1fHRleHQwNSAgICAgCisxNXx0 ZXh0MTUgICAgIAorIDF8dGV4dDAxbW9kaWYKKzI1fHRleHQyNSAgICAgCiszNXx0ZXh0MzUg ICAgIAorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczJiIHMyaSBzMmMg czFicnIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJiOiBCRUdJTjsKK3N0 ZXAgczJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsKK3N0ZXAg czJjOiBDT01NSVQ7CitzdGVwIHMxYnJyOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFU QUJMRSBSRUFEOworc3RlcCBzMW1lcmc6IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJ VElPTlMgKHRwYXJ0XzAwXzEwLCB0cGFydF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsKK3N0 ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJ1OiBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAx bW9kaWYnIHdoZXJlIGkgPSAxOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOwor c3RlcCBzMnU6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJz OiBTRUxFQ1QgKiBGUk9NIHRwYXJ0OworIGl8dCAgICAgICAgICAKKy0tKy0tLS0tLS0tLS0t CisgNXx0ZXh0MDUgICAgIAorMTV8dGV4dDE1ICAgICAKKyAxfHRleHQwMW1vZGlmCisyNXx0 ZXh0MjUgICAgIAorMzV8dGV4dDM1ICAgICAKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVy bXV0YXRpb246IHMyYiBzMmkgczJjIHMxYnMgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMK K3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMg KDEsICd0ZXh0MDEnKTsKK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMxYnM6IEJFR0lOIElT T0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7CitzdGVwIHMxbWVyZzogQUxURVIgVEFCTEUg dHBhcnQgTUVSR0UgUEFSVElUSU9OUyAodHBhcnRfMDBfMTAsIHRwYXJ0XzEwXzIwKSBJTlRP IHRwYXJ0XzAwXzIwOworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMnU6IFVQREFURSB0cGFy dCBTRVQgdCA9ICd0ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3YWl0aW5nIC4uLj4KK3N0 ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMydTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzog Q09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAgICAg IAorLS0rLS0tLS0tLS0tLS0KKyA1fHRleHQwNSAgICAgCisxNXx0ZXh0MTUgICAgIAorIDF8 dGV4dDAxbW9kaWYKKzI1fHRleHQyNSAgICAgCiszNXx0ZXh0MzUgICAgIAorKDUgcm93cykK KworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczJicnIgczJpIHMyYyBzMWIgczFtZXJnIHMy YiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBS RVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgx LCAndGV4dDAxJyk7CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMWI6IEJFR0lOOworc3Rl cCBzMW1lcmc6IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMgKHRwYXJ0XzAw XzEwLCB0cGFydF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsKK3N0ZXAgczJiOiBCRUdJTjsK K3N0ZXAgczJ1OiBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdoZXJlIGkg PSAxOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMnU6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBGUk9N IHRwYXJ0OworIGl8dCAgICAgICAgICAKKy0tKy0tLS0tLS0tLS0tCisgNXx0ZXh0MDUgICAg IAorMTV8dGV4dDE1ICAgICAKKyAxfHRleHQwMW1vZGlmCisyNXx0ZXh0MjUgICAgIAorMzV8 dGV4dDM1ICAgICAKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyYnJy IHMyaSBzMmMgczFicnIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJicnI6 IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyaTogSU5T RVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7CitzdGVwIHMyYzogQ09NTUlU Oworc3RlcCBzMWJycjogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsK K3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFydCBNRVJHRSBQQVJUSVRJT05TICh0cGFy dF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBhcnRfMDBfMjA7CitzdGVwIHMyYjogQkVH SU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNFVCB0ID0gJ3RleHQwMW1vZGlmJyB3aGVy ZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAgczJ1OiA8 Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMyczogU0VMRUNUICog RlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCistLSstLS0tLS0tLS0tLQorIDV8dGV4dDA1 ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0MDFtb2RpZgorMjV8dGV4dDI1ICAgICAK KzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBz MmJyciBzMmkgczJjIHMxYnMgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJi cnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyaTog SU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7CitzdGVwIHMyYzogQ09N TUlUOworc3RlcCBzMWJzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOwor c3RlcCBzMW1lcmc6IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMgKHRwYXJ0 XzAwXzEwLCB0cGFydF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsKK3N0ZXAgczJiOiBCRUdJ TjsKK3N0ZXAgczJ1OiBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdoZXJl IGkgPSAxOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMnU6IDwu Li4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBG Uk9NIHRwYXJ0OworIGl8dCAgICAgICAgICAKKy0tKy0tLS0tLS0tLS0tCisgNXx0ZXh0MDUg ICAgIAorMTV8dGV4dDE1ICAgICAKKyAxfHRleHQwMW1vZGlmCisyNXx0ZXh0MjUgICAgIAor MzV8dGV4dDM1ICAgICAKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMy YnMgczJpIHMyYyBzMWIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJiczog QkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKK3N0ZXAgczJpOiBJTlNFUlQg SU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsKK3N0ZXAgczJjOiBDT01NSVQ7Citz dGVwIHMxYjogQkVHSU47CitzdGVwIHMxbWVyZzogQUxURVIgVEFCTEUgdHBhcnQgTUVSR0Ug UEFSVElUSU9OUyAodHBhcnRfMDBfMTAsIHRwYXJ0XzEwXzIwKSBJTlRPIHRwYXJ0XzAwXzIw Oworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMnU6IFVQREFURSB0cGFydCBTRVQgdCA9ICd0 ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01N SVQ7CitzdGVwIHMydTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3Rl cCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAgICAgIAorLS0rLS0tLS0t LS0tLS0KKyA1fHRleHQwNSAgICAgCisxNXx0ZXh0MTUgICAgIAorIDF8dGV4dDAxbW9kaWYK KzI1fHRleHQyNSAgICAgCiszNXx0ZXh0MzUgICAgIAorKDUgcm93cykKKworCitzdGFydGlu ZyBwZXJtdXRhdGlvbjogczJicyBzMmkgczJjIHMxYnJyIHMxbWVyZyBzMmIgczJ1IHMxYyBz MmMgczJzCitzdGVwIHMyYnM6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7 CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7Citz dGVwIHMyYzogQ09NTUlUOworc3RlcCBzMWJycjogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJF UEVBVEFCTEUgUkVBRDsKK3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFydCBNRVJHRSBQ QVJUSVRJT05TICh0cGFydF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBhcnRfMDBfMjA7 CitzdGVwIHMyYjogQkVHSU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNFVCB0ID0gJ3Rl eHQwMW1vZGlmJyB3aGVyZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1J VDsKK3N0ZXAgczJ1OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVw IHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCistLSstLS0tLS0t LS0tLQorIDV8dGV4dDA1ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0MDFtb2RpZgor MjV8dGV4dDI1ICAgICAKKzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCisKK3N0YXJ0aW5n IHBlcm11dGF0aW9uOiBzMmJzIHMyaSBzMmMgczFicyBzMW1lcmcgczJiIHMydSBzMWMgczJj IHMycworc3RlcCBzMmJzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOwor c3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOworc3Rl cCBzMmM6IENPTU1JVDsKK3N0ZXAgczFiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklB TElaQUJMRTsKK3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFydCBNRVJHRSBQQVJUSVRJ T05TICh0cGFydF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBhcnRfMDBfMjA7CitzdGVw IHMyYjogQkVHSU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNFVCB0ID0gJ3RleHQwMW1v ZGlmJyB3aGVyZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0 ZXAgczJ1OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMyczog U0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCistLSstLS0tLS0tLS0tLQor IDV8dGV4dDA1ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0MDFtb2RpZgorMjV8dGV4 dDI1ICAgICAKKzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2lzb2xhdGlvbl9zY2hlZHVsZQppbmRleCBiMmJlODhlYWQxLi4xMDcxMjU2MTgyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTEwMyw2ICsxMDMsNyBA QCB0ZXN0OiBwYXJ0aXRpb24ta2V5LXVwZGF0ZS0xCiB0ZXN0OiBwYXJ0aXRpb24ta2V5LXVw ZGF0ZS0yCiB0ZXN0OiBwYXJ0aXRpb24ta2V5LXVwZGF0ZS0zCiB0ZXN0OiBwYXJ0aXRpb24t a2V5LXVwZGF0ZS00Cit0ZXN0OiBwYXJ0aXRpb24tbWVyZ2UKIHRlc3Q6IHBscGdzcWwtdG9h c3QKIHRlc3Q6IGNsdXN0ZXItY29uZmxpY3QKIHRlc3Q6IGNsdXN0ZXItY29uZmxpY3QtcGFy dGl0aW9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvcGFydGl0aW9u LW1lcmdlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvcGFydGl0aW9uLW1lcmdl LnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWM0ODczMmM1 OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9wYXJ0aXRp b24tbWVyZ2Uuc3BlYwpAQCAtMCwwICsxLDU0IEBACisjIFZlcmlmeSB0aGF0IE1FUkdFIG9w ZXJhdGlvbiBsb2NrcyBETUwgb3BlcmF0aW9ucyB3aXRoIHBhcnRpdGlvbmVkIHRhYmxlCisK K3NldHVwCit7CisgIERST1AgVEFCTEUgSUYgRVhJU1RTIHRwYXJ0OworICBDUkVBVEUgVEFC TEUgdHBhcnQoaSBpbnQsIHQgdGV4dCkgcGFydGl0aW9uIGJ5IHJhbmdlKGkpOworICBDUkVB VEUgVEFCTEUgdHBhcnRfMDBfMTAgUEFSVElUSU9OIE9GIHRwYXJ0IEZPUiBWQUxVRVMgRlJP TSAoMCkgVE8gKDEwKTsKKyAgQ1JFQVRFIFRBQkxFIHRwYXJ0XzEwXzIwIFBBUlRJVElPTiBP RiB0cGFydCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApOworICBDUkVBVEUgVEFCTEUg dHBhcnRfMjBfMzAgUEFSVElUSU9OIE9GIHRwYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMjApIFRP ICgzMCk7CisgIENSRUFURSBUQUJMRSB0cGFydF9kZWZhdWx0IFBBUlRJVElPTiBPRiB0cGFy dCBERUZBVUxUOworICBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDUsICd0ZXh0MDUnKTsK KyAgSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxNSwgJ3RleHQxNScpOworICBJTlNFUlQg SU5UTyB0cGFydCBWQUxVRVMgKDI1LCAndGV4dDI1Jyk7CisgIElOU0VSVCBJTlRPIHRwYXJ0 IFZBTFVFUyAoMzUsICd0ZXh0MzUnKTsKK30KKwordGVhcmRvd24KK3sKKyAgRFJPUCBUQUJM RSB0cGFydDsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMWIJeyBCRUdJTjsgfQorc3RlcCBz MWJycgl7IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7IH0KK3N0ZXAg czFicwl7IEJFR0lOIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7IH0KK3N0ZXAgczFt ZXJnCXsgQUxURVIgVEFCTEUgdHBhcnQgTUVSR0UgUEFSVElUSU9OUyAodHBhcnRfMDBfMTAs IHRwYXJ0XzEwXzIwKSBJTlRPIHRwYXJ0XzAwXzIwOyB9CitzdGVwIHMxYwl7IENPTU1JVDsg fQorCisKK3Nlc3Npb24gczIKK3N0ZXAgczJiCXsgQkVHSU47IH0KK3N0ZXAgczJicnIJeyBC RUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOyB9CitzdGVwIHMyYnMJeyBC RUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOyB9CitzdGVwIHMyaQl7IElOU0VS VCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOyB9CitzdGVwIHMydQl7IFVQREFU RSB0cGFydCBTRVQgdCA9ICd0ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IH0KK3N0ZXAgczJj CXsgQ09NTUlUOyB9CitzdGVwIHMycwl7IFNFTEVDVCAqIEZST00gdHBhcnQ7IH0KKworCisj IHMyIGluc2VydHMgcm93IGludG8gdGFibGUuIHMxIHN0YXJ0cyBNRVJHRSBQQVJUSVRJT05T IHRoZW4KKyMgczIgdHJ5aW5nIHRvIHVwZGF0ZSBpbnNlcnRlZCByb3cgYW5kIHdhaXRzIHVu dGlsIHMxIGZpbmlzaGVkCisjIE1FUkdFIG9wZXJhdGlvbi4KKworcGVybXV0YXRpb24gczJi IHMyaSBzMmMgczFiIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJzCitwZXJtdXRhdGlvbiBz MmIgczJpIHMyYyBzMWJyciBzMW1lcmcgczJiIHMydSBzMWMgczJjIHMycworcGVybXV0YXRp b24gczJiIHMyaSBzMmMgczFicyBzMW1lcmcgczJiIHMydSBzMWMgczJjIHMycworCitwZXJt dXRhdGlvbiBzMmJyciBzMmkgczJjIHMxYiBzMW1lcmcgczJiIHMydSBzMWMgczJjIHMycwor cGVybXV0YXRpb24gczJicnIgczJpIHMyYyBzMWJyciBzMW1lcmcgczJiIHMydSBzMWMgczJj IHMycworcGVybXV0YXRpb24gczJicnIgczJpIHMyYyBzMWJzIHMxbWVyZyBzMmIgczJ1IHMx YyBzMmMgczJzCisKK3Blcm11dGF0aW9uIHMyYnMgczJpIHMyYyBzMWIgczFtZXJnIHMyYiBz MnUgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMyYnMgczJpIHMyYyBzMWJyciBzMW1lcmcg czJiIHMydSBzMWMgczJjIHMycworcGVybXV0YXRpb24gczJicyBzMmkgczJjIHMxYnMgczFt ZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCmluZGV4IDAzMDJmNzliYjcu LjBiZGNkMmU2MTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVw YXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2Rk bF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwpAQCAtMjk3LDYgKzI5Nyw5IEBAIGdldF9h bHRlcnRhYmxlX3N1YmNtZGluZm8oUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgQVRfRGV0 YWNoUGFydGl0aW9uRmluYWxpemU6CiAJCQkJc3RydHlwZSA9ICJERVRBQ0ggUEFSVElUSU9O IC4uLiBGSU5BTElaRSI7CiAJCQkJYnJlYWs7CisJCQljYXNlIEFUX01lcmdlUGFydGl0aW9u czoKKwkJCQlzdHJ0eXBlID0gIk1FUkdFIFBBUlRJVElPTlMiOworCQkJCWJyZWFrOwogCQkJ Y2FzZSBBVF9BZGRJZGVudGl0eToKIAkJCQlzdHJ0eXBlID0gIkFERCBJREVOVElUWSI7CiAJ CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRp dGlvbl9tZXJnZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9t ZXJnZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDEzYWI2 NTk2MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFy dGl0aW9uX21lcmdlLm91dApAQCAtMCwwICsxLDczNiBAQAorLS0KKy0tIFBBUlRJVElPTlNf TUVSR0UKKy0tIFRlc3RzIGZvciAiQUxURVIgVEFCTEUgLi4uIE1FUkdFIFBBUlRJVElPTlMg Li4uIiBjb21tYW5kCistLQorQ1JFQVRFIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVt YTsKK1NFVCBzZWFyY2hfcGF0aCA9IHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLCBwdWJsaWM7 CistLQorLS0gQlkgUkFOR0UgcGFydGl0aW9uaW5nCistLQorLS0KKy0tIFRlc3QgZm9yIGVy cm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJ TlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVz X2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBU QUJMRSBzYWxlc19kZWMyMDIxIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVT IEZST00gKCcyMDIxLTEyLTAxJykgVE8gKCcyMDIxLTEyLTMxJyk7CitDUkVBVEUgVEFCTEUg c2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19tYXIy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAz LTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAo c2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91 bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0 ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByXzEgUEFSVElUSU9OIE9GIHNhbGVzX2FwcjIw MjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNC0xNScpOwor Q1JFQVRFIFRBQkxFIHNhbGVzX2Fwcl8yIFBBUlRJVElPTiBPRiBzYWxlc19hcHIyMDIyIEZP UiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMTUnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0FMVEVS IFRBQkxFIHNhbGVzX3JhbmdlIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUg VEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOwor LS0gRVJST1I6ICBwYXJ0aXRpb24gd2l0aCBuYW1lICJzYWxlc19mZWIyMDIyIiBhbHJlYWR5 IHVzZWQKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVz X2ZlYjIwMjIsIHNhbGVzX21hcjIwMjIsIHNhbGVzX2ZlYjIwMjIpIElOVE8gc2FsZXNfZmVi X21hcl9hcHIyMDIyOworRVJST1I6ICBwYXJ0aXRpb24gd2l0aCBuYW1lICJzYWxlc19mZWIy MDIyIiBhbHJlYWR5IHVzZWQKK0xJTkUgMTogLi4uZSBNRVJHRSBQQVJUSVRJT05TIChzYWxl c19mZWIyMDIyLCBzYWxlc19tYXIyMDIyLCBzYWxlc19mZWIyLi4uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0g RVJST1I6ICBjYW5ub3QgbWVyZ2Ugbm9uLXRhYmxlIHBhcnRpdGlvbiAic2FsZXNfYXByMjAy MiIKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2Zl YjIwMjIsIHNhbGVzX21hcjIwMjIsIHNhbGVzX2FwcjIwMjIpIElOVE8gc2FsZXNfZmViX21h cl9hcHIyMDIyOworRVJST1I6ICBjYW5ub3QgbWVyZ2Ugbm9uLXRhYmxlIHBhcnRpdGlvbiAi c2FsZXNfYXByMjAyMiIKKy0tIEVSUk9SOiAgaW52YWxpZCBwYXJ0aXRpb25zIG9yZGVyLCBw YXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGNhbiBub3QgYmUgbWVyZ2VkCistLSAoc3BhY2Ug YmV0d2VlbiBzZWN0aW9ucyBzYWxlc19qYW4yMDIyIGFuZCBzYWxlc19tYXIyMDIyKQorQUxU RVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfamFuMjAyMiwg c2FsZXNfbWFyMjAyMikgSU5UTyBzYWxlc19qYW5fbWFyMjAyMjsKK0VSUk9SOiAgbG93ZXIg Ym91bmQgb2YgcGFydGl0aW9uICJzYWxlc19tYXIyMDIyIiBjb25mbGljdHMgd2l0aCB1cHBl ciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2phbjIwMjIiCistLSBFUlJP UjogIGludmFsaWQgcGFydGl0aW9ucyBvcmRlciwgcGFydGl0aW9uICJzYWxlc19qYW4yMDIy IiBjYW4gbm90IGJlIG1lcmdlZAorLS0gKHNwYWNlIGJldHdlZW4gc2VjdGlvbnMgc2FsZXNf ZGVjMjAyMSBhbmQgc2FsZXNfamFuMjAyMikKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1F UkdFIFBBUlRJVElPTlMgKHNhbGVzX2RlYzIwMjEsIHNhbGVzX2phbjIwMjIsIHNhbGVzX2Zl YjIwMjIpIElOVE8gc2FsZXNfZGVjX2phbl9mZWIyMDIyOworRVJST1I6ICBsb3dlciBib3Vu ZCBvZiBwYXJ0aXRpb24gInNhbGVzX2phbjIwMjIiIGNvbmZsaWN0cyB3aXRoIHVwcGVyIGJv dW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiAic2FsZXNfZGVjMjAyMSIKKy0tIE5PIEVSUk9S OiB0ZXN0IGZvciBjdXN0b20gcGFydGl0aW9ucyBvcmRlcgorQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfZmViMjAyMiwgc2FsZXNfbWFyMjAyMiwg c2FsZXNfamFuMjAyMikgSU5UTyBzYWxlc19qYW5fZmViX21hcjIwMjI7CitTRUxFQ1QgYy5v aWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMucmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywg cGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00g cGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hF UkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBpLmluaHBhcmVudCA9ICdzYWxlc19yYW5nZSc6 OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6 OnBnX2NhdGFsb2cudGV4dDsKKyAgICAgICAgICBvaWQgICAgICAgICAgfCByZWxraW5kIHwg aW5oZGV0YWNocGVuZGluZyB8ICAgICAgICAgICAgICAgICAgIHBnX2dldF9leHByICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBzYWxlc19hcHIyMDIyICAgICAgICAgfCBwICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IEZPUiBWQUxVRVMgRlJPTSAoJzA0LTAxLTIwMjInKSBUTyAoJzA1LTAx LTIwMjInKQorIHNhbGVzX2RlYzIwMjEgICAgICAgICB8IHIgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMTItMDEtMjAyMScpIFRPICgnMTItMzEtMjAy MScpCisgc2FsZXNfamFuX2ZlYl9tYXIyMDIyIHwgciAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBGT1IgVkFMVUVTIEZST00gKCcwMS0wMS0yMDIyJykgVE8gKCcwNC0wMS0yMDIyJykK KyBzYWxlc19vdGhlcnMgICAgICAgICAgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IERFRkFVTFQKKyg0IHJvd3MpCisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7CistLQorLS0g QWRkIHJvd3MgaW50byBwYXJ0aXRpb25lZCB0YWJsZSB0aGVuIG1lcmdlIHBhcnRpdGlvbnMK Ky0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNt YW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRF KSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVz X2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAy LTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQ QVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScp IFRPICgnMjAyMi0wNC0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FwcjIwMjIgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAo JzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9G IHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVBVEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNf ZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIw MjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWly bm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQt MTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAg IDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwg ICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAn TXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIy LTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8n LCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEtMDknKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0 Jyk7CitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfcGFydGtleWRlZignc2FsZXNfcmFuZ2Un OjpyZWdjbGFzcyk7CisgcGdfZ2V0X3BhcnRrZXlkZWYgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBSQU5HRSAoc2FsZXNfZGF0ZSkKKygxIHJvdykKKworLS0gc2hvdyBwYXJ0aXRpb25z IHdpdGggY29uZGl0aW9uczoKK1NFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywg Yy5yZWxraW5kLCBpbmhkZXRhY2hwZW5kaW5nLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMu cmVscGFydGJvdW5kLCBjLm9pZCkKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBn X2NhdGFsb2cucGdfaW5oZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5E IGkuaW5ocGFyZW50ID0gJ3NhbGVzX3JhbmdlJzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdf Y2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQn LCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0OworICAgICAg b2lkICAgICAgfCByZWxraW5kIHwgaW5oZGV0YWNocGVuZGluZyB8ICAgICAgICAgICAgICAg ICAgIHBnX2dldF9leHByICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc2FsZXNfYXByMjAyMiB8IHIgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMDQtMDEtMjAyMicpIFRPICgn MDUtMDEtMjAyMicpCisgc2FsZXNfZmViMjAyMiB8IHIgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMDItMDEtMjAyMicpIFRPICgnMDMtMDEtMjAyMicp Cisgc2FsZXNfamFuMjAyMiB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZB TFVFUyBGUk9NICgnMDEtMDEtMjAyMicpIFRPICgnMDItMDEtMjAyMicpCisgc2FsZXNfbWFy MjAyMiB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgn MDMtMDEtMjAyMicpIFRPICgnMDQtMDEtMjAyMicpCisgc2FsZXNfb3RoZXJzICB8IHIgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgREVGQVVMVAorKDUgcm93cykKKworQUxURVIgVEFC TEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfZmViMjAyMiwgc2FsZXNf bWFyMjAyMiwgc2FsZXNfYXByMjAyMikgSU5UTyBzYWxlc19mZWJfbWFyX2FwcjIwMjI7Cist LSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19j YXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFs b2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lk ID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFz cworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBj Lm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRh bG9nLnRleHQ7CisgICAgICAgICAgb2lkICAgICAgICAgIHwgcmVsa2luZCB8IGluaGRldGFj aHBlbmRpbmcgfCAgICAgICAgICAgICAgICAgICBwZ19nZXRfZXhwciAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc2FsZXNfZmViX21hcl9hcHIyMDIyIHwgciAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBGT1IgVkFMVUVTIEZST00gKCcwMi0wMS0yMDIyJykgVE8gKCcwNS0wMS0yMDIyJykK KyBzYWxlc19qYW4yMDIyICAgICAgICAgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IEZPUiBWQUxVRVMgRlJPTSAoJzAxLTAxLTIwMjInKSBUTyAoJzAyLTAxLTIwMjInKQorIHNh bGVzX290aGVycyAgICAgICAgICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgREVG QVVMVAorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxl bmFtZSA9ICdzYWxlc19mZWJfbWFyX2FwcjIwMjInIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRp dGlvbnNfbWVyZ2Vfc2NoZW1hJzsKKyAgICAgICBzY2hlbWFuYW1lICAgICAgICB8ICAgICAg IHRhYmxlbmFtZSAgICAgICB8ICAgICAgICAgICAgICBpbmRleG5hbWUgICAgICAgICAgICAg ICB8IHRhYmxlc3BhY2UgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHBhcnRp dGlvbnNfbWVyZ2Vfc2NoZW1hIHwgc2FsZXNfZmViX21hcl9hcHIyMDIyIHwgc2FsZXNfZmVi X21hcl9hcHIyMDIyX3NhbGVzX2RhdGVfaWR4IHwgICAgICAgICAgICB8IENSRUFURSBJTkRF WCBzYWxlc19mZWJfbWFyX2FwcjIwMjJfc2FsZXNfZGF0ZV9pZHggT04gcGFydGl0aW9uc19t ZXJnZV9zY2hlbWEuc2FsZXNfZmViX21hcl9hcHIyMDIyIFVTSU5HIGJ0cmVlIChzYWxlc19k YXRlKQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX3JhbmdlOworIHNhbGVzbWFu X2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyAgICAgICAgICAgMSB8IE1heSAgICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0y MDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEt MjgtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8 IDAxLTA5LTIwMjIKKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAgfCAgICAgICAgICA1 MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAgIDYgfCBQb2lyb3QgICAgICAgIHwgICAgICAg ICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAgICAgICA4IHwgRXJpY3Nzb24gICAgICB8ICAg ICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKyAgICAgICAgICAgNyB8IExpICAgICAgICAgICAg fCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIyCisgICAgICAgICAgIDkgfCBNdWxsZXIgICAg ICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8g ICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5LTIwMjIKKyAgICAgICAgICAgMyB8IEZv cmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQg fCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAg ICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAg ICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisg ICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAy MgorKDE0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuMjAyMjsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDEgfCBNYXkgICAgICAgICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEt MjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAx LTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAgICAgICAgICAzNzcg fCAwMS0wOS0yMDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYl9tYXJf YXByMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQg fCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAg ICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8 ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAg ICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAgICAgIDcgfCBMaSAgICAg ICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwgTXVs bGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8 IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAg IDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAg ICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAg ICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIy CisgICAgICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYt MjAyMgorKDEwIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzOworIHNhbGVz bWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCist LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0w NC0yMDIyCisoMSByb3cpCisKKy0tIFVzZSBpbmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcwor U0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9GRjsK K1NFTEVDVCAqIEZST00gc2FsZXNfZmViX21hcl9hcHIyMDIyIHdoZXJlIHNhbGVzX2RhdGUg PiAnMjAyMi0wMS0wMSc7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNf YW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAg ICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAg ICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0yMDIyCisgICAgICAgICAgIDggfCBFcmlj c3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDItMjMtMjAyMgorICAgICAgICAgICA3IHwg TGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAg OSB8IE11bGxlciAgICAgICAgfCAgICAgICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAg ICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAg ICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIK KyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0y MDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQt MTMtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8 IDA0LTMwLTIwMjIKKygxMCByb3dzKQorCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOwor U0VUIGVuYWJsZV9zZXFzY2FuID0gT047CitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworLS0K Ky0tIE1lcmdlIHNvbWUgcGFydGl0aW9ucyBpbnRvIERFRkFVTFQgcGFydGl0aW9uCistLQor Q1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25h bWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFS VElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4y MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAx LTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfZmViMjAyMiBQ QVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScp IFRPICgnMjAyMi0wMy0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX21hcjIwMjIgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAo JzIwMjItMDQtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIyMDIyIFBBUlRJVElPTiBP RiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIy LTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxl c19yYW5nZSBERUZBVUxUOworQ1JFQVRFIElOREVYIHNhbGVzX3JhbmdlX3NhbGVzX2RhdGVf aWR4IE9OIHNhbGVzX3JhbmdlIFVTSU5HIGJ0cmVlIChzYWxlc19kYXRlKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAx LTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYn LCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAs ICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAg J1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAy Mi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxl cicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0w NicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAg MzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOwor LS0gTWVyZ2UgcGFydGl0aW9ucyAoaW5jbHVkZSBERUZBVUxUIHBhcnRpdGlvbikgaW50byBw YXJ0aXRpb24gd2l0aCB0aGUgc2FtZQorLS0gbmFtZQorQUxURVIgVEFCTEUgc2FsZXNfcmFu Z2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfamFuMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2Fs ZXNfb3RoZXJzKSBJTlRPIHNhbGVzX290aGVyczsKK3NlbGVjdCAqIGZyb20gc2FsZXNfb3Ro ZXJzOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNh bGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IE1heSAgICAgICAgICAgfCAgICAgICAg IDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAg ICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8 ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKyAgICAgICAgICAgNyB8IExpICAgICAgICAg ICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIyCisgICAgICAgICAgIDkgfCBNdWxsZXIg ICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgorICAgICAgICAgIDEyIHwgUGxh dG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5LTIwMjIKKyAgICAgICAgICAxNCB8 IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoNyByb3dzKQor CistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpw Z19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2Nh dGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2Nh dGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMu b2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdj bGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5k LCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19j YXRhbG9nLnRleHQ7CisgICAgICBvaWQgICAgICB8IHJlbGtpbmQgfCBpbmhkZXRhY2hwZW5k aW5nIHwgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2V4cHIgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzYWxlc19h cHIyMDIyIHwgciAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBGT1IgVkFMVUVTIEZST00g KCcwNC0wMS0yMDIyJykgVE8gKCcwNS0wMS0yMDIyJykKKyBzYWxlc19mZWIyMDIyIHwgciAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBGT1IgVkFMVUVTIEZST00gKCcwMi0wMS0yMDIy JykgVE8gKCcwMy0wMS0yMDIyJykKKyBzYWxlc19vdGhlcnMgIHwgciAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBERUZBVUxUCisoMyByb3dzKQorCitEUk9QIFRBQkxFIHNhbGVzX3Jh bmdlOworLS0KKy0tIFRlc3QgZm9yOgorLS0gICAqIGNvbXBvc2l0ZSBwYXJ0aXRpb24ga2V5 OworLS0gICAqIEdFTkVSQVRFRCBjb2x1bW47CistLSAgICogY29sdW1uIHdpdGggREVGQVVM VCB2YWx1ZS4KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfZGF0ZSAoc2FsZXNtYW5fbmFtZSBW QVJDSEFSKDMwKSwgc2FsZXNfeWVhciBJTlQsIHNhbGVzX21vbnRoIElOVCwgc2FsZXNfZGF5 IElOVCwKKyAgc2FsZXNfZGF0ZSBWQVJDSEFSKDEwKSBHRU5FUkFURUQgQUxXQVlTIEFTCisg ICAgKExQQUQoc2FsZXNfeWVhcjo6dGV4dCwgNCwgJzAnKSB8fCAnLicgfHwgTFBBRChzYWxl c19tb250aDo6dGV4dCwgMiwgJzAnKSB8fCAnLicgfHwgTFBBRChzYWxlc19kYXk6OnRleHQs IDIsICcwJykpIFNUT1JFRCwKKyAgc2FsZXNfZGVwYXJ0bWVudCBWQVJDSEFSKDMwKSBERUZB VUxUICdTYWxlcyBkZXBhcnRtZW50JykKKyAgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc195 ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KTsKK0NSRUFURSBUQUJMRSBzYWxlc19kZWMy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxVRVMgRlJPTSAoMjAyMSwgMTIs IDEpIFRPICgyMDIyLCAxLCAxKTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJ VElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxVRVMgRlJPTSAoMjAyMiwgMSwgMSkgVE8gKDIw MjIsIDIsIDEpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNh bGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAyLCAxKSBUTyAoMjAyMiwgMywgMSk7 CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9S IFZBTFVFUyBGUk9NICgyMDIyLCAzLCAxKSBUTyAoTUFYVkFMVUUsIE1BWFZBTFVFLCBNQVhW QUxVRSk7CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3ll YXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMSwg MTIsIDcpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195 ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjEs IDEyLCA4KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIy LCAxLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIy LCAyLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIy LCAxLCAyKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIy LCAyLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIy LCAzLCAzKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIy LCAzLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIy LCA1LCAxKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfZGF0ZTsKKyBzYWxlc21hbl9uYW1lIHwg c2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNh bGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1h bmFnZXIxICAgICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAgICAgIDcgfCAy MDIxLjEyLjA3IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAy MDIxIHwgICAgICAgICAgMTIgfCAgICAgICAgIDggfCAyMDIxLjEyLjA4IHwgU2FsZXMgZGVw YXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAg ICAgICAgIDEgfCAyMDIyLjAxLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAg ICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIgfCAyMDIyLjAxLjAy IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAg ICAgICAgIDIgfCAgICAgICAgIDQgfCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAor IE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDEg fCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAg ICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMgfCAyMDIyLjAzLjAzIHwgU2FsZXMg ZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMg fCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIz ICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUgfCAgICAgICAgIDEgfCAyMDIyLjA1 LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDkgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxl c19kZWMyMDIyOworIHNhbGVzbWFuX25hbWUgfCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGgg fCBzYWxlc19kYXkgfCBzYWxlc19kYXRlIHwgc2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjEg fCAgICAgICAgICAxMiB8ICAgICAgICAgNyB8IDIwMjEuMTIuMDcgfCBTYWxlcyBkZXBhcnRt ZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAg ICAgOCB8IDIwMjEuMTIuMDggfCBTYWxlcyBkZXBhcnRtZW50CisoMiByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIg fCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRt ZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMyAgICAg IHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAxIHwgMjAyMi4wMS4wMSB8 IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAg ICAgICAxIHwgICAgICAgICAyIHwgMjAyMi4wMS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKygy IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAyMjsKKyBzYWxlc21hbl9uYW1l IHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8 IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQor IE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDQg fCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAg ICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMg ZGVwYXJ0bWVudAorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcjsKKyBz YWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwg c2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMg fCAgICAgICAgIDMgfCAyMDIyLjAzLjAzIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIy ICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAz LjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwg ICAgICAgICAgIDUgfCAgICAgICAgIDEgfCAyMDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVu dAorKDMgcm93cykKKworQUxURVIgVEFCTEUgc2FsZXNfZGF0ZSBNRVJHRSBQQVJUSVRJT05T IChzYWxlc19qYW4yMDIyLCBzYWxlc19mZWIyMDIyKSBJTlRPIHNhbGVzX2phbl9mZWIyMDIy OworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBz YWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjIsIDEsIDEw KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwg c2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIyLCAyLCAx MCk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVz X3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19k ZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2Vy MSAgICAgIHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAgICAgICA3IHwgMjAyMS4x Mi4wNyB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMSB8 ICAgICAgICAgIDEyIHwgICAgICAgICA4IHwgMjAyMS4xMi4wOCB8IFNhbGVzIGRlcGFydG1l bnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAg ICAxIHwgMjAyMi4wMS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwg ICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAyIHwgMjAyMi4wMS4wMiB8IFNh bGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAg ICAyIHwgICAgICAgICA0IHwgMjAyMi4wMi4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5h Z2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICAxIHwgMjAy Mi4wMi4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAy MiB8ICAgICAgICAgICAxIHwgICAgICAgIDEwIHwgMjAyMi4wMS4xMCB8IFNhbGVzIGRlcGFy dG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAg ICAgIDEwIHwgMjAyMi4wMi4xMCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAg IHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAgICAzIHwgMjAyMi4wMy4wMyB8 IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAg ICAgICAzIHwgICAgICAgICA0IHwgMjAyMi4wMy4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBN YW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICA1IHwgICAgICAgICAxIHwg MjAyMi4wNS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKygxMSByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2RlYzIwMjI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxl c19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAor LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAg ICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAgICAgICA3IHwgMjAyMS4xMi4wNyB8IFNhbGVz IGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEy IHwgICAgICAgICA4IHwgMjAyMS4xMi4wOCB8IFNhbGVzIGRlcGFydG1lbnQKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuX2ZlYjIwMjI7Cisgc2FsZXNtYW5fbmFtZSB8 IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBz YWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBN YW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAxIHwg MjAyMi4wMS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAg MjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAyIHwgMjAyMi4wMS4wMiB8IFNhbGVzIGRl cGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwg ICAgICAgICA0IHwgMjAyMi4wMi4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAg ICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICAxIHwgMjAyMi4wMi4w MSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAg ICAgICAgICAxIHwgICAgICAgIDEwIHwgMjAyMi4wMS4xMCB8IFNhbGVzIGRlcGFydG1lbnQK KyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgIDEw IHwgMjAyMi4wMi4xMCB8IFNhbGVzIGRlcGFydG1lbnQKKyg2IHJvd3MpCisKK1NFTEVDVCAq IEZST00gc2FsZXNfb3RoZXI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxl c19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAor LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAg ICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAgICAzIHwgMjAyMi4wMy4wMyB8IFNhbGVz IGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAz IHwgICAgICAgICA0IHwgMjAyMi4wMy4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2Vy MyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICA1IHwgICAgICAgICAxIHwgMjAyMi4w NS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKygzIHJvd3MpCisKK0RST1AgVEFCTEUgc2FsZXNf ZGF0ZTsKKy0tCistLSBUZXN0OiBtZXJnZSBwYXJ0aXRpb25zIG9mIHBhcnRpdGlvbmVkIHRh YmxlIHdpdGggdHJpZ2dlcnMKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFu X2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElU SU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFf MTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7 CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfMjAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBG T1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIw XzMwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMw KTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMzMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5z IEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxLCAgJ1BvaXJvdCcpOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYWZ0 ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdFICdwbHBn c3FsJyBBUyAkQk9EWSQKK0JFR0lOCisJUkFJU0UgTk9USUNFICd0cmlnZ2VyKCUpIGNhbGxl ZDogYWN0aW9uID0gJSwgd2hlbiA9ICUsIGxldmVsID0gJScsIFRHX0FSR1ZbMF0sIFRHX09Q LCBUR19XSEVOLCBUR19MRVZFTDsKKyAgICBSRVRVUk4gTlVMTDsKK0VORDsKKyRCT0RZJDsK K0NSRUFURSBUUklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRfc3RhdGVtZW50X3RyaWdn ZXIKKyAgICBBRlRFUiBJTlNFUlQKKyAgICBPTiBzYWxlc21hbnMKKyAgICBGT1IgRUFDSCBT VEFURU1FTlQKKyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdn ZXIoJ3NhbGVzbWFucycpOworQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5zX2FmdGVyX2luc2Vy dF9yb3dfdHJpZ2dlcgorICAgIEFGVEVSIElOU0VSVAorICAgIE9OIHNhbGVzbWFucworICAg IEZPUiBFQUNIIFJPVworICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVyX2luc2VydF9yb3df dHJpZ2dlcignc2FsZXNtYW5zJyk7CistLSAyIHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUg KHJvdyArIHN0YXRlbWVudCk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwg J01heScpOworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxlZDogYWN0aW9uID0g SU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCitOT1RJQ0U6ICB0cmlnZ2VyKHNh bGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwg PSBTVEFURU1FTlQKKy0tIDEgdHJpZ2dlciBzaG91bGQgZmlyZSBoZXJlIChyb3cpOgorSU5T RVJUIElOVE8gc2FsZXNtYW5zMTBfMjAgVkFMVUVTICgxOSwgJ0l2YW5vdicpOworTk9USUNF OiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0g QUZURVIsIGxldmVsID0gUk9XCitBTFRFUiBUQUJMRSBzYWxlc21hbnMgTUVSR0UgUEFSVElU SU9OUyAoc2FsZXNtYW5zMTBfMjAsIHNhbGVzbWFuczIwXzMwLCBzYWxlc21hbnMzMF80MCkg SU5UTyBzYWxlc21hbnMxMF80MDsKKy0tIDIgdHJpZ2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAo cm93ICsgc3RhdGVtZW50KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDIwLCAn U21pcm5vZmYnKTsKK05PVElDRTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlv biA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFJPVworTk9USUNFOiAgdHJpZ2dl cihzYWxlc21hbnMpIGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxl dmVsID0gU1RBVEVNRU5UCistLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToK K0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CitOT1RJ Q0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4g PSBBRlRFUiwgbGV2ZWwgPSBST1cKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMDFfMTA7Cisg c2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgMSB8IFBvaXJvdAorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9N IHNhbGVzbWFuczEwXzQwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTAgfCBNYXkKKyAgICAgICAg ICAxOSB8IEl2YW5vdgorICAgICAgICAgIDIwIHwgU21pcm5vZmYKKyAgICAgICAgICAzMCB8 IEZvcmQKKyg0IHJvd3MpCisKK0RST1AgVEFCTEUgc2FsZXNtYW5zOworRFJPUCBGVU5DVElP TiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKTsKKy0tCistLSBUZXN0OiBtZXJnZSBwYXJ0 aXRpb25zIHdpdGggZGVsZXRlZCBjb2x1bW5zCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFu cyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNh bGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgx KSBUTyAoMTApOworLS0gQ3JlYXRlIHBhcnRpdGlvbnMgd2l0aCBzb21lIGRlbGV0ZWQgY29s dW1uczoKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMxMF8yMChkMSBWQVJDSEFSKDMwKSwgc2Fs ZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsK K0NSRUFURSBUQUJMRSBzYWxlc21hbnMyMF8zMChzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBL RVksIGQyIElOVCwgIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOworQ1JFQVRFIFRBQkxF IHNhbGVzbWFuczMwXzQwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgZDMgREFURSwg c2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF8y MCBWQUxVRVMgKCdkdW1teSB2YWx1ZSAxJywgMTksICdJdmFub3YnKTsKK0lOU0VSVCBJTlRP IHNhbGVzbWFuczIwXzMwIFZBTFVFUyAoMjAsIDEwMSwgJ1NtaXJub2ZmJyk7CitJTlNFUlQg SU5UTyBzYWxlc21hbnMzMF80MCBWQUxVRVMgKDMxLCBub3coKSwgJ1BvcG92Jyk7CitBTFRF UiBUQUJMRSBzYWxlc21hbnMxMF8yMCBEUk9QIENPTFVNTiBkMTsKK0FMVEVSIFRBQkxFIHNh bGVzbWFuczIwXzMwIERST1AgQ09MVU1OIGQyOworQUxURVIgVEFCTEUgc2FsZXNtYW5zMzBf NDAgRFJPUCBDT0xVTU4gZDM7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMgQVRUQUNIIFBBUlRJ VElPTiBzYWxlc21hbnMxMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApOworQUxU RVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtYW5zMjBfMzAgRk9S IFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0FMVEVSIFRBQkxFIHNhbGVzbWFucyBBVFRB Q0ggUEFSVElUSU9OIHNhbGVzbWFuczMwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0 MCk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAnUG9pcm90Jyk7CitJTlNF UlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScpOworSU5TRVJUIElOVE8gc2Fs ZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMgTUVS R0UgUEFSVElUSU9OUyAoc2FsZXNtYW5zMTBfMjAsIHNhbGVzbWFuczIwXzMwLCBzYWxlc21h bnMzMF80MCkgSU5UTyBzYWxlc21hbnMxMF80MDsKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5z OworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBQb2lyb3QKKyAgICAgICAgICAxOSB8IEl2YW5v dgorICAgICAgICAgIDEwIHwgTWF5CisgICAgICAgICAgMjAgfCBTbWlybm9mZgorICAgICAg ICAgIDMxIHwgUG9wb3YKKyAgICAgICAgICAzMCB8IEZvcmQKKyg2IHJvd3MpCisKK3NlbGVj dCAqIGZyb20gc2FsZXNtYW5zMDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IFBvaXJv dAorKDEgcm93KQorCitzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczEwXzQwOworIHNhbGVzbWFu X2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgMTkgfCBJdmFub3YKKyAgICAgICAgICAxMCB8IE1heQorICAgICAgICAgIDIw IHwgU21pcm5vZmYKKyAgICAgICAgICAzMSB8IFBvcG92CisgICAgICAgICAgMzAgfCBGb3Jk CisoNSByb3dzKQorCitEUk9QIFRBQkxFIHNhbGVzbWFuczsKKy0tCistLSBUZXN0OiBtZXJn ZSBzdWItcGFydGl0aW9ucworLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNt YW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5U LCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitD UkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRF IFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19tYXIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfYXByMjAyMiAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp LCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5H RSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMl8wMV8xMCBQQVJU SVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykg VE8gKCcyMDIyLTA0LTEwJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMl8xMF8yMCBQ QVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEw JykgVE8gKCcyMDIyLTA0LTIwJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMl8yMF8z MCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0 LTIwJykgVE8gKCcyMDIyLTA1LTAxJyk7CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBBVFRB Q0ggUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0w MScpIFRPICgnMjAyMi0wNS0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJU SVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0NSRUFURSBJTkRFWCBzYWxlc19yYW5n ZV9zYWxlc19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBVU0lORyBidHJlZSAoc2FsZXNfZGF0 ZSk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAx MDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgy LCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAn MjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0Rl ZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0w My0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29u JywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgw LCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIs ICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIw MjItMDUtMDQnKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7Cisgc2FsZXNtYW5faWQg fCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAg ICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAxLTMxLTIwMjIK KyAgICAgICAgICAxMCB8IEhhbGRlciAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMS0yOC0y MDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEt MDktMjAyMgorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8 IDAyLTEwLTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAx NTAgfCAwMi0xMS0yMDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAg ICAgMTg1IHwgMDItMjMtMjAyMgorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAg ICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAg fCAgICAgICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAg ICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgICA1IHwgRGVldiAg ICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRy dW1wICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgIDQg fCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAg ICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAg ICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCiso MTQgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOworIHNhbGVzbWFuX2lk IHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIy CisgICAgICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYt MjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0 LTEzLTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAg fCAwNC0zMC0yMDIyCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjJf MDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwg c2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAg ICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAg ICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNh bGVzX2FwcjIwMjJfMTBfMjA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2Fs ZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA0IHwgSXZhbm92ICAg ICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKygxIHJvdykKKworU0VMRUNUICog RlJPTSBzYWxlc19hcHIyMDIyXzIwXzMwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFt ZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMyB8IEZv cmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0zMC0yMDIyCisoMSByb3cpCisKK0FM VEVSIFRBQkxFIHNhbGVzX2FwcjIwMjIgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfYXByMjAy Ml8wMV8xMCwgc2FsZXNfYXByMjAyMl8xMF8yMCwgc2FsZXNfYXByMjAyMl8yMF8zMCkgSU5U TyBzYWxlc19hcHJfYWxsOworU0VMRUNUICogRlJPTSBzYWxlc19yYW5nZTsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDEgfCBNYXkgICAgICAgICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEt MjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAx LTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAgICAgICAgICAzNzcg fCAwMS0wOS0yMDIyCisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAg NTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAg ICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAg ICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAg IHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAg ICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRv ICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAgIDUgfCBE ZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAgIDEx IHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAg ICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAg ICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgor ICAgICAgICAgIDE0IHwgU21pdGggICAgICAgICB8ICAgICAgICAgIDUxMCB8IDA1LTA0LTIw MjIKKygxNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNt YW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3 LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAgfCAw NC0wNi0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUw IHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAg MjAwMCB8IDA0LTMwLTIwMjIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXBy X2FsbDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBz YWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAg ICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAg ICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAg fCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAg ICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorKDQgcm93cykKKworRFJPUCBUQUJM RSBzYWxlc19yYW5nZTsKKy0tCistLSBCWSBMSVNUIHBhcnRpdGlvbmluZworLS0KKy0tCist LSBUZXN0OiBzcGVjaWZpYyBlcnJvcnMgZm9yIEJZIExJU1QgcGFydGl0aW9uaW5nCistLQor Q1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFM V0FZUyBBUyBJREVOVElUWSwKKyBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLAorIHNhbGVz X3N0YXRlIFZBUkNIQVIoMjApLAorIHNhbGVzX2Ftb3VudCBJTlQsCisgc2FsZXNfZGF0ZSBE QVRFKQorUEFSVElUSU9OIEJZIExJU1QgKHNhbGVzX3N0YXRlKTsKK0NSRUFURSBUQUJMRSBz YWxlc19ub3JkIFBBUlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdNdXJt YW5zaycsICdTdC4gUGV0ZXJzYnVyZycsICdVa2h0YScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X3dlc3QgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpo JywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKTsKK0NSRUFURSBUQUJMRSBzYWxlc19lYXN0IFBB UlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJh cm92c2snLCAnVmxhZGl2b3N0b2snKTsKK0NSRUFURSBUQUJMRSBzYWxlc19jZW50cmFsIFBB UlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4n LCAnVm9sZ29ncmFkJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBP RiBzYWxlc19saXN0IERFRkFVTFQ7CitDUkVBVEUgVEFCTEUgc2FsZXNfbGlzdDIgKExJS0Ug c2FsZXNfbGlzdCkgUEFSVElUSU9OIEJZIExJU1QgKHNhbGVzX3N0YXRlKTsKK0NSRUFURSBU QUJMRSBzYWxlc19ub3JkMiBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdDIgRk9SIFZBTFVFUyBJ TiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfb3RoZXJzMiBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdDIgREVGQVVMVDsKK0NS RUFURSBUQUJMRSBzYWxlc19leHRlcm5hbCAoTElLRSBzYWxlc19saXN0KTsKK0NSRUFURSBU QUJMRSBzYWxlc19leHRlcm5hbDIgKHZjaCBWQVJDSEFSKDUpKTsKKy0tIEVSUk9SOiAgcGFy dGl0aW9uIGJvdW5kIGZvciByZWxhdGlvbiAic2FsZXNfZXh0ZXJuYWwiIGlzIG51bGwKK0FM VEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2Fs ZXNfZWFzdCwgc2FsZXNfZXh0ZXJuYWwpIElOVE8gc2FsZXNfYWxsOworRVJST1I6ICBwYXJ0 aXRpb24gYm91bmQgZm9yIHJlbGF0aW9uICJzYWxlc19leHRlcm5hbCIgaXMgbnVsbAorLS0g RVJST1I6ICBwYXJ0aXRpb24gYm91bmQgZm9yIHJlbGF0aW9uICJzYWxlc19leHRlcm5hbDIi IGlzIG51bGwKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0UgUEFSVElUSU9OUyAoc2Fs ZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNfZXh0ZXJuYWwyKSBJTlRPIHNhbGVzX2FsbDsK K0VSUk9SOiAgcGFydGl0aW9uIGJvdW5kIGZvciByZWxhdGlvbiAic2FsZXNfZXh0ZXJuYWwy IiBpcyBudWxsCistLSBFUlJPUjogIHJlbGF0aW9uICJzYWxlc19ub3JkMiIgaXMgbm90IGEg cGFydGl0aW9uIG9mIHJlbGF0aW9uICJzYWxlc19saXN0IgorQUxURVIgVEFCTEUgc2FsZXNf bGlzdCBNRVJHRSBQQVJUSVRJT05TIChzYWxlc193ZXN0LCBzYWxlc19ub3JkMiwgc2FsZXNf ZWFzdCkgSU5UTyBzYWxlc19hbGw7CitFUlJPUjogIHJlbGF0aW9uICJzYWxlc19ub3JkMiIg aXMgbm90IGEgcGFydGl0aW9uIG9mIHJlbGF0aW9uICJzYWxlc19saXN0IgorRFJPUCBUQUJM RSBzYWxlc19leHRlcm5hbDI7CitEUk9QIFRBQkxFIHNhbGVzX2V4dGVybmFsOworRFJPUCBU QUJMRSBzYWxlc19saXN0MjsKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKy0tCistLSBUZXN0 OiBCWSBMSVNUIHBhcnRpdGlvbmluZywgTUVSR0UgUEFSVElUSU9OUyB3aXRoIGRhdGEKKy0t CitDUkVBVEUgVEFCTEUgc2FsZXNfbGlzdAorKHNhbGVzbWFuX2lkIElOVCBHRU5FUkFURUQg QUxXQVlTIEFTIElERU5USVRZLAorIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksCisgc2Fs ZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2FsZXNfYW1vdW50IElOVCwKKyBzYWxlc19kYXRl IERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAoc2FsZXNfc3RhdGUpOworQ1JFQVRFIElOREVY IHNhbGVzX2xpc3Rfc2FsZXNtYW5fbmFtZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJl ZSAoc2FsZXNtYW5fbmFtZSk7CitDUkVBVEUgSU5ERVggc2FsZXNfbGlzdF9zYWxlc19zdGF0 ZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2FsZXNfc3RhdGUpOworQ1JFQVRF IFRBQkxFIHNhbGVzX25vcmQgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJ TiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfd2VzdCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgn Vm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycpOworQ1JFQVRFIFRBQkxFIHNhbGVz X2Vhc3QgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4n LCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2Nl bnRyYWwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2Nvdycs ICdLYXphbicsICdWb2xnb2dyYWQnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFS VElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVMVDsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3Qg KHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUp IFZBTFVFUyAoJ1RydW1wJywgICAgJ01hZ2FkYW4nLCAgICAgICAgMTAwMCwgJzIwMjItMDMt MDEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0 YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1NtaXJub2ZmJywgJ1Nt b2xlbnNrJywgICAgICAgNTAwLCAgJzIwMjItMDMtMDMnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVz X2RhdGUpIFZBTFVFUyAoJ0ZvcmQnLCAgICAgJ1N0LiBQZXRlcnNidXJnJywgMjAwMCwgJzIw MjItMDMtMDUnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNh bGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0l2YW5vdics ICAgJ01vc2NvdycsICAgICAgICAgNzUwLCAgJzIwMjItMDMtMDQnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQs IHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0RlZXYnLCAgICAgJ1Zvcm9uZXpoJywgICAgICAgMjUw LCAgJzIwMjItMDMtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25h bWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1Bv aXJvdCcsICAgJ0themFuJywgICAgICAgICAgMTAwMCwgJzIwMjItMDMtMDEnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19h bW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ01heScsICAgICAgJ1VraHRhJywgICAgICAg ICAgMTIwMCwgJzIwMjItMDMtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVz bWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVF UyAoJ0xpJywgICAgICAgJ1ZsYWRpdm9zdG9rJywgICAgMTE1MCwgJzIwMjItMDMtMDknKTsK K0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBz YWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ01heScsICAgICAgJ1VraHRhJywg ICAgICAgICAgMTIwMCwgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3Qg KHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUp IFZBTFVFUyAoJ0hhbGRlcicsICAgJ011cm1hbnNrJywgICAgICAgODAwLCAgJzIwMjItMDMt MDInKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0 YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ011bGxlcicsICAgJ0Jy eWFuc2snLCAgICAgICAgNjUwLCAgJzIwMjItMDMtMDUnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVz X2RhdGUpIFZBTFVFUyAoJ1NtaXRoJywgICAgJ1ZvbGdvZ3JhZCcsICAgICAgMzUwLCAgJzIw MjItMDMtMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNh bGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0dhbmRpJywg ICAgJ01vc2NvdycsICAgICAgICAgMTUwLCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQs IHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1BsYXRvJywgICAgJ1Zvcm9uZXpoJywgICAgICAgOTUw LCAgJzIwMjItMDMtMDUnKTsKKy0tIHNob3cgcGFydGl0aW9ucyB3aXRoIGNvbmRpdGlvbnM6 CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMucmVsa2luZCwgaW5oZGV0 YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5v aWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVy aXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBpLmluaHBhcmVudCA9ICdz YWxlc19saXN0Jzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0YWxvZy5wZ19nZXRfZXhw cihjLnJlbHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBjLm9pZDo6cGdfY2F0YWxv Zy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0OworICAgICAgb2lkICAgICAgfCByZWxraW5k IHwgaW5oZGV0YWNocGVuZGluZyB8ICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9leHBy ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgc2FsZXNfY2VudHJhbCB8IHIgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dy YWQnKQorIHNhbGVzX2Vhc3QgICAgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IEZP UiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snKQor IHNhbGVzX25vcmQgICAgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IEZPUiBWQUxV RVMgSU4gKCdNdXJtYW5zaycsICdTdC4gUGV0ZXJzYnVyZycsICdVa2h0YScpCisgc2FsZXNf d2VzdCAgICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAo J1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKQorIHNhbGVzX290aGVycyAgfCBy ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IERFRkFVTFQKKyg1IHJvd3MpCisKK0FMVEVS IFRBQkxFIHNhbGVzX2xpc3QgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNf ZWFzdCwgc2FsZXNfY2VudHJhbCkgSU5UTyBzYWxlc19hbGw7CistLSBzaG93IHBhcnRpdGlv bnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNz LCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo Yy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywg cGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBB TkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfbGlzdCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBn X2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxU JywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKyAgICAg b2lkICAgICAgfCByZWxraW5kIHwgaW5oZGV0YWNocGVuZGluZyB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfZXhwciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHNhbGVzX2FsbCAgICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg Rk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snLCAnTWFn YWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJywgJ01vc2NvdycsICdLYXphbics ICdWb2xnb2dyYWQnKQorIHNhbGVzX25vcmQgICB8IHIgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgRk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1Vr aHRhJykKKyBzYWxlc19vdGhlcnMgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IERF RkFVTFQKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfbGlzdDsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCAgc2FsZXNfc3RhdGUgICB8IHNhbGVzX2Ftb3VudCB8 IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAyIHwgU21p cm5vZmYgICAgICB8IFNtb2xlbnNrICAgICAgIHwgICAgICAgICAgNTAwIHwgMDMtMDMtMjAy MgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8IFZvcm9uZXpoICAgICAgIHwgICAg ICAgICAgMjUwIHwgMDMtMDctMjAyMgorICAgICAgICAgIDExIHwgTXVsbGVyICAgICAgICB8 IEJyeWFuc2sgICAgICAgIHwgICAgICAgICAgNjUwIHwgMDMtMDUtMjAyMgorICAgICAgICAg IDE0IHwgUGxhdG8gICAgICAgICB8IFZvcm9uZXpoICAgICAgIHwgICAgICAgICAgOTUwIHwg MDMtMDUtMjAyMgorICAgICAgICAgICAxIHwgVHJ1bXAgICAgICAgICB8IE1hZ2FkYW4gICAg ICAgIHwgICAgICAgICAxMDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgICA4IHwgTGkgICAg ICAgICAgICB8IFZsYWRpdm9zdG9rICAgIHwgICAgICAgICAxMTUwIHwgMDMtMDktMjAyMgor ICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8IE1vc2NvdyAgICAgICAgIHwgICAgICAg ICAgNzUwIHwgMDMtMDQtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8IEth emFuICAgICAgICAgIHwgICAgICAgICAxMDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgIDEy IHwgU21pdGggICAgICAgICB8IFZvbGdvZ3JhZCAgICAgIHwgICAgICAgICAgMzUwIHwgMDMt MTAtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8IE1vc2NvdyAgICAgICAg IHwgICAgICAgICAgMTUwIHwgMDMtMDgtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAg ICAgICB8IFN0LiBQZXRlcnNidXJnIHwgICAgICAgICAyMDAwIHwgMDMtMDUtMjAyMgorICAg ICAgICAgICA3IHwgTWF5ICAgICAgICAgICB8IFVraHRhICAgICAgICAgIHwgICAgICAgICAx MjAwIHwgMDMtMDYtMjAyMgorICAgICAgICAgICA5IHwgTWF5ICAgICAgICAgICB8IFVraHRh ICAgICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMTEtMjAyMgorICAgICAgICAgIDEwIHwg SGFsZGVyICAgICAgICB8IE11cm1hbnNrICAgICAgIHwgICAgICAgICAgODAwIHwgMDMtMDIt MjAyMgorKDE0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfbm9yZDsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCAgc2FsZXNfc3RhdGUgICB8IHNhbGVzX2Ftb3VudCB8 IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAzIHwgRm9y ZCAgICAgICAgICB8IFN0LiBQZXRlcnNidXJnIHwgICAgICAgICAyMDAwIHwgMDMtMDUtMjAy MgorICAgICAgICAgICA3IHwgTWF5ICAgICAgICAgICB8IFVraHRhICAgICAgICAgIHwgICAg ICAgICAxMjAwIHwgMDMtMDYtMjAyMgorICAgICAgICAgICA5IHwgTWF5ICAgICAgICAgICB8 IFVraHRhICAgICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMTEtMjAyMgorICAgICAgICAg IDEwIHwgSGFsZGVyICAgICAgICB8IE11cm1hbnNrICAgICAgIHwgICAgICAgICAgODAwIHwg MDMtMDItMjAyMgorKDQgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19hbGw7Cisgc2Fs ZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQg fCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJu b2ZmICAgICAgfCBTbW9sZW5zayAgICB8ICAgICAgICAgIDUwMCB8IDAzLTAzLTIwMjIKKyAg ICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCBWb3JvbmV6aCAgICB8ICAgICAgICAgIDI1 MCB8IDAzLTA3LTIwMjIKKyAgICAgICAgICAxMSB8IE11bGxlciAgICAgICAgfCBCcnlhbnNr ICAgICB8ICAgICAgICAgIDY1MCB8IDAzLTA1LTIwMjIKKyAgICAgICAgICAxNCB8IFBsYXRv ICAgICAgICAgfCBWb3JvbmV6aCAgICB8ICAgICAgICAgIDk1MCB8IDAzLTA1LTIwMjIKKyAg ICAgICAgICAgMSB8IFRydW1wICAgICAgICAgfCBNYWdhZGFuICAgICB8ICAgICAgICAgMTAw MCB8IDAzLTAxLTIwMjIKKyAgICAgICAgICAgOCB8IExpICAgICAgICAgICAgfCBWbGFkaXZv c3RvayB8ICAgICAgICAgMTE1MCB8IDAzLTA5LTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5v diAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAg ICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCBLYXphbiAgICAgICB8ICAgICAgICAgMTAw MCB8IDAzLTAxLTIwMjIKKyAgICAgICAgICAxMiB8IFNtaXRoICAgICAgICAgfCBWb2xnb2dy YWQgICB8ICAgICAgICAgIDM1MCB8IDAzLTEwLTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRp ICAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAgIDE1MCB8IDAzLTA4LTIwMjIKKygx MCByb3dzKQorCistLSBVc2UgaW5kZXhzY2FuIGZvciB0ZXN0IGluZGV4ZXMgYWZ0ZXIgbWVy Z2UgcGFydGl0aW9ucworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NFVCBlbmFibGVf c2Vxc2NhbiA9IE9GRjsKK1NFTEVDVCAqIEZST00gc2FsZXNfYWxsIFdIRVJFIHNhbGVzX3N0 YXRlID0gJ01vc2Nvdyc7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNf c3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAg IDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCBNb3Nj b3cgICAgICB8ICAgICAgICAgIDE1MCB8IDAzLTA4LTIwMjIKKygyIHJvd3MpCisKK1NFTEVD VCAqIEZST00gc2FsZXNfbGlzdCBXSEVSRSBzYWxlc19zdGF0ZSA9ICdNb3Njb3cnOworIHNh bGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3N0YXRlIHwgc2FsZXNfYW1vdW50 IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDQgfCBJdmFu b3YgICAgICAgIHwgTW9zY293ICAgICAgfCAgICAgICAgICA3NTAgfCAwMy0wNC0yMDIyCisg ICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwgTW9zY293ICAgICAgfCAgICAgICAgICAx NTAgfCAwMy0wOC0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3Qg V0hFUkUgc2FsZXNtYW5fbmFtZSA9ICdJdmFub3YnOworIHNhbGVzbWFuX2lkIHwgc2FsZXNt YW5fbmFtZSB8IHNhbGVzX3N0YXRlIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgTW9zY293 ICAgICAgfCAgICAgICAgICA3NTAgfCAwMy0wNC0yMDIyCisoMSByb3cpCisKK1NFVCBlbmFi bGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPTjsKK0RST1AgVEFC TEUgc2FsZXNfbGlzdDsKKy0tCitEUk9QIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVt YTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGYwOTg3ZmY1MzcuLjQy Y2ZlYWIyMGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTE5LDcg KzExOSw3IEBAIHRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9t YWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRyCiAjIFRoZSBzdGF0cyB0ZXN0 IHJlc2V0cyBzdGF0cywgc28gbm90aGluZyBlbHNlIG5lZWRpbmcgc3RhdHMgYWNjZXNzIGNh biBiZSBpbgogIyB0aGlzIGdyb3VwLgogIyAtLS0tLS0tLS0tCi10ZXN0OiBwYXJ0aXRpb25f am9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFy dGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21w cmVzc2lvbiBtZW1vaXplIHN0YXRzCit0ZXN0OiBwYXJ0aXRpb25fbWVyZ2UgcGFydGl0aW9u X2pvaW4gcGFydGl0aW9uX3BydW5lIHJlbG9wdGlvbnMgaGFzaF9wYXJ0IGluZGV4aW5nIHBh cnRpdGlvbl9hZ2dyZWdhdGUgcGFydGl0aW9uX2luZm8gdHVwbGVzb3J0IGV4cGxhaW4gY29t cHJlc3Npb24gbWVtb2l6ZSBzdGF0cwogCiAjIGV2ZW50X3RyaWdnZXIgZGVwZW5kcyBvbiBj cmVhdGVfYW0gYW5kIGNhbm5vdCBydW4gY29uY3VycmVudGx5IHdpdGgKICMgYW55IHRlc3Qg dGhhdCBydW5zIERETApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0 aW9uX21lcmdlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGJmOTBmZDYyMQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJn ZS5zcWwKQEAgLTAsMCArMSw0MzQgQEAKKy0tCistLSBQQVJUSVRJT05TX01FUkdFCistLSBU ZXN0cyBmb3IgIkFMVEVSIFRBQkxFIC4uLiBNRVJHRSBQQVJUSVRJT05TIC4uLiIgY29tbWFu ZAorLS0KKworQ1JFQVRFIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKK1NFVCBz ZWFyY2hfcGF0aCA9IHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLCBwdWJsaWM7CisKKy0tCist LSBCWSBSQU5HRSBwYXJ0aXRpb25pbmcKKy0tCisKKy0tCistLSBUZXN0IGZvciBlcnJvciBj b2RlcworLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBz YWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRl IERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUg c2FsZXNfZGVjMjAyMSBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMS0xMi0wMScpIFRPICgnMjAyMS0xMi0zMScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAy LTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQ QVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScp IFRPICgnMjAyMi0wNC0wMScpOworCitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAoc2Fs ZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQg SU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7 CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByXzEgUEFSVElUSU9OIE9GIHNhbGVzX2FwcjIwMjIg Rk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNC0xNScpOworQ1JF QVRFIFRBQkxFIHNhbGVzX2Fwcl8yIFBBUlRJVElPTiBPRiBzYWxlc19hcHIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDQtMTUnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0FMVEVSIFRB QkxFIHNhbGVzX3JhbmdlIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CisKK0NSRUFURSBU QUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisK Ky0tIEVSUk9SOiAgcGFydGl0aW9uIHdpdGggbmFtZSAic2FsZXNfZmViMjAyMiIgYWxyZWFk eSB1c2VkCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBNRVJHRSBQQVJUSVRJT05TIChzYWxl c19mZWIyMDIyLCBzYWxlc19tYXIyMDIyLCBzYWxlc19mZWIyMDIyKSBJTlRPIHNhbGVzX2Zl Yl9tYXJfYXByMjAyMjsKKy0tIEVSUk9SOiAgY2Fubm90IG1lcmdlIG5vbi10YWJsZSBwYXJ0 aXRpb24gInNhbGVzX2FwcjIwMjIiCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBNRVJHRSBQ QVJUSVRJT05TIChzYWxlc19mZWIyMDIyLCBzYWxlc19tYXIyMDIyLCBzYWxlc19hcHIyMDIy KSBJTlRPIHNhbGVzX2ZlYl9tYXJfYXByMjAyMjsKKy0tIEVSUk9SOiAgaW52YWxpZCBwYXJ0 aXRpb25zIG9yZGVyLCBwYXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGNhbiBub3QgYmUgbWVy Z2VkCistLSAoc3BhY2UgYmV0d2VlbiBzZWN0aW9ucyBzYWxlc19qYW4yMDIyIGFuZCBzYWxl c19tYXIyMDIyKQorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAo c2FsZXNfamFuMjAyMiwgc2FsZXNfbWFyMjAyMikgSU5UTyBzYWxlc19qYW5fbWFyMjAyMjsK Ky0tIEVSUk9SOiAgaW52YWxpZCBwYXJ0aXRpb25zIG9yZGVyLCBwYXJ0aXRpb24gInNhbGVz X2phbjIwMjIiIGNhbiBub3QgYmUgbWVyZ2VkCistLSAoc3BhY2UgYmV0d2VlbiBzZWN0aW9u cyBzYWxlc19kZWMyMDIxIGFuZCBzYWxlc19qYW4yMDIyKQorQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfZGVjMjAyMSwgc2FsZXNfamFuMjAyMiwg c2FsZXNfZmViMjAyMikgSU5UTyBzYWxlc19kZWNfamFuX2ZlYjIwMjI7CisKKy0tIE5PIEVS Uk9SOiB0ZXN0IGZvciBjdXN0b20gcGFydGl0aW9ucyBvcmRlcgorQUxURVIgVEFCTEUgc2Fs ZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfZmViMjAyMiwgc2FsZXNfbWFyMjAy Miwgc2FsZXNfamFuMjAyMikgSU5UTyBzYWxlc19qYW5fZmViX21hcjIwMjI7CisKK1NFTEVD VCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgYy5yZWxraW5kLCBpbmhkZXRhY2hwZW5k aW5nLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkKKyAg RlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaQor ICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0gJ3NhbGVzX3Jh bmdlJzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJl bHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdj bGFzczo6cGdfY2F0YWxvZy50ZXh0OworCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworCist LQorLS0gQWRkIHJvd3MgaW50byBwYXJ0aXRpb25lZCB0YWJsZSB0aGVuIG1lcmdlIHBhcnRp dGlvbnMKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwg c2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0 ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxF IHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJP TSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxl c19mZWIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcy MDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFy MjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0w My0wMScpIFRPICgnMjAyMi0wNC0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FwcjIwMjIg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEn KSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVBVEUgSU5ERVggc2FsZXNfcmFuZ2Vf c2FsZXNfZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUp OworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAx MDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgy LCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAn MjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0Rl ZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0w My0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29u JywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgw LCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIs ICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIw MjItMDUtMDQnKTsKKworU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3BhcnRrZXlkZWYoJ3Nh bGVzX3JhbmdlJzo6cmVnY2xhc3MpOworCistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25k aXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQs IGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91 bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5w Z19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJl bnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBn X2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpw Z19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisKK0FMVEVSIFRBQkxFIHNh bGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2ZlYjIwMjIsIHNhbGVzX21hcjIw MjIsIHNhbGVzX2FwcjIwMjIpIElOVE8gc2FsZXNfZmViX21hcl9hcHIyMDIyOworCistLSBz aG93IHBhcnRpdGlvbnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRh bG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cu cGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cu cGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0g aS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcwor ICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9p ZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9n LnRleHQ7CisKK1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAn c2FsZXNfZmViX21hcl9hcHIyMDIyJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25zX21l cmdlX3NjaGVtYSc7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7CitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYl9tYXJfYXByMjAy MjsKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzOworCistLSBVc2UgaW5kZXhzY2FuIGZv ciB0ZXN0IGluZGV4ZXMKK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxl X3NlcXNjYW4gPSBPRkY7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViX21hcl9hcHIyMDIy IHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7CisKK1NFVCBlbmFibGVfaW5kZXhz Y2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPTjsKKworRFJPUCBUQUJMRSBzYWxl c19yYW5nZTsKKworLS0KKy0tIE1lcmdlIHNvbWUgcGFydGl0aW9ucyBpbnRvIERFRkFVTFQg cGFydGl0aW9uCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJ TlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVz X2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBU QUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVBVEUgVEFCTEUg c2FsZXNfZmViMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X21hcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0 LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBB UlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworQ1JFQVRFIElOREVYIHNhbGVzX3Jh bmdlX3NhbGVzX2RhdGVfaWR4IE9OIHNhbGVzX3JhbmdlIFVTSU5HIGJ0cmVlIChzYWxlc19k YXRlKTsKKworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01heScsICAg ICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0wNC0zMCcp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdicsICAgNzUw LCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNSwg ICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1LCAgJzIw MjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwgICdFcmlj c3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIwMjItMDEt MjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVtcCcsICAg IDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEtMDknKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwg ICcyMDIyLTA1LTA0Jyk7CisKKy0tIE1lcmdlIHBhcnRpdGlvbnMgKGluY2x1ZGUgREVGQVVM VCBwYXJ0aXRpb24pIGludG8gcGFydGl0aW9uIHdpdGggdGhlIHNhbWUKKy0tIG5hbWUKK0FM VEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2phbjIwMjIs IHNhbGVzX21hcjIwMjIsIHNhbGVzX290aGVycykgSU5UTyBzYWxlc19vdGhlcnM7CisKK3Nl bGVjdCAqIGZyb20gc2FsZXNfb3RoZXJzOworCistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBj b25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtp bmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxv Zy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhw YXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9n LnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lk OjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisKK0RST1AgVEFCTEUg c2FsZXNfcmFuZ2U7CisKKy0tCistLSBUZXN0IGZvcjoKKy0tICAgKiBjb21wb3NpdGUgcGFy dGl0aW9uIGtleTsKKy0tICAgKiBHRU5FUkFURUQgY29sdW1uOworLS0gICAqIGNvbHVtbiB3 aXRoIERFRkFVTFQgdmFsdWUuCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2RhdGUgKHNhbGVz bWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX3llYXIgSU5ULCBzYWxlc19tb250aCBJTlQs IHNhbGVzX2RheSBJTlQsCisgIHNhbGVzX2RhdGUgVkFSQ0hBUigxMCkgR0VORVJBVEVEIEFM V0FZUyBBUworICAgIChMUEFEKHNhbGVzX3llYXI6OnRleHQsIDQsICcwJykgfHwgJy4nIHx8 IExQQUQoc2FsZXNfbW9udGg6OnRleHQsIDIsICcwJykgfHwgJy4nIHx8IExQQUQoc2FsZXNf ZGF5Ojp0ZXh0LCAyLCAnMCcpKSBTVE9SRUQsCisgIHNhbGVzX2RlcGFydG1lbnQgVkFSQ0hB UigzMCkgREVGQVVMVCAnU2FsZXMgZGVwYXJ0bWVudCcpCisgIFBBUlRJVElPTiBCWSBSQU5H RSAoc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSk7CisKK0NSRUFURSBUQUJM RSBzYWxlc19kZWMyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxVRVMgRlJP TSAoMjAyMSwgMTIsIDEpIFRPICgyMDIyLCAxLCAxKTsKK0NSRUFURSBUQUJMRSBzYWxlc19q YW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxVRVMgRlJPTSAoMjAyMiwg MSwgMSkgVE8gKDIwMjIsIDIsIDEpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAyLCAxKSBUTyAo MjAyMiwgMywgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXIgUEFSVElUSU9OIE9GIHNh bGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAzLCAxKSBUTyAoTUFYVkFMVUUsIE1B WFZBTFVFLCBNQVhWQUxVRSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjEnLCAyMDIxLCAxMiwgNyk7CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFu X25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01h bmFnZXIyJywgMjAyMSwgMTIsIDgpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMycsIDIwMjIsIDEsIDEpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMScsIDIwMjIsIDIsIDQpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMicsIDIwMjIsIDEsIDIpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMycsIDIwMjIsIDIsIDEpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMScsIDIwMjIsIDMsIDMpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMicsIDIwMjIsIDMsIDQpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21h bl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdN YW5hZ2VyMycsIDIwMjIsIDUsIDEpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7CitT RUxFQ1QgKiBGUk9NIHNhbGVzX2RlYzIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIw MjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVz X290aGVyOworCitBTFRFUiBUQUJMRSBzYWxlc19kYXRlIE1FUkdFIFBBUlRJVElPTlMgKHNh bGVzX2phbjIwMjIsIHNhbGVzX2ZlYjIwMjIpIElOVE8gc2FsZXNfamFuX2ZlYjIwMjI7CisK K0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2Fs ZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIyLCAxLCAxMCk7 CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNh bGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMiwgMTAp OworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Rl YzIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbl9mZWIyMDIyOworU0VMRUNUICogRlJP TSBzYWxlc19vdGhlcjsKKworRFJPUCBUQUJMRSBzYWxlc19kYXRlOworCistLQorLS0gVGVz dDogbWVyZ2UgcGFydGl0aW9ucyBvZiBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIHRyaWdnZXJz CistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBL RVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2Fs ZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9G IHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUg c2FsZXNtYW5zMTBfMjAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00g KDEwKSBUTyAoMjApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIwXzMwIFBBUlRJVElPTiBP RiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0NSRUFURSBUQUJM RSBzYWxlc21hbnMzMF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJP TSAoMzApIFRPICg0MCk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEsICAn UG9pcm90Jyk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFmdGVyX2luc2VydF9y b3dfdHJpZ2dlcigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSAncGxwZ3NxbCcgQVMgJEJP RFkkCitCRUdJTgorCVJBSVNFIE5PVElDRSAndHJpZ2dlciglKSBjYWxsZWQ6IGFjdGlvbiA9 ICUsIHdoZW4gPSAlLCBsZXZlbCA9ICUnLCBUR19BUkdWWzBdLCBUR19PUCwgVEdfV0hFTiwg VEdfTEVWRUw7CisgICAgUkVUVVJOIE5VTEw7CitFTkQ7CiskQk9EWSQ7CisKK0NSRUFURSBU UklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRfc3RhdGVtZW50X3RyaWdnZXIKKyAgICBB RlRFUiBJTlNFUlQKKyAgICBPTiBzYWxlc21hbnMKKyAgICBGT1IgRUFDSCBTVEFURU1FTlQK KyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVz bWFucycpOworCitDUkVBVEUgVFJJR0dFUiBzYWxlc21hbnNfYWZ0ZXJfaW5zZXJ0X3Jvd190 cmlnZ2VyCisgICAgQUZURVIgSU5TRVJUCisgICAgT04gc2FsZXNtYW5zCisgICAgRk9SIEVB Q0ggUk9XCisgICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2Vy KCdzYWxlc21hbnMnKTsKKworLS0gMiB0cmlnZ2VycyBzaG91bGQgZmlyZSBoZXJlIChyb3cg KyBzdGF0ZW1lbnQpOgorSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTAsICdNYXkn KTsKKy0tIDEgdHJpZ2dlciBzaG91bGQgZmlyZSBoZXJlIChyb3cpOgorSU5TRVJUIElOVE8g c2FsZXNtYW5zMTBfMjAgVkFMVUVTICgxOSwgJ0l2YW5vdicpOworCitBTFRFUiBUQUJMRSBz YWxlc21hbnMgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNtYW5zMTBfMjAsIHNhbGVzbWFuczIw XzMwLCBzYWxlc21hbnMzMF80MCkgSU5UTyBzYWxlc21hbnMxMF80MDsKKworLS0gMiB0cmln Z2VycyBzaG91bGQgZmlyZSBoZXJlIChyb3cgKyBzdGF0ZW1lbnQpOgorSU5TRVJUIElOVE8g c2FsZXNtYW5zIFZBTFVFUyAoMjAsICdTbWlybm9mZicpOworLS0gMSB0cmlnZ2VyIHNob3Vs ZCBmaXJlIGhlcmUgKHJvdyk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF80MCBWQUxVRVMg KDMwLCAnRm9yZCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczAxXzEwOworU0VMRUNU ICogRlJPTSBzYWxlc21hbnMxMF80MDsKKworRFJPUCBUQUJMRSBzYWxlc21hbnM7CitEUk9Q IEZVTkNUSU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpOworCistLQorLS0gVGVzdDog bWVyZ2UgcGFydGl0aW9ucyB3aXRoIGRlbGV0ZWQgY29sdW1ucworLS0KK0NSRUFURSBUQUJM RSBzYWxlc21hbnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1l IFZBUkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKKworQ1JF QVRFIFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZB TFVFUyBGUk9NICgxKSBUTyAoMTApOworLS0gQ3JlYXRlIHBhcnRpdGlvbnMgd2l0aCBzb21l IGRlbGV0ZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMxMF8yMChkMSBWQVJD SEFSKDMwKSwgc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZB UkNIQVIoMzApKTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMyMF8zMChzYWxlc21hbl9pZCBJ TlQgUFJJTUFSWSBLRVksIGQyIElOVCwgIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOwor Q1JFQVRFIFRBQkxFIHNhbGVzbWFuczMwXzQwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtF WSwgZDMgREFURSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CisKK0lOU0VSVCBJTlRP IHNhbGVzbWFuczEwXzIwIFZBTFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgJ0l2YW5vdicp OworSU5TRVJUIElOVE8gc2FsZXNtYW5zMjBfMzAgVkFMVUVTICgyMCwgMTAxLCAnU21pcm5v ZmYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczMwXzQwIFZBTFVFUyAoMzEsIG5vdygpLCAn UG9wb3YnKTsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfMjAgRFJPUCBDT0xVTU4gZDE7 CitBTFRFUiBUQUJMRSBzYWxlc21hbnMyMF8zMCBEUk9QIENPTFVNTiBkMjsKK0FMVEVSIFRB QkxFIHNhbGVzbWFuczMwXzQwIERST1AgQ09MVU1OIGQzOworCitBTFRFUiBUQUJMRSBzYWxl c21hbnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMxMF8yMCBGT1IgVkFMVUVTIEZST00g KDEwKSBUTyAoMjApOworQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04g c2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0FMVEVSIFRB QkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczMwXzQwIEZPUiBWQUxV RVMgRlJPTSAoMzApIFRPICg0MCk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMg KDEsICdQb2lyb3QnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5 Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKKworQUxU RVIgVEFCTEUgc2FsZXNtYW5zIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzbWFuczEwXzIwLCBz YWxlc21hbnMyMF8zMCwgc2FsZXNtYW5zMzBfNDApIElOVE8gc2FsZXNtYW5zMTBfNDA7CisK K3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zOworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMwMV8x MDsKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zMTBfNDA7CisKK0RST1AgVEFCTEUgc2FsZXNt YW5zOworCistLQorLS0gVGVzdDogbWVyZ2Ugc3ViLXBhcnRpdGlvbnMKKy0tCitDUkVBVEUg VEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJD SEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04g QlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBU TyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIyMDIyIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcy MDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQQVJUSVRJT04gT0Yg c2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0w NC0wMScpOworCitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAoc2FsZXNtYW5faWQgSU5U LCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19k YXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFC TEUgc2FsZXNfYXByMjAyMl8wMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA0LTEwJyk7CitDUkVBVEUg VEFCTEUgc2FsZXNfYXByMjAyMl8xMF8yMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEwJykgVE8gKCcyMDIyLTA0LTIwJyk7CitDUkVB VEUgVEFCTEUgc2FsZXNfYXByMjAyMl8yMF8zMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAy MiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTIwJykgVE8gKCcyMDIyLTA1LTAxJyk7CitB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIg Rk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOworCitD UkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZB VUxUOworCitDUkVBVEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04gc2Fs ZXNfcmFuZ2UgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpOworCitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAg JzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdG b3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjIt MDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3Qn LCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1 MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEw LCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcy MDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2Fu ZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKKworU0VMRUNU ICogRlJPTSBzYWxlc19yYW5nZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMjsKK1NF TEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8wMV8xMDsKK1NFTEVDVCAqIEZST00gc2FsZXNf YXByMjAyMl8xMF8yMDsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8yMF8zMDsKKwor QUxURVIgVEFCTEUgc2FsZXNfYXByMjAyMiBNRVJHRSBQQVJUSVRJT05TIChzYWxlc19hcHIy MDIyXzAxXzEwLCBzYWxlc19hcHIyMDIyXzEwXzIwLCBzYWxlc19hcHIyMDIyXzIwXzMwKSBJ TlRPIHNhbGVzX2Fwcl9hbGw7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7CitTRUxF Q1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Fwcl9hbGw7 CisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7CisKKy0tCistLSBCWSBMSVNUIHBhcnRpdGlv bmluZworLS0KKworLS0KKy0tIFRlc3Q6IHNwZWNpZmljIGVycm9ycyBmb3IgQlkgTElTVCBw YXJ0aXRpb25pbmcKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfbGlzdAorKHNhbGVzbWFuX2lk IElOVCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZLAorIHNhbGVzbWFuX25hbWUgVkFS Q0hBUigzMCksCisgc2FsZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2FsZXNfYW1vdW50IElO VCwKKyBzYWxlc19kYXRlIERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAoc2FsZXNfc3RhdGUp OworQ1JFQVRFIFRBQkxFIHNhbGVzX25vcmQgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9S IFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfd2VzdCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFM VUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycpOworQ1JFQVRFIFRB QkxFIHNhbGVzX2Vhc3QgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAo J01hZ2FkYW4nLCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxF IHNhbGVzX2NlbnRyYWwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAo J01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19v dGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVMVDsKKworCitDUkVBVEUgVEFC TEUgc2FsZXNfbGlzdDIgKExJS0Ugc2FsZXNfbGlzdCkgUEFSVElUSU9OIEJZIExJU1QgKHNh bGVzX3N0YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkMiBQQVJUSVRJT04gT0Ygc2Fs ZXNfbGlzdDIgRk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywg J1VraHRhJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzMiBQQVJUSVRJT04gT0Ygc2Fs ZXNfbGlzdDIgREVGQVVMVDsKKworCitDUkVBVEUgVEFCTEUgc2FsZXNfZXh0ZXJuYWwgKExJ S0Ugc2FsZXNfbGlzdCk7CitDUkVBVEUgVEFCTEUgc2FsZXNfZXh0ZXJuYWwyICh2Y2ggVkFS Q0hBUig1KSk7CisKKy0tIEVSUk9SOiAgcGFydGl0aW9uIGJvdW5kIGZvciByZWxhdGlvbiAi c2FsZXNfZXh0ZXJuYWwiIGlzIG51bGwKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0Ug UEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNfZXh0ZXJuYWwpIElO VE8gc2FsZXNfYWxsOworLS0gRVJST1I6ICBwYXJ0aXRpb24gYm91bmQgZm9yIHJlbGF0aW9u ICJzYWxlc19leHRlcm5hbDIiIGlzIG51bGwKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVS R0UgUEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNfZXh0ZXJuYWwy KSBJTlRPIHNhbGVzX2FsbDsKKy0tIEVSUk9SOiAgcmVsYXRpb24gInNhbGVzX25vcmQyIiBp cyBub3QgYSBwYXJ0aXRpb24gb2YgcmVsYXRpb24gInNhbGVzX2xpc3QiCitBTFRFUiBUQUJM RSBzYWxlc19saXN0IE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX3dlc3QsIHNhbGVzX25vcmQy LCBzYWxlc19lYXN0KSBJTlRPIHNhbGVzX2FsbDsKKworRFJPUCBUQUJMRSBzYWxlc19leHRl cm5hbDI7CitEUk9QIFRBQkxFIHNhbGVzX2V4dGVybmFsOworRFJPUCBUQUJMRSBzYWxlc19s aXN0MjsKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKworLS0KKy0tIFRlc3Q6IEJZIExJU1Qg cGFydGl0aW9uaW5nLCBNRVJHRSBQQVJUSVRJT05TIHdpdGggZGF0YQorLS0KK0NSRUFURSBU QUJMRSBzYWxlc19saXN0Cisoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMg SURFTlRJVFksCisgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19zdGF0ZSBW QVJDSEFSKDIwKSwKKyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFURSkKK1BB UlRJVElPTiBCWSBMSVNUIChzYWxlc19zdGF0ZSk7CisKK0NSRUFURSBJTkRFWCBzYWxlc19s aXN0X3NhbGVzbWFuX25hbWVfaWR4IE9OIHNhbGVzX2xpc3QgVVNJTkcgYnRyZWUgKHNhbGVz bWFuX25hbWUpOworQ1JFQVRFIElOREVYIHNhbGVzX2xpc3Rfc2FsZXNfc3RhdGVfaWR4IE9O IHNhbGVzX2xpc3QgVVNJTkcgYnRyZWUgKHNhbGVzX3N0YXRlKTsKKworQ1JFQVRFIFRBQkxF IHNhbGVzX25vcmQgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ011 cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJyk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfd2VzdCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnVm9yb25l emgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2Vhc3Qg UEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAnS2hh YmFyb3ZzaycsICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2NlbnRyYWwg UEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXph bicsICdWb2xnb2dyYWQnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9O IE9GIHNhbGVzX2xpc3QgREVGQVVMVDsKKworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2Fs ZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFM VUVTICgnVHJ1bXAnLCAgICAnTWFnYWRhbicsICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScp OworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUs IHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnU21pcm5vZmYnLCAnU21vbGVu c2snLCAgICAgICA1MDAsICAnMjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlz dCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0 ZSkgVkFMVUVTICgnRm9yZCcsICAgICAnU3QuIFBldGVyc2J1cmcnLCAyMDAwLCAnMjAyMi0w My0wNScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNf c3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnSXZhbm92JywgICAn TW9zY293JywgICAgICAgICA3NTAsICAnMjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2Fs ZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2Fs ZXNfZGF0ZSkgVkFMVUVTICgnRGVldicsICAgICAnVm9yb25lemgnLCAgICAgICAyNTAsICAn MjAyMi0wMy0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwg c2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnUG9pcm90 JywgICAnS2F6YW4nLCAgICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElO VE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3Vu dCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAgICAgICAx MjAwLCAnMjAyMi0wMy0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5f bmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgn TGknLCAgICAgICAnVmxhZGl2b3N0b2snLCAgICAxMTUwLCAnMjAyMi0wMy0wOScpOworSU5T RVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVz X2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAg ICAgICAxMjAwLCAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2Fs ZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFM VUVTICgnSGFsZGVyJywgICAnTXVybWFuc2snLCAgICAgICA4MDAsICAnMjAyMi0wMy0wMicp OworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUs IHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTXVsbGVyJywgICAnQnJ5YW5z aycsICAgICAgICA2NTAsICAnMjAyMi0wMy0wNScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlz dCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0 ZSkgVkFMVUVTICgnU21pdGgnLCAgICAnVm9sZ29ncmFkJywgICAgICAzNTAsICAnMjAyMi0w My0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNf c3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnR2FuZGknLCAgICAn TW9zY293JywgICAgICAgICAxNTAsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2Fs ZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2Fs ZXNfZGF0ZSkgVkFMVUVTICgnUGxhdG8nLCAgICAnVm9yb25lemgnLCAgICAgICA5NTAsICAn MjAyMi0wMy0wNScpOworCistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25kaXRpb25zOgor U0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIGluaGRldGFj aHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lk KQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0 cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAnc2Fs ZXNfbGlzdCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo Yy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cu cmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKworQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBN RVJHRSBQQVJUSVRJT05TIChzYWxlc193ZXN0LCBzYWxlc19lYXN0LCBzYWxlc19jZW50cmFs KSBJTlRPIHNhbGVzX2FsbDsKKworLS0gc2hvdyBwYXJ0aXRpb25zIHdpdGggY29uZGl0aW9u czoKK1NFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgYy5yZWxraW5kLCBpbmhk ZXRhY2hwZW5kaW5nLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBj Lm9pZCkKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdfaW5o ZXJpdHMgaQorICBXSEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0g J3NhbGVzX2xpc3QnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBnX2dldF9l eHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpwZ19jYXRh bG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisKK1NFTEVDVCAqIEZST00gc2FsZXNf bGlzdDsKK1NFTEVDVCAqIEZST00gc2FsZXNfbm9yZDsKK1NFTEVDVCAqIEZST00gc2FsZXNf YWxsOworCistLSBVc2UgaW5kZXhzY2FuIGZvciB0ZXN0IGluZGV4ZXMgYWZ0ZXIgbWVyZ2Ug cGFydGl0aW9ucworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NFVCBlbmFibGVfc2Vx c2NhbiA9IE9GRjsKKworU0VMRUNUICogRlJPTSBzYWxlc19hbGwgV0hFUkUgc2FsZXNfc3Rh dGUgPSAnTW9zY293JzsKK1NFTEVDVCAqIEZST00gc2FsZXNfbGlzdCBXSEVSRSBzYWxlc19z dGF0ZSA9ICdNb3Njb3cnOworU0VMRUNUICogRlJPTSBzYWxlc19saXN0IFdIRVJFIHNhbGVz bWFuX25hbWUgPSAnSXZhbm92JzsKKworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NF VCBlbmFibGVfc2Vxc2NhbiA9IE9OOworCitEUk9QIFRBQkxFIHNhbGVzX2xpc3Q7CisKKy0t CitEUk9QIFNDSEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKZGlmZiAtLWdpdCBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKaW5kZXggYmY1MGEzMjExOS4uNTI1MWRiNWZhZCAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI1NjMsNiArMjU2Myw3IEBAIFNpbXBsZVN0YXRzCiBT aW1wbGVTdHJpbmdMaXN0CiBTaW1wbGVTdHJpbmdMaXN0Q2VsbAogU2luZ2xlQm91bmRTb3J0 SXRlbQorU2luZ2xlUGFydGl0aW9uU3BlYwogU2l6ZQogU2tpcFBhZ2VzCiBTbGFiQmxvY2sK LS0gCjIuNDAuMS53aW5kb3dzLjEKCg== --------------Ab0P5aQdWo0YkyKG3aU00GwI Content-Type: text/plain; charset=UTF-8; name="v20-0002-ALTER-TABLE-SPLIT-PARTITION-command.patch" Content-Disposition: attachment; filename="v20-0002-ALTER-TABLE-SPLIT-PARTITION-command.patch" Content-Transfer-Encoding: base64 RnJvbSBlMzkxNDI1NWFkODZlOWJjNDg1MDdkNGE0NzlkMzVmOTkyNjdhNDNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IE1vbiwgMTkgU2VwIDIwMjIgMTc6NTg6NTIgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyMCAyLzNdIEFMVEVSIFRBQkxFIFNQTElUIFBBUlRJVElPTiBjb21tYW5kCgot LS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0 MDcgKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICAgMzggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAg ICAgICB8ICAgNjIgKy0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMg ICAgICAgICB8ICA2NTUgKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyAgICAgICAgICAgICB8ICAgMTggKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmggICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnRpdGlvbmlu Zy9wYXJ0Ym91bmRzLmggICAgICAgICB8ICAgIDUgKwogc3JjL2luY2x1ZGUvdXRpbHMvcnVs ZXV0aWxzLmggICAgICAgICAgICAgICAgIHwgICAgMiArCiAuLi4vaXNvbGF0aW9uL2V4cGVj dGVkL3BhcnRpdGlvbi1zcGxpdC5vdXQgICAgfCAgMTkwICsrKwogc3JjL3Rlc3QvaXNvbGF0 aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAgMSArCiBzcmMvdGVzdC9pc29s YXRpb24vc3BlY3MvcGFydGl0aW9uLXNwbGl0LnNwZWMgfCAgIDU0ICsKIC4uLi90ZXN0X2Rk bF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYyAgICAgICB8ICAgIDMgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0IHwgMTQxNyArKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAg IHwgICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbCAg ICAgIHwgIDgzMyArKysrKysrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCAzNjc3IGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lz b2xhdGlvbi9leHBlY3RlZC9wYXJ0aXRpb24tc3BsaXQub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRpdGlvbi1zcGxpdC5zcGVjCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3Bs aXQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0 aW9uX3NwbGl0LnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZjAyYjhh OWRiZS4uZjc3OWQ5YjYyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTY1 MCw2ICs2NTAsOSBAQCBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNrTm9Gb3JlaWduS2V5UmVm cyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlQ29tcHJl c3Npb24oT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpjb21wcmVzc2lvbik7CiBzdGF0aWMg Y2hhciBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqc3Rv cmFnZW1vZGUpOwogCitzdGF0aWMgdm9pZCBBVEV4ZWNTcGxpdFBhcnRpdGlvbihMaXN0ICoq d3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCisJCQkJCQkJCSBSZWxhdGlvbiByZWws IFBhcnRpdGlvbkNtZCAqY21kLAorCQkJCQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0 ICpjb250ZXh0KTsKIHN0YXRpYyB2b2lkIEFURXhlY01lcmdlUGFydGl0aW9ucyhMaXN0ICoq d3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJ ICBQYXJ0aXRpb25DbWQgKmNtZCwgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0 KTsKIApAQCAtNDY4MSw2ICs0Njg0LDEwIEBAIEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoTGlz dCAqY21kcykKIAkJCQljbWRfbG9ja21vZGUgPSBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2s7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRfU3BsaXRQYXJ0aXRpb246CisJCQkJY21kX2xv Y2ttb2RlID0gQWNjZXNzRXhjbHVzaXZlTG9jazsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBB VF9NZXJnZVBhcnRpdGlvbnM6CiAJCQkJY21kX2xvY2ttb2RlID0gQWNjZXNzRXhjbHVzaXZl TG9jazsKIAkJCQlicmVhazsKQEAgLTUwOTksNiArNTEwNiwxMSBAQCBBVFByZXBDbWQoTGlz dCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAJCQkvKiBO byBjb21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCiAJCQlwYXNzID0gQVRfUEFTU19N SVNDOwogCQkJYnJlYWs7CisJCWNhc2UgQVRfU3BsaXRQYXJ0aXRpb246CisJCQlBVFNpbXBs ZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUpOworCQkJLyogTm8g Y29tbWFuZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLworCQkJcGFzcyA9IEFUX1BBU1NfTUlT QzsKKwkJCWJyZWFrOwogCQljYXNlIEFUX01lcmdlUGFydGl0aW9uczoKIAkJCUFUU2ltcGxl UGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSk7CiAJCQkvKiBObyBj b21tYW5kLXNwZWNpZmljIHByZXAgbmVlZGVkICovCkBAIC01NDkyLDYgKzU1MDQsMTQgQEAg QVRFeGVjQ21kKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJY2Fz ZSBBVF9EZXRhY2hQYXJ0aXRpb25GaW5hbGl6ZToKIAkJCWFkZHJlc3MgPSBBVEV4ZWNEZXRh Y2hQYXJ0aXRpb25GaW5hbGl6ZShyZWwsICgoUGFydGl0aW9uQ21kICopIGNtZC0+ZGVmKS0+ bmFtZSk7CiAJCQlicmVhazsKKwkJY2FzZSBBVF9TcGxpdFBhcnRpdGlvbjoKKwkJCWNtZCA9 IEFUUGFyc2VUcmFuc2Zvcm1DbWQod3F1ZXVlLCB0YWIsIHJlbCwgY21kLCBmYWxzZSwgbG9j a21vZGUsCisJCQkJCQkJCQkgIGN1cl9wYXNzLCBjb250ZXh0KTsKKwkJCUFzc2VydChjbWQg IT0gTlVMTCk7CisJCQlBc3NlcnQocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9Q QVJUSVRJT05FRF9UQUJMRSk7CisJCQlBVEV4ZWNTcGxpdFBhcnRpdGlvbih3cXVldWUsIHRh YiwgcmVsLCAoUGFydGl0aW9uQ21kICopIGNtZC0+ZGVmLAorCQkJCQkJCQkgY29udGV4dCk7 CisJCQlicmVhazsKIAkJY2FzZSBBVF9NZXJnZVBhcnRpdGlvbnM6CiAJCQljbWQgPSBBVFBh cnNlVHJhbnNmb3JtQ21kKHdxdWV1ZSwgdGFiLCByZWwsIGNtZCwgZmFsc2UsIGxvY2ttb2Rl LAogCQkJCQkJCQkJICBjdXJfcGFzcywgY29udGV4dCk7CkBAIC02NDg2LDYgKzY1MDYsOCBA QCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlKQog CQkJcmV0dXJuICJERVRBQ0ggUEFSVElUSU9OIjsKIAkJY2FzZSBBVF9EZXRhY2hQYXJ0aXRp b25GaW5hbGl6ZToKIAkJCXJldHVybiAiREVUQUNIIFBBUlRJVElPTiAuLi4gRklOQUxJWkUi OworCQljYXNlIEFUX1NwbGl0UGFydGl0aW9uOgorCQkJcmV0dXJuICJTUExJVCBQQVJUSVRJ T04iOwogCQljYXNlIEFUX01lcmdlUGFydGl0aW9uczoKIAkJCXJldHVybiAiTUVSR0UgUEFS VElUSU9OUyI7CiAJCWNhc2UgQVRfQWRkSWRlbnRpdHk6CkBAIC0yMDI4MCw2ICsyMDMwMiwy NTUgQEAgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0 b3JhZ2Vtb2RlKQogCXJldHVybiBjc3RvcmFnZTsKIH0KIAorLyoKKyAqIFN0cnVjdCB3aXRo IGNvbnRleHQgb2YgbmV3IHBhcnRpdGlvbiBmb3IgaW5zZXJ0IHJvd3MgZnJvbSBzcGxpdGVk IHBhcnRpdGlvbgorICovCit0eXBlZGVmIHN0cnVjdCBTcGxpdFBhcnRpdGlvbkNvbnRleHQK K3sKKwlFeHByU3RhdGUgICpwYXJ0cXVhbHN0YXRlOwkvKiBleHByZXNzaW9uIGZvciBjaGVj ayBzbG90IGZvciBwYXJ0aXRpb24KKwkJCQkJCQkJICogKE5VTEwgZm9yIERFRkFVTFQgcGFy dGl0aW9uKSAqLworCUJ1bGtJbnNlcnRTdGF0ZSBiaXN0YXRlOwkvKiBzdGF0ZSBvZiBidWxr IGluc2VydHMgZm9yIHBhcnRpdGlvbiAqLworCVR1cGxlVGFibGVTbG90ICpkc3RzbG90Owkv KiBzbG90IGZvciBpbnNlcnQgcm93IGludG8gcGFydGl0aW9uICovCisJUmVsYXRpb24JcGFy dFJlbDsJCS8qIHJlbGF0aW9uIGZvciBwYXJ0aXRpb24gKi8KK30JCQlTcGxpdFBhcnRpdGlv bkNvbnRleHQ7CisKKworLyoKKyAqIGNyZWF0ZVNwbGl0UGFydGl0aW9uQ29udGV4dDogY3Jl YXRlIGNvbnRleHQgZm9yIHBhcnRpdGlvbiBhbmQgZmlsbCBpdAorICovCitzdGF0aWMgU3Bs aXRQYXJ0aXRpb25Db250ZXh0ICoKK2NyZWF0ZVNwbGl0UGFydGl0aW9uQ29udGV4dChSZWxh dGlvbiBwYXJ0UmVsKQoreworCVNwbGl0UGFydGl0aW9uQ29udGV4dCAqcGM7CisKKwlwYyA9 IChTcGxpdFBhcnRpdGlvbkNvbnRleHQgKikgcGFsbG9jMChzaXplb2YoU3BsaXRQYXJ0aXRp b25Db250ZXh0KSk7CisJcGMtPnBhcnRSZWwgPSBwYXJ0UmVsOworCisJLyoKKwkgKiBQcmVw YXJlIGEgQnVsa0luc2VydFN0YXRlIGZvciB0YWJsZV90dXBsZV9pbnNlcnQuIFRoZSBGU00g aXMgZW1wdHksIHNvCisJICogZG9uJ3QgYm90aGVyIHVzaW5nIGl0LgorCSAqLworCXBjLT5i aXN0YXRlID0gR2V0QnVsa0luc2VydFN0YXRlKCk7CisKKwkvKiBDcmVhdGUgdHVwbGUgc2xv dCBmb3IgbmV3IHBhcnRpdGlvbi4gKi8KKwlwYy0+ZHN0c2xvdCA9IE1ha2VTaW5nbGVUdXBs ZVRhYmxlU2xvdChSZWxhdGlvbkdldERlc2NyKHBjLT5wYXJ0UmVsKSwKKwkJCQkJCQkJCQkg ICB0YWJsZV9zbG90X2NhbGxiYWNrcyhwYy0+cGFydFJlbCkpOworCUV4ZWNTdG9yZUFsbE51 bGxUdXBsZShwYy0+ZHN0c2xvdCk7CisKKwlyZXR1cm4gcGM7Cit9CisKKy8qCisgKiBkZWxl dGVTcGxpdFBhcnRpdGlvbkNvbnRleHQ6IGRlbGV0ZSBjb250ZXh0IGZvciBwYXJ0aXRpb24K KyAqLworc3RhdGljIHZvaWQKK2RlbGV0ZVNwbGl0UGFydGl0aW9uQ29udGV4dChTcGxpdFBh cnRpdGlvbkNvbnRleHQgKiBwYywgaW50IHRpX29wdGlvbnMpCit7CisJRXhlY0Ryb3BTaW5n bGVUdXBsZVRhYmxlU2xvdChwYy0+ZHN0c2xvdCk7CisJRnJlZUJ1bGtJbnNlcnRTdGF0ZShw Yy0+YmlzdGF0ZSk7CisKKwl0YWJsZV9maW5pc2hfYnVsa19pbnNlcnQocGMtPnBhcnRSZWws IHRpX29wdGlvbnMpOworCisJcGZyZWUocGMpOworfQorCisvKgorICogbW92ZVNwbGl0VGFi bGVSb3dzOiBzY2FuIHNwbGl0IHBhcnRpdGlvbiAoc3BsaXRSZWwpIG9mIHBhcnRpdGlvbmVk IHRhYmxlCisgKiAocmVsKSBhbmQgbW92ZSByb3dzIGludG8gbmV3IHBhcnRpdGlvbnMuCisg KgorICogTmV3IHBhcnRpdGlvbnMgZGVzY3JpcHRpb246CisgKiBwYXJ0bGlzdDogbGlzdCBv ZiBwb2ludGVycyB0byBTaW5nbGVQYXJ0aXRpb25TcGVjIHN0cnVjdHVyZXMuCisgKiBuZXdQ YXJ0UmVsczogbGlzdCBvZiBSZWxhdGlvbidzLgorICogZGVmYXVsdFBhcnRPaWQ6IG9pZCBv ZiBERUZBVUxUIHBhcnRpdGlvbiwgZm9yIHRhYmxlIHJlbC4KKyAqLworc3RhdGljIHZvaWQK K21vdmVTcGxpdFRhYmxlUm93cyhSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHNwbGl0UmVsLCBM aXN0ICpwYXJ0bGlzdCwgTGlzdCAqbmV3UGFydFJlbHMsIE9pZCBkZWZhdWx0UGFydE9pZCkK K3sKKwkvKiBUaGUgRlNNIGlzIGVtcHR5LCBzbyBkb24ndCBib3RoZXIgdXNpbmcgaXQuICov CisJaW50CQkJdGlfb3B0aW9ucyA9IFRBQkxFX0lOU0VSVF9TS0lQX0ZTTTsKKwlDb21tYW5k SWQJbXljaWQ7CisJRVN0YXRlCSAgICplc3RhdGU7CisJTGlzdENlbGwgICAqbGlzdHB0ciwK KwkJCSAgICpsaXN0cHRyMjsKKwlUdXBsZVRhYmxlU2xvdCAqc3Jjc2xvdDsKKwlFeHByQ29u dGV4dCAqZWNvbnRleHQ7CisJVGFibGVTY2FuRGVzYyBzY2FuOworCVNuYXBzaG90CXNuYXBz aG90OworCU1lbW9yeUNvbnRleHQgb2xkQ3h0OworCUxpc3QJICAgKnBhcnRDb250ZXh0cyA9 IE5JTDsKKwlUdXBsZUNvbnZlcnNpb25NYXAgKnR1cGxlX21hcDsKKwlTcGxpdFBhcnRpdGlv bkNvbnRleHQgKmRlZmF1bHRQYXJ0Q3R4ID0gTlVMTCwKKwkJCSAgICpwYzsKKwlib29sCQlp c09sZERlZmF1bHRQYXJ0ID0gZmFsc2U7CisKKwlteWNpZCA9IEdldEN1cnJlbnRDb21tYW5k SWQodHJ1ZSk7CisKKwllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRlKCk7CisKKwlmb3Ji b3RoKGxpc3RwdHIsIHBhcnRsaXN0LCBsaXN0cHRyMiwgbmV3UGFydFJlbHMpCisJeworCQlT aW5nbGVQYXJ0aXRpb25TcGVjICpzcHMgPSAoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsZmly c3QobGlzdHB0cik7CisKKwkJcGMgPSBjcmVhdGVTcGxpdFBhcnRpdGlvbkNvbnRleHQoKFJl bGF0aW9uKSBsZmlyc3QobGlzdHB0cjIpKTsKKworCQlpZiAoc3BzLT5ib3VuZC0+aXNfZGVm YXVsdCkKKwkJeworCQkJLyogV2Ugc2hvdWxkIG5vdCBjcmVhdGUgY29uc3RyYWludCBmb3Ig ZGV0YWNoZWQgREVGQVVMVCBwYXJ0aXRpb24uICovCisJCQlkZWZhdWx0UGFydEN0eCA9IHBj OworCQl9CisJCWVsc2UKKwkJeworCQkJTGlzdAkgICAqcGFydENvbnN0cmFpbnQ7CisKKwkJ CS8qIEJ1aWxkIGV4cHJlc3Npb24gZXhlY3V0aW9uIHN0YXRlcyBmb3IgcGFydGl0aW9uIGNo ZWNrIHF1YWxzLiAqLworCQkJcGFydENvbnN0cmFpbnQgPSBnZXRfcXVhbF9mcm9tX3BhcnRi b3VuZChyZWwsIHNwcy0+Ym91bmQpOworCQkJcGFydENvbnN0cmFpbnQgPQorCQkJCShMaXN0 ICopIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMoTlVMTCwKKwkJCQkJCQkJCQkJCShOb2RlICop IHBhcnRDb25zdHJhaW50KTsKKwkJCS8qIE1ha2UgYm9vbGVhbiBleHByZXNzaW9uIGZvciBF eGVjQ2hlY2soKS4gKi8KKwkJCXBhcnRDb25zdHJhaW50ID0gbGlzdF9tYWtlMShtYWtlX2Fu ZHNfZXhwbGljaXQocGFydENvbnN0cmFpbnQpKTsKKworCQkJLyoKKwkJCSAqIE1hcCB0aGUg dmFycyBpbiB0aGUgY29uc3RyYWludCBleHByZXNzaW9uIGZyb20gcmVsJ3MgYXR0bm9zIHRv CisJCQkgKiBzcGxpdFJlbCdzLgorCQkJICovCisJCQlwYXJ0Q29uc3RyYWludCA9IG1hcF9w YXJ0aXRpb25fdmFyYXR0bm9zKHBhcnRDb25zdHJhaW50LAorCQkJCQkJCQkJCQkJCSAxLCBz cGxpdFJlbCwgcmVsKTsKKworCQkJcGMtPnBhcnRxdWFsc3RhdGUgPQorCQkJCUV4ZWNQcmVw YXJlRXhwcigoRXhwciAqKSBsaW5pdGlhbChwYXJ0Q29uc3RyYWludCksIGVzdGF0ZSk7CisJ CQlBc3NlcnQocGMtPnBhcnRxdWFsc3RhdGUgIT0gTlVMTCk7CisJCX0KKworCQkvKiBTdG9y ZSBwYXJ0aXRpb24gY29udGV4dCBpbnRvIGxpc3QuICovCisJCXBhcnRDb250ZXh0cyA9IGxh cHBlbmQocGFydENvbnRleHRzLCBwYyk7CisJfQorCisJLyoKKwkgKiBDcmVhdGUgcGFydGl0 aW9uIGNvbnRleHQgZm9yIERFRkFVTFQgcGFydGl0aW9uLiBXZSBjYW4gaW5zZXJ0IHZhbHVl cworCSAqIGludG8gdGhpcyBwYXJ0aXRpb24gaW4gY2FzZSBzcGFjZXMgd2l0aCB2YWx1ZXMg YmV0d2VlbiBuZXcgcGFydGl0aW9ucy4KKwkgKi8KKwlpZiAoIWRlZmF1bHRQYXJ0Q3R4ICYm IE9pZElzVmFsaWQoZGVmYXVsdFBhcnRPaWQpKQorCXsKKwkJLyogSW5kaWNhdGUgdGhhdCB3 ZSBhbGxvY2F0ZSBjb250ZXh0IGZvciBvbGQgREVGQVVMVCBwYXJ0aXRpb24gKi8KKwkJaXNP bGREZWZhdWx0UGFydCA9IHRydWU7CisJCWRlZmF1bHRQYXJ0Q3R4ID0gY3JlYXRlU3BsaXRQ YXJ0aXRpb25Db250ZXh0KHRhYmxlX29wZW4oZGVmYXVsdFBhcnRPaWQsIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2spKTsKKwl9CisKKwllY29udGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQo ZXN0YXRlKTsKKworCS8qIENyZWF0ZSBuZWNlc3NhcnkgdHVwbGUgc2xvdC4gKi8KKwlzcmNz bG90ID0gTWFrZVNpbmdsZVR1cGxlVGFibGVTbG90KFJlbGF0aW9uR2V0RGVzY3Ioc3BsaXRS ZWwpLAorCQkJCQkJCQkJICAgdGFibGVfc2xvdF9jYWxsYmFja3Moc3BsaXRSZWwpKTsKKwor CS8qCisJICogTWFwIGNvbXB1dGluZyBmb3IgbW92aW5nIGF0dHJpYnV0ZXMgb2Ygc3BsaXQg cGFydGl0aW9uIHRvIG5ldyBwYXJ0aXRpb24KKwkgKiAoZm9yIGZpcnN0IG5ldyBwYXJ0aXRp b24gYnV0IG90aGVyIG5ldyBwYXJ0aXRpb25zIGNhbiB1c2UgdGhlIHNhbWUKKwkgKiBtYXAp LgorCSAqLworCXBjID0gKFNwbGl0UGFydGl0aW9uQ29udGV4dCAqKSBsZmlyc3QobGlzdF9o ZWFkKHBhcnRDb250ZXh0cykpOworCXR1cGxlX21hcCA9IGNvbnZlcnRfdHVwbGVzX2J5X25h bWUoUmVsYXRpb25HZXREZXNjcihzcGxpdFJlbCksCisJCQkJCQkJCQkgICBSZWxhdGlvbkdl dERlc2NyKHBjLT5wYXJ0UmVsKSk7CisKKwkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICov CisJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwor CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsK KworCS8qCisJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQgcmVz ZXQgaXQgZm9yIGVhY2ggdHVwbGUKKwkgKiBwcm9kdWNlZCwgc28gd2UgZG9uJ3QgbGVhayBt ZW1vcnkuCisJICovCisJb2xkQ3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEdldFBlclR1 cGxlTWVtb3J5Q29udGV4dChlc3RhdGUpKTsKKworCXdoaWxlICh0YWJsZV9zY2FuX2dldG5l eHRzbG90KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uLCBzcmNzbG90KSkKKwl7CisJCWJv b2wJCWZvdW5kID0gZmFsc2U7CisJCVR1cGxlVGFibGVTbG90ICppbnNlcnRzbG90OworCisJ CS8qIEV4dHJhY3QgZGF0YSBmcm9tIG9sZCB0dXBsZS4gKi8KKwkJc2xvdF9nZXRhbGxhdHRy cyhzcmNzbG90KTsKKworCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzcmNzbG90Owor CisJCS8qIFNlYXJjaCBwYXJ0aXRpb24gZm9yIGN1cnJlbnQgc2xvdCBzcmNzbG90LiAqLwor CQlmb3JlYWNoKGxpc3RwdHIsIHBhcnRDb250ZXh0cykKKwkJeworCQkJcGMgPSAoU3BsaXRQ YXJ0aXRpb25Db250ZXh0ICopIGxmaXJzdChsaXN0cHRyKTsKKworCQkJaWYgKHBjLT5wYXJ0 cXVhbHN0YXRlIC8qIHNraXAgREVGQVVMVCBwYXJ0aXRpb24gKi8gJiYKKwkJCQlFeGVjQ2hl Y2socGMtPnBhcnRxdWFsc3RhdGUsIGVjb250ZXh0KSkKKwkJCXsKKwkJCQlmb3VuZCA9IHRy dWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlSZXNldEV4cHJDb250ZXh0KGVjb250ZXh0KTsK KwkJfQorCQlpZiAoIWZvdW5kKQorCQl7CisJCQkvKiBVc2UgREVGQVVMVCBwYXJ0aXRpb24g aWYgaXQgZXhpc3RzLiAqLworCQkJaWYgKGRlZmF1bHRQYXJ0Q3R4KQorCQkJCXBjID0gZGVm YXVsdFBhcnRDdHg7CisJCQllbHNlCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJj b2RlKEVSUkNPREVfQ0hFQ0tfVklPTEFUSU9OKSwKKwkJCQkJCSBlcnJtc2coImNhbiBub3Qg ZmluZCBwYXJ0aXRpb24gZm9yIHNwbGl0IHBhcnRpdGlvbiByb3ciKSwKKwkJCQkJCSBlcnJ0 YWJsZShzcGxpdFJlbCkpKTsKKwkJfQorCisJCWlmICh0dXBsZV9tYXApCisJCXsKKwkJCS8q IE5lZWQgdG8gdXNlIG1hcCBmb3IgY29weSBhdHRyaWJ1dGVzLiAqLworCQkJaW5zZXJ0c2xv dCA9IGV4ZWN1dGVfYXR0cl9tYXBfc2xvdCh0dXBsZV9tYXAtPmF0dHJNYXAsIHNyY3Nsb3Qs IHBjLT5kc3RzbG90KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIENvcHkgYXR0cmlidXRl cyBkaXJlY3RseS4gKi8KKwkJCWluc2VydHNsb3QgPSBwYy0+ZHN0c2xvdDsKKworCQkJRXhl Y0NsZWFyVHVwbGUoaW5zZXJ0c2xvdCk7CisKKwkJCW1lbWNweShpbnNlcnRzbG90LT50dHNf dmFsdWVzLCBzcmNzbG90LT50dHNfdmFsdWVzLAorCQkJCSAgIHNpemVvZihEYXR1bSkgKiBz cmNzbG90LT50dHNfbnZhbGlkKTsKKwkJCW1lbWNweShpbnNlcnRzbG90LT50dHNfaXNudWxs LCBzcmNzbG90LT50dHNfaXNudWxsLAorCQkJCSAgIHNpemVvZihib29sKSAqIHNyY3Nsb3Qt PnR0c19udmFsaWQpOworCisJCQlFeGVjU3RvcmVWaXJ0dWFsVHVwbGUoaW5zZXJ0c2xvdCk7 CisJCX0KKworCQkvKiBXcml0ZSB0aGUgdHVwbGUgb3V0IHRvIHRoZSBuZXcgcmVsYXRpb24u ICovCisJCXRhYmxlX3R1cGxlX2luc2VydChwYy0+cGFydFJlbCwgaW5zZXJ0c2xvdCwgbXlj aWQsIHRpX29wdGlvbnMsIHBjLT5iaXN0YXRlKTsKKworCQlSZXNldEV4cHJDb250ZXh0KGVj b250ZXh0KTsKKworCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCX0KKworCU1lbW9yeUNv bnRleHRTd2l0Y2hUbyhvbGRDeHQpOworCisJdGFibGVfZW5kc2NhbihzY2FuKTsKKwlVbnJl Z2lzdGVyU25hcHNob3Qoc25hcHNob3QpOworCisJaWYgKHR1cGxlX21hcCkKKwkJZnJlZV9j b252ZXJzaW9uX21hcCh0dXBsZV9tYXApOworCisJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxl U2xvdChzcmNzbG90KTsKKworCUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CisKKwlmb3Jl YWNoKGxpc3RwdHIsIHBhcnRDb250ZXh0cykKKwkJZGVsZXRlU3BsaXRQYXJ0aXRpb25Db250 ZXh0KChTcGxpdFBhcnRpdGlvbkNvbnRleHQgKikgbGZpcnN0KGxpc3RwdHIpLCB0aV9vcHRp b25zKTsKKworCS8qIE5lZWQgdG8gY2xvc2UgdGFibGUgYW5kIGZyZWUgYnVmZmVycyBmb3Ig REVGQVVMVCBwYXJ0aXRpb24uICovCisJaWYgKGlzT2xkRGVmYXVsdFBhcnQpCisJeworCQlS ZWxhdGlvbiBkZWZhdWx0UGFydFJlbCA9IGRlZmF1bHRQYXJ0Q3R4LT5wYXJ0UmVsOworCisJ CWRlbGV0ZVNwbGl0UGFydGl0aW9uQ29udGV4dChkZWZhdWx0UGFydEN0eCwgdGlfb3B0aW9u cyk7CisJCS8qIEtlZXAgdGhlIGxvY2sgdW50aWwgY29tbWl0LiAqLworCQl0YWJsZV9jbG9z ZShkZWZhdWx0UGFydFJlbCwgTm9Mb2NrKTsKKwl9Cit9CisKIC8qCiAgKiBjcmVhdGVQYXJ0 aXRpb25UYWJsZTogY3JlYXRlIHRhYmxlIGZvciBuZXcgcGFydGl0aW9uIHdpdGggZ2l2ZW4g bmFtZQogICogKG5ld1BhcnROYW1lKSBsaWtlIHRhYmxlIChtb2RlbFJlbE5hbWUpCkBAIC0y MDMzNCw2ICsyMDYwNSwxNDIgQEAgY3JlYXRlUGFydGl0aW9uVGFibGUoUmFuZ2VWYXIgKm5l d1BhcnROYW1lLCBSYW5nZVZhciAqbW9kZWxSZWxOYW1lLAogCQkJCSAgIE5VTEwpOwogfQog CisvKgorICogQUxURVIgVEFCTEUgPG5hbWU+IFNQTElUIFBBUlRJVElPTiA8cGFydGl0aW9u LW5hbWU+IElOVE8gPHBhcnRpdGlvbi1saXN0PgorICovCitzdGF0aWMgdm9pZAorQVRFeGVj U3BsaXRQYXJ0aXRpb24oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBS ZWxhdGlvbiByZWwsCisJCQkJCSBQYXJ0aXRpb25DbWQgKmNtZCwgQWx0ZXJUYWJsZVV0aWxp dHlDb250ZXh0ICpjb250ZXh0KQoreworCVJlbGF0aW9uCXNwbGl0UmVsOworCU9pZAkJCXNw bGl0UmVsT2lkOworCWNoYXIJCXJlbG5hbWVbTkFNRURBVEFMRU5dOworCU9pZAkJCW5hbWVz cGFjZUlkOworCUxpc3RDZWxsICAgKmxpc3RwdHIsCisJCQkgICAqbGlzdHB0cjI7CisJYm9v bAkJaXNTYW1lTmFtZSA9IGZhbHNlOworCWNoYXIJCXRtcFJlbE5hbWVbTkFNRURBVEFMRU5d OworCUxpc3QJICAgKm5ld1BhcnRSZWxzID0gTklMOworCU9iamVjdEFkZHJlc3Mgb2JqZWN0 OworCVJhbmdlVmFyICAgKnNwbGl0UGFydE5hbWUgPSBjbWQtPm5hbWU7CisJT2lkCQkJZGVm YXVsdFBhcnRPaWQ7CisKKwlkZWZhdWx0UGFydE9pZCA9IGdldF9kZWZhdWx0X29pZF9mcm9t X3BhcnRkZXNjKFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhyZWwsIHRydWUpKTsKKworCS8q CisJICogV2UgYXJlIGdvaW5nIHRvIGRldGFjaCBhbmQgcmVtb3ZlIHRoaXMgcGFydGl0aW9u OiBuZWVkIHRvIHVzZSBleGNsdXNpdmUKKwkgKiBsb2NrIGZvciBwcmV2ZW50IERNTC1xdWVy aWVzIHRvIHRoZSBwYXJ0aXRpb24uCisJICovCisJc3BsaXRSZWwgPSB0YWJsZV9vcGVucnYo c3BsaXRQYXJ0TmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwlpZiAoc3BsaXRSZWwt PnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJt c2coImNhbm5vdCBzcGxpdCBub24tdGFibGUgcGFydGl0aW9uIFwiJXNcIiIsCisJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShzcGxpdFJlbCkpKSk7CisKKwlzcGxpdFJlbE9pZCA9 IFJlbGF0aW9uR2V0UmVsaWQoc3BsaXRSZWwpOworCisJLyogQ2hlY2sgZGVzY3JpcHRpb25z IG9mIG5ldyBwYXJ0aXRpb25zLiAqLworCWZvcmVhY2gobGlzdHB0ciwgY21kLT5wYXJ0bGlz dCkKKwl7CisJCU9pZAkJCWV4aXN0aW5nX3JlbGlkOworCQlTaW5nbGVQYXJ0aXRpb25TcGVj ICpzcHMgPSAoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJ c3RybGNweShyZWxuYW1lLCBzcHMtPm5hbWUtPnJlbG5hbWUsIE5BTUVEQVRBTEVOKTsKKwor CQkvKgorCQkgKiBMb29rIHVwIHRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggd2UgYXJlIHN1cHBv c2VkIHRvIGNyZWF0ZSB0aGUKKwkJICogcGFydGl0aW9uLCBjaGVjayB3ZSBoYXZlIHBlcm1p c3Npb24gdG8gY3JlYXRlIHRoZXJlLCBsb2NrIGl0CisJCSAqIGFnYWluc3QgY29uY3VycmVu dCBkcm9wLCBhbmQgbWFyayBzdG10LT5yZWxhdGlvbiBhcworCQkgKiBSRUxQRVJTSVNURU5D RV9URU1QIGlmIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZSBpcyBzZWxlY3RlZC4KKwkJICovCisJ CW5hbWVzcGFjZUlkID0KKwkJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFj ZShzcHMtPm5hbWUsIE5vTG9jaywgTlVMTCk7CisKKwkJLyoKKwkJICogVGhpcyB3b3VsZCBm YWlsIGxhdGVyIG9uIGFueXdheSwgaWYgdGhlIHJlbGF0aW9uIGFscmVhZHkgZXhpc3RzLgor CQkgKiBCdXQgYnkgY2F0Y2hpbmcgaXQgaGVyZSB3ZSBjYW4gZW1pdCBhIG5pY2VyIGVycm9y IG1lc3NhZ2UuCisJCSAqLworCQlleGlzdGluZ19yZWxpZCA9IGdldF9yZWxuYW1lX3JlbGlk KHJlbG5hbWUsIG5hbWVzcGFjZUlkKTsKKwkJaWYgKGV4aXN0aW5nX3JlbGlkID09IHNwbGl0 UmVsT2lkICYmICFpc1NhbWVOYW1lKQorCQkJLyogT25lIG5ldyBwYXJ0aXRpb24gY2FuIGhh dmUgdGhlIHNhbWUgbmFtZSBhcyBzcGxpdCBwYXJ0aXRpb24uICovCisJCQlpc1NhbWVOYW1l ID0gdHJ1ZTsKKwkJZWxzZSBpZiAoZXhpc3RpbmdfcmVsaWQgIT0gSW52YWxpZE9pZCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX1RBQkxF KSwKKwkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgcmVs bmFtZSkpKTsKKwl9CisKKwkvKiBEZXRhY2ggc3BsaXQgcGFydGl0aW9uLiAqLworCVJlbW92 ZUluaGVyaXRhbmNlKHNwbGl0UmVsLCByZWwsIGZhbHNlKTsKKwkvKiBEbyB0aGUgZmluYWwg cGFydCBvZiBkZXRhY2hpbmcuICovCisJRGV0YWNoUGFydGl0aW9uRmluYWxpemUocmVsLCBz cGxpdFJlbCwgZmFsc2UsIGRlZmF1bHRQYXJ0T2lkKTsKKworCS8qCisJICogSWYgbmV3IHBh cnRpdGlvbiBoYXMgdGhlIHNhbWUgbmFtZSBhcyBzcGxpdCBwYXJ0aXRpb24gdGhlbiB3ZSBz aG91bGQKKwkgKiByZW5hbWUgc3BsaXQgcGFydGl0aW9uIGZvciByZXVzZSBuYW1lLgorCSAq LworCWlmIChpc1NhbWVOYW1lKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBidW1wIHRoZSBj b21tYW5kIGNvdW50ZXIgdG8gbWFrZSB0aGUgc3BsaXQgcGFydGl0aW9uIHR1cGxlCisJCSAq IHZpc2libGUgZm9yIHJlbmFtZS4KKwkJICovCisJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50 KCk7CisJCS8qIFJlbmFtZSBwYXJ0aXRpb24uICovCisJCXNwcmludGYodG1wUmVsTmFtZSwg InNwbGl0LSV1LSVYLXRtcCIsIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgTXlQcm9jUGlkKTsK KwkJUmVuYW1lUmVsYXRpb25JbnRlcm5hbChzcGxpdFJlbE9pZCwgdG1wUmVsTmFtZSwgZmFs c2UsIGZhbHNlKTsKKwkJc3BsaXRQYXJ0TmFtZSA9IG1ha2VSYW5nZVZhcigKKwkJCQkJCQkJ CSBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2Uoc3BsaXRSZWwpKSwK KwkJCQkJCQkJCSB0bXBSZWxOYW1lLCAtMSk7CisKKwkJLyoKKwkJICogV2UgbXVzdCBidW1w IHRoZSBjb21tYW5kIGNvdW50ZXIgdG8gbWFrZSB0aGUgc3BsaXQgcGFydGl0aW9uIHR1cGxl CisJCSAqIHZpc2libGUgYWZ0ZXIgcmVuYW1lLgorCQkgKi8KKwkJQ29tbWFuZENvdW50ZXJJ bmNyZW1lbnQoKTsKKwl9CisKKwkvKiBDcmVhdGUgbmV3IHBhcnRpdGlvbnMgKGxpa2Ugc3Bs aXQgcGFydGl0aW9uKSwgd2l0aG91dCBpbmRleGVzLiAqLworCWZvcmVhY2gobGlzdHB0ciwg Y21kLT5wYXJ0bGlzdCkKKwl7CisJCVNpbmdsZVBhcnRpdGlvblNwZWMgKnNwcyA9IChTaW5n bGVQYXJ0aXRpb25TcGVjICopIGxmaXJzdChsaXN0cHRyKTsKKwkJUmVsYXRpb24JbmV3UGFy dFJlbDsKKworCQljcmVhdGVQYXJ0aXRpb25UYWJsZShzcHMtPm5hbWUsIHNwbGl0UGFydE5h bWUsIGNvbnRleHQpOworCisJCS8qIE9wZW4gdGhlIG5ldyBwYXJ0aXRpb24gYW5kIGFjcXVp cmUgZXhjbHVzaXZlIGxvY2sgb24gaXQuICovCisJCW5ld1BhcnRSZWwgPSB0YWJsZV9vcGVu cnYoc3BzLT5uYW1lLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKworCQluZXdQYXJ0UmVscyA9 IGxhcHBlbmQobmV3UGFydFJlbHMsIG5ld1BhcnRSZWwpOworCX0KKworCS8qIENvcHkgZGF0 YSBmcm9tIHNwbGl0IHBhcnRpdGlvbiB0byBuZXcgcGFydGl0aW9ucy4gKi8KKwltb3ZlU3Bs aXRUYWJsZVJvd3MocmVsLCBzcGxpdFJlbCwgY21kLT5wYXJ0bGlzdCwgbmV3UGFydFJlbHMs IGRlZmF1bHRQYXJ0T2lkKTsKKwkvKiBLZWVwIHRoZSBsb2NrIHVudGlsIGNvbW1pdC4gKi8K Kwl0YWJsZV9jbG9zZShzcGxpdFJlbCwgTm9Mb2NrKTsKKworCS8qIEF0dGFjaCBuZXcgcGFy dGl0aW9ucyB0byBwYXJ0aXRpb25lZCB0YWJsZS4gKi8KKwlmb3Jib3RoKGxpc3RwdHIsIGNt ZC0+cGFydGxpc3QsIGxpc3RwdHIyLCBuZXdQYXJ0UmVscykKKwl7CisJCVNpbmdsZVBhcnRp dGlvblNwZWMgKnNwcyA9IChTaW5nbGVQYXJ0aXRpb25TcGVjICopIGxmaXJzdChsaXN0cHRy KTsKKwkJUmVsYXRpb24JbmV3UGFydFJlbCA9IChSZWxhdGlvbikgbGZpcnN0KGxpc3RwdHIy KTsKKworCQkvKiB3cXVldWUgPSBOVUxMOiB2ZXJpZmljYXRpb24gZm9yIGVhY2ggY2xvbmVk IGNvbnN0cmFpbnQgaXMgbm90IG5lZWQuICovCisJCWF0dGFjaFBhcnRpdGlvblRhYmxlKE5V TEwsIHJlbCwgbmV3UGFydFJlbCwgc3BzLT5ib3VuZCk7CisJCS8qIEtlZXAgdGhlIGxvY2sg dW50aWwgY29tbWl0LiAqLworCQl0YWJsZV9jbG9zZShuZXdQYXJ0UmVsLCBOb0xvY2spOwor CX0KKworCS8qIERyb3Agc3BsaXQgcGFydGl0aW9uLiAqLworCW9iamVjdC5jbGFzc0lkID0g UmVsYXRpb25SZWxhdGlvbklkOworCW9iamVjdC5vYmplY3RJZCA9IHNwbGl0UmVsT2lkOwor CW9iamVjdC5vYmplY3RTdWJJZCA9IDA7CisJLyogUHJvYmFibHkgRFJPUF9DQVNDQURFIGlz IG5vdCBuZWVkZWQuICovCisJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfUkVTVFJJ Q1QsIDApOworfQorCiAvKgogICogU3RydWN0IHdpdGggY29udGV4dCBvZiBtZXJnZWQgcGFy dGl0aW9uCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDI0MmI4YzI3MTUuLjc5NmFkMWMxMjQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtMjcwLDYgKzI3MCw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAJUGFydGl0aW9uRWxlbSAqcGFydGVsZW07CiAJUGFydGl0aW9uU3BlYyAq cGFydHNwZWM7CiAJUGFydGl0aW9uQm91bmRTcGVjICpwYXJ0Ym91bmRzcGVjOworCVNpbmds ZVBhcnRpdGlvblNwZWMgKnNpbmdsZXBhcnRzcGVjOwogCVJvbGVTcGVjICAgKnJvbGVzcGVj OwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVibGljYXRpb25vYmplY3RzcGVjOwogCXN0cnVj dCBTZWxlY3RMaW1pdCAqc2VsZWN0bGltaXQ7CkBAIC02NDIsNiArNjQzLDggQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxwYXJ0ZWxlbT4JcGFydF9lbGVtCiAldHlw ZSA8bGlzdD4JCXBhcnRfcGFyYW1zCiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9u Qm91bmRTcGVjCisldHlwZSA8c2luZ2xlcGFydHNwZWM+CVNpbmdsZVBhcnRpdGlvblNwZWMK KyV0eXBlIDxsaXN0PgkJcGFydGl0aW9uc19saXN0CiAldHlwZSA8bGlzdD4JCWhhc2hfcGFy dGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJaGFzaF9wYXJ0Ym91bmRfZWxlbQogCkBAIC03NTgs NyArNzYxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTQVZFUE9JTlQgU0NB TEFSIFNDSEVNQSBTQ0hFTUFTIFNDUk9MTCBTRUFSQ0ggU0VDT05EX1AgU0VDVVJJVFkgU0VM RUNUCiAJU0VRVUVOQ0UgU0VRVUVOQ0VTCiAJU0VSSUFMSVpBQkxFIFNFUlZFUiBTRVNTSU9O IFNFU1NJT05fVVNFUiBTRVQgU0VUUyBTRVRPRiBTSEFSRSBTSE9XCi0JU0lNSUxBUiBTSU1Q TEUgU0tJUCBTTUFMTElOVCBTTkFQU0hPVCBTT01FIFNRTF9QIFNUQUJMRSBTVEFOREFMT05F X1AKKwlTSU1JTEFSIFNJTVBMRSBTS0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQg U1FMX1AgU1RBQkxFIFNUQU5EQUxPTkVfUAogCVNUQVJUIFNUQVRFTUVOVCBTVEFUSVNUSUNT IFNURElOIFNURE9VVCBTVE9SQUdFIFNUT1JFRCBTVFJJQ1RfUCBTVFJJUF9QCiAJU1VCU0NS SVBUSU9OIFNVQlNUUklORyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUCBTWVNU RU1fVVNFUgogCkBAIC0yMjc1LDYgKzIyNzgsMjMgQEAgYWx0ZXJfdGFibGVfY21kczoKIAkJ CXwgYWx0ZXJfdGFibGVfY21kcyAnLCcgYWx0ZXJfdGFibGVfY21kCXsgJCQgPSBsYXBwZW5k KCQxLCAkMyk7IH0KIAkJOwogCitwYXJ0aXRpb25zX2xpc3Q6CisJCQlTaW5nbGVQYXJ0aXRp b25TcGVjCQkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBwYXJ0aXRpb25z X2xpc3QgJywnIFNpbmdsZVBhcnRpdGlvblNwZWMJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsg fQorCQk7CisKK1NpbmdsZVBhcnRpdGlvblNwZWM6CisJCQlQQVJUSVRJT04gcXVhbGlmaWVk X25hbWUgUGFydGl0aW9uQm91bmRTcGVjCisJCQkJeworCQkJCQlTaW5nbGVQYXJ0aXRpb25T cGVjICpuID0gbWFrZU5vZGUoU2luZ2xlUGFydGl0aW9uU3BlYyk7CisKKwkJCQkJbi0+bmFt ZSA9ICQyOworCQkJCQluLT5ib3VuZCA9ICQzOworCisJCQkJCSQkID0gbjsKKwkJCQl9CisJ CTsKKwogcGFydGl0aW9uX2NtZDoKIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBBVFRBQ0gg UEFSVElUSU9OIDx0YWJsZV9uYW1lPiBGT1IgVkFMVUVTICovCiAJCQlBVFRBQ0ggUEFSVElU SU9OIHF1YWxpZmllZF9uYW1lIFBhcnRpdGlvbkJvdW5kU3BlYwpAQCAtMjMxOSw2ICsyMzM5 LDIwIEBAIHBhcnRpdGlvbl9jbWQ6CiAJCQkJCW4tPmRlZiA9IChOb2RlICopIGNtZDsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBT UExJVCBQQVJUSVRJT04gPHBhcnRpdGlvbl9uYW1lPiBJTlRPICgpICovCisJCQl8IFNQTElU IFBBUlRJVElPTiBxdWFsaWZpZWRfbmFtZSBJTlRPICcoJyBwYXJ0aXRpb25zX2xpc3QgJykn CisJCQkJeworCQkJCQlBbHRlclRhYmxlQ21kICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNt ZCk7CisJCQkJCVBhcnRpdGlvbkNtZCAqY21kID0gbWFrZU5vZGUoUGFydGl0aW9uQ21kKTsK KworCQkJCQluLT5zdWJ0eXBlID0gQVRfU3BsaXRQYXJ0aXRpb247CisJCQkJCWNtZC0+bmFt ZSA9ICQzOworCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9 ICQ2OworCQkJCQljbWQtPmNvbmN1cnJlbnQgPSBmYWxzZTsKKwkJCQkJbi0+ZGVmID0gKE5v ZGUgKikgY21kOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJLyogQUxURVIg VEFCTEUgPG5hbWU+IE1FUkdFIFBBUlRJVElPTlMgKCkgSU5UTyA8cGFydGl0aW9uX25hbWU+ ICovCiAJCQl8IE1FUkdFIFBBUlRJVElPTlMgJygnIHF1YWxpZmllZF9uYW1lX2xpc3QgJykn IElOVE8gcXVhbGlmaWVkX25hbWUKIAkJCQl7CkBAIC0xNzM0MCw2ICsxNzM3NCw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgU0lNUExFCiAJCQl8IFNLSVAKIAkJCXwgU05BUFNI T1QKKwkJCXwgU1BMSVQKIAkJCXwgU1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8IFNUQU5EQUxP TkVfUApAQCAtMTc5NTQsNiArMTc5ODksNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8 IFNNQUxMSU5UCiAJCQl8IFNOQVBTSE9UCiAJCQl8IFNPTUUKKwkJCXwgU1BMSVQKIAkJCXwg U1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8IFNUQU5EQUxPTkVfUApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKaW5kZXggNmM0ZGMzZjFiMS4uZGUxYjNhNzczYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIHZv aWQgdHJhbnNmb3JtQ29uc3RyYWludEF0dHJzKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJ CQkJCQkJCQkgTGlzdCAqY29uc3RyYWludExpc3QpOwogc3RhdGljIHZvaWQgdHJhbnNmb3Jt Q29sdW1uVHlwZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbik7 CiBzdGF0aWMgdm9pZCBzZXRTY2hlbWFOYW1lKGNvbnN0IGNoYXIgKmNvbnRleHRfc2NoZW1h LCBjaGFyICoqc3RtdF9zY2hlbWFfbmFtZSk7Ci1zdGF0aWMgdm9pZCB0cmFuc2Zvcm1QYXJ0 aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGFydGl0aW9uQ21kICpjbWQpOwor c3RhdGljIHZvaWQgdHJhbnNmb3JtUGFydGl0aW9uQ21kKENyZWF0ZVN0bXRDb250ZXh0ICpj eHQsIFBhcnRpdGlvbkJvdW5kU3BlYyAqYm91bmQpOwogc3RhdGljIExpc3QgKnRyYW5zZm9y bVBhcnRpdGlvblJhbmdlQm91bmRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqYmxpc3Qs CiAJCQkJCQkJCQkJICAgUmVsYXRpb24gcGFyZW50KTsKIHN0YXRpYyB2b2lkIHZhbGlkYXRl SW5maW5pdGVCb3VuZHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpibGlzdCk7CkBAIC0z MzgwLDYgKzMzODAsNDMgQEAgdHJhbnNmb3JtUnVsZVN0bXQoUnVsZVN0bXQgKnN0bXQsIGNv bnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogfQogCiAKKy8qCisgKiB0cmFuc2Zvcm1QYXJ0aXRp b25DbWRGb3JTcGxpdAorICoJCUFuYWx5emUgdGhlIEFMVEVSIFRBQkxMRSAuLi4gU1BMSVQg UEFSVElUSU9OIGNvbW1hbmQKKyAqCisgKiBGb3IgZWFjaCBuZXcgcGFydGl0aW9uIHNwcy0+ Ym91bmQgaXMgc2V0IHRvIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSBvZiBib3VuZC4KKyAqIERv ZXMgY2hlY2tzIGZvciBib3VuZHMgb2YgbmV3IHBhcnRpdGlvbnMuCisgKi8KK3N0YXRpYyB2 b2lkCit0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JTcGxpdChDcmVhdGVTdG10Q29udGV4dCAq Y3h0LCBQYXJ0aXRpb25DbWQgKnBhcnRjbWQpCit7CisJUmVsYXRpb24JcGFyZW50ID0gY3h0 LT5yZWw7CisJT2lkCQkJc3BsaXRQYXJ0T2lkOworCUxpc3RDZWxsICAgKmxpc3RwdHI7CisK KwlpZiAocGFyZW50LT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf T0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBwYXJ0 aXRpb25lZCB0YWJsZSIsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHBhcmVudCkpKSk7CisK KwkvKiBUcmFuc2Zvcm0gcGFydGl0aW9uIGJvdW5kcyBmb3IgYWxsIHBhcnRpdGlvbnMgaW4g dGhlIGxpc3Q6ICovCisJZm9yZWFjaChsaXN0cHRyLCBwYXJ0Y21kLT5wYXJ0bGlzdCkKKwl7 CisJCVNpbmdsZVBhcnRpdGlvblNwZWMgKnNwcyA9IChTaW5nbGVQYXJ0aXRpb25TcGVjICop IGxmaXJzdChsaXN0cHRyKTsKKworCQljeHQtPnBhcnRib3VuZCA9IE5VTEw7CisJCXRyYW5z Zm9ybVBhcnRpdGlvbkNtZChjeHQsIHNwcy0+Ym91bmQpOworCQkvKiBBc3NpZ24gdHJhbnNm b3JtZWQgdmFsdWUgb2YgdGhlIHBhcnRpdGlvbiBib3VuZC4gKi8KKwkJc3BzLT5ib3VuZCA9 IGN4dC0+cGFydGJvdW5kOworCX0KKworCXNwbGl0UGFydE9pZCA9IFJhbmdlVmFyR2V0UmVs aWQocGFydGNtZC0+bmFtZSwgTm9Mb2NrLCBmYWxzZSk7CisKKwkvKiBUaGVuIHdlIHNob3Vs ZCBjaGVjayBwYXJ0aXRpb25zIHdpdGggdHJhbnNmb3JtZWQgYm91bmRzLiAqLworCWNoZWNr X3BhcnRpdGlvbnNfZm9yX3NwbGl0KHBhcmVudCwgc3BsaXRQYXJ0T2lkLCBwYXJ0Y21kLT5u YW1lLCBwYXJ0Y21kLT5wYXJ0bGlzdCwgY3h0LT5wc3RhdGUpOworfQorCisKIC8qCiAgKiB0 cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JNZXJnZQogICoJCUFuYWx5emUgdGhlIEFMVEVSIFRB QkxMRSAuLi4gTUVSR0UgUEFSVElUSU9OUyBjb21tYW5kCkBAIC0zNzE2LDcgKzM3NTMsNyBA QCB0cmFuc2Zvcm1BbHRlclRhYmxlU3RtdChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10ICpz dG10LAogCQkJCXsKIAkJCQkJUGFydGl0aW9uQ21kICpwYXJ0Y21kID0gKFBhcnRpdGlvbkNt ZCAqKSBjbWQtPmRlZjsKIAotCQkJCQl0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoJmN4dCwgcGFy dGNtZCk7CisJCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZCgmY3h0LCBwYXJ0Y21kLT5ib3Vu ZCk7CiAJCQkJCS8qIGFzc2lnbiB0cmFuc2Zvcm1lZCB2YWx1ZSBvZiB0aGUgcGFydGl0aW9u IGJvdW5kICovCiAJCQkJCXBhcnRjbWQtPmJvdW5kID0gY3h0LnBhcnRib3VuZDsKIAkJCQl9 CkBAIC0zNzI0LDYgKzM3NjEsNyBAQCB0cmFuc2Zvcm1BbHRlclRhYmxlU3RtdChPaWQgcmVs aWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2Nt ZHMsIGNtZCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRfU3BsaXRQYXJ0aXRpb246CiAJ CQljYXNlIEFUX01lcmdlUGFydGl0aW9uczoKIAkJCQl7CiAJCQkJCVBhcnRpdGlvbkNtZCAq cGFydGNtZCA9IChQYXJ0aXRpb25DbWQgKikgY21kLT5kZWY7CkBAIC0zNzMyLDcgKzM3NzAs MTEgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJlbGlkLCBBbHRlclRhYmxlU3Rt dCAqc3RtdCwKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJCQkJCSBlcnJtc2coImxpc3Qg b2YgbmV3IHBhcnRpdGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0IGxlYXN0IHR3byBpdGVtcyIp KSk7Ci0JCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZEZvck1lcmdlKCZjeHQsIHBhcnRjbWQp OworCisJCQkJCWlmIChjbWQtPnN1YnR5cGUgPT0gQVRfU3BsaXRQYXJ0aXRpb24pCisJCQkJ CQl0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JTcGxpdCgmY3h0LCBwYXJ0Y21kKTsKKwkJCQkJ ZWxzZQorCQkJCQkJdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9yTWVyZ2UoJmN4dCwgcGFydGNt ZCk7CiAJCQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2NtZHMsIGNtZCk7CiAJCQkJCWJyZWFr OwogCQkJCX0KQEAgLTQxMzcsMTMgKzQxNzksMTMgQEAgc2V0U2NoZW1hTmFtZShjb25zdCBj aGFyICpjb250ZXh0X3NjaGVtYSwgY2hhciAqKnN0bXRfc2NoZW1hX25hbWUpCiAKIC8qCiAg KiB0cmFuc2Zvcm1QYXJ0aXRpb25DbWQKLSAqCQlBbmFseXplIHRoZSBBVFRBQ0gvREVUQUNI IFBBUlRJVElPTiBjb21tYW5kCisgKgkJQW5hbHl6ZSB0aGUgQVRUQUNIL0RFVEFDSC9TUExJ VCBQQVJUSVRJT04gY29tbWFuZAogICoKLSAqIEluIGNhc2Ugb2YgdGhlIEFUVEFDSCBQQVJU SVRJT04gY29tbWFuZCwgY3h0LT5wYXJ0Ym91bmQgaXMgc2V0IHRvIHRoZQotICogdHJhbnNm b3JtZWQgdmFsdWUgb2YgY21kLT5ib3VuZC4KKyAqIEluIGNhc2Ugb2YgdGhlIEFUVEFDSC9T UExJVCBQQVJUSVRJT04gY29tbWFuZCwgY3h0LT5wYXJ0Ym91bmQgaXMgc2V0IHRvIHRoZQor ICogdHJhbnNmb3JtZWQgdmFsdWUgb2YgYm91bmQuCiAgKi8KIHN0YXRpYyB2b2lkCi10cmFu c2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGFydGl0aW9uQ21k ICpjbWQpCit0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwg UGFydGl0aW9uQm91bmRTcGVjICpib3VuZCkKIHsKIAlSZWxhdGlvbglwYXJlbnRSZWwgPSBj eHQtPnJlbDsKIApAQCAtNDE1Miw5ICs0MTk0LDkgQEAgdHJhbnNmb3JtUGFydGl0aW9uQ21k KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFBhcnRpdGlvbkNtZCAqY21kKQogCQljYXNlIFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CiAJCQkvKiB0cmFuc2Zvcm0gdGhlIHBhcnRpdGlv biBib3VuZCwgaWYgYW55ICovCiAJCQlBc3NlcnQoUmVsYXRpb25HZXRQYXJ0aXRpb25LZXko cGFyZW50UmVsKSAhPSBOVUxMKTsKLQkJCWlmIChjbWQtPmJvdW5kICE9IE5VTEwpCisJCQlp ZiAoYm91bmQgIT0gTlVMTCkKIAkJCQljeHQtPnBhcnRib3VuZCA9IHRyYW5zZm9ybVBhcnRp dGlvbkJvdW5kKGN4dC0+cHN0YXRlLCBwYXJlbnRSZWwsCi0JCQkJCQkJCQkJCQkJCSBjbWQt PmJvdW5kKTsKKwkJCQkJCQkJCQkJCQkJIGJvdW5kKTsKIAkJCWJyZWFrOwogCQljYXNlIFJF TEtJTkRfUEFSVElUSU9ORURfSU5ERVg6CiAKQEAgLTQxNjIsNyArNDIwNCw3IEBAIHRyYW5z Zm9ybVBhcnRpdGlvbkNtZChDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBQYXJ0aXRpb25DbWQg KmNtZCkKIAkJCSAqIEEgcGFydGl0aW9uZWQgaW5kZXggY2Fubm90IGhhdmUgYSBwYXJ0aXRp b24gYm91bmQgc2V0LiAgQUxURVIKIAkJCSAqIElOREVYIHByZXZlbnRzIHRoYXQgd2l0aCBp dHMgZ3JhbW1hciwgYnV0IG5vdCBBTFRFUiBUQUJMRS4KIAkJCSAqLwotCQkJaWYgKGNtZC0+ Ym91bmQgIT0gTlVMTCkKKwkJCWlmIChib3VuZCAhPSBOVUxMKQogCQkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04p LAogCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHBhcnRpdGlvbmVkIHRhYmxlIiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMgYi9z cmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCmluZGV4IDIxMzI4OWY1MTUu LmQ2NGQ3MjQwOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0 Ym91bmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYwpA QCAtNTA0MSwxMCArNTA0MSw2OSBAQCBjaGVja190d29fcGFydGl0aW9uc19ib3VuZHNfcmFu Z2UoUmVsYXRpb24gcGFyZW50LAogCX0KIH0KIAorLyoKKyAqIGNoZWNrX3BhcnRpdGlvbnNf bm90X292ZXJsYXBfbGlzdAorICoKKyAqIChmdW5jdGlvbiBmb3IgQlkgTElTVCBwYXJ0aXRp b25pbmcpCisgKgorICogVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlvbiBmb3IgY2hlY2tfcGFy dGl0aW9uc19mb3Jfc3BsaXQoKS4KKyAqIENoZWNrcyB0aGF0IHRoZSB2YWx1ZXMgb2YgdGhl IG5ldyBwYXJ0aXRpb25zIGRvIG5vdCBvdmVybGFwLgorICoKKyAqIHBhcmVudDoJcGFydGl0 aW9uZWQgdGFibGUKKyAqIHBhcnRzOglhcnJheSBvZiBTaW5nbGVQYXJ0aXRpb25TcGVjIHN0 cnVjdHMgd2l0aCBpbmZvIGFib3V0IHNwbGl0IHBhcnRpdGlvbnMKKyAqIG5wYXJ0czoJc2l6 ZSBvZiBhcnJheSAicGFydHMiCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19wYXJ0aXRpb25z X25vdF9vdmVybGFwX2xpc3QoUmVsYXRpb24gcGFyZW50LAorCQkJCQkJCQkgIFNpbmdsZVBh cnRpdGlvblNwZWMgKiAqcGFydHMsCisJCQkJCQkJCSAgaW50IG5wYXJ0cywKKwkJCQkJCQkJ ICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFydGl0aW9uS2V5IGtleSBQR19VU0VEX0ZP Ul9BU1NFUlRTX09OTFkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktleShwYXJlbnQpOworCWlu dAkJCW92ZXJsYXBfbG9jYXRpb24gPSAtMTsKKwlpbnQJCQlpLAorCQkJCWo7CisJU2luZ2xl UGFydGl0aW9uU3BlYyAqc3BzMSwKKwkJCSAgICpzcHMyOworCUxpc3QJICAgKm92ZXJsYXA7 CisKKwlBc3NlcnQoa2V5LT5zdHJhdGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfTElTVCk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcnRzOyBpKyspCisJeworCQlzcHMxID0gcGFydHNb aV07CisKKwkJZm9yIChqID0gaSArIDE7IGogPCBucGFydHM7IGorKykKKwkJeworCQkJc3Bz MiA9IHBhcnRzW2pdOworCisJCQkvKgorCQkJICogQ2FsY3VsYXRlIGludGVyc2VjdGlvbiBi ZXR3ZWVuIHZhbHVlcyBvZiB0d28gcGFydGl0aW9ucy4KKwkJCSAqLworCQkJb3ZlcmxhcCA9 IGxpc3RfaW50ZXJzZWN0aW9uKHNwczEtPmJvdW5kLT5saXN0ZGF0dW1zLAorCQkJCQkJCQkJ CXNwczItPmJvdW5kLT5saXN0ZGF0dW1zKTsKKwkJCWlmIChsaXN0X2xlbmd0aChvdmVybGFw KSA+IDApCisJCQl7CisJCQkJQ29uc3QJICAgKnZhbCA9IChDb25zdCAqKSBsZmlyc3QobGlz dF9oZWFkKG92ZXJsYXApKTsKKworCQkJCW92ZXJsYXBfbG9jYXRpb24gPSB2YWwtPmxvY2F0 aW9uOworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJIGVycm1zZygibmV3IHBhcnRpdGlvbiBc IiVzXCIgd291bGQgb3ZlcmxhcCB3aXRoIGFub3RoZXIgbmV3IHBhcnRpdGlvbiBcIiVzXCIi LAorCQkJCQkJCQlzcHMxLT5uYW1lLT5yZWxuYW1lLCBzcHMyLT5uYW1lLT5yZWxuYW1lKSwK KwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBvdmVybGFwX2xvY2F0aW9uKSkp OworCQkJfQorCQl9CisJfQorfQorCiAvKgogICogZ2V0X3BhcnRpdGlvbl9ib3VuZF9zcGVj CiAgKgogICogUmV0dXJucyBkZXNjcmlwdGlvbiBvZiBwYXJ0aXRpb24gd2l0aCBPaWQgInBh cnRPaWQiIGFuZCBuYW1lICJuYW1lIi4KKyAqCisgKiBwYXJ0T2lkOglwYXJ0aXRpb24gT2lk CisgKiBuYW1lOglwYXJ0aXRpb24gbmFtZQogICovCiBzdGF0aWMgUGFydGl0aW9uQm91bmRT cGVjICoKIGdldF9wYXJ0aXRpb25fYm91bmRfc3BlYyhPaWQgcGFydE9pZCwgUmFuZ2VWYXIg Km5hbWUpCkBAIC01MDc3LDYgKzUxMzYsNjAyIEBAIGdldF9wYXJ0aXRpb25fYm91bmRfc3Bl YyhPaWQgcGFydE9pZCwgUmFuZ2VWYXIgKm5hbWUpCiAJcmV0dXJuIGJvdW5kc3BlYzsKIH0K IAorLyoKKyAqIGNoZWNrX3BhcnRpdGlvbl9ib3VuZHNfZm9yX3NwbGl0X3JhbmdlCisgKgor ICogKGZ1bmN0aW9uIGZvciBCWSBSQU5HRSBwYXJ0aXRpb25pbmcpCisgKgorICogQ2hlY2tz IHRoYXQgYm91bmRzIG9mIG5ldyBwYXJ0aXRpb24gInNwZWMiIGlzIGluc2lkZSBib3VuZHMg b2Ygc3BsaXQKKyAqIHBhcnRpdGlvbiAod2l0aCBPaWQgc3BsaXRQYXJ0T2lkKS4gSWYgZmly c3Q9dHJ1ZSAodGhpcyBtZWFucyB0aGF0ICJzcGVjIiBpcworICogdGhlIGZpcnN0IG9mIG5l dyBwYXJ0aXRpb25zKSB0aGVuIGxvd2VyIGJvdW5kIG9mICJzcGVjIiBzaG91bGQgYmUgZXF1 YWwgKG9yCisgKiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgaW4gY2FzZSBkZWZhdWx0UGFydD10 cnVlKSB0byBsb3dlciBib3VuZCBvZiBzcGxpdAorICogcGFydGl0aW9uLiBJZiBsYXN0PXRy dWUgKHRoaXMgbWVhbnMgdGhhdCAic3BlYyIgaXMgdGhlIGxhc3Qgb2YgbmV3CisgKiBwYXJ0 aXRpb25zKSB0aGVuIHVwcGVyIGJvdW5kIG9mIG9mICJzcGVjIiBzaG91bGQgYmUgZXF1YWwg KG9yIGxlc3MgdGhhbiBvcgorICogZXF1YWwgaW4gY2FzZSBkZWZhdWx0UGFydD10cnVlKSB0 byB1cHBlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24uCisgKgorICogcGFyZW50OgkJCXBh cnRpdGlvbmVkIHRhYmxlCisgKiByZWxuYW1lOgkJCW5hbWUgb2YgdGhlIG5ldyBwYXJ0aXRp b24KKyAqIHNwZWM6CQkJYm91bmRzIHNwZWNpZmljYXRpb24gb2YgdGhlIG5ldyBwYXJ0aXRp b24KKyAqIHNwbGl0UGFydE9pZDoJc3BsaXQgcGFydGl0aW9uIE9pZAorICogc3BsaXRQYXJ0 TmFtZToJc3BsaXQgcGFydGl0aW9uIG5hbWUKKyAqIGZpcnN0OgkJCXRydWUgaW4gY2FzZSBu ZXcgcGFydGl0aW9uICJzcGVjIiBpcyBmaXJzdCBvZiBuZXcgcGFydGl0aW9ucworICogbGFz dDoJCQl0cnVlIGluIGNhc2UgbmV3IHBhcnRpdGlvbiAic3BlYyIgaXMgbGFzdCBvZiBuZXcg cGFydGl0aW9ucworICogZGVmYXVsdFBhcnQ6CQl0cnVlIGluIGNhc2UgcGFydGl0aW9uZWQg dGFibGUgaGFzIERFRkFVTFQgcGFydGl0aW9uCisgKiBwc3RhdGU6CQkJcG9pbnRlciB0byBQ YXJzZVN0YXRlIHN0cnVjdCBmb3IgZGV0ZXJtaW5lIGVycm9yIHBvc2l0aW9uCisgKi8KK3N0 YXRpYyB2b2lkCitjaGVja19wYXJ0aXRpb25fYm91bmRzX2Zvcl9zcGxpdF9yYW5nZShSZWxh dGlvbiBwYXJlbnQsCisJCQkJCQkJCQkgICBjaGFyICpyZWxuYW1lLAorCQkJCQkJCQkJICAg UGFydGl0aW9uQm91bmRTcGVjICpzcGVjLAorCQkJCQkJCQkJICAgT2lkIHNwbGl0UGFydE9p ZCwKKwkJCQkJCQkJCSAgIFJhbmdlVmFyICpzcGxpdFBhcnROYW1lLAorCQkJCQkJCQkJICAg Ym9vbCBmaXJzdCwKKwkJCQkJCQkJCSAgIGJvb2wgbGFzdCwKKwkJCQkJCQkJCSAgIGJvb2wg ZGVmYXVsdFBhcnQsCisJCQkJCQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFy dGl0aW9uS2V5IGtleSA9IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJUGFy dGl0aW9uUmFuZ2VCb3VuZCAqbG93ZXIsCisJCQkgICAqdXBwZXI7CisJaW50CQkJY21wdmFs OworCisJQXNzZXJ0KGtleS0+c3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZX1JBTkdF KTsKKwlBc3NlcnQoc3BlYy0+c3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZX1JBTkdF KTsKKworCWxvd2VyID0gbWFrZV9vbmVfcGFydGl0aW9uX3Jib3VuZChrZXksIC0xLCBzcGVj LT5sb3dlcmRhdHVtcywgdHJ1ZSk7CisJdXBwZXIgPSBtYWtlX29uZV9wYXJ0aXRpb25fcmJv dW5kKGtleSwgLTEsIHNwZWMtPnVwcGVyZGF0dW1zLCBmYWxzZSk7CisKKwkvKgorCSAqIEZp cnN0IGNoZWNrIGlmIHRoZSByZXN1bHRpbmcgcmFuZ2Ugd291bGQgYmUgZW1wdHkgd2l0aCBz cGVjaWZpZWQgbG93ZXIKKwkgKiBhbmQgdXBwZXIgYm91bmRzLiAgcGFydGl0aW9uX3Jib3Vu ZF9jbXAgY2Fubm90IHJldHVybiB6ZXJvIGhlcmUsIHNpbmNlCisJICogdGhlIGxvd2VyLWJv dW5kIGZsYWdzIGFyZSBkaWZmZXJlbnQuCisJICovCisJY21wdmFsID0gcGFydGl0aW9uX3Ji b3VuZF9jbXAoa2V5LT5wYXJ0bmF0dHMsCisJCQkJCQkJCSAga2V5LT5wYXJ0c3VwZnVuYywK KwkJCQkJCQkJICBrZXktPnBhcnRjb2xsYXRpb24sCisJCQkJCQkJCSAgbG93ZXItPmRhdHVt cywgbG93ZXItPmtpbmQsCisJCQkJCQkJCSAgdHJ1ZSwgdXBwZXIpOworCUFzc2VydChjbXB2 YWwgIT0gMCk7CisJaWYgKGNtcHZhbCA+IDApCisJeworCQkvKiBQb2ludCB0byBwcm9ibGVt YXRpYyBrZXkgaW4gdGhlIGxvd2VyIGRhdHVtcyBsaXN0LiAqLworCQlQYXJ0aXRpb25SYW5n ZURhdHVtICpkYXR1bSA9IGxpc3RfbnRoKHNwZWMtPmxvd2VyZGF0dW1zLCBjbXB2YWwgLSAx KTsKKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiZW1wdHkgcmFuZ2UgYm91bmQgc3Bl Y2lmaWVkIGZvciBwYXJ0aXRpb24gXCIlc1wiIiwKKwkJCQkJCXJlbG5hbWUpLAorCQkJCSBl cnJkZXRhaWwoIlNwZWNpZmllZCBsb3dlciBib3VuZCAlcyBpcyBncmVhdGVyIHRoYW4gb3Ig ZXF1YWwgdG8gdXBwZXIgYm91bmQgJXMuIiwKKwkJCQkJCSAgIGdldF9yYW5nZV9wYXJ0Ym91 bmRfc3RyaW5nKHNwZWMtPmxvd2VyZGF0dW1zKSwKKwkJCQkJCSAgIGdldF9yYW5nZV9wYXJ0 Ym91bmRfc3RyaW5nKHNwZWMtPnVwcGVyZGF0dW1zKSksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGRhdHVtLT5sb2NhdGlvbikpKTsKKwl9CisKKwkvKiBOZWVkIHRvIGNo ZWNrIGZpcnN0IGFuZCBsYXN0IHBhcnRpdGlvbnMgKGZyb20gc2V0IG9mIG5ldyBwYXJ0aXRp b25zKSAqLworCWlmIChmaXJzdCB8fCBsYXN0KQorCXsKKwkJUGFydGl0aW9uQm91bmRTcGVj ICpzcGxpdF9zcGVjID0gZ2V0X3BhcnRpdGlvbl9ib3VuZF9zcGVjKHNwbGl0UGFydE9pZCwg c3BsaXRQYXJ0TmFtZSk7CisJCWJvb2wJCW92ZXJsYXAgPSBmYWxzZTsKKworCQlpZiAoZmly c3QpCisJCXsKKwkJCVBhcnRpdGlvblJhbmdlQm91bmQgKnNwbGl0X2xvd2VyOworCisJCQlz cGxpdF9sb3dlciA9IG1ha2Vfb25lX3BhcnRpdGlvbl9yYm91bmQoa2V5LCAtMSwgc3BsaXRf c3BlYy0+bG93ZXJkYXR1bXMsIHRydWUpOworCisJCQljbXB2YWwgPSBwYXJ0aXRpb25fcmJv dW5kX2NtcChrZXktPnBhcnRuYXR0cywKKwkJCQkJCQkJCQkgIGtleS0+cGFydHN1cGZ1bmMs CisJCQkJCQkJCQkJICBrZXktPnBhcnRjb2xsYXRpb24sCisJCQkJCQkJCQkJICBsb3dlci0+ ZGF0dW1zLCBsb3dlci0+a2luZCwKKwkJCQkJCQkJCQkgIHRydWUsIHNwbGl0X2xvd2VyKTsK KworCQkJLyoKKwkJCSAqIExvd2VyIGJvdW5kIG9mICJzcGVjIiBzaG91bGQgYmUgZXF1YWwg KG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbAorCQkJICogaW4gY2FzZSBkZWZhdWx0UGFydD10 cnVlKSB0byBsb3dlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24uCisJCQkgKi8KKwkJCWlm ICgoIWRlZmF1bHRQYXJ0ICYmIGNtcHZhbCkgfHwgKGRlZmF1bHRQYXJ0ICYmIGNtcHZhbCA8 IDApKQorCQkJCW92ZXJsYXAgPSB0cnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJUGFydGl0 aW9uUmFuZ2VCb3VuZCAqc3BsaXRfdXBwZXI7CisKKwkJCXNwbGl0X3VwcGVyID0gbWFrZV9v bmVfcGFydGl0aW9uX3Jib3VuZChrZXksIC0xLCBzcGxpdF9zcGVjLT51cHBlcmRhdHVtcywg ZmFsc2UpOworCisJCQljbXB2YWwgPSBwYXJ0aXRpb25fcmJvdW5kX2NtcChrZXktPnBhcnRu YXR0cywKKwkJCQkJCQkJCQkgIGtleS0+cGFydHN1cGZ1bmMsCisJCQkJCQkJCQkJICBrZXkt PnBhcnRjb2xsYXRpb24sCisJCQkJCQkJCQkJICB1cHBlci0+ZGF0dW1zLCB1cHBlci0+a2lu ZCwKKwkJCQkJCQkJCQkgIGZhbHNlLCBzcGxpdF91cHBlcik7CisKKwkJCS8qCisJCQkgKiBV cHBlciBib3VuZCBvZiBvZiAic3BlYyIgc2hvdWxkIGJlIGVxdWFsIChvciBsZXNzIHRoYW4g b3IgZXF1YWwKKwkJCSAqIGluIGNhc2UgZGVmYXVsdFBhcnQ9dHJ1ZSkgdG8gdXBwZXIgYm91 bmQgb2Ygc3BsaXQgcGFydGl0aW9uLgorCQkJICovCisJCQlpZiAoKCFkZWZhdWx0UGFydCAm JiBjbXB2YWwpIHx8IChkZWZhdWx0UGFydCAmJiBjbXB2YWwgPiAwKSkKKwkJCQlvdmVybGFw ID0gdHJ1ZTsKKwkJfQorCisJCWlmIChvdmVybGFwKQorCQl7CisJCQlQYXJ0aXRpb25SYW5n ZURhdHVtICpkYXR1bTsKKworCQkJZGF0dW0gPSBsaXN0X250aChmaXJzdCA/IHNwZWMtPmxv d2VyZGF0dW1zIDogc3BlYy0+dXBwZXJkYXR1bXMsIGFicyhjbXB2YWwpIC0gMSk7CisKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1Rf REVGSU5JVElPTiksCisJCQkJCSBlcnJtc2coIiVzIGJvdW5kIG9mIHBhcnRpdGlvbiBcIiVz XCIgaXMgJXMgJXMgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uIiwKKwkJCQkJCQlmaXJzdCA/ ICJsb3dlciIgOiAidXBwZXIiLAorCQkJCQkJCXJlbG5hbWUsCisJCQkJCQkJZGVmYXVsdFBh cnQgPyAoZmlyc3QgPyAibGVzcyB0aGFuIiA6ICJncmVhdGVyIHRoYW4iKSA6ICJub3QgZXF1 YWxzIHRvIiwKKwkJCQkJCQlmaXJzdCA/ICJsb3dlciIgOiAidXBwZXIiKSwKKwkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRhdHVtLT5sb2NhdGlvbikpKTsKKwkJfQorCX0K K30KKworLyoKKyAqIGNoZWNrX3BhcnRpdGlvbl9ib3VuZHNfZm9yX3NwbGl0X2xpc3QKKyAq CisgKiAoZnVuY3Rpb24gZm9yIEJZIExJU1QgcGFydGl0aW9uaW5nKQorICoKKyAqIENoZWNr cyB0aGF0IGJvdW5kcyBvZiBuZXcgcGFydGl0aW9uIGlzIGluc2lkZSBib3VuZHMgb2Ygc3Bs aXQgcGFydGl0aW9uCisgKiAod2l0aCBPaWQgc3BsaXRQYXJ0T2lkKS4KKyAqCisgKiBwYXJl bnQ6CQkJcGFydGl0aW9uZWQgdGFibGUKKyAqIHJlbG5hbWU6CQkJbmFtZSBvZiB0aGUgbmV3 IHBhcnRpdGlvbgorICogc3BlYzoJCQlib3VuZHMgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbmV3 IHBhcnRpdGlvbgorICogc3BsaXRQYXJ0T2lkOglzcGxpdCBwYXJ0aXRpb24gT2lkCisgKiBw c3RhdGU6CQkJcG9pbnRlciB0byBQYXJzZVN0YXRlIHN0cnVjdCBmb3IgZGV0ZXJtaW5lIGVy cm9yIHBvc2l0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19wYXJ0aXRpb25fYm91bmRz X2Zvcl9zcGxpdF9saXN0KFJlbGF0aW9uIHBhcmVudCwgY2hhciAqcmVsbmFtZSwKKwkJCQkJ CQkJCSAgUGFydGl0aW9uQm91bmRTcGVjICpzcGVjLAorCQkJCQkJCQkJICBPaWQgc3BsaXRQ YXJ0T2lkLAorCQkJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFydGl0aW9u S2V5IGtleSA9IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJUGFydGl0aW9u RGVzYyBwYXJ0ZGVzYyA9IFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhwYXJlbnQsIGZhbHNl KTsKKwlQYXJ0aXRpb25Cb3VuZEluZm8gYm91bmRpbmZvID0gcGFydGRlc2MtPmJvdW5kaW5m bzsKKwlpbnQJCQl3aXRoID0gLTE7CisJYm9vbAkJb3ZlcmxhcCA9IGZhbHNlOworCWludAkJ CW92ZXJsYXBfbG9jYXRpb24gPSAtMTsKKwlMaXN0Q2VsbCAgICpjZWxsOworCisJQXNzZXJ0 KGtleS0+c3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZX0xJU1QpOworCUFzc2VydChz cGVjLT5zdHJhdGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfTElTVCk7CisJQXNzZXJ0KGJv dW5kaW5mbyAmJiBib3VuZGluZm8tPnN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJBVEVHWV9M SVNUKTsKKworCS8qCisJICogU2VhcmNoIGVhY2ggdmFsdWUgb2YgbmV3IHBhcnRpdGlvbiAi c3BlYyIgaW4gZXhpc3RpbmcgcGFydGl0aW9ucy4gQWxsCisJICogb2YgdGhlbSBzaG91bGQg YmUgaW4gc3BsaXQgcGFydGl0aW9uICh3aXRoIE9pZCBzcGxpdFBhcnRPaWQpLgorCSAqLwor CWZvcmVhY2goY2VsbCwgc3BlYy0+bGlzdGRhdHVtcykKKwl7CisJCUNvbnN0CSAgICp2YWwg PSBsZmlyc3Rfbm9kZShDb25zdCwgY2VsbCk7CisKKwkJb3ZlcmxhcF9sb2NhdGlvbiA9IHZh bC0+bG9jYXRpb247CisJCWlmICghdmFsLT5jb25zdGlzbnVsbCkKKwkJeworCQkJaW50CQkJ b2Zmc2V0OworCQkJYm9vbAkJZXF1YWw7CisKKwkJCW9mZnNldCA9IHBhcnRpdGlvbl9saXN0 X2JzZWFyY2goJmtleS0+cGFydHN1cGZ1bmNbMF0sCisJCQkJCQkJCQkJCWtleS0+cGFydGNv bGxhdGlvbiwKKwkJCQkJCQkJCQkJYm91bmRpbmZvLAorCQkJCQkJCQkJCQl2YWwtPmNvbnN0 dmFsdWUsCisJCQkJCQkJCQkJCSZlcXVhbCk7CisJCQlpZiAob2Zmc2V0ID49IDAgJiYgZXF1 YWwpCisJCQl7CisJCQkJd2l0aCA9IGJvdW5kaW5mby0+aW5kZXhlc1tvZmZzZXRdOworCQkJ CWlmIChwYXJ0ZGVzYy0+b2lkc1t3aXRoXSAhPSBzcGxpdFBhcnRPaWQpCisJCQkJeworCQkJ CQlvdmVybGFwID0gdHJ1ZTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJZWxzZQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JK RUNUX0RFRklOSVRJT04pLAorCQkJCQkJIGVycm1zZygibmV3IHBhcnRpdGlvbiBcIiVzXCIg Y2Fubm90IGhhdmUgdGhpcyB2YWx1ZSBiZWNhdXNlIHNwbGl0IHBhcnRpdGlvbiBkb2VzIG5v dCBoYXZlIiwKKwkJCQkJCQkJcmVsbmFtZSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgb3ZlcmxhcF9sb2NhdGlvbikpKTsKKwkJfQorCQllbHNlIGlmIChwYXJ0aXRp b25fYm91bmRfYWNjZXB0c19udWxscyhib3VuZGluZm8pKQorCQl7CisJCQl3aXRoID0gYm91 bmRpbmZvLT5udWxsX2luZGV4OworCQkJaWYgKHBhcnRkZXNjLT5vaWRzW3dpdGhdICE9IHNw bGl0UGFydE9pZCkKKwkJCXsKKwkJCQlvdmVybGFwID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJ CX0KKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJuZXcgcGFy dGl0aW9uIFwiJXNcIiBjYW5ub3QgaGF2ZSBOVUxMIHZhbHVlIGJlY2F1c2Ugc3BsaXQgcGFy dGl0aW9uIGRvZXMgbm90IGhhdmUiLAorCQkJCQkJCXJlbG5hbWUpLAorCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgb3ZlcmxhcF9sb2NhdGlvbikpKTsKKwl9CisKKwlpZiAo b3ZlcmxhcCkKKwl7CisJCUFzc2VydCh3aXRoID49IDApOworCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJ IGVycm1zZygibmV3IHBhcnRpdGlvbiBcIiVzXCIgd291bGQgb3ZlcmxhcCB3aXRoIGFub3Ro ZXIgKG5vdCBzcGxpdCkgcGFydGl0aW9uIFwiJXNcIiIsCisJCQkJCQlyZWxuYW1lLCBnZXRf cmVsX25hbWUocGFydGRlc2MtPm9pZHNbd2l0aF0pKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgb3ZlcmxhcF9sb2NhdGlvbikpKTsKKwl9Cit9CisKKy8qCisgKiBmaW5k X3ZhbHVlX2luX25ld19wYXJ0aXRpb25zCisgKgorICogKGZ1bmN0aW9uIGZvciBCWSBMSVNU IHBhcnRpdGlvbmluZykKKyAqCisgKiBGdW5jdGlvbiByZXR1cm5zIHRydWUgaW4gY2FzZSBh bnkgb2YgbmV3IHBhcnRpdGlvbnMgY29udGFpbnMgdmFsdWUgInZhbHVlIi4KKyAqCisgKiBw YXJ0c3VwZnVuYzoJCWluZm9ybWF0aW9uIGFib3V0IGNvbXBhcmlzb24gZnVuY3Rpb24gYXNz b2NpYXRlZCB3aXRoIHRoZSBwYXJ0aXRpb24ga2V5CisgKiBwYXJ0Y29sbGF0aW9uOglwYXJ0 aXRpb25pbmcgY29sbGF0aW9uCisgKiBwYXJ0czoJCQlwb2ludGVyIHRvIGFycmF5IHdpdGgg bmV3IHBhcnRpdGlvbnMgZGVzY3JpcHRpb25zCisgKiBucGFydHM6CQkJbnVtYmVyIG9mIG5l dyBwYXJ0aXRpb25zCisgKiB2YWx1ZToJCQl0aGUgdmFsdWUgdGhhdCB3ZSBhcmUgbG9va2lu ZyBmb3IKKyAqIGlzbnVsbDoJCQl0cnVlIGlmIHRoZSB2YWx1ZSB0aGF0IHdlIGFyZSBsb29r aW5nIGZvciBpcyBOVUxMCisgKi8KK3N0YXRpYyBib29sCitmaW5kX3ZhbHVlX2luX25ld19w YXJ0aXRpb25zX2xpc3QoRm1nckluZm8gKnBhcnRzdXBmdW5jLAorCQkJCQkJCQkgIE9pZCAq cGFydGNvbGxhdGlvbiwKKwkJCQkJCQkJICBTaW5nbGVQYXJ0aXRpb25TcGVjICogKnBhcnRz LAorCQkJCQkJCQkgIGludCBucGFydHMsCisJCQkJCQkJCSAgRGF0dW0gdmFsdWUsCisJCQkJ CQkJCSAgYm9vbCBpc251bGwpCit7CisJTGlzdENlbGwgICAqdmFscHRyOworCWludAkJCWk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcnRzOyBpKyspCisJeworCQlTaW5nbGVQYXJ0aXRp b25TcGVjICpzcHMgPSBwYXJ0c1tpXTsKKworCQlmb3JlYWNoKHZhbHB0ciwgc3BzLT5ib3Vu ZC0+bGlzdGRhdHVtcykKKwkJeworCQkJQ29uc3QJICAgKnZhbCA9IGxmaXJzdF9ub2RlKENv bnN0LCB2YWxwdHIpOworCisJCQlpZiAoaXNudWxsICYmIHZhbC0+Y29uc3Rpc251bGwpCisJ CQkJcmV0dXJuIHRydWU7CisKKwkJCWlmICghaXNudWxsICYmICF2YWwtPmNvbnN0aXNudWxs KQorCQkJeworCQkJCWlmIChEYXR1bUdldEludDMyKEZ1bmN0aW9uQ2FsbDJDb2xsKCZwYXJ0 c3VwZnVuY1swXSwKKwkJCQkJCQkJCQkJCQlwYXJ0Y29sbGF0aW9uWzBdLAorCQkJCQkJCQkJ CQkJCXZhbC0+Y29uc3R2YWx1ZSwKKwkJCQkJCQkJCQkJCQl2YWx1ZSkpID09IDApCisJCQkJ CXJldHVybiB0cnVlOworCQkJfQorCQl9CisJfQorCXJldHVybiBmYWxzZTsKK30KKworLyoK KyAqIGNoZWNrX3BhcmVudF92YWx1ZXNfaW5fbmV3X3BhcnRpdGlvbnMKKyAqCisgKiAoZnVu Y3Rpb24gZm9yIEJZIExJU1QgcGFydGl0aW9uaW5nKQorICoKKyAqIENoZWNrcyB0aGF0IGFs bCB2YWx1ZXMgb2Ygc3BsaXQgcGFydGl0aW9uICh3aXRoIE9pZCBwYXJ0T2lkKSBjb250YWlu cyBpbiBuZXcKKyAqIHBhcnRpdGlvbnMuCisgKgorICogcGFyZW50OglwYXJ0aXRpb25lZCB0 YWJsZQorICogcGFydE9pZDoJc3BsaXQgcGFydGl0aW9uIE9pZAorICogcGFydHM6CXBvaW50 ZXIgdG8gYXJyYXkgd2l0aCBuZXcgcGFydGl0aW9ucyBkZXNjcmlwdGlvbnMKKyAqIG5wYXJ0 czoJbnVtYmVyIG9mIG5ldyBwYXJ0aXRpb25zCisgKiBwc3RhdGU6CXBvaW50ZXIgdG8gUGFy c2VTdGF0ZSBzdHJ1Y3QgZm9yIGRldGVybWluZSBlcnJvciBwb3NpdGlvbgorICovCitzdGF0 aWMgdm9pZAorY2hlY2tfcGFyZW50X3ZhbHVlc19pbl9uZXdfcGFydGl0aW9ucyhSZWxhdGlv biBwYXJlbnQsCisJCQkJCQkJCQkgIE9pZCBwYXJ0T2lkLAorCQkJCQkJCQkJICBTaW5nbGVQ YXJ0aXRpb25TcGVjICogKnBhcnRzLAorCQkJCQkJCQkJICBpbnQgbnBhcnRzLAorCQkJCQkJ CQkJICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFydGl0aW9uS2V5IGtleSA9IFJlbGF0 aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJUGFydGl0aW9uRGVzYyBwYXJ0ZGVzYyA9 IFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhwYXJlbnQsIGZhbHNlKTsKKwlQYXJ0aXRpb25C b3VuZEluZm8gYm91bmRpbmZvID0gcGFydGRlc2MtPmJvdW5kaW5mbzsKKwlpbnQJCQlpOwor CWJvb2wJCWZvdW5kID0gdHJ1ZTsKKwlib29sCQlzZWFyY2hOdWxsID0gZmFsc2U7CisJRGF0 dW0JCWRhdHVtID0gUG9pbnRlckdldERhdHVtKE5VTEwpOworCisJQXNzZXJ0KGtleS0+c3Ry YXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZX0xJU1QpOworCisJLyoKKwkgKiBTcGVjaWFs IHByb2Nlc3NpbmcgZm9yIE5VTEwgdmFsdWUuIFNlYXJjaCBOVUxMLXZhbHVlIGlmIGl0IGNv bnRhaW5zCisJICogc3BsaXQgcGFydGl0aW9uIChwYXJ0T2lkKS4KKwkgKi8KKwlpZiAocGFy dGl0aW9uX2JvdW5kX2FjY2VwdHNfbnVsbHMoYm91bmRpbmZvKSAmJgorCQlwYXJ0ZGVzYy0+ b2lkc1tib3VuZGluZm8tPm51bGxfaW5kZXhdID09IHBhcnRPaWQpCisJeworCQlpZiAoIWZp bmRfdmFsdWVfaW5fbmV3X3BhcnRpdGlvbnNfbGlzdCgma2V5LT5wYXJ0c3VwZnVuY1swXSwK KwkJCQkJCQkJCQkJICAga2V5LT5wYXJ0Y29sbGF0aW9uLCBwYXJ0cywgbnBhcnRzLCBkYXR1 bSwgdHJ1ZSkpCisJCXsKKwkJCWZvdW5kID0gZmFsc2U7CisJCQlzZWFyY2hOdWxsID0gdHJ1 ZTsKKwkJfQorCX0KKworCS8qCisJICogU2VhcmNoIGFsbCB2YWx1ZXMgb2Ygc3BsaXQgcGFy dGl0aW9uIHdpdGggcGFydE9pZCBpbiBQYXJ0aXRpb25EZXNjIG9mCisJICogcGFydGl0aW9u ZGUgdGFibGUuCisJICovCisJZm9yIChpID0gMDsgaSA8IGJvdW5kaW5mby0+bmRhdHVtczsg aSsrKQorCXsKKwkJaWYgKHBhcnRkZXNjLT5vaWRzW2JvdW5kaW5mby0+aW5kZXhlc1tpXV0g PT0gcGFydE9pZCkKKwkJeworCQkJLyogV2UgZm91bmQgdmFsdWUgdGhhdCBzcGxpdCBwYXJ0 aXRpb24gY29udGFpbnMuICovCisJCQlkYXR1bSA9IGJvdW5kaW5mby0+ZGF0dW1zW2ldWzBd OworCQkJaWYgKCFmaW5kX3ZhbHVlX2luX25ld19wYXJ0aXRpb25zX2xpc3QoJmtleS0+cGFy dHN1cGZ1bmNbMF0sCisJCQkJCQkJCQkJCQkgICBrZXktPnBhcnRjb2xsYXRpb24sIHBhcnRz LCBucGFydHMsIGRhdHVtLCBmYWxzZSkpCisJCQl7CisJCQkJZm91bmQgPSBmYWxzZTsKKwkJ CQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCWlmICghZm91bmQpCisJeworCQlDb25zdAkg ICAqbm90Rm91bmRWYWw7CisKKwkJaWYgKCFzZWFyY2hOdWxsKQorCQkJLyogTWFrZSBDb25z dCBmb3IgZ2V0IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBub3QgZm91bmQgdmFsdWUuICov CisJCQlub3RGb3VuZFZhbCA9IG1ha2VDb25zdChrZXktPnBhcnR0eXBpZFswXSwKKwkJCQkJ CQkJCWtleS0+cGFydHR5cG1vZFswXSwKKwkJCQkJCQkJCWtleS0+cGFydHR5cGNvbGxbMF0s CisJCQkJCQkJCQlrZXktPnBhcnR0eXBsZW5bMF0sCisJCQkJCQkJCQlkYXR1bSwKKwkJCQkJ CQkJCWZhbHNlLAkvKiBpc251bGwgKi8KKwkJCQkJCQkJCWtleS0+cGFydHR5cGJ5dmFsWzBd KTsKKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygibmV3IHBhcnRpdGlvbnMgbm90IGhh dmUgdmFsdWUgJXMgYnV0IHNwbGl0IHBhcnRpdGlvbiBoYXMiLAorCQkJCQkJc2VhcmNoTnVs bCA/ICJOVUxMIiA6IGdldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcobm90Rm91bmRWYWwpKSkp OworCX0KK30KKworLyoKKyAqIGNoZWNrX3BhcnRpdGlvbnNfZm9yX3NwbGl0CisgKgorICog Q2hlY2tzIG5ldyBwYXJ0aXRpb25zIGZvciBTUExJVCBQQVJUSVRJT05TIGNvbW1hbmQ6Cisg KiAxLiBERUZBVUxUIHBhcnRpdGlvbiBzaG91bGQgYmUgb25lLgorICogMi4gTmV3IHBhcnRp dGlvbnMgc2hvdWxkIGhhdmUgZGlmZmVyZW50IG5hbWVzCisgKiAgICAod2l0aCBleGlzdGlu ZyBwYXJ0aXRpb25zIHRvbykuCisgKiAzLiBCb3VuZHMgb2YgbmV3IHBhcnRpdGlvbnMgc2hv dWxkIG5vdCBvdmVybGFwIHdpdGggbmV3IGFuZCBleGlzdGluZworICogICAgcGFydGl0aW9u cy4KKyAqIDQuIEluIGNhc2Ugc3BsaXQgcGFydGl0aW9uIGlzIERFRkFVTFQgcGFydGl0aW9u LCBvbmUgb2YgbmV3IHBhcnRpdGlvbnMKKyAqICAgIHNob3VsZCBiZSBERUZBVUxULgorICog NS4gSW4gY2FzZSBuZXcgcGFydGl0aW9ucyBvciBleGlzdGluZyBwYXJ0aXRpb25zIGNvbnRh aW5zIERFRkFVTFQKKyAqICAgIHBhcnRpdGlvbiwgbmV3IHBhcnRpdGlvbnMgY2FuIGhhdmUg YW55IGJvdW5kcyBpbnNpZGUgc3BsaXQKKyAqICAgIHBhcnRpdGlvbiBib3VuZCAoY2FuIGJl IHNwYWNlcyBiZXR3ZWVuIHBhcnRpdGlvbnMgYm91bmRzKS4KKyAqIDYuIEluIGNhc2UgcGFy dGl0aW9uZWQgdGFibGUgZG9lcyBub3QgaGF2ZSBERUZBVUxUIHBhcnRpdGlvbiwgREVGQVVM VAorICogICAgcGFydGl0aW9uIGNhbiBiZSBkZWZpbmVkIGFzIG9uZSBvZiBuZXcgcGFydGl0 aW9uLgorICogNy4gSW4gY2FzZSBuZXcgcGFydGl0aW9ucyBub3QgY29udGFpbnMgREVGQVVM VCBwYXJ0aXRpb24gYW5kCisgKiAgICBwYXJ0aXRpb25lZCB0YWJsZSBkb2VzIG5vdCBoYXZl IERFRkFVTFQgcGFydGl0aW9uIHRoZSBmb2xsb3dpbmcKKyAqICAgIHNob3VsZCBiZSB0cnVl OiBzdW0gYm91bmRzIG9mIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBiZSBlcXVhbAorICogICAg dG8gYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uLgorICoKKyAqIHBhcmVudDoJCQlwYXJ0aXRp b25lZCB0YWJsZQorICogc3BsaXRQYXJ0T2lkOglzcGxpdCBwYXJ0aXRpb24gT2lkCisgKiBz cGxpdFBhcnROYW1lOglzcGxpdCBwYXJ0aXRpb24gbmFtZQorICogbGlzdDoJCQlsaXN0IG9m IG5ldyBwYXJ0aXRpb25zCisgKiBwc3RhdGU6CQkJcG9pbnRlciB0byBQYXJzZVN0YXRlIHN0 cnVjdCBmb3IgZGV0ZXJtaW5lIGVycm9yIHBvc2l0aW9uCisgKi8KK3ZvaWQKK2NoZWNrX3Bh cnRpdGlvbnNfZm9yX3NwbGl0KFJlbGF0aW9uIHBhcmVudCwKKwkJCQkJCSAgIE9pZCBzcGxp dFBhcnRPaWQsCisJCQkJCQkgICBSYW5nZVZhciAqc3BsaXRQYXJ0TmFtZSwKKwkJCQkJCSAg IExpc3QgKnBhcnRsaXN0LAorCQkJCQkJICAgUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCVBh cnRpdGlvbktleSBrZXk7CisJY2hhcgkJc3RyYXRlZ3k7CisJT2lkCQkJZGVmYXVsdFBhcnRP aWQ7CisJYm9vbAkJaXNTcGxpdFBhcnREZWZhdWx0OworCWJvb2wJCWV4aXN0c0RlZmF1bHRQ YXJ0OworCUxpc3RDZWxsICAgKmxpc3RwdHI7CisJaW50CQkJZGVmYXVsdF9pbmRleCA9IC0x OworCWludAkJCWksCisJCQkJajsKKwlTaW5nbGVQYXJ0aXRpb25TcGVjICoqbmV3X3BhcnRz OworCVNpbmdsZVBhcnRpdGlvblNwZWMgKnNwc1ByZXYgPSBOVUxMOworCWludAkJCW5wYXJ0 cyA9IDA7CisKKwlrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktleShwYXJlbnQpOworCXN0 cmF0ZWd5ID0gZ2V0X3BhcnRpdGlvbl9zdHJhdGVneShrZXkpOworCisJc3dpdGNoIChzdHJh dGVneSkKKwl7CisJCWNhc2UgUEFSVElUSU9OX1NUUkFURUdZX0xJU1Q6CisJCWNhc2UgUEFS VElUSU9OX1NUUkFURUdZX1JBTkdFOgorCQkJeworCQkJCS8qCisJCQkJICogTWFrZSBhcnJh eSBuZXdfcGFydHMgd2l0aCBuZXcgcGFydGl0aW9ucyBleGNlcHQgREVGQVVMVAorCQkJCSAq IHBhcnRpdGlvbi4KKwkJCQkgKi8KKwkJCQluZXdfcGFydHMgPSAoU2luZ2xlUGFydGl0aW9u U3BlYyAqICopCisJCQkJCXBhbGxvYzAobGlzdF9sZW5ndGgocGFydGxpc3QpICogc2l6ZW9m KFNpbmdsZVBhcnRpdGlvblNwZWMgKikpOworCQkJCWkgPSAtMTsKKwkJCQlmb3JlYWNoKGxp c3RwdHIsIHBhcnRsaXN0KQorCQkJCXsKKwkJCQkJU2luZ2xlUGFydGl0aW9uU3BlYyAqc3Bz ID0KKwkJCQkJKFNpbmdsZVBhcnRpdGlvblNwZWMgKikgbGZpcnN0KGxpc3RwdHIpOworCisJ CQkJCWkrKzsKKwkJCQkJaWYgKHNwcy0+Ym91bmQtPmlzX2RlZmF1bHQpCisJCQkJCXsKKwkJ CQkJCWlmIChkZWZhdWx0X2luZGV4ID49IDApCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJ CQkJCQkJCQkgZXJybXNnKCJERUZBVUxUIHBhcnRpdGlvbiBzaG91bGQgYmUgb25lIikpLAor CQkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3BzLT5uYW1lLT5sb2NhdGlv bikpOworCQkJCQkJZGVmYXVsdF9pbmRleCA9IGk7CisJCQkJCQljb250aW51ZTsKKwkJCQkJ fQorCQkJCQluZXdfcGFydHNbbnBhcnRzKytdID0gc3BzOworCQkJCX0KKwkJCX0KKwkJCWJy ZWFrOworCisJCWNhc2UgUEFSVElUSU9OX1NUUkFURUdZX0hBU0g6CisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCSBlcnJtc2coInBhcnRpdGlvbiBvZiBoYXNoLXBhcnRpdGlvbmVkIHRhYmxlIGNhbm5v dCBiZSBzcGxpdCIpKSk7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgcGFydGl0aW9uIHN0cmF0ZWd5OiAlZCIsCisJCQkJIChpbnQpIGtl eS0+c3RyYXRlZ3kpOworCQkJYnJlYWs7CisJfQorCisJaWYgKHN0cmF0ZWd5ID09IFBBUlRJ VElPTl9TVFJBVEVHWV9SQU5HRSkKKwl7CisJCVBhcnRpdGlvblJhbmdlQm91bmQgKipsb3dl cl9ib3VuZHM7CisJCVNpbmdsZVBhcnRpdGlvblNwZWMgKip0bXBfbmV3X3BhcnRzOworCisJ CS8qCisJCSAqIEZvciBzaW1wbGlmeSBjaGVjayBmb3IgcmFuZ2VzIG9mIG5ldyBwYXJ0aXRp b25zIG5lZWQgdG8gc29ydCBhbGwKKwkJICogcGFydGl0aW9ucyBpbiBhc2NlbmRpbmcgb3Jk ZXIgb2YgdGhlbSBib3VuZHMgKHdlIGNvbXBhcmUgdXBwZXIKKwkJICogYm91bmQgb25seSku CisJCSAqLworCQlsb3dlcl9ib3VuZHMgPSAoUGFydGl0aW9uUmFuZ2VCb3VuZCAqKikKKwkJ CXBhbGxvYzAobnBhcnRzICogc2l6ZW9mKFBhcnRpdGlvblJhbmdlQm91bmQgKikpOworCisJ CS8qIENyZWF0ZSBhcnJheSBvZiBsb3dlciBib3VuZHMuICovCisJCWZvciAoaSA9IDA7IGkg PCBucGFydHM7IGkrKykKKwkJeworCQkJbG93ZXJfYm91bmRzW2ldID0gbWFrZV9vbmVfcGFy dGl0aW9uX3Jib3VuZChrZXksIGksCisJCQkJCQkJCQkJCQkJCW5ld19wYXJ0c1tpXS0+Ym91 bmQtPmxvd2VyZGF0dW1zLCB0cnVlKTsKKwkJfQorCisJCS8qIFNvcnQgYXJyYXkgb2YgbG93 ZXIgYm91bmRzLiAqLworCQlxc29ydF9hcmcobG93ZXJfYm91bmRzLCBucGFydHMsIHNpemVv ZihQYXJ0aXRpb25SYW5nZUJvdW5kICopLAorCQkJCSAgcXNvcnRfcGFydGl0aW9uX3Jib3Vu ZF9jbXAsICh2b2lkICopIGtleSk7CisKKwkJLyogUmVvcmRlciBhcnJheSBvZiBwYXJ0aXRp b25zLiAqLworCQl0bXBfbmV3X3BhcnRzID0gbmV3X3BhcnRzOworCQluZXdfcGFydHMgPSAo U2luZ2xlUGFydGl0aW9uU3BlYyAqICopCisJCQlwYWxsb2MwKG5wYXJ0cyAqIHNpemVvZihT aW5nbGVQYXJ0aXRpb25TcGVjICopKTsKKwkJZm9yIChpID0gMDsgaSA8IG5wYXJ0czsgaSsr KQorCQkJbmV3X3BhcnRzW2ldID0gdG1wX25ld19wYXJ0c1tsb3dlcl9ib3VuZHNbaV0tPmlu ZGV4XTsKKworCQlwZnJlZSh0bXBfbmV3X3BhcnRzKTsKKwkJcGZyZWUobG93ZXJfYm91bmRz KTsKKwl9CisKKwlkZWZhdWx0UGFydE9pZCA9CisJCWdldF9kZWZhdWx0X29pZF9mcm9tX3Bh cnRkZXNjKFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhwYXJlbnQsIHRydWUpKTsKKworCS8q IGlzU3BsaXRQYXJ0RGVmYXVsdCBmbGFnOiBpcyBzcGxpdCBwYXJ0aXRpb24gYSBERUZBVUxU IHBhcnRpdGlvbj8gKi8KKwlpc1NwbGl0UGFydERlZmF1bHQgPSAoZGVmYXVsdFBhcnRPaWQg PT0gc3BsaXRQYXJ0T2lkKTsKKworCWlmIChpc1NwbGl0UGFydERlZmF1bHQgJiYgZGVmYXVs dF9pbmRleCA8IDApCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiYW55IHBhcnRp dGlvbiBpbiB0aGUgbGlzdCBzaG91bGQgYmUgREVGQVVMVCBiZWNhdXNlIHNwbGl0IHBhcnRp dGlvbiBpcyBERUZBVUxUIikpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsICgo U2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsaW5pdGlhbChwYXJ0bGlzdCkpLT5uYW1lLT5sb2Nh dGlvbikpOworCX0KKwllbHNlIGlmICghaXNTcGxpdFBhcnREZWZhdWx0ICYmIChkZWZhdWx0 X2luZGV4ID49IDApICYmIE9pZElzVmFsaWQoZGVmYXVsdFBhcnRPaWQpKQorCXsKKwkJU2lu Z2xlUGFydGl0aW9uU3BlYyAqc3BzRGVmID0KKwkJKFNpbmdsZVBhcnRpdGlvblNwZWMgKikg bGlzdF9udGgocGFydGxpc3QsIGRlZmF1bHRfaW5kZXgpOworCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJ CQkgZXJybXNnKCJuZXcgcGFydGl0aW9uIGNhbm5vdCBiZSBERUZBVUxUIGJlY2F1c2UgREVG QVVMVCBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMiKSksCisJCQkJcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgc3BzRGVmLT5uYW1lLT5sb2NhdGlvbikpOworCX0KKworCS8qIEluZGlj YXRvciB0aGF0IHBhcnRpdGlvbmVkIHRhYmxlIGhhcyAob3Igd2lsbCBoYXZlKSBERUZBVUxU IHBhcnRpdGlvbiAqLworCWV4aXN0c0RlZmF1bHRQYXJ0ID0gT2lkSXNWYWxpZChkZWZhdWx0 UGFydE9pZCkgfHwgKGRlZmF1bHRfaW5kZXggPj0gMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwg bnBhcnRzOyBpKyspCisJeworCQlTaW5nbGVQYXJ0aXRpb25TcGVjICpzcHMgPSBuZXdfcGFy dHNbaV07CisKKwkJaWYgKGlzU3BsaXRQYXJ0RGVmYXVsdCkKKwkJeworCQkJLyoKKwkJCSAq IEluIGNhc2Ugc3BsaXQgcGFydGl0aW9uIGlzIERFRkFVTFQgcGFydGl0aW9uIHdlIGNhbiB1 c2UgYW55CisJCQkgKiBmcmVlIHJhbmdlcyAtIGFzIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFy dGl0aW9uLgorCQkJICovCisJCQljaGVja19uZXdfcGFydGl0aW9uX2JvdW5kKHNwcy0+bmFt ZS0+cmVsbmFtZSwgcGFyZW50LCBzcHMtPmJvdW5kLAorCQkJCQkJCQkJICBwc3RhdGUpOwor CQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIENoZWNrcyB0aGF0IGJvdW5kIG9mIGN1 cnJlbnQgcGFydGl0aW9uIGlzIGluc2lkZSBib3VuZCBvZiBzcGxpdAorCQkJICogcGFydGl0 aW9uLiBGb3IgcmFuZ2UgcGFydGl0aW9uaW5nOiBjaGVja3MgdGhhdCB1cHBlciBib3VuZCBv ZgorCQkJICogcHJldmlvdXMgcGFydGl0aW9uIGlzIGVxdWFsIHRvIGxvd2VyIGJvdW5kIG9m IGN1cnJlbnQKKwkJCSAqIHBhcnRpdGlvbi4gRm9yIGxpc3QgcGFydGl0aW9uaW5nOiBjaGVj a3MgdGhhdCBzcGxpdCBwYXJ0aXRpb24KKwkJCSAqIGNvbnRhaW5zIGFsbCB2YWx1ZXMgb2Yg Y3VycmVudCBwYXJ0aXRpb24uCisJCQkgKi8KKwkJCWlmIChzdHJhdGVneSA9PSBQQVJUSVRJ T05fU1RSQVRFR1lfUkFOR0UpCisJCQl7CisJCQkJYm9vbAkJZmlyc3QgPSAoaSA9PSAwKTsK KwkJCQlib29sCQlsYXN0ID0gKGkgPT0gKG5wYXJ0cyAtIDEpKTsKKworCQkJCWNoZWNrX3Bh cnRpdGlvbl9ib3VuZHNfZm9yX3NwbGl0X3JhbmdlKHBhcmVudCwgc3BzLT5uYW1lLT5yZWxu YW1lLCBzcHMtPmJvdW5kLAorCQkJCQkJCQkJCQkJCSAgIHNwbGl0UGFydE9pZCwgc3BsaXRQ YXJ0TmFtZSwKKwkJCQkJCQkJCQkJCQkgICBmaXJzdCwgbGFzdCwKKwkJCQkJCQkJCQkJCQkg ICBleGlzdHNEZWZhdWx0UGFydCwgcHN0YXRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQljaGVj a19wYXJ0aXRpb25fYm91bmRzX2Zvcl9zcGxpdF9saXN0KHBhcmVudCwgc3BzLT5uYW1lLT5y ZWxuYW1lLAorCQkJCQkJCQkJCQkJCSAgc3BzLT5ib3VuZCwgc3BsaXRQYXJ0T2lkLCBwc3Rh dGUpOworCQl9CisKKwkJLyogUmFuZ2VzIG9mIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBub3Qg b3ZlcmxhcC4gKi8KKwkJaWYgKHN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJBVEVHWV9SQU5H RSAmJiBzcHNQcmV2KQorCQkJY2hlY2tfdHdvX3BhcnRpdGlvbnNfYm91bmRzX3JhbmdlKHBh cmVudCwgc3BzUHJldi0+bmFtZSwgc3BzUHJldi0+Ym91bmQsCisJCQkJCQkJCQkJCSAgc3Bz LT5uYW1lLCBzcHMtPmJvdW5kLCBleGlzdHNEZWZhdWx0UGFydCwgcHN0YXRlKTsKKworCQlz cHNQcmV2ID0gc3BzOworCisJCS8qIENoZWNrOiBuZXcgcGFydGl0aW9ucyBzaG91bGQgaGF2 ZSBkaWZmZXJlbnQgbmFtZXMuICovCisJCWZvciAoaiA9IGkgKyAxOyBqIDwgbnBhcnRzOyBq KyspCisJCXsKKwkJCVNpbmdsZVBhcnRpdGlvblNwZWMgKnNwczIgPSBuZXdfcGFydHNbal07 CisKKwkJCWlmIChlcXVhbChzcHMtPm5hbWUsIHNwczItPm5hbWUpKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJ CQkgZXJybXNnKCJuYW1lIFwiJXNcIiBhbHJlYWR5IHVzZWQiLCBzcHMyLT5uYW1lLT5yZWxu YW1lKSksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzcHMyLT5uYW1lLT5s b2NhdGlvbikpOworCQl9CisJfQorCisJaWYgKHN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJB VEVHWV9MSVNUKQorCXsKKwkJLyogVmFsdWVzIG9mIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBu b3Qgb3ZlcmxhcC4gKi8KKwkJY2hlY2tfcGFydGl0aW9uc19ub3Rfb3ZlcmxhcF9saXN0KHBh cmVudCwgbmV3X3BhcnRzLCBucGFydHMsCisJCQkJCQkJCQkJICBwc3RhdGUpOworCisJCS8q CisJCSAqIE5lZWQgdG8gY2hlY2sgdGhhdCBhbGwgdmFsdWVzIG9mIHNwbGl0IHBhcnRpdGlv biBjb250YWlucyBpbiBuZXcKKwkJICogcGFydGl0aW9ucy4gU2tpcCB0aGlzIGNoZWNrIGlm IERFRkFVTFQgcGFydGl0aW9uIGV4aXN0cy4KKwkJICovCisJCWlmICghZXhpc3RzRGVmYXVs dFBhcnQpCisJCQljaGVja19wYXJlbnRfdmFsdWVzX2luX25ld19wYXJ0aXRpb25zKHBhcmVu dCwgc3BsaXRQYXJ0T2lkLAorCQkJCQkJCQkJCQkJICBuZXdfcGFydHMsIG5wYXJ0cywgcHN0 YXRlKTsKKwl9CisKKwlwZnJlZShuZXdfcGFydHMpOworfQorCiAvKgogICogY2FsY3VsYXRl X3BhcnRpdGlvbl9ib3VuZF9mb3JfbWVyZ2UKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKaW5kZXggZWQ3ZjQwZjA1My4uMjZmODFhMzJmYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYwpAQCAtMTI2NTEsMyArMTI2NTEsMjEgQEAgZ2V0X3JhbmdlX3BhcnRi b3VuZF9zdHJpbmcoTGlzdCAqYm91bmRfZGF0dW1zKQogCiAJcmV0dXJuIGJ1Zi0+ZGF0YTsK IH0KKworLyoKKyAqIGdldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcKKyAqCQlBIEMgc3RyaW5n IHJlcHJlc2VudGF0aW9uIG9mIG9uZSBsaXN0IHBhcnRpdGlvbiB2YWx1ZQorICovCitjaGFy ICoKK2dldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcoQ29uc3QgKnZhbCkKK3sKKwlkZXBhcnNl X2NvbnRleHQgY29udGV4dDsKKwlTdHJpbmdJbmZvCWJ1ZiA9IG1ha2VTdHJpbmdJbmZvKCk7 CisKKwltZW1zZXQoJmNvbnRleHQsIDAsIHNpemVvZihkZXBhcnNlX2NvbnRleHQpKTsKKwlj b250ZXh0LmJ1ZiA9IGJ1ZjsKKworCWdldF9jb25zdF9leHByKHZhbCwgJmNvbnRleHQsIC0x KTsKKworCXJldHVybiBidWYtPmRhdGE7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggMzFiNmUyYWIyNC4uNmFjYWVjY2ViYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApA QCAtMjI1OSw2ICsyMjU5LDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyVGFibGVUeXBlCiAJQVRf QXR0YWNoUGFydGl0aW9uLAkJCS8qIEFUVEFDSCBQQVJUSVRJT04gKi8KIAlBVF9EZXRhY2hQ YXJ0aXRpb24sCQkJLyogREVUQUNIIFBBUlRJVElPTiAqLwogCUFUX0RldGFjaFBhcnRpdGlv bkZpbmFsaXplLCAvKiBERVRBQ0ggUEFSVElUSU9OIEZJTkFMSVpFICovCisJQVRfU3BsaXRQ YXJ0aXRpb24sCQkJLyogU1BMSVQgUEFSVElUSU9OICovCiAJQVRfTWVyZ2VQYXJ0aXRpb25z LAkJCS8qIE1FUkdFIFBBUlRJVElPTlMgKi8KIAlBVF9BZGRJZGVudGl0eSwJCQkJLyogQURE IElERU5USVRZICovCiAJQVRfU2V0SWRlbnRpdHksCQkJCS8qIFNFVCBpZGVudGl0eSBjb2x1 bW4gb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGY3NmE3YzMwMjMuLmI1NGVi YmI3ODYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQwNCw2ICs0MDQsNyBAQCBQR19LRVlX T1JEKCJza2lwIiwgU0tJUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgic21hbGxpbnQiLCBTTUFMTElOVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInNuYXBzaG90IiwgU05BUFNIT1QsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNvbWUiLCBTT01FLCBSRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic3BsaXQiLCBTUExJVCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic3FsIiwgU1FMX1AsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInN0YWJsZSIsIFNU QUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic3Rh bmRhbG9uZSIsIFNUQU5EQUxPTkVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuaCBi L3NyYy9pbmNsdWRlL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgKaW5kZXggN2I5NWJiNzNi MC4uNjdhMWY5NDc2MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFydGl0aW9uaW5nL3Bh cnRib3VuZHMuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5o CkBAIC0xNDMsNiArMTQzLDExIEBAIGV4dGVybiBpbnQJcGFydGl0aW9uX3JhbmdlX2RhdHVt X2JzZWFyY2goRm1nckluZm8gKnBhcnRzdXBmdW5jLAogZXh0ZXJuIGludAlwYXJ0aXRpb25f aGFzaF9ic2VhcmNoKFBhcnRpdGlvbkJvdW5kSW5mbyBib3VuZGluZm8sCiAJCQkJCQkJCSAg IGludCBtb2R1bHVzLCBpbnQgcmVtYWluZGVyKTsKIAorZXh0ZXJuIHZvaWQgY2hlY2tfcGFy dGl0aW9uc19mb3Jfc3BsaXQoUmVsYXRpb24gcGFyZW50LAorCQkJCQkJCQkJICAgT2lkIHNw bGl0UGFydE9pZCwKKwkJCQkJCQkJCSAgIFJhbmdlVmFyICpzcGxpdFBhcnROYW1lLAorCQkJ CQkJCQkJICAgTGlzdCAqcGFydGxpc3QsCisJCQkJCQkJCQkgICBQYXJzZVN0YXRlICpwc3Rh dGUpOwogZXh0ZXJuIHZvaWQgY2FsY3VsYXRlX3BhcnRpdGlvbl9ib3VuZF9mb3JfbWVyZ2Uo UmVsYXRpb24gcGFyZW50LAogCQkJCQkJCQkJCQkJTGlzdCAqcGFydE5hbWVzLAogCQkJCQkJ CQkJCQkJTGlzdCAqcGFydE9pZHMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9y dWxldXRpbHMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3J1bGV1dGlscy5oCmluZGV4IGIwMDZk OWQ0NzUuLjBlNGE4YTQwNDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3J1bGV1 dGlscy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3J1bGV1dGlscy5oCkBAIC00OSw0ICs0 OSw2IEBAIGV4dGVybiBjaGFyICpnZXRfcmFuZ2VfcGFydGJvdW5kX3N0cmluZyhMaXN0ICpi b3VuZF9kYXR1bXMpOwogCiBleHRlcm4gY2hhciAqcGdfZ2V0X3N0YXRpc3RpY3NvYmpkZWZf c3RyaW5nKE9pZCBzdGF0ZXh0aWQpOwogCitleHRlcm4gY2hhciAqZ2V0X2xpc3RfcGFydHZh bHVlX3N0cmluZyhDb25zdCAqdmFsKTsKKwogI2VuZGlmCQkJCQkJCS8qIFJVTEVVVElMU19I ICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvcGFydGl0aW9u LXNwbGl0Lm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9wYXJ0aXRpb24tc3Bs aXQub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjVkOWU4YjA5 MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvcGFy dGl0aW9uLXNwbGl0Lm91dApAQCAtMCwwICsxLDE5MCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3 aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMxYiBzMXNwbHQgczJi IHMyaSBzMWMgczJjIHMycworc3RlcCBzMWI6IEJFR0lOOworc3RlcCBzMXNwbHQ6IEFMVEVS IFRBQkxFIHRwYXJ0IFNQTElUIFBBUlRJVElPTiB0cGFydF8xMF8yMCBJTlRPCisJCQkgICAo UEFSVElUSU9OIHRwYXJ0XzEwXzE1IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgxNSksCisJ CQkgICAgUEFSVElUSU9OIHRwYXJ0XzE1XzIwIEZPUiBWQUxVRVMgRlJPTSAoMTUpIFRPICgy MCkpOworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZB TFVFUyAoMSwgJ3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOwor c3RlcCBzMmk6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJz OiBTRUxFQ1QgKiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSstLS0tLS0KKyA1fHRleHQw NQorIDF8dGV4dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8dGV4dDM1CisoNSByb3dz KQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWIgczFzcGx0IHMyYnJyIHMyaSBzMWMg czJjIHMycworc3RlcCBzMWI6IEJFR0lOOworc3RlcCBzMXNwbHQ6IEFMVEVSIFRBQkxFIHRw YXJ0IFNQTElUIFBBUlRJVElPTiB0cGFydF8xMF8yMCBJTlRPCisJCQkgICAoUEFSVElUSU9O IHRwYXJ0XzEwXzE1IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgxNSksCisJCQkgICAgUEFS VElUSU9OIHRwYXJ0XzE1XzIwIEZPUiBWQUxVRVMgRlJPTSAoMTUpIFRPICgyMCkpOworc3Rl cCBzMmJycjogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0ZXAg czJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcg Li4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0 ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQg ICAgIAorLS0rLS0tLS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0 ZXh0MjUKKzM1fHRleHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjog czFiIHMxc3BsdCBzMmJzIHMyaSBzMWMgczJjIHMycworc3RlcCBzMWI6IEJFR0lOOworc3Rl cCBzMXNwbHQ6IEFMVEVSIFRBQkxFIHRwYXJ0IFNQTElUIFBBUlRJVElPTiB0cGFydF8xMF8y MCBJTlRPCisJCQkgICAoUEFSVElUSU9OIHRwYXJ0XzEwXzE1IEZPUiBWQUxVRVMgRlJPTSAo MTApIFRPICgxNSksCisJCQkgICAgUEFSVElUSU9OIHRwYXJ0XzE1XzIwIEZPUiBWQUxVRVMg RlJPTSAoMTUpIFRPICgyMCkpOworc3RlcCBzMmJzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwg U0VSSUFMSVpBQkxFOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwg J3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMmk6 IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1Qg KiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSstLS0tLS0KKyA1fHRleHQwNQorIDF8dGV4 dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8dGV4dDM1CisoNSByb3dzKQorCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWJyciBzMXNwbHQgczJiIHMyaSBzMWMgczJjIHMycwor c3RlcCBzMWJycjogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0 ZXAgczFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBf MjAgSU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00g KDEwKSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVT IEZST00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJpOiBJTlNF UlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcgLi4uPgorc3Rl cCBzMWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBD T01NSVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgIAorLS0r LS0tLS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0ZXh0MjUKKzM1 fHRleHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczFicnIgczFz cGx0IHMyYnJyIHMyaSBzMWMgczJjIHMycworc3RlcCBzMWJycjogQkVHSU4gSVNPTEFUSU9O IExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0ZXAgczFzcGx0OiBBTFRFUiBUQUJMRSB0cGFy dCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBfMjAgSU5UTworCQkJICAgKFBBUlRJVElPTiB0 cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMTUpLAorCQkJICAgIFBBUlRJ VElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZST00gKDE1KSBUTyAoMjApKTsKK3N0ZXAg czJicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMy aTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7IDx3YWl0aW5nIC4u Lj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMyaTogPC4uLiBjb21wbGV0ZWQ+CitzdGVw IHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAg ICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0ZXh0MDEKKzE1fHRleHQxNQorMjV8dGV4 dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMx YnJyIHMxc3BsdCBzMmJzIHMyaSBzMWMgczJjIHMycworc3RlcCBzMWJycjogQkVHSU4gSVNP TEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0ZXAgczFzcGx0OiBBTFRFUiBUQUJM RSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBfMjAgSU5UTworCQkJICAgKFBBUlRJ VElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMTUpLAorCQkJICAg IFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZST00gKDE1KSBUTyAoMjApKTsK K3N0ZXAgczJiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKK3N0ZXAg czJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcg Li4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0 ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQg ICAgIAorLS0rLS0tLS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0 ZXh0MjUKKzM1fHRleHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjog czFicyBzMXNwbHQgczJiIHMyaSBzMWMgczJjIHMycworc3RlcCBzMWJzOiBCRUdJTiBJU09M QVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOworc3RlcCBzMXNwbHQ6IEFMVEVSIFRBQkxFIHRw YXJ0IFNQTElUIFBBUlRJVElPTiB0cGFydF8xMF8yMCBJTlRPCisJCQkgICAoUEFSVElUSU9O IHRwYXJ0XzEwXzE1IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgxNSksCisJCQkgICAgUEFS VElUSU9OIHRwYXJ0XzE1XzIwIEZPUiBWQUxVRVMgRlJPTSAoMTUpIFRPICgyMCkpOworc3Rl cCBzMmI6IEJFR0lOOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwg J3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMmk6 IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1Qg KiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSstLS0tLS0KKyA1fHRleHQwNQorIDF8dGV4 dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8dGV4dDM1CisoNSByb3dzKQorCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWJzIHMxc3BsdCBzMmJyciBzMmkgczFjIHMyYyBzMnMK K3N0ZXAgczFiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKK3N0ZXAg czFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBfMjAg SU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00gKDEw KSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZS T00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBS RVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgx LCAndGV4dDAxJyk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMy aTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVD VCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0 ZXh0MDEKKzE1fHRleHQxNQorMjV8dGV4dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKKwor c3RhcnRpbmcgcGVybXV0YXRpb246IHMxYnMgczFzcGx0IHMyYnMgczJpIHMxYyBzMmMgczJz CitzdGVwIHMxYnM6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7CitzdGVw IHMxc3BsdDogQUxURVIgVEFCTEUgdHBhcnQgU1BMSVQgUEFSVElUSU9OIHRwYXJ0XzEwXzIw IElOVE8KKwkJCSAgIChQQVJUSVRJT04gdHBhcnRfMTBfMTUgRk9SIFZBTFVFUyBGUk9NICgx MCkgVE8gKDE1KSwKKwkJCSAgICBQQVJUSVRJT04gdHBhcnRfMTVfMjAgRk9SIFZBTFVFUyBG Uk9NICgxNSkgVE8gKDIwKSk7CitzdGVwIHMyYnM6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBT RVJJQUxJWkFCTEU7CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAn dGV4dDAxJyk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMyaTog PC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAq IEZST00gdHBhcnQ7CisgaXx0ICAgICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0ZXh0 MDEKKzE1fHRleHQxNQorMjV8dGV4dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVz dC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDEwNzEyNTYxODIuLjc5Yjcz MGZiODYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTA0 LDYgKzEwNCw3IEBAIHRlc3Q6IHBhcnRpdGlvbi1rZXktdXBkYXRlLTIKIHRlc3Q6IHBhcnRp dGlvbi1rZXktdXBkYXRlLTMKIHRlc3Q6IHBhcnRpdGlvbi1rZXktdXBkYXRlLTQKIHRlc3Q6 IHBhcnRpdGlvbi1tZXJnZQordGVzdDogcGFydGl0aW9uLXNwbGl0CiB0ZXN0OiBwbHBnc3Fs LXRvYXN0CiB0ZXN0OiBjbHVzdGVyLWNvbmZsaWN0CiB0ZXN0OiBjbHVzdGVyLWNvbmZsaWN0 LXBhcnRpdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRp dGlvbi1zcGxpdC5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRpdGlvbi1z cGxpdC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA4NzIz OWE0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvcGFy dGl0aW9uLXNwbGl0LnNwZWMKQEAgLTAsMCArMSw1NCBAQAorIyBWZXJpZnkgdGhhdCBTUExJ VCBvcGVyYXRpb24gbG9ja3MgRE1MIG9wZXJhdGlvbnMgd2l0aCBwYXJ0aXRpb25lZCB0YWJs ZQorCitzZXR1cAoreworICBEUk9QIFRBQkxFIElGIEVYSVNUUyB0cGFydDsKKyAgQ1JFQVRF IFRBQkxFIHRwYXJ0KGkgaW50LCB0IHRleHQpIHBhcnRpdGlvbiBieSByYW5nZShpKTsKKyAg Q1JFQVRFIFRBQkxFIHRwYXJ0XzAwXzEwIFBBUlRJVElPTiBPRiB0cGFydCBGT1IgVkFMVUVT IEZST00gKDApIFRPICgxMCk7CisgIENSRUFURSBUQUJMRSB0cGFydF8xMF8yMCBQQVJUSVRJ T04gT0YgdHBhcnQgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKTsKKyAgQ1JFQVRFIFRB QkxFIHRwYXJ0XzIwXzMwIFBBUlRJVElPTiBPRiB0cGFydCBGT1IgVkFMVUVTIEZST00gKDIw KSBUTyAoMzApOworICBDUkVBVEUgVEFCTEUgdHBhcnRfZGVmYXVsdCBQQVJUSVRJT04gT0Yg dHBhcnQgREVGQVVMVDsKKyAgSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICg1LCAndGV4dDA1 Jyk7CisgIElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMTUsICd0ZXh0MTUnKTsKKyAgSU5T RVJUIElOVE8gdHBhcnQgVkFMVUVTICgyNSwgJ3RleHQyNScpOworICBJTlNFUlQgSU5UTyB0 cGFydCBWQUxVRVMgKDM1LCAndGV4dDM1Jyk7Cit9CisKK3RlYXJkb3duCit7CisgIERST1Ag VEFCTEUgdHBhcnQ7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczFiCXsgQkVHSU47IH0KK3N0 ZXAgczFicnIJeyBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOyB9Citz dGVwIHMxYnMJeyBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOyB9CitzdGVw IHMxc3BsdAl7IEFMVEVSIFRBQkxFIHRwYXJ0IFNQTElUIFBBUlRJVElPTiB0cGFydF8xMF8y MCBJTlRPCisJCQkgICAoUEFSVElUSU9OIHRwYXJ0XzEwXzE1IEZPUiBWQUxVRVMgRlJPTSAo MTApIFRPICgxNSksCisJCQkgICAgUEFSVElUSU9OIHRwYXJ0XzE1XzIwIEZPUiBWQUxVRVMg RlJPTSAoMTUpIFRPICgyMCkpOyB9CitzdGVwIHMxYwl7IENPTU1JVDsgfQorCisKK3Nlc3Np b24gczIKK3N0ZXAgczJiCXsgQkVHSU47IH0KK3N0ZXAgczJicnIJeyBCRUdJTiBJU09MQVRJ T04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOyB9CitzdGVwIHMyYnMJeyBCRUdJTiBJU09MQVRJ T04gTEVWRUwgU0VSSUFMSVpBQkxFOyB9CitzdGVwIHMyaQl7IElOU0VSVCBJTlRPIHRwYXJ0 IFZBTFVFUyAoMSwgJ3RleHQwMScpOyB9CitzdGVwIHMyYwl7IENPTU1JVDsgfQorc3RlcCBz MnMJeyBTRUxFQ1QgKiBGUk9NIHRwYXJ0OyB9CisKKworIyBzMSBzdGFydHMgU1BMSVQgUEFS VElUSU9OIHRoZW4gczIgdHJ5aW5nIHRvIGluc2VydCByb3cgYW5kCisjIHdhaXRzIHVudGls IHMxIGZpbmlzaGVkIFNQTElUIG9wZXJhdGlvbi4KKworcGVybXV0YXRpb24gczFiIHMxc3Bs dCBzMmIgczJpIHMxYyBzMmMgczJzCitwZXJtdXRhdGlvbiBzMWIgczFzcGx0IHMyYnJyIHMy aSBzMWMgczJjIHMycworcGVybXV0YXRpb24gczFiIHMxc3BsdCBzMmJzIHMyaSBzMWMgczJj IHMycworCitwZXJtdXRhdGlvbiBzMWJyciBzMXNwbHQgczJiIHMyaSBzMWMgczJjIHMycwor cGVybXV0YXRpb24gczFicnIgczFzcGx0IHMyYnJyIHMyaSBzMWMgczJjIHMycworcGVybXV0 YXRpb24gczFicnIgczFzcGx0IHMyYnMgczJpIHMxYyBzMmMgczJzCisKK3Blcm11dGF0aW9u IHMxYnMgczFzcGx0IHMyYiBzMmkgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMxYnMgczFz cGx0IHMyYnJyIHMyaSBzMWMgczJjIHMycworcGVybXV0YXRpb24gczFicyBzMXNwbHQgczJi cyBzMmkgczFjIHMyYyBzMnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9k ZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf ZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCmluZGV4IDBiZGNkMmU2MTcuLmY3MjU4 OTY4YjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS90 ZXN0X2RkbF9kZXBhcnNlLmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2RkbF9kZXBh cnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwpAQCAtMjk3LDYgKzI5Nyw5IEBAIGdldF9hbHRlcnRh YmxlX3N1YmNtZGluZm8oUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgQVRfRGV0YWNoUGFy dGl0aW9uRmluYWxpemU6CiAJCQkJc3RydHlwZSA9ICJERVRBQ0ggUEFSVElUSU9OIC4uLiBG SU5BTElaRSI7CiAJCQkJYnJlYWs7CisJCQljYXNlIEFUX1NwbGl0UGFydGl0aW9uOgorCQkJ CXN0cnR5cGUgPSAiU1BMSVQgUEFSVElUSU9OIjsKKwkJCQlicmVhazsKIAkJCWNhc2UgQVRf TWVyZ2VQYXJ0aXRpb25zOgogCQkJCXN0cnR5cGUgPSAiTUVSR0UgUEFSVElUSU9OUyI7CiAJ CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRp dGlvbl9zcGxpdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9z cGxpdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDhiZjAy MTc5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFy dGl0aW9uX3NwbGl0Lm91dApAQCAtMCwwICsxLDE0MTcgQEAKKy0tCistLSBQQVJUSVRJT05f U1BMSVQKKy0tIFRlc3RzIGZvciAiQUxURVIgVEFCTEUgLi4uIFNQTElUIFBBUlRJVElPTiAu Li4iIGNvbW1hbmQKKy0tCitDUkVBVEUgU0NIRU1BIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWE7 CitTRVQgc2VhcmNoX3BhdGggPSBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hLCBwdWJsaWM7Cist LQorLS0gQlkgUkFOR0UgcGFydGl0aW9uaW5nCistLQorLS0KKy0tIFRlc3QgZm9yIGVycm9y IGNvZGVzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBpbnQs IHNhbGVzbWFuX25hbWUgdmFyY2hhcigzMCksIHNhbGVzX2Ftb3VudCBpbnQsIHNhbGVzX2Rh dGUgZGF0ZSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJM RSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUg c2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworLS0gRVJS T1I6ICByZWxhdGlvbiAic2FsZXNfeHh4IiBkb2VzIG5vdCBleGlzdAorQUxURVIgVEFCTEUg c2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX3h4eCBJTlRPCisgIChQQVJUSVRJ T04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcy MDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2Fs ZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1 LTAxJykpOworRVJST1I6ICByZWxhdGlvbiAic2FsZXNfeHh4IiBkb2VzIG5vdCBleGlzdAor LS0gRVJST1I6ICByZWxhdGlvbiAic2FsZXNfamFuMjAyMiIgYWxyZWFkeSBleGlzdHMKK0FM VEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2Fw cjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0w MScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKK0VSUk9SOiAgcmVsYXRpb24gInNhbGVz X2phbjIwMjIiIGFscmVhZHkgZXhpc3RzCistLSBFUlJPUjogIGludmFsaWQgYm91bmQgc3Bl Y2lmaWNhdGlvbiBmb3IgYSByYW5nZSBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNhbGVzX3Jh bmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFS VElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBJTiAoJzIwMjItMDUtMDEnLCAnMjAy Mi0wNi0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0w MScpKTsKK0VSUk9SOiAgaW52YWxpZCBib3VuZCBzcGVjaWZpY2F0aW9uIGZvciBhIHJhbmdl IHBhcnRpdGlvbgorTElORSAyOiAgIChQQVJUSVRJT04gc2FsZXNfamFuMjAyMiBGT1IgVkFM VUVTIElOICgnMjAyMi0wNS0wMScsICcyMDIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFUlJPUjogIGVtcHR5IHJhbmdlIGJvdW5k IHNwZWNpZmllZCBmb3IgcGFydGl0aW9uICJzYWxlc19tYXIyMDIyIgorQUxURVIgVEFCTEUg c2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRP CisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAy LTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTAyLTAxJyksCisgICBQ QVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykg VE8gKCcyMDIyLTA1LTAxJykpOworRVJST1I6ICBlbXB0eSByYW5nZSBib3VuZCBzcGVjaWZp ZWQgZm9yIHBhcnRpdGlvbiAic2FsZXNfbWFyMjAyMiIKK0xJTkUgMzogICAgUEFSVElUSU9O IHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPLi4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor REVUQUlMOiAgU3BlY2lmaWVkIGxvd2VyIGJvdW5kICgnMDMtMDEtMjAyMicpIGlzIGdyZWF0 ZXIgdGhhbiBvciBlcXVhbCB0byB1cHBlciBib3VuZCAoJzAyLTAxLTIwMjInKS4KKy0tRVJS T1I6ICBsaXN0IG9mIHNwbGl0IHBhcnRpdGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0IGxlYXN0 IHR3byBpdGVtcworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNh bGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTEwLTAxJykpOworRVJS T1I6ICBsaXN0IG9mIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBjb250YWlucyBhdCBsZWFzdCB0 d28gaXRlbXMKKy0tIEVSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19m ZWIyMDIyIiBpcyBsZXNzIHRoYW4gbG93ZXIgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uCitB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9h cHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJP TSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxl c19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQt MDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CitFUlJPUjogIGxvd2VyIGJvdW5kIG9m IHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIgaXMgbGVzcyB0aGFuIGxvd2VyIGJvdW5kIG9m IHNwbGl0IHBhcnRpdGlvbgorTElORSAyOiAgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8uLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFUlJPUjogIG5hbWUg InNhbGVzX2ZlYl9tYXJfYXByMjAyMiIgYWxyZWFkeSB1c2VkCistLSAoV2UgY2FuIGNyZWF0 ZSBwYXJ0aXRpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHNwbGl0IHBhcnRpdGlvbiwgYnV0 IGNhbid0IGNyZWF0ZSB0d28gcGFydGl0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUpCitBTFRF UiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIy MDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9O IHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykg VE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJST1I6ICBu YW1lICJzYWxlc19mZWJfbWFyX2FwcjIwMjIiIGFscmVhZHkgdXNlZAorTElORSAzOiAgICBQ QVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDMuLi4KKyAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEVSUk9SOiAgbmFtZSAic2FsZXNf ZmViMjAyMiIgYWxyZWFkeSB1c2VkCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQ QVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxl c19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMt MDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIy MDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7 CitFUlJPUjogIG5hbWUgInNhbGVzX2ZlYjIwMjIiIGFscmVhZHkgdXNlZAorTElORSAzOiAg ICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAx JykgVE8uLi4KKyAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEVSUk9SOiAgInNhbGVzX2Zl Yl9tYXJfYXByMjAyMiIgaXMgbm90IGEgcGFydGl0aW9uZWQgdGFibGUKK0FMVEVSIFRBQkxF IHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9h cHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19qYW4yMDIyIEZPUiBWQUxVRVMgRlJP TSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxl c19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQt MDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CitFUlJPUjogICJzYWxlc19mZWJfbWFy X2FwcjIwMjIiIGlzIG5vdCBhIHBhcnRpdGlvbmVkIHRhYmxlCistLSBFUlJPUjogIHVwcGVy IGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfYXByMjAyMiIgaXMgZ3JlYXRlciB0aGFuIHVw cGVyIGJvdW5kIG9mIHNwbGl0IHBhcnRpdGlvbgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2Ug U1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJ T04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcy MDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2Fs ZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA2 LTAxJykpOworRVJST1I6ICB1cHBlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2FwcjIw MjIiIGlzIGdyZWF0ZXIgdGhhbiB1cHBlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24KK0xJ TkUgNDogLi4uIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScp IFRPICgnMjAyMi0wNi0wLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRVJST1I6ICBsb3dlciBib3VuZCBv ZiBwYXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGlzIG5vdCBlcXVhbHMgdG8gdXBwZXIgYm91 bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJ VCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBz YWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjIt MDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAo JzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19h cHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEn KSk7CitFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfbWFyMjAyMiIg Y29uZmxpY3RzIHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxl c19mZWIyMDIyIgorTElORSAzOiAgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBUZXN0cyBmb3Igc3BhY2VzIGJl dHdlZW4gcGFydGl0aW9ucywgdGhlbSBzaG91bGQgYmUgZXhlY3V0ZWQgd2l0aG91dCBERUZB VUxUIHBhcnRpdGlvbgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgREVUQUNIIFBBUlRJVElP TiBzYWxlc19vdGhlcnM7CistLSBFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAi c2FsZXNfZmViMjAyMiIgaXMgbm90IGVxdWFscyB0byBsb3dlciBib3VuZCBvZiBzcGxpdCBw YXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxl c19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMicpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFS VElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRP ICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKK0VSUk9SOiAgbG93 ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiBpcyBub3QgZXF1YWxzIHRv IGxvd2VyIGJvdW5kIG9mIHNwbGl0IHBhcnRpdGlvbgorTElORSAyOiAgIChQQVJUSVRJT04g c2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAyJykgVE8uLi4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitE Uk9QIFRBQkxFIHNhbGVzX3JhbmdlOworRFJPUCBUQUJMRSBzYWxlc19vdGhlcnM7CistLQor LS0gQWRkIHJvd3MgaW50byBwYXJ0aXRpb25lZCB0YWJsZSB0aGVuIHNwbGl0IHBhcnRpdGlv bgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxl c21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERB VEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgn MjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2Zl Yl9tYXJfYXByMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wNS0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMx Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1 MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgz LCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAn MjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1Bv aXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0w Mi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcics ICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUw LCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMs ICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworQUxU RVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXBy MjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00g KCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNf bWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworU0VMRUNUICogRlJPTSBzYWxlc19yYW5n ZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxl c19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBNYXkgICAgICAgICAgIHwgICAgICAgICAx MDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAg ICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAg ICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAg IHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAg ICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNz c29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAgICAgIDcgfCBM aSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5 IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAg ICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAg ICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgor ICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIw MjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0w Ny0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwg MDQtMDYtMjAyMgorICAgICAgICAgIDE0IHwgU21pdGggICAgICAgICB8ICAgICAgICAgIDUx MCB8IDA1LTA0LTIwMjIKKygxNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIw MjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2Fs ZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAg MTAwMCB8IDAxLTMxLTIwMjIKKyAgICAgICAgICAxMCB8IEhhbGRlciAgICAgICAgfCAgICAg ICAgICAzNTAgfCAwMS0yOC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwg ICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBz YWxlc19mZWIyMDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ft b3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAg fCAgICAgICAgICA1MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAgIDYgfCBQb2lyb3QgICAg ICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAgICAgICA4IHwgRXJpY3Nz b24gICAgICB8ICAgICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKygzIHJvd3MpCisKK1NFTEVD VCAqIEZST00gc2FsZXNfbWFyMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUg fCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDcgfCBMaSAg ICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwg TXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAx MiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisoMyByb3dz KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAg ICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAg ICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisg ICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAy MgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2 LTIwMjIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzOworIHNhbGVz bWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCist LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0w NC0yMDIyCisoMSByb3cpCisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2UgQ0FTQ0FERTsKKy0t CistLSBBZGQgc3BsaXQgcGFydGl0aW9uIHRoZW4gYWRkIHJvd3MgaW50byBwYXJ0aXRpb25l ZCB0YWJsZQorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5U LCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19k YXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFC TEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNh bGVzX2ZlYl9tYXJfYXByMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wNS0wMScpOworQ1JFQVRFIFRBQkxF IHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0FMVEVS IFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIw MjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgn MjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21h cjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScp LAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0w NC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0x MCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAg MjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo NCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAg JzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdM aScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjIt MDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXIn LCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTkn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3 NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0 LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworU0VMRUNUICogRlJPTSBzYWxl c19yYW5nZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQg fCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBNYXkgICAgICAgICAgIHwgICAg ICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8 ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAg ICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisgICAgICAgICAgIDIgfCBTbWlybm9m ZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9p cm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8 IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAgICAg IDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAg ICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAg ICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIy CisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAt MjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0 LTEzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAg fCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAg MzgwIHwgMDQtMDYtMjAyMgorICAgICAgICAgIDE0IHwgU21pdGggICAgICAgICB8ICAgICAg ICAgIDUxMCB8IDA1LTA0LTIwMjIKKygxNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVz X2phbjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50 IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAg ICAgICAgMTAwMCB8IDAxLTMxLTIwMjIKKyAgICAgICAgICAxMCB8IEhhbGRlciAgICAgICAg fCAgICAgICAgICAzNTAgfCAwMS0yOC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAg ICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorKDMgcm93cykKKworU0VMRUNUICog RlJPTSBzYWxlc19mZWIyMDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNh bGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2Zm ICAgICAgfCAgICAgICAgICA1MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAgIDYgfCBQb2ly b3QgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAgICAgICA4IHwg RXJpY3Nzb24gICAgICB8ICAgICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKygzIHJvd3MpCisK K1NFTEVDVCAqIEZST00gc2FsZXNfbWFyMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDcg fCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAg ICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAg ICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCiso MyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNtYW5faWQg fCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAg ICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIK KyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0y MDIyCisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQt MDctMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8 IDA0LTA2LTIwMjIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzOwor IHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2Rh dGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAg fCAwNS0wNC0yMDIyCisoMSByb3cpCisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2UgQ0FTQ0FE RTsKKy0tCistLSBUZXN0IGZvcjoKKy0tICAgKiBjb21wb3NpdGUgcGFydGl0aW9uIGtleTsK Ky0tICAgKiBHRU5FUkFURUQgY29sdW1uOworLS0gICAqIGNvbHVtbiB3aXRoIERFRkFVTFQg dmFsdWUuCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2RhdGUgKHNhbGVzbWFuX25hbWUgVkFS Q0hBUigzMCksIHNhbGVzX3llYXIgSU5ULCBzYWxlc19tb250aCBJTlQsIHNhbGVzX2RheSBJ TlQsCisgIHNhbGVzX2RhdGUgVkFSQ0hBUigxMCkgR0VORVJBVEVEIEFMV0FZUyBBUworICAg IChMUEFEKHNhbGVzX3llYXI6OnRleHQsIDQsICcwJykgfHwgJy4nIHx8IExQQUQoc2FsZXNf bW9udGg6OnRleHQsIDIsICcwJykgfHwgJy4nIHx8IExQQUQoc2FsZXNfZGF5Ojp0ZXh0LCAy LCAnMCcpKSBTVE9SRUQsCisgIHNhbGVzX2RlcGFydG1lbnQgVkFSQ0hBUigzMCkgREVGQVVM VCAnU2FsZXMgZGVwYXJ0bWVudCcpCisgIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfeWVh ciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfZGVjMjAy MiBQQVJUSVRJT04gT0Ygc2FsZXNfZGF0ZSBGT1IgVkFMVUVTIEZST00gKDIwMjEsIDEyLCAx KSBUTyAoMjAyMiwgMSwgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuX2ZlYjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAxLCAxKSBUTyAo MjAyMiwgMywgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXIgUEFSVElUSU9OIE9GIHNh bGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAzLCAxKSBUTyAoTUFYVkFMVUUsIE1B WFZBTFVFLCBNQVhWQUxVRSk7CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25h bWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFn ZXIxJywgMjAyMSwgMTIsIDcpOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9u YW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5h Z2VyMicsIDIwMjEsIDEyLCA4KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjMnLCAyMDIyLCAxLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjEnLCAyMDIyLCAyLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjInLCAyMDIyLCAxLCAyKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjMnLCAyMDIyLCAyLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjEnLCAyMDIyLCAzLCAzKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjInLCAyMDIyLCAzLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5f bmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFu YWdlcjMnLCAyMDIyLCA1LCAxKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfZGF0ZTsKKyBzYWxl c21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2Fs ZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAg ICAgICAgIDcgfCAyMDIxLjEyLjA3IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAg ICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAgICAgIDggfCAyMDIxLjEyLjA4 IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAg ICAgICAgIDEgfCAgICAgICAgIDEgfCAyMDIyLjAxLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAor IE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDQg fCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAg ICAyMDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIgfCAyMDIyLjAxLjAyIHwgU2FsZXMg ZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIg fCAgICAgICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIx ICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMgfCAyMDIyLjAz LjAzIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwg ICAgICAgICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMgZGVwYXJ0bWVu dAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUgfCAgICAgICAg IDEgfCAyMDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDkgcm93cykKKworU0VMRUNU ICogRlJPTSBzYWxlc19kZWMyMDIyOworIHNhbGVzbWFuX25hbWUgfCBzYWxlc195ZWFyIHwg c2FsZXNfbW9udGggfCBzYWxlc19kYXkgfCBzYWxlc19kYXRlIHwgc2FsZXNfZGVwYXJ0bWVu dCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgTWFuYWdlcjEgICAgICB8 ICAgICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAgNyB8IDIwMjEuMTIuMDcgfCBT YWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAg ICAxMiB8ICAgICAgICAgOCB8IDIwMjEuMTIuMDggfCBTYWxlcyBkZXBhcnRtZW50CisoMiBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbl9mZWIyMDIyOworIHNhbGVzbWFuX25h bWUgfCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGggfCBzYWxlc19kYXkgfCBzYWxlc19kYXRl IHwgc2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t CisgTWFuYWdlcjMgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMSB8ICAgICAgICAg MSB8IDIwMjIuMDEuMDEgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjEgICAgICB8ICAg ICAgIDIwMjIgfCAgICAgICAgICAgMiB8ICAgICAgICAgNCB8IDIwMjIuMDIuMDQgfCBTYWxl cyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAg MSB8ICAgICAgICAgMiB8IDIwMjIuMDEuMDIgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdl cjMgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMiB8ICAgICAgICAgMSB8IDIwMjIu MDIuMDEgfCBTYWxlcyBkZXBhcnRtZW50CisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNh bGVzX290aGVyOworIHNhbGVzbWFuX25hbWUgfCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGgg fCBzYWxlc19kYXkgfCBzYWxlc19kYXRlIHwgc2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjIg fCAgICAgICAgICAgMyB8ICAgICAgICAgMyB8IDIwMjIuMDMuMDMgfCBTYWxlcyBkZXBhcnRt ZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMyB8ICAgICAg ICAgNCB8IDIwMjIuMDMuMDQgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjMgICAgICB8 ICAgICAgIDIwMjIgfCAgICAgICAgICAgNSB8ICAgICAgICAgMSB8IDIwMjIuMDUuMDEgfCBT YWxlcyBkZXBhcnRtZW50CisoMyByb3dzKQorCitBTFRFUiBUQUJMRSBzYWxlc19kYXRlIFNQ TElUIFBBUlRJVElPTiBzYWxlc19qYW5fZmViMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2Fs ZXNfamFuMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIsIDEsIDEpIFRPICgyMDIyLCAyLCAx KSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMiwg MiwgMSkgVE8gKDIwMjIsIDMsIDEpKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNt YW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgn TWFuYWdlcjEnLCAyMDIyLCAxLCAxMCk7CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVz bWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAo J01hbmFnZXIyJywgMjAyMiwgMiwgMTApOworU0VMRUNUICogRlJPTSBzYWxlc19kYXRlOwor IHNhbGVzbWFuX25hbWUgfCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGggfCBzYWxlc19kYXkg fCBzYWxlc19kYXRlIHwgc2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tCisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAgICAx MiB8ICAgICAgICAgNyB8IDIwMjEuMTIuMDcgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdl cjIgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAgOCB8IDIwMjEu MTIuMDggfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjMgICAgICB8ICAgICAgIDIwMjIg fCAgICAgICAgICAgMSB8ICAgICAgICAgMSB8IDIwMjIuMDEuMDEgfCBTYWxlcyBkZXBhcnRt ZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMSB8ICAgICAg ICAgMiB8IDIwMjIuMDEuMDIgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjEgICAgICB8 ICAgICAgIDIwMjIgfCAgICAgICAgICAgMSB8ICAgICAgICAxMCB8IDIwMjIuMDEuMTAgfCBT YWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAg ICAgMiB8ICAgICAgICAgNCB8IDIwMjIuMDIuMDQgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFu YWdlcjMgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMiB8ICAgICAgICAgMSB8IDIw MjIuMDIuMDEgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIw MjIgfCAgICAgICAgICAgMiB8ICAgICAgICAxMCB8IDIwMjIuMDIuMTAgfCBTYWxlcyBkZXBh cnRtZW50CisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMyB8ICAg ICAgICAgMyB8IDIwMjIuMDMuMDMgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAg ICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMyB8ICAgICAgICAgNCB8IDIwMjIuMDMuMDQg fCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjMgICAgICB8ICAgICAgIDIwMjIgfCAgICAg ICAgICAgNSB8ICAgICAgICAgMSB8IDIwMjIuMDUuMDEgfCBTYWxlcyBkZXBhcnRtZW50Ciso MTEgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19kZWMyMDIyOworIHNhbGVzbWFuX25h bWUgfCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGggfCBzYWxlc19kYXkgfCBzYWxlc19kYXRl IHwgc2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t CisgTWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAg NyB8IDIwMjEuMTIuMDcgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAg ICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAgOCB8IDIwMjEuMTIuMDggfCBTYWxl cyBkZXBhcnRtZW50CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7 Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2Rh eSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAg ICAxIHwgICAgICAgICAxIHwgMjAyMi4wMS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5h Z2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAyIHwgMjAy Mi4wMS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAy MiB8ICAgICAgICAgICAxIHwgICAgICAgIDEwIHwgMjAyMi4wMS4xMCB8IFNhbGVzIGRlcGFy dG1lbnQKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAyMjsKKyBzYWxl c21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2Fs ZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAg ICAgICAgIDQgfCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAg ICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDEgfCAyMDIyLjAyLjAx IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAg ICAgICAgIDIgfCAgICAgICAgMTAgfCAyMDIyLjAyLjEwIHwgU2FsZXMgZGVwYXJ0bWVudAor KDMgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcjsKKyBzYWxlc21hbl9uYW1l IHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8 IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQor IE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMg fCAyMDIyLjAzLjAzIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAg ICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMg ZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUg fCAgICAgICAgIDEgfCAyMDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDMgcm93cykK KworLS1FUlJPUjogIHJlbGF0aW9uICJzYWxlc19qYW5fZmViMjAyMiIgZG9lcyBub3QgZXhp c3QKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuX2ZlYjIwMjI7CitFUlJPUjogIHJlbGF0aW9u ICJzYWxlc19qYW5fZmViMjAyMiIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUICog RlJPTSBzYWxlc19qYW5fZmViMjAyMjsKKyAgICAgICAgICAgICAgICAgICAgICBeCitEUk9Q IFRBQkxFIHNhbGVzX2RhdGUgQ0FTQ0FERTsKKy0tCistLSBUZXN0OiBzcGxpdCBERUZBVUxU IHBhcnRpdGlvbjsgdXNpbmcgYSBpbmRleCBvbiBwYXJ0aXRpb24ga2V5OyBjaGVjayBpbmRl eCBhZnRlciBzcGxpdAorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5f aWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBz YWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVB VEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZB TFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRB QkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0NS RUFURSBJTkRFWCBzYWxlc19yYW5nZV9zYWxlc19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBV U0lORyBidHJlZSAoc2FsZXNfZGF0ZSk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIw MDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQs ICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcy MDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGkn LCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAz LTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywg ICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcs ICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwg J1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKK1NFTEVDVCAqIEZST00gc2FsZXNf b3RoZXJzOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8 IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAgfCAgICAg ICAgICA1MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwg ICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAg ICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAg ICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgIDYgfCBQb2ly b3QgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAgICAgICA3IHwg TGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAg OCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAg ICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgorICAg ICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIK KyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0y MDIyCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUt MDQtMjAyMgorKDExIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0 YWJsZW5hbWUgPSAnc2FsZXNfb3RoZXJzJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25f c3BsaXRfc2NoZW1hJzsKKyAgICAgICBzY2hlbWFuYW1lICAgICAgIHwgIHRhYmxlbmFtZSAg IHwgICAgICAgICAgaW5kZXhuYW1lICAgICAgICAgIHwgdGFibGVzcGFjZSB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZGVmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcGFydGl0aW9uX3NwbGl0X3NjaGVtYSB8IHNhbGVzX290 aGVycyB8IHNhbGVzX290aGVyc19zYWxlc19kYXRlX2lkeCB8ICAgICAgICAgICAgfCBDUkVB VEUgSU5ERVggc2FsZXNfb3RoZXJzX3NhbGVzX2RhdGVfaWR4IE9OIHBhcnRpdGlvbl9zcGxp dF9zY2hlbWEuc2FsZXNfb3RoZXJzIFVTSU5HIGJ0cmVlIChzYWxlc19kYXRlKQorKDEgcm93 KQorCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3Ro ZXJzIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAo JzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19t YXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEn KSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19vdGhlcnMg REVGQVVMVCk7CistLSBVc2UgaW5kZXhzY2FuIGZvciB0ZXN0IGluZGV4ZXMKK1NFVCBlbmFi bGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPRkY7CitTRUxFQ1Qg KiBGUk9NIHNhbGVzX2ZlYjIwMjIgd2hlcmUgc2FsZXNfZGF0ZSA+ICcyMDIyLTAxLTAxJzsK KyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19k YXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAw IHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAg IDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAg ICAgICAxODUgfCAwMi0yMy0yMDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVz X21hcjIwMjIgd2hlcmUgc2FsZXNfZGF0ZSA+ICcyMDIyLTAxLTAxJzsKKyBzYWxlc21hbl9p ZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg ICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAy MgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTEx LTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAw My0xOS0yMDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjIgd2hl cmUgc2FsZXNfZGF0ZSA+ICcyMDIyLTAxLTAxJzsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTEg fCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorICAgICAgICAg ICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAg ICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisg ICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAy MgorKDQgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcnMgd2hlcmUgc2FsZXNf ZGF0ZSA+ICcyMDIyLTAxLTAxJzsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBz YWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTQgfCBTbWl0aCAg ICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDEgcm93KQorCitTRVQgZW5h YmxlX2luZGV4c2NhbiA9IE9OOworU0VUIGVuYWJsZV9zZXFzY2FuID0gT047CitTRUxFQ1Qg KiBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1lID0gJ3NhbGVzX2ZlYjIwMjInIGFu ZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9zY2hlbWEnOworICAgICAgIHNjaGVt YW5hbWUgICAgICAgfCAgIHRhYmxlbmFtZSAgIHwgICAgICAgICAgaW5kZXhuYW1lICAgICAg ICAgICB8IHRhYmxlc3BhY2UgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHBhcnRpdGlvbl9zcGxpdF9zY2hlbWEgfCBzYWxlc19mZWIyMDIyIHwgc2FsZXNfZmViMjAy Ml9zYWxlc19kYXRlX2lkeCB8ICAgICAgICAgICAgfCBDUkVBVEUgSU5ERVggc2FsZXNfZmVi MjAyMl9zYWxlc19kYXRlX2lkeCBPTiBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hLnNhbGVzX2Zl YjIwMjIgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpCisoMSByb3cpCisKK1NFTEVDVCAqIEZS T00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAnc2FsZXNfbWFyMjAyMicgYW5kIHNj aGVtYW5hbWUgPSAncGFydGl0aW9uX3NwbGl0X3NjaGVtYSc7CisgICAgICAgc2NoZW1hbmFt ZSAgICAgICB8ICAgdGFibGVuYW1lICAgfCAgICAgICAgICBpbmRleG5hbWUgICAgICAgICAg IHwgdGFibGVzcGFjZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcGFy dGl0aW9uX3NwbGl0X3NjaGVtYSB8IHNhbGVzX21hcjIwMjIgfCBzYWxlc19tYXIyMDIyX3Nh bGVzX2RhdGVfaWR4IHwgICAgICAgICAgICB8IENSRUFURSBJTkRFWCBzYWxlc19tYXIyMDIy X3NhbGVzX2RhdGVfaWR4IE9OIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWEuc2FsZXNfbWFyMjAy MiBVU0lORyBidHJlZSAoc2FsZXNfZGF0ZSkKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBw Z19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdzYWxlc19hcHIyMDIyJyBhbmQgc2NoZW1h bmFtZSA9ICdwYXJ0aXRpb25fc3BsaXRfc2NoZW1hJzsKKyAgICAgICBzY2hlbWFuYW1lICAg ICAgIHwgICB0YWJsZW5hbWUgICB8ICAgICAgICAgIGluZGV4bmFtZSAgICAgICAgICAgfCB0 YWJsZXNwYWNlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGluZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwYXJ0aXRp b25fc3BsaXRfc2NoZW1hIHwgc2FsZXNfYXByMjAyMiB8IHNhbGVzX2FwcjIwMjJfc2FsZXNf ZGF0ZV9pZHggfCAgICAgICAgICAgIHwgQ1JFQVRFIElOREVYIHNhbGVzX2FwcjIwMjJfc2Fs ZXNfZGF0ZV9pZHggT04gcGFydGl0aW9uX3NwbGl0X3NjaGVtYS5zYWxlc19hcHIyMDIyIFVT SU5HIGJ0cmVlIChzYWxlc19kYXRlKQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lu ZGV4ZXMgV0hFUkUgdGFibGVuYW1lID0gJ3NhbGVzX290aGVycycgYW5kIHNjaGVtYW5hbWUg PSAncGFydGl0aW9uX3NwbGl0X3NjaGVtYSc7CisgICAgICAgc2NoZW1hbmFtZSAgICAgICB8 ICB0YWJsZW5hbWUgICB8ICAgICAgICAgIGluZGV4bmFtZSAgICAgICAgICAgfCB0YWJsZXNw YWNlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwYXJ0aXRpb25fc3BsaXRf c2NoZW1hIHwgc2FsZXNfb3RoZXJzIHwgc2FsZXNfb3RoZXJzX3NhbGVzX2RhdGVfaWR4MSB8 ICAgICAgICAgICAgfCBDUkVBVEUgSU5ERVggc2FsZXNfb3RoZXJzX3NhbGVzX2RhdGVfaWR4 MSBPTiBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hLnNhbGVzX290aGVycyBVU0lORyBidHJlZSAo c2FsZXNfZGF0ZSkKKygxIHJvdykKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZSBDQVNDQURF OworLS0KKy0tIFRlc3Q6IHNvbWUgY2FzZXMgZm9yIHNwbGl0IERFRkFVTFQgcGFydGl0aW9u IChkaWZmZXJlbnQgYm91bmRzKQorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2Fs ZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQg SU5ULCBzYWxlc19kYXRlIElOVCkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsK K0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERF RkFVTFQ7CistLSBzYWxlc19lcnJvciBpbnRlcnNlY3RzIHdpdGggc2FsZXNfZGVjMjAyMiAo bG93ZXIgYm91bmQpCistLSBFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2Fs ZXNfZXJyb3IiIGNvbmZsaWN0cyB3aXRoIHVwcGVyIGJvdW5kIG9mIHByZXZpb3VzIHBhcnRp dGlvbiAic2FsZXNfZGVjMjAyMiIKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBB UlRJVElPTiBzYWxlc19vdGhlcnMgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2RlYzIwMjIg Rk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8gKDIwMjIwMTAxKSwKKyAgIFBBUlRJVElP TiBzYWxlc19lcnJvciBGT1IgVkFMVUVTIEZST00gKDIwMjExMjMwKSBUTyAoMjAyMjAyMDEp LAorICAgUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIw MSkgVE8gKDIwMjIwMzAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCk7 CitFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfZXJyb3IiIGNvbmZs aWN0cyB3aXRoIHVwcGVyIGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiAic2FsZXNfZGVj MjAyMiIKK0xJTkUgMzogICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJP TSAoMjAyMTEyMzApIFRPICgyMDIyLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHNhbGVzX2Vycm9yIGludGVyc2VjdHMgd2l0 aCBzYWxlc19mZWIyMDIyICh1cHBlciBib3VuZCkKKy0tIEVSUk9SOiAgbG93ZXIgYm91bmQg b2YgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3Vu ZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2Vycm9yIgorQUxURVIgVEFCTEUgc2Fs ZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJ T04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAx MDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAx MDEpIFRPICgyMDIyMDIwMiksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFM VUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAgUEFSVElUSU9OIHNhbGVz X290aGVycyBERUZBVUxUKTsKK0VSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJz YWxlc19mZWIyMDIyIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBw YXJ0aXRpb24gInNhbGVzX2Vycm9yIgorTElORSA0OiAgICBQQVJUSVRJT04gc2FsZXNfZmVi MjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAuLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBzYWxlc19l cnJvciBpbnRlcnNlY3RzIHdpdGggc2FsZXNfZGVjMjAyMiAoaW5zaWRlIGJvdW5kKQorLS0g RVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2Vycm9yIiBjb25mbGlj dHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2RlYzIw MjIiCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3Ro ZXJzIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19kZWMyMDIyIEZPUiBWQUxVRVMgRlJPTSAo MjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2FsZXNfZXJyb3IgRk9S IFZBTFVFUyBGUk9NICgyMDIxMTIxMCkgVE8gKDIwMjExMjIwKSwKKyAgIFBBUlRJVElPTiBz YWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSks CisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworRVJST1I6ICBsb3dlciBi b3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2Vycm9yIiBjb25mbGljdHMgd2l0aCB1cHBlciBi b3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2RlYzIwMjIiCitMSU5FIDM6ICAg IFBBUlRJVElPTiBzYWxlc19lcnJvciBGT1IgVkFMVUVTIEZST00gKDIwMjExMjEwKSBUTyAo MjAyMS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLSBzYWxlc19lcnJvciBpbnRlcnNlY3RzIHdpdGggc2FsZXNfZGVjMjAyMiAo ZXhhY3QgdGhlIHNhbWUgYm91bmRzKQorLS0gRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0 aXRpb24gInNhbGVzX2Vycm9yIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2 aW91cyBwYXJ0aXRpb24gInNhbGVzX2RlYzIwMjIiCitBTFRFUiBUQUJMRSBzYWxlc19yYW5n ZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIElOVE8KKyAgKFBBUlRJVElPTiBzYWxl c19kZWMyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisg ICBQQVJUSVRJT04gc2FsZXNfZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8g KDIwMjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJP TSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJz IERFRkFVTFQpOworRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2Vy cm9yIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24g InNhbGVzX2RlYzIwMjIiCitMSU5FIDM6ICAgIFBBUlRJVElPTiBzYWxlc19lcnJvciBGT1Ig VkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMi4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFUlJPUjogIGFueSBwYXJ0 aXRpb24gaW4gdGhlIGxpc3Qgc2hvdWxkIGJlIERFRkFVTFQgYmVjYXVzZSBzcGxpdCBwYXJ0 aXRpb24gaXMgREVGQVVMVAorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElU SU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1Ig VkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNh bGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDEwMSkgVE8gKDIwMjIwMjAxKSwK KyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAyMDEp IFRPICgyMDIyMDMwMSkpOworRVJST1I6ICBhbnkgcGFydGl0aW9uIGluIHRoZSBsaXN0IHNo b3VsZCBiZSBERUZBVUxUIGJlY2F1c2Ugc3BsaXQgcGFydGl0aW9uIGlzIERFRkFVTFQKK0xJ TkUgMjogICAoUEFSVElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIx MTIwMSkgVE8gKDIwLi4uCisgICAgICAgICAgICAgICAgICAgICBeCistLSBubyBlcnJvcjog Ym91bmRzIG9mIHNhbGVzX25vZXJyb3IgYmV0d2VlbiBzYWxlc19kZWMyMDIyIGFuZCBzYWxl c19mZWIyMDIyCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2Fs ZXNfb3RoZXJzIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19kZWMyMDIyIEZPUiBWQUxVRVMg RlJPTSAoMjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2FsZXNfbm9l cnJvciBGT1IgVkFMVUVTIEZST00gKDIwMjIwMTEwKSBUTyAoMjAyMjAxMjApLAorICAgUEFS VElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIwMSkgVE8gKDIw MjIwMzAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCk7CitEUk9QIFRB QkxFIHNhbGVzX3JhbmdlOworQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9p ZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNh bGVzX2RhdGUgSU5UKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRF IFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsK Ky0tIG5vIGVycm9yOiBib3VuZHMgb2Ygc2FsZXNfbm9lcnJvciBlcXVhbHMgdG8gbG93ZXIg YW5kIHVwcGVyIGJvdW5kcyBvZiBzYWxlc19kZWMyMDIyIGFuZCBzYWxlc19mZWIyMDIyCitB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIElO VE8KKyAgKFBBUlRJVElPTiBzYWxlc19kZWMyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEy MDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2FsZXNfbm9lcnJvciBGT1IgVkFM VUVTIEZST00gKDIwMjEwMTAxKSBUTyAoMjAyMTAyMDEpLAorICAgUEFSVElUSU9OIHNhbGVz X2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIwMSkgVE8gKDIwMjIwMzAxKSwKKyAg IFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCk7CitEUk9QIFRBQkxFIHNhbGVzX3Jh bmdlOworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiB3aXRoIENIRUNLIGFuZCBGT1JF SUdOIEtFWSBDT05TVFJBSU5UcyBvbiBwYXJ0aXRpb25lZCB0YWJsZQorLS0KK0NSRUFURSBU QUJMRSBzYWxlc21hbnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9u YW1lIFZBUkNIQVIoMzApKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEsICAn UG9pcm90Jyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKAorc2FsZXNtYW5faWQgSU5U IFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSwKK3NhbGVzX2Ftb3VudCBJTlQg Q0hFQ0sgKHNhbGVzX2Ftb3VudCA+IDEpLAorc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04g QlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBU TyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEn KSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRk ZWYob2lkKSwgY29ubmFtZSwgY29ua2V5IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25y ZWxpZCA9ICdzYWxlc19mZWJfbWFyX2FwcjIwMjInOjpyZWdjbGFzczo6b2lkOworICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICBjb25uYW1lICAgICAgICAgICAgIHwgY29ua2V5IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIENIRUNLICgoc2Fs ZXNfYW1vdW50ID4gMSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2Fs ZXNfcmFuZ2Vfc2FsZXNfYW1vdW50X2NoZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVz bWFuX2lkKSBSRUZFUkVOQ0VTIHNhbGVzbWFucyhzYWxlc21hbl9pZCkgfCBzYWxlc19yYW5n ZV9zYWxlc21hbl9pZF9ma2V5ICAgfCB7MX0KKygyIHJvd3MpCisKK0FMVEVSIFRBQkxFIHNh bGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTwor ICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0w MScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFS VElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRP ICgnMjAyMi0wNS0wMScpKTsKKy0tIFdlIHNob3VsZCBzZWUgdGhlIHNhbWUgQ09OU1RSQUlO VHMgYXMgb24gc2FsZXNfZmViX21hcl9hcHIyMDIyIHBhcnRpdGlvbgorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfZmViMjAyMic6OnJlZ2NsYXNzOjpvaWQ7Cisg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgQ0hFQ0sg KChzYWxlc19hbW91bnQgPiAxKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0KKyBGT1JFSUdOIEtFWSAo c2FsZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSB8IHNhbGVz X3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQorKDIgcm93cykKKworU0VMRUNUIHBn X2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2NvbnN0 cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfbWFyMjAyMic6OnJlZ2NsYXNzOjpvaWQ7 CisgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgQ0hF Q0sgKChzYWxlc19hbW91bnQgPiAxKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0KKyBGT1JFSUdOIEtF WSAoc2FsZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSB8IHNh bGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQorKDIgcm93cykKKworU0VMRUNU IHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfYXByMjAyMic6OnJlZ2NsYXNzOjpv aWQ7CisgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIGNvbm5hbWUgICAgICAgICAgICAgfCBjb25rZXkg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisg Q0hFQ0sgKChzYWxlc19hbW91bnQgPiAxKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2sgfCB7Mn0KKyBGT1JFSUdO IEtFWSAoc2FsZXNtYW5faWQpIFJFRkVSRU5DRVMgc2FsZXNtYW5zKHNhbGVzbWFuX2lkKSB8 IHNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkgICB8IHsxfQorKDIgcm93cykKKworLS0g RVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAic2FsZXNfbWFyMjAyMiIgdmlvbGF0ZXMg Y2hlY2sgY29uc3RyYWludCAic2FsZXNfcmFuZ2Vfc2FsZXNtYW5faWRfY2hlY2siCitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsIDAsICcyMDIyLTAzLTExJyk7CitFUlJP UjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJzYWxlc19tYXIyMDIyIiB2aW9sYXRlcyBjaGVj ayBjb25zdHJhaW50ICJzYWxlc19yYW5nZV9zYWxlc19hbW91bnRfY2hlY2siCitERVRBSUw6 ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMSwgMCwgMDMtMTEtMjAyMikuCistLSBFUlJPUjog IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkiCitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKC0xLCAxMCwgJzIwMjItMDMtMTEnKTsK K0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAic2FsZXNfbWFyMjAyMiIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAic2FsZXNfcmFuZ2Vfc2FsZXNtYW5faWRf ZmtleSIKK0RFVEFJTDogIEtleSAoc2FsZXNtYW5faWQpPSgtMSkgaXMgbm90IHByZXNlbnQg aW4gdGFibGUgInNhbGVzbWFucyIuCistLSBvaworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxLCAxMCwgJzIwMjItMDMtMTEnKTsKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2Ug Q0FTQ0FERTsKK0RST1AgVEFCTEUgc2FsZXNtYW5zIENBU0NBREU7CistLQorLS0gVGVzdDog c3BsaXQgcGFydGl0aW9uIG9uIHBhcnRpdGlvbmVkIHRhYmxlIGluIGNhc2UgZXhpc3RzIEZP UkVJR04gS0VZIHJlZmVyZW5jZSBmcm9tIGFub3RoZXIgdGFibGUKKy0tCitDUkVBVEUgVEFC TEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFt ZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CitDUkVB VEUgVEFCTEUgc2FsZXMgKHNhbGVzbWFuX2lkIElOVCBSRUZFUkVOQ0VTIHNhbGVzbWFucyhz YWxlc21hbl9pZCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSk7CitDUkVB VEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFM VUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFS VElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoNDApOworSU5T RVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKK0lOU0VSVCBJTlRP IHNhbGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxOSwgJ0l2YW5vdicpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAo MjAsICdTbWlybm9mZicpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdG b3JkJyk7CitJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDEsICAxMDAsICcyMDIyLTAzLTAx Jyk7CitJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDEsICAxMTAsICcyMDIyLTAzLTAyJyk7 CitJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDEwLCAxNTAsICcyMDIyLTAzLTAxJyk7CitJ TlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDEwLCA5MCwgICcyMDIyLTAzLTAzJyk7CitJTlNF UlQgSU5UTyBzYWxlcyBWQUxVRVMgKDE5LCAyMDAsICcyMDIyLTAzLTA0Jyk7CitJTlNFUlQg SU5UTyBzYWxlcyBWQUxVRVMgKDIwLCA1MCwgICcyMDIyLTAzLTEyJyk7CitJTlNFUlQgSU5U TyBzYWxlcyBWQUxVRVMgKDIwLCAxNzAsICcyMDIyLTAzLTAyJyk7CitJTlNFUlQgSU5UTyBz YWxlcyBWQUxVRVMgKDMwLCAzMCwgICcyMDIyLTAzLTA0Jyk7CitTRUxFQ1QgKiBGUk9NIHNh bGVzbWFuczAxXzEwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBQb2lyb3QKKygxIHJvdykK KworU0VMRUNUICogRlJPTSBzYWxlc21hbnMxMF80MDsKKyBzYWxlc21hbl9pZCB8IHNhbGVz bWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIDEw IHwgTWF5CisgICAgICAgICAgMTkgfCBJdmFub3YKKyAgICAgICAgICAyMCB8IFNtaXJub2Zm CisgICAgICAgICAgMzAgfCBGb3JkCisoNCByb3dzKQorCitBTFRFUiBUQUJMRSBzYWxlc21h bnMgU1BMSVQgUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIElOVE8KKyAgKFBBUlRJVElPTiBz YWxlc21hbnMxMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApLAorICAgUEFSVElU SU9OIHNhbGVzbWFuczIwXzMwIEZPUiBWQUxVRVMgRlJPTSAoMjApIFRPICgzMCksCisgICBQ QVJUSVRJT04gc2FsZXNtYW5zMzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKSk7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczAxXzEwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNt YW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEg fCBQb2lyb3QKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBzYWxlc21hbnMxMF8yMDsKKyBz YWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgIDEwIHwgTWF5CisgICAgICAgICAgMTkgfCBJdmFub3YKKygyIHJv d3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMjBfMzA7Cisgc2FsZXNtYW5faWQgfCBz YWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAyMCB8IFNtaXJub2ZmCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMzBf NDA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAzMCB8IEZvcmQKKygxIHJvdykKKworLS0gRVJST1I6 ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJzYWxlcyIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAic2FsZXNfc2FsZXNtYW5faWRfZmtleSIKK0lOU0VSVCBJTlRPIHNh bGVzIFZBTFVFUyAoNDAsIDUwLCAgJzIwMjItMDMtMDQnKTsKK0VSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAic2FsZXMiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInNhbGVzX3NhbGVzbWFuX2lkX2ZrZXkiCitERVRBSUw6ICBLZXkgKHNhbGVzbWFuX2lk KT0oNDApIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJzYWxlc21hbnMiLgorLS0gb2sKK0lO U0VSVCBJTlRPIHNhbGVzIFZBTFVFUyAoMzAsIDUwLCAgJzIwMjItMDMtMDQnKTsKK0RST1Ag VEFCTEUgc2FsZXMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgc2FsZXNtYW5zIENBU0NBREU7Cist LQorLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIG9mIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGgg dHJpZ2dlcnMKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQ UklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc21hbl9pZCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElU SU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUg VEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVT IEZST00gKDEwKSBUTyAoNDApOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwg ICdQb2lyb3QnKTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFmdGVyX2luc2VydF9y b3dfdHJpZ2dlcigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSAncGxwZ3NxbCcgQVMgJEJP RFkkCitCRUdJTgorCVJBSVNFIE5PVElDRSAndHJpZ2dlciglKSBjYWxsZWQ6IGFjdGlvbiA9 ICUsIHdoZW4gPSAlLCBsZXZlbCA9ICUnLCBUR19BUkdWWzBdLCBUR19PUCwgVEdfV0hFTiwg VEdfTEVWRUw7CisgICAgUkVUVVJOIE5VTEw7CitFTkQ7CiskQk9EWSQ7CitDUkVBVEUgVFJJ R0dFUiBzYWxlc21hbnNfYWZ0ZXJfaW5zZXJ0X3N0YXRlbWVudF90cmlnZ2VyCisgICAgQUZU RVIgSU5TRVJUCisgICAgT04gc2FsZXNtYW5zCisgICAgRk9SIEVBQ0ggU1RBVEVNRU5UCisg ICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21h bnMnKTsKK0NSRUFURSBUUklHR0VSIHNhbGVzbWFuc19hZnRlcl9pbnNlcnRfcm93X3RyaWdn ZXIKKyAgICBBRlRFUiBJTlNFUlQKKyAgICBPTiBzYWxlc21hbnMKKyAgICBGT1IgRUFDSCBS T1cKKyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3Nh bGVzbWFucycpOworLS0gMiB0cmlnZ2VycyBzaG91bGQgZmlyZSBoZXJlIChyb3cgKyBzdGF0 ZW1lbnQpOgorSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTAsICdNYXknKTsKK05P VElDRTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hl biA9IEFGVEVSLCBsZXZlbCA9IFJPVworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNh bGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gU1RBVEVNRU5U CistLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNh bGVzbWFuczEwXzQwIFZBTFVFUyAoMTksICdJdmFub3YnKTsKK05PVElDRTogIHRyaWdnZXIo c2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBsZXZl bCA9IFJPVworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJVElPTiBzYWxlc21h bnMxMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtYW5zMTBfMjAgRk9SIFZBTFVFUyBG Uk9NICgxMCkgVE8gKDIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBGT1IgVkFM VUVTIEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczMwXzQwIEZP UiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOworLS0gMiB0cmlnZ2VycyBzaG91bGQgZmly ZSBoZXJlIChyb3cgKyBzdGF0ZW1lbnQpOgorSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVF UyAoMjAsICdTbWlybm9mZicpOworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxl ZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCitOT1RJQ0U6 ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBB RlRFUiwgbGV2ZWwgPSBTVEFURU1FTlQKKy0tIDEgdHJpZ2dlciBzaG91bGQgZmlyZSBoZXJl IChyb3cpOgorSU5TRVJUIElOVE8gc2FsZXNtYW5zMzBfNDAgVkFMVUVTICgzMCwgJ0ZvcmQn KTsKK05PVElDRTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VS VCwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFJPVworU0VMRUNUICogRlJPTSBzYWxlc21hbnMw MV8xMDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgUG9pcm90CisoMSByb3cpCisKK1NFTEVD VCAqIEZST00gc2FsZXNtYW5zMTBfMjA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAxMCB8IE1heQor ICAgICAgICAgIDE5IHwgSXZhbm92CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVz bWFuczIwXzMwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMjAgfCBTbWlybm9mZgorKDEgcm93KQor CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczMwXzQwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNt YW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMzAg fCBGb3JkCisoMSByb3cpCisKK0RST1AgVEFCTEUgc2FsZXNtYW5zIENBU0NBREU7CitEUk9Q IEZVTkNUSU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpOworLS0KKy0tIFRlc3Q6IHNw bGl0IHBhcnRpdGlvbiB3aXRjaCBpZGVudGl0eSBjb2x1bW4KKy0tIElmIHNwbGl0IHBhcnRp dGlvbiBjb2x1bW4gaXMgaWRlbnRpdHktY29sdW1uLCBjb2x1bW5zIG9mIG5ldyBwYXJ0aXRp b25zIGFyZSBpZGVudGl0eS1jb2x1bW5zIHRvby4KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNt YW5zKHNhbGVzbWFuX2lkIElOVCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZIFBSSU1B UlkgS0VZLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0Ug KHNhbGVzbWFuX2lkKTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMxXzIgUEFSVElUSU9OIE9G IHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgyKTsKKy0tIENyZWF0ZSBuZXcg cGFydGl0aW9uIHdpdGggaWRlbnRpdHktY29sdW1uOgorQ1JFQVRFIFRBQkxFIHNhbGVzbWFu czJfNShzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSBQUklN QVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitBTFRFUiBUQUJMRSBzYWxl c21hbnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMyXzUgRk9SIFZBTFVFUyBGUk9NICgy KSBUTyAoNSk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25hbWUpIFZBTFVF UyAoJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1lKSBW QUxVRVMgKCdJdmFub3YnKTsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2Vu ZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlk ID0gJ3NhbGVzbWFucyc6OnJlZ2NsYXNzOjpvaWQ7CisgICAgYXR0bmFtZSAgICB8IGF0dGlk ZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAKKyBzYWxl c21hbl9uYW1lIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK1NFTEVDVCBhdHRuYW1l LCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0 dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczFfMic6OnJlZ2NsYXNzOjpvaWQ7 CisgICAgYXR0bmFtZSAgICB8IGF0dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAg IHwgICAgICAgICAgICAgfCAKKyBzYWxlc21hbl9uYW1lIHwgICAgICAgICAgICAgfCAKKygy IHJvd3MpCisKKy0tIFNwbGl0IHBhcnRpdGlvbiBoYXMgaWRlbnRpdHktY29sdW1uOgorU0VM RUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1 dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zMl81Jzo6cmVn Y2xhc3M6Om9pZDsKKyAgICBhdHRuYW1lICAgIHwgYXR0aWRlbnRpdHkgfCBhdHRnZW5lcmF0 ZWQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIHNh bGVzbWFuX2lkICAgfCBhICAgICAgICAgICB8IAorIHNhbGVzbWFuX25hbWUgfCAgICAgICAg ICAgICB8IAorKDIgcm93cykKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJ VElPTiBzYWxlc21hbnMyXzUgSU5UTworICAoUEFSVElUSU9OIHNhbGVzbWFuczJfMyBGT1Ig VkFMVUVTIEZST00gKDIpIFRPICgzKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMzXzQgRk9S IFZBTFVFUyBGUk9NICgzKSBUTyAoNCksCisgICBQQVJUSVRJT04gc2FsZXNtYW5zNF81IEZP UiBWQUxVRVMgRlJPTSAoNCkgVE8gKDUpKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyAoc2Fs ZXNtYW5fbmFtZSkgVkFMVUVTICgnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNh bGVzbWFuX25hbWUpIFZBTFVFUyAoJ0ZvcmQnKTsKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5z MV8yOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBQb2lyb3QKKygxIHJvdykKKworU0VMRUNU ICogRlJPTSBzYWxlc21hbnMyXzM7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IEl2YW5vdgor KDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczNfNDsKKyBzYWxlc21hbl9pZCB8 IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAzIHwgTWF5CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zNF81Owor IHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQgfCBGb3JkCisoMSByb3cpCisKK1NFTEVDVCBhdHRuYW1l LCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0 dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFucyc6OnJlZ2NsYXNzOjpvaWQ7Cisg ICAgYXR0bmFtZSAgICB8IGF0dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAgIHwg YSAgICAgICAgICAgfCAKKyBzYWxlc21hbl9uYW1lIHwgICAgICAgICAgICAgfCAKKygyIHJv d3MpCisKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00g cGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFu czFfMic6OnJlZ2NsYXNzOjpvaWQ7CisgICAgYXR0bmFtZSAgICB8IGF0dGlkZW50aXR5IHwg YXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0KKyBzYWxlc21hbl9pZCAgIHwgICAgICAgICAgICAgfCAKKyBzYWxlc21hbl9uYW1l IHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIE5ldyBwYXJ0aXRpb25zIGhhdmUg aWRlbnRpdHktY29sdW1uczoKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2Vu ZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlk ID0gJ3NhbGVzbWFuczJfMyc6OnJlZ2NsYXNzOjpvaWQ7CisgICAgYXR0bmFtZSAgICB8IGF0 dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAKKyBz YWxlc21hbl9uYW1lIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK1NFTEVDVCBhdHRu YW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJF IGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczNfNCc6OnJlZ2NsYXNzOjpv aWQ7CisgICAgYXR0bmFtZSAgICB8IGF0dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9p ZCAgIHwgYSAgICAgICAgICAgfCAKKyBzYWxlc21hbl9uYW1lIHwgICAgICAgICAgICAgfCAK KygyIHJvd3MpCisKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVk IEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3Nh bGVzbWFuczRfNSc6OnJlZ2NsYXNzOjpvaWQ7CisgICAgYXR0bmFtZSAgICB8IGF0dGlkZW50 aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAKKyBzYWxlc21h bl9uYW1lIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK0RST1AgVEFCTEUgc2FsZXNt YW5zIENBU0NBREU7CistLQorLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIHdpdGggZGVsZXRl ZCBjb2x1bW5zCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQg UFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBS QU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJ VElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOworLS0gQ3Jl YXRlIG5ldyBwYXJ0aXRpb24gd2l0aCBzb21lIGRlbGV0ZWQgY29sdW1uczoKK0NSRUFURSBU QUJMRSBzYWxlc21hbnMxMF80MChkMSBWQVJDSEFSKDMwKSwgc2FsZXNtYW5faWQgSU5UIFBS SU1BUlkgS0VZLCBkMiBJTlQsIGQzIERBVEUsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkp OworSU5TRVJUIElOVE8gc2FsZXNtYW5zMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUgMScs IDE5LCAxMDAsIG5vdygpLCAnSXZhbm92Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF80 MCBWQUxVRVMgKCdkdW1teSB2YWx1ZSAyJywgMjAsIDEwMSwgbm93KCksICdTbWlybm9mZicp OworQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfNDAgRFJPUCBDT0xVTU4gZDE7CitBTFRFUiBU QUJMRSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVNTiBkMjsKK0FMVEVSIFRBQkxFIHNhbGVz bWFuczEwXzQwIERST1AgQ09MVU1OIGQzOworQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFD SCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQw KTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEsICdQb2lyb3QnKTsKK0lOU0VS VCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxl c21hbnMgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKK0FMVEVSIFRBQkxFIHNhbGVzbWFucyBTUExJ VCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgSU5UTworICAoUEFSVElUSU9OIHNhbGVzbWFu czEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCksCisgICBQQVJUSVRJT04gc2Fs ZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElP TiBzYWxlc21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApKTsKK3NlbGVj dCAqIGZyb20gc2FsZXNtYW5zMDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IFBvaXJv dAorKDEgcm93KQorCitzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczEwXzIwOworIHNhbGVzbWFu X2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgMTkgfCBJdmFub3YKKyAgICAgICAgICAxMCB8IE1heQorKDIgcm93cykKKwor c2VsZWN0ICogZnJvbSBzYWxlc21hbnMyMF8zMDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIDIwIHwg U21pcm5vZmYKKygxIHJvdykKKworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMzMF80MDsKKyBz YWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgIDMwIHwgRm9yZAorKDEgcm93KQorCitEUk9QIFRBQkxFIHNhbGVz bWFucyBDQVNDQURFOworLS0KKy0tIFRlc3Q6IHNwbGl0IHN1Yi1wYXJ0aXRpb24KKy0tCitD UkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFt ZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJU SVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIw MjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEt MDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIyMDIyIFBB UlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykg VE8gKCcyMDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQQVJUSVRJ T04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgn MjAyMi0wNC0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FwcjIwMjIgKHNhbGVzbWFuX2lk IElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2Fs ZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRF IFRBQkxFIHNhbGVzX2Fwcl9hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2FwcjIwMjIgRk9SIFZB TFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOworQUxURVIgVEFC TEUgc2FsZXNfcmFuZ2UgQVRUQUNIIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVB VEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJ TkcgYnRyZWUgKHNhbGVzX2RhdGUpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAw LCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAg J0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAy Mi0wMi0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywg ICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0x MScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAg MzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAg JzIwMjItMDEtMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdT bWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0Jyk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX3Jh bmdlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNh bGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IE1heSAgICAgICAgICAgfCAgICAgICAg IDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAg ICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8 ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAg ICAgfCAgICAgICAgICA1MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAgIDYgfCBQb2lyb3Qg ICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAgICAgICA4IHwgRXJp Y3Nzb24gICAgICB8ICAgICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKyAgICAgICAgICAgNyB8 IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIyCisgICAgICAgICAg IDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgorICAgICAg ICAgIDEyIHwgUGxhdG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5LTIwMjIKKyAg ICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0zMC0yMDIy CisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMt MjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0 LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAg fCAwNC0wNi0yMDIyCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAgIHwgICAgICAgICAg NTEwIHwgMDUtMDQtMjAyMgorKDE0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXBy MjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBz YWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAg ICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAg ICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAg fCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAg ICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorKDQgcm93cykKKworQUxURVIgVEFC TEUgc2FsZXNfYXByMjAyMiBTUExJVCBQQVJUSVRJT04gc2FsZXNfYXByX2FsbCBJTlRPCisg IChQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8wMV8xMCBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTA0LTAxJykgVE8gKCcyMDIyLTA0LTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAy Ml8xMF8yMCBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEwJykgVE8gKCcyMDIyLTA0LTIw JyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8yMF8zMCBGT1IgVkFMVUVTIEZST00g KCcyMDIyLTA0LTIwJykgVE8gKCcyMDIyLTA1LTAxJykpOworU0VMRUNUICogRlJPTSBzYWxl c19yYW5nZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQg fCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBNYXkgICAgICAgICAgIHwgICAg ICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8 ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAg ICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisgICAgICAgICAgIDIgfCBTbWlybm9m ZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9p cm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8 IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAgICAg IDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAg ICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAg ICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIy CisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDct MjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0 LTA2LTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAg fCAwNC0xMy0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAy MDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgIDE0IHwgU21pdGggICAgICAgICB8ICAgICAg ICAgIDUxMCB8IDA1LTA0LTIwMjIKKygxNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVz X2FwcjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50 IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAg ICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAg fCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAg ICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAg ICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyg0IHJvd3MpCisKK1NFTEVD VCAqIEZST00gc2FsZXNfYXByMjAyMl8wMV8xMDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDUg fCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAg IDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKygyIHJv d3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8xMF8yMDsKKyBzYWxlc21hbl9p ZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg ICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAy MgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjJfMjBfMzA7Cisgc2Fs ZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAK Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0 LTMwLTIwMjIKKygxIHJvdykKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKy0tCistLSBC WSBMSVNUIHBhcnRpdGlvbmluZworLS0KKy0tCistLSBUZXN0OiBzcGVjaWZpYyBlcnJvcnMg Zm9yIEJZIExJU1QgcGFydGl0aW9uaW5nCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QK KyhzYWxlc21hbl9pZCBJTlQsCisgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxl c19zdGF0ZSBWQVJDSEFSKDIwKSwKKyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUg REFURSkKK1BBUlRJVElPTiBCWSBMSVNUIChzYWxlc19zdGF0ZSk7CitDUkVBVEUgVEFCTEUg c2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTXVy bWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBzYWxl c19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2Nvdycs ICdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6YW4n LCAnS2hhYmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snKTsKK0NSRUFURSBU QUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVMVDsKKy0t IEVSUk9SOiAgcGFydGl0aW9uICJzYWxlc19lYXN0IiB3b3VsZCBvdmVybGFwIHBhcnRpdGlv biAic2FsZXNfbm9yZCIKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgU1BMSVQgUEFSVElUSU9O IHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfd2VzdCBGT1IgVkFMVUVTIElO ICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycpLAorICAgUEFSVElUSU9OIHNh bGVzX2Vhc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAnS2hhYmFyb3ZzaycsICdWbGFk aXZvc3RvaycsICdNdXJtYW5zaycpLAorICAgUEFSVElUSU9OIHNhbGVzX2NlbnRyYWwgRk9S IFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKSk7CitFUlJPUjog IG5ldyBwYXJ0aXRpb24gInNhbGVzX2Vhc3QiIHdvdWxkIG92ZXJsYXAgd2l0aCBhbm90aGVy IChub3Qgc3BsaXQpIHBhcnRpdGlvbiAic2FsZXNfbm9yZCIKK0xJTkUgMzogLi4uQUxVRVMg SU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snLCAnTXVybWFuc2sn Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gRVJST1I6ICBuZXcgcGFydGl0aW9uICJzYWxlc193ZXN0IiB3 b3VsZCBvdmVybGFwIHdpdGggYW5vdGhlciBuZXcgcGFydGl0aW9uICJzYWxlc19jZW50cmFs IgorQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJT04gc2FsZXNfYWxsIElO VE8KKyAgKFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcs ICdTbW9sZW5zaycsICdCcnlhbnNrJyksCisgICBQQVJUSVRJT04gc2FsZXNfZWFzdCBGT1Ig VkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJyksCisg ICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ0th emFuJywgJ1Zvcm9uZXpoJywgJ1ZvbGdvZ3JhZCcpKTsKK0VSUk9SOiAgbmV3IHBhcnRpdGlv biAic2FsZXNfd2VzdCIgd291bGQgb3ZlcmxhcCB3aXRoIGFub3RoZXIgbmV3IHBhcnRpdGlv biAic2FsZXNfY2VudHJhbCIKK0xJTkUgMjogICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9S IFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEVSUk9SOiAgbmV3IHBhcnRp dGlvbiAic2FsZXNfd2VzdCIgY2Fubm90IGhhdmUgTlVMTCB2YWx1ZSBiZWNhdXNlIHNwbGl0 IHBhcnRpdGlvbiBkb2VzIG5vdCBoYXZlCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElU IFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9S IFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snLCBOVUxMKSwK KyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0to YWJhcm92c2snLCAnVmxhZGl2b3N0b2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFs IEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9sZ29ncmFkJykpOworRVJS T1I6ICBuZXcgcGFydGl0aW9uICJzYWxlc193ZXN0IiBjYW5ub3QgaGF2ZSBOVUxMIHZhbHVl IGJlY2F1c2Ugc3BsaXQgcGFydGl0aW9uIGRvZXMgbm90IGhhdmUKK0xJTkUgMjogLi4uZXN0 IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgTlVM TCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKy0tCistLSBUZXN0 OiB0d28gc3BlY2lmaWMgZXJyb3JzIGZvciBCWSBMSVNUIHBhcnRpdGlvbmluZzoKKy0tICAg KiBuZXcgcGFydGl0aW9ucyBub3QgaGFzIE5VTEwgdmFsdWUgdGhhdCBzcGxpdCBwYXJ0aXRp b24gaGFzLgorLS0gICAqIG5ldyBwYXJ0aXRpb25zIG5vdCBoYXMgYSB2YWx1ZSB0aGF0IHNw bGl0IHBhcnRpdGlvbiBoYXMuCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxl c21hbl9pZCBJTlQsCisgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19zdGF0 ZSBWQVJDSEFSKDIwKSwKKyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFURSkK K1BBUlRJVElPTiBCWSBMSVNUIChzYWxlc19zdGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNf bm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTXVybWFuc2sn LCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hbGwg UEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdWb3Jv bmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6YW4nLCAnS2hh YmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snLCBOVUxMKTsKKy0tIEVSUk9S OiAgbmV3IHBhcnRpdGlvbnMgbm90IGhhdmUgdmFsdWUgTlVMTCBidXQgc3BsaXQgcGFydGl0 aW9uIGhhcworQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJT04gc2FsZXNf YWxsIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3Jv bmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJyksCisgICBQQVJUSVRJT04gc2FsZXNfZWFz dCBGT1IgVkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9r JyksCisgICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9zY293 JywgJ0themFuJywgJ1ZvbGdvZ3JhZCcpKTsKK0VSUk9SOiAgbmV3IHBhcnRpdGlvbnMgbm90 IGhhdmUgdmFsdWUgTlVMTCBidXQgc3BsaXQgcGFydGl0aW9uIGhhcworLS0gRVJST1I6ICBu ZXcgcGFydGl0aW9ucyBub3QgaGF2ZSB2YWx1ZSAnVm9sZ29ncmFkJyBidXQgc3BsaXQgcGFy dGl0aW9uIGhhcworQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJT04gc2Fs ZXNfYWxsIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdW b3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJyksCisgICBQQVJUSVRJT04gc2FsZXNf ZWFzdCBGT1IgVkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9z dG9rJyksCisgICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9z Y293JywgJ0themFuJywgTlVMTCkpOworRVJST1I6ICBuZXcgcGFydGl0aW9ucyBub3QgaGF2 ZSB2YWx1ZSAnVm9sZ29ncmFkJyBidXQgc3BsaXQgcGFydGl0aW9uIGhhcworRFJPUCBUQUJM RSBzYWxlc19saXN0OworLS0KKy0tIFRlc3Q6IEJZIExJU1QgcGFydGl0aW9uaW5nLCBTUExJ VCBQQVJUSVRJT04gd2l0aCBkYXRhCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhz YWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSwKKyBzYWxlc21h bl9uYW1lIFZBUkNIQVIoMzApLAorIHNhbGVzX3N0YXRlIFZBUkNIQVIoMjApLAorIHNhbGVz X2Ftb3VudCBJTlQsCisgc2FsZXNfZGF0ZSBEQVRFKQorUEFSVElUSU9OIEJZIExJU1QgKHNh bGVzX3N0YXRlKTsKK0NSRUFURSBJTkRFWCBzYWxlc19saXN0X3NhbGVzbWFuX25hbWVfaWR4 IE9OIHNhbGVzX2xpc3QgVVNJTkcgYnRyZWUgKHNhbGVzbWFuX25hbWUpOworQ1JFQVRFIElO REVYIHNhbGVzX2xpc3Rfc2FsZXNfc3RhdGVfaWR4IE9OIHNhbGVzX2xpc3QgVVNJTkcgYnRy ZWUgKHNhbGVzX3N0YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkIFBBUlRJVElPTiBP RiBzYWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdNdXJtYW5zaycsICdTdC4gUGV0ZXJzYnVy ZycsICdVa2h0YScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FsbCBQQVJUSVRJT04gT0Ygc2Fs ZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNr JywgJ0JyeWFuc2snLCAnTWFnYWRhbicsICdLYXphbicsICdLaGFiYXJvdnNrJywgJ1ZvbGdv Z3JhZCcsICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJU SVRJT04gT0Ygc2FsZXNfbGlzdCBERUZBVUxUOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAo c2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkg VkFMVUVTICgnVHJ1bXAnLCAgICAnTWFnYWRhbicsICAgICAgICAxMDAwLCAnMjAyMi0wMy0w MScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3Rh dGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnU21pcm5vZmYnLCAnU21v bGVuc2snLCAgICAgICA1MDAsICAnMjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXNf bGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNf ZGF0ZSkgVkFMVUVTICgnRm9yZCcsICAgICAnU3QuIFBldGVyc2J1cmcnLCAyMDAwLCAnMjAy Mi0wMy0wNScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2Fs ZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnSXZhbm92Jywg ICAnTW9zY293JywgICAgICAgICA3NTAsICAnMjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8g c2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwg c2FsZXNfZGF0ZSkgVkFMVUVTICgnRGVldicsICAgICAnVm9yb25lemgnLCAgICAgICAyNTAs ICAnMjAyMi0wMy0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFt ZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnUG9p cm90JywgICAnS2F6YW4nLCAgICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJU IElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ft b3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAgICAg ICAxMjAwLCAnMjAyMi0wMy0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNt YW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVT ICgnTGknLCAgICAgICAnVmxhZGl2b3N0b2snLCAgICAxMTUwLCAnMjAyMi0wMy0wOScpOwor SU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNh bGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAg ICAgICAgICAxMjAwLCAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAo c2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkg VkFMVUVTICgnSGFsZGVyJywgICAnTXVybWFuc2snLCAgICAgICA4MDAsICAnMjAyMi0wMy0w MicpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3Rh dGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTXVsbGVyJywgICAnQnJ5 YW5zaycsICAgICAgICA2NTAsICAnMjAyMi0wMy0wNScpOworSU5TRVJUIElOVE8gc2FsZXNf bGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNf ZGF0ZSkgVkFMVUVTICgnU21pdGgnLCAgICAnVm9sZ29ncmFkJywgICAgICAzNTAsICAnMjAy Mi0wMy0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2Fs ZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnR2FuZGknLCAg ICAnTW9zY293JywgICAgICAgICAxNTAsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8g c2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwg c2FsZXNfZGF0ZSkgVkFMVUVTICgnUGxhdG8nLCAgICAnVm9yb25lemgnLCAgICAgICA5NTAs ICAnMjAyMi0wMy0wNScpOworQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJ T04gc2FsZXNfYWxsIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMg SU4gKCdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJyksCisgICBQQVJUSVRJT04g c2FsZXNfZWFzdCBGT1IgVkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1Zs YWRpdm9zdG9rJyksCisgICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElO ICgnTW9zY293JywgJ0themFuJywgJ1ZvbGdvZ3JhZCcpKTsKK1NFTEVDVCAqIEZST00gc2Fs ZXNfbGlzdDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCAgc2FsZXNfc3RhdGUg ICB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor ICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8IFNtb2xlbnNrICAgICAgIHwgICAgICAg ICAgNTAwIHwgMDMtMDMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8IFZv cm9uZXpoICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMDctMjAyMgorICAgICAgICAgIDEx IHwgTXVsbGVyICAgICAgICB8IEJyeWFuc2sgICAgICAgIHwgICAgICAgICAgNjUwIHwgMDMt MDUtMjAyMgorICAgICAgICAgIDE0IHwgUGxhdG8gICAgICAgICB8IFZvcm9uZXpoICAgICAg IHwgICAgICAgICAgOTUwIHwgMDMtMDUtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAg ICAgICB8IE1vc2NvdyAgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDMtMDQtMjAyMgorICAg ICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8IEthemFuICAgICAgICAgIHwgICAgICAgICAx MDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgIDEyIHwgU21pdGggICAgICAgICB8IFZvbGdv Z3JhZCAgICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTAtMjAyMgorICAgICAgICAgIDEzIHwg R2FuZGkgICAgICAgICB8IE1vc2NvdyAgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDMtMDgt MjAyMgorICAgICAgICAgICAxIHwgVHJ1bXAgICAgICAgICB8IE1hZ2FkYW4gICAgICAgIHwg ICAgICAgICAxMDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgICA4IHwgTGkgICAgICAgICAg ICB8IFZsYWRpdm9zdG9rICAgIHwgICAgICAgICAxMTUwIHwgMDMtMDktMjAyMgorICAgICAg ICAgICAzIHwgRm9yZCAgICAgICAgICB8IFN0LiBQZXRlcnNidXJnIHwgICAgICAgICAyMDAw IHwgMDMtMDUtMjAyMgorICAgICAgICAgICA3IHwgTWF5ICAgICAgICAgICB8IFVraHRhICAg ICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMDYtMjAyMgorICAgICAgICAgICA5IHwgTWF5 ICAgICAgICAgICB8IFVraHRhICAgICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMTEtMjAy MgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8IE11cm1hbnNrICAgICAgIHwgICAg ICAgICAgODAwIHwgMDMtMDItMjAyMgorKDE0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2Fs ZXNfd2VzdDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19zdGF0ZSB8 IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyIHwgU21pcm5vZmYgICAgICB8IFNtb2xlbnNrICAgIHwgICAgICAgICAgNTAwIHwg MDMtMDMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8IFZvcm9uZXpoICAg IHwgICAgICAgICAgMjUwIHwgMDMtMDctMjAyMgorICAgICAgICAgIDExIHwgTXVsbGVyICAg ICAgICB8IEJyeWFuc2sgICAgIHwgICAgICAgICAgNjUwIHwgMDMtMDUtMjAyMgorICAgICAg ICAgIDE0IHwgUGxhdG8gICAgICAgICB8IFZvcm9uZXpoICAgIHwgICAgICAgICAgOTUwIHwg MDMtMDUtMjAyMgorKDQgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19lYXN0OworIHNh bGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3N0YXRlIHwgc2FsZXNfYW1vdW50 IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBUcnVt cCAgICAgICAgIHwgTWFnYWRhbiAgICAgfCAgICAgICAgIDEwMDAgfCAwMy0wMS0yMDIyCisg ICAgICAgICAgIDggfCBMaSAgICAgICAgICAgIHwgVmxhZGl2b3N0b2sgfCAgICAgICAgIDEx NTAgfCAwMy0wOS0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX25vcmQ7 Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgIHNhbGVzX3N0YXRlICAgfCBzYWxl c19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMyB8IEZvcmQgICAgICAgICAgfCBTdC4gUGV0ZXJzYnVyZyB8ICAgICAgICAgMjAwMCB8 IDAzLTA1LTIwMjIKKyAgICAgICAgICAgNyB8IE1heSAgICAgICAgICAgfCBVa2h0YSAgICAg ICAgICB8ICAgICAgICAgMTIwMCB8IDAzLTA2LTIwMjIKKyAgICAgICAgICAgOSB8IE1heSAg ICAgICAgICAgfCBVa2h0YSAgICAgICAgICB8ICAgICAgICAgMTIwMCB8IDAzLTExLTIwMjIK KyAgICAgICAgICAxMCB8IEhhbGRlciAgICAgICAgfCBNdXJtYW5zayAgICAgICB8ICAgICAg ICAgIDgwMCB8IDAzLTAyLTIwMjIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNf Y2VudHJhbDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19zdGF0ZSB8 IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAg ICAgICA0IHwgSXZhbm92ICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAgICAgICAgNzUwIHwg MDMtMDQtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8IEthemFuICAgICAg IHwgICAgICAgICAxMDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgIDEyIHwgU21pdGggICAg ICAgICB8IFZvbGdvZ3JhZCAgIHwgICAgICAgICAgMzUwIHwgMDMtMTAtMjAyMgorICAgICAg ICAgIDEzIHwgR2FuZGkgICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAgICAgICAgMTUwIHwg MDMtMDgtMjAyMgorKDQgcm93cykKKworLS0gVXNlIGluZGV4c2NhbiBmb3IgdGVzdCBpbmRl eGVzIGFmdGVyIHNwbGl0IHBhcnRpdGlvbgorU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsK K1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9GRjsKK1NFTEVDVCAqIEZST00gc2FsZXNfY2VudHJh bCBXSEVSRSBzYWxlc19zdGF0ZSA9ICdNb3Njb3cnOworIHNhbGVzbWFuX2lkIHwgc2FsZXNt YW5fbmFtZSB8IHNhbGVzX3N0YXRlIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgTW9zY293 ICAgICAgfCAgICAgICAgICA3NTAgfCAwMy0wNC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5k aSAgICAgICAgIHwgTW9zY293ICAgICAgfCAgICAgICAgICAxNTAgfCAwMy0wOC0yMDIyCiso MiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3QgV0hFUkUgc2FsZXNfc3RhdGUg PSAnTW9zY293JzsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19zdGF0 ZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAg ICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAgICAgICAgNzUw IHwgMDMtMDQtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8IE1vc2NvdyAg ICAgIHwgICAgICAgICAgMTUwIHwgMDMtMDgtMjAyMgorKDIgcm93cykKKworU0VMRUNUICog RlJPTSBzYWxlc19saXN0IFdIRVJFIHNhbGVzbWFuX25hbWUgPSAnSXZhbm92JzsKKyBzYWxl c21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19zdGF0ZSB8IHNhbGVzX2Ftb3VudCB8 IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA0IHwgSXZhbm92 ICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAgICAgICAgNzUwIHwgMDMtMDQtMjAyMgorKDEg cm93KQorCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOworU0VUIGVuYWJsZV9zZXFzY2Fu ID0gT047CitEUk9QIFRBQkxFIHNhbGVzX2xpc3Q7CistLQorLS0gVGVzdCBmb3I6CistLSAg ICogc3BsaXQgREVGQVVMVCBwYXJ0aXRpb24gdG8gcGFydGl0aW9ucyB3aXRoIHNwYWNlcyBi ZXR3ZWVuIGJvdW5kczsKKy0tICAgKiByYW5kb20gb3JkZXIgb2YgcGFydGl0aW9ucyBpbiBT UExJVCBQQVJUSVRJT04gY29tbWFuZC4KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2Ug KHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1v dW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2Rh dGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFu Z2UgREVGQVVMVDsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXkn LCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0wOScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQt MzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAg IDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMDcnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwg ICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAn RXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIy LTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAn LCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5 Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1 MTAsICAnMjAyMi0wNS0wNCcpOworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFS VElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERF RkFVTFQsCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMl8xZGVjYWRlIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDMtMTAnKSwKKyAgIFBBUlRJVElPTiBz YWxlc19qYW4yMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRP ICgnMjAyMi0wMS0xMCcpLAorICAgUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjJfMWRlY2FkZSBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAyLTEwJyksCisgICBQ QVJUSVRJT04gc2FsZXNfYXByMjAyMl8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDQtMDEnKSBUTyAoJzIwMjItMDQtMTAnKSk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIw MjJfMWRlY2FkZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91 bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwg ICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNh bGVzX2ZlYjIwMjJfMWRlY2FkZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBz YWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIgfCBTbWlybm9m ZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMDktMjAyMgorICAgICAgICAgICA2IHwgUG9p cm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTA3LTIwMjIKKygyIHJvd3MpCisKK1NF TEVDVCAqIEZST00gc2FsZXNfbWFyMjAyMl8xZGVjYWRlOworIHNhbGVzbWFuX2lkIHwgc2Fs ZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIyCisoMSBy b3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8xZGVjYWRlOworIHNhbGVzbWFu X2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0y MDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQt MDYtMjAyMgorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcnM7Cisgc2Fs ZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAK Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAx LTMxLTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAg fCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAg NzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA4IHwgRXJpY3Nzb24gICAgICB8ICAgICAg ICAgIDE4NSB8IDAyLTIzLTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAg ICAgICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAg IHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8gICAg ICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5LTIwMjIKKyAgICAgICAgICAxNCB8IFNtaXRo ICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoOCByb3dzKQorCitEUk9Q IFRBQkxFIHNhbGVzX3JhbmdlOworLS0KKy0tIFRlc3QgZm9yOgorLS0gICAqIHNwbGl0IG5v bi1ERUZBVUxUIHBhcnRpdGlvbiB0byBwYXJ0aXRpb25zIHdpdGggc3BhY2VzIGJldHdlZW4g Ym91bmRzOworLS0gICAqIHJhbmRvbSBvcmRlciBvZiBwYXJ0aXRpb25zIGluIFNQTElUIFBB UlRJVElPTiBjb21tYW5kLgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNt YW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5U LCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitD UkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIw MjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWly bm9mZicsIDUwMCwgICcyMDIyLTAyLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQt MTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAg IDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0wNycpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwg ICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAn TXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIy LTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8n LCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEtMDknKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0 Jyk7CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfYWxs IElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19tYXIyMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wMy0xMCcpLAorICAgUEFSVElUSU9OIHNh bGVzX2phbjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8g KCcyMDIyLTAxLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMl8xZGVjYWRlIEZP UiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDItMTAnKSwKKyAgIFBB UlRJVElPTiBzYWxlc19hcHIyMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0w NC0wMScpIFRPICgnMjAyMi0wNC0xMCcpKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuMjAy Ml8xZGVjYWRlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3Vu dCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAg ICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2Fs ZXNfZmViMjAyMl8xZGVjYWRlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNh bGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2Zm ICAgICAgfCAgICAgICAgICA1MDAgfCAwMi0wOS0yMDIyCisgICAgICAgICAgIDYgfCBQb2ly b3QgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMDctMjAyMgorKDIgcm93cykKKworU0VM RUNUICogRlJPTSBzYWxlc19tYXIyMDIyXzFkZWNhZGU7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAg ICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKygxIHJv dykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzFkZWNhZGU7Cisgc2FsZXNtYW5f aWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor ICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIw MjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0w Ni0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKKyBzYWxl c21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUt MDQtMjAyMgorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8 IDAxLTMxLTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIw MDAgfCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAg ICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA4IHwgRXJpY3Nzb24gICAgICB8ICAg ICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAg fCAgICAgICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAg ICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8g ICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5LTIwMjIKKyg4IHJvd3MpCisKK0RST1Ag VEFCTEUgc2FsZXNfcmFuZ2U7CistLQorLS0gVGVzdCBmb3Igc3BsaXQgbm9uLURFRkFVTFQg cGFydGl0aW9uIHRvIERFRkFVTFQgcGFydGl0aW9uICsgcGFydGl0aW9ucworLS0gd2l0aCBz cGFjZXMgYmV0d2VlbiBib3VuZHMuCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChz YWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3Vu dCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRl KTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0z MScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywg NTAwLCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAg JzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQ b2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjIt MDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXIn LCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1 MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEz LCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2Fs ZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1 LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcy MDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfb3Ro ZXJzIERFRkFVTFQpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1Nt aXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFu Z2U7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2Fs ZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAg MTAwMCB8IDAxLTMxLTIwMjIKKyAgICAgICAgICAxMCB8IEhhbGRlciAgICAgICAgfCAgICAg ICAgICAzNTAgfCAwMS0yOC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwg ICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAg ICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAg ICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0yMDIyCisgICAgICAgICAgIDggfCBFcmlj c3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDItMjMtMjAyMgorICAgICAgICAgICAzIHwg Rm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAg NCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAg ICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAg ICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIK KyAgICAgICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0y MDIyCisgICAgICAgICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMt MTEtMjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8 IDAzLTE5LTIwMjIKKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1 MTAgfCAwNS0wNC0yMDIyCisoMTQgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19qYW4y MDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNh bGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IE1heSAgICAgICAgICAgfCAgICAgICAg IDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAg ICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8 ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00g c2FsZXNfZmViMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19h bW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAg IHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAg ICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNz c29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisoMyByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAzIHwgRm9y ZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAgNCB8 IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAgICAg IDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAg ICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyg0 IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzOworIHNhbGVzbWFuX2lkIHwg c2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIyCisg ICAgICAgICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAy MgorICAgICAgICAgIDEyIHwgUGxhdG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAzLTE5 LTIwMjIKKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAw NS0wNC0yMDIyCisoNCByb3dzKQorCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworLS0KK0RS T1AgU0NIRU1BIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWE7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQppbmRleCA0MmNmZWFiMjBjLi5mYjkwZDk4OGZmIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExOSw3ICsxMTksNyBAQCB0ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUg Y29udmVyc2lvbiB0cgogIyBUaGUgc3RhdHMgdGVzdCByZXNldHMgc3RhdHMsIHNvIG5vdGhp bmcgZWxzZSBuZWVkaW5nIHN0YXRzIGFjY2VzcyBjYW4gYmUgaW4KICMgdGhpcyBncm91cC4K ICMgLS0tLS0tLS0tLQotdGVzdDogcGFydGl0aW9uX21lcmdlIHBhcnRpdGlvbl9qb2luIHBh cnRpdGlvbl9wcnVuZSByZWxvcHRpb25zIGhhc2hfcGFydCBpbmRleGluZyBwYXJ0aXRpb25f YWdncmVnYXRlIHBhcnRpdGlvbl9pbmZvIHR1cGxlc29ydCBleHBsYWluIGNvbXByZXNzaW9u IG1lbW9pemUgc3RhdHMKK3Rlc3Q6IHBhcnRpdGlvbl9tZXJnZSBwYXJ0aXRpb25fc3BsaXQg cGFydGl0aW9uX2pvaW4gcGFydGl0aW9uX3BydW5lIHJlbG9wdGlvbnMgaGFzaF9wYXJ0IGlu ZGV4aW5nIHBhcnRpdGlvbl9hZ2dyZWdhdGUgcGFydGl0aW9uX2luZm8gdHVwbGVzb3J0IGV4 cGxhaW4gY29tcHJlc3Npb24gbWVtb2l6ZSBzdGF0cwogCiAjIGV2ZW50X3RyaWdnZXIgZGVw ZW5kcyBvbiBjcmVhdGVfYW0gYW5kIGNhbm5vdCBydW4gY29uY3VycmVudGx5IHdpdGgKICMg YW55IHRlc3QgdGhhdCBydW5zIERETApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcGFydGl0aW9uX3NwbGl0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlv bl9zcGxpdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNThl MTdmMzNlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRp dGlvbl9zcGxpdC5zcWwKQEAgLTAsMCArMSw4MzMgQEAKKy0tCistLSBQQVJUSVRJT05fU1BM SVQKKy0tIFRlc3RzIGZvciAiQUxURVIgVEFCTEUgLi4uIFNQTElUIFBBUlRJVElPTiAuLi4i IGNvbW1hbmQKKy0tCisKK0NSRUFURSBTQ0hFTUEgcGFydGl0aW9uX3NwbGl0X3NjaGVtYTsK K1NFVCBzZWFyY2hfcGF0aCA9IHBhcnRpdGlvbl9zcGxpdF9zY2hlbWEsIHB1YmxpYzsKKwor LS0KKy0tIEJZIFJBTkdFIHBhcnRpdGlvbmluZworLS0KKworLS0KKy0tIFRlc3QgZm9yIGVy cm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBp bnQsIHNhbGVzbWFuX25hbWUgdmFyY2hhcigzMCksIHNhbGVzX2Ftb3VudCBpbnQsIHNhbGVz X2RhdGUgZGF0ZSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBU QUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVBVEUgVEFCTEUg c2FsZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCist LSBFUlJPUjogIHJlbGF0aW9uICJzYWxlc194eHgiIGRvZXMgbm90IGV4aXN0CitBTFRFUiBU QUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfeHh4IElOVE8KKyAgKFBB UlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBU TyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElP TiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIw MjItMDUtMDEnKSk7CisKKy0tIEVSUk9SOiAgcmVsYXRpb24gInNhbGVzX2phbjIwMjIiIGFs cmVhZHkgZXhpc3RzCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04g c2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19qYW4yMDIy IEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAg IFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEn KSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIEVS Uk9SOiAgaW52YWxpZCBib3VuZCBzcGVjaWZpY2F0aW9uIGZvciBhIHJhbmdlIHBhcnRpdGlv bgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9t YXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfamFuMjAyMiBGT1IgVkFMVUVT IElOICgnMjAyMi0wNS0wMScsICcyMDIyLTA2LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNf bWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworCistLSBFUlJPUjogIGVtcHR5IHJhbmdl IGJvdW5kIHNwZWNpZmllZCBmb3IgcGFydGl0aW9uICJzYWxlc19tYXIyMDIyIgorQUxURVIg VEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAy MiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcy MDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFy MjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTAyLTAxJyks CisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0 LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworCistLUVSUk9SOiAgbGlzdCBvZiBzcGxpdCBw YXJ0aXRpb25zIHNob3VsZCBjb250YWlucyBhdCBsZWFzdCB0d28gaXRlbXMKK0FMVEVSIFRB QkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIg SU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wMi0wMScpIFRPICgnMjAyMi0xMC0wMScpKTsKKworLS0gRVJST1I6ICBsb3dlciBib3Vu ZCBvZiBwYXJ0aXRpb24gInNhbGVzX2ZlYjIwMjIiIGlzIGxlc3MgdGhhbiBsb3dlciBib3Vu ZCBvZiBzcGxpdCBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBB UlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVz X2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMy0w MScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIw MjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsK KworLS0gRVJST1I6ICBuYW1lICJzYWxlc19mZWJfbWFyX2FwcjIwMjIiIGFscmVhZHkgdXNl ZAorLS0gKFdlIGNhbiBjcmVhdGUgcGFydGl0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBz cGxpdCBwYXJ0aXRpb24sIGJ1dCBjYW4ndCBjcmVhdGUgdHdvIHBhcnRpdGlvbnMgd2l0aCB0 aGUgc2FtZSBuYW1lKQorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9O IHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViX21h cl9hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMt MDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNh bGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0w NS0wMScpKTsKKworLS0gRVJST1I6ICBuYW1lICJzYWxlc19mZWIyMDIyIiBhbHJlYWR5IHVz ZWQKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJf bWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9O IHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAy Mi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKKworLS0gRVJST1I6ICAic2Fs ZXNfZmViX21hcl9hcHIyMDIyIiBpcyBub3QgYSBwYXJ0aXRpb25lZCB0YWJsZQorQUxURVIg VEFCTEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJf bWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9O IHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAy Mi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKKworLS0gRVJST1I6ICB1cHBl ciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2FwcjIwMjIiIGlzIGdyZWF0ZXIgdGhhbiB1 cHBlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNhbGVzX3Jhbmdl IFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElU SU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgn MjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNh bGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0w Ni0wMScpKTsKKworLS0gRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVz X21hcjIwMjIiIGlzIG5vdCBlcXVhbHMgdG8gdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFy dGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNf ZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAo JzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIFRlc3RzIGZv ciBzcGFjZXMgYmV0d2VlbiBwYXJ0aXRpb25zLCB0aGVtIHNob3VsZCBiZSBleGVjdXRlZCB3 aXRob3V0IERFRkFVTFQgcGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBERVRB Q0ggUEFSVElUSU9OIHNhbGVzX290aGVyczsKKworLS0gRVJST1I6ICBsb3dlciBib3VuZCBv ZiBwYXJ0aXRpb24gInNhbGVzX2ZlYjIwMjIiIGlzIG5vdCBlcXVhbHMgdG8gbG93ZXIgYm91 bmQgb2Ygc3BsaXQgcGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQ QVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxl c19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDInKSBUTyAoJzIwMjItMDMt MDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIy MDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7 CisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7CitEUk9QIFRBQkxFIHNhbGVzX290aGVyczsK KworLS0KKy0tIEFkZCByb3dzIGludG8gcGFydGl0aW9uZWQgdGFibGUgdGhlbiBzcGxpdCBw YXJ0aXRpb24KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElO VCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNf ZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRB QkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBz YWxlc19mZWJfbWFyX2FwcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcy MDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21p cm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0 LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAg ICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUs ICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAg J011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAy Mi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRv JywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0w NCcpOworCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNf ZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAo JzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKK1NFTEVDVCAqIEZS T00gc2FsZXNfcmFuZ2U7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1Qg KiBGUk9NIHNhbGVzX2ZlYjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7CitT RUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVy czsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZSBDQVNDQURFOworCistLQorLS0gQWRkIHNw bGl0IHBhcnRpdGlvbiB0aGVuIGFkZCByb3dzIGludG8gcGFydGl0aW9uZWQgdGFibGUKKy0t CitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5f bmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQ QVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2ph bjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFy X2FwcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDItMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhl cnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0FMVEVSIFRBQkxFIHNh bGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTwor ICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0w MScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFS VElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRP ICgnMjAyMi0wNS0wMScpKTsKKworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgx LCAgJ01heScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAn MjAyMi0wNC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2 YW5vdicsICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0w Mi0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAg ICAgMTc1LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoOCwgICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUw LCAgJzIwMjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEs ICdUcnVtcCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIw MjItMDEtMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0 aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0Jyk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFu Z2U7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVz X2ZlYjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX2FwcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKKworRFJPUCBU QUJMRSBzYWxlc19yYW5nZSBDQVNDQURFOworCistLQorLS0gVGVzdCBmb3I6CistLSAgICog Y29tcG9zaXRlIHBhcnRpdGlvbiBrZXk7CistLSAgICogR0VORVJBVEVEIGNvbHVtbjsKKy0t ICAgKiBjb2x1bW4gd2l0aCBERUZBVUxUIHZhbHVlLgorLS0KK0NSRUFURSBUQUJMRSBzYWxl c19kYXRlIChzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc195ZWFyIElOVCwgc2Fs ZXNfbW9udGggSU5ULCBzYWxlc19kYXkgSU5ULAorICBzYWxlc19kYXRlIFZBUkNIQVIoMTAp IEdFTkVSQVRFRCBBTFdBWVMgQVMKKyAgICAoTFBBRChzYWxlc195ZWFyOjp0ZXh0LCA0LCAn MCcpIHx8ICcuJyB8fCBMUEFEKHNhbGVzX21vbnRoOjp0ZXh0LCAyLCAnMCcpIHx8ICcuJyB8 fCBMUEFEKHNhbGVzX2RheTo6dGV4dCwgMiwgJzAnKSkgU1RPUkVELAorICBzYWxlc19kZXBh cnRtZW50IFZBUkNIQVIoMzApIERFRkFVTFQgJ1NhbGVzIGRlcGFydG1lbnQnKQorICBQQVJU SVRJT04gQlkgUkFOR0UgKHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpOwor CitDUkVBVEUgVEFCTEUgc2FsZXNfZGVjMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfZGF0ZSBG T1IgVkFMVUVTIEZST00gKDIwMjEsIDEyLCAxKSBUTyAoMjAyMiwgMSwgMSk7CitDUkVBVEUg VEFCTEUgc2FsZXNfamFuX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZB TFVFUyBGUk9NICgyMDIyLCAxLCAxKSBUTyAoMjAyMiwgMywgMSk7CitDUkVBVEUgVEFCTEUg c2FsZXNfb3RoZXIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgy MDIyLCAzLCAxKSBUTyAoTUFYVkFMVUUsIE1BWFZBTFVFLCBNQVhWQUxVRSk7CisKK0lOU0VS VCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9u dGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIxLCAxMiwgNyk7CitJTlNF UlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21v bnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMSwgMTIsIDgpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDEsIDEpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjIsIDIsIDQpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjIsIDEsIDIpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDIsIDEpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjIsIDMsIDMpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjIsIDMsIDQpOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDUsIDEpOworCitT RUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RlYzIwMjI7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbl9mZWIyMDIyOworU0VMRUNUICogRlJPTSBzYWxl c19vdGhlcjsKKworQUxURVIgVEFCTEUgc2FsZXNfZGF0ZSBTUExJVCBQQVJUSVRJT04gc2Fs ZXNfamFuX2ZlYjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZB TFVFUyBGUk9NICgyMDIyLCAxLCAxKSBUTyAoMjAyMiwgMiwgMSksCisgICBQQVJUSVRJT04g c2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIsIDIsIDEpIFRPICgyMDIyLCAz LCAxKSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNf eWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIy LCAxLCAxMCk7CitJTlNFUlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVz X3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAy MiwgMiwgMTApOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX2RlYzIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1Qg KiBGUk9NIHNhbGVzX2ZlYjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyOworCist LUVSUk9SOiAgcmVsYXRpb24gInNhbGVzX2phbl9mZWIyMDIyIiBkb2VzIG5vdCBleGlzdAor U0VMRUNUICogRlJPTSBzYWxlc19qYW5fZmViMjAyMjsKKworRFJPUCBUQUJMRSBzYWxlc19k YXRlIENBU0NBREU7CisKKy0tCistLSBUZXN0OiBzcGxpdCBERUZBVUxUIHBhcnRpdGlvbjsg dXNpbmcgYSBpbmRleCBvbiBwYXJ0aXRpb24ga2V5OyBjaGVjayBpbmRleCBhZnRlciBzcGxp dAorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxl c21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERB VEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgn MjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290 aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0NSRUFURSBJTkRFWCBz YWxlc19yYW5nZV9zYWxlc19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBVU0lORyBidHJlZSAo c2FsZXNfZGF0ZSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdN YXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjIt MDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3Yn LCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3 NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgs ICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcy MDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1 bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAx LTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAg ICA1MTAsICAnMjAyMi0wNS0wNCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsK K1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAnc2FsZXNfb3Ro ZXJzJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25fc3BsaXRfc2NoZW1hJzsKKworQUxU RVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRP CisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAy LTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQ QVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykg VE8gKCcyMDIyLTA1LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQp OworCistLSBVc2UgaW5kZXhzY2FuIGZvciB0ZXN0IGluZGV4ZXMKK1NFVCBlbmFibGVfaW5k ZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPRkY7CisKK1NFTEVDVCAqIEZS T00gc2FsZXNfZmViMjAyMiB3aGVyZSBzYWxlc19kYXRlID4gJzIwMjItMDEtMDEnOworU0VM RUNUICogRlJPTSBzYWxlc19tYXIyMDIyIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0w MSc7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjIgd2hlcmUgc2FsZXNfZGF0ZSA+ICcy MDIyLTAxLTAxJzsKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXJzIHdoZXJlIHNhbGVzX2Rh dGUgPiAnMjAyMi0wMS0wMSc7CisKK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQg ZW5hYmxlX3NlcXNjYW4gPSBPTjsKKworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJF IHRhYmxlbmFtZSA9ICdzYWxlc19mZWIyMDIyJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRp b25fc3BsaXRfc2NoZW1hJzsKK1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJs ZW5hbWUgPSAnc2FsZXNfbWFyMjAyMicgYW5kIHNjaGVtYW5hbWUgPSAncGFydGl0aW9uX3Nw bGl0X3NjaGVtYSc7CitTRUxFQ1QgKiBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1l ID0gJ3NhbGVzX2FwcjIwMjInIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9z Y2hlbWEnOworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdz YWxlc19vdGhlcnMnIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9zY2hlbWEn OworCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlIENBU0NBREU7CisKKy0tCistLSBUZXN0OiBz b21lIGNhc2VzIGZvciBzcGxpdCBERUZBVUxUIHBhcnRpdGlvbiAoZGlmZmVyZW50IGJvdW5k cykKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2Fs ZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBJ TlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCistLSBzYWxl c19lcnJvciBpbnRlcnNlY3RzIHdpdGggc2FsZXNfZGVjMjAyMiAobG93ZXIgYm91bmQpCist LSBFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfZXJyb3IiIGNvbmZs aWN0cyB3aXRoIHVwcGVyIGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiAic2FsZXNfZGVj MjAyMiIKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19v dGhlcnMgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBGUk9N ICgyMDIxMTIwMSkgVE8gKDIwMjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lcnJvciBG T1IgVkFMVUVTIEZST00gKDIwMjExMjMwKSBUTyAoMjAyMjAyMDEpLAorICAgUEFSVElUSU9O IHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIwMSkgVE8gKDIwMjIwMzAx KSwKKyAgIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCk7CisKKy0tIHNhbGVzX2Vy cm9yIGludGVyc2VjdHMgd2l0aCBzYWxlc19mZWIyMDIyICh1cHBlciBib3VuZCkKKy0tIEVS Uk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiBjb25mbGlj dHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2Vycm9y IgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVy cyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIw MjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBW QUxVRVMgRlJPTSAoMjAyMjAxMDEpIFRPICgyMDIyMDIwMiksCisgICBQQVJUSVRJT04gc2Fs ZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAor ICAgUEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxUKTsKKworLS0gc2FsZXNfZXJyb3Ig aW50ZXJzZWN0cyB3aXRoIHNhbGVzX2RlYzIwMjIgKGluc2lkZSBib3VuZCkKKy0tIEVSUk9S OiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3RzIHdp dGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIyIgor QUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJ TlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjEx MjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxV RVMgRlJPTSAoMjAyMTEyMTApIFRPICgyMDIxMTIyMCksCisgICBQQVJUSVRJT04gc2FsZXNf ZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAg UEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxUKTsKKworLS0gc2FsZXNfZXJyb3IgaW50 ZXJzZWN0cyB3aXRoIHNhbGVzX2RlYzIwMjIgKGV4YWN0IHRoZSBzYW1lIGJvdW5kcykKKy0t IEVSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxp Y3RzIHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMy MDIyIgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290 aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00g KDIwMjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZP UiBWQUxVRVMgRlJPTSAoMjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04g c2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEp LAorICAgUEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxUKTsKKworLS0gRVJST1I6ICBh bnkgcGFydGl0aW9uIGluIHRoZSBsaXN0IHNob3VsZCBiZSBERUZBVUxUIGJlY2F1c2Ugc3Bs aXQgcGFydGl0aW9uIGlzIERFRkFVTFQKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElU IFBBUlRJVElPTiBzYWxlc19vdGhlcnMgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2RlYzIw MjIgRk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8gKDIwMjIwMTAxKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19qYW4yMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAxMDEpIFRPICgyMDIy MDIwMSksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIw MjIwMjAxKSBUTyAoMjAyMjAzMDEpKTsKKworLS0gbm8gZXJyb3I6IGJvdW5kcyBvZiBzYWxl c19ub2Vycm9yIGJldHdlZW4gc2FsZXNfZGVjMjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxU RVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRP CisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAx KSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVF UyBGUk9NICgyMDIyMDExMCkgVE8gKDIwMjIwMTIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc19m ZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQ QVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworCitEUk9QIFRBQkxFIHNhbGVzX3Jh bmdlOworCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2Fs ZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBJ TlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCistLSBubyBl cnJvcjogYm91bmRzIG9mIHNhbGVzX25vZXJyb3IgZXF1YWxzIHRvIGxvd2VyIGFuZCB1cHBl ciBib3VuZHMgb2Ygc2FsZXNfZGVjMjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxURVIgVEFC TEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQ QVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAo MjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVFUyBGUk9N ICgyMDIxMDEwMSkgVE8gKDIwMjEwMjAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIy IEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJ T04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOwor CistLQorLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIHdpdGggQ0hFQ0sgYW5kIEZPUkVJR04g S0VZIENPTlNUUkFJTlRzIG9uIHBhcnRpdGlvbmVkIHRhYmxlCistLQorQ1JFQVRFIFRBQkxF IHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUg VkFSQ0hBUigzMCkpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwgICdQb2ly b3QnKTsKKworQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlICgKK3NhbGVzbWFuX2lkIElOVCBS RUZFUkVOQ0VTIHNhbGVzbWFucyhzYWxlc21hbl9pZCksCitzYWxlc19hbW91bnQgSU5UIENI RUNLIChzYWxlc19hbW91bnQgPiAxKSwKK3NhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZ IFJBTkdFIChzYWxlc19kYXRlKTsKKworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBU TyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEn KSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpLCBjb25uYW1lLCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNv bnJlbGlkID0gJ3NhbGVzX2ZlYl9tYXJfYXByMjAyMic6OnJlZ2NsYXNzOjpvaWQ7CisKK0FM VEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2Fw cjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0w MScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKKworLS0gV2Ugc2hvdWxkIHNlZSB0aGUg c2FtZSBDT05TVFJBSU5UcyBhcyBvbiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgcGFydGl0aW9u CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSwgY29ubmFtZSwgY29ua2V5IEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25yZWxpZCA9ICdzYWxlc19mZWIyMDIyJzo6cmVn Y2xhc3M6Om9pZDsKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb25uYW1l LCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3NhbGVzX21h cjIwMjInOjpyZWdjbGFzczo6b2lkOworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCksIGNvbm5hbWUsIGNvbmtleSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQg PSAnc2FsZXNfYXByMjAyMic6OnJlZ2NsYXNzOjpvaWQ7CisKKy0tIEVSUk9SOiAgbmV3IHJv dyBmb3IgcmVsYXRpb24gInNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFp bnQgInNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2NoZWNrIgorSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxLCAwLCAnMjAyMi0wMy0xMScpOworLS0gRVJST1I6ICBpbnNlcnQg b3IgdXBkYXRlIG9uIHRhYmxlICJzYWxlc19tYXIyMDIyIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJzYWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5IgorSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgtMSwgMTAsICcyMDIyLTAzLTExJyk7CistLSBvawor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAxMCwgJzIwMjItMDMtMTEnKTsK KworRFJPUCBUQUJMRSBzYWxlc19yYW5nZSBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21h bnMgQ0FTQ0FERTsKKworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvbiBwYXJ0aXRp b25lZCB0YWJsZSBpbiBjYXNlIGV4aXN0cyBGT1JFSUdOIEtFWSByZWZlcmVuY2UgZnJvbSBh bm90aGVyIHRhYmxlCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJ TlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzIChzYWxlc21hbl9p ZCBJTlQgUkVGRVJFTkNFUyBzYWxlc21hbnMoc2FsZXNtYW5faWQpLCBzYWxlc19hbW91bnQg SU5ULCBzYWxlc19kYXRlIERBVEUpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAg UEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitD UkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1Ig VkFMVUVTIEZST00gKDEwKSBUTyAoNDApOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFM VUVTICgxLCAgJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTAs ICdNYXknKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDE5LCAnSXZhbm92Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitJTlNF UlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKKworSU5TRVJUIElOVE8g c2FsZXMgVkFMVUVTICgxLCAgMTAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2Fs ZXMgVkFMVUVTICgxLCAgMTEwLCAnMjAyMi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXMg VkFMVUVTICgxMCwgMTUwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXMgVkFM VUVTICgxMCwgOTAsICAnMjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVT ICgxOSwgMjAwLCAnMjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgy MCwgNTAsICAnMjAyMi0wMy0xMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwg MTcwLCAnMjAyMi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgMzAs ICAnMjAyMi0wMy0wNCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczAxXzEwOworU0VM RUNUICogRlJPTSBzYWxlc21hbnMxMF80MDsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQ TElUIFBBUlRJVElPTiBzYWxlc21hbnMxMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNt YW5zMTBfMjAgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKSwKKyAgIFBBUlRJVElPTiBz YWxlc21hbnMyMF8zMCBGT1IgVkFMVUVTIEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElU SU9OIHNhbGVzbWFuczMwXzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOworCitT RUxFQ1QgKiBGUk9NIHNhbGVzbWFuczAxXzEwOworU0VMRUNUICogRlJPTSBzYWxlc21hbnMx MF8yMDsKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMjBfMzA7CitTRUxFQ1QgKiBGUk9NIHNh bGVzbWFuczMwXzQwOworCistLSBFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InNhbGVzIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJzYWxlc19zYWxlc21h bl9pZF9ma2V5IgorSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICg0MCwgNTAsICAnMjAyMi0w My0wNCcpOworLS0gb2sKK0lOU0VSVCBJTlRPIHNhbGVzIFZBTFVFUyAoMzAsIDUwLCAgJzIw MjItMDMtMDQnKTsKKworRFJPUCBUQUJMRSBzYWxlcyBDQVNDQURFOworRFJPUCBUQUJMRSBz YWxlc21hbnMgQ0FTQ0FERTsKKworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvZiBw YXJ0aXRpb25lZCB0YWJsZSB3aXRoIHRyaWdnZXJzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVz bWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hB UigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworCitDUkVBVEUgVEFC TEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZS T00gKDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFSVElUSU9O IE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoNDApOworCitJTlNFUlQg SU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAgJ1BvaXJvdCcpOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKSBSRVRVUk5TIHRyaWdn ZXIgTEFOR1VBR0UgJ3BscGdzcWwnIEFTICRCT0RZJAorQkVHSU4KKwlSQUlTRSBOT1RJQ0Ug J3RyaWdnZXIoJSkgY2FsbGVkOiBhY3Rpb24gPSAlLCB3aGVuID0gJSwgbGV2ZWwgPSAlJywg VEdfQVJHVlswXSwgVEdfT1AsIFRHX1dIRU4sIFRHX0xFVkVMOworICAgIFJFVFVSTiBOVUxM OworRU5EOworJEJPRFkkOworCitDUkVBVEUgVFJJR0dFUiBzYWxlc21hbnNfYWZ0ZXJfaW5z ZXJ0X3N0YXRlbWVudF90cmlnZ2VyCisgICAgQUZURVIgSU5TRVJUCisgICAgT04gc2FsZXNt YW5zCisgICAgRk9SIEVBQ0ggU1RBVEVNRU5UCisgICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0 ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKworQ1JFQVRFIFRSSUdHRVIg c2FsZXNtYW5zX2FmdGVyX2luc2VydF9yb3dfdHJpZ2dlcgorICAgIEFGVEVSIElOU0VSVAor ICAgIE9OIHNhbGVzbWFucworICAgIEZPUiBFQUNIIFJPVworICAgIEVYRUNVVEUgUFJPQ0VE VVJFIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7CisKKy0tIDIgdHJp Z2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKK0lOU0VSVCBJTlRP IHNhbGVzbWFucyBWQUxVRVMgKDEwLCAnTWF5Jyk7CistLSAxIHRyaWdnZXIgc2hvdWxkIGZp cmUgaGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoMTks ICdJdmFub3YnKTsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJVElPTiBz YWxlc21hbnMxMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtYW5zMTBfMjAgRk9SIFZB TFVFUyBGUk9NICgxMCkgVE8gKDIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBG T1IgVkFMVUVTIEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczMw XzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOworCistLSAyIHRyaWdnZXJzIHNo b3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6CitJTlNFUlQgSU5UTyBzYWxlc21h bnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CistLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUg aGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczMwXzQwIFZBTFVFUyAoMzAsICdG b3JkJyk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMDFfMTA7CitTRUxFQ1QgKiBGUk9N IHNhbGVzbWFuczEwXzIwOworU0VMRUNUICogRlJPTSBzYWxlc21hbnMyMF8zMDsKK1NFTEVD VCAqIEZST00gc2FsZXNtYW5zMzBfNDA7CisKK0RST1AgVEFCTEUgc2FsZXNtYW5zIENBU0NB REU7CitEUk9QIEZVTkNUSU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpOworCistLQor LS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIHdpdGNoIGlkZW50aXR5IGNvbHVtbgorLS0gSWYg c3BsaXQgcGFydGl0aW9uIGNvbHVtbiBpcyBpZGVudGl0eS1jb2x1bW4sIGNvbHVtbnMgb2Yg bmV3IHBhcnRpdGlvbnMgYXJlIGlkZW50aXR5LWNvbHVtbnMgdG9vLgorLS0KK0NSRUFURSBU QUJMRSBzYWxlc21hbnMoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURF TlRJVFkgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElP TiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMV8y IFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7Cist LSBDcmVhdGUgbmV3IHBhcnRpdGlvbiB3aXRoIGlkZW50aXR5LWNvbHVtbjoKK0NSRUFURSBU QUJMRSBzYWxlc21hbnMyXzUoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMg SURFTlRJVFkgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOworQUxU RVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtYW5zMl81IEZPUiBW QUxVRVMgRlJPTSAoMikgVE8gKDUpOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVz bWFuX25hbWUpIFZBTFVFUyAoJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIChz YWxlc21hbl9uYW1lKSBWQUxVRVMgKCdJdmFub3YnKTsKKworU0VMRUNUIGF0dG5hbWUsIGF0 dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVt ID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zJzo6cmVnY2xhc3M6Om9pZDsKK1NFTEVD VCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRl IFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczFfMic6OnJlZ2Ns YXNzOjpvaWQ7CistLSBTcGxpdCBwYXJ0aXRpb24gaGFzIGlkZW50aXR5LWNvbHVtbjoKK1NF TEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmli dXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczJfNSc6OnJl Z2NsYXNzOjpvaWQ7CisKK0FMVEVSIFRBQkxFIHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04g c2FsZXNtYW5zMl81IElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc21hbnMyXzMgRk9SIFZBTFVF UyBGUk9NICgyKSBUTyAoMyksCisgICBQQVJUSVRJT04gc2FsZXNtYW5zM180IEZPUiBWQUxV RVMgRlJPTSAoMykgVE8gKDQpLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczRfNSBGT1IgVkFM VUVTIEZST00gKDQpIFRPICg1KSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyAoc2FsZXNt YW5fbmFtZSkgVkFMVUVTICgnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVz bWFuX25hbWUpIFZBTFVFUyAoJ0ZvcmQnKTsKKworU0VMRUNUICogRlJPTSBzYWxlc21hbnMx XzI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczJfMzsKK1NFTEVDVCAqIEZST00gc2FsZXNt YW5zM180OworU0VMRUNUICogRlJPTSBzYWxlc21hbnM0XzU7CisKK1NFTEVDVCBhdHRuYW1l LCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0 dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFucyc6OnJlZ2NsYXNzOjpvaWQ7CitT RUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJp YnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMxXzInOjpy ZWdjbGFzczo6b2lkOworLS0gTmV3IHBhcnRpdGlvbnMgaGF2ZSBpZGVudGl0eS1jb2x1bW5z OgorU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19h dHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zMl8z Jzo6cmVnY2xhc3M6Om9pZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2Vu ZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlk ID0gJ3NhbGVzbWFuczNfNCc6OnJlZ2NsYXNzOjpvaWQ7CitTRUxFQ1QgYXR0bmFtZSwgYXR0 aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0g PiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnM0XzUnOjpyZWdjbGFzczo6b2lkOworCitE Uk9QIFRBQkxFIHNhbGVzbWFucyBDQVNDQURFOworCistLQorLS0gVGVzdDogc3BsaXQgcGFy dGl0aW9uIHdpdGggZGVsZXRlZCBjb2x1bW5zCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFu cyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUg c2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00g KDEpIFRPICgxMCk7CistLSBDcmVhdGUgbmV3IHBhcnRpdGlvbiB3aXRoIHNvbWUgZGVsZXRl ZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzQwKGQxIFZBUkNIQVIoMzAp LCBzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQyIElOVCwgZDMgREFURSwgc2FsZXNt YW5fbmFtZSBWQVJDSEFSKDMwKSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZB TFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgMTAwLCBub3coKSwgJ0l2YW5vdicpOworSU5T RVJUIElOVE8gc2FsZXNtYW5zMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUgMicsIDIwLCAx MDEsIG5vdygpLCAnU21pcm5vZmYnKTsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfNDAg RFJPUCBDT0xVTU4gZDE7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVN TiBkMjsKK0FMVEVSIFRBQkxFIHNhbGVzbWFuczEwXzQwIERST1AgQ09MVU1OIGQzOworCitB TFRFUiBUQUJMRSBzYWxlc21hbnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMxMF80MCBG T1IgVkFMVUVTIEZST00gKDEwKSBUTyAoNDApOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxLCAnUG9pcm90Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgx MCwgJ01heScpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7 CisKK0FMVEVSIFRBQkxFIHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMTBf NDAgSU5UTworICAoUEFSVElUSU9OIHNhbGVzbWFuczEwXzIwIEZPUiBWQUxVRVMgRlJPTSAo MTApIFRPICgyMCksCisgICBQQVJUSVRJT04gc2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBG Uk9NICgyMCkgVE8gKDMwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMzMF80MCBGT1IgVkFM VUVTIEZST00gKDMwKSBUTyAoNDApKTsKKworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMwMV8x MDsKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zMTBfMjA7CitzZWxlY3QgKiBmcm9tIHNhbGVz bWFuczIwXzMwOworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMzMF80MDsKKworRFJPUCBUQUJM RSBzYWxlc21hbnMgQ0FTQ0FERTsKKworLS0KKy0tIFRlc3Q6IHNwbGl0IHN1Yi1wYXJ0aXRp b24KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2Fs ZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBE QVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNh bGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAo JzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19m ZWIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAy MiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0w MScpIFRPICgnMjAyMi0wNC0wMScpOworCitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAo c2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91 bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0 ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByX2FsbCBQQVJUSVRJT04gT0Ygc2FsZXNfYXBy MjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7 CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzX2FwcjIw MjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOwor CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBE RUZBVUxUOworCitDUkVBVEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04g c2FsZXNfcmFuZ2UgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpOworCitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAw LCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywg ICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIw MjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2ly b3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDIt MjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAg IDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwg ICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAn R2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKKworU0VM RUNUICogRlJPTSBzYWxlc19yYW5nZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMjsK KworQUxURVIgVEFCTEUgc2FsZXNfYXByMjAyMiBTUExJVCBQQVJUSVRJT04gc2FsZXNfYXBy X2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8wMV8xMCBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA0LTEwJyksCisgICBQQVJUSVRJT04g c2FsZXNfYXByMjAyMl8xMF8yMCBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEwJykgVE8g KCcyMDIyLTA0LTIwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8yMF8zMCBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTA0LTIwJykgVE8gKCcyMDIyLTA1LTAxJykpOworCitTRUxF Q1QgKiBGUk9NIHNhbGVzX3JhbmdlOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOwor U0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzAxXzEwOworU0VMRUNUICogRlJPTSBzYWxl c19hcHIyMDIyXzEwXzIwOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzIwXzMwOwor CitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworCistLQorLS0gQlkgTElTVCBwYXJ0aXRpb25p bmcKKy0tCisKKy0tCistLSBUZXN0OiBzcGVjaWZpYyBlcnJvcnMgZm9yIEJZIExJU1QgcGFy dGl0aW9uaW5nCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJ TlQsCisgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19zdGF0ZSBWQVJDSEFS KDIwKSwKKyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFURSkKK1BBUlRJVElP TiBCWSBMSVNUIChzYWxlc19zdGF0ZSk7CisKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkIFBB UlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdNdXJtYW5zaycsICdTdC4g UGV0ZXJzYnVyZycsICdVa2h0YScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FsbCBQQVJUSVRJ T04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ1Zvcm9uZXpoJywg J1Ntb2xlbnNrJywgJ0JyeWFuc2snLCAnTWFnYWRhbicsICdLYXphbicsICdLaGFiYXJvdnNr JywgJ1ZvbGdvZ3JhZCcsICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290 aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBERUZBVUxUOworCistLSBFUlJPUjogIHBh cnRpdGlvbiAic2FsZXNfZWFzdCIgd291bGQgb3ZlcmxhcCBwYXJ0aXRpb24gInNhbGVzX25v cmQiCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwg SU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpo JywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZP UiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snLCAn TXVybWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4g KCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9sZ29ncmFkJykpOworCistLSBFUlJPUjogIG5ldyBw YXJ0aXRpb24gInNhbGVzX3dlc3QiIHdvdWxkIG92ZXJsYXAgd2l0aCBhbm90aGVyIG5ldyBw YXJ0aXRpb24gInNhbGVzX2NlbnRyYWwiCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElU IFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9S IFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBB UlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92 c2snLCAnVmxhZGl2b3N0b2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBW QUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9yb25lemgnLCAnVm9sZ29ncmFkJykp OworCistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb24gInNhbGVzX3dlc3QiIGNhbm5vdCBoYXZl IE5VTEwgdmFsdWUgYmVjYXVzZSBzcGxpdCBwYXJ0aXRpb24gZG9lcyBub3QgaGF2ZQorQUxU RVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJT04gc2FsZXNfYWxsIElOVE8KKyAg KFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9s ZW5zaycsICdCcnlhbnNrJywgTlVMTCksCisgICBQQVJUSVRJT04gc2FsZXNfZWFzdCBGT1Ig VkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJyksCisg ICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ0th emFuJywgJ1ZvbGdvZ3JhZCcpKTsKKworRFJPUCBUQUJMRSBzYWxlc19saXN0OworCistLQor LS0gVGVzdDogdHdvIHNwZWNpZmljIGVycm9ycyBmb3IgQlkgTElTVCBwYXJ0aXRpb25pbmc6 CistLSAgICogbmV3IHBhcnRpdGlvbnMgbm90IGhhcyBOVUxMIHZhbHVlIHRoYXQgc3BsaXQg cGFydGl0aW9uIGhhcy4KKy0tICAgKiBuZXcgcGFydGl0aW9ucyBub3QgaGFzIGEgdmFsdWUg dGhhdCBzcGxpdCBwYXJ0aXRpb24gaGFzLgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19saXN0 Cisoc2FsZXNtYW5faWQgSU5ULAorIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksCisgc2Fs ZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2FsZXNfYW1vdW50IElOVCwKKyBzYWxlc19kYXRl IERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAoc2FsZXNfc3RhdGUpOworCitDUkVBVEUgVEFC TEUgc2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgn TXVybWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBz YWxlc19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2Nv dycsICdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6 YW4nLCAnS2hhYmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snLCBOVUxMKTsK KworLS0gRVJST1I6ICBuZXcgcGFydGl0aW9ucyBub3QgaGF2ZSB2YWx1ZSBOVUxMIGJ1dCBz cGxpdCBwYXJ0aXRpb24gaGFzCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJ VElPTiBzYWxlc19hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVF UyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElP TiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAn VmxhZGl2b3N0b2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMg SU4gKCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9sZ29ncmFkJykpOworCistLSBFUlJPUjogIG5l dyBwYXJ0aXRpb25zIG5vdCBoYXZlIHZhbHVlICdWb2xnb2dyYWQnIGJ1dCBzcGxpdCBwYXJ0 aXRpb24gaGFzCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxl c19hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zv cm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19l YXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0 b2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Nj b3cnLCAnS2F6YW4nLCBOVUxMKSk7CisKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKworLS0K Ky0tIFRlc3Q6IEJZIExJU1QgcGFydGl0aW9uaW5nLCBTUExJVCBQQVJUSVRJT04gd2l0aCBk YXRhCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJTlQgR0VO RVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSwKKyBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp LAorIHNhbGVzX3N0YXRlIFZBUkNIQVIoMjApLAorIHNhbGVzX2Ftb3VudCBJTlQsCisgc2Fs ZXNfZGF0ZSBEQVRFKQorUEFSVElUSU9OIEJZIExJU1QgKHNhbGVzX3N0YXRlKTsKKworQ1JF QVRFIElOREVYIHNhbGVzX2xpc3Rfc2FsZXNtYW5fbmFtZV9pZHggT04gc2FsZXNfbGlzdCBV U0lORyBidHJlZSAoc2FsZXNtYW5fbmFtZSk7CitDUkVBVEUgSU5ERVggc2FsZXNfbGlzdF9z YWxlc19zdGF0ZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2FsZXNfc3RhdGUp OworCitDUkVBVEUgVEFCTEUgc2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBG T1IgVkFMVUVTIElOICgnTXVybWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsK K0NSRUFURSBUQUJMRSBzYWxlc19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZB TFVFUyBJTiAoJ01vc2NvdycsICdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywg J01hZ2FkYW4nLCAnS2F6YW4nLCAnS2hhYmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2 b3N0b2snKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVz X2xpc3QgREVGQVVMVDsKKworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFt ZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnVHJ1 bXAnLCAgICAnTWFnYWRhbicsICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJU IElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ft b3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnU21pcm5vZmYnLCAnU21vbGVuc2snLCAgICAg ICA1MDAsICAnMjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNt YW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVT ICgnRm9yZCcsICAgICAnU3QuIFBldGVyc2J1cmcnLCAyMDAwLCAnMjAyMi0wMy0wNScpOwor SU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNh bGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnSXZhbm92JywgICAnTW9zY293Jywg ICAgICAgICA3NTAsICAnMjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAo c2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkg VkFMVUVTICgnRGVldicsICAgICAnVm9yb25lemgnLCAgICAgICAyNTAsICAnMjAyMi0wMy0w NycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3Rh dGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnUG9pcm90JywgICAnS2F6 YW4nLCAgICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXNf bGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNf ZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAgICAgICAxMjAwLCAnMjAy Mi0wMy0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2Fs ZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTGknLCAgICAg ICAnVmxhZGl2b3N0b2snLCAgICAxMTUwLCAnMjAyMi0wMy0wOScpOworSU5TRVJUIElOVE8g c2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwg c2FsZXNfZGF0ZSkgVkFMVUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAgICAgICAxMjAw LCAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFt ZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnSGFs ZGVyJywgICAnTXVybWFuc2snLCAgICAgICA4MDAsICAnMjAyMi0wMy0wMicpOworSU5TRVJU IElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ft b3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTXVsbGVyJywgICAnQnJ5YW5zaycsICAgICAg ICA2NTAsICAnMjAyMi0wMy0wNScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNt YW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVT ICgnU21pdGgnLCAgICAnVm9sZ29ncmFkJywgICAgICAzNTAsICAnMjAyMi0wMy0xMCcpOwor SU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNh bGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnR2FuZGknLCAgICAnTW9zY293Jywg ICAgICAgICAxNTAsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAo c2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkg VkFMVUVTICgnUGxhdG8nLCAgICAnVm9yb25lemgnLCAgICAgICA5NTAsICAnMjAyMi0wMy0w NScpOworCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19h bGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9u ZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0 IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2sn KSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cn LCAnS2F6YW4nLCAnVm9sZ29ncmFkJykpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3Q7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX3dlc3Q7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Vhc3Q7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX25vcmQ7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2NlbnRy YWw7CisKKy0tIFVzZSBpbmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcyBhZnRlciBzcGxpdCBw YXJ0aXRpb24KK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNj YW4gPSBPRkY7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfY2VudHJhbCBXSEVSRSBzYWxlc19z dGF0ZSA9ICdNb3Njb3cnOworU0VMRUNUICogRlJPTSBzYWxlc19saXN0IFdIRVJFIHNhbGVz X3N0YXRlID0gJ01vc2Nvdyc7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3QgV0hFUkUgc2Fs ZXNtYW5fbmFtZSA9ICdJdmFub3YnOworCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOwor U0VUIGVuYWJsZV9zZXFzY2FuID0gT047CisKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKwor LS0KKy0tIFRlc3QgZm9yOgorLS0gICAqIHNwbGl0IERFRkFVTFQgcGFydGl0aW9uIHRvIHBh cnRpdGlvbnMgd2l0aCBzcGFjZXMgYmV0d2VlbiBib3VuZHM7CistLSAgICogcmFuZG9tIG9y ZGVyIG9mIHBhcnRpdGlvbnMgaW4gU1BMSVQgUEFSVElUSU9OIGNvbW1hbmQuCistLQorQ1JF QVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUg VkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElU SU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAn MjAyMi0wMi0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0Zv cmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0w NC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcs ICAgMTUwLCAgJzIwMjItMDItMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUw LCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAs ICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIw MjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5k aScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworCitBTFRFUiBU QUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIElOVE8KKyAg KFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCwKKyAgIFBBUlRJVElPTiBzYWxlc19t YXIyMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAy Mi0wMy0xMCcpLAorICAgUEFSVElUSU9OIHNhbGVzX2phbjIwMjJfMWRlY2FkZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAxLTEwJyksCisgICBQQVJUSVRJ T04gc2FsZXNfZmViMjAyMl8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEn KSBUTyAoJzIwMjItMDItMTAnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyXzFkZWNh ZGUgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNC0xMCcpKTsK KworU0VMRUNUICogRlJPTSBzYWxlc19qYW4yMDIyXzFkZWNhZGU7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX2ZlYjIwMjJfMWRlY2FkZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfbWFyMjAyMl8x ZGVjYWRlOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzFkZWNhZGU7CitTRUxFQ1Qg KiBGUk9NIHNhbGVzX290aGVyczsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKworLS0K Ky0tIFRlc3QgZm9yOgorLS0gICAqIHNwbGl0IG5vbi1ERUZBVUxUIHBhcnRpdGlvbiB0byBw YXJ0aXRpb25zIHdpdGggc3BhY2VzIGJldHdlZW4gYm91bmRzOworLS0gICAqIHJhbmRvbSBv cmRlciBvZiBwYXJ0aXRpb25zIGluIFNQTElUIFBBUlRJVElPTiBjb21tYW5kLgorLS0KK0NS RUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1l IFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJ VElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBB UlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykg VE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDIt MDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAg IDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwg ICcyMDIyLTAyLTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAn TGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIy LTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVy JywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5 Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAz NzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgx NCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKKworQUxURVIgVEFCTEUgc2Fs ZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04g c2FsZXNfbWFyMjAyMl8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBU TyAoJzIwMjItMDMtMTAnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19qYW4yMDIyXzFkZWNhZGUg Rk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMS0xMCcpLAorICAg UEFSVElUSU9OIHNhbGVzX2ZlYjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTAyLTAxJykgVE8gKCcyMDIyLTAyLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAy Ml8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDQt MTAnKSk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuMjAyMl8xZGVjYWRlOworU0VMRUNU ICogRlJPTSBzYWxlc19mZWIyMDIyXzFkZWNhZGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX21h cjIwMjJfMWRlY2FkZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8xZGVjYWRlOwor U0VMRUNUICogRlJPTSBzYWxlc19vdGhlcnM7CisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7 CisKKy0tCistLSBUZXN0IGZvciBzcGxpdCBub24tREVGQVVMVCBwYXJ0aXRpb24gdG8gREVG QVVMVCBwYXJ0aXRpb24gKyBwYXJ0aXRpb25zCistLSB3aXRoIHNwYWNlcyBiZXR3ZWVuIGJv dW5kcy4KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwg c2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0 ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxF IHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJP TSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxl c19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDItMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKKworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAy LTEwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAg ICAyMDAwLCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICg0LCAgJ0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAs ICAnMjAyMi0wMi0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAg J0xpJywgICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAy Mi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRl cicsICAgMzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0x OScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAg Mzc3LCAgJzIwMjItMDEtMDknKTsKKworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQg UEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyksCisgICBQ QVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykg VE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQp OworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1 MTAsICAnMjAyMi0wNS0wNCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX3JhbmdlOworU0VM RUNUICogRlJPTSBzYWxlc19qYW4yMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19mZWIyMDIy OworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19v dGhlcnM7CisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7CisKKy0tCitEUk9QIFNDSEVNQSBw YXJ0aXRpb25fc3BsaXRfc2NoZW1hOwotLSAKMi40MC4xLndpbmRvd3MuMQoK --------------Ab0P5aQdWo0YkyKG3aU00GwI Content-Type: text/plain; charset=UTF-8; name="v20-0003-Documentation-for-ALTER-TABLE-SPLIT-PARTITION-ME.patch" Content-Disposition: attachment; filename*0="v20-0003-Documentation-for-ALTER-TABLE-SPLIT-PARTITION-ME.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2ZjJmM2M0OTU0NTNhNGFmOGFhYWFlM2ExMTEwOGY3YzhjZWJkZmEzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IFR1ZSwgMjggTWFyIDIwMjMgMTA6NTA6MTkgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyMCAzLzNdIERvY3VtZW50YXRpb24gZm9yIEFMVEVSIFRBQkxFIFNQTElUIFBB UlRJVElPTi9NRVJHRQogUEFSVElUSU9OUyBjb21tYW5kcwoKLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3RhYmxlLnNnbWwgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCiAxIGZpbGUgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCmluZGV4IDJjNDEzOGU0ZTkuLjE3YmU4 OGE1M2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTM3LDYgKzM3LDEz IEBAIEFMVEVSIFRBQkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIEFUVEFDSCBQQVJUSVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4g eyBGT1IgVkFMVUVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25f Ym91bmRfc3BlYzwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9CiBBTFRFUiBUQUJMRSBbIElG IEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4KICAgICBERVRBQ0ggUEFSVElUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wYXJ0aXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgQ09OQ1VSUkVOVExZIHwgRklO QUxJWkUgXQorQUxURVIgVEFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CisgICAgU1BMSVQgUEFSVElUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTwvcmVwbGFjZWFi bGU+IElOVE8KKyAgICAgICAgKFBBUlRJVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGFydGl0aW9uX25hbWUxPC9yZXBsYWNlYWJsZT4geyBGT1IgVkFMVUVTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFj ZWFibGU+IHwgREVGQVVMVCB9LAorICAgICAgICAgUEFSVElUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTI8L3JlcGxhY2VhYmxlPiB7IEZPUiBW QUxVRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3VuZF9z cGVjPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIH0gWywgLi4uXSkKK0FMVEVSIFRBQkxFIFsg SUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPgorICAgIE1FUkdFIFBBUlRJVElPTlMgKDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXJ0aXRpb25fbmFtZTE8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lMjwvcmVwbGFjZWFibGU+IFssIC4uLl0p CisgICAgICAgIElOVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlv bl9uYW1lPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+YWN0aW9uPC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNl PgogCkBAIC0xMDkyLDE0ICsxMDk5LDk5IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVN CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1zcGxpdC1wYXJ0aXRpb24iPgorICAgIDx0ZXJtPjxs aXRlcmFsPlNQTElUIFBBUlRJVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGFydGl0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBJTlRPIChQQVJUSVRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lMTwvcmVwbGFjZWFibGU+IHsg Rk9SIFZBTFVFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2Jv dW5kX3NwZWM8L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfSwgUEFSVElUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTI8L3JlcGxhY2VhYmxlPiB7 IEZPUiBWQUxVRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9i b3VuZF9zcGVjPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIH0gWywgLi4uXSk8L2xpdGVyYWw+ PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBzcGxpdCBhIHNpbmdsZSBwYXJ0aXRpb24gb2YgdGhlIHRhcmdldCB0YWJsZS4gSGFzaC1w YXJ0aXRpb25pbmcKKyAgICAgIGlzIG5vdCBzdXBwb3J0ZWQuIEJvdW5kcyBvZiBuZXcgcGFy dGl0aW9ucyBzaG91bGQgbm90IG92ZXJsYXAgd2l0aCBuZXcgYW5kCisgICAgICBleGlzdGlu ZyBwYXJ0aXRpb25zIChleGNlcHQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBh cnRpdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4pLgorICAgICAgSWYgdGhlIHNwbGl0IHBhcnRp dGlvbiBpcyBERUZBVUxUIHBhcnRpdGlvbiwgb25lIG9mIG5ldyBwYXJ0aXRpb25zIG11c3Qg YmUgREVGQVVMVC4KKyAgICAgIEluIGNhc2Ugb25lIG9mIG5ldyBwYXJ0aXRpb25zIG9yIG9u ZSBvZiBleGlzdGluZyBwYXJ0aXRpb25zIGlzIERFRkFVTFQsCisgICAgICBuZXcgcGFydGl0 aW9ucyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX25hbWUxPC9y ZXBsYWNlYWJsZT4sCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFy dGl0aW9uX25hbWUyPC9yZXBsYWNlYWJsZT4sIC4uLiBjYW4gaGF2ZSBzcGFjZXMKKyAgICAg IGJldHdlZW4gcGFydGl0aW9ucyBib3VuZHMuICBJZiB0aGUgcGFydGl0aW9uZWQgdGFibGUg ZG9lcyBub3QgaGF2ZSBhIERFRkFVTFQKKyAgICAgIHBhcnRpdGlvbiwgdGhlIERFRkFVTFQg cGFydGl0aW9uIGNhbiBiZSBkZWZpbmVkIGFzIG9uZSBvZiB0aGUgbmV3IHBhcnRpdGlvbnMu CisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBJbiBjYXNlIG5ldyBwYXJ0aXRp b25zIGRvIG5vdCBjb250YWlucyBERUZBVUxUIHBhcnRpdGlvbiBhbmQgdGhlIHBhcnRpdGlv bmVkIHRhYmxlCisgICAgICBkb2VzIG5vdCBoYXZlIGEgREVGQVVMVCBwYXJ0aXRpb24sIHRo ZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiBzdW0gYm91bmRzIG9mCisgICAgICBuZXcgcGFy dGl0aW9ucyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX25hbWUx PC9yZXBsYWNlYWJsZT4sCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGFydGl0aW9uX25hbWUyPC9yZXBsYWNlYWJsZT4sIC4uLiBzaG91bGQgYmUKKyAgICAgIGVx dWFsIHRvIGJvdW5kIG9mIHNwbGl0IHBhcnRpdGlvbiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cGFydGl0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi4KKyAgICAgIE9uZSBvZiB0 aGUgbmV3IHBhcnRpdGlvbnMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRp dGlvbl9uYW1lMTwvcmVwbGFjZWFibGU+LAorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lMjwvcmVwbGFjZWFibGU+LCAuLi4gY2FuIGhhdmUK KyAgICAgIHRoZSBzYW1lIG5hbWUgYXMgc3BsaXQgcGFydGl0aW9uIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTwvcmVwbGFjZWFibGU+CisgICAgICAo dGhpcyBpcyBzdWl0YWJsZSBpbiBjYXNlIG9mIHNwbGl0dGluZyBhIERFRkFVTFQgcGFydGl0 aW9uOiB3ZSBzcGxpdCBpdCwgYnV0IGFmdGVyCisgICAgICBzcGxpdHRpbmcgd2UgaGF2ZSBh IHBhcnRpdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUpLgorICAgICAgT25seSBzaW1wbGUsIG5v bi1wYXJ0aXRpb25lZCBwYXJ0aXRpb24gY2FuIGJlIHNwbGl0LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtYWx0ZXJ0YWJsZS1tZXJnZS1wYXJ0aXRpb25zIj4KKyAgICA8dGVybT48bGl0 ZXJhbD5NRVJHRSBQQVJUSVRJT05TICg8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGFydGl0aW9uX25hbWUxPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXJ0aXRpb25fbmFtZTI8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKSBJTlRPIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTwvcmVwbGFjZWFi bGU+PC9saXRlcmFsPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGlzIGZvcm0gbWVyZ2Ugc2V2ZXJhbCBwYXJ0aXRpb25zIGludG8gb25lIHBhcnRp dGlvbiBvZiB0aGUgdGFyZ2V0IHRhYmxlLgorICAgICAgSGFzaC1wYXJ0aXRpb25pbmcgaXMg bm90IHN1cHBvcnRlZC4gIElmIERFRkFVTFQgcGFydGl0aW9uIGlzIG5vdCBpbiB0aGUKKyAg ICAgIGxpc3Qgb2YgcGFydGl0aW9ucyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGFydGl0aW9uX25hbWUxPC9yZXBsYWNlYWJsZT4sCisgICAgICA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cGFydGl0aW9uX25hbWUyPC9yZXBsYWNlYWJsZT4gWywgLi4uXToK KyAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgIEZvciByYW5nZS1wYXJ0aXRpb25lZCB0YWJsZXMgaXMgbmVjZXNzYXJ5 IHRoYXQgdGhlIHJhbmdlcworICAgICAgICAgb2YgdGhlIHBhcnRpdGlvbnMgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lMTwvcmVwbGFjZWFibGU+LAor ICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1l MjwvcmVwbGFjZWFibGU+IFssIC4uLl0gY2FuCisgICAgICAgICBiZSBtZXJnZWQgaW50byBv bmUgcmFuZ2Ugd2l0aG91dCBzcGFjZXMgYW5kIG92ZXJsYXBzIChvdGhlcndpc2UgYW4gZXJy b3IKKyAgICAgICAgIHdpbGwgYmUgZ2VuZXJhdGVkKS4gIFRoZSBjb21iaW5lZCByYW5nZSB3 aWxsIGJlIHRoZSByYW5nZSBmb3IgdGhlIHBhcnRpdGlvbgorICAgICAgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4uCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBGb3IgbGlzdC1wYXJ0aXRpb25lZCB0YWJsZXMg dGhlIHZhbHVlcyBsaXN0cyBvZiBhbGwgcGFydGl0aW9ucworICAgICAgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lMTwvcmVwbGFjZWFibGU+LAor ICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1l MjwvcmVwbGFjZWFibGU+IFssIC4uLl0gYXJlCisgICAgICAgICBjb21iaW5lZCBhbmQgZm9y bSBhIGxpc3Qgb2YgdmFsdWVzIG9mIHBhcnRpdGlvbgorICAgICAgICAgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4uCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC9pdGVtaXplZGxpc3Q+ CisgICAgICBJZiBERUZBVUxUIHBhcnRpdGlvbiBpcyBpbiB0aGUgbGlzdCBvZiBwYXJ0aXRp b25zIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTE8L3Jl cGxhY2VhYmxlPiwKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0 aXRpb25fbmFtZTI8L3JlcGxhY2VhYmxlPiBbLCAuLi5dOgorICAgICAgPGl0ZW1pemVkbGlz dD4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHBh cnRpdGlvbiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX25hbWU8 L3JlcGxhY2VhYmxlPgorICAgICAgICAgd2lsbCBiZSB0aGUgREVGQVVMVCBwYXJ0aXRpb24u CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBGb3IgcmFuZ2UtIGFuZCBsaXN0LXBhcnRp dGlvbmVkIHRhYmxlcyB0aGUgcmFuZ2VzIGFuZCBsaXN0cyBvZiB2YWx1ZXMKKyAgICAgICAg IG9mIHRoZSBtZXJnZWQgcGFydGl0aW9ucyBjYW4gYmUgYW55LgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgVGhl IG5ldyBwYXJ0aXRpb24gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlv bl9uYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgIGNhbiBoYXZlIHRoZSBzYW1lIG5hbWUgYXMg b25lIG9mIHRoZSBtZXJnZWQgcGFydGl0aW9ucy4gIE9ubHkgc2ltcGxlLAorICAgICAgbm9u LXBhcnRpdGlvbmVkIHBhcnRpdGlvbnMgY2FuIGJlIG1lcmdlZC4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlz dD4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAgQWxsIHRoZSBmb3JtcyBvZiBBTFRFUiBU QUJMRSB0aGF0IGFjdCBvbiBhIHNpbmdsZSB0YWJsZSwgZXhjZXB0CiAgICA8bGl0ZXJhbD5S RU5BTUU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPiwKLSAgIDxs aXRlcmFsPkFUVEFDSCBQQVJUSVRJT048L2xpdGVyYWw+LCBhbmQKLSAgIDxsaXRlcmFsPkRF VEFDSCBQQVJUSVRJT048L2xpdGVyYWw+IGNhbiBiZSBjb21iaW5lZCBpbnRvCisgICA8bGl0 ZXJhbD5BVFRBQ0ggUEFSVElUSU9OPC9saXRlcmFsPiwgPGxpdGVyYWw+REVUQUNIIFBBUlRJ VElPTjwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TUExJVCBQQVJUSVRJT048L2xpdGVyYWw+ LCBhbmQgPGxpdGVyYWw+TUVSR0UgUEFSVElUSU9OUzwvbGl0ZXJhbD4KKyAgIGNhbiBiZSBj b21iaW5lZCBpbnRvCiAgICBhIGxpc3Qgb2YgbXVsdGlwbGUgYWx0ZXJhdGlvbnMgdG8gYmUg YXBwbGllZCB0b2dldGhlci4gIEZvciBleGFtcGxlLCBpdAogICAgaXMgcG9zc2libGUgdG8g YWRkIHNldmVyYWwgY29sdW1ucyBhbmQvb3IgYWx0ZXIgdGhlIHR5cGUgb2Ygc2V2ZXJhbAog ICAgY29sdW1ucyBpbiBhIHNpbmdsZSBjb21tYW5kLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkg dXNlZnVsIHdpdGggbGFyZ2UKQEAgLTEzNDIsNyArMTQzNCw4IEBAIFdJVEggKCBNT0RVTFVT IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxh Y2VhYmxlPiwgUkVNCiAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cGFydGl0aW9uX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICAgIDxsaXN0aXRl bT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIGF0 dGFjaCBhcyBhIG5ldyBwYXJ0aXRpb24gb3IgdG8gZGV0YWNoIGZyb20gdGhpcyB0YWJsZS4K KyAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIGF0dGFjaCBhcyBhIG5ldyBwYXJ0 aXRpb24gb3IgdG8gZGV0YWNoIGZyb20gdGhpcyB0YWJsZSwKKyAgICAgICAgb3IgdGhlIG5h bWUgb2Ygc3BsaXQgcGFydGl0aW9uLCBvciB0aGUgbmFtZSBvZiB0aGUgbmV3IG1lcmdlZCBw YXJ0aXRpb24uCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92 YXJsaXN0ZW50cnk+CkBAIC0xNzU4LDYgKzE4NTEsMzEgQEAgQUxURVIgVEFCTEUgbWVhc3Vy ZW1lbnQKICAgICBERVRBQ0ggUEFSVElUSU9OIG1lYXN1cmVtZW50X3kyMDE1bTEyOwogPC9w cm9ncmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUbyBzcGxpdCBhIHNpbmds ZSBwYXJ0aXRpb24gb2YgdGhlIHJhbmdlLXBhcnRpdGlvbmVkIHRhYmxlOgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVz X2ZlYl9tYXJfYXByMjAyMyBJTlRPCisgICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjMgRk9S IFZBTFVFUyBGUk9NICgnMjAyMy0wMi0wMScpIFRPICgnMjAyMy0wMy0wMScpLAorICAgIFBB UlRJVElPTiBzYWxlc19tYXIyMDIzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjMtMDMtMDEnKSBU TyAoJzIwMjMtMDQtMDEnKSwKKyAgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMyBGT1IgVkFM VUVTIEZST00gKCcyMDIzLTA0LTAxJykgVE8gKCcyMDIzLTA1LTAxJykpOworPC9wcm9ncmFt bGlzdGluZz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBzcGxpdCBhIHNpbmdsZSBwYXJ0 aXRpb24gb2YgdGhlIGxpc3QtcGFydGl0aW9uZWQgdGFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwgSU5U TworICAgKFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcs ICdTbW9sZW5zaycsICdCcnlhbnNrJyksCisgICAgUEFSVElUSU9OIHNhbGVzX2Vhc3QgRk9S IFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpLAor ICAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAn S2F6YW4nLCAnVm9sZ29ncmFkJykpOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKKyAg PHBhcmE+CisgICBUbyBtZXJnZSBzZXZlcmFsIHBhcnRpdGlvbnMgaW50byBvbmUgcGFydGl0 aW9uIG9mIHRoZSB0YXJnZXQgdGFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBUQUJM RSBzYWxlc19saXN0IE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX3dlc3QsIHNhbGVzX2Vhc3Qs IHNhbGVzX2NlbnRyYWwpCisgICAgSU5UTyBzYWxlc19hbGw7Cis8L3Byb2dyYW1saXN0aW5n PjwvcGFyYT4KKwogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+Ci0tIAoyLjQwLjEud2lu ZG93cy4xCgo= --------------Ab0P5aQdWo0YkyKG3aU00GwI--