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.96) (envelope-from ) id 1vl715-007Edn-2G for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 14:59:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vl713-001m5M-1i for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 14:59:33 +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.96) (envelope-from ) id 1vl712-001m4k-2E for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 14:59:33 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vl70w-002kf9-2H for pgsql-hackers@postgresql.org; Wed, 28 Jan 2026 14:59:32 +0000 Received: from oss.nttdata.com (oss.nttdata.com [49.212.34.109]) by oss.nttdata.com (Postfix) with ESMTPSA id B3FA620202A0; Wed, 28 Jan 2026 23:59:20 +0900 (JST) MIME-Version: 1.0 Date: Wed, 28 Jan 2026 23:59:20 +0900 From: torikoshia To: Jelte Fennema-Nio Cc: pgsql-hackers@postgresql.org, andres@anarazel.de, tgl@sss.pgh.pa.us, rjuju123@gmail.com, Bruce Momjian Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information In-Reply-To: References: <3861403.1735576764@sss.pgh.pa.us> <1f22794321b745549d54359d343e37b8@oss.nttdata.com> <2c9d6eaf26df17bec13bb03bf1e9bcbb@oss.nttdata.com> <2035079.1739124342@sss.pgh.pa.us> <30ce8c5be7d1f67d53276540c29fa1c7@oss.nttdata.com> <7e182802a184ff5c9b54e575f1e3d8a2@oss.nttdata.com> <0310f2ff46d990485f96624ac1744c01@oss.nttdata.com> <192906398eaa10720193d6433d64f0f6@oss.nttdata.com> Message-ID: X-Sender: torikoshia@oss.nttdata.com Content-Type: multipart/mixed; boundary="=_0192035d486a49a609140789823a4b4a" X-Virus-Scanned: clamav-milter 1.4.3 at oss.nttdata.com X-Virus-Status: Clean List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_0192035d486a49a609140789823a4b4a Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On 2026-01-28 22:27, torikoshia wrote: > On 2026-01-25 23:35, Jelte Fennema-Nio wrote: > >> On Tue Oct 28, 2025 at 9:43 AM CET, torikoshia wrote: >>> Rebased the patch again. >> >> I took another look at this patch because I think it would be really >> useful to have. Below is my review: > > Thank you for the review! > >> 8. Now that worker is the default io_method the new explain fields are >> never >> present in the explain tests anymore. So explain_1.out is >> unnecessary and can be removed. That obviously also means that >> there's no coverage for this feature at all in the tests currently, >> which is clearly a problem. So I think it would be good to add some >> actual tests for the feature using some other io_method in a Perl >> TAP >> test. > > However, I noticed that there are test environments where io_method is > set to io_uring (for example, Linux Debian Trixie builds on Cirrus CI > using Meson), so it appears that explain_1.out is still needed. > Given this, adding the Perl TAP test might be somewhat redundant, but > for now I’m attaching a patch that includes both. > >> 9. The added docs about the kernel not being built with the correct >> options seems a bit too much detail. I'd say remove that sentence. >> And maybe shorten th > > Is this comment still a work in progress? > > I agree with the other comments. Attached an updated patch reflecting > them. Updated the patch to fix a regression test failure. > > > Regards, > > -- > Atsushi Torikoshi > Seconded from NTT DATA Japan Corporation to SRA OSS K.K --=_0192035d486a49a609140789823a4b4a Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v9-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Disposition: attachment; filename=v9-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch; size=76461 RnJvbSBmYzY2YTk3ZDQyMjA4NzU4MTA0ZTMyOTk1N2I5NjMzYzJmZTY1MDE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjggSmFuIDIwMjYgMjM6NDg6NTEgKzA5MDAKU3ViamVjdDog W1BBVENIIHY5XSBBZGQgc3RvcmFnZSBJL08gdHJhY2tpbmcgdG8gJ0JVRkZFUlMnIG9wdGlvbgoK VGhlICdCVUZGRVJTJyBvcHRpb24gY3VycmVudGx5IGluZGljYXRlcyB3aGV0aGVyIGEgYmxvY2sg aGl0IHRoZSBzaGFyZWQKYnVmZmVyLCBidXQgZG9lcyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBh IGNhY2hlIGhpdCBpbiB0aGUgT1MgY2FjaGUgb3IKYSBzdG9yYWdlIEkvTyBvcGVyYXRpb24uCldo aWxlIHNoYXJlZCBidWZmZXJzIGFuZCBPUyBjYWNoZSBvZmZlciBzaW1pbGFyIHBlcmZvcm1hbmNl LCBzdG9yYWdlCkkvTyBpcyBzaWduaWZpY2FudGx5IHNsb3dlciBpbiBjb21wYXJpc29uIGluIGdl bmVyYWwuICBCeSBtZWFzdXJpbmcKdGhlIG51bWJlcnMgb2Ygc3RvcmFnZSBJL08gcmVhZCBhbmQg d3JpdGUsIHdlIGNhbiBiZXR0ZXIgaWRlbnRpZnkgaWYKc3RvcmFnZSBJL08gaXMgYSBib3R0bGVu ZWNrIGluIHBlcmZvcm1hbmNlLgoKVGhpcyBwYXRjaCBlbmFibGVzIHRvIHRyYWNrIHN0b3JhZ2Ug SS9PIHVzYWdlIGJ5IGNhbGxpbmcgZ2V0cnVzYWdlKDIpCmF0IGJvdGggdGhlIHBsYW5uaW5nIGFu ZCBleGVjdXRpb24gcGhhc2Ugc3RhcnQgYW5kIGVuZCBwb2ludHMuCgpBIG1vcmUgZ3JhbnVsYXIg YXBwcm9hY2ggYXMgd2VsbCBhcyBjdXJyZW50IEJVRkZFUlMgb3B0aW9uKHRyYWNraW5nIGF0CmVh Y2ggcGxhbiBub2RlKSB3YXMgY29uc2lkZXJlZCBidXQgZm91bmQgdG8gYmUgaW1wcmFjdGljYWwg ZHVlIHRvIHRoZQpoaWdoIHBlcmZvcm1hbmNlIGNvc3Qgb2YgZnJlcXVlbnQgZ2V0cnVzYWdlKCkg Y2FsbHMuCgpOb3RlIHRoYXQgbm8gb3V0cHV0IGlzIHNob3duIHdoZW4gaW9fbWV0aG9kPXdvcmtl ciwgc2luY2UgYXN5bmNocm9ub3VzCndvcmtlcnMgaGFuZGxlIEkvTyBmb3IgbXVsdGlwbGUgcHJv Y2Vzc2VzLCBhbmQgaXNvbGF0aW5nIHRoZSBFWFBMQUlOCnRhcmdldCdzIEkvTyBpcyBkaWZmaWN1 bHQuCgpUT0RPOgpJIGJlbGlldmUgdGhpcyBpbmZvcm1hdGlvbiBpcyBtYWlubHkgdXNlZnVsIHdo ZW4gdXNlZCBpbiBhdXRvX2V4cGxhaW4uCkknbSBnb2luZyB0byBpbXBsZW1lbnQgaXQgaWYgdGhp cyBwYXRjaCBpcyBtZXJnZWQuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgICAg ICAgICAgICAgICAgIHwgIDI1ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyAgICAg ICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAg ICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAg ICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAg ICAgICAgICB8IDEyNSArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgICAg ICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAg ICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyAgICAg ICAgICAgfCAgMzUgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAg ICAgICB8ICA4NCArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5oICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAgICAgICAg fCAgMjAgKy0KIHNyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmggICAgICAgICB8 ICAgMiArCiBzcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jICAgICAgICAgICAgICAgICAgICAgfCAg IDQgKwogLi4uL3Rlc3RfbWlzYy90LzAxMV9leHBsYWluX3N0b3JhZ2VfaW8ucGwgICAgIHwgIDg5 ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW5fMS5vdXQgICAgICAgfCA4NTkg KysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg ICAgICAgICAgfCAgIDEgKwogMTcgZmlsZXMgY2hhbmdlZCwgMTI1NiBpbnNlcnRpb25zKCspLCAz NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf bWlzYy90LzAxMV9leHBsYWluX3N0b3JhZ2VfaW8ucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW5fMS5vdXQKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCmlu ZGV4IDdkZWU3N2ZkMzY2Li5kNTBjMTg4NTVjMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwKQEAgLTIw NCw2ICsyMDQsMzEgQEAgUk9MTEJBQ0s7CiAgICAgICBmb3JtYXQsIG9ubHkgbm9uLXplcm8gdmFs dWVzIGFyZSBwcmludGVkLiAgQnVmZmVycyBpbmZvcm1hdGlvbiBpcwogICAgICAgYXV0b21hdGlj YWxseSBpbmNsdWRlZCB3aGVuIDxsaXRlcmFsPkFOQUxZWkU8L2xpdGVyYWw+IGlzIHVzZWQuCiAg ICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBJZiBwb3NzaWJsZSwgdGhpcyBvcHRpb24g YWxzbyBkaXNwbGF5cyA8ZW1waGFzaXM+U3RvcmFnZSBJL088L2VtcGhhc2lzPgorICAgICAgc3Rh dGlzdGljcyBhdCB0aGUgZW5kIG9mIHRoZSBwbGFuLiBUaGUgc3RvcmFnZSBJL08KKyAgICAgIDxl bXBoYXNpcz5yZWFkPC9lbXBoYXNpcz4gdmFsdWUgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YgcmVh ZCBvcGVyYXRpb25zCisgICAgICBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJpbmcgcXVlcnkgcGxh bm5pbmcgYW5kIGV4ZWN1dGlvbiwgd2hpbGUgdGhlCisgICAgICBTdG9yYWdlIEkvTyA8ZW1waGFz aXM+d3JpdGU8L2VtcGhhc2lzPiB2YWx1ZSBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZgorICAgICAg d3JpdGUgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJpbmcgdGhlc2UgcGhhc2Vz LgorICAgICAgVGhlc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSA8ZnVuY3Rpb24+Z2V0 cnVzYWdlKCk8L2Z1bmN0aW9uPiBzeXN0ZW0KKyAgICAgIGNhbGwuIE5vdGUgdGhhdCBvbiBwbGF0 Zm9ybXMgdGhhdCBkbyBub3Qgc3VwcG9ydAorICAgICAgPGZ1bmN0aW9uPmdldHJ1c2FnZSgpPC9m dW5jdGlvbj4sIHN1Y2ggYXMgV2luZG93cywgbm8gb3V0cHV0IHdpbGwgYmUgc2hvd24sCisgICAg ICBldmVuIGlmIHJlYWRzIG9yIHdyaXRlcyBhY3R1YWxseSBvY2N1ci4gQWxzbywgd2hlbgorICAg ICAgPHhyZWYgbGlua2VuZD0iZ3VjLWlvLW1ldGhvZCIvPiBpcyBzZXQgdG8gPGxpdGVyYWw+d29y a2VyPC9saXRlcmFsPiwgbm8gb3V0cHV0CisgICAgICB3aWxsIGJlIHNob3duLCBhcyBJL08gaGFu ZGxlZCBieSBhc3luY2hyb25vdXMgd29ya2VycyBjYW5ub3QgYmUgbWVhc3VyZWQKKyAgICAgIGFj Y3VyYXRlbHkuCisgICAgICBUaGUgdGltaW5nIGFuZCB1bml0IG9mIG1lYXN1cmVtZW50IGZvciBy ZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIG1heSB2YXJ5CisgICAgICBkZXBlbmRpbmcgb24gdGhl IHBsYXRmb3JtLiBGb3IgZXhhbXBsZSwgb24gTGludXgsIGEgcmVhZCBpcyBjb3VudGVkIG9ubHkK KyAgICAgIGlmIHRoaXMgcHJvY2VzcyBjYXVzZWQgZGF0YSB0byBiZSBmZXRjaGVkIGZyb20gdGhl IHN0b3JhZ2UgbGF5ZXIsIGFuZCBhCisgICAgICB3cml0ZSBpcyBjb3VudGVkIGF0IHRoZSBwYWdl LWRpcnR5aW5nIHRpbWUuIE9uIExpbnV4LCB0aGUgdW5pdCBvZgorICAgICAgbWVhc3VyZW1lbnQg Zm9yIHJlYWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMgaXMgNTEyIGJ5dGVzLgorICAgICA8L3BhcmE+ CisgICAgIDxwYXJhPgorICAgICAgQnVmZmVycyBpbmZvcm1hdGlvbiBpcyBpbmNsdWRlZCBieSBk ZWZhdWx0IHdoZW4gPGxpdGVyYWw+QU5BTFlaRTwvbGl0ZXJhbD4KKyAgICAgIGlzIHVzZWQgYnV0 IG90aGVyd2lzZSBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBlbmFibGVk IHVzaW5nCisgICAgICB0aGlzIG9wdGlvbi4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IDY4ODdlNDIx NDQyLi45YjM0OTE0MTQwZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjU3Miw3ICsyNTcy LDcgQEAgX2JyaW5fZW5kX3BhcmFsbGVsKEJyaW5MZWFkZXIgKmJyaW5sZWFkZXIsIEJyaW5CdWls ZFN0YXRlICpzdGF0ZSkKIAkgKiBvciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkg Ki8KIAlmb3IgKGkgPSAwOyBpIDwgYnJpbmxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7 IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJyaW5sZWFkZXItPmJ1ZmZlcnVzYWdl W2ldLCAmYnJpbmxlYWRlci0+d2FsdXNhZ2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVy eSgmYnJpbmxlYWRlci0+YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZicmlubGVhZGVyLT53YWx1c2Fn ZVtpXSk7CiAKIAkvKiBGcmVlIGxhc3QgcmVmZXJlbmNlIHRvIE1WQ0Mgc25hcHNob3QsIGlmIG9u ZSB3YXMgdXNlZCAqLwogCWlmIChJc01WQ0NTbmFwc2hvdChicmlubGVhZGVyLT5zbmFwc2hvdCkp CkBAIC0yOTM0LDcgKzI5MzQsNyBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdt ZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFyZWRz b3J0LCBzZWcpOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBh cmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJT dGFydFBhcmFsbGVsUXVlcnkoTlVMTCk7CiAKIAkvKgogCSAqIE1pZ2h0IGFzIHdlbGwgdXNlIHJl bGlhYmxlIGZpZ3VyZSB3aGVuIGRvbGluZyBvdXQgbWFpbnRlbmFuY2Vfd29ya19tZW0KQEAgLTI5 NDksOCArMjk0OSw4IEBAIF9icmluX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwvYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJh bGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFS QUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbHVzYWdlID0gc2htX3RvY19sb29r dXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxl bFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCi0JCQkJCQkgICZ3YWx1 c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOworCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVm ZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLCBOVUxMLAorCQkJCQkJICAmd2FsdXNhZ2Vb UGFyYWxsZWxXb3JrZXJOdW1iZXJdLCBOVUxMKTsKIAogCWluZGV4X2Nsb3NlKGluZGV4UmVsLCBp bmRleExvY2ttb2RlKTsKIAl0YWJsZV9jbG9zZShoZWFwUmVsLCBoZWFwTG9ja21vZGUpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggMGQ2M2ZiNGJhMjcuLjVmMzQ1MjRiZTNiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTExMTYsNyArMTExNiw3IEBAIF9naW5f ZW5kX3BhcmFsbGVsKEdpbkxlYWRlciAqZ2lubGVhZGVyLCBHaW5CdWlsZFN0YXRlICpzdGF0ZSkK IAkgKiBvciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAw OyBpIDwgZ2lubGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQotCQlJbnN0ckFj Y3VtUGFyYWxsZWxRdWVyeSgmZ2lubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgJmdpbmxlYWRlci0+ d2FsdXNhZ2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmZ2lubGVhZGVyLT5idWZm ZXJ1c2FnZVtpXSwgTlVMTCwgJmdpbmxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBs YXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KIAlpZiAo SXNNVkNDU25hcHNob3QoZ2lubGVhZGVyLT5zbmFwc2hvdCkpCkBAIC0yMTc2LDcgKzIxNzYsNyBA QCBfZ2luX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9j KQogCXR1cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7CiAKIAkvKiBQcmVw YXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0J SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxM KTsKIAogCS8qCiAJICogTWlnaHQgYXMgd2VsbCB1c2UgcmVsaWFibGUgZmlndXJlIHdoZW4gZG9s aW5nIG91dCBtYWludGVuYW5jZV93b3JrX21lbQpAQCAtMjE5MSw4ICsyMTkxLDggQEAgX2dpbl9w YXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBS ZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVm ZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0Us IGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dB TF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFy YWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1i ZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2Vy TnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwg TlVMTCk7CiAKIAlpbmRleF9jbG9zZShpbmRleFJlbCwgaW5kZXhMb2NrbW9kZSk7CiAJdGFibGVf Y2xvc2UoaGVhcFJlbCwgaGVhcExvY2ttb2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKaW5kZXggOTBhYjRlOTFiNTYuLmY0NjA5MDE3ZDgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHNvcnQuYwpAQCAtMTYxNyw3ICsxNjE3LDcgQEAgX2J0X2VuZF9wYXJhbGxlbChCVExlYWRl ciAqYnRsZWFkZXIpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICov CiAJZm9yIChpID0gMDsgaSA8IGJ0bGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsr KQotCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmYnRsZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCAm YnRsZWFkZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVh ZGVyLT5idWZmZXJ1c2FnZVtpXSwgTlVMTCwgJmJ0bGVhZGVyLT53YWx1c2FnZVtpXSk7CiAKIAkv KiBGcmVlIGxhc3QgcmVmZXJlbmNlIHRvIE1WQ0Mgc25hcHNob3QsIGlmIG9uZSB3YXMgdXNlZCAq LwogCWlmIChJc01WQ0NTbmFwc2hvdChidGxlYWRlci0+c25hcHNob3QpKQpAQCAtMTgyNSw3ICsx ODI1LDcgQEAgX2J0X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3Rv YyAqdG9jKQogCX0KIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmluZyBw YXJhbGxlbCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCUluc3Ry U3RhcnRQYXJhbGxlbFF1ZXJ5KE5VTEwpOwogCiAJLyogUGVyZm9ybSBzb3J0aW5nIG9mIHNwb29s LCBhbmQgcG9zc2libHkgYSBzcG9vbDIgKi8KIAlzb3J0bWVtID0gbWFpbnRlbmFuY2Vfd29ya19t ZW0gLyBidHNoYXJlZC0+c2NhbnR1cGxlc29ydHN0YXRlczsKQEAgLTE4MzUsOCArMTgzNSw4IEBA IF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykK IAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICov CiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJf VVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxf S0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3Jr ZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVt YmVyXSwgTlVMTCk7CiAKICNpZmRlZiBCVFJFRV9CVUlMRF9TVEFUUwogCWlmIChsb2dfYnRyZWVf YnVpbGRfc3RhdHMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggYjdiYjExMTY4OGMuLjhmNjY4 ZWU0NmM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk ZSAicGFyc2VyL2FuYWx5emUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCiAjaW5j bHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvYWlvX3N1 YnN5cy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAidGNvcC90Y29w cHJvdC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0xNDQsNiArMTQ1LDggQEAg c3RhdGljIHZvaWQgc2hvd19mb3JlaWduc2Nhbl9pbmZvKEZvcmVpZ25TY2FuU3RhdGUgKmZzc3Rh dGUsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIGNvbnN0IGNoYXIgKmV4cGxhaW5fZ2V0X2lu ZGV4X25hbWUoT2lkIGluZGV4SWQpOwogc3RhdGljIGJvb2wgcGVla19idWZmZXJfdXNhZ2UoRXhw bGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlKTsKIHN0YXRpYyB2b2lkIHNo b3dfYnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2Fn ZSk7CitzdGF0aWMgYm9vbCBwZWVrX3N0b3JhZ2Vpb191c2FnZShFeHBsYWluU3RhdGUgKmVzLCBj b25zdCBTdG9yYWdlSU9Vc2FnZSAqdXNhZ2UpOworc3RhdGljIHZvaWQgc2hvd19zdG9yYWdlaW9f dXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKTsKIHN0 YXRpYyB2b2lkIHNob3dfd2FsX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFdhbFVzYWdl ICp1c2FnZSk7CiBzdGF0aWMgdm9pZCBzaG93X21lbW9yeV9jb3VudGVycyhFeHBsYWluU3RhdGUg KmVzLAogCQkJCQkJCQkgY29uc3QgTWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMp OwpAQCAtMzI2LDYgKzMyOSw4IEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVl cnksIGludCBjdXJzb3JPcHRpb25zLAogCQkJCXBsYW5kdXJhdGlvbjsKIAlCdWZmZXJVc2FnZSBi dWZ1c2FnZV9zdGFydCwKIAkJCQlidWZ1c2FnZTsKKwlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW8s CisJCQkJc3RvcmFnZWlvX3N0YXJ0OwogCU1lbW9yeUNvbnRleHRDb3VudGVycyBtZW1fY291bnRl cnM7CiAJTWVtb3J5Q29udGV4dCBwbGFubmVyX2N0eCA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dCBz YXZlZF9jdHggPSBOVUxMOwpAQCAtMzQ3LDcgKzM1MiwxMCBAQCBzdGFuZGFyZF9FeHBsYWluT25l UXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAl9CiAKIAlpZiAoZXMtPmJ1 ZmZlcnMpCisJewogCQlidWZ1c2FnZV9zdGFydCA9IHBnQnVmZmVyVXNhZ2U7CisJCUdldFN0b3Jh Z2VJT1VzYWdlKCZzdG9yYWdlaW9fc3RhcnQpOworCX0KIAlJTlNUUl9USU1FX1NFVF9DVVJSRU5U KHBsYW5zdGFydCk7CiAKIAkvKiBwbGFuIHRoZSBxdWVyeSAqLwpAQCAtMzYyLDE2ICszNzAsMjAg QEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlv bnMsCiAJCU1lbW9yeUNvbnRleHRNZW1Db25zdW1lZChwbGFubmVyX2N0eCwgJm1lbV9jb3VudGVy cyk7CiAJfQogCi0JLyogY2FsYyBkaWZmZXJlbmNlcyBvZiBidWZmZXIgY291bnRlcnMuICovCisJ LyogY2FsYyBkaWZmZXJlbmNlcyBvZiBidWZmZXIgYW5kIHN0b3JhZ2UgSS9PIGNvdW50ZXJzLiAq LwogCWlmIChlcy0+YnVmZmVycykKIAl7CiAJCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihC dWZmZXJVc2FnZSkpOwogCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZl clVzYWdlLCAmYnVmdXNhZ2Vfc3RhcnQpOworCisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdl aW8pOworCQlTdG9yYWdlSU9Vc2FnZURpZmYoJnN0b3JhZ2VpbywgJnN0b3JhZ2Vpb19zdGFydCk7 CiAJfQogCiAJLyogcnVuIGl0IChpZiBuZWVkZWQpIGFuZCBwcm9kdWNlIG91dHB1dCAqLwogCUV4 cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLCBxdWVyeUVu diwKIAkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxM KSwKKwkJCQkgICBlcy0+YnVmZmVycyA/ICZzdG9yYWdlaW8gOiBOVUxMLAogCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTQ5NSw3ICs1MDcsNyBAQCB2 b2lkCiBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2Ug KmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCQkgICBjb25zdCBjaGFyICpxdWVyeVN0cmluZywg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwg Y29uc3QgaW5zdHJfdGltZSAqcGxhbmR1cmF0aW9uLAotCQkJICAgY29uc3QgQnVmZmVyVXNhZ2Ug KmJ1ZnVzYWdlLAorCQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBjb25zdCBTdG9y YWdlSU9Vc2FnZSAqcGxhbnN0b3JhZ2VpbywKIAkJCSAgIGNvbnN0IE1lbW9yeUNvbnRleHRDb3Vu dGVycyAqbWVtX2NvdW50ZXJzKQogewogCURlc3RSZWNlaXZlciAqZGVzdDsKQEAgLTUwNSw2ICs1 MTcsNyBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1 c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJaW50CQkJZWZsYWdzOwogCWludAkJCWluc3Ry dW1lbnRfb3B0aW9uID0gMDsKIAlTZXJpYWxpemVNZXRyaWNzIHNlcmlhbGl6ZU1ldHJpY3MgPSB7 MH07CisJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvX3N0YXJ0OwogCiAJQXNzZXJ0KHBsYW5uZWRz dG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSk7CiAKQEAgLTUxNCw3ICs1MjcsMTkgQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCQlpbnN0cnVtZW50X29wdGlvbiB8PSBJTlNUUlVNRU5UX1JP V1M7CiAKIAlpZiAoZXMtPmJ1ZmZlcnMpCisJeworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFn ZWlvX3N0YXJ0KTsKKworCQkvKgorCQkgKiBJbml0aWFsaXplIGdsb2JhbCB2YXJpYWJsZSBjb3Vu dGVycyBmb3IgcGFyYWxsZWwgcXVlcnkgd29ya2Vycy4KKwkJICogRXZlbiBpZiB0aGUgcXVlcnkg aXMgY2FuY2VsbGVkIG9uIHRoZSB3YXksIHRoZSBFWFBMQUlOIGV4ZWN1dGlvbgorCQkgKiBhbHdh eXMgcGFzc2VzIGhlcmUsIHNvIGl0IGNhbiBiZSBpbml0aWFsaXplZCBoZXJlLgorCQkgKi8KKwkJ cGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsLmluYmxvY2sgPSAwOworCQlwZ1N0b3JhZ2VJT1VzYWdl UGFyYWxsZWwub3V0YmxvY2sgPSAwOworCiAJCWluc3RydW1lbnRfb3B0aW9uIHw9IElOU1RSVU1F TlRfQlVGRkVSUzsKKwl9CiAJaWYgKGVzLT53YWwpCiAJCWluc3RydW1lbnRfb3B0aW9uIHw9IElO U1RSVU1FTlRfV0FMOwogCkBAIC01OTgsOCArNjIzLDkgQEAgRXhwbGFpbk9uZVBsYW4oUGxhbm5l ZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAog CS8qIENyZWF0ZSB0ZXh0dWFsIGR1bXAgb2YgcGxhbiB0cmVlICovCiAJRXhwbGFpblByaW50UGxh bihlcywgcXVlcnlEZXNjKTsKIAotCS8qIFNob3cgYnVmZmVyIGFuZC9vciBtZW1vcnkgdXNhZ2Ug aW4gcGxhbm5pbmcgKi8KLQlpZiAocGVla19idWZmZXJfdXNhZ2UoZXMsIGJ1ZnVzYWdlKSB8fCBt ZW1fY291bnRlcnMpCisJLyogU2hvdyBidWZmZXIsIHN0b3JhZ2UgSS9PLCBhbmQvb3IgbWVtb3J5 IHVzYWdlIGluIHBsYW5uaW5nICovCisJaWYgKHBlZWtfYnVmZmVyX3VzYWdlKGVzLCBidWZ1c2Fn ZSkgfHwgcGVla19zdG9yYWdlaW9fdXNhZ2UoZXMsIHBsYW5zdG9yYWdlaW8pIHx8CisJCW1lbV9j b3VudGVycykKIAl7CiAJCUV4cGxhaW5PcGVuR3JvdXAoIlBsYW5uaW5nIiwgIlBsYW5uaW5nIiwg dHJ1ZSwgZXMpOwogCkBAIC02MTEsOCArNjM3LDEwIEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRT dG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJ fQogCiAJCWlmIChidWZ1c2FnZSkKKwkJewogCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsIGJ1ZnVz YWdlKTsKLQorCQkJc2hvd19zdG9yYWdlaW9fdXNhZ2UoZXMsIHBsYW5zdG9yYWdlaW8pOworCQl9 CiAJCWlmIChtZW1fY291bnRlcnMpCiAJCQlzaG93X21lbW9yeV9jb3VudGVycyhlcywgbWVtX2Nv dW50ZXJzKTsKIApAQCAtNjY5LDYgKzY5NywzNCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3Rt dCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAKIAl0 b3RhbHRpbWUgKz0gZWxhcHNlZF90aW1lKCZzdGFydHRpbWUpOwogCisJLyogU2hvdyBzdG9yYWdl IEkvTyB1c2FnZSBpbiBleGVjdXRpb24gKi8KKwlpZiAoZXMtPmJ1ZmZlcnMpCisJeworCQlTdG9y YWdlSU9Vc2FnZSBzdG9yYWdlaW87CisKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpbyk7 CisJCVN0b3JhZ2VJT1VzYWdlRGlmZigmc3RvcmFnZWlvLCAmc3RvcmFnZWlvX3N0YXJ0KTsKKwkJ U3RvcmFnZUlPVXNhZ2VBZGQoJnN0b3JhZ2VpbywgJnBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbCk7 CisKKwkJaWYgKHBlZWtfc3RvcmFnZWlvX3VzYWdlKGVzLCAmc3RvcmFnZWlvKSkKKwkJeworCQkJ RXhwbGFpbk9wZW5Hcm91cCgiRXhlY3V0aW9uIiwgIkV4ZWN1dGlvbiIsIHRydWUsIGVzKTsKKwor CQkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCXsKKwkJCQlFeHBs YWluSW5kZW50VGV4dChlcyk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAi RXhlY3V0aW9uOlxuIik7CisJCQkJZXMtPmluZGVudCsrOworCQkJfQorCQkJc2hvd19zdG9yYWdl aW9fdXNhZ2UoZXMsICZzdG9yYWdlaW8pOworCisJCQlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlO X0ZPUk1BVF9URVhUKQorCQkJCWVzLT5pbmRlbnQtLTsKKworCQkJRXhwbGFpbkNsb3NlR3JvdXAo IkV4ZWN1dGlvbiIsICJFeGVjdXRpb24iLCB0cnVlLCBlcyk7CisJCX0KKwl9CisKIAkvKgogCSAq IFdlIG9ubHkgcmVwb3J0IGV4ZWN1dGlvbiB0aW1lIGlmIHdlIGFjdHVhbGx5IHJhbiB0aGUgcXVl cnkgKHRoYXQgaXMsCiAJICogdGhlIHVzZXIgc3BlY2lmaWVkIEFOQUxZWkUpLCBhbmQgaWYgc3Vt bWFyeSByZXBvcnRpbmcgaXMgZW5hYmxlZCAodGhlCkBAIC00Mjc1LDYgKzQzMzEsNjUgQEAgc2hv d19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdl KQogCX0KIH0KIAorLyoKKyAqIFJldHVybiB3aGV0aGVyIHNob3dfc3RvcmFnZWlvX3VzYWdlIHdv dWxkIGhhdmUgYW55dGhpbmcgdG8gcHJpbnQsIGlmIGdpdmVuCisgKiB0aGUgc2FtZSAndXNhZ2Un IGRhdGEuICBOb3RlIHRoYXQgd2hlbiB0aGUgZm9ybWF0IGlzIGFueXRoaW5nIG90aGVyIHRoYW4K KyAqIHRleHQsIHdlIHByaW50IGV2ZW4gaWYgdGhlIGNvdW50ZXJzIGFyZSBhbGwgemVyb2VzLgor ICovCitzdGF0aWMgYm9vbAorcGVla19zdG9yYWdlaW9fdXNhZ2UoRXhwbGFpblN0YXRlICplcywg Y29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKQoreworCWlmICh1c2FnZSA9PSBOVUxMKQorCQly ZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIFNpbmNlIHNob3dpbmcgb25seSB0aGUgSS9PIGV4Y2x1 ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRlcyB0aGUKKwkgKiB0b3RhbCBJL08sIHRyZWF0 IHRoaXMgY2FzZSBhcyBoYXZpbmcgbm90aGluZyB0byBwcmludC4KKwkgKi8KKwlpZiAocGdhaW9f d29ya2Vyc19lbmFibGVkKCkpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChlcy0+Zm9ybWF0ICE9 IEVYUExBSU5fRk9STUFUX1RFWFQpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIHVzYWdlLT5p bmJsb2NrID4gMCB8fCB1c2FnZS0+b3V0YmxvY2sgPiAwOworfQorCisvKgorICogU2hvdyBzdG9y YWdlIEkvTyB1c2FnZS4KKyAqLworc3RhdGljIHZvaWQKK3Nob3dfc3RvcmFnZWlvX3VzYWdlKEV4 cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKK3sKKwkvKgorCSAq IFNpbmNlIHNob3dpbmcgb25seSB0aGUgSS9PIGV4Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVz dGltYXRlcyB0aGUKKwkgKiB0b3RhbCBJL08sIGRvIG5vdCBzaG93IGFueXRoaW5nLgorCSAqLwor CWlmIChwZ2Fpb193b3JrZXJzX2VuYWJsZWQoKSkKKwkJcmV0dXJuOworCisJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwl7CisJCS8qIFNob3cgb25seSBwb3NpdGl2ZSBj b3VudGVyIHZhbHVlcy4gKi8KKwkJaWYgKHVzYWdlLT5pbmJsb2NrIDw9IDAgJiYgdXNhZ2UtPm91 dGJsb2NrIDw9IDApCisJCQlyZXR1cm47CisKKwkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTdG9yYWdlIEkvTzoiKTsKKwkJYXBwZW5k U3RyaW5nSW5mbyhlcy0+c3RyLCAiIHJlYWQ9JWxkIiwgKGxvbmcpIHVzYWdlLT5pbmJsb2NrKTsK KwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiIHdyaXRlPSVsZCIsIChsb25nKSB1c2FnZS0+ b3V0YmxvY2spOworCisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGVzLT5zdHIsICdcbicpOworCX0K KwllbHNlCisJeworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkvTyBSZWFkIiwg TlVMTCwKKwkJCQkJCQkgICB1c2FnZS0+aW5ibG9jaywgZXMpOworCQlFeHBsYWluUHJvcGVydHlJ bnRlZ2VyKCJTdG9yYWdlIEkvTyBXcml0ZSIsIE5VTEwsCisJCQkJCQkJICAgdXNhZ2UtPm91dGJs b2NrLCBlcyk7CisJfQorfQorCiAvKgogICogU2hvdyBXQUwgdXNhZ2UgZGV0YWlscy4KICAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDViODZhNzI3NTg3Li43YzM4ZjEzOTNmZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYwpAQCAtNTgyLDYgKzU4Miw4IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnko RXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVz LAogCWluc3RyX3RpbWUJcGxhbmR1cmF0aW9uOwogCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0 LAogCQkJCWJ1ZnVzYWdlOworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2VpbywKKwkJCQlzdG9yYWdl aW9fc3RhcnQ7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3VudGVyczsKIAlNZW1vcnlD b250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0IHNhdmVkX2N0eCA9IE5V TEw7CkBAIC01OTcsNyArNTk5LDExIEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQg KmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCX0KIAogCWlm IChlcy0+YnVmZmVycykKKwl7CiAJCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKKwkJ R2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpb19zdGFydCk7CisJfQorCiAJSU5TVFJfVElNRV9T RVRfQ1VSUkVOVChwbGFuc3RhcnQpOwogCiAJLyogTG9vayBpdCB1cCBpbiB0aGUgaGFzaCB0YWJs ZSAqLwpAQCAtNjQyLDExICs2NDgsMTQgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3Rt dCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCU1lbW9y eUNvbnRleHRNZW1Db25zdW1lZChwbGFubmVyX2N0eCwgJm1lbV9jb3VudGVycyk7CiAJfQogCi0J LyogY2FsYyBkaWZmZXJlbmNlcyBvZiBidWZmZXIgY291bnRlcnMuICovCisJLyogY2FsYyBkaWZm ZXJlbmNlcyBvZiBidWZmZXIgYW5kIHN0b3JhZ2UgSS9PIGNvdW50ZXJzLiAqLwogCWlmIChlcy0+ YnVmZmVycykKIAl7CiAJCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkp OwogCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmYnVm dXNhZ2Vfc3RhcnQpOworCisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdlaW8pOworCQlTdG9y YWdlSU9Vc2FnZURpZmYoJnN0b3JhZ2VpbywgJnN0b3JhZ2Vpb19zdGFydCk7CiAJfQogCiAJcGxh bl9saXN0ID0gY3BsYW4tPnN0bXRfbGlzdDsKQEAgLTY1OSw2ICs2NjgsNyBAQCBFeHBsYWluRXhl Y3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFp blN0YXRlICplcywKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkKIAkJ CUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJLCBw c3RhdGUtPnBfcXVlcnlFbnYsCiAJCQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMg PyAmYnVmdXNhZ2UgOiBOVUxMKSwKKwkJCQkJCSAgIGVzLT5idWZmZXJzID8gJnN0b3JhZ2VpbyA6 IE5VTEwsCiAJCQkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogCQll bHNlCiAJCQlFeHBsYWluT25lVXRpbGl0eShwc3RtdC0+dXRpbGl0eVN0bXQsIGludG8sIGVzLCBw c3RhdGUsIHBhcmFtTEkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXgg YzNiM2M5ZWEyMWEuLmQxOWNkMDRlNDIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFs bGVsLmMKQEAgLTczNyw3ICs3MzcsNyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5k ZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQlXYWl0 Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2gocHZzLT5wY3h0KTsKIAogCQlmb3IgKGludCBpID0g MDsgaSA8IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKLQkJCUluc3RyQWNjdW1Q YXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtpXSwgJnB2cy0+d2FsX3VzYWdlW2ldKTsK KwkJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtpXSwgTlVMTCwg JnB2cy0+d2FsX3VzYWdlW2ldKTsKIAl9CiAKIAkvKgpAQCAtMTA4Myw3ICsxMDgzLDcgQEAgcGFy YWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWVycm9y X2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1 ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFs bGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFByb2Nl c3MgaW5kZXhlcyB0byBwZXJmb3JtIHZhY3V1bS9jbGVhbnVwICovCiAJcGFyYWxsZWxfdmFjdXVt X3Byb2Nlc3Nfc2FmZV9pbmRleGVzKCZwdnMpOwpAQCAtMTA5MSw4ICsxMDkxLDggQEAgcGFyYWxs ZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9y dCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJf dXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX1ZBQ1VVTV9LRVlfQlVGRkVSX1VT QUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9W QUNVVU1fS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVm ZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbF91c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0pOworCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVyX3VzYWdl W1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxl bFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAJLyogUmVwb3J0IGFueSByZW1haW5pbmcgY29zdC1i YXNlZCB2YWN1dW0gZGVsYXkgdGltZSAqLwogCWlmICh0cmFja19jb3N0X2RlbGF5X3RpbWluZykK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggNzcyZTgxZjMxNTQuLjA4MWFjZjQ4 M2I0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjYsNiArNjYsNyBAQAog I2RlZmluZSBQQVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAw MDAwMDA4KQogI2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRBVElPTiBVSU5UNjRD T05TVCgweEUwMDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UJ CQlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBBUkFMTEVMX0tFWV9T VE9SQUdFSU9fVVNBR0UJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5l IFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUJCTY1NTM2CiAKQEAgLTYyMSw2ICs2MjIsNyBAQCBF eGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUs CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5mb19zcGFjZTsK IAlCdWZmZXJVc2FnZSAqYnVmdXNhZ2Vfc3BhY2U7CisJU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vp b3VzYWdlX3NwYWNlOwogCVdhbFVzYWdlICAgKndhbHVzYWdlX3NwYWNlOwogCVNoYXJlZEV4ZWN1 dG9ySW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50YXRpb24gPSBOVUxMOwogCVNoYXJlZEppdElu c3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC03MDIsNiArNzA0 LDEzIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUg KmVzdGF0ZSwKIAkJCQkJCSAgIG11bF9zaXplKHNpemVvZihXYWxVc2FnZSksIHBjeHQtPm53b3Jr ZXJzKSk7CiAJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOwogCisJ LyoKKwkgKiBTYW1lIHRoaW5nIGZvciBTdG9yYWdlSU9Vc2FnZS4KKwkgKi8KKwlzaG1fdG9jX2Vz dGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsCisJCQkJCQkgICBtdWxfc2l6ZShzaXplb2Yo U3RvcmFnZUlPVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOworCXNobV90b2NfZXN0aW1hdGVfa2V5 cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qIEVzdGltYXRlIHNwYWNlIGZvciB0dXBsZSBx dWV1ZXMuICovCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAogCQkJ CQkJICAgbXVsX3NpemUoUEFSQUxMRUxfVFVQTEVfUVVFVUVfU0laRSwgcGN4dC0+bndvcmtlcnMp KTsKQEAgLTc5Nyw2ICs4MDYsMTIgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpw bGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFS QUxMRUxfS0VZX1dBTF9VU0FHRSwgd2FsdXNhZ2Vfc3BhY2UpOwogCXBlaS0+d2FsX3VzYWdlID0g d2FsdXNhZ2Vfc3BhY2U7CiAKKwkvKiBTYW1lIGZvciBTdG9yYWdlSU9Vc2FnZS4gKi8KKwlzdG9y YWdlaW91c2FnZV9zcGFjZSA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLAorCQkJCQkJCQkJ CQltdWxfc2l6ZShzaXplb2YoU3RvcmFnZUlPVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOworCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NUT1JBR0VJT19VU0FHRSwgc3Rv cmFnZWlvdXNhZ2Vfc3BhY2UpOworCXBlaS0+c3RvcmFnZWlvX3VzYWdlID0gc3RvcmFnZWlvdXNh Z2Vfc3BhY2U7CisKIAkvKiBTZXQgdXAgdGhlIHR1cGxlIHF1ZXVlcyB0aGF0IHRoZSB3b3JrZXJz IHdpbGwgd3JpdGUgaW50by4gKi8KIAlwZWktPnRxdWV1ZSA9IEV4ZWNQYXJhbGxlbFNldHVwVHVw bGVRdWV1ZXMocGN4dCwgZmFsc2UpOwogCkBAIC0xMjA3LDExICsxMjIyLDExIEBAIEV4ZWNQYXJh bGxlbEZpbmlzaChQYXJhbGxlbEV4ZWN1dG9ySW5mbyAqcGVpKQogCVdhaXRGb3JQYXJhbGxlbFdv cmtlcnNUb0ZpbmlzaChwZWktPnBjeHQpOwogCiAJLyoKLQkgKiBOZXh0LCBhY2N1bXVsYXRlIGJ1 ZmZlci9XQUwgdXNhZ2UuICAoVGhpcyBtdXN0IHdhaXQgZm9yIHRoZSB3b3JrZXJzIHRvCi0JICog ZmluaXNoLCBvciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKKwkgKiBOZXh0LCBhY2N1 bXVsYXRlIGJ1ZmZlciwgV0FMLCBhbmQgU3RvcmFnZSBJL08gdXNhZ2UuIChUaGlzIG11c3Qgd2Fp dAorCSAqIGZvciB0aGUgd29ya2VycyB0byBmaW5pc2gsIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBs ZXRlIGRhdGEuKQogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBud29ya2VyczsgaSsrKQotCQlJbnN0 ckFjY3VtUGFyYWxsZWxRdWVyeSgmcGVpLT5idWZmZXJfdXNhZ2VbaV0sICZwZWktPndhbF91c2Fn ZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwZWktPmJ1ZmZlcl91c2FnZVtpXSwg JnBlaS0+c3RvcmFnZWlvX3VzYWdlW2ldLCAmcGVpLT53YWxfdXNhZ2VbaV0pOwogCiAJcGVpLT5m aW5pc2hlZCA9IHRydWU7CiB9CkBAIC0xNDUyLDYgKzE0NjcsOCBAQCBQYXJhbGxlbFF1ZXJ5TWFp bihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiB7CiAJRml4ZWRQYXJhbGxlbEV4ZWN1 dG9yU3RhdGUgKmZwZXM7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcl91c2FnZTsKKwlTdG9yYWdlSU9V c2FnZSAqc3RvcmFnZWlvX3VzYWdlOworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vpb191c2FnZV9z dGFydDsKIAlXYWxVc2FnZSAgICp3YWxfdXNhZ2U7CiAJRGVzdFJlY2VpdmVyICpyZWNlaXZlcjsK IAlRdWVyeURlc2MgICpxdWVyeURlc2M7CkBAIC0xNTA1LDEzICsxNTIyLDE0IEBAIFBhcmFsbGVs UXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlFeGVjU2V0VHVwbGVC b3VuZChmcGVzLT50dXBsZXNfbmVlZGVkLCBxdWVyeURlc2MtPnBsYW5zdGF0ZSk7CiAKIAkvKgot CSAqIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcXVlcnkgZXhlY3V0 aW9uLgorCSAqIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyLCBXQUwsIGFuZCBTdG9yYWdlSS9PIHVz YWdlIGR1cmluZyBxdWVyeQorCSAqIGV4ZWN1dGlvbi4KIAkgKgogCSAqIFdlIGRvIHRoaXMgYWZ0 ZXIgc3RhcnRpbmcgdXAgdGhlIGV4ZWN1dG9yIHRvIG1hdGNoIHdoYXQgaGFwcGVucyBpbiB0aGUK IAkgKiBsZWFkZXIsIHdoaWNoIGFsc28gZG9lc24ndCBjb3VudCBidWZmZXIgYWNjZXNzZXMgYW5k IFdBTCBhY3Rpdml0eSB0aGF0CiAJICogb2NjdXIgZHVyaW5nIGV4ZWN1dG9yIHN0YXJ0dXAuCiAJ ICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVy eSgmc3RvcmFnZWlvX3VzYWdlX3N0YXJ0KTsKIAogCS8qCiAJICogUnVuIHRoZSBwbGFuLiAgSWYg d2Ugc3BlY2lmaWVkIGEgdHVwbGUgYm91bmQsIGJlIGNhcmVmdWwgbm90IHRvIGRlbWFuZApAQCAt MTUyNCwxMSArMTU0MiwxNCBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBz aG1fdG9jICp0b2MpCiAJLyogU2h1dCBkb3duIHRoZSBleGVjdXRvciAqLwogCUV4ZWN1dG9yRmlu aXNoKHF1ZXJ5RGVzYyk7CiAKLQkvKiBSZXBvcnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFy YWxsZWwgZXhlY3V0aW9uLiAqLworCS8qIFJlcG9ydCBidWZmZXIsIFdBTCwgYW5kIHN0b3JhZ2Ug SS9PIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24uICovCiAJYnVmZmVyX3VzYWdlID0g c2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CisJ c3RvcmFnZWlvX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfU1RPUkFH RUlPX1VTQUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJB TExFTF9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7CiAJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZm ZXJfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsX3VzYWdlW1BhcmFs bGVsV29ya2VyTnVtYmVyXSk7CisJCQkJCQkgICZzdG9yYWdlaW9fdXNhZ2VbUGFyYWxsZWxXb3Jr ZXJOdW1iZXJdLAorCQkJCQkJICAmd2FsX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwkJ CQkJCSAgJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAKIAkvKiBSZXBvcnQgaW5zdHJ1bWVudGF0 aW9uIGRhdGEgaWYgYW55IGluc3RydW1lbnRhdGlvbiBvcHRpb25zIGFyZSBzZXQuICovCiAJaWYg KGluc3RydW1lbnRhdGlvbiAhPSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvaW5zdHJ1bWVudC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCmluZGV4 IGVkYWI5MmEwZWJlLi40ZDM3MTFiNGFhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvaW5zdHJ1bWVudC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwpA QCAtMTMsMTYgKzEzLDI3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVk ZSA8c3lzL3Jlc291cmNlLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNpbmNsdWRlICJleGVj dXRvci9pbnN0cnVtZW50LmgiCisjaW5jbHVkZSAic3RvcmFnZS9haW9fc3Vic3lzLmgiCiAKIEJ1 ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBzdGF0aWMgQnVmZmVyVXNhZ2Ugc2F2ZV9wZ0J1ZmZl clVzYWdlOworCisvKgorICogQWNjdW11bGF0ZXMgdGhlIEkvTyB1c2FnZSBzZW50IGJ5IHBhcmFs bGVsIHdvcmtlcnMgdG8gdGhlIG1haW4KKyAqIHByb2Nlc3MuIFRoaXMgZG9lcyBub3QgY29udGFp biB0aGUgSS9PIGZyb20gdGhlIG1haW4gYmFja2VuZCBwcm9jZXNzCisgKiBpdHNlbGYgYmVjYXVz ZSB0aGUga2VybmVsIHRyYWNrcyB0aGF0IGluc3RlYWQgb2YgdXMuCisgKi8KK1N0b3JhZ2VJT1Vz YWdlIHBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbDsKKwogV2FsVXNhZ2UJcGdXYWxVc2FnZTsKIHN0 YXRpYyBXYWxVc2FnZSBzYXZlX3BnV2FsVXNhZ2U7CiAKIHN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdl QWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQpOwordm9pZAkJU3Rv cmFnZUlPVXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2Ug KmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAq YWRkKTsKIAogCkBAIC0xOTQsMjcgKzIwNSw0MyBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0 aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCiAvKiBub3RlIGN1cnJlbnQgdmFsdWVz IGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCiB2b2lkCi1JbnN0clN0YXJ0UGFy YWxsZWxRdWVyeSh2b2lkKQorSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoU3RvcmFnZUlPVXNhZ2Ug KnN0b3JhZ2Vpb3VzYWdlKQogewogCXNhdmVfcGdCdWZmZXJVc2FnZSA9IHBnQnVmZmVyVXNhZ2U7 CiAJc2F2ZV9wZ1dhbFVzYWdlID0gcGdXYWxVc2FnZTsKKworCWlmIChzdG9yYWdlaW91c2FnZSAh PSBOVUxMKQorCQlHZXRTdG9yYWdlSU9Vc2FnZShzdG9yYWdlaW91c2FnZSk7CiB9CiAKIC8qIHJl cG9ydCB1c2FnZSBhZnRlciBwYXJhbGxlbCBleGVjdXRvciBzaHV0ZG93biAqLwogdm9pZAotSW5z dHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVz YWdlKQorSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFn ZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UsIFN0b3JhZ2VJT1Vz YWdlICpzdG9yYWdlaW91c2FnZV9zdGFydCkKIHsKIAltZW1zZXQoYnVmdXNhZ2UsIDAsIHNpemVv ZihCdWZmZXJVc2FnZSkpOwogCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKGJ1ZnVzYWdlLCAmcGdCdWZm ZXJVc2FnZSwgJnNhdmVfcGdCdWZmZXJVc2FnZSk7CisKKwlpZiAoc3RvcmFnZWlvdXNhZ2UgIT0g TlVMTCAmJiBzdG9yYWdlaW91c2FnZV9zdGFydCAhPSBOVUxMKQorCXsKKwkJc3RydWN0IFN0b3Jh Z2VJT1VzYWdlIHN0b3JhZ2Vpb3VzYWdlX2VuZDsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3Rv cmFnZWlvdXNhZ2VfZW5kKTsKKworCQltZW1zZXQoc3RvcmFnZWlvdXNhZ2UsIDAsIHNpemVvZihT dG9yYWdlSU9Vc2FnZSkpOworCQlTdG9yYWdlSU9Vc2FnZUFjY3VtRGlmZihzdG9yYWdlaW91c2Fn ZSwgJnN0b3JhZ2Vpb3VzYWdlX2VuZCwgc3RvcmFnZWlvdXNhZ2Vfc3RhcnQpOworCX0KIAltZW1z ZXQod2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwogCVdhbFVzYWdlQWNjdW1EaWZmKHdh bHVzYWdlLCAmcGdXYWxVc2FnZSwgJnNhdmVfcGdXYWxVc2FnZSk7CiB9CiAKIC8qIGFjY3VtdWxh dGUgd29yayBkb25lIGJ5IHdvcmtlcnMgaW4gbGVhZGVyJ3Mgc3RhdHMgKi8KIHZvaWQKLUluc3Ry QWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVz YWdlKQorSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBTdG9y YWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIHsKIAlCdWZm ZXJVc2FnZUFkZCgmcGdCdWZmZXJVc2FnZSwgYnVmdXNhZ2UpOworCisJaWYgKHN0b3JhZ2Vpb3Vz YWdlICE9IE5VTEwpCisJCVN0b3JhZ2VJT1VzYWdlQWRkKCZwZ1N0b3JhZ2VJT1VzYWdlUGFyYWxs ZWwsIHN0b3JhZ2Vpb3VzYWdlKTsKIAlXYWxVc2FnZUFkZCgmcGdXYWxVc2FnZSwgd2FsdXNhZ2Up OwogfQogCkBAIC0yNzAsNiArMjk3LDU3IEBAIEJ1ZmZlclVzYWdlQWNjdW1EaWZmKEJ1ZmZlclVz YWdlICpkc3QsCiAJCQkJCQkgIGFkZC0+dGVtcF9ibGtfd3JpdGVfdGltZSwgc3ViLT50ZW1wX2Js a193cml0ZV90aW1lKTsKIH0KIAorLyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgU3RvcmFnZUlPVXNh Z2UgdXNhZ2UgYWNjdW11bGF0aW9uICovCit2b2lkCitTdG9yYWdlSU9Vc2FnZUFkZChTdG9yYWdl SU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkKQoreworCWRzdC0+aW5ibG9j ayArPSBhZGQtPmluYmxvY2s7CisJZHN0LT5vdXRibG9jayArPSBhZGQtPm91dGJsb2NrOworfQor CisvKiBkc3QgKz0gYWRkIC0gc3ViICovCit2b2lkCitTdG9yYWdlSU9Vc2FnZUFjY3VtRGlmZihT dG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkLCBjb25zdCBTdG9y YWdlSU9Vc2FnZSAqc3ViKQoreworCWRzdC0+aW5ibG9jayArPSBhZGQtPmluYmxvY2sgLSBzdWIt PmluYmxvY2s7CisJZHN0LT5vdXRibG9jayArPSBhZGQtPm91dGJsb2NrIC0gc3ViLT5vdXRibG9j azsKK30KKworLyogZHN0IC09IHN1YiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VEaWZmKFN0b3Jh Z2VJT1VzYWdlICpkc3QsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpzdWIpCit7CisJZHN0LT5pbmJs b2NrIC09IHN1Yi0+aW5ibG9jazsKKwlkc3QtPm91dGJsb2NrIC09IHN1Yi0+b3V0YmxvY2s7Cit9 CisKKy8qIENhcHR1cmVzIHRoZSBjdXJyZW50IHN0b3JhZ2UgSS9PIHVzYWdlIHN0YXRpc3RpY3Mg Ki8KK3ZvaWQKK0dldFN0b3JhZ2VJT1VzYWdlKFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKK3sKKwlz dHJ1Y3QgcnVzYWdlIHJ1c2FnZTsKKworCS8qCisJICogU2luY2UgZ2V0dGluZyB0aGUgSS9PIGV4 Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRlcyB0aGUgdG90YWwKKwkgKiBJL08sIGRv bid0IGdldCB0aGUgSS9PIHVzYWdlIHN0YXRpc3RpY3Mgd2hlbiBBSU8gd29ya2VyIGlzIGVuYWJs ZWQuCisJICovCisJaWYgKHBnYWlvX3dvcmtlcnNfZW5hYmxlZCgpKQorCXsKKwkJdXNhZ2UtPmlu YmxvY2sgPSAwOworCQl1c2FnZS0+b3V0YmxvY2sgPSAwOworCQlyZXR1cm47CisJfQorCisJaWYg KGdldHJ1c2FnZShSVVNBR0VfU0VMRiwgJnJ1c2FnZSkpCisJeworCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfU1lTVEVNX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJnZXRydXNh Z2UoKSBmYWlsZWQ6ICVtIikpKTsKKwl9CisJdXNhZ2UtPmluYmxvY2sgPSBydXNhZ2UucnVfaW5i bG9jazsKKwl1c2FnZS0+b3V0YmxvY2sgPSBydXNhZ2UucnVfb3VibG9jazsKK30KKwogLyogaGVs cGVyIGZ1bmN0aW9ucyBmb3IgV0FMIHVzYWdlIGFjY3VtdWxhdGlvbiAqLwogc3RhdGljIHZvaWQK IFdhbFVzYWdlQWRkKFdhbFVzYWdlICpkc3QsIFdhbFVzYWdlICphZGQpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBs YWluLmgKaW5kZXggODYyMjZmOGRiNzAuLjc2MjVmMDhjOTVlIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9leHBsYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oCkBAIC02OCw2ICs2OCw3IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRT dG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywKIAkJCQkJCSAgIFBhcmFtTGlzdElu Zm8gcGFyYW1zLCBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKIAkJCQkJCSAgIGNvbnN0IGlu c3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKIAkJCQkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1 c2FnZSwKKwkJCQkJCSAgIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpwbGFuc3RvcmFnZWlvLAogCQkJ CQkJICAgY29uc3QgTWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMpOwogCiBleHRl cm4gdm9pZCBFeHBsYWluUHJpbnRQbGFuKEV4cGxhaW5TdGF0ZSAqZXMsIFF1ZXJ5RGVzYyAqcXVl cnlEZXNjKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5o IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmgKaW5kZXggNWEyMDM0ODExZDUu LmY5MWVmNzAwOTkxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxs ZWwuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxsZWwuaApAQCAtMjYsNiAr MjYsOCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbGxlbEV4ZWN1dG9ySW5mbwogCVBsYW5TdGF0ZSAg KnBsYW5zdGF0ZTsJCS8qIHBsYW4gc3VidHJlZSB3ZSdyZSBydW5uaW5nIGluIHBhcmFsbGVsICov CiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0OwkJLyogcGFyYWxsZWwgY29udGV4dCB3ZSdyZSB1c2lu ZyAqLwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNhZ2U7CS8qIHBvaW50cyB0byBidWZ1c2FnZSBh cmVhIGluIERTTSAqLworCVN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW9fdXNhZ2U7CS8qIHBvaW50 cyB0byBzdG9yYWdlaW8gdXNhZ2UgYXJlYSBpbgorCQkJCQkJCQkJCSAqIERTTSAqLwogCVdhbFVz YWdlICAgKndhbF91c2FnZTsJCS8qIHdhbHVzYWdlIGFyZWEgaW4gRFNNICovCiAJU2hhcmVkRXhl Y3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbjsgLyogb3B0aW9uYWwgKi8KIAlz dHJ1Y3QgU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uOwkvKiBv cHRpb25hbCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5o IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCmluZGV4IDk3NTlmM2VhNWQ4Li5i OTUxNTdkNTU4OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5o CisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaApAQCAtNDEsNiArNDEsMTQg QEAgdHlwZWRlZiBzdHJ1Y3QgQnVmZmVyVXNhZ2UKIAlpbnN0cl90aW1lCXRlbXBfYmxrX3dyaXRl X3RpbWU7CS8qIHRpbWUgc3BlbnQgd3JpdGluZyB0ZW1wIGJsb2NrcyAqLwogfSBCdWZmZXJVc2Fn ZTsKIAordHlwZWRlZiBzdHJ1Y3QgU3RvcmFnZUlPVXNhZ2UKK3sKKwlsb25nCQlpbmJsb2NrOwkJ LyogIyBvZiB0aW1lcyB0aGUgZmlsZSBzeXN0ZW0gaGFkIHRvIHBlcmZvcm0KKwkJCQkJCQkJICog aW5wdXQgKi8KKwlsb25nCQlvdXRibG9jazsJCS8qICMgb2YgdGltZXMgdGhlIGZpbGUgc3lzdGVt IGhhZCB0byBwZXJmb3JtCisJCQkJCQkJCSAqIG91dHB1dCAqLworfSBTdG9yYWdlSU9Vc2FnZTsK KwogLyoKICAqIFdhbFVzYWdlIHRyYWNrcyBvbmx5IFdBTCBhY3Rpdml0eSBsaWtlIFdBTCByZWNv cmRzIGdlbmVyYXRpb24gdGhhdAogICogY2FuIGJlIG1lYXN1cmVkIHBlciBxdWVyeSBhbmQgaXMg ZGlzcGxheWVkIGJ5IEVYUExBSU4gY29tbWFuZCwKQEAgLTEwMSw2ICsxMDksNyBAQCB0eXBlZGVm IHN0cnVjdCBXb3JrZXJJbnN0cnVtZW50YXRpb24KIH0gV29ya2VySW5zdHJ1bWVudGF0aW9uOwog CiBleHRlcm4gUEdETExJTVBPUlQgQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKK2V4dGVybiBQ R0RMTElNUE9SVCBTdG9yYWdlSU9Vc2FnZSBwZ1N0b3JhZ2VJT1VzYWdlUGFyYWxsZWw7CiBleHRl cm4gUEdETExJTVBPUlQgV2FsVXNhZ2UgcGdXYWxVc2FnZTsKIAogZXh0ZXJuIEluc3RydW1lbnRh dGlvbiAqSW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywKQEAgLTExMSwx MSArMTIwLDE2IEBAIGV4dGVybiB2b2lkIEluc3RyU3RvcE5vZGUoSW5zdHJ1bWVudGF0aW9uICpp bnN0ciwgZG91YmxlIG5UdXBsZXMpOwogZXh0ZXJuIHZvaWQgSW5zdHJVcGRhdGVUdXBsZUNvdW50 KEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKTsKIGV4dGVybiB2b2lkIElu c3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyQWdn Tm9kZShJbnN0cnVtZW50YXRpb24gKmRzdCwgSW5zdHJ1bWVudGF0aW9uICphZGQpOwotZXh0ZXJu IHZvaWQgSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCk7Ci1leHRlcm4gdm9pZCBJbnN0ckVu ZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2Up OwotZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVz YWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlKTsKK2V4dGVybiB2b2lkIEluc3Ry RW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpz dG9yYWdlaW91c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlLCBTdG9yYWdlSU9Vc2FnZSAqc3RvcmFn ZWlvdXNhZ2Vfc3RhcnQpOworZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVm ZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UsIFdhbFVz YWdlICp3YWx1c2FnZSk7CiBleHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFjY3VtRGlmZihCdWZmZXJV c2FnZSAqZHN0LAogCQkJCQkJCQkgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCwgY29uc3QgQnVmZmVy VXNhZ2UgKnN1Yik7CitleHRlcm4gdm9pZCBTdG9yYWdlSU9Vc2FnZUFjY3VtRGlmZihTdG9yYWdl SU9Vc2FnZSAqZHN0LAorCQkJCQkJCQkJY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCwgY29uc3Qg U3RvcmFnZUlPVXNhZ2UgKnN1Yik7CitleHRlcm4gdm9pZCBTdG9yYWdlSU9Vc2FnZURpZmYoU3Rv cmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnN1Yik7CitleHRlcm4gdm9p ZCBTdG9yYWdlSU9Vc2FnZUFkZChTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9V c2FnZSAqYWRkKTsKK2V4dGVybiB2b2lkIEdldFN0b3JhZ2VJT1VzYWdlKFN0b3JhZ2VJT1VzYWdl ICp1c2FnZSk7CiBleHRlcm4gdm9pZCBXYWxVc2FnZUFjY3VtRGlmZihXYWxVc2FnZSAqZHN0LCBj b25zdCBXYWxVc2FnZSAqYWRkLAogCQkJCQkJCSAgY29uc3QgV2FsVXNhZ2UgKnN1Yik7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmggYi9zcmMvaW5j bHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oCmluZGV4IGExNGZlZWI1ODQ0Li4yNzBkYzM3 Yzg0ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC93aW4zMi9zeXMvcmVzb3VyY2UuaAor KysgYi9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oCkBAIC0xMyw2ICsxMyw4 IEBAIHN0cnVjdCBydXNhZ2UKIHsKIAlzdHJ1Y3QgdGltZXZhbCBydV91dGltZTsJLyogdXNlciB0 aW1lIHVzZWQgKi8KIAlzdHJ1Y3QgdGltZXZhbCBydV9zdGltZTsJLyogc3lzdGVtIHRpbWUgdXNl ZCAqLworCWxvbmcJCXJ1X2luYmxvY2s7CQkvKiBDdXJyZW50bHkgYWx3YXlzIDAgZm9yIFdpbmRv d3MgKi8KKwlsb25nCQlydV9vdWJsb2NrOwkJLyogQ3VycmVudGx5IGFsd2F5cyAwIGZvciBXaW5k b3dzICovCiB9OwogCiBleHRlcm4gaW50CWdldHJ1c2FnZShpbnQgd2hvLCBzdHJ1Y3QgcnVzYWdl ICpydXNhZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvd2luMzJnZXRydXNhZ2UuYyBiL3NyYy9w b3J0L3dpbjMyZ2V0cnVzYWdlLmMKaW5kZXggZmEyYjc5Y2Q1ZWQuLjJlMjY3ZGU3YjI4IDEwMDY0 NAotLS0gYS9zcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jCisrKyBiL3NyYy9wb3J0L3dpbjMyZ2V0 cnVzYWdlLmMKQEAgLTU3LDUgKzU3LDkgQEAgZ2V0cnVzYWdlKGludCB3aG8sIHN0cnVjdCBydXNh Z2UgKnJ1c2FnZSkKIAlydXNhZ2UtPnJ1X3V0aW1lLnR2X3NlYyA9IGxpLlF1YWRQYXJ0IC8gMTAw MDAwMEw7CiAJcnVzYWdlLT5ydV91dGltZS50dl91c2VjID0gbGkuUXVhZFBhcnQgJSAxMDAwMDAw TDsKIAorCS8qIEN1cnJlbnRseSBhbHdheXMgMCBmb3IgV2luZG93cyAqLworCXJ1c2FnZS0+cnVf aW5ibG9jayA9IDA7CisJcnVzYWdlLT5ydV9vdWJsb2NrID0gMDsKKwogCXJldHVybiAwOwogfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTFfZXhwbGFpbl9zdG9y YWdlX2lvLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTFfZXhwbGFpbl9zdG9y YWdlX2lvLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYjg0NmFl ZTkyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEx X2V4cGxhaW5fc3RvcmFnZV9pby5wbApAQCAtMCwwICsxLDg5IEBACisKKyMgQ29weXJpZ2h0IChj KSAyMDI0LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBz dHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7Cit1c2UgbG9jYWxlOworCit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsK K3VzZSBUZXN0OjpNb3JlOworCisjIE5vZGUgaW5pdGlhbGl6YXRpb24KK215ICRub2RlX3N5bmMg PSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N5bmMnKTsKKyRub2RlX3N5bmMtPmlu aXQoKTsKKyRub2RlX3N5bmMtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAiaW9fbWV0 aG9kID0gc3luYyIpOworJG5vZGVfc3luYy0+c3RhcnQ7CisKKyMgQ2hlY2sgdGhhdCB0aGUgWE1M LWZvcm1hdHRlZCBFWFBMQUlOIG91dHB1dCBjb250YWlucyBTdG9yYWdlIEkvTworIyByZWFkIGFu ZCB3cml0ZSBpbmZvcm1hdGlvbi4KK215ICR4bWxfc3luYyA9ICRub2RlX3N5bmMtPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLAorCXF7CisJRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgRk9STUFU IFhNTCkKKwlTRUxFQ1QgKiBGUk9NIHBnX2NsYXNzOworCX0KKyk7CisKK2xpa2UoCisJJHhtbF9z eW5jLAorCXFyLzxTdG9yYWdlLUktTy1SZWFkPlxkKzxcL1N0b3JhZ2UtSS1PLVJlYWQ+LywKKwki U3RvcmFnZS1JLU8tUmVhZCBpcyBzaG93biBpbiBFWFBMQUlOIFhNTCAoaW9fbWV0aG9kPXN5bmMp IgorKTsKKworbGlrZSgKKwkkeG1sX3N5bmMsCisJcXIvPFN0b3JhZ2UtSS1PLVdyaXRlPlxkKzxc L1N0b3JhZ2UtSS1PLVdyaXRlPi8sCisJIlN0b3JhZ2UtSS1PLVdyaXRlIGlzIHNob3duIGluIEVY UExBSU4gWE1MIChpb19tZXRob2Q9c3luYykiCispOworCisjIERvIHRoZSBzYW1lIHRlc3QgaWYg aW9fbWV0aG9kPWlvX3VyaW5nIGlzIHN1cHBvcnRlZAoraWYgKGhhdmVfaW9fdXJpbmcoKSkKK3sK KwlteSAkbm9kZV9pb191cmluZyA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnaW9f dXJpbmcnKTsKKwkkbm9kZV9pb191cmluZy0+aW5pdDsKKwkkbm9kZV9pb191cmluZy0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICJpb19tZXRob2QgPSAnaW9fdXJpbmcnIik7CisJJG5v ZGVfaW9fdXJpbmctPnN0YXJ0OworCQorCW15ICR4bWxfaW9fdXJpbmcgPSAkbm9kZV9pb191cmlu Zy0+c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLAorCQlxeworCQlFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTLCBGT1JNQVQgWE1MKQorCQlTRUxFQ1QgKiBGUk9NIHBnX2NsYXNzOworCQl9CisJKTsK KwkKKwlsaWtlKAorCQkkeG1sX2lvX3VyaW5nLAorCQlxci88U3RvcmFnZS1JLU8tUmVhZD5cZCs8 XC9TdG9yYWdlLUktTy1SZWFkPi8sCisJCSJTdG9yYWdlLUktTy1SZWFkIGlzIHNob3duIGluIEVY UExBSU4gWE1MIChpb19tZXRob2Q9aW9fdXJpbmcpIgorCSk7CisJCisJbGlrZSgKKwkJJHhtbF9p b191cmluZywKKwkJcXIvPFN0b3JhZ2UtSS1PLVdyaXRlPlxkKzxcL1N0b3JhZ2UtSS1PLVdyaXRl Pi8sCisJCSJTdG9yYWdlLUktTy1Xcml0ZSBpcyBzaG93biBpbiBFWFBMQUlOIFhNTCAoaW9fbWV0 aG9kPWlvX3VyaW5nKSIKKwkpOworfQorZWxzZQoreworICAgIG5vdGUgImlvX3VyaW5nIGlzIG5v dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4gc2tpcHBpbmcgaW9fdXJpbmcgdGVzdHMiOwor fQorCitzdWIgaGF2ZV9pb191cmluZworeworICAgICAgICAjIFRvIGRldGVjdCBpZiBpb191cmlu ZyBpcyBzdXBwb3J0ZWQsIHdlIGxvb2sgYXQgdGhlIGVycm9yIG1lc3NhZ2UgZm9yCisgICAgICAg ICMgYXNzaWduaW5nIGFuIGludmFsaWQgdmFsdWUgdG8gYW4gZW51bSBHVUMsIHdoaWNoIGxpc3Rz IGFsbCB0aGUgdmFsaWQKKyAgICAgICAgIyBvcHRpb25zLiBXZSBuZWVkIHRvIHVzZSAtQyB0byBk ZWFsIHdpdGggcnVubmluZyBhcyBhZG1pbmlzdHJhdG9yIG9uCisgICAgICAgICMgd2luZG93cywg dGhlIHN1cGVydXNlciBjaGVjayBpcyBvbWl0dGVkIGlmIC1DIGlzIHVzZWQuCisgICAgICAgIG15 ICgkc3Rkb3V0LCAkc3RkZXJyKSA9CisgICAgICAgICAgcnVuX2NvbW1hbmQgW3F3KHBvc3RncmVz IC1DIGludmFsaWQgLWMgaW9fbWV0aG9kPWludmFsaWQpXTsKKyAgICAgICAgZGllICJjYW4ndCBk ZXRlcm1pbmUgc3VwcG9ydGVkIGlvX21ldGhvZCB2YWx1ZXMiCisgICAgICAgICAgdW5sZXNzICRz dGRlcnIgPX4gbS9BdmFpbGFibGUgdmFsdWVzOiAoW15cLl0rKVwuLzsKKyAgICAgICAgbXkgJG1l dGhvZHMgPSAkMTsKKyAgICAgICAgbm90ZSAic3VwcG9ydGVkIGlvX21ldGhvZCB2YWx1ZXMgYXJl OiAkbWV0aG9kcyI7CisKKyAgICAgICAgcmV0dXJuICgkbWV0aG9kcyA9fiBtL2lvX3VyaW5nLykg PyAxIDogMDsKK30KKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2V4cGxhaW5fMS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4 cGxhaW5fMS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxNTQ4 NzYxM2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBs YWluXzEub3V0CkBAIC0wLDAgKzEsODU5IEBACistLQorLS0gRVhQTEFJTgorLS0KKy0tIFRoZXJl IGFyZSBtYW55IHRlc3QgY2FzZXMgZWxzZXdoZXJlIHRoYXQgdXNlIEVYUExBSU4gYXMgYSB2ZWhp Y2xlIGZvcgorLS0gY2hlY2tpbmcgc29tZXRoaW5nIGVsc2UgKHVzdWFsbHkgcGxhbm5lciBiZWhh dmlvcikuICBUaGlzIGZpbGUgaXMKKy0tIGNvbmNlcm5lZCB3aXRoIHRlc3RpbmcgRVhQTEFJTiBp biBpdHMgb3duIHJpZ2h0LgorLS0KKy0tIFRvIHByb2R1Y2Ugc3RhYmxlIHJlZ3Jlc3Npb24gdGVz dCBvdXRwdXQsIGl0J3MgdXN1YWxseSBuZWNlc3NhcnkgdG8KKy0tIGlnbm9yZSBkZXRhaWxzIHN1 Y2ggYXMgZXhhY3QgY29zdHMgb3Igcm93IGNvdW50cy4gIFRoZXNlIGZpbHRlcgorLS0gZnVuY3Rp b25zIHJlcGxhY2UgY2hhbmdlYWJsZSBvdXRwdXQgZGV0YWlscyB3aXRoIGZpeGVkIHN0cmluZ3Mu CitjcmVhdGUgZnVuY3Rpb24gZXhwbGFpbl9maWx0ZXIodGV4dCkgcmV0dXJucyBzZXRvZiB0ZXh0 CitsYW5ndWFnZSBwbHBnc3FsIGFzCiskJAorZGVjbGFyZQorICAgIGxuIHRleHQ7CitiZWdpbgor ICAgIGZvciBsbiBpbiBleGVjdXRlICQxCisgICAgbG9vcAorICAgICAgICAtLSBSZXBsYWNlIGFu eSBudW1lcmljIHdvcmQgd2l0aCBqdXN0ICdOJworICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFj ZShsbiwgJy0/XG1cZCtcTScsICdOJywgJ2cnKTsKKyAgICAgICAgLS0gSW4gc29ydCBvdXRwdXQs IHRoZSBhYm92ZSB3b24ndCBtYXRjaCB1bml0cy1zdWZmaXhlZCBudW1iZXJzCisgICAgICAgIGxu IDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnXG1cZCtrQicsICdOa0InLCAnZycpOworICAgICAgICAt LSBJZ25vcmUgdGV4dC1tb2RlIGJ1ZmZlcnMgb3V0cHV0IGJlY2F1c2UgaXQgdmFyaWVzIGRlcGVu ZGluZworICAgICAgICAtLSBvbiB0aGUgc3lzdGVtIHN0YXRlCisgICAgICAgIENPTlRJTlVFIFdI RU4gKGxuIH4gJyArQnVmZmVyczogLionKTsKKyAgICAgICAgLS0gSWdub3JlIHRleHQtbW9kZSAi UGxhbm5pbmc6IiBsaW5lIGJlY2F1c2Ugd2hldGhlciBpdCdzIG91dHB1dAorICAgICAgICAtLSB2 YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0gc3RhdGUKKyAgICAgICAgQ09OVElOVUUgV0hF TiAobG4gPSAnUGxhbm5pbmc6Jyk7CisgICAgICAgIHJldHVybiBuZXh0IGxuOworICAgIGVuZCBs b29wOworZW5kOworJCQ7CistLSBUbyBwcm9kdWNlIHZhbGlkIEpTT04gb3V0cHV0LCByZXBsYWNl IG51bWJlcnMgd2l0aCAiMCIgb3IgIjAuMCIgbm90ICJOIgorY3JlYXRlIGZ1bmN0aW9uIGV4cGxh aW5fZmlsdGVyX3RvX2pzb24odGV4dCkgcmV0dXJucyBqc29uYgorbGFuZ3VhZ2UgcGxwZ3NxbCBh cworJCQKK2RlY2xhcmUKKyAgICBkYXRhIHRleHQgOj0gJyc7CisgICAgbG4gdGV4dDsKK2JlZ2lu CisgICAgZm9yIGxuIGluIGV4ZWN1dGUgJDEKKyAgICBsb29wCisgICAgICAgIC0tIFJlcGxhY2Ug YW55IG51bWVyaWMgd29yZCB3aXRoIGp1c3QgJzAnCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBs YWNlKGxuLCAnXG1cZCtcTScsICcwJywgJ2cnKTsKKyAgICAgICAgZGF0YSA6PSBkYXRhIHx8IGxu OworICAgIGVuZCBsb29wOworICAgIHJldHVybiBkYXRhOjpqc29uYjsKK2VuZDsKKyQkOworLS0g RGlzYWJsZSBKSVQsIG9yIHdlJ2xsIGdldCBkaWZmZXJlbnQgb3V0cHV0IG9uIG1hY2hpbmVzIHdo ZXJlIHRoYXQncyBiZWVuCistLSBmb3JjZWQgb24KK3NldCBqaXQgPSBvZmY7CistLSBTaW1pbGFy bHksIGRpc2FibGUgdHJhY2tfaW9fdGltaW5nLCB0byBhdm9pZCBvdXRwdXQgZGlmZmVyZW5jZXMg d2hlbgorLS0gZW5hYmxlZC4KK3NldCB0cmFja19pb190aW1pbmcgPSBvZmY7CistLSBTaW1wbGUg Y2FzZXMKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0IDEgYXMgYSwgMiBhcyBiIGhhdmluZyBm YWxzZTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFJlc3VsdAorICAgUmVwbGFjZXM6IEFnZ3JlZ2F0ZQorICAgT25lLVRpbWUgRmlsdGVy OiBmYWxzZQorKDMgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChj b3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9m aWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMgb2ZmKSBzZWxlY3QgKiBmcm9tIGludDhf dGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxh aW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90 YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5O Lk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24g VGltZTogTi5OIG1zCisoMyByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4g KGFuYWx5emUsIGJ1ZmZlcnMgb2ZmLCB2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWlu X2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBv biBwdWJsaWMuaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0 dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyAgIE91dHB1dDogcTEsIHEyCisg UGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykK Kworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzLCBmb3Jt YXQgdGV4dCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4g d2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5p bmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDMgcm93cykKKworc2Vs ZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzLCBmb3JtYXQgeG1s KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8ZXhwbGFpbiB4bWxucz0iaHR0cDov L3d3dy5wb3N0Z3Jlc3FsLm9yZy9OL2V4cGxhaW4iPiArCisgICA8UXVlcnk+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8UGxhbj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8Tm9kZS1UeXBlPlNl cSBTY2FuPC9Ob2RlLVR5cGU+ICAgICAgICAgICAgICAgICArCisgICAgICAgPFBhcmFsbGVsLUF3 YXJlPmZhbHNlPC9QYXJhbGxlbC1Bd2FyZT4gICAgICAgICAgKworICAgICAgIDxBc3luYy1DYXBh YmxlPmZhbHNlPC9Bc3luYy1DYXBhYmxlPiAgICAgICAgICAgICsKKyAgICAgICA8UmVsYXRpb24t TmFtZT5pbnQ4X3RibDwvUmVsYXRpb24tTmFtZT4gICAgICAgICArCisgICAgICAgPEFsaWFzPmk4 PC9BbGlhcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTdGFydHVw LUNvc3Q+Ti5OPC9TdGFydHVwLUNvc3Q+ICAgICAgICAgICAgICAgICsKKyAgICAgICA8VG90YWwt Q29zdD5OLk48L1RvdGFsLUNvc3Q+ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPFBsYW4t Um93cz5OPC9QbGFuLVJvd3M+ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxQbGFu LVdpZHRoPk48L1BsYW4tV2lkdGg+ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8QWN0 dWFsLVN0YXJ0dXAtVGltZT5OLk48L0FjdHVhbC1TdGFydHVwLVRpbWU+ICArCisgICAgICAgPEFj dHVhbC1Ub3RhbC1UaW1lPk4uTjwvQWN0dWFsLVRvdGFsLVRpbWU+ICAgICAgKworICAgICAgIDxB Y3R1YWwtUm93cz5OLk48L0FjdHVhbC1Sb3dzPiAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8 QWN0dWFsLUxvb3BzPk48L0FjdHVhbC1Mb29wcz4gICAgICAgICAgICAgICAgICArCisgICAgICAg PERpc2FibGVkPmZhbHNlPC9EaXNhYmxlZD4gICAgICAgICAgICAgICAgICAgICAgKworICAgICAg IDxTaGFyZWQtSGl0LUJsb2Nrcz5OPC9TaGFyZWQtSGl0LUJsb2Nrcz4gICAgICAgICsKKyAgICAg ICA8U2hhcmVkLVJlYWQtQmxvY2tzPk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4gICAgICArCisgICAg ICAgPFNoYXJlZC1EaXJ0aWVkLUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+KworICAg ICAgIDxTaGFyZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxvY2tzPisKKyAg ICAgICA8TG9jYWwtSGl0LUJsb2Nrcz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAgICAgICAgICArCisg ICAgICAgPExvY2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxvY2tzPiAgICAgICAgKwor ICAgICAgIDxMb2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4gICsK KyAgICAgICA8TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRlbi1CbG9ja3M+ICAr CisgICAgICAgPFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4gICAgICAgICAg KworICAgICAgIDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRlbi1CbG9ja3M+ICAg ICsKKyAgICAgPC9QbGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIDxQbGFubmluZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgIDxTaGFyZWQtSGl0LUJsb2Nrcz5OPC9TaGFyZWQtSGl0LUJsb2Nrcz4gICAg ICAgICsKKyAgICAgICA8U2hhcmVkLVJlYWQtQmxvY2tzPk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4g ICAgICArCisgICAgICAgPFNoYXJlZC1EaXJ0aWVkLUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1C bG9ja3M+KworICAgICAgIDxTaGFyZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4t QmxvY2tzPisKKyAgICAgICA8TG9jYWwtSGl0LUJsb2Nrcz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAg ICAgICAgICArCisgICAgICAgPExvY2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxvY2tz PiAgICAgICAgKworICAgICAgIDxMb2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVk LUJsb2Nrcz4gICsKKyAgICAgICA8TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRl bi1CbG9ja3M+ICArCisgICAgICAgPFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nr cz4gICAgICAgICAgKworICAgICAgIDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRl bi1CbG9ja3M+ICAgICsKKyAgICAgICA8U3RvcmFnZS1JLU8tUmVhZD5OPC9TdG9yYWdlLUktTy1S ZWFkPiAgICAgICAgICArCisgICAgICAgPFN0b3JhZ2UtSS1PLVdyaXRlPk48L1N0b3JhZ2UtSS1P LVdyaXRlPiAgICAgICAgKworICAgICA8L1BsYW5uaW5nPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgPFBsYW5uaW5nLVRpbWU+Ti5OPC9QbGFubmluZy1UaW1l PiAgICAgICAgICAgICAgICArCisgICAgIDxUcmlnZ2Vycz4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICA8L1RyaWdnZXJzPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgPEV4ZWN1dGlvbj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFn ZS1JLU8tUmVhZD4gICAgICAgICAgKworICAgICAgIDxTdG9yYWdlLUktTy1Xcml0ZT5OPC9TdG9y YWdlLUktTy1Xcml0ZT4gICAgICAgICsKKyAgICAgPC9FeGVjdXRpb24+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxFeGVjdXRpb24tVGltZT5OLk48L0V4ZWN1 dGlvbi1UaW1lPiAgICAgICAgICAgICAgKworICAgPC9RdWVyeT4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyA8L2V4cGxhaW4+CisoMSByb3cpCisKK3NlbGVj dCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFsaXplLCBidWZmZXJzLCBm b3JtYXQgeWFtbCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICBleHBsYWlu X2ZpbHRlciAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0gUGxh bjogICAgICAgICAgICAgICAgICAgICAgKworICAgICBOb2RlIFR5cGU6ICJTZXEgU2NhbiIgICAg KworICAgICBQYXJhbGxlbCBBd2FyZTogZmFsc2UgICAgKworICAgICBBc3luYyBDYXBhYmxlOiBm YWxzZSAgICAgKworICAgICBSZWxhdGlvbiBOYW1lOiAiaW50OF90YmwiKworICAgICBBbGlhczog Imk4IiAgICAgICAgICAgICAgKworICAgICBTdGFydHVwIENvc3Q6IE4uTiAgICAgICAgKworICAg ICBUb3RhbCBDb3N0OiBOLk4gICAgICAgICAgKworICAgICBQbGFuIFJvd3M6IE4gICAgICAgICAg ICAgKworICAgICBQbGFuIFdpZHRoOiBOICAgICAgICAgICAgKworICAgICBBY3R1YWwgU3RhcnR1 cCBUaW1lOiBOLk4gKworICAgICBBY3R1YWwgVG90YWwgVGltZTogTi5OICAgKworICAgICBBY3R1 YWwgUm93czogTi5OICAgICAgICAgKworICAgICBBY3R1YWwgTG9vcHM6IE4gICAgICAgICAgKwor ICAgICBEaXNhYmxlZDogZmFsc2UgICAgICAgICAgKworICAgICBTaGFyZWQgSGl0IEJsb2Nrczog TiAgICAgKworICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4gICAgKworICAgICBTaGFyZWQgRGly dGllZCBCbG9ja3M6IE4gKworICAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKworICAgICBM b2NhbCBIaXQgQmxvY2tzOiBOICAgICAgKworICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAg KworICAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTiAgKworICAgICBMb2NhbCBXcml0dGVuIEJs b2NrczogTiAgKworICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKworICAgICBUZW1wIFdy aXR0ZW4gQmxvY2tzOiBOICAgKworICAgUGxhbm5pbmc6ICAgICAgICAgICAgICAgICAgKworICAg ICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKworICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4g ICAgKworICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4gKworICAgICBTaGFyZWQgV3JpdHRl biBCbG9ja3M6IE4gKworICAgICBMb2NhbCBIaXQgQmxvY2tzOiBOICAgICAgKworICAgICBMb2Nh bCBSZWFkIEJsb2NrczogTiAgICAgKworICAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTiAgKwor ICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKworICAgICBUZW1wIFJlYWQgQmxvY2tzOiBO ICAgICAgKworICAgICBUZW1wIFdyaXR0ZW4gQmxvY2tzOiBOICAgKworICAgICBTdG9yYWdlIEkv TyBSZWFkOiBOICAgICAgKworICAgICBTdG9yYWdlIEkvTyBXcml0ZTogTiAgICAgKworICAgUGxh bm5pbmcgVGltZTogTi5OICAgICAgICAgKworICAgVHJpZ2dlcnM6ICAgICAgICAgICAgICAgICAg KworICAgU2VyaWFsaXphdGlvbjogICAgICAgICAgICAgKworICAgICBUaW1lOiBOLk4gICAgICAg ICAgICAgICAgKworICAgICBPdXRwdXQgVm9sdW1lOiBOICAgICAgICAgKworICAgICBGb3JtYXQ6 ICJ0ZXh0IiAgICAgICAgICAgKworICAgICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKworICAg ICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4gICAgKworICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6 IE4gKworICAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKworICAgICBMb2NhbCBIaXQgQmxv Y2tzOiBOICAgICAgKworICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAgKworICAgICBMb2Nh bCBEaXJ0aWVkIEJsb2NrczogTiAgKworICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKwor ICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKworICAgICBUZW1wIFdyaXR0ZW4gQmxvY2tz OiBOICAgKworICAgRXhlY3V0aW9uOiAgICAgICAgICAgICAgICAgKworICAgICBTdG9yYWdlIEkv TyBSZWFkOiBOICAgICAgKworICAgICBTdG9yYWdlIEkvTyBXcml0ZTogTiAgICAgKworICAgRXhl Y3V0aW9uIFRpbWU6IE4uTgorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxh aW4gKGJ1ZmZlcnMsIGZvcm1hdCB0ZXh0KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7Cisg ICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9 TikKKygxIHJvdykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChidWZmZXJzLCBm b3JtYXQganNvbikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgKworICAgICAgICJQYXJhbGxl bCBBd2FyZSI6IGZhbHNlLCAgICArCisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAg ICsKKyAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJpbnQ4X3RibCIsKworICAgICAgICJBbGlhcyI6 ICJpOCIsICAgICAgICAgICAgICArCisgICAgICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAg ICsKKyAgICAgICAiVG90YWwgQ29zdCI6IE4uTiwgICAgICAgICAgKworICAgICAgICJQbGFuIFJv d3MiOiBOLCAgICAgICAgICAgICArCisgICAgICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAgICAg ICsKKyAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgKworICAgICAgICJTaGFyZWQg SGl0IEJsb2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAg ICsKKyAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQg V3JpdHRlbiBCbG9ja3MiOiBOLCArCisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAg ICsKKyAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBE aXJ0aWVkIEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwg ICsKKyAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdy aXR0ZW4gQmxvY2tzIjogTiAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgIlBsYW5uaW5nIjogeyAgICAgICAgICAgICAgICAgKworICAgICAgICJTaGFyZWQg SGl0IEJsb2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAg ICsKKyAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQg V3JpdHRlbiBCbG9ja3MiOiBOLCArCisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAg ICsKKyAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBE aXJ0aWVkIEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwg ICsKKyAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdy aXR0ZW4gQmxvY2tzIjogTiwgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAg ICsKKyAgICAgICAiU3RvcmFnZSBJL08gV3JpdGUiOiBOICAgICAgKworICAgICB9LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAg ICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdl IEkvTyBXcml0ZSI6IE4gICAgICArCisgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKwor LS0gQ2hlY2sgZXhwYW5zaW9uIG9mIHdpbmRvdyBkZWZpbml0aW9ucworc2VsZWN0IGV4cGxhaW5f ZmlsdGVyKCdleHBsYWluIHZlcmJvc2Ugc2VsZWN0IHN1bSh1bmlxdWUxKSBvdmVyIHcsIHN1bSh1 bmlxdWUyKSBvdmVyICh3IG9yZGVyIGJ5IGh1bmRyZWQpLCBzdW0odGVudGhvdXMpIG92ZXIgKHcg b3JkZXIgYnkgaHVuZHJlZCkgZnJvbSB0ZW5rMSB3aW5kb3cgdyBhcyAocGFydGl0aW9uIGJ5IHRl biknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cg IChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBzdW0odW5pcXVlMSkg T1ZFUiB3LCAoc3VtKHVuaXF1ZTIpIE9WRVIgdzEpLCAoc3VtKHRlbnRob3VzKSBPVkVSIHcxKSwg dGVuLCBodW5kcmVkCisgICBXaW5kb3c6IHcgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4pCisg ICAtPiAgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAg IE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cywgc3VtKHVu aXF1ZTIpIE9WRVIgdzEsIHN1bSh0ZW50aG91cykgT1ZFUiB3MQorICAgICAgICAgV2luZG93OiB3 MSBBUyAoUEFSVElUSU9OIEJZIHRlbmsxLnRlbiBPUkRFUiBCWSB0ZW5rMS5odW5kcmVkKQorICAg ICAgICAgLT4gIFNvcnQgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAg ICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzCisg ICAgICAgICAgICAgICBTb3J0IEtleTogdGVuazEudGVuLCB0ZW5rMS5odW5kcmVkCisgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnRlbmsxICAoY29zdD1OLk4uLk4uTiByb3dz PU4gd2lkdGg9TikKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1 bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cworKDExIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2Zp bHRlcignZXhwbGFpbiB2ZXJib3NlIHNlbGVjdCBzdW0odW5pcXVlMSkgb3ZlciB3MSwgc3VtKHVu aXF1ZTIpIG92ZXIgKHcxIG9yZGVyIGJ5IGh1bmRyZWQpLCBzdW0odGVudGhvdXMpIG92ZXIgKHcx IG9yZGVyIGJ5IGh1bmRyZWQgcm93cyAxMCBwcmVjZWRpbmcpIGZyb20gdGVuazEgd2luZG93IHcx IGFzIChwYXJ0aXRpb24gYnkgdGVuKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQor ICAgT3V0cHV0OiBzdW0odW5pcXVlMSkgT1ZFUiB3MSwgKHN1bSh1bmlxdWUyKSBPVkVSIHcyKSwg KHN1bSh0ZW50aG91cykgT1ZFUiB3MyksIHRlbiwgaHVuZHJlZAorICAgV2luZG93OiB3MSBBUyAo UEFSVElUSU9OIEJZIHRlbmsxLnRlbikKKyAgIC0+ICBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5O IHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEs IHVuaXF1ZTIsIHRlbnRob3VzLCAoc3VtKHVuaXF1ZTIpIE9WRVIgdzIpLCBzdW0odGVudGhvdXMp IE9WRVIgdzMKKyAgICAgICAgIFdpbmRvdzogdzMgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4g T1JERVIgQlkgdGVuazEuaHVuZHJlZCBST1dTICdOJzo6YmlnaW50IFBSRUNFRElORykKKyAgICAg ICAgIC0+ICBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAg ICAgICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3Vz LCBzdW0odW5pcXVlMikgT1ZFUiB3MgorICAgICAgICAgICAgICAgV2luZG93OiB3MiBBUyAoUEFS VElUSU9OIEJZIHRlbmsxLnRlbiBPUkRFUiBCWSB0ZW5rMS5odW5kcmVkKQorICAgICAgICAgICAg ICAgLT4gIFNvcnQgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgICAg ICAgICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3Vz CisgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogdGVuazEudGVuLCB0ZW5rMS5odW5kcmVk CisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnRlbmsxICAoY29z dD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cworKDE0IHJvd3Mp CisKKy0tIENoZWNrIG91dHB1dCBpbmNsdWRpbmcgSS9PIHRpbWluZ3MuICBUaGVzZSBmaWVsZHMg YXJlIGNvbmRpdGlvbmFsCistLSBidXQgYWx3YXlzIHNldCBpbiBKU09OIGZvcm1hdCwgc28gY2hl Y2sgdGhlbSBvbmx5IGluIHRoaXMgY2FzZS4KK3NldCB0cmFja19pb190aW1pbmcgPSBvbjsKK3Nl bGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IGpz b24pIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgZXhwbGFpbl9maWx0 ZXIgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgICsKKyAgICAgICAiUGFyYWxsZWwg QXdhcmUiOiBmYWxzZSwgICAgICsKKyAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAg ICsKKyAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJpbnQ4X3RibCIsICsKKyAgICAgICAiQWxpYXMi OiAiaTgiLCAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RhcnR1cCBDb3N0IjogTi5OLCAgICAg ICAgICsKKyAgICAgICAiVG90YWwgQ29zdCI6IE4uTiwgICAgICAgICAgICsKKyAgICAgICAiUGxh biBSb3dzIjogTiwgICAgICAgICAgICAgICsKKyAgICAgICAiUGxhbiBXaWR0aCI6IE4sICAgICAg ICAgICAgICsKKyAgICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IE4uTiwgICsKKyAgICAgICAi QWN0dWFsIFRvdGFsIFRpbWUiOiBOLk4sICAgICsKKyAgICAgICAiQWN0dWFsIFJvd3MiOiBOLk4s ICAgICAgICAgICsKKyAgICAgICAiQWN0dWFsIExvb3BzIjogTiwgICAgICAgICAgICsKKyAgICAg ICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9j a3MiOiBOLCAgICAgICsKKyAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogTiwgICAgICsKKyAg ICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAgICAgICAiU2hhcmVkIFdyaXR0 ZW4gQmxvY2tzIjogTiwgICsKKyAgICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IE4sICAgICAgICsK KyAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiTG9jYWwgRGly dGllZCBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAg ICsKKyAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgICsKKyAgICAgICAiVGVtcCBX cml0dGVuIEJsb2NrcyI6IE4sICAgICsKKyAgICAgICAiU2hhcmVkIEkvTyBSZWFkIFRpbWUiOiBO Lk4sICsKKyAgICAgICAiU2hhcmVkIEkvTyBXcml0ZSBUaW1lIjogTi5OLCsKKyAgICAgICAiTG9j YWwgSS9PIFJlYWQgVGltZSI6IE4uTiwgICsKKyAgICAgICAiTG9jYWwgSS9PIFdyaXRlIFRpbWUi OiBOLk4sICsKKyAgICAgICAiVGVtcCBJL08gUmVhZCBUaW1lIjogTi5OLCAgICsKKyAgICAgICAi VGVtcCBJL08gV3JpdGUgVGltZSI6IE4uTiAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgIlBsYW5uaW5nIjogeyAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiU2hhcmVkIFJlYWQgQmxv Y2tzIjogTiwgICAgICsKKyAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAg ICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAgICAgICAiTG9jYWwgSGl0IEJs b2NrcyI6IE4sICAgICAgICsKKyAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsK KyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiTG9jYWwgV3Jp dHRlbiBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAg ICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4sICAgICsKKyAgICAgICAiU2hhcmVk IEkvTyBSZWFkIFRpbWUiOiBOLk4sICsKKyAgICAgICAiU2hhcmVkIEkvTyBXcml0ZSBUaW1lIjog Ti5OLCsKKyAgICAgICAiTG9jYWwgSS9PIFJlYWQgVGltZSI6IE4uTiwgICsKKyAgICAgICAiTG9j YWwgSS9PIFdyaXRlIFRpbWUiOiBOLk4sICsKKyAgICAgICAiVGVtcCBJL08gUmVhZCBUaW1lIjog Ti5OLCAgICsKKyAgICAgICAiVGVtcCBJL08gV3JpdGUgVGltZSI6IE4uTiwgICsKKyAgICAgICAi U3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gV3JpdGUi OiBOICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg IlBsYW5uaW5nIFRpbWUiOiBOLk4sICAgICAgICAgICsKKyAgICAgIlRyaWdnZXJzIjogWyAgICAg ICAgICAgICAgICAgICsKKyAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgIkV4ZWN1dGlvbiI6IHsgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08g UmVhZCI6IE4sICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gV3JpdGUiOiBOICAgICAgICsK KyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiBU aW1lIjogTi5OICAgICAgICAgICsKKyAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyBdCisoMSByb3cpCisKK3NldCB0cmFja19pb190aW1pbmcgPSBvZmY7CistLSBTRVRUSU5H UyBvcHRpb24KKy0tIFdlIGhhdmUgdG8gaWdub3JlIG90aGVyIHNldHRpbmdzIHRoYXQgbWlnaHQg YmUgaW1wb3NlZCBieSB0aGUgZW52aXJvbm1lbnQsCistLSBzbyBwcmludGluZyB0aGUgd2hvbGUg U2V0dGluZ3MgZmllbGQgdW5mb3J0dW5hdGVseSB3b24ndCBkby4KK2JlZ2luOworc2V0IGxvY2Fs IHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK3NlbGVjdCB0cnVlIGFzICJP SyIKKyAgZnJvbSBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoc2V0dGluZ3MpIHNlbGVjdCAqIGZy b20gaW50OF90YmwgaTgnKSBsbgorICB3aGVyZSBsbiB+ICdeICpTZXR0aW5nczogLipwbGFuX2Nh Y2hlX21vZGUgPSAnJ2ZvcmNlX2dlbmVyaWNfcGxhbicnJzsKKyBPSyAKKy0tLS0KKyB0CisoMSBy b3cpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcl90b19qc29uKCdleHBsYWluIChzZXR0aW5ncywg Zm9ybWF0IGpzb24pIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKSAjPiAnezAsU2V0dGluZ3Ms cGxhbl9jYWNoZV9tb2RlfSc7CisgICAgICAgP2NvbHVtbj8gICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgImZvcmNlX2dlbmVyaWNfcGxhbiIKKygxIHJvdykKKworcm9sbGJhY2s7Cist LSBHRU5FUklDX1BMQU4gb3B0aW9uCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGdl bmVyaWNfcGxhbikgc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0aG91c2FuZCA9ICQx Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1O KQorICAgUmVjaGVjayBDb25kOiAodGhvdXNhbmQgPSAkTikKKyAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cyAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRo PU4pCisgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSAkTikKKyg0IHJvd3MpCisKKy0t IHNob3VsZCBmYWlsCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGdl bmVyaWNfcGxhbikgc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0aG91c2FuZCA9ICQx Jyk7CitFUlJPUjogIEVYUExBSU4gb3B0aW9ucyBBTkFMWVpFIGFuZCBHRU5FUklDX1BMQU4gY2Fu bm90IGJlIHVzZWQgdG9nZXRoZXIKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBleHBsYWlu X2ZpbHRlcih0ZXh0KSBsaW5lIDUgYXQgRk9SIG92ZXIgRVhFQ1VURSBzdGF0ZW1lbnQKKy0tIE1F TU9SWSBvcHRpb24KK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5KSBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAo Y29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE1lbW9yeTogdXNlZD1Oa0IgIGFsbG9j YXRlZD1Oa0IKKygyIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVt b3J5LCBhbmFseXplLCBidWZmZXJzIG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29z dD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5O IGxvb3BzPU4pCisgICBNZW1vcnk6IHVzZWQ9TmtCICBhbGxvY2F0ZWQ9TmtCCisgUGxhbm5pbmcg VGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworc2VsZWN0 IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChtZW1vcnksIHN1bW1hcnksIGZvcm1hdCB5YW1sKSBz ZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLSBQbGFuOiAgICAgICAgICAg ICAgICAgICAgICArCisgICAgIE5vZGUgVHlwZTogIlNlcSBTY2FuIiAgICArCisgICAgIFBhcmFs bGVsIEF3YXJlOiBmYWxzZSAgICArCisgICAgIEFzeW5jIENhcGFibGU6IGZhbHNlICAgICArCisg ICAgIFJlbGF0aW9uIE5hbWU6ICJpbnQ4X3RibCIrCisgICAgIEFsaWFzOiAiaTgiICAgICAgICAg ICAgICArCisgICAgIFN0YXJ0dXAgQ29zdDogTi5OICAgICAgICArCisgICAgIFRvdGFsIENvc3Q6 IE4uTiAgICAgICAgICArCisgICAgIFBsYW4gUm93czogTiAgICAgICAgICAgICArCisgICAgIFBs YW4gV2lkdGg6IE4gICAgICAgICAgICArCisgICAgIERpc2FibGVkOiBmYWxzZSAgICAgICAgICAr CisgICBQbGFubmluZzogICAgICAgICAgICAgICAgICArCisgICAgIE1lbW9yeSBVc2VkOiBOICAg ICAgICAgICArCisgICAgIE1lbW9yeSBBbGxvY2F0ZWQ6IE4gICAgICArCisgICBQbGFubmluZyBU aW1lOiBOLk4KKygxIHJvdykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChtZW1v cnksIGFuYWx5emUsIGZvcm1hdCBqc29uKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7Cisg ICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW4iOiB7ICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLCAgICArCisg ICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICsKKyAgICAgICAiQXN5bmMgQ2FwYWJs ZSI6IGZhbHNlLCAgICAgKworICAgICAgICJSZWxhdGlvbiBOYW1lIjogImludDhfdGJsIiwrCisg ICAgICAgIkFsaWFzIjogImk4IiwgICAgICAgICAgICAgICsKKyAgICAgICAiU3RhcnR1cCBDb3N0 IjogTi5OLCAgICAgICAgKworICAgICAgICJUb3RhbCBDb3N0IjogTi5OLCAgICAgICAgICArCisg ICAgICAgIlBsYW4gUm93cyI6IE4sICAgICAgICAgICAgICsKKyAgICAgICAiUGxhbiBXaWR0aCI6 IE4sICAgICAgICAgICAgKworICAgICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjogTi5OLCArCisg ICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjogTi5OLCAgICsKKyAgICAgICAiQWN0dWFsIFJvd3Mi OiBOLk4sICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiBOLCAgICAgICAgICArCisg ICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBC bG9ja3MiOiBOLCAgICAgKworICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisg ICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0 ZW4gQmxvY2tzIjogTiwgKworICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisg ICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGll ZCBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisg ICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVu IEJsb2NrcyI6IE4gICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICJQbGFubmluZyI6IHsgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBC bG9ja3MiOiBOLCAgICAgKworICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisg ICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0 ZW4gQmxvY2tzIjogTiwgKworICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisg ICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGll ZCBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisg ICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVu IEJsb2NrcyI6IE4sICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisg ICAgICAgIlN0b3JhZ2UgSS9PIFdyaXRlIjogTiwgICAgICsKKyAgICAgICAiTWVtb3J5IFVzZWQi OiBOLCAgICAgICAgICAgKworICAgICAgICJNZW1vcnkgQWxsb2NhdGVkIjogTiAgICAgICArCisg ICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW5uaW5nIFRpbWUi OiBOLk4sICAgICAgICAgKworICAgICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICArCisg ICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiI6IHsg ICAgICAgICAgICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisg ICAgICAgIlN0b3JhZ2UgSS9PIFdyaXRlIjogTiAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAiRXhlY3V0aW9uIFRpbWUiOiBOLk4gICAgICAgICArCisg ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBdCisoMSByb3cpCisKK3ByZXBh cmUgaW50OF9xdWVyeSBhcyBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Oworc2VsZWN0IGV4cGxh aW5fZmlsdGVyKCdleHBsYWluIChtZW1vcnkpIGV4ZWN1dGUgaW50OF9xdWVyeScpOworICAgICAg ICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisg ICBNZW1vcnk6IHVzZWQ9TmtCICBhbGxvY2F0ZWQ9TmtCCisoMiByb3dzKQorCistLSBUZXN0IEVY UExBSU4gKEdFTkVSSUNfUExBTikgd2l0aCBwYXJ0aXRpb24gcHJ1bmluZworLS0gcGFydGl0aW9u cyBzaG91bGQgYmUgcHJ1bmVkIGF0IHBsYW4gdGltZSwgYmFzZWQgb24gY29uc3RhbnRzLAorLS0g YnV0IHRoZXJlIHNob3VsZCBiZSBubyBwcnVuaW5nIGJhc2VkIG9uIHBhcmFtZXRlciBwbGFjZWhv bGRlcnMKK2NyZWF0ZSB0YWJsZSBnZW5fcGFydCAoCisgIGtleTEgaW50ZWdlciBub3QgbnVsbCwK KyAga2V5MiBpbnRlZ2VyIG5vdCBudWxsCispIHBhcnRpdGlvbiBieSBsaXN0IChrZXkxKTsKK2Ny ZWF0ZSB0YWJsZSBnZW5fcGFydF8xCisgIHBhcnRpdGlvbiBvZiBnZW5fcGFydCBmb3IgdmFsdWVz IGluICgxKQorICBwYXJ0aXRpb24gYnkgcmFuZ2UgKGtleTIpOworY3JlYXRlIHRhYmxlIGdlbl9w YXJ0XzFfMQorICBwYXJ0aXRpb24gb2YgZ2VuX3BhcnRfMSBmb3IgdmFsdWVzIGZyb20gKDEpIHRv ICgyKTsKK2NyZWF0ZSB0YWJsZSBnZW5fcGFydF8xXzIKKyAgcGFydGl0aW9uIG9mIGdlbl9wYXJ0 XzEgZm9yIHZhbHVlcyBmcm9tICgyKSB0byAoMyk7CitjcmVhdGUgdGFibGUgZ2VuX3BhcnRfMgor ICBwYXJ0aXRpb24gb2YgZ2VuX3BhcnQgZm9yIHZhbHVlcyBpbiAoMik7CistLSBzaG91bGQgc2Nh biBnZW5fcGFydF8xXzEgYW5kIGdlbl9wYXJ0XzFfMiwgYnV0IG5vdCBnZW5fcGFydF8yCitzZWxl Y3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGdlbmVyaWNfcGxhbikgc2VsZWN0IGtleTEsIGtl eTIgZnJvbSBnZW5fcGFydCB3aGVyZSBrZXkxID0gMSBhbmQga2V5MiA9ICQxJyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZCAgKGNvc3Q9Ti5OLi5OLk4g cm93cz1OIHdpZHRoPU4pCisgICAtPiAgU2VxIFNjYW4gb24gZ2VuX3BhcnRfMV8xIGdlbl9wYXJ0 XzEgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgRmlsdGVyOiAoKGtl eTEgPSBOKSBBTkQgKGtleTIgPSAkTikpCisgICAtPiAgU2VxIFNjYW4gb24gZ2VuX3BhcnRfMV8y IGdlbl9wYXJ0XzIgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgRmls dGVyOiAoKGtleTEgPSBOKSBBTkQgKGtleTIgPSAkTikpCisoNSByb3dzKQorCitkcm9wIHRhYmxl IGdlbl9wYXJ0OworLS0KKy0tIFRlc3QgcHJvZHVjdGlvbiBvZiBwZXItd29ya2VyIGRhdGEKKy0t CistLSBVbmZvcnR1bmF0ZWx5LCBiZWNhdXNlIHdlIGRvbid0IGtub3cgaG93IG1hbnkgd29ya2Vy IHByb2Nlc3NlcyB3ZSdsbAorLS0gYWN0dWFsbHkgZ2V0IChtYXliZSBub25lIGF0IGFsbCksIHdl IGNhbid0IGV4YW1pbmUgdGhlICJXb3JrZXJzIiBvdXRwdXQKKy0tIGluIGFueSBkZXRhaWwuICBX ZSBjYW4gY2hlY2sgdGhhdCBpdCBwYXJzZXMgY29ycmVjdGx5IGFzIEpTT04sIGFuZCB0aGVuCist LSByZW1vdmUgaXQgZnJvbSB0aGUgZGlzcGxheWVkIHJlc3VsdHMuCitiZWdpbjsKKy0tIGVuY291 cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK3NldCBwYXJhbGxlbF9zZXR1cF9jb3N0PTA7Citz ZXQgcGFyYWxsZWxfdHVwbGVfY29zdD0wOworc2V0IG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3Np emU9MDsKK3NldCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyPTQ7CitzZWxlY3QganNv bmJfcHJldHR5KAorICBleHBsYWluX2ZpbHRlcl90b19qc29uKCdleHBsYWluIChhbmFseXplLCB2 ZXJib3NlLCBidWZmZXJzLCBmb3JtYXQganNvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxlY3QgKiBmcm9tIHRlbmsxIG9yZGVyIGJ5IHRlbnRob3VzJykKKyAgLS0gcmVtb3ZlICJXb3Jr ZXJzIiBub2RlIG9mIHRoZSBTZXEgU2NhbiBwbGFuIG5vZGUKKyAgIy0gJ3swLFBsYW4sUGxhbnMs MCxQbGFucywwLFdvcmtlcnN9JworICAtLSByZW1vdmUgIldvcmtlcnMiIG5vZGUgb2YgdGhlIFNv cnQgcGxhbiBub2RlCisgICMtICd7MCxQbGFuLFBsYW5zLDAsV29ya2Vyc30nCisgIC0tIEFsc28g cmVtb3ZlIGl0cyBzb3J0LXR5cGUgZmllbGRzLCBhcyB0aG9zZSBhcmVuJ3QgMTAwJSBzdGFibGUK KyAgIy0gJ3swLFBsYW4sUGxhbnMsMCxTb3J0IE1ldGhvZH0nCisgICMtICd7MCxQbGFuLFBsYW5z LDAsU29ydCBTcGFjZSBUeXBlfScKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICBqc29uYl9w cmV0dHkgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAiUGxhbiI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgIlBsYW5zIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGlh cyI6ICJ0ZW5rMSIsICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJPdXRwdXQiOiBbICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidW5pcXVlMSIsICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidW5pcXVlMiIsICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidHdvIiwgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ciIsICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVuIiwgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdlbnR5IiwgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHVuZHJlZCIs ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhv dXNhbmQiLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAidHdvdGhvdXNhbmQiLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZml2ZXRob3VzIiwgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidGVudGhvdXMiLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAib2RkIiwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbiIsICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5ndTEiLCAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5ndTIiLCAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nNCIgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTY2hl bWEiOiAicHVibGljIiwgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLCAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJQbGFuIFJvd3MiOiAwLCAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJQbGFuIFdpZHRoIjogMCwgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJUb3RhbCBDb3N0IjogMC4wLCAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgUm93cyI6IDAuMCwgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAwLCAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdGFydHVwIENvc3Qi OiAwLjAsICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc3luYyBD YXBhYmxlIjogZmFsc2UsICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJS ZWxhdGlvbiBOYW1lIjogInRlbmsxIiwgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJQYXJhbGxlbCBBd2FyZSI6IHRydWUsICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogMCwgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgVG90YWwgVGltZSI6IDAuMCwgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IDAs ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBCbG9j a3MiOiAwLCAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgU3Rh cnR1cCBUaW1lIjogMC4wLCAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJl bnQgUmVsYXRpb25zaGlwIjogIk91dGVyIiwrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiT3V0cHV0IjogWyAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTEiLCAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1 ZTIiLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg InR3byIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgImZvdXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgICAgInRlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgICAgInR3ZW50eSIsICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgImh1bmRyZWQiLCAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInRob3VzYW5kIiwgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInR3b3Rob3VzYW5kIiwgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgImZpdmV0aG91cyIsICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlbnRob3Vz IiwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIm9k ZCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgImV2ZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgInN0cmluZ3UxIiwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgInN0cmluZ3UyIiwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgInN0cmluZzQiICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU29ydCBLZXkiOiBbICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlbmsxLnRlbnRo b3VzIiAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICBdLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTm9k ZSBUeXBlIjogIlNvcnQiLCAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAiUGxhbiBSb3dzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAiUGxhbiBXaWR0aCI6IDAsICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAiVG90YWwgQ29zdCI6IDAuMCwgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFJvd3MiOiAwLjAsICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMCwgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZh bHNlLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiUGFyYWxsZWwgQXdh cmUiOiBmYWxzZSwgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU29ydCBT cGFjZSBVc2VkIjogMCwgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAi TG9jYWwgSGl0IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAiQWN0dWFsIFRvdGFsIFRpbWUiOiAwLjAsICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogMCwgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6 IDAuMCwgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9u c2hpcCI6ICJPdXRlciIsICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiVGVtcCBXcml0 dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTG9j YWwgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogMCAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgIk91dHB1dCI6IFsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ1bmlxdWUxIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ1bmlxdWUyIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ0d28iLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJmb3Vy IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICJ0ZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICJ0d2VudHkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICJodW5kcmVkIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICJ0aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICJ0d290aG91c2FuZCIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJmaXZldGhvdXMiLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ0ZW50aG91cyIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJvZGQiLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJldmVuIiwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJz dHJpbmd1MSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICJzdHJpbmd1MiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICJzdHJpbmc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJHYXRoZXIgTWVyZ2UiLCAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlBsYW4gUm93cyI6IDAsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlBsYW4gV2lkdGgiOiAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlRvdGFsIENvc3QiOiAw LjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBS b3dzIjogMC4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFj dHVhbCBMb29wcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgIlN0YXJ0dXAgQ29zdCI6IDAuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgIldvcmtlcnMgUGxhbm5lZCI6IDAsICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiAwLCAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIldvcmtlcnMgTGF1bmNoZWQi OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBUb3Rh bCBUaW1lIjogMC4wLCAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2Fs IFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg IlNoYXJlZCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgIkFjdHVhbCBTdGFydHVwIFRpbWUiOiAwLjAsICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2Nr cyI6IDAsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVu IEJsb2NrcyI6IDAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB9LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAiUGxhbm5p bmciOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogMCwgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0b3JhZ2UgSS9PIFdyaXRlIjogMCwg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBSZWFkIEJsb2Nr cyI6IDAsICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlRlbXAgV3JpdHRl biBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2Fs IERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg IkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IDAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAiRXhlY3V0aW9uIjogeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0b3JhZ2UgSS9PIFJl YWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0b3JhZ2Ug SS9PIFdyaXRlIjogMCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB9LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAi UGxhbm5pbmcgVGltZSI6IDAuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAiRXhlY3V0aW9uIFRpbWUiOiAwLjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgXQorKDEgcm93KQorCityb2xsYmFjazsKKy0tIFRlc3QgZGlzcGxheSBvZiB0ZW1w b3Jhcnkgb2JqZWN0cworY3JlYXRlIHRlbXAgdGFibGUgdDEoZjEgZmxvYXQ4KTsKK2NyZWF0ZSBm dW5jdGlvbiBwZ190ZW1wLm15c2luKGZsb2F0OCkgcmV0dXJucyBmbG9hdDggbGFuZ3VhZ2UgcGxw Z3NxbAorYXMgJ2JlZ2luIHJldHVybiBzaW4oJDEpOyBlbmQnOworc2VsZWN0IGV4cGxhaW5fZmls dGVyKCdleHBsYWluICh2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIHQxIHdoZXJlIHBnX3RlbXAubXlz aW4oZjEpIDwgMC41Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHBnX3RlbXAudDEgIChjb3N0 PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBmMQorICAgRmlsdGVyOiAocGdf dGVtcC5teXNpbih0MS5mMSkgPCAnTi5OJzo6ZG91YmxlIHByZWNpc2lvbikKKygzIHJvd3MpCisK Ky0tIFRlc3QgY29tcHV0ZV9xdWVyeV9pZAorc2V0IGNvbXB1dGVfcXVlcnlfaWQgPSBvbjsKK3Nl bGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgc2VsZWN0ICogZnJvbSBpbnQ4 X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy5pbnQ4X3Ri bCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IHExLCBxMgor IFF1ZXJ5IElkZW50aWZpZXI6IE4KKygzIHJvd3MpCisKKy0tIFRlc3QgY29tcHV0ZV9xdWVyeV9p ZCB3aXRoIHV0aWxpdHkgc3RhdGVtZW50cyBjb250YWluaW5nIHBsYW5uYWJsZSBxdWVyeQorc2Vs ZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBkZWNsYXJlIHRlc3RfY3VyIGN1 cnNvciBmb3Igc2VsZWN0ICogZnJvbSBpbnQ4X3RibCcpOworICAgICAgICAgICAgICAgICAgICAg ICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2Fu IG9uIHB1YmxpYy5pbnQ4X3RibCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBP dXRwdXQ6IHExLCBxMgorIFF1ZXJ5IElkZW50aWZpZXI6IE4KKygzIHJvd3MpCisKK3NlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgY3JlYXRlIHRhYmxlIHRlc3RfY3RhcyBh cyBzZWxlY3QgMScpOworICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdCAgKGNvc3Q9 Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IE4KKyBRdWVyeSBJZGVudGlmaWVy OiBOCisoMyByb3dzKQorCistLSBUZXN0IFNFUklBTElaRSBvcHRpb24KK3NlbGVjdCBleHBsYWlu X2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixzZXJpYWxpemUpIHNlbGVjdCAq IGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2Nh biBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwg dGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcwor IFNlcmlhbGl6YXRpb246IHRpbWU9Ti5OIG1zICBvdXRwdXQ9TmtCICBmb3JtYXQ9dGV4dAorIEV4 ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYW5hbHl6ZSxzZXJpYWxpemUgdGV4dCxidWZmZXJzLHRpbWluZyBvZmYpIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1O Lk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5u aW5nIFRpbWU6IE4uTiBtcworIFNlcmlhbGl6YXRpb246IG91dHB1dD1Oa0IgIGZvcm1hdD10ZXh0 CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmls dGVyKCdleHBsYWluIChhbmFseXplLHNlcmlhbGl6ZSBiaW5hcnksYnVmZmVycyx0aW1pbmcpIHNl bGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChh Y3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4u TiBtcworIFNlcmlhbGl6YXRpb246IHRpbWU9Ti5OIG1zICBvdXRwdXQ9TmtCICBmb3JtYXQ9Ymlu YXJ5CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworLS0gdGhpcyB0ZXN0cyBh biBlZGdlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBubyBkYXRhIHRvIHJldHVybgorc2VsZWN0IGV4cGxh aW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgY3JlYXRl IHRlbXAgdGFibGUgZXhwbGFpbl90ZW1wIGFzIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNv c3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4u TiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIFNlcmlhbGl6YXRpb246IHRpbWU9 Ti5OIG1zICBvdXRwdXQ9TmtCICBmb3JtYXQ9dGV4dAorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMK Kyg0IHJvd3MpCisKKy0tIFRlc3QgdHVwbGVzdG9yZSBzdG9yYWdlIHVzYWdlIGluIFdpbmRvdyBh Z2dyZWdhdGUgKG1lbW9yeSBjYXNlKQorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChh bmFseXplLGJ1ZmZlcnMgb2ZmLGNvc3RzIG9mZikgc2VsZWN0IHN1bShuKSBvdmVyKCkgZnJvbSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMCkgYShuKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHRpbWU9Ti5OLi5O Lk4gcm93cz1OLk4gbG9vcHM9TikKKyAgIFdpbmRvdzogdzEgQVMgKCkKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBhIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBs YW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg2IHJvd3MpCisK Ky0tIFRlc3QgdHVwbGVzdG9yZSBzdG9yYWdlIHVzYWdlIGluIFdpbmRvdyBhZ2dyZWdhdGUgKGRp c2sgY2FzZSkKK3NldCB3b3JrX21lbSB0byA2NDsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixjb3N0cyBvZmYpIHNlbGVjdCBzdW0obikgb3Zlcigp IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMjUwMCkgYShuKScpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHRp bWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyAgIFdpbmRvdzogdzEgQVMgKCkKKyAgIFN0 b3JhZ2U6IERpc2sgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMgYSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9 TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNiBy b3dzKQorCistLSBUZXN0IHR1cGxlc3RvcmUgc3RvcmFnZSB1c2FnZSBpbiBXaW5kb3cgYWdncmVn YXRlIChtZW1vcnkgYW5kIGRpc2sgY2FzZSwgZmluYWwgcmVzdWx0IGlzIGRpc2spCitzZWxlY3Qg ZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsY29zdHMgb2ZmKSBz ZWxlY3Qgc3VtKG4pIG92ZXIocGFydGl0aW9uIGJ5IG0pIGZyb20gKFNFTEVDVCBuIDwgMyBhcyBt LCBuIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMjUwMCkgYShuKSknKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBXaW5kb3c6 IHcxIEFTIChQQVJUSVRJT04gQlkgKChhLm4gPCBOKSkpCisgICBTdG9yYWdlOiBEaXNrICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgorICAgLT4gIFNvcnQgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9 Ti5OIGxvb3BzPU4pCisgICAgICAgICBTb3J0IEtleTogKChhLm4gPCBOKSkKKyAgICAgICAgIFNv cnQgTWV0aG9kOiBleHRlcm5hbCBtZXJnZSAgRGlzazogTmtCCisgICAgICAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgYSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1O Lk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24gVGltZTogTi5O IG1zCisoOSByb3dzKQorCityZXNldCB3b3JrX21lbTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK aW5kZXggZGRiZTRjNjQ5NzEuLjkyZTI5MDY5OTg5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dApAQCAtMjY5MSw2ICsyNjkxLDcgQEAgU1NMCiBTU0xFeHRlbnNpb25JbmZvQ29udGV4dAogU1NM X0NUWAogU1RBUlRVUElORk8KK1N0b3JhZ2VJT1VzYWdlCiBTVFJMRU4KIFNWCiBTWU5DSFJPTkla QVRJT05fQkFSUklFUgoKYmFzZS1jb21taXQ6IGUzMDk0Njc5Yjk4MzVmZWQyZWE1YzdkNzg3N2U4 YWM4ZTc1NTRkMzMKLS0gCjIuNDguMQoK --=_0192035d486a49a609140789823a4b4a--