Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w87Gf-000E73-26 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Apr 2026 01:54:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w87Gb-003Jz8-2Q for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Apr 2026 01:54:42 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w87Gb-003Jz0-01 for pgsql-hackers@lists.postgresql.org; Thu, 02 Apr 2026 01:54:41 +0000 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w87GZ-000000006kN-29AI for pgsql-hackers@postgresql.org; Thu, 02 Apr 2026 01:54:40 +0000 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7d4c383f2fcso375950a34.0 for ; Wed, 01 Apr 2026 18:54:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775094878; cv=none; d=google.com; s=arc-20240605; b=F/khdJyeqAGa+ar/C5I9eORQm6IKHLyiX8VmN+kVolNtxklW2T1hM89+8F5Jq9Km4V M61O7+EOeZGpofRyhDtcEHFAq6BqBJyywf5mVbAyFeCJ7TzJCbsOxHKpXaDGxbni80rz mJOCPNYHnRqqhOq7XuQWVDcOuIoArYVCrnx60t4XIen9cAJizISQuDhEeD7OmDEKkDrL Cgy0aMg6V7iT1r6LYcCM2DDH77qBPnQlGz52GHYadhAsMwiJ/K1utjr4vEP00/VpuPi4 c6DF2q6NML7Fl0hUoFdR+xIVWFoL4FW1zVKs0gSZ2bReUvbiecA8WgZjgVipTaG3eLcf Wgyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=GGGCKBhSaD6hQi+MtbSBz+VEo3wjJ2O0xe2sfzFDVl8=; fh=URfjI5CXyN/AvYkKOaaJHJdlHdNtOIjYKuqsj6SPLDg=; b=TMPTh6tWIcTcLs9xNozoKlZu5Ol08Yj2DgXYWfPB+Cma4S+G5ahS7pVAq19iVVwRIT MvmF2MnTYnoBCHRV38lHnjUjN2VA6FPQx7wRwmdbFs8mNzNnRep9oqxoR2erB6rxwuGS 0+VNgxZeRzmAw7fVs7LZh9PGKE+MDNhfRIHopw1YF8WZCwPFOUzjridBaJ9kolxcBIut GGCBaN9Pg1aJ/PUWS6Aiz7Xv+I9bZ4PhImqAapAhR9xANEgh3yDzVnIvETYI4BNsK65u Y+HE9TL8+0D/5UgIkP/Q5MUShZxlZ3twsNDgDVwSrdMD2a9ystvCqUqeYl6YxglH1a3M L6eg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775094878; x=1775699678; 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=GGGCKBhSaD6hQi+MtbSBz+VEo3wjJ2O0xe2sfzFDVl8=; b=P/4vYwMwsPKSefYNLwDc0PVf0JAGyG61oA/WPntpWS4GUuTQ4lh8LW+jKNYLPHcuPr bVah8KQkhGCeBHO8K3NA23+LVdB5lQdW7H8tCJRMmrP8uYImwNImF/Bvb+ipaj/4JY3S ahsuqpuTe0ELHO8E5prcR9c1CBRaIGgJk8vkTLLukHUlPiV5kQcB0znvknRMdAAEyfVs 8uF1hJVHkg23ctV35BjffnNJq2voaerrkRUkfuonussv5iv7nGJsm8sYsKyClK7pQz8y pRoeZ8mC8NM58aZs42kg/HNzjg0pSI3B+aj2np7v+yXax58uWUExmJdPvoLw6FrhkwBR lvHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775094878; x=1775699678; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GGGCKBhSaD6hQi+MtbSBz+VEo3wjJ2O0xe2sfzFDVl8=; b=W/f8dPQIHCNDQUpojA7WXYB/G8C3uM0FDCSl+y3gg/q7nuehz4Lm43KnAXTJam96Oe Vn9a0W2cTJZYFvQyni8jBUoxhC3iMAARk7Lu6zs4BUtKiUjsitpILv/Ht5iA8YdFQC79 DiEv9zOTY1UJAk3yq2NGTvHlGenJVALc8jv/I9TvJ4an1VF3etkt5NcEVu3MpcABkwYU +UhpptJe7oOFR/dk1TkpjJCl8T6EoO6DcxeeV5/cxFNhFyvtfoMBvU7iZK316m8AJT35 8HAf8EGL4wFZwouo8NVmDq4r9tnG5W9GBGYsKL8hY8JM1vZ9I9/rDCYiv9e7wAulf/d/ GzCw== X-Forwarded-Encrypted: i=1; AJvYcCX2twvJ3anUAp9u65lY5BVcWHRnDWO656CYUa+pLeYwPuKSkWwKSo4c06FqiRIx6x3ZHnbG+FnB1gEMxpOj@postgresql.org X-Gm-Message-State: AOJu0Yzn3yXkOAMCuR2D+6XeivbWR96o70tXiQ4gtaqsNIuJy4WRKhFW DrwmhJ0w6i4QFhuF9+USTfvZ3ZdnedENuuqGJizAE93hphPNeHmP02XfjbwU8sw8VwG99uuMwWp 9L2O7INOyF9WFPXmHKxlfouy5Qtl6wxI= X-Gm-Gg: ATEYQzxIT1y11G3Ok0+rVcZZUmitRaTs8rPtz+GSeixA32FspA8IYA522+CERC2P68z NAj2saLDxejxmaSC+ZldCQnsNtOlVO4+C2PBobSuYKzYjlX+2PSL3FoWS3WeEGLJsOhncWN9RSU HCFZQNMiYN9FMOQnJmrtWVw2042bVPLNeRwOEPjnqGN51dVlqkLHV/L7vUE4j0GDb2955gkjuGK BPAw3EsqdXKAa/qfn8XH5R63pMSarr1h/xX9F8uoto8R+3XYlivFZRR54vmUUjPILJ5/BN+/5sV De/VOw== X-Received: by 2002:a05:6830:2585:b0:7d7:57ef:384d with SMTP id 46e09a7af769-7db993923damr4146295a34.16.1775094877860; Wed, 01 Apr 2026 18:54:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: shihao zhong Date: Wed, 1 Apr 2026 21:54:25 -0400 X-Gm-Features: AQROBzDizQqxY4dQpwP4KEotVhRnjp1_d4KqlD_Rgp6CUFqy5A6jxBMYA-vCWRo Message-ID: Subject: Re: [Patch] New pg_stat_tablespace view To: Zsolt Parragi Cc: songjinzhou , PostgreSQL-development , jian he Content-Type: multipart/mixed; boundary="000000000000a35254064e707b07" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a35254064e707b07 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 27, 2026 at 2:05=E2=80=AFPM shihao zhong wrote: > > On Tue, Mar 24, 2026 at 6:11=E2=80=AFPM Zsolt Parragi wrote: > > > > Hello! > > > > blk_read_time and blk_write_time doesn't seem to work, they show 0 to > > me even after some workloads, and I don't see any assignments in the > > code. The testcase also checks for "blk_read_time >=3D 0" which > > trivially succeeds. > > > > blocks_fetched is also misleading, it includes both reads and cache > > hits. pg_stat_database calls this column blocks_read, and properly > > substracts blocks_hit from it. > > > > + rel->pgstat_info->reltablespace =3D rel->rd_locator.spcOid; > > > > Shouldn't this be included in TwoPhasePgStatRecord / pgstat_twophase_po= stcommit? > > > > > > Hi Zsolt and Jian, > > Thanks for the feedback. I've attached v3, addressing all comments. > Notably, I've included tuple-level stats in the pg_stat_tablespace > view to align with the addition of SpaceOid in TwoPhasePgStatRecord. > > Thanks, > Shihao Rebase with head. --000000000000a35254064e707b07 Content-Type: application/octet-stream; name="pg_stat_tablespace_final_v4.patch" Content-Disposition: attachment; filename="pg_stat_tablespace_final_v4.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mngtn6wi0 RnJvbSA4ZDIxYzcxOWFlMWZiNDgwNDZkM2E5ODI2ODY5NzJlZjk2MjZmODY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGloYW8gemhvbmcgPHpob25nOTUwNDE5QGdvb2dsZS5jb20+ CkRhdGU6IFRodSwgMiBBcHIgMjAyNiAwMDo1ODowMyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIEFk ZCBwZ19zdGF0X3RhYmxlc3BhY2Ugc3RhdGlzdGljcyB2aWV3CgpJbXBsZW1lbnQgcGdfc3RhdF90 YWJsZXNwYWNlIHRvIHRyYWNrIGJsb2NrIHJlYWRzLCBoaXRzLCBJL08gdGltaW5nLCB0ZW1wb3Jh cnkgZmlsZSB1c2FnZSwgYW5kIHR1cGxlIG9wZXJhdGlvbnMgcGVyIHRhYmxlc3BhY2UuIFRoaXMg YWxsb3dzIERCQXMgdG8gYW5hbHl6ZSB0YWJsZXNwYWNlLWxldmVsIHdvcmtsb2FkIGhvdHNwb3Rz LgoKVGhlIHZpZXcgaW5jbHVkZXM6Ci0gdGFibGVzcGFjZV9pZAotIHRhYmxlc3BhY2VfbmFtZQot IGJsa3NfcmVhZAotIGJsa3NfaGl0Ci0gYmxrX3JlYWRfdGltZQotIGJsa193cml0ZV90aW1lCi0g dGVtcF9maWxlcwotIHRlbXBfYnl0ZXMKLSB0dXBfcmV0dXJuZWQKLSB0dXBfZmV0Y2hlZAotIHR1 cF9pbnNlcnRlZAotIHR1cF91cGRhdGVkCi0gdHVwX2RlbGV0ZWQKLSBzdGF0c19yZXNldAoKSW5j bHVkZXMgY29tcHJlaGVuc2l2ZSBmaWVsZCBjb3ZlcmFnZSBjaGVja3MgaW4gc3RhdHMuc3FsLgot LS0KIGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8IDE5OCAr KysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAg ICAgICAgICB8ICAxOSArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVzcGFjZS5jICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jICAgICAg ICAgICB8ICAzMyArKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUgICAgICAg ICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1aWxkICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyAgICAgICAgICAg fCAgMTYgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jICB8 ICA0NSArKystCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAg fCAgMzIgKystCiAuLi4vdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxlc3BhY2UuYyAgICAgICAg fCAxMjcgKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAg ICAgICAgICB8IDEwNiArKysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 ICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDI5ICsrKwogc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMu aCAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwu aCAgICAgICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaCAgICAg ICAgICAgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAg ICAgICAgICAgfCAgMTYgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0ICAg ICAgICAgICB8ICA4NSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsICAg ICAgICAgICAgICAgIHwgIDM4ICsrKysKIDIwIGZpbGVzIGNoYW5nZWQsIDc1OSBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfdGFibGVzcGFjZS5jCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKaW5kZXggYmI3 NWVkMTA2OWIuLjJmNzhlODg1MDBiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTUzNSw2ICs1MzUs MTQgQEAgcG9zdGdyZXMgICAyNzA5MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNz ICAgMTE6MzQgICAwOjAwIHBvc3RncmVzOiBzZXIKICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93 PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PHN0cnVjdG5hbWU+cGdfc3RhdF90YWJsZXNw YWNlPC9zdHJ1Y3RuYW1lPjxpbmRleHRlcm0+PHByaW1hcnk+cGdfc3RhdF90YWJsZXNwYWNlPC9w cmltYXJ5PjwvaW5kZXh0ZXJtPjwvZW50cnk+CisgICAgICA8ZW50cnk+T25lIHJvdyBwZXIgdGFi bGVzcGFjZSwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0IEkvTywgdGVtcG9yYXJ5IGZpbGVzLCBh bmQgdHVwbGUgb3BlcmF0aW9ucy4gU2VlCisgICAgICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmlu Zy1wZy1zdGF0LXRhYmxlc3BhY2UtdmlldyI+CisgICAgICAgPHN0cnVjdG5hbWU+cGdfc3RhdF90 YWJsZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4gZm9yIGRldGFpbHMuCisgICAgICA8L2VudHJ5 PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxzdHJ1Y3RuYW1lPnBn X3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzPC9zdHJ1Y3RuYW1lPjxpbmRleHRlcm0+PHByaW1hcnk+ cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC9lbnRyeT4K ICAgICAgIDxlbnRyeT5PbmUgcm93IHBlciBzdWJzY3JpcHRpb24sIHNob3dpbmcgc3RhdGlzdGlj cyBhYm91dCBlcnJvcnMgYW5kIGNvbmZsaWN0cy4KQEAgLTUyNTYsNiArNTI2NCwxOTYgQEAgZGVz Y3JpcHRpb24gfCBXYWl0aW5nIGZvciBhIG5ld2x5IGluaXRpYWxpemVkIFdBTCBmaWxlIHRvIHJl YWNoIGR1cmFibGUgc3RvcmFnZQogCiAgPC9zZWN0Mj4KIAorICA8c2VjdDIgaWQ9Im1vbml0b3Jp bmctcGctc3RhdC10YWJsZXNwYWNlLXZpZXciPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0 YXRfdGFibGVzcGFjZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtPgorICAg IDxwcmltYXJ5PnBnX3N0YXRfdGFibGVzcGFjZTwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgor CisgICA8cGFyYT4KKyAgICBUaGUgPHN0cnVjdG5hbWU+cGdfc3RhdF90YWJsZXNwYWNlPC9zdHJ1 Y3RuYW1lPiB2aWV3IHdpbGwgY29udGFpbiBvbmUgcm93CisgICAgZm9yIGVhY2ggdGFibGVzcGFj ZSwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0IEkvTyBvcGVyYXRpb25zLCB0ZW1wb3JhcnkKKyAg ICBmaWxlIHVzYWdlLCBhbmQgdHVwbGUgb3BlcmF0aW9ucyBpbiB0aGF0IHRhYmxlc3BhY2UuCisg ICA8L3BhcmE+CisKKyAgIDx0YWJsZSBpZD0icGctc3RhdC10YWJsZXNwYWNlLXZpZXciIHhyZWZs YWJlbD0icGdfc3RhdF90YWJsZXNwYWNlIj4KKyAgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3Rh dF90YWJsZXNwYWNlPC9zdHJ1Y3RuYW1lPiBWaWV3PC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIERlc2NyaXB0aW9uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5Pgor ICAgICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisKKyAgICAgPHRib2R5PgorICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD50YWJsZXNw YWNlX2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICAgT0lEIG9mIHRoZSB0YWJsZXNwYWNlCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dGFibGVzcGFjZV9u YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAg ICAgICA8cGFyYT4KKyAgICAgICAgIE5hbWUgb2YgdGhlIHRhYmxlc3BhY2UKKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90aW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZG91YmxlIHByZWNpc2lvbjwvdHlwZT4KKyAgICAgICAgPC9w YXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhIGJs b2NrcyBieSBiYWNrZW5kcyBpbiB0aGlzIHRhYmxlc3BhY2UsIGluIG1pbGxpc2Vjb25kcworICAg ICAgICAgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxl ZCwgb3RoZXJ3aXNlIHplcm8pCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAg ICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgICA8c3RydWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5kb3Vi bGUgcHJlY2lzaW9uPC90eXBlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGEgYmxvY2tzIGJ5IGJhY2tlbmRzIGluIHRoaXMg dGFibGVzcGFjZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICAgICAoaWYgPHhyZWYgbGlua2VuZD0i Z3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLCBvdGhlcndpc2UgemVybykKKyAgICAg ICAgPC9wYXJhPgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD5ibG9ja3Nf ZmV0Y2hlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJh PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIE51bWJlciBvZiBkYXRhIGJsb2NrcyByZWFkIGZy b20gZGlzayBpbiB0aGlzIHRhYmxlc3BhY2UKKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvZW50 cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD5ibG9ja3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ YmlnaW50PC90eXBlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAg TnVtYmVyIG9mIGRhdGEgYmxvY2tzIGZvdW5kIGluIHNoYXJlZCBidWZmZXIgY2FjaGUgaW4gdGhp cyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9y b3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8 c3RydWN0ZmllbGQ+dGVtcF9maWxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4K KyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIE51bWJlciBvZiB0ZW1w b3JhcnkgZmlsZXMgY3JlYXRlZCBpbiB0aGlzIHRhYmxlc3BhY2UKKyAgICAgICAgPC9wYXJhPgor ICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD50ZW1wX2J5dGVzPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJh PgorICAgICAgICAgVG90YWwgYW1vdW50IG9mIGRhdGEgd3JpdHRlbiB0byB0ZW1wb3JhcnkgZmls ZXMgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5Pgor ICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgICA8c3RydWN0ZmllbGQ+dHVwX3JldHVybmVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ymln aW50PC90eXBlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTnVt YmVyIG9mIGxpdmUgcm93cyBmZXRjaGVkIGJ5IHNlcXVlbnRpYWwgc2NhbnMgYW5kIGluZGV4IGVu dHJpZXMgcmV0dXJuZWQgYnkgaW5kZXggc2NhbnMgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAg IDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dHVwX2ZldGNo ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICAgIDwvcGFyYT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBOdW1iZXIgb2YgbGl2ZSByb3dzIGZldGNoZWQgYnkgaW5k ZXggc2NhbnMgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dHVwX2luc2VydGVkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+YmlnaW50PC90eXBlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAg ICAgTnVtYmVyIG9mIHJvd3MgaW5zZXJ0ZWQgYnkgcXVlcmllcyBpbiB0aGlzIHRhYmxlc3BhY2UK KyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAg PHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAg IDxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD50 dXBfdXBkYXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9w YXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIE51bWJlciBvZiByb3dzIHVwZGF0ZWQgYnkg cXVlcmllcyBpbiB0aGlzIHRhYmxlc3BhY2UKKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvZW50 cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD50dXBfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBl PmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IE51bWJlciBvZiByb3dzIGRlbGV0ZWQgYnkgcXVlcmllcyBpbiB0aGlzIHRhYmxlc3BhY2UKKyAg ICAgICAgPC9wYXJhPgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKworICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgIDxzdHJ1Y3RmaWVsZD5zdGF0 c19yZXNldDwvc3RydWN0ZmllbGQ+IDx0eXBlPnRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZTwvdHlw ZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRpbWUgYXQgd2hp Y2ggdGhlc2Ugc3RhdGlzdGljcyB3ZXJlIGxhc3QgcmVzZXQKKyAgICAgICAgPC9wYXJhPgorICAg ICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4K KyAgIDwvdGFibGU+CisgIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9Im1vbml0b3Jpbmctc3RhdHMt ZnVuY3Rpb25zIj4KICAgPHRpdGxlPlN0YXRpc3RpY3MgRnVuY3Rpb25zPC90aXRsZT4KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU1NDAxODAwNGRiLi5jNjczZTE1YjIx NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTEyOCw2ICsxMTI4LDI1 IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfcmVwbGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgTEFU RVJBTCBwZ19zdGF0X2dldF9yZXBsaWNhdGlvbl9zbG90KHNsb3RfbmFtZSkgYXMgcwogICAgIFdI RVJFIHIuZGF0b2lkIElTIE5PVCBOVUxMOyAtLSBleGNsdWRpbmcgcGh5c2ljYWwgc2xvdHMKIAor Q1JFQVRFIFZJRVcgcGdfc3RhdF90YWJsZXNwYWNlIEFTCisgICAgU0VMRUNUCisgICAgICAgIFQu b2lkIEFTIHRhYmxlc3BhY2VfaWQsCisgICAgICAgIFQuc3BjbmFtZSBBUyB0YWJsZXNwYWNlX25h bWUsCisgICAgICAgIFMuYmxrX3JlYWRfdGltZSwKKyAgICAgICAgUy5ibGtfd3JpdGVfdGltZSwK KyAgICAgICAgUy5ibGtzX2hpdCwKKyAgICAgICAgUy5ibGtzX2ZldGNoZWQgLSBTLmJsa3NfaGl0 IEFTIGJsa3NfcmVhZCwKKyAgICAgICAgUy50ZW1wX2ZpbGVzLAorICAgICAgICBTLnRlbXBfYnl0 ZXMsCisgICAgICAgIFMudHVwX3JldHVybmVkLAorICAgICAgICBTLnR1cF9mZXRjaGVkLAorICAg ICAgICBTLnR1cF9pbnNlcnRlZCwKKyAgICAgICAgUy50dXBfdXBkYXRlZCwKKyAgICAgICAgUy50 dXBfZGVsZXRlZCwKKyAgICAgICAgUy5zdGF0c19yZXNldAorICAgIEZST00gcGdfdGFibGVzcGFj ZSBUCisgICAgTEVGVCBKT0lOIExBVEVSQUwgcGdfc3RhdF9nZXRfdGFibGVzcGFjZShULm9pZCkg UyBPTiB0cnVlOworCiBDUkVBVEUgVklFVyBwZ19zdGF0X2RhdGFiYXNlIEFTCiAgICAgU0VMRUNU CiAgICAgICAgICAgICBELm9pZCBBUyBkYXRpZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlc3BhY2UuYwpp bmRleCBkOTFmY2YwZmFjZi4uMGQzNTk1N2M5NTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZXNwYWNl LmMKQEAgLTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1 ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKKyNpbmNsdWRlICJw Z3N0YXQuaCIKIAogLyogR1VDIHZhcmlhYmxlcyAqLwogY2hhcgkgICAqZGVmYXVsdF90YWJsZXNw YWNlID0gTlVMTDsKQEAgLTU0Niw2ICs1NDcsOSBAQCBEcm9wVGFibGVTcGFjZShEcm9wVGFibGVT cGFjZVN0bXQgKnN0bXQpCiAJCSh2b2lkKSBYTG9nSW5zZXJ0KFJNX1RCTFNQQ19JRCwgWExPR19U QkxTUENfRFJPUCk7CiAJfQogCisJLyogS2VlcCBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSB1cC10 by1kYXRlICovCisJcGdzdGF0X2Ryb3BfdGFibGVzcGFjZSh0YWJsZXNwYWNlb2lkKTsKKwogCS8q CiAJICogTm90ZTogYmVjYXVzZSB3ZSBjaGVja2VkIHRoYXQgdGhlIHRhYmxlc3BhY2Ugd2FzIGVt cHR5LCB0aGVyZSBzaG91bGQgYmUKIAkgKiBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IGZsdXNoaW5n IHNoYXJlZCBidWZmZXJzIG9yIGZyZWUgc3BhY2UgbWFwCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1 Zm1nci5jCmluZGV4IDVjNjQ1NzAwMjBkLi42NzhiM2JkMWIwMCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9i dWZmZXIvYnVmbWdyLmMKQEAgLTE4MTUsNiArMTgxNSw3IEBAIFdhaXRSZWFkQnVmZmVycyhSZWFk QnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uKQogCQkJCSFwZ2Fpb193cmVmX2NoZWNrX2RvbmUo Jm9wZXJhdGlvbi0+aW9fd3JlZikpCiAJCQl7CiAJCQkJaW5zdHJfdGltZQlpb19zdGFydCA9IHBn c3RhdF9wcmVwYXJlX2lvX3RpbWUodHJhY2tfaW9fdGltaW5nKTsKKwkJCQlpbnN0cl90aW1lCWlv X3RpbWU7CiAKIAkJCQlwZ2Fpb193cmVmX3dhaXQoJm9wZXJhdGlvbi0+aW9fd3JlZik7CiAJCQkJ bmVlZGVkX3dhaXQgPSB0cnVlOwpAQCAtMTgyMyw4ICsxODI0LDE0IEBAIFdhaXRSZWFkQnVmZmVy cyhSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uKQogCQkJCSAqIFRoZSBJTyBvcGVyYXRp b24gaXRzZWxmIHdhcyBhbHJlYWR5IGNvdW50ZWQgZWFybGllciwgaW4KIAkJCQkgKiBBc3luY1Jl YWRCdWZmZXJzKCksIHRoaXMganVzdCBhY2NvdW50cyBmb3IgdGhlIHdhaXQgdGltZS4KIAkJCQkg Ki8KKwkJCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGlvX3RpbWUpOworCQkJCUlOU1RSX1RJTUVf U1VCVFJBQ1QoaW9fdGltZSwgaW9fc3RhcnQpOworCiAJCQkJcGdzdGF0X2NvdW50X2lvX29wX3Rp bWUoaW9fb2JqZWN0LCBpb19jb250ZXh0LCBJT09QX1JFQUQsCiAJCQkJCQkJCQkJaW9fc3RhcnQs IDAsIDApOworCisJCQkJcGdzdGF0X2NvdW50X3RhYmxlc3BhY2VfYnVmZmVyX3JlYWRfdGltZShJ TlNUUl9USU1FX0dFVF9NSUNST1NFQyhpb190aW1lKSwKKwkJCQkJCQkJCQkJCQkJCSBvcGVyYXRp b24tPnNtZ3ItPnNtZ3JfcmxvY2F0b3IubG9jYXRvci5zcGNPaWQpOwogCQkJfQogCQkJZWxzZQog CQkJewpAQCAtMTk0MSw3ICsxOTQ4LDcgQEAgQXN5bmNSZWFkQnVmZmVycyhSZWFkQnVmZmVyc09w ZXJhdGlvbiAqb3BlcmF0aW9uLCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3MpCiAJdm9pZAkgICAqaW9f cGFnZXNbTUFYX0lPX0NPTUJJTkVfTElNSVRdOwogCUlPQ29udGV4dAlpb19jb250ZXh0OwogCUlP T2JqZWN0CWlvX29iamVjdDsKLQlpbnN0cl90aW1lCWlvX3N0YXJ0OworCWluc3RyX3RpbWUJaW9f c3RhcnQsIGlvX3RpbWU7CiAJU3RhcnRCdWZmZXJJT1Jlc3VsdCBzdGF0dXM7CiAKIAlpZiAocGVy c2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKQEAgLTIxNDQsOSArMjE1MSwxNiBAQCBB c3luY1JlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRpb24sIGludCAqbmJs b2Nrc19wcm9ncmVzcykKIAlzbWdyc3RhcnRyZWFkdihpb2gsIG9wZXJhdGlvbi0+c21nciwgZm9y a251bSwKIAkJCQkgICBibG9ja251bSwKIAkJCQkgICBpb19wYWdlcywgaW9fYnVmZmVyc19sZW4p OworCisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChpb190aW1lKTsKKwlJTlNUUl9USU1FX1NVQlRS QUNUKGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwogCXBnc3RhdF9jb3VudF9pb19vcF90aW1lKGlvX29i amVjdCwgaW9fY29udGV4dCwgSU9PUF9SRUFELAogCQkJCQkJCWlvX3N0YXJ0LCAxLCBpb19idWZm ZXJzX2xlbiAqIEJMQ0tTWik7CiAKKwlwZ3N0YXRfY291bnRfdGFibGVzcGFjZV9idWZmZXJfcmVh ZF90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGlvX3RpbWUpLAorCQkJCQkJCQkJCQkJb3Bl cmF0aW9uLT5zbWdyLT5zbWdyX3Jsb2NhdG9yLmxvY2F0b3Iuc3BjT2lkKTsKKwogCWlmIChwZXJz aXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQogCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Js a3NfcmVhZCArPSBpb19idWZmZXJzX2xlbjsKIAllbHNlCkBAIC0yNzk0LDcgKzI4MDgsNyBAQCBF eHRlbmRCdWZmZXJlZFJlbFNoYXJlZChCdWZmZXJNYW5hZ2VyUmVsYXRpb24gYm1yLAogewogCUJs b2NrTnVtYmVyIGZpcnN0X2Jsb2NrOwogCUlPQ29udGV4dAlpb19jb250ZXh0ID0gSU9Db250ZXh0 Rm9yU3RyYXRlZ3koc3RyYXRlZ3kpOwotCWluc3RyX3RpbWUJaW9fc3RhcnQ7CisJaW5zdHJfdGlt ZQlpb19zdGFydCwgaW9fdGltZTsKIAogCUxpbWl0QWRkaXRpb25hbFBpbnMoJmV4dGVuZF9ieSk7 CiAKQEAgLTMwMTgsOSArMzAzMiwxNSBAQCBFeHRlbmRCdWZmZXJlZFJlbFNoYXJlZChCdWZmZXJN YW5hZ2VyUmVsYXRpb24gYm1yLAogCWlmICghKGZsYWdzICYgRUJfU0tJUF9FWFRFTlNJT05fTE9D SykpCiAJCVVubG9ja1JlbGF0aW9uRm9yRXh0ZW5zaW9uKGJtci5yZWwsIEV4Y2x1c2l2ZUxvY2sp OwogCisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChpb190aW1lKTsKKwlJTlNUUl9USU1FX1NVQlRS QUNUKGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwogCXBnc3RhdF9jb3VudF9pb19vcF90aW1lKElPT0JK RUNUX1JFTEFUSU9OLCBpb19jb250ZXh0LCBJT09QX0VYVEVORCwKIAkJCQkJCQlpb19zdGFydCwg MSwgZXh0ZW5kX2J5ICogQkxDS1NaKTsKIAorCXBnc3RhdF9jb3VudF90YWJsZXNwYWNlX2J1ZmZl cl93cml0ZV90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGlvX3RpbWUpLAorCQkJCQkJCQkJ CSAgYm1yLnJlbC0+cmRfbG9jYXRvci5zcGNPaWQpOworCiAJLyogU2V0IEJNX1ZBTElELCB0ZXJt aW5hdGUgSU8sIGFuZCB3YWtlIHVwIGFueSB3YWl0ZXJzICovCiAJZm9yICh1aW50MzIgaSA9IDA7 IGkgPCBleHRlbmRfYnk7IGkrKykKIAl7CkBAIC00NTA1LDcgKzQ1MjUsNyBAQCBGbHVzaEJ1ZmZl cihCdWZmZXJEZXNjICpidWYsIFNNZ3JSZWxhdGlvbiByZWxuLCBJT09iamVjdCBpb19vYmplY3Qs CiB7CiAJWExvZ1JlY1B0cglyZWNwdHI7CiAJRXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJh Y2s7Ci0JaW5zdHJfdGltZQlpb19zdGFydDsKKwlpbnN0cl90aW1lCWlvX3N0YXJ0LCBpb190aW1l OwogCUJsb2NrCQlidWZCbG9jazsKIAogCUFzc2VydChCdWZmZXJMb2NrSGVsZEJ5TWVJbk1vZGUo YnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpIHx8CkBAIC00NTk4LDkgKzQ2MTgsMTYgQEAgRmx1 c2hCdWZmZXIoQnVmZmVyRGVzYyAqYnVmLCBTTWdyUmVsYXRpb24gcmVsbiwgSU9PYmplY3QgaW9f b2JqZWN0LAogCSAqIFdoZW4gYSBzdHJhdGVneSBpcyBub3QgaW4gdXNlLCB0aGUgd3JpdGUgY2Fu IG9ubHkgYmUgYSAicmVndWxhciIgd3JpdGUKIAkgKiBvZiBhIGRpcnR5IHNoYXJlZCBidWZmZXIg KElPQ09OVEVYVF9OT1JNQUwgSU9PUF9XUklURSkuCiAJICovCisKKwlJTlNUUl9USU1FX1NFVF9D VVJSRU5UKGlvX3RpbWUpOworCUlOU1RSX1RJTUVfU1VCVFJBQ1QoaW9fdGltZSwgaW9fc3RhcnQp OworCiAJcGdzdGF0X2NvdW50X2lvX29wX3RpbWUoSU9PQkpFQ1RfUkVMQVRJT04sIGlvX2NvbnRl eHQsCiAJCQkJCQkJSU9PUF9XUklURSwgaW9fc3RhcnQsIDEsIEJMQ0tTWik7CiAKKwlwZ3N0YXRf Y291bnRfdGFibGVzcGFjZV9idWZmZXJfd3JpdGVfdGltZShJTlNUUl9USU1FX0dFVF9NSUNST1NF Qyhpb190aW1lKSwKKwkJCQkJCQkJCQkgIHJlbG4tPnNtZ3JfcmxvY2F0b3IubG9jYXRvci5zcGNP aWQpOworCiAJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrc193cml0dGVuKys7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2ZpbGUvZmQuYwppbmRleCAwMWYxYmQ2ZTY4Ny4uMDNjNDdhYmExN2YgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv ZmlsZS9mZC5jCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBGaWxlQWNjZXNzKEZpbGUgZmlsZSkKIHN0 YXRpYyB2b2lkCiBSZXBvcnRUZW1wb3JhcnlGaWxlVXNhZ2UoY29uc3QgY2hhciAqcGF0aCwgcGdv ZmZfdCBzaXplKQogewotCXBnc3RhdF9yZXBvcnRfdGVtcGZpbGUoc2l6ZSk7CisJcGdzdGF0X3Jl cG9ydF90ZW1wZmlsZShzaXplLCBwYXRoKTsKIAogCWlmIChsb2dfdGVtcF9maWxlcyA+PSAwKQog CXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKaW5kZXggY2EzZWY4OWJmNTkuLjU5YjQ5 YmY2YTgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZQor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZQpAQCAtMzIsNiArMzIsNyBA QCBPQkpTID0gXAogCXBnc3RhdF9zaG1lbS5vIFwKIAlwZ3N0YXRfc2xydS5vIFwKIAlwZ3N0YXRf c3Vic2NyaXB0aW9uLm8gXAorCXBnc3RhdF90YWJsZXNwYWNlLm8gXAogCXBnc3RhdF93YWwubyBc CiAJcGdzdGF0X3hhY3QubyBcCiAJd2FpdF9ldmVudC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvbWVzb24uYnVpbGQKaW5kZXggMWFhN2VjZTUyOTAuLmI0ZTIzY2VmNTU4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9tZXNvbi5idWlsZApAQCAtMTcsNiArMTcsNyBAQCBiYWNrZW5kX3Nv dXJjZXMgKz0gZmlsZXMoCiAgICdwZ3N0YXRfc2htZW0uYycsCiAgICdwZ3N0YXRfc2xydS5jJywK ICAgJ3Bnc3RhdF9zdWJzY3JpcHRpb24uYycsCisgICdwZ3N0YXRfdGFibGVzcGFjZS5jJywKICAg J3Bnc3RhdF93YWwuYycsCiAgICdwZ3N0YXRfeGFjdC5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0LmMKaW5kZXggZWI4Y2NiYWE2MjguLmRlZGIwNGE1NTE2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXQuYwpAQCAtMzAxLDYgKzMwMSwyMiBAQCBzdGF0aWMgY29uc3QgUGdT dGF0X0tpbmRJbmZvIHBnc3RhdF9raW5kX2J1aWx0aW5faW5mb3NbUEdTVEFUX0tJTkRfQlVJTFRJ Tl9TSVpFXQogCQkucmVzZXRfdGltZXN0YW1wX2NiID0gcGdzdGF0X2RhdGFiYXNlX3Jlc2V0X3Rp bWVzdGFtcF9jYiwKIAl9LAogCisJW1BHU1RBVF9LSU5EX1RBQkxFU1BBQ0VdID0geworCQkubmFt ZSA9ICJ0YWJsZXNwYWNlIiwKKworCQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCisJCS53cml0ZV90 b19maWxlID0gdHJ1ZSwKKwkJLmFjY2Vzc2VkX2Fjcm9zc19kYXRhYmFzZXMgPSB0cnVlLAorCisJ CS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQZ1N0YXRTaGFyZWRfVGFibGVzcGFjZSksCisJCS5zaGFy ZWRfZGF0YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfVGFibGVzcGFjZSwgc3RhdHMpLAor CQkuc2hhcmVkX2RhdGFfbGVuID0gc2l6ZW9mKCgoUGdTdGF0U2hhcmVkX1RhYmxlc3BhY2UgKikg MCktPnN0YXRzKSwKKwkJLnBlbmRpbmdfc2l6ZSA9IHNpemVvZihQZ1N0YXRfU3RhdFRhYnNwYWNl RW50cnkpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0X3RhYmxlc3BhY2VfZmx1c2hf Y2IsCisJCS5yZXNldF90aW1lc3RhbXBfY2IgPSBwZ3N0YXRfdGFibGVzcGFjZV9yZXNldF90aW1l c3RhbXBfY2IsCisJfSwKKwogCVtQR1NUQVRfS0lORF9SRUxBVElPTl0gPSB7CiAJCS5uYW1lID0g InJlbGF0aW9uIiwKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X2RhdGFiYXNlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJh c2UuYwppbmRleCA5MzNkY2I1Y2FlNS4uZDc2YWVhMDlkMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC0xNyw5ICsxNywxMSBAQAogCiAjaW5j bHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInN0 b3JhZ2Uvc3RhbmRieS5oIgogI2luY2x1ZGUgInV0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIgogI2lu Y2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFj ZV9kLmgiCiAKIAogc3RhdGljIGJvb2wgcGdzdGF0X3Nob3VsZF9yZXBvcnRfY29ubnN0YXQodm9p ZCk7CkBAIC0yMTQsMjAgKzIxNiw2MSBAQCBwZ3N0YXRfcmVwb3J0X2NoZWNrc3VtX2ZhaWx1cmVz X2luX2RiKE9pZCBkYm9pZCwgaW50IGZhaWx1cmVjb3VudCkKIAlwZ3N0YXRfdW5sb2NrX2VudHJ5 KGVudHJ5X3JlZik7CiB9CiAKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gcGFyc2UgdGFibGVz cGFjZSBvaWQgZnJvbSB0ZW1wb3JhcnkgZmlsZSBwYXRoLgorICovCitzdGF0aWMgT2lkCitnZXRf dGFibGVzcGFjZV9mcm9tX3RlbXBmaWxlX3BhdGgoY29uc3QgY2hhciAqcGF0aCkKK3sKKwkvKgor CSAqIFhYWDogV2UgbWF0Y2ggdGhlIGZpbGUgcGF0aCBhZ2FpbnN0IGtub3duIHRhYmxlc3BhY2Ug cHJlZml4ZXMgdG8gYXZvaWQgcGFzc2luZworCSAqIGRvd24gdGFibGVzcGFjZSBPSURzIHRocm91 Z2ggdGhlIGVudGlyZSB0dXBsZXN0b3JlL2ZkLmMgc3RhY2sgd2hpY2ggd291bGQgYmxvYXQKKwkg KiB0aGUgVmZkIGludGVybmFsIHN0cnVjdHMuCisJICovCisJaWYgKHBhdGggPT0gTlVMTCkKKwkJ cmV0dXJuIEludmFsaWRPaWQ7CisKKwlpZiAoc3RybmNtcChwYXRoLCAicGdfdGJsc3BjLyIsIDEw KSA9PSAwKQorCXsKKwkJcmV0dXJuIGF0b29pZChwYXRoICsgMTApOworCX0KKwllbHNlIGlmIChz dHJuY21wKHBhdGgsICJiYXNlLyIsIDUpID09IDApCisJeworCQlyZXR1cm4gREVGQVVMVFRBQkxF U1BBQ0VfT0lEOworCX0KKwllbHNlIGlmIChzdHJuY21wKHBhdGgsICJnbG9iYWwvIiwgNykgPT0g MCkKKwl7CisJCXJldHVybiBHTE9CQUxUQUJMRVNQQUNFX09JRDsKKwl9CisKKwlyZXR1cm4gSW52 YWxpZE9pZDsKK30KKwogLyoKICAqIFJlcG9ydCBjcmVhdGlvbiBvZiB0ZW1wb3JhcnkgZmlsZS4K ICAqLwogdm9pZAotcGdzdGF0X3JlcG9ydF90ZW1wZmlsZShzaXplX3QgZmlsZXNpemUpCitwZ3N0 YXRfcmVwb3J0X3RlbXBmaWxlKHNpemVfdCBmaWxlc2l6ZSwgY29uc3QgY2hhciAqcGF0aCkKIHsK IAlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50OworCVBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAq dHNlbnQ7CisJT2lkCQkJdGFibGVzcGFjZV9vaWQ7CiAKIAlpZiAoIXBnc3RhdF90cmFja19jb3Vu dHMpCiAJCXJldHVybjsKIAorCXRhYmxlc3BhY2Vfb2lkID0gZ2V0X3RhYmxlc3BhY2VfZnJvbV90 ZW1wZmlsZV9wYXRoKHBhdGgpOworCiAJZGJlbnQgPSBwZ3N0YXRfcHJlcF9kYXRhYmFzZV9wZW5k aW5nKE15RGF0YWJhc2VJZCk7CiAJZGJlbnQtPnRlbXBfYnl0ZXMgKz0gZmlsZXNpemU7CiAJZGJl bnQtPnRlbXBfZmlsZXMrKzsKKworCWlmIChPaWRJc1ZhbGlkKHRhYmxlc3BhY2Vfb2lkKSkKKwl7 CisJCXRzZW50ID0gcGdzdGF0X3ByZXBfdGFibGVzcGFjZV9wZW5kaW5nKHRhYmxlc3BhY2Vfb2lk KTsKKwkJdHNlbnQtPnRlbXBfYnl0ZXMgKz0gZmlsZXNpemU7CisJCXRzZW50LT50ZW1wX2ZpbGVz Kys7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVs YXRpb24uYwppbmRleCBiYzhjNDNiOTZhYS4uZTI0Y2MzNmZkYzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5j bHVkZSAiYWNjZXNzL3R3b3BoYXNlX3JtZ3IuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgog I2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcGdzdGF0X2ludGVybmFs LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCkBAIC0zNywxMiArMzgsMTMgQEAgdHlwZWRlZiBz dHJ1Y3QgVHdvUGhhc2VQZ1N0YXRSZWNvcmQKIAlQZ1N0YXRfQ291bnRlciB1cGRhdGVkX3ByZV90 cnVuY2Ryb3A7CiAJUGdTdGF0X0NvdW50ZXIgZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCU9pZAkJ CWlkOwkJCQkvKiB0YWJsZSdzIE9JRCAqLworCU9pZAkJCXRhYmxlc3BhY2Vfb2lkOwkvKiB0YWJs ZSdzIHRhYmxlc3BhY2UgT0lEICovCiAJYm9vbAkJc2hhcmVkOwkJCS8qIGlzIGl0IGEgc2hhcmVk IGNhdGFsb2c/ICovCiAJYm9vbAkJdHJ1bmNkcm9wcGVkOwkvKiB3YXMgdGhlIHJlbGF0aW9uIHRy dW5jYXRlZC9kcm9wcGVkPyAqLwogfSBUd29QaGFzZVBnU3RhdFJlY29yZDsKIAogCi1zdGF0aWMg UGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKE9pZCByZWxf aWQsIGJvb2wgaXNzaGFyZWQpOworc3RhdGljIFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X3By ZXBfcmVsYXRpb25fcGVuZGluZyhPaWQgcmVsX2lkLCBPaWQgdGFibGVzcGFjZV9vaWQsIGJvb2wg aXNzaGFyZWQpOwogc3RhdGljIHZvaWQgYWRkX3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0YXRfVGFi bGVTdGF0dXMgKnBnc3RhdF9pbmZvLCBpbnQgbmVzdF9sZXZlbCk7CiBzdGF0aWMgdm9pZCBlbnN1 cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8pOwog c3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1 cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7CkBAIC0xMzUsNyArMTM3LDggQEAgcGdzdGF0X2Fzc29j X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIAogCS8qIEVsc2UgZmluZCBvciBtYWtlIHRoZSBQZ1N0 YXRfVGFibGVTdGF0dXMgZW50cnksIGFuZCB1cGRhdGUgbGluayAqLwogCXJlbC0+cGdzdGF0X2lu Zm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwK LQkJCQkJCQkJCQkJCQlyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQpOworCQkJCQkJCQkJCQkJCQkJ CQlyZWwtPnJkX2xvY2F0b3Iuc3BjT2lkLAorCQkJCQkJCQkJCQkJCQkJCQlyZWwtPnJkX3JlbC0+ cmVsaXNzaGFyZWQpOwogCiAJLyogZG9uJ3QgYWxsb3cgbGluayBhIHN0YXRzIHRvIG11bHRpcGxl IHJlbGNhY2hlIGVudHJpZXMgKi8KIAlBc3NlcnQocmVsLT5wZ3N0YXRfaW5mby0+cmVsYXRpb24g PT0gTlVMTCk7CkBAIC03MDcsNiArNzEwLDcgQEAgQXRQcmVwYXJlX1BnU3RhdF9SZWxhdGlvbnMo UGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUpCiAJCXJlY29yZC51cGRhdGVkX3ByZV90 cnVuY2Ryb3AgPSB0cmFucy0+dXBkYXRlZF9wcmVfdHJ1bmNkcm9wOwogCQlyZWNvcmQuZGVsZXRl ZF9wcmVfdHJ1bmNkcm9wID0gdHJhbnMtPmRlbGV0ZWRfcHJlX3RydW5jZHJvcDsKIAkJcmVjb3Jk LmlkID0gdGFic3RhdC0+aWQ7CisJCXJlY29yZC50YWJsZXNwYWNlX29pZCA9IHRhYnN0YXQtPnRh Ymxlc3BhY2Vfb2lkOwogCQlyZWNvcmQuc2hhcmVkID0gdGFic3RhdC0+c2hhcmVkOwogCQlyZWNv cmQudHJ1bmNkcm9wcGVkID0gdHJhbnMtPnRydW5jZHJvcHBlZDsKIApAQCAtNzUwLDcgKzc1NCw3 IEBAIHBnc3RhdF90d29waGFzZV9wb3N0Y29tbWl0KEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQsIHVp bnQxNiBpbmZvLAogCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm87CiAKIAkvKiBGaW5k IG9yIGNyZWF0ZSBhIHRhYnN0YXQgZW50cnkgZm9yIHRoZSByZWwgKi8KLQlwZ3N0YXRfaW5mbyA9 IHBnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcocmVjLT5pZCwgcmVjLT5zaGFyZWQpOworCXBn c3RhdF9pbmZvID0gcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhyZWMtPmlkLCByZWMtPnRh Ymxlc3BhY2Vfb2lkLCByZWMtPnNoYXJlZCk7CiAKIAkvKiBTYW1lIG1hdGggYXMgaW4gQXRFT1hh Y3RfUGdTdGF0LCBjb21taXQgY2FzZSAqLwogCXBnc3RhdF9pbmZvLT5jb3VudHMudHVwbGVzX2lu c2VydGVkICs9IHJlYy0+dHVwbGVzX2luc2VydGVkOwpAQCAtNzg2LDcgKzc5MCw3IEBAIHBnc3Rh dF90d29waGFzZV9wb3N0YWJvcnQoRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCwgdWludDE2IGluZm8s CiAJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbzsKIAogCS8qIEZpbmQgb3IgY3JlYXRl IGEgdGFic3RhdCBlbnRyeSBmb3IgdGhlIHJlbCAqLwotCXBnc3RhdF9pbmZvID0gcGdzdGF0X3By ZXBfcmVsYXRpb25fcGVuZGluZyhyZWMtPmlkLCByZWMtPnNoYXJlZCk7CisJcGdzdGF0X2luZm8g PSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+aWQsIHJlYy0+dGFibGVzcGFjZV9v aWQsIHJlYy0+c2hhcmVkKTsKIAogCS8qIFNhbWUgbWF0aCBhcyBpbiBBdEVPWGFjdF9QZ1N0YXQs IGFib3J0IGNhc2UgKi8KIAlpZiAocmVjLT50cnVuY2Ryb3BwZWQpCkBAIC04OTcsNiArOTAxLDIz IEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwg Ym9vbCBub3dhaXQpCiAJZGJlbnRyeS0+YmxvY2tzX2ZldGNoZWQgKz0gbHN0YXRzLT5jb3VudHMu YmxvY2tzX2ZldGNoZWQ7CiAJZGJlbnRyeS0+YmxvY2tzX2hpdCArPSBsc3RhdHMtPmNvdW50cy5i bG9ja3NfaGl0OwogCisJLyogVGhlIGVudHJ5IHdhcyBzdWNjZXNzZnVsbHkgZmx1c2hlZCwgYWRk IHRoZSBzYW1lIHRvIHRhYmxlc3BhY2Ugc3RhdHMgKi8KKwl7CisJCU9pZCB0c2lkID0gKGxzdGF0 cy0+dGFibGVzcGFjZV9vaWQgPT0gSW52YWxpZE9pZCkgPyBNeURhdGFiYXNlVGFibGVTcGFjZSA6 IGxzdGF0cy0+dGFibGVzcGFjZV9vaWQ7CisKKwkJaWYgKE9pZElzVmFsaWQodHNpZCkpCisJCXsK KwkJCVBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAqdHNlbnRyeSA9IHBnc3RhdF9wcmVwX3RhYmxl c3BhY2VfcGVuZGluZyh0c2lkKTsKKwkJCXRzZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0 cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOworCQkJdHNlbnRyeS0+YmxvY2tzX2hpdCArPSBsc3Rh dHMtPmNvdW50cy5ibG9ja3NfaGl0OworCQkJdHNlbnRyeS0+dHVwbGVzX3JldHVybmVkICs9IGxz dGF0cy0+Y291bnRzLnR1cGxlc19yZXR1cm5lZDsKKwkJCXRzZW50cnktPnR1cGxlc19mZXRjaGVk ICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19mZXRjaGVkOworCQkJdHNlbnRyeS0+dHVwbGVzX2lu c2VydGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19pbnNlcnRlZDsKKwkJCXRzZW50cnktPnR1 cGxlc191cGRhdGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc191cGRhdGVkOworCQkJdHNlbnRy eS0+dHVwbGVzX2RlbGV0ZWQgKz0gbHN0YXRzLT5jb3VudHMudHVwbGVzX2RlbGV0ZWQ7CisJCX0K Kwl9CisKIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIwLDcgKzk0MSw3IEBAIHBnc3RhdF9yZWxh dGlvbl9yZXNldF90aW1lc3RhbXBfY2IoUGdTdGF0U2hhcmVkX0NvbW1vbiAqaGVhZGVyLCBUaW1l c3RhbXBUeiB0cykKICAqIGluaXRpYWxpemVkIGlmIG5vdCBleGlzdHMuCiAgKi8KIHN0YXRpYyBQ Z1N0YXRfVGFibGVTdGF0dXMgKgotcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhPaWQgcmVs X2lkLCBib29sIGlzc2hhcmVkKQorcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhPaWQgcmVs X2lkLCBPaWQgdGFibGVzcGFjZV9vaWQsIGJvb2wgaXNzaGFyZWQpCiB7CiAJUGdTdGF0X0VudHJ5 UmVmICplbnRyeV9yZWY7CiAJUGdTdGF0X1RhYmxlU3RhdHVzICpwZW5kaW5nOwpAQCAtOTMwLDYg Kzk1MSw3IEBAIHBnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBp c3NoYXJlZCkKIAkJCQkJCQkJCQkgIHJlbF9pZCwgTlVMTCk7CiAJcGVuZGluZyA9IGVudHJ5X3Jl Zi0+cGVuZGluZzsKIAlwZW5kaW5nLT5pZCA9IHJlbF9pZDsKKwlwZW5kaW5nLT50YWJsZXNwYWNl X29pZCA9IHRhYmxlc3BhY2Vfb2lkOwogCXBlbmRpbmctPnNoYXJlZCA9IGlzc2hhcmVkOwogCiAJ cmV0dXJuIHBlbmRpbmc7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXRfdGFibGVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Rh Ymxlc3BhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVjMWM3 ZjZlZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfdGFibGVzcGFjZS5jCkBAIC0wLDAgKzEsMTI3IEBACisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogcGdzdGF0X3RhYmxlc3BhY2UuYworICoJICBJbXBsZW1lbnRhdGlvbiBvZiB0YWJsZXNw YWNlIHN0YXRpc3RpY3MuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMjUsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAg c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxlc3BhY2UuYworICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgInV0aWxz L3Bnc3RhdF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorCisKKy8q CisgKiBSZW1vdmUgZW50cnkgZm9yIHRoZSB0YWJsZXNwYWNlIGJlaW5nIGRyb3BwZWQuCisgKi8K K3ZvaWQKK3Bnc3RhdF9kcm9wX3RhYmxlc3BhY2UoT2lkIHRhYmxlc3BhY2VpZCkKK3sKKwlwZ3N0 YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5EX1RBQkxFU1BBQ0UsIEludmFsaWRPaWQs IHRhYmxlc3BhY2VpZCk7Cit9CisKKy8qCisgKiBGZXRjaCB0YWJsZXNwYWNlIHN0YXRpc3RpY3Mu CisgKi8KK1BnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAqCitwZ3N0YXRfZmV0Y2hfc3RhdF90YWJz cGFjZWVudHJ5KE9pZCB0YWJsZXNwYWNlaWQpCit7CisJcmV0dXJuIChQZ1N0YXRfU3RhdFRhYnNw YWNlRW50cnkgKikKKwkJcGdzdGF0X2ZldGNoX2VudHJ5KFBHU1RBVF9LSU5EX1RBQkxFU1BBQ0Us IEludmFsaWRPaWQsIHRhYmxlc3BhY2VpZCk7Cit9CisKKy8qCisgKiBGbHVzaCBvdXQgcGVuZGlu ZyBzdGF0cyBmb3IgdGhlIGVudHJ5LgorICovCitib29sCitwZ3N0YXRfdGFibGVzcGFjZV9mbHVz aF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCit7CisJUGdTdGF0 U2hhcmVkX1RhYmxlc3BhY2UgKnNoYXJlZGVudDsKKwlQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkg KnBlbmRpbmdlbnQ7CisKKwlwZW5kaW5nZW50ID0gKFBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAq KSBlbnRyeV9yZWYtPnBlbmRpbmc7CisJc2hhcmVkZW50ID0gKFBnU3RhdFNoYXJlZF9UYWJsZXNw YWNlICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJaWYgKCFwZ3N0YXRfbG9ja19lbnRy eShlbnRyeV9yZWYsIG5vd2FpdCkpCisJCXJldHVybiBmYWxzZTsKKworI2RlZmluZSBQR1NUQVRf QUNDVU1fVEFCU1BBQ0VDT1VOVChpdGVtKQkJXAorCShzaGFyZWRlbnQpLT5zdGF0cy5pdGVtICs9 IChwZW5kaW5nZW50KS0+aXRlbQorCisJUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQoYmxvY2tz X2ZldGNoZWQpOworCVBHU1RBVF9BQ0NVTV9UQUJTUEFDRUNPVU5UKGJsb2Nrc19oaXQpOworCVBH U1RBVF9BQ0NVTV9UQUJTUEFDRUNPVU5UKGJsa19yZWFkX3RpbWUpOworCVBHU1RBVF9BQ0NVTV9U QUJTUEFDRUNPVU5UKGJsa193cml0ZV90aW1lKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VO VCh0ZW1wX2ZpbGVzKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVCh0ZW1wX2J5dGVzKTsK KwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVCh0dXBsZXNfcmV0dXJuZWQpOworCVBHU1RBVF9B Q0NVTV9UQUJTUEFDRUNPVU5UKHR1cGxlc19mZXRjaGVkKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BB Q0VDT1VOVCh0dXBsZXNfaW5zZXJ0ZWQpOworCVBHU1RBVF9BQ0NVTV9UQUJTUEFDRUNPVU5UKHR1 cGxlc191cGRhdGVkKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVCh0dXBsZXNfZGVsZXRl ZCk7CisKKyN1bmRlZiBQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVAorCisJcGdzdGF0X3VubG9j a19lbnRyeShlbnRyeV9yZWYpOworCisJLyogQ2xlYXIgcGVuZGluZyBzdGF0cyBzaW5jZSB0aGV5 IGhhdmUgYmVlbiBmbHVzaGVkICovCisJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVu ZGluZ2VudCkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBSZXNldCBzdGF0cyByZXNl dCB0aW1lc3RhbXAuCisgKi8KK3ZvaWQKK3Bnc3RhdF90YWJsZXNwYWNlX3Jlc2V0X3RpbWVzdGFt cF9jYihQZ1N0YXRTaGFyZWRfQ29tbW9uICpoZWFkZXIsIFRpbWVzdGFtcFR6IHRzKQoreworCSgo UGdTdGF0U2hhcmVkX1RhYmxlc3BhY2UgKikgaGVhZGVyKS0+c3RhdHMuc3RhdF9yZXNldF90aW1l c3RhbXAgPSB0czsKK30KKworLyoKKyAqIFByZXBhcmUgZm9yIHJlcG9ydGluZyB0YWJsZXNwYWNl IHN0YXRzLgorICovCitQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKgorcGdzdGF0X3ByZXBfdGFi bGVzcGFjZV9wZW5kaW5nKE9pZCB0YWJsZXNwYWNlaWQpCit7CisJUGdTdGF0X0VudHJ5UmVmICpl bnRyeV9yZWY7CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh0YWJsZXNwYWNlaWQpKTsKKworCWVudHJ5 X3JlZiA9IHBnc3RhdF9wcmVwX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfVEFCTEVTUEFDRSwK KwkJCQkJCQkJCQkgIEludmFsaWRPaWQsIHRhYmxlc3BhY2VpZCwgTlVMTCk7CisKKwlyZXR1cm4g KFBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAqKSBlbnRyeV9yZWYtPnBlbmRpbmc7Cit9CisKKy8q CisgKiBDb3VudCB0YWJsZXNwYWNlIGJ1ZmZlciB3cml0ZSB0aW1lLgorICovCit2b2lkCitwZ3N0 YXRfY291bnRfdGFibGVzcGFjZV9idWZmZXJfd3JpdGVfdGltZSh1aW50NjQgZHVyYXRpb24sIE9p ZCB0YWJsZXNwYWNlX29pZCkKK3sKKwlpZiAoT2lkSXNWYWxpZCh0YWJsZXNwYWNlX29pZCkpCisJ eworCQlQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKnRzZW50ID0gcGdzdGF0X3ByZXBfdGFibGVz cGFjZV9wZW5kaW5nKHRhYmxlc3BhY2Vfb2lkKTsKKwkJdHNlbnQtPmJsa193cml0ZV90aW1lICs9 IGR1cmF0aW9uOworCX0KK30KKworLyoKKyAqIENvdW50IHRhYmxlc3BhY2UgYnVmZmVyIHJlYWQg dGltZS4KKyAqLwordm9pZAorcGdzdGF0X2NvdW50X3RhYmxlc3BhY2VfYnVmZmVyX3JlYWRfdGlt ZSh1aW50NjQgZHVyYXRpb24sIE9pZCB0YWJsZXNwYWNlX29pZCkKK3sKKwlpZiAoT2lkSXNWYWxp ZCh0YWJsZXNwYWNlX29pZCkpCisJeworCQlQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKnRzZW50 ID0gcGdzdGF0X3ByZXBfdGFibGVzcGFjZV9wZW5kaW5nKHRhYmxlc3BhY2Vfb2lkKTsKKworCQl0 c2VudC0+YmxrX3JlYWRfdGltZSArPSBkdXJhdGlvbjsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCmluZGV4IDkxODVhOGU2YjgzLi4zZmI5YzY2MmRiOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTE5NjUsNiArMTk2NSw3IEBAIHBnX3N0YXRfcmVzZXRf c2hhcmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVhMb2dQcmVmZXRjaFJlc2V0U3RhdHMoKTsKIAkJ cGdzdGF0X3Jlc2V0X29mX2tpbmQoUEdTVEFUX0tJTkRfU0xSVSk7CiAJCXBnc3RhdF9yZXNldF9v Zl9raW5kKFBHU1RBVF9LSU5EX1dBTCk7CisJCXBnc3RhdF9yZXNldF9vZl9raW5kKFBHU1RBVF9L SU5EX1RBQkxFU1BBQ0UpOwogCiAJCVBHX1JFVFVSTl9WT0lEKCk7CiAJfQpAQCAtMTk4NywxMSAr MTk4OCwxMyBAQCBwZ19zdGF0X3Jlc2V0X3NoYXJlZChQR19GVU5DVElPTl9BUkdTKQogCQlwZ3N0 YXRfcmVzZXRfb2Zfa2luZChQR1NUQVRfS0lORF9TTFJVKTsKIAllbHNlIGlmIChzdHJjbXAodGFy Z2V0LCAid2FsIikgPT0gMCkKIAkJcGdzdGF0X3Jlc2V0X29mX2tpbmQoUEdTVEFUX0tJTkRfV0FM KTsKKwllbHNlIGlmIChzdHJjbXAodGFyZ2V0LCAidGFibGVzcGFjZSIpID09IDApCisJCXBnc3Rh dF9yZXNldF9vZl9raW5kKFBHU1RBVF9LSU5EX1RBQkxFU1BBQ0UpOwogCWVsc2UKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK IAkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgcmVzZXQgdGFyZ2V0OiBcIiVzXCIiLCB0YXJnZXQp LAotCQkJCSBlcnJoaW50KCJUYXJnZXQgbXVzdCBiZSBcImFyY2hpdmVyXCIsIFwiYmd3cml0ZXJc IiwgXCJjaGVja3BvaW50ZXJcIiwgXCJpb1wiLCBcInJlY292ZXJ5X3ByZWZldGNoXCIsIFwic2xy dVwiLCBvciBcIndhbFwiLiIpKSk7CisJCQkJIGVycmhpbnQoIlRhcmdldCBtdXN0IGJlIFwiYXJj aGl2ZXJcIiwgXCJiZ3dyaXRlclwiLCBcImNoZWNrcG9pbnRlclwiLCBcImlvXCIsIFwicmVjb3Zl cnlfcHJlZmV0Y2hcIiwgXCJzbHJ1XCIsIFwid2FsXCIsIG9yIFwidGFibGVzcGFjZVwiLiIpKSk7 CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpAQCAtMjM0OCw2ICsyMzUxLDEwNyBAQCBwZ19zdGF0 X2dldF9zdWJzY3JpcHRpb25fc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fREFU VU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVs bHMpKSk7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRhYmxlc3BhY2Ugc3RhdGlzdGljcyBmb3IgdGhl IGdpdmVuIHRhYmxlc3BhY2UuIElmIHRoZSB0YWJsZXNwYWNlCisgKiBzdGF0aXN0aWNzIGlzIG5v dCBhdmFpbGFibGUsIHJldHVybiBhbGwtemVyb3Mgc3RhdHMuCisgKi8KK0RhdHVtCitwZ19zdGF0 X2dldF90YWJsZXNwYWNlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIFBHX1NUQVRfR0VU X1RBQkxFU1BBQ0VfQ09MUwkxMgorCU9pZAkJCXNwY29pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ VHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCXZhbHVlc1tQR19TVEFUX0dFVF9UQUJMRVNQQUNF X0NPTFNdID0gezB9OworCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX1RBQkxFU1BBQ0VfQ09MU10g PSB7MH07CisJUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICp0c2VudHJ5OworCVBnU3RhdF9TdGF0 VGFic3BhY2VFbnRyeSBhbGx6ZXJvOworCWludAkJCWkgPSAwOworCisJLyogR2V0IHRhYmxlc3Bh Y2Ugc3RhdHMgKi8KKwl0c2VudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFic3BhY2VlbnRyeShz cGNvaWQpOworCisJLyogSW5pdGlhbGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0 dXBsZSBkZXNjcmlwdG9yICovCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBH X1NUQVRfR0VUX1RBQkxFU1BBQ0VfQ09MUyk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSAxLCAiYmxrX3JlYWRfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgImJsa193 cml0ZV90aW1lIiwKKwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAzLCAiYmxrc19mZXRjaGVkIiwKKwkJCQkJICAgSU5U OE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg NCwgImJsa3NfaGl0IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNSwgInRlbXBfZmlsZXMiLAorCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA2 LCAidGVtcF9ieXRlcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDcsICJ0dXBfcmV0dXJuZWQiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSA4LCAidHVwX2ZldGNoZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA5LCAidHVwX2luc2VydGVkIiwKKwkJCQkJ ICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51 bWJlcikgMTAsICJ0dXBfdXBkYXRlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDExLCAidHVwX2RlbGV0ZWQiLAor CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSAxMiwgInN0YXRzX3Jlc2V0IiwKKwkJCQkJICAgVElNRVNUQU1QVFpPSUQsIC0x LCAwKTsKKworCVR1cGxlRGVzY0ZpbmFsaXplKHR1cGRlc2MpOworCXR1cGRlc2MgPSBCbGVzc1R1 cGxlRGVzYyh0dXBkZXNjKTsKKworCWlmICghdHNlbnRyeSkKKwl7CisJCS8qIElmIHRoZSB0YWJs ZXNwYWNlIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVtc2V0KCZh bGx6ZXJvLCAwLCBzaXplb2YoUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5KSk7CisJCXRzZW50cnkg PSAmYWxsemVybzsKKwl9CisKKwkvKiBibGtfcmVhZF90aW1lICovCisJdmFsdWVzW2krK10gPSBG bG9hdDhHZXREYXR1bShwZ19zdGF0X3VzX3RvX21zKHRzZW50cnktPmJsa19yZWFkX3RpbWUpKTsK KworCS8qIGJsa193cml0ZV90aW1lICovCisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShw Z19zdGF0X3VzX3RvX21zKHRzZW50cnktPmJsa193cml0ZV90aW1lKSk7CisKKwkvKiBibG9ja3Nf ZmV0Y2hlZCAqLworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0c2VudHJ5LT5ibG9ja3Nf ZmV0Y2hlZCk7CisKKwkvKiBibG9ja3NfaGl0ICovCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKHRzZW50cnktPmJsb2Nrc19oaXQpOworCisJLyogdGVtcF9maWxlcyAqLworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bSh0c2VudHJ5LT50ZW1wX2ZpbGVzKTsKKworCS8qIHRlbXBfYnl0 ZXMgKi8KKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odHNlbnRyeS0+dGVtcF9ieXRlcyk7 CisKKwkvKiB0dXBfcmV0dXJuZWQgKi8KKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odHNl bnRyeS0+dHVwbGVzX3JldHVybmVkKTsKKworCS8qIHR1cF9mZXRjaGVkICovCisJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKHRzZW50cnktPnR1cGxlc19mZXRjaGVkKTsKKworCS8qIHR1cF9p bnNlcnRlZCAqLworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0c2VudHJ5LT50dXBsZXNf aW5zZXJ0ZWQpOworCisJLyogdHVwX3VwZGF0ZWQgKi8KKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0odHNlbnRyeS0+dHVwbGVzX3VwZGF0ZWQpOworCisJLyogdHVwX2RlbGV0ZWQgKi8KKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odHNlbnRyeS0+dHVwbGVzX2RlbGV0ZWQpOworCisJ Lyogc3RhdHNfcmVzZXQgKi8KKwlpZiAodHNlbnRyeS0+c3RhdF9yZXNldF90aW1lc3RhbXAgPT0g MCkKKwkJbnVsbHNbaV0gPSB0cnVlOworCWVsc2UKKwkJdmFsdWVzW2ldID0gVGltZXN0YW1wVHpH ZXREYXR1bSh0c2VudHJ5LT5zdGF0X3Jlc2V0X3RpbWVzdGFtcCk7CisKKwlBc3NlcnQoaSArIDEg PT0gUEdfU1RBVF9HRVRfVEFCTEVTUEFDRV9DT0xTKTsKKworCS8qIFJldHVybnMgdGhlIHJlY29y ZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zv cm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30KKwogLyoKICAqIENoZWNrcyBm b3IgcHJlc2VuY2Ugb2Ygc3RhdHMgZm9yIG9iamVjdCB3aXRoIHByb3ZpZGVkIGtpbmQsIGRhdGFi YXNlIG9pZCwKICAqIG9iamVjdCBvaWQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzNTc5 Y2VjNTc0NC4uZDc0MWM0ZjExNWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjA5Niw2 ICs2MDk2LDE0IEBACiAgIHByb2FyZ25hbWVzID0+ICd7bmFtZSxibGtzX3plcm9lZCxibGtzX2hp dCxibGtzX3JlYWQsYmxrc193cml0dGVuLGJsa3NfZXhpc3RzLGZsdXNoZXMsdHJ1bmNhdGVzLHN0 YXRzX3Jlc2V0fScsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfc2xydScgfSwKIAoreyBvaWQg PT4gJzg0NTknLCBkZXNjciA9PiAnc3RhdGlzdGljczogdGFibGVzcGFjZSBzdGF0aXN0aWNzJywK KyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdGFibGVzcGFjZScsIHByb3ZvbGF0aWxlID0+ICdz JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsZmxvYXQ4LGZsb2F0OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCx0aW1lc3RhbXB0en0n LAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJv YXJnbmFtZXMgPT4gJ3t0YWJsZXNwYWNlaWQsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGltZSxi bGtzX2ZldGNoZWQsYmxrc19oaXQsdGVtcF9maWxlcyx0ZW1wX2J5dGVzLHR1cF9yZXR1cm5lZCx0 dXBfZmV0Y2hlZCx0dXBfaW5zZXJ0ZWQsdHVwX3VwZGF0ZWQsdHVwX2RlbGV0ZWQsc3RhdHNfcmVz ZXR9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF90YWJsZXNwYWNlJyB9LAorCiB7IG9pZCA9 PiAnMjk3OCcsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgZnVuY3Rpb24gY2FsbHMn LAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9mdW5jdGlvbl9jYWxscycsIHByb3ZvbGF0aWxl ID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3Ny Yy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IDhlMzU0OWMzNzUyLi44NWU0ODBlYWE4MSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAg LTE4MSw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVTdGF0dXMKIHsKIAlP aWQJCQlpZDsJCQkJLyogdGFibGUncyBPSUQgKi8KIAlib29sCQlzaGFyZWQ7CQkJLyogaXMgaXQg YSBzaGFyZWQgY2F0YWxvZz8gKi8KKwlPaWQJCQl0YWJsZXNwYWNlX29pZDsgLyogdGFibGVzcGFj ZSBPSUQgKi8KIAlzdHJ1Y3QgUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnM7CS8qIGxvd2Vz dCBzdWJ4YWN0J3MgY291bnRzICovCiAJUGdTdGF0X1RhYmxlQ291bnRzIGNvdW50czsJLyogZXZl bnQgY291bnRzIHRvIGJlIHNlbnQgKi8KIAlSZWxhdGlvbglyZWxhdGlvbjsJCS8qIHJlbCB0aGF0 IGlzIHVzaW5nIHRoaXMgZW50cnkgKi8KQEAgLTQwMiw2ICs0MDMsMjMgQEAgdHlwZWRlZiBzdHJ1 Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJVGltZXN0YW1wVHogc3RhdF9yZXNldF90aW1lc3RhbXA7 CiB9IFBnU3RhdF9TdGF0REJFbnRyeTsKIAordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRUYWJz cGFjZUVudHJ5Cit7CisJUGdTdGF0X0NvdW50ZXIgYmxrX3JlYWRfdGltZTsJLyogdGltZXMgaW4g bWljcm9zZWNvbmRzICovCisJUGdTdGF0X0NvdW50ZXIgYmxrX3dyaXRlX3RpbWU7CisJUGdTdGF0 X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKKwlQ Z1N0YXRfQ291bnRlciB0ZW1wX2ZpbGVzOworCVBnU3RhdF9Db3VudGVyIHRlbXBfYnl0ZXM7CisJ UGdTdGF0X0NvdW50ZXIgdHVwbGVzX3JldHVybmVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19m ZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19pbnNlcnRlZDsKKwlQZ1N0YXRfQ291bnRl ciB0dXBsZXNfdXBkYXRlZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZGVsZXRlZDsKKworCVRp bWVzdGFtcFR6IHN0YXRfcmVzZXRfdGltZXN0YW1wOworfSBQZ1N0YXRfU3RhdFRhYnNwYWNlRW50 cnk7CisKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CiB7CiAJUGdTdGF0X0Nv dW50ZXIgbnVtY2FsbHM7CkBAIC03NzEsNiArNzg5LDE3IEBAIGV4dGVybiBQZ1N0YXRfU3RhdFRh YkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeV9leHQoYm9vbCBzaGFyZWQsCiBleHRl cm4gUGdTdGF0X1RhYmxlU3RhdHVzICpmaW5kX3RhYnN0YXRfZW50cnkoT2lkIHJlbF9pZCk7CiAK IAorLyoKKyAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfdGFibGVzcGFjZS5jCisgKi8KKworZXh0ZXJu IHZvaWQgcGdzdGF0X2Ryb3BfdGFibGVzcGFjZShPaWQgdGFibGVzcGFjZWlkKTsKK2V4dGVybiBQ Z1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKnBnc3RhdF9mZXRjaF9zdGF0X3RhYnNwYWNlZW50cnko T2lkIHRhYmxlc3BhY2VpZCk7CitleHRlcm4gUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICpwZ3N0 YXRfcHJlcF90YWJsZXNwYWNlX3BlbmRpbmcoT2lkIHRhYmxlc3BhY2VpZCk7CitleHRlcm4gdm9p ZCBwZ3N0YXRfY291bnRfdGFibGVzcGFjZV9idWZmZXJfd3JpdGVfdGltZSh1aW50NjQgZHVyYXRp b24sIE9pZCB0YWJsZXNwYWNlX29pZCk7CitleHRlcm4gdm9pZCBwZ3N0YXRfY291bnRfdGFibGVz cGFjZV9idWZmZXJfcmVhZF90aW1lKHVpbnQ2NCBkdXJhdGlvbiwgT2lkIHRhYmxlc3BhY2Vfb2lk KTsKKworCiAvKgogICogRnVuY3Rpb25zIGluIHBnc3RhdF9yZXBsc2xvdC5jCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmggYi9zcmMvaW5jbHVkZS91 dGlscy9iYWNrZW5kX3N0YXR1cy5oCmluZGV4IGRkZDA2MzA0ZTk3Li5hMmM1MDFlZGYwMCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCkBAIC0zMjMsNyArMzIzLDcgQEAgZXh0ZXJuIHZv aWQgcGdzdGF0X2NsZWFyX2JhY2tlbmRfYWN0aXZpdHlfc25hcHNob3Qodm9pZCk7CiBleHRlcm4g dm9pZCBwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KEJhY2tlbmRTdGF0ZSBzdGF0ZSwgY29uc3QgY2hh ciAqY21kX3N0cik7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3F1ZXJ5X2lkKGludDY0IHF1 ZXJ5X2lkLCBib29sIGZvcmNlKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfcGxhbl9pZChp bnQ2NCBwbGFuX2lkLCBib29sIGZvcmNlKTsKLWV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdGVt cGZpbGUoc2l6ZV90IGZpbGVzaXplKTsKK2V4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdGVtcGZp bGUoc2l6ZV90IGZpbGVzaXplLCBjb25zdCBjaGFyICpwYXRoKTsKIGV4dGVybiB2b2lkIHBnc3Rh dF9yZXBvcnRfYXBwbmFtZShjb25zdCBjaGFyICphcHBuYW1lKTsKIGV4dGVybiB2b2lkIHBnc3Rh dF9yZXBvcnRfeGFjdF90aW1lc3RhbXAoVGltZXN0YW1wVHogdHN0YW1wKTsKIGV4dGVybiBjb25z dCBjaGFyICpwZ3N0YXRfZ2V0X2JhY2tlbmRfY3VycmVudF9hY3Rpdml0eShpbnQgcGlkLCBib29s IGNoZWNrVXNlcik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJu YWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCmluZGV4IGVlZDRjNmIz NTljLi40YzM2NDIwMzM0YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2lu dGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKQEAgLTUw NCw2ICs1MDQsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVkX0RhdGFiYXNlCiAJUGdT dGF0X1N0YXREQkVudHJ5IHN0YXRzOwogfSBQZ1N0YXRTaGFyZWRfRGF0YWJhc2U7CiAKK3R5cGVk ZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9UYWJsZXNwYWNlCit7CisJUGdTdGF0U2hhcmVkX0NvbW1v biBoZWFkZXI7CisJUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5IHN0YXRzOworfSBQZ1N0YXRTaGFy ZWRfVGFibGVzcGFjZTsKKwogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVkX1JlbGF0aW9uCiB7 CiAJUGdTdGF0U2hhcmVkX0NvbW1vbiBoZWFkZXI7CkBAIC03NDQsNiArNzUwLDggQEAgZXh0ZXJu IFBnU3RhdF9TdGF0REJFbnRyeSAqcGdzdGF0X3ByZXBfZGF0YWJhc2VfcGVuZGluZyhPaWQgZGJv aWQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3Jlc2V0X2RhdGFiYXNlX3RpbWVzdGFtcChPaWQgZGJv aWQsIFRpbWVzdGFtcFR6IHRzKTsKIGV4dGVybiBib29sIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9j YihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOwogZXh0ZXJuIHZvaWQg cGdzdGF0X2RhdGFiYXNlX3Jlc2V0X3RpbWVzdGFtcF9jYihQZ1N0YXRTaGFyZWRfQ29tbW9uICpo ZWFkZXIsIFRpbWVzdGFtcFR6IHRzKTsKK2V4dGVybiBib29sIHBnc3RhdF90YWJsZXNwYWNlX2Zs dXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCk7CitleHRlcm4g dm9pZCBwZ3N0YXRfdGFibGVzcGFjZV9yZXNldF90aW1lc3RhbXBfY2IoUGdTdGF0U2hhcmVkX0Nv bW1vbiAqaGVhZGVyLCBUaW1lc3RhbXBUeiB0cyk7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfa2lu ZC5oCmluZGV4IDJkNzhhMDI5NjgzLi4yZDI4ZWZhOTJkNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfa2lu ZC5oCkBAIC0zOSw5ICszOSwxMCBAQAogI2RlZmluZSBQR1NUQVRfS0lORF9MT0NLCTExCiAjZGVm aW5lIFBHU1RBVF9LSU5EX1NMUlUJMTIKICNkZWZpbmUgUEdTVEFUX0tJTkRfV0FMCTEzCisjZGVm aW5lIFBHU1RBVF9LSU5EX1RBQkxFU1BBQ0UJMTQKIAogI2RlZmluZSBQR1NUQVRfS0lORF9CVUlM VElOX01JTiBQR1NUQVRfS0lORF9EQVRBQkFTRQotI2RlZmluZSBQR1NUQVRfS0lORF9CVUlMVElO X01BWCBQR1NUQVRfS0lORF9XQUwKKyNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9NQVggUEdT VEFUX0tJTkRfVEFCTEVTUEFDRQogI2RlZmluZSBQR1NUQVRfS0lORF9CVUlMVElOX1NJWkUgKFBH U1RBVF9LSU5EX0JVSUxUSU5fTUFYICsgMSkKIAogLyogQ3VzdG9tIHN0YXRzIGtpbmRzICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDJiM2NmNmQ4NTY5Li40ZTRlYWMzNGE2 MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIzMDcsNiArMjMwNywyMiBA QCBwZ19zdGF0X3N5c190YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICBzdGF0c19yZXNldAogICAg RlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lID0gQU5ZIChBUlJB WVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9SIChz Y2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0YXRfdGFibGVzcGFjZXwgU0VM RUNUIHQub2lkIEFTIHRhYmxlc3BhY2VfaWQsCisgICAgdC5zcGNuYW1lIEFTIHRhYmxlc3BhY2Vf bmFtZSwKKyAgICBzLmJsa19yZWFkX3RpbWUsCisgICAgcy5ibGtfd3JpdGVfdGltZSwKKyAgICBz LmJsa3NfaGl0LAorICAgIChzLmJsa3NfZmV0Y2hlZCAtIHMuYmxrc19oaXQpIEFTIGJsa3NfcmVh ZCwKKyAgICBzLnRlbXBfZmlsZXMsCisgICAgcy50ZW1wX2J5dGVzLAorICAgIHMudHVwX3JldHVy bmVkLAorICAgIHMudHVwX2ZldGNoZWQsCisgICAgcy50dXBfaW5zZXJ0ZWQsCisgICAgcy50dXBf dXBkYXRlZCwKKyAgICBzLnR1cF9kZWxldGVkLAorICAgIHMuc3RhdHNfcmVzZXQKKyAgIEZST00g KHBnX3RhYmxlc3BhY2UgdAorICAgICBMRUZUIEpPSU4gTEFURVJBTCBwZ19zdGF0X2dldF90YWJs ZXNwYWNlKHQub2lkKSBzKGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLCBibGtzX2ZldGNo ZWQsIGJsa3NfaGl0LCB0ZW1wX2ZpbGVzLCB0ZW1wX2J5dGVzLCB0dXBfcmV0dXJuZWQsIHR1cF9m ZXRjaGVkLCB0dXBfaW5zZXJ0ZWQsIHR1cF91cGRhdGVkLCB0dXBfZGVsZXRlZCwgc3RhdHNfcmVz ZXQpIE9OICh0cnVlKSk7CiBwZ19zdGF0X3VzZXJfZnVuY3Rpb25zfCBTRUxFQ1QgcC5vaWQgQVMg ZnVuY2lkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIHAucHJvbmFtZSBBUyBm dW5jbmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKaW5kZXggZWE3Zjc4NDY4OTUu LmJhYjNkNDY1NTk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzLm91dApAQCAtMTEzMCw3 ICsxMTMwLDcgQEAgU0VMRUNUIHN0YXRzX3Jlc2V0ID4gOid3YWxfcmVzZXRfdHMnOjp0aW1lc3Rh bXB0eiBGUk9NIHBnX3N0YXRfd2FsOwogLS0gVGVzdCBlcnJvciBjYXNlIGZvciByZXNldF9zaGFy ZWQgd2l0aCB1bmtub3duIHN0YXRzIHR5cGUKIFNFTEVDVCBwZ19zdGF0X3Jlc2V0X3NoYXJlZCgn dW5rbm93bicpOwogRVJST1I6ICB1bnJlY29nbml6ZWQgcmVzZXQgdGFyZ2V0OiAidW5rbm93biIK LUhJTlQ6ICBUYXJnZXQgbXVzdCBiZSAiYXJjaGl2ZXIiLCAiYmd3cml0ZXIiLCAiY2hlY2twb2lu dGVyIiwgImlvIiwgInJlY292ZXJ5X3ByZWZldGNoIiwgInNscnUiLCBvciAid2FsIi4KK0hJTlQ6 ICBUYXJnZXQgbXVzdCBiZSAiYXJjaGl2ZXIiLCAiYmd3cml0ZXIiLCAiY2hlY2twb2ludGVyIiwg ImlvIiwgInJlY292ZXJ5X3ByZWZldGNoIiwgInNscnUiLCAid2FsIiwgb3IgInRhYmxlc3BhY2Ui LgogLS0gVGVzdCB0aGF0IHJlc2V0IHdvcmtzIGZvciBwZ19zdGF0X2RhdGFiYXNlIGFuZCBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0cwogLS0gU2luY2UgcGdfc3RhdF9kYXRhYmFzZSBzdGF0c19y ZXNldCBzdGFydHMgb3V0IGFzIE5VTEwsIHJlc2V0IGl0IG9uY2UgZmlyc3Qgc28gdGhhdCB3ZQog LS0gaGF2ZSBhIGJhc2VsaW5lIGZvciBjb21wYXJpc29uLiBUaGUgc2FtZSBmb3IgcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHMgYXMgaXQgc2hhcmVzCkBAIC0yMDA2LDQgKzIwMDYsODcgQEAgU0VM RUNUIGZhc3RwYXRoX2V4Y2VlZGVkID4gOmZhc3RwYXRoX2V4Y2VlZGVkX2JlZm9yZSBGUk9NIHBn X3N0YXRfbG9jayBXSEVSRSBsb2MKICgxIHJvdykKIAogRFJPUCBUQUJMRSBwYXJ0X3Rlc3Q7Cist LSBUZXN0IHBnX3N0YXRfdGFibGVzcGFjZQorU0VMRUNUIGNvdW50KCopID4gMCBGUk9NIHBnX3N0 YXRfdGFibGVzcGFjZTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NF TEVDVCB0YWJsZXNwYWNlX25hbWUgRlJPTSBwZ19zdGF0X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVz cGFjZV9uYW1lIElOICgncGdfZGVmYXVsdCcsICdwZ19nbG9iYWwnKSBPUkRFUiBCWSB0YWJsZXNw YWNlX25hbWU7CisgdGFibGVzcGFjZV9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0KKyBwZ19kZWZh dWx0CisgcGdfZ2xvYmFsCisoMiByb3dzKQorCistLSBUZXN0IGJsb2NrIGFuZCB0dXBsZSBzdGF0 cyBpbiBwZ19zdGF0X3RhYmxlc3BhY2UKK1NFVCB0cmFja19pb190aW1pbmcgPSBvbjsKK0NSRUFU RSBUQUJMRSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMgKGEgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3Rf dGFibGVzcGFjZV9zdGF0cyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCk7CitTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHM7CisgY291bnQgCistLS0tLS0tCisg ICAxMDAKKygxIHJvdykKKworVVBEQVRFIHRlc3RfdGFibGVzcGFjZV9zdGF0cyBTRVQgYSA9IGEg KyAxIFdIRVJFIGEgPiA1MDsKK0RFTEVURSBGUk9NIHRlc3RfdGFibGVzcGFjZV9zdGF0cyBXSEVS RSBhID4gOTA7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIGJsa3NfcmVhZCA+IDAgQVMgaGFzX2Jsa3NfcmVhZCwgYmxrc19oaXQgPiAwIEFT IGhhc19ibGtzX2hpdCwgYmxrX3JlYWRfdGltZSA+IDAgQVMgaGFzX2Jsa19yZWFkX3RpbWUsIGJs a193cml0ZV90aW1lID4gMCBBUyBoYXNfYmxrX3dyaXRlX3RpbWUsIHR1cF9pbnNlcnRlZCA+IDAg QVMgaGFzX3R1cF9pbnNlcnRlZCwgdHVwX3VwZGF0ZWQgPiAwIEFTIGhhc190dXBfdXBkYXRlZCwg dHVwX2RlbGV0ZWQgPiAwIEFTIGhhc190dXBfZGVsZXRlZCwgdHVwX3JldHVybmVkID4gMCBBUyBo YXNfdHVwX3JldHVybmVkIEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2Vf bmFtZSA9ICdwZ19kZWZhdWx0JzsKKyBoYXNfYmxrc19yZWFkIHwgaGFzX2Jsa3NfaGl0IHwgaGFz X2Jsa19yZWFkX3RpbWUgfCBoYXNfYmxrX3dyaXRlX3RpbWUgfCBoYXNfdHVwX2luc2VydGVkIHwg aGFzX3R1cF91cGRhdGVkIHwgaGFzX3R1cF9kZWxldGVkIHwgaGFzX3R1cF9yZXR1cm5lZCAKKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyB0ICAgICAgICAgICAgIHwgdCAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAg ICAgICAgIHwgdCAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgIHwgdAorKDEgcm93KQor CitEUk9QIFRBQkxFIHRlc3RfdGFibGVzcGFjZV9zdGF0czsKKy0tIFRlc3QgdGVtcCBmaWxlIHN0 YXRzIGluIHBnX3N0YXRfdGFibGVzcGFjZQorLS0gVXNlIGEgc29ydCB0aGF0IGV4Y2VlZHMgd29y a19tZW0gdG8gZm9yY2UgdGVtcCBmaWxlIHVzYWdlCitTRVQgd29ya19tZW0gPSAnNjRrQic7CitT RUxFQ1QgY291bnQoKikgRlJPTSAoU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAw MDApIEFTIHMgT1JERVIgQlkgcyBERVNDKSBBUyBmb287CisgY291bnQgCistLS0tLS0tCisgMTAw MDAKKygxIHJvdykKKworUkVTRVQgd29ya19tZW07CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0 X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0gV2UgZXhwZWN0IHRlbXAgZmlsZXMgdG8gYmUgaW4g cGdfZGVmYXVsdCBpZiBub3Qgc3BlY2lmaWVkIG90aGVyd2lzZQorU0VMRUNUIHRlbXBfZmlsZXMg PiAwIEFTIGhhc190ZW1wX2ZpbGVzLCB0ZW1wX2J5dGVzID4gMCBBUyBoYXNfdGVtcF9ieXRlcyBG Uk9NIHBnX3N0YXRfdGFibGVzcGFjZSBXSEVSRSB0YWJsZXNwYWNlX25hbWUgPSAncGdfZGVmYXVs dCc7CisgaGFzX3RlbXBfZmlsZXMgfCBoYXNfdGVtcF9ieXRlcyAKKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLQorIHQgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSBUZXN0 IHJlc2V0IGZvciBwZ19zdGF0X3RhYmxlc3BhY2UKKy0tIEVuc3VyZSB3ZSBoYXZlIGEgdGltZXN0 YW1wIHRvIGNvbXBhcmUKK1NFTEVDVCBwZ19zdGF0X3Jlc2V0X3NoYXJlZCgndGFibGVzcGFjZScp OworIHBnX3N0YXRfcmVzZXRfc2hhcmVkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1Qgc3RhdHNfcmVzZXQgQVMgdHNfcmVzZXRfYmVmb3JlIEZST00gcGdfc3Rh dF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2VfbmFtZSA9ICdwZ19kZWZhdWx0JyBcZ3NldAor U0VMRUNUIHBnX3N0YXRfcmVzZXRfc2hhcmVkKCd0YWJsZXNwYWNlJyk7CisgcGdfc3RhdF9yZXNl dF9zaGFyZWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBz dGF0c19yZXNldCA+IDondHNfcmVzZXRfYmVmb3JlJzo6dGltZXN0YW1wdHogRlJPTSBwZ19zdGF0 X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVzcGFjZV9uYW1lID0gJ3BnX2RlZmF1bHQnOworID9jb2x1 bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwogLS0gRW5kIG9mIFN0YXRzIFRlc3QKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N0YXRzLnNxbAppbmRleCA2NWQ4OTY4YzgzZS4uYWQ0YzhhNjUzNDcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdGF0cy5zcWwKQEAgLTEwMDAsNCArMTAwMCw0MiBAQCBTRUxFQ1QgZmFzdHBhdGhfZXhj ZWVkZWQgPiA6ZmFzdHBhdGhfZXhjZWVkZWRfYmVmb3JlIEZST00gcGdfc3RhdF9sb2NrIFdIRVJF IGxvYwogCiBEUk9QIFRBQkxFIHBhcnRfdGVzdDsKIAorLS0gVGVzdCBwZ19zdGF0X3RhYmxlc3Bh Y2UKK1NFTEVDVCBjb3VudCgqKSA+IDAgRlJPTSBwZ19zdGF0X3RhYmxlc3BhY2U7CisKK1NFTEVD VCB0YWJsZXNwYWNlX25hbWUgRlJPTSBwZ19zdGF0X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVzcGFj ZV9uYW1lIElOICgncGdfZGVmYXVsdCcsICdwZ19nbG9iYWwnKSBPUkRFUiBCWSB0YWJsZXNwYWNl X25hbWU7CisKKy0tIFRlc3QgYmxvY2sgYW5kIHR1cGxlIHN0YXRzIGluIHBnX3N0YXRfdGFibGVz cGFjZQorU0VUIHRyYWNrX2lvX3RpbWluZyA9IG9uOworQ1JFQVRFIFRBQkxFIHRlc3RfdGFibGVz cGFjZV9zdGF0cyAoYSBpbnQpOworSU5TRVJUIElOVE8gdGVzdF90YWJsZXNwYWNlX3N0YXRzIFNF TEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlc3Rf dGFibGVzcGFjZV9zdGF0czsKK1VQREFURSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMgU0VUIGEgPSBh ICsgMSBXSEVSRSBhID4gNTA7CitERUxFVEUgRlJPTSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMgV0hF UkUgYSA+IDkwOworCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisKK1NFTEVD VCBibGtzX3JlYWQgPiAwIEFTIGhhc19ibGtzX3JlYWQsIGJsa3NfaGl0ID4gMCBBUyBoYXNfYmxr c19oaXQsIGJsa19yZWFkX3RpbWUgPiAwIEFTIGhhc19ibGtfcmVhZF90aW1lLCBibGtfd3JpdGVf dGltZSA+IDAgQVMgaGFzX2Jsa193cml0ZV90aW1lLCB0dXBfaW5zZXJ0ZWQgPiAwIEFTIGhhc190 dXBfaW5zZXJ0ZWQsIHR1cF91cGRhdGVkID4gMCBBUyBoYXNfdHVwX3VwZGF0ZWQsIHR1cF9kZWxl dGVkID4gMCBBUyBoYXNfdHVwX2RlbGV0ZWQsIHR1cF9yZXR1cm5lZCA+IDAgQVMgaGFzX3R1cF9y ZXR1cm5lZCBGUk9NIHBnX3N0YXRfdGFibGVzcGFjZSBXSEVSRSB0YWJsZXNwYWNlX25hbWUgPSAn cGdfZGVmYXVsdCc7CisKK0RST1AgVEFCTEUgdGVzdF90YWJsZXNwYWNlX3N0YXRzOworLS0gVGVz dCB0ZW1wIGZpbGUgc3RhdHMgaW4gcGdfc3RhdF90YWJsZXNwYWNlCistLSBVc2UgYSBzb3J0IHRo YXQgZXhjZWVkcyB3b3JrX21lbSB0byBmb3JjZSB0ZW1wIGZpbGUgdXNhZ2UKK1NFVCB3b3JrX21l bSA9ICc2NGtCJzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIChTRUxFQ1QgKiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDAwMCkgQVMgcyBPUkRFUiBCWSBzIERFU0MpIEFTIGZvbzsKKworUkVTRVQg d29ya19tZW07CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisKKy0tIFdlIGV4 cGVjdCB0ZW1wIGZpbGVzIHRvIGJlIGluIHBnX2RlZmF1bHQgaWYgbm90IHNwZWNpZmllZCBvdGhl cndpc2UKK1NFTEVDVCB0ZW1wX2ZpbGVzID4gMCBBUyBoYXNfdGVtcF9maWxlcywgdGVtcF9ieXRl cyA+IDAgQVMgaGFzX3RlbXBfYnl0ZXMgRlJPTSBwZ19zdGF0X3RhYmxlc3BhY2UgV0hFUkUgdGFi bGVzcGFjZV9uYW1lID0gJ3BnX2RlZmF1bHQnOworCistLSBUZXN0IHJlc2V0IGZvciBwZ19zdGF0 X3RhYmxlc3BhY2UKKy0tIEVuc3VyZSB3ZSBoYXZlIGEgdGltZXN0YW1wIHRvIGNvbXBhcmUKK1NF TEVDVCBwZ19zdGF0X3Jlc2V0X3NoYXJlZCgndGFibGVzcGFjZScpOworCitTRUxFQ1Qgc3RhdHNf cmVzZXQgQVMgdHNfcmVzZXRfYmVmb3JlIEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRh Ymxlc3BhY2VfbmFtZSA9ICdwZ19kZWZhdWx0JyBcZ3NldAorU0VMRUNUIHBnX3N0YXRfcmVzZXRf c2hhcmVkKCd0YWJsZXNwYWNlJyk7CisKK1NFTEVDVCBzdGF0c19yZXNldCA+IDondHNfcmVzZXRf YmVmb3JlJzo6dGltZXN0YW1wdHogRlJPTSBwZ19zdGF0X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVz cGFjZV9uYW1lID0gJ3BnX2RlZmF1bHQnOworCiAtLSBFbmQgb2YgU3RhdHMgVGVzdAotLSAKMi41 My4wLjExODUuZzA1ZDRiN2IzMTgtZ29vZwoK --000000000000a35254064e707b07--