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 1rSbiz-00Elo3-GG for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2024 11:47:22 +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 1rSbiy-004Jqb-JS for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2024 11:47:20 +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 1rSbix-004JqP-UH for pgsql-hackers@lists.postgresql.org; Wed, 24 Jan 2024 11:47:20 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rSbiu-003SdI-Kl for pgsql-hackers@postgresql.org; Wed, 24 Jan 2024 11:47:19 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-40e86a9fc4bso68953675e9.2 for ; Wed, 24 Jan 2024 03:47:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706096835; x=1706701635; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TUvYgdHLB6wbfPmvS8CrDgKQ83blu4qF+arQq7NWjWs=; b=XA+kTYay5cEX/iPFlWbgwp5gWwHZEEi7lkXOn137VDmEuRTKTGEkoWDxUEwfreuND3 PiYfHhsov2JxlxXhKzQnOcp7PrMEtffA6RDnIBBxu3nGszqI5MNX7aJwVAXChdhtYgJ5 cQ6CgAJGbt0xXHX7gL9ltNL97iXrrhPQcC+maL9Lu3fOgSY4NX5d8BWDEbNZ0ot/WKmq yUUZfrCuyZf6QhzQhTKkJRc+a8geRAvEaA0n3QQxZMqlfWSWrdI3Soh3D+8uLk84P2ms menn/9tbQyTb8q1MHSaU+k9/AYUeyfL7BWv2p7inpv1Shb9FHHFchRMmNeILUStsi8Ls Xm8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706096835; x=1706701635; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TUvYgdHLB6wbfPmvS8CrDgKQ83blu4qF+arQq7NWjWs=; b=O+/X2XLnFQrc6pxXCygQj3akfTHpXyO5HvwFgek89VC+l0x9+l+MEm1OfRNdsOz7C0 qVzintQf20WvWrJynkJ9C0hIXUOQ0VOGr86iBL1eubTCj5CWdmIFUKZM0kkr/vSvXYEp g3JN4sNuEWkQY2xDsZ+7wrr/TCjeAg2jMyO0G622FQd3/pJLFRj1HwNE6mwMmjjaL6Mr X06AMSguopsVSipUfDhFU0xTx4eE8WXEfbJCJ3QRCgj20MQoyRzQJE6/jyK4wgBaxGwn DtDXdqEnSoO7eiroJfrJG6RkC8jlrTJSaM5OuXrenvSqKyrGKaV4xnqGZyfPWXqU4uSY bdnQ== X-Gm-Message-State: AOJu0YximA+FJW9tlgcITw8xdUudZty7jlBNqgeZ0gxDxAS0CoXO+mTC bHi1YQeA1G9Zl0epxR2L4NraZaAbbXuLBaRV4hMc/LlcmsnilOn6xP3rGxsbY5Twz3eDP9wDyKg PNp6ghgEB8VMoBZE0q3y6UpiCr/o= X-Google-Smtp-Source: AGHT+IEP83T5v2VeWoxVK1YX/nM+bBTtj5Rd0nAb1RtDqc1qOI2ba1KTq/qnW7s967vuejosVo9QnuO86ScIJUCxmqg= X-Received: by 2002:a05:600c:4ec7:b0:40e:3b5f:8d11 with SMTP id g7-20020a05600c4ec700b0040e3b5f8d11mr1048089wmq.157.1706096834941; Wed, 24 Jan 2024 03:47:14 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Wed, 24 Jan 2024 17:17:01 +0530 Message-ID: Subject: Re: Synchronizing slots from primary to standby To: Bertrand Drouvot Cc: Amit Kapila , Masahiko Sawada , "Zhijie Hou (Fujitsu)" , Dilip Kumar , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Ajin Cherian , Alvaro Herrera , shveta malik Content-Type: multipart/mixed; boundary="000000000000ccaf76060faf9fb2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ccaf76060faf9fb2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 24, 2024 at 4:09=E2=80=AFPM shveta malik wrote: > > Even if others agree and we change this GUC name to > "sync_replication_slots", I feel we should keep the values as "on" and > "off" currently, where "on" would mean 'sync failover slots' (docs can > state that clearly). I do not think we should support sync of "all > kinds of supported slots" in the first version. Maybe we can think > about it for future versions. PFA v67. Note that the GUC (enable_syncslot) name is unchanged. Once we have final agreement on the name, we can make the change in the next version. Changes in v67 are: 1) Addressed comments by Peter given in [1]. 2) Addressed comments by Swada-San given in [2]. 3) Removed syncing 'failover' on standby from remote_slot. The 'failover' field will be false for synced slots. Since we do not support sync to cascading standbys yet, thus failover=3Dtrue was misleading and unused there. Thanks Hou-San for contributing in 2. Changes are split across patch001,002 and 003. TODO: --Split patch-001 as suggested in [3]. --Change GUC name. [1]: https://www.postgresql.org/message-id/CAHut%2BPu_uK%3D%3DM%2BVmCMug7m7= O6LAwpC05A%3DT7zP8c4G2-hS%2Bbdg%40mail.gmail.com [2]: https://www.postgresql.org/message-id/CAD21AoApGoTZu7D_7%3DbVYQqKnj%2B= PZ2Rz%2Bnc8Ky1HPQMS_XL6%2BA%40mail.gmail.com [3]: https://www.postgresql.org/message-id/CAA4eK1Lxvfq9RwOEsguiMCrKPUc1He9= UGz1_wi0N0cJaXFa4Eg%40mail.gmail.com thanks Shveta --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0005-Non-replication-connection-and-app_name-change.patch" Content-Disposition: attachment; filename="v67-0005-Non-replication-connection-and-app_name-change.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8uv4 RnJvbSBiZDAxNzUyODc1NGE2MjVhOTA3MDA0NTg3NGUxMTk5MDU5OWZjYzE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjMgSmFuIDIwMjQgMTU6NDg6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NyA1LzZdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpU aGlzIHBhdGNoIGhhcyBjb252ZXJ0ZWQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0byBub24tcmVw bGljYXRpb24Kb25lIGluIHRoZSBzbG90c3luYyB3b3JrZXIuCgpJdCBoYXMgYWxzbyBjaGFuZ2Vk IHRoZSBhcHBfbmFtZSB0byB7Y2x1c3Rlcl9uYW1lfV9zbG90c3luY3dvcmtlcgppbiB0aGUgc2xv dHN5bmMgd29ya2VyIGNvbm5lY3Rpb24uCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jICAgICAgIHwgMTIgKysrLS0KIC4uLi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYyAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDE0ICsrKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgIDUgKystCiA3IGZpbGVzIGNoYW5nZWQs IDYwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYwppbmRleCAxNWJiMTBkYTU0Li5mMTdjNjY2ZWJjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC03NTMsNyArNzUzLDggQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAogCQkvKiBUcnkgdG8gY29ubmVjdCB0byB0aGUgcHVibGlzaGVyLiAqLwogCQltdXN0 X3VzZV9wYXNzd29yZCA9ICFzdXBlcnVzZXJfYXJnKG93bmVyKSAmJiBvcHRzLnBhc3N3b3JkcmVx dWlyZWQ7Ci0JCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlLCBtdXN0X3Vz ZV9wYXNzd29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUgLyog cmVwbGljYXRpb24gKi8gLAorCQkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJ CQkJc3RtdC0+c3VibmFtZSwgJmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJZXJlcG9ydChFUlJP UiwKQEAgLTkwNCw3ICs5MDUsOCBAQCBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoKFN1YnNjcmlw dGlvbiAqc3ViLCBib29sIGNvcHlfZGF0YSwKIAogCS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBw dWJsaXNoZXIuICovCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBhc3N3b3JkcmVxdWlyZWQg JiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5j b25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5l Y3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJdHJ1ZSwg bXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKIAlpZiAoIXdyY29u bikKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE1MzEsNyArMTUzMyw4IEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJ CS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3 b3JkID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOwotCQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiBy ZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJ CQlzdWItPm5hbWUsICZlcnIpOwogCQlpZiAoIXdyY29ubikKIAkJCWVyZXBvcnQoRVJST1IsCkBA IC0xNzgyLDcgKzE3ODUsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10 ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJICovCiAJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2Vp dmVyIiwgZmFsc2UpOwogCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUs IG11c3RfdXNlX3Bhc3N3b3JkLAorCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0 cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwK IAkJCQkJCQlzdWJuYW1lLCAmZXJyKTsKIAlpZiAod3Jjb25uID09IE5VTEwpCiAJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJl Y2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYwppbmRleCBhZTc2YzA5OGIxLi4xM2E3ODdiOGJmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYwpAQCAtNiw2ICs2LDkgQEAKICAqIGxvYWRlZCBhcyBhIGR5bmFtaWMgbW9kdWxl IHRvIGF2b2lkIGxpbmtpbmcgdGhlIG1haW4gc2VydmVyIGJpbmFyeSB3aXRoCiAgKiBsaWJwcS4K ICAqCisgKiBBcGFydCBmcm9tIHdhbHJlY2VpdmVyLCB0aGUgbGlicHEtc3BlY2lmaWMgcm91dGlu ZXMgaGVyZSBhcmUgbm93IGJlaW5nIHVzZWQKKyAqIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gd29y a2VycyBhbmQgc2xvdHN5bmMgd29ya2VyIGFzIHdlbGwuCisKICAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMjAxMC0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoK ICAqCkBAIC00OSw3ICs1Miw4IEBAIHN0cnVjdCBXYWxSZWNlaXZlckNvbm4KIAogLyogUHJvdG90 eXBlcyBmb3IgaW50ZXJmYWNlIGZ1bmN0aW9ucyAqLwogc3RhdGljIFdhbFJlY2VpdmVyQ29ubiAq bGlicHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywKLQkJCQkJCQkJCQkgYm9vbCBs b2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAorCQkJCQkJCQkJCSBib29sIHJlcGxpY2F0 aW9uLCBib29sIGxvZ2ljYWwsCisJCQkJCQkJCQkJIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJ CQkJCQkJCQkJIGNvbnN0IGNoYXIgKmFwcG5hbWUsIGNoYXIgKiplcnIpOwogc3RhdGljIHZvaWQg bGlicHFyY3ZfY2hlY2tfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sCiAJCQkJCQkJCQli b29sIG11c3RfdXNlX3Bhc3N3b3JkKTsKQEAgLTEyNCw3ICsxMjgsMTIgQEAgX1BHX2luaXQodm9p ZCkKIH0KIAogLyoKLSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBz ZXJ2ZXIgZm9yIFhMT0cgc3RyZWFtaW5nCisgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8g dGhlIHByaW1hcnkgc2VydmVyLgorICoKKyAqIFRoZSBjb25uZWN0aW9uIGVzdGFibGlzaGVkIGNv dWxkIGJlIGVpdGhlciBhIHJlcGxpY2F0aW9uIG9uZSBvcgorICogYSBub24tcmVwbGljYXRpb24g b25lIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdyZXBsaWNhdGlvbicuIEFuZCBmdXJ0aGVyCisg KiBpZiBpdCBpcyBhIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24sIGl0IGNvdWxkIGJlIGVpdGhlciBs b2dpY2FsIG9yIHBoeXNpY2FsCisgKiBiYXNlZCBvbiBpbnB1dCBhcmd1bWVudCAnbG9naWNhbCcu CiAgKgogICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGlzIGZ1bmN0aW9uIHdpbGwgbm9ybWFsbHkg cmV0dXJuIE5VTEwgYW5kIHNldCAqZXJyCiAgKiB0byBhIHBhbGxvYydlZCBlcnJvciBtZXNzYWdl LiBIb3dldmVyLCBpZiBtdXN0X3VzZV9wYXNzd29yZCBpcyB0cnVlIGFuZApAQCAtMTM1LDggKzE0 NCw4IEBAIF9QR19pbml0KHZvaWQpCiAgKiBjYXNlLgogICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJD b25uICoKLWxpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgbG9naWNh bCwgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKLQkJCQkgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hh ciAqKmVycikKK2xpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgcmVw bGljYXRpb24sIGJvb2wgbG9naWNhbCwKKwkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwgY29u c3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycikKIHsKIAlXYWxSZWNlaXZlckNvbm4gKmNvbm47 CiAJUG9zdGdyZXNQb2xsaW5nU3RhdHVzVHlwZSBzdGF0dXM7CkBAIC0xNTksMTcgKzE2OCwyNiBA QCBsaWJwcXJjdl9jb25uZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBib29sIGxvZ2ljYWwsIGJv b2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJICovCiAJa2V5c1tpXSA9ICJkYm5hbWUiOwogCXZhbHNb aV0gPSBjb25uaW5mbzsKLQlrZXlzWysraV0gPSAicmVwbGljYXRpb24iOwotCXZhbHNbaV0gPSBs b2dpY2FsID8gImRhdGFiYXNlIiA6ICJ0cnVlIjsKLQlpZiAoIWxvZ2ljYWwpCisKKwkvKiBXZSBj YW4gbm90IGhhdmUgbG9naWNhbCB3aXRob3V0IHJlcGxpY2F0aW9uICovCisJaWYgKCFyZXBsaWNh dGlvbikKKwkJQXNzZXJ0KCFsb2dpY2FsKTsKKwllbHNlCiAJewotCQkvKgotCQkgKiBUaGUgZGF0 YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9kZSwg YnV0Ci0JCSAqIHNwZWNpZnkgInJlcGxpY2F0aW9uIiBmb3IgLnBncGFzcyBsb29rdXAuCi0JCSAq LwotCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKLQkJdmFsc1tpXSA9ICJyZXBsaWNhdGlvbiI7CisJ CWtleXNbKytpXSA9ICJyZXBsaWNhdGlvbiI7CisJCXZhbHNbaV0gPSBsb2dpY2FsID8gImRhdGFi YXNlIiA6ICJ0cnVlIjsKKworCQlpZiAoIWxvZ2ljYWwpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUg ZGF0YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9k ZSwKKwkJCSAqIGJ1dCBzcGVjaWZ5ICJyZXBsaWNhdGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgor CQkJICovCisJCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKKwkJCXZhbHNbaV0gPSAicmVwbGljYXRp b24iOworCQl9CiAJfQorCiAJa2V5c1srK2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUi OwogCXZhbHNbaV0gPSBhcHBuYW1lOwogCWlmIChsb2dpY2FsKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9zbG90c3luYy5jCmluZGV4IDJhMDMzNjQ3YjMuLjM5ZDY2YjNlZDAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTEwNjcsNiAr MTA2Nyw3IEBAIFJlcGxTbG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAlib29sCQlwcmltYXJ5X3Nsb3RfaW52YWxpZDsKIAljaGFyCSAgICplcnI7CiAJc2lnam1wX2J1 Zglsb2NhbF9zaWdqbXBfYnVmOworCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1lOwogCiAJYW1fc2xv dHN5bmNfd29ya2VyID0gdHJ1ZTsKIApAQCAtMTE3NiwxMyArMTE3NywyMiBAQCBSZXBsU2xvdFN5 bmNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlTZXRQcm9jZXNzaW5nTW9k ZShOb3JtYWxQcm9jZXNzaW5nKTsKIAorCWluaXRTdHJpbmdJbmZvKCZhcHBfbmFtZSk7CisJaWYg KGNsdXN0ZXJfbmFtZVswXSkKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXBwX25hbWUsICIlc18lcyIs IGNsdXN0ZXJfbmFtZSwgInNsb3RzeW5jd29ya2VyIik7CisJZWxzZQorCQlhcHBlbmRTdHJpbmdJ bmZvKCZhcHBfbmFtZSwgIiVzIiwgInNsb3RzeW5jd29ya2VyIik7CisKIAkvKgogCSAqIEVzdGFi bGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yIHNsb3RzCiAJICog c3luY2hyb25pemF0aW9uLgogCSAqLwotCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlD b25uSW5mbywgdHJ1ZSwgZmFsc2UsCi0JCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9u YW1lIDogInNsb3RzeW5jd29ya2VyIiwKKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmltYXJ5 Q29ubkluZm8sIGZhbHNlIC8qIHJlcGxpY2F0aW9uICovLAorCQkJCQkJCWZhbHNlLCBmYWxzZSwK KwkJCQkJCQlhcHBfbmFtZS5kYXRhLAogCQkJCQkJCSZlcnIpOworCXBmcmVlKGFwcF9uYW1lLmRh dGEpOworCiAJaWYgKCF3cmNvbm4pCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJD T0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC90YWJsZXN5bmMuYwppbmRleCA1YWNhYjNmM2UyLi5jNWM2YWM0YmFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTEzMjksNyArMTMyOSw3IEBA IExvZ2ljYWxSZXBTeW5jVGFibGVTdGFydChYTG9nUmVjUHRyICpvcmlnaW5fc3RhcnRwb3MpCiAJ ICogc28gdGhhdCBzeW5jaHJvbm91cyByZXBsaWNhdGlvbiBjYW4gZGlzdGluZ3Vpc2ggdGhlbS4K IAkgKi8KIAlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0KLQkJd2FscmN2X2Nvbm5lY3QoTXlTdWJz Y3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLAorCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlv bi0+Y29ubmluZm8sIHRydWUgLyogcmVwbGljYXRpb24gKi8gLCB0cnVlLAogCQkJCQkgICBtdXN0 X3VzZV9wYXNzd29yZCwKIAkJCQkJICAgc2xvdG5hbWUsICZlcnIpOwogCWlmIChMb2dSZXBXb3Jr ZXJXYWxSY3ZDb25uID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYwppbmRleCAzMmZmNGMwMzM2Li4wZDc5MWMxODhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ1MTgsNyArNDUxOCw5IEBAIHJ1bl9hcHBseV93b3Jr ZXIoKQogCW11c3RfdXNlX3Bhc3N3b3JkID0gTXlTdWJzY3JpcHRpb24tPnBhc3N3b3JkcmVxdWly ZWQgJiYKIAkJIU15U3Vic2NyaXB0aW9uLT5vd25lcnN1cGVydXNlcjsKIAotCUxvZ1JlcFdvcmtl cldhbFJjdkNvbm4gPSB3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRy dWUsCisJTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9IHdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0 aW9uLT5jb25uaW5mbywKKwkJCQkJCQkJCQkJdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJ CQkJCQkJCXRydWUsCiAJCQkJCQkJCQkJCW11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQkJCQlN eVN1YnNjcmlwdGlvbi0+bmFtZSwgJmVycik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlci5jCmluZGV4IGUyOWE2MTk2YTMuLjg3MmNjY2I1NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2FscmVjZWl2ZXIuYwpAQCAtMjk2LDcgKzI5Niw4IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lk KQogCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmVW5CbG9ja1NpZywgTlVMTCk7CiAKIAkvKiBF c3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgZm9yIFhMT0cgc3RyZWFtaW5n ICovCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGZhbHNlLCBmYWxzZSwKKwl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAs CisJCQkJCQkJZmFsc2UsIGZhbHNlLAogCQkJCQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0ZXJf bmFtZSA6ICJ3YWxyZWNlaXZlciIsCiAJCQkJCQkJJmVycik7CiAJaWYgKCF3cmNvbm4pCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAppbmRleCA0OGRjODQ2ZTE5Li4xYjU2M2ExNmNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKQEAgLTIzNyw2ICsyMzcsNyBA QCB0eXBlZGVmIHN0cnVjdCBXYWxSY3ZFeGVjUmVzdWx0CiAgKiByZXR1cm5lZCB3aXRoICdlcnIn IGluY2x1ZGluZyB0aGUgZXJyb3IgZ2VuZXJhdGVkLgogICovCiB0eXBlZGVmIFdhbFJlY2VpdmVy Q29ubiAqKCp3YWxyY3ZfY29ubmVjdF9mbikgKGNvbnN0IGNoYXIgKmNvbm5pbmZvLAorCQkJCQkJ CQkJCQkgICBib29sIHJlcGxpY2F0aW9uLAogCQkJCQkJCQkJCQkgICBib29sIGxvZ2ljYWwsCiAJ CQkJCQkJCQkJCSAgIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKmFwcG5hbWUsCkBAIC00MjYsOCArNDI3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVj ZWl2ZXJGdW5jdGlvbnNUeXBlCiAKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1bmN0 aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rpb25zOwogCi0jZGVmaW5lIHdhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKSBcCi0J V2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCBsb2dpY2FsLCBt dXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQorI2RlZmluZSB3YWxyY3ZfY29ubmVjdChj b25uaW5mbywgcmVwbGljYXRpb24sIGxvZ2ljYWwsIG11c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1l LCBlcnIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2Nvbm5lY3QoY29ubmluZm8s IHJlcGxpY2F0aW9uLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQog I2RlZmluZSB3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sIG11c3RfdXNlX3Bhc3N3b3Jk KSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5m bywgbXVzdF91c2VfcGFzc3dvcmQpCiAjZGVmaW5lIHdhbHJjdl9nZXRfY29ubmluZm8oY29ubikg XAotLSAKMi4zNC4xCgo= --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Disposition: attachment; filename="v67-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8uj0 RnJvbSA0MmU3MDZmZjYzYTZhZDVkYjM1YzAwM2Q0NGRhM2JhYmE5NDg2ZWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOToxNToyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjY3 IDEvNl0gRW5hYmxlIHNldHRpbmcgZmFpbG92ZXIgcHJvcGVydHkgZm9yIGEgc2xvdCB0aHJvdWdo CiBTUUwgQVBJIGFuZCBzdWJzY3JpcHRpb24gY29tbWFuZHMKClRoaXMgY29tbWl0IGFkZHMgdGhl IGZhaWxvdmVyIHByb3BlcnR5IHRvIHRoZSByZXBsaWNhdGlvbiBzbG90LiBUaGUKZmFpbG92ZXIg cHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNsb3Qgd2lsbCBiZSBzeW5jZWQgdG8gdGhl IHN0YW5kYnkKc2VydmVycywgZW5hYmxpbmcgdGhlIHJlc3VtcHRpb24gb2YgY29ycmVzcG9uZGlu ZyBsb2dpY2FsIHJlcGxpY2F0aW9uCmFmdGVyIGZhaWxvdmVyLiBCdXQgbm90ZSB0aGF0IHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldCBpbmNsdWRlIHRoZQpjYXBhYmlsaXR5IHRvIGFjdHVhbGx5IHN5 bmMgdGhlIHJlcGxpY2F0aW9uIHNsb3Q7IHRoZSBuZXh0IHBhdGNoIHdpbGwKYWRkcmVzcyB0aGF0 LgoKSW4gYWRkaXRpb24sIGEgbmV3IHJlcGxpY2F0aW9uIGNvbW1hbmQgbmFtZWQgQUxURVJfUkVQ TElDQVRJT05fU0xPVCBhbmQgYQpjb3JyZXNwb25kaW5nIHdhbHJlY2VpdmVyIEFQSSBmdW5jdGlv biBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdCBoYXZlIGJlZW4KaW1wbGVtZW50ZWQuIFRoZXNlIGFk ZGl0aW9ucyBwcm92aWRlIHN1YnNjcmliZXJzIG9yIHVzZXJzIHRoZSBhYmlsaXR5IHRvCm1vZGlm eSB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCgpNb3Jlb3ZlciwgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBjYWxsZWQgJ2ZhaWxv dmVyJyBoYXMgYmVlbiBhZGRlZCwKYWxsb3dpbmcgdXNlcnMgdG8gc2V0IGl0IHdoZW4gY3JlYXRp bmcgb3IgYWx0ZXJpbmcgYSBzdWJzY3JpcHRpb24uIEFsc28sCmEgbmV3IHBhcmFtZXRlciAnZmFp bG92ZXInIGlzIGFkZGVkIHRvIHRoZQpwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 IGZ1bmN0aW9uLgoKVGhlIHZhbHVlIG9mIHRoZSAnZmFpbG92ZXInIGZsYWcgaXMgZGlzcGxheWVk IGFzIHBhcnQgb2YKcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBjb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQgICAgICAgfCAgNTggKysrKysrCiBjb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgMTYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxMiArKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgMTA2ICsrKysrKysrKystCiAuLi4vbGlicHF3 YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAgMzggKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgICAxICsKIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX2dyYW0ueSAgICAgICAgICAgfCAgMjAgKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubCAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgIDUzICsrKysrLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgICAgICAgICAgIHwgIDIyICsrLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAgNjQgKysrKysrLQogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191 cGdyYWRlL2luZm8uYyAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5jICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iaW4vcGdfdXBn cmFkZS9wZ191cGdyYWRlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbCAgICAgfCAgIDYgKy0KIHNyYy9iaW4vcHNxbC9kZXNj cmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfc3Vic2NyaXB0aW9uLmggICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9yZXBs bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMTIgKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAgOSArLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuaCAgICAgICAgIHwgIDE4ICstCiAuLi4vdC8wNTBfc3RhbmRieV9mYWlsb3Zl cl9zbG90c19zeW5jLnBsICAgICAgfCAgODkgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAxNjUgKysrKysrKysrKy0tLS0tLS0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgICAgfCAgIDggKwogc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAyICsKIDM5IGZpbGVz IGNoYW5nZWQsIDc2NCBpbnNlcnRpb25zKCspLCAxMjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19z eW5jLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qu b3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qub3V0CmluZGV4IDYzYTk5 NDBmNzMuLjI2MWQ4ODg2ZDMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBl Y3RlZC9zbG90Lm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5v dXQKQEAgLTQwNiwzICs0MDYsNjEgQEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgn Y29waWVkX3Nsb3QyX25vdGVtcCcpOwogIAogKDEgcm93KQogCistLSBUZXN0IGZhaWxvdmVyIG9w dGlvbiBvZiBzbG90cy4KK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBs aWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNl LCBmYWxzZSwgdHJ1ZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQor CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgn ZmFpbG92ZXJfZmFsc2Vfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCBmYWxz ZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1QgJ2lu aXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVm YXVsdF9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UpOworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1Qgc2xvdF9uYW1lLCBzbG90X3R5 cGUsIGZhaWxvdmVyIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHM7CisgICAgICAgc2xvdF9uYW1l ICAgICAgIHwgc2xvdF90eXBlIHwgZmFpbG92ZXIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgZmFpbG92ZXJfdHJ1ZV9zbG90ICAgIHwgbG9naWNhbCAg IHwgdAorIGZhaWxvdmVyX2ZhbHNlX3Nsb3QgICB8IGxvZ2ljYWwgICB8IGYKKyBmYWlsb3Zlcl9k ZWZhdWx0X3Nsb3QgfCBsb2dpY2FsICAgfCBmCisgcGh5c2ljYWxfc2xvdCAgICAgICAgIHwgcGh5 c2ljYWwgIHwgZgorKDQgcm93cykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgn ZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGlj YXRpb25fc2xvdCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcpOworIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOworIHBnX2Ry b3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsK KyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Qu c3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbAppbmRleCAxYWEyN2M1NjY3 Li40NWFlYWU3ZmQ1IDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Qu c3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKQEAgLTE3NiwzICsx NzYsMTYgQEAgT1JERVIgQlkgby5zbG90X25hbWUsIGMuc2xvdF9uYW1lOwogU0VMRUNUIHBnX2Ry b3BfcmVwbGljYXRpb25fc2xvdCgnb3JpZ19zbG90MicpOwogU0VMRUNUIHBnX2Ryb3BfcmVwbGlj YXRpb25fc2xvdCgnY29waWVkX3Nsb3QyX25vX2NoYW5nZScpOwogU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnY29waWVkX3Nsb3QyX25vdGVtcCcpOworCistLSBUZXN0IGZhaWxvdmVy IG9wdGlvbiBvZiBzbG90cy4KK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZh bHNlLCBmYWxzZSwgdHJ1ZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZmFsc2Vfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywg ZmFsc2UsIGZhbHNlLCBmYWxzZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90JywgJ3Rlc3RfZGVjb2Rp bmcnLCBmYWxzZSwgZmFsc2UpOworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNh bF9yZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CisKK1NFTEVDVCBzbG90X25hbWUs IHNsb3RfdHlwZSwgZmFpbG92ZXIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsKKworU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7CitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnKTsKK1NFTEVD VCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggYzE1ZDg2MWU4Mi4uNDlkOGNjNjgyNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTc5OTAsNiAr Nzk5MCwxNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50 Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5zdWJmYWlsb3Zlcjwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0cnVlLCB0aGUgYXNzb2NpYXRlZCBy ZXBsaWNhdGlvbiBzbG90cyAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUKKyAgICAgICB0YWJs ZSBzeW5jIHNsb3RzKSBpbiB0aGUgdXBzdHJlYW0gZGF0YWJhc2UgYXJlIGVuYWJsZWQgdG8gYmUK KyAgICAgICBzeW5jaHJvbml6ZWQgdG8gdGhlIHN0YW5kYnlzCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0 cnVjdGZpZWxkPnN1YmNvbm5pbmZvPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21s CmluZGV4IDIxMGM3YzBiMDIuLjBlZTc2ODM1YmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjc2NTUsNyArMjc2NTUs NyBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQuc2VnbWVudF9udW1iZXIg KiBwcy5zZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIDxpbmRleHRlcm0+CiAgICAgICAg ICA8cHJpbWFyeT5wZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9wcmltYXJ5Pgog ICAgICAgICA8L2luZGV4dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPnBnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJh bWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LCA8cGFyYW1ldGVyPnBsdWdpbjwvcGFyYW1ldGVyPiA8 dHlwZT5uYW1lPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPnRlbXBvcmFyeTwvcGFyYW1l dGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFtZXRlcj50d29waGFzZTwvcGFyYW1ldGVy PiA8dHlwZT5ib29sZWFuPC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxmdW5jdGlvbj5w Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVy PnNsb3RfbmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwgPHBhcmFtZXRlcj5wbHVn aW48L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj50 ZW1wb3Jhcnk8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJhbWV0ZXI+dHdv cGhhc2U8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJhbWV0ZXI+ZmFpbG92 ZXI8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gPC9vcHRpb25hbD4gKQogICAgICAg ICA8cmV0dXJudmFsdWU+cmVjb3JkPC9yZXR1cm52YWx1ZT4KICAgICAgICAgKCA8cGFyYW1ldGVy PnNsb3RfbmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwKICAgICAgICAgPHBhcmFt ZXRlcj5sc248L3BhcmFtZXRlcj4gPHR5cGU+cGdfbHNuPC90eXBlPiApCkBAIC0yNzY3MCw4ICsy NzY3MCwxMyBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQuc2VnbWVudF9u dW1iZXIgKiBwcy5zZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIHJlbGVhc2VkIHVwb24g YW55IGVycm9yLiBUaGUgb3B0aW9uYWwgZm91cnRoIHBhcmFtZXRlciwKICAgICAgICAgPHBhcmFt ZXRlcj50d29waGFzZTwvcGFyYW1ldGVyPiwgd2hlbiBzZXQgdG8gdHJ1ZSwgc3BlY2lmaWVzCiAg ICAgICAgIHRoYXQgdGhlIGRlY29kaW5nIG9mIHByZXBhcmVkIHRyYW5zYWN0aW9ucyBpcyBlbmFi bGVkIGZvciB0aGlzCi0gICAgICAgIHNsb3QuIEEgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGhhcyB0 aGUgc2FtZSBlZmZlY3QgYXMgdGhlIHJlcGxpY2F0aW9uCi0gICAgICAgIHByb3RvY29sIGNvbW1h bmQgPGxpdGVyYWw+Q1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QgLi4uIExPR0lDQUw8L2xpdGVyYWw+ LgorICAgICAgICBzbG90LiBUaGUgb3B0aW9uYWwgZmlmdGggcGFyYW1ldGVyLAorICAgICAgICA8 cGFyYW1ldGVyPmZhaWxvdmVyPC9wYXJhbWV0ZXI+LCB3aGVuIHNldCB0byB0cnVlLAorICAgICAg ICBzcGVjaWZpZXMgdGhhdCB0aGlzIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhl CisgICAgICAgIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUgcmVz dW1lZCBhZnRlcgorICAgICAgICBmYWlsb3Zlci4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gaGFz IHRoZSBzYW1lIGVmZmVjdCBhcworICAgICAgICB0aGUgcmVwbGljYXRpb24gcHJvdG9jb2wgY29t bWFuZAorICAgICAgICA8bGl0ZXJhbD5DUkVBVEVfUkVQTElDQVRJT05fU0xPVCAuLi4gTE9HSUNB TDwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJvdG9j b2wuc2dtbAppbmRleCA2YzNlOGE2MzFkLi5kYzEwYjE5NTZhIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAt MjA2MCw2ICsyMDYwLDE3IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRh YmFzZSIgLWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5GQUlMT1ZFUiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIElmIHRydWUsIHRoZSBz bG90IGlzIGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZSBzdGFuZGJ5cworICAgICAgICAgIHNv IHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4K KyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyBmYWxzZS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgIDwvdmFyaWFibGVs aXN0PgogCiAgICAgICA8cGFyYT4KQEAgLTIxMjQsNiArMjEzNSw0NyBAQCBwc3FsICJkYm5hbWU9 cG9zdGdyZXMgcmVwbGljYXRpb249ZGF0YWJhc2UiIC1jICJJREVOVElGWV9TWVNURU07IgogICAg ICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBp ZD0icHJvdG9jb2wtcmVwbGljYXRpb24tYWx0ZXItcmVwbGljYXRpb24tc2xvdCIgeHJlZmxhYmVs PSJBTFRFUl9SRVBMSUNBVElPTl9TTE9UIj4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVJfUkVQ TElDQVRJT05fU0xPVDwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNs b3RfbmFtZTwvcmVwbGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9w dGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKQorICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5B TFRFUl9SRVBMSUNBVElPTl9TTE9UPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICA8L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIENoYW5nZSB0aGUgZGVmaW5p dGlvbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuCisgICAgICAgU2VlIDx4cmVmIGxpbmtlbmQ9InN0 cmVhbWluZy1yZXBsaWNhdGlvbi1zbG90cyIvPiBmb3IgbW9yZSBhYm91dAorICAgICAgIHJlcGxp Y2F0aW9uIHNsb3RzLiBUaGlzIGNvbW1hbmQgaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZv ciBsb2dpY2FsCisgICAgICAgcmVwbGljYXRpb24gc2xvdHMuCisgICAgICA8L3BhcmE+CisKKyAg ICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+ PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUg bmFtZSBvZiB0aGUgc2xvdCB0byBhbHRlci4gTXVzdCBiZSBhIHZhbGlkIHJlcGxpY2F0aW9uIHNs b3QKKyAgICAgICAgICBuYW1lIChzZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0 aW9uLXNsb3RzLW1hbmlwdWxhdGlvbiIvPikuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4K KworICAgICAgPHBhcmE+VGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBzdXBwb3J0ZWQ6PC9wYXJh PgorCisgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPkZBSUxPVkVSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5h YmxlZCB0byBiZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnlzCisgICAgICAgICAgc28gdGhhdCBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAg ICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLXJlcGxpY2F0aW9uLXJlYWQtcmVw bGljYXRpb24tc2xvdCI+CiAgICAgIDx0ZXJtPjxsaXRlcmFsPlJFQURfUkVQTElDQVRJT05fU0xP VDwvbGl0ZXJhbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVw bGFjZWFibGU+CiAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PlJFQURfUkVQTElDQVRJT05fU0xP VDwvcHJpbWFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlv bi5zZ21sCmluZGV4IDZkMzZmZjBkYzkuLmIzZTc3OWRmNzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMjI2LDEwICsyMjYsMjIgQEAgQUxURVIgU1VCU0NS SVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtc3RyZWFtaW5nIj48bGl0ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+PC9saW5r PiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdp dGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48 L2xpbms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJh bXMtd2l0aC1wYXNzd29yZC1yZXF1aXJlZCI+PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQ8L2xp dGVyYWw+PC9saW5rPiwKLSAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRp b24tcGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJhbD5ydW5fYXNfb3duZXI8L2xpdGVy YWw+PC9saW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLW9yaWdpbiI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4u CisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRo LXJ1bi1hcy1vd25lciI+PGxpdGVyYWw+cnVuX2FzX293bmVyPC9saXRlcmFsPjwvbGluaz4sCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW9y aWdpbiI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4sIGFuZAorICAgICAgPGxpbmsg bGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxp dGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIg Y2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAg ICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhbHRlcmluZyB0aGUKKyAgICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtc2xvdC1u YW1lIj48bGl0ZXJhbD5zbG90X25hbWU8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIHRoZSA8bGl0 ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD4gcHJvcGVydHkgdmFsdWUgb2YgdGhlIG5hbWVkIHNsb3Qg bWF5IGRpZmZlciBmcm9tIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+ PC9saW5rPgorICAgICAgcGFyYW1ldGVyIHNwZWNpZmllZCBpbiB0aGUgc3Vic2NyaXB0aW9uLiBX aGVuIGNyZWF0aW5nIHRoZSBzbG90LAorICAgICAgZW5zdXJlIHRoZSBzbG90IDxsaXRlcmFsPmZh aWxvdmVyPC9saXRlcmFsPiBwcm9wZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPgorICAgICAgcGFyYW1ldGVyIHZhbHVlIG9mIHRoZSBz dWJzY3JpcHRpb24uCisgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXgg YzdhY2U5MjJmOS4uNTlhOTU1NGJmMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2Ny aXB0aW9uLnNnbWwKQEAgLTQwMCw2ICs0MDAsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwK ICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtZmFpbG92ZXIiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5mYWlsb3Zlcjwv bGl0ZXJhbD4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIHJlcGxp Y2F0aW9uIHNsb3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uCisgICAgICAgICAg YXJlIGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZSBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2ljYWwK KyAgICAgICAgICByZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFy eSBhZnRlciBmYWlsb3Zlci4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgPC92YXJsaXN0ZW50cnk+CiAgICAgICA8L3ZhcmlhYmxlbGlzdD48L3BhcmE+CiAKICAgICA8 L2xpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIGIv ZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCmluZGV4IDcyZDAxZmM2MjQuLjg4ZmU0YjYz NDEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTI1NTUsNiArMjU1NSwxNyBAQCBTRUxFQ1Qg KiBGUk9NIHBnX2xvY2tzIHBsIExFRlQgSk9JTiBwZ19wcmVwYXJlZF94YWN0cyBwcHgKICAgICAg ICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZmFpbG92ZXI8 L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVHJ1ZSBpZiB0aGlzIGlzIGEgbG9naWNhbCBzbG90IGVuYWJsZWQgdG8gYmUg c3luY2VkIHRvIHRoZSBzdGFuZGJ5cworICAgICAgIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlv biBjYW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFyeQorICAgICAgIGFmdGVyIGZhaWxv dmVyLiBBbHdheXMgZmFsc2UgZm9yIHBoeXNpY2FsIHNsb3RzLgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGM1MTZjMjVhYzcuLjQwNmEz YzJkZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNzMsNiArNzMs NyBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5k aXNhYmxlb25lcnIgPSBzdWJmb3JtLT5zdWJkaXNhYmxlb25lcnI7CiAJc3ViLT5wYXNzd29yZHJl cXVpcmVkID0gc3ViZm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAlzdWItPnJ1bmFzb3duZXIg PSBzdWJmb3JtLT5zdWJydW5hc293bmVyOworCXN1Yi0+ZmFpbG92ZXIgPSBzdWJmb3JtLT5zdWJm YWlsb3ZlcjsKIAogCS8qIEdldCBjb25uaW5mbyAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV9mdW5jdGlvbnMuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rp b25zLnNxbAppbmRleCBmMzE1ZmVjZjE4Li4zNDZjZmI5OGEwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKQEAgLTQ3OSw2ICs0NzksNyBAQCBDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KAogICAgIElO IHNsb3RfbmFtZSBuYW1lLCBJTiBwbHVnaW4gbmFtZSwKICAgICBJTiB0ZW1wb3JhcnkgYm9vbGVh biBERUZBVUxUIGZhbHNlLAogICAgIElOIHR3b3BoYXNlIGJvb2xlYW4gREVGQVVMVCBmYWxzZSwK KyAgICBJTiBmYWlsb3ZlciBib29sZWFuIERFRkFVTFQgZmFsc2UsCiAgICAgT1VUIHNsb3RfbmFt ZSBuYW1lLCBPVVQgbHNuIHBnX2xzbikKIFJFVFVSTlMgUkVDT1JECiBMQU5HVUFHRSBJTlRFUk5B TApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU0M2UzNmY1YWMuLmU0M2E5 MzczOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwMjMsNyArMTAy Myw4IEBAIENSRUFURSBWSUVXIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgICAgICBM LndhbF9zdGF0dXMsCiAgICAgICAgICAgICBMLnNhZmVfd2FsX3NpemUsCiAgICAgICAgICAgICBM LnR3b19waGFzZSwKLSAgICAgICAgICAgIEwuY29uZmxpY3RfcmVhc29uCisgICAgICAgICAgICBM LmNvbmZsaWN0X3JlYXNvbiwKKyAgICAgICAgICAgIEwuZmFpbG92ZXIKICAgICBGUk9NIHBnX2dl dF9yZXBsaWNhdGlvbl9zbG90cygpIEFTIEwKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRh YmFzZSBEIE9OIChMLmRhdG9pZCA9IEQub2lkKTsKIApAQCAtMTM1Nyw3ICsxMzU4LDggQEAgUkVW T0tFIEFMTCBPTiBwZ19zdWJzY3JpcHRpb24gRlJPTSBwdWJsaWM7CiBHUkFOVCBTRUxFQ1QgKG9p ZCwgc3ViZGJpZCwgc3Vic2tpcGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJsZWQsCiAg ICAgICAgICAgICAgIHN1YmJpbmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0YXRlLCBzdWJk aXNhYmxlb25lcnIsCiAJCQkgIHN1YnBhc3N3b3JkcmVxdWlyZWQsIHN1YnJ1bmFzb3duZXIsCi0g ICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMs IHN1Ym9yaWdpbikKKyAgICAgICAgICAgICAgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1 YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luLAorICAgICAgICAgICAgICBzdWJmYWlsb3ZlcikKICAg ICBPTiBwZ19zdWJzY3JpcHRpb24gVE8gcHVibGljOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3N1 YnNjcmlwdGlvbl9zdGF0cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j CmluZGV4IDc1ZTZjZDhhZTMuLjE1YmIxMGRhNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKQEAgLTcxLDYgKzcxLDcgQEAKICNkZWZpbmUgU1VCT1BUX1JVTl9BU19P V05FUgkJCTB4MDAwMDEwMDAKICNkZWZpbmUgU1VCT1BUX0xTTgkJCQkJMHgwMDAwMjAwMAogI2Rl ZmluZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwMDQwMDAKKyNkZWZpbmUgU1VCT1BUX0ZBSUxPVkVS CQkJCTB4MDAwMDgwMDAKIAogLyogY2hlY2sgaWYgdGhlICd2YWwnIGhhcyAnYml0cycgc2V0ICov CiAjZGVmaW5lIElzU2V0KHZhbCwgYml0cykgICgoKHZhbCkgJiAoYml0cykpID09IChiaXRzKSkK QEAgLTk2LDYgKzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXBhc3N3b3Jk cmVxdWlyZWQ7CiAJYm9vbAkJcnVuYXNvd25lcjsKIAljaGFyCSAgICpvcmlnaW47CisJYm9vbAkJ ZmFpbG92ZXI7CiAJWExvZ1JlY1B0cglsc247CiB9IFN1Yk9wdHM7CiAKQEAgLTE1Nyw2ICsxNTks OCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+cnVuYXNvd25lciA9IGZhbHNlOwogCWlmIChJc1NldChz dXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJCW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAo TE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9Q VF9GQUlMT1ZFUikpCisJCW9wdHMtPmZhaWxvdmVyID0gZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRp b25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtMzI2LDYgKzMzMCwxNSBAQCBw YXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRf b3B0aW9ucywKIAkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CiAJCQkJCQllcnJtc2coInVucmVjb2duaXplZCBvcmlnaW4gdmFsdWU6IFwiJXNcIiIsIG9wdHMt Pm9yaWdpbikpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRf RkFJTE9WRVIpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZhaWxvdmVyIikgPT0g MCkKKwkJeworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfRkFJTE9W RVIpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQlv cHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfRkFJTE9WRVI7CisJCQlvcHRzLT5mYWlsb3Zl ciA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRl ZF9vcHRzLCBTVUJPUFRfTFNOKSAmJgogCQkJCSBzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJsc24i KSA9PSAwKQogCQl7CkBAIC01OTEsNyArNjA0LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJICBTVUJP UFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCSAgU1VCT1BUX1NU UkVBTUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAogCQkJCQkgIFNVQk9QVF9ESVNBQkxF X09OX0VSUiB8IFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8Ci0JCQkJCSAgU1VCT1BUX1JVTl9B U19PV05FUiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBT VUJPUFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfRkFJTE9WRVIpOwogCXBhcnNlX3N1YnNjcmlw dGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRz KTsKIAogCS8qCkBAIC03MTAsNiArNzI0LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJcHVibGljYXRpb25M aXN0VG9BcnJheShwdWJsaWNhdGlvbnMpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9z dWJvcmlnaW4gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOworCXZh bHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJmYWlsb3ZlciAtIDFdID0KKwkJQm9vbEdldERh dHVtKG9wdHMuZmFpbG92ZXIpOwogCiAJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0 RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CiAKQEAgLTgwNyw3ICs4MjMsNyBAQCBDcmVhdGVT dWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCQkJCQl0d29waGFzZV9lbmFibGVkID0gdHJ1ZTsKIAogCQkJCXdhbHJjdl9jcmVhdGVf c2xvdCh3cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBmYWxzZSwgdHdvcGhhc2VfZW5hYmxlZCwKLQkJ CQkJCQkJICAgQ1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKKwkJCQkJCQkJICAgb3B0cy5m YWlsb3ZlciwgQ1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKIAogCQkJCWlmICh0d29waGFz ZV9lbmFibGVkKQogCQkJCQlVcGRhdGVUd29QaGFzZVN0YXRlKHN1YmlkLCBMT0dJQ0FMUkVQX1RX T1BIQVNFX1NUQVRFX0VOQUJMRUQpOwpAQCAtODE2LDYgKzgzMiwyNCBAQCBDcmVhdGVTdWJzY3Jp cHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAog CQkJCQkJKGVycm1zZygiY3JlYXRlZCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNo ZXIiLAogCQkJCQkJCQlvcHRzLnNsb3RfbmFtZSkpKTsKIAkJCX0KKworCQkJLyoKKwkJCSAqIElm IHRoZSBzbG90X25hbWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdGhlIGNyZWF0ZV9zbG90IG9wdGlv biwKKwkJCSAqIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIgaW50ZW5kcyB0byB1c2UgYW4g ZXhpc3Rpbmcgc2xvdCBvbgorCQkJICogdGhlIHB1Ymxpc2hlciwgc28gaGVyZSB3ZSBhbHRlciB0 aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlCisJCQkgKiBzbG90IHRvIG1hdGNoIHRoZSBmYWls b3ZlciB2YWx1ZSBpbiBzdWJzY3JpcHRpb24uCisJCQkgKgorCQkJICogV2UgZG8gbm90IG5lZWQg dG8gY2hhbmdlIHRoZSBmYWlsb3ZlciB0byBmYWxzZSBpZiB0aGUgc2VydmVyCisJCQkgKiBkb2Vz IG5vdCBzdXBwb3J0IGZhaWxvdmVyIChlLmcuIHByZS1QRzE3KS4KKwkJCSAqLworCQkJZWxzZSBp ZiAob3B0cy5zbG90X25hbWUgJiYKKwkJCQkJIChvcHRzLmZhaWxvdmVyIHx8IHdhbHJjdl9zZXJ2 ZXJfdmVyc2lvbih3cmNvbm4pID49IDE3MDAwMCkpCisJCQl7CisJCQkJd2FscmN2X2FsdGVyX3Ns b3Qod3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgb3B0cy5mYWlsb3Zlcik7CisJCQkJZXJlcG9ydChO T1RJQ0UsCisJCQkJCQkoZXJybXNnKCJjaGFuZ2VkIHRoZSBmYWlsb3ZlciBzdGF0ZSBvZiByZXBs aWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIgdG8gJXMiLAorCQkJCQkJCQlvcHRzLnNs b3RfbmFtZSwgb3B0cy5mYWlsb3ZlciA/ICJ0cnVlIiA6ICJmYWxzZSIpKSk7CisJCQl9CiAJCX0K IAkJUEdfRklOQUxMWSgpOwogCQl7CkBAIC0xMTMyLDcgKzExNjYsOCBAQCBBbHRlclN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJ CQkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJ CQkJCSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8CiAJCQkJCQkJ CSAgU1VCT1BUX1BBU1NXT1JEX1JFUVVJUkVEIHwKLQkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09X TkVSIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNV Qk9QVF9PUklHSU4gfAorCQkJCQkJCQkgIFNVQk9QVF9GQUlMT1ZFUik7CiAKIAkJCQlwYXJzZV9z dWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsCiAJCQkJCQkJCQkJICAg c3VwcG9ydGVkX29wdHMsICZvcHRzKTsKQEAgLTEyMTgsNiArMTI1MywzMSBAQCBBbHRlclN1YnNj cmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwK IAkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0gPSB0cnVl OwogCQkJCX0KIAorCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfRkFJ TE9WRVIpKQorCQkJCXsKKwkJCQkJaWYgKCFzdWItPnNsb3RuYW1lKQorCQkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCQkJCSBlcnJtc2coImNhbm5vdCBzZXQgJXMgZm9yIGEgc3Vic2NyaXB0 aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBhIHNsb3QgbmFtZSIsCisJCQkJCQkJCQkJImZhaWxvdmVy IikpKTsKKworCQkJCQkvKgorCQkJCQkgKiBEbyBub3QgYWxsb3cgY2hhbmdpbmcgdGhlIGZhaWxv dmVyIHN0YXRlIGlmIHRoZQorCQkJCQkgKiBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZC4gVGhpcyBp cyBiZWNhdXNlIHRoZSBmYWlsb3ZlcgorCQkJCQkgKiBzdGF0ZSBvZiB0aGUgc2xvdCBvbiB0aGUg cHVibGlzaGVyIGNhbm5vdCBiZSBtb2RpZmllZAorCQkJCQkgKiBpZiB0aGUgc2xvdCBpcyBjdXJy ZW50bHkgYWNxdWlyZWQgYnkgdGhlIGFwcGx5IHdvcmtlci4KKwkJCQkJICovCisJCQkJCWlmIChz dWItPmVuYWJsZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygi Y2Fubm90IHNldCAlcyBmb3IgZW5hYmxlZCBzdWJzY3JpcHRpb24iLAorCQkJCQkJCQkJCSJmYWls b3ZlciIpKSk7CisKKwkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVy IC0gMV0gPQorCQkJCQkJQm9vbEdldERhdHVtKG9wdHMuZmFpbG92ZXIpOworCQkJCQlyZXBsYWNl c1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJmYWlsb3ZlciAtIDFdID0gdHJ1ZTsKKwkJCQl9CisK IAkJCQl1cGRhdGVfdHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTQ1Myw2ICsx NTEzLDQ2IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCQloZWFwX2ZyZWV0dXBsZSh0dXApOwogCX0KIAorCS8qCisJ ICogVHJ5IHRvIGFjcXVpcmUgdGhlIGNvbm5lY3Rpb24gbmVjZXNzYXJ5IGZvciBhbHRlcmluZyBz bG90LgorCSAqCisJICogVGhpcyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBiZWNhdXNlIG90aGVyd2lz ZSBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGlsZQorCSAqIGRvaW5nIHRoZSBkYXRhYmFzZSBvcGVy YXRpb25zIHdlIHdvbid0IGJlIGFibGUgdG8gcm9sbGJhY2sgYWx0ZXJlZAorCSAqIHNsb3QuCisJ ICovCisJaWYgKHJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0p CisJeworCQlib29sCQltdXN0X3VzZV9wYXNzd29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxS ZWNlaXZlckNvbm4gKndyY29ubjsKKworCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1 cyBsaWJwcSBjYWxscy4gKi8KKwkJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2Up OworCisJCS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNl X3Bhc3N3b3JkID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2Vy OworCQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3Vz ZV9wYXNzd29yZCwKKwkJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVS RSksCisJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVz IiwgZXJyKSkpOworCisJCVBHX1RSWSgpOworCQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNv bm4sIHN1Yi0+c2xvdG5hbWUsIG9wdHMuZmFpbG92ZXIpOworCisJCQllcmVwb3J0KE5PVElDRSwK KwkJCQkJKGVycm1zZygiY2hhbmdlZCB0aGUgZmFpbG92ZXIgc3RhdGUgb2YgcmVwbGljYXRpb24g c2xvdCBcIiVzXCIgb24gcHVibGlzaGVyIHRvICVzIiwKKwkJCQkJCQlzdWItPnNsb3RuYW1lLCBv cHRzLmZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIikpKTsKKwkJfQorCQlQR19GSU5BTExZKCk7 CisJCXsKKwkJCXdhbHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJCX0KKwkJUEdfRU5EX1RSWSgp OworCX0KKwogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAlPYmplY3RB ZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJl Y2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYwppbmRleCA3NzY2OTA3NGU4Li4yMGQ1MTI4YzBlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYwpAQCAtNzMsOCArNzMsMTEgQEAgc3RhdGljIGNoYXIgKmxpYnBxcmN2X2NyZWF0 ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJICBjb25zdCBjaGFyICpzbG90 bmFtZSwKIAkJCQkJCQkJICBib29sIHRlbXBvcmFyeSwKIAkJCQkJCQkJICBib29sIHR3b19waGFz ZSwKKwkJCQkJCQkJICBib29sIGZhaWxvdmVyLAogCQkJCQkJCQkgIENSU1NuYXBzaG90QWN0aW9u IHNuYXBzaG90X2FjdGlvbiwKIAkJCQkJCQkJICBYTG9nUmVjUHRyICpsc24pOworc3RhdGljIHZv aWQgbGlicHFyY3ZfYWx0ZXJfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KnNsb3RuYW1lLAorCQkJCQkJCQlib29sIGZhaWxvdmVyKTsKIHN0YXRpYyBwaWRfdCBsaWJwcXJj dl9nZXRfYmFja2VuZF9waWQoV2FsUmVjZWl2ZXJDb25uICpjb25uKTsKIHN0YXRpYyBXYWxSY3ZF eGVjUmVzdWx0ICpsaWJwcXJjdl9leGVjKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJ CSAgIGNvbnN0IGNoYXIgKnF1ZXJ5LApAQCAtOTUsNiArOTgsNyBAQCBzdGF0aWMgV2FsUmVjZWl2 ZXJGdW5jdGlvbnNUeXBlIFBRV2FsUmVjZWl2ZXJGdW5jdGlvbnMgPSB7CiAJLndhbHJjdl9yZWNl aXZlID0gbGlicHFyY3ZfcmVjZWl2ZSwKIAkud2FscmN2X3NlbmQgPSBsaWJwcXJjdl9zZW5kLAog CS53YWxyY3ZfY3JlYXRlX3Nsb3QgPSBsaWJwcXJjdl9jcmVhdGVfc2xvdCwKKwkud2FscmN2X2Fs dGVyX3Nsb3QgPSBsaWJwcXJjdl9hbHRlcl9zbG90LAogCS53YWxyY3ZfZ2V0X2JhY2tlbmRfcGlk ID0gbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkLAogCS53YWxyY3ZfZXhlYyA9IGxpYnBxcmN2X2V4 ZWMsCiAJLndhbHJjdl9kaXNjb25uZWN0ID0gbGlicHFyY3ZfZGlzY29ubmVjdApAQCAtOTM4LDgg Kzk0Miw4IEBAIGxpYnBxcmN2X3NlbmQoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFy ICpidWZmZXIsIGludCBuYnl0ZXMpCiAgKi8KIHN0YXRpYyBjaGFyICoKIGxpYnBxcmN2X2NyZWF0 ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCi0JCQkJ CSBib29sIHRlbXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsIENSU1NuYXBzaG90QWN0aW9uIHNuYXBz aG90X2FjdGlvbiwKLQkJCQkJIFhMb2dSZWNQdHIgKmxzbikKKwkJCQkJIGJvb2wgdGVtcG9yYXJ5 LCBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlciwKKwkJCQkJIENSU1NuYXBzaG90QWN0aW9u IHNuYXBzaG90X2FjdGlvbiwgWExvZ1JlY1B0ciAqbHNuKQogewogCVBHcmVzdWx0ICAgKnJlczsK IAlTdHJpbmdJbmZvRGF0YSBjbWQ7CkBAIC05NjgsNyArOTcyLDggQEAgbGlicHFyY3ZfY3JlYXRl X3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwKIAkJCWVs c2UKIAkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY21kLCAnICcpOwogCQl9Ci0KKwkJaWYgKGZh aWxvdmVyKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmY21kLCAiRkFJTE9WRVIsICIpOwog CQlpZiAodXNlX25ld19vcHRpb25zX3N5bnRheCkKIAkJewogCQkJc3dpdGNoIChzbmFwc2hvdF9h Y3Rpb24pCkBAIC0xMDM3LDYgKzEwNDIsMzMgQEAgbGlicHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVj ZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwKIAlyZXR1cm4gc25hcHNob3Q7 CiB9CiAKKy8qCisgKiBDaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHJlcGxpY2F0aW9uIHNs b3QuCisgKi8KK3N0YXRpYyB2b2lkCitsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJlY2VpdmVyQ29u biAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCWJvb2wgZmFpbG92ZXIpCit7CisJ U3RyaW5nSW5mb0RhdGEgY21kOworCVBHcmVzdWx0ICAgKnJlczsKKworCWluaXRTdHJpbmdJbmZv KCZjbWQpOworCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwgIkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Qg JXMgKCBGQUlMT1ZFUiAlcyApIiwKKwkJCQkJIHF1b3RlX2lkZW50aWZpZXIoc2xvdG5hbWUpLAor CQkJCQkgZmFpbG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCXJlcyA9IGxpYnBxcmN2X1BR ZXhlYyhjb25uLT5zdHJlYW1Db25uLCBjbWQuZGF0YSk7CisJcGZyZWUoY21kLmRhdGEpOworCisJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJT0xBVElPTiksCisJCQkJIGVy cm1zZygiY291bGQgbm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiOiAlcyIsCisJCQkJ CQlzbG90bmFtZSwgcGNob21wKFBRZXJyb3JNZXNzYWdlKGNvbm4tPnN0cmVhbUNvbm4pKSkpKTsK KworCVBRY2xlYXIocmVzKTsKK30KKwogLyoKICAqIFJldHVybiBQSUQgb2YgcmVtb3RlIGJhY2tl bmQgcHJvY2Vzcy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVz eW5jLmMKaW5kZXggMDZkNWIzZGYzMy4uNWFjYWIzZjNlMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBAIC0xNDMwLDYgKzE0MzAsNyBAQCBMb2dpY2Fs UmVwU3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3JpZ2luX3N0YXJ0cG9zKQogCSAqLwogCXdh bHJjdl9jcmVhdGVfc2xvdChMb2dSZXBXb3JrZXJXYWxSY3ZDb25uLAogCQkJCQkgICBzbG90bmFt ZSwgZmFsc2UgLyogcGVybWFuZW50ICovICwgZmFsc2UgLyogdHdvX3BoYXNlICovICwKKwkJCQkJ ICAgTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyLAogCQkJCQkgICBDUlNfVVNFX1NOQVBTSE9ULCBv cmlnaW5fc3RhcnRwb3MpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jCmluZGV4IDliNTk4Y2FmM2MuLjMyZmY0YzAzMzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtMTMyLDYgKzEzMiwxMyBAQAogICogYXZvaWQgc3Vj aCBkZWFkbG9ja3MsIHdlIGdlbmVyYXRlIGEgdW5pcXVlIEdJRCAoY29uc2lzdGluZyBvZiB0aGUK ICAqIHN1YnNjcmlwdGlvbiBvaWQgYW5kIHRoZSB4aWQgb2YgdGhlIHByZXBhcmVkIHRyYW5zYWN0 aW9uKSBmb3IgZWFjaCBwcmVwYXJlCiAgKiB0cmFuc2FjdGlvbiBvbiB0aGUgc3Vic2NyaWJlci4K KyAqCisgKiBGQUlMT1ZFUgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVGhlIGxvZ2lj YWwgc2xvdCBvbiB0aGUgcHJpbWFyeSBjYW4gYmUgc3luY2VkIHRvIHRoZSBzdGFuZGJ5IGJ5IHNw ZWNpZnlpbmcKKyAqIGZhaWxvdmVyID0gdHJ1ZSB3aGVuIGNyZWF0aW5nIHRoZSBzdWJzY3JpcHRp b24uIEVuYWJsaW5nIGZhaWxvdmVyIGFsbG93cyB1cworICogdG8gc21vb3RobHkgdHJhbnNpdGlv biB0byB0aGUgcHJvbW90ZWQgc3RhbmRieSwgZW5zdXJpbmcgdGhhdCB3ZSBjYW4KKyAqIHN1YnNj cmliZSB0byB0aGUgbmV3IHByaW1hcnkgd2l0aG91dCBsb3NpbmcgYW55IGRhdGEuCiAgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9y ZXBsX2dyYW0ueSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55CmluZGV4IDk1 ZTEyNmViNGQuLmZmMzgwOWUwMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3JlcGxfZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55CkBA IC02NCw2ICs2NCw3IEBAIE5vZGUgKnJlcGxpY2F0aW9uX3BhcnNlX3Jlc3VsdDsKICV0b2tlbiBL X1NUQVJUX1JFUExJQ0FUSU9OCiAldG9rZW4gS19DUkVBVEVfUkVQTElDQVRJT05fU0xPVAogJXRv a2VuIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UCisldG9rZW4gS19BTFRFUl9SRVBMSUNBVElPTl9T TE9UCiAldG9rZW4gS19USU1FTElORV9ISVNUT1JZCiAldG9rZW4gS19XQUlUCiAldG9rZW4gS19U SU1FTElORQpAQCAtODAsOCArODEsOSBAQCBOb2RlICpyZXBsaWNhdGlvbl9wYXJzZV9yZXN1bHQ7 CiAKICV0eXBlIDxub2RlPgljb21tYW5kCiAldHlwZSA8bm9kZT4JYmFzZV9iYWNrdXAgc3RhcnRf cmVwbGljYXRpb24gc3RhcnRfbG9naWNhbF9yZXBsaWNhdGlvbgotCQkJCWNyZWF0ZV9yZXBsaWNh dGlvbl9zbG90IGRyb3BfcmVwbGljYXRpb25fc2xvdCBpZGVudGlmeV9zeXN0ZW0KLQkJCQlyZWFk X3JlcGxpY2F0aW9uX3Nsb3QgdGltZWxpbmVfaGlzdG9yeSBzaG93IHVwbG9hZF9tYW5pZmVzdAor CQkJCWNyZWF0ZV9yZXBsaWNhdGlvbl9zbG90IGRyb3BfcmVwbGljYXRpb25fc2xvdAorCQkJCWFs dGVyX3JlcGxpY2F0aW9uX3Nsb3QgaWRlbnRpZnlfc3lzdGVtIHJlYWRfcmVwbGljYXRpb25fc2xv dAorCQkJCXRpbWVsaW5lX2hpc3Rvcnkgc2hvdyB1cGxvYWRfbWFuaWZlc3QKICV0eXBlIDxsaXN0 PglnZW5lcmljX29wdGlvbl9saXN0CiAldHlwZSA8ZGVmZWx0PglnZW5lcmljX29wdGlvbgogJXR5 cGUgPHVpbnR2YWw+CW9wdF90aW1lbGluZQpAQCAtMTEyLDYgKzExNCw3IEBAIGNvbW1hbmQ6CiAJ CQl8IHN0YXJ0X2xvZ2ljYWxfcmVwbGljYXRpb24KIAkJCXwgY3JlYXRlX3JlcGxpY2F0aW9uX3Ns b3QKIAkJCXwgZHJvcF9yZXBsaWNhdGlvbl9zbG90CisJCQl8IGFsdGVyX3JlcGxpY2F0aW9uX3Ns b3QKIAkJCXwgcmVhZF9yZXBsaWNhdGlvbl9zbG90CiAJCQl8IHRpbWVsaW5lX2hpc3RvcnkKIAkJ CXwgc2hvdwpAQCAtMjU5LDYgKzI2MiwxOCBAQCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3Q6CiAJCQkJ fQogCQkJOwogCisvKiBBTFRFUl9SRVBMSUNBVElPTl9TTE9UIHNsb3QgKi8KK2FsdGVyX3JlcGxp Y2F0aW9uX3Nsb3Q6CisJCQlLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QgSURFTlQgJygnIGdlbmVy aWNfb3B0aW9uX2xpc3QgJyknCisJCQkJeworCQkJCQlBbHRlclJlcGxpY2F0aW9uU2xvdENtZCAq Y21kOworCQkJCQljbWQgPSBtYWtlTm9kZShBbHRlclJlcGxpY2F0aW9uU2xvdENtZCk7CisJCQkJ CWNtZC0+c2xvdG5hbWUgPSAkMjsKKwkJCQkJY21kLT5vcHRpb25zID0gJDQ7CisJCQkJCSQkID0g KE5vZGUgKikgY21kOworCQkJCX0KKwkJCTsKKwogLyoKICAqIFNUQVJUX1JFUExJQ0FUSU9OIFtT TE9UIHNsb3RdIFtQSFlTSUNBTF0gJVgvJVggW1RJTUVMSU5FICVkXQogICovCkBAIC00MTAsNiAr NDI1LDcgQEAgaWRlbnRfb3Jfa2V5d29yZDoKIAkJCXwgS19TVEFSVF9SRVBMSUNBVElPTgkJCXsg JCQgPSAic3RhcnRfcmVwbGljYXRpb24iOyB9CiAJCQl8IEtfQ1JFQVRFX1JFUExJQ0FUSU9OX1NM T1QJeyAkJCA9ICJjcmVhdGVfcmVwbGljYXRpb25fc2xvdCI7IH0KIAkJCXwgS19EUk9QX1JFUExJ Q0FUSU9OX1NMT1QJCXsgJCQgPSAiZHJvcF9yZXBsaWNhdGlvbl9zbG90IjsgfQorCQkJfCBLX0FM VEVSX1JFUExJQ0FUSU9OX1NMT1QJCXsgJCQgPSAiYWx0ZXJfcmVwbGljYXRpb25fc2xvdCI7IH0K IAkJCXwgS19USU1FTElORV9ISVNUT1JZCQkJeyAkJCA9ICJ0aW1lbGluZV9oaXN0b3J5IjsgfQog CQkJfCBLX1dBSVQJCQkJCQl7ICQkID0gIndhaXQiOyB9CiAJCQl8IEtfVElNRUxJTkUJCQkJCXsg JCQgPSAidGltZWxpbmUiOyB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9y ZXBsX3NjYW5uZXIubCBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nhbm5lci5sCmlu ZGV4IDZmYTYyNTYxN2IuLmU3ZGVmODAwNjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3JlcGxfc2Nhbm5lci5sCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxf c2Nhbm5lci5sCkBAIC0xMjUsNiArMTI1LDcgQEAgVElNRUxJTkUJCQl7IHJldHVybiBLX1RJTUVM SU5FOyB9CiBTVEFSVF9SRVBMSUNBVElPTgl7IHJldHVybiBLX1NUQVJUX1JFUExJQ0FUSU9OOyB9 CiBDUkVBVEVfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1cm4gS19DUkVBVEVfUkVQTElDQVRJT05f U0xPVDsgfQogRFJPUF9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0RST1BfUkVQTElDQVRJ T05fU0xPVDsgfQorQUxURVJfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1cm4gS19BTFRFUl9SRVBM SUNBVElPTl9TTE9UOyB9CiBUSU1FTElORV9ISVNUT1JZCXsgcmV0dXJuIEtfVElNRUxJTkVfSElT VE9SWTsgfQogUEhZU0lDQUwJCQl7IHJldHVybiBLX1BIWVNJQ0FMOyB9CiBSRVNFUlZFX1dBTAkJ CXsgcmV0dXJuIEtfUkVTRVJWRV9XQUw7IH0KQEAgLTMwMiw2ICszMDMsNyBAQCByZXBsaWNhdGlv bl9zY2FubmVyX2lzX3JlcGxpY2F0aW9uX2NvbW1hbmQodm9pZCkKIAkJY2FzZSBLX1NUQVJUX1JF UExJQ0FUSU9OOgogCQljYXNlIEtfQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNhc2UgS19E Uk9QX1JFUExJQ0FUSU9OX1NMT1Q6CisJCWNhc2UgS19BTFRFUl9SRVBMSUNBVElPTl9TTE9UOgog CQljYXNlIEtfUkVBRF9SRVBMSUNBVElPTl9TTE9UOgogCQljYXNlIEtfVElNRUxJTkVfSElTVE9S WToKIAkJY2FzZSBLX1VQTE9BRF9NQU5JRkVTVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA1 MmRhNjk0Yzc5Li5lNzJiZjdjMDZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC05MCw3ICs5 MCw3IEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9uU2xvdE9uRGlzawogCXNpemVvZihSZXBs aWNhdGlvblNsb3RPbkRpc2spIC0gUmVwbGljYXRpb25TbG90T25EaXNrQ29uc3RhbnRTaXplCiAK ICNkZWZpbmUgU0xPVF9NQUdJQwkJMHgxMDUxQ0ExCS8qIGZvcm1hdCBpZGVudGlmaWVyICovCi0j ZGVmaW5lIFNMT1RfVkVSU0lPTgkzCQkvKiB2ZXJzaW9uIGZvciBuZXcgZmlsZXMgKi8KKyNkZWZp bmUgU0xPVF9WRVJTSU9OCTQJCS8qIHZlcnNpb24gZm9yIG5ldyBmaWxlcyAqLwogCiAvKiBDb250 cm9sIGFycmF5IGZvciByZXBsaWNhdGlvbiBzbG90IG1hbmFnZW1lbnQgKi8KIFJlcGxpY2F0aW9u U2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CkBAIC0yNDgsMTAgKzI0OCwx MyBAQCBSZXBsaWNhdGlvblNsb3RWYWxpZGF0ZU5hbWUoY29uc3QgY2hhciAqbmFtZSwgaW50IGVs ZXZlbCkKICAqICAgICBkdXJpbmcgZ2V0dGluZyBjaGFuZ2VzLCBpZiB0aGUgdHdvX3BoYXNlIG9w dGlvbiBpcyBlbmFibGVkIGl0IGNhbiBza2lwCiAgKiAgICAgcHJlcGFyZSBiZWNhdXNlIGJ5IHRo YXQgdGltZSBzdGFydCBkZWNvZGluZyBwb2ludCBoYXMgYmVlbiBtb3ZlZC4gU28gdGhlCiAgKiAg ICAgdXNlciB3aWxsIG9ubHkgZ2V0IGNvbW1pdCBwcmVwYXJlZC4KKyAqIGZhaWxvdmVyOiBJZiBl bmFibGVkLCBhbGxvd3MgdGhlIHNsb3QgdG8gYmUgc3luY2VkIHRvIHN0YW5kYnlzIHNvCisgKiAg ICAgdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVy LgogICovCiB2b2lkCiBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9v bCBkYl9zcGVjaWZpYywKLQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0 ZW5jeSwgYm9vbCB0d29fcGhhc2UpCisJCQkJCSAgUmVwbGljYXRpb25TbG90UGVyc2lzdGVuY3kg cGVyc2lzdGVuY3ksCisJCQkJCSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIpCiB7CiAJ UmVwbGljYXRpb25TbG90ICpzbG90ID0gTlVMTDsKIAlpbnQJCQlpOwpAQCAtMjYwLDYgKzI2Mywx NiBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVj aWZpYywKIAogCVJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFtZShuYW1lLCBFUlJPUik7CiAKKwkv KgorCSAqIERvIG5vdCBhbGxvdyB1c2VycyB0byBjcmVhdGUgdGhlIHNsb3RzIHdpdGggZmFpbG92 ZXIgZW5hYmxlZCBvbiB0aGUKKwkgKiBzdGFuZGJ5IGFzIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmMg dG8gdGhlIGNhc2NhZGluZyBzdGFuZGJ5LgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3Mo KSAmJiBmYWlsb3ZlcikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCBlbmFibGUgZmFpbG92ZXIg Zm9yIGEgcmVwbGljYXRpb24gc2xvdCIKKwkJCQkJICAgIiBjcmVhdGVkIG9uIHRoZSBzdGFuZGJ5 IikpOworCiAJLyoKIAkgKiBJZiBzb21lIG90aGVyIGJhY2tlbmQgcmFuIHRoaXMgY29kZSBjb25j dXJyZW50bHkgd2l0aCB1cywgd2UnZCBsaWtlbHkKIAkgKiBib3RoIGFsbG9jYXRlIHRoZSBzYW1l IHNsb3QsIGFuZCB0aGF0IHdvdWxkIGJlIGJhZC4gIFdlJ2QgYWxzbyBiZSBhdApAQCAtMzExLDYg KzMyNCw3IEBAIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRi X3NwZWNpZmljLAogCXNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPSBwZXJzaXN0ZW5jeTsKIAlzbG90 LT5kYXRhLnR3b19waGFzZSA9IHR3b19waGFzZTsKIAlzbG90LT5kYXRhLnR3b19waGFzZV9hdCA9 IEludmFsaWRYTG9nUmVjUHRyOworCXNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKIAog CS8qIGFuZCB0aGVuIGRhdGEgb25seSBwcmVzZW50IGluIHNoYXJlZCBtZW1vcnkgKi8KIAlzbG90 LT5qdXN0X2RpcnRpZWQgPSBmYWxzZTsKQEAgLTY3OSw2ICs2OTMsNDEgQEAgUmVwbGljYXRpb25T bG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkKIAlSZXBsaWNhdGlvblNsb3RE cm9wQWNxdWlyZWQoKTsKIH0KIAorLyoKKyAqIENoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUg c2xvdCBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqLwordm9pZAorUmVwbGlj YXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3ZlcikKK3sKKwlBc3Nl cnQoTXlSZXBsaWNhdGlvblNsb3QgPT0gTlVMTCk7CisKKwlSZXBsaWNhdGlvblNsb3RBY3F1aXJl KG5hbWUsIHRydWUpOworCisJaWYgKFNsb3RJc1BoeXNpY2FsKE15UmVwbGljYXRpb25TbG90KSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCB1c2UgJXMgd2l0aCBhIHBoeXNpY2FsIHJlcGxpY2F0 aW9uIHNsb3QiLAorCQkJCQkgICAiQUxURVJfUkVQTElDQVRJT05fU0xPVCIpKTsKKworCS8qCisJ ICogRG8gbm90IGFsbG93IHVzZXJzIHRvIGFsdGVyIHNsb3RzIHRvIGVuYWJsZSBmYWlsb3ZlciBv biB0aGUgc3RhbmRieSBhcworCSAqIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmMgdG8gdGhlIGNhc2Nh ZGluZyBzdGFuZGJ5LgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBmYWlsb3Zl cikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCBlbmFibGUgZmFpbG92ZXIgZm9yIGEgcmVwbGlj YXRpb24gc2xvdCIKKwkJCQkJICAgIiBvbiB0aGUgc3RhbmRieSIpKTsKKworCVNwaW5Mb2NrQWNx dWlyZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKKwlNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0 YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCVNwaW5Mb2NrUmVsZWFzZSgmTXlSZXBsaWNhdGlvblNs b3QtPm11dGV4KTsKKworCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCVJlcGxpY2F0aW9u U2xvdFNhdmUoKTsKKwlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7Cit9CisKIC8qCiAgKiBQZXJt YW5lbnRseSBkcm9wIHRoZSBjdXJyZW50bHkgYWNxdWlyZWQgcmVwbGljYXRpb24gc2xvdC4KICAq LwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBjYWQzNWRjZTdmLi5jOTNkYmE4 NTViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtNDIsNyArNDIsOCBAQCBj cmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBib29sIGltbWVkaWF0 ZWx5X3Jlc2VydmUsCiAKIAkvKiBhY3F1aXJlIHJlcGxpY2F0aW9uIHNsb3QsIHRoaXMgd2lsbCBj aGVjayBmb3IgY29uZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFt ZSwgZmFsc2UsCi0JCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RF TlQsIGZhbHNlKTsKKwkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVSU0lT VEVOVCwgZmFsc2UsCisJCQkJCQkgIGZhbHNlKTsKIAogCWlmIChpbW1lZGlhdGVseV9yZXNlcnZl KQogCXsKQEAgLTExNyw2ICsxMTgsNyBAQCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25f c2xvdChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIHZvaWQKIGNyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2luLAogCQkJCQkJCQlib29sIHRlbXBv cmFyeSwgYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCWJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCVhM b2dSZWNQdHIgcmVzdGFydF9sc24sCiAJCQkJCQkJCWJvb2wgZmluZF9zdGFydHBvaW50KQogewpA QCAtMTMzLDcgKzEzNSw4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAq bmFtZSwgY2hhciAqcGx1Z2luLAogCSAqIGVycm9yIGFzIHdlbGwuCiAJICovCiAJUmVwbGljYXRp b25TbG90Q3JlYXRlKG5hbWUsIHRydWUsCi0JCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFS WSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlKTsKKwkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVN UE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2UsCisJCQkJCQkgIGZhaWxvdmVyKTsKIAog CS8qCiAJICogQ3JlYXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBv aW50IG9yLCBpZiB3ZSBkb24ndApAQCAtMTcxLDYgKzE3NCw3IEBAIHBnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAlOYW1lCQlwbHVnaW4gPSBQR19H RVRBUkdfTkFNRSgxKTsKIAlib29sCQl0ZW1wb3JhcnkgPSBQR19HRVRBUkdfQk9PTCgyKTsKIAli b29sCQl0d29fcGhhc2UgPSBQR19HRVRBUkdfQk9PTCgzKTsKKwlib29sCQlmYWlsb3ZlciA9IFBH X0dFVEFSR19CT09MKDQpOwogCURhdHVtCQlyZXN1bHQ7CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJ SGVhcFR1cGxlCXR1cGxlOwpAQCAtMTg4LDYgKzE5Miw3IEBAIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCU5hbWVTdHIoKnBsdWdp biksCiAJCQkJCQkJCQl0ZW1wb3JhcnksCiAJCQkJCQkJCQl0d29fcGhhc2UsCisJCQkJCQkJCQlm YWlsb3ZlciwKIAkJCQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCQkJdHJ1ZSk7CiAK QEAgLTIzMiw3ICsyMzcsNyBAQCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05f QVJHUykKIERhdHVtCiBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykK IHsKLSNkZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTUKKyNkZWZpbmUgUEdf R0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTYKIAlSZXR1cm5TZXRJbmZvICpyc2luZm8gPSAo UmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJWExvZ1JlY1B0cgljdXJybHNu OwogCWludAkJCXNsb3RubzsKQEAgLTQyNiw2ICs0MzEsOCBAQCBwZ19nZXRfcmVwbGljYXRpb25f c2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCX0KIAkJfQogCisJCXZhbHVlc1tpKytdID0gQm9v bEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0YS5mYWlsb3Zlcik7CisKIAkJQXNzZXJ0KGkgPT0g UEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMpOwogCiAJCXR1cGxlc3RvcmVfcHV0dmFsdWVz KHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsCkBAIC03ODIsMTEgKzc4OSwyMCBA QCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9n aWNhbF9zbG90KQogCQkgKiBXZSBtdXN0IG5vdCB0cnkgdG8gcmVhZCBXQUwsIHNpbmNlIHdlIGhh dmVuJ3QgcmVzZXJ2ZWQgaXQgeWV0IC0tCiAJCSAqIGhlbmNlIHBhc3MgZmluZF9zdGFydHBvaW50 IGZhbHNlLiAgY29uZmlybWVkX2ZsdXNoIHdpbGwgYmUgc2V0CiAJCSAqIGJlbG93LCBieSBjb3B5 aW5nIGZyb20gdGhlIHNvdXJjZSBzbG90LgorCQkgKgorCQkgKiBUbyBhdm9pZCBwb3RlbnRpYWwg aXNzdWVzIHdpdGggdGhlIHNsb3RzeW5jIHdvcmtlciB3aGVuIHRoZQorCQkgKiByZXN0YXJ0X2xz biBvZiBhIHJlcGxpY2F0aW9uIHNsb3QgZ29lcyBiYWNrd2FyZHMsIHdlIHNldCB0aGUKKwkJICog ZmFpbG92ZXIgb3B0aW9uIHRvIGZhbHNlIGhlcmUuIFRoaXMgc2l0dWF0aW9uIG9jY3VycyB3aGVu IGEgc2xvdCBvbgorCQkgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIgaXMgZHJvcHBlZCBhbmQgaW1tZWRp YXRlbHkgcmVwbGFjZWQgd2l0aCBhIG5ldworCQkgKiBzbG90IG9mIHRoZSBzYW1lIG5hbWUsIGNy ZWF0ZWQgYnkgY29weWluZyBmcm9tIGFub3RoZXIgZXhpc3RpbmcKKwkJICogc2xvdC4gSG93ZXZl ciwgdGhlIHNsb3RzeW5jIHdvcmtlciB3aWxsIG9ubHkgb2JzZXJ2ZSB0aGUgcmVzdGFydF9sc24K KwkJICogb2YgdGhlIHNhbWUgc2xvdCBnb2luZyBiYWNrd2FyZHMuCiAJCSAqLwogCQljcmVhdGVf bG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KE5hbWVTdHIoKmRzdF9uYW1lKSwKIAkJCQkJCQkJCQlw bHVnaW4sCiAJCQkJCQkJCQkJdGVtcG9yYXJ5LAogCQkJCQkJCQkJCWZhbHNlLAorCQkJCQkJCQkJ CWZhbHNlLAogCQkJCQkJCQkJCXNyY19yZXN0YXJ0X2xzbiwKIAkJCQkJCQkJCQlmYWxzZSk7CiAJ fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKaW5kZXggNzI4MDU5NTE4ZS4uZTI5 YTYxOTZhMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCkBAIC0zODcsNyAr Mzg3LDcgQEAgV2FsUmVjZWl2ZXJNYWluKHZvaWQpCiAJCQkJCSAicGdfd2FscmVjZWl2ZXJfJWxs ZCIsCiAJCQkJCSAobG9uZyBsb25nIGludCkgd2FscmN2X2dldF9iYWNrZW5kX3BpZCh3cmNvbm4p KTsKIAotCQkJd2FscmN2X2NyZWF0ZV9zbG90KHdyY29ubiwgc2xvdG5hbWUsIHRydWUsIGZhbHNl LCAwLCBOVUxMKTsKKwkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4sIHNsb3RuYW1lLCB0cnVl LCBmYWxzZSwgZmFsc2UsIDAsIE5VTEwpOwogCiAJCQlTcGluTG9ja0FjcXVpcmUoJndhbHJjdi0+ bXV0ZXgpOwogCQkJc3RybGNweSh3YWxyY3YtPnNsb3RuYW1lLCBzbG90bmFtZSwgTkFNRURBVEFM RU4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCAwODcwMzFlOWRjLi43N2M4 YmFhMzJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtMTEyNiwxMiArMTEy NiwxMyBAQCBzdGF0aWMgdm9pZAogcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoQ3JlYXRlUmVw bGljYXRpb25TbG90Q21kICpjbWQsCiAJCQkJCQkgICBib29sICpyZXNlcnZlX3dhbCwKIAkJCQkJ CSAgIENSU1NuYXBzaG90QWN0aW9uICpzbmFwc2hvdF9hY3Rpb24sCi0JCQkJCQkgICBib29sICp0 d29fcGhhc2UpCisJCQkJCQkgICBib29sICp0d29fcGhhc2UsIGJvb2wgKmZhaWxvdmVyKQogewog CUxpc3RDZWxsICAgKmxjOwogCWJvb2wJCXNuYXBzaG90X2FjdGlvbl9naXZlbiA9IGZhbHNlOwog CWJvb2wJCXJlc2VydmVfd2FsX2dpdmVuID0gZmFsc2U7CiAJYm9vbAkJdHdvX3BoYXNlX2dpdmVu ID0gZmFsc2U7CisJYm9vbAkJZmFpbG92ZXJfZ2l2ZW4gPSBmYWxzZTsKIAogCS8qIFBhcnNlIG9w dGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBjbWQtPm9wdGlvbnMpCkBAIC0xMTgxLDYgKzExODIsMTUg QEAgcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpj bWQsCiAJCQl0d29fcGhhc2VfZ2l2ZW4gPSB0cnVlOwogCQkJKnR3b19waGFzZSA9IGRlZkdldEJv b2xlYW4oZGVmZWwpOwogCQl9CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZh aWxvdmVyIikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxvdmVyX2dpdmVuIHx8IGNtZC0+a2luZCAh PSBSRVBMSUNBVElPTl9LSU5EX0xPR0lDQUwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coImNvbmZsaWN0aW5n IG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWZhaWxvdmVyX2dpdmVuID0gdHJ1ZTsKKwkJ CSpmYWlsb3ZlciA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlcyIsIGRlZmVsLT5kZWZuYW1lKTsKIAl9CkBA IC0xMTk3LDYgKzEyMDcsNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRp b25TbG90Q21kICpjbWQpCiAJY2hhcgkgICAqc2xvdF9uYW1lOwogCWJvb2wJCXJlc2VydmVfd2Fs ID0gZmFsc2U7CiAJYm9vbAkJdHdvX3BoYXNlID0gZmFsc2U7CisJYm9vbAkJZmFpbG92ZXIgPSBm YWxzZTsKIAlDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24gPSBDUlNfRVhQT1JUX1NO QVBTSE9UOwogCURlc3RSZWNlaXZlciAqZGVzdDsKIAlUdXBPdXRwdXRTdGF0ZSAqdHN0YXRlOwpA QCAtMTIwNiwxMyArMTIxNywxNCBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGlj YXRpb25TbG90Q21kICpjbWQpCiAKIAlBc3NlcnQoIU15UmVwbGljYXRpb25TbG90KTsKIAotCXBh cnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKGNtZCwgJnJlc2VydmVfd2FsLCAmc25hcHNob3RfYWN0 aW9uLCAmdHdvX3BoYXNlKTsKKwlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNl cnZlX3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwKKwkJCQkJCQkgICAmZmFpbG92 ZXIpOwogCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCXsK IAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLAogCQkJCQkJCSAg Y21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULAotCQkJCQkJCSAg ZmFsc2UpOworCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAogCQlpZiAocmVzZXJ2ZV93YWwpCiAJ CXsKQEAgLTEyNDMsNyArMTI1NSw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBs aWNhdGlvblNsb3RDbWQgKmNtZCkKIAkJICovCiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQt PnNsb3RuYW1lLCB0cnVlLAogCQkJCQkJCSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkg OiBSU19FUEhFTUVSQUwsCi0JCQkJCQkJICB0d29fcGhhc2UpOworCQkJCQkJCSAgdHdvX3BoYXNl LCBmYWlsb3Zlcik7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBjaGVjayBlYXJseSBzbyB0aGF0 IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpAQCAtMTM5OCw2ICsxNDEwLDQzIEBAIERy b3BSZXBsaWNhdGlvblNsb3QoRHJvcFJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCVJlcGxpY2F0 aW9uU2xvdERyb3AoY21kLT5zbG90bmFtZSwgIWNtZC0+d2FpdCk7CiB9CiAKKy8qCisgKiBQcm9j ZXNzIGV4dHJhIG9wdGlvbnMgZ2l2ZW4gdG8gQUxURVJfUkVQTElDQVRJT05fU0xPVC4KKyAqLwor c3RhdGljIHZvaWQKK1BhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoQWx0ZXJSZXBsaWNhdGlvblNs b3RDbWQgKmNtZCwgYm9vbCAqZmFpbG92ZXIpCit7CisJYm9vbAkJZmFpbG92ZXJfZ2l2ZW4gPSBm YWxzZTsKKworCS8qIFBhcnNlIG9wdGlvbnMgKi8KKwlmb3JlYWNoX3B0cihEZWZFbGVtLCBkZWZl bCwgY21kLT5vcHRpb25zKQorCXsKKwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZhaWxv dmVyIikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxvdmVyX2dpdmVuKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNn KCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlmYWlsb3Zlcl9naXZl biA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQorCQll bHNlCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wdGlvbjogJXMiLCBkZWZlbC0+ZGVm bmFtZSk7CisJfQorfQorCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGlj YXRpb24gc2xvdC4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUmVwbGljYXRpb25TbG90KEFsdGVy UmVwbGljYXRpb25TbG90Q21kICpjbWQpCit7CisJYm9vbAkJZmFpbG92ZXIgPSBmYWxzZTsKKwor CVBhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoY21kLCAmZmFpbG92ZXIpOworCVJlcGxpY2F0aW9u U2xvdEFsdGVyKGNtZC0+c2xvdG5hbWUsIGZhaWxvdmVyKTsKK30KKwogLyoKICAqIExvYWQgcHJl dmlvdXNseSBpbml0aWF0ZWQgbG9naWNhbCBzbG90IGFuZCBwcmVwYXJlIGZvciBzZW5kaW5nIGRh dGEgKHZpYQogICogV2FsU25kTG9vcCkuCkBAIC0xOTcxLDYgKzIwMjAsMTMgQEAgZXhlY19yZXBs aWNhdGlvbl9jb21tYW5kKGNvbnN0IGNoYXIgKmNtZF9zdHJpbmcpCiAJCQlFbmRSZXBsaWNhdGlv bkNvbW1hbmQoY21kdGFnKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9BbHRlclJlcGxpY2F0aW9u U2xvdENtZDoKKwkJCWNtZHRhZyA9ICJBTFRFUl9SRVBMSUNBVElPTl9TTE9UIjsKKwkJCXNldF9w c19kaXNwbGF5KGNtZHRhZyk7CisJCQlBbHRlclJlcGxpY2F0aW9uU2xvdCgoQWx0ZXJSZXBsaWNh dGlvblNsb3RDbWQgKikgY21kX25vZGUpOworCQkJRW5kUmVwbGljYXRpb25Db21tYW5kKGNtZHRh Zyk7CisJCQlicmVhazsKKwogCQljYXNlIFRfU3RhcnRSZXBsaWNhdGlvbkNtZDoKIAkJCXsKIAkJ CQlTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQgPSAoU3RhcnRSZXBsaWNhdGlvbkNtZCAqKSBjbWRf bm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IGJjMjBhMDI1Y2UuLjMzOWYyMGU1ZTYgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwpAQCAtNDY0MSw2ICs0NjQxLDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQog CWludAkJCWlfc3Vib3JpZ2luOwogCWludAkJCWlfc3Vib3JpZ2lucmVtb3RlbHNuOwogCWludAkJ CWlfc3ViZW5hYmxlZDsKKwlpbnQJCQlpX3N1YmZhaWxvdmVyOwogCWludAkJCWksCiAJCQkJbnR1 cHM7CiAKQEAgLTQ3MDYsMTAgKzQ3MDcsMTcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpm b3V0KQogCiAJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlICYmIGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTcwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBvLnJlbW90ZV9sc24g QVMgc3Vib3JpZ2lucmVtb3RlbHNuLFxuIgotCQkJCQkJCSAiIHMuc3ViZW5hYmxlZFxuIik7CisJ CQkJCQkJICIgcy5zdWJlbmFibGVkLFxuIik7CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwgIiBOVUxMIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixcbiIKLQkJCQkJCQkgIiBmYWxz ZSBBUyBzdWJlbmFibGVkXG4iKTsKKwkJCQkJCQkgIiBmYWxzZSBBUyBzdWJlbmFibGVkLFxuIik7 CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIHMuc3ViZmFpbG92ZXJcbiIpOworCWVsc2UKKwkJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICIgZmFsc2UgQVMgc3ViZmFpbG92ZXJcbiIp OwogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkgIkZST00gcGdfc3Vic2Ny aXB0aW9uIHNcbiIpOwpAQCAtNDc0OCw2ICs0NzU2LDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNo aXZlICpmb3V0KQogCWlfc3Vib3JpZ2luID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbiIpOwog CWlfc3Vib3JpZ2lucmVtb3RlbHNuID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbnJlbW90ZWxz biIpOwogCWlfc3ViZW5hYmxlZCA9IFBRZm51bWJlcihyZXMsICJzdWJlbmFibGVkIik7CisJaV9z dWJmYWlsb3ZlciA9IFBRZm51bWJlcihyZXMsICJzdWJmYWlsb3ZlciIpOwogCiAJc3ViaW5mbyA9 IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihTdWJzY3JpcHRpb25JbmZvKSk7CiAKQEAgLTQ3OTIs NiArNDgwMSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCQlwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vib3JpZ2lucmVtb3RlbHNuKSk7CiAJCXN1YmluZm9b aV0uc3ViZW5hYmxlZCA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZW5h YmxlZCkpOworCQlzdWJpbmZvW2ldLnN1YmZhaWxvdmVyID0KKwkJCXBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9zdWJmYWlsb3ZlcikpOwogCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdh bnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHN1YmluZm9baV0uZG9i aiksIGZvdXQpOwpAQCAtNTAyMCw2ICs1MDMxLDkgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKQogCWlmIChzdHJjbXAoc3Vi aW5mby0+c3VidHdvcGhhc2VzdGF0ZSwgdHdvX3BoYXNlX2Rpc2FibGVkKSAhPSAwKQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgdHdvX3BoYXNlID0gb24iKTsKIAorCWlmIChzdHJj bXAoc3ViaW5mby0+c3ViZmFpbG92ZXIsICJ0IikgPT0gMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIsIGZhaWxvdmVyID0gdHJ1ZSIpOworCiAJaWYgKHN0cmNtcChzdWJpbmZvLT5z dWJkaXNhYmxlb25lcnIsICJ0IikgPT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICIsIGRpc2FibGVfb25fZXJyb3IgPSB0cnVlIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGYwNzcyZDIx NTcuLjI0ZTE2NDM3OTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjY1LDYgKzY2NSw3IEBAIHR5cGVkZWYg c3RydWN0IF9TdWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogCWNo YXIJICAgKnN1Ym9yaWdpbjsKIAljaGFyCSAgICpzdWJvcmlnaW5yZW1vdGVsc247CisJY2hhcgkg ICAqc3ViZmFpbG92ZXI7CiB9IFN1YnNjcmlwdGlvbkluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYwppbmRl eCA3NGUwMmIzZjgyLi4xODNjMmY4NGViIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUv aW5mby5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKQEAgLTY2Niw3ICs2NjYsNyBA QCBnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29s IGxpdmVfY2hlY2spCiAJICogc3RhcnRlZCBhbmQgc3RvcHBlZCBzZXZlcmFsIHRpbWVzIGNhdXNp bmcgYW55IHRlbXBvcmFyeSBzbG90cyB0byBiZQogCSAqIHJlbW92ZWQuCiAJICovCi0JcmVzID0g ZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVDVCBzbG90X25hbWUsIHBsdWdpbiwgdHdvX3Bo YXNlLCAiCisJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVDVCBzbG90X25hbWUs IHBsdWdpbiwgdHdvX3BoYXNlLCBmYWlsb3ZlciwgIgogCQkJCQkJCSIlcyBhcyBjYXVnaHRfdXAs IGNvbmZsaWN0X3JlYXNvbiBJUyBOT1QgTlVMTCBhcyBpbnZhbGlkICIKIAkJCQkJCQkiRlJPTSBw Z19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzICIKIAkJCQkJCQkiV0hFUkUgc2xvdF90eXBl ID0gJ2xvZ2ljYWwnIEFORCAiCkBAIC02ODQsNiArNjg0LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xv Z2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCQlpbnQJ CQlpX3Nsb3RuYW1lOwogCQlpbnQJCQlpX3BsdWdpbjsKIAkJaW50CQkJaV90d29waGFzZTsKKwkJ aW50CQkJaV9mYWlsb3ZlcjsKIAkJaW50CQkJaV9jYXVnaHRfdXA7CiAJCWludAkJCWlfaW52YWxp ZDsKIApAQCAtNjkyLDYgKzY5Myw3IEBAIGdldF9vbGRfY2x1c3Rlcl9sb2dpY2FsX3Nsb3RfaW5m b3MoRGJJbmZvICpkYmluZm8sIGJvb2wgbGl2ZV9jaGVjaykKIAkJaV9zbG90bmFtZSA9IFBRZm51 bWJlcihyZXMsICJzbG90X25hbWUiKTsKIAkJaV9wbHVnaW4gPSBQUWZudW1iZXIocmVzLCAicGx1 Z2luIik7CiAJCWlfdHdvcGhhc2UgPSBQUWZudW1iZXIocmVzLCAidHdvX3BoYXNlIik7CisJCWlf ZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAiZmFpbG92ZXIiKTsKIAkJaV9jYXVnaHRfdXAgPSBQ UWZudW1iZXIocmVzLCAiY2F1Z2h0X3VwIik7CiAJCWlfaW52YWxpZCA9IFBRZm51bWJlcihyZXMs ICJpbnZhbGlkIik7CiAKQEAgLTcwMiw2ICs3MDQsNyBAQCBnZXRfb2xkX2NsdXN0ZXJfbG9naWNh bF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29sIGxpdmVfY2hlY2spCiAJCQljdXJyLT5z bG90bmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9zbG90bmFtZSkp OwogCQkJY3Vyci0+cGx1Z2luID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBp X3BsdWdpbikpOwogCQkJY3Vyci0+dHdvX3BoYXNlID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywg c2xvdG51bSwgaV90d29waGFzZSksICJ0IikgPT0gMCk7CisJCQljdXJyLT5mYWlsb3ZlciA9IChz dHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfZmFpbG92ZXIpLCAidCIpID09IDApOwog CQkJY3Vyci0+Y2F1Z2h0X3VwID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9j YXVnaHRfdXApLCAidCIpID09IDApOwogCQkJY3Vyci0+aW52YWxpZCA9IChzdHJjbXAoUFFnZXR2 YWx1ZShyZXMsIHNsb3RudW0sIGlfaW52YWxpZCksICJ0IikgPT0gMCk7CiAJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5jCmluZGV4IDE0YTM2ZjA1MDMuLjEwYzk0YTZjMWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuYwpAQCAtOTE2LDggKzkxNiwxMCBAQCBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlv bl9zbG90cyh2b2lkKQogCQkJYXBwZW5kU3RyaW5nTGl0ZXJhbENvbm4ocXVlcnksIHNsb3RfaW5m by0+c2xvdG5hbWUsIGNvbm4pOwogCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsICIpOwog CQkJYXBwZW5kU3RyaW5nTGl0ZXJhbENvbm4ocXVlcnksIHNsb3RfaW5mby0+cGx1Z2luLCBjb25u KTsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCBmYWxzZSwgJXMpOyIsCi0JCQkJCQkJ ICBzbG90X2luZm8tPnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIiwgZmFsc2UsICVzLCAlcyk7IiwKKwkJCQkJCQkgIHNsb3RfaW5m by0+dHdvX3BoYXNlID8gInRydWUiIDogImZhbHNlIiwKKwkJCQkJCQkgIHNsb3RfaW5mby0+ZmFp bG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAogCQkJUFFjbGVhcihleGVjdXRlUXVlcnlPckRp ZShjb25uLCAiJXMiLCBxdWVyeS0+ZGF0YSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRl eCBhMWQwOGMzZGFiLi5kOWE4NDhjYmZkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTE2 MCw2ICsxNjAsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCXR3b19waGFzZTsJCS8qIGNhbiB0 aGUgc2xvdCBkZWNvZGUgMlBDPyAqLwogCWJvb2wJCWNhdWdodF91cDsJCS8qIGhhcyB0aGUgc2xv dCBjYXVnaHQgdXAgdG8gbGF0ZXN0IGNoYW5nZXM/ICovCiAJYm9vbAkJaW52YWxpZDsJCS8qIGlm IHRydWUsIHRoZSBzbG90IGlzIHVudXNhYmxlICovCisJYm9vbAkJZmFpbG92ZXI7CQkvKiBpcyB0 aGUgc2xvdCBkZXNpZ25hdGVkIHRvIGJlIHN5bmNlZCB0byB0aGUKKwkJCQkJCQkJICogcGh5c2lj YWwgc3RhbmRieT8gKi8KIH0gTG9naWNhbFNsb3RJbmZvOwogCiB0eXBlZGVmIHN0cnVjdApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgYi9zcmMv YmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbAppbmRleCAwYWIzNjgyNDdiLi44 M2Q3MWMzMDg0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9z bG90cy5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbApA QCAtMTcyLDcgKzE3Miw3IEBAICRzdWItPnN0YXJ0OwogJHN1Yi0+c2FmZV9wc3FsKAogCSdwb3N0 Z3JlcycsIHFxWwogCUNSRUFURSBUQUJMRSB0YmwgKGEgaW50KTsKLQlDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04gJyRvbGRfY29ubnN0cicgUFVCTElDQVRJT04gcmVn cmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0gJ3RydWUnKQorCUNSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19zdWIgQ09OTkVDVElPTiAnJG9sZF9jb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNz X3B1YiBXSVRIICh0d29fcGhhc2UgPSAndHJ1ZScsIGZhaWxvdmVyID0gJ3RydWUnKQogXSk7CiAk c3ViLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkb2xkcHViLCAncmVncmVzc19zdWInKTsK IApAQCAtMTkyLDggKzE5Miw4IEBAIGNvbW1hbmRfb2soW0BwZ191cGdyYWRlX2NtZF0sICdydW4g b2YgcGdfdXBncmFkZSBvZiBvbGQgY2x1c3RlcicpOwogIyBDaGVjayB0aGF0IHRoZSBzbG90ICdy ZWdyZXNzX3N1YicgaGFzIG1pZ3JhdGVkIHRvIHRoZSBuZXcgY2x1c3RlcgogJG5ld3B1Yi0+c3Rh cnQ7CiBteSAkcmVzdWx0ID0gJG5ld3B1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIlNFTEVD VCBzbG90X25hbWUsIHR3b19waGFzZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIik7Ci1pcygk cmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0KSwgJ2NoZWNrIHRoZSBzbG90IGV4aXN0cyBvbiBuZXcg Y2x1c3RlcicpOworCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhhc2UsIGZhaWxvdmVyIEZST00g cGdfcmVwbGljYXRpb25fc2xvdHMiKTsKK2lzKCRyZXN1bHQsIHFxKHJlZ3Jlc3Nfc3VifHR8dCks ICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKIAogIyBVcGRhdGUgdGhl IGNvbm5lY3Rpb24KIG15ICRuZXdfY29ubnN0ciA9ICRuZXdwdWItPmNvbm5zdHIgLiAnIGRibmFt ZT1wb3N0Z3Jlcyc7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM3Zjk1MTYzMjAuLjZkOWFkNWQ3NGUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC02NTYzLDcgKzY1NjMsOCBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0 IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5z W10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCQlmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwKKwlmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBA IC02NjI3LDYgKzY2MjgsMTEgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVx dWlyZWQiKSwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiUnVuIGFzIG93bmVyPyIpKTsKIAorCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAor CQkJCQkJCSAgIiwgc3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4dF9u b29wKCJGYWlsb3ZlciIpKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAi LCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKIAkJCQkJCSAgIiwgIHN1YmNvbm5pbmZvIEFT IFwiJXNcIlxuIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBhZGE3MTFkMDJmLi4xNTFhNTIxMWVlIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jCkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRIKCIoIiwg IlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBTRVQgKCAqLwog CWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkg JiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJk aXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJk aXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3Jk X3JlcXVpcmVkIiwgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLAogCQkJCQkgICJzdHJlYW1p bmciLCAic3luY2hyb25vdXNfY29tbWl0Iik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1l PiBTS0lQICggKi8KQEAgLTMzNDAsNyArMzM0MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJLyogQ29tcGxldGUgIkNSRUFURSBTVUJT Q1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2UgaWYgKEhlYWRNYXRj aGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIikgJiYgVGFpbE1hdGNoZXMoIldJVEgiLCAiKCIp KQogCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLCAiY3Jl YXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAib3JpZ2lu IiwKKwkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwgIm9y aWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJ1bl9hc19vd25lciIsICJzbG90 X25hbWUiLAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25vdXNfY29tbWl0IiwgInR3b19w aGFzZSIpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBhZDc0ZTA3ZGJiLi5lNmU0YmJk ZmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExMTIzLDE3ICsxMTEyMywxNyBAQAog ICBwcm9uYW1lID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnLCBwcm9yb3dzID0+ICcxMCcs IHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJv YWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhp ZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHR9JywKLSAgcHJvYXJnbW9kZXMgPT4g J3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne3Ns b3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9w aWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmlybWVkX2ZsdXNoX2xzbix3YWxf c3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0X3JlYXNvbn0nLAorICBwcm9h bGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxib29sLGJvb2wsaW50NCx4aWQseGlk LHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsdGV4dCxib29sfScsCisgIHByb2FyZ21vZGVz ID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9 PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3JhcnksYWN0aXZlLGFj dGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmlybWVkX2ZsdXNoX2xz bix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0X3JlYXNvbixmYWls b3Zlcn0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9yZXBsaWNhdGlvbl9zbG90cycgfSwKIHsgb2lk ID0+ICczNzg2JywgZGVzY3IgPT4gJ3NldCB1cCBhIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcs CiAgIHByb25hbWUgPT4gJ3BnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QnLCBwcm92 b2xhdGlsZSA9PiAndicsCiAgIHByb3BhcmFsbGVsID0+ICd1JywgcHJvcmV0dHlwZSA9PiAncmVj b3JkJywKLSAgcHJvYXJndHlwZXMgPT4gJ25hbWUgbmFtZSBib29sIGJvb2wnLAotICBwcm9hbGxh cmd0eXBlcyA9PiAne25hbWUsbmFtZSxib29sLGJvb2wsbmFtZSxwZ19sc259JywKLSAgcHJvYXJn bW9kZXMgPT4gJ3tpLGksaSxpLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxw bHVnaW4sdGVtcG9yYXJ5LHR3b3BoYXNlLHNsb3RfbmFtZSxsc259JywKKyAgcHJvYXJndHlwZXMg PT4gJ25hbWUgbmFtZSBib29sIGJvb2wgYm9vbCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFt ZSxuYW1lLGJvb2wsYm9vbCxib29sLG5hbWUscGdfbHNufScsCisgIHByb2FyZ21vZGVzID0+ICd7 aSxpLGksaSxpLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sdGVt cG9yYXJ5LHR3b3BoYXNlLGZhaWxvdmVyLHNsb3RfbmFtZSxsc259JywKICAgcHJvc3JjID0+ICdw Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JyB9LAogeyBvaWQgPT4gJzQyMjInLAog ICBkZXNjciA9PiAnY29weSBhIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCwgY2hhbmdpbmcgdGVt cG9yYWxpdHkgYW5kIHBsdWdpbicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApp bmRleCBhYjIwNmJhZDdkLi40ZDBlMzY0NjI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmgKQEAgLTkzLDYgKzkzLDExIEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAs U3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJYm9v bAkJc3VicnVuYXNvd25lcjsJLyogVHJ1ZSBpZiByZXBsaWNhdGlvbiBzaG91bGQgZXhlY3V0ZSBh cyB0aGUKIAkJCQkJCQkJICogc3Vic2NyaXB0aW9uIG93bmVyICovCiAKKwlib29sCQlzdWJmYWls b3ZlcjsJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCByZXBsaWNhdGlvbiBzbG90cworCQkJCQkJ CQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUgdGFibGUgc3luYworCQkJCQkJCQkgKiBz bG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBlbmFibGVkCisJCQkJCQkJCSAqIHRv IGJlIHN5bmNocm9uaXplZCB0byB0aGUgc3RhbmRieXMuICovCisKICNpZmRlZiBDQVRBTE9HX1ZB UkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5l Y3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBCS0lf Rk9SQ0VfTk9UX05VTEw7CkBAIC0xNDgsNiArMTUzLDEwIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNj cmlwdGlvbgogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJLyogTGlzdCBvZiBwdWJsaWNhdGlvbiBu YW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAgICpvcmlnaW47CQkJLyogT25seSBwdWJs aXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJCQkJCQkJICogc3BlY2lmaWVkIG9yaWdp biAqLworCWJvb2wJCWZhaWxvdmVyOwkJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCByZXBsaWNh dGlvbiBzbG90cworCQkJCQkJCQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUgdGFibGUg c3luYworCQkJCQkJCQkgKiBzbG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBlbmFi bGVkCisJCQkJCQkJCSAqIHRvIGJlIHN5bmNocm9uaXplZCB0byB0aGUgc3RhbmRieXMuICovCiB9 IFN1YnNjcmlwdGlvbjsKIAogLyogRGlzYWxsb3cgc3RyZWFtaW5nIGluLXByb2dyZXNzIHRyYW5z YWN0aW9ucy4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKaW5kZXggYWYwYTMzM2YxYS4uZWQyMzMzM2U5 MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKQEAgLTcyLDYgKzcyLDE4IEBAIHR5cGVkZWYgc3RydWN0 IERyb3BSZXBsaWNhdGlvblNsb3RDbWQKIH0gRHJvcFJlcGxpY2F0aW9uU2xvdENtZDsKIAogCisv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJQUxURVJfUkVQTElDQVRJT05fU0xPVCBjb21t YW5kCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEFsdGVy UmVwbGljYXRpb25TbG90Q21kCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpzbG90bmFt ZTsKKwlMaXN0CSAgICpvcHRpb25zOworfSBBbHRlclJlcGxpY2F0aW9uU2xvdENtZDsKKworCiAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU1RBUlRfUkVQTElDQVRJT04gY29tbWFuZAog ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDllMzlh YWYzMDMuLjcyZWY0ODU5ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTExMSw2ICsxMTEs MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90UGVyc2lzdGVudERhdGEKIAogCS8q IHBsdWdpbiBuYW1lICovCiAJTmFtZURhdGEJcGx1Z2luOworCisJLyoKKwkgKiBJcyB0aGlzIGEg ZmFpbG92ZXIgc2xvdCAoc3luYyBjYW5kaWRhdGUgZm9yIHN0YW5kYnlzKT8gT25seQorCSAqIHJl bGV2YW50IGZvciBsb2dpY2FsIHNsb3RzIG9uIHRoZSBwcmltYXJ5IHNlcnZlci4KKwkgKi8KKwli b29sCQlmYWlsb3ZlcjsKIH0gUmVwbGljYXRpb25TbG90UGVyc2lzdGVudERhdGE7CiAKIC8qCkBA IC0yMTgsOSArMjI0LDEwIEBAIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdHNTaG1lbUluaXQo dm9pZCk7CiAvKiBtYW5hZ2VtZW50IG9mIGluZGl2aWR1YWwgc2xvdHMgKi8KIGV4dGVybiB2b2lk IFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmlj LAogCQkJCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJ CQkJCQkgIGJvb2wgdHdvX3BoYXNlKTsKKwkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBm YWlsb3Zlcik7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2Fp dCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBi b29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90QWNxdWlyZShjb25z dCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RS ZWxlYXNlKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVj ZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKaW5kZXggMDg5 OTg5MWNkYi4uZjU2NmE5OWJhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5o CkBAIC0zNTUsOSArMzU1LDIwIEBAIHR5cGVkZWYgY2hhciAqKCp3YWxyY3ZfY3JlYXRlX3Nsb3Rf Zm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJY29uc3QgY2hhciAqc2xvdG5h bWUsCiAJCQkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksCiAJCQkJCQkJCQkJYm9vbCB0d29fcGhhc2Us CisJCQkJCQkJCQkJYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJCQlDUlNTbmFwc2hvdEFjdGlvbiBz bmFwc2hvdF9hY3Rpb24sCiAJCQkJCQkJCQkJWExvZ1JlY1B0ciAqbHNuKTsKIAorLyoKKyAqIHdh bHJjdl9hbHRlcl9zbG90X2ZuCisgKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVw bGljYXRpb24gc2xvdC4gQ3VycmVudGx5LCBpdCBvbmx5IHN1cHBvcnRzCisgKiBjaGFuZ2luZyB0 aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNsb3QuCisgKi8KK3R5cGVkZWYgdm9pZCAoKndh bHJjdl9hbHRlcl9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAorCQkJCQkJCQkJICBj b25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJCSAgYm9vbCBmYWlsb3Zlcik7CisKIC8qCiAg KiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkX2ZuCiAgKgpAQCAtMzk5LDYgKzQxMCw3IEBAIHR5cGVk ZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCXdhbHJjdl9yZWNlaXZlX2ZuIHdh bHJjdl9yZWNlaXZlOwogCXdhbHJjdl9zZW5kX2ZuIHdhbHJjdl9zZW5kOwogCXdhbHJjdl9jcmVh dGVfc2xvdF9mbiB3YWxyY3ZfY3JlYXRlX3Nsb3Q7CisJd2FscmN2X2FsdGVyX3Nsb3RfZm4gd2Fs cmN2X2FsdGVyX3Nsb3Q7CiAJd2FscmN2X2dldF9iYWNrZW5kX3BpZF9mbiB3YWxyY3ZfZ2V0X2Jh Y2tlbmRfcGlkOwogCXdhbHJjdl9leGVjX2ZuIHdhbHJjdl9leGVjOwogCXdhbHJjdl9kaXNjb25u ZWN0X2ZuIHdhbHJjdl9kaXNjb25uZWN0OwpAQCAtNDI4LDggKzQ0MCwxMCBAQCBleHRlcm4gUEdE TExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0aW9uczsK IAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3JlY2VpdmUoY29ubiwgYnVmZmVyLCB3YWl0 X2ZkKQogI2RlZmluZSB3YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5ieXRlcykgXAogCVdhbFJl Y2VpdmVyRnVuY3Rpb25zLT53YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5ieXRlcykKLSNkZWZp bmUgd2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFz ZSwgc25hcHNob3RfYWN0aW9uLCBsc24pIFwKLQlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2 X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFzZSwgc25hcHNo b3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFt ZSwgdGVtcG9yYXJ5LCB0d29fcGhhc2UsIGZhaWxvdmVyLCBzbmFwc2hvdF9hY3Rpb24sIGxzbikg XAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY3JlYXRlX3Nsb3QoY29ubiwgc2xvdG5h bWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNob3RfYWN0aW9uLCBsc24p CisjZGVmaW5lIHdhbHJjdl9hbHRlcl9zbG90KGNvbm4sIHNsb3RuYW1lLCBmYWlsb3ZlcikgXAor CVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfYWx0ZXJfc2xvdChjb25uLCBzbG90bmFtZSwg ZmFpbG92ZXIpCiAjZGVmaW5lIHdhbHJjdl9nZXRfYmFja2VuZF9waWQoY29ubikgXAogCVdhbFJl Y2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNvbm4pCiAjZGVmaW5lIHdh bHJjdl9leGVjKGNvbm4sIGV4ZWMsIG5SZXRUeXBlcywgcmV0VHlwZXMpIFwKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCBi L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42NDYyOTNjMzllCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90 c19zeW5jLnBsCkBAIC0wLDAgKzEsODkgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fybmlu Z3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgd2hlbiBhIHN1YnNjcmlwdGlvbiB3 aXRoIGZhaWxvdmVyIGVuYWJsZWQgaXMgY3JlYXRlZCwgaXQgd2lsbCBhbHRlcgorIyB0aGUgZmFp bG92ZXIgcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc2xvdCBvbiB0aGUgcHVibGlzaGVy LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBDcmVhdGUgcHVibGlzaGVyCitteSAkcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRwdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWlu ZyA9PiAnbG9naWNhbCcpOworJHB1Ymxpc2hlci0+c3RhcnQ7CisKKyRwdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19teXB1YiBGT1Ig QUxMIFRBQkxFUzsiCispOworCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkcHVibGlzaGVyLT5j b25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIENyZWF0ZSBhIHN1YnNjcmliZXIgbm9k ZSwgd2FpdCBmb3Igc3luYyB0byBjb21wbGV0ZQorbXkgJHN1YnNjcmliZXIxID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyMScpOworJHN1YnNjcmliZXIxLT5pbml0 OworJHN1YnNjcmliZXIxLT5zdGFydDsKKworIyBDcmVhdGUgYSBzbG90IG9uIHRoZSBwdWJsaXNo ZXIgd2l0aCBmYWlsb3ZlciBkaXNhYmxlZAorJHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9z bG90KCdsc3ViMV9zbG90JywgJ3Bnb3V0cHV0JywgZmFsc2UsIGZhbHNlLCBmYWxzZSk7IgorKTsK KworIyBDb25maXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaXMgdHVybmVk IG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxF Q1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAn bHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIGZh bHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBDcmVhdGUgYSBzdWJzY3JpcHRpb24gKHVzaW5n IHRoZSBzYW1lIHNsb3QgY3JlYXRlZCBhYm92ZSkgdGhhdCBlbmFibGVzCisjIGZhaWxvdmVyLgor JHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHJlZ3Jlc3NfbXlwdWIgV0lUSCAoc2xvdF9uYW1lID0gbHN1YjFfc2xvdCwgY29weV9kYXRh PWZhbHNlLCBmYWlsb3ZlciA9IHRydWUsIGNyZWF0ZV9zbG90ID0gZmFsc2UsIGVuYWJsZWQgPSBm YWxzZSk7IgorKTsKKworIyBDb25maXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNs b3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBvbgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJ J3Bvc3RncmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90 cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJInQiLAorCSdsb2dpY2Fs IHNsb3QgaGFzIGZhaWxvdmVyIHRydWUgb24gdGhlIHB1Ymxpc2hlcicpOworCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgY2hh bmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIGEgc3Vic2NyaXB0aW9uIHVwZGF0ZXMgdGhl CisjIGNvcnJlc3BvbmRpbmcgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNsb3QuCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIERpc2FibGUg ZmFpbG92ZXIKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX215c3ViMSBTRVQgKGZhaWxvdmVyID0gZmFsc2UpIik7CisKKyMg Q29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0 dXJuZWQgb2ZmCitpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLAorCQlx e1NFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFt ZSA9ICdsc3ViMV9zbG90Jzt9CisJKSwKKwkiZiIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92 ZXIgZmFsc2Ugb24gdGhlIHB1Ymxpc2hlcicpOworCisjIEVuYWJsZSBmYWlsb3ZlcgorJHN1YnNj cmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfbXlzdWIxIFNFVCAoZmFpbG92ZXIgPSB0cnVlKSIpOworCisjIENvbmZpcm0gdGhhdCB0aGUg ZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMgbm93IGJlZW4gdHVybmVkIG9uCitpcyggJHB1 Ymxpc2hlci0+c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLAorCQlxe1NFTEVDVCBmYWlsb3ZlciBm cm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9 CisJKSwKKwkidCIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHVi bGlzaGVyJyk7CisKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX215c3ViMSIpOworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNTVmMmU5NTM1Mi4uNTc4ODRkM2ZlYyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0NzMsOCArMTQ3Myw5IEBAIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUsCiAgICAgbC53YWxfc3RhdHVzLAogICAg IGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKLSAgICBsLmNvbmZsaWN0X3JlYXNv bgotICAgRlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdp biwgc2xvdF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWlu LCBjYXRhbG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3Rh dHVzLCBzYWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbikKKyAgICBsLmNv bmZsaWN0X3JlYXNvbiwKKyAgICBsLmZhaWxvdmVyCisgICBGUk9NIChwZ19nZXRfcmVwbGljYXRp b25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9y YXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24s IGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFz ZSwgY29uZmxpY3RfcmVhc29uLCBmYWlsb3ZlcikKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNl IGQgT04gKChsLmRhdG9pZCA9IGQub2lkKSkpOwogcGdfcm9sZXN8IFNFTEVDVCBwZ19hdXRoaWQu cm9sbmFtZSwKICAgICBwZ19hdXRoaWQucm9sc3VwZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjE1ZWRkYmZmMy4uNWZhMjMwYTg5NSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTE2LDE4ICsxMTYs MTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJz KyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3Vi NAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjM7CkBA IC0xNDUsMTAgKzE0NSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENP Tk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3lu dGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25uZWN0aW9uIGluZm8gc3RyaW5n CiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsK QEAgLTE1NywxMCArMTU3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8 IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8w CiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNz d29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYsMTAgQEAgRVJST1I6ICB1bnJl Y29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsK IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJs aWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdDIgfCAwLzEyMzQ1CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBA IC0xODgsMTAgKzE4OCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNL SVAgKGxzbiA9IE5PTkUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQ IChsc24gPSAnMC8wJyk7CiBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAK IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0 aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0MiB8IDAvMAogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIyMywxMCArMjIzLDEwIEBAIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hyb25vdXNfY29tbWl0 ID0gZm9vYmFyKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJzeW5jaHJv bm91c19jb21taXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1ZXM6IGxvY2FsLCBy ZW1vdGVfd3JpdGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRp b24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sgdG8ga2VlcCB0aGUg cmVzdCBzaW1wbGUKQEAgLTI1NSwxOSArMjU1LDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVC CiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3Rl ZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVh dGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVm cmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykK IAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjc5LDI3ICsyNzksMjcg QEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg b24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK KyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWlu ZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYg ICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0t IGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE0LDEwICszMTQsMTAgQEAg QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1 YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFs c2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2Ny aXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0 aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNh dGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMzMiwxMCBAQCBFUlJPUjogIHB1 YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0 c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJl ZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViOwpAQCAtMzcxLDEwICszNzEsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIK IFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVk CiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0 ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZy ZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IHAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS1mYWlsIC0gYWx0ZXIgb2Yg dHdvX3BoYXNlIG9wdGlvbiBub3Qgc3VwcG9ydGVkLgpAQCAtMzgzLDEwICszODMsMTAgQEAgRVJS T1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogInR3b19waGFzZSIKIC0t IGJ1dCBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJsZWQKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0cnVlKTsKIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CkBAIC0zOTYsMTAgKzM5NiwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0 ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3Jl YXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJl ZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRp b24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00MTIsMTggKzQx MiwzMSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3 YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBs aWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBl bmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlz YWJsZV9vbl9lcnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisoMSByb3cpCisKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIHRlc3QgZmFpbG92ZXIgb3B0aW9uCitDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBmYWls b3ZlciA9IHRydWUpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK1xkUnMrCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSBOT05FKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4 IDQ0NGU1NjNmZjMuLmU0NjAxMTU4YjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbApAQCAtMjkwLDYgKzI5MCwxNCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViOwogCistLSB0ZXN0IGZhaWxvdmVyIG9wdGlvbgorQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgZmFpbG92 ZXIgPSB0cnVlKTsKKworXGRScysKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViOworCiAtLSBsZXQncyBkbyBzb21lIHRlc3RzIHdpdGggcGdfY3JlYXRlX3N1YnNjcmlwdGlv biByYXRoZXIgdGhhbiBzdXBlcnVzZXIKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjM7CiAKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggN2U4 NjZlM2MzZC4uNTEzYzc3MDJmZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTg1LDYg Kzg1LDcgQEAgQWx0ZXJPd25lclN0bXQKIEFsdGVyUG9saWN5U3RtdAogQWx0ZXJQdWJsaWNhdGlv bkFjdGlvbgogQWx0ZXJQdWJsaWNhdGlvblN0bXQKK0FsdGVyUmVwbGljYXRpb25TbG90Q21kCiBB bHRlclJvbGVTZXRTdG10CiBBbHRlclJvbGVTdG10CiBBbHRlclNlcVN0bXQKQEAgLTM4ODAsNiAr Mzg4MSw3IEBAIHZhcmF0dHJpYl8xYl9lCiB2YXJhdHRyaWJfNGIKIHZiaXRzCiB2ZXJpZmllcl9j b250ZXh0Cit3YWxyY3ZfYWx0ZXJfc2xvdF9mbgogd2FscmN2X2NoZWNrX2Nvbm5pbmZvX2ZuCiB3 YWxyY3ZfY29ubmVjdF9mbgogd2FscmN2X2NyZWF0ZV9zbG90X2ZuCi0tIAoyLjM0LjEKCg== --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Disposition: attachment; filename="v67-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8ut1 RnJvbSBjOGIwYzVjY2I5ZWZiNmIxNGNjYThiYTVhNTc4Yjg4ZmUxYzRmY2U5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTA6MDk6NDAgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NyAyLzZdIEFkZCBsb2dpY2FsIHNsb3Qgc3luYyBjYXBhYmlsaXR5IHRvIHRoZSBwaHlzaWNhbAog c3RhbmRieQoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHN5bmNocm9uaXphdGlvbiBvZiBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3RzCmZyb20gdGhlIHByaW1hcnkgc2VydmVyIHRvIHRoZSBwaHlzaWNh bCBzdGFuZGJ5IHNvIHRoYXQgbG9naWNhbApyZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRl ciBmYWlsb3Zlci4KCkdVQyAnZW5hYmxlX3N5bmNzbG90JyBlbmFibGVzIGEgcGh5c2ljYWwgc3Rh bmRieSB0byBzeW5jaHJvbml6ZSBmYWlsb3Zlcgpsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGZy b20gdGhlIHByaW1hcnkgc2VydmVyLgoKVGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgb24g dGhlIHByaW1hcnkgY2FuIGJlIHN5bmNocm9uaXplZCB0byB0aGUgaG90CnN0YW5kYnkgYnkgZW5h YmxpbmcgdGhlIGZhaWxvdmVyIG9wdGlvbiBkdXJpbmcgc2xvdCBjcmVhdGlvbiBhbmQgc2V0dGlu ZwonZW5hYmxlX3N5bmNzbG90JyBvbiB0aGUgc3RhbmRieS4gRm9yIHRoZSBzeW5jaHJvbml6YXRp b24gdG8gd29yaywgaXQgaXMKbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlzaWNhbCByZXBsaWNhdGlv biBzbG90IGJldHdlZW4gdGhlIHByaW1hcnkgYW5kIHRoZQpzdGFuZGJ5LCBhbmQgaG90X3N0YW5k YnlfZmVlZGJhY2sgbXVzdCBiZSBlbmFibGVkIG9uIHRoZSBzdGFuZGJ5LgoKQWxsIHRoZSBmYWls b3ZlciBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHRoZSBwcmltYXJ5IChhc3N1bWluZwpj b25maWd1cmF0aW9ucyBhcmUgYXBwcm9wcmlhdGUpIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQg b24gdGhlIHBoeXNpY2FsCnN0YW5kYnlzIGFuZCBhcmUgc3luY2VkIHBlcmlvZGljYWxseS4gU2xv dC1zeW5jIHdvcmtlciBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIKcGluZyB0aGUgcHJpbWFyeSBzZXJ2 ZXIgYXQgcmVndWxhciBpbnRlcnZhbHMgdG8gZ2V0IHRoZSBuZWNlc3NhcnkKZmFpbG92ZXIgbG9n aWNhbCBzbG90cyBpbmZvcm1hdGlvbiBhbmQgY3JlYXRlL3VwZGF0ZSB0aGUgc2xvdHMgbG9jYWxs eS4KClRoZSBuYXAgdGltZSBvZiB0aGUgd29ya2VyIGlzIHR1bmVkIGFjY29yZGluZyB0byB0aGUg YWN0aXZpdHkgb24gdGhlIHByaW1hcnkuClRoZSB3b3JrZXIgd2FpdHMgZm9yIGEgcGVyaW9kIG9m IHRpbWUgYmVmb3JlIHRoZSBuZXh0IHN5bmNocm9uaXphdGlvbiwgd2l0aCB0aGUKZHVyYXRpb24g dmFyeWluZyBiYXNlZCBvbiB3aGV0aGVyIGFueSBzbG90cyB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRo ZSBsYXN0CmN5Y2xlLgoKVGhlIGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBzbG90LXN5bmMgd29y a2VyIG9uIHBoeXNpY2FsIHN0YW5kYnlzIGFyZSBub3QKYWxsb3dlZCB0byBiZSBkcm9wcGVkIG9y IGNvbnN1bWVkLiBBbnkgYXR0ZW1wdCB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24Kc3Vj aCBzbG90cyB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvci4KCklmIGEgbG9naWNhbCBzbG90IGlzIGlu dmFsaWRhdGVkIG9uIHRoZSBwcmltYXJ5LCB0aGVuIHRoYXQgc2xvdCBvbiB0aGUgc3RhbmRieQpp cyBhbHNvIGludmFsaWRhdGVkLgoKSWYgYSBsb2dpY2FsIHNsb3Qgb24gdGhlIHByaW1hcnkgaXMg dmFsaWQgYnV0IGlzIGludmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LAp0aGVuIHRoYXQgc2xvdCBp cyBkcm9wcGVkIGFuZCByZWNyZWF0ZWQgb24gdGhlIHN0YW5kYnkgaW4gbmV4dCBzeW5jLWN5Y2xl CnByb3ZpZGVkIHRoZSBzbG90IHN0aWxsIGV4aXN0cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuIEl0 IGlzIG9rYXkgdG8gcmVjcmVhdGUKc3VjaCBzbG90cyBhcyBsb25nIGFzIHRoZXNlIGFyZSBub3Qg Y29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAod2hpY2ggaXMgdGhlCmNhc2UgY3VycmVudGx5KS4g VGhpcyBzaXR1YXRpb24gbWF5IG9jY3VyIGR1ZSB0byB0aGUgZm9sbG93aW5nIHJlYXNvbnM6Ci0g VGhlIG1heF9zbG90X3dhbF9rZWVwX3NpemUgb24gdGhlIHN0YW5kYnkgaXMgaW5zdWZmaWNpZW50 IHRvIHJldGFpbiBXQUwKICByZWNvcmRzIGZyb20gdGhlIHJlc3RhcnRfbHNuIG9mIHRoZSBzbG90 LgotIHByaW1hcnlfc2xvdF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRo ZSBwaHlzaWNhbCBzbG90IGlzCiAgcmVtb3ZlZC4KLSBUaGUgcHJpbWFyeSBjaGFuZ2VzIHdhbF9s ZXZlbCB0byBhIGxldmVsIGxvd2VyIHRoYW4gbG9naWNhbC4KClRoZSBzbG90cyBzeW5jaHJvbml6 YXRpb24gc3RhdHVzIG9uIHRoZSBzdGFuZGJ5IGNhbiBiZSBtb25pdG9yZWQgdXNpbmcKJ3N5bmNl ZCcgY29sdW1uIG9mIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHZpZXcuCi0tLQogZG9jL3NyYy9zZ21s L2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA2NSArLQogZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArLQogZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sICAgICAgICAgICAgIHwgICAzNyArCiBkb2Mvc3JjL3NnbWwv c3lzdGVtLXZpZXdzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAgIDUgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jICAgICB8ICAgMTUgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAgMyArLQogc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9iZ3dvcmtlci5jICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgIDEwICsKIC4uLi9saWJwcXdhbHJlY2Vp dmVyL2xpYnBxd2FscmVjZWl2ZXIuYyAgICAgICB8ICAgNDEgKwogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9NYWtlZmlsZSAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyAgICAgfCAgIDEyICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9zbG90c3luYy5jICAgIHwgMTE5NSArKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgICA1MyArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgICAgICAgICAgIHwgICAxNCArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jICAgIHwgICAxNiArCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAgIDE5ICstCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogLi4uL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0ICAgICAgIHwgICAgMSArCiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL2luY2x1ZGUv cG9zdG1hc3Rlci9iZ3dvcmtlci5oICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAgMTcgKy0KIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmggICAgICAgICB8ICAgMTEgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDEwICsKIC4uLi90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICAxNjYgKystCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgICAzICstCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICAyICsKIDM0IGZpbGVzIGNoYW5nZWQs IDE3MzMgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApp bmRleCAyYzM5MzM4NWE5Li5hN2NmZTZjNThjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYmd3 b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApAQCAtMTE0LDE4ICsx MTQsNTkgQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtlcgogCiAgIDxwYXJhPgogICAg PHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIHNlcnZlciBz dGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQg c3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBvbmUgb2YKLSAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcwotICAgPGNv bW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsgcHJvY2Vzc2VzCi0gICByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJs ZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9D b25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBz dGF0ZQotICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9j ZXNzZXMgdG8gY29ubmVjdCB0bwotICAgZGF0YWJhc2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJp ZXMpLCBhbmQKLSAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0 ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3RlbSBoYXMKLSAgIGVudGVyZWQgbm9ybWFs IHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUgbGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFs ZW50Ci0gICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQg dGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCi0gICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRv IGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Agd2hlbiBhIGRpZmZlcmVudCBzdGF0ZQotICAg aXMgcmVhY2hlZC4KKyAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQg dGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRpbmcKKyAgIG9ubHkgaW5kaWNhdGVzIHdo ZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVu CisgICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgor CisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRl cmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPjwvdGVybT4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5CZ1dv cmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBT dGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsKKyAgICAgICBwcm9jZXNzZXMgcmVxdWVzdGluZyB0aGlzIGFyZSBub3QgZWxp Z2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8aW5kZXh0ZXJtPjxw cmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJl YWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKKyAgICAgICBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29u bmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVlcmllcy4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRl X0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU2FtZSBtZWFuaW5n IGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiBidXQK KyAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJtcyBvZiB0aGUgc2VydmVyIGkuZS4gc3Rh cnQgdGhlIHdvcmtlciBvbmx5CisgICAgICAgaWYgaXQgaXMgaG90LXN0YW5kYnkuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFy bGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5Rmlu aXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwv cHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBTdGFydCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0g aGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUuIE5vdGUKKyAgICAgICB0aGF0IHRo ZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCisg ICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFy ZSBlcXVpdmFsZW50CisgICAgICAgaW4gYSBzZXJ2ZXIgdGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5 LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4 IDYxMDM4NDcyYzUuLmJkMmQyZjg3MWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTQ2MTIsOCArNDYxMiwxMyBA QCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJs ZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29u bmluZm88L3Zhcm5hbWU+IHN0cmluZywgb3IgaW4gYSBzZXBhcmF0ZQogICAgICAgICAgIDxmaWxl bmFtZT5+Ly5wZ3Bhc3M8L2ZpbGVuYW1lPiBmaWxlIG9uIHRoZSBzdGFuZGJ5IHNlcnZlciAodXNl CiAgICAgICAgICAgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IGFzIHRoZSBkYXRhYmFz ZSBuYW1lKS4KLSAgICAgICAgICBEbyBub3Qgc3BlY2lmeSBhIGRhdGFiYXNlIG5hbWUgaW4gdGhl Ci0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLgor ICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgc2xvdCBzeW5j aHJvbml6YXRpb24gaXMgZW5hYmxlZCAoc2VlCisgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LWVuYWJsZS1zeW5jc2xvdCIvPikgdGhlbiBpdCBpcyBhbHNvCisgICAgICAgICAgbmVjZXNzYXJ5 IHRvIHNwZWNpZnkgPGxpdGVyYWw+ZGJuYW1lPC9saXRlcmFsPiBpbiB0aGUKKyAgICAgICAgICA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcuIFRoaXMgd2lsbCBvbmx5 IGJlIHVzZWQgZm9yCisgICAgICAgICAgc2xvdCBzeW5jaHJvbml6YXRpb24uIEl0IGlzIGlnbm9y ZWQgZm9yIHN0cmVhbWluZy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDxwYXJhPgogICAg ICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUgPGZpbGVuYW1lPnBv c3RncmVzcWwuY29uZjwvZmlsZW5hbWU+CkBAIC00OTM4LDYgKzQ5NDMsMjQgQEAgQU5ZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFibGU+ICggPHJlcGxh Y2VhYmxlIGNsYXNzPSIKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtc3luY3Nsb3QiIHhyZWZsYWJlbD0i ZW5hYmxlX3N5bmNzbG90Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5lbmFibGVfc3luY3Nsb3Q8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGVuYWJsZXMgYSBw aHlzaWNhbCBzdGFuZGJ5IHRvIHN5bmNocm9uaXplIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMKKyAg ICAgICAgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgc28gdGhhdCBsb2dpY2FsIHN1YnNjcmliZXJz IGFyZSBub3QgYmxvY2tlZAorICAgICAgICBhZnRlciBmYWlsb3Zlci4KKyAgICAgICA8L3BhcmE+ CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFRoaXMg cGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUKKyAgICAgICAgPGZpbGVuYW1lPnBvc3Rn cmVzcWwuY29uZjwvZmlsZW5hbWU+IGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rp bmcuc2dtbAppbmRleCBjZDE1MmQ0Y2VkLi5lYzE0Y2Y3MzI1IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCkBAIC0zNTgsNiArMzU4LDQzIEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJvbSBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VCiAg ICAgICBTbyBpZiBhIHNsb3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGl0IHNob3VsZCBiZSBkcm9w cGVkLgogICAgICA8L3BhcmE+CiAgICAgPC9jYXV0aW9uPgorCisgICA8L3NlY3QyPgorCisgICA8 c2VjdDIgaWQ9ImxvZ2ljYWxkZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRp b24iPgorICAgIDx0aXRsZT5SZXBsaWNhdGlvbiBTbG90IFN5bmNocm9uaXphdGlvbjwvdGl0bGU+ CisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwcmlt YXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdAorICAgICBzdGFuZGJ5IGJ5IGVuYWJs aW5nIHRoZSA8bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD4gb3B0aW9uIGR1cmluZyBzbG90Cisg ICAgIGNyZWF0aW9uIGFuZCBzZXR0aW5nCisgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1lbmFibGUt c3luY3Nsb3QiPjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwvdmFybmFtZT48L2xpbms+CisgICAg IG9uIHRoZSBzdGFuZGJ5LiBGb3IgdGhlIHN5bmNocm9uaXphdGlvbgorICAgICB0byB3b3JrLCBp dCBpcyBtYW5kYXRvcnkgdG8gaGF2ZSBhIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgYmV0d2Vl biB0aGUKKyAgICAgcHJpbWFyeSBhbmQgdGhlIHN0YW5kYnksIGFuZAorICAgICA8bGluayBsaW5r ZW5kPSJndWMtaG90LXN0YW5kYnktZmVlZGJhY2siPjx2YXJuYW1lPmhvdF9zdGFuZGJ5X2ZlZWRi YWNrPC92YXJuYW1lPjwvbGluaz4KKyAgICAgbXVzdCBiZSBlbmFibGVkIG9uIHRoZSBzdGFuZGJ5 LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgYWJpbGl0eSB0byByZXN1bWUg bG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBkZXBlbmRzIHVwb24gdGhlCisgICAg IDxsaW5rIGxpbmtlbmQ9InZpZXctcGctcmVwbGljYXRpb24tc2xvdHMiPnBnX3JlcGxpY2F0aW9u X3Nsb3RzPC9saW5rPi48c3RydWN0ZmllbGQ+c3luY2VkPC9zdHJ1Y3RmaWVsZD4KKyAgICAgdmFs dWUgZm9yIHRoZSBzeW5jaHJvbml6ZWQgc2xvdHMgb24gdGhlIHN0YW5kYnkgYXQgdGhlIHRpbWUg b2YgZmFpbG92ZXIuCisgICAgIE9ubHkgcGVyc2lzdGVudCBzbG90cyB0aGF0IGhhdmUgYXR0YWlu ZWQgc3luY2VkIHN0YXRlIGFzIHRydWUgb24gdGhlIHN0YW5kYnkKKyAgICAgYmVmb3JlIGZhaWxv dmVyIGNhbiBiZSB1c2VkIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyLgor ICAgICBUZW1wb3Jhcnkgc2xvdHMgd2lsbCBiZSBkcm9wcGVkLCB0aGVyZWZvcmUgbG9naWNhbCBy ZXBsaWNhdGlvbiBmb3IgdGhvc2UKKyAgICAgc2xvdHMgY2Fubm90IGJlIHJlc3VtZWQuIEZvciBl eGFtcGxlLCBpZiB0aGUgc3luY2hyb25pemVkIHNsb3QgY291bGQgbm90CisgICAgIGJlY29tZSBw ZXJzaXN0ZW50IG9uIHRoZSBzdGFuZGJ5IGR1ZSB0byBhIGRpc2FibGVkIHN1YnNjcmlwdGlvbiwg dGhlbiB0aGUKKyAgICAgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSByZXN1bWVkIGFmdGVyIGZhaWxv dmVyIGV2ZW4gd2hlbiBpdCBpcyBlbmFibGVkLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgor ICAgICBUbyByZXN1bWUgbG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBmcm9tIHRo ZSBzeW5jZWQgbG9naWNhbAorICAgICBzbG90cywgdGhlIHN1YnNjcmlwdGlvbidzICdjb25uaW5m bycgbXVzdCBiZSBhbHRlcmVkIHRvIHBvaW50IHRvIHRoZQorICAgICBuZXcgcHJpbWFyeSBzZXJ2 ZXIuIFRoaXMgaXMgZG9uZSB1c2luZworICAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJz Y3JpcHRpb24tcGFyYW1zLWNvbm5lY3Rpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAu Li4gQ09OTkVDVElPTjwvY29tbWFuZD48L2xpbms+LgorICAgICBJdCBpcyByZWNvbW1lbmRlZCB0 aGF0IHN1YnNjcmlwdGlvbnMgYXJlIGZpcnN0IGRpc2FibGVkIGJlZm9yZSBwcm9tb3RpbmcKKyAg ICAgdGhlIHN0YW5kYnkgYW5kIGFyZSBlbmFibGVkIGJhY2sgYWZ0ZXIgYWx0ZXJpbmcgdGhlIGNv bm5lY3Rpb24gc3RyaW5nLgorICAgIDwvcGFyYT4KICAgIDwvc2VjdDI+CiAKICAgIDxzZWN0MiBp ZD0ibG9naWNhbGRlY29kaW5nLWV4cGxhbmF0aW9uLW91dHB1dC1wbHVnaW5zIj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0t dmlld3Muc2dtbAppbmRleCA4OGZlNGI2MzQxLi40NTkxMDFhZjVmIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3 cy5zZ21sCkBAIC0yNTY2LDYgKzI1NjYsMjIgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBM RUZUIEpPSU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAgICAgICAgYWZ0ZXIgZmFpbG92ZXIuIEFs d2F5cyBmYWxzZSBmb3IgcGh5c2ljYWwgc2xvdHMuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnN5bmNlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgIFRydWUgaWYgdGhpcyBpcyBhIGxvZ2ljYWwgc2xvdCB0aGF0 IHdhcyBzeW5jZWQgZnJvbSBhIHByaW1hcnkgc2VydmVyLgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT24gYSBob3Qgc3RhbmRieSwgdGhlIHNsb3RzIHdpdGggdGhlIHN5bmNl ZCBjb2x1bW4gbWFya2VkIGFzIHRydWUgY2FuCisgICAgICAgbmVpdGhlciBiZSB1c2VkIGZvciBs b2dpY2FsIGRlY29kaW5nIG5vciBkcm9wcGVkIGJ5IHRoZSB1c2VyLiBUaGUgdmFsdWUKKyAgICAg ICBvZiB0aGlzIGNvbHVtbiBoYXMgbm8gbWVhbmluZyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXI7IHRo ZSBjb2x1bW4gdmFsdWUgb24KKyAgICAgICB0aGUgcHJpbWFyeSBpcyBkZWZhdWx0IGZhbHNlIGZv ciBhbGwgc2xvdHMgYnV0IG1heSAoaWYgbGVmdG92ZXIgZnJvbSBhCisgICAgICAgcHJvbW90ZWQg c3RhbmRieSkgYWxzbyBiZSB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYwppbmRleCA0NzgzNzdjNGEyLi4yZDY2ZDBkODRiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCkBAIC0zNTk2LDYgKzM1OTYsOSBAQCBYTG9nR2V0TGFzdFJlbW92ZWRTZWdu byh2b2lkKQogLyoKICAqIFJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50IG9uIHRoZSBnaXZl biBUTEkgdGhhdCBzdGlsbCBleGlzdHMgaW4KICAqIFhMT0dESVIsIG9yIDAgaWYgbm9uZS4KKyAq CisgKiBJZiB0aGUgZ2l2ZW4gVExJIGlzIDAsIHJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50 IGFtb25nIGFsbCB0aGUgY3VycmVudGx5CisgKiBleGlzdGluZyBXQUwgc2VnbWVudHMuCiAgKi8K IFhMb2dTZWdObwogWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQpAQCAtMzYxOSw3 ICszNjIyLDcgQEAgWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQogCQkJCQkJIHdh bF9zZWdtZW50X3NpemUpOwogCiAJCS8qIElnbm9yZSBhbnl0aGluZyB0aGF0J3Mgbm90IGZyb20g dGhlIFRMSSBvZiBpbnRlcmVzdC4gKi8KLQkJaWYgKHRsaSAhPSBmaWxlX3RsaSkKKwkJaWYgKHRs aSAhPSAwICYmIHRsaSAhPSBmaWxlX3RsaSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIElmIGl0J3Mg dGhlIG9sZGVzdCBzbyBmYXIsIHVwZGF0ZSBvbGRlc3Rfc2Vnbm8uICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDFiNDhkNzE3MWEuLmUzOGE5NTg3ZTIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC01MCw2ICs1 MCw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9zdGFydHVwLmgiCiAjaW5jbHVkZSAicmVwbGlj YXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgiCisjaW5j bHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9m ZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5o IgpAQCAtMTQ0MSw2ICsxNDQyLDIwIEBAIEZpbmlzaFdhbFJlY292ZXJ5KHZvaWQpCiAJICovCiAJ WExvZ1NodXRkb3duV2FsUmN2KCk7CiAKKwkvKgorCSAqIFNodXRkb3duIHRoZSBzbG90IHN5bmMg d29ya2VycyB0byBwcmV2ZW50IHBvdGVudGlhbCBjb25mbGljdHMgYmV0d2VlbgorCSAqIHVzZXIg cHJvY2Vzc2VzIGFuZCBzbG90c3luYyB3b3JrZXJzIGFmdGVyIGEgcHJvbW90aW9uLgorCSAqCisJ ICogV2UgZG8gbm90IHVwZGF0ZSB0aGUgJ3N5bmNlZCcgY29sdW1uIGZyb20gdHJ1ZSB0byBmYWxz ZSBoZXJlLCBhcyBhbnkKKwkgKiBmYWlsZWQgdXBkYXRlIGNvdWxkIGxlYXZlICdzeW5jZWQnIGNv bHVtbiBmYWxzZSBmb3Igc29tZSBzbG90cy4gVGhpcworCSAqIGNvdWxkIGNhdXNlIGlzc3VlcyBk dXJpbmcgc2xvdCBzeW5jIGFmdGVyIHJlc3RhcnRpbmcgdGhlIHNlcnZlciBhcyBhCisJICogc3Rh bmRieS4gV2hpbGUgdXBkYXRpbmcgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgdGltZWxpbmUg aXMgYW4KKwkgKiBvcHRpb24sIGl0IGRvZXMgbm90IHNpbXBsaWZ5IHRoZSBoYW5kbGluZyBmb3Ig J3N5bmNlZCcgY29sdW1uLgorCSAqIFRoZXJlZm9yZSwgd2UgcmV0YWluIHRoZSAnc3luY2VkJyBj b2x1bW4gYXMgdHJ1ZSBhZnRlciBwcm9tb3Rpb24gYXMgaXQKKwkgKiBtYXkgcHJvdmlkZSB1c2Vm dWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNsb3Qgb3JpZ2luLgorCSAqLworCVNodXREb3duU2xv dFN5bmMoKTsKKwogCS8qCiAJICogV2UgYXJlIG5vdyBkb25lIHJlYWRpbmcgdGhlIHhsb2cgZnJv bSBzdHJlYW0uIFR1cm4gb2ZmIHN0cmVhbWluZwogCSAqIHJlY292ZXJ5IHRvIGZvcmNlIGZldGNo aW5nIHRoZSBmaWxlcyAod2hpY2ggd291bGQgYmUgcmVxdWlyZWQgYXQgZW5kIG9mCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggZTQzYTkzNzM5ZC4uYWQ1N2JhZGUwNyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTAyNCw3ICsxMDI0LDggQEAgQ1JF QVRFIFZJRVcgcGdfcmVwbGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgICAgIEwuc2FmZV93YWxf c2l6ZSwKICAgICAgICAgICAgIEwudHdvX3BoYXNlLAogICAgICAgICAgICAgTC5jb25mbGljdF9y ZWFzb24sCi0gICAgICAgICAgICBMLmZhaWxvdmVyCisgICAgICAgICAgICBMLmZhaWxvdmVyLAor ICAgICAgICAgICAgTC5zeW5jZWQKICAgICBGUk9NIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygp IEFTIEwKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBEIE9OIChMLmRhdG9pZCA9 IEQub2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5j IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDY3ZjkyYzI0ZGIuLjQ2 ODI4YjhhODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwor KysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTIxLDYgKzIxLDcgQEAK ICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9sb2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2Vy LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9kc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvbGF0Y2guaCIKQEAgLTEyOSw2ICsxMzAsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0CiAJewog CQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWluCiAJfSwKKwl7CisJCSJSZXBsU2xv dFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2VyTWFpbgorCX0sCiAJewogCQkiUGFy YWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5V29ya2VyTWFpbgogCX0sCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGZlYjQ3MWRkMWQuLmQ5MGQ1ZDE1NzYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNs dWRlICJwb3N0bWFzdGVyL3dhbHN1bW1hcml6ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9s b2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKKyNp bmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdl L2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3BnX3No bWVtLmgiCkBAIC0xMDEwLDYgKzEwMTEsMTIgQEAgUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAkgKi8KIAlBcHBseUxhdW5jaGVyUmVnaXN0ZXIoKTsKIAorCS8qCisJICog UmVnaXN0ZXIgdGhlIHNsb3Qgc3luYyB3b3JrZXIgaGVyZSB0byBraWNrIHN0YXJ0IHNsb3Qtc3lu YyBvcGVyYXRpb24KKwkgKiBzb29uZXIgb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkuCisJICovCisJ U2xvdFN5bmNXb3JrZXJSZWdpc3RlcigpOworCiAJLyoKIAkgKiBwcm9jZXNzIGFueSBsaWJyYXJp ZXMgdGhhdCBzaG91bGQgYmUgcHJlbG9hZGVkIGF0IHBvc3RtYXN0ZXIgc3RhcnQKIAkgKi8KQEAg LTU3OTksNiArNTgwNiw5IEBAIGJnd29ya2VyX3Nob3VsZF9zdGFydF9ub3coQmdXb3JrZXJTdGFy dFRpbWUgc3RhcnRfdGltZSkKIAkJY2FzZSBQTV9IT1RfU1RBTkRCWToKIAkJCWlmIChzdGFydF90 aW1lID09IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlKQogCQkJCXJldHVybiB0cnVlOwor CQkJaWYgKHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3Rh bmRieSAmJgorCQkJCQkgcG1TdGF0ZSAhPSBQTV9SVU4pCisJCQkJcmV0dXJuIHRydWU7CiAJCQkv KiBmYWxsIHRocm91Z2ggKi8KIAogCQljYXNlIFBNX1JFQ09WRVJZOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2 ZXIuYwppbmRleCAyMGQ1MTI4YzBlLi5hZTc2YzA5OGIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzdG9yZS5oIgorI2luY2x1 ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAogUEdfTU9EVUxFX01BR0lDOwogCkBAIC01Nyw2ICs1OCw3 IEBAIHN0YXRpYyB2b2lkIGxpYnBxcmN2X2dldF9zZW5kZXJpbmZvKFdhbFJlY2VpdmVyQ29ubiAq Y29ubiwKIAkJCQkJCQkJCWNoYXIgKipzZW5kZXJfaG9zdCwgaW50ICpzZW5kZXJfcG9ydCk7CiBz dGF0aWMgY2hhciAqbGlicHFyY3ZfaWRlbnRpZnlfc3lzdGVtKFdhbFJlY2VpdmVyQ29ubiAqY29u biwKIAkJCQkJCQkJCSAgVGltZUxpbmVJRCAqcHJpbWFyeV90bGkpOworc3RhdGljIGNoYXIgKmxp YnBxcmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbyk7CiBz dGF0aWMgaW50CWxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2VpdmVyQ29ubiAqY29ubik7 CiBzdGF0aWMgdm9pZCBsaWJwcXJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZShXYWxSZWNlaXZl ckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJCSBUaW1lTGluZUlEIHRsaSwgY2hhciAqKmZpbGVuYW1l LApAQCAtOTksNiArMTAxLDcgQEAgc3RhdGljIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdh bFJlY2VpdmVyRnVuY3Rpb25zID0gewogCS53YWxyY3Zfc2VuZCA9IGxpYnBxcmN2X3NlbmQsCiAJ LndhbHJjdl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAogCS53YWxyY3ZfYWx0 ZXJfc2xvdCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCisJLndhbHJjdl9nZXRfZGJuYW1lX2Zyb21f Y29ubmluZm8gPSBsaWJwcXJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8sCiAJLndhbHJjdl9n ZXRfYmFja2VuZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVj ID0gbGlicHFyY3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25u ZWN0CkBAIC00NzEsNiArNDc0LDQ0IEBAIGxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2Vp dmVyQ29ubiAqY29ubikKIAlyZXR1cm4gUFFzZXJ2ZXJWZXJzaW9uKGNvbm4tPnN0cmVhbUNvbm4p OwogfQogCisvKgorICogR2V0IGRhdGFiYXNlIG5hbWUgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIn cyBjb25uaW5mby4KKyAqCisgKiBJZiBkYm5hbWUgaXMgbm90IGZvdW5kIGluIGNvbm5JbmZvLCBy ZXR1cm4gTlVMTCB2YWx1ZS4KKyAqLworc3RhdGljIGNoYXIgKgorbGlicHFyY3ZfZ2V0X2RibmFt ZV9mcm9tX2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNvbm5JbmZvKQoreworCVBRY29ubmluZm9PcHRp b24gKm9wdHM7CisJY2hhcgkgICAqZGJuYW1lID0gTlVMTDsKKwljaGFyCSAgICplcnIgPSBOVUxM OworCisJb3B0cyA9IFBRY29ubmluZm9QYXJzZShjb25uSW5mbywgJmVycik7CisJaWYgKG9wdHMg PT0gTlVMTCkKKwl7CisJCS8qIFRoZSBlcnJvciBzdHJpbmcgaXMgbWFsbG9jJ2QsIHNvIHdlIG11 c3QgZnJlZSBpdCBleHBsaWNpdGx5ICovCisJCWNoYXIJICAgKmVycmNvcHkgPSBlcnIgPyBwc3Ry ZHVwKGVycikgOiAib3V0IG9mIG1lbW9yeSI7CisKKwkJUFFmcmVlbWVtKGVycik7CisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJt c2coImludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiAlcyIsIGVycmNvcHkpKSk7CisJ fQorCisJZm9yIChQUWNvbm5pbmZvT3B0aW9uICpvcHQgPSBvcHRzOyBvcHQtPmtleXdvcmQgIT0g TlVMTDsgKytvcHQpCisJeworCQkvKgorCQkgKiBJZiBtdWx0aXBsZSBkYm5hbWVzIGFyZSBzcGVj aWZpZWQsIHRoZW4gdGhlIGxhc3Qgb25lIHdpbGwgYmUKKwkJICogcmV0dXJuZWQKKwkJICovCisJ CWlmIChzdHJjbXAob3B0LT5rZXl3b3JkLCAiZGJuYW1lIikgPT0gMCAmJiBvcHQtPnZhbCAmJgor CQkJb3B0LT52YWxbMF0gIT0gJ1wwJykKKwkJCWRibmFtZSA9IHBzdHJkdXAob3B0LT52YWwpOwor CX0KKworCXJldHVybiBkYm5hbWU7Cit9CisKIC8qCiAgKiBTdGFydCBzdHJlYW1pbmcgV0FMIGRh dGEgZnJvbSBnaXZlbiBzdHJlYW1pbmcgb3B0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9NYWtlZmlsZQppbmRleCAyZGMyNWUzN2JiLi5iYTAzZWVmZjFjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUKQEAgLTI1LDYgKzI1LDcgQEAgT0JK UyA9IFwKIAlwcm90by5vIFwKIAlyZWxhdGlvbi5vIFwKIAlyZW9yZGVyYnVmZmVyLm8gXAorCXNs b3RzeW5jLm8gXAogCXNuYXBidWlsZC5vIFwKIAl0YWJsZXN5bmMubyBcCiAJd29ya2VyLm8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKaW5kZXggY2EwOWM2ODNmMS4u NWFlZmIxMGVjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMK QEAgLTUyNCw2ICs1MjQsMTggQEAgQ3JlYXRlRGVjb2RpbmdDb250ZXh0KFhMb2dSZWNQdHIgc3Rh cnRfbHNuLAogCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIHdhcyBub3QgY3Jl YXRlZCBpbiB0aGlzIGRhdGFiYXNlIiwKIAkJCQkJCU5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSkp KTsKIAorCS8qCisJICogRG8gbm90IGFsbG93IGNvbnN1bXB0aW9uIG9mIGEgInN5bmNocm9uaXpl ZCIgc2xvdCB1bnRpbCB0aGUgc3RhbmRieQorCSAqIGdldHMgcHJvbW90ZWQuCisJICovCisJaWYg KFJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIHNsb3QtPmRhdGEuc3luY2VkKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFU RSksCisJCQkJZXJybXNnKCJjYW5ub3QgdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGZvciBs b2dpY2FsIgorCQkJCQkgICAiIGRlY29kaW5nIiwgTmFtZVN0cihzbG90LT5kYXRhLm5hbWUpKSwK KwkJCQllcnJkZXRhaWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUgcHJpbWFy eSBzZXJ2ZXIuIiksCisJCQkJZXJyaGludCgiU3BlY2lmeSBhbm90aGVyIHJlcGxpY2F0aW9uIHNs b3QuIikpOworCiAJLyoKIAkgKiBDaGVjayBpZiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIGR1 ZSB0byBtYXhfc2xvdF93YWxfa2VlcF9zaXplLiBBdm9pZAogCSAqICJjYW5ub3QgZ2V0IGNoYW5n ZXMiIHdvcmRpbmcgaW4gdGhpcyBlcnJtc2cgYmVjYXVzZSB0aGF0J2QgYmUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkCmluZGV4IDEwNTBlYjJjMDkuLjNkZWMz NmE2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24u YnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZApA QCAtMTEsNiArMTEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwcm90by5jJywK ICAgJ3JlbGF0aW9uLmMnLAogICAncmVvcmRlcmJ1ZmZlci5jJywKKyAgJ3Nsb3RzeW5jLmMnLAog ICAnc25hcGJ1aWxkLmMnLAogICAndGFibGVzeW5jLmMnLAogICAnd29ya2VyLmMnLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjg0YjY2MTA0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTAsMCArMSwxMTk1IEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqIHNsb3RzeW5jLmMKKyAqCSAgIFBvc3RncmVTUUwgd29ya2Vy IGZvciBzeW5jaHJvbml6aW5nIHNsb3RzIHRvIGEgc3RhbmRieSBzZXJ2ZXIgZnJvbSB0aGUKKyAq ICAgICAgICAgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisg KgkgIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworICoKKyAqIFRo aXMgZmlsZSBjb250YWlucyB0aGUgY29kZSBmb3Igc2xvdCBzeW5jIHdvcmtlciBvbiBhIHBoeXNp Y2FsIHN0YW5kYnkKKyAqIHRvIGZldGNoIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgaW5mb3JtYXRp b24gZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIsCisgKiBjcmVhdGUgdGhlIHNsb3RzIG9uIHRoZSBz dGFuZGJ5IGFuZCBzeW5jaHJvbml6ZSB0aGVtIHBlcmlvZGljYWxseS4KKyAqCisgKiBXaGlsZSBj cmVhdGluZyB0aGUgc2xvdCBvbiBwaHlzaWNhbCBzdGFuZGJ5LCBpZiB0aGUgbG9jYWwgcmVzdGFy dF9sc24gYW5kL29yCisgKiBsb2NhbCBjYXRhbG9nX3htaW4gaXMgYWhlYWQgb2YgdGhvc2Ugb24g dGhlIHJlbW90ZSB0aGVuIHRoZSB3b3JrZXIgY2Fubm90CisgKiBjcmVhdGUgdGhlIGxvY2FsIHNs b3QgaW4gc3luYyB3aXRoIHRoZSBwcmltYXJ5IHNlcnZlciBiZWNhdXNlIHRoYXQgd291bGQKKyAq IG1lYW4gbW92aW5nIHRoZSBsb2NhbCBzbG90IGJhY2t3YXJkcyBhbmQgdGhlIHN0YW5kYnkgbWln aHQgbm90IGhhdmUgV0FMcworICogcmV0YWluZWQgZm9yIG9sZCBMU04uIEluIHRoaXMgY2FzZSwg dGhlIHdvcmtlciB3aWxsIG1hcmsgdGhlIHNsb3QgYXMKKyAqIFJTX1RFTVBPUkFSWS4gT25jZSB0 aGUgcHJpbWFyeSBzZXJ2ZXIgY2F0Y2hlcyB1cCwgdGhlIHdvcmtlciB3aWxsIG1hcmsgdGhlCisg KiBzbG90IGFzIFJTX1BFUlNJU1RFTlQgKHdoaWNoIG1lYW5zIHN5bmMtcmVhZHkpIGFuZCB3aWxs IHBlcmZvcm0gdGhlIHN5bmMKKyAqIHBlcmlvZGljYWxseS4KKyAqCisgKiBUaGUgd29ya2VyIGFs c28gdGFrZXMgY2FyZSBvZiBkcm9wcGluZyB0aGUgc2xvdHMgd2hpY2ggd2VyZSBjcmVhdGVkIGJ5 IGl0CisgKiBhbmQgYXJlIGN1cnJlbnRseSBub3QgbmVlZGVkIHRvIGJlIHN5bmNocm9uaXplZC4K KyAqCisgKiBJdCB3YWl0cyBmb3IgYSBwZXJpb2Qgb2YgdGltZSBiZWZvcmUgdGhlIG5leHQgc3lu Y2hyb25pemF0aW9uLCB3aXRoIHRoZQorICogZHVyYXRpb24gdmFyeWluZyBiYXNlZCBvbiB3aGV0 aGVyIGFueSBzbG90cyB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRoZSBsYXN0CisgKiBjeWNsZS4gUmVm ZXIgdG8gdGhlIGNvbW1lbnRzIGFib3ZlIHdhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoKSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqIFNsb3Qgc3luY2hyb25pemF0aW9uIGlzIGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieS4KKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0u aCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRl cm5hbC5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2RhdGFiYXNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgorI2lu Y2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNs dWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2lj YWwuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCIKKyNpbmNsdWRl ICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKKyNp bmNsdWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvY2FycmF5LmgiCisj aW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCIK KyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCisK Ky8qCisgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvcm1hdGlvbiBmZXRjaGVkIGZyb20gdGhlIHBy aW1hcnkgc2VydmVyIGFib3V0IGEgbG9naWNhbAorICogcmVwbGljYXRpb24gc2xvdC4KKyAqLwor dHlwZWRlZiBzdHJ1Y3QgUmVtb3RlU2xvdAoreworCWNoYXIJICAgKm5hbWU7CisJY2hhcgkgICAq cGx1Z2luOworCWNoYXIJICAgKmRhdGFiYXNlOworCWJvb2wJCXR3b19waGFzZTsKKwlYTG9nUmVj UHRyCXJlc3RhcnRfbHNuOworCVhMb2dSZWNQdHIJY29uZmlybWVkX2xzbjsKKwlUcmFuc2FjdGlv bklkIGNhdGFsb2dfeG1pbjsKKworCS8qIFJTX0lOVkFMX05PTkUgaWYgdmFsaWQsIG9yIHRoZSBy ZWFzb24gb2YgaW52YWxpZGF0aW9uICovCisJUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1 c2UgaW52YWxpZGF0ZWQ7Cit9IFJlbW90ZVNsb3Q7CisKKy8qCisgKiBTdHJ1Y3QgZm9yIHNoYXJp bmcgaW5mb3JtYXRpb24gYmV0d2VlbiBzdGFydHVwIHByb2Nlc3MgYW5kIHNsb3QKKyAqIHN5bmMg d29ya2VyLgorICoKKyAqIFNsb3Qgc3luYyB3b3JrZXIncyBwaWQgaXMgbmVlZGVkIGJ5IHRoZSBz dGFydHVwIHByb2Nlc3MgaW4gb3JkZXIgdG8KKyAqIHNodXQgaXQgZG93biBkdXJpbmcgcHJvbW90 aW9uLiBTdGFydHVwIHByb2Nlc3Mgc2h1dHMgZG93biB0aGUgc2xvdAorICogc3luYyB3b3JrZXIg YW5kIGFsc28gc2V0cyBzdG9wU2lnbmFsZWQ9dHJ1ZSB0byBoYW5kbGUgdGhlIHJhY2UgY29uZGl0 aW9uCisgKiB3aGVuIHBvc3RtYXN0ZXIgaGFzIG5vdCBub3RpY2VkIHRoZSBwcm9tb3Rpb24geWV0 IGFuZCB0aHVzIG1heSBlbmQgdXAKKyAqIHJlc3RhcnRpbmcgc2xvdCBzeW5jIHdvcmtlci4gSWYg c3RvcFNpZ25hbGVkIGlzIHNldCwgdGhlIHdvcmtlciB3aWxsCisgKiBleGl0IGluIHN1Y2ggYSBj YXNlLgorICovCit0eXBlZGVmIHN0cnVjdCBTbG90U3luY1dvcmtlckN0eFN0cnVjdAoreworCXBp ZF90CQlwaWQ7CisJYm9vbAkJc3RvcFNpZ25hbGVkOworCXNsb2NrX3QJCW11dGV4OworfSBTbG90 U3luY1dvcmtlckN0eFN0cnVjdDsKKworU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKlNsb3RTeW5j V29ya2VyID0gTlVMTDsKKworLyogR1VDIHZhcmlhYmxlICovCitib29sCQllbmFibGVfc3luY3Ns b3QgPSBmYWxzZTsKKworLyogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qtc3luYyBj eWNsZXMgdmFyaWVzIGR5bmFtaWNhbGx5CisgKiAod2l0aGluIGEgTUlOL01BWCByYW5nZSkgYWNj b3JkaW5nIHRvIHNsb3QgYWN0aXZpdHkuIFNlZQorICogd2FpdF9mb3Jfc2xvdF9hY3Rpdml0eSgp IGZvciBkZXRhaWxzLgorICovCisjZGVmaW5lIE1JTl9XT1JLRVJfTkFQVElNRV9NUyAgMjAwCisj ZGVmaW5lIE1BWF9XT1JLRVJfTkFQVElNRV9NUyAgMzAwMDAJLyogMzBzICovCisKK3N0YXRpYyBs b25nIHNsZWVwX21zID0gTUlOX1dPUktFUl9OQVBUSU1FX01TOworCitzdGF0aWMgdm9pZCBQcm9j ZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKTsKKworLyoKKyAq IElmIG5lY2Vzc2FyeSwgdXBkYXRlIGxvY2FsIHNsb3QgbWV0YWRhdGEgYmFzZWQgb24gdGhlIGRh dGEgZnJvbSB0aGUgcmVtb3RlCisgKiBzbG90LgorICoKKyAqIElmIG5vIHVwZGF0ZSB3YXMgbmVl ZGVkICh0aGUgZGF0YSBvZiB0aGUgcmVtb3RlIHNsb3QgaXMgdGhlIHNhbWUgYXMgdGhlCisgKiBs b2NhbCBzbG90KSByZXR1cm4gZmFsc2UsIG90aGVyd2lzZSB0cnVlLgorICovCitzdGF0aWMgYm9v bAorbG9jYWxfc2xvdF91cGRhdGUoUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QpCit7CisJT2lkCQkJ cmVtb3RlX2RiaWQ7CisJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7 CisJTmFtZURhdGEJcGx1Z2luX25hbWU7CisKKwlBc3NlcnQoc2xvdC0+ZGF0YS5pbnZhbGlkYXRl ZCA9PSBSU19JTlZBTF9OT05FKTsKKworCXJlbW90ZV9kYmlkID0gZ2V0X2RhdGFiYXNlX29pZChy ZW1vdGVfc2xvdC0+ZGF0YWJhc2UsIGZhbHNlKTsKKworCWlmIChzdHJjbXAocmVtb3RlX3Nsb3Qt PnBsdWdpbiwgTmFtZVN0cihzbG90LT5kYXRhLnBsdWdpbikpID09IDAgJiYKKwkJcmVtb3RlX2Ri aWQgPT0gc2xvdC0+ZGF0YS5kYXRhYmFzZSAmJgorCQlyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24g PT0gc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiAmJgorCQlyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWlu ID09IHNsb3QtPmRhdGEuY2F0YWxvZ194bWluICYmCisJCXJlbW90ZV9zbG90LT50d29fcGhhc2Ug PT0gc2xvdC0+ZGF0YS50d29fcGhhc2UgJiYKKwkJcmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24g PT0gc2xvdC0+ZGF0YS5jb25maXJtZWRfZmx1c2gpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJ ICogV2UgZG9uJ3Qgd2FudCBhbnkgY29tcGxpY2F0ZWQgY29kZSB3aGlsZSBob2xkaW5nIGEgc3Bp bmxvY2ssIHNvIGRvCisJICogbmFtZXN0cmNweSgpIG91dHNpZGUuCisJICovCisJbmFtZXN0cmNw eSgmcGx1Z2luX25hbWUsIHJlbW90ZV9zbG90LT5wbHVnaW4pOworCisJU3BpbkxvY2tBY3F1aXJl KCZzbG90LT5tdXRleCk7CisJc2xvdC0+ZGF0YS5wbHVnaW4gPSBwbHVnaW5fbmFtZTsKKwlzbG90 LT5kYXRhLmRhdGFiYXNlID0gcmVtb3RlX2RiaWQ7CisJc2xvdC0+ZGF0YS50d29fcGhhc2UgPSBy ZW1vdGVfc2xvdC0+dHdvX3BoYXNlOworCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZW1vdGVf c2xvdC0+cmVzdGFydF9sc247CisJc2xvdC0+ZGF0YS5jb25maXJtZWRfZmx1c2ggPSByZW1vdGVf c2xvdC0+Y29uZmlybWVkX2xzbjsKKwlzbG90LT5kYXRhLmNhdGFsb2dfeG1pbiA9IHJlbW90ZV9z bG90LT5jYXRhbG9nX3htaW47CisJc2xvdC0+ZWZmZWN0aXZlX2NhdGFsb2dfeG1pbiA9IHJlbW90 ZV9zbG90LT5jYXRhbG9nX3htaW47CisJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisK KwlpZiAocmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiAhPSBzbG90LT5kYXRhLmNhdGFsb2dfeG1p bikKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZFhtaW4oZmFsc2UpOworCisJaWYg KHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiAhPSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuKQorCQlS ZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30K KworLyoKKyAqIEdldCBsaXN0IG9mIGxvY2FsIGxvZ2ljYWwgc2xvdHMgd2hpY2ggYXJlIHN5bmNo cm9uaXplZCBmcm9tCisgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIuCisgKi8KK3N0YXRpYyBMaXN0ICoK K2dldF9sb2NhbF9zeW5jZWRfc2xvdHModm9pZCkKK3sKKwlMaXN0CSAgICpsb2NhbF9zbG90cyA9 IE5JTDsKKworCUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NI QVJFRCk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBsaWNhdGlvbl9zbG90czsgaSsr KQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+cmVwbGlj YXRpb25fc2xvdHNbaV07CisKKwkJLyogQ2hlY2sgaWYgaXQgaXMgYSBzeW5jaHJvbml6ZWQgc2xv dCAqLworCQlpZiAocy0+aW5fdXNlICYmIHMtPmRhdGEuc3luY2VkKQorCQl7CisJCQlBc3NlcnQo U2xvdElzTG9naWNhbChzKSk7CisJCQlsb2NhbF9zbG90cyA9IGxhcHBlbmQobG9jYWxfc2xvdHMs IHMpOworCQl9CisJfQorCisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9j ayk7CisKKwlyZXR1cm4gbG9jYWxfc2xvdHM7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24g dG8gY2hlY2sgaWYgbG9jYWxfc2xvdCBpcyBwcmVzZW50IGluIHJlbW90ZV9zbG90cyBsaXN0Lgor ICoKKyAqIEl0IGFsc28gY2hlY2tzIGlmIHRoZSBzbG90IG9uIHRoZSBzdGFuZGJ5IHNlcnZlciB3 YXMgaW52YWxpZGF0ZWQgd2hpbGUgdGhlCisgKiBjb3JyZXNwb25kaW5nIHJlbW90ZSBzbG90IGlu IHRoZSBsaXN0IHJlbWFpbmVkIHZhbGlkLiBJZiBmb3VuZCBzbywgaXQgc2V0cworICogdGhlIGxv Y2FsbHlfaW52YWxpZGF0ZWQgZmxhZyB0byB0cnVlLgorICovCitzdGF0aWMgYm9vbAorY2hlY2tf c3luY19zbG90X29uX3JlbW90ZShSZXBsaWNhdGlvblNsb3QgKmxvY2FsX3Nsb3QsIExpc3QgKnJl bW90ZV9zbG90cywKKwkJCQkJCSAgYm9vbCAqbG9jYWxseV9pbnZhbGlkYXRlZCkKK3sKKwlmb3Jl YWNoX3B0cihSZW1vdGVTbG90LCByZW1vdGVfc2xvdCwgcmVtb3RlX3Nsb3RzKQorCXsKKwkJaWYg KHN0cmNtcChyZW1vdGVfc2xvdC0+bmFtZSwgTmFtZVN0cihsb2NhbF9zbG90LT5kYXRhLm5hbWUp KSA9PSAwKQorCQl7CisJCQkvKgorCQkJICogSWYgcmVtb3RlIHNsb3QgaXMgbm90IGludmFsaWRh dGVkIGJ1dCBsb2NhbCBzbG90IGlzIG1hcmtlZCBhcworCQkJICogaW52YWxpZGF0ZWQsIHRoZW4g c2V0IHRoZSBib29sLgorCQkJICovCisJCQlTcGluTG9ja0FjcXVpcmUoJmxvY2FsX3Nsb3QtPm11 dGV4KTsKKwkJCSpsb2NhbGx5X2ludmFsaWRhdGVkID0KKwkJCQkocmVtb3RlX3Nsb3QtPmludmFs aWRhdGVkID09IFJTX0lOVkFMX05PTkUpICYmCisJCQkJKGxvY2FsX3Nsb3QtPmRhdGEuaW52YWxp ZGF0ZWQgIT0gUlNfSU5WQUxfTk9ORSk7CisJCQlTcGluTG9ja1JlbGVhc2UoJmxvY2FsX3Nsb3Qt Pm11dGV4KTsKKworCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9 CisKKy8qCisgKiBEcm9wIG9ic29sZXRlIHNsb3RzCisgKgorICogRHJvcCB0aGUgc2xvdHMgdGhh dCBubyBsb25nZXIgbmVlZCB0byBiZSBzeW5jZWQgaS5lLiB0aGVzZSBlaXRoZXIgZG8gbm90Cisg KiBleGlzdCBvbiB0aGUgcHJpbWFyeSBvciBhcmUgbm8gbG9uZ2VyIGVuYWJsZWQgZm9yIGZhaWxv dmVyLgorICoKKyAqIEFkZGl0aW9uYWxseSwgaXQgZHJvcHMgc2xvdHMgdGhhdCBhcmUgdmFsaWQg b24gdGhlIHByaW1hcnkgYnV0IGdvdAorICogaW52YWxpZGF0ZWQgb24gdGhlIHN0YW5kYnkuIFRo aXMgc2l0dWF0aW9uIG1heSBvY2N1ciBkdWUgdG8gdGhlIGZvbGxvd2luZworICogcmVhc29uczoK KyAqIC0gVGhlIG1heF9zbG90X3dhbF9rZWVwX3NpemUgb24gdGhlIHN0YW5kYnkgaXMgaW5zdWZm aWNpZW50IHRvIHJldGFpbiBXQUwKKyAqICAgcmVjb3JkcyBmcm9tIHRoZSByZXN0YXJ0X2xzbiBv ZiB0aGUgc2xvdC4KKyAqIC0gcHJpbWFyeV9zbG90X25hbWUgaXMgdGVtcG9yYXJpbHkgcmVzZXQg dG8gbnVsbCBhbmQgdGhlIHBoeXNpY2FsIHNsb3QgaXMKKyAqICAgcmVtb3ZlZC4KKyAqIC0gVGhl IHByaW1hcnkgY2hhbmdlcyB3YWxfbGV2ZWwgdG8gYSBsZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwu CisgKgorICogVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB0aGVzZSBkcm9wcGVkIHNsb3RzIHdpbGwg Z2V0IHJlY3JlYXRlZCBpbiBuZXh0CisgKiBzeW5jLWN5Y2xlIGFuZCBpdCBpcyBva2F5IHRvIGRy b3AgYW5kIHJlY3JlYXRlIHN1Y2ggc2xvdHMgYXMgbG9uZyBhcyB0aGVzZQorICogYXJlIG5vdCBj b25zdW1hYmxlIG9uIHRoZSBzdGFuZGJ5ICh3aGljaCBpcyB0aGUgY2FzZSBjdXJyZW50bHkpLgor ICovCitzdGF0aWMgdm9pZAorZHJvcF9vYnNvbGV0ZV9zbG90cyhMaXN0ICpyZW1vdGVfc2xvdF9s aXN0KQoreworCUxpc3QJICAgKmxvY2FsX3Nsb3RzID0gZ2V0X2xvY2FsX3N5bmNlZF9zbG90cygp OworCisJZm9yZWFjaF9wdHIoUmVwbGljYXRpb25TbG90LCBsb2NhbF9zbG90LCBsb2NhbF9zbG90 cykKKwl7CisJCWJvb2wJCXJlbW90ZV9leGlzdHMgPSBmYWxzZTsKKwkJYm9vbAkJbG9jYWxseV9p bnZhbGlkYXRlZCA9IGZhbHNlOworCisJCXJlbW90ZV9leGlzdHMgPSBjaGVja19zeW5jX3Nsb3Rf b25fcmVtb3RlKGxvY2FsX3Nsb3QsIHJlbW90ZV9zbG90X2xpc3QsCisJCQkJCQkJCQkJCQkgICZs b2NhbGx5X2ludmFsaWRhdGVkKTsKKworCQkvKgorCQkgKiBEcm9wIHRoZSBsb2NhbCBzbG90IGVp dGhlciBpZiBpdCBpcyBub3QgaW4gdGhlIHJlbW90ZSBzbG90cyBsaXN0IG9yCisJCSAqIGlzIGlu dmFsaWRhdGVkIHdoaWxlIHJlbW90ZSBzbG90IGlzIHN0aWxsIHZhbGlkLgorCQkgKi8KKwkJaWYg KCFyZW1vdGVfZXhpc3RzIHx8IGxvY2FsbHlfaW52YWxpZGF0ZWQpCisJCXsKKwkJCVJlcGxpY2F0 aW9uU2xvdEFjcXVpcmUoTmFtZVN0cihsb2NhbF9zbG90LT5kYXRhLm5hbWUpLCB0cnVlKTsKKwkJ CUFzc2VydChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5zeW5jZWQpOworCQkJUmVwbGljYXRpb25T bG90RHJvcEFjcXVpcmVkKCk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQllcnJtc2coImRyb3Bw ZWQgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb2YgZGJpZCAlZCIsCisJCQkJCQkgICBOYW1lU3Ry KGxvY2FsX3Nsb3QtPmRhdGEubmFtZSksCisJCQkJCQkgICBsb2NhbF9zbG90LT5kYXRhLmRhdGFi YXNlKSk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBSZXNlcnZlIFdBTCBmb3IgdGhlIGN1cnJlbnRs eSBhY3RpdmUgc2xvdCB1c2luZyB0aGUgc3BlY2lmaWVkIFdBTCBsb2NhdGlvbgorICogKHJlc3Rh cnRfbHNuKS4KKyAqCisgKiBJZiB0aGUgZ2l2ZW4gV0FMIGxvY2F0aW9uIGhhcyBiZWVuIHJlbW92 ZWQsIHJlc2VydmUgV0FMIHVzaW5nIHRoZSBvbGRlc3QKKyAqIGV4aXN0aW5nIFdBTCBzZWdtZW50 LgorICovCitzdGF0aWMgdm9pZAorcmVzZXJ2ZV93YWxfZm9yX3Nsb3QoWExvZ1JlY1B0ciByZXN0 YXJ0X2xzbikKK3sKKwlYTG9nU2VnTm8Jb2xkZXN0X3NlZ25vOworCVhMb2dTZWdObwlzZWdubzsK KwlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCUFzc2VydChz bG90ICE9IE5VTEwpOworCUFzc2VydChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3QtPmRhdGEucmVz dGFydF9sc24pKTsKKworCXdoaWxlICh0cnVlKQorCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90 LT5tdXRleCk7CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3Bp bkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogUHJldmVudCBXQUwgcmVtb3ZhbCBh cyBmYXN0IGFzIHBvc3NpYmxlICovCisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKKworCQlYTEJ5dGVUb1NlZyhzbG90LT5kYXRhLnJlc3RhcnRfbHNuLCBzZWdubywgd2Fs X3NlZ21lbnRfc2l6ZSk7CisKKwkJLyoKKwkJICogRmluZCB0aGUgb2xkZXN0IGV4aXN0aW5nIFdB TCBzZWdtZW50IGZpbGUuCisJCSAqCisJCSAqIE5vcm1hbGx5LCB3ZSBjYW4gZGV0ZXJtaW5lIGl0 IGJ5IHVzaW5nIHRoZSBsYXN0IHJlbW92ZWQgc2VnbWVudAorCQkgKiBudW1iZXIuIEhvd2V2ZXIs IGlmIG5vIFdBTCBzZWdtZW50IGZpbGVzIGhhdmUgYmVlbiByZW1vdmVkIGJ5IGEKKwkJICogY2hl Y2twb2ludCBzaW5jZSBzdGFydHVwLCB3ZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIG9sZGVzdCBz ZWdtZW50CisJCSAqIGZpbGUgY3VycmVudGx5IGV4aXN0aW5nIGluIFhMT0dESVIuCisJCSAqLwor CQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpICsgMTsKKworCQlpZiAo b2xkZXN0X3NlZ25vID09IDEpCisJCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0T2xkZXN0U2Vnbm8o MCk7CisKKwkJLyoKKwkJICogSWYgYWxsIHJlcXVpcmVkIFdBTCBpcyBzdGlsbCB0aGVyZSwgZ3Jl YXQsIG90aGVyd2lzZSByZXRyeS4gVGhlCisJCSAqIHNsb3Qgc2hvdWxkIHByZXZlbnQgZnVydGhl ciByZW1vdmFsIG9mIFdBTCwgdW5sZXNzIHRoZXJlJ3MgYQorCQkgKiBjb25jdXJyZW50IFJlcGxp Y2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKSBhZnRlciB3ZSd2ZSB3cml0dGVuCisJCSAq IHRoZSBuZXcgcmVzdGFydF9sc24gYWJvdmUsIHNvIG5vcm1hbGx5IHdlIHNob3VsZCBuZXZlciBu ZWVkIHRvIGxvb3AKKwkJICogbW9yZSB0aGFuIHR3aWNlLgorCQkgKi8KKwkJaWYgKHNlZ25vID49 IG9sZGVzdF9zZWdubykKKwkJCWJyZWFrOworCisJCS8qIFJldHJ5IHVzaW5nIHRoZSBsb2NhdGlv biBvZiB0aGUgb2xkZXN0IHdhbCBzZWdtZW50ICovCisJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRy KG9sZGVzdF9zZWdubywgMCwgd2FsX3NlZ21lbnRfc2l6ZSwgcmVzdGFydF9sc24pOworCX0KK30K KworLyoKKyAqIFVwZGF0ZSB0aGUgTFNOcyBhbmQgcGVyc2lzdCB0aGUgc2xvdCBmb3IgZnVydGhl ciBzeW5jcyBpZiB0aGUgcmVtb3RlCisgKiByZXN0YXJ0X2xzbiBhbmQgY2F0YWxvZ194bWluIGhh dmUgY2F1Z2h0IHVwIHdpdGggdGhlIGxvY2FsIG9uZXMsIG90aGVyd2lzZQorICogZG8gbm90aGlu Zy4KKyAqCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2xvdCBpcyBtYXJrZWQgYXMgUlNfUEVSU0lT VEVOVCAoc3luYy1yZWFkeSksIG90aGVyd2lzZQorICogZmFsc2UuCisgKi8KK3N0YXRpYyBib29s Cit1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChSZW1vdGVTbG90ICpyZW1vdGVfc2xvdCkKK3sKKwlS ZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCS8qCisJICogQ2hl Y2sgaWYgdGhlIHByaW1hcnkgc2VydmVyIGhhcyBjYXVnaHQgdXAuIFJlZmVyIHRvIHRoZSBjb21t ZW50IGF0b3AKKwkgKiB0aGUgZmlsZSBmb3IgZGV0YWlscyBvbiB0aGlzIGNoZWNrLgorCSAqCisJ ICogV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIHJlbW90ZV9zbG90J3MgY29uZmlybWVkX2xzbiBi ZWNvbWVzIHZhbGlkLiBJdAorCSAqIGlzIHBvc3NpYmxlIHRvIGdldCBudWxsIHZhbHVlcyBmb3Ig Y29uZmlybWVkX2xzbiBhbmQgY2F0YWxvZ194bWluIGlmIG9uCisJICogdGhlIHByaW1hcnkgc2Vy dmVyIHRoZSBzbG90IGlzIGp1c3QgY3JlYXRlZCB3aXRoIGEgdmFsaWQgcmVzdGFydF9sc24KKwkg KiBhbmQgc2xvdC1zeW5jIHdvcmtlciBoYXMgZmV0Y2hlZCB0aGUgc2xvdCBiZWZvcmUgdGhlIHBy aW1hcnkgc2VydmVyCisJICogY291bGQgc2V0IHZhbGlkIGNvbmZpcm1lZF9sc24gYW5kIGNhdGFs b2dfeG1pbi4KKwkgKi8KKwlpZiAocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuIDwgc2xvdC0+ZGF0 YS5yZXN0YXJ0X2xzbiB8fAorCQlYTG9nUmVjUHRySXNJbnZhbGlkKHJlbW90ZV9zbG90LT5jb25m aXJtZWRfbHNuKSB8fAorCQlUcmFuc2FjdGlvbklkUHJlY2VkZXMocmVtb3RlX3Nsb3QtPmNhdGFs b2dfeG1pbiwKKwkJCQkJCQkgIHNsb3QtPmRhdGEuY2F0YWxvZ194bWluKSkKKwl7CisJCS8qCisJ CSAqIFRoZSByZW1vdGUgc2xvdCBkaWRuJ3QgY2F0Y2ggdXAgdG8gbG9jYWxseSByZXNlcnZlZCBw b3NpdGlvbi4KKwkJICoKKwkJICogV2UgZG8gbm90IGRyb3AgdGhlIHNsb3QgYmVjYXVzZSB0aGUg cmVzdGFydF9sc24gY2FuIGJlIGFoZWFkIG9mIHRoZQorCQkgKiBjdXJyZW50IGxvY2F0aW9uIHdo ZW4gcmVjcmVhdGluZyB0aGUgc2xvdCBpbiB0aGUgbmV4dCBjeWNsZS4gSXQgbWF5CisJCSAqIHRh a2UgbW9yZSB0aW1lIHRvIGNyZWF0ZSBzdWNoIGEgc2xvdC4gVGhlcmVmb3JlLCB3ZSBrZWVwIHRo aXMgc2xvdAorCQkgKiBhbmQgYXR0ZW1wdCB0aGUgd2FpdCBhbmQgc3luY2hyb25pemF0aW9uIGlu IHRoZSBuZXh0IGN5Y2xlLgorCQkgKi8KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qIEZpcnN0 IHRpbWUgc2xvdCB1cGRhdGUsIHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiB0cnVlICovCisJaWYg KCFsb2NhbF9zbG90X3VwZGF0ZShyZW1vdGVfc2xvdCkpCisJCWVsb2coRVJST1IsICJmYWlsZWQg dG8gdXBkYXRlIHNsb3QiKTsKKworCVJlcGxpY2F0aW9uU2xvdFBlcnNpc3QoKTsKKworCWVyZXBv cnQoTE9HLAorCQkJZXJybXNnKCJuZXdseSBjcmVhdGVkIHNsb3QgXCIlc1wiIGlzIHN5bmMtcmVh ZHkgbm93IiwKKwkJCQkgICByZW1vdGVfc2xvdC0+bmFtZSkpOworCisJcmV0dXJuIHRydWU7Cit9 CisKKy8qCisgKiBTeW5jaHJvbml6ZSBzaW5nbGUgc2xvdCB0byBnaXZlbiBwb3NpdGlvbi4KKyAq CisgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgc2xvdCBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBvbmUg YW5kIHVwZGF0ZXMgdGhlCisgKiBtZXRhZGF0YSBvZiB0aGUgc2xvdCBhcyBwZXIgdGhlIGRhdGEg cmVjZWl2ZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogVGhlIHNsb3QgaXMgY3Jl YXRlZCBhcyBhIHRlbXBvcmFyeSBzbG90IGFuZCBzdGF5cyBpbiB0aGUgc2FtZSBzdGF0ZSB1bnRp bCB0aGUKKyAqIHRoZSByZW1vdGVfc2xvdCBjYXRjaGVzIHVwIHdpdGggbG9jYWxseSByZXNlcnZl ZCBwb3NpdGlvbiBhbmQgbG9jYWwgc2xvdCBpcworICogdXBkYXRlZC4gVGhlIHNsb3QgaXMgdGhl biBwZXJzaXN0ZWQgYW5kIGlzIGNvbnNpZGVyZWQgYXMgc3luYy1yZWFkeSBmb3IKKyAqIHBlcmlv ZGljIHN5bmNzLgorICoKKyAqIFJldHVybnMgVFJVRSBpZiB0aGUgbG9jYWwgc2xvdCBpcyB1cGRh dGVkLgorICovCitzdGF0aWMgYm9vbAorc3luY2hyb25pemVfb25lX3Nsb3QoV2FsUmVjZWl2ZXJD b25uICp3cmNvbm4sIFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90KQoreworCVJlcGxpY2F0aW9uU2xv dCAqc2xvdDsKKwlib29sCQlzbG90X3VwZGF0ZWQgPSBmYWxzZTsKKwlYTG9nUmVjUHRyCWxhdGVz dEZsdXNoUHRyOworCisJLyoKKwkgKiBTYW5pdHkgY2hlY2s6IE1ha2Ugc3VyZSB0aGF0IGNvbmNl cm5lZCBXQUwgaXMgcmVjZWl2ZWQgYW5kIGZsdXNoZWQKKwkgKiBiZWZvcmUgc3luY2luZyBzbG90 IHRvIHRhcmdldCBsc24gcmVjZWl2ZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuCisJICoKKwkg KiBUaGlzIGNoZWNrIHNob3VsZCBuZXZlciBwYXNzIGFzIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwg d2UgaGF2ZSB3YWl0ZWQKKwkgKiBmb3IgdGhlIHN0YW5kYnkncyBjb25maXJtYXRpb24gYmVmb3Jl IHVwZGF0aW5nIHRoZSBsb2dpY2FsIHNsb3QuCisJICovCisJbGF0ZXN0Rmx1c2hQdHIgPSBHZXRT dGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKHJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNu ID4gbGF0ZXN0Rmx1c2hQdHIpCisJeworCQllcmVwb3J0KExPRywKKwkJCQllcnJtc2coInNraXBw aW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIGFzIHRoZSByZWNlaXZlZCBzbG90IHN5bmMiCisJCQkJ CSAgICIgTFNOICVYLyVYIGZvciBzbG90IFwiJXNcIiBpcyBhaGVhZCBvZiB0aGUgc3RhbmRieSBw b3NpdGlvbiAlWC8lWCIsCisJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhyZW1vdGVfc2xvdC0+Y29u ZmlybWVkX2xzbiksCisJCQkJCSAgIHJlbW90ZV9zbG90LT5uYW1lLAorCQkJCQkgICBMU05fRk9S TUFUX0FSR1MobGF0ZXN0Rmx1c2hQdHIpKSk7CisKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8q IFNlYXJjaCBmb3IgdGhlIG5hbWVkIHNsb3QgKi8KKwlpZiAoKHNsb3QgPSBTZWFyY2hOYW1lZFJl cGxpY2F0aW9uU2xvdChyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSkpKQorCXsKKwkJYm9vbAkJc3lu Y2VkOworCisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzeW5jZWQgPSBzbG90 LT5kYXRhLnN5bmNlZDsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyog VXNlciBjcmVhdGVkIHNsb3Qgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0cywgcmFpc2UgRVJST1Iu ICovCisJCWlmICghc3luY2VkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJleGl0 aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gYmVjYXVzZSBzYW1lIgorCQkJCQkJICAgIiBu YW1lIHNsb3QgXCIlc1wiIGFscmVhZHkgZXhpc3RzIG9uIHRoZSBzdGFuZGJ5IiwKKwkJCQkJCSAg IHJlbW90ZV9zbG90LT5uYW1lKSk7CisKKwkJLyoKKwkJICogU2xvdCBjcmVhdGVkIGJ5IHRoZSBz bG90IHN5bmMgd29ya2VyIGV4aXN0cywgc3luYyBpdC4KKwkJICoKKwkJICogSXQgaXMgaW1wb3J0 YW50IHRvIGFjcXVpcmUgdGhlIHNsb3QgaGVyZSBiZWZvcmUgY2hlY2tpbmcKKwkJICogaW52YWxp ZGF0aW9uLiBJZiB3ZSBkb24ndCBhY3F1aXJlIHRoZSBzbG90IGZpcnN0LCB0aGVyZSBjb3VsZCBi ZSBhCisJCSAqIHJhY2UgY29uZGl0aW9uIHRoYXQgdGhlIGxvY2FsIHNsb3QgY291bGQgYmUgaW52 YWxpZGF0ZWQganVzdCBhZnRlcgorCQkgKiBjaGVja2luZyB0aGUgJ2ludmFsaWRhdGVkJyBmbGFn IGhlcmUgYW5kIHdlIGNvdWxkIGVuZCB1cAorCQkgKiBvdmVyd3JpdGluZyAnaW52YWxpZGF0ZWQn IGZsYWcgdG8gcmVtb3RlX3Nsb3QncyB2YWx1ZS4gU2VlCisJCSAqIEludmFsaWRhdGVQb3NzaWJs eU9ic29sZXRlU2xvdCgpIHdoZXJlIGl0IGludmFsaWRhdGVzIHNsb3QgZGlyZWN0bHkKKwkJICog aWYgdGhlIHNsb3QgaXMgbm90IGFjcXVpcmVkIGJ5IG90aGVyIHByb2Nlc3Nlcy4KKwkJICovCisJ CVJlcGxpY2F0aW9uU2xvdEFjcXVpcmUocmVtb3RlX3Nsb3QtPm5hbWUsIHRydWUpOworCisJCUFz c2VydChzbG90ID09IE15UmVwbGljYXRpb25TbG90KTsKKworCQkvKgorCQkgKiBDb3B5IHRoZSBp bnZhbGlkYXRpb24gY2F1c2UgZnJvbSByZW1vdGUgb25seSBpZiBsb2NhbCBzbG90IGlzIG5vdAor CQkgKiBpbnZhbGlkYXRlZCBsb2NhbGx5LCB3ZSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZSBleGlz dGluZyBvbmUuCisJCSAqLworCQlpZiAoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9PSBSU19JTlZB TF9OT05FKQorCQl7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJCXNsb3Qt PmRhdGEuaW52YWxpZGF0ZWQgPSByZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQ7CisJCQlTcGluTG9j a1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQkJLyogTWFrZSBzdXJlIHRoZSBpbnZhbGlkYXRl ZCBzdGF0ZSBwZXJzaXN0cyBhY3Jvc3Mgc2VydmVyIHJlc3RhcnQgKi8KKwkJCVJlcGxpY2F0aW9u U2xvdE1hcmtEaXJ0eSgpOworCQkJUmVwbGljYXRpb25TbG90U2F2ZSgpOworCQkJc2xvdF91cGRh dGVkID0gdHJ1ZTsKKwkJfQorCisJCS8qIFNraXAgdGhlIHN5bmMgb2YgYW4gaW52YWxpZGF0ZWQg c2xvdCAqLworCQlpZiAoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCAhPSBSU19JTlZBTF9OT05FKQor CQl7CisJCQlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlyZXR1cm4gc2xvdF91cGRhdGVk OworCQl9CisKKwkJLyogU2xvdCBub3QgcmVhZHkgeWV0LCBsZXQncyBhdHRlbXB0IHRvIG1ha2Ug aXQgc3luYy1yZWFkeSBub3cuICovCisJCWlmIChzbG90LT5kYXRhLnBlcnNpc3RlbmN5ID09IFJT X1RFTVBPUkFSWSkKKwkJeworCQkJc2xvdF91cGRhdGVkID0gdXBkYXRlX2FuZF9wZXJzaXN0X3Ns b3QocmVtb3RlX3Nsb3QpOworCQl9CisKKwkJLyogU2xvdCByZWFkeSBmb3Igc3luYywgc28gc3lu YyBpdC4gKi8KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogU2FuaXR5IGNoZWNrOiBBcyBsb25n IGFzIHRoZSBpbnZhbGlkYXRpb25zIGFyZSBoYW5kbGVkCisJCQkgKiBhcHByb3ByaWF0ZWx5IGFz IGFib3ZlLCB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4uCisJCQkgKi8KKwkJCWlmIChyZW1vdGVf c2xvdC0+cmVzdGFydF9sc24gPCBzbG90LT5kYXRhLnJlc3RhcnRfbHNuKQorCQkJCWVsb2coRVJS T1IsCisJCQkJCSAiY2Fubm90IHN5bmNocm9uaXplIGxvY2FsIHNsb3QgXCIlc1wiIExTTiglWC8l WCkiCisJCQkJCSAiIHRvIHJlbW90ZSBzbG90J3MgTFNOKCVYLyVYKSBhcyBzeW5jaHJvbml6YXRp b24iCisJCQkJCSAiIHdvdWxkIG1vdmUgaXQgYmFja3dhcmRzIiwgcmVtb3RlX3Nsb3QtPm5hbWUs CisJCQkJCSBMU05fRk9STUFUX0FSR1Moc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiksCisJCQkJCSBM U05fRk9STUFUX0FSR1MocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKSk7CisKKwkJCS8qIE1ha2Ug c3VyZSB0aGUgc2xvdCBjaGFuZ2VzIHBlcnNpc3QgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJ CQlpZiAobG9jYWxfc2xvdF91cGRhdGUocmVtb3RlX3Nsb3QpKQorCQkJeworCQkJCXNsb3RfdXBk YXRlZCA9IHRydWU7CisJCQkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCQkJUmVwbGlj YXRpb25TbG90U2F2ZSgpOworCQkJfQorCQl9CisJfQorCS8qIE90aGVyd2lzZSBjcmVhdGUgdGhl IHNsb3QgZmlyc3QuICovCisJZWxzZQorCXsKKwkJT2lkCQkJZGJpZDsKKwkJTmFtZURhdGEJcGx1 Z2luX25hbWU7CisJCVRyYW5zYWN0aW9uSWQgeG1pbl9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CisKKwkJLyogU2tpcCBjcmVhdGluZyB0aGUgbG9jYWwgc2xvdCBpZiByZW1vdGVfc2xv dCBpcyBpbnZhbGlkYXRlZCBhbHJlYWR5ICovCisJCWlmIChyZW1vdGVfc2xvdC0+aW52YWxpZGF0 ZWQgIT0gUlNfSU5WQUxfTk9ORSkKKwkJCXJldHVybiBmYWxzZTsKKworCQkvKiBFbnN1cmUgdGhh dCB3ZSBoYXZlIHRyYW5zYWN0aW9uIGVudiBuZWVkZWQgYnkgZ2V0X2RhdGFiYXNlX29pZCgpICov CisJCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwkJLyoKKwkJICogSXQgaXMgbm90 IG5lZWRlZCB0byBzeW5jICdmYWlsb3ZlcicgZnJvbSByZW1vdGVfc2xvdCBhcyBjdXJyZW50bHkK KwkJICogc2xvdCBzeW5jaHJvbml6YXRpb24gaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgY2FzY2Fk aW5nIHN0YW5kYnkuCisJCSAqLworCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUocmVtb3RlX3Nsb3Qt Pm5hbWUsIHRydWUsIFJTX1RFTVBPUkFSWSwKKwkJCQkJCQkgIHJlbW90ZV9zbG90LT50d29fcGhh c2UsCisJCQkJCQkJICBmYWxzZSAvKiBmYWlsb3ZlciAqLyAsCisJCQkJCQkJICB0cnVlIC8qIHN5 bmNlZCAqLyApOworCisJCS8qIEZvciBzaG9ydGVyIGxpbmVzLiAqLworCQlzbG90ID0gTXlSZXBs aWNhdGlvblNsb3Q7CisKKwkJLyoKKwkJICogV2UgZG9uJ3Qgd2FudCBhbnkgY29tcGxpY2F0ZWQg Y29kZSB3aGlsZSBob2xkaW5nIGEgc3BpbmxvY2ssIHNvIGRvCisJCSAqIG5hbWVzdHJjcHkoKSBh bmQgZ2V0X2RhdGFiYXNlX29pZCgpIG91dHNpZGUuCisJCSAqLworCQluYW1lc3RyY3B5KCZwbHVn aW5fbmFtZSwgcmVtb3RlX3Nsb3QtPnBsdWdpbik7CisJCWRiaWQgPSBnZXRfZGF0YWJhc2Vfb2lk KHJlbW90ZV9zbG90LT5kYXRhYmFzZSwgZmFsc2UpOworCisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xv dC0+bXV0ZXgpOworCQlzbG90LT5kYXRhLmRhdGFiYXNlID0gZGJpZDsKKwkJc2xvdC0+ZGF0YS5w bHVnaW4gPSBwbHVnaW5fbmFtZTsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisK KwkJcmVzZXJ2ZV93YWxfZm9yX3Nsb3QocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKTsKKworCQlM V0xvY2tBY3F1aXJlKFByb2NBcnJheUxvY2ssIExXX0VYQ0xVU0lWRSk7CisJCXhtaW5faG9yaXpv biA9IEdldE9sZGVzdFNhZmVEZWNvZGluZ1RyYW5zYWN0aW9uSWQodHJ1ZSk7CisJCVNwaW5Mb2Nr QWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzbG90LT5lZmZlY3RpdmVfY2F0YWxvZ194bWluID0g eG1pbl9ob3Jpem9uOworCQlzbG90LT5kYXRhLmNhdGFsb2dfeG1pbiA9IHhtaW5faG9yaXpvbjsK KwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCVJlcGxpY2F0aW9uU2xvdHNDb21w dXRlUmVxdWlyZWRYbWluKHRydWUpOworCQlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2spOwor CisJCSh2b2lkKSB1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChyZW1vdGVfc2xvdCk7CisJCXNsb3Rf dXBkYXRlZCA9IHRydWU7CisJfQorCisJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCisJcmV0 dXJuIHNsb3RfdXBkYXRlZDsKK30KKworLyoKKyAqIE1hcHMgdGhlIHBnX3JlcGxpY2F0aW9uX3Ns b3RzLmNvbmZsaWN0X3JlYXNvbiB0ZXh0IHZhbHVlIHRvCisgKiBSZXBsaWNhdGlvblNsb3RJbnZh bGlkYXRpb25DYXVzZSBlbnVtIHZhbHVlCisgKi8KK3N0YXRpYyBSZXBsaWNhdGlvblNsb3RJbnZh bGlkYXRpb25DYXVzZQorZ2V0X3Nsb3RfaW52YWxpZGF0aW9uX2NhdXNlKGNoYXIgKmNvbmZsaWN0 X3JlYXNvbikKK3sKKwlBc3NlcnQoY29uZmxpY3RfcmVhc29uKTsKKworCWlmIChzdHJjbXAoY29u ZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQpID09IDApCisJCXJldHVy biBSU19JTlZBTF9XQUxfUkVNT1ZFRDsKKwllbHNlIGlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29u LCBTTE9UX0lOVkFMX0hPUklaT05fVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJTX0lOVkFMX0hPUkla T047CisJZWxzZSBpZiAoc3RyY21wKGNvbmZsaWN0X3JlYXNvbiwgU0xPVF9JTlZBTF9XQUxfTEVW RUxfVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJTX0lOVkFMX1dBTF9MRVZFTDsKKwllbHNlCisJCUFz c2VydCgwKTsKKworCS8qIEtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwlyZXR1cm4gUlNfSU5WQUxf Tk9ORTsKK30KKworLyoKKyAqIFN5bmNocm9uaXplIHNsb3RzLgorICoKKyAqIEdldHMgdGhlIGZh aWxvdmVyIGxvZ2ljYWwgc2xvdHMgaW5mbyBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciBhbmQgdXBk YXRlcworICogdGhlIHNsb3RzIGxvY2FsbHkuIENyZWF0ZXMgdGhlIHNsb3RzIGlmIG5vdCBwcmVz ZW50IG9uIHRoZSBzdGFuZGJ5LgorICoKKyAqIFJldHVybnMgVFJVRSBpZiBhbnkgb2YgdGhlIHNs b3RzIGdldHMgdXBkYXRlZCBpbiB0aGlzIHN5bmMtY3ljbGUuCisgKi8KK3N0YXRpYyBib29sCitz eW5jaHJvbml6ZV9zbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKyNkZWZpbmUgU0xP VFNZTkNfQ09MVU1OX0NPVU5UIDgKKwlPaWQJCQlzbG90Um93W1NMT1RTWU5DX0NPTFVNTl9DT1VO VF0gPSB7VEVYVE9JRCwgVEVYVE9JRCwgTFNOT0lELAorCUxTTk9JRCwgWElET0lELCBCT09MT0lE LCBURVhUT0lELCBURVhUT0lEfTsKKworCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwlUdXBsZVRh YmxlU2xvdCAqdHVwc2xvdDsKKwlTdHJpbmdJbmZvRGF0YSBzOworCUxpc3QJICAgKnJlbW90ZV9z bG90X2xpc3QgPSBOSUw7CisJYm9vbAkJc29tZV9zbG90X3VwZGF0ZWQgPSBmYWxzZTsKKwlYTG9n UmVjUHRyCWxhdGVzdFdhbEVuZDsKKworCS8qCisJICogVGhlIHByaW1hcnlfc2xvdF9uYW1lIGlz IG5vdCBzZXQgeWV0IG9yIFdBTHMgbm90IHJlY2VpdmVkIHlldC4KKwkgKiBTeW5jaHJvbml6YXRp b24gaXMgbm90IHBvc3NpYmxlIGlmIHRoZSB3YWxyZWNlaXZlciBpcyBub3Qgc3RhcnRlZC4KKwkg Ki8KKwlsYXRlc3RXYWxFbmQgPSBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQoKTsKKwlTcGluTG9ja0Fj cXVpcmUoJldhbFJjdi0+bXV0ZXgpOworCWlmICgoV2FsUmN2LT5zbG90bmFtZVswXSA9PSAnXDAn KSB8fAorCQlYTG9nUmVjUHRySXNJbnZhbGlkKGxhdGVzdFdhbEVuZCkpCisJeworCQlTcGluTG9j a1JlbGVhc2UoJldhbFJjdi0+bXV0ZXgpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCVNwaW5Mb2Nr UmVsZWFzZSgmV2FsUmN2LT5tdXRleCk7CisKKwkvKiBUaGUgc3lzY2FjaGUgYWNjZXNzIGluIHdh bHJjdl9leGVjKCkgbmVlZHMgYSB0cmFuc2FjdGlvbiBlbnYuICovCisJU3RhcnRUcmFuc2FjdGlv bkNvbW1hbmQoKTsKKworCWluaXRTdHJpbmdJbmZvKCZzKTsKKworCS8qIENvbnN0cnVjdCBxdWVy eSB0byBmZXRjaCBzbG90cyB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuICovCisJYXBwZW5kU3RyaW5n SW5mbygmcywKKwkJCQkJICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIGNvbmZpcm1lZF9mbHVz aF9sc24sIgorCQkJCQkgIiByZXN0YXJ0X2xzbiwgY2F0YWxvZ194bWluLCB0d29fcGhhc2UsIgor CQkJCQkgIiBkYXRhYmFzZSwgY29uZmxpY3RfcmVhc29uIgorCQkJCQkgIiBGUk9NIHBnX2NhdGFs b2cucGdfcmVwbGljYXRpb25fc2xvdHMiCisJCQkJCSAiIFdIRVJFIGZhaWxvdmVyIGFuZCBOT1Qg dGVtcG9yYXJ5Iik7CisKKwkvKiBFeGVjdXRlIHRoZSBxdWVyeSAqLworCXJlcyA9IHdhbHJjdl9l eGVjKHdyY29ubiwgcy5kYXRhLCBTTE9UU1lOQ19DT0xVTU5fQ09VTlQsIHNsb3RSb3cpOworCXBm cmVlKHMuZGF0YSk7CisKKwlpZiAocmVzLT5zdGF0dXMgIT0gV0FMUkNWX09LX1RVUExFUykKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQllcnJtc2coImNvdWxkIG5vdCBmZXRjaCBmYWlsb3ZlciBsb2dp Y2FsIHNsb3RzIGluZm8gZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwKKwkJCQkJICAgcmVz LT5lcnIpKTsKKworCS8qIENvbnN0cnVjdCB0aGUgcmVtb3RlX3Nsb3QgdHVwbGUgYW5kIHN5bmNo cm9uaXplIGVhY2ggc2xvdCBsb2NhbGx5ICovCisJdHVwc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRh YmxlU2xvdChyZXMtPnR1cGxlZGVzYywgJlRUU09wc01pbmltYWxUdXBsZSk7CisJd2hpbGUgKHR1 cGxlc3RvcmVfZ2V0dHVwbGVzbG90KHJlcy0+dHVwbGVzdG9yZSwgdHJ1ZSwgZmFsc2UsIHR1cHNs b3QpKQorCXsKKwkJYm9vbAkJaXNudWxsOworCQlSZW1vdGVTbG90ICpyZW1vdGVfc2xvdCA9IHBh bGxvYzAoc2l6ZW9mKFJlbW90ZVNsb3QpKTsKKwkJRGF0dW0JCWQ7CisKKwkJcmVtb3RlX3Nsb3Qt Pm5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNu dWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+cGx1Z2luID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwgMiwgJmlzbnVsbCkpOworCQlB c3NlcnQoIWlzbnVsbCk7CisKKwkJLyoKKwkJICogSXQgaXMgcG9zc2libGUgdG8gZ2V0IG51bGwg dmFsdWVzIGZvciBMU04gYW5kIFhtaW4gaWYgc2xvdCBpcworCQkgKiBpbnZhbGlkYXRlZCBvbiB0 aGUgcHJpbWFyeSBzZXJ2ZXIsIHNvIGhhbmRsZSBhY2NvcmRpbmdseS4KKwkJICovCisJCWQgPSBz bG90X2dldGF0dHIodHVwc2xvdCwgMywgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5jb25maXJt ZWRfbHNuID0gaXNudWxsID8gSW52YWxpZFhMb2dSZWNQdHIgOgorCQkJRGF0dW1HZXRMU04oZCk7 CisKKwkJZCA9IHNsb3RfZ2V0YXR0cih0dXBzbG90LCA0LCAmaXNudWxsKTsKKwkJcmVtb3RlX3Ns b3QtPnJlc3RhcnRfbHNuID0gaXNudWxsID8gSW52YWxpZFhMb2dSZWNQdHIgOiBEYXR1bUdldExT TihkKTsKKworCQlkID0gc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDUsICZpc251bGwpOworCQlyZW1v dGVfc2xvdC0+Y2F0YWxvZ194bWluID0gaXNudWxsID8gSW52YWxpZFRyYW5zYWN0aW9uSWQgOgor CQkJRGF0dW1HZXRUcmFuc2FjdGlvbklkKGQpOworCisJCXJlbW90ZV9zbG90LT50d29fcGhhc2Ug PSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDYsICZpc251bGwpKTsKKwkJQXNz ZXJ0KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5kYXRhYmFzZSA9IFRleHREYXR1bUdldENT dHJpbmcoc2xvdF9nZXRhdHRyKHR1cHNsb3QsCisJCQkJCQkJCQkJCQkJCQkJIDcsICZpc251bGwp KTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCWQgPSBzbG90X2dldGF0dHIodHVwc2xvdCwgOCwg JmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9IGlzbnVsbCA/IFJTX0lOVkFM X05PTkUgOgorCQkJZ2V0X3Nsb3RfaW52YWxpZGF0aW9uX2NhdXNlKFRleHREYXR1bUdldENTdHJp bmcoZCkpOworCisJCS8qIENyZWF0ZSBsaXN0IG9mIHJlbW90ZSBzbG90cyAqLworCQlyZW1vdGVf c2xvdF9saXN0ID0gbGFwcGVuZChyZW1vdGVfc2xvdF9saXN0LCByZW1vdGVfc2xvdCk7CisKKwkJ RXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJfQorCisJLyogRHJvcCBsb2NhbCBzbG90cyB0aGF0 IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN5bmNlZC4gKi8KKwlkcm9wX29ic29sZXRlX3Nsb3RzKHJl bW90ZV9zbG90X2xpc3QpOworCisJLyogTm93IHN5bmMgdGhlIHNsb3RzIGxvY2FsbHkgKi8KKwlm b3JlYWNoX3B0cihSZW1vdGVTbG90LCByZW1vdGVfc2xvdCwgcmVtb3RlX3Nsb3RfbGlzdCkKKwkJ c29tZV9zbG90X3VwZGF0ZWQgfD0gc3luY2hyb25pemVfb25lX3Nsb3Qod3Jjb25uLCByZW1vdGVf c2xvdCk7CisKKwkvKiBXZSBhcmUgZG9uZSwgZnJlZSByZW1vdGVfc2xvdF9saXN0IGVsZW1lbnRz ICovCisJbGlzdF9mcmVlX2RlZXAocmVtb3RlX3Nsb3RfbGlzdCk7CisKKwl3YWxyY3ZfY2xlYXJf cmVzdWx0KHJlcyk7CisKKwlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKworCXJldHVybiBz b21lX3Nsb3RfdXBkYXRlZDsKK30KKworLyoKKyAqIENoZWNrcyB0aGUgcHJpbWFyeSBzZXJ2ZXIg aW5mby4KKyAqCisgKiBVc2luZyB0aGUgc3BlY2lmaWVkIHByaW1hcnkgc2VydmVyIGNvbm5lY3Rp b24sIGNoZWNrIHdoZXRoZXIgd2UgYXJlIGEKKyAqIGNhc2NhZGluZyBzdGFuZGJ5LiBJdCBhbHNv IHZhbGlkYXRlcyBwcmltYXJ5X3Nsb3RfbmFtZSBmb3Igbm9uLWNhc2NhZGluZworICogc3RhbmRi eXMuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25u ICp3cmNvbm4sIGJvb2wgKmFtX2Nhc2NhZGluZ19zdGFuZGJ5KQoreworI2RlZmluZSBQUklNQVJZ X0lORk9fT1VUUFVUX0NPTF9DT1VOVCAyCisJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOworCU9pZAkJ CXNsb3RSb3dbUFJJTUFSWV9JTkZPX09VVFBVVF9DT0xfQ09VTlRdID0ge0JPT0xPSUQsIEJPT0xP SUR9OworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlib29sCQlpc251bGw7CisJVHVwbGVUYWJsZVNs b3QgKnR1cHNsb3Q7CisJYm9vbAkJdmFsaWQ7CisJYm9vbAkJcmVtb3RlX2luX3JlY292ZXJ5Owor CisJLyogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiB3YWxyY3ZfZXhlYygpIG5lZWRzIGEgdHJhbnNh Y3Rpb24gZW52LiAqLworCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlBc3NlcnQoYW1f Y2FzY2FkaW5nX3N0YW5kYnkgIT0gTlVMTCk7CisKKwkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBm YWxzZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgY2FzY2FkaW5nICovCisKKwlpbml0U3RyaW5n SW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCisJCQkJCSAiU0VMRUNUIHBnX2lz X2luX3JlY292ZXJ5KCksIGNvdW50KCopID0gMSIKKwkJCQkJICIgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cyIKKwkJCQkJICIgV0hFUkUgc2xvdF90eXBlPSdwaHlzaWNhbCcgQU5EIHNsb3RfbmFt ZT0lcyIsCisJCQkJCSBxdW90ZV9saXRlcmFsX2NzdHIoUHJpbWFyeVNsb3ROYW1lKSk7CisKKwly ZXMgPSB3YWxyY3ZfZXhlYyh3cmNvbm4sIGNtZC5kYXRhLCBQUklNQVJZX0lORk9fT1VUUFVUX0NP TF9DT1VOVCwgc2xvdFJvdyk7CisJcGZyZWUoY21kLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVz ICE9IFdBTFJDVl9PS19UVVBMRVMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3Vs ZCBub3QgZmV0Y2ggcHJpbWFyeV9zbG90X25hbWUgXCIlc1wiIGluZm8gZnJvbSB0aGUgcHJpbWFy eSBzZXJ2ZXI6ICVzIiwKKwkJCQkJICAgUHJpbWFyeVNsb3ROYW1lLCByZXMtPmVyciksCisJCQkJ ZXJyaGludCgiQ2hlY2sgaWYgXCJwcmltYXJ5X3Nsb3RfbmFtZVwiIGlzIGNvbmZpZ3VyZWQgY29y cmVjdGx5LiIpKTsKKworCXR1cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50 dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFsVHVwbGUpOworCWlmICghdHVwbGVzdG9yZV9nZXR0dXBs ZXNsb3QocmVzLT50dXBsZXN0b3JlLCB0cnVlLCBmYWxzZSwgdHVwc2xvdCkpCisJCWVsb2coRVJS T1IsCisJCQkgImZhaWxlZCB0byBmZXRjaCB0dXBsZSBmb3IgdGhlIHByaW1hcnkgc2VydmVyIHNs b3Qgc3BlY2lmaWVkIGJ5IFwicHJpbWFyeV9zbG90X25hbWVcIiIpOworCisJcmVtb3RlX2luX3Jl Y292ZXJ5ID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNudWxsKSk7 CisJQXNzZXJ0KCFpc251bGwpOworCisJaWYgKHJlbW90ZV9pbl9yZWNvdmVyeSkKKwl7CisJCS8q IE5vIG5lZWQgdG8gY2hlY2sgZnVydGhlciwganVzdCBzZXQgYW1fY2FzY2FkaW5nX3N0YW5kYnkg dG8gdHJ1ZSAqLworCQkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSB0cnVlOworCX0KKwllbHNlCisJ eworCQkvKiBXZSBhcmUgYSBub3JtYWwgc3RhbmRieSAqLworCQl2YWxpZCA9IERhdHVtR2V0Qm9v bChzbG90X2dldGF0dHIodHVwc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7 CisKKwkJaWYgKCF2YWxpZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNs b3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJLyogdHJh bnNsYXRvcjogc2Vjb25kICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQkJZXJyZGV0 YWlsKCJUaGUgcHJpbWFyeSBzZXJ2ZXIgc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGJ5IgorCQkJCQkJ CSAgIiBcIiVzXCIgaXMgbm90IHZhbGlkLiIsCisJCQkJCQkJICBQcmltYXJ5U2xvdE5hbWUsICJw cmltYXJ5X3Nsb3RfbmFtZSIpKTsKKwl9CisKKwlFeGVjQ2xlYXJUdXBsZSh0dXBzbG90KTsKKwl3 YWxyY3ZfY2xlYXJfcmVzdWx0KHJlcyk7CisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7Cit9 CisKKy8qCisgKiBDaGVjayB0aGF0IGFsbCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBzeW5jaHJv bml6YXRpb24gYXJlIHNldAorICogYXBwcm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBhbiBFUlJP Ui4KKyAqCisgKiBJZiBhbGwgY2hlY2tzIHBhc3MsIGV4dHJhY3RzIHRoZSBkYm5hbWUgZnJvbSB0 aGUgcHJpbWFyeV9jb25uaW5mbyBHVUMgYW5kCisgKiByZXR1cm5zIGl0LgorICovCitzdGF0aWMg Y2hhciAqCit2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKHZvaWQpCit7CisJY2hh cgkgICAqZGJuYW1lOworCisJLyogU2FuaXR5IGNoZWNrLiAqLworCUFzc2VydChlbmFibGVfc3lu Y3Nsb3QpOworCisJLyoKKwkgKiBBIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QocHJpbWFyeV9z bG90X25hbWUpIGlzIHJlcXVpcmVkIG9uIHRoZQorCSAqIHByaW1hcnkgdG8gZW5zdXJlIHRoYXQg dGhlIHJvd3MgbmVlZGVkIGJ5IHRoZSBzdGFuZGJ5IGFyZSBub3QgcmVtb3ZlZAorCSAqIGFmdGVy IHJlc3RhcnRpbmcsIHNvIHRoYXQgdGhlIHN5bmNocm9uaXplZCBzbG90IG9uIHRoZSBzdGFuZGJ5 IHdpbGwgbm90CisJICogYmUgaW52YWxpZGF0ZWQuCisJICovCisJaWYgKFByaW1hcnlTbG90TmFt ZSA9PSBOVUxMIHx8IHN0cmNtcChQcmltYXJ5U2xvdE5hbWUsICIiKSA9PSAwKQorCQllcmVwb3J0 KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJ CQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBj b25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiXCIlc1wiIG11c3QgYmUgZGVmaW5lZC4iLCAi cHJpbWFyeV9zbG90X25hbWUiKSk7CisKKwkvKgorCSAqIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG11 c3QgYmUgZW5hYmxlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgcGh5c2ljYWwKKwkgKiByZXBsaWNh dGlvbiBzbG90LCB3aGljaCBhbGxvd3MgaW5mb3JtaW5nIHRoZSBwcmltYXJ5IGFib3V0IHRoZSB4 bWluIGFuZAorCSAqIGNhdGFsb2dfeG1pbiB2YWx1ZXMgb24gdGhlIHN0YW5kYnkuCisJICovCisJ aWYgKCFob3Rfc3RhbmRieV9mZWVkYmFjaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNs YXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBm cm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJ CWVycmhpbnQoIlwiJXNcIiBtdXN0IGJlIGVuYWJsZWQuIiwgImhvdF9zdGFuZGJ5X2ZlZWRiYWNr IikpOworCisJLyoKKwkgKiBMb2dpY2FsIGRlY29kaW5nIHJlcXVpcmVzIHdhbF9sZXZlbCA+PSBs b2dpY2FsIGFuZCB3ZSBjdXJyZW50bHkgb25seQorCSAqIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xv dHMuCisJICovCisJaWYgKHdhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQllcmVwb3J0 KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJ CQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBj b25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiXCJ3YWxfbGV2ZWxcIiBtdXN0IGJlID49IGxv Z2ljYWwuIikpOworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBpcyByZXF1aXJlZCB0 byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKKwkgKiBnZXR0aW5nIHNsb3RzIGluZm9y bWF0aW9uLgorCSAqLworCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8fCBzdHJjbXAoUHJp bWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRv cjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9t IHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVy cmhpbnQoIlwiJXNcIiBtdXN0IGJlIGRlZmluZWQuIiwgInByaW1hcnlfY29ubmluZm8iKSk7CisK KwkvKgorCSAqIFRoZSBzbG90IHN5bmMgd29ya2VyIG5lZWRzIGEgZGF0YWJhc2UgY29ubmVjdGlv biBmb3Igd2FscmN2X2V4ZWMgdG8KKwkgKiB3b3JrLgorCSAqLworCWRibmFtZSA9IHdhbHJjdl9n ZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oUHJpbWFyeUNvbm5JbmZvKTsKKwlpZiAoZGJuYW1lID09 IE5VTEwpCisJCWVyZXBvcnQoRVJST1IsCisKKwkJLyoKKwkJICogdHJhbnNsYXRvcjogJ2RibmFt ZScgaXMgYSBzcGVjaWZpYyBvcHRpb247ICVzIGlzIGEgR1VDIHZhcmlhYmxlCisJCSAqIG5hbWUK KwkJICovCisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVl IHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiJ2RibmFtZScgbXVzdCBiZSBz cGVjaWZpZWQgaW4gXCIlc1wiLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCisJcmV0dXJuIGRi bmFtZTsKK30KKworLyoKKyAqIFJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlLgorICoKKyAqIElmIGFu eSBvZiB0aGUgc2xvdCBzeW5jIEdVQ3MgaGF2ZSBjaGFuZ2VkLCBleGl0IHRoZSB3b3JrZXIgYW5k CisgKiBsZXQgaXQgZ2V0IHJlc3RhcnRlZCBieSB0aGUgcG9zdG1hc3Rlci4KKyAqLworc3RhdGlj IHZvaWQKK3Nsb3RzeW5jX3JlcmVhZF9jb25maWcodm9pZCkKK3sKKwljaGFyCSAgICpvbGRfcHJp bWFyeV9jb25uaW5mbyA9IHBzdHJkdXAoUHJpbWFyeUNvbm5JbmZvKTsKKwljaGFyCSAgICpvbGRf cHJpbWFyeV9zbG90bmFtZSA9IHBzdHJkdXAoUHJpbWFyeVNsb3ROYW1lKTsKKwlib29sCQlvbGRf aG90X3N0YW5kYnlfZmVlZGJhY2sgPSBob3Rfc3RhbmRieV9mZWVkYmFjazsKKwlib29sCQljb25u aW5mb19jaGFuZ2VkOworCWJvb2wJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZDsKKworCUNvbmZp Z1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsK KworCWNvbm5pbmZvX2NoYW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfY29ubmluZm8sIFByaW1h cnlDb25uSW5mbykgIT0gMDsKKwlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQgPSBzdHJjbXAob2xk X3ByaW1hcnlfc2xvdG5hbWUsIFByaW1hcnlTbG90TmFtZSkgIT0gMDsKKworCWlmIChjb25uaW5m b19jaGFuZ2VkIHx8CisJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZCB8fAorCQkob2xkX2hvdF9z dGFuZGJ5X2ZlZWRiYWNrICE9IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrKSkKKwl7CisJCWVyZXBvcnQo TE9HLAorCQkJCWVycm1zZygic2xvdCBzeW5jIHdvcmtlciB3aWxsIHJlc3RhcnQgYmVjYXVzZSBv ZiBhIHBhcmFtZXRlciBjaGFuZ2UiKSk7CisKKwkJLyogVGhlIGV4aXQgY29kZSAxIHdpbGwgbWFr ZSBwb3N0bWFzdGVyIHJlc3RhcnQgdGhpcyB3b3JrZXIgKi8KKwkJcHJvY19leGl0KDEpOworCX0K KworCXBmcmVlKG9sZF9wcmltYXJ5X2Nvbm5pbmZvKTsKKwlwZnJlZShvbGRfcHJpbWFyeV9zbG90 bmFtZSk7Cit9CisKKy8qCisgKiBJbnRlcnJ1cHQgaGFuZGxlciBmb3IgbWFpbiBsb29wIG9mIHNs b3Qgc3luYyB3b3JrZXIuCisgKi8KK3N0YXRpYyB2b2lkCitQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1 cHRzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQoreworCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7 CisKKwlpZiAoU2h1dGRvd25SZXF1ZXN0UGVuZGluZykKKwl7CisJCXdhbHJjdl9kaXNjb25uZWN0 KHdyY29ubik7CisJCWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBz eW5jIHdvcmtlciBpcyBzaHV0dGluZyBkb3duIG9uIHJlY2VpdmluZyBTSUdJTlQiKSk7CisJCXBy b2NfZXhpdCgwKTsKKwl9CisKKwlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKKwkJc2xvdHN5bmNf cmVyZWFkX2NvbmZpZygpOworfQorCisvKgorICogQ2xlYW51cCBmdW5jdGlvbiBmb3Igc2xvdHN5 bmMgd29ya2VyLgorICoKKyAqIENhbGxlZCBvbiBzbG90c3luYyB3b3JrZXIgZXhpdC4KKyAqLwor c3RhdGljIHZvaWQKK3Nsb3RzeW5jX3dvcmtlcl9vbmV4aXQoaW50IGNvZGUsIERhdHVtIGFyZykK K3sKKwlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJU2xvdFN5bmNX b3JrZXItPnBpZCA9IEludmFsaWRQaWQ7CisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtl ci0+bXV0ZXgpOworfQorCisvKgorICogU2xlZXAgZm9yIGxvbmcgZW5vdWdoIHRoYXQgd2UgYmVs aWV2ZSBpdCdzIGxpa2VseSB0aGF0IHRoZSBzbG90cyBvbiBwcmltYXJ5CisgKiBnZXQgdXBkYXRl ZC4KKyAqCisgKiBJZiB0aGVyZSBpcyBubyBzbG90IGFjdGl2aXR5IHRoZSB3YWl0IHRpbWUgYmV0 d2VlbiBzeW5jLWN5Y2xlcyB3aWxsIGRvdWJsZQorICogKHRvIGEgbWF4aW11bSBvZiAzMHMpLiBJ ZiB0aGVyZSBpcyBzb21lIHNsb3QgYWN0aXZpdHkgdGhlIHdhaXQgdGltZSBiZXR3ZWVuCisgKiBz eW5jLWN5Y2xlcyBpcyByZXNldCB0byB0aGUgbWluaW11bSAoMjAwbXMpLgorICovCitzdGF0aWMg dm9pZAord2FpdF9mb3Jfc2xvdF9hY3Rpdml0eShib29sIHNvbWVfc2xvdF91cGRhdGVkLCBib29s IGFtX2Nhc2NhZGluZ19zdGFuZGJ5KQoreworCWludAkJCXJjOworCisJaWYgKGFtX2Nhc2NhZGlu Z19zdGFuZGJ5KQorCXsKKwkJLyoKKwkJICogU2xvdCBzeW5jaHJvbml6YXRpb24gaXMgY3VycmVu dGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5nCisJCSAqIHN0YW5kYnkuIFNvIGlmIHdlIGFy ZSBvbiB0aGUgY2FzY2FkaW5nIHN0YW5kYnksIHdlIHdpbGwgc2tpcCB0aGUKKwkJICogc3luYyBh bmQgdGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdlIGNoZWNrIGFnYWluIHdoZXRoZXIgd2UgYXJl CisJCSAqIHN0aWxsIGNhc2NhZGluZyBzdGFuZGJ5IG9yIG5vdC4KKwkJICovCisJCXNsZWVwX21z ID0gTUFYX1dPUktFUl9OQVBUSU1FX01TOworCX0KKwllbHNlIGlmICghc29tZV9zbG90X3VwZGF0 ZWQpCisJeworCQkvKgorCQkgKiBObyBzbG90cyB3ZXJlIHVwZGF0ZWQsIHNvIGRvdWJsZSB0aGUg c2xlZXAgdGltZSwgYnV0IG5vdCBiZXlvbmQgdGhlCisJCSAqIG1heGltdW0gYWxsb3dhYmxlIHZh bHVlLgorCQkgKi8KKwkJc2xlZXBfbXMgPSBNaW4oc2xlZXBfbXMgKiAyLCBNQVhfV09SS0VSX05B UFRJTUVfTVMpOworCX0KKwllbHNlCisJeworCQkvKgorCQkgKiBTb21lIHNsb3RzIHdlcmUgdXBk YXRlZCBzaW5jZSB0aGUgbGFzdCBzbGVlcCwgc28gcmVzZXQgdGhlIHNsZWVwCisJCSAqIHRpbWUu CisJCSAqLworCQlzbGVlcF9tcyA9IE1JTl9XT1JLRVJfTkFQVElNRV9NUzsKKwl9CisKKwlyYyA9 IFdhaXRMYXRjaChNeUxhdGNoLAorCQkJCSAgIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBX TF9FWElUX09OX1BNX0RFQVRILAorCQkJCSAgIHNsZWVwX21zLAorCQkJCSAgIFdBSVRfRVZFTlRf UkVQTF9TTE9UU1lOQ19NQUlOKTsKKworCWlmIChyYyAmIFdMX0xBVENIX1NFVCkKKwkJUmVzZXRM YXRjaChNeUxhdGNoKTsKK30KKworLyoKKyAqIFRoZSBtYWluIGxvb3Agb2Ygb3VyIHdvcmtlciBw cm9jZXNzLgorICoKKyAqIEl0IGNvbm5lY3RzIHRvIHRoZSBwcmltYXJ5IHNlcnZlciwgZmV0Y2hl cyBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzCisgKiBpbmZvcm1hdGlvbiBwZXJpb2RpY2FsbHkgaW4g b3JkZXIgdG8gY3JlYXRlIGFuZCBzeW5jIHRoZSBzbG90cy4KKyAqLwordm9pZAorUmVwbFNsb3RT eW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKK3sKKwlXYWxSZWNlaXZlckNvbm4gKndyY29u biA9IE5VTEw7CisJY2hhcgkgICAqZGJuYW1lOworCWJvb2wJCWFtX2Nhc2NhZGluZ19zdGFuZGJ5 OworCWNoYXIJICAgKmVycjsKKworCWVyZXBvcnQoTE9HLCBlcnJtc2coInJlcGxpY2F0aW9uIHNs b3Qgc3luYyB3b3JrZXIgc3RhcnRlZCIpKTsKKworCW9uX3NobWVtX2V4aXQoc2xvdHN5bmNfd29y a2VyX29uZXhpdCwgKERhdHVtKSAwKTsKKworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3Jr ZXItPm11dGV4KTsKKworCUFzc2VydChTbG90U3luY1dvcmtlci0+cGlkID09IEludmFsaWRQaWQp OworCisJLyoKKwkgKiBTdGFydHVwIHByb2Nlc3Mgc2lnbmFsZWQgdGhlIHNsb3Qgc3luYyB3b3Jr ZXIgdG8gc3RvcCwgc28gaWYgbWVhbndoaWxlCisJICogcG9zdG1hc3RlciBlbmRlZCB1cCBzdGFy dGluZyB0aGUgd29ya2VyIGFnYWluLCBleGl0LgorCSAqLworCWlmIChTbG90U3luY1dvcmtlci0+ c3RvcFNpZ25hbGVkKQorCXsKKwkJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0 ZXgpOworCQlwcm9jX2V4aXQoMCk7CisJfQorCisJLyogQWR2ZXJ0aXNlIG91ciBQSUQgc28gdGhh dCB0aGUgc3RhcnR1cCBwcm9jZXNzIGNhbiBraWxsIHVzIG9uIHByb21vdGlvbiAqLworCVNsb3RT eW5jV29ya2VyLT5waWQgPSBNeVByb2NQaWQ7CisKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5j V29ya2VyLT5tdXRleCk7CisKKwkvKiBTZXR1cCBzaWduYWwgaGFuZGxpbmcgKi8KKwlwcXNpZ25h bChTSUdIVVAsIFNpZ25hbEhhbmRsZXJGb3JDb25maWdSZWxvYWQpOworCXBxc2lnbmFsKFNJR0lO VCwgU2lnbmFsSGFuZGxlckZvclNodXRkb3duUmVxdWVzdCk7CisJcHFzaWduYWwoU0lHVEVSTSwg ZGllKTsKKwlCYWNrZ3JvdW5kV29ya2VyVW5ibG9ja1NpZ25hbHMoKTsKKworCS8qIExvYWQgdGhl IGxpYnBxLXNwZWNpZmljIGZ1bmN0aW9ucyAqLworCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZl ciIsIGZhbHNlKTsKKworCWRibmFtZSA9IHZhbGlkYXRlX3BhcmFtZXRlcnNfYW5kX2dldF9kYm5h bWUoKTsKKworCS8qCisJICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGJ5IHVz ZXIgaW4gcHJpbWFyeV9jb25uaW5mby4gV2UgbmVlZAorCSAqIGEgZGF0YWJhc2UgY29ubmVjdGlv biBmb3Igd2FscmN2X2V4ZWMgdG8gd29yay4gUGxlYXNlIHNlZSBjb21tZW50cyBhdG9wCisJICog bGlicHFyY3ZfZXhlYy4KKwkgKi8KKwlCYWNrZ3JvdW5kV29ya2VySW5pdGlhbGl6ZUNvbm5lY3Rp b24oZGJuYW1lLCBOVUxMLCAwKTsKKworCS8qCisJICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9u IHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3Igc2xvdHMKKwkgKiBzeW5jaHJvbml6YXRpb24uCisJ ICovCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoUHJpbWFyeUNvbm5JbmZvLCB0cnVlLCBmYWxz ZSwKKwkJCQkJCQljbHVzdGVyX25hbWVbMF0gPyBjbHVzdGVyX25hbWUgOiAic2xvdHN5bmN3b3Jr ZXIiLAorCQkJCQkJCSZlcnIpOworCWlmICghd3Jjb25uKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CWVycmNvZGUoRVJSQ09ERV9DT05ORUNUSU9OX0ZBSUxVUkUpLAorCQkJCWVycm1zZygiY291bGQg bm90IGNvbm5lY3QgdG8gdGhlIHByaW1hcnkgc2VydmVyOiAlcyIsIGVycikpOworCisJLyoKKwkg KiBVc2luZyB0aGUgc3BlY2lmaWVkIHByaW1hcnkgc2VydmVyIGNvbm5lY3Rpb24sIGNoZWNrIHdo ZXRoZXIgd2UgYXJlCisJICogY2FzY2FkaW5nIHN0YW5kYnkgYW5kIHZhbGlkYXRlcyBwcmltYXJ5 X3Nsb3RfbmFtZSBmb3IKKwkgKiBub24tY2FzY2FkaW5nLXN0YW5kYnlzLgorCSAqLworCWNoZWNr X3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisKKwkvKiBNYWlu IHdhaXQgbG9vcCAqLworCWZvciAoOzspCisJeworCQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9 IGZhbHNlOworCisJCVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMod3Jjb25uKTsKKworCQlpZiAo IWFtX2Nhc2NhZGluZ19zdGFuZGJ5KQorCQkJc29tZV9zbG90X3VwZGF0ZWQgPSBzeW5jaHJvbml6 ZV9zbG90cyh3cmNvbm4pOworCisJCXdhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoc29tZV9zbG90X3Vw ZGF0ZWQsIGFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKworCQkvKgorCQkgKiBJZiB0aGUgc3RhbmRi eSB3YXMgcHJvbW90ZWQgdGhlbiB3aGF0IHdhcyBwcmV2aW91c2x5IGEgY2FzY2FkaW5nCisJCSAq IHN0YW5kYnkgbWlnaHQgbm8gbG9uZ2VyIGJlIG9uZSwgc28gcmVjaGVjayBlYWNoIHRpbWUuCisJ CSAqLworCQlpZiAoYW1fY2FzY2FkaW5nX3N0YW5kYnkpCisJCQljaGVja19wcmltYXJ5X2luZm8o d3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCX0KKworCS8qCisJICogVGhlIHNsb3Qg c3luYyB3b3JrZXIgY2FuIG5vdCBnZXQgaGVyZSBiZWNhdXNlIGl0IHdpbGwgb25seSBzdG9wIHdo ZW4gaXQKKwkgKiByZWNlaXZlcyBhIFNJR0lOVCBmcm9tIHRoZSBzdGFydHVwIHByb2Nlc3MsIG9y IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IuCisJICovCisJQXNzZXJ0KGZhbHNlKTsKK30KKworLyoK KyAqIElzIGN1cnJlbnQgcHJvY2VzcyB0aGUgc2xvdCBzeW5jIHdvcmtlcj8KKyAqLworYm9vbAor SXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIodm9pZCkKK3sKKwlyZXR1cm4gU2xvdFN5bmNXb3JrZXIt PnBpZCA9PSBNeVByb2NQaWQ7Cit9CisKKy8qCisgKiBTaHV0IGRvd24gdGhlIHNsb3Qgc3luYyB3 b3JrZXIuCisgKi8KK3ZvaWQKK1NodXREb3duU2xvdFN5bmModm9pZCkKK3sKKwlTcGluTG9ja0Fj cXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisKKwlTbG90U3luY1dvcmtlci0+c3RvcFNp Z25hbGVkID0gdHJ1ZTsKKworCWlmIChTbG90U3luY1dvcmtlci0+cGlkID09IEludmFsaWRQaWQp CisJeworCQlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJCXJldHVy bjsKKwl9CisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCisJa2ls bChTbG90U3luY1dvcmtlci0+cGlkLCBTSUdJTlQpOworCisJLyogV2FpdCBmb3IgaXQgdG8gZGll ICovCisJZm9yICg7OykKKwl7CisJCWludAkJCXJjOworCisJCS8qIFdhaXQgYSBiaXQsIHdlIGRv bid0IGV4cGVjdCB0byBoYXZlIHRvIHdhaXQgbG9uZyAqLworCQlyYyA9IFdhaXRMYXRjaChNeUxh dGNoLAorCQkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9E RUFUSCwKKwkJCQkJICAgMTBMLCBXQUlUX0VWRU5UX0JHV09SS0VSX1NIVVRET1dOKTsKKworCQlp ZiAocmMgJiBXTF9MQVRDSF9TRVQpCisJCXsKKwkJCVJlc2V0TGF0Y2goTXlMYXRjaCk7CisJCQlD SEVDS19GT1JfSU5URVJSVVBUUygpOworCQl9CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3lu Y1dvcmtlci0+bXV0ZXgpOworCisJCS8qIElzIGl0IGdvbmU/ICovCisJCWlmIChTbG90U3luY1dv cmtlci0+cGlkID09IEludmFsaWRQaWQpCisJCQlicmVhazsKKworCQlTcGluTG9ja1JlbGVhc2Uo JlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJfQorCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3lu Y1dvcmtlci0+bXV0ZXgpOworfQorCisvKgorICogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgc2xv dCBzeW5jIHdvcmtlciBzaGFyZWQgbWVtb3J5CisgKi8KK3ZvaWQKK1Nsb3RTeW5jV29ya2VyU2ht ZW1Jbml0KHZvaWQpCit7CisJU2l6ZQkJc2l6ZTsKKwlib29sCQlmb3VuZDsKKworCXNpemUgPSBz aXplb2YoU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QpOworCXNpemUgPSBNQVhBTElHTihzaXplKTsK KworCVNsb3RTeW5jV29ya2VyID0gKFNsb3RTeW5jV29ya2VyQ3R4U3RydWN0ICopCisJCVNobWVt SW5pdFN0cnVjdCgiU2xvdCBTeW5jIFdvcmtlciBEYXRhIiwgc2l6ZSwgJmZvdW5kKTsKKworCWlm ICghZm91bmQpCisJeworCQltZW1zZXQoU2xvdFN5bmNXb3JrZXIsIDAsIHNpemUpOworCQlTbG90 U3luY1dvcmtlci0+cGlkID0gSW52YWxpZFBpZDsKKwkJU3BpbkxvY2tJbml0KCZTbG90U3luY1dv cmtlci0+bXV0ZXgpOworCX0KK30KKworLyoKKyAqIFJlZ2lzdGVyIHRoZSBiYWNrZ3JvdW5kIHdv cmtlciBmb3Igc2xvdHMgc3luY2hyb25pemF0aW9uIHByb3ZpZGVkCisgKiBlbmFibGVfc3luY3Ns b3QgaXMgT04uCisgKi8KK3ZvaWQKK1Nsb3RTeW5jV29ya2VyUmVnaXN0ZXIodm9pZCkKK3sKKwlC YWNrZ3JvdW5kV29ya2VyIGJndzsKKworCWlmICghZW5hYmxlX3N5bmNzbG90KQorCXsKKwkJZXJl cG9ydChMT0csCisJCQkJZXJybXNnKCJza2lwcGluZyBzbG90IHN5bmNocm9uaXphdGlvbiIpLAor CQkJCWVycmRldGFpbCgiXCJlbmFibGVfc3luY3Nsb3RcIiBpcyBkaXNhYmxlZC4iKSk7CisJCXJl dHVybjsKKwl9CisKKwltZW1zZXQoJmJndywgMCwgc2l6ZW9mKGJndykpOworCisJLyogV2UgbmVl ZCBkYXRhYmFzZSBjb25uZWN0aW9uIHdoaWNoIG5lZWRzIHNoYXJlZC1tZW1vcnkgYWNjZXNzIGFz IHdlbGwgKi8KKwliZ3cuYmd3X2ZsYWdzID0gQkdXT1JLRVJfU0hNRU1fQUNDRVNTIHwKKwkJQkdX T1JLRVJfQkFDS0VORF9EQVRBQkFTRV9DT05ORUNUSU9OOworCisJLyogU3RhcnQgYXMgc29vbiBh cyBhIGNvbnNpc3RlbnQgc3RhdGUgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5ICov CisJYmd3LmJnd19zdGFydF90aW1lID0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90 U3RhbmRieTsKKworCXNucHJpbnRmKGJndy5iZ3dfbGlicmFyeV9uYW1lLCBNQVhQR1BBVEgsICJw b3N0Z3JlcyIpOworCXNucHJpbnRmKGJndy5iZ3dfZnVuY3Rpb25fbmFtZSwgQkdXX01BWExFTiwg IlJlcGxTbG90U3luY1dvcmtlck1haW4iKTsKKwlzbnByaW50ZihiZ3cuYmd3X25hbWUsIEJHV19N QVhMRU4sCisJCQkgInJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIiKTsKKwlzbnByaW50Zihi Z3cuYmd3X3R5cGUsIEJHV19NQVhMRU4sCisJCQkgInNsb3Qgc3luYyB3b3JrZXIiKTsKKworCWJn dy5iZ3dfcmVzdGFydF90aW1lID0gQkdXX0RFRkFVTFRfUkVTVEFSVF9JTlRFUlZBTDsKKwliZ3cu Ymd3X25vdGlmeV9waWQgPSAwOworCWJndy5iZ3dfbWFpbl9hcmcgPSAoRGF0dW0pIDA7CisKKwlS ZWdpc3RlckJhY2tncm91bmRXb3JrZXIoJmJndyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5k ZXggZTcyYmY3YzA2ZC4uNTlhMTYwNmY5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtNDcs NiArNDcsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgog I2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxz ZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMu aCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTEwMyw3ICsxMDQsNiBAQCBpbnQJCQlt YXhfcmVwbGljYXRpb25fc2xvdHMgPSAxMDsgLyogdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGxp Y2F0aW9uCiAJCQkJCQkJCQkJICogc2xvdHMgKi8KIAogc3RhdGljIHZvaWQgUmVwbGljYXRpb25T bG90U2htZW1FeGl0KGludCBjb2RlLCBEYXR1bSBhcmcpOwotc3RhdGljIHZvaWQgUmVwbGljYXRp b25TbG90RHJvcEFjcXVpcmVkKHZvaWQpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJv cFB0cihSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwogCiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5jeSBm dW5jdGlvbnMgKi8KQEAgLTI1MCwxMSArMjUwLDEyIEBAIFJlcGxpY2F0aW9uU2xvdFZhbGlkYXRl TmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQgZWxldmVsKQogICogICAgIHVzZXIgd2lsbCBvbmx5 IGdldCBjb21taXQgcHJlcGFyZWQuCiAgKiBmYWlsb3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dzIHRo ZSBzbG90IHRvIGJlIHN5bmNlZCB0byBzdGFuZGJ5cyBzbwogICogICAgIHRoYXQgbG9naWNhbCBy ZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KKyAqIHN5bmNlZDogVHJ1 ZSBpZiB0aGUgc2xvdCBpcyBjcmVhdGVkIGJ5IGEgc2xvdHN5bmMgd29ya2VyLgogICovCiB2b2lk CiBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZp YywKIAkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwKLQkJCQkJ ICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlcikKKwkJCQkJICBib29sIHR3b19waGFzZSwg Ym9vbCBmYWlsb3ZlciwgYm9vbCBzeW5jZWQpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0g TlVMTDsKIAlpbnQJCQlpOwpAQCAtMzI1LDYgKzMyNiw3IEBAIFJlcGxpY2F0aW9uU2xvdENyZWF0 ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCXNsb3QtPmRhdGEudHdvX3Bo YXNlID0gdHdvX3BoYXNlOwogCXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxpZFhMb2dS ZWNQdHI7CiAJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCXNsb3QtPmRhdGEuc3lu Y2VkID0gc3luY2VkOwogCiAJLyogYW5kIHRoZW4gZGF0YSBvbmx5IHByZXNlbnQgaW4gc2hhcmVk IG1lbW9yeSAqLwogCXNsb3QtPmp1c3RfZGlydGllZCA9IGZhbHNlOwpAQCAtNjkwLDYgKzY5Miwx NiBAQCBSZXBsaWNhdGlvblNsb3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KQog CiAJUmVwbGljYXRpb25TbG90QWNxdWlyZShuYW1lLCBub3dhaXQpOwogCisJLyoKKwkgKiBEbyBu b3QgYWxsb3cgdXNlcnMgdG8gZHJvcCB0aGUgc2xvdHMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWlu ZyBzeW5jZWQKKwkgKiBmcm9tIHRoZSBwcmltYXJ5IHRvIHRoZSBzdGFuZGJ5LgorCSAqLworCWlm IChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5zeW5jZWQp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coImNhbm5vdCBkcm9wIHJlcGxpY2F0aW9uIHNs b3QgXCIlc1wiIiwgbmFtZSksCisJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcgc3lu Y2VkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpKTsKKwogCVJlcGxpY2F0aW9uU2xvdERyb3BB Y3F1aXJlZCgpOwogfQogCkBAIC03MDksMTUgKzcyMSwyOCBAQCBSZXBsaWNhdGlvblNsb3RBbHRl cihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKQogCQkJCWVycm1zZygiY2Fubm90IHVz ZSAlcyB3aXRoIGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCiAJCQkJCSAgICJBTFRFUl9S RVBMSUNBVElPTl9TTE9UIikpOwogCi0JLyoKLQkgKiBEbyBub3QgYWxsb3cgdXNlcnMgdG8gYWx0 ZXIgc2xvdHMgdG8gZW5hYmxlIGZhaWxvdmVyIG9uIHRoZSBzdGFuZGJ5IGFzCi0JICogd2UgZG8g bm90IHN1cHBvcnQgc3luYyB0byB0aGUgY2FzY2FkaW5nIHN0YW5kYnkuCi0JICovCi0JaWYgKFJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIGZhaWxvdmVyKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCWVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCWVycm1zZygiY2Fubm90 IGVuYWJsZSBmYWlsb3ZlciBmb3IgYSByZXBsaWNhdGlvbiBzbG90IgotCQkJCQkgICAiIG9uIHRo ZSBzdGFuZGJ5IikpOworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwl7CisJCS8qCisJCSAq IERvIG5vdCBhbGxvdyB1c2VycyB0byBhbHRlciB0aGUgc2xvdHMgd2hpY2ggYXJlIGN1cnJlbnRs eSBiZWluZworCQkgKiBzeW5jZWQgZnJvbSB0aGUgcHJpbWFyeSB0byB0aGUgc3RhbmRieS4KKwkJ ICovCisJCWlmIChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5zeW5jZWQpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RB VEUpLAorCQkJCQllcnJtc2coImNhbm5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIs IG5hbWUpLAorCQkJCQllcnJkZXRhaWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0 aGUgcHJpbWFyeSBzZXJ2ZXIuIikpOworCisJCS8qCisJCSAqIERvIG5vdCBhbGxvdyB1c2VycyB0 byBhbHRlciBzbG90cyB0byBlbmFibGUgZmFpbG92ZXIgb24gdGhlIHN0YW5kYnkKKwkJICogYXMg d2UgZG8gbm90IHN1cHBvcnQgc3luYyB0byB0aGUgY2FzY2FkaW5nIHN0YW5kYnkuCisJCSAqLwor CQlpZiAoZmFpbG92ZXIpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgZW5hYmxlIGZhaWxv dmVyIGZvciBhIHJlcGxpY2F0aW9uIHNsb3QiCisJCQkJCQkgICAiIG9uIHRoZSBzdGFuZGJ5Iikp OworCX0KIAogCVNwaW5Mb2NrQWNxdWlyZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKIAlN eVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOwpAQCAtNzMxLDcgKzc1 Niw3IEBAIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92 ZXIpCiAvKgogICogUGVybWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHJlcGxp Y2F0aW9uIHNsb3QuCiAgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBSZXBsaWNhdGlvblNsb3REcm9w QWNxdWlyZWQodm9pZCkKIHsKIAlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9u U2xvdDsKQEAgLTg4Nyw4ICs5MTIsOCBAQCBSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkodm9pZCkK IH0KIAogLyoKLSAqIENvbnZlcnQgYSBzbG90IHRoYXQncyBtYXJrZWQgYXMgUlNfRVBIRU1FUkFM IHRvIGEgUlNfUEVSU0lTVEVOVCBzbG90LAotICogZ3VhcmFudGVlaW5nIGl0IHdpbGwgYmUgdGhl cmUgYWZ0ZXIgYW4gZXZlbnR1YWwgY3Jhc2guCisgKiBDb252ZXJ0IGEgc2xvdCB0aGF0J3MgbWFy a2VkIGFzIFJTX0VQSEVNRVJBTCBvciBSU19URU1QT1JBUlkgdG8gYQorICogUlNfUEVSU0lTVEVO VCBzbG90LCBndWFyYW50ZWVpbmcgaXQgd2lsbCBiZSB0aGVyZSBhZnRlciBhbiBldmVudHVhbCBj cmFzaC4KICAqLwogdm9pZAogUmVwbGljYXRpb25TbG90UGVyc2lzdCh2b2lkKQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBjOTNkYmE4NTViLi44NDNhZThjZDY4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtNDMsNyArNDMsNyBAQCBjcmVhdGVfcGh5c2lj YWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBib29sIGltbWVkaWF0ZWx5X3Jlc2VydmUs CiAJLyogYWNxdWlyZSByZXBsaWNhdGlvbiBzbG90LCB0aGlzIHdpbGwgY2hlY2sgZm9yIGNvbmZs aWN0aW5nIG5hbWVzICovCiAJUmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIGZhbHNlLAogCQkJ CQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULCBmYWxzZSwKLQkJ CQkJCSAgZmFsc2UpOworCQkJCQkJICBmYWxzZSwgZmFsc2UgLyogc3luY2VkICovICk7CiAKIAlp ZiAoaW1tZWRpYXRlbHlfcmVzZXJ2ZSkKIAl7CkBAIC0xMzYsNyArMTM2LDcgQEAgY3JlYXRlX2xv Z2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpuYW1lLCBjaGFyICpwbHVnaW4sCiAJICovCiAJ UmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIHRydWUsCiAJCQkJCQkgIHRlbXBvcmFyeSA/IFJT X1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlLAotCQkJCQkJICBmYWlsb3Zlcik7 CisJCQkJCQkgIGZhaWxvdmVyLCBmYWxzZSAvKiBzeW5jZWQgKi8gKTsKIAogCS8qCiAJICogQ3Jl YXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBvaW50IG9yLCBpZiB3 ZSBkb24ndApAQCAtMjM3LDcgKzIzNyw3IEBAIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdChQR19G VU5DVElPTl9BUkdTKQogRGF0dW0KIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cyhQR19GVU5DVElP Tl9BUkdTKQogewotI2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNgorI2Rl ZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNwogCVJldHVyblNldEluZm8gKnJz aW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKIAlYTG9nUmVjUHRy CWN1cnJsc247CiAJaW50CQkJc2xvdG5vOwpAQCAtNDE4LDIxICs0MTgsMjMgQEAgcGdfZ2V0X3Jl cGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCWJyZWFrOwogCiAJCQkJY2Fz ZSBSU19JTlZBTF9XQUxfUkVNT1ZFRDoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKCJ3YWxfcmVtb3ZlZCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0 RGF0dW0oU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9URVhUKTsKIAkJCQkJYnJlYWs7CiAKIAkJCQlj YXNlIFJTX0lOVkFMX0hPUklaT046Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHRE YXR1bSgicm93c19yZW1vdmVkIik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHRE YXR1bShTTE9UX0lOVkFMX0hPUklaT05fVEVYVCk7CiAJCQkJCWJyZWFrOwogCiAJCQkJY2FzZSBS U19JTlZBTF9XQUxfTEVWRUw6Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHREYXR1 bSgid2FsX2xldmVsX2luc3VmZmljaWVudCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oU0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCk7CiAJCQkJCWJyZWFrOwogCQkJ fQogCQl9CiAKIAkJdmFsdWVzW2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9jb250ZW50cy5kYXRh LmZhaWxvdmVyKTsKIAorCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRlbnRz LmRhdGEuc3luY2VkKTsKKwogCQlBc3NlcnQoaSA9PSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNf Q09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5m by0+c2V0RGVzYywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYwpp bmRleCA3M2E3ZDhmOTZjLi5kNDIwYTgzM2NkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2FscmVjZWl2ZXJmdW5jcy5jCkBAIC0zNDUsNiArMzQ1LDIyIEBAIEdldFdhbFJjdkZsdXNoUmVj UHRyKFhMb2dSZWNQdHIgKmxhdGVzdENodW5rU3RhcnQsIFRpbWVMaW5lSUQgKnJlY2VpdmVUTEkp CiAJcmV0dXJuIHJlY3B0cjsKIH0KIAorLyoKKyAqIFJldHVybnMgdGhlIGxhdGVzdCByZXBvcnRl ZCBlbmQgb2YgV0FMIG9uIHRoZSBzZW5kZXIKKyAqLworWExvZ1JlY1B0cgorR2V0V2FsUmN2TGF0 ZXN0V2FsRW5kKCkKK3sKKwlXYWxSY3ZEYXRhICp3YWxyY3YgPSBXYWxSY3Y7CisJWExvZ1JlY1B0 cglyZWNwdHI7CisKKwlTcGluTG9ja0FjcXVpcmUoJndhbHJjdi0+bXV0ZXgpOworCXJlY3B0ciA9 IHdhbHJjdi0+bGF0ZXN0V2FsRW5kOworCVNwaW5Mb2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7 CisKKwlyZXR1cm4gcmVjcHRyOworfQorCiAvKgogICogUmV0dXJucyB0aGUgbGFzdCsxIGJ5dGUg cG9zaXRpb24gdGhhdCB3YWxyZWNlaXZlciBoYXMgd3JpdHRlbi4KICAqIFRoaXMgcmV0dXJucyBh IHJlY2VudGx5IHdyaXR0ZW4gdmFsdWUgd2l0aG91dCB0YWtpbmcgYSBsb2NrLgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCA3N2M4YmFhMzJhLi5mNzUzYWVkMzQ1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgInBv c3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVjb2RlLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xv Z2ljYWx3b3JrZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAi cmVwbGljYXRpb24vc25hcGJ1aWxkLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vc3luY3JlcC5o IgpAQCAtMjQzLDcgKzI0NCw2IEBAIHN0YXRpYyB2b2lkIFdhbFNuZFNodXRkb3duKHZvaWQpIHBn X2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGljIHZvaWQgWExvZ1NlbmRQaHlzaWNhbCh2b2lk KTsKIHN0YXRpYyB2b2lkIFhMb2dTZW5kTG9naWNhbCh2b2lkKTsKIHN0YXRpYyB2b2lkIFdhbFNu ZERvbmUoV2FsU25kU2VuZERhdGFDYWxsYmFjayBzZW5kX2RhdGEpOwotc3RhdGljIFhMb2dSZWNQ dHIgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSk7CiBzdGF0aWMgdm9pZCBJ ZGVudGlmeVN5c3RlbSh2b2lkKTsKIHN0YXRpYyB2b2lkIFVwbG9hZE1hbmlmZXN0KHZvaWQpOwog c3RhdGljIGJvb2wgSGFuZGxlVXBsb2FkTWFuaWZlc3RQYWNrZXQoU3RyaW5nSW5mbyBidWYsIG9m Zl90ICpvZmZzZXQsCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3Qo Q3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJewogCQlSZXBsaWNhdGlvblNsb3RDcmVh dGUoY21kLT5zbG90bmFtZSwgZmFsc2UsCiAJCQkJCQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RF TVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsCi0JCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQkJCQkJ CSAgZmFsc2UsIGZhbHNlLCBmYWxzZSAvKiBzeW5jZWQgKi8gKTsKIAogCQlpZiAocmVzZXJ2ZV93 YWwpCiAJCXsKQEAgLTEyNTUsNyArMTI1NSw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVh dGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAkJICovCiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0 ZShjbWQtPnNsb3RuYW1lLCB0cnVlLAogCQkJCQkJCSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1Q T1JBUlkgOiBSU19FUEhFTUVSQUwsCi0JCQkJCQkJICB0d29fcGhhc2UsIGZhaWxvdmVyKTsKKwkJ CQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIsIGZhbHNlIC8qIHN5bmNlZCAqLyApOwogCiAJCS8q CiAJCSAqIERvIG9wdGlvbnMgY2hlY2sgZWFybHkgc28gdGhhdCB3ZSBjYW4gYmFpbCBiZWZvcmUg Y2FsbGluZyB0aGUKQEAgLTMzNzUsMTQgKzMzNzUsMTcgQEAgV2FsU25kRG9uZShXYWxTbmRTZW5k RGF0YUNhbGxiYWNrIHNlbmRfZGF0YSkKIH0KIAogLyoKLSAqIFJldHVybnMgdGhlIGxhdGVzdCBw b2ludCBpbiBXQUwgdGhhdCBoYXMgYmVlbiBzYWZlbHkgZmx1c2hlZCB0byBkaXNrLCBhbmQKLSAq IGNhbiBiZSBzZW50IHRvIHRoZSBzdGFuZGJ5LiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3 aGVuIGluIHJlY292ZXJ5LAotICogaWUuIHdlJ3JlIHN0cmVhbWluZyB0byBhIGNhc2NhZGVkIHN0 YW5kYnkuCisgKiBSZXR1cm5zIHRoZSBsYXRlc3QgcG9pbnQgaW4gV0FMIHRoYXQgaGFzIGJlZW4g c2FmZWx5IGZsdXNoZWQgdG8gZGlzay4KKyAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdo ZW4gaW4gcmVjb3ZlcnkuCisgKgorICogVGhpcyBpcyBjYWxsZWQgZWl0aGVyIGJ5IGNhc2NhZGlu ZyB3YWxzZW5kZXIgdG8gZmluZCBXQUwgcG9zdGlvbiB0bworICogYmUgc2VudCB0byBhIGNhc2Nh ZGVkIHN0YW5kYnkgb3IgYnkgYSBzbG90IHN5bmMgd29ya2VyIHRvIHZhbGlkYXRlCisgKiByZW1v dGUgc2xvdCdzIGxzbiBiZWZvcmUgc3luY2luZyBpdCBsb2NhbGx5LgogICoKICAqIEFzIGEgc2lk ZS1lZmZlY3QsICp0bGkgaXMgdXBkYXRlZCB0byB0aGUgVExJIG9mIHRoZSBsYXN0CiAgKiByZXBs YXllZCBXQUwgcmVjb3JkLgogICovCi1zdGF0aWMgWExvZ1JlY1B0cgorWExvZ1JlY1B0cgogR2V0 U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSkKIHsKIAlYTG9nUmVjUHRyCXJlcGxh eVB0cjsKQEAgLTMzOTEsNiArMzM5NCw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGlu ZUlEICp0bGkpCiAJVGltZUxpbmVJRAlyZWNlaXZlVExJOwogCVhMb2dSZWNQdHIJcmVzdWx0Owog CisJQXNzZXJ0KGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgfHwgSXNMb2dpY2FsU2xvdFN5bmNXb3Jr ZXIoKSk7CisKIAkvKgogCSAqIFdlIGNhbiBzYWZlbHkgc2VuZCB3aGF0J3MgYWxyZWFkeSBiZWVu IHJlcGxheWVkLiBBbHNvLCBpZiB3YWxyZWNlaXZlcgogCSAqIGlzIHN0cmVhbWluZyBXQUwgZnJv bSB0aGUgc2FtZSB0aW1lbGluZSwgd2UgY2FuIHNlbmQgYW55dGhpbmcgdGhhdCBpdApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvaXBjaS5jCmluZGV4IDcwODRlMTg4NjEuLjkyNWFjNmM5NDIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9pcGNpLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90Lmgi CiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNh dGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwu aCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZHNtLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9kc21fcmVnaXN0cnkuaCIKQEAgLTM0Nyw2ICszNDgsNyBAQCBD cmVhdGVPckF0dGFjaFNobWVtU3RydWN0cyh2b2lkKQogCVdhbFN1bW1hcml6ZXJTaG1lbUluaXQo KTsKIAlQZ0FyY2hTaG1lbUluaXQoKTsKIAlBcHBseUxhdW5jaGVyU2htZW1Jbml0KCk7CisJU2xv dFN5bmNXb3JrZXJTaG1lbUluaXQoKTsKIAogCS8qCiAJICogU2V0IHVwIG90aGVyIG1vZHVsZXMg dGhhdCBuZWVkIHNvbWUgc2hhcmVkIG1lbW9yeSBzcGFjZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDFh MzRiZDM3MTUuLmU4YzUzMGFjZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTMyODYsNiArMzI4Niwx NyBAQCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCQkJICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJ CX0KKwkJZWxzZSBpZiAoSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSkKKwkJeworCQkJZWxvZyhE RUJVRzEsCisJCQkJICJyZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRv d24gZHVlIHRvIGFkbWluaXN0cmF0b3IgY29tbWFuZCIpOworCisJCQkvKgorCQkJICogU2xvdCBz eW5jIHdvcmtlciBjYW4gYmUgc3RvcHBlZCBhdCBhbnkgdGltZS4gVXNlIGV4aXQgc3RhdHVzIDEK KwkJCSAqIHNvIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBpcyByZXN0YXJ0ZWQuCisJCQkgKi8KKwkJ CXByb2NfZXhpdCgxKTsKKwkJfQogCQllbHNlIGlmIChJc0JhY2tncm91bmRXb3JrZXIpCiAJCQll cmVwb3J0KEZBVEFMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FETUlOX1NIVVRET1dOKSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0 IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXgg YTVkZjgzNWRkNC4uM2U2MjAzMzIyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAgLTUzLDYgKzUzLDcgQEAgTE9HSUNBTF9BUFBMWV9N QUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IHBy b2Nlc3MuIgogTE9HSUNBTF9MQVVOQ0hFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBs b2dpY2FsIHJlcGxpY2F0aW9uIGxhdW5jaGVyIHByb2Nlc3MuIgogTE9HSUNBTF9QQVJBTExFTF9B UFBMWV9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHBh cmFsbGVsIGFwcGx5IHByb2Nlc3MuIgogUkVDT1ZFUllfV0FMX1NUUkVBTQkiV2FpdGluZyBpbiBt YWluIGxvb3Agb2Ygc3RhcnR1cCBwcm9jZXNzIGZvciBXQUwgdG8gYXJyaXZlLCBkdXJpbmcgc3Ry ZWFtaW5nIHJlY292ZXJ5LiIKK1JFUExfU0xPVFNZTkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxv b3Agb2Ygc2xvdCBzeW5jIHdvcmtlci4iCiBTWVNMT0dHRVJfTUFJTgkiV2FpdGluZyBpbiBtYWlu IGxvb3Agb2Ygc3lzbG9nZ2VyIHByb2Nlc3MuIgogV0FMX1JFQ0VJVkVSX01BSU4JIldhaXRpbmcg aW4gbWFpbiBsb29wIG9mIFdBTCByZWNlaXZlciBwcm9jZXNzLiIKIFdBTF9TRU5ERVJfTUFJTgki V2FpdGluZyBpbiBtYWluIGxvb3Agb2YgV0FMIHNlbmRlciBwcm9jZXNzLiIKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMKaW5kZXggN2ZlNTg1MThkNy4uZmUwNDRjMTZkZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJyZXBs aWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90Lmgi CiAjaW5jbHVkZSAicmVwbGljYXRpb24vc3luY3JlcC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9sYXJnZV9vYmplY3QuaCIKICNpbmNsdWRlICJzdG9yYWdlL3BnX3NobWVtLmgi CkBAIC0yMDU0LDYgKzIwNTUsMTUgQEAgc3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVz Qm9vbFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsiZW5hYmxlX3N5bmNz bG90IiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NUQU5EQlksCisJCQlnZXR0ZXh0X25v b3AoIkVuYWJsZXMgYSBwaHlzaWNhbCBzdGFuZGJ5IHRvIHN5bmNocm9uaXplIGxvZ2ljYWwgZmFp bG92ZXIgc2xvdHMgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuIiksCisJCX0sCisJCSZlbmFibGVf c3luY3Nsb3QsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKwogCS8qIEVuZC1v Zi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9LCBOVUxMLCBm YWxzZSwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jl c3FsLmNvbmYuc2FtcGxlCmluZGV4IGRhMTBiNDNkYWMuLjM4Njg2OTRkM2YgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTM2MSw2ICszNjEs NyBAQAogI3dhbF9yZXRyaWV2ZV9yZXRyeV9pbnRlcnZhbCA9IDVzCSMgdGltZSB0byB3YWl0IGJl Zm9yZSByZXRyeWluZyB0bwogCQkJCQkjIHJldHJpZXZlIFdBTCBhZnRlciBhIGZhaWxlZCBhdHRl bXB0CiAjcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0gMAkJIyBtaW5pbXVtIGRlbGF5IGZvciBh cHBseWluZyBjaGFuZ2VzIGR1cmluZyByZWNvdmVyeQorI2VuYWJsZV9zeW5jc2xvdCA9IG9mZgkJ CSMgZW5hYmxlcyBzbG90IHN5bmNocm9uaXphdGlvbiBvbiB0aGUgcGh5c2ljYWwgc3RhbmRieSBm cm9tIHRoZSBwcmltYXJ5CiAKICMgLSBTdWJzY3JpYmVycyAtCiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CmluZGV4IGU2ZTRiYmRmYjkuLjEwZTZhMWU5NTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dApAQCAtMTExMjMsOSArMTExMjMsOSBAQAogICBwcm9uYW1lID0+ICdwZ19nZXRfcmVwbGljYXRp b25fc2xvdHMnLCBwcm9yb3dzID0+ICcxMCcsIHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0 c2V0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAog ICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4 dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29s LHRleHQsYm9vbH0nLAotICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlw ZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJl c3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3 b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92ZXJ9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4g J3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNu LHRleHQsaW50OCxib29sLHRleHQsYm9vbCxib29sfScsCisgIHByb2FyZ21vZGVzID0+ICd7byxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7c2xv dF9uYW1lLHBsdWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3Bp ZCx4bWluLGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9z dGF0dXMsc2FmZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVhc29uLGZhaWxvdmVyLHN5 bmNlZH0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9yZXBsaWNhdGlvbl9zbG90cycgfSwKIHsgb2lk ID0+ICczNzg2JywgZGVzY3IgPT4gJ3NldCB1cCBhIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcs CiAgIHByb25hbWUgPT4gJ3BnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QnLCBwcm92 b2xhdGlsZSA9PiAndicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29y a2VyLmggYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKaW5kZXggMjJmYzQ5ZWMy Ny4uNzA5MmZjNzJjNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtl ci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaApAQCAtNzksNiArNzks NyBAQCB0eXBlZGVmIGVudW0KIAlCZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydCwKIAlCZ1dv cmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZSwKIAlCZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNo ZWQsCisJQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieSwKIH0gQmdXb3Jr ZXJTdGFydFRpbWU7CiAKICNkZWZpbmUgQkdXX0RFRkFVTFRfUkVTVEFSVF9JTlRFUlZBTAk2MApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIGIvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCmluZGV4IGExOGQ3OWQxYjIuLmJi ZTA0MjI2ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3Jr ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgKQEAgLTIy LDYgKzIyLDcgQEAgZXh0ZXJuIHZvaWQgVGFibGVzeW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2Fy Zyk7CiAKIGV4dGVybiBib29sIElzTG9naWNhbFdvcmtlcih2b2lkKTsKIGV4dGVybiBib29sIElz TG9naWNhbFBhcmFsbGVsQXBwbHlXb3JrZXIodm9pZCk7CitleHRlcm4gYm9vbCBJc0xvZ2ljYWxT bG90U3luY1dvcmtlcih2b2lkKTsKIAogZXh0ZXJuIHZvaWQgSGFuZGxlUGFyYWxsZWxBcHBseU1l c3NhZ2VJbnRlcnJ1cHQodm9pZCk7CiBleHRlcm4gdm9pZCBIYW5kbGVQYXJhbGxlbEFwcGx5TWVz c2FnZXModm9pZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90Lmgg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNzJlZjQ4NTllZS4uNDFmMGNj MzVmMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtNTIsNiArNTIsMTQgQEAgdHlwZWRlZiBl bnVtIFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlCiAJUlNfSU5WQUxfV0FMX0xFVkVM LAogfSBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZTsKIAorLyoKKyAqIFRoZSBwb3Nz aWJsZSB2YWx1ZXMgZm9yICdjb25mbGljdF9yZWFzb24nIHJldHVybmVkIGluCisgKiBwZ19nZXRf cmVwbGljYXRpb25fc2xvdHMuCisgKi8KKyNkZWZpbmUgU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9U RVhUICJ3YWxfcmVtb3ZlZCIKKyNkZWZpbmUgU0xPVF9JTlZBTF9IT1JJWk9OX1RFWFQgICAgICJy b3dzX3JlbW92ZWQiCisjZGVmaW5lIFNMT1RfSU5WQUxfV0FMX0xFVkVMX1RFWFQgICAid2FsX2xl dmVsX2luc3VmZmljaWVudCIKKwogLyoKICAqIE9uLURpc2sgZGF0YSBvZiBhIHJlcGxpY2F0aW9u IHNsb3QsIHByZXNlcnZlZCBhY3Jvc3MgcmVzdGFydHMuCiAgKi8KQEAgLTExMiw2ICsxMjAsMTEg QEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90UGVyc2lzdGVudERhdGEKIAkvKiBwbHVn aW4gbmFtZSAqLwogCU5hbWVEYXRhCXBsdWdpbjsKIAorCS8qCisJICogV2FzIHRoaXMgc2xvdCBz eW5jaHJvbml6ZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXI/CisJICovCisJY2hhcgkJc3luY2Vk OworCiAJLyoKIAkgKiBJcyB0aGlzIGEgZmFpbG92ZXIgc2xvdCAoc3luYyBjYW5kaWRhdGUgZm9y IHN0YW5kYnlzKT8gT25seQogCSAqIHJlbGV2YW50IGZvciBsb2dpY2FsIHNsb3RzIG9uIHRoZSBw cmltYXJ5IHNlcnZlci4KQEAgLTIyNCw5ICsyMzcsMTEgQEAgZXh0ZXJuIHZvaWQgUmVwbGljYXRp b25TbG90c1NobWVtSW5pdCh2b2lkKTsKIC8qIG1hbmFnZW1lbnQgb2YgaW5kaXZpZHVhbCBzbG90 cyAqLwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUs IGJvb2wgZGJfc3BlY2lmaWMsCiAJCQkJCQkJCSAgUmVwbGljYXRpb25TbG90UGVyc2lzdGVuY3kg cGVyc2lzdGVuY3ksCi0JCQkJCQkJCSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIpOwor CQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyLAorCQkJCQkJCQkgIGJvb2wg c3luY2VkKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3Qodm9pZCk7CiBleHRl cm4gdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0 KTsKK2V4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKTsKIGV4dGVy biB2b2lkIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92 ZXIpOwogCiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBY3F1aXJlKGNvbnN0IGNoYXIgKm5h bWUsIGJvb2wgbm93YWl0KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCmluZGV4 IGY1NjZhOTliYTEuLjQ4ZGM4NDZlMTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaApAQCAtMjc5LDYgKzI3OSwxMyBAQCB0eXBlZGVmIHZvaWQgKCp3YWxyY3ZfZ2V0X3NlbmRl cmluZm9fZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiB0eXBlZGVmIGNoYXIgKigqd2FscmN2 X2lkZW50aWZ5X3N5c3RlbV9mbikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJCQkJ VGltZUxpbmVJRCAqcHJpbWFyeV90bGkpOwogCisvKgorICogd2FscmN2X2dldF9kYm5hbWVfZnJv bV9jb25uaW5mb19mbgorICoKKyAqIFJldHVybnMgdGhlIGRiaWQgZnJvbSB0aGUgcHJpbWFyeV9j b25uaW5mbworICovCit0eXBlZGVmIGNoYXIgKigqd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25u aW5mb19mbikgKGNvbnN0IGNoYXIgKmNvbm5pbmZvKTsKKwogLyoKICAqIHdhbHJjdl9zZXJ2ZXJf dmVyc2lvbl9mbgogICoKQEAgLTQwMyw2ICs0MTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNl aXZlckZ1bmN0aW9uc1R5cGUKIAl3YWxyY3ZfZ2V0X2Nvbm5pbmZvX2ZuIHdhbHJjdl9nZXRfY29u bmluZm87CiAJd2FscmN2X2dldF9zZW5kZXJpbmZvX2ZuIHdhbHJjdl9nZXRfc2VuZGVyaW5mbzsK IAl3YWxyY3ZfaWRlbnRpZnlfc3lzdGVtX2ZuIHdhbHJjdl9pZGVudGlmeV9zeXN0ZW07CisJd2Fs cmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19mbiB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nv bm5pbmZvOwogCXdhbHJjdl9zZXJ2ZXJfdmVyc2lvbl9mbiB3YWxyY3Zfc2VydmVyX3ZlcnNpb247 CiAJd2FscmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxlX2ZuIHdhbHJjdl9yZWFkdGltZWxpbmVo aXN0b3J5ZmlsZTsKIAl3YWxyY3Zfc3RhcnRzdHJlYW1pbmdfZm4gd2FscmN2X3N0YXJ0c3RyZWFt aW5nOwpAQCAtNDI4LDYgKzQzNiw4IEBAIGV4dGVybiBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1 bmN0aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rpb25zOwogCVdhbFJlY2VpdmVyRnVuY3Rpb25z LT53YWxyY3ZfZ2V0X3NlbmRlcmluZm8oY29ubiwgc2VuZGVyX2hvc3QsIHNlbmRlcl9wb3J0KQog I2RlZmluZSB3YWxyY3ZfaWRlbnRpZnlfc3lzdGVtKGNvbm4sIHByaW1hcnlfdGxpKSBcCiAJV2Fs UmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9pZGVudGlmeV9zeXN0ZW0oY29ubiwgcHJpbWFyeV90 bGkpCisjZGVmaW5lIHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29ubmluZm8pIFwK KwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhj b25uaW5mbykKICNkZWZpbmUgd2FscmN2X3NlcnZlcl92ZXJzaW9uKGNvbm4pIFwKIAlXYWxSZWNl aXZlckZ1bmN0aW9ucy0+d2FscmN2X3NlcnZlcl92ZXJzaW9uKGNvbm4pCiAjZGVmaW5lIHdhbHJj dl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZShjb25uLCB0bGksIGZpbGVuYW1lLCBjb250ZW50LCBz aXplKSBcCkBAIC00ODUsNiArNDk1LDcgQEAgZXh0ZXJuIHZvaWQgUmVxdWVzdFhMb2dTdHJlYW1p bmcoVGltZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIgcmVjcHRyLAogCQkJCQkJCQkgYm9vbCBjcmVh dGVfdGVtcF9zbG90KTsKIGV4dGVybiBYTG9nUmVjUHRyIEdldFdhbFJjdkZsdXNoUmVjUHRyKFhM b2dSZWNQdHIgKmxhdGVzdENodW5rU3RhcnQsIFRpbWVMaW5lSUQgKnJlY2VpdmVUTEkpOwogZXh0 ZXJuIFhMb2dSZWNQdHIgR2V0V2FsUmN2V3JpdGVSZWNQdHIodm9pZCk7CitleHRlcm4gWExvZ1Jl Y1B0ciBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQodm9pZCk7CiBleHRlcm4gaW50CUdldFJlcGxpY2F0 aW9uQXBwbHlEZWxheSh2b2lkKTsKIGV4dGVybiBpbnQJR2V0UmVwbGljYXRpb25UcmFuc2Zlckxh dGVuY3kodm9pZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggMWI1OGQ1 MGIzYi4uMjc2ZDg5MTNhYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs c2VuZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEy LDYgKzEyLDggQEAKICNpZm5kZWYgX1dBTFNFTkRFUl9ICiAjZGVmaW5lIF9XQUxTRU5ERVJfSAog CisjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisKIC8qCiAgKiBXaGF0IHRvIGRvIHdpdGgg YSBzbmFwc2hvdCBpbiBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBjb21tYW5kLgogICovCkBAIC00 NSw2ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVy biB2b2lkIFdhbFNuZFdhaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVdhbFNu ZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZv aWQpOworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQg KnRsaSk7CiAKIC8qCiAgKiBSZW1lbWJlciB0aGF0IHdlIHdhbnQgdG8gd2FrZXVwIHdhbHNlbmRl cnMgbGF0ZXIKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRl cm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKaW5kZXgg NTE1YWVmZDUxOS4uMjE2NzcyMDk3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKQEAgLTIzNyw2ICsyMzcsMTEgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wg aW5fcmVtb3RlX3RyYW5zYWN0aW9uOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFs aXppbmdBcHBseVdvcmtlcjsKIAorLyogU2xvdCBzeW5jIHdvcmtlciBvYmplY3RzICovCitleHRl cm4gUEdETExJTVBPUlQgY2hhciAqUHJpbWFyeUNvbm5JbmZvOworZXh0ZXJuIFBHRExMSU1QT1JU IGNoYXIgKlByaW1hcnlTbG90TmFtZTsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9z eW5jc2xvdDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90 KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtlcl9maW5kKE9pZCBz dWJpZCwgT2lkIHJlbGlkLAogCQkJCQkJCQkJCQkJYm9vbCBvbmx5X3J1bm5pbmcpOwpAQCAtMzI1 LDYgKzMzMCwxMSBAQCBleHRlcm4gdm9pZCBwYV9kZWNyX2FuZF93YWl0X3N0cmVhbV9ibG9jayh2 b2lkKTsKIGV4dGVybiB2b2lkIHBhX3hhY3RfZmluaXNoKFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZv ICp3aW5mbywKIAkJCQkJCSAgIFhMb2dSZWNQdHIgcmVtb3RlX2xzbik7CiAKK2V4dGVybiB2b2lk IFJlcGxTbG90U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpOworZXh0ZXJuIHZvaWQgU2xv dFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKTsKK2V4dGVybiB2b2lkIFNodXREb3duU2xvdFN5bmMo dm9pZCk7CitleHRlcm4gdm9pZCBTbG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKTsKKwogI2Rl ZmluZSBpc1BhcmFsbGVsQXBwbHlXb3JrZXIod29ya2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBc CiAJCQkJCQkJCQkgICAod29ya2VyKS0+dHlwZSA9PSBXT1JLRVJUWVBFX1BBUkFMTEVMX0FQUExZ KQogI2RlZmluZSBpc1RhYmxlc3luY1dvcmtlcih3b3JrZXIpICgod29ya2VyKS0+aW5fdXNlICYm IFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbAppbmRleCA2NDYyOTNjMzllLi4xMDU1NTczY2RlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKKysr IGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBs CkBAIC04NCw2ICs4NCwxNzAgQEAgaXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKIAkidCIsCiAJ J2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHVibGlzaGVyJyk7CiAKLSRz dWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX215c3ViMSIpOworJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBFTkFCTEUiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCBsb2dpY2FsIGZhaWxv dmVyIHNsb3RzIG9uIHRoZSBzdGFuZGJ5CisjIENvbmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNh dGUgYW5kIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xvdHMgY29uZmlndXJlZAorIyBmb3IgZmFpbG92 ZXIgb24gdGhlIHByaW1hcnkKKyMKKyMgICAgICAgICAgICAgIGZhaWxvdmVyIHNsb3QgbHN1YjFf c2xvdC0+fCAtLS0tPiBzdWJzY3JpYmVyMSAoY29ubmVjdGVkIHZpYSBsb2dpY2FsIHJlcGxpY2F0 aW9uKQorIyBwcmltYXJ5IC0tLT4gICAgICAgICAgICAgICAgICAgICAgICAgICB8CisjICAgICAg ICAgICAgICBwaHlzaWNhbCBzbG90IHNiMV9zbG90LS0tPnwgLS0tLT4gc3RhbmRieTEgKGNvbm5l Y3RlZCB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uKQorIyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICBsc3ViMV9zbG90KHN5bmNlZF9zbG90 KQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor bXkgJHByaW1hcnkgPSAkcHVibGlzaGVyOworbXkgJGJhY2t1cF9uYW1lID0gJ2JhY2t1cCc7Cisk cHJpbWFyeS0+YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMgQ3JlYXRlIGEgc3RhbmRieQorbXkg JHN0YW5kYnkxID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5MScpOwor JHN0YW5kYnkxLT5pbml0X2Zyb21fYmFja3VwKAorCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCisJ aGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7CisKK215ICRjb25uc3Ry XzEgPSAkcHJpbWFyeS0+Y29ubnN0cjsKKyRzdGFuZGJ5MS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3Rn cmVzcWwuY29uZicsIHFxKAorZW5hYmxlX3N5bmNzbG90ID0gdHJ1ZQoraG90X3N0YW5kYnlfZmVl ZGJhY2sgPSBvbgorcHJpbWFyeV9zbG90X25hbWUgPSAnc2IxX3Nsb3QnCitwcmltYXJ5X2Nvbm5p bmZvID0gJyRjb25uc3RyXzEgZGJuYW1lPXBvc3RncmVzJworKSk7CisKKyRwcmltYXJ5LT5wc3Fs KCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Ns b3QoJ3NiMV9zbG90Jyk7fSk7CisKK215ICRzdGFuZGJ5MV9jb25uaW5mbyA9ICRzdGFuZGJ5MS0+ Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKK215ICRvZmZzZXQgPSAtcyAkc3RhbmRieTEt PmxvZ2ZpbGU7CisKKyMgU3RhcnQgdGhlIHN0YW5kYnkgc28gdGhhdCBzbG90IHN5bmNpbmcgY2Fu IGJlZ2luCiskc3RhbmRieTEtPnN0YXJ0OworCisjIEdlbmVyYXRlIGEgbG9nIHRvIHRyaWdnZXIg dGhlIHdhbHNlbmRlciB0byBzZW5kIG1lc3NhZ2VzIHRvIHRoZSB3YWxyZWNlaXZlcgorIyB3aGlj aCB3aWxsIHVwZGF0ZSBXYWxSY3YtPmxhdGVzdFdhbEVuZCB0byBhIHZhbGlkIG51bWJlci4KKyRw cmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19sb2dfc3RhbmRieV9zbmFw c2hvdCgpOyIpOworCisjIFdhaXQgZm9yIHRoZSBzdGFuZGJ5IHRvIGZpbmlzaCBzeW5jCiskc3Rh bmRieTEtPndhaXRfZm9yX2xvZygKKwlxci9MT0c6ICggW0EtWjAtOV0rOik/IG5ld2x5IGNyZWF0 ZWQgc2xvdCBcImxzdWIxX3Nsb3RcIiBpcyBzeW5jLXJlYWR5IG5vdy8sCisJJG9mZnNldCk7CisK KyMgQ29uZmlybSB0aGF0IHRoZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3QgaXMgY3JlYXRlZCBvbiB0 aGUgc3RhbmRieSBhbmQgaXMKKyMgZmxhZ2dlZCBhcyAnc3luY2VkJworaXMoJHN0YW5kYnkxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBzeW5jZWQgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fSksCisJInQiLAorCSdsb2dp Y2FsIHNsb3QgaGFzIHN5bmNlZCBhcyB0cnVlIG9uIHN0YW5kYnknKTsKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0byBjb25maXJt IHRoYXQgcmVzdGFydF9sc24gYW5kIGNvbmZpcm1lZF9mbHVzaF9sc24gb2YgdGhlIGxvZ2ljYWwg c2xvdAorIyBvbiB0aGUgcHJpbWFyeSBpcyBzeW5jZWQgdG8gdGhlIHN0YW5kYnkKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgSW5zZXJ0IGRh dGEgb24gdGhlIHByaW1hcnkKKyRwcmltYXJ5LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFb CisJQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlJTlNFUlQgSU5U TyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApOworXSk7CisKKyMgU3Vic2Ny aWJlIHRvIHRoZSBuZXcgdGFibGUgZGF0YSBhbmQgd2FpdCBmb3IgaXQgdG8gYXJyaXZlCiskc3Vi c2NyaWJlcjEtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFi X2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215 c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OOworXSk7CisKKyRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jf c3Vic2NyaXB0aW9uX3N5bmM7CisKKyMgRG8gbm90IGFsbG93IGFueSBmdXJ0aGVyIGFkdmFuY2Vt ZW50IG9mIHRoZSByZXN0YXJ0X2xzbiBhbmQKKyMgY29uZmlybWVkX2ZsdXNoX2xzbiBmb3IgdGhl IGxzdWIxX3Nsb3QuCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIERJU0FCTEUiKTsKKworIyBXYWl0IGZvciB0aGUg cmVwbGljYXRpb24gc2xvdCB0byBiZWNvbWUgaW5hY3RpdmUgb24gdGhlIHB1Ymxpc2hlcgorJHBy aW1hcnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkiU0VMRUNUIENPVU5UKCop IEZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAn bHN1YjFfc2xvdCcgQU5EIGFjdGl2ZT0nZiciLAorCTEpOworCisjIEdldCB0aGUgcmVzdGFydF9s c24gZm9yIHRoZSBsb2dpY2FsIHNsb3QgbHN1YjFfc2xvdCBvbiB0aGUgcHJpbWFyeQorbXkgJHBy aW1hcnlfcmVzdGFydF9sc24gPSAkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCByZXN0YXJ0X2xzbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFt ZSA9ICdsc3ViMV9zbG90JzsiKTsKKworIyBHZXQgdGhlIGNvbmZpcm1lZF9mbHVzaF9sc24gZm9y IHRoZSBsb2dpY2FsIHNsb3QgbHN1YjFfc2xvdCBvbiB0aGUgcHJpbWFyeQorbXkgJHByaW1hcnlf Zmx1c2hfbHNuID0gJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY29u ZmlybWVkX2ZsdXNoX2xzbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFt ZSA9ICdsc3ViMV9zbG90JzsiKTsKKworIyBDb25maXJtIHRoYXQgcmVzdGFydF9sc24gYW5kIG9m IGNvbmZpcm1lZF9mbHVzaF9sc24gbHN1YjFfc2xvdCBzbG90IGFyZSBzeW5jZWQKKyMgdG8gdGhl IHN0YW5kYnkKK29rKCAkc3RhbmRieTEtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3Jlcycs CisJCSJTRUxFQ1QgJyRwcmltYXJ5X3Jlc3RhcnRfbHNuJyA9IHJlc3RhcnRfbHNuIEFORCAnJHBy aW1hcnlfZmx1c2hfbHNuJyA9IGNvbmZpcm1lZF9mbHVzaF9sc24gZnJvbSBwZ19yZXBsaWNhdGlv bl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7IiksCisJJ3Jlc3RhcnRfbHNu IGFuZCBjb25maXJtZWRfZmx1c2hfbHNuIG9mIHNsb3QgbHN1YjFfc2xvdCBzeW5jZWQgdG8gc3Rh bmRieScpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIyBUZXN0IHRoYXQgYSBzeW5jaHJvbml6ZWQgc2xvdCBjYW4gbm90IGJlIGRlY29kZWQs IGFsdGVyZWQgb3IgZHJvcHBlZCBieSB0aGUgdXNlcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBEaXNhYmxlIGhvdF9zdGFuZGJ5X2ZlZWRi YWNrIHRlbXBvcmFyaWx5IHRvIHN0b3Agc2xvdCBzeW5jIHdvcmtlciBvdGhlcndpc2UKKyMgdGhl IGNvbmNlcm5lZCB0ZXN0aW5nIHNjZW5hcmlvcyBoZXJlIG1heSBiZSBpbnRlcnJ1cHRlZCBieSBk aWZmZXJlbnQgZXJyb3I6CisjICdFUlJPUjogIHJlcGxpY2F0aW9uIHNsb3QgaXMgYWN0aXZlIGZv ciBQSUQgLi4nCiskc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQUxURVIgU1lTVEVN IFNFVCBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZjsnKTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsK KworIyBBdHRlbXB0aW5nIHRvIHBlcmZvcm0gbG9naWNhbCBkZWNvZGluZyBvbiBhIHN5bmNlZCBz bG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IKK215ICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3Rk ZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdyZXMnLAorCSJzZWxlY3QgKiBmcm9tIHBnX2xv Z2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnbHN1YjFfc2xvdCcsTlVMTCxOVUxMKTsiKTsKK29rKCRz dGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IHVzZSByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90 IiBmb3IgbG9naWNhbCBkZWNvZGluZy8sCisJImxvZ2ljYWwgZGVjb2RpbmcgaXMgbm90IGFsbG93 ZWQgb24gc3luY2VkIHNsb3QiKTsKKworIyBBdHRlbXB0aW5nIHRvIGFsdGVyIGEgc3luY2VkIHNs b3Qgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvcgorKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIp ID0gJHN0YW5kYnkxLT5wc3FsKAorICAgICdwb3N0Z3JlcycsCisgICAgcXFbQUxURVJfUkVQTElD QVRJT05fU0xPVCBsc3ViMV9zbG90IChmYWlsb3Zlcik7XSwKKyAgICByZXBsaWNhdGlvbiA9PiAn ZGF0YWJhc2UnKTsKK29rKCRzdGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IGFsdGVyIHJlcGxpY2F0 aW9uIHNsb3QgImxzdWIxX3Nsb3QiLywKKwkic3luY2VkIHNsb3Qgb24gc3RhbmRieSBjYW5ub3Qg YmUgYWx0ZXJlZCIpOworCisjIEF0dGVtcHRpbmcgdG8gZHJvcCBhIHN5bmNlZCBzbG90IHNob3Vs ZCByZXN1bHQgaW4gYW4gZXJyb3IKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFu ZGJ5MS0+cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdsc3ViMV9zbG90Jyk7Iik7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNhbm5vdCBkcm9wIHJl cGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiLywKKwkic3luY2VkIHNsb3Qgb24gc3RhbmRieSBj YW5ub3QgYmUgZHJvcHBlZCIpOworCisjIEVuYWJsZSBob3Rfc3RhbmRieV9mZWVkYmFjayBhbmQg cmVzdGFydCBzdGFuZGJ5Ciskc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQUxURVIg U1lTVEVNIFNFVCBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uOycpOworJHN0YW5kYnkxLT5yZXN0 YXJ0OworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBQcm9tb3RlIHRoZSBzdGFuZGJ5MSB0byBwcmltYXJ5LiBDb25maXJtIHRoYXQ6CisjIGEp IHRoZSBzbG90ICdsc3ViMV9zbG90JyBpcyByZXRhaW5lZCBvbiB0aGUgbmV3IHByaW1hcnkKKyMg YikgbG9naWNhbCByZXBsaWNhdGlvbiBmb3IgcmVncmVzc19teXN1YjEgaXMgcmVzdW1lZCBzdWNj ZXNzZnVsbHkgYWZ0ZXIgZmFpbG92ZXIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiskc3RhbmRieTEtPnByb21vdGU7CisKKyMgVXBkYXRlIHN1YnNj cmlwdGlvbiB3aXRoIHRoZSBuZXcgcHJpbWFyeSdzIGNvbm5lY3Rpb24gaW5mbworJHN1YnNjcmli ZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf bXlzdWIxIENPTk5FQ1RJT04gJyRzdGFuZGJ5MV9jb25uaW5mbyc7CisJIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX215c3ViMSBFTkFCTEU7ICIpOworCisjIENvbmZpcm0gdGhlIHN5bmNlZCBz bG90ICdsc3ViMV9zbG90JyBpcyByZXRhaW5lZCBvbiB0aGUgbmV3IHByaW1hcnkKK2lzKCRzdGFu ZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1Qgc2xvdF9uYW1lIEZST00gcGdf cmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30pLAorCSds c3ViMV9zbG90JywKKwknc3luY2VkIHNsb3QgcmV0YWluZWQgb24gdGhlIG5ldyBwcmltYXJ5Jyk7 CisKKyMgSW5zZXJ0IGRhdGEgb24gdGhlIG5ldyBwcmltYXJ5Ciskc3RhbmRieTEtPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJp ZXMoMTEsIDIwKTsiKTsKKyRzdGFuZGJ5MS0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1 YjEnKTsKKworIyBDb25maXJtIHRoYXQgZGF0YSBpbiB0YWJfaW50IHJlcGxpY2F0ZWQgb24gdGhl IHN1YnNjcmliZXIKK2lzKCAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBjb3VudCgqKSBGUk9NIHRhYl9pbnQ7fSksCisJIjIwIiwKKwknZGF0YSByZXBsaWNhdGVk IGZyb20gdGhlIG5ldyBwcmltYXJ5Jyk7CiAKIGRvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dAppbmRleCA1Nzg4NGQzZmVjLi5jYjQzYmExYzNmIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTQ3NCw4ICsxNDc0LDkgQEAgcGdfcmVwbGljYXRp b25fc2xvdHN8IFNFTEVDVCBsLnNsb3RfbmFtZSwKICAgICBsLnNhZmVfd2FsX3NpemUsCiAgICAg bC50d29fcGhhc2UsCiAgICAgbC5jb25mbGljdF9yZWFzb24sCi0gICAgbC5mYWlsb3ZlcgotICAg RlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xv dF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRh bG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBz YWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbiwgZmFpbG92ZXIpCisgICAg bC5mYWlsb3ZlciwKKyAgICBsLnN5bmNlZAorICAgRlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Ns b3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xvdF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwg YWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRhbG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25m aXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNv bmZsaWN0X3JlYXNvbiwgZmFpbG92ZXIsIHN5bmNlZCkKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFi YXNlIGQgT04gKChsLmRhdG9pZCA9IGQub2lkKSkpOwogcGdfcm9sZXN8IFNFTEVDVCBwZ19hdXRo aWQucm9sbmFtZSwKICAgICBwZ19hdXRoaWQucm9sc3VwZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3lzdmlld3Mub3V0CmluZGV4IDliZTdhY2EyYjguLmZhZTA1OWQzODkgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CkBAIC0xMzMsOCArMTMzLDkgQEAgc2VsZWN0IG5h bWUsIHNldHRpbmcgZnJvbSBwZ19zZXR0aW5ncyB3aGVyZSBuYW1lIGxpa2UgJ2VuYWJsZSUnOwog IGVuYWJsZV9zZWxmX2pvaW5fcmVtb3ZhbCAgICAgICB8IG9uCiAgZW5hYmxlX3NlcXNjYW4gICAg ICAgICAgICAgICAgIHwgb24KICBlbmFibGVfc29ydCAgICAgICAgICAgICAgICAgICAgfCBvbgor IGVuYWJsZV9zeW5jc2xvdCAgICAgICAgICAgICAgICB8IG9mZgogIGVuYWJsZV90aWRzY2FuICAg ICAgICAgICAgICAgICB8IG9uCi0oMjMgcm93cykKKygyNCByb3dzKQogCiAtLSBUaGVyZSBhcmUg YWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2YXJpb3VzIHR5cGVzLgogc2VsZWN0 IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9NIHBnX3dhaXRfZXZlbnRzCmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IDUxM2M3NzAyZmYuLmQ1MjdiZjkxOGIgMTAwNjQ0Ci0tLSBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CkBAIC0yMzI1LDYgKzIzMjUsNyBAQCBSZWxvY2F0aW9uQnVmZmVySW5mbwog UmVscHRyRnJlZVBhZ2VCdHJlZQogUmVscHRyRnJlZVBhZ2VNYW5hZ2VyCiBSZWxwdHJGcmVlUGFn ZVNwYW5MZWFkZXIKK1JlbW90ZVNsb3QKIFJlbmFtZVN0bXQKIFJlb3BlblB0clR5cGUKIFJlb3Jk ZXJCdWZmZXIKQEAgLTI1ODUsNiArMjU4Niw3IEBAIFNsYWJCbG9jawogU2xhYkNvbnRleHQKIFNs YWJTbG90CiBTbG90TnVtYmVyCitTbG90U3luY1dvcmtlckN0eFN0cnVjdAogU2xydUN0bAogU2xy dUN0bERhdGEKIFNscnVFcnJvckNhdXNlCi0tIAoyLjM0LjEKCg== --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0003-Slot-sync-worker-as-a-special-process.patch" Content-Disposition: attachment; filename="v67-0003-Slot-sync-worker-as-a-special-process.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8uu2 RnJvbSA2ZTU1MWIwNzNiZTczOTY1MTIyNzI4NDY2ZGE3ODM0MzgzNjA0YzIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTY6MTk6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NyAzLzZdIFNsb3Qtc3luYyB3b3JrZXIgYXMgYSBzcGVjaWFsIHByb2Nlc3MKClRoaXMgcGF0Y2gg YXR0ZW1wdHMgdG8gc3RhcnQgc2xvdC1zeW5jIHdvcmtlciBhcyBhIHNwZWNpYWwgcHJvY2Vzcwp3 aGljaCBpcyBuZWl0aGVyIGEgYmd3b3JrZXIgbm9yIGFuIEF1eGlsaWFyeSBwcm9jZXNzLiBUaGUg YmVuZWZpdAp3ZSBnZXQgaGVyZSBpcyB3ZSBjYW4gY29udHJvbCB0aGUgc3RhcnQtY29uZGl0aW9u cyBvZiB0aGUgd29ya2VyIHdoaWNoCmZ1cnRoZXIgYWxsb3dzIHVzIHRvIGRlZmluZSAnZW5hYmxl X3N5bmNzbG90JyBhcyBQR0NfU0lHSFVQIHdoaWNoIHdhcwpvdGhlcndpc2UgYSBQR0NfUE9TVE1B U1RFUiBHVUMgd2hlbiBzbG90c3luYyB3b3JrZXIgd2FzIHJlZ2lzdGVyZWQgYXMKYmd3b3JrZXIu Ci0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDY1 ICstLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAgICAgICB8ICAg MyAtCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgODYg KysrLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDM2 MCArKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDExIC0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5j ICAgICAgICB8ICAgMSArCiAuLi4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAg ICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgICAgICAgICAg ICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAg ICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8 ICAgMSAtCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAg IDggKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDM4NyBpbnNlcnRpb25zKCspLCAxODIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvYmd3b3JrZXIuc2dtbAppbmRleCBhN2NmZTZjNThjLi4yYzM5MzM4NWE5IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIu c2dtbApAQCAtMTE0LDU5ICsxMTQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtl cgogCiAgIDxwYXJhPgogICAgPHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIHNlcnZlciBzdGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVz PC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRp bmcKLSAgIG9ubHkgaW5kaWNhdGVzIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRl ZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVuCi0gICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVk LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgotCi0gICA8dmFyaWFibGVsaXN0PgotICAgIDx2YXJsaXN0 ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0 PC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAg PGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFy eT48L2luZGV4dGVybT4KLSAgICAgICBTdGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBo YXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsKLSAgICAgICBwcm9jZXNzZXMgcmVx dWVzdGluZyB0aGlzIGFyZSBub3QgZWxpZ2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgot ICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0g ICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25z aXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFy YT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25z aXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKLSAgICAgICBh bGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9u bHkgcXVlcmllcy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxp c3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29y a2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgotICAg ICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJn V29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRl cm0+Ci0gICAgICAgU2FtZSBtZWFuaW5nIGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lz dGVudFN0YXRlPC9saXRlcmFsPiBidXQKLSAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJt cyBvZiB0aGUgc2VydmVyIGkuZS4gc3RhcnQgdGhlIHdvcmtlciBvbmx5Ci0gICAgICAgaWYgaXQg aXMgaG90LXN0YW5kYnkuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92 YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48bGl0ZXJhbD5C Z1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlz dGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAgICBTdGFy dCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0gaGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3Rh dGUuIE5vdGUKLSAgICAgICB0aGF0IHRoZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3Rl bnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCi0gICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292 ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50Ci0gICAgICAgaW4gYSBzZXJ2ZXIg dGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5LgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVt PgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDxjb21tYW5k PnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBv bmUgb2YKKyAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFs PiAoc3RhcnQgYXMgc29vbiBhcworICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2Vs ZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsgcHJvY2Vzc2VzCisgICByZXF1 ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAor ICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFy dCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZQorICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBh IGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0bworICAgZGF0YWJh c2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJpZXMpLCBhbmQKKyAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5 c3RlbSBoYXMKKyAgIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUg bGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFsZW50CisgICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90 IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCisg ICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRvIGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Ag d2hlbiBhIGRpZmZlcmVudCBzdGF0ZQorICAgaXMgcmVhY2hlZC4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDQ2ODI4YjhhODkuLjFhZGQ0NDlm N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTEzMCw5ICsxMzAsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewogCQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWlu CiAJfSwKLQl7Ci0JCSJSZXBsU2xvdFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbgotCX0sCiAJewogCQkiUGFyYWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5 V29ya2VyTWFpbgogCX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGQ5MGQ1 ZDE1NzYuLmFkZmFmNzVjZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0x NjgsMTEgKzE2OCwxMSBAQAogICogdGhleSB3aWxsIG5ldmVyIGJlY29tZSBsaXZlIGJhY2tlbmRz LiAgZGVhZF9lbmQgY2hpbGRyZW4gYXJlIG5vdCBhc3NpZ25lZCBhCiAgKiBQTUNoaWxkU2xvdC4g IGRlYWRfZW5kIGNoaWxkcmVuIGhhdmUgYmtlbmRfdHlwZSBOT1JNQUwuCiAgKgotICogIlNwZWNp YWwiIGNoaWxkcmVuIHN1Y2ggYXMgdGhlIHN0YXJ0dXAsIGJnd3JpdGVyIGFuZCBhdXRvdmFjdXVt IGxhdW5jaGVyCi0gKiB0YXNrcyBhcmUgbm90IGluIHRoaXMgbGlzdC4gIFRoZXkgYXJlIHRyYWNr ZWQgdmlhIFN0YXJ0dXBQSUQgYW5kIG90aGVyCi0gKiBwaWRfdCB2YXJpYWJsZXMgYmVsb3cuICAo VGh1cywgdGhlcmUgY2FuJ3QgYmUgbW9yZSB0aGFuIG9uZSBvZiBhbnkgZ2l2ZW4KLSAqICJzcGVj aWFsIiBjaGlsZCBwcm9jZXNzIHR5cGUuICBXZSB1c2UgQmFja2VuZExpc3QgZW50cmllcyBmb3Ig YW55IGNoaWxkCi0gKiBwcm9jZXNzIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIG9mLikKKyAq ICJTcGVjaWFsIiBjaGlsZHJlbiBzdWNoIGFzIHRoZSBzdGFydHVwLCBiZ3dyaXRlciwgYXV0b3Zh Y3V1bSBsYXVuY2hlciBhbmQKKyAqIHNsb3Qgc3luYyB3b3JrZXIgdGFza3MgYXJlIG5vdCBpbiB0 aGlzIGxpc3QuICBUaGV5IGFyZSB0cmFja2VkIHZpYSBTdGFydHVwUElECisgKiBhbmQgb3RoZXIg cGlkX3QgdmFyaWFibGVzIGJlbG93LiAgKFRodXMsIHRoZXJlIGNhbid0IGJlIG1vcmUgdGhhbiBv bmUgb2YgYW55CisgKiBnaXZlbiAic3BlY2lhbCIgY2hpbGQgcHJvY2VzcyB0eXBlLiAgV2UgdXNl IEJhY2tlbmRMaXN0IGVudHJpZXMgZm9yIGFueQorICogY2hpbGQgcHJvY2VzcyB0aGVyZSBjYW4g YmUgbW9yZSB0aGFuIG9uZSBvZi4pCiAgKi8KIHR5cGVkZWYgc3RydWN0IGJrZW5kCiB7CkBAIC0y NTUsNyArMjU1LDggQEAgc3RhdGljIHBpZF90IFN0YXJ0dXBQSUQgPSAwLAogCQkJV2FsU3VtbWFy aXplclBJRCA9IDAsCiAJCQlBdXRvVmFjUElEID0gMCwKIAkJCVBnQXJjaFBJRCA9IDAsCi0JCQlT eXNMb2dnZXJQSUQgPSAwOworCQkJU3lzTG9nZ2VyUElEID0gMCwKKwkJCVNsb3RTeW5jV29ya2Vy UElEID0gMDsKIAogLyogU3RhcnR1cCBwcm9jZXNzJ3Mgc3RhdHVzICovCiB0eXBlZGVmIGVudW0K QEAgLTQ1OSw2ICs0NjAsMTAgQEAgc3RhdGljIHZvaWQgSW5pdFBvc3RtYXN0ZXJEZWF0aFdhdGNo SGFuZGxlKHZvaWQpOwogCSAgIChwbVN0YXRlID09IFBNX1JFQ09WRVJZIHx8IHBtU3RhdGUgPT0g UE1fSE9UX1NUQU5EQlkpKSkgJiYgXAogCSBQZ0FyY2hDYW5SZXN0YXJ0KCkpCiAKKyNkZWZpbmUg U2xvdFN5bmNXb3JrZXJBbGxvd2VkKCkJXAorCShlbmFibGVfc3luY3Nsb3QgJiYgcG1TdGF0ZSA9 PSBQTV9IT1RfU1RBTkRCWSAmJiBcCisJIFNsb3RTeW5jV29ya2VyQ2FuUmVzdGFydCgpKQorCiAj aWZkZWYgRVhFQ19CQUNLRU5ECiAKICNpZmRlZiBXSU4zMgpAQCAtMTAxMSwxMiArMTAxNiw2IEBA IFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICovCiAJQXBwbHlMYXVu Y2hlclJlZ2lzdGVyKCk7CiAKLQkvKgotCSAqIFJlZ2lzdGVyIHRoZSBzbG90IHN5bmMgd29ya2Vy IGhlcmUgdG8ga2ljayBzdGFydCBzbG90LXN5bmMgb3BlcmF0aW9uCi0JICogc29vbmVyIG9uIHRo ZSBwaHlzaWNhbCBzdGFuZGJ5LgotCSAqLwotCVNsb3RTeW5jV29ya2VyUmVnaXN0ZXIoKTsKLQog CS8qCiAJICogcHJvY2VzcyBhbnkgbGlicmFyaWVzIHRoYXQgc2hvdWxkIGJlIHByZWxvYWRlZCBh dCBwb3N0bWFzdGVyIHN0YXJ0CiAJICovCkBAIC0xODM3LDYgKzE4MzYsMTAgQEAgU2VydmVyTG9v cCh2b2lkKQogCQlpZiAoUGdBcmNoUElEID09IDAgJiYgUGdBcmNoU3RhcnR1cEFsbG93ZWQoKSkK IAkJCVBnQXJjaFBJRCA9IFN0YXJ0QXJjaGl2ZXIoKTsKIAorCQkvKiBJZiB3ZSBuZWVkIHRvIHN0 YXJ0IGEgc2xvdCBzeW5jIHdvcmtlciwgdHJ5IHRvIGRvIHRoYXQgbm93ICovCisJCWlmIChTbG90 U3luY1dvcmtlclBJRCA9PSAwICYmIFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpKQorCQkJU2xvdFN5 bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CisKIAkJLyogSWYgd2UgbmVlZCB0 byBzaWduYWwgdGhlIGF1dG92YWN1dW0gbGF1bmNoZXIsIGRvIHNvIG5vdyAqLwogCQlpZiAoYXZs YXVuY2hlcl9uZWVkc19zaWduYWwpCiAJCXsKQEAgLTI2ODQsNiArMjY4Nyw4IEBAIHByb2Nlc3Nf cG1fcmVsb2FkX3JlcXVlc3Qodm9pZCkKIAkJCXNpZ25hbF9jaGlsZChQZ0FyY2hQSUQsIFNJR0hV UCk7CiAJCWlmIChTeXNMb2dnZXJQSUQgIT0gMCkKIAkJCXNpZ25hbF9jaGlsZChTeXNMb2dnZXJQ SUQsIFNJR0hVUCk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2No aWxkKFNsb3RTeW5jV29ya2VyUElELCBTSUdIVVApOwogCiAJCS8qIFJlbG9hZCBhdXRoZW50aWNh dGlvbiBjb25maWcgZmlsZXMgdG9vICovCiAJCWlmICghbG9hZF9oYmEoKSkKQEAgLTMwNDEsNiAr MzA0Niw4IEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lkKQogCQkJCUF1dG9WYWNQSUQgPSBT dGFydEF1dG9WYWNMYXVuY2hlcigpOwogCQkJaWYgKFBnQXJjaFN0YXJ0dXBBbGxvd2VkKCkgJiYg UGdBcmNoUElEID09IDApCiAJCQkJUGdBcmNoUElEID0gU3RhcnRBcmNoaXZlcigpOworCQkJaWYg KFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpICYmIFNsb3RTeW5jV29ya2VyUElEID09IDApCisJCQkJ U2xvdFN5bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CiAKIAkJCS8qIHdvcmtl cnMgbWF5IGJlIHNjaGVkdWxlZCB0byBzdGFydCBub3cgKi8KIAkJCW1heWJlX3N0YXJ0X2Jnd29y a2VycygpOwpAQCAtMzIxMSw2ICszMjE4LDIyIEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lk KQogCQkJY29udGludWU7CiAJCX0KIAorCQkvKgorCQkgKiBXYXMgaXQgdGhlIHNsb3Qgc3luYyB3 b3JrZXI/IE5vcm1hbCBleGl0IG9yIEZBVEFMIGV4aXQgY2FuIGJlCisJCSAqIGlnbm9yZWQgKEZB VEFMIGNhbiBiZSBjYXVzZWQgYnkgbGlicHF3YWxyZWNlaXZlciBvbiByZWNlaXZpbmcKKwkJICog c2h1dGRvd24gcmVxdWVzdCBieSB0aGUgc3RhcnR1cCBwcm9jZXNzIGR1cmluZyBwcm9tb3Rpb24p OyB3ZSdsbAorCQkgKiBzdGFydCBhIG5ldyBvbmUgYXQgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRo ZSBwb3N0bWFzdGVyJ3MgbWFpbgorCQkgKiBsb29wLCBpZiBuZWNlc3NhcnkuIEFueSBvdGhlciBl eGl0IGNvbmRpdGlvbiBpcyB0cmVhdGVkIGFzIGEgY3Jhc2guCisJCSAqLworCQlpZiAocGlkID09 IFNsb3RTeW5jV29ya2VyUElEKQorCQl7CisJCQlTbG90U3luY1dvcmtlclBJRCA9IDA7CisJCQlp ZiAoIUVYSVRfU1RBVFVTXzAoZXhpdHN0YXR1cykgJiYgIUVYSVRfU1RBVFVTXzEoZXhpdHN0YXR1 cykpCisJCQkJSGFuZGxlQ2hpbGRDcmFzaChwaWQsIGV4aXRzdGF0dXMsCisJCQkJCQkJCSBfKCJz bG90IHN5bmMgd29ya2VyIHByb2Nlc3MiKSk7CisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIFdh cyBpdCBvbmUgb2Ygb3VyIGJhY2tncm91bmQgd29ya2Vycz8gKi8KIAkJaWYgKENsZWFudXBCYWNr Z3JvdW5kV29ya2VyKHBpZCwgZXhpdHN0YXR1cykpCiAJCXsKQEAgLTM1NzcsNiArMzYwMCwxMiBA QCBIYW5kbGVDaGlsZENyYXNoKGludCBwaWQsIGludCBleGl0c3RhdHVzLCBjb25zdCBjaGFyICpw cm9jbmFtZSkKIAllbHNlIGlmIChQZ0FyY2hQSUQgIT0gMCAmJiB0YWtlX2FjdGlvbikKIAkJc2ln cXVpdF9jaGlsZChQZ0FyY2hQSUQpOwogCisJLyogVGFrZSBjYXJlIG9mIHRoZSBzbG90IHN5bmMg d29ya2VyIHRvbyAqLworCWlmIChwaWQgPT0gU2xvdFN5bmNXb3JrZXJQSUQpCisJCVNsb3RTeW5j V29ya2VyUElEID0gMDsKKwllbHNlIGlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwICYmIHRha2Vf YWN0aW9uKQorCQlzaWdxdWl0X2NoaWxkKFNsb3RTeW5jV29ya2VyUElEKTsKKwogCS8qIFdlIGRv IE5PVCByZXN0YXJ0IHRoZSBzeXNsb2dnZXIgKi8KIAogCWlmIChTaHV0ZG93biAhPSBJbW1lZGlh dGVTaHV0ZG93bikKQEAgLTM3MTcsNiArMzc0Niw4IEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJCXNpZ25hbF9jaGlsZChXYWxSZWNlaXZlclBJRCwgU0lHVEVSTSk7CiAJCWlmIChX YWxTdW1tYXJpemVyUElEICE9IDApCiAJCQlzaWduYWxfY2hpbGQoV2FsU3VtbWFyaXplclBJRCwg U0lHVEVSTSk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2NoaWxk KFNsb3RTeW5jV29ya2VyUElELCBTSUdURVJNKTsKIAkJLyogY2hlY2twb2ludGVyLCBhcmNoaXZl ciwgc3RhdHMsIGFuZCBzeXNsb2dnZXIgbWF5IGNvbnRpbnVlIGZvciBub3cgKi8KIAogCQkvKiBO b3cgdHJhbnNpdGlvbiB0byBQTV9XQUlUX0JBQ0tFTkRTIHN0YXRlIHRvIHdhaXQgZm9yIHRoZW0g dG8gZGllICovCkBAIC0zNzMyLDEzICszNzYzLDEzIEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJLyoKIAkJICogUE1fV0FJVF9CQUNLRU5EUyBzdGF0ZSBlbmRzIHdoZW4gd2UgaGF2 ZSBubyByZWd1bGFyIGJhY2tlbmRzCiAJCSAqIChpbmNsdWRpbmcgYXV0b3ZhYyB3b3JrZXJzKSwg bm8gYmd3b3JrZXJzIChpbmNsdWRpbmcgdW5jb25uZWN0ZWQKLQkJICogb25lcyksIGFuZCBubyB3 YWx3cml0ZXIsIGF1dG92YWMgbGF1bmNoZXIgb3IgYmd3cml0ZXIuICBJZiB3ZSBhcmUKLQkJICog ZG9pbmcgY3Jhc2ggcmVjb3Zlcnkgb3IgYW4gaW1tZWRpYXRlIHNodXRkb3duIHRoZW4gd2UgZXhw ZWN0IHRoZQotCQkgKiBjaGVja3BvaW50ZXIgdG8gZXhpdCBhcyB3ZWxsLCBvdGhlcndpc2Ugbm90 LiBUaGUgc3RhdHMgYW5kCi0JCSAqIHN5c2xvZ2dlciBwcm9jZXNzZXMgYXJlIGRpc3JlZ2FyZGVk IHNpbmNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8KLQkJICogc2hhcmVkIG1lbW9yeTsgd2Ug YWxzbyBkaXNyZWdhcmQgZGVhZF9lbmQgY2hpbGRyZW4gaGVyZS4gV2Fsc2VuZGVycwotCQkgKiBh bmQgYXJjaGl2ZXIgYXJlIGFsc28gZGlzcmVnYXJkZWQsIHRoZXkgd2lsbCBiZSB0ZXJtaW5hdGVk IGxhdGVyCi0JCSAqIGFmdGVyIHdyaXRpbmcgdGhlIGNoZWNrcG9pbnQgcmVjb3JkLgorCQkgKiBv bmVzKSwgYW5kIG5vIHdhbHdyaXRlciwgYXV0b3ZhYyBsYXVuY2hlciwgYmd3cml0ZXIgb3Igc2xv dCBzeW5jCisJCSAqIHdvcmtlci4gIElmIHdlIGFyZSBkb2luZyBjcmFzaCByZWNvdmVyeSBvciBh biBpbW1lZGlhdGUgc2h1dGRvd24KKwkJICogdGhlbiB3ZSBleHBlY3QgdGhlIGNoZWNrcG9pbnRl ciB0byBleGl0IGFzIHdlbGwsIG90aGVyd2lzZSBub3QuIFRoZQorCQkgKiBzdGF0cyBhbmQgc3lz bG9nZ2VyIHByb2Nlc3NlcyBhcmUgZGlzcmVnYXJkZWQgc2luY2UgdGhleSBhcmUgbm90CisJCSAq IGNvbm5lY3RlZCB0byBzaGFyZWQgbWVtb3J5OyB3ZSBhbHNvIGRpc3JlZ2FyZCBkZWFkX2VuZCBj aGlsZHJlbgorCQkgKiBoZXJlLiBXYWxzZW5kZXJzIGFuZCBhcmNoaXZlciBhcmUgYWxzbyBkaXNy ZWdhcmRlZCwgdGhleSB3aWxsIGJlCisJCSAqIHRlcm1pbmF0ZWQgbGF0ZXIgYWZ0ZXIgd3JpdGlu ZyB0aGUgY2hlY2twb2ludCByZWNvcmQuCiAJCSAqLwogCQlpZiAoQ291bnRDaGlsZHJlbihCQUNL RU5EX1RZUEVfQUxMIC0gQkFDS0VORF9UWVBFX1dBTFNORCkgPT0gMCAmJgogCQkJU3RhcnR1cFBJ RCA9PSAwICYmCkBAIC0zNzQ4LDcgKzM3NzksOCBAQCBQb3N0bWFzdGVyU3RhdGVNYWNoaW5lKHZv aWQpCiAJCQkoQ2hlY2twb2ludGVyUElEID09IDAgfHwKIAkJCSAoIUZhdGFsRXJyb3IgJiYgU2h1 dGRvd24gPCBJbW1lZGlhdGVTaHV0ZG93bikpICYmCiAJCQlXYWxXcml0ZXJQSUQgPT0gMCAmJgot CQkJQXV0b1ZhY1BJRCA9PSAwKQorCQkJQXV0b1ZhY1BJRCA9PSAwICYmCisJCQlTbG90U3luY1dv cmtlclBJRCA9PSAwKQogCQl7CiAJCQlpZiAoU2h1dGRvd24gPj0gSW1tZWRpYXRlU2h1dGRvd24g fHwgRmF0YWxFcnJvcikKIAkJCXsKQEAgLTM4NDYsNiArMzg3OCw3IEBAIFBvc3RtYXN0ZXJTdGF0 ZU1hY2hpbmUodm9pZCkKIAkJCUFzc2VydChDaGVja3BvaW50ZXJQSUQgPT0gMCk7CiAJCQlBc3Nl cnQoV2FsV3JpdGVyUElEID09IDApOwogCQkJQXNzZXJ0KEF1dG9WYWNQSUQgPT0gMCk7CisJCQlB c3NlcnQoU2xvdFN5bmNXb3JrZXJQSUQgPT0gMCk7CiAJCQkvKiBzeXNsb2dnZXIgaXMgbm90IGNv bnNpZGVyZWQgaGVyZSAqLwogCQkJcG1TdGF0ZSA9IFBNX05PX0NISUxEUkVOOwogCQl9CkBAIC00 MDY5LDYgKzQxMDIsOCBAQCBUZXJtaW5hdGVDaGlsZHJlbihpbnQgc2lnbmFsKQogCQlzaWduYWxf Y2hpbGQoQXV0b1ZhY1BJRCwgc2lnbmFsKTsKIAlpZiAoUGdBcmNoUElEICE9IDApCiAJCXNpZ25h bF9jaGlsZChQZ0FyY2hQSUQsIHNpZ25hbCk7CisJaWYgKFNsb3RTeW5jV29ya2VyUElEICE9IDAp CisJCXNpZ25hbF9jaGlsZChTbG90U3luY1dvcmtlclBJRCwgc2lnbmFsKTsKIH0KIAogLyoKQEAg LTQ4ODEsNiArNDkxNiw3IEBAIFN1YlBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJICovCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3JrYmFja2VuZCIpID09IDAgfHwK IAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmthdmxhdW5jaGVyIikgPT0gMCB8fAorCQlzdHJjbXAo YXJndlsxXSwgIi0tZm9ya3Nzd29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0t Zm9ya2F2d29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0tZm9ya2F1eCIpID09 IDAgfHwKIAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCkBAIC00OTg0 LDYgKzUwMjAsMTMgQEAgU3ViUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAogCQlBdXRvVmFjV29ya2VyTWFpbihhcmdjIC0gMiwgYXJndiArIDIpOwkvKiBkb2VzIG5vdCBy ZXR1cm4gKi8KIAl9CisJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3Jrc3N3b3JrZXIiKSA9PSAw KQorCXsKKwkJLyogUmVzdG9yZSBiYXNpYyBzaGFyZWQgbWVtb3J5IHBvaW50ZXJzICovCisJCUlu aXRTaG1lbUFjY2VzcyhVc2VkU2htZW1TZWdBZGRyKTsKKworCQlSZXBsU2xvdFN5bmNXb3JrZXJN YWluKGFyZ2MgLSAyLCBhcmd2ICsgMik7IC8qIGRvZXMgbm90IHJldHVybiAqLworCX0KIAlpZiAo c3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCiAJewogCQkvKiBkbyB0aGlz IGFzIGVhcmx5IGFzIHBvc3NpYmxlOyBpbiBwYXJ0aWN1bGFyLCBiZWZvcmUgSW5pdFByb2Nlc3Mo KSAqLwpAQCAtNTgwNiw5ICs1ODQ5LDYgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhCZ1dv cmtlclN0YXJ0VGltZSBzdGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJaWYg KHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0dXJu IHRydWU7Ci0JCQlpZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0 ZV9Ib3RTdGFuZGJ5ICYmCi0JCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKLQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKaW5kZXggODRiNjYxMDRmNy4uMmEw MzM2NDdiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90 c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpA QCAtNDAsOSArNDAsMTIgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3JlY292ZXJ5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFu ZHMuaCIKKyNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgog I2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2Zv cmtfcHJvY2Vzcy5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCisjaW5jbHVk ZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNh bC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUg InJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKQEAgLTU1LDYgKzU4LDggQEAKICNpbmNsdWRl ICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgogI2luY2x1 ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgorI2luY2x1 ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCkBA IC05OCw3ICsxMDMsOCBAQCBTbG90U3luY1dvcmtlckN0eFN0cnVjdCAqU2xvdFN5bmNXb3JrZXIg PSBOVUxMOwogLyogR1VDIHZhcmlhYmxlICovCiBib29sCQllbmFibGVfc3luY3Nsb3QgPSBmYWxz ZTsKIAotLyogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qtc3luYyBjeWNsZXMgdmFy aWVzIGR5bmFtaWNhbGx5CisvKgorICogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qt c3luYyBjeWNsZXMgdmFyaWVzIGR5bmFtaWNhbGx5CiAgKiAod2l0aGluIGEgTUlOL01BWCByYW5n ZSkgYWNjb3JkaW5nIHRvIHNsb3QgYWN0aXZpdHkuIFNlZQogICogd2FpdF9mb3Jfc2xvdF9hY3Rp dml0eSgpIGZvciBkZXRhaWxzLgogICovCkBAIC0xMDcsOCArMTEzLDE2IEBAIGJvb2wJCWVuYWJs ZV9zeW5jc2xvdCA9IGZhbHNlOwogCiBzdGF0aWMgbG9uZyBzbGVlcF9tcyA9IE1JTl9XT1JLRVJf TkFQVElNRV9NUzsKIAorLyogRmxhZyB0byB0ZWxsIGlmIHdlIGFyZSBpbiBhIHNsb3Qgc3luYyB3 b3JrZXIgcHJvY2VzcyAqLworc3RhdGljIGJvb2wgYW1fc2xvdHN5bmNfd29ya2VyID0gZmFsc2U7 CisKIHN0YXRpYyB2b2lkIFByb2Nlc3NTbG90U3luY0ludGVycnVwdHMoV2FsUmVjZWl2ZXJDb25u ICp3cmNvbm4pOwogCisjaWZkZWYgRVhFQ19CQUNLRU5ECitzdGF0aWMgcGlkX3Qgc2xvdHN5bmN3 b3JrZXJfZm9ya2V4ZWModm9pZCk7CisjZW5kaWYKK05PTl9FWEVDX1NUQVRJQyB2b2lkIFJlcGxT bG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgcGdfYXR0cmlidXRlX25v cmV0dXJuKCk7CisKIC8qCiAgKiBJZiBuZWNlc3NhcnksIHVwZGF0ZSBsb2NhbCBzbG90IG1ldGFk YXRhIGJhc2VkIG9uIHRoZSBkYXRhIGZyb20gdGhlIHJlbW90ZQogICogc2xvdC4KQEAgLTcxMiw3 ICs3MjYsOCBAQCBzeW5jaHJvbml6ZV9zbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKICAq IHN0YW5kYnlzLgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tfcHJpbWFyeV9pbmZvKFdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdfc3RhbmRieSkKK2NoZWNrX3ByaW1h cnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5k YnksCisJCQkJICAgYm9vbCAqcHJpbWFyeV9zbG90X2ludmFsaWQpCiB7CiAjZGVmaW5lIFBSSU1B UllfSU5GT19PVVRQVVRfQ09MX0NPVU5UIDIKIAlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CkBAIC03 MjcsOCArNzQyLDEwIEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29u biwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQo KTsKIAogCUFzc2VydChhbV9jYXNjYWRpbmdfc3RhbmRieSAhPSBOVUxMKTsKKwlBc3NlcnQocHJp bWFyeV9zbG90X2ludmFsaWQgIT0gTlVMTCk7CiAKIAkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBm YWxzZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgY2FzY2FkaW5nICovCisJKnByaW1hcnlfc2xv dF9pbnZhbGlkID0gZmFsc2U7CS8qIG92ZXJ3cml0dGVuIGxhdGVyIGlmIGludmFsaWQgKi8KIAog CWluaXRTdHJpbmdJbmZvKCZjbWQpOwogCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKQEAgLTc2Niwx MyArNzgzLDE2IEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29ubiwg Ym9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiAJCUFzc2VydCghaXNudWxsKTsKIAogCQlpZiAo IXZhbGlkKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJKnByaW1hcnlfc2xvdF9pbnZhbGlk ID0gdHJ1ZTsKKwkJCWVyZXBvcnQoTE9HLAogCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAotCQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9u aXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQkJZXJybXNnKCJiYWQgY29u ZmlndXJhdGlvbiBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCS8qIHRyYW5zbGF0b3I6 IHNlY29uZCAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCiAJCQkJCWVycmRldGFpbCgiVGhl IHByaW1hcnkgc2VydmVyIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBieSIKIAkJCQkJCQkgICIgXCIl c1wiIGlzIG5vdCB2YWxpZC4iLAogCQkJCQkJCSAgUHJpbWFyeVNsb3ROYW1lLCAicHJpbWFyeV9z bG90X25hbWUiKSk7CisJCX0KIAl9CiAKIAlFeGVjQ2xlYXJUdXBsZSh0dXBzbG90KTsKQEAgLTc4 MSwyMCArODAxLDE1IEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29u biwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiB9CiAKIC8qCi0gKiBDaGVjayB0aGF0IGFs bCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24gYXJlIHNldAotICogYXBw cm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBhbiBFUlJPUi4KKyAqIFJldHVybnMgdHJ1ZSBpZiBh bGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBzZXQKKyAqIGFw cHJvcHJpYXRlbHksIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogICoKICAqIElmIGFsbCBjaGVj a3MgcGFzcywgZXh0cmFjdHMgdGhlIGRibmFtZSBmcm9tIHRoZSBwcmltYXJ5X2Nvbm5pbmZvIEdV QyBhbmQKLSAqIHJldHVybnMgaXQuCisgKiBhbmQgcmV0dXJuIGl0IGluIG91dHB1dCBkYm5hbWUg YXJnLgogICovCi1zdGF0aWMgY2hhciAqCi12YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJu YW1lKHZvaWQpCitzdGF0aWMgYm9vbAordmFsaWRhdGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFt ZShjaGFyICoqZGJuYW1lKQogewotCWNoYXIJICAgKmRibmFtZTsKLQotCS8qIFNhbml0eSBjaGVj ay4gKi8KLQlBc3NlcnQoZW5hYmxlX3N5bmNzbG90KTsKLQogCS8qCiAJICogQSBwaHlzaWNhbCBy ZXBsaWNhdGlvbiBzbG90KHByaW1hcnlfc2xvdF9uYW1lKSBpcyByZXF1aXJlZCBvbiB0aGUKIAkg KiBwcmltYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSByb3dzIG5lZWRlZCBieSB0aGUgc3RhbmRieSBh cmUgbm90IHJlbW92ZWQKQEAgLTgwMiwxMCArODE3LDEzIEBAIHZhbGlkYXRlX3BhcmFtZXRlcnNf YW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBiZSBpbnZhbGlkYXRlZC4KIAkgKi8KIAlpZiAoUHJp bWFyeVNsb3ROYW1lID09IE5VTEwgfHwgc3RyY21wKFByaW1hcnlTbG90TmFtZSwgIiIpID09IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJhbnNsYXRvcjog JXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwotCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNs b3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycm1z ZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCiAJCQkJZXJy aGludCgiXCIlc1wiIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJ CXJldHVybiBmYWxzZTsKKwl9CiAKIAkvKgogCSAqIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG11c3Qg YmUgZW5hYmxlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgcGh5c2ljYWwKQEAgLTgxMyw0NSArODMx LDk0IEBAIHZhbGlkYXRlX3BhcmFtZXRlcnNfYW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBjYXRh bG9nX3htaW4gdmFsdWVzIG9uIHRoZSBzdGFuZGJ5LgogCSAqLwogCWlmICghaG90X3N0YW5kYnlf ZmVlZGJhY2spCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJh bnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwotCQkJCWVycm1zZygiZXhpdGlu ZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAor CQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIiks CiAJCQkJZXJyaGludCgiXCIlc1wiIG11c3QgYmUgZW5hYmxlZC4iLCAiaG90X3N0YW5kYnlfZmVl ZGJhY2siKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAkvKgogCSAqIExvZ2ljYWwgZGVjb2Rp bmcgcmVxdWlyZXMgd2FsX2xldmVsID49IGxvZ2ljYWwgYW5kIHdlIGN1cnJlbnRseSBvbmx5CiAJ ICogc3luY2hyb25pemUgbG9naWNhbCBzbG90cy4KIAkgKi8KIAlpZiAod2FsX2xldmVsIDwgV0FM X0xFVkVMX0xPR0lDQUwpCi0JCWVyZXBvcnQoRVJST1IsCi0JCS8qIHRyYW5zbGF0b3I6ICVzIGlz IGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KLQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5 bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwl7CisJCWVyZXBvcnQo TE9HLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25pemF0 aW9uIiksCiAJCQkJZXJyaGludCgiXCJ3YWxfbGV2ZWxcIiBtdXN0IGJlID49IGxvZ2ljYWwuIikp OworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJLyoKIAkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBp cyByZXF1aXJlZCB0byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKIAkgKiBnZXR0aW5n IHNsb3RzIGluZm9ybWF0aW9uLgogCSAqLwogCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8 fCBzdHJjbXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7 CisJCWVyZXBvcnQoTE9HLAogCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBu YW1lICovCi0JCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVl IHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBm b3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCJcIiVzXCIgbXVzdCBiZSBk ZWZpbmVkLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJ LyoKIAkgKiBUaGUgc2xvdCBzeW5jIHdvcmtlciBuZWVkcyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24g Zm9yIHdhbHJjdl9leGVjIHRvCiAJICogd29yay4KIAkgKi8KLQlkYm5hbWUgPSB3YWxyY3ZfZ2V0 X2RibmFtZV9mcm9tX2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7Ci0JaWYgKGRibmFtZSA9PSBO VUxMKQotCQllcmVwb3J0KEVSUk9SLAorCSpkYm5hbWUgPSB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9t X2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7CisJaWYgKCpkYm5hbWUgPT0gTlVMTCkKKwl7CisJ CWVyZXBvcnQoTE9HLAogCiAJCS8qCiAJCSAqIHRyYW5zbGF0b3I6ICdkYm5hbWUnIGlzIGEgc3Bl Y2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJsZQogCQkgKiBuYW1lCiAJCSAqLwotCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3lu Y2hyb25pemF0aW9uIiksCiAJCQkJZXJyaGludCgiJ2RibmFtZScgbXVzdCBiZSBzcGVjaWZpZWQg aW4gXCIlc1wiLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQor CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IGFsbCBuZWNlc3NhcnkgR1VD cyBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24gYXJlIHNldAorICogYXBwcm9wcmlhdGVseS4gSWYg bm90LCBzbGVlcCBmb3IgTUFYX1dPUktFUl9OQVBUSU1FX01TIGFuZCBjaGVjayBhZ2Fpbi4KKyAq IFRoZSBpZGVhIGlzIHRvIGJlY29tZSBuby1vcCB1bnRpbCB3ZSBnZXQgdmFsaWQgR1VDcyB2YWx1 ZXMuCisgKgorICogSWYgYWxsIGNoZWNrcyBwYXNzLCBleHRyYWN0cyB0aGUgZGJuYW1lIGZyb20g dGhlIHByaW1hcnlfY29ubmluZm8gR1VDIGFuZAorICogcmV0dXJucyBpdC4KKyAqLworc3RhdGlj IGNoYXIgKgord2FpdF9mb3JfdmFsaWRfcGFyYW1zX2FuZF9nZXRfZGJuYW1lKHZvaWQpCit7CisJ Y2hhcgkgICAqZGJuYW1lOworCWludAkJCXJjOworCisJLyogU2FuaXR5IGNoZWNrLiAqLworCUFz c2VydChlbmFibGVfc3luY3Nsb3QpOworCisJZm9yICg7OykKKwl7CisJCWlmICh2YWxpZGF0ZV9w YXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKCZkYm5hbWUpKQorCQkJYnJlYWs7CisKKwkJZXJlcG9y dChMT0csIGVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSk7CisKKwkJUHJv Y2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhOVUxMKTsKKworCQlyYyA9IFdhaXRMYXRjaChNeUxhdGNo LAorCQkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFU SCwKKwkJCQkJICAgTUFYX1dPUktFUl9OQVBUSU1FX01TLAorCQkJCQkgICBXQUlUX0VWRU5UX1JF UExfU0xPVFNZTkNfTUFJTik7CisKKwkJaWYgKHJjICYgV0xfTEFUQ0hfU0VUKQorCQkJUmVzZXRM YXRjaChNeUxhdGNoKTsKKwl9CiAKIAlyZXR1cm4gZGJuYW1lOwogfQpAQCAtODY3LDE2ICs5MzQs MjggQEAgc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2b2lkKQogewogCWNoYXIJICAgKm9sZF9wcmlt YXJ5X2Nvbm5pbmZvID0gcHN0cmR1cChQcmltYXJ5Q29ubkluZm8pOwogCWNoYXIJICAgKm9sZF9w cmltYXJ5X3Nsb3RuYW1lID0gcHN0cmR1cChQcmltYXJ5U2xvdE5hbWUpOworCWJvb2wJCW9sZF9l bmFibGVfc3luY3Nsb3QgPSBlbmFibGVfc3luY3Nsb3Q7CiAJYm9vbAkJb2xkX2hvdF9zdGFuZGJ5 X2ZlZWRiYWNrID0gaG90X3N0YW5kYnlfZmVlZGJhY2s7CiAJYm9vbAkJY29ubmluZm9fY2hhbmdl ZDsKIAlib29sCQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQ7CiAKKwlBc3NlcnQoZW5hYmxlX3N5 bmNzbG90KTsKKwogCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKIAlQcm9jZXNzQ29uZmln RmlsZShQR0NfU0lHSFVQKTsKIAogCWNvbm5pbmZvX2NoYW5nZWQgPSBzdHJjbXAob2xkX3ByaW1h cnlfY29ubmluZm8sIFByaW1hcnlDb25uSW5mbykgIT0gMDsKIAlwcmltYXJ5X3Nsb3RuYW1lX2No YW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfc2xvdG5hbWUsIFByaW1hcnlTbG90TmFtZSkgIT0g MDsKIAorCWlmIChvbGRfZW5hYmxlX3N5bmNzbG90ICE9IGVuYWJsZV9zeW5jc2xvdCkKKwl7CisJ CWVyZXBvcnQoTE9HLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1l ICovCisJCQkJZXJybXNnKCJzbG90IHN5bmMgd29ya2VyIHdpbGwgc2h1dGRvd24gYmVjYXVzZSIK KwkJCQkJICAgIiAlcyBpcyBkaXNhYmxlZCIsICJlbmFibGVfc3luY3Nsb3QiKSk7CisJCXByb2Nf ZXhpdCgwKTsKKwl9CisKIAlpZiAoY29ubmluZm9fY2hhbmdlZCB8fAogCQlwcmltYXJ5X3Nsb3Ru YW1lX2NoYW5nZWQgfHwKIAkJKG9sZF9ob3Rfc3RhbmRieV9mZWVkYmFjayAhPSBob3Rfc3RhbmRi eV9mZWVkYmFjaykpCkBAIC04ODQsOCArOTYzLDcgQEAgc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2 b2lkKQogCQllcmVwb3J0KExPRywKIAkJCQllcnJtc2coInNsb3Qgc3luYyB3b3JrZXIgd2lsbCBy ZXN0YXJ0IGJlY2F1c2Ugb2YgYSBwYXJhbWV0ZXIgY2hhbmdlIikpOwogCi0JCS8qIFRoZSBleGl0 IGNvZGUgMSB3aWxsIG1ha2UgcG9zdG1hc3RlciByZXN0YXJ0IHRoaXMgd29ya2VyICovCi0JCXBy b2NfZXhpdCgxKTsKKwkJcHJvY19leGl0KDApOwogCX0KIAogCXBmcmVlKG9sZF9wcmltYXJ5X2Nv bm5pbmZvKTsKQEAgLTkwMiw3ICs5ODAsOCBAQCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdh bFJlY2VpdmVyQ29ubiAqd3Jjb25uKQogCiAJaWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCiAJ ewotCQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOworCQlpZiAod3Jjb25uKQorCQkJd2FscmN2 X2Rpc2Nvbm5lY3Qod3Jjb25uKTsKIAkJZXJlcG9ydChMT0csCiAJCQkJZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gb24gcmVjZWl2aW5nIFNJR0lO VCIpKTsKIAkJcHJvY19leGl0KDApOwpAQCAtOTM0LDE3ICsxMDEzLDE2IEBAIHNsb3RzeW5jX3dv cmtlcl9vbmV4aXQoaW50IGNvZGUsIERhdHVtIGFyZykKICAqIHN5bmMtY3ljbGVzIGlzIHJlc2V0 IHRvIHRoZSBtaW5pbXVtICgyMDBtcykuCiAgKi8KIHN0YXRpYyB2b2lkCi13YWl0X2Zvcl9zbG90 X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wgYW1fY2FzY2FkaW5nX3N0YW5k YnkpCit3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wg cmVjaGVja19wcmltYXJ5X2luZm8pCiB7CiAJaW50CQkJcmM7CiAKLQlpZiAoYW1fY2FzY2FkaW5n X3N0YW5kYnkpCisJaWYgKHJlY2hlY2tfcHJpbWFyeV9pbmZvKQogCXsKIAkJLyoKLQkJICogU2xv dCBzeW5jaHJvbml6YXRpb24gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5n Ci0JCSAqIHN0YW5kYnkuIFNvIGlmIHdlIGFyZSBvbiB0aGUgY2FzY2FkaW5nIHN0YW5kYnksIHdl IHdpbGwgc2tpcCB0aGUKLQkJICogc3luYyBhbmQgdGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdl IGNoZWNrIGFnYWluIHdoZXRoZXIgd2UgYXJlCi0JCSAqIHN0aWxsIGNhc2NhZGluZyBzdGFuZGJ5 IG9yIG5vdC4KKwkJICogSWYgd2UgYXJlIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieSBvciBwcmlt YXJ5X3Nsb3RfbmFtZSBjb25maWd1cmVkCisJCSAqIGlzIG5vdCB2YWxpZCwgdGhlbiB3ZSB3aWxs IHNraXAgdGhlIHN5bmMgYW5kIHRha2UgYSBsb25nZXIgbmFwCisJCSAqIGJlZm9yZSB3ZSBjYW4g ZG8gY2hlY2tfcHJpbWFyeV9pbmZvKCkgYWdhaW4uCiAJCSAqLwogCQlzbGVlcF9tcyA9IE1BWF9X T1JLRVJfTkFQVElNRV9NUzsKIAl9CkBAIC05ODAsMjAgKzEwNTgsMzggQEAgd2FpdF9mb3Jfc2xv dF9hY3Rpdml0eShib29sIHNvbWVfc2xvdF91cGRhdGVkLCBib29sIGFtX2Nhc2NhZGluZ19zdGFu ZGJ5KQogICogSXQgY29ubmVjdHMgdG8gdGhlIHByaW1hcnkgc2VydmVyLCBmZXRjaGVzIGxvZ2lj YWwgZmFpbG92ZXIgc2xvdHMKICAqIGluZm9ybWF0aW9uIHBlcmlvZGljYWxseSBpbiBvcmRlciB0 byBjcmVhdGUgYW5kIHN5bmMgdGhlIHNsb3RzLgogICovCi12b2lkCi1SZXBsU2xvdFN5bmNXb3Jr ZXJNYWluKERhdHVtIG1haW5fYXJnKQorTk9OX0VYRUNfU1RBVElDIHZvaWQKK1JlcGxTbG90U3lu Y1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlXYWxSZWNlaXZlckNvbm4g KndyY29ubiA9IE5VTEw7CiAJY2hhcgkgICAqZGJuYW1lOwogCWJvb2wJCWFtX2Nhc2NhZGluZ19z dGFuZGJ5OworCWJvb2wJCXByaW1hcnlfc2xvdF9pbnZhbGlkOwogCWNoYXIJICAgKmVycjsKKwlz aWdqbXBfYnVmCWxvY2FsX3NpZ2ptcF9idWY7CiAKLQllcmVwb3J0KExPRywgZXJybXNnKCJyZXBs aWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisJYW1fc2xvdHN5bmNfd29ya2Vy ID0gdHJ1ZTsKIAotCW9uX3NobWVtX2V4aXQoc2xvdHN5bmNfd29ya2VyX29uZXhpdCwgKERhdHVt KSAwKTsKKwlNeUJhY2tlbmRUeXBlID0gQl9TTE9UU1lOQ19XT1JLRVI7CiAKLQlTcGluTG9ja0Fj cXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJaW5pdF9wc19kaXNwbGF5KE5VTEwpOwor CisJU2V0UHJvY2Vzc2luZ01vZGUoSW5pdFByb2Nlc3NpbmcpOwogCisJLyoKKwkgKiBDcmVhdGUg YSBwZXItYmFja2VuZCBQR1BST0Mgc3RydWN0IGluIHNoYXJlZCBtZW1vcnkuICBXZSBtdXN0IGRv IHRoaXMKKwkgKiBiZWZvcmUgd2UgYWNjZXNzIGFueSBzaGFyZWQgbWVtb3J5LgorCSAqLworCUlu aXRQcm9jZXNzKCk7CisKKwkvKgorCSAqIEVhcmx5IGluaXRpYWxpemF0aW9uLgorCSAqLworCUJh c2VJbml0KCk7CisKKwlBc3NlcnQoU2xvdFN5bmNXb3JrZXIgIT0gTlVMTCk7CisKKwlTcGluTG9j a0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CiAJQXNzZXJ0KFNsb3RTeW5jV29ya2Vy LT5waWQgPT0gSW52YWxpZFBpZCk7CiAKIAkvKgpAQCAtMTAwOCwyNiArMTEwNCw3NyBAQCBSZXBs U2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCiAJLyogQWR2ZXJ0aXNlIG91ciBQ SUQgc28gdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIGNhbiBraWxsIHVzIG9uIHByb21vdGlvbiAq LwogCVNsb3RTeW5jV29ya2VyLT5waWQgPSBNeVByb2NQaWQ7Ci0KIAlTcGluTG9ja1JlbGVhc2Uo JlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CiAKKwllcmVwb3J0KExPRywgZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisKKwlvbl9zaG1lbV9leGl0KHNsb3Rz eW5jX3dvcmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7CisKIAkvKiBTZXR1cCBzaWduYWwgaGFuZGxp bmcgKi8KIAlwcXNpZ25hbChTSUdIVVAsIFNpZ25hbEhhbmRsZXJGb3JDb25maWdSZWxvYWQpOwog CXBxc2lnbmFsKFNJR0lOVCwgU2lnbmFsSGFuZGxlckZvclNodXRkb3duUmVxdWVzdCk7CiAJcHFz aWduYWwoU0lHVEVSTSwgZGllKTsKLQlCYWNrZ3JvdW5kV29ya2VyVW5ibG9ja1NpZ25hbHMoKTsK KwlwcXNpZ25hbChTSUdGUEUsIEZsb2F0RXhjZXB0aW9uSGFuZGxlcik7CisJcHFzaWduYWwoU0lH VVNSMSwgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIpOworCXBxc2lnbmFsKFNJR1VTUjIsIFNJ R19JR04pOworCXBxc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOworCXBxc2lnbmFsKFNJR0NITEQs IFNJR19ERkwpOworCisJLyoKKwkgKiBFc3RhYmxpc2hlcyBTSUdBTFJNIGhhbmRsZXIgYW5kIGlu aXRpYWxpemUgdGltZW91dCBtb2R1bGUuIEl0IGlzIG5lZWRlZAorCSAqIGJ5IEluaXRQb3N0Z3Jl cyB0byByZWdpc3RlciBkaWZmZXJlbnQgdGltZW91dHMuCisJICovCisJSW5pdGlhbGl6ZVRpbWVv dXRzKCk7CiAKIAkvKiBMb2FkIHRoZSBsaWJwcS1zcGVjaWZpYyBmdW5jdGlvbnMgKi8KIAlsb2Fk X2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CiAKLQlkYm5hbWUgPSB2YWxpZGF0ZV9w YXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKCk7CisJLyoKKwkgKiBJZiBhbiBleGNlcHRpb24gaXMg ZW5jb3VudGVyZWQsIHByb2Nlc3NpbmcgcmVzdW1lcyBoZXJlLgorCSAqCisJICogV2UganVzdCBu ZWVkIHRvIGNsZWFuIHVwLCByZXBvcnQgdGhlIGVycm9yLCBhbmQgZ28gYXdheS4KKwkgKgorCSAq IElmIHdlIGRvIG5vdCBoYXZlIHRoaXMgaGFuZGxpbmcgaGVyZSwgdGhlbiBzaW5jZSB0aGlzIHdv cmtlciBwcm9jZXNzCisJICogb3BlcmF0ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZXhjZXB0aW9u IHN0YWNrLCBFUlJPUnMgdHVybiBpbnRvIEZBVEFMcy4KKwkgKiBUaGVyZWZvcmUsIHdlIGNyZWF0 ZSBvdXIgb3duIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGNhdGNoIEVSUk9Scy4KKwkgKi8KKwlpZiAo c2lnc2V0am1wKGxvY2FsX3NpZ2ptcF9idWYsIDEpICE9IDApCisJeworCQkvKiBzaW5jZSBub3Qg dXNpbmcgUEdfVFJZLCBtdXN0IHJlc2V0IGVycm9yIHN0YWNrIGJ5IGhhbmQgKi8KKwkJZXJyb3Jf Y29udGV4dF9zdGFjayA9IE5VTEw7CisKKwkJLyogUHJldmVudHMgaW50ZXJydXB0cyB3aGlsZSBj bGVhbmluZyB1cCAqLworCQlIT0xEX0lOVEVSUlVQVFMoKTsKKworCQkvKiBSZXBvcnQgdGhlIGVy cm9yIHRvIHRoZSBzZXJ2ZXIgbG9nICovCisJCUVtaXRFcnJvclJlcG9ydCgpOworCisJCS8qCisJ CSAqIFdlIGNhbiBub3cgZ28gYXdheS4gIE5vdGUgdGhhdCBiZWNhdXNlIHdlIGNhbGxlZCBJbml0 UHJvY2VzcywgYQorCQkgKiBjYWxsYmFjayB3YXMgcmVnaXN0ZXJlZCB0byBkbyBQcm9jS2lsbCwg d2hpY2ggd2lsbCBjbGVhbiB1cAorCQkgKiBuZWNlc3Nhcnkgc3RhdGUuCisJCSAqLworCQlwcm9j X2V4aXQoMCk7CisJfQorCisJLyogV2UgY2FuIG5vdyBoYW5kbGUgZXJlcG9ydChFUlJPUikgKi8K KwlQR19leGNlcHRpb25fc3RhY2sgPSAmbG9jYWxfc2lnam1wX2J1ZjsKKworCS8qCisJICogVW5i bG9jayBzaWduYWxzICh0aGV5IHdlcmUgYmxvY2tlZCB3aGVuIHRoZSBwb3N0bWFzdGVyIGZvcmtl ZCB1cykKKwkgKi8KKwlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJlVuQmxvY2tTaWcsIE5VTEwp OworCisJZGJuYW1lID0gd2FpdF9mb3JfdmFsaWRfcGFyYW1zX2FuZF9nZXRfZGJuYW1lKCk7CiAK IAkvKgogCSAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNwZWNpZmllZCBieSB1c2VyIGluIHBy aW1hcnlfY29ubmluZm8uIFdlIG5lZWQKIAkgKiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gZm9yIHdh bHJjdl9leGVjIHRvIHdvcmsuIFBsZWFzZSBzZWUgY29tbWVudHMgYXRvcAogCSAqIGxpYnBxcmN2 X2V4ZWMuCiAJICovCi0JQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVDb25uZWN0aW9uKGRibmFt ZSwgTlVMTCwgMCk7CisJSW5pdFBvc3RncmVzKGRibmFtZSwgSW52YWxpZE9pZCwgTlVMTCwgSW52 YWxpZE9pZCwgMCwgTlVMTCk7CisKKwlTZXRQcm9jZXNzaW5nTW9kZShOb3JtYWxQcm9jZXNzaW5n KTsKIAogCS8qCiAJICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNl cnZlciBmb3Igc2xvdHMKQEAgLTEwNDYsMjYgKzExOTMsMjkgQEAgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbihEYXR1bSBtYWluX2FyZykKIAkgKiBjYXNjYWRpbmcgc3RhbmRieSBhbmQgdmFsaWRhdGVz IHByaW1hcnlfc2xvdF9uYW1lIGZvcgogCSAqIG5vbi1jYXNjYWRpbmctc3RhbmRieXMuCiAJICov Ci0JY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwlj aGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnksICZwcmltYXJ5 X3Nsb3RfaW52YWxpZCk7CiAKIAkvKiBNYWluIHdhaXQgbG9vcCAqLwogCWZvciAoOzspCiAJewog CQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9IGZhbHNlOworCQlib29sCQlyZWNoZWNrX3ByaW1h cnlfaW5mbyA9IGFtX2Nhc2NhZGluZ19zdGFuZGJ5IHx8IHByaW1hcnlfc2xvdF9pbnZhbGlkOwog CiAJCVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMod3Jjb25uKTsKIAotCQlpZiAoIWFtX2Nhc2Nh ZGluZ19zdGFuZGJ5KQorCQlpZiAoIXJlY2hlY2tfcHJpbWFyeV9pbmZvKQogCQkJc29tZV9zbG90 X3VwZGF0ZWQgPSBzeW5jaHJvbml6ZV9zbG90cyh3cmNvbm4pOworCQllbHNlIGlmIChwcmltYXJ5 X3Nsb3RfaW52YWxpZCkKKwkJCWVyZXBvcnQoTE9HLCBlcnJtc2coInNraXBwaW5nIHNsb3Qgc3lu Y2hyb25pemF0aW9uIikpOwogCi0JCXdhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoc29tZV9zbG90X3Vw ZGF0ZWQsIGFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwkJd2FpdF9mb3Jfc2xvdF9hY3Rpdml0eShz b21lX3Nsb3RfdXBkYXRlZCwgcmVjaGVja19wcmltYXJ5X2luZm8pOwogCiAJCS8qCiAJCSAqIElm IHRoZSBzdGFuZGJ5IHdhcyBwcm9tb3RlZCB0aGVuIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBjYXNj YWRpbmcKIAkJICogc3RhbmRieSBtaWdodCBubyBsb25nZXIgYmUgb25lLCBzbyByZWNoZWNrIGVh Y2ggdGltZS4KIAkJICovCi0JCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKLQkJCWNoZWNrX3By aW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJCWlmIChyZWNoZWNr X3ByaW1hcnlfaW5mbykKKwkJCWNoZWNrX3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRp bmdfc3RhbmRieSwgJnByaW1hcnlfc2xvdF9pbnZhbGlkKTsKIAl9CiAKIAkvKgpAQCAtMTA4MSw3 ICsxMjMxLDcgQEAgUmVwbFNsb3RTeW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIGJvb2wK IElzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpCiB7Ci0JcmV0dXJuIFNsb3RTeW5jV29ya2Vy LT5waWQgPT0gTXlQcm9jUGlkOworCXJldHVybiBhbV9zbG90c3luY193b3JrZXI7CiB9CiAKIC8q CkBAIC0xMTExLDcgKzEyNjEsNyBAQCBTaHV0RG93blNsb3RTeW5jKHZvaWQpCiAJCS8qIFdhaXQg YSBiaXQsIHdlIGRvbid0IGV4cGVjdCB0byBoYXZlIHRvIHdhaXQgbG9uZyAqLwogCQlyYyA9IFdh aXRMYXRjaChNeUxhdGNoLAogCQkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xf RVhJVF9PTl9QTV9ERUFUSCwKLQkJCQkJICAgMTBMLCBXQUlUX0VWRU5UX0JHV09SS0VSX1NIVVRE T1dOKTsKKwkJCQkJICAgMTBMLCBXQUlUX0VWRU5UX1JFUExfU0xPVFNZTkNfU0hVVERPV04pOwog CiAJCWlmIChyYyAmIFdMX0xBVENIX1NFVCkKIAkJewpAQCAtMTE1NCw0MiArMTMwNCw5MiBAQCBT bG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKQogCX0KIH0KIAorI2lmZGVmIEVYRUNfQkFDS0VO RAogLyoKLSAqIFJlZ2lzdGVyIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBmb3Igc2xvdHMgc3luY2hy b25pemF0aW9uIHByb3ZpZGVkCi0gKiBlbmFibGVfc3luY3Nsb3QgaXMgT04uCisgKiBUaGUgZm9y a2V4ZWMgcm91dGluZSBmb3IgdGhlIHNsb3Qgc3luYyB3b3JrZXIgcHJvY2Vzcy4KKyAqCisgKiBG b3JtYXQgdXAgdGhlIGFyZ2xpc3QsIHRoZW4gZm9yayBhbmQgZXhlYy4KICAqLwotdm9pZAotU2xv dFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKQorc3RhdGljIHBpZF90CitzbG90c3luY3dvcmtlcl9m b3JrZXhlYyh2b2lkKQogewotCUJhY2tncm91bmRXb3JrZXIgYmd3OworCWNoYXIJICAgKmF2WzEw XTsKKwlpbnQJCQlhYyA9IDA7CiAKLQlpZiAoIWVuYWJsZV9zeW5jc2xvdCkKLQl7Ci0JCWVyZXBv cnQoTE9HLAotCQkJCWVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKLQkJ CQllcnJkZXRhaWwoIlwiZW5hYmxlX3N5bmNzbG90XCIgaXMgZGlzYWJsZWQuIikpOwotCQlyZXR1 cm47Ci0JfQorCWF2W2FjKytdID0gInBvc3RncmVzIjsKKwlhdlthYysrXSA9ICItLWZvcmtzc3dv cmtlciI7CisJYXZbYWMrK10gPSBOVUxMOwkJCS8qIGZpbGxlZCBpbiBieSBwb3N0bWFzdGVyX2Zv cmtleGVjICovCisJYXZbYWNdID0gTlVMTDsKIAotCW1lbXNldCgmYmd3LCAwLCBzaXplb2YoYmd3 KSk7CisJQXNzZXJ0KGFjIDwgbGVuZ3Rob2YoYXYpKTsKIAotCS8qIFdlIG5lZWQgZGF0YWJhc2Ug Y29ubmVjdGlvbiB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsICovCi0J Ymd3LmJnd19mbGFncyA9IEJHV09SS0VSX1NITUVNX0FDQ0VTUyB8Ci0JCUJHV09SS0VSX0JBQ0tF TkRfREFUQUJBU0VfQ09OTkVDVElPTjsKKwlyZXR1cm4gcG9zdG1hc3Rlcl9mb3JrZXhlYyhhYywg YXYpOworfQorI2VuZGlmCiAKLQkvKiBTdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0 ZSBoYXMgYmVlbiByZWFjaGVkIGluIGEgaG90IHN0YW5kYnkgKi8KLQliZ3cuYmd3X3N0YXJ0X3Rp bWUgPSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5OworLyoKKyAqIFNs b3RTeW5jV29ya2VyQ2FuUmVzdGFydAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgd29ya2Vy IGlzIGFsbG93ZWQgdG8gcmVzdGFydCBpZiBlbm91Z2ggdGltZSBoYXMKKyAqIHBhc3NlZCAoU0xP VFNZTkNfUkVTVEFSVF9JTlRFUlZBTF9TRUMpIHNpbmNlIGl0IHdhcyBsYXVuY2hlZCBsYXN0Lgor ICogT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisgKgorICogVGhpcyBpcyBhIHNhZmV0eSB2YWx2 ZSB0byBwcm90ZWN0IGFnYWluc3QgY29udGludW91cyByZXNwYXduIGF0dGVtcHRzIGlmIHRoZQor ICogd29ya2VyIGlzIGR5aW5nIGltbWVkaWF0ZWx5IGF0IGxhdW5jaC4gTm90ZSB0aGF0IHNpbmNl IHdlIHdpbGwgcmV0cnkgdG8KKyAqIGxhdW5jaCB0aGUgd29ya2VyIGZyb20gdGhlIHBvc3RtYXN0 ZXIgbWFpbiBsb29wLCB3ZSB3aWxsIGdldCBhbm90aGVyCisgKiBjaGFuY2UgbGF0ZXIuCisgKi8K K2Jvb2wKK1Nsb3RTeW5jV29ya2VyQ2FuUmVzdGFydCh2b2lkKQoreworI2RlZmluZSBTTE9UU1lO Q19SRVNUQVJUX0lOVEVSVkFMX1NFQyAxMAogCi0Jc25wcmludGYoYmd3LmJnd19saWJyYXJ5X25h bWUsIE1BWFBHUEFUSCwgInBvc3RncmVzIik7Ci0Jc25wcmludGYoYmd3LmJnd19mdW5jdGlvbl9u YW1lLCBCR1dfTUFYTEVOLCAiUmVwbFNsb3RTeW5jV29ya2VyTWFpbiIpOwotCXNucHJpbnRmKGJn dy5iZ3dfbmFtZSwgQkdXX01BWExFTiwKLQkJCSAicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtl ciIpOwotCXNucHJpbnRmKGJndy5iZ3dfdHlwZSwgQkdXX01BWExFTiwKLQkJCSAic2xvdCBzeW5j IHdvcmtlciIpOworCXN0YXRpYyB0aW1lX3QgbGFzdF9zbG90c3luY19zdGFydF90aW1lID0gMDsK Kwl0aW1lX3QJCWN1cnRpbWUgPSB0aW1lKE5VTEwpOwogCi0JYmd3LmJnd19yZXN0YXJ0X3RpbWUg PSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMOwotCWJndy5iZ3dfbm90aWZ5X3BpZCA9IDA7 Ci0JYmd3LmJnd19tYWluX2FyZyA9IChEYXR1bSkgMDsKKwkvKiBSZXR1cm4gZmFsc2UgaWYgdG9v IHNvb24gc2luY2UgbGFzdCBzdGFydC4gKi8KKwlpZiAoKHVuc2lnbmVkIGludCkgKGN1cnRpbWUg LSBsYXN0X3Nsb3RzeW5jX3N0YXJ0X3RpbWUpIDwKKwkJKHVuc2lnbmVkIGludCkgU0xPVFNZTkNf UkVTVEFSVF9JTlRFUlZBTF9TRUMpCisJCXJldHVybiBmYWxzZTsKKworCWxhc3Rfc2xvdHN5bmNf c3RhcnRfdGltZSA9IGN1cnRpbWU7CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBNYWluIGVu dHJ5IHBvaW50IGZvciBzbG90IHN5bmMgd29ya2VyIHByb2Nlc3MsIHRvIGJlIGNhbGxlZCBmcm9t IHRoZQorICogcG9zdG1hc3Rlci4KKyAqLworaW50CitTdGFydFNsb3RTeW5jV29ya2VyKHZvaWQp Cit7CisJcGlkX3QJCXBpZDsKKworI2lmZGVmIEVYRUNfQkFDS0VORAorCXN3aXRjaCAoKHBpZCA9 IHNsb3RzeW5jd29ya2VyX2ZvcmtleGVjKCkpKQorCXsKKyNlbHNlCisJc3dpdGNoICgocGlkID0g Zm9ya19wcm9jZXNzKCkpKQorCXsKKwkJY2FzZSAwOgorCQkJLyogaW4gcG9zdG1hc3RlciBjaGls ZCAuLi4gKi8KKwkJCUluaXRQb3N0bWFzdGVyQ2hpbGQoKTsKKworCQkJLyogQ2xvc2UgdGhlIHBv c3RtYXN0ZXIncyBzb2NrZXRzICovCisJCQlDbG9zZVBvc3RtYXN0ZXJQb3J0cyhmYWxzZSk7CisK KwkJCVJlcGxTbG90U3luY1dvcmtlck1haW4oMCwgTlVMTCk7CisJCQlicmVhazsKKyNlbmRpZgor CQljYXNlIC0xOgorCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImNvdWxkIG5vdCBmb3Jr IHNsb3Qgc3luYyB3b3JrZXIgcHJvY2VzczogJW0iKSkpOworCQkJcmV0dXJuIDA7CisKKwkJZGVm YXVsdDoKKwkJCXJldHVybiAoaW50KSBwaWQ7CisJfQogCi0JUmVnaXN0ZXJCYWNrZ3JvdW5kV29y a2VyKCZiZ3cpOworCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLworCXJldHVybiAwOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvbG1nci9wcm9jLmMKaW5kZXggNGFkOTZiZWI4Ny4uYWE1M2E1NzA3NyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2xtZ3IvcHJvYy5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24v c2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNyZXAuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2Vy LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9jb25kaXRpb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJz dG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgpAQCAtMzY0LDggKzM2NSwx MiBAQCBJbml0UHJvY2Vzcyh2b2lkKQogCSAqIGNoaWxkOyB0aGlzIGlzIHNvIHRoYXQgdGhlIHBv c3RtYXN0ZXIgY2FuIGRldGVjdCBpdCBpZiB3ZSBleGl0IHdpdGhvdXQKIAkgKiBjbGVhbmluZyB1 cC4gIChYWFggYXV0b3ZhYyBsYXVuY2hlciBjdXJyZW50bHkgZG9lc24ndCBwYXJ0aWNpcGF0ZSBp bgogCSAqIHRoaXM7IGl0IHByb2JhYmx5IHNob3VsZC4pCisJICoKKwkgKiBTbG90IHN5bmMgd29y a2VyIGFsc28gZG9lcyBub3QgcGFydGljaXBhdGUgaW4gaXQsIHNlZSBjb21tZW50cyBhdG9wCisJ ICogJ3N0cnVjdCBia2VuZCcgaW4gcG9zdG1hc3Rlci5jLgogCSAqLwotCWlmIChJc1VuZGVyUG9z dG1hc3RlciAmJiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkpCisJaWYgKElzVW5kZXJQ b3N0bWFzdGVyICYmICFJc0F1dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSAmJgorCQkhSXNMb2dp Y2FsU2xvdFN5bmNXb3JrZXIoKSkKIAkJTWFya1Bvc3RtYXN0ZXJDaGlsZEFjdGl2ZSgpOwogCiAJ LyoKQEAgLTkzNCw4ICs5MzksMTIgQEAgUHJvY0tpbGwoaW50IGNvZGUsIERhdHVtIGFyZykKIAkg KiBUaGlzIHByb2Nlc3MgaXMgbm8gbG9uZ2VyIHByZXNlbnQgaW4gc2hhcmVkIG1lbW9yeSBpbiBh bnkgbWVhbmluZ2Z1bAogCSAqIHdheSwgc28gdGVsbCB0aGUgcG9zdG1hc3RlciB3ZSd2ZSBjbGVh bmVkIHVwIGFjY2VwdGFibHkgd2VsbC4gKFhYWAogCSAqIGF1dG92YWMgbGF1bmNoZXIgc2hvdWxk IGJlIGluY2x1ZGVkIGhlcmUgc29tZWRheSkKKwkgKgorCSAqIFNsb3Qgc3luYyB3b3JrZXIgaXMg YWxzbyBub3QgYSBwb3N0bWFzdGVyIGNoaWxkLCBzbyBza2lwIHRoaXMgc2hhcmVkCisJICogbWVt b3J5IHJlbGF0ZWQgcHJvY2Vzc2luZyBoZXJlLgogCSAqLwotCWlmIChJc1VuZGVyUG9zdG1hc3Rl ciAmJiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkpCisJaWYgKElzVW5kZXJQb3N0bWFz dGVyICYmICFJc0F1dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSAmJgorCQkhSXNMb2dpY2FsU2xv dFN5bmNXb3JrZXIoKSkKIAkJTWFya1Bvc3RtYXN0ZXJDaGlsZEluYWN0aXZlKCk7CiAKIAkvKiB3 YWtlIGF1dG92YWMgbGF1bmNoZXIgaWYgbmVlZGVkIC0tIHNlZSBjb21tZW50cyBpbiBGcmVlV29y a2VySW5mbyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3Jj L2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IGU4YzUzMGFjZDkuLjFhMzRiZDM3MTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKQEAgLTMyODYsMTcgKzMyODYsNiBAQCBQcm9jZXNzSW50ZXJydXB0cyh2 b2lkKQogCQkJICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJCX0KLQkJZWxzZSBpZiAoSXNMb2dpY2Fs U2xvdFN5bmNXb3JrZXIoKSkKLQkJewotCQkJZWxvZyhERUJVRzEsCi0JCQkJICJyZXBsaWNhdGlv biBzbG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gZHVlIHRvIGFkbWluaXN0cmF0b3Ig Y29tbWFuZCIpOwotCi0JCQkvKgotCQkJICogU2xvdCBzeW5jIHdvcmtlciBjYW4gYmUgc3RvcHBl ZCBhdCBhbnkgdGltZS4gVXNlIGV4aXQgc3RhdHVzIDEKLQkJCSAqIHNvIHRoZSBiYWNrZ3JvdW5k IHdvcmtlciBpcyByZXN0YXJ0ZWQuCi0JCQkgKi8KLQkJCXByb2NfZXhpdCgxKTsKLQkJfQogCQll bHNlIGlmIChJc0JhY2tncm91bmRXb3JrZXIpCiAJCQllcmVwb3J0KEZBVEFMLAogCQkJCQkoZXJy Y29kZShFUlJDT0RFX0FETUlOX1NIVVRET1dOKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X2lvLmMKaW5kZXggNDNjMzkzZDZmZS4uOWQ2ZTA2NzM4MiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2lvLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2lvLmMKQEAgLTMzOCw2ICszMzgsNyBAQCBwZ3N0YXRfdHJhY2tzX2lv X2JrdHlwZShCYWNrZW5kVHlwZSBia3R5cGUpCiAJCWNhc2UgQl9CR19XT1JLRVI6CiAJCWNhc2Ug Ql9CR19XUklURVI6CiAJCWNhc2UgQl9DSEVDS1BPSU5URVI6CisJCWNhc2UgQl9TTE9UU1lOQ19X T1JLRVI6CiAJCWNhc2UgQl9TVEFOREFMT05FX0JBQ0tFTkQ6CiAJCWNhc2UgQl9TVEFSVFVQOgog CQljYXNlIEJfV0FMX1NFTkRFUjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKaW5kZXggM2U2MjAzMzIyYS4uNGMwZWUyZGQyOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAgLTU0LDYg KzU0LDcgQEAgTE9HSUNBTF9MQVVOQ0hFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBs b2dpY2FsIHJlcGxpY2F0aW9uIGxhdW5jaGVyIHByb2MKIExPR0lDQUxfUEFSQUxMRUxfQVBQTFlf TUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxl bCBhcHBseSBwcm9jZXNzLiIKIFJFQ09WRVJZX1dBTF9TVFJFQU0JIldhaXRpbmcgaW4gbWFpbiBs b29wIG9mIHN0YXJ0dXAgcHJvY2VzcyBmb3IgV0FMIHRvIGFycml2ZSwgZHVyaW5nIHN0cmVhbWlu ZyByZWNvdmVyeS4iCiBSRVBMX1NMT1RTWU5DX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9m IHNsb3Qgc3luYyB3b3JrZXIuIgorUkVQTF9TTE9UU1lOQ19TSFVURE9XTgkiV2FpdGluZyBmb3Ig c2xvdCBzeW5jIHdvcmtlciB0byBzaHV0IGRvd24uIgogU1lTTE9HR0VSX01BSU4JIldhaXRpbmcg aW4gbWFpbiBsb29wIG9mIHN5c2xvZ2dlciBwcm9jZXNzLiIKIFdBTF9SRUNFSVZFUl9NQUlOCSJX YWl0aW5nIGluIG1haW4gbG9vcCBvZiBXQUwgcmVjZWl2ZXIgcHJvY2Vzcy4iCiBXQUxfU0VOREVS X01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMgYi9zcmMvYmFja2VuZC91 dGlscy9pbml0L21pc2Npbml0LmMKaW5kZXggMjNmNzdhNTllNS4uMzA5YWEzM2E2MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2luaXQvbWlzY2luaXQuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgInBvc3Rt YXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wZ2FyY2guaCIKICNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dp Y2Fsd29ya2VyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv aXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgpAQCAtMjkzLDYgKzI5NCw5IEBAIEdl dEJhY2tlbmRUeXBlRGVzYyhCYWNrZW5kVHlwZSBiYWNrZW5kVHlwZSkKIAkJY2FzZSBCX0xPR0dF UjoKIAkJCWJhY2tlbmREZXNjID0gImxvZ2dlciI7CiAJCQlicmVhazsKKwkJY2FzZSBCX1NMT1RT WU5DX1dPUktFUjoKKwkJCWJhY2tlbmREZXNjID0gInNsb3RzeW5jd29ya2VyIjsKKwkJCWJyZWFr OwogCQljYXNlIEJfU1RBTkRBTE9ORV9CQUNLRU5EOgogCQkJYmFja2VuZERlc2MgPSAic3RhbmRh bG9uZSBiYWNrZW5kIjsKIAkJCWJyZWFrOwpAQCAtODM1LDkgKzgzOSwxMCBAQCBJbml0aWFsaXpl U2Vzc2lvblVzZXJJZFN0YW5kYWxvbmUodm9pZCkKIHsKIAkvKgogCSAqIFRoaXMgZnVuY3Rpb24g c2hvdWxkIG9ubHkgYmUgY2FsbGVkIGluIHNpbmdsZS11c2VyIG1vZGUsIGluIGF1dG92YWN1dW0K LQkgKiB3b3JrZXJzLCBhbmQgaW4gYmFja2dyb3VuZCB3b3JrZXJzLgorCSAqIHdvcmtlcnMsIGlu IHNsb3Qgc3luYyB3b3JrZXIgYW5kIGluIGJhY2tncm91bmQgd29ya2Vycy4KIAkgKi8KLQlBc3Nl cnQoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IElzQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSB8fCBJ c0JhY2tncm91bmRXb3JrZXIpOworCUFzc2VydCghSXNVbmRlclBvc3RtYXN0ZXIgfHwgSXNBdXRv VmFjdXVtV29ya2VyUHJvY2VzcygpIHx8CisJCSAgIElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkg fHwgSXNCYWNrZ3JvdW5kV29ya2VyKTsKIAogCS8qIGNhbGwgb25seSBvbmNlICovCiAJQXNzZXJ0 KCFPaWRJc1ZhbGlkKEF1dGhlbnRpY2F0ZWRVc2VySWQpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGlu aXQuYwppbmRleCAxYWQzMzY3MTU5Li5hNWFmMGY0MTBhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0 aW5pdC5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9hdXRvdmFjdXVt LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5jbHVkZSAicmVwbGlj YXRpb24vc2xvdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKICNp bmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1n ci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKQEAgLTg3NCwxMCArODc1LDExIEBAIEluaXRQ b3N0Z3Jlcyhjb25zdCBjaGFyICppbl9kYm5hbWUsIE9pZCBkYm9pZCwKIAkgKiBQZXJmb3JtIGNs aWVudCBhdXRoZW50aWNhdGlvbiBpZiBuZWNlc3NhcnksIHRoZW4gZmlndXJlIG91dCBvdXIKIAkg KiBwb3N0Z3JlcyB1c2VyIElELCBhbmQgc2VlIGlmIHdlIGFyZSBhIHN1cGVydXNlci4KIAkgKgot CSAqIEluIHN0YW5kYWxvbmUgbW9kZSBhbmQgaW4gYXV0b3ZhY3V1bSB3b3JrZXIgcHJvY2Vzc2Vz LCB3ZSB1c2UgYSBmaXhlZAotCSAqIElELCBvdGhlcndpc2Ugd2UgZmlndXJlIGl0IG91dCBmcm9t IHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgbmFtZS4KKwkgKiBJbiBzdGFuZGFsb25lIG1vZGUsIGF1 dG92YWN1dW0gd29ya2VyIHByb2Nlc3NlcyBhbmQgc2xvdCBzeW5jIHdvcmtlcgorCSAqIHByb2Nl c3MsIHdlIHVzZSBhIGZpeGVkIElELCBvdGhlcndpc2Ugd2UgZmlndXJlIGl0IG91dCBmcm9tIHRo ZQorCSAqIGF1dGhlbnRpY2F0ZWQgdXNlciBuYW1lLgogCSAqLwotCWlmIChib290c3RyYXAgfHwg SXNBdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCWlmIChib290c3RyYXAgfHwgSXNBdXRvVmFj dXVtV29ya2VyUHJvY2VzcygpIHx8IElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkpCiAJewogCQlJ bml0aWFsaXplU2Vzc2lvblVzZXJJZFN0YW5kYWxvbmUoKTsKIAkJYW1fc3VwZXJ1c2VyID0gdHJ1 ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggZmUwNDRjMTZkZS4uM2FmMTFi MmI4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTIwNTYsNyArMjA1Niw3 IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKIAogCXsK LQkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfUE9TVE1BU1RFUiwgUkVQTElDQVRJT05fU1RBTkRC WSwKKwkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TVEFOREJZ LAogCQkJZ2V0dGV4dF9ub29wKCJFbmFibGVzIGEgcGh5c2ljYWwgc3RhbmRieSB0byBzeW5jaHJv bml6ZSBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpLAog CQl9LAogCQkmZW5hYmxlX3N5bmNzbG90LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2Fk bWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCAwYjAxYzFmMDkzLi42NTgxOWNi N2E3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVk ZS9taXNjYWRtaW4uaApAQCAtMzMyLDYgKzMzMiw3IEBAIHR5cGVkZWYgZW51bSBCYWNrZW5kVHlw ZQogCUJfQkdfV1JJVEVSLAogCUJfQ0hFQ0tQT0lOVEVSLAogCUJfTE9HR0VSLAorCUJfU0xPVFNZ TkNfV09SS0VSLAogCUJfU1RBTkRBTE9ORV9CQUNLRU5ELAogCUJfU1RBUlRVUCwKIAlCX1dBTF9S RUNFSVZFUiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCBi L3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaAppbmRleCA3MDkyZmM3MmM2Li4yMmZj NDllYzI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKKysr IGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCkBAIC03OSw3ICs3OSw2IEBAIHR5 cGVkZWYgZW51bQogCUJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0LAogCUJnV29ya2VyU3Rh cnRfQ29uc2lzdGVudFN0YXRlLAogCUJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZCwKLQlC Z1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5LAogfSBCZ1dvcmtlclN0YXJ0 VGltZTsKIAogI2RlZmluZSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMCTYwCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDIxNjc3MjA5NzEuLmFhMDFm NjM2NDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5h bC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0z MjksOSArMzI5LDExIEBAIGV4dGVybiB2b2lkIHBhX2RlY3JfYW5kX3dhaXRfc3RyZWFtX2Jsb2Nr KHZvaWQpOwogCiBleHRlcm4gdm9pZCBwYV94YWN0X2ZpbmlzaChQYXJhbGxlbEFwcGx5V29ya2Vy SW5mbyAqd2luZm8sCiAJCQkJCQkgICBYTG9nUmVjUHRyIHJlbW90ZV9sc24pOwotCi1leHRlcm4g dm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKLWV4dGVybiB2b2lk IFNsb3RTeW5jV29ya2VyUmVnaXN0ZXIodm9pZCk7CisjaWZkZWYgRVhFQ19CQUNLRU5ECitleHRl cm4gdm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHBn X2F0dHJpYnV0ZV9ub3JldHVybigpOworI2VuZGlmCitleHRlcm4gaW50IFN0YXJ0U2xvdFN5bmNX b3JrZXIodm9pZCk7CitleHRlcm4gYm9vbCBTbG90U3luY1dvcmtlckNhblJlc3RhcnQodm9pZCk7 CiBleHRlcm4gdm9pZCBTaHV0RG93blNsb3RTeW5jKHZvaWQpOwogZXh0ZXJuIHZvaWQgU2xvdFN5 bmNXb3JrZXJTaG1lbUluaXQodm9pZCk7CiAKLS0gCjIuMzQuMQoK --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0004-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Disposition: attachment; filename="v67-0004-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8uv3 RnJvbSA3MTA2OGY1ZGFhODI2ZjE5YzcxOWFiMjM0OTg4YTE5NGJkNzBkNzg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjIgSmFuIDIwMjQgMTU6NDk6NDkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NyA0LzZdIEFsbG93IGxvZ2ljYWwgd2Fsc2VuZGVycyB0byB3YWl0IGZvciB0aGUgcGh5c2ljYWwK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhhdCBwaHlzaWNh bCBzdGFuZGJ5IHNlcnZlcnMsCndoaWNoIGFyZSBwb3RlbnRpYWwgZmFpbG92ZXIgY2FuZGlkYXRl cywgaGF2ZSByZWNlaXZlZCBhbmQgZmx1c2hlZCBjaGFuZ2VzCmJlZm9yZSBtYWtpbmcgdGhlbSB2 aXNpYmxlIHRvIHN1YnNjcmliZXJzLiBCeSBkb2luZyBzbywgaXQgZ3VhcmFudGVlcyB0aGF0CnRo ZSBwcm9tb3RlZCBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQgdGhlIHN1YnNj cmliZXJzIHdoZW4gYQpmYWlsb3ZlciBpcyBuZWNlc3NhcnkuCgpBIG5ldyBwYXJhbWV0ZXIgbmFt ZWQgc3RhbmRieV9zbG90X25hbWVzIGlzIGludHJvZHVjZWQuIFRoZSBsb2dpY2FsCndhbHNlbmRl ciBub3cgZ3VhcmFudGVlcyB0aGF0IGFsbCBsb2NhbCBjaGFuZ2VzIGFyZSBzZW50IGFuZCBmbHVz aGVkIHRvCnRoZSBzdGFuZGJ5IHNlcnZlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgcmVwbGljYXRp b24gc2xvdHMgc3BlY2lmaWVkIGluCnN0YW5kYnlfc2xvdF9uYW1lcyBiZWZvcmUgc2VuZGluZyB0 aG9zZSBjaGFuZ2VzIHRvIHRoZSBzdWJzY3JpYmVyLgoKQWRkaXRpb25hbGx5LCBUaGUgU1FMIGZ1 bmN0aW9ucyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgYW5kCnBnX3JlcGxpY2F0aW9uX3Ns b3RfYWR2YW5jZSBhcmUgbW9kaWZpZWQgdG8gd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3Rz Cm1lbnRpb25lZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAgYmVmb3JlIHJldHVy bmluZyB0aGUgY2hhbmdlcwp0byB0aGUgdXNlci4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgOSArLQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYyAgICAgICAgICAgICAgICB8IDM0MiArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAxMTEgKysrKystCiAuLi4vdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggICB8ICAgNyArCiBzcmMvaW5jbHVkZS91dGlscy9ndWNf aG9va3MuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xv Z2ljYWxfZGVjb2RpbmcucGwgICB8ICAgMyArLQogLi4uL3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbCAgICAgIHwgMjMyICsrKysrKysrKystLQogMTYgZmlsZXMgY2hhbmdlZCwg NzM4IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBiZDJkMmY4 NzFlLi43NjM0NWU0MzNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDIwLDYgKzQ0MjAsMzAgQEAgcmVzdG9y ZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBX aW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4cmVmbGFiZWw9InN0YW5k Ynlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIExpc3Qgb2YgcGh5 c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgd2l0 aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1lIGNoYW5nZXMgdW50aWwg dGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZsdXNoZWQgdG8gY29ycmVz cG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJlcGxpY2F0aW9uCisgICAg ICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5c2ljYWwgc3RhbmRieSBh ZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhlIHBoeXNpY2FsIHJlcGxp Y2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0ZWQKKyAgICAgICAgaGVy ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBzdGFuZGJ5cyBj b3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBpbgorICAgICAg ICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11c3QgY29uZmlndXJlCisg ICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xpdGVyYWw+IHNvIHRoZXkg Y2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBjaGFuZ2VzIGZyb20g dGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IGVjMTRjZjczMjUuLjk2NWVlNzE2ZTIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTM3Miw3ICszNzIsMTQgQEAgcG9zdGdyZXM9IyBz ZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90 JywgTlVMTCwgTlUKICAgICAgdG8gd29yaywgaXQgaXMgbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlz aWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdlZW4gdGhlCiAgICAgIHByaW1hcnkgYW5kIHRoZSBz dGFuZGJ5LCBhbmQKICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLWhvdC1zdGFuZGJ5LWZlZWRiYWNr Ij48dmFybmFtZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT48L2xpbms+Ci0gICAgIG11 c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KKyAgICAgbXVzdCBiZSBlbmFibGVkIG9uIHRo ZSBzdGFuZGJ5LiBJdCdzIGFsc28gaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHNhaWQKKyAg ICAgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBpcyBuYW1lZCBpbgorICAgICA8bGluayBsaW5r ZW5kPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+PC9saW5rPgorICAgICBsaXN0IG9uIHRoZSBwcmltYXJ5LCB0byBwcmV2ZW50IHRo ZSBzdWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMKKyAgICAgZmFzdGVyIHRoYW4gdGhl IGhvdCBzdGFuZGJ5LiBCdXQgb25jZSB3ZSBjb25maWd1cmUgaXQsIHRoZW4gY2VydGFpbiBsYXRl bmN5CisgICAgIGlzIGV4cGVjdGVkIGluIHNlbmRpbmcgY2hhbmdlcyB0byBsb2dpY2FsIHN1YnNj cmliZXJzIGR1ZSB0byB3YWl0IG9uCisgICAgIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGlu CisgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1lPnN0 YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CiAgICAgPC9wYXJhPgogCiAgICAgPHBh cmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwpp bmRleCBiMDA4MWQzY2U1Li41ZmY3NjFkZDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dh bHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJh eS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0xMDksNiArMTEwLDcgQEAgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJv b2wgY29uZmlybSwgYm9vbCBiaW4KIAlNZW1vcnlDb250ZXh0IHBlcl9xdWVyeV9jdHg7CiAJTWVt b3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVhMb2dSZWNQdHIJZW5kX29mX3dhbDsKKwlYTG9nUmVj UHRyCXdhaXRfZm9yX3dhbF9sc247CiAJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4OwogCVJl c291cmNlT3duZXIgb2xkX3Jlc293bmVyID0gQ3VycmVudFJlc291cmNlT3duZXI7CiAJQXJyYXlU eXBlICAqYXJyOwpAQCAtMjI4LDYgKzIzMCwxNyBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXNfZ3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgog CQkJCQkJCU5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucGx1Z2luKSwKIAkJCQkJCQlm b3JtYXRfcHJvY2VkdXJlKGZjaW5mby0+ZmxpbmZvLT5mbl9vaWQpKSkpOwogCisJCWlmIChYTG9n UmVjUHRySXNJbnZhbGlkKHVwdG9fbHNuKSkKKwkJCXdhaXRfZm9yX3dhbF9sc24gPSBlbmRfb2Zf d2FsOworCQllbHNlCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gTWluKHVwdG9fbHNuLCBlbmRfb2Zf d2FsKTsKKworCQkvKgorCQkgKiBXYWl0IGZvciBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxpY2F0 aW9uIHN0YW5kYnkgc2VydmVycyAoaWYgYW55KQorCQkgKiB0byBjb25maXJtIHJlY2VpcHQgb2Yg V0FMIHVwIHRvIHdhaXRfZm9yX3dhbF9sc24uCisJCSAqLworCQlXYWl0Rm9yU3RhbmRieUNvbmZp cm1hdGlvbih3YWl0X2Zvcl93YWxfbHNuKTsKKwogCQljdHgtPm91dHB1dF93cml0ZXJfcHJpdmF0 ZSA9IHA7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Qu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA1OWExNjA2ZjkwLi4zNzU5 OWNlYjRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00NiwxMyArNDYsMTggQEAKICNpbmNs dWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi cGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaCIKICNpbmNsdWRlICJzdG9y YWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3By b2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCisjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCiAgKiBSZXBsaWNh dGlvbiBzbG90IG9uLWRpc2sgZGF0YSBzdHJ1Y3R1cmUuCkBAIC05OSwxMCArMTA0LDE5IEBAIFJl cGxpY2F0aW9uU2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CiAvKiBNeSBi YWNrZW5kJ3MgcmVwbGljYXRpb24gc2xvdCBpbiB0aGUgc2hhcmVkIG1lbW9yeSBhcnJheSAqLwog UmVwbGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdCA9IE5VTEw7CiAKLS8qIEdVQyB2YXJp YWJsZSAqLworLyogR1VDIHZhcmlhYmxlcyAqLwogaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJCSAq IHNsb3RzICovCiAKKy8qCisgKiBUaGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24g c3RhbmRieSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CisgKiBsb2dpY2FsIFdBTCBzZW5kZXIgcHJv Y2Vzc2VzIHdpbGwgd2FpdCBmb3IuCisgKi8KK2NoYXIJICAgKnN0YW5kYnlfc2xvdF9uYW1lczsK KworLyogVGhpcyBpcyBwYXJzZWQgYW5kIGNhY2hlZCBsaXN0IGZvciByYXcgc3RhbmRieV9zbG90 X25hbWVzLiAqLworc3RhdGljIExpc3QgKnN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0gTklMOwor CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3RTaG1lbUV4aXQoaW50IGNvZGUsIERhdHVtIGFy Zyk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCk7CiAKQEAgLTIyMzMsMyArMjI0NywzMjkgQEAgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25z dCBjaGFyICpuYW1lKQogCQkJCShlcnJtc2coInRvbyBtYW55IHJlcGxpY2F0aW9uIHNsb3RzIGFj dGl2ZSBiZWZvcmUgc2h1dGRvd24iKSwKIAkJCQkgZXJyaGludCgiSW5jcmVhc2UgbWF4X3JlcGxp Y2F0aW9uX3Nsb3RzIGFuZCB0cnkgYWdhaW4uIikpKTsKIH0KKworLyoKKyAqIEEgaGVscGVyIGZ1 bmN0aW9uIHRvIHZhbGlkYXRlIHNsb3RzIHNwZWNpZmllZCBpbiBHVUMgc3RhbmRieV9zbG90X25h bWVzLgorICovCitzdGF0aWMgYm9vbAordmFsaWRhdGVfc3RhbmRieV9zbG90cyhjaGFyICoqbmV3 dmFsKQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqZWxlbWxpc3Q7CisJTGlzdENl bGwgICAqbGM7CisJYm9vbAkJb2s7CisKKwkvKiBOZWVkIGEgbW9kaWZpYWJsZSBjb3B5IG9mIHN0 cmluZyAqLworCXJhd25hbWUgPSBwc3RyZHVwKCpuZXd2YWwpOworCisJLyogVmVyaWZ5IHN5bnRh eCBhbmQgcGFyc2Ugc3RyaW5nIGludG8gYSBsaXN0IG9mIGlkZW50aWZpZXJzICovCisJb2sgPSBT cGxpdElkZW50aWZpZXJTdHJpbmcocmF3bmFtZSwgJywnLCAmZWxlbWxpc3QpOworCisJaWYgKCFv aykKKwkJR1VDX2NoZWNrX2VycmRldGFpbCgiTGlzdCBzeW50YXggaXMgaW52YWxpZC4iKTsKKwor CS8qCisJICogSWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlIG5hbWUgb3IgaWYgdGhl IHJlcGxpY2F0aW9uIHNsb3RzJworCSAqIGRhdGEgaXMgbm90IGluaXRpYWxpemVkIHlldCAoaS5l Liwgd2UgYXJlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MpLCBza2lwCisJICogdGhlIHNsb3QgdmVy aWZpY2F0aW9uLgorCSAqLworCWlmICghb2sgfHwgIVJlcGxpY2F0aW9uU2xvdEN0bCkKKwl7CisJ CXBmcmVlKHJhd25hbWUpOworCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCQlyZXR1cm4gb2s7CisJ fQorCisJZm9yZWFjaChsYywgZWxlbWxpc3QpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0 KGxjKTsKKwkJUmVwbGljYXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1lZFJl cGxpY2F0aW9uU2xvdChuYW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCUdVQ19j aGVja19lcnJkZXRhaWwoInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwK KwkJCQkJCQkJbmFtZSk7CisJCQlvayA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAo IVNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQl7CisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJcIiVz XCIgaXMgbm90IGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCisJCQkJCQkJCW5hbWUpOwor CQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcGZyZWUocmF3bmFtZSk7CisJ bGlzdF9mcmVlKGVsZW1saXN0KTsKKwlyZXR1cm4gb2s7Cit9CisKKy8qCisgKiBHVUMgY2hlY2tf aG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK2Jvb2wKK2NoZWNrX3N0YW5kYnlfc2xv dF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCit7 CisJaWYgKHN0cmNtcCgqbmV3dmFsLCAiIikgPT0gMCkKKwkJcmV0dXJuIHRydWU7CisKKwkvKgor CSAqICIqIiBpcyBub3QgYWNjZXB0ZWQgYXMgaW4gdGhhdCBjYXNlIHByaW1hcnkgd2lsbCBub3Qg YmUgYWJsZSB0byBrbm93CisJICogZm9yIHdoaWNoIGFsbCBzdGFuZGJ5cyB0byB3YWl0IGZvci4g RXZlbiBpZiB3ZSBoYXZlIHBoeXNpY2FsLXNsb3RzCisJICogaW5mbywgdGhlcmUgaXMgbm8gd2F5 IHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSBpcyBhbnkgc3RhbmRieQorCSAqIGNvbmZpZ3VyZWQg Zm9yIHRoZSBrbm93biBwaHlzaWNhbCBzbG90cy4KKwkgKi8KKwlpZiAoc3RyY21wKCpuZXd2YWws ICIqIikgPT0gMCkKKwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoIlwiJXNcIiBpcyBub3QgYWNj ZXB0ZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcyIsCisJCQkJCQkJKm5ld3ZhbCk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwkvKiBOb3cgdmVyaWZ5IGlmIHRoZSBzcGVjaWZpZWQgc2xvdHMgcmVh bGx5IGV4aXN0IGFuZCBoYXZlIGNvcnJlY3QgdHlwZSAqLworCWlmICghdmFsaWRhdGVfc3RhbmRi eV9zbG90cyhuZXd2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqZXh0cmEgPSBndWNfc3RyZHVw KEVSUk9SLCAqbmV3dmFsKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogR1VDIGFzc2ln bl9ob29rIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqLwordm9pZAorYXNzaWduX3N0YW5kYnlf c2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCUxpc3QJICAg KnN0YW5kYnlfc2xvdHM7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisJY2hhcgkgICAqc3RhbmRi eV9zbG90X25hbWVzX2NweSA9IGV4dHJhOworCisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdF9uYW1l c19saXN0KTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9IE5JTDsKKworCS8qIE5vIHZhbHVl IGlzIHNwZWNpZmllZCBmb3Igc3RhbmRieV9zbG90X25hbWVzLiAqLworCWlmIChzdGFuZGJ5X3Ns b3RfbmFtZXNfY3B5ID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghU3BsaXRJZGVudGlmaWVy U3RyaW5nKHN0YW5kYnlfc2xvdF9uYW1lc19jcHksICcsJywgJnN0YW5kYnlfc2xvdHMpKQorCXsK KwkJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiBpZiBHVUMgY2hlY2tlZCBjaGVja19zdGFuZGJ5 X3Nsb3RfbmFtZXMuICovCisJCWVsb2coRVJST1IsICJpbnZhbGlkIGxpc3Qgc3ludGF4Iik7CisJ fQorCisJLyoKKwkgKiBTd2l0Y2ggdG8gdGhlIHNhbWUgbWVtb3J5IGNvbnRleHQgdW5kZXIgd2hp Y2ggR1VDIHZhcmlhYmxlcyBhcmUKKwkgKiBhbGxvY2F0ZWQgKEdVQ01lbW9yeUNvbnRleHQpLgor CSAqLworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRNZW1vcnlDaHVua0NvbnRl eHQoc3RhbmRieV9zbG90X25hbWVzX2NweSkpOworCXN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0g bGlzdF9jb3B5KHN0YW5kYnlfc2xvdHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQp OworfQorCisvKgorICogUmV0dXJuIGEgY29weSBvZiBzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCBp ZiB0aGUgY29weSBmbGFnIGlzIHNldCB0byB0cnVlLAorICogb3RoZXJ3aXNlIHJldHVybiB0aGUg b3JpZ2luYWwgbGlzdC4KKyAqLworTGlzdCAqCitHZXRTdGFuZGJ5U2xvdExpc3QoYm9vbCBjb3B5 KQoreworCS8qCisJICogU2luY2Ugd2UgZG8gbm90IHN1cHBvcnQgc3luY2luZyBzbG90cyB0byBj YXNjYWRpbmcgc3RhbmRieXMsIHdlIHJldHVybgorCSAqIE5JTCBoZXJlIGlmIHdlIGFyZSBydW5u aW5nIGluIGEgc3RhbmRieSB0byBpbmRpY2F0ZSB0aGF0IG5vIHN0YW5kYnkKKwkgKiBzbG90cyBu ZWVkIHRvIGJlIHdhaXRlZCBmb3IuCisJICovCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQor CQlyZXR1cm4gTklMOworCisJaWYgKGNvcHkpCisJCXJldHVybiBsaXN0X2NvcHkoc3RhbmRieV9z bG90X25hbWVzX2xpc3QpOworCWVsc2UKKwkJcmV0dXJuIHN0YW5kYnlfc2xvdF9uYW1lc19saXN0 OworfQorCisvKgorICogUmVsb2FkIHRoZSBjb25maWcgZmlsZSBhbmQgcmVpbml0aWFsaXplIHRo ZSBzdGFuZGJ5IHNsb3QgbGlzdCBpZiB0aGUgR1VDCisgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaGFz IGNoYW5nZWQuCisgKi8KK3ZvaWQKK1JlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KExpc3Qg KipzdGFuZGJ5X3Nsb3RzKQoreworCWNoYXIJICAgKnByZV9zdGFuZGJ5X3Nsb3RfbmFtZXM7CisK KwkvKgorCSAqIElmIHdlIGFyZSBydW5uaW5nIG9uIGEgc3RhbmRieSwgdGhlcmUgaXMgbm8gbmVl ZCB0byByZWxvYWQKKwkgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgc2luY2Ugd2UgZG8gbm90IHN1cHBv cnQgc3luY2luZyBzbG90cyB0byBjYXNjYWRpbmcKKwkgKiBzdGFuZGJ5cy4KKwkgKi8KKwlpZiAo UmVjb3ZlcnlJblByb2dyZXNzKCkpCisJeworCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQ KTsKKwkJcmV0dXJuOworCX0KKworCXByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMgPSBwc3RyZHVwKHN0 YW5kYnlfc2xvdF9uYW1lcyk7CisKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwor CWlmIChzdHJjbXAocHJlX3N0YW5kYnlfc2xvdF9uYW1lcywgc3RhbmRieV9zbG90X25hbWVzKSAh PSAwKQorCXsKKwkJbGlzdF9mcmVlKCpzdGFuZGJ5X3Nsb3RzKTsKKwkJKnN0YW5kYnlfc2xvdHMg PSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisJfQorCisJcGZyZWUocHJlX3N0YW5kYnlfc2xv dF9uYW1lcyk7Cit9CisKKy8qCisgKiBGaWx0ZXIgdGhlIHN0YW5kYnkgc2xvdHMgYmFzZWQgb24g dGhlIHNwZWNpZmllZCBsb2cgc2VxdWVuY2UgbnVtYmVyCisgKiAod2FpdF9mb3JfbHNuKS4KKyAq CisgKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIHBhc3NlZCBzdGFuZGJ5X3Nsb3RzIGxpc3Qs IHJlbW92aW5nIGFueSBzbG90cyB0aGF0CisgKiBoYXZlIGFscmVhZHkgY2F1Z2h0IHVwIHRvIG9y IHN1cnBhc3NlZCB0aGUgZ2l2ZW4gd2FpdF9mb3JfbHNuLiBBZGRpdGlvbmFsbHksCisgKiBpdCBy ZW1vdmVzIHNsb3RzIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBkcm9wcGVkLCBvciBjb252 ZXJ0ZWQgdG8KKyAqIGxvZ2ljYWwgc2xvdHMuCisgKi8KK3ZvaWQKK0ZpbHRlclN0YW5kYnlTbG90 cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwgTGlzdCAqKnN0YW5kYnlfc2xvdHMpCit7CisJTGlz dENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90c19jcHkgPSAqc3RhbmRieV9zbG90 czsKKworCWZvcmVhY2gobGMsIHN0YW5kYnlfc2xvdHNfY3B5KQorCXsKKwkJY2hhcgkgICAqbmFt ZSA9IGxmaXJzdChsYyk7CisJCWNoYXIJICAgKndhcm5pbmdmbXQgPSBOVUxMOworCQlSZXBsaWNh dGlvblNsb3QgKnNsb3Q7CisKKwkJc2xvdCA9IFNlYXJjaE5hbWVkUmVwbGljYXRpb25TbG90KG5h bWUsIHRydWUpOworCisJCWlmICghc2xvdCkKKwkJeworCQkJLyoKKwkJCSAqIEl0IG1heSBoYXBw ZW4gdGhhdCB0aGUgc2xvdCBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIEdVQworCQkJ ICogdmFsdWUgaXMgZHJvcHBlZCwgc28gbGV0J3Mgc2tpcCBvdmVyIGl0LgorCQkJICovCisJCQl3 YXJuaW5nZm10ID0gXygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBhcmFt ZXRlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZSBpZiAo U2xvdElzTG9naWNhbChzbG90KSkKKwkJeworCQkJLyoKKwkJCSAqIElmIGEgbG9naWNhbCBzbG90 IG5hbWUgaXMgcHJvdmlkZWQgaW4gc3RhbmRieV9zbG90X25hbWVzLCBpc3N1ZQorCQkJICogYSBX QVJOSU5HIGFuZCBza2lwIGl0LiBBbHRob3VnaCBsb2dpY2FsIHNsb3RzIGFyZSBkaXNhbGxvd2Vk IGluCisJCQkgKiB0aGUgR1VDIGNoZWNrX2hvb2sodmFsaWRhdGVfc3RhbmRieV9zbG90cyksIGl0 IGlzIHN0aWxsCisJCQkgKiBwb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGRyb3AgYW4gZXhpc3Rpbmcg cGh5c2ljYWwgc2xvdCBhbmQKKwkJCSAqIHJlY3JlYXRlIGEgbG9naWNhbCBzbG90IHdpdGggdGhl IHNhbWUgbmFtZS4gU2luY2UgaXQgaXMKKwkJCSAqIGhhcm1sZXNzLCBhIFdBUk5JTkcgc2hvdWxk IGJlIGVub3VnaCwgbm8gbmVlZCB0byBlcnJvci1vdXQuCisJCQkgKi8KKwkJCXdhcm5pbmdmbXQg PSBfKCJjYW5ub3QgaGF2ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIHBhcmFt ZXRlciBcIiVzXCIsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKKworCQkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgIT0g UlNfSU5WQUxfTk9ORSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFNwZWNpZmllZCBwaHlzaWNhbCBz bG90IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgc28gbm8gcG9pbnQKKwkJCQkgKiBpbiB3YWl0aW5n IGZvciBpdC4KKwkJCQkgKi8KKwkJCQl3YXJuaW5nZm10ID0gXygicGh5c2ljYWwgc2xvdCBcIiVz XCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgaGFzIGJlZW4gaW52YWxpZGF0ZWQsIGln bm9yaW5nIik7CisJCQl9CisJCQllbHNlIGlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3QtPmRh dGEucmVzdGFydF9sc24pIHx8CisJCQkJCSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIDwgd2FpdF9m b3JfbHNuKQorCQkJeworCQkJCWJvb2wJaW5hY3RpdmUgPSAoc2xvdC0+YWN0aXZlX3BpZCA9PSAw KTsKKworCQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCQkJLyogTG9nIHdh cm5pbmcgaWYgbm8gYWN0aXZlX3BpZCBmb3IgdGhpcyBwaHlzaWNhbCBzbG90ICovCisJCQkJaWYg KGluYWN0aXZlKQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBzcGVjaWZpZWQgaW4gcGFyYW1ldGVyIFwiJXNcIiBkb2VzIG5vdCBo YXZlIGFjdGl2ZV9waWQiLAorCQkJCQkJCQkgICBuYW1lLCAic3RhbmRieV9zbG90X25hbWVzIiks CisJCQkJCQkJZXJyZGV0YWlsKCJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHdhaXRpbmcgb24gdGhl ICIKKwkJCQkJCQkJCSAgInN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIFwiJXNcIi4iLCBuYW1lKSwK KwkJCQkJCQllcnJoaW50KCJDb25zaWRlciBzdGFydGluZyBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0 aCAiCisJCQkJCQkJCQkiXCIlc1wiIG9yIGFtZW5kIHN0YW5kYnlfc2xvdF9uYW1lcy4iLCBuYW1l KSk7CisKKwkJCQkvKiBDb250aW51ZSBpZiB0aGUgY3VycmVudCBzbG90IGhhc24ndCBjYXVnaHQg dXAuICovCisJCQkJY29udGludWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJQXNzZXJ0KHNs b3QtPmRhdGEucmVzdGFydF9sc24gPj0gd2FpdF9mb3JfbHNuKTsKKwkJCX0KKworCQkJU3Bpbkxv Y2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCX0KKworCQkvKgorCQkgKiBSZWFjaGluZyBoZXJl IGluZGljYXRlcyB0aGF0IGVpdGhlciB0aGUgc2xvdCBoYXMgcGFzc2VkIHRoZQorCQkgKiB3YWl0 X2Zvcl9sc24gb3IgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCB0aGUgc2xvdCB0aGF0IHJlcXVpcmVz IGEKKwkJICogd2FybmluZyB0byBiZSByZXBvcnRlZC4KKwkJICovCisJCWlmICh3YXJuaW5nZm10 KQorCQkJZXJlcG9ydChXQVJOSU5HLCBlcnJtc2cod2FybmluZ2ZtdCwgbmFtZSwgInN0YW5kYnlf c2xvdF9uYW1lcyIpKTsKKworCQlzdGFuZGJ5X3Nsb3RzX2NweSA9IGZvcmVhY2hfZGVsZXRlX2N1 cnJlbnQoc3RhbmRieV9zbG90c19jcHksIGxjKTsKKwl9CisKKwkqc3RhbmRieV9zbG90cyA9IHN0 YW5kYnlfc2xvdHNfY3B5OworfQorCisvKgorICogV2FpdCBmb3IgcGh5c2ljYWwgc3RhbmRieSB0 byBjb25maXJtIHJlY2VpdmluZyB0aGUgZ2l2ZW4gbHNuLgorICoKKyAqIFVzZWQgYnkgbG9naWNh bCBkZWNvZGluZyBTUUwgZnVuY3Rpb25zIHRoYXQgYWNxdWlyZWQgc2xvdCB3aXRoIGZhaWxvdmVy CisgKiBlbmFibGVkLiBJdCB3YWl0cyBmb3IgcGh5c2ljYWwgc3RhbmRieXMgY29ycmVzcG9uZGlu ZyB0byB0aGUgcGh5c2ljYWwgc2xvdHMKKyAqIHNwZWNpZmllZCBpbiB0aGUgc3RhbmRieV9zbG90 X25hbWVzIEdVQy4KKyAqLwordm9pZAorV2FpdEZvclN0YW5kYnlDb25maXJtYXRpb24oWExvZ1Jl Y1B0ciB3YWl0X2Zvcl9sc24pCit7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCWlmICgh TXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIpCisJCXJldHVybjsKKworCXN0YW5kYnlf c2xvdHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisKKwlpZiAoc3RhbmRieV9zbG90cyA9 PSBOSUwpCisJCXJldHVybjsKKworCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJldh bFNuZEN0bC0+d2FsX2NvbmZpcm1fcmN2X2N2KTsKKworCWZvciAoOzspCisJeworCQlDSEVDS19G T1JfSU5URVJSVVBUUygpOworCisJCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQorCQl7CisJCQlD b25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCQlSZXJlYWRDb25maWdBbmRSZUluaXRTbG90 TGlzdCgmc3RhbmRieV9zbG90cyk7CisJCX0KKworCQlGaWx0ZXJTdGFuZGJ5U2xvdHMod2FpdF9m b3JfbHNuLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyogRXhpdCBpZiBkb25lIHdhaXRpbmcgZm9y IGV2ZXJ5IHNsb3QuICovCisJCWlmIChzdGFuZGJ5X3Nsb3RzID09IE5JTCkKKwkJCWJyZWFrOwor CisJCS8qCisJCSAqIFdlIHdhaXQgZm9yIHRoZSBzbG90cyBpbiB0aGUgc3RhbmRieV9zbG90X25h bWVzIHRvIGNhdGNoIHVwLCBidXQgd2UKKwkJICogdXNlIGEgdGltZW91dCBzbyB3ZSBjYW4gYWxz byBjaGVjayB0aGUgaWYgdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBoYXMKKwkJICogYmVlbiBjaGFu Z2VkLgorCQkgKi8KKwkJQ29uZGl0aW9uVmFyaWFibGVUaW1lZFNsZWVwKCZXYWxTbmRDdGwtPndh bF9jb25maXJtX3Jjdl9jdiwgMTAwMCwKKwkJCQkJCQkJCVdBSVRfRVZFTlRfV0FJVF9GT1JfU1RB TkRCWV9DT05GSVJNQVRJT04pOworCX0KKworCUNvbmRpdGlvblZhcmlhYmxlQ2FuY2VsU2xlZXAo KTsKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Rm dW5jcy5jCmluZGV4IDg0M2FlOGNkNjguLjBhMDliNmM1MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3RmdW5jcy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVj b2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbHNuLmgiCkBAIC00NzQsNiArNDc1LDggQEAgcGdfcGh5c2ljYWxfcmVwbGlj YXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92ZXRvKQogCQkgKiBjcmFzaCwgYnV0IHRo aXMgbWFrZXMgdGhlIGRhdGEgY29uc2lzdGVudCBhZnRlciBhIGNsZWFuIHNodXRkb3duLgogCQkg Ki8KIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisKKwkJUGh5c2ljYWxXYWtldXBMb2dp Y2FsV2FsU25kKCk7CiAJfQogCiAJcmV0dXJuIHJldGxzbjsKQEAgLTUxNCw2ICs1MTcsMTIgQEAg cGdfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoWExvZ1JlY1B0ciBtb3ZldG8pCiAJ CQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3NlZ21lbnRfY2xvc2UpLAogCQkJCQkJ CQkJTlVMTCwgTlVMTCwgTlVMTCk7CiAKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0 cmVhbWluZyByZXBsaWNhdGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29u ZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBtb3ZldG8gbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0 YW5kYnlDb25maXJtYXRpb24obW92ZXRvKTsKKwogCQkvKgogCQkgKiBTdGFydCByZWFkaW5nIGF0 IHRoZSBzbG90J3MgcmVzdGFydF9sc24sIHdoaWNoIHdlIGtub3cgdG8gcG9pbnQgdG8KIAkJICog YSB2YWxpZCByZWNvcmQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxz ZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGY3NTNh ZWQzNDUuLjcxOTMzZjRiZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0x MjE5LDcgKzEyMTksNiBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25T bG90Q21kICpjbWQpCiAKIAlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNlcnZl X3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwKIAkJCQkJCQkgICAmZmFpbG92ZXIp OwotCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCXsKIAkJ UmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLApAQCAtMTcyOCwyNyAr MTcyNyw3OCBAQCBXYWxTbmRVcGRhdGVQcm9ncmVzcyhMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpj dHgsIFhMb2dSZWNQdHIgbHNuLCBUcmFuc2FjdGlvbklkCiAJCVByb2Nlc3NQZW5kaW5nV3JpdGVz KCk7CiB9CiAKKy8qCisgKiBXYWtlIHVwIHRoZSBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNzZXMg d2l0aCBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIGlmIHRoZQorICogY3VycmVudGx5IGFjcXVpcmVk IHBoeXNpY2FsIHNsb3QgaXMgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcworICogR1VD LgorICovCit2b2lkCitQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQodm9pZCkKK3sKKwlMaXN0 Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCisJQXNzZXJ0KE15UmVwbGlj YXRpb25TbG90ICYmIFNsb3RJc1BoeXNpY2FsKE15UmVwbGljYXRpb25TbG90KSk7CisKKwlzdGFu ZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KGZhbHNlKTsKKworCWZvcmVhY2gobGMsIHN0 YW5kYnlfc2xvdHMpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0KGxjKTsKKworCQlpZiAo c3RyY21wKG5hbWUsIE5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSkpID09IDAp CisJCXsKKwkJCUNvbmRpdGlvblZhcmlhYmxlQnJvYWRjYXN0KCZXYWxTbmRDdGwtPndhbF9jb25m aXJtX3Jjdl9jdik7CisJCQlyZXR1cm47CisJCX0KKwl9Cit9CisKIC8qCiAgKiBXYWl0IHRpbGwg V0FMIDwgbG9jIGlzIGZsdXNoZWQgdG8gZGlzayBzbyBpdCBjYW4gYmUgc2FmZWx5IHNlbnQgdG8g Y2xpZW50LgogICoKLSAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dAotICogaWYgd2UgZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpCi0gKiB3ZSB3aWxsIHJldHVy biBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgorICogSWYgdGhlIHdhbHNlbmRl ciBob2xkcyBhIGxvZ2ljYWwgc2xvdCB0aGF0IGhhcyBlbmFibGVkIGZhaWxvdmVyLCB3ZSBhbHNv CisgKiB3YWl0IGZvciBhbGwgdGhlIHNwZWNpZmllZCBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3Rh bmRieSBzZXJ2ZXJzIHRvCisgKiBjb25maXJtIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2VudEZs dXNoUHRyLgorICoKKyAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dCBpZiB3ZQorICogZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpIHdlIHdpbGwgcmV0dXJuCisg KiBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgogICovCiBzdGF0aWMgWExvZ1Jl Y1B0cgogV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIHsKIAlpbnQJCQl3YWtlRXZl bnRzOworCWJvb2wJCXdhaXRfZm9yX3N0YW5kYnkgPSBmYWxzZTsKKwl1aW50MzIJCXdhaXRfZXZl bnQ7CisJTGlzdAkgICAqc3RhbmRieV9zbG90cyA9IE5JTDsKIAlzdGF0aWMgWExvZ1JlY1B0ciBS ZWNlbnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOwogCisJaWYgKE15UmVwbGljYXRpb25T bG90LT5kYXRhLmZhaWxvdmVyICYmIHJlcGxpY2F0aW9uX2FjdGl2ZSkKKwkJc3RhbmRieV9zbG90 cyA9IEdldFN0YW5kYnlTbG90TGlzdCh0cnVlKTsKKwogCS8qCi0JICogRmFzdCBwYXRoIHRvIGF2 b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cgd2UKLQkg KiBoYXZlIGVub3VnaCBXQUwgYXZhaWxhYmxlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVz dGluZyBpZiB3ZSdyZQotCSAqIGZhciBiZWhpbmQuCisJICogQ2hlY2sgaWYgYWxsIHRoZSBzdGFu ZGJ5IHNlcnZlcnMgaGF2ZSBjb25maXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8KKwkgKiBSZWNl bnRGbHVzaFB0ciBldmVuIHdoZW4gd2UgYWxyZWFkeSBrbm93IHdlIGhhdmUgZW5vdWdoIFdBTCBh dmFpbGFibGUuCisJICoKKwkgKiBOb3RlIHRoYXQgd2UgY2Fubm90IGRpcmVjdGx5IHJldHVybiB3 aXRob3V0IGNoZWNraW5nIHRoZSBzdGF0dXMgb2YKKwkgKiBzdGFuZGJ5IHNlcnZlcnMgYmVjYXVz ZSB0aGUgc3RhbmRieV9zbG90X25hbWVzIG1heSBoYXZlIGNoYW5nZWQsIHdoaWNoCisJICogbWVh bnMgdGhlcmUgY291bGQgYmUgbmV3IHN0YW5kYnkgc2xvdHMgaW4gdGhlIGxpc3QgdGhhdCBoYXZl IG5vdCB5ZXQKKwkgKiBjYXVnaHQgdXAgdG8gdGhlIFJlY2VudEZsdXNoUHRyLgogCSAqLwotCWlm IChSZWNlbnRGbHVzaFB0ciAhPSBJbnZhbGlkWExvZ1JlY1B0ciAmJgotCQlsb2MgPD0gUmVjZW50 Rmx1c2hQdHIpCi0JCXJldHVybiBSZWNlbnRGbHVzaFB0cjsKKwlpZiAoIVhMb2dSZWNQdHJJc0lu dmFsaWQoUmVjZW50Rmx1c2hQdHIpICYmIGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwl7CisJCUZp bHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8q CisJCSAqIEZhc3QgcGF0aCB0byBhdm9pZCBhY3F1aXJpbmcgdGhlIHNwaW5sb2NrIGluIGNhc2Ug d2UgYWxyZWFkeSBrbm93CisJCSAqIHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUgYW5kIGFs bCB0aGUgc3RhbmRieSBzZXJ2ZXJzIGhhdmUKKwkJICogY29uZmlybWVkIHJlY2VpcHQgb2YgV0FM IHVwIHRvIFJlY2VudEZsdXNoUHRyLiBUaGlzIGlzIHBhcnRpY3VsYXJseQorCQkgKiBpbnRlcmVz dGluZyBpZiB3ZSdyZSBmYXIgYmVoaW5kLgorCQkgKi8KKwkJaWYgKHN0YW5kYnlfc2xvdHMgPT0g TklMKQorCQkJcmV0dXJuIFJlY2VudEZsdXNoUHRyOworCX0KIAogCS8qIEdldCBhIG1vcmUgcmVj ZW50IGZsdXNoIHBvaW50ZXIuICovCiAJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKQEAgLTE3 NjksNyArMTgxOSw3IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChD b25maWdSZWxvYWRQZW5kaW5nKQogCQl7CiAJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7 Ci0JCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwkJCVJlcmVhZENvbmZpZ0FuZFJl SW5pdFNsb3RMaXN0KCZzdGFuZGJ5X3Nsb3RzKTsKIAkJCVN5bmNSZXBJbml0Q29uZmlnKCk7CiAJ CX0KIApAQCAtMTc4NCw4ICsxODM0LDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAJCWlmIChnb3RfU1RPUFBJTkcpCiAJCQlYTG9nQmFja2dyb3VuZEZsdXNoKCk7CiAKKwkJ LyoKKwkJICogVXBkYXRlIHRoZSBzdGFuZGJ5IHNsb3RzIHRoYXQgaGF2ZSBub3QgeWV0IGNhdWdo dCB1cCB0byB0aGUgZmx1c2hlZAorCQkgKiBwb3NpdGlvbi4gSXQgaXMgZ29vZCB0byB3YWl0IHVw IHRvIFJlY2VudEZsdXNoUHRyIGFuZCB0aGVuIGxldCBpdAorCQkgKiBzZW5kIHRoZSBjaGFuZ2Vz IHRvIGxvZ2ljYWwgc3Vic2NyaWJlcnMgb25lIGJ5IG9uZSB3aGljaCBhcmUKKwkJICogYWxyZWFk eSBjb3ZlcmVkIGluIFJlY2VudEZsdXNoUHRyIHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IG9uIGV2 ZXJ5CisJCSAqIGNoYW5nZSBmb3Igc3RhbmRieSBjb25maXJtYXRpb24uCisJCSAqLworCQlpZiAo d2FpdF9mb3Jfc3RhbmRieSkKKwkJCUZpbHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwg JnN0YW5kYnlfc2xvdHMpOworCiAJCS8qIFVwZGF0ZSBvdXIgaWRlYSBvZiB0aGUgY3VycmVudGx5 IGZsdXNoZWQgcG9zaXRpb24uICovCi0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCWVs c2UgaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1 c2hSZWNQdHIoTlVMTCk7CiAJCWVsc2UKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0WExvZ1JlcGxh eVJlY1B0cihOVUxMKTsKQEAgLTE4MTMsOSArMTg3MywxOCBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhM b2dSZWNQdHIgbG9jKQogCQkJIXdhaXRpbmdfZm9yX3BpbmdfcmVzcG9uc2UpCiAJCQlXYWxTbmRL ZWVwYWxpdmUoZmFsc2UsIEludmFsaWRYTG9nUmVjUHRyKTsKIAotCQkvKiBjaGVjayB3aGV0aGVy IHdlJ3JlIGRvbmUgKi8KLQkJaWYgKGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwkJaWYgKGxvYyA+ IFJlY2VudEZsdXNoUHRyKQorCQkJd2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9X QUlUX0ZPUl9XQUw7CisJCWVsc2UgaWYgKHN0YW5kYnlfc2xvdHMpCisJCXsKKwkJCXdhaXRfZXZl bnQgPSBXQUlUX0VWRU5UX1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OOworCQkJd2FpdF9m b3Jfc3RhbmRieSA9IHRydWU7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBBbHJlYWR5IGNhdWdo dCB1cCBhbmQgZG9lc24ndCBuZWVkIHRvIHdhaXQgZm9yIHN0YW5kYnlfc2xvdHMuICovCiAJCQli cmVhazsKKwkJfQogCiAJCS8qIFdhaXRpbmcgZm9yIG5ldyBXQUwuIFNpbmNlIHdlIG5lZWQgdG8g d2FpdCwgd2UncmUgbm93IGNhdWdodCB1cC4gKi8KIAkJV2FsU25kQ2F1Z2h0VXAgPSB0cnVlOwpA QCAtMTg1NSw5ICsxOTI0LDExIEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJ CWlmIChwcV9pc19zZW5kX3BlbmRpbmcoKSkKIAkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfRk9SX1dBTCk7CisJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xl ZXB0aW1lLCB3YWl0X2V2ZW50KTsKIAl9CiAKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7CisK IAkvKiByZWFjdGl2YXRlIGxhdGNoIHNvIFdhbFNuZExvb3Aga25vd3MgdG8gY29udGludWUgKi8K IAlTZXRMYXRjaChNeUxhdGNoKTsKIAlyZXR1cm4gUmVjZW50Rmx1c2hQdHI7CkBAIC0yMjY1LDYg KzIzMzYsNyBAQCBQaHlzaWNhbENvbmZpcm1SZWNlaXZlZExvY2F0aW9uKFhMb2dSZWNQdHIgbHNu KQogCXsKIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CiAJCVJlcGxpY2F0aW9uU2xvdHND b21wdXRlUmVxdWlyZWRMU04oKTsKKwkJUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKCk7CiAJ fQogCiAJLyoKQEAgLTM1MzIsNiArMzYwNCw3IEBAIFdhbFNuZFNobWVtSW5pdCh2b2lkKQogCiAJ CUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCQlDb25k aXRpb25WYXJpYWJsZUluaXQoJldhbFNuZEN0bC0+d2FsX3JlcGxheV9jdik7CisJCUNvbmRpdGlv blZhcmlhYmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfY29uZmlybV9yY3ZfY3YpOwogCX0KIH0KIApA QCAtMzYwMSw4ICszNjc0LDE0IEBAIFdhbFNuZFdhaXQodWludDMyIHNvY2tldF9ldmVudHMsIGxv bmcgdGltZW91dCwgdWludDMyIHdhaXRfZXZlbnQpCiAJICoKIAkgKiBBbmQsIHdlIHVzZSBzZXBh cmF0ZSBzaGFyZWQgbWVtb3J5IENWcyBmb3IgcGh5c2ljYWwgYW5kIGxvZ2ljYWwKIAkgKiB3YWxz ZW5kZXJzIGZvciBzZWxlY3RpdmUgd2FrZSB1cHMsIHNlZSBXYWxTbmRXYWtldXAoKSBmb3IgbW9y ZSBkZXRhaWxzLgorCSAqCisJICogSWYgdGhlIHdhaXQgZXZlbnQgaXMgV0FJVF9GT1JfU1RBTkRC WV9DT05GSVJNQVRJT04sIHdhaXQgb24gYW5vdGhlciBDVgorCSAqIHVudGlsIGF3YWtlbmVkIGJ5 IHBoeXNpY2FsIHdhbHNlbmRlcnMgYWZ0ZXIgdGhlIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZQor CSAqIHJlY2VpcHQgb2YgdGhlIExTTi4KIAkgKi8KLQlpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQ TElDQVRJT05fS0lORF9QSFlTSUNBTCkKKwlpZiAod2FpdF9ldmVudCA9PSBXQUlUX0VWRU5UX1dB SVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OKQorCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVU b1NsZWVwKCZXYWxTbmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CisJZWxzZSBpZiAoTXlXYWxT bmQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFi bGVQcmVwYXJlVG9TbGVlcCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCWVsc2UgaWYgKE15 V2FsU25kLT5raW5kID09IFJFUExJQ0FUSU9OX0tJTkRfTE9HSUNBTCkKIAkJQ29uZGl0aW9uVmFy aWFibGVQcmVwYXJlVG9TbGVlcCgmV2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggNGMwZWUy ZGQyOS4uOTk3M2VmNDFiOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKQEAgLTc4LDYgKzc4LDcgQEAgR1NTX09QRU5fU0VSVkVSCSJXYWl0 aW5nIHRvIHJlYWQgZGF0YSBmcm9tIHRoZSBjbGllbnQgd2hpbGUgZXN0YWJsaXNoaW5nIGEgR1NT QVAKIExJQlBRV0FMUkVDRUlWRVJfQ09OTkVDVAkiV2FpdGluZyBpbiBXQUwgcmVjZWl2ZXIgdG8g ZXN0YWJsaXNoIGNvbm5lY3Rpb24gdG8gcmVtb3RlIHNlcnZlci4iCiBMSUJQUVdBTFJFQ0VJVkVS X1JFQ0VJVkUJIldhaXRpbmcgaW4gV0FMIHJlY2VpdmVyIHRvIHJlY2VpdmUgZGF0YSBmcm9tIHJl bW90ZSBzZXJ2ZXIuIgogU1NMX09QRU5fU0VSVkVSCSJXYWl0aW5nIGZvciBTU0wgd2hpbGUgYXR0 ZW1wdGluZyBjb25uZWN0aW9uLiIKK1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OCSJXYWl0 aW5nIGZvciB0aGUgV0FMIHRvIGJlIHJlY2VpdmVkIGJ5IHBoeXNpY2FsIHN0YW5kYnkuIgogV0FM X1NFTkRFUl9XQUlUX0ZPUl9XQUwJIldhaXRpbmcgZm9yIFdBTCB0byBiZSBmbHVzaGVkIGluIFdB TCBzZW5kZXIgcHJvY2Vzcy4iCiBXQUxfU0VOREVSX1dSSVRFX0RBVEEJIldhaXRpbmcgZm9yIGFu eSBhY3Rpdml0eSB3aGVuIHByb2Nlc3NpbmcgcmVwbGllcyBmcm9tIFdBTCByZWNlaXZlciBpbiBX QUwgc2VuZGVyIHByb2Nlc3MuIgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4 IDNhZjExYjJiODAuLmE4MjYxOGMzZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CkBAIC00NjI4LDYgKzQ2MjgsMjAgQEAgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFt ZXNTdHJpbmdbXSA9CiAJCWNoZWNrX2RlYnVnX2lvX2RpcmVjdCwgYXNzaWduX2RlYnVnX2lvX2Rp cmVjdCwgTlVMTAogCX0sCiAKKwl7CisJCXsic3RhbmRieV9zbG90X25hbWVzIiwgUEdDX1NJR0hV UCwgUkVQTElDQVRJT05fUFJJTUFSWSwKKwkJCWdldHRleHRfbm9vcCgiTGlzdHMgc3RyZWFtaW5n IHJlcGxpY2F0aW9uIHN0YW5kYnkgc2VydmVyIHNsb3QgIgorCQkJCQkJICJuYW1lcyB0aGF0IGxv Z2ljYWwgV0FMIHNlbmRlciBwcm9jZXNzZXMgd2lsbCB3YWl0IGZvci4iKSwKKwkJCWdldHRleHRf bm9vcCgiRGVjb2RlZCBjaGFuZ2VzIGFyZSBzZW50IG91dCB0byBwbHVnaW5zIGJ5IGxvZ2ljYWwg IgorCQkJCQkJICJXQUwgc2VuZGVyIHByb2Nlc3NlcyBvbmx5IGFmdGVyIHNwZWNpZmllZCAiCisJ CQkJCQkgInJlcGxpY2F0aW9uIHNsb3RzIGNvbmZpcm0gcmVjZWl2aW5nIFdBTC4iKSwKKwkJCUdV Q19MSVNUX0lOUFVUIHwgR1VDX0xJU1RfUVVPVEUKKwkJfSwKKwkJJnN0YW5kYnlfc2xvdF9uYW1l cywKKwkJIiIsCisJCWNoZWNrX3N0YW5kYnlfc2xvdF9uYW1lcywgYXNzaWduX3N0YW5kYnlfc2xv dF9uYW1lcywgTlVMTAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtO VUxMLCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDM4Njg2 OTRkM2YuLmRiNGFmYWYzNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKQEAgLTMzNCw2ICszMzQsOCBAQAogCQkJCSMgbWV0aG9kIHRvIGNob29z ZSBzeW5jIHN0YW5kYnlzLCBudW1iZXIgb2Ygc3luYyBzdGFuZGJ5cywKIAkJCQkjIGFuZCBjb21t YS1zZXBhcmF0ZWQgbGlzdCBvZiBhcHBsaWNhdGlvbl9uYW1lCiAJCQkJIyBmcm9tIHN0YW5kYnko cyk7ICcqJyA9IGFsbAorI3N0YW5kYnlfc2xvdF9uYW1lcyA9ICcnICMgc3RyZWFtaW5nIHJlcGxp Y2F0aW9uIHN0YW5kYnkgc2VydmVyIHNsb3QgbmFtZXMgdGhhdAorCQkJCSMgbG9naWNhbCB3YWxz ZW5kZXIgcHJvY2Vzc2VzIHdpbGwgd2FpdCBmb3IKIAogIyAtIFN0YW5kYnkgU2VydmVycyAtCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA0MWYwY2MzNWYzLi5hMGJhZDQ2OWZkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc2xvdC5oCkBAIC0yMjksNiArMjI5LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJl cGxpY2F0aW9uU2xvdCAqTXlSZXBsaWNhdGlvblNsb3Q7CiAKIC8qIEdVQ3MgKi8KIGV4dGVybiBQ R0RMTElNUE9SVCBpbnQgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOworZXh0ZXJuIFBHRExMSU1QT1JU IGNoYXIgKnN0YW5kYnlfc2xvdF9uYW1lczsKIAogLyogc2htZW0gaW5pdGlhbGl6YXRpb24gZnVu Y3Rpb25zICovCiBleHRlcm4gU2l6ZSBSZXBsaWNhdGlvblNsb3RzU2htZW1TaXplKHZvaWQpOwpA QCAtMjc1LDQgKzI3NiwxMCBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90 cyhib29sIGlzX3NodXRkb3duKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2 b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOwogCitleHRlcm4g TGlzdCAqR2V0U3RhbmRieVNsb3RMaXN0KGJvb2wgY29weSk7CitleHRlcm4gdm9pZCBXYWl0Rm9y U3RhbmRieUNvbmZpcm1hdGlvbihYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbik7CitleHRlcm4gdm9p ZCBGaWx0ZXJTdGFuZGJ5U2xvdHMoWExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sCisJCQkJCQkJCQkg TGlzdCAqKnN0YW5kYnlfc2xvdHMpOworZXh0ZXJuIHZvaWQgUmVyZWFkQ29uZmlnQW5kUmVJbml0 U2xvdExpc3QoTGlzdCAqKnN0YW5kYnlfc2xvdHMpOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCmluZGV4IDI3NmQ4OTEzYWEuLmY5YTU1 OWY4MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisr KyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCkBAIC00Nyw2ICs0Nyw3IEBA IGV4dGVybiB2b2lkIFdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNu ZFdhaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVdhbFNuZEluaXRTdG9wcGlu Zyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZvaWQpOworZXh0ZXJu IHZvaWQgUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKHZvaWQpOwogZXh0ZXJuIFhMb2dSZWNQ dHIgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSk7CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaAppbmRleCAzMTEzZTllYTQ3Li4w Zjk2MmIwYzcyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJf cHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRl LmgKQEAgLTExMyw2ICsxMTMsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlDb25kaXRpb25WYXJpYWJs ZSB3YWxfZmx1c2hfY3Y7CiAJQ29uZGl0aW9uVmFyaWFibGUgd2FsX3JlcGxheV9jdjsKIAorCS8q CisJICogVXNlZCBieSBwaHlzaWNhbCB3YWxzZW5kZXJzIGhvbGRpbmcgc2xvdHMgc3BlY2lmaWVk IGluCisJICogc3RhbmRieV9zbG90X25hbWVzIHRvIHdha2UgdXAgbG9naWNhbCB3YWxzZW5kZXJz IGhvbGRpbmcKKwkgKiBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIHdoZW4gYSB3YWxyZWNlaXZlciBj b25maXJtcyB0aGUgcmVjZWlwdCBvZiBMU04uCisJICovCisJQ29uZGl0aW9uVmFyaWFibGUgd2Fs X2NvbmZpcm1fcmN2X2N2OworCiAJV2FsU25kCQl3YWxzbmRzW0ZMRVhJQkxFX0FSUkFZX01FTUJF Ul07CiB9IFdhbFNuZEN0bERhdGE7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1 Y19ob29rcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKaW5kZXggNTMwMGM0NGYz Yi4uNDY0OTk2YjRmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKQEAgLTE2Miw1ICsxNjIsOCBAQCBl eHRlcm4gYm9vbCBjaGVja193YWxfY29uc2lzdGVuY3lfY2hlY2tpbmcoY2hhciAqKm5ld3ZhbCwg dm9pZCAqKmV4dHJhLAogZXh0ZXJuIHZvaWQgYXNzaWduX3dhbF9jb25zaXN0ZW5jeV9jaGVja2lu Zyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsKIGV4dGVybiBib29sIGNoZWNrX3dh bF9zZWdtZW50X3NpemUoaW50ICpuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJj ZSk7CiBleHRlcm4gdm9pZCBhc3NpZ25fd2FsX3N5bmNfbWV0aG9kKGludCBuZXdfd2FsX3N5bmNf bWV0aG9kLCB2b2lkICpleHRyYSk7CitleHRlcm4gYm9vbCBjaGVja19zdGFuZGJ5X3Nsb3RfbmFt ZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLAorCQkJCQkJCQkJIEd1Y1NvdXJjZSBzb3Vy Y2UpOworZXh0ZXJuIHZvaWQgYXNzaWduX3N0YW5kYnlfc2xvdF9uYW1lcyhjb25zdCBjaGFyICpu ZXd2YWwsIHZvaWQgKmV4dHJhKTsKIAogI2VuZGlmCQkJCQkJCS8qIEdVQ19IT09LU19IICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3JlY292 ZXJ5L21lc29uLmJ1aWxkCmluZGV4IDg4ZmIwMzA2ZjUuLjQxNTJjMDczMTggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21l c29uLmJ1aWxkCkBAIC00NSw2ICs0NSw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzN19pbnZh bGlkX2RhdGFiYXNlLnBsJywKICAgICAgICd0LzAzOF9zYXZlX2xvZ2ljYWxfc2xvdHNfc2h1dGRv d24ucGwnLAogICAgICAgJ3QvMDM5X2VuZF9vZl93YWwucGwnLAorICAgICAgJ3QvMDUwX3N0YW5k YnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzAwNl9sb2dpY2FsX2RlY29kaW5nLnBsCmluZGV4IDVjN2I0Y2E1ZTMuLjg1ZjAx OTc3NGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2Rp bmcucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbApA QCAtMTcyLDkgKzE3MiwxMCBAQCBpcygkbm9kZV9wcmltYXJ5LT5zbG90KCdvdGhlcmRiX3Nsb3Qn KS0+eydzbG90X25hbWUnfSwKIAl1bmRlZiwgJ2xvZ2ljYWwgc2xvdCB3YXMgYWN0dWFsbHkgZHJv cHBlZCB3aXRoIERCJyk7CiAKICMgVGVzdCBsb2dpY2FsIHNsb3QgYWR2YW5jaW5nIGFuZCBpdHMg ZHVyYWJpbGl0eS4KKyMgUGFzcyBmYWlsb3Zlcj10cnVlIChsYXN0LWFyZyksIGl0IHNob3VsZCBu b3QgaGF2ZSBhbnkgaW1wYWN0IG9uIGFkdmFuY2luZy4KIG15ICRsb2dpY2FsX3Nsb3QgPSAnbG9n aWNhbF9zbG90JzsKICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxF Q1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xvdCcsICd0 ZXN0X2RlY29kaW5nJywgZmFsc2UpOyIKKwkiU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJyRsb2dpY2FsX3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxz ZSwgdHJ1ZSk7IgogKTsKICRub2RlX3ByaW1hcnktPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19z eW5jLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19z eW5jLnBsCmluZGV4IDEwNTU1NzNjZGUuLjA2YTRhZGE5NDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbAorKysgYi9zcmMv dGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKQEAgLTg3 LDE3ICs4NywzMCBAQCBpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAogJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBF TkFCTEUiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSMgVGVzdCBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIG9uIHRoZSBzdGFuZGJ5Ci0jIENv bmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNhdGUgYW5kIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xv dHMgY29uZmlndXJlZAotIyBmb3IgZmFpbG92ZXIgb24gdGhlIHByaW1hcnkKKyMgVGVzdCBwcmlt YXJ5IGRpc2FsbG93aW5nIHNwZWNpZmllZCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGdldHRp bmcgYWhlYWQgb2YKKyMgc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBJdCB1 c2VzIHRoZSBmb2xsb3dpbmcgc2V0IHVwOgogIwotIyAgICAgICAgICAgICAgZmFpbG92ZXIgc2xv dCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlhIGxvZ2ljYWwg cmVwbGljYXRpb24pCi0jIHByaW1hcnkgLS0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK LSMgICAgICAgICAgICAgIHBoeXNpY2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBzdGFuZGJ5 MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24pCi0jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGxzdWIxX3Nsb3Qoc3lu Y2VkX3Nsb3QpCisjCQkJCXwgLS0tLT4gc3RhbmRieTEgKHByaW1hcnlfc2xvdF9uYW1lID0gc2Ix X3Nsb3QpCisjCQkJCXwgLS0tLT4gc3RhbmRieTIgKHByaW1hcnlfc2xvdF9uYW1lID0gc2IyX3Ns b3QpCisjIHByaW1hcnkgLS0tLS0JfAorIwkJCQl8IC0tLS0+IHN1YnNjcmliZXIxIChmYWlsb3Zl ciA9IHRydWUpCisjCQkJCXwgLS0tLT4gc3Vic2NyaWJlcjIgKGZhaWxvdmVyID0gZmFsc2UpCisj CisjIHN0YW5kYnlfc2xvdF9uYW1lcyA9ICdzYjFfc2xvdCcKKyMKKyMgU2V0IHVwIGlzIGNvbmZp Z3VyZWQgaW4gc3VjaCBhIHdheSB0aGF0IHRoZSBsb2dpY2FsIHNsb3Qgb2Ygc3Vic2NyaWJlcjEg aXMKKyMgZW5hYmxlZCBmYWlsb3ZlciwgdGh1cyBpdCB3aWxsIHdhaXQgZm9yIHRoZSBwaHlzaWNh bCBzbG90IG9mCisjIHN0YW5kYnkxKHNiMV9zbG90KSB0byBjYXRjaCB1cCBiZWZvcmUgc2VuZGlu ZyBkZWNvZGVkIGNoYW5nZXMgdG8gc3Vic2NyaWJlcjEuCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCisjIENyZWF0ZSBwcmltYXJ5CiBteSAkcHJp bWFyeSA9ICRwdWJsaXNoZXI7CisKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxF Q1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7fSk7Cisk cHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdzYjJfc2xvdCcpO30pOworCiBteSAkYmFja3VwX25hbWUgPSAnYmFj a3VwJzsKICRwcmltYXJ5LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKIApAQCAtMTA3LDIxICsxMjAs MjAxIEBAICRzdGFuZGJ5MS0+aW5pdF9mcm9tX2JhY2t1cCgKIAkkcHJpbWFyeSwgJGJhY2t1cF9u YW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSwKIAloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5k YnkxLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3Rf bmFtZSA9ICdzYjFfc2xvdCcKKykpOworJHN0YW5kYnkxLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0 X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTEpOworCisjIENyZWF0ZSBhbm90aGVyIHN0YW5k YnkKK215ICRzdGFuZGJ5MiA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRi eTInKTsKKyRzdGFuZGJ5Mi0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkcHJpbWFyeSwgJGJhY2t1cF9u YW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5k YnkyLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3Rf bmFtZSA9ICdzYjJfc2xvdCcKKykpOworJHN0YW5kYnkyLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0 X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTIpOworCisjIENvbmZpZ3VyZSBwcmltYXJ5IHRv IGRpc2FsbG93IGFueSBsb2dpY2FsIHNsb3RzIHRoYXQgZW5hYmxlZCBmYWlsb3ZlciBmcm9tCisj IGdldHRpbmcgYWhlYWQgb2Ygc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgKHNi MV9zbG90KS4KKyRwcmltYXJ5LT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEo CitzdGFuZGJ5X3Nsb3RfbmFtZXMgPSAnc2IxX3Nsb3QnCispKTsKKyRwcmltYXJ5LT5yZWxvYWQ7 CisKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW50 IChhIGludCBQUklNQVJZIEtFWSk7Iik7CisKKyMgQ3JlYXRlIGEgdGFibGUgYW5kIHJlZnJlc2gg dGhlIHB1YmxpY2F0aW9uCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBx cVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OIFdJVEggKGNvcHlf ZGF0YSA9IGZhbHNlKTsKK10pOworCisjIENyZWF0ZSBhbm90aGVyIHN1YnNjcmliZXIgbm9kZSB3 aXRob3V0IGVuYWJsaW5nIGZhaWxvdmVyLCB3YWl0IGZvciBzeW5jIHRvCisjIGNvbXBsZXRlCitt eSAkc3Vic2NyaWJlcjIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmli ZXIyJyk7Ciskc3Vic2NyaWJlcjItPmluaXQ7Ciskc3Vic2NyaWJlcjItPnN0YXJ0OworJHN1YnNj cmliZXIyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisJQ1JFQVRFIFRBQkxFIHRhYl9p bnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlz dWIyIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19t eXB1YiBXSVRIIChzbG90X25hbWUgPSBsc3ViMl9zbG90LCBjb3B5X2RhdGEgPSBmYWxzZSk7Citd KTsKIAorIyBTdG9wIHRoZSBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28KKyMgdGhhdCB0aGUgbG9naWNhbCByZXBsaWNhdGlv biBzbG90IHdvbid0IHJlY2VpdmUgY2hhbmdlcyB1bnRpbCB0aGUgc3RhbmRieQorIyBjb21lcyB1 cC4KKyRzdGFuZGJ5MS0+c3RvcDsKKworIyBDcmVhdGUgc29tZSBkYXRhIG9uIHRoZSBwcmltYXJ5 CitteSAkcHJpbWFyeV9yb3dfY291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsICRw cmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyMgV2FpdCBmb3IgdGhlIHN0YW5kYnkgdGhhdCdzIHVw IGFuZCBydW5uaW5nIGdldHMgdGhlIGRhdGEgZnJvbSBwcmltYXJ5CiskcHJpbWFyeS0+d2FpdF9m b3JfcmVwbGF5X2NhdGNodXAoJHN0YW5kYnkyKTsKK215ICRyZXN1bHQgPSAkc3RhbmRieTItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291 bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAic3RhbmRieTIgZ2V0cyBkYXRh IGZyb20gcHJpbWFyeSIpOworCisjIFdhaXQgZm9yIHRoZSBzdWJzY3JpcHRpb24gdGhhdCdzIHVw IGFuZCBydW5uaW5nIGFuZCBpcyBub3QgZW5hYmxlZCBmb3IgZmFpbG92ZXIuCisjIEl0IGdldHMg dGhlIGRhdGEgZnJvbSBwcmltYXJ5IHdpdGhvdXQgd2FpdGluZyBmb3IgYW55IHN0YW5kYnlzLgor JHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjInKTsKKyRyZXN1bHQg PSAkc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikg PSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAi c3Vic2NyaWJlcjIgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIFRoZSBzdWJzY3JpcHRp b24gdGhhdCdzIHVwIGFuZCBydW5uaW5nIGFuZCBpcyBlbmFibGVkIGZvciBmYWlsb3ZlcgorIyBk b2Vzbid0IGdldCB0aGUgZGF0YSBmcm9tIHByaW1hcnkgYW5kIGtlZXBzIHdhaXRpbmcgZm9yIHRo ZQorIyBzdGFuZGJ5IHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMuCiskcmVzdWx0ID0K KyAgJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSA9 IDAgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBkb2Vz bid0IGdldCBkYXRhIGZyb20gcHJpbWFyeSB1bnRpbCBzdGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hh bmdlcyIKKyk7CisKKyMgU3RhcnQgdGhlIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xv dF9uYW1lcyBhbmQgd2FpdCBmb3IgaXQgdG8gY2F0Y2gKKyMgdXAgd2l0aCB0aGUgcHJpbWFyeS4K KyRzdGFuZGJ5MS0+c3RhcnQ7CiskcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJHN0 YW5kYnkxKTsKKyRyZXN1bHQgPSAkc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMo JHJlc3VsdCwgJ3QnLCAic3RhbmRieTEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIE5v dyB0aGF0IHRoZSBzdGFuZGJ5IHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaXMgdXAg YW5kIHJ1bm5pbmcsCisjIHByaW1hcnkgbXVzdCBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8g c3Vic2NyaXB0aW9uIGVuYWJsZWQgZm9yIGZhaWxvdmVyCisjIFdoaWxlIHRoZSBzdGFuZGJ5IHdh cyBkb3duLCB0aGlzIHN1YnNjcmliZXIgZGlkbid0IHJlY2VpdmUgYW55IGRhdGEgZnJvbQorIyBw cmltYXJ5IGkuZS4gdGhlIHByaW1hcnkgZGlkbid0IGFsbG93IGl0IHRvIGdvIGFoZWFkIG9mIHN0 YW5kYnkuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScpOwor JHJlc3VsdCA9ICRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBj b3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0 LCAndCcsCisJInN1YnNjcmliZXIxIGdldHMgZGF0YSBmcm9tIHByaW1hcnkgYWZ0ZXIgc3RhbmRi eTEgYWNrbm93bGVkZ2VzIGNoYW5nZXMiKTsKKworIyBTdG9wIHRoZSBzdGFuZGJ5IGFzc29jaWF0 ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28KKyMgdGhh dCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IHdvbid0IHJlY2VpdmUgY2hhbmdlcyB1bnRp bCB0aGUgc3RhbmRieQorIyBzbG90J3MgcmVzdGFydF9sc24gaXMgYWR2YW5jZWQgb3IgdGhlIHNs b3QgaXMgcmVtb3ZlZCBmcm9tIHRoZQorIyBzdGFuZGJ5X3Nsb3RfbmFtZXMgbGlzdC4KKyRwdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgdGFiX2ludDsiKTsKKyRwdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7Ciskc3RhbmRieTEtPnN0 b3A7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFZlcmlmeSB0aGF0IHdoZW4gdXNpbmcgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzIHRv IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEKKyMgbG9naWNhbCBzbG90IHdpdGggZmFpbG92ZXIgZW5h YmxlZCwgaXQgd2lsbCBhbHNvIHdhaXQgZm9yIHRoZSBzbG90cyBzcGVjaWZpZWQKKyMgaW4gc3Rh bmRieV9zbG90X25hbWVzIHRvIGNhdGNoIHVwLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgYSBsb2dpY2FsICd0ZXN0X2RlY29k aW5nJyByZXBsaWNhdGlvbiBzbG90IHdpdGggZmFpbG92ZXIgZW5hYmxlZAorJHB1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNh dGlvbl9zbG90KCd0ZXN0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1 ZSk7IgorKTsKKworbXkgJGJhY2tfcSA9ICRwcmltYXJ5LT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3Rn cmVzJywgb25fZXJyb3Jfc3RvcCA9PiAwKTsKK215ICRwaWQgPSAkYmFja19xLT5xdWVyeSgnU0VM RUNUIHBnX2JhY2tlbmRfcGlkKCknKTsKKworIyBUcnkgYW5kIGdldCBjaGFuZ2VzIGZyb20gdGhl IGxvZ2ljYWwgc2xvdCB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuCitteSAkb2Zmc2V0ID0gLXMgJHBy aW1hcnktPmxvZ2ZpbGU7CiskYmFja19xLT5xdWVyeV91bnRpbChxci8vLAorCSJTRUxFQ1QgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCd0ZXN0X3Nsb3QnLCBOVUxMLCBOVUxMKTtcbiIpOwor CisjIFdhaXQgdW50aWwgdGhlIHByaW1hcnkgc2VydmVyIGxvZ3MgYSB3YXJuaW5nIGluZGljYXRp bmcgdGhhdCBpdCBpcyB3YWl0aW5nCisjIGZvciB0aGUgc2IxX3Nsb3QgdG8gY2F0Y2ggdXAuCisk cHJpbWFyeS0+d2FpdF9mb3JfbG9nKAorCXFyL1dBUk5JTkc6ICggW0EtWjAtOV0rOik/IHJlcGxp Y2F0aW9uIHNsb3QgXCJzYjFfc2xvdFwiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCJzdGFuZGJ5 X3Nsb3RfbmFtZXNcIiBkb2VzIG5vdCBoYXZlIGFjdGl2ZV9waWQvLAorCSRvZmZzZXQpOworCitv aygkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcGdfY2FuY2VsX2JhY2tl bmQoJHBpZCkiKSwKKwkiY2FuY2VsbGluZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgY29t bWFuZCIpOworCiskYmFja19xLT5xdWl0OworCiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgndGVzdF9zbG90Jyk7Igor KTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgVGVzdCB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gd2lsbCB3YWl0IGZvciB0aGUgdXNlci1j cmVhdGVkIGluYWN0aXZlCisjIHBoeXNpY2FsIHNsb3QgdG8gY2F0Y2ggdXAgdW50aWwgd2UgcmVt b3ZlIHRoZSBzbG90IGZyb20gc3RhbmRieV9zbG90X25hbWVzLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgc29tZSBkYXRhIG9u IHRoZSBwcmltYXJ5CiskcHJpbWFyeV9yb3dfY291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2Vy aWVzKDEsICRwcmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyRyZXN1bHQgPQorICAkc3Vic2NyaWJl cjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9p bnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEg YXMgdGhlIHNiMV9zbG90IGRvZXNuJ3QgY2F0Y2ggdXAiKTsKKworIyBSZW1vdmUgdGhlIHN0YW5k YnkgZnJvbSB0aGUgc3RhbmRieV9zbG90X25hbWVzIGxpc3QgYW5kIHJlbG9hZCB0aGUKKyMgY29u ZmlndXJhdGlvbi4KKyRwcmltYXJ5LT5hZGp1c3RfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3N0 YW5kYnlfc2xvdF9uYW1lcycsICInJyIpOworJHByaW1hcnktPnJlbG9hZDsKKworIyBTaW5jZSB0 aGVyZSBhcmUgbm8gc2xvdHMgaW4gc3RhbmRieV9zbG90X25hbWVzLCB0aGUgcHJpbWFyeSBzZXJ2 ZXIgc2hvdWxkIG5vdworIyBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8gdGhlIHN1YnNjcmlw dGlvbi4KKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7Cisk cmVzdWx0ID0gJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopID0gJHByaW1hcnlfcm93X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQs ICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5 MSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0IgorKTsKKworIyBQ dXQgdGhlIHN0YW5kYnkgYmFjayBvbiB0aGUgcHJpbWFyeV9zbG90X25hbWUgZm9yIHRoZSByZXN0 IG9mIHRoZSB0ZXN0cworJHByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAn c3RhbmRieV9zbG90X25hbWVzJywgJ3NiMV9zbG90Jyk7CiskcHJpbWFyeS0+cmVsb2FkOworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0 IGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKKyMgQ29uZmlndXJlIHN0YW5k YnkxIHRvIHJlcGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVk CisjIGZvciBmYWlsb3ZlciBvbiB0aGUgcHJpbWFyeQorIworIyAgICAgICAgICAgICAgZmFpbG92 ZXIgc2xvdCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlhIGxv Z2ljYWwgcmVwbGljYXRpb24pCisjIHByaW1hcnkgLS0tPiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyMgICAgICAgICAgICAgIHBoeXNpY2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBz dGFuZGJ5MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24pCisjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGxzdWIxX3Ns b3Qoc3luY2VkX3Nsb3QpCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisjIENyZWF0ZSBhIHN0YW5kYnkKIG15ICRjb25uc3RyXzEgPSAkcHJpbWFy eS0+Y29ubnN0cjsKICRzdGFuZGJ5MS0+YXBwZW5kX2NvbmYoCiAJJ3Bvc3RncmVzcWwuY29uZics IHFxKAogZW5hYmxlX3N5bmNzbG90ID0gdHJ1ZQogaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgot cHJpbWFyeV9zbG90X25hbWUgPSAnc2IxX3Nsb3QnCiBwcmltYXJ5X2Nvbm5pbmZvID0gJyRjb25u c3RyXzEgZGJuYW1lPXBvc3RncmVzJwogKSk7CiAKLSRwcmltYXJ5LT5wc3FsKCdwb3N0Z3Jlcycs Ci0JcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90 Jyk7fSk7Ci0KIG15ICRzdGFuZGJ5MV9jb25uaW5mbyA9ICRzdGFuZGJ5MS0+Y29ubnN0ciAuICcg ZGJuYW1lPXBvc3RncmVzJzsKLW15ICRvZmZzZXQgPSAtcyAkc3RhbmRieTEtPmxvZ2ZpbGU7Cisk b2Zmc2V0ID0gLXMgJHN0YW5kYnkxLT5sb2dmaWxlOwogCiAjIFN0YXJ0IHRoZSBzdGFuZGJ5IHNv IHRoYXQgc2xvdCBzeW5jaW5nIGNhbiBiZWdpbgogJHN0YW5kYnkxLT5zdGFydDsKQEAgLTE1MCwx OCArMzQzLDExIEBAIGlzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAjIEluc2Vy dCBkYXRhIG9uIHRoZSBwcmltYXJ5CiAkcHJpbWFyeS0+c2FmZV9wc3FsKAogCSdwb3N0Z3Jlcycs IHFxWwotCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7CisJVFJVTkNB VEUgVEFCTEUgdGFiX2ludDsKIAlJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApOwogXSk7CiAKLSMgU3Vic2NyaWJlIHRvIHRoZSBuZXcgdGFibGUgZGF0YSBh bmQgd2FpdCBmb3IgaXQgdG8gYXJyaXZlCi0kc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKLQkncG9z dGdyZXMnLCBxcVsKLQlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOwot CUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OOwot XSk7Ci0KLSRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CiskcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKIAogIyBEbyBub3QgYWxsb3cg YW55IGZ1cnRoZXIgYWR2YW5jZW1lbnQgb2YgdGhlIHJlc3RhcnRfbHNuIGFuZAogIyBjb25maXJt ZWRfZmx1c2hfbHNuIGZvciB0aGUgbHN1YjFfc2xvdC4KQEAgLTE5OSw3ICszODUsOSBAQCAkc3Rh bmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQUxURVIgU1lTVEVNIFNFVCBob3Rfc3RhbmRi eV9mZWVkYmFjayA9IG9mZjsnKQogJHN0YW5kYnkxLT5yZXN0YXJ0OwogCiAjIEF0dGVtcHRpbmcg dG8gcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3Vs dCBpbiBhbiBlcnJvcgotbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkx LT5wc3FsKCdwb3N0Z3JlcycsCitteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKygkcmVzdWx0LCAk c3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdyZXMnLAogCSJzZWxlY3Qg KiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnbHN1YjFfc2xvdCcsTlVMTCxOVUxM KTsiKTsKIG9rKCRzdGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IHVzZSByZXBsaWNhdGlvbiBzbG90 ICJsc3ViMV9zbG90IiBmb3IgbG9naWNhbCBkZWNvZGluZy8sCiAJImxvZ2ljYWwgZGVjb2Rpbmcg aXMgbm90IGFsbG93ZWQgb24gc3luY2VkIHNsb3QiKTsKLS0gCjIuMzQuMQoK --000000000000ccaf76060faf9fb2 Content-Type: application/octet-stream; name="v67-0006-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Disposition: attachment; filename="v67-0006-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrpq8uw5 RnJvbSBhNWQ0NDcwYjIzNDA5NjUzMTRkNjMyYzAzMzA2NGM3MmVjYTE3ZDE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTE6MDQ6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NyA2LzZdIERvY3VtZW50IHRoZSBzdGVwcyB0byBjaGVjayBpZiB0aGUgc3RhbmRieSBpcyByZWFk eQogZm9yIGZhaWxvdmVyCgotLS0KIGRvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s ICAgfCAgIDkgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgfCAxMzAg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBi L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDIzNmMwYWY2NWYuLjM2 MjE1YWE2OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0xNDg3LDYgKzE0 ODcsMTUgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgV3JpdHRlbiBhZG1pbmlzdHJhdGlvbiBwcm9jZWR1cmVzIGFyZSBhZHZpc2VkLgogICAg PC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBJZiB5b3UgaGF2ZSBvcHRlZCBmb3Igc3luY2hyb25p emF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWxk ZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRpb24iLz4pLAorICAgIHRoZW4g YmVmb3JlIHN3aXRjaGluZyB0byB0aGUgc3RhbmRieSBzZXJ2ZXIsIGl0IGlzIHJlY29tbWVuZGVk IHRvIGNoZWNrCisgICAgaWYgdGhlIGxvZ2ljYWwgc2xvdHMgc3luY2hyb25pemVkIG9uIHRoZSBz dGFuZGJ5IHNlcnZlciBhcmUgcmVhZHkKKyAgICBmb3IgZmFpbG92ZXIuIFRoaXMgY2FuIGJlIGRv bmUgYnkgZm9sbG93aW5nIHRoZSBzdGVwcyBkZXNjcmliZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLWZhaWxvdmVyIi8+LgorICAgPC9wYXJhPgorCiAgICA8cGFy YT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVyIG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2Vy dmVyLCBydW4KICAgICA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY2FsbCA8 ZnVuY3Rpb24+cGdfcHJvbW90ZSgpPC9mdW5jdGlvbj4uCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAppbmRleCBlYzIxMzA2NjllLi45MjRlNGVhMDMzIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTY4Nyw2ICs2ODcsMTM2IEBAIEFMVEVSIFNVQlNDUklQ VElPTgogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1mYWls b3ZlciI+CisgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIEZhaWxvdmVyPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFdoZW4gdGhlIHB1Ymxpc2hlciBzZXJ2ZXIgaXMgdGhlIHByaW1hcnkgc2Vy dmVyIG9mIGEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLAorICAgdGhlIGxvZ2ljYWwgc2xvdHMgb24g dGhhdCBwcmltYXJ5IHNlcnZlciBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBzdGFuZGJ5Cisg ICBzZXJ2ZXIgYnkgc3BlY2lmeWluZyA8bGl0ZXJhbD5mYWlsb3ZlciA9IHRydWU8L2xpdGVyYWw+ IHdoZW4gY3JlYXRpbmcKKyAgIHN1YnNjcmlwdGlvbnMgZm9yIHRob3NlIHB1YmxpY2F0aW9ucy4g RW5hYmxpbmcgZmFpbG92ZXIgZW5zdXJlcyBhIHNlYW1sZXNzCisgICB0cmFuc2l0aW9uIG9mIHRo b3NlIHN1YnNjcmlwdGlvbnMgYWZ0ZXIgdGhlIHN0YW5kYnkgaXMgcHJvbW90ZWQuIFRoZXkgY2Fu CisgICBjb250aW51ZSBzdWJzY3JpYmluZyB0byBwdWJsaWNhdGlvbnMgbm93IG9uIHRoZSBuZXcg cHJpbWFyeSBzZXJ2ZXIgd2l0aG91dAorICAgYW55IGRhdGEgbG9zcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQmVjYXVzZSB0aGUgc2xvdCBzeW5jaHJvbml6YXRpb24gbG9naWMgY29waWVz IGFzeW5jaHJvbm91c2x5LCBpdCBpcworICAgbmVjZXNzYXJ5IHRvIGNvbmZpcm0gdGhhdCByZXBs aWNhdGlvbiBzbG90cyBoYXZlIGJlZW4gc3luY2VkIHRvIHRoZSBzdGFuZGJ5CisgICBzZXJ2ZXIg YmVmb3JlIHRoZSBmYWlsb3ZlciBoYXBwZW5zLiBGdXJ0aGVybW9yZSwgdG8gZW5zdXJlIGEgc3Vj Y2Vzc2Z1bAorICAgZmFpbG92ZXIsIHRoZSBzdGFuZGJ5IHNlcnZlciBtdXN0IG5vdCBiZSBsYWdn aW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlci4gSXQKKyAgIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0 byB1c2UKKyAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1l PnN0YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CisgICB0byBwcmV2ZW50IHRoZSBz dWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFu ZGJ5LgorICAgVG8gY29uZmlybSB0aGF0IHRoZSBzdGFuZGJ5IHNlcnZlciBpcyBpbmRlZWQgcmVh ZHkgZm9yIGZhaWxvdmVyLCBmb2xsb3cKKyAgIHRoZXNlIDIgc3RlcHM6CisgIDwvcGFyYT4KKwor ICA8cHJvY2VkdXJlPgorICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICA8cGFy YT4KKyAgICAgQ29uZmlybSB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdHMgaGF2ZSBiZWVuIHN5bmNlZCB0bworICAgICB0aGUgc3RhbmRieSBzZXJ2ZXIuCisg ICAgPC9wYXJhPgorICAgIDxzdWJzdGVwcz4KKyAgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVp cmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5v ZGUsIHVzZSB0aGUgZm9sbG93aW5nIFNRTCB0byBpZGVudGlmeQorICAgICAgIHdoaWNoIHNsb3Rz IHNob3VsZCBiZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnkgdGhhdCB3ZSBwbGFuIHRvIHByb21vdGUu Cis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1Yj0jIFNFTEVDVAorICAgICAgICAgICAgICAgYXJy YXlfYWdnKHNsb3RuYW1lKSBBUyBzbG90cworICAgICAgICAgICBGUk9NCisgICAgICAgICAgICgo CisgICAgICAgICAgICAgICBTRUxFQ1Qgci5zcnN1YmlkIEFTIHN1YmlkLCBDT05DQVQoJ3BnXycg fHwgc3JzdWJpZCB8fCAnX3N5bmNfJyB8fCBzcnJlbGlkIHx8ICdfJyB8fCBjdGwuc3lzdGVtX2lk ZW50aWZpZXIpIEFTIHNsb3RuYW1lCisgICAgICAgICAgICAgICBGUk9NIHBnX2NvbnRyb2xfc3lz dGVtKCkgY3RsLCBwZ19zdWJzY3JpcHRpb25fcmVsIHIsIHBnX3N1YnNjcmlwdGlvbiBzCisgICAg ICAgICAgICAgICBXSEVSRSByLnNyc3Vic3RhdGUgPSAnZicgQU5EIHMub2lkID0gci5zcnN1Ymlk IEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAgICAgICAgICAg U0VMRUNUIHMub2lkIEFTIHN1YmlkLCBzLnN1YnNsb3RuYW1lIGFzIHNsb3RuYW1lCisgICAgICAg ICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgICAgICAgICBXSEVSRSBzLnN1 YmZhaWxvdmVyCisgICAgICAgICAgICkpOworIHNsb3RzCistLS0tLS0tCisge3N1YjEsc3ViMixz dWIzfQorKDEgcm93KQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwvc3RlcD4KKyAg ICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIE5l eHQsIGNoZWNrIHRoYXQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaWRlbnRpZmllZCBh Ym92ZSBleGlzdCBvbgorICAgICAgIHRoZSBzdGFuZGJ5IHNlcnZlciBhbmQgYXJlIHJlYWR5IGZv ciBmYWlsb3Zlci4KKzxwcm9ncmFtbGlzdGluZz4KK3Rlc3Rfc3RhbmRieT0jIFNFTEVDVCBzbG90 X25hbWUsIChzeW5jZWQgQU5EIE5PVCB0ZW1wb3JhcnkgQU5EIGNvbmZsaWN0X3JlYXNvbiBJUyBO VUxMKSBBUyBmYWlsb3Zlcl9yZWFkeQorICAgICAgICAgICAgICAgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cworICAgICAgICAgICAgICAgV0hFUkUgc2xvdF9uYW1lIElOICgnc3ViMScsJ3N1YjIn LCdzdWIzJyk7CisgIHNsb3RfbmFtZSAgfCBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tCisgIHN1YjEgICAgICAgfCB0CisgIHN1YjIgICAgICAgfCB0CisgIHN1 YjMgICAgICAgfCB0CisoMyByb3dzKQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwv c3RlcD4KKyAgICA8L3N1YnN0ZXBzPgorICAgPC9zdGVwPgorCisgICA8c3RlcCBwZXJmb3JtYW5j ZT0icmVxdWlyZWQiPgorICAgIDxwYXJhPgorICAgICBDb25maXJtIHRoYXQgdGhlIHN0YW5kYnkg c2VydmVyIGlzIG5vdCBsYWdnaW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlcnMuCisgICAgIFRoaXMg c3RlcCBjYW4gYmUgc2tpcHBlZCBpZgorICAgICA8bGluayBsaW5rZW5kPSJndWMtc3RhbmRieS1z bG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+PC9saW5rPgor ICAgICBoYXMgYmVlbiBjb3JyZWN0bHkgY29uZmlndXJlZC4KKyAgICA8L3BhcmE+CisgICAgIDxz dWJzdGVwcz4KKyAgICAgIDxzdGVwIHBlcmZvcm1hbmNlPSJyZXF1aXJlZCI+CisgICAgICAgPHBh cmE+CisgICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5vZGUgY2hlY2sgdGhlIGxh c3QgcmVwbGF5ZWQgV0FMLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdWI9IyBTRUxFQ1QKKyAg ICAgICAgICAgICAgIE1BWChyZW1vdGVfbHNuKSBBUyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIK KyAgICAgICAgICAgRlJPTQorICAgICAgICAgICAoKAorICAgICAgICAgICAgICAgU0VMRUNUIChD QVNFIFdIRU4gci5zcnN1YnN0YXRlID0gJ2YnIFRIRU4gcGdfcmVwbGljYXRpb25fb3JpZ2luX3By b2dyZXNzKENPTkNBVCgncGdfJyB8fCByLnNyc3ViaWQgfHwgJ18nIHx8IHIuc3JyZWxpZCksIGZh bHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFTiByLnNyc3Vic3RhdGUgSU4gKCdz JywgJ3InKSBUSEVOIHIuc3JzdWJsc24gRU5EKSBBUyByZW1vdGVfbHNuCisgICAgICAgICAgICAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgciwgcGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAg ICAgICAgIFdIRVJFIHIuc3JzdWJzdGF0ZSBJTiAoJ2YnLCAncycsICdyJykgQU5EIHMub2lkID0g ci5zcnN1YmlkIEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAg ICAgICAgICAgU0VMRUNUIHBnX3JlcGxpY2F0aW9uX29yaWdpbl9wcm9ncmVzcyhDT05DQVQoJ3Bn XycgfHwgcy5vaWQpLCBmYWxzZSkgQVMgcmVtb3RlX2xzbgorICAgICAgICAgICAgICAgRlJPTSBw Z19zdWJzY3JpcHRpb24gcworICAgICAgICAgICAgICAgV0hFUkUgcy5zdWJmYWlsb3ZlcgorICAg ICAgICAgICApKTsKKyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgMC8zMDAwMzg4Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L3N0 ZXA+CisgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgPHBhcmE+CisgICAg ICBOZXh0LCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgY2hlY2sgdGhhdCB0aGUgbGFzdC1yZWNlaXZl ZCBXQUwgbG9jYXRpb24KKyAgICAgIGlzIGFoZWFkIG9mIHRoZSByZXBsYXllZCBXQUwgbG9jYXRp b24gb24gdGhlIHN1YnNjcmliZXIgaWRlbnRpZmllZCBhYm92ZS4KKyAgICAgIElmIHRoZSBhYm92 ZSBTUUwgcmVzdWx0IHdhcyBOVUxMLCBpdCBtZWFucyB0aGUgc3Vic2NyaWJlciBoYXMgbm90IHll dAorICAgICAgcmVwbGF5ZWQgYW55IFdBTCwgc28gdGhlIHN0YW5kYnkgc2VydmVyIG11c3QgYmUg YWhlYWQgb2YgdGhlCisgICAgICBzdWJzY3JpYmVyLCBhbmQgdGhpcyBzdGVwIGNhbiBiZSBza2lw cGVkLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdGFuZGJ5PSMgU0VMRUNUIHBnX2xhc3Rfd2Fs X3JlY2VpdmVfbHNuKCkgPj0gJzAvMzAwMDM4OCc6OnBnX2xzbiBBUyBmYWlsb3Zlcl9yZWFkeTsK KyBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKzwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorICAgICA8L3N0ZXA+CisgICAgPC9zdWJzdGVwcz4KKyAgIDwvc3Rl cD4KKyAgPC9wcm9jZWR1cmU+CisKKyAgPHBhcmE+CisgICBJZiB0aGUgcmVzdWx0ICg8bGl0ZXJh bD5mYWlsb3Zlcl9yZWFkeTwvbGl0ZXJhbD4pIG9mIGJvdGggYWJvdmUgc3RlcHMgaXMKKyAgIHRy dWUsIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSBhYmxlIHRvIGNvbnRpbnVlIHdpdGhv dXQgZGF0YSBsb3NzLgorICA8L3BhcmE+CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJsb2dp Y2FsLXJlcGxpY2F0aW9uLXJvdy1maWx0ZXIiPgogICA8dGl0bGU+Um93IEZpbHRlcnM8L3RpdGxl PgogCi0tIAoyLjM0LjEKCg== --000000000000ccaf76060faf9fb2--