Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFuCH-0001LS-ST for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 09:48:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFuCF-0005VN-Uc for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 09:48:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFuCF-0005VE-G2 for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 09:48:31 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pFuCD-0001ju-5a for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 09:48:31 +0000 Received: by mail-wm1-x336.google.com with SMTP id m3so12786921wmq.0 for ; Thu, 12 Jan 2023 01:48:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=0K2hiRTEkXNuNo/VEA23MFxwiPMS8akDXg/jnb7RT7Q=; b=IGyIq4MYqK2oIwbZF8HZPgw+3ZHXVlzhiu/Dob9FwPYJudYFdj3WWNwT51osVgiD7w keQeEgHQgnk+EAMOVO+MRRbzxLEU9NrIlp6kFPZZv62N6F+yBx/DUnxSkJFfbI6f5jn4 HAPCxwaKSJDPCgEJEJvWjFFK/G7r8VxLH+fmvhPcKYOmmuC0b5gbOkYGoDJFeXOZ0fuP PIerPqa+p5spCrhfriDbw4M9saNHKExJLfCcmT+pNreJYYw2iXXEkoR9NUyG0hH7k03G ckq4khMBE5iUVW5lKaUUmr/+LMJXtGCArN2qBom7tNHT0LuHWkf2ySx19gOO4AFZvUzL KJ3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0K2hiRTEkXNuNo/VEA23MFxwiPMS8akDXg/jnb7RT7Q=; b=Xg7msSegKqty3kJzQ7Y6bAXtvNOOy19DqZYOZmi+PfYbrqA5aVDwffO0KJNahJdj6F AnadW/r1/mC9xUVZYHQDrXCyqJJP52b9CPqLKQ6bE2SJ1sDToMkUajlViKRa7QhXJEkY K9+bAz92/WilcWNklLp+sH6Wzqu2VtCNAOC5C4+vUqq6S0j5eAVqZdRlkH2VBC+ANqyP iPxC7KxBB2IDwLDiIemEi288TbWR0oy6/aRoOl2VVsHorC5dhnF6faB0gTRUjMAvVsjI kyaoe/qYj0tjaugh+bESBtJ1qX4+VI7o9V1hz67HgNXW8CjGCt8Qb1DT7PyA5HXNiv3D IM0A== X-Gm-Message-State: AFqh2kqHJ19371qxKmRnEVpWI3S+pKect32w6aZb6CB5CXFpT7ZewDHN DGy3sq+8tdzuajQsw6BahSMkPGCY6y2DnQ== X-Google-Smtp-Source: AMrXdXv4uvv5vdinAsflmzRFu0Z5DDfucUTWmSWBodSx5QfVlOgUo2hvXyiWlLvX+FLP10hj5azSWw== X-Received: by 2002:a05:600c:3ca2:b0:3d9:da3a:ef9b with SMTP id bg34-20020a05600c3ca200b003d9da3aef9bmr17356175wmb.31.1673516908127; Thu, 12 Jan 2023 01:48:28 -0800 (PST) Received: from [192.168.11.45] ([54.239.6.188]) by smtp.gmail.com with ESMTPSA id g12-20020a05600c310c00b003c70191f267sm27849117wmo.39.2023.01.12.01.48.27 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Jan 2023 01:48:27 -0800 (PST) Content-Type: multipart/mixed; boundary="------------omyMU02D4PjpJaOCYXw0M7x0" Message-ID: <9142f62a-a422-145c-bde0-b5bc498a4ada@gmail.com> Date: Thu, 12 Jan 2023 10:47:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Content-Language: en-US From: "Drouvot, Bertrand" Subject: Remove nonmeaningful prefixes in PgStat_* fields To: PostgreSQL Hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------omyMU02D4PjpJaOCYXw0M7x0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi hackers, Please find attached a patch to $SUBJECT. It is a preliminary patch for [1]. The main ideas are: 1) to have consistent naming between the pg_stat_get*() functions and their associated counters and 2) to define the new macros in [1] the same way as it has been done in 8018ffbf58 (aka not using the prefixes in the macros). Looking forward to your feedback, Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com [1]: https://www.postgresql.org/message-id/flat/89606d96-cd94-af74-18f3-c7ab2b684ba2@gmail.com --------------omyMU02D4PjpJaOCYXw0M7x0 Content-Type: text/plain; charset=UTF-8; name="v1-0001-remove_nonmeaningful_prefixes.patch" Content-Disposition: attachment; filename="v1-0001-remove_nonmeaningful_prefixes.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9mdW5jdGlv bi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKaW5k ZXggNjEzOWEyN2ZlZS4uZWRmNzllYmM4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKQEAgLTEyMSwxNiArMTIxLDE2IEBAIHBnc3Rh dF9pbml0X2Z1bmN0aW9uX3VzYWdlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAogCiAJcGVu ZGluZyA9IGVudHJ5X3JlZi0+cGVuZGluZzsKIAotCWZjdS0+ZnMgPSAmcGVuZGluZy0+Zl9j b3VudHM7CisJZmN1LT5mcyA9ICZwZW5kaW5nLT5jb3VudHM7CiAKIAkvKiBzYXZlIHN0YXRz IGZvciB0aGlzIGZ1bmN0aW9uLCBsYXRlciB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIHJlY3Vy c2lvbiAqLwotCWZjdS0+c2F2ZV9mX3RvdGFsX3RpbWUgPSBwZW5kaW5nLT5mX2NvdW50cy5m X3RvdGFsX3RpbWU7CisJZmN1LT5zYXZlX3RvdGFsX3RpbWUgPSBwZW5kaW5nLT5jb3VudHMu dG90YWxfdGltZTsKIAogCS8qIHNhdmUgY3VycmVudCBiYWNrZW5kLXdpZGUgdG90YWwgdGlt ZSAqLwogCWZjdS0+c2F2ZV90b3RhbCA9IHRvdGFsX2Z1bmNfdGltZTsKIAogCS8qIGdldCBj bG9jayB0aW1lIGFzIG9mIGZ1bmN0aW9uIHN0YXJ0ICovCi0JSU5TVFJfVElNRV9TRVRfQ1VS UkVOVChmY3UtPmZfc3RhcnQpOworCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoZmN1LT5zdGFy dCk7CiB9CiAKIC8qCkBAIC0xNDYsNDEgKzE0Niw0MSBAQCB2b2lkCiBwZ3N0YXRfZW5kX2Z1 bmN0aW9uX3VzYWdlKFBnU3RhdF9GdW5jdGlvbkNhbGxVc2FnZSAqZmN1LCBib29sIGZpbmFs aXplKQogewogCVBnU3RhdF9GdW5jdGlvbkNvdW50cyAqZnMgPSBmY3UtPmZzOwotCWluc3Ry X3RpbWUJZl90b3RhbDsKLQlpbnN0cl90aW1lCWZfb3RoZXJzOwotCWluc3RyX3RpbWUJZl9z ZWxmOworCWluc3RyX3RpbWUJdG90YWw7CisJaW5zdHJfdGltZQlvdGhlcnM7CisJaW5zdHJf dGltZQlzZWxmOwogCiAJLyogc3RhdHMgbm90IHdhbnRlZD8gKi8KIAlpZiAoZnMgPT0gTlVM TCkKIAkJcmV0dXJuOwogCiAJLyogdG90YWwgZWxhcHNlZCB0aW1lIGluIHRoaXMgZnVuY3Rp b24gY2FsbCAqLwotCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoZl90b3RhbCk7Ci0JSU5TVFJf VElNRV9TVUJUUkFDVChmX3RvdGFsLCBmY3UtPmZfc3RhcnQpOworCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlQodG90YWwpOworCUlOU1RSX1RJTUVfU1VCVFJBQ1QodG90YWwsIGZjdS0+c3Rh cnQpOwogCiAJLyogc2VsZiB1c2FnZTogZWxhcHNlZCBtaW51cyBhbnl0aGluZyBhbHJlYWR5 IGNoYXJnZWQgdG8gb3RoZXIgY2FsbHMgKi8KLQlmX290aGVycyA9IHRvdGFsX2Z1bmNfdGlt ZTsKLQlJTlNUUl9USU1FX1NVQlRSQUNUKGZfb3RoZXJzLCBmY3UtPnNhdmVfdG90YWwpOwot CWZfc2VsZiA9IGZfdG90YWw7Ci0JSU5TVFJfVElNRV9TVUJUUkFDVChmX3NlbGYsIGZfb3Ro ZXJzKTsKKwlvdGhlcnMgPSB0b3RhbF9mdW5jX3RpbWU7CisJSU5TVFJfVElNRV9TVUJUUkFD VChvdGhlcnMsIGZjdS0+c2F2ZV90b3RhbCk7CisJc2VsZiA9IHRvdGFsOworCUlOU1RSX1RJ TUVfU1VCVFJBQ1Qoc2VsZiwgb3RoZXJzKTsKIAogCS8qIHVwZGF0ZSBiYWNrZW5kLXdpZGUg dG90YWwgdGltZSAqLwotCUlOU1RSX1RJTUVfQUREKHRvdGFsX2Z1bmNfdGltZSwgZl9zZWxm KTsKKwlJTlNUUl9USU1FX0FERCh0b3RhbF9mdW5jX3RpbWUsIHNlbGYpOwogCiAJLyoKLQkg KiBDb21wdXRlIHRoZSBuZXcgZl90b3RhbF90aW1lIGFzIHRoZSB0b3RhbCBlbGFwc2VkIHRp bWUgYWRkZWQgdG8gdGhlCi0JICogcHJlLWNhbGwgdmFsdWUgb2YgZl90b3RhbF90aW1lLiAg VGhpcyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQKKwkgKiBDb21wdXRlIHRoZSBuZXcgdG90YWxf dGltZSBhcyB0aGUgdG90YWwgZWxhcHNlZCB0aW1lIGFkZGVkIHRvIHRoZQorCSAqIHByZS1j YWxsIHZhbHVlIG9mIHRvdGFsX3RpbWUuICBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZAog CSAqIGRvdWJsZS1jb3VudGluZyBhbnkgdGltZSB0YWtlbiBieSByZWN1cnNpdmUgY2FsbHMg b2YgbXlzZWxmLiAgKFdlIGRvCiAJICogbm90IG5lZWQgYW55IHNpbWlsYXIga2x1Z2UgZm9y IHNlbGYgdGltZSwgc2luY2UgdGhhdCBhbHJlYWR5IGV4Y2x1ZGVzCiAJICogYW55IHJlY3Vy c2l2ZSBjYWxscy4pCiAJICovCi0JSU5TVFJfVElNRV9BREQoZl90b3RhbCwgZmN1LT5zYXZl X2ZfdG90YWxfdGltZSk7CisJSU5TVFJfVElNRV9BREQodG90YWwsIGZjdS0+c2F2ZV90b3Rh bF90aW1lKTsKIAogCS8qIHVwZGF0ZSBjb3VudGVycyBpbiBmdW5jdGlvbiBzdGF0cyB0YWJs ZSAqLwogCWlmIChmaW5hbGl6ZSkKLQkJZnMtPmZfbnVtY2FsbHMrKzsKLQlmcy0+Zl90b3Rh bF90aW1lID0gZl90b3RhbDsKLQlJTlNUUl9USU1FX0FERChmcy0+Zl9zZWxmX3RpbWUsIGZf c2VsZik7CisJCWZzLT5udW1jYWxscysrOworCWZzLT50b3RhbF90aW1lID0gdG90YWw7CisJ SU5TVFJfVElNRV9BREQoZnMtPnNlbGZfdGltZSwgc2VsZik7CiB9CiAKIC8qCkBAIC0yMDMs MTEgKzIwMywxMSBAQCBwZ3N0YXRfZnVuY3Rpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCWlmICghcGdzdGF0X2xvY2tfZW50cnkoZW50 cnlfcmVmLCBub3dhaXQpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlzaGZ1bmNlbnQtPnN0YXRz LmZfbnVtY2FsbHMgKz0gbG9jYWxlbnQtPmZfY291bnRzLmZfbnVtY2FsbHM7Ci0Jc2hmdW5j ZW50LT5zdGF0cy5mX3RvdGFsX3RpbWUgKz0KLQkJSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMo bG9jYWxlbnQtPmZfY291bnRzLmZfdG90YWxfdGltZSk7Ci0Jc2hmdW5jZW50LT5zdGF0cy5m X3NlbGZfdGltZSArPQotCQlJTlNUUl9USU1FX0dFVF9NSUNST1NFQyhsb2NhbGVudC0+Zl9j b3VudHMuZl9zZWxmX3RpbWUpOworCXNoZnVuY2VudC0+c3RhdHMubnVtY2FsbHMgKz0gbG9j YWxlbnQtPmNvdW50cy5udW1jYWxsczsKKwlzaGZ1bmNlbnQtPnN0YXRzLnRvdGFsX3RpbWUg Kz0KKwkJSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMobG9jYWxlbnQtPmNvdW50cy50b3RhbF90 aW1lKTsKKwlzaGZ1bmNlbnQtPnN0YXRzLnNlbGZfdGltZSArPQorCQlJTlNUUl9USU1FX0dF VF9NSUNST1NFQyhsb2NhbGVudC0+Y291bnRzLnNlbGZfdGltZSk7CiAKIAlwZ3N0YXRfdW5s b2NrX2VudHJ5KGVudHJ5X3JlZik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggMTczMDQyNWRlMS4uNzM3ZWM1MjViMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKQEAg LTM4LDkgKzM4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgVHdvUGhhc2VQZ1N0YXRSZWNvcmQKIAlQ Z1N0YXRfQ291bnRlciBpbnNlcnRlZF9wcmVfdHJ1bmNkcm9wOwogCVBnU3RhdF9Db3VudGVy IHVwZGF0ZWRfcHJlX3RydW5jZHJvcDsKIAlQZ1N0YXRfQ291bnRlciBkZWxldGVkX3ByZV90 cnVuY2Ryb3A7Ci0JT2lkCQkJdF9pZDsJCQkvKiB0YWJsZSdzIE9JRCAqLwotCWJvb2wJCXRf c2hhcmVkOwkJLyogaXMgaXQgYSBzaGFyZWQgY2F0YWxvZz8gKi8KLQlib29sCQl0X3RydW5j ZHJvcHBlZDsgLyogd2FzIHRoZSByZWxhdGlvbiB0cnVuY2F0ZWQvZHJvcHBlZD8gKi8KKwlP aWQJCQlpZDsJCQkvKiB0YWJsZSdzIE9JRCAqLworCWJvb2wJCXNoYXJlZDsJCS8qIGlzIGl0 IGEgc2hhcmVkIGNhdGFsb2c/ICovCisJYm9vbAkJdHJ1bmNkcm9wcGVkOyAvKiB3YXMgdGhl IHJlbGF0aW9uIHRydW5jYXRlZC9kcm9wcGVkPyAqLwogfSBUd29QaGFzZVBnU3RhdFJlY29y ZDsKIAogCkBAIC0zMDIsNyArMzAyLDcgQEAgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0 aW9uIHJlbCwKIAkJCWRlYWR0dXBsZXMgLT0gdHJhbnMtPnR1cGxlc191cGRhdGVkICsgdHJh bnMtPnR1cGxlc19kZWxldGVkOwogCQl9CiAJCS8qIGNvdW50IHN0dWZmIGluc2VydGVkIGJ5 IGFscmVhZHktYWJvcnRlZCBzdWJ4YWN0cywgdG9vICovCi0JCWRlYWR0dXBsZXMgLT0gcmVs LT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlczsKKwkJZGVhZHR1 cGxlcyAtPSByZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfZGVhZF90dXBsZXM7CiAJ CS8qIFNpbmNlIEFOQUxZWkUncyBjb3VudHMgYXJlIGVzdGltYXRlcywgd2UgY291bGQgaGF2 ZSB1bmRlcmZsb3dlZCAqLwogCQlsaXZldHVwbGVzID0gTWF4KGxpdmV0dXBsZXMsIDApOwog CQlkZWFkdHVwbGVzID0gTWF4KGRlYWR0dXBsZXMsIDApOwpAQCAtMzczLDcgKzM3Myw3IEBA IHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90KQogCiAJ CS8qIHRfdHVwbGVzX2hvdF91cGRhdGVkIGlzIG5vbnRyYW5zYWN0aW9uYWwsIHNvIGp1c3Qg YWR2YW5jZSBpdCAqLwogCQlpZiAoaG90KQotCQkJcGdzdGF0X2luZm8tPnRfY291bnRzLnRf dHVwbGVzX2hvdF91cGRhdGVkKys7CisJCQlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19o b3RfdXBkYXRlZCsrOwogCX0KIH0KIApAQCAtNDI1LDcgKzQyNSw3IEBAIHBnc3RhdF91cGRh dGVfaGVhcF9kZWFkX3R1cGxlcyhSZWxhdGlvbiByZWwsIGludCBkZWx0YSkKIAl7CiAJCVBn U3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8gPSByZWwtPnBnc3RhdF9pbmZvOwogCi0J CXBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzIC09IGRlbHRhOwor CQlwZ3N0YXRfaW5mby0+Y291bnRzLmRlbHRhX2RlYWRfdHVwbGVzIC09IGRlbHRhOwogCX0K IH0KIApAQCAtNTAxLDMzICs1MDEsMzMgQEAgQXRFT1hhY3RfUGdTdGF0X1JlbGF0aW9ucyhQ Z1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0ZSwgYm9vbCBpc0NvbW1pdCkKIAkJaWYg KCFpc0NvbW1pdCkKIAkJCXJlc3RvcmVfdHJ1bmNkcm9wX2NvdW50ZXJzKHRyYW5zKTsKIAkJ LyogY291bnQgYXR0ZW1wdGVkIGFjdGlvbnMgcmVnYXJkbGVzcyBvZiBjb21taXQvYWJvcnQg Ki8KLQkJdGFic3RhdC0+dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQgKz0gdHJhbnMtPnR1 cGxlc19pbnNlcnRlZDsKLQkJdGFic3RhdC0+dF9jb3VudHMudF90dXBsZXNfdXBkYXRlZCAr PSB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7Ci0JCXRhYnN0YXQtPnRfY291bnRzLnRfdHVwbGVz X2RlbGV0ZWQgKz0gdHJhbnMtPnR1cGxlc19kZWxldGVkOworCQl0YWJzdGF0LT5jb3VudHMu dHVwbGVzX2luc2VydGVkICs9IHRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQ7CisJCXRhYnN0YXQt PmNvdW50cy50dXBsZXNfdXBkYXRlZCArPSB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7CisJCXRh YnN0YXQtPmNvdW50cy50dXBsZXNfZGVsZXRlZCArPSB0cmFucy0+dHVwbGVzX2RlbGV0ZWQ7 CiAJCWlmIChpc0NvbW1pdCkKIAkJewotCQkJdGFic3RhdC0+dF9jb3VudHMudF90cnVuY2Ry b3BwZWQgPSB0cmFucy0+dHJ1bmNkcm9wcGVkOworCQkJdGFic3RhdC0+Y291bnRzLnRydW5j ZHJvcHBlZCA9IHRyYW5zLT50cnVuY2Ryb3BwZWQ7CiAJCQlpZiAodHJhbnMtPnRydW5jZHJv cHBlZCkKIAkJCXsKIAkJCQkvKiBmb3JnZXQgbGl2ZS9kZWFkIHN0YXRzIHNlZW4gYnkgYmFj a2VuZCB0aHVzIGZhciAqLwotCQkJCXRhYnN0YXQtPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90 dXBsZXMgPSAwOwotCQkJCXRhYnN0YXQtPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMg PSAwOworCQkJCXRhYnN0YXQtPmNvdW50cy5kZWx0YV9saXZlX3R1cGxlcyA9IDA7CisJCQkJ dGFic3RhdC0+Y291bnRzLmRlbHRhX2RlYWRfdHVwbGVzID0gMDsKIAkJCX0KIAkJCS8qIGlu c2VydCBhZGRzIGEgbGl2ZSB0dXBsZSwgZGVsZXRlIHJlbW92ZXMgb25lICovCi0JCQl0YWJz dGF0LT50X2NvdW50cy50X2RlbHRhX2xpdmVfdHVwbGVzICs9CisJCQl0YWJzdGF0LT5jb3Vu dHMuZGVsdGFfbGl2ZV90dXBsZXMgKz0KIAkJCQl0cmFucy0+dHVwbGVzX2luc2VydGVkIC0g dHJhbnMtPnR1cGxlc19kZWxldGVkOwogCQkJLyogdXBkYXRlIGFuZCBkZWxldGUgZWFjaCBj cmVhdGUgYSBkZWFkIHR1cGxlICovCi0JCQl0YWJzdGF0LT50X2NvdW50cy50X2RlbHRhX2Rl YWRfdHVwbGVzICs9CisJCQl0YWJzdGF0LT5jb3VudHMuZGVsdGFfZGVhZF90dXBsZXMgKz0K IAkJCQl0cmFucy0+dHVwbGVzX3VwZGF0ZWQgKyB0cmFucy0+dHVwbGVzX2RlbGV0ZWQ7CiAJ CQkvKiBpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlIGVhY2ggY291bnQgYXMgb25lIGNoYW5nZSBl dmVudCAqLwotCQkJdGFic3RhdC0+dF9jb3VudHMudF9jaGFuZ2VkX3R1cGxlcyArPQorCQkJ dGFic3RhdC0+Y291bnRzLmNoYW5nZWRfdHVwbGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc19p bnNlcnRlZCArIHRyYW5zLT50dXBsZXNfdXBkYXRlZCArCiAJCQkJdHJhbnMtPnR1cGxlc19k ZWxldGVkOwogCQl9CiAJCWVsc2UKIAkJewogCQkJLyogaW5zZXJ0ZWQgdHVwbGVzIGFyZSBk ZWFkLCBkZWxldGVkIHR1cGxlcyBhcmUgdW5hZmZlY3RlZCAqLwotCQkJdGFic3RhdC0+dF9j b3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQorCQkJdGFic3RhdC0+Y291bnRzLmRlbHRh X2RlYWRfdHVwbGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc19pbnNlcnRlZCArIHRyYW5zLT50 dXBsZXNfdXBkYXRlZDsKIAkJCS8qIGFuIGFib3J0ZWQgeGFjdCBnZW5lcmF0ZXMgbm8gY2hh bmdlZF90dXBsZSBldmVudHMgKi8KIAkJfQpAQCAtNjA3LDExICs2MDcsMTEgQEAgQXRFT1N1 YlhhY3RfUGdTdGF0X1JlbGF0aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0 ZSwgYm9vbCBpc0NvbW1pdCwgaW4KIAkJCS8qIGZpcnN0IHJlc3RvcmUgdmFsdWVzIG9ibGl0 ZXJhdGVkIGJ5IHRydW5jYXRlL2Ryb3AgKi8KIAkJCXJlc3RvcmVfdHJ1bmNkcm9wX2NvdW50 ZXJzKHRyYW5zKTsKIAkJCS8qIGNvdW50IGF0dGVtcHRlZCBhY3Rpb25zIHJlZ2FyZGxlc3Mg b2YgY29tbWl0L2Fib3J0ICovCi0JCQl0YWJzdGF0LT50X2NvdW50cy50X3R1cGxlc19pbnNl cnRlZCArPSB0cmFucy0+dHVwbGVzX2luc2VydGVkOwotCQkJdGFic3RhdC0+dF9jb3VudHMu dF90dXBsZXNfdXBkYXRlZCArPSB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7Ci0JCQl0YWJzdGF0 LT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHRyYW5zLT50dXBsZXNfZGVsZXRlZDsK KwkJCXRhYnN0YXQtPmNvdW50cy50dXBsZXNfaW5zZXJ0ZWQgKz0gdHJhbnMtPnR1cGxlc19p bnNlcnRlZDsKKwkJCXRhYnN0YXQtPmNvdW50cy50dXBsZXNfdXBkYXRlZCArPSB0cmFucy0+ dHVwbGVzX3VwZGF0ZWQ7CisJCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX2RlbGV0ZWQgKz0g dHJhbnMtPnR1cGxlc19kZWxldGVkOwogCQkJLyogaW5zZXJ0ZWQgdHVwbGVzIGFyZSBkZWFk LCBkZWxldGVkIHR1cGxlcyBhcmUgdW5hZmZlY3RlZCAqLwotCQkJdGFic3RhdC0+dF9jb3Vu dHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQorCQkJdGFic3RhdC0+Y291bnRzLmRlbHRhX2Rl YWRfdHVwbGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc19pbnNlcnRlZCArIHRyYW5zLT50dXBs ZXNfdXBkYXRlZDsKIAkJCXRhYnN0YXQtPnRyYW5zID0gdHJhbnMtPnVwcGVyOwogCQkJcGZy ZWUodHJhbnMpOwpAQCAtNjQ0LDkgKzY0NCw5IEBAIEF0UHJlcGFyZV9QZ1N0YXRfUmVsYXRp b25zKFBnU3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlKQogCQlyZWNvcmQuaW5zZXJ0 ZWRfcHJlX3RydW5jZHJvcCA9IHRyYW5zLT5pbnNlcnRlZF9wcmVfdHJ1bmNkcm9wOwogCQly ZWNvcmQudXBkYXRlZF9wcmVfdHJ1bmNkcm9wID0gdHJhbnMtPnVwZGF0ZWRfcHJlX3RydW5j ZHJvcDsKIAkJcmVjb3JkLmRlbGV0ZWRfcHJlX3RydW5jZHJvcCA9IHRyYW5zLT5kZWxldGVk X3ByZV90cnVuY2Ryb3A7Ci0JCXJlY29yZC50X2lkID0gdGFic3RhdC0+dF9pZDsKLQkJcmVj b3JkLnRfc2hhcmVkID0gdGFic3RhdC0+dF9zaGFyZWQ7Ci0JCXJlY29yZC50X3RydW5jZHJv cHBlZCA9IHRyYW5zLT50cnVuY2Ryb3BwZWQ7CisJCXJlY29yZC5pZCA9IHRhYnN0YXQtPmlk OworCQlyZWNvcmQuc2hhcmVkID0gdGFic3RhdC0+c2hhcmVkOworCQlyZWNvcmQudHJ1bmNk cm9wcGVkID0gdHJhbnMtPnRydW5jZHJvcHBlZDsKIAogCQlSZWdpc3RlclR3b1BoYXNlUmVj b3JkKFRXT1BIQVNFX1JNX1BHU1RBVF9JRCwgMCwKIAkJCQkJCQkgICAmcmVjb3JkLCBzaXpl b2YoVHdvUGhhc2VQZ1N0YXRSZWNvcmQpKTsKQEAgLTY4OCwyNCArNjg4LDI0IEBAIHBnc3Rh dF90d29waGFzZV9wb3N0Y29tbWl0KFRyYW5zYWN0aW9uSWQgeGlkLCB1aW50MTYgaW5mbywK IAlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOwogCiAJLyogRmluZCBvciBjcmVh dGUgYSB0YWJzdGF0IGVudHJ5IGZvciB0aGUgcmVsICovCi0JcGdzdGF0X2luZm8gPSBwZ3N0 YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+dF9pZCwgcmVjLT50X3NoYXJlZCk7CisJ cGdzdGF0X2luZm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+aWQsIHJl Yy0+c2hhcmVkKTsKIAogCS8qIFNhbWUgbWF0aCBhcyBpbiBBdEVPWGFjdF9QZ1N0YXQsIGNv bW1pdCBjYXNlICovCi0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVk ICs9IHJlYy0+dHVwbGVzX2luc2VydGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1 cGxlc191cGRhdGVkICs9IHJlYy0+dHVwbGVzX3VwZGF0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRf Y291bnRzLnRfdHVwbGVzX2RlbGV0ZWQgKz0gcmVjLT50dXBsZXNfZGVsZXRlZDsKLQlwZ3N0 YXRfaW5mby0+dF9jb3VudHMudF90cnVuY2Ryb3BwZWQgPSByZWMtPnRfdHJ1bmNkcm9wcGVk OwotCWlmIChyZWMtPnRfdHJ1bmNkcm9wcGVkKQorCXBnc3RhdF9pbmZvLT5jb3VudHMudHVw bGVzX2luc2VydGVkICs9IHJlYy0+dHVwbGVzX2luc2VydGVkOworCXBnc3RhdF9pbmZvLT5j b3VudHMudHVwbGVzX3VwZGF0ZWQgKz0gcmVjLT50dXBsZXNfdXBkYXRlZDsKKwlwZ3N0YXRf aW5mby0+Y291bnRzLnR1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7CisJ cGdzdGF0X2luZm8tPmNvdW50cy50cnVuY2Ryb3BwZWQgPSByZWMtPnRydW5jZHJvcHBlZDsK KwlpZiAocmVjLT50cnVuY2Ryb3BwZWQpCiAJewogCQkvKiBmb3JnZXQgbGl2ZS9kZWFkIHN0 YXRzIHNlZW4gYnkgYmFja2VuZCB0aHVzIGZhciAqLwotCQlwZ3N0YXRfaW5mby0+dF9jb3Vu dHMudF9kZWx0YV9saXZlX3R1cGxlcyA9IDA7Ci0JCXBnc3RhdF9pbmZvLT50X2NvdW50cy50 X2RlbHRhX2RlYWRfdHVwbGVzID0gMDsKKwkJcGdzdGF0X2luZm8tPmNvdW50cy5kZWx0YV9s aXZlX3R1cGxlcyA9IDA7CisJCXBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfZGVhZF90dXBs ZXMgPSAwOwogCX0KLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9saXZlX3R1cGxl cyArPQorCXBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfbGl2ZV90dXBsZXMgKz0KIAkJcmVj LT50dXBsZXNfaW5zZXJ0ZWQgLSByZWMtPnR1cGxlc19kZWxldGVkOwotCXBnc3RhdF9pbmZv LT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzICs9CisJcGdzdGF0X2luZm8tPmNvdW50 cy5kZWx0YV9kZWFkX3R1cGxlcyArPQogCQlyZWMtPnR1cGxlc191cGRhdGVkICsgcmVjLT50 dXBsZXNfZGVsZXRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9jaGFuZ2VkX3R1cGxl cyArPQorCXBnc3RhdF9pbmZvLT5jb3VudHMuY2hhbmdlZF90dXBsZXMgKz0KIAkJcmVjLT50 dXBsZXNfaW5zZXJ0ZWQgKyByZWMtPnR1cGxlc191cGRhdGVkICsKIAkJcmVjLT50dXBsZXNf ZGVsZXRlZDsKIH0KQEAgLTcyNCwxOSArNzI0LDE5IEBAIHBnc3RhdF90d29waGFzZV9wb3N0 YWJvcnQoVHJhbnNhY3Rpb25JZCB4aWQsIHVpbnQxNiBpbmZvLAogCVBnU3RhdF9UYWJsZVN0 YXR1cyAqcGdzdGF0X2luZm87CiAKIAkvKiBGaW5kIG9yIGNyZWF0ZSBhIHRhYnN0YXQgZW50 cnkgZm9yIHRoZSByZWwgKi8KLQlwZ3N0YXRfaW5mbyA9IHBnc3RhdF9wcmVwX3JlbGF0aW9u X3BlbmRpbmcocmVjLT50X2lkLCByZWMtPnRfc2hhcmVkKTsKKwlwZ3N0YXRfaW5mbyA9IHBn c3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcocmVjLT5pZCwgcmVjLT5zaGFyZWQpOwogCiAJ LyogU2FtZSBtYXRoIGFzIGluIEF0RU9YYWN0X1BnU3RhdCwgYWJvcnQgY2FzZSAqLwotCWlm IChyZWMtPnRfdHJ1bmNkcm9wcGVkKQorCWlmIChyZWMtPnRydW5jZHJvcHBlZCkKIAl7CiAJ CXJlYy0+dHVwbGVzX2luc2VydGVkID0gcmVjLT5pbnNlcnRlZF9wcmVfdHJ1bmNkcm9wOwog CQlyZWMtPnR1cGxlc191cGRhdGVkID0gcmVjLT51cGRhdGVkX3ByZV90cnVuY2Ryb3A7CiAJ CXJlYy0+dHVwbGVzX2RlbGV0ZWQgPSByZWMtPmRlbGV0ZWRfcHJlX3RydW5jZHJvcDsKIAl9 Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVkICs9IHJlYy0+dHVw bGVzX2luc2VydGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc191cGRhdGVk ICs9IHJlYy0+dHVwbGVzX3VwZGF0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVw bGVzX2RlbGV0ZWQgKz0gcmVjLT50dXBsZXNfZGVsZXRlZDsKLQlwZ3N0YXRfaW5mby0+dF9j b3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQorCXBnc3RhdF9pbmZvLT5jb3VudHMudHVw bGVzX2luc2VydGVkICs9IHJlYy0+dHVwbGVzX2luc2VydGVkOworCXBnc3RhdF9pbmZvLT5j b3VudHMudHVwbGVzX3VwZGF0ZWQgKz0gcmVjLT50dXBsZXNfdXBkYXRlZDsKKwlwZ3N0YXRf aW5mby0+Y291bnRzLnR1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7CisJ cGdzdGF0X2luZm8tPmNvdW50cy5kZWx0YV9kZWFkX3R1cGxlcyArPQogCQlyZWMtPnR1cGxl c19pbnNlcnRlZCArIHJlYy0+dHVwbGVzX3VwZGF0ZWQ7CiB9CiAKQEAgLTc2Nyw3ICs3Njcs NyBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9y ZWYsIGJvb2wgbm93YWl0KQogCSAqIElnbm9yZSBlbnRyaWVzIHRoYXQgZGlkbid0IGFjY3Vt dWxhdGUgYW55IGFjdHVhbCBjb3VudHMsIHN1Y2ggYXMKIAkgKiBpbmRleGVzIHRoYXQgd2Vy ZSBvcGVuZWQgYnkgdGhlIHBsYW5uZXIgYnV0IG5vdCB1c2VkLgogCSAqLwotCWlmIChtZW1j bXAoJmxzdGF0cy0+dF9jb3VudHMsICZhbGxfemVyb2VzLAorCWlmIChtZW1jbXAoJmxzdGF0 cy0+Y291bnRzLCAmYWxsX3plcm9lcywKIAkJCSAgIHNpemVvZihQZ1N0YXRfVGFibGVDb3Vu dHMpKSA9PSAwKQogCXsKIAkJcmV0dXJuIHRydWU7CkBAIC03NzksMzYgKzc3OSwzNiBAQCBw Z3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJv b2wgbm93YWl0KQogCS8qIGFkZCB0aGUgdmFsdWVzIHRvIHRoZSBzaGFyZWQgZW50cnkuICov CiAJdGFiZW50cnkgPSAmc2h0YWJzdGF0cy0+c3RhdHM7CiAKLQl0YWJlbnRyeS0+bnVtc2Nh bnMgKz0gbHN0YXRzLT50X2NvdW50cy50X251bXNjYW5zOwotCWlmIChsc3RhdHMtPnRfY291 bnRzLnRfbnVtc2NhbnMpCisJdGFiZW50cnktPm51bXNjYW5zICs9IGxzdGF0cy0+Y291bnRz Lm51bXNjYW5zOworCWlmIChsc3RhdHMtPmNvdW50cy5udW1zY2FucykKIAl7CiAJCVRpbWVz dGFtcFR6IHQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25TdG9wVGltZXN0YW1wKCk7CiAJCWlm ICh0ID4gdGFiZW50cnktPmxhc3RzY2FuKQogCQkJdGFiZW50cnktPmxhc3RzY2FuID0gdDsK IAl9Ci0JdGFiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPnRfY291bnRzLnRf dHVwbGVzX3JldHVybmVkOwotCXRhYmVudHJ5LT50dXBsZXNfZmV0Y2hlZCArPSBsc3RhdHMt PnRfY291bnRzLnRfdHVwbGVzX2ZldGNoZWQ7Ci0JdGFiZW50cnktPnR1cGxlc19pbnNlcnRl ZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVkOwotCXRhYmVudHJ5LT50 dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQ7Ci0J dGFiZW50cnktPnR1cGxlc19kZWxldGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNf ZGVsZXRlZDsKLQl0YWJlbnRyeS0+dHVwbGVzX2hvdF91cGRhdGVkICs9IGxzdGF0cy0+dF9j b3VudHMudF90dXBsZXNfaG90X3VwZGF0ZWQ7CisJdGFiZW50cnktPnR1cGxlc19yZXR1cm5l ZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfcmV0dXJuZWQ7CisJdGFiZW50cnktPnR1cGxl c19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19mZXRjaGVkOworCXRhYmVudHJ5 LT50dXBsZXNfaW5zZXJ0ZWQgKz0gbHN0YXRzLT5jb3VudHMudHVwbGVzX2luc2VydGVkOwor CXRhYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfdXBk YXRlZDsKKwl0YWJlbnRyeS0+dHVwbGVzX2RlbGV0ZWQgKz0gbHN0YXRzLT5jb3VudHMudHVw bGVzX2RlbGV0ZWQ7CisJdGFiZW50cnktPnR1cGxlc19ob3RfdXBkYXRlZCArPSBsc3RhdHMt PmNvdW50cy50dXBsZXNfaG90X3VwZGF0ZWQ7CiAKIAkvKgogCSAqIElmIHRhYmxlIHdhcyB0 cnVuY2F0ZWQvZHJvcHBlZCwgZmlyc3QgcmVzZXQgdGhlIGxpdmUvZGVhZCBjb3VudGVycy4K IAkgKi8KLQlpZiAobHN0YXRzLT50X2NvdW50cy50X3RydW5jZHJvcHBlZCkKKwlpZiAobHN0 YXRzLT5jb3VudHMudHJ1bmNkcm9wcGVkKQogCXsKIAkJdGFiZW50cnktPmxpdmVfdHVwbGVz ID0gMDsKIAkJdGFiZW50cnktPmRlYWRfdHVwbGVzID0gMDsKIAkJdGFiZW50cnktPmluc19z aW5jZV92YWN1dW0gPSAwOwogCX0KIAotCXRhYmVudHJ5LT5saXZlX3R1cGxlcyArPSBsc3Rh dHMtPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXM7Ci0JdGFiZW50cnktPmRlYWRfdHVw bGVzICs9IGxzdGF0cy0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlczsKLQl0YWJlbnRy eS0+bW9kX3NpbmNlX2FuYWx5emUgKz0gbHN0YXRzLT50X2NvdW50cy50X2NoYW5nZWRfdHVw bGVzOwotCXRhYmVudHJ5LT5pbnNfc2luY2VfdmFjdXVtICs9IGxzdGF0cy0+dF9jb3VudHMu dF90dXBsZXNfaW5zZXJ0ZWQ7Ci0JdGFiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0 cy0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZDsKLQl0YWJlbnRyeS0+YmxvY2tzX2hpdCAr PSBsc3RhdHMtPnRfY291bnRzLnRfYmxvY2tzX2hpdDsKKwl0YWJlbnRyeS0+bGl2ZV90dXBs ZXMgKz0gbHN0YXRzLT5jb3VudHMuZGVsdGFfbGl2ZV90dXBsZXM7CisJdGFiZW50cnktPmRl YWRfdHVwbGVzICs9IGxzdGF0cy0+Y291bnRzLmRlbHRhX2RlYWRfdHVwbGVzOworCXRhYmVu dHJ5LT5tb2Rfc2luY2VfYW5hbHl6ZSArPSBsc3RhdHMtPmNvdW50cy5jaGFuZ2VkX3R1cGxl czsKKwl0YWJlbnRyeS0+aW5zX3NpbmNlX3ZhY3V1bSArPSBsc3RhdHMtPmNvdW50cy50dXBs ZXNfaW5zZXJ0ZWQ7CisJdGFiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+Y291 bnRzLmJsb2Nrc19mZXRjaGVkOworCXRhYmVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+ Y291bnRzLmJsb2Nrc19oaXQ7CiAKIAkvKiBDbGFtcCBsaXZlX3R1cGxlcyBpbiBjYXNlIG9m IG5lZ2F0aXZlIGRlbHRhX2xpdmVfdHVwbGVzICovCiAJdGFiZW50cnktPmxpdmVfdHVwbGVz ID0gTWF4KHRhYmVudHJ5LT5saXZlX3R1cGxlcywgMCk7CkBAIC04MTksMTMgKzgxOSwxMyBA QCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYs IGJvb2wgbm93YWl0KQogCiAJLyogVGhlIGVudHJ5IHdhcyBzdWNjZXNzZnVsbHkgZmx1c2hl ZCwgYWRkIHRoZSBzYW1lIHRvIGRhdGFiYXNlIHN0YXRzICovCiAJZGJlbnRyeSA9IHBnc3Rh dF9wcmVwX2RhdGFiYXNlX3BlbmRpbmcoZGJvaWQpOwotCWRiZW50cnktPnR1cGxlc19yZXR1 cm5lZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkOwotCWRiZW50cnkt PnR1cGxlc19mZXRjaGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNfZmV0Y2hlZDsK LQlkYmVudHJ5LT50dXBsZXNfaW5zZXJ0ZWQgKz0gbHN0YXRzLT50X2NvdW50cy50X3R1cGxl c19pbnNlcnRlZDsKLQlkYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPnRfY291 bnRzLnRfdHVwbGVzX3VwZGF0ZWQ7Ci0JZGJlbnRyeS0+dHVwbGVzX2RlbGV0ZWQgKz0gbHN0 YXRzLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkOwotCWRiZW50cnktPmJsb2Nrc19mZXRj aGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZDsKLQlkYmVudHJ5LT5i bG9ja3NfaGl0ICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfaGl0OworCWRiZW50cnkt PnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfcmV0dXJuZWQ7CisJ ZGJlbnRyeS0+dHVwbGVzX2ZldGNoZWQgKz0gbHN0YXRzLT5jb3VudHMudHVwbGVzX2ZldGNo ZWQ7CisJZGJlbnRyeS0+dHVwbGVzX2luc2VydGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxl c19pbnNlcnRlZDsKKwlkYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPmNvdW50 cy50dXBsZXNfdXBkYXRlZDsKKwlkYmVudHJ5LT50dXBsZXNfZGVsZXRlZCArPSBsc3RhdHMt PmNvdW50cy50dXBsZXNfZGVsZXRlZDsKKwlkYmVudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBs c3RhdHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKKwlkYmVudHJ5LT5ibG9ja3NfaGl0ICs9 IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTg1 Myw4ICs4NTMsOCBAQCBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKE9pZCByZWxfaWQs IGJvb2wgaXNzaGFyZWQpCiAJCQkJCQkJCQkJICBpc3NoYXJlZCA/IEludmFsaWRPaWQgOiBN eURhdGFiYXNlSWQsCiAJCQkJCQkJCQkJICByZWxfaWQsIE5VTEwpOwogCXBlbmRpbmcgPSBl bnRyeV9yZWYtPnBlbmRpbmc7Ci0JcGVuZGluZy0+dF9pZCA9IHJlbF9pZDsKLQlwZW5kaW5n LT50X3NoYXJlZCA9IGlzc2hhcmVkOworCXBlbmRpbmctPmlkID0gcmVsX2lkOworCXBlbmRp bmctPnNoYXJlZCA9IGlzc2hhcmVkOwogCiAJcmV0dXJuIHBlbmRpbmc7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDZjZGRkNzRhYTcuLjYzMWMxNDE1YjQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xNDUsNyArMTQ1LDcg QEAgcGdfc3RhdF9nZXRfZnVuY3Rpb25fY2FsbHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCWlm ICgoZnVuY2VudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfZnVuY2VudHJ5KGZ1bmNpZCkpID09 IE5VTEwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7Ci0JUEdfUkVUVVJOX0lOVDY0KGZ1bmNlbnRy eS0+Zl9udW1jYWxscyk7CisJUEdfUkVUVVJOX0lOVDY0KGZ1bmNlbnRyeS0+bnVtY2FsbHMp OwogfQogCiBEYXR1bQpAQCAtMTU3LDcgKzE1Nyw3IEBAIHBnX3N0YXRfZ2V0X2Z1bmN0aW9u X3RvdGFsX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKGZ1bmNlbnRyeSA9IHBnc3Rh dF9mZXRjaF9zdGF0X2Z1bmNlbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5f TlVMTCgpOwogCS8qIGNvbnZlcnQgY291bnRlciBmcm9tIG1pY3Jvc2VjIHRvIG1pbGxpc2Vj IGZvciBkaXNwbGF5ICovCi0JUEdfUkVUVVJOX0ZMT0FUOCgoKGRvdWJsZSkgZnVuY2VudHJ5 LT5mX3RvdGFsX3RpbWUpIC8gMTAwMC4wKTsKKwlQR19SRVRVUk5fRkxPQVQ4KCgoZG91Ymxl KSBmdW5jZW50cnktPnRvdGFsX3RpbWUpIC8gMTAwMC4wKTsKIH0KIAogRGF0dW0KQEAgLTE2 OSw3ICsxNjksNyBAQCBwZ19zdGF0X2dldF9mdW5jdGlvbl9zZWxmX3RpbWUoUEdfRlVOQ1RJ T05fQVJHUykKIAlpZiAoKGZ1bmNlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2Z1bmNlbnRy eShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCS8qIGNvbnZlcnQg Y291bnRlciBmcm9tIG1pY3Jvc2VjIHRvIG1pbGxpc2VjIGZvciBkaXNwbGF5ICovCi0JUEdf UkVUVVJOX0ZMT0FUOCgoKGRvdWJsZSkgZnVuY2VudHJ5LT5mX3NlbGZfdGltZSkgLyAxMDAw LjApOworCVBHX1JFVFVSTl9GTE9BVDgoKChkb3VibGUpIGZ1bmNlbnRyeS0+c2VsZl90aW1l KSAvIDEwMDAuMCk7CiB9CiAKIERhdHVtCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBwZ19zdGF0 X2dldF94YWN0X251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9 IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJ ZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMudF9udW1zY2Fu cyk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMubnVtc2NhbnMpOwog CiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xMzcwLDcgKzEzNzAsNyBAQCBw Z19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1cm5lZChQR19GVU5DVElPTl9BUkdTKQogCWlm ICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQly ZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPnRfY291 bnRzLnRfdHVwbGVzX3JldHVybmVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnkt PmNvdW50cy50dXBsZXNfcmV0dXJuZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7 CiB9CkBAIC0xMzg1LDcgKzEzODUsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19mZXRj aGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9l bnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQg PSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfZmV0Y2hlZCk7CisJCXJl c3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMudHVwbGVzX2ZldGNoZWQpOwogCiAJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNDAyLDcgKzE0MDIsNyBAQCBwZ19z dGF0X2dldF94YWN0X3R1cGxlc19pbnNlcnRlZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1 bHQgPSAwOwogCWVsc2UKIAl7Ci0JCXJlc3VsdCA9IHRhYmVudHJ5LT50X2NvdW50cy50X3R1 cGxlc19pbnNlcnRlZDsKKwkJcmVzdWx0ID0gdGFiZW50cnktPmNvdW50cy50dXBsZXNfaW5z ZXJ0ZWQ7CiAJCS8qIGxpdmUgc3VidHJhbnNhY3Rpb25zJyBjb3VudHMgYXJlbid0IGluIHRf dHVwbGVzX2luc2VydGVkIHlldCAqLwogCQlmb3IgKHRyYW5zID0gdGFiZW50cnktPnRyYW5z OyB0cmFucyAhPSBOVUxMOyB0cmFucyA9IHRyYW5zLT51cHBlcikKIAkJCXJlc3VsdCArPSB0 cmFucy0+dHVwbGVzX2luc2VydGVkOwpAQCAtMTQyMyw3ICsxNDIzLDcgQEAgcGdfc3RhdF9n ZXRfeGFjdF90dXBsZXNfdXBkYXRlZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAw OwogCWVsc2UKIAl7Ci0JCXJlc3VsdCA9IHRhYmVudHJ5LT50X2NvdW50cy50X3R1cGxlc191 cGRhdGVkOworCQlyZXN1bHQgPSB0YWJlbnRyeS0+Y291bnRzLnR1cGxlc191cGRhdGVkOwog CQkvKiBsaXZlIHN1YnRyYW5zYWN0aW9ucycgY291bnRzIGFyZW4ndCBpbiB0X3R1cGxlc191 cGRhdGVkIHlldCAqLwogCQlmb3IgKHRyYW5zID0gdGFiZW50cnktPnRyYW5zOyB0cmFucyAh PSBOVUxMOyB0cmFucyA9IHRyYW5zLT51cHBlcikKIAkJCXJlc3VsdCArPSB0cmFucy0+dHVw bGVzX3VwZGF0ZWQ7CkBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1 cGxlc19kZWxldGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQog CXsKLQkJcmVzdWx0ID0gdGFiZW50cnktPnRfY291bnRzLnRfdHVwbGVzX2RlbGV0ZWQ7CisJ CXJlc3VsdCA9IHRhYmVudHJ5LT5jb3VudHMudHVwbGVzX2RlbGV0ZWQ7CiAJCS8qIGxpdmUg c3VidHJhbnNhY3Rpb25zJyBjb3VudHMgYXJlbid0IGluIHRfdHVwbGVzX2RlbGV0ZWQgeWV0 ICovCiAJCWZvciAodHJhbnMgPSB0YWJlbnRyeS0+dHJhbnM7IHRyYW5zICE9IE5VTEw7IHRy YW5zID0gdHJhbnMtPnVwcGVyKQogCQkJcmVzdWx0ICs9IHRyYW5zLT50dXBsZXNfZGVsZXRl ZDsKQEAgLTE0NjMsNyArMTQ2Myw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2hvdF91 cGRhdGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3Rh dF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1 bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfaG90X3VwZGF0ZWQp OworCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+Y291bnRzLnR1cGxlc19ob3RfdXBk YXRlZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE0NzgsNyArMTQ3 OCw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxvY2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJH UykKIAlpZiAoKHRhYmVudHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVM TCkKIAkJcmVzdWx0ID0gMDsKIAllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5 LT50X2NvdW50cy50X2Jsb2Nrc19mZXRjaGVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAodGFi ZW50cnktPmNvdW50cy5ibG9ja3NfZmV0Y2hlZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVz dWx0KTsKIH0KQEAgLTE0OTMsNyArMTQ5Myw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxvY2tz X2hpdChQR19GVU5DVElPTl9BUkdTKQogCWlmICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRf ZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0 ID0gKGludDY0KSAodGFiZW50cnktPnRfY291bnRzLnRfYmxvY2tzX2hpdCk7CisJCXJlc3Vs dCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMuYmxvY2tzX2hpdCk7CiAKIAlQR19SRVRV Uk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHBnX3N0YXRfZ2V0 X3hhY3RfZnVuY3Rpb25fY2FsbHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCWlmICgoZnVuY2Vu dHJ5ID0gZmluZF9mdW5jc3RhdF9lbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRV Uk5fTlVMTCgpOwotCVBHX1JFVFVSTl9JTlQ2NChmdW5jZW50cnktPmZfY291bnRzLmZfbnVt Y2FsbHMpOworCVBHX1JFVFVSTl9JTlQ2NChmdW5jZW50cnktPmNvdW50cy5udW1jYWxscyk7 CiB9CiAKIERhdHVtCkBAIC0xNTE3LDcgKzE1MTcsNyBAQCBwZ19zdGF0X2dldF94YWN0X2Z1 bmN0aW9uX3RvdGFsX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAogCWlmICgoZnVuY2VudHJ5 ID0gZmluZF9mdW5jc3RhdF9lbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5f TlVMTCgpOwotCVBHX1JFVFVSTl9GTE9BVDgoSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoZnVu Y2VudHJ5LT5mX2NvdW50cy5mX3RvdGFsX3RpbWUpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KElO U1RSX1RJTUVfR0VUX01JTExJU0VDKGZ1bmNlbnRyeS0+Y291bnRzLnRvdGFsX3RpbWUpKTsK IH0KIAogRGF0dW0KQEAgLTE1MjgsNyArMTUyOCw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfZnVu Y3Rpb25fc2VsZl90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlpZiAoKGZ1bmNlbnRyeSA9 IGZpbmRfZnVuY3N0YXRfZW50cnkoZnVuY2lkKSkgPT0gTlVMTCkKIAkJUEdfUkVUVVJOX05V TEwoKTsKLQlQR19SRVRVUk5fRkxPQVQ4KElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGZ1bmNl bnRyeS0+Zl9jb3VudHMuZl9zZWxmX3RpbWUpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KElOU1RS X1RJTUVfR0VUX01JTExJU0VDKGZ1bmNlbnRyeS0+Y291bnRzLnNlbGZfdGltZSkpOwogfQog CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdz dGF0LmgKaW5kZXggZDNlOTY1ZDc0NC4uYjIyNTAzOTc5MiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTEwNSw5ICsx MDUsOSBAQCB0eXBlZGVmIGludDY0IFBnU3RhdF9Db3VudGVyOwogICovCiB0eXBlZGVmIHN0 cnVjdCBQZ1N0YXRfRnVuY3Rpb25Db3VudHMKIHsKLQlQZ1N0YXRfQ291bnRlciBmX251bWNh bGxzOwotCWluc3RyX3RpbWUJZl90b3RhbF90aW1lOwotCWluc3RyX3RpbWUJZl9zZWxmX3Rp bWU7CisJUGdTdGF0X0NvdW50ZXIgbnVtY2FsbHM7CisJaW5zdHJfdGltZQl0b3RhbF90aW1l OworCWluc3RyX3RpbWUJc2VsZl90aW1lOwogfSBQZ1N0YXRfRnVuY3Rpb25Db3VudHM7CiAK IC8qIC0tLS0tLS0tLS0KQEAgLTExNiw3ICsxMTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0 YXRfRnVuY3Rpb25Db3VudHMKICAqLwogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRG dW5jdGlvbkVudHJ5CiB7Ci0JUGdTdGF0X0Z1bmN0aW9uQ291bnRzIGZfY291bnRzOworCVBn U3RhdF9GdW5jdGlvbkNvdW50cyBjb3VudHM7CiB9IFBnU3RhdF9CYWNrZW5kRnVuY3Rpb25F bnRyeTsKIAogLyoKQEAgLTEyOCwxMSArMTI4LDExIEBAIHR5cGVkZWYgc3RydWN0IFBnU3Rh dF9GdW5jdGlvbkNhbGxVc2FnZQogCS8qIE5VTEwgbWVhbnMgd2UgYXJlIG5vdCB0cmFja2lu ZyB0aGUgY3VycmVudCBmdW5jdGlvbiBjYWxsICovCiAJUGdTdGF0X0Z1bmN0aW9uQ291bnRz ICpmczsKIAkvKiBUb3RhbCB0aW1lIHByZXZpb3VzbHkgY2hhcmdlZCB0byBmdW5jdGlvbiwg YXMgb2YgZnVuY3Rpb24gc3RhcnQgKi8KLQlpbnN0cl90aW1lCXNhdmVfZl90b3RhbF90aW1l OworCWluc3RyX3RpbWUJc2F2ZV90b3RhbF90aW1lOwogCS8qIEJhY2tlbmQtd2lkZSB0b3Rh bCB0aW1lIGFzIG9mIGZ1bmN0aW9uIHN0YXJ0ICovCiAJaW5zdHJfdGltZQlzYXZlX3RvdGFs OwogCS8qIHN5c3RlbSBjbG9jayBhcyBvZiBmdW5jdGlvbiBzdGFydCAqLwotCWluc3RyX3Rp bWUJZl9zdGFydDsKKwlpbnN0cl90aW1lCXN0YXJ0OwogfSBQZ1N0YXRfRnVuY3Rpb25DYWxs VXNhZ2U7CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTE2NywyMyArMTY3LDIzIEBAIHR5cGVkZWYg c3RydWN0IFBnU3RhdF9CYWNrZW5kU3ViRW50cnkKICAqLwogdHlwZWRlZiBzdHJ1Y3QgUGdT dGF0X1RhYmxlQ291bnRzCiB7Ci0JUGdTdGF0X0NvdW50ZXIgdF9udW1zY2FuczsKKwlQZ1N0 YXRfQ291bnRlciBudW1zY2FuczsKIAotCVBnU3RhdF9Db3VudGVyIHRfdHVwbGVzX3JldHVy bmVkOwotCVBnU3RhdF9Db3VudGVyIHRfdHVwbGVzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50 ZXIgdHVwbGVzX3JldHVybmVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19mZXRjaGVkOwog Ci0JUGdTdGF0X0NvdW50ZXIgdF90dXBsZXNfaW5zZXJ0ZWQ7Ci0JUGdTdGF0X0NvdW50ZXIg dF90dXBsZXNfdXBkYXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0X3R1cGxlc19kZWxldGVkOwot CVBnU3RhdF9Db3VudGVyIHRfdHVwbGVzX2hvdF91cGRhdGVkOwotCWJvb2wJCXRfdHJ1bmNk cm9wcGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19pbnNlcnRlZDsKKwlQZ1N0YXRfQ291 bnRlciB0dXBsZXNfdXBkYXRlZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZGVsZXRlZDsK KwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfaG90X3VwZGF0ZWQ7CisJYm9vbAkJdHJ1bmNkcm9w cGVkOwogCi0JUGdTdGF0X0NvdW50ZXIgdF9kZWx0YV9saXZlX3R1cGxlczsKLQlQZ1N0YXRf Q291bnRlciB0X2RlbHRhX2RlYWRfdHVwbGVzOwotCVBnU3RhdF9Db3VudGVyIHRfY2hhbmdl ZF90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIgZGVsdGFfbGl2ZV90dXBsZXM7CisJUGdTdGF0 X0NvdW50ZXIgZGVsdGFfZGVhZF90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIgY2hhbmdlZF90 dXBsZXM7CiAKLQlQZ1N0YXRfQ291bnRlciB0X2Jsb2Nrc19mZXRjaGVkOwotCVBnU3RhdF9D b3VudGVyIHRfYmxvY2tzX2hpdDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsK KwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAK IC8qIC0tLS0tLS0tLS0KQEAgLTIwMywxMCArMjAzLDEwIEBAIHR5cGVkZWYgc3RydWN0IFBn U3RhdF9UYWJsZUNvdW50cwogICovCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVTdGF0 dXMKIHsKLQlPaWQJCQl0X2lkOwkJCS8qIHRhYmxlJ3MgT0lEICovCi0JYm9vbAkJdF9zaGFy ZWQ7CQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCU9pZAkJCWlkOwkJCS8qIHRh YmxlJ3MgT0lEICovCisJYm9vbAkJc2hhcmVkOwkJLyogaXMgaXQgYSBzaGFyZWQgY2F0YWxv Zz8gKi8KIAlzdHJ1Y3QgUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnM7CS8qIGxvd2Vz dCBzdWJ4YWN0J3MgY291bnRzICovCi0JUGdTdGF0X1RhYmxlQ291bnRzIHRfY291bnRzOwkv KiBldmVudCBjb3VudHMgdG8gYmUgc2VudCAqLworCVBnU3RhdF9UYWJsZUNvdW50cyBjb3Vu dHM7CS8qIGV2ZW50IGNvdW50cyB0byBiZSBzZW50ICovCiAJUmVsYXRpb24JcmVsYXRpb247 CQkvKiByZWwgdGhhdCBpcyB1c2luZyB0aGlzIGVudHJ5ICovCiB9IFBnU3RhdF9UYWJsZVN0 YXR1czsKIApAQCAtMzEzLDEwICszMTMsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0 YXREQkVudHJ5CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CiB7Ci0J UGdTdGF0X0NvdW50ZXIgZl9udW1jYWxsczsKKwlQZ1N0YXRfQ291bnRlciBudW1jYWxsczsK IAotCVBnU3RhdF9Db3VudGVyIGZfdG90YWxfdGltZTsJLyogdGltZXMgaW4gbWljcm9zZWNv bmRzICovCi0JUGdTdGF0X0NvdW50ZXIgZl9zZWxmX3RpbWU7CisJUGdTdGF0X0NvdW50ZXIg dG90YWxfdGltZTsJLyogdGltZXMgaW4gbWljcm9zZWNvbmRzICovCisJUGdTdGF0X0NvdW50 ZXIgc2VsZl90aW1lOwogfSBQZ1N0YXRfU3RhdEZ1bmNFbnRyeTsKIAogdHlwZWRlZiBzdHJ1 Y3QgUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5CkBAIC01MjUsMzcgKzUyNSwzNyBAQCBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogI2RlZmluZSBw Z3N0YXRfY291bnRfaGVhcF9zY2FuKHJlbCkJCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJ CQkJCVwKIAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlc Ci0JCQkocmVsKS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfbnVtc2NhbnMrKzsJCQkJXAor CQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMubnVtc2NhbnMrKzsJCQkJCVwKIAl9IHdo aWxlICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRfaGVhcF9nZXRuZXh0KHJlbCkJCQkJCQkJ CVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9y ZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMu dF90dXBsZXNfcmV0dXJuZWQrKzsJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRz LnR1cGxlc19yZXR1cm5lZCsrOwkJCVwKIAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0YXRf Y291bnRfaGVhcF9mZXRjaChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwK IAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQko cmVsKS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2ZldGNoZWQrKzsJCVwKKwkJ CShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19mZXRjaGVkKys7CQkJXAogCX0g d2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF9zY2FuKHJlbCkJCQkJCQkJ CVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9y ZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMu dF9udW1zY2FucysrOwkJCQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5udW1z Y2FucysrOwkJCQkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRl eF90dXBsZXMocmVsLCBuKQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJaWYg KHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+ cGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkICs9IChuKTsJXAorCQkJ KHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMudHVwbGVzX3JldHVybmVkICs9IChuKTsJCVwK IAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRfYnVmZmVyX3JlYWQocmVsKQkJ CQkJCQkJXAogCWRvIHsJCQkJCQkJCQkJCQkJCQlcCiAJCWlmIChwZ3N0YXRfc2hvdWxkX2Nv dW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZvLT50X2Nv dW50cy50X2Jsb2Nrc19mZXRjaGVkKys7CQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNv dW50cy5ibG9ja3NfZmV0Y2hlZCsrOwkJCVwKIAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0 YXRfY291bnRfYnVmZmVyX2hpdChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJ CVwKIAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0J CQkocmVsKS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfYmxvY2tzX2hpdCsrOwkJCVwKKwkJ CShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19oaXQrKzsJCQkJXAogCX0gd2hp bGUgKDApCiAKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxhdGlv biByZWwsIFBnU3RhdF9Db3VudGVyIG4pOwo= --------------omyMU02D4PjpJaOCYXw0M7x0--