Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uD1fE-005VvN-5H for pgsql-hackers@arkaria.postgresql.org; Thu, 08 May 2025 13:51:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uD1fD-003UdN-8q for pgsql-hackers@arkaria.postgresql.org; Thu, 08 May 2025 13:51:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uD1fC-003UdE-Pp for pgsql-hackers@lists.postgresql.org; Thu, 08 May 2025 13:51:50 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uD1f7-000q0S-27 for pgsql-hackers@postgresql.org; Thu, 08 May 2025 13:51:50 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 92894613DD; Thu, 8 May 2025 22:51:39 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_5619aff05baac7ada54a1e7eb21ccee5" Content-Transfer-Encoding: 7bit Date: Thu, 08 May 2025 22:51:38 +0900 From: torikoshia To: Jelte Fennema-Nio Cc: andres@anarazel.de, tgl@sss.pgh.pa.us, pgsql-hackers@postgresql.org, rjuju123@gmail.com, Bruce Momjian Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information In-Reply-To: <0310f2ff46d990485f96624ac1744c01@oss.nttdata.com> 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> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <192906398eaa10720193d6433d64f0f6@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_5619aff05baac7ada54a1e7eb21ccee5 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2025-04-11 22:18, torikoshia wrote: > On 2025-03-25 10:27, torikoshia wrote: >> On 2025-03-22 20:23, Jelte Fennema-Nio wrote: >> >>> On Wed, 19 Mar 2025 at 14:15, torikoshia >>> wrote: >>>> BTW based on your discussion, I thought this patch could not be >>>> merged >>>> anytime soon. Does that align with your understanding? >>> >>> Yeah, that aligns with my understanding. I don't think it's realistic >>> to get this merged before the code freeze, but I think both of the >>> below issues could be resolved. >>> >>>> - With bgworker-based AIO, this patch could mislead users into >>>> underestimating the actual storage I/O load, which is undesirable. >>> >>> To resolve this, I think the patch would need to change to not report >>> anything if bgworker-based AIO is used. >> >> Agreed. >> I feel the new GUC io_method can be used to determine whether >> bgworker-based AIO is being used. > > I took this approach and when io_method=worker, no additional output > is shown in the attached patch. Rebased the patch. -- Regards, -- Atsushi Torikoshi Seconded from NTT DATA GROUP CORPORATION to SRA OSS K.K. --=_5619aff05baac7ada54a1e7eb21ccee5 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Disposition: attachment; filename=v5-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch; size=72836 RnJvbSA4MjI2MjBiN2Q3YWYyODk0YWQxMjY3OTdiYTUyY2Q3ZjMzMjZhNjc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpQHNyYW9zcy5j by5qcD4KRGF0ZTogVGh1LCA4IE1heSAyMDI1IDIyOjQzOjAyICswOTAwClN1YmplY3Q6IFtQQVRD SCB2NV0gQWRkIHN0b3JhZ2UgSS9PIHRyYWNraW5nIHRvICdCVUZGRVJTJyBvcHRpb24KClRoZSAn QlVGRkVSUycgb3B0aW9uIGN1cnJlbnRseSBpbmRpY2F0ZXMgd2hldGhlciBhIGJsb2NrIGhpdCB0 aGUgc2hhcmVkCmJ1ZmZlciwgYnV0IGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBjYWNo ZSBoaXQgaW4gdGhlIE9TIGNhY2hlIG9yCmEgc3RvcmFnZSBJL08gb3BlcmF0aW9uLgpXaGlsZSBz aGFyZWQgYnVmZmVycyBhbmQgT1MgY2FjaGUgb2ZmZXIgc2ltaWxhciBwZXJmb3JtYW5jZSwgc3Rv cmFnZQpJL08gaXMgc2lnbmlmaWNhbnRseSBzbG93ZXIgaW4gY29tcGFyaXNvbiBpbiBnZW5lcmFs LiAgQnkgbWVhc3VyaW5nCnRoZSBudW1iZXJzIG9mIHN0b3JhZ2UgSS9PIHJlYWQgYW5kIHdyaXRl LCB3ZSBjYW4gYmV0dGVyIGlkZW50aWZ5IGlmCnN0b3JhZ2UgSS9PIGlzIGEgYm90dGxlbmVjayBp biBwZXJmb3JtYW5jZS4KCkFkZGVkIHRyYWNraW5nIG9mIHN0b3JhZ2UgSS9PIHVzYWdlIGJ5IGNh bGxpbmcgZ2V0cnVzYWdlKDIpIGF0IGJvdGggdGhlCnBsYW5uaW5nIGFuZCBleGVjdXRpb24gcGhh c2Ugc3RhcnQgYW5kIGVuZCBwb2ludHMuCgpBIG1vcmUgZ3JhbnVsYXIgYXBwcm9hY2ggYXMgd2Vs bCBhcyBjdXJyZW50IEJVRkZFUlMgb3B0aW9uKHRyYWNraW5nIGF0CmVhY2ggcGxhbiBub2RlKSB3 YXMgY29uc2lkZXJlZCBidXQgZm91bmQgdG8gYmUgaW1wcmFjdGljYWwgZHVlIHRvIHRoZQpoaWdo IHBlcmZvcm1hbmNlIGNvc3Qgb2YgZnJlcXVlbnQgZ2V0cnVzYWdlKCkgY2FsbHMuCgpUaGlzIG91 dHB1dCBpcyBzaG93biB3aGVuIGlvX21ldGhvZD13b3JrZXIsIHNpbmNlIGFzeW5jaHJvbm91cyB3 b3JrZXJzCmhhbmRsZSBJL08gZm9yIG11bHRpcGxlIHByb2Nlc3NlcywgYW5kIGlzb2xhdGluZyB0 aGUgRVhQTEFJTiB0YXJnZXQncwpJL08gaXMgZGlmZmljdWx0LgoKVE9ETzoKSSBiZWxpZXZlIHRo aXMgaW5mb3JtYXRpb24gaXMgbWFpbmx5IHVzZWZ1bCB3aGVuIHVzZWQgaW4gYXV0b19leHBsYWlu LgpJJ20gZ29pbmcgdG8gaW1wbGVtZW50IGl0IGlmIHRoaXMgcGF0Y2ggaXMgbWVyZ2VkLgotLS0K IGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAgICAgICAgICB8ICAyNCArCiBzcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naW4vZ2luaW5zZXJ0LmMgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnRzb3J0LmMgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWlu LmMgICAgICAgICAgfCAxMjUgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICB8 ICAgOCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgIHwgIDM1ICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgICAgICAgfCAgNzkgKystCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmggICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaCAgICAgICB8ICAyMCArLQogc3JjL2luY2x1ZGUvcG9ydC93aW4zMi9zeXMv cmVzb3VyY2UuaCAgIHwgICAyICsKIHNyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMgICAgICAgICAg ICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW5fMS5vdXQgfCA4 NDkgKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCAgICAgICAgfCAgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTE0OCBpbnNlcnRpb25zKCsp LCAzNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2V4cGxhaW5fMS5vdXQKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxh aW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCmluZGV4IDZkZGE2ODBhYTAu Ljg2YjY2ZTA2Y2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBAIC0yMDQsNiArMjA0LDMwIEBAIFJP TExCQUNLOwogICAgICAgZm9ybWF0LCBvbmx5IG5vbi16ZXJvIHZhbHVlcyBhcmUgcHJpbnRlZC4g IEJ1ZmZlcnMgaW5mb3JtYXRpb24gaXMKICAgICAgIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgd2hl biA8bGl0ZXJhbD5BTkFMWVpFPC9saXRlcmFsPiBpcyB1c2VkLgogICAgICA8L3BhcmE+CisgICAg IDxwYXJhPgorICAgICAgSWYgcG9zc2libGUsIHRoaXMgb3B0aW9uIGFsc28gZGlzcGxheXMgdGhl IG51bWJlciBvZiByZWFkIGFuZCB3cml0ZQorICAgICAgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24g c3RvcmFnZSBkdXJpbmcgdGhlIHBsYW5uaW5nIGFuZCBleGVjdXRpb24gcGhhc2VzLAorICAgICAg c2hvd24gYXQgdGhlIGVuZCBvZiB0aGUgcGxhbi4gVGhlc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBm cm9tIHRoZQorICAgICAgPGZ1bmN0aW9uPmdldHJ1c2FnZSgpPC9mdW5jdGlvbj4gc3lzdGVtIGNh bGwuIE5vdGUgdGhhdCBvbiBwbGF0Zm9ybXMgdGhhdAorICAgICAgZG8gbm90IHN1cHBvcnQgPGZ1 bmN0aW9uPmdldHJ1c2FnZSgpPC9mdW5jdGlvbj4sIHN1Y2ggYXMgV2luZG93cywgbm8gb3V0cHV0 CisgICAgICB3aWxsIGJlIHNob3duLCBldmVuIGlmIHJlYWRzIG9yIHdyaXRlcyBhY3R1YWxseSBv Y2N1ci4gQWRkaXRpb25hbGx5LCBldmVuCisgICAgICBvbiBwbGF0Zm9ybXMgd2hlcmUgPGZ1bmN0 aW9uPmdldHJ1c2FnZSgpPC9mdW5jdGlvbj4gaXMgc3VwcG9ydGVkLCBpZiB0aGUKKyAgICAgIGtl cm5lbCBpcyBidWlsdCB3aXRob3V0IHRoZSBuZWNlc3Nhcnkgb3B0aW9ucyB0byB0cmFjayBzdG9y YWdlIHJlYWQgYW5kCisgICAgICB3cml0ZSBvcGVyYXRpb25zLCBubyBvdXRwdXQgd2lsbCBiZSBz aG93bi4gIEFsc28sIFdoZW4KKyAgICAgIDx2YXJuYW1lPmlvX21ldGhvZDwvdmFybmFtZT4gaXMg c2V0IHRvIDxsaXRlcmFsPndvcmtlcjwvbGl0ZXJhbD4sIG5vIG91dHB1dAorICAgICAgd2lsbCBi ZSBzaG93biwgYXMgSS9PIGhhbmRsZWQgYnkgYXN5bmNocm9ub3VzIHdvcmtlcnMgY2Fubm90IGJl IG1lYXN1cmVkCisgICAgICBhY2N1cmF0ZWx5LgorICAgICAgVGhlIHRpbWluZyBhbmQgdW5pdCBv ZiBtZWFzdXJlbWVudCBmb3IgcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBtYXkgdmFyeQorICAg ICAgZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUsIG9uIExpbnV4LCBhIHJl YWQgaXMgY291bnRlZCBvbmx5CisgICAgICBpZiB0aGlzIHByb2Nlc3MgY2F1c2VkIGRhdGEgdG8g YmUgZmV0Y2hlZCBmcm9tIHRoZSBzdG9yYWdlIGxheWVyLCBhbmQgYQorICAgICAgd3JpdGUgaXMg Y291bnRlZCBhdCB0aGUgcGFnZS1kaXJ0eWluZyB0aW1lLiBPbiBMaW51eCwgdGhlIHVuaXQgb2YK KyAgICAgIG1lYXN1cmVtZW50IGZvciByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIGlzIDUxMiBi eXRlcy4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIEJ1ZmZlcnMgaW5mb3JtYXRp b24gaXMgaW5jbHVkZWQgYnkgZGVmYXVsdCB3aGVuIDxsaXRlcmFsPkFOQUxZWkU8L2xpdGVyYWw+ CisgICAgICBpcyB1c2VkIGJ1dCBvdGhlcndpc2UgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQs IGJ1dCBjYW4gYmUgZW5hYmxlZCB1c2luZworICAgICAgdGhpcyBvcHRpb24uCisgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW4uYwppbmRleCAwMWUxZGI3Zjg1Li5jNmE4Zjc0MjEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j CkBAIC0yNTU3LDcgKzI1NTcsNyBAQCBfYnJpbl9lbmRfcGFyYWxsZWwoQnJpbkxlYWRlciAqYnJp bmxlYWRlciwgQnJpbkJ1aWxkU3RhdGUgKnN0YXRlKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNv bXBsZXRlIGRhdGEuKQogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBicmlubGVhZGVyLT5wY3h0LT5u d29ya2Vyc19sYXVuY2hlZDsgaSsrKQotCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmYnJpbmxl YWRlci0+YnVmZmVydXNhZ2VbaV0sICZicmlubGVhZGVyLT53YWx1c2FnZVtpXSk7CisJCUluc3Ry QWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgTlVMTCwgJmJy aW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAogCS8qIEZyZWUgbGFzdCByZWZlcmVuY2UgdG8gTVZD QyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICovCiAJaWYgKElzTVZDQ1NuYXBzaG90KGJyaW5s ZWFkZXItPnNuYXBzaG90KSkKQEAgLTI5MTksNyArMjkxOSw3IEBAIF9icmluX3BhcmFsbGVsX2J1 aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRh Y2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZl ciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qCiAJICogTWln aHQgYXMgd2VsbCB1c2UgcmVsaWFibGUgZmlndXJlIHdoZW4gZG9saW5nIG91dCBtYWludGVuYW5j ZV93b3JrX21lbQpAQCAtMjkzNCw4ICsyOTM0LDggQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFp bihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIg dXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3Rv Y19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNh Z2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsK LQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVy XSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQ YXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJ CQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAJaW5kZXhf Y2xvc2UoaW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwogCXRhYmxlX2Nsb3NlKGhlYXBSZWwsIGhl YXBMb2NrbW9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2Vy dC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCBhNjVhY2Q4OTEw Li5lNDM5MzgxMDA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2Vy dC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTEwODQsNyAr MTA4NCw3IEBAIF9naW5fZW5kX3BhcmFsbGVsKEdpbkxlYWRlciAqZ2lubGVhZGVyLCBHaW5CdWls ZFN0YXRlICpzdGF0ZSkKIAkgKiBvciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkg Ki8KIAlmb3IgKGkgPSAwOyBpIDwgZ2lubGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsg aSsrKQotCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmZ2lubGVhZGVyLT5idWZmZXJ1c2FnZVtp XSwgJmdpbmxlYWRlci0+d2FsdXNhZ2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgm Z2lubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgTlVMTCwgJmdpbmxlYWRlci0+d2FsdXNhZ2VbaV0p OwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2Fz IHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoZ2lubGVhZGVyLT5zbmFwc2hvdCkpCkBAIC0y MTQ3LDcgKzIxNDcsNyBAQCBfZ2luX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNl Zyk7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwg ZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFy YWxsZWxRdWVyeShOVUxMKTsKIAogCS8qCiAJICogTWlnaHQgYXMgd2VsbCB1c2UgcmVsaWFibGUg ZmlndXJlIHdoZW4gZG9saW5nIG91dCBtYWludGVuYW5jZV93b3JrX21lbQpAQCAtMjE2Miw4ICsy MTYyLDggQEAgX2dpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhl Y3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tF WV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywg UEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgm YnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNhZ2VbUGFy YWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdl W1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSwgTlVMTCk7CiAKIAlpbmRleF9jbG9zZShpbmRleFJlbCwgaW5kZXhMb2Nr bW9kZSk7CiAJdGFibGVfY2xvc2UoaGVhcFJlbCwgaGVhcExvY2ttb2RlKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMKaW5kZXggMzc5NGNjOTI0YS4uYzY2ZTc0MjkwOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRzb3J0LmMKQEAgLTE2MTgsNyArMTYxOCw3IEBAIF9idF9lbmRfcGFy YWxsZWwoQlRMZWFkZXIgKmJ0bGVhZGVyKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRl IGRhdGEuKQogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBidGxlYWRlci0+cGN4dC0+bndvcmtlcnNf bGF1bmNoZWQ7IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVhZGVyLT5idWZm ZXJ1c2FnZVtpXSwgJmJ0bGVhZGVyLT53YWx1c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxl bFF1ZXJ5KCZidGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZidGxlYWRlci0+d2FsdXNh Z2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBv bmUgd2FzIHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFkZXItPnNuYXBzaG90KSkK QEAgLTE4MjYsNyArMTgyNiw3IEBAIF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50 ICpzZWcsIHNobV90b2MgKnRvYykKIAl9CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1 c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFBlcmZvcm0gc29y dGluZyBvZiBzcG9vbCwgYW5kIHBvc3NpYmx5IGEgc3Bvb2wyICovCiAJc29ydG1lbSA9IG1haW50 ZW5hbmNlX3dvcmtfbWVtIC8gYnRzaGFyZWQtPnNjYW50dXBsZXNvcnRzdGF0ZXM7CkBAIC0xODM2 LDggKzE4MzYsOCBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBz aG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVs IGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExF TF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0 b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdl W1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1 c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAjaWZkZWYgQlRSRUVfQlVJTERfU1RBVFMKIAlp ZiAobG9nX2J0cmVlX2J1aWxkX3N0YXRzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDc4NmVl ODY1ZjEuLjJlMzkxYjM0N2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTMyLDYgKzMyLDcg QEAKICNpbmNsdWRlICJwYXJzZXIvYW5hbHl6ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRy ZWUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVkZSAic3Rv cmFnZS9haW9fc3Vic3lzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRl ICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTE0NCw2 ICsxNDUsOCBAQCBzdGF0aWMgdm9pZCBzaG93X2ZvcmVpZ25zY2FuX2luZm8oRm9yZWlnblNjYW5T dGF0ZSAqZnNzdGF0ZSwgRXhwbGFpblN0YXRlICplcyk7CiBzdGF0aWMgY29uc3QgY2hhciAqZXhw bGFpbl9nZXRfaW5kZXhfbmFtZShPaWQgaW5kZXhJZCk7CiBzdGF0aWMgYm9vbCBwZWVrX2J1ZmZl cl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpOwogc3Rh dGljIHZvaWQgc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVy VXNhZ2UgKnVzYWdlKTsKK3N0YXRpYyBib29sIHBlZWtfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5T dGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSk7CitzdGF0aWMgdm9pZCBzaG93 X3N0b3JhZ2Vpb191c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAq dXNhZ2UpOwogc3RhdGljIHZvaWQgc2hvd193YWxfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29u c3QgV2FsVXNhZ2UgKnVzYWdlKTsKIHN0YXRpYyB2b2lkIHNob3dfbWVtb3J5X2NvdW50ZXJzKEV4 cGxhaW5TdGF0ZSAqZXMsCiAJCQkJCQkJCSBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1l bV9jb3VudGVycyk7CkBAIC0zMjUsNiArMzI4LDggQEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5 KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJCQkJcGxhbmR1cmF0aW9uOwogCUJ1 ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAogCQkJCWJ1ZnVzYWdlOworCVN0b3JhZ2VJT1VzYWdl IHN0b3JhZ2VpbywKKwkJCQlzdG9yYWdlaW9fc3RhcnQ7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJz IG1lbV9jb3VudGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1v cnlDb250ZXh0IHNhdmVkX2N0eCA9IE5VTEw7CkBAIC0zNDYsNyArMzUxLDEwIEBAIHN0YW5kYXJk X0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCX0KIAog CWlmIChlcy0+YnVmZmVycykKKwl7CiAJCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsK KwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpb19zdGFydCk7CisJfQogCUlOU1RSX1RJTUVf U0VUX0NVUlJFTlQocGxhbnN0YXJ0KTsKIAogCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCkBAIC0zNjEs MTcgKzM2OSwyMSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQg Y3Vyc29yT3B0aW9ucywKIAkJTWVtb3J5Q29udGV4dE1lbUNvbnN1bWVkKHBsYW5uZXJfY3R4LCAm bWVtX2NvdW50ZXJzKTsKIAl9CiAKLQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBjb3Vu dGVycy4gKi8KKwkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBhbmQgc3RvcmFnZSBJL08g Y291bnRlcnMuICovCiAJaWYgKGVzLT5idWZmZXJzKQogCXsKIAkJbWVtc2V0KCZidWZ1c2FnZSwg MCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CiAJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2Fn ZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2FnZV9zdGFydCk7CisKKwkJR2V0U3RvcmFnZUlPVXNh Z2UoJnN0b3JhZ2Vpbyk7CisJCVN0b3JhZ2VJT1VzYWdlRGlmZigmc3RvcmFnZWlvLCAmc3RvcmFn ZWlvX3N0YXJ0KTsKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0 cHV0ICovCiAJRXhwbGFpbk9uZVBsYW4ocGxhbiwgTlVMTCwgTlVMTCwgLTEsIGludG8sIGVzLCBx dWVyeVN0cmluZywgcGFyYW1zLAogCQkJCSAgIHF1ZXJ5RW52LAogCQkJCSAgICZwbGFuZHVyYXRp b24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCSAgIGVzLT5idWZmZXJz ID8gJnN0b3JhZ2VpbyA6IE5VTEwsCiAJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMg OiBOVUxMKTsKIH0KIApAQCAtNDk3LDcgKzUwOSw3IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRT dG10ICpwbGFubmVkc3RtdCwgQ2FjaGVkUGxhbiAqY3BsYW4sCiAJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBh cmFtTGlzdEluZm8gcGFyYW1zLAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIGNv bnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKLQkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpi dWZ1c2FnZSwKKwkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgY29uc3QgU3RvcmFn ZUlPVXNhZ2UgKnBsYW5zdG9yYWdlaW8sCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRl cnMgKm1lbV9jb3VudGVycykKIHsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CkBAIC01MDcsNiArNTE5 LDcgQEAgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFu ICpjcGxhbiwKIAlpbnQJCQllZmxhZ3M7CiAJaW50CQkJaW5zdHJ1bWVudF9vcHRpb24gPSAwOwog CVNlcmlhbGl6ZU1ldHJpY3Mgc2VyaWFsaXplTWV0cmljcyA9IHswfTsKKwlTdG9yYWdlSU9Vc2Fn ZSBzdG9yYWdlaW9fc3RhcnQ7CiAKIAlBc3NlcnQocGxhbm5lZHN0bXQtPmNvbW1hbmRUeXBlICE9 IENNRF9VVElMSVRZKTsKIApAQCAtNTE2LDcgKzUyOSwxOSBAQCBFeHBsYWluT25lUGxhbihQbGFu bmVkU3RtdCAqcGxhbm5lZHN0bXQsIENhY2hlZFBsYW4gKmNwbGFuLAogCQlpbnN0cnVtZW50X29w dGlvbiB8PSBJTlNUUlVNRU5UX1JPV1M7CiAKIAlpZiAoZXMtPmJ1ZmZlcnMpCisJeworCQlHZXRT dG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvX3N0YXJ0KTsKKworCQkvKgorCQkgKiBJbml0aWFsaXpl IGdsb2JhbCB2YXJpYWJsZSBjb3VudGVycyBmb3IgcGFyYWxsZWwgcXVlcnkgd29ya2Vycy4KKwkJ ICogRXZlbiBpZiB0aGUgcXVlcnkgaXMgY2FuY2VsbGVkIG9uIHRoZSB3YXksIHRoZSBFWFBMQUlO IGV4ZWN1dGlvbgorCQkgKiBhbHdheXMgcGFzc2VzIGhlcmUsIHNvIGl0IGNhbiBiZSBpbml0aWFs aXplZCBoZXJlLgorCQkgKi8KKwkJcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsLmluYmxvY2sgPSAw OworCQlwZ1N0b3JhZ2VJT1VzYWdlUGFyYWxsZWwub3V0YmxvY2sgPSAwOworCiAJCWluc3RydW1l bnRfb3B0aW9uIHw9IElOU1RSVU1FTlRfQlVGRkVSUzsKKwl9CiAJaWYgKGVzLT53YWwpCiAJCWlu c3RydW1lbnRfb3B0aW9uIHw9IElOU1RSVU1FTlRfV0FMOwogCkBAIC02MDksOCArNjM0LDkgQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFuICpjcGxh biwKIAkvKiBDcmVhdGUgdGV4dHVhbCBkdW1wIG9mIHBsYW4gdHJlZSAqLwogCUV4cGxhaW5Qcmlu dFBsYW4oZXMsIHF1ZXJ5RGVzYyk7CiAKLQkvKiBTaG93IGJ1ZmZlciBhbmQvb3IgbWVtb3J5IHVz YWdlIGluIHBsYW5uaW5nICovCi0JaWYgKHBlZWtfYnVmZmVyX3VzYWdlKGVzLCBidWZ1c2FnZSkg fHwgbWVtX2NvdW50ZXJzKQorCS8qIFNob3cgYnVmZmVyLCBzdG9yYWdlIEkvTywgYW5kL29yIG1l bW9yeSB1c2FnZSBpbiBwbGFubmluZyAqLworCWlmIChwZWVrX2J1ZmZlcl91c2FnZShlcywgYnVm dXNhZ2UpIHx8IHBlZWtfc3RvcmFnZWlvX3VzYWdlKGVzLCBwbGFuc3RvcmFnZWlvKSB8fAorCQlt ZW1fY291bnRlcnMpCiAJewogCQlFeHBsYWluT3Blbkdyb3VwKCJQbGFubmluZyIsICJQbGFubmlu ZyIsIHRydWUsIGVzKTsKIApAQCAtNjIyLDggKzY0OCwxMCBAQCBFeHBsYWluT25lUGxhbihQbGFu bmVkU3RtdCAqcGxhbm5lZHN0bXQsIENhY2hlZFBsYW4gKmNwbGFuLAogCQl9CiAKIAkJaWYgKGJ1 ZnVzYWdlKQorCQl7CiAJCQlzaG93X2J1ZmZlcl91c2FnZShlcywgYnVmdXNhZ2UpOwotCisJCQlz aG93X3N0b3JhZ2Vpb191c2FnZShlcywgcGxhbnN0b3JhZ2Vpbyk7CisJCX0KIAkJaWYgKG1lbV9j b3VudGVycykKIAkJCXNob3dfbWVtb3J5X2NvdW50ZXJzKGVzLCBtZW1fY291bnRlcnMpOwogCkBA IC02ODAsNiArNzA4LDM0IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwgQ2FjaGVkUGxhbiAqY3BsYW4sCiAKIAl0b3RhbHRpbWUgKz0gZWxhcHNlZF90aW1lKCZzdGFy dHRpbWUpOwogCisJLyogU2hvdyBzdG9yYWdlIEkvTyB1c2FnZSBpbiBleGVjdXRpb24gKi8KKwlp ZiAoZXMtPmJ1ZmZlcnMpCisJeworCQlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW87CisKKwkJR2V0 U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpbyk7CisJCVN0b3JhZ2VJT1VzYWdlRGlmZigmc3RvcmFn ZWlvLCAmc3RvcmFnZWlvX3N0YXJ0KTsKKwkJU3RvcmFnZUlPVXNhZ2VBZGQoJnN0b3JhZ2Vpbywg JnBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbCk7CisKKwkJaWYgKHBlZWtfc3RvcmFnZWlvX3VzYWdl KGVzLCAmc3RvcmFnZWlvKSkKKwkJeworCQkJRXhwbGFpbk9wZW5Hcm91cCgiRXhlY3V0aW9uIiwg IkV4ZWN1dGlvbiIsIHRydWUsIGVzKTsKKworCQkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9G T1JNQVRfVEVYVCkKKwkJCXsKKwkJCQlFeHBsYWluSW5kZW50VGV4dChlcyk7CisJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiRXhlY3V0aW9uOlxuIik7CisJCQkJZXMtPmluZGVu dCsrOworCQkJfQorCQkJc2hvd19zdG9yYWdlaW9fdXNhZ2UoZXMsICZzdG9yYWdlaW8pOworCisJ CQlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJCWVzLT5pbmRlbnQt LTsKKworCQkJRXhwbGFpbkNsb3NlR3JvdXAoIkV4ZWN1dGlvbiIsICJFeGVjdXRpb24iLCB0cnVl LCBlcyk7CisJCX0KKwl9CisKIAkvKgogCSAqIFdlIG9ubHkgcmVwb3J0IGV4ZWN1dGlvbiB0aW1l IGlmIHdlIGFjdHVhbGx5IHJhbiB0aGUgcXVlcnkgKHRoYXQgaXMsCiAJICogdGhlIHVzZXIgc3Bl Y2lmaWVkIEFOQUxZWkUpLCBhbmQgaWYgc3VtbWFyeSByZXBvcnRpbmcgaXMgZW5hYmxlZCAodGhl CkBAIC00MjYwLDYgKzQzMTYsNjUgQEAgc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICpl cywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlKQogCX0KIH0KIAorLyoKKyAqIFJldHVybiB3aGV0 aGVyIHNob3dfc3RvcmFnZWlvX3VzYWdlIHdvdWxkIGhhdmUgYW55dGhpbmcgdG8gcHJpbnQsIGlm IGdpdmVuCisgKiB0aGUgc2FtZSAndXNhZ2UnIGRhdGEuICBOb3RlIHRoYXQgd2hlbiB0aGUgZm9y bWF0IGlzIGFueXRoaW5nIG90aGVyIHRoYW4KKyAqIHRleHQsIHdlIHByaW50IGV2ZW4gaWYgdGhl IGNvdW50ZXJzIGFyZSBhbGwgemVyb2VzLgorICovCitzdGF0aWMgYm9vbAorcGVla19zdG9yYWdl aW9fdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKQor eworCWlmICh1c2FnZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIFNpbmNl IHNob3dpbmcgb25seSB0aGUgSS9PIGV4Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRl cyB0aGUKKwkgKiB0b3RhbCBJL08sIHRyZWF0IHRoaXMgY2FzZSBhcyBoYXZpbmcgbm90aGluZyB0 byBwcmludC4KKwkgKi8KKwlpZiAocGdhaW9fd29ya2Vyc19lbmFibGVkKCkpCisJCXJldHVybiBm YWxzZTsKKworCWlmIChlcy0+Zm9ybWF0ICE9IEVYUExBSU5fRk9STUFUX1RFWFQpCisJCXJldHVy biB0cnVlOworCisJcmV0dXJuIHVzYWdlLT5pbmJsb2NrID4gMCB8fCB1c2FnZS0+b3V0YmxvY2sg PiAwOworfQorCisvKgorICogU2hvdyBzdG9yYWdlIEkvTyB1c2FnZS4KKyAqLworc3RhdGljIHZv aWQKK3Nob3dfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJ T1VzYWdlICp1c2FnZSkKK3sKKwkvKgorCSAqIFNpbmNlIHNob3dpbmcgb25seSB0aGUgSS9PIGV4 Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRlcyB0aGUKKwkgKiB0b3RhbCBJL08sIGRv IG5vdCBzaG93IGFueXRoaW5nLgorCSAqLworCWlmIChwZ2Fpb193b3JrZXJzX2VuYWJsZWQoKSkK KwkJcmV0dXJuOworCisJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwl7 CisJCS8qIFNob3cgb25seSBwb3NpdGl2ZSBjb3VudGVyIHZhbHVlcy4gKi8KKwkJaWYgKHVzYWdl LT5pbmJsb2NrIDw9IDAgJiYgdXNhZ2UtPm91dGJsb2NrIDw9IDApCisJCQlyZXR1cm47CisKKwkJ RXhwbGFpbkluZGVudFRleHQoZXMpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIs ICJTdG9yYWdlIEkvTzoiKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiIHJlYWQ9JWxk IHRpbWVzIiwgKGxvbmcpIHVzYWdlLT5pbmJsb2NrKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+ c3RyLCAiIHdyaXRlPSVsZCB0aW1lcyIsIChsb25nKSB1c2FnZS0+b3V0YmxvY2spOworCisJCWFw cGVuZFN0cmluZ0luZm9DaGFyKGVzLT5zdHIsICdcbicpOworCX0KKwllbHNlCisJeworCQlFeHBs YWluUHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkvTyBSZWFkIiwgTlVMTCwKKwkJCQkJCQkgICB1 c2FnZS0+aW5ibG9jaywgZXMpOworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkv TyBSZWFkIiwgTlVMTCwKKwkJCQkJCQkgICB1c2FnZS0+b3V0YmxvY2ssIGVzKTsKKwl9Cit9CisK IC8qCiAgKiBTaG93IFdBTCB1c2FnZSBkZXRhaWxzLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMK aW5kZXggYmY3ZDJiMjMwOS4uNjhiODdhYWIwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAt NTgzLDYgKzU4Myw4IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10 LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCWluc3RyX3RpbWUJcGxhbmR1 cmF0aW9uOwogCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAogCQkJCWJ1ZnVzYWdlOworCVN0 b3JhZ2VJT1VzYWdlIHN0b3JhZ2VpbywKKwkJCQlzdG9yYWdlaW9fc3RhcnQ7CiAJTWVtb3J5Q29u dGV4dENvdW50ZXJzIG1lbV9jb3VudGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0g TlVMTDsKIAlNZW1vcnlDb250ZXh0IHNhdmVkX2N0eCA9IE5VTEw7CkBAIC01OTksNyArNjAxLDEx IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNl ICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCX0KIAogCWlmIChlcy0+YnVmZmVycykKKwl7CiAJ CWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0 b3JhZ2Vpb19zdGFydCk7CisJfQorCiAJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3RhcnQp OwogCiAJLyogTG9vayBpdCB1cCBpbiB0aGUgaGFzaCB0YWJsZSAqLwpAQCAtNjQ5LDYgKzY1NSw3 IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNl ICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCXsKIAkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6 ZW9mKEJ1ZmZlclVzYWdlKSk7CiAJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBn QnVmZmVyVXNhZ2UsICZidWZ1c2FnZV9zdGFydCk7CisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9y YWdlaW8pOwogCX0KIAogCXBsYW5fbGlzdCA9IGNwbGFuLT5zdG10X2xpc3Q7CkBAIC02NjIsNiAr NjY5LDcgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9D bGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCQlFeHBsYWluT25lUGxhbihwc3RtdCwg Y3BsYW4sIGVudHJ5LT5wbGFuc291cmNlLCBxdWVyeV9pbmRleCwKIAkJCQkJCSAgIGludG8sIGVz LCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKIAkJCQkJCSAgICZw bGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCQkJICAg ZXMtPmJ1ZmZlcnMgPyAmc3RvcmFnZWlvIDogTlVMTCwKIAkJCQkJCSAgIGVzLT5tZW1vcnkgPyAm bWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGlsaXR5KHBzdG10 LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCAyYjlkNTQ4Y2RlLi5mNzcxMjRmOGM1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTczNyw3ICs3MzcsNyBAQCBwYXJhbGxl bF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGlu dCBudW1faW5kZXhfc2NhbgogCQlXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2gocHZzLT5w Y3h0KTsKIAogCQlmb3IgKGludCBpID0gMDsgaSA8IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNo ZWQ7IGkrKykKLQkJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtp XSwgJnB2cy0+d2FsX3VzYWdlW2ldKTsKKwkJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwdnMt PmJ1ZmZlcl91c2FnZVtpXSwgTlVMTCwgJnB2cy0+d2FsX3VzYWdlW2ldKTsKIAl9CiAKIAkvKgpA QCAtMTA4Myw3ICsxMDgzLDcgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKQogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAK IAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0 aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxR dWVyeShOVUxMKTsKIAogCS8qIFByb2Nlc3MgaW5kZXhlcyB0byBwZXJmb3JtIHZhY3V1bS9jbGVh bnVwICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfc2FmZV9pbmRleGVzKCZwdnMpOwpAQCAt MTA5MSw4ICsxMDkxLDggQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxl bCBleGVjdXRpb24gKi8KIAlidWZmZXJfdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFM TEVMX1ZBQ1VVTV9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3Rv Y19sb29rdXAodG9jLCBQQVJBTExFTF9WQUNVVU1fS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUlu c3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwK LQkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOworCUluc3RyRW5kUGFy YWxsZWxRdWVyeSgmYnVmZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJ CQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAJLyogUmVw b3J0IGFueSByZW1haW5pbmcgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgdGltZSAqLwogCWlmICh0 cmFja19jb3N0X2RlbGF5X3RpbWluZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5k ZXggMzljOTkwYWU2My4uY2Y0NjYzMzEwMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVs LmMKQEAgLTY1LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJ TlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9J TlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQ QVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQor I2RlZmluZSBQQVJBTExFTF9LRVlfU1RPUkFHRUlPX1VTQUdFCVVJTlQ2NENPTlNUKDB4RTAwMDAw MDAwMDAwMDAwQikKIAogI2RlZmluZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgog CkBAIC02MDksNiArNjEwLDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFu c3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBzdG10X3NwYWNlOwogCWNoYXIJICAg KnBhcmFtbGlzdGluZm9fc3BhY2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOworCVN0 b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2Fn ZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9u ID0gTlVMTDsKIAlTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50YXRpb24g PSBOVUxMOwpAQCAtNjkwLDYgKzY5MiwxMyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCQkJCQkgICBtdWxfc2l6ZShzaXplb2Yo V2FsVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4 dC0+ZXN0aW1hdG9yLCAxKTsKIAorCS8qCisJICogU2FtZSB0aGluZyBmb3IgU3RvcmFnZUlPVXNh Z2UuCisJICovCisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAorCQkJ CQkJICAgbXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsK KwlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkvKiBFc3Rp bWF0ZSBzcGFjZSBmb3IgdHVwbGUgcXVldWVzLiAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmso JnBjeHQtPmVzdGltYXRvciwKIAkJCQkJCSAgIG11bF9zaXplKFBBUkFMTEVMX1RVUExFX1FVRVVF X1NJWkUsIHBjeHQtPm53b3JrZXJzKSk7CkBAIC03ODUsNiArNzk0LDEyIEBAIEV4ZWNJbml0UGFy YWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9j X2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIHdhbHVzYWdlX3NwYWNl KTsKIAlwZWktPndhbF91c2FnZSA9IHdhbHVzYWdlX3NwYWNlOwogCisJLyogU2FtZSBmb3IgU3Rv cmFnZUlPVXNhZ2UuICovCisJc3RvcmFnZWlvdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRl KHBjeHQtPnRvYywKKwkJCQkJCQkJCQkJbXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwg cGN4dC0+bndvcmtlcnMpKTsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tF WV9TVE9SQUdFSU9fVVNBR0UsIHN0b3JhZ2Vpb3VzYWdlX3NwYWNlKTsKKwlwZWktPnN0b3JhZ2Vp b191c2FnZSA9IHN0b3JhZ2Vpb3VzYWdlX3NwYWNlOworCiAJLyogU2V0IHVwIHRoZSB0dXBsZSBx dWV1ZXMgdGhhdCB0aGUgd29ya2VycyB3aWxsIHdyaXRlIGludG8uICovCiAJcGVpLT50cXVldWUg PSBFeGVjUGFyYWxsZWxTZXR1cFR1cGxlUXVldWVzKHBjeHQsIGZhbHNlKTsKIApAQCAtMTE5MCwx MSArMTIwNSwxMSBAQCBFeGVjUGFyYWxsZWxGaW5pc2goUGFyYWxsZWxFeGVjdXRvckluZm8gKnBl aSkKIAlXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2gocGVpLT5wY3h0KTsKIAogCS8qCi0J ICogTmV4dCwgYWNjdW11bGF0ZSBidWZmZXIvV0FMIHVzYWdlLiAgKFRoaXMgbXVzdCB3YWl0IGZv ciB0aGUgd29ya2VycyB0bwotCSAqIGZpbmlzaCwgb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUg ZGF0YS4pCisJICogTmV4dCwgYWNjdW11bGF0ZSBidWZmZXIsIFdBTCwgYW5kIFN0b3JhZ2UgSS9P IHVzYWdlLiAoVGhpcyBtdXN0IHdhaXQKKwkgKiBmb3IgdGhlIHdvcmtlcnMgdG8gZmluaXNoLCBv ciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwg bndvcmtlcnM7IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnBlaS0+YnVmZmVyX3Vz YWdlW2ldLCAmcGVpLT53YWxfdXNhZ2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgm cGVpLT5idWZmZXJfdXNhZ2VbaV0sICZwZWktPnN0b3JhZ2Vpb191c2FnZVtpXSwgJnBlaS0+d2Fs X3VzYWdlW2ldKTsKIAogCXBlaS0+ZmluaXNoZWQgPSB0cnVlOwogfQpAQCAtMTQzNyw2ICsxNDUy LDggQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQog ewogCUZpeGVkUGFyYWxsZWxFeGVjdXRvclN0YXRlICpmcGVzOwogCUJ1ZmZlclVzYWdlICpidWZm ZXJfdXNhZ2U7CisJU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb191c2FnZTsKKwlTdG9yYWdlSU9V c2FnZSBzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQ7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCURl c3RSZWNlaXZlciAqcmVjZWl2ZXI7CiAJUXVlcnlEZXNjICAqcXVlcnlEZXNjOwpAQCAtMTQ5MSwx MyArMTUwOCwxNCBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJRXhlY1NldFR1cGxlQm91bmQoZnBlcy0+dHVwbGVzX25lZWRlZCwgcXVlcnlEZXNj LT5wbGFuc3RhdGUpOwogCiAJLyoKLQkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlci9XQUwgdXNh Z2UgZHVyaW5nIHF1ZXJ5IGV4ZWN1dGlvbi4KKwkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciwg V0FMLCBhbmQgU3RvcmFnZUkvTyB1c2FnZSBkdXJpbmcgcXVlcnkKKwkgKiBleGVjdXRpb24uCiAJ ICoKIAkgKiBXZSBkbyB0aGlzIGFmdGVyIHN0YXJ0aW5nIHVwIHRoZSBleGVjdXRvciB0byBtYXRj aCB3aGF0IGhhcHBlbnMgaW4gdGhlCiAJICogbGVhZGVyLCB3aGljaCBhbHNvIGRvZXNuJ3QgY291 bnQgYnVmZmVyIGFjY2Vzc2VzIGFuZCBXQUwgYWN0aXZpdHkgdGhhdAogCSAqIG9jY3VyIGR1cmlu ZyBleGVjdXRvciBzdGFydHVwLgogCSAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJ SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAKIAkvKgog CSAqIFJ1biB0aGUgcGxhbi4gIElmIHdlIHNwZWNpZmllZCBhIHR1cGxlIGJvdW5kLCBiZSBjYXJl ZnVsIG5vdCB0byBkZW1hbmQKQEAgLTE1MTAsMTEgKzE1MjgsMTQgQEAgUGFyYWxsZWxRdWVyeU1h aW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFNodXQgZG93biB0aGUgZXhl Y3V0b3IgKi8KIAlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOwogCi0JLyogUmVwb3J0IGJ1ZmZl ci9XQUwgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbi4gKi8KKwkvKiBSZXBvcnQgYnVm ZmVyLCBXQUwsIGFuZCBzdG9yYWdlIEkvTyB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9u LiAqLwogCWJ1ZmZlcl91c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JV RkZFUl9VU0FHRSwgZmFsc2UpOworCXN0b3JhZ2Vpb191c2FnZSA9IHNobV90b2NfbG9va3VwKHRv YywgUEFSQUxMRUxfS0VZX1NUT1JBR0VJT19VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwogCUluc3Ry RW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJ CQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOworCQkJCQkJICAmc3RvcmFn ZWlvX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0sCisJCQkJCQkgICZzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQpOwogCiAJ LyogUmVwb3J0IGluc3RydW1lbnRhdGlvbiBkYXRhIGlmIGFueSBpbnN0cnVtZW50YXRpb24gb3B0 aW9ucyBhcmUgc2V0LiAqLwogCWlmIChpbnN0cnVtZW50YXRpb24gIT0gTlVMTCkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYwppbmRleCA1NmU2MzVmNDcwLi45Y2IwZTkzMDBiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0xMywxNiArMTMsMjIgQEAKICAqLwogI2luY2x1ZGUgInBv c3RncmVzLmgiCiAKKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDx1bmlzdGQu aD4KIAogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKKyNpbmNsdWRlICJzdG9yYWdl L2Fpb19zdWJzeXMuaCIKIAogQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKIHN0YXRpYyBCdWZm ZXJVc2FnZSBzYXZlX3BnQnVmZmVyVXNhZ2U7CisKK1N0b3JhZ2VJT1VzYWdlIHBnU3RvcmFnZUlP VXNhZ2VQYXJhbGxlbDsJLyogb25seSBjb3VudCBwYXJhbGxlbCB3b3JrZXJzJworCQkJCQkJCQkJ CQkgKiB1c2FnZSAqLwogV2FsVXNhZ2UJcGdXYWxVc2FnZTsKIHN0YXRpYyBXYWxVc2FnZSBzYXZl X3BnV2FsVXNhZ2U7CiAKIHN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpk c3QsIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQpOwordm9pZAkJU3RvcmFnZUlPVXNhZ2VBZGQoU3Rv cmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9p ZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsKIAogCkBAIC0xOTcs MjcgKzIwMyw0NyBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1l bnRhdGlvbiAqYWRkKQogCiAvKiBub3RlIGN1cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBl eGVjdXRvciBzdGFydHVwICovCiB2b2lkCi1JbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKQor SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlKQog ewogCXNhdmVfcGdCdWZmZXJVc2FnZSA9IHBnQnVmZmVyVXNhZ2U7CiAJc2F2ZV9wZ1dhbFVzYWdl ID0gcGdXYWxVc2FnZTsKKworCWlmIChzdG9yYWdlaW91c2FnZSAhPSBOVUxMKQorCQlHZXRTdG9y YWdlSU9Vc2FnZShzdG9yYWdlaW91c2FnZSk7CiB9CiAKIC8qIHJlcG9ydCB1c2FnZSBhZnRlciBw YXJhbGxlbCBleGVjdXRvciBzaHV0ZG93biAqLwogdm9pZAotSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5 KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQorSW5zdHJFbmRQYXJh bGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vp b3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2Fn ZV9zdGFydCkKIHsKIAltZW1zZXQoYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwog CUJ1ZmZlclVzYWdlQWNjdW1EaWZmKGJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnNhdmVfcGdC dWZmZXJVc2FnZSk7CisKKwlpZiAoc3RvcmFnZWlvdXNhZ2UgIT0gTlVMTCAmJiBzdG9yYWdlaW91 c2FnZV9zdGFydCAhPSBOVUxMKQorCXsKKwkJc3RydWN0IFN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vp b3VzYWdlX2VuZDsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvdXNhZ2VfZW5kKTsK KworCQltZW1zZXQoc3RvcmFnZWlvdXNhZ2UsIDAsIHNpemVvZihTdG9yYWdlSU9Vc2FnZSkpOwor CQlTdG9yYWdlSU9Vc2FnZUFjY3VtRGlmZihzdG9yYWdlaW91c2FnZSwgJnN0b3JhZ2Vpb3VzYWdl X2VuZCwgc3RvcmFnZWlvdXNhZ2Vfc3RhcnQpOworCisJCWVyZXBvcnQoREVCVUcxLAorCQkJCShl cnJtc2coIlBhcmFsbGVsIHdvcmtlcidzIHN0b3JhZ2UgSS9PIHRpbWVzOiBpbmJsb2NrOiVsZCBv dXRibG9jazolbGQiLAorCQkJCQkJc3RvcmFnZWlvdXNhZ2UtPmluYmxvY2ssIHN0b3JhZ2Vpb3Vz YWdlLT5vdXRibG9jaykpKTsKKwl9CiAJbWVtc2V0KHdhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNh Z2UpKTsKIAlXYWxVc2FnZUFjY3VtRGlmZih3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzYXZlX3Bn V2FsVXNhZ2UpOwogfQogCiAvKiBhY2N1bXVsYXRlIHdvcmsgZG9uZSBieSB3b3JrZXJzIGluIGxl YWRlcidzIHN0YXRzICovCiB2b2lkCi1JbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKK0luc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5 KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBX YWxVc2FnZSAqd2FsdXNhZ2UpCiB7CiAJQnVmZmVyVXNhZ2VBZGQoJnBnQnVmZmVyVXNhZ2UsIGJ1 ZnVzYWdlKTsKKworCWlmIChzdG9yYWdlaW91c2FnZSAhPSBOVUxMKQorCQlTdG9yYWdlSU9Vc2Fn ZUFkZCgmcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsLCBzdG9yYWdlaW91c2FnZSk7CiAJV2FsVXNh Z2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKIH0KIApAQCAtMjczLDYgKzI5OSw1MyBAQCBC dWZmZXJVc2FnZUFjY3VtRGlmZihCdWZmZXJVc2FnZSAqZHN0LAogCQkJCQkJICBhZGQtPnRlbXBf YmxrX3dyaXRlX3RpbWUsIHN1Yi0+dGVtcF9ibGtfd3JpdGVfdGltZSk7CiB9CiAKKy8qIGhlbHBl ciBmdW5jdGlvbnMgZm9yIFN0b3JhZ2VJT1VzYWdlIHVzYWdlIGFjY3VtdWxhdGlvbiAqLwordm9p ZAorU3RvcmFnZUlPVXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlP VXNhZ2UgKmFkZCkKK3sKKwlkc3QtPmluYmxvY2sgKz0gYWRkLT5pbmJsb2NrOworCWRzdC0+b3V0 YmxvY2sgKz0gYWRkLT5vdXRibG9jazsKK30KKworLyogZHN0ICs9IGFkZCAtIHN1YiAqLwordm9p ZAorU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3Rv cmFnZUlPVXNhZ2UgKmFkZCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnN1YikKK3sKKwlkc3QtPmlu YmxvY2sgKz0gYWRkLT5pbmJsb2NrIC0gc3ViLT5pbmJsb2NrOworCWRzdC0+b3V0YmxvY2sgKz0g YWRkLT5vdXRibG9jayAtIHN1Yi0+b3V0YmxvY2s7Cit9CisKKy8qIGRzdCAtPSBzdWIgKi8KK3Zv aWQKK1N0b3JhZ2VJT1VzYWdlRGlmZihTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdl SU9Vc2FnZSAqc3ViKQoreworCWRzdC0+aW5ibG9jayAtPSBzdWItPmluYmxvY2s7CisJZHN0LT5v dXRibG9jayAtPSBzdWItPm91dGJsb2NrOworfQorCisvKiBDYXB0dXJlcyB0aGUgY3VycmVudCBz dG9yYWdlIEkvTyB1c2FnZSBzdGF0aXN0aWNzICovCit2b2lkCitHZXRTdG9yYWdlSU9Vc2FnZShT dG9yYWdlSU9Vc2FnZSAqdXNhZ2UpCit7CisJc3RydWN0IHJ1c2FnZSBydXNhZ2U7CisKKwkvKgor CSAqIFNpbmNlIGdldHRpbmcgdGhlIEkvTyBleGNsdWRpbmcgQUlPIHdvcmtlcnMgdW5kZXJlc3Rp bWF0ZXMgdGhlIHRvdGFsCisJICogSS9PLCBkb24ndCBnZXQgdGhlIEkvTyB1c2FnZSBzdGF0aXN0 aWNzIHdoZW4gQUlPIHdvcmtlciBpcyBlbmFibGVkLgorCSAqLworCWlmIChwZ2Fpb193b3JrZXJz X2VuYWJsZWQoKSkKKwkJcmV0dXJuOworCisJaWYgKGdldHJ1c2FnZShSVVNBR0VfU0VMRiwgJnJ1 c2FnZSkpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lTVEVN X0VSUk9SKSwKKwkJCQkgZXJybXNnKCJnZXRydXNhZ2UoKSBmYWlsZWQ6ICVtIikpKTsKKwl9CisJ dXNhZ2UtPmluYmxvY2sgPSBydXNhZ2UucnVfaW5ibG9jazsKKwl1c2FnZS0+b3V0YmxvY2sgPSBy dXNhZ2UucnVfb3VibG9jazsKK30KKwogLyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgV0FMIHVzYWdl IGFjY3VtdWxhdGlvbiAqLwogc3RhdGljIHZvaWQKIFdhbFVzYWdlQWRkKFdhbFVzYWdlICpkc3Qs IFdhbFVzYWdlICphZGQpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWlu LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKaW5kZXggMDNjNWIzZDczZS4uMDJl NmI4NWFhYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtNzAsNiArNzAsNyBAQCBleHRlcm4g dm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIENhY2hlZFBsYW4g KmNwbGFuLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1cmF0aW9uLAogCQkJ CQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLAorCQkJCQkJICAgY29uc3QgU3RvcmFn ZUlPVXNhZ2UgKnBsYW5zdG9yYWdlaW8sCiAJCQkJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291 bnRlcnMgKm1lbV9jb3VudGVycyk7CiAKIGV4dGVybiB2b2lkIEV4cGxhaW5QcmludFBsYW4oc3Ry dWN0IEV4cGxhaW5TdGF0ZSAqZXMsIFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY1BhcmFsbGVsLmgKaW5kZXggNWU3MTA2YzM5Ny4uNWM4YmM3NmM1MyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmgKQEAgLTI2LDYgKzI2LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg UGFyYWxsZWxFeGVjdXRvckluZm8KIAlQbGFuU3RhdGUgICpwbGFuc3RhdGU7CQkvKiBwbGFuIHN1 YnRyZWUgd2UncmUgcnVubmluZyBpbiBwYXJhbGxlbCAqLwogCVBhcmFsbGVsQ29udGV4dCAqcGN4 dDsJCS8qIHBhcmFsbGVsIGNvbnRleHQgd2UncmUgdXNpbmcgKi8KIAlCdWZmZXJVc2FnZSAqYnVm ZmVyX3VzYWdlOwkvKiBwb2ludHMgdG8gYnVmdXNhZ2UgYXJlYSBpbiBEU00gKi8KKwlTdG9yYWdl SU9Vc2FnZSAqc3RvcmFnZWlvX3VzYWdlOwkvKiBwb2ludHMgdG8gc3RvcmFnZWlvIHVzYWdlIGFy ZWEgaW4KKwkJCQkJCQkJCQkgKiBEU00gKi8KIAlXYWxVc2FnZSAgICp3YWxfdXNhZ2U7CQkvKiB3 YWx1c2FnZSBhcmVhIGluIERTTSAqLwogCVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICpp bnN0cnVtZW50YXRpb247IC8qIG9wdGlvbmFsICovCiAJc3RydWN0IFNoYXJlZEppdEluc3RydW1l bnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsJLyogb3B0aW9uYWwgKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaAppbmRleCAwMzY1M2FiNmM2Li41MzkyZjA1MDIyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvaW5zdHJ1bWVudC5oCkBAIC00MSw2ICs0MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBCdWZmZXJV c2FnZQogCWluc3RyX3RpbWUJdGVtcF9ibGtfd3JpdGVfdGltZTsJLyogdGltZSBzcGVudCB3cml0 aW5nIHRlbXAgYmxvY2tzICovCiB9IEJ1ZmZlclVzYWdlOwogCit0eXBlZGVmIHN0cnVjdCBTdG9y YWdlSU9Vc2FnZQoreworCWxvbmcJCWluYmxvY2s7CQkvKiAjIG9mIHRpbWVzIHRoZSBmaWxlIHN5 c3RlbSBoYWQgdG8gcGVyZm9ybQorCQkJCQkJCQkgKiBpbnB1dCAqLworCWxvbmcJCW91dGJsb2Nr OwkJLyogIyBvZiB0aW1lcyB0aGUgZmlsZSBzeXN0ZW0gaGFkIHRvIHBlcmZvcm0KKwkJCQkJCQkJ ICogb3V0cHV0ICovCit9IFN0b3JhZ2VJT1VzYWdlOworCiAvKgogICogV2FsVXNhZ2UgdHJhY2tz IG9ubHkgV0FMIGFjdGl2aXR5IGxpa2UgV0FMIHJlY29yZHMgZ2VuZXJhdGlvbiB0aGF0CiAgKiBj YW4gYmUgbWVhc3VyZWQgcGVyIHF1ZXJ5IGFuZCBpcyBkaXNwbGF5ZWQgYnkgRVhQTEFJTiBjb21t YW5kLApAQCAtMTAwLDYgKzEwOCw3IEBAIHR5cGVkZWYgc3RydWN0IFdvcmtlckluc3RydW1lbnRh dGlvbgogfSBXb3JrZXJJbnN0cnVtZW50YXRpb247CiAKIGV4dGVybiBQR0RMTElNUE9SVCBCdWZm ZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOworZXh0ZXJuIFBHRExMSU1QT1JUIFN0b3JhZ2VJT1VzYWdl IHBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbDsKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxVc2FnZSBw Z1dhbFVzYWdlOwogCiBleHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jKGludCBuLCBp bnQgaW5zdHJ1bWVudF9vcHRpb25zLApAQCAtMTEwLDExICsxMTksMTYgQEAgZXh0ZXJuIHZvaWQg SW5zdHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7CiBl eHRlcm4gdm9pZCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwg ZG91YmxlIG5UdXBsZXMpOwogZXh0ZXJuIHZvaWQgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlv biAqaW5zdHIpOwogZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0 LCBJbnN0cnVtZW50YXRpb24gKmFkZCk7Ci1leHRlcm4gdm9pZCBJbnN0clN0YXJ0UGFyYWxsZWxR dWVyeSh2b2lkKTsKLWV4dGVybiB2b2lkIEluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7Ci1leHRlcm4gdm9pZCBJbnN0ckFjY3Vt UGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7 CitleHRlcm4gdm9pZCBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShTdG9yYWdlSU9Vc2FnZSAqc3Rv cmFnZWlvdXNhZ2UpOworZXh0ZXJuIHZvaWQgSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVz YWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAq d2FsdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZV9zdGFydCk7CitleHRlcm4g dm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFN0b3Jh Z2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKIGV4dGVybiB2 b2lkIEJ1ZmZlclVzYWdlQWNjdW1EaWZmKEJ1ZmZlclVzYWdlICpkc3QsCiAJCQkJCQkJCSBjb25z dCBCdWZmZXJVc2FnZSAqYWRkLCBjb25zdCBCdWZmZXJVc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lk IFN0b3JhZ2VJT1VzYWdlQWNjdW1EaWZmKFN0b3JhZ2VJT1VzYWdlICpkc3QsCisJCQkJCQkJCQlj b25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKTsKK2V4 dGVybiB2b2lkIFN0b3JhZ2VJT1VzYWdlRGlmZihTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBT dG9yYWdlSU9Vc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lkIFN0b3JhZ2VJT1VzYWdlQWRkKFN0b3Jh Z2VJT1VzYWdlICpkc3QsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICphZGQpOworZXh0ZXJuIHZvaWQg R2V0U3RvcmFnZUlPVXNhZ2UoU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKTsKIGV4dGVybiB2b2lkIFdh bFVzYWdlQWNjdW1EaWZmKFdhbFVzYWdlICpkc3QsIGNvbnN0IFdhbFVzYWdlICphZGQsCiAJCQkJ CQkJICBjb25zdCBXYWxVc2FnZSAqc3ViKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9y dC93aW4zMi9zeXMvcmVzb3VyY2UuaCBiL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291 cmNlLmgKaW5kZXggYTE0ZmVlYjU4NC4uMjcwZGMzN2M4NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcG9ydC93aW4zMi9zeXMvcmVzb3VyY2UuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0L3dpbjMy L3N5cy9yZXNvdXJjZS5oCkBAIC0xMyw2ICsxMyw4IEBAIHN0cnVjdCBydXNhZ2UKIHsKIAlzdHJ1 Y3QgdGltZXZhbCBydV91dGltZTsJLyogdXNlciB0aW1lIHVzZWQgKi8KIAlzdHJ1Y3QgdGltZXZh bCBydV9zdGltZTsJLyogc3lzdGVtIHRpbWUgdXNlZCAqLworCWxvbmcJCXJ1X2luYmxvY2s7CQkv KiBDdXJyZW50bHkgYWx3YXlzIDAgZm9yIFdpbmRvd3MgKi8KKwlsb25nCQlydV9vdWJsb2NrOwkJ LyogQ3VycmVudGx5IGFsd2F5cyAwIGZvciBXaW5kb3dzICovCiB9OwogCiBleHRlcm4gaW50CWdl dHJ1c2FnZShpbnQgd2hvLCBzdHJ1Y3QgcnVzYWdlICpydXNhZ2UpOwpkaWZmIC0tZ2l0IGEvc3Jj L3BvcnQvd2luMzJnZXRydXNhZ2UuYyBiL3NyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMKaW5kZXgg NmExOTdjOTQzNy4uMjdmMGVhMDUyYSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvd2luMzJnZXRydXNh Z2UuYworKysgYi9zcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jCkBAIC01Nyw1ICs1Nyw5IEBAIGdl dHJ1c2FnZShpbnQgd2hvLCBzdHJ1Y3QgcnVzYWdlICpydXNhZ2UpCiAJcnVzYWdlLT5ydV91dGlt ZS50dl9zZWMgPSBsaS5RdWFkUGFydCAvIDEwMDAwMDBMOwogCXJ1c2FnZS0+cnVfdXRpbWUudHZf dXNlYyA9IGxpLlF1YWRQYXJ0ICUgMTAwMDAwMEw7CiAKKwkvKiBDdXJyZW50bHkgYWx3YXlzIDAg Zm9yIFdpbmRvd3MgKi8KKwlydXNhZ2UtPnJ1X2luYmxvY2sgPSAwOworCXJ1c2FnZS0+cnVfb3Vi bG9jayA9IDA7CisKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZXhwbGFpbl8xLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFp bl8xLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMTVjZTE4MThi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEu b3V0CkBAIC0wLDAgKzEsODQ5IEBACistLQorLS0gRVhQTEFJTgorLS0KKy0tIFRoZXJlIGFyZSBt YW55IHRlc3QgY2FzZXMgZWxzZXdoZXJlIHRoYXQgdXNlIEVYUExBSU4gYXMgYSB2ZWhpY2xlIGZv cgorLS0gY2hlY2tpbmcgc29tZXRoaW5nIGVsc2UgKHVzdWFsbHkgcGxhbm5lciBiZWhhdmlvciku ICBUaGlzIGZpbGUgaXMKKy0tIGNvbmNlcm5lZCB3aXRoIHRlc3RpbmcgRVhQTEFJTiBpbiBpdHMg b3duIHJpZ2h0LgorLS0KKy0tIFRvIHByb2R1Y2Ugc3RhYmxlIHJlZ3Jlc3Npb24gdGVzdCBvdXRw dXQsIGl0J3MgdXN1YWxseSBuZWNlc3NhcnkgdG8KKy0tIGlnbm9yZSBkZXRhaWxzIHN1Y2ggYXMg ZXhhY3QgY29zdHMgb3Igcm93IGNvdW50cy4gIFRoZXNlIGZpbHRlcgorLS0gZnVuY3Rpb25zIHJl cGxhY2UgY2hhbmdlYWJsZSBvdXRwdXQgZGV0YWlscyB3aXRoIGZpeGVkIHN0cmluZ3MuCitjcmVh dGUgZnVuY3Rpb24gZXhwbGFpbl9maWx0ZXIodGV4dCkgcmV0dXJucyBzZXRvZiB0ZXh0CitsYW5n dWFnZSBwbHBnc3FsIGFzCiskJAorZGVjbGFyZQorICAgIGxuIHRleHQ7CitiZWdpbgorICAgIGZv ciBsbiBpbiBleGVjdXRlICQxCisgICAgbG9vcAorICAgICAgICAtLSBSZXBsYWNlIGFueSBudW1l cmljIHdvcmQgd2l0aCBqdXN0ICdOJworICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwg Jy0/XG1cZCtcTScsICdOJywgJ2cnKTsKKyAgICAgICAgLS0gSW4gc29ydCBvdXRwdXQsIHRoZSBh Ym92ZSB3b24ndCBtYXRjaCB1bml0cy1zdWZmaXhlZCBudW1iZXJzCisgICAgICAgIGxuIDo9IHJl Z2V4cF9yZXBsYWNlKGxuLCAnXG1cZCtrQicsICdOa0InLCAnZycpOworICAgICAgICAtLSBJZ25v cmUgdGV4dC1tb2RlIGJ1ZmZlcnMgb3V0cHV0IGJlY2F1c2UgaXQgdmFyaWVzIGRlcGVuZGluZwor ICAgICAgICAtLSBvbiB0aGUgc3lzdGVtIHN0YXRlCisgICAgICAgIENPTlRJTlVFIFdIRU4gKGxu IH4gJyArQnVmZmVyczogLionKTsKKyAgICAgICAgLS0gSWdub3JlIHRleHQtbW9kZSAiUGxhbm5p bmc6IiBsaW5lIGJlY2F1c2Ugd2hldGhlciBpdCdzIG91dHB1dAorICAgICAgICAtLSB2YXJpZXMg ZGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0gc3RhdGUKKyAgICAgICAgQ09OVElOVUUgV0hFTiAobG4g PSAnUGxhbm5pbmc6Jyk7CisgICAgICAgIHJldHVybiBuZXh0IGxuOworICAgIGVuZCBsb29wOwor ZW5kOworJCQ7CistLSBUbyBwcm9kdWNlIHZhbGlkIEpTT04gb3V0cHV0LCByZXBsYWNlIG51bWJl cnMgd2l0aCAiMCIgb3IgIjAuMCIgbm90ICJOIgorY3JlYXRlIGZ1bmN0aW9uIGV4cGxhaW5fZmls dGVyX3RvX2pzb24odGV4dCkgcmV0dXJucyBqc29uYgorbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQK K2RlY2xhcmUKKyAgICBkYXRhIHRleHQgOj0gJyc7CisgICAgbG4gdGV4dDsKK2JlZ2luCisgICAg Zm9yIGxuIGluIGV4ZWN1dGUgJDEKKyAgICBsb29wCisgICAgICAgIC0tIFJlcGxhY2UgYW55IG51 bWVyaWMgd29yZCB3aXRoIGp1c3QgJzAnCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxu LCAnXG1cZCtcTScsICcwJywgJ2cnKTsKKyAgICAgICAgZGF0YSA6PSBkYXRhIHx8IGxuOworICAg IGVuZCBsb29wOworICAgIHJldHVybiBkYXRhOjpqc29uYjsKK2VuZDsKKyQkOworLS0gRGlzYWJs ZSBKSVQsIG9yIHdlJ2xsIGdldCBkaWZmZXJlbnQgb3V0cHV0IG9uIG1hY2hpbmVzIHdoZXJlIHRo YXQncyBiZWVuCistLSBmb3JjZWQgb24KK3NldCBqaXQgPSBvZmY7CistLSBTaW1pbGFybHksIGRp c2FibGUgdHJhY2tfaW9fdGltaW5nLCB0byBhdm9pZCBvdXRwdXQgZGlmZmVyZW5jZXMgd2hlbgor LS0gZW5hYmxlZC4KK3NldCB0cmFja19pb190aW1pbmcgPSBvZmY7CistLSBTaW1wbGUgY2FzZXMK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4 Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4g d2lkdGg9TikKKygxIHJvdykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFs eXplLCBidWZmZXJzIG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4u TiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4p CisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDMgcm93 cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzIG9m ZiwgdmVyYm9zZSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLmludDhfdGJsIGk4 ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJv d3M9Ti5OIGxvb3BzPU4pCisgICBPdXRwdXQ6IHExLCBxMgorIFBsYW5uaW5nIFRpbWU6IE4uTiBt cworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2Zp bHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IHRleHQpIHNlbGVjdCAqIGZy b20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBv biBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGlt ZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4 ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKygzIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IHhtbCkgc2VsZWN0ICogZnJvbSBpbnQ4 X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgPGV4cGxhaW4geG1sbnM9Imh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcv Ti9leHBsYWluIj4gKworICAgPFF1ZXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgPFBsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgPE5vZGUtVHlwZT5TZXEgU2NhbjwvTm9kZS1UeXBlPiAg ICAgICAgICAgICAgICAgKworICAgICAgIDxQYXJhbGxlbC1Bd2FyZT5mYWxzZTwvUGFyYWxsZWwt QXdhcmU+ICAgICAgICAgICsKKyAgICAgICA8QXN5bmMtQ2FwYWJsZT5mYWxzZTwvQXN5bmMtQ2Fw YWJsZT4gICAgICAgICAgICArCisgICAgICAgPFJlbGF0aW9uLU5hbWU+aW50OF90Ymw8L1JlbGF0 aW9uLU5hbWU+ICAgICAgICAgKworICAgICAgIDxBbGlhcz5pODwvQWxpYXM+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8U3RhcnR1cC1Db3N0Pk4uTjwvU3RhcnR1cC1D b3N0PiAgICAgICAgICAgICAgICArCisgICAgICAgPFRvdGFsLUNvc3Q+Ti5OPC9Ub3RhbC1Db3N0 PiAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxQbGFuLVJvd3M+TjwvUGxhbi1Sb3dzPiAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8UGxhbi1XaWR0aD5OPC9QbGFuLVdpZHRo PiAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPEFjdHVhbC1TdGFydHVwLVRpbWU+Ti5O PC9BY3R1YWwtU3RhcnR1cC1UaW1lPiAgKworICAgICAgIDxBY3R1YWwtVG90YWwtVGltZT5OLk48 L0FjdHVhbC1Ub3RhbC1UaW1lPiAgICAgICsKKyAgICAgICA8QWN0dWFsLVJvd3M+Ti5OPC9BY3R1 YWwtUm93cz4gICAgICAgICAgICAgICAgICArCisgICAgICAgPEFjdHVhbC1Mb29wcz5OPC9BY3R1 YWwtTG9vcHM+ICAgICAgICAgICAgICAgICAgKworICAgICAgIDxEaXNhYmxlZD5mYWxzZTwvRGlz YWJsZWQ+ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8U2hhcmVkLUhpdC1CbG9ja3M+ TjwvU2hhcmVkLUhpdC1CbG9ja3M+ICAgICAgICArCisgICAgICAgPFNoYXJlZC1SZWFkLUJsb2Nr cz5OPC9TaGFyZWQtUmVhZC1CbG9ja3M+ICAgICAgKworICAgICAgIDxTaGFyZWQtRGlydGllZC1C bG9ja3M+TjwvU2hhcmVkLURpcnRpZWQtQmxvY2tzPisKKyAgICAgICA8U2hhcmVkLVdyaXR0ZW4t QmxvY2tzPk48L1NoYXJlZC1Xcml0dGVuLUJsb2Nrcz4rCisgICAgICAgPExvY2FsLUhpdC1CbG9j a3M+TjwvTG9jYWwtSGl0LUJsb2Nrcz4gICAgICAgICAgKworICAgICAgIDxMb2NhbC1SZWFkLUJs b2Nrcz5OPC9Mb2NhbC1SZWFkLUJsb2Nrcz4gICAgICAgICsKKyAgICAgICA8TG9jYWwtRGlydGll ZC1CbG9ja3M+TjwvTG9jYWwtRGlydGllZC1CbG9ja3M+ICArCisgICAgICAgPExvY2FsLVdyaXR0 ZW4tQmxvY2tzPk48L0xvY2FsLVdyaXR0ZW4tQmxvY2tzPiAgKworICAgICAgIDxUZW1wLVJlYWQt QmxvY2tzPk48L1RlbXAtUmVhZC1CbG9ja3M+ICAgICAgICAgICsKKyAgICAgICA8VGVtcC1Xcml0 dGVuLUJsb2Nrcz5OPC9UZW1wLVdyaXR0ZW4tQmxvY2tzPiAgICArCisgICAgIDwvUGxhbj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8UGxhbm5pbmc+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8U2hhcmVk LUhpdC1CbG9ja3M+TjwvU2hhcmVkLUhpdC1CbG9ja3M+ICAgICAgICArCisgICAgICAgPFNoYXJl ZC1SZWFkLUJsb2Nrcz5OPC9TaGFyZWQtUmVhZC1CbG9ja3M+ICAgICAgKworICAgICAgIDxTaGFy ZWQtRGlydGllZC1CbG9ja3M+TjwvU2hhcmVkLURpcnRpZWQtQmxvY2tzPisKKyAgICAgICA8U2hh cmVkLVdyaXR0ZW4tQmxvY2tzPk48L1NoYXJlZC1Xcml0dGVuLUJsb2Nrcz4rCisgICAgICAgPExv Y2FsLUhpdC1CbG9ja3M+TjwvTG9jYWwtSGl0LUJsb2Nrcz4gICAgICAgICAgKworICAgICAgIDxM b2NhbC1SZWFkLUJsb2Nrcz5OPC9Mb2NhbC1SZWFkLUJsb2Nrcz4gICAgICAgICsKKyAgICAgICA8 TG9jYWwtRGlydGllZC1CbG9ja3M+TjwvTG9jYWwtRGlydGllZC1CbG9ja3M+ICArCisgICAgICAg PExvY2FsLVdyaXR0ZW4tQmxvY2tzPk48L0xvY2FsLVdyaXR0ZW4tQmxvY2tzPiAgKworICAgICAg IDxUZW1wLVJlYWQtQmxvY2tzPk48L1RlbXAtUmVhZC1CbG9ja3M+ICAgICAgICAgICsKKyAgICAg ICA8VGVtcC1Xcml0dGVuLUJsb2Nrcz5OPC9UZW1wLVdyaXR0ZW4tQmxvY2tzPiAgICArCisgICAg ICAgPFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFnZS1JLU8tUmVhZD4gICAgICAgICAgKworICAg ICAgIDxTdG9yYWdlLUktTy1SZWFkPk48L1N0b3JhZ2UtSS1PLVJlYWQ+ICAgICAgICAgICsKKyAg ICAgPC9QbGFubmluZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIDxQbGFubmluZy1UaW1lPk4uTjwvUGxhbm5pbmctVGltZT4gICAgICAgICAgICAgICAgKwor ICAgICA8VHJpZ2dlcnM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgPC9UcmlnZ2Vycz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgIDxFeGVjdXRpb24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgIDxTdG9yYWdlLUktTy1SZWFkPk48L1N0b3JhZ2UtSS1PLVJlYWQ+ICAgICAgICAg ICsKKyAgICAgICA8U3RvcmFnZS1JLU8tUmVhZD5OPC9TdG9yYWdlLUktTy1SZWFkPiAgICAgICAg ICArCisgICAgIDwvRXhlY3V0aW9uPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICA8RXhlY3V0aW9uLVRpbWU+Ti5OPC9FeGVjdXRpb24tVGltZT4gICAgICAgICAg ICAgICsKKyAgIDwvUXVlcnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgPC9leHBsYWluPgorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4 cGxhaW4gKGFuYWx5emUsIHNlcmlhbGl6ZSwgYnVmZmVycywgZm9ybWF0IHlhbWwpIHNlbGVjdCAq IGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtIFBsYW46ICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgTm9kZSBUeXBlOiAiU2VxIFNjYW4iICAgICsKKyAgICAgUGFyYWxsZWwgQXdh cmU6IGZhbHNlICAgICsKKyAgICAgQXN5bmMgQ2FwYWJsZTogZmFsc2UgICAgICsKKyAgICAgUmVs YXRpb24gTmFtZTogImludDhfdGJsIisKKyAgICAgQWxpYXM6ICJpOCIgICAgICAgICAgICAgICsK KyAgICAgU3RhcnR1cCBDb3N0OiBOLk4gICAgICAgICsKKyAgICAgVG90YWwgQ29zdDogTi5OICAg ICAgICAgICsKKyAgICAgUGxhbiBSb3dzOiBOICAgICAgICAgICAgICsKKyAgICAgUGxhbiBXaWR0 aDogTiAgICAgICAgICAgICsKKyAgICAgQWN0dWFsIFN0YXJ0dXAgVGltZTogTi5OICsKKyAgICAg QWN0dWFsIFRvdGFsIFRpbWU6IE4uTiAgICsKKyAgICAgQWN0dWFsIFJvd3M6IE4uTiAgICAgICAg ICsKKyAgICAgQWN0dWFsIExvb3BzOiBOICAgICAgICAgICsKKyAgICAgRGlzYWJsZWQ6IGZhbHNl ICAgICAgICAgICsKKyAgICAgU2hhcmVkIEhpdCBCbG9ja3M6IE4gICAgICsKKyAgICAgU2hhcmVk IFJlYWQgQmxvY2tzOiBOICAgICsKKyAgICAgU2hhcmVkIERpcnRpZWQgQmxvY2tzOiBOICsKKyAg ICAgU2hhcmVkIFdyaXR0ZW4gQmxvY2tzOiBOICsKKyAgICAgTG9jYWwgSGl0IEJsb2NrczogTiAg ICAgICsKKyAgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4gICAgICsKKyAgICAgTG9jYWwgRGlydGll ZCBCbG9ja3M6IE4gICsKKyAgICAgTG9jYWwgV3JpdHRlbiBCbG9ja3M6IE4gICsKKyAgICAgVGVt cCBSZWFkIEJsb2NrczogTiAgICAgICsKKyAgICAgVGVtcCBXcml0dGVuIEJsb2NrczogTiAgICsK KyAgIFBsYW5uaW5nOiAgICAgICAgICAgICAgICAgICsKKyAgICAgU2hhcmVkIEhpdCBCbG9ja3M6 IE4gICAgICsKKyAgICAgU2hhcmVkIFJlYWQgQmxvY2tzOiBOICAgICsKKyAgICAgU2hhcmVkIERp cnRpZWQgQmxvY2tzOiBOICsKKyAgICAgU2hhcmVkIFdyaXR0ZW4gQmxvY2tzOiBOICsKKyAgICAg TG9jYWwgSGl0IEJsb2NrczogTiAgICAgICsKKyAgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4gICAg ICsKKyAgICAgTG9jYWwgRGlydGllZCBCbG9ja3M6IE4gICsKKyAgICAgTG9jYWwgV3JpdHRlbiBC bG9ja3M6IE4gICsKKyAgICAgVGVtcCBSZWFkIEJsb2NrczogTiAgICAgICsKKyAgICAgVGVtcCBX cml0dGVuIEJsb2NrczogTiAgICsKKyAgICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAg ICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAgIFBsYW5uaW5nIFRpbWU6IE4uTiAgICAg ICAgICsKKyAgIFRyaWdnZXJzOiAgICAgICAgICAgICAgICAgICsKKyAgIFNlcmlhbGl6YXRpb246 ICAgICAgICAgICAgICsKKyAgICAgVGltZTogTi5OICAgICAgICAgICAgICAgICsKKyAgICAgT3V0 cHV0IFZvbHVtZTogTiAgICAgICAgICsKKyAgICAgRm9ybWF0OiAidGV4dCIgICAgICAgICAgICsK KyAgICAgU2hhcmVkIEhpdCBCbG9ja3M6IE4gICAgICsKKyAgICAgU2hhcmVkIFJlYWQgQmxvY2tz OiBOICAgICsKKyAgICAgU2hhcmVkIERpcnRpZWQgQmxvY2tzOiBOICsKKyAgICAgU2hhcmVkIFdy aXR0ZW4gQmxvY2tzOiBOICsKKyAgICAgTG9jYWwgSGl0IEJsb2NrczogTiAgICAgICsKKyAgICAg TG9jYWwgUmVhZCBCbG9ja3M6IE4gICAgICsKKyAgICAgTG9jYWwgRGlydGllZCBCbG9ja3M6IE4g ICsKKyAgICAgTG9jYWwgV3JpdHRlbiBCbG9ja3M6IE4gICsKKyAgICAgVGVtcCBSZWFkIEJsb2Nr czogTiAgICAgICsKKyAgICAgVGVtcCBXcml0dGVuIEJsb2NrczogTiAgICsKKyAgIEV4ZWN1dGlv bjogICAgICAgICAgICAgICAgICsKKyAgICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAg ICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAgIEV4ZWN1dGlvbiBUaW1lOiBOLk4KKygx IHJvdykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChidWZmZXJzLCBmb3JtYXQg dGV4dCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAg ZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4 X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisoMSByb3cpCisKK3NlbGVj dCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYnVmZmVycywgZm9ybWF0IGpzb24pIHNlbGVjdCAq IGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAiUGxhbiI6IHsgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlw ZSI6ICJTZXEgU2NhbiIsICAgICsKKyAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAg KworICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICArCisgICAgICAgIlJlbGF0aW9u IE5hbWUiOiAiaW50OF90YmwiLCsKKyAgICAgICAiQWxpYXMiOiAiaTgiLCAgICAgICAgICAgICAg KworICAgICAgICJTdGFydHVwIENvc3QiOiBOLk4sICAgICAgICArCisgICAgICAgIlRvdGFsIENv c3QiOiBOLk4sICAgICAgICAgICsKKyAgICAgICAiUGxhbiBSb3dzIjogTiwgICAgICAgICAgICAg KworICAgICAgICJQbGFuIFdpZHRoIjogTiwgICAgICAgICAgICArCisgICAgICAgIkRpc2FibGVk IjogZmFsc2UsICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAg KworICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBE aXJ0aWVkIEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwg KworICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJl YWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAg KworICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVh ZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4gICAg KworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyI6 IHsgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAg KworICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBE aXJ0aWVkIEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwg KworICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJl YWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAg KworICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVh ZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4sICAg KworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisgICAgICAgIlN0b3JhZ2Ug SS9PIFJlYWQiOiBOICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAiRXhlY3V0aW9uIjogeyAgICAgICAgICAgICAgICArCisgICAgICAgIlN0b3JhZ2Ug SS9PIFJlYWQiOiBOLCAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4gICAgICAg KworICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICB9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyBdCisoMSByb3cpCisKKy0tIENoZWNrIGV4cGFuc2lvbiBv ZiB3aW5kb3cgZGVmaW5pdGlvbnMKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiB2ZXJi b3NlIHNlbGVjdCBzdW0odW5pcXVlMSkgb3ZlciB3LCBzdW0odW5pcXVlMikgb3ZlciAodyBvcmRl ciBieSBodW5kcmVkKSwgc3VtKHRlbnRob3VzKSBvdmVyICh3IG9yZGVyIGJ5IGh1bmRyZWQpIGZy b20gdGVuazEgd2luZG93IHcgYXMgKHBhcnRpdGlvbiBieSB0ZW4pJyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiByb3dz PU4gd2lkdGg9TikKKyAgIE91dHB1dDogc3VtKHVuaXF1ZTEpIE9WRVIgdywgKHN1bSh1bmlxdWUy KSBPVkVSIHcxKSwgKHN1bSh0ZW50aG91cykgT1ZFUiB3MSksIHRlbiwgaHVuZHJlZAorICAgV2lu ZG93OiB3IEFTIChQQVJUSVRJT04gQlkgdGVuazEudGVuKQorICAgLT4gIFdpbmRvd0FnZyAgKGNv c3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJl ZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMsIHN1bSh1bmlxdWUyKSBPVkVSIHcxLCBzdW0o dGVudGhvdXMpIE9WRVIgdzEKKyAgICAgICAgIFdpbmRvdzogdzEgQVMgKFBBUlRJVElPTiBCWSB0 ZW5rMS50ZW4gT1JERVIgQlkgdGVuazEuaHVuZHJlZCkKKyAgICAgICAgIC0+ICBTb3J0ICAoY29z dD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBo dW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cworICAgICAgICAgICAgICAgU29ydCBL ZXk6IHRlbmsxLnRlbiwgdGVuazEuaHVuZHJlZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHB1YmxpYy50ZW5rMSAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVu dGhvdXMKKygxMSByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gdmVyYm9z ZSBzZWxlY3Qgc3VtKHVuaXF1ZTEpIG92ZXIgdzEsIHN1bSh1bmlxdWUyKSBvdmVyICh3MSBvcmRl ciBieSBodW5kcmVkKSwgc3VtKHRlbnRob3VzKSBvdmVyICh3MSBvcmRlciBieSBodW5kcmVkIHJv d3MgMTAgcHJlY2VkaW5nKSBmcm9tIHRlbmsxIHdpbmRvdyB3MSBhcyAocGFydGl0aW9uIGJ5IHRl biknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxh aW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91dHB1dDogc3VtKHVuaXF1 ZTEpIE9WRVIgdzEsIChzdW0odW5pcXVlMikgT1ZFUiB3MiksIChzdW0odGVudGhvdXMpIE9WRVIg dzMpLCB0ZW4sIGh1bmRyZWQKKyAgIFdpbmRvdzogdzEgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50 ZW4pCisgICAtPiAgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAg ICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cywg KHN1bSh1bmlxdWUyKSBPVkVSIHcyKSwgc3VtKHRlbnRob3VzKSBPVkVSIHczCisgICAgICAgICBX aW5kb3c6IHczIEFTIChQQVJUSVRJT04gQlkgdGVuazEudGVuIE9SREVSIEJZIHRlbmsxLmh1bmRy ZWQgUk9XUyAnTic6OmJpZ2ludCBQUkVDRURJTkcpCisgICAgICAgICAtPiAgV2luZG93QWdnICAo Y29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgICAgICAgIE91dHB1dDogdGVu LCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cywgc3VtKHVuaXF1ZTIpIE9WRVIg dzIKKyAgICAgICAgICAgICAgIFdpbmRvdzogdzIgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4g T1JERVIgQlkgdGVuazEuaHVuZHJlZCkKKyAgICAgICAgICAgICAgIC0+ICBTb3J0ICAoY29zdD1O Lk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdGVu LCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cworICAgICAgICAgICAgICAgICAg ICAgU29ydCBLZXk6IHRlbmsxLnRlbiwgdGVuazEuaHVuZHJlZAorICAgICAgICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy50ZW5rMSAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdp ZHRoPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwg dW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMKKygxNCByb3dzKQorCistLSBDaGVjayBvdXRwdXQg aW5jbHVkaW5nIEkvTyB0aW1pbmdzLiAgVGhlc2UgZmllbGRzIGFyZSBjb25kaXRpb25hbAorLS0g YnV0IGFsd2F5cyBzZXQgaW4gSlNPTiBmb3JtYXQsIHNvIGNoZWNrIHRoZW0gb25seSBpbiB0aGlz IGNhc2UuCitzZXQgdHJhY2tfaW9fdGltaW5nID0gb247CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIo J2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMsIGZvcm1hdCBqc29uKSBzZWxlY3QgKiBmcm9tIGlu dDhfdGJsIGk4Jyk7CisgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlwZSI6 ICJTZXEgU2NhbiIsICAgICArCisgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAr CisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICArCisgICAgICAgIlJlbGF0aW9u IE5hbWUiOiAiaW50OF90YmwiLCArCisgICAgICAgIkFsaWFzIjogImk4IiwgICAgICAgICAgICAg ICArCisgICAgICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAgICArCisgICAgICAgIlRvdGFs IENvc3QiOiBOLk4sICAgICAgICAgICArCisgICAgICAgIlBsYW4gUm93cyI6IE4sICAgICAgICAg ICAgICArCisgICAgICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAgICAgICArCisgICAgICAgIkFj dHVhbCBTdGFydHVwIFRpbWUiOiBOLk4sICArCisgICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjog Ti5OLCAgICArCisgICAgICAgIkFjdHVhbCBSb3dzIjogTi5OLCAgICAgICAgICArCisgICAgICAg IkFjdHVhbCBMb29wcyI6IE4sICAgICAgICAgICArCisgICAgICAgIkRpc2FibGVkIjogZmFsc2Us ICAgICAgICAgICArCisgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAg ICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVk IEJsb2NrcyI6IE4sICArCisgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisg ICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQg QmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICAr CisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICArCisgICAgICAgIlRlbXAgUmVh ZCBCbG9ja3MiOiBOLCAgICAgICArCisgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAg ICArCisgICAgICAgIlNoYXJlZCBJL08gUmVhZCBUaW1lIjogTi5OLCArCisgICAgICAgIlNoYXJl ZCBJL08gV3JpdGUgVGltZSI6IE4uTiwrCisgICAgICAgIkxvY2FsIEkvTyBSZWFkIFRpbWUiOiBO Lk4sICArCisgICAgICAgIkxvY2FsIEkvTyBXcml0ZSBUaW1lIjogTi5OLCArCisgICAgICAgIlRl bXAgSS9PIFJlYWQgVGltZSI6IE4uTiwgICArCisgICAgICAgIlRlbXAgSS9PIFdyaXRlIFRpbWUi OiBOLk4gICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQ bGFubmluZyI6IHsgICAgICAgICAgICAgICAgICArCisgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tz IjogTiwgICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICArCisgICAg ICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICArCisgICAgICAgIlNoYXJlZCBXcml0dGVu IEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICArCisg ICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIERpcnRp ZWQgQmxvY2tzIjogTiwgICArCisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICAr CisgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICArCisgICAgICAgIlRlbXAgV3Jp dHRlbiBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBJL08gUmVhZCBUaW1lIjogTi5O LCArCisgICAgICAgIlNoYXJlZCBJL08gV3JpdGUgVGltZSI6IE4uTiwrCisgICAgICAgIkxvY2Fs IEkvTyBSZWFkIFRpbWUiOiBOLk4sICArCisgICAgICAgIkxvY2FsIEkvTyBXcml0ZSBUaW1lIjog Ti5OLCArCisgICAgICAgIlRlbXAgSS9PIFJlYWQgVGltZSI6IE4uTiwgICArCisgICAgICAgIlRl bXAgSS9PIFdyaXRlIFRpbWUiOiBOLk4sICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBO LCAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOICAgICAgICArCisgICAgIH0s ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyBUaW1lIjogTi5O LCAgICAgICAgICArCisgICAgICJUcmlnZ2VycyI6IFsgICAgICAgICAgICAgICAgICArCisgICAg IF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAg ICAgICAgICAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICArCisg ICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOICAgICAgICArCisgICAgIH0sICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24gVGltZSI6IE4uTiAgICAgICAgICAr CisgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgXQorKDEgcm93KQorCitz ZXQgdHJhY2tfaW9fdGltaW5nID0gb2ZmOworLS0gU0VUVElOR1Mgb3B0aW9uCistLSBXZSBoYXZl IHRvIGlnbm9yZSBvdGhlciBzZXR0aW5ncyB0aGF0IG1pZ2h0IGJlIGltcG9zZWQgYnkgdGhlIGVu dmlyb25tZW50LAorLS0gc28gcHJpbnRpbmcgdGhlIHdob2xlIFNldHRpbmdzIGZpZWxkIHVuZm9y dHVuYXRlbHkgd29uJ3QgZG8uCitiZWdpbjsKK3NldCBsb2NhbCBwbGFuX2NhY2hlX21vZGUgPSBm b3JjZV9nZW5lcmljX3BsYW47CitzZWxlY3QgdHJ1ZSBhcyAiT0siCisgIGZyb20gZXhwbGFpbl9m aWx0ZXIoJ2V4cGxhaW4gKHNldHRpbmdzKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4JykgbG4K KyAgd2hlcmUgbG4gfiAnXiAqU2V0dGluZ3M6IC4qcGxhbl9jYWNoZV9tb2RlID0gJydmb3JjZV9n ZW5lcmljX3BsYW4nJyc7CisgT0sgCistLS0tCisgdAorKDEgcm93KQorCitzZWxlY3QgZXhwbGFp bl9maWx0ZXJfdG9fanNvbignZXhwbGFpbiAoc2V0dGluZ3MsIGZvcm1hdCBqc29uKSBzZWxlY3Qg KiBmcm9tIGludDhfdGJsIGk4JykgIz4gJ3swLFNldHRpbmdzLHBsYW5fY2FjaGVfbW9kZX0nOwor ICAgICAgID9jb2x1bW4/ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICJmb3JjZV9n ZW5lcmljX3BsYW4iCisoMSByb3cpCisKK3JvbGxiYWNrOworLS0gR0VORVJJQ19QTEFOIG9wdGlv bgorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChnZW5lcmljX3BsYW4pIHNlbGVjdCB1 bmlxdWUxIGZyb20gdGVuazEgd2hlcmUgdGhvdXNhbmQgPSAkMScpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBCaXRtYXAgSGVhcCBTY2FuIG9u IHRlbmsxICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIFJlY2hlY2sgQ29uZDog KHRob3VzYW5kID0gJE4pCisgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNf dGVudGhvdXMgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgSW5kZXgg Q29uZDogKHRob3VzYW5kID0gJE4pCisoNCByb3dzKQorCistLSBzaG91bGQgZmFpbAorc2VsZWN0 IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBnZW5lcmljX3BsYW4pIHNlbGVjdCB1 bmlxdWUxIGZyb20gdGVuazEgd2hlcmUgdGhvdXNhbmQgPSAkMScpOworRVJST1I6ICBFWFBMQUlO IG9wdGlvbnMgQU5BTFlaRSBhbmQgR0VORVJJQ19QTEFOIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVy CitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gZXhwbGFpbl9maWx0ZXIodGV4dCkgbGluZSA1 IGF0IEZPUiBvdmVyIEVYRUNVVEUgc3RhdGVtZW50CistLSBNRU1PUlkgb3B0aW9uCitzZWxlY3Qg ZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKG1lbW9yeSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp OCcpOworICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1O IHdpZHRoPU4pCisgICBNZW1vcnk6IHVzZWQ9TmtCICBhbGxvY2F0ZWQ9TmtCCisoMiByb3dzKQor CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKG1lbW9yeSwgYW5hbHl6ZSwgYnVmZmVy cyBvZmYpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdp ZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorICAgTWVtb3J5 OiB1c2VkPU5rQiAgYWxsb2NhdGVkPU5rQgorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1 dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAobWVtb3J5LCBzdW1tYXJ5LCBmb3JtYXQgeWFtbCkgc2VsZWN0ICogZnJvbSBpbnQ4X3Ri bCBpOCcpOworICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIC0gUGxhbjogICAgICAgICAgICAgICAgICAgICAgKworICAgICBO b2RlIFR5cGU6ICJTZXEgU2NhbiIgICAgKworICAgICBQYXJhbGxlbCBBd2FyZTogZmFsc2UgICAg KworICAgICBBc3luYyBDYXBhYmxlOiBmYWxzZSAgICAgKworICAgICBSZWxhdGlvbiBOYW1lOiAi aW50OF90YmwiKworICAgICBBbGlhczogImk4IiAgICAgICAgICAgICAgKworICAgICBTdGFydHVw IENvc3Q6IE4uTiAgICAgICAgKworICAgICBUb3RhbCBDb3N0OiBOLk4gICAgICAgICAgKworICAg ICBQbGFuIFJvd3M6IE4gICAgICAgICAgICAgKworICAgICBQbGFuIFdpZHRoOiBOICAgICAgICAg ICAgKworICAgICBEaXNhYmxlZDogZmFsc2UgICAgICAgICAgKworICAgUGxhbm5pbmc6ICAgICAg ICAgICAgICAgICAgKworICAgICBNZW1vcnkgVXNlZDogTiAgICAgICAgICAgKworICAgICBNZW1v cnkgQWxsb2NhdGVkOiBOICAgICAgKworICAgUGxhbm5pbmcgVGltZTogTi5OCisoMSByb3cpCisK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5LCBhbmFseXplLCBmb3JtYXQg anNvbikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICBleHBsYWluX2Zp bHRlciAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgKworICAgICAgICJQYXJhbGxlbCBBd2Fy ZSI6IGZhbHNlLCAgICArCisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICsKKyAg ICAgICAiUmVsYXRpb24gTmFtZSI6ICJpbnQ4X3RibCIsKworICAgICAgICJBbGlhcyI6ICJpOCIs ICAgICAgICAgICAgICArCisgICAgICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAgICsKKyAg ICAgICAiVG90YWwgQ29zdCI6IE4uTiwgICAgICAgICAgKworICAgICAgICJQbGFuIFJvd3MiOiBO LCAgICAgICAgICAgICArCisgICAgICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAgICAgICsKKyAg ICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IE4uTiwgKworICAgICAgICJBY3R1YWwgVG90YWwg VGltZSI6IE4uTiwgICArCisgICAgICAgIkFjdHVhbCBSb3dzIjogTi5OLCAgICAgICAgICsKKyAg ICAgICAiQWN0dWFsIExvb3BzIjogTiwgICAgICAgICAgKworICAgICAgICJEaXNhYmxlZCI6IGZh bHNlLCAgICAgICAgICArCisgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICsKKyAg ICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQgRGlydGll ZCBCbG9ja3MiOiBOLCArCisgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICsKKyAg ICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJMb2NhbCBSZWFkIEJs b2NrcyI6IE4sICAgICArCisgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAg ICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAgKworICAgICAgICJUZW1wIFJlYWQgQmxv Y2tzIjogTiwgICAgICArCisgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOICAgICsKKyAg ICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbm5pbmciOiB7ICAg ICAgICAgICAgICAgICArCisgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICsKKyAg ICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQgRGlydGll ZCBCbG9ja3MiOiBOLCArCisgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICsKKyAg ICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJMb2NhbCBSZWFkIEJs b2NrcyI6IE4sICAgICArCisgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAg ICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAgKworICAgICAgICJUZW1wIFJlYWQgQmxv Y2tzIjogTiwgICAgICArCisgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBS ZWFkIjogTiwgICAgICArCisgICAgICAgIk1lbW9yeSBVc2VkIjogTiwgICAgICAgICAgICsKKyAg ICAgICAiTWVtb3J5IEFsbG9jYXRlZCI6IE4gICAgICAgKworICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyBUaW1lIjogTi5OLCAgICAgICAgICsKKyAg ICAgIlRyaWdnZXJzIjogWyAgICAgICAgICAgICAgICAgKworICAgICBdLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBS ZWFkIjogTiAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgIkV4ZWN1dGlvbiBUaW1lIjogTi5OICAgICAgICAgKworICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgXQorKDEgcm93KQorCitwcmVwYXJlIGludDhfcXVlcnkgYXMgc2Vs ZWN0ICogZnJvbSBpbnQ4X3RibCBpODsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAo bWVtb3J5KSBleGVjdXRlIGludDhfcXVlcnknKTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxh aW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90Ymwg aTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgTWVtb3J5OiB1c2VkPU5rQiAg YWxsb2NhdGVkPU5rQgorKDIgcm93cykKKworLS0gVGVzdCBFWFBMQUlOIChHRU5FUklDX1BMQU4p IHdpdGggcGFydGl0aW9uIHBydW5pbmcKKy0tIHBhcnRpdGlvbnMgc2hvdWxkIGJlIHBydW5lZCBh dCBwbGFuIHRpbWUsIGJhc2VkIG9uIGNvbnN0YW50cywKKy0tIGJ1dCB0aGVyZSBzaG91bGQgYmUg bm8gcHJ1bmluZyBiYXNlZCBvbiBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzCitjcmVhdGUgdGFibGUg Z2VuX3BhcnQgKAorICBrZXkxIGludGVnZXIgbm90IG51bGwsCisgIGtleTIgaW50ZWdlciBub3Qg bnVsbAorKSBwYXJ0aXRpb24gYnkgbGlzdCAoa2V5MSk7CitjcmVhdGUgdGFibGUgZ2VuX3BhcnRf MQorICBwYXJ0aXRpb24gb2YgZ2VuX3BhcnQgZm9yIHZhbHVlcyBpbiAoMSkKKyAgcGFydGl0aW9u IGJ5IHJhbmdlIChrZXkyKTsKK2NyZWF0ZSB0YWJsZSBnZW5fcGFydF8xXzEKKyAgcGFydGl0aW9u IG9mIGdlbl9wYXJ0XzEgZm9yIHZhbHVlcyBmcm9tICgxKSB0byAoMik7CitjcmVhdGUgdGFibGUg Z2VuX3BhcnRfMV8yCisgIHBhcnRpdGlvbiBvZiBnZW5fcGFydF8xIGZvciB2YWx1ZXMgZnJvbSAo MikgdG8gKDMpOworY3JlYXRlIHRhYmxlIGdlbl9wYXJ0XzIKKyAgcGFydGl0aW9uIG9mIGdlbl9w YXJ0IGZvciB2YWx1ZXMgaW4gKDIpOworLS0gc2hvdWxkIHNjYW4gZ2VuX3BhcnRfMV8xIGFuZCBn ZW5fcGFydF8xXzIsIGJ1dCBub3QgZ2VuX3BhcnRfMgorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdl eHBsYWluIChnZW5lcmljX3BsYW4pIHNlbGVjdCBrZXkxLCBrZXkyIGZyb20gZ2VuX3BhcnQgd2hl cmUga2V5MSA9IDEgYW5kIGtleTIgPSAkMScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBcHBlbmQgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAg LT4gIFNlcSBTY2FuIG9uIGdlbl9wYXJ0XzFfMSBnZW5fcGFydF8xICAoY29zdD1OLk4uLk4uTiBy b3dzPU4gd2lkdGg9TikKKyAgICAgICAgIEZpbHRlcjogKChrZXkxID0gTikgQU5EIChrZXkyID0g JE4pKQorICAgLT4gIFNlcSBTY2FuIG9uIGdlbl9wYXJ0XzFfMiBnZW5fcGFydF8yICAoY29zdD1O Lk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgIEZpbHRlcjogKChrZXkxID0gTikgQU5E IChrZXkyID0gJE4pKQorKDUgcm93cykKKworZHJvcCB0YWJsZSBnZW5fcGFydDsKKy0tCistLSBU ZXN0IHByb2R1Y3Rpb24gb2YgcGVyLXdvcmtlciBkYXRhCistLQorLS0gVW5mb3J0dW5hdGVseSwg YmVjYXVzZSB3ZSBkb24ndCBrbm93IGhvdyBtYW55IHdvcmtlciBwcm9jZXNzZXMgd2UnbGwKKy0t IGFjdHVhbGx5IGdldCAobWF5YmUgbm9uZSBhdCBhbGwpLCB3ZSBjYW4ndCBleGFtaW5lIHRoZSAi V29ya2VycyIgb3V0cHV0CistLSBpbiBhbnkgZGV0YWlsLiAgV2UgY2FuIGNoZWNrIHRoYXQgaXQg cGFyc2VzIGNvcnJlY3RseSBhcyBKU09OLCBhbmQgdGhlbgorLS0gcmVtb3ZlIGl0IGZyb20gdGhl IGRpc3BsYXllZCByZXN1bHRzLgorYmVnaW47CistLSBlbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVs IHBsYW5zCitzZXQgcGFyYWxsZWxfc2V0dXBfY29zdD0wOworc2V0IHBhcmFsbGVsX3R1cGxlX2Nv c3Q9MDsKK3NldCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplPTA7CitzZXQgbWF4X3BhcmFs bGVsX3dvcmtlcnNfcGVyX2dhdGhlcj00Oworc2VsZWN0IGpzb25iX3ByZXR0eSgKKyAgZXhwbGFp bl9maWx0ZXJfdG9fanNvbignZXhwbGFpbiAoYW5hbHl6ZSwgdmVyYm9zZSwgYnVmZmVycywgZm9y bWF0IGpzb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ICogZnJvbSB0ZW5rMSBv cmRlciBieSB0ZW50aG91cycpCisgIC0tIHJlbW92ZSAiV29ya2VycyIgbm9kZSBvZiB0aGUgU2Vx IFNjYW4gcGxhbiBub2RlCisgICMtICd7MCxQbGFuLFBsYW5zLDAsUGxhbnMsMCxXb3JrZXJzfScK KyAgLS0gcmVtb3ZlICJXb3JrZXJzIiBub2RlIG9mIHRoZSBTb3J0IHBsYW4gbm9kZQorICAjLSAn ezAsUGxhbixQbGFucywwLFdvcmtlcnN9JworICAtLSBBbHNvIHJlbW92ZSBpdHMgc29ydC10eXBl IGZpZWxkcywgYXMgdGhvc2UgYXJlbid0IDEwMCUgc3RhYmxlCisgICMtICd7MCxQbGFuLFBsYW5z LDAsU29ydCBNZXRob2R9JworICAjLSAnezAsUGxhbixQbGFucywwLFNvcnQgU3BhY2UgVHlwZX0n CispOworICAgICAgICAgICAgICAgICAgICAgICAganNvbmJfcHJldHR5ICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlBsYW4iOiB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJQbGFucyI6 IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgIlBsYW5zIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpYXMiOiAidGVuazEiLCAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3V0cHV0IjogWyAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTEi LCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVu aXF1ZTIiLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInR3byIsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImZvdXIiLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInRlbiIsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInR3ZW50eSIsICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImh1bmRyZWQiLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRob3VzYW5kIiwgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b3Rob3VzYW5kIiwgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpdmV0aG91cyIs ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlbnRo b3VzIiwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im9kZCIsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImV2ZW4iLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInN0cmluZ3UxIiwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInN0cmluZ3UyIiwgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZzQiICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2NoZW1hIjogInB1YmxpYyIsICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9kZSBUeXBlIjog IlNlcSBTY2FuIiwgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhbiBS b3dzIjogMCwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi UGxhbiBXaWR0aCI6IDAsICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiVG90YWwgQ29zdCI6IDAuMCwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQWN0dWFsIFJvd3MiOiAwLjAsICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJ0ZW5r MSIsICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUi OiB0cnVlLCAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgSGl0 IEJsb2NrcyI6IDAsICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVt cCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiQWN0dWFsIFRvdGFsIFRpbWUiOiAwLjAsICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogMCwgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IDAuMCwgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJP dXRlciIsKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVtcCBXcml0dGVuIEJsb2Nr cyI6IDAsICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgRGlydGll ZCBCbG9ja3MiOiAwLCAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwg V3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U2hhcmVkIERpcnRpZWQgQmxvY2tzIjogMCwgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogMCAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgIk91dHB1dCI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmlxdWUxIiwgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmlxdWUyIiwgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0d28iLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW4iLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0 d2VudHkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICJodW5kcmVkIiwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICJ0aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICJ0d290aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICJmaXZldGhvdXMiLCAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW50aG91cyIsICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJvZGQiLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJldmVuIiwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmd1MSIs ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJp bmd1MiIsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICJzdHJpbmc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgIlNvcnQgS2V5IjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW5rMS50ZW50aG91cyIgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJTb3J0IiwgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlBsYW4gUm93cyI6IDAsICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlBsYW4gV2lkdGgi OiAwLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlRvdGFs IENvc3QiOiAwLjAsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg IkFjdHVhbCBSb3dzIjogMC4wLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgIkFjdHVhbCBMb29wcyI6IDAsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgIlN0YXJ0dXAgQ29zdCI6IDAuMCwgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNvcnQgU3BhY2UgVXNlZCI6IDAsICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAw LCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9j a3MiOiAwLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBU b3RhbCBUaW1lIjogMC4wLCAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkxv Y2FsIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgIkFjdHVhbCBTdGFydHVwIFRpbWUiOiAwLjAsICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgIlBhcmVudCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjog MCwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxv Y2tzIjogMCwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0 aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNoYXJl ZCBXcml0dGVuIEJsb2NrcyI6IDAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgIF0s ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICJPdXRwdXQiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAidW5pcXVlMSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAidW5pcXVlMiIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAidHdvIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAiZm91ciIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidGVuIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidHdlbnR5IiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAiaHVuZHJl ZCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAi dGhvdXNhbmQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAidHdvdGhvdXNhbmQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAiZml2ZXRob3VzIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAidGVudGhvdXMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAib2RkIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAiZXZlbiIsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAic3RyaW5ndTEiLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAic3RyaW5ndTIiLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAic3RyaW5nNCIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgIF0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJE aXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICJOb2RlIFR5cGUiOiAiR2F0aGVyIE1lcmdlIiwgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICJQbGFuIFJvd3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICJQbGFuIFdpZHRoIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICJUb3RhbCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICJBY3R1YWwgUm93cyI6IDAuMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTdGFydHVwIENvc3QiOiAw LjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJBc3luYyBDYXBh YmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJQYXJh bGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICJXb3JrZXJzIFBsYW5uZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICJXb3JrZXJzIExhdW5jaGVkIjogMCwgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICJBY3R1YWwgVG90YWwgVGltZSI6IDAuMCwgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6 IDAsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBC bG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJBY3R1YWwg U3RhcnR1cCBUaW1lIjogMC4wLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJU ZW1wIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlBsYW5uaW5nIjogeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBIaXQgQmxvY2tz IjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTdG9yYWdlIEkv TyBSZWFkIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJUZW1w IFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IDAs ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9j a3MiOiAwLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgV3JpdHRl biBCbG9ja3MiOiAwICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgfSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlRyaWdn ZXJzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgIkV4ZWN1dGlvbiI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogMCAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgIlBsYW5uaW5nIFRpbWUiOiAwLjAsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkV4ZWN1dGlvbiBUaW1lIjogMC4wICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKworcm9sbGJhY2s7 CistLSBUZXN0IGRpc3BsYXkgb2YgdGVtcG9yYXJ5IG9iamVjdHMKK2NyZWF0ZSB0ZW1wIHRhYmxl IHQxKGYxIGZsb2F0OCk7CitjcmVhdGUgZnVuY3Rpb24gcGdfdGVtcC5teXNpbihmbG9hdDgpIHJl dHVybnMgZmxvYXQ4IGxhbmd1YWdlIHBscGdzcWwKK2FzICdiZWdpbiByZXR1cm4gc2luKCQxKTsg ZW5kJzsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgc2VsZWN0ICog ZnJvbSB0MSB3aGVyZSBwZ190ZW1wLm15c2luKGYxKSA8IDAuNScpOworICAgICAgICAgICAgICAg ICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBwZ190ZW1wLnQxICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91 dHB1dDogZjEKKyAgIEZpbHRlcjogKHBnX3RlbXAubXlzaW4odDEuZjEpIDwgJ04uTic6OmRvdWJs ZSBwcmVjaXNpb24pCisoMyByb3dzKQorCistLSBUZXN0IGNvbXB1dGVfcXVlcnlfaWQKK3NldCBj b21wdXRlX3F1ZXJ5X2lkID0gb247CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHZl cmJvc2UpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiBwdWJsaWMuaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0 aD1OKQorICAgT3V0cHV0OiBxMSwgcTIKKyBRdWVyeSBJZGVudGlmaWVyOiBOCisoMyByb3dzKQor CistLSBUZXN0IGNvbXB1dGVfcXVlcnlfaWQgd2l0aCB1dGlsaXR5IHN0YXRlbWVudHMgY29udGFp bmluZyBwbGFubmFibGUgcXVlcnkKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVy Ym9zZSkgZGVjbGFyZSB0ZXN0X2N1ciBjdXJzb3IgZm9yIHNlbGVjdCAqIGZyb20gaW50OF90Ymwn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMuaW50OF90YmwgIChjb3N0PU4uTi4u Ti5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBxMSwgcTIKKyBRdWVyeSBJZGVudGlmaWVy OiBOCisoMyByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHZlcmJvc2Up IGNyZWF0ZSB0YWJsZSB0ZXN0X2N0YXMgYXMgc2VsZWN0IDEnKTsKKyAgICAgICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBSZXN1bHQgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0 cHV0OiBOCisgUXVlcnkgSWRlbnRpZmllcjogTgorKDMgcm93cykKKworLS0gVGVzdCBTRVJJQUxJ WkUgb3B0aW9uCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVy cyBvZmYsc2VyaWFsaXplKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5O IHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikK KyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBTZXJpYWxpemF0aW9uOiB0aW1lPU4uTiBtcyAgb3V0 cHV0PU5rQiAgZm9ybWF0PXRleHQKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQor CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsc2VyaWFsaXplIHRleHQs YnVmZmVycyx0aW1pbmcgb2ZmKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2Nh biBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwg cm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBTZXJpYWxpemF0aW9u OiBvdXRwdXQ9TmtCICBmb3JtYXQ9dGV4dAorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJv d3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxzZXJpYWxpemUg YmluYXJ5LGJ1ZmZlcnMsdGltaW5nKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4u Ti4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9v cHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBTZXJpYWxpemF0aW9uOiB0aW1lPU4uTiBt cyAgb3V0cHV0PU5rQiAgZm9ybWF0PWJpbmFyeQorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0 IHJvd3MpCisKKy0tIHRoaXMgdGVzdHMgYW4gZWRnZSBjYXNlIHdoZXJlIHdlIGhhdmUgbm8gZGF0 YSB0byByZXR1cm4KK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZm ZXJzIG9mZixzZXJpYWxpemUpIGNyZWF0ZSB0ZW1wIHRhYmxlIGV4cGxhaW5fdGVtcCBhcyBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0 dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4g bXMKKyBTZXJpYWxpemF0aW9uOiB0aW1lPU4uTiBtcyAgb3V0cHV0PU5rQiAgZm9ybWF0PXRleHQK KyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQorCistLSBUZXN0IHR1cGxlc3RvcmUg c3RvcmFnZSB1c2FnZSBpbiBXaW5kb3cgYWdncmVnYXRlIChtZW1vcnkgY2FzZSkKK3NlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixjb3N0cyBvZmYpIHNl bGVjdCBzdW0obikgb3ZlcigpIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIGEobiknKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBXaW5kb3c6 IHcxIEFTICgpCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgYSAoYWN0dWFsIHRpbWU9Ti5OLi5O Lk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24g VGltZTogTi5OIG1zCisoNiByb3dzKQorCistLSBUZXN0IHR1cGxlc3RvcmUgc3RvcmFnZSB1c2Fn ZSBpbiBXaW5kb3cgYWdncmVnYXRlIChkaXNrIGNhc2UpCitzZXQgd29ya19tZW0gdG8gNjQ7Citz ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsY29zdHMg b2ZmKSBzZWxlY3Qgc3VtKG4pIG92ZXIoKSBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDI1MDApIGEo biknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisg ICBXaW5kb3c6IHcxIEFTICgpCisgICBTdG9yYWdlOiBEaXNrICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIGEgKGFjdHVhbCB0aW1l PU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhl Y3V0aW9uIFRpbWU6IE4uTiBtcworKDYgcm93cykKKworLS0gVGVzdCB0dXBsZXN0b3JlIHN0b3Jh Z2UgdXNhZ2UgaW4gV2luZG93IGFnZ3JlZ2F0ZSAobWVtb3J5IGFuZCBkaXNrIGNhc2UsIGZpbmFs IHJlc3VsdCBpcyBkaXNrKQorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXpl LGJ1ZmZlcnMgb2ZmLGNvc3RzIG9mZikgc2VsZWN0IHN1bShuKSBvdmVyKHBhcnRpdGlvbiBieSBt KSBmcm9tIChTRUxFQ1QgbiA8IDMgYXMgbSwgbiBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDI1MDAp IGEobikpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9m aWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dz PU4uTiBsb29wcz1OKQorICAgV2luZG93OiB3MSBBUyAoUEFSVElUSU9OIEJZICgoYS5uIDwgTikp KQorICAgU3RvcmFnZTogRGlzayAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIC0+ICBTb3J0IChh Y3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorICAgICAgICAgU29ydCBLZXk6 ICgoYS5uIDwgTikpCisgICAgICAgICBTb3J0IE1ldGhvZDogZXh0ZXJuYWwgbWVyZ2UgIERpc2s6 IE5rQgorICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIGEgKGFj dHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5O IG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDkgcm93cykKKworcmVzZXQgd29ya19tZW07 CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDllYTU3M2ZhZTIuLjQxNDhhZTMzMTcgMTAw NjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjM4LDYgKzI2MzgsNyBAQCBTU0wKIFNTTEV4 dGVuc2lvbkluZm9Db250ZXh0CiBTU0xfQ1RYCiBTVEFSVFVQSU5GTworU3RvcmFnZUlPVXNhZ2UK IFNUUkxFTgogU1YKIFNZTkNIUk9OSVpBVElPTl9CQVJSSUVSCgpiYXNlLWNvbW1pdDogOGZjYzY0 ODc4MDllZmE1NTA4YTRiNzAwNDk0MDIyMzZhNTNiZTg0ZAotLSAKMi40My4wCgo= --=_5619aff05baac7ada54a1e7eb21ccee5--