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 1w8iC6-000nvB-25 for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 17:20:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w8iC5-00Cpcs-1i for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 17:20:29 +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 1w8iC4-00Cpck-2p for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 17:20:29 +0000 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w8iC2-00000000O4O-1H13 for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 17:20:27 +0000 Received: by mail-qt1-x833.google.com with SMTP id d75a77b69052e-506362ac5f7so18112831cf.1 for ; Fri, 03 Apr 2026 10:20:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775236825; cv=none; d=google.com; s=arc-20240605; b=GZZgwSlU+hV40MxN1r4RdMA3BgWhsxTo9/lUnlY365Al2Ky7WVCo9rY4Pq2yVSQbSD v2rjykUPw0dvh5peA+t4Flkx8zJfLNkjuummcc3pWno0q9cjna7OYvALERr09OT7Egcf IfbGcDRjApEh54FmToXsTFboxRcAMeCefxOyNph8JAYpy9ZNOmX86SG3XGXVKXHoOabp iwaukvHQZd+ZPOFP212v6mtce3hYA4JxRrzrkdbw/ptFi1IWRoZmSwtMbL8ivRWNM2lC BTOnjYjU/xY+w9xH+ycR/9bPmWpnLtrdDJTvJMR0iDWn1/6oFLGKa+k0jjSx65Xu+gui 6T4w== 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=06WEWDwqKUEUo9ZTeEI5Uwa8HVsLV+uRtu8Lc4WS5Y0=; fh=Uhl2MTexsexFzR1+X600UgWow4h7Z8f6vT6XJ84cwSU=; b=S8SSDesGJWvkN5PUQcgsklpOuUbn0RRzGIj0oF74HErX4Ct4Dk8Bao8ORD95qir5Qk bvRHHa3iBY1KiGKHGmIRfPU5MYSjNqLE2teZfghNtIMqm+3oIUewlZlJ4HV/mgYnw2Hx Cy+oerLzkGbYchtx5HuEG3TcFivRuJI9RBN6SmSeN/VwW1477zhv5jetY2EkfiBGfshq rzxjQK3N3VhyaRE1xMsdytzLFTA2tu3CjuImFhsrQwYPiA0NDDv88kBqId09In9dgv3I O6loDASbEuo6Q1Xu0VNoEB8WVCzDN0fpn54aD9Xj+h9qn34ALYZ/7ge+tqUd7bBvl8oB HOqg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1775236825; x=1775841625; darn=lists.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=06WEWDwqKUEUo9ZTeEI5Uwa8HVsLV+uRtu8Lc4WS5Y0=; b=eA1cDefGNMuIOkO1NvmlKBBJl69BROIzfTRZybORwci5CpjKGhONjbln9z+xrQFkC0 WmsYqkFKsAVWSsatltbL9YPRCtOHEuvZHgglsRcJljzYet+RIY9s2+BNXyWY2UpXrw5H 3VFGfXG35MHBa4KlD5avbt4CTzeDKO/B61JDFzzuaPDfZBbL7lr3ch5xFmcE4cxCOJwm dhDBu1Hx/q9EJDGP3HdTP1/8Q+nguxES1J5zC+uz77vQRPNvmHM5MUETYluCRaImInDF M4J5KZTEGQa2qLZDoF6q7/r70y843Lm7F7ojxw24eJp0jAIbcBQ0rrBwFlz9CuOoFz0u Wg3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775236825; x=1775841625; 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=06WEWDwqKUEUo9ZTeEI5Uwa8HVsLV+uRtu8Lc4WS5Y0=; b=fDJuE41PM3kPOkhXfn/pcULK5A0xr5yoNWUL7VOmLjVn4p763yCLfNpGOb9HWrcPA2 j0feNMzb3wygkuKxqG+O59PZb7bt+fvfy7bHT8CLDrT/HHTBtcvCu3QdBxa+W8u4dZDN zA0oOUgZIzhXb9J1qTiKGwoxOqg+qlKoTvKnizWcFGJi5vdfdSUJBreM8cvE49a7KYsS khBna3WLVw390AwTTewCW+xbZDvyCXny9dwyX0HMTIPys7UkopYwzPTdijG+Um6JhyCL 7ArTX0mVZDcSK2gLTJ1b8J2CNYkbCyFUGQYAWkiDFED/YaglHM+tavucr7t8oPhpWjaS RxmQ== X-Gm-Message-State: AOJu0Yz3DVK6M072WJmjwKBJP3yKzy/y9/b1VJlHg34JVT6oo/amaAVz WIOADMDHQ0fmIMsF9RO5lmj4LXmGAd3dsvdeG8cBhn8XdOUYKoac8rbhgQNOpyUx96o6jGTlF29 wWtAWirIA1ERGWBFZYUQf9wdpeFm/VVm6MaJcF6/Z X-Gm-Gg: ATEYQzyEQKroPls4D2whMXKBih42fpBFyZ2g4MwYDDPLZ+FF3MrBcc9Idd43tIF+0sR PvDgrzCYCbNlycRVoP6SVsoIYo8yM/BzN9GtekvbNbAQ3lfnLfrufRN2AhSWYxDSR7xOU/MQEbh FSIn83cNhI6/6j7RMpwpZRDkHvTL19gWmy0rJwSmSDTuqvmPp0LcbRXVjbrA7lnnRCCvF96T7YS 7jcV2ZxT28KIGlMl7zAUaADHKr8Zo0FhV+y3z1UBLhTGZ595VnQg1uRc0uJEnTgRsOn8rXaleTI JscULdlwtOggpaT7Rkco X-Received: by 2002:a05:622a:8491:b0:50b:5507:f0ff with SMTP id d75a77b69052e-50d62a70548mr46391071cf.43.1775236824560; Fri, 03 Apr 2026 10:20:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jacob Champion Date: Fri, 3 Apr 2026 10:20:13 -0700 X-Gm-Features: AQROBzCApzWjv_m5rF_aXeQ6p2m4i7p9b4I6Ej8UmP7z7TO0Nb49xKX3dfILWtE Message-ID: Subject: Re: [oauth] Split and extend PGOAUTHDEBUG To: Zsolt Parragi Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000531576064e91884b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000531576064e91884b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 1, 2026 at 2:13=E2=80=AFPM Zsolt Parragi wrote: > > > OAUTHDEBUG_LEGACY_UNSAFE? > > That sounds better Done. v4 also renames oauth_get_debug_flags() to oauth_parse_debug_flags() (and adds a related doc comment) after Chao Li's feedback, and tightens up some of the new documentation. Thanks, --Jacob --000000000000531576064e91884b Content-Type: application/octet-stream; name="since-v3.nocfbot.diff" Content-Disposition: attachment; filename="since-v3.nocfbot.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnj65cxr0 MTogIDc0M2I0YTVjM2E1ICEgMTogIGM2NTg3N2IwYjU5IFNwbGl0IFBHT0FVVEhERUJVRz1VTlNB RkUgaW50byBtdWx0aXBsZSBvcHRpb25zCiAgICBAQCBNZXRhZGF0YQogICAgICAjIyBDb21taXQg bWVzc2FnZSAjIwogICAgICAgICBTcGxpdCBQR09BVVRIREVCVUc9VU5TQUZFIGludG8gbXVsdGlw bGUgb3B0aW9ucwogICAgIAogICAgLSAgICBXSVAKICAgICsgICAgUEdPQVVUSERFQlVHIGlzIGEg Ymx1bnQgaW5zdHJ1bWVudDogeW91IGdldCBhbGwgdGhlIGRlYnVnZ2luZyBmZWF0dXJlcywKICAg ICsgICAgb3Igbm90aGluZy4gVGhlIG1vc3QgYW5ub3lpbmcgY29uc2VxdWVuY2UgZHVyaW5nIG1h bnVhbCB1c2UgaXMgdGhlIEN1cmwKICAgICsgICAgZGVidWcgdHJhY2UsIHdoaWNoIHRlbmRzIHRv IG9ic2N1cmUgdGhlIGRldmljZSBmbG93IHByb21wdCBlbnRpcmVseS4gVGhlCiAgICArICAgIHBy b21vdGlvbiBvZiBQR09BVVRIQ0FGSUxFIGludG8gaXRzIG93biBmZWF0dXJlIGluIDk5MzM2ODEx MyBpbXByb3ZlcwogICAgKyAgICB0aGUgc2l0dWF0aW9uIHNvbWV3aGF0LCBidXQgdGhlcmUncyBz dGlsbCB0aGUgZGlzY29tZm9ydCBvZiBrbm93aW5nIHlvdQogICAgKyAgICBoYXZlIHRvIG9wdCBp bnRvIG1hbnkgZGFuZ2Vyb3VzIGJlaGF2aW9ycyBqdXN0IHRvIGdldCB0aGUgc2luZ2xlIGRlYnVn CiAgICArICAgIGZlYXR1cmUgeW91IHdhbnRlZC4KICAgICsKICAgICsgICAgRXhwbG9kZSB0aGUg UEdPQVVUSERFQlVHIHN5bnRheCBpbnRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuIFRoZSBvbGQK ICAgICsgICAgIlVOU0FGRSIgdmFsdWUgZW5hYmxlcyBldmVyeXRoaW5nLCBsaWtlIGJlZm9yZS4g QW55IGluZGl2aWR1YWwgdW5zYWZlCiAgICArICAgIGZlYXR1cmVzIHN0aWxsIHJlcXVpcmUgdGhl IGVudnZhciB0byBiZWdpbiB3aXRoIGFuICJVTlNBRkU6IiBwcmVmaXgsIHRvCiAgICArICAgIHRy eSB0byBpbnRlcnJ1cHQgdGhlIGZsb3cgb2Ygc29tZW9uZSB3aG8gaXMgYWJvdXQgdG8gZG8gc29t ZXRoaW5nIHRoZXkKICAgICsgICAgc2hvdWxkIG5vdC4KICAgICsKICAgICsgICAgU28gbm93LCBy YXRoZXIgdGhhbgogICAgKwogICAgKyAgICAgICAgUEdPQVVUSERFQlVHPVVOU0FGRSAgICAgICAg IyBlbmFibGUgYWxsIHRoZSB1bnNhZmUgdGhpbmdzCiAgICArCiAgICArICAgIGEgZGV2ZWxvcGVy IGNhbiBzYXkKICAgICsKICAgICsgICAgICAgIFBHT0FVVEhERUJVRz1jYWxsLWNvdW50ICAgICMg b25seSBzaG93IG1lIHRoZSBjYWxsIGNvdW50LiBzYWZlIQogICAgKyAgICAgICAgUEdPQVVUSERF QlVHPVVOU0FGRTp0cmFjZSAgIyBwcmludCBzZWNyZXRzLCBidXQgZG9uJ3QgYWxsb3cgSFRUUAog ICAgKwogICAgKyAgICBUbyBhdm9pZCBhZGRpbmcgbW9yZSBidWlsZCBzeXN0ZW0gc2NhZmZvbGRp bmcgdG8gbGlicHEtb2F1dGgsIGltcGxlbWVudAogICAgKyAgICB0aGlzIGVudGlyZWx5IGluIGEg c21hbGwgcHJpdmF0ZSBoZWFkZXIuIFRoaXMgdW5mb3J0dW5hdGVseSBjYW4ndCBiZQogICAgKyAg ICBzdGFuZGFsb25lLCBzbyBpdCBuZWVkcyBhIGhlYWRlcnNjaGVjayBleGNlcHRpb24uCiAgICAg CiAgICAgICAgIEF1dGhvcjogWnNvbHQgUGFycmFnaSA8enNvbHQucGFycmFnaUBwZXJjb25hLmNv bT4KICAgICAgICAgQ28tYXV0aG9yZWQtYnk6IEphY29iIENoYW1waW9uIDxqYWNvYi5jaGFtcGlv bkBlbnRlcnByaXNlZGIuY29tPgogICAgKyAgICBSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZh bi5jaGFvQGdtYWlsLmNvbT4KICAgICsgICAgUmV2aWV3ZWQtYnk6IFpzb2x0IFBhcnJhZ2kgPHpz b2x0LnBhcnJhZ2lAcGVyY29uYS5jb20+CiAgICArICAgIERpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FPWW1pJTJCJTNEZmJaTkpTa0hWY2klM0RHcFI4WFBZT2JLJTNESCUyQjJFUlJo YTBMRFRTJTJCaWZzV253JTQwbWFpbC5nbWFpbC5jb20KICAgICsgICAgRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQU40Q1pGTW1EWk1INTZPOXZiX2c3dkhxQWs4cnlXRnhCTVYxOUMz OVBGZ2hFTmc4a0ElNDBtYWlsLmdtYWlsLmNvbQogICAgIAogICAgICAjIyBkb2Mvc3JjL3NnbWwv bGlicHEuc2dtbCAjIwogICAgIEBAIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sOiB0eXBlZGVmIHN0 cnVjdAogICAgQEAgZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWw6IHR5cGVkZWYgc3RydWN0CiAgICAg KyAgICAgIDwvbGlzdGl0ZW0+CiAgICAgKyAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgKyAgICA8 L3ZhcmlhYmxlbGlzdD4KICAgIC0rICAgPC9wYXJhPgogICAgKyAgICA8L3BhcmE+CiAgICAgKwog ICAgICsgICA8cGFyYT4KICAgICArICAgIFVuc2FmZSBvcHRpb25zICg8bGl0ZXJhbD5odHRwPC9s aXRlcmFsPiwgPGxpdGVyYWw+dHJhY2U8L2xpdGVyYWw+LAogICAgICsgICAgPGxpdGVyYWw+ZG9z LWVuZHBvaW50PC9saXRlcmFsPikgcmVxdWlyZSB0aGUgPGxpdGVyYWw+VU5TQUZFOjwvbGl0ZXJh bD4gcHJlZml4LgogICAgLSsgICAgSWYgdW5zYWZlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCB3aXRo b3V0IHRoaXMgcHJlZml4LCBhIHdhcm5pbmcgaXMgcHJpbnRlZAogICAgLSsgICAgdG8gc3RhbmRh cmQgZXJyb3IgYW5kIHRoYXQgb3B0aW9uIGlzIGlnbm9yZWQuIE90aGVyIHZhbGlkIG9wdGlvbnMg aW4gdGhlCiAgICAtKyAgICBsaXN0IGNvbnRpbnVlIHRvIHdvcmsuIFNhZmUgb3B0aW9ucyAoPGxp dGVyYWw+Y2FsbC1jb3VudDwvbGl0ZXJhbD4sCiAgICAtKyAgICA8bGl0ZXJhbD5wbHVnaW4tZXJy b3JzPC9saXRlcmFsPikgY2FuIGJlIHVzZWQgd2l0aG91dCB0aGUgcHJlZml4LgogICAgLSAgICA8 L3BhcmE+CiAgICAtKwogICAgLSsgICA8cGFyYT4KICAgIC0rICAgIFVucmVjb2duaXplZCBvcHRp b24gbmFtZXMgd2lsbCBhbHNvIHRyaWdnZXIgYSB3YXJuaW5nIGFuZCBiZSBpZ25vcmVkLCB3aGls ZQogICAgLSsgICAgdmFsaWQgb3B0aW9ucyBjb250aW51ZSB0byB3b3JrLiBUaGlzIGhlbHBzIGNh dGNoIHR5cG9zIGluIHRoZSBlbnZpcm9ubWVudAogICAgLSsgICAgdmFyaWFibGUgY29uZmlndXJh dGlvbiB3aXRob3V0IGJyZWFraW5nIHRoZSBkZWJ1Z2dpbmcgb2YgdmFsaWQgb3B0aW9ucy4KICAg ICsrICAgIElmIHVuc2FmZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgd2l0aG91dCB0aGlzIHByZWZp eCwgb3IgaWYgYW4gb3B0aW9uIG5hbWUgaXMKICAgICsrICAgIHVucmVjb2duaXplZCwgYSB3YXJu aW5nIGlzIHByaW50ZWQgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHRoYXQgb3B0aW9uIGlzCiAgICAr KyAgICBpZ25vcmVkLiBPdGhlciB2YWxpZCBvcHRpb25zIGluIHRoZSBsaXN0IGNvbnRpbnVlIHRv IHdvcmsuIFNhZmUgb3B0aW9ucwogICAgKysgICAgKDxsaXRlcmFsPmNhbGwtY291bnQ8L2xpdGVy YWw+LCA8bGl0ZXJhbD5wbHVnaW4tZXJyb3JzPC9saXRlcmFsPikgY2FuIGJlCiAgICArKyAgICB1 c2VkIHdpdGhvdXQgdGhlIHByZWZpeC4KICAgICArICAgPC9wYXJhPgogICAgICsKICAgICArICAg PHBhcmE+CiAgICBAQCBzcmMvaW50ZXJmYWNlcy9saWJwcS9vYXV0aC1kZWJ1Zy5oIChuZXcpCiAg ICAgKyNkZWZpbmUgT0FVVEhERUJVR19QTFVHSU5fRVJST1JTCQkoMTw8MTcpCiAgICAgKwogICAg ICsvKiBhbGwgc2FmZSBhbmQgdW5zYWZlIGZsYWdzLCBmb3IgdGhlIGxlZ2FjeSBVTlNBRkUgYmVo YXZpb3IgKi8KICAgIC0rI2RlZmluZSBPQVVUSERFQlVHX1VOU0FGRV9BTEwJCQkoKHVpbnQzMikg fjApCiAgICArKyNkZWZpbmUgT0FVVEhERUJVR19MRUdBQ1lfVU5TQUZFCQkoKHVpbnQzMikgfjAp CiAgICAgKwogICAgICsvKiBGbGFncyBhcmUgZGl2aWRlZCBpbnRvICJzYWZlIiBhbmQgInVuc2Fm ZSIgYmFzZWQgb24gYml0IHBvc2l0aW9uLiAqLwogICAgICsjZGVmaW5lIE9BVVRIREVCVUdfVU5T QUZFX01BU0sJCQkoKHVpbnQzMikgMHgwMDAwRkZGRikKICAgIEBAIHNyYy9pbnRlcmZhY2VzL2xp YnBxL29hdXRoLWRlYnVnLmggKG5ldykKICAgICArICogUHJpbnRzIGEgd2FybmluZyBhbmQgc2tp cHMgdGhlIGludmFsaWQgb3B0aW9uIGlmOgogICAgICsgKiAtIEFuIHVucmVjb2duaXplZCBvcHRp b24gaXMgc3BlY2lmaWVkCiAgICAgKyAqIC0gQW4gdW5zYWZlIG9wdGlvbiBpcyBzcGVjaWZpZWQg d2l0aG91dCB0aGUgVU5TQUZFOiBwcmVmaXgKICAgICsrICoKICAgICsrICogWFhYIFRoZSBwYXJz aW5nLCBhbmQgYW55IHdhcm5pbmdzLCB3aWxsIGhhcHBlbiBlYWNoIHRpbWUgdGhlIGZ1bmN0aW9u IGlzCiAgICArKyAqIGNhbGxlZCwgc28gY29uc2lkZXIgY2FjaGluZyB0aGUgcmVzdWx0IGluIGNh c2VzIHdoZXJlIHRoYXQgbWlnaHQgZ2V0CiAgICArKyAqIGFubm95aW5nLiBCdXQgZG9uJ3QgdHJ5 IHRvIGNhY2hlIGluc2lkZSB0aGlzIGZ1bmN0aW9uLCB1bmxlc3MgeW91IGFsc28gaGF2ZSBhCiAg ICArKyAqIHBsYW4gZm9yIGdldHRpbmcgbGlicHEgYW5kIGxpYnBxLW9hdXRoIHRvIHNoYXJlIHRo YXQgY2FjaGUgc2FmZWx5Li4uIHByb2JhYmx5CiAgICArKyAqIG5vdCB3b3J0aCB0aGUgZWZmb3J0 IGZvciBhIGRlYnVnZ2luZyBhaWQ/CiAgICAgKyAqLwogICAgICtzdGF0aWMgdWludDMyCiAgICAt K29hdXRoX2dldF9kZWJ1Z19mbGFncyh2b2lkKQogICAgKytvYXV0aF9wYXJzZV9kZWJ1Z19mbGFn cyh2b2lkKQogICAgICt7CiAgICAgKwl1aW50MzIJCWZsYWdzID0gMDsKICAgICArCWNvbnN0IGNo YXIgKmVudiA9IGdldGVudigiUEdPQVVUSERFQlVHIik7CiAgICBAQCBzcmMvaW50ZXJmYWNlcy9s aWJwcS9vYXV0aC1kZWJ1Zy5oIChuZXcpCiAgICAgKwkJcmV0dXJuIGZsYWdzOwogICAgICsKICAg ICArCWlmIChzdHJjbXAoZW52LCAiVU5TQUZFIikgPT0gMCkKICAgIC0rCQlyZXR1cm4gT0FVVEhE RUJVR19VTlNBRkVfQUxMOwogICAgKysJCXJldHVybiBPQVVUSERFQlVHX0xFR0FDWV9VTlNBRkU7 CiAgICAgKwogICAgICsJaWYgKHN0cm5jbXAoZW52LCAiVU5TQUZFOiIsIDcpID09IDApCiAgICAg Kwl7CiAgICBAQCBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmM6IHBnX3N0 YXJ0X29hdXRoYmVhcmVyKFBHY29ubiAqY29ubiwgUEdvYQogICAgIC0JLyogU2hvdWxkIHdlIGVu YWJsZSB1bnNhZmUgZmVhdHVyZXM/ICovCiAgICAgLQlhY3R4LT5kZWJ1Z2dpbmcgPSBvYXV0aF91 bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQoKTsKICAgICArCS8qIFBhcnNlIGRlYnVnIGZsYWdzIGZy b20gdGhlIGVudmlyb25tZW50LiAqLwogICAgLSsJYWN0eC0+ZGVidWdfZmxhZ3MgPSBvYXV0aF9n ZXRfZGVidWdfZmxhZ3MoKTsKICAgICsrCWFjdHgtPmRlYnVnX2ZsYWdzID0gb2F1dGhfcGFyc2Vf ZGVidWdfZmxhZ3MoKTsKICAgICAgCiAgICAgIAlpbml0UFFFeHBCdWZmZXIoJmFjdHgtPndvcmtf ZGF0YSk7CiAgICAgIAlpbml0UFFFeHBCdWZmZXIoJmFjdHgtPmVycmJ1Zik7CiAgICBAQCBzcmMv aW50ZXJmYWNlcy9saWJwcS1vYXV0aC90ZXN0LW9hdXRoLWN1cmwuYzogaW5pdF90ZXN0X2FjdHgo dm9pZCkKICAgICAgCWFjdHgtPm11eCA9IFBHSU5WQUxJRF9TT0NLRVQ7CiAgICAgIAlhY3R4LT50 aW1lcmZkID0gLTE7CiAgICAgLQlhY3R4LT5kZWJ1Z2dpbmcgPSB0cnVlOwogICAgLSsJYWN0eC0+ ZGVidWdfZmxhZ3MgPSBPQVVUSERFQlVHX1VOU0FGRV9BTEw7CiAgICArKwlhY3R4LT5kZWJ1Z19m bGFncyA9IE9BVVRIREVCVUdfTEVHQUNZX1VOU0FGRTsKICAgICAgCiAgICAgIAlpbml0UFFFeHBC dWZmZXIoJmFjdHgtPmVycmJ1Zik7CiAgICAgIAogICAgQEAgc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtYXV0aC1vYXV0aC5jOiBpc3N1ZXJfZnJvbV93ZWxsX2tub3duX3VyaShQR2Nvbm4gKmNvbm4s IGMKICAgICAgCiAgICAgIAlpZiAoIWF1dGhvcml0eV9zdGFydAogICAgIC0JCSYmIG9hdXRoX3Vu c2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCgpCiAgICAtKwkJJiYgKG9hdXRoX2dldF9kZWJ1Z19mbGFn cygpICYgT0FVVEhERUJVR19VTlNBRkVfSFRUUCkKICAgICsrCQkmJiAob2F1dGhfcGFyc2VfZGVi dWdfZmxhZ3MoKSAmIE9BVVRIREVCVUdfVU5TQUZFX0hUVFApCiAgICAgIAkJJiYgcGdfc3RybmNh c2VjbXAod2t1cmksIEhUVFBfU0NIRU1FLCBzdHJsZW4oSFRUUF9TQ0hFTUUpKSA9PSAwKQogICAg ICAJewogICAgICAJCS8qIEFsbG93IGh0dHA6Ly8gZm9yIHRlc3Rpbmcgb25seS4gKi8KICAgIEBA IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGguYzogdXNlX2J1aWx0aW5fZmxvdyhQ R2Nvbm4gKmNvbm4sIGZlX29hdXRoX3N0CiAgICAgIAkJICogTm90ZSB0aGF0IFBPU0lYIGRsZXJy b3IoKSBpc24ndCBndWFyYW50ZWVkIHRvIGJlIHRocmVhZHNhZmUuCiAgICAgIAkJICovCiAgICAg LQkJaWYgKG9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCgpKQogICAgLSsJCWlmIChvYXV0 aF9nZXRfZGVidWdfZmxhZ3MoKSAmIE9BVVRIREVCVUdfUExVR0lOX0VSUk9SUykKICAgICsrCQlp ZiAob2F1dGhfcGFyc2VfZGVidWdfZmxhZ3MoKSAmIE9BVVRIREVCVUdfUExVR0lOX0VSUk9SUykK ICAgICAgCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgZGxvcGVuIGZvciBsaWJwcS1vYXV0aDog JXNcbiIsIGRsZXJyb3IoKSk7CiAgICAgIAogICAgICAJCXJldHVybiAwOwogICAgQEAgc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5jOiB1c2VfYnVpbHRpbl9mbG93KFBHY29ubiAq Y29ubiwgZmVfb2F1dGhfc3QKICAgICAgCQkgKiB0aHJlYWRzYWZldHkgaXNzdWUuCiAgICAgIAkJ ICovCiAgICAgLQkJaWYgKG9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCgpKQogICAgLSsJ CWlmIChvYXV0aF9nZXRfZGVidWdfZmxhZ3MoKSAmIE9BVVRIREVCVUdfUExVR0lOX0VSUk9SUykK ICAgICsrCQlpZiAob2F1dGhfcGFyc2VfZGVidWdfZmxhZ3MoKSAmIE9BVVRIREVCVUdfUExVR0lO X0VSUk9SUykKICAgICAgCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgZGxzeW0gZm9yIGxpYnBx LW9hdXRoOiAlc1xuIiwgZGxlcnJvcigpKTsKICAgICAgCiAgICAgIAkJZGxjbG9zZShzdGF0ZS0+ Zmxvd19tb2R1bGUpOwo= --000000000000531576064e91884b Content-Type: application/octet-stream; name="v4-0001-Split-PGOAUTHDEBUG-UNSAFE-into-multiple-options.patch" Content-Disposition: attachment; filename="v4-0001-Split-PGOAUTHDEBUG-UNSAFE-into-multiple-options.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnj65g2a1 RnJvbSBjNjU4NzdiMGI1OTc0NmY3MjkxY2M5NTY4YWU3MTY3ZDEwYmIwODZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAzMSBNYXIgMjAyNiAxNDowODo1OSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjRdIFNwbGl0IFBHT0FVVEhERUJVRz1VTlNBRkUgaW50byBtdWx0aXBsZSBvcHRp b25zCgpQR09BVVRIREVCVUcgaXMgYSBibHVudCBpbnN0cnVtZW50OiB5b3UgZ2V0IGFsbCB0aGUg ZGVidWdnaW5nIGZlYXR1cmVzLApvciBub3RoaW5nLiBUaGUgbW9zdCBhbm5veWluZyBjb25zZXF1 ZW5jZSBkdXJpbmcgbWFudWFsIHVzZSBpcyB0aGUgQ3VybApkZWJ1ZyB0cmFjZSwgd2hpY2ggdGVu ZHMgdG8gb2JzY3VyZSB0aGUgZGV2aWNlIGZsb3cgcHJvbXB0IGVudGlyZWx5LiBUaGUKcHJvbW90 aW9uIG9mIFBHT0FVVEhDQUZJTEUgaW50byBpdHMgb3duIGZlYXR1cmUgaW4gOTkzMzY4MTEzIGlt cHJvdmVzCnRoZSBzaXR1YXRpb24gc29tZXdoYXQsIGJ1dCB0aGVyZSdzIHN0aWxsIHRoZSBkaXNj b21mb3J0IG9mIGtub3dpbmcgeW91CmhhdmUgdG8gb3B0IGludG8gbWFueSBkYW5nZXJvdXMgYmVo YXZpb3JzIGp1c3QgdG8gZ2V0IHRoZSBzaW5nbGUgZGVidWcKZmVhdHVyZSB5b3Ugd2FudGVkLgoK RXhwbG9kZSB0aGUgUEdPQVVUSERFQlVHIHN5bnRheCBpbnRvIGEgY29tbWEtc2VwYXJhdGVkIGxp c3QuIFRoZSBvbGQKIlVOU0FGRSIgdmFsdWUgZW5hYmxlcyBldmVyeXRoaW5nLCBsaWtlIGJlZm9y ZS4gQW55IGluZGl2aWR1YWwgdW5zYWZlCmZlYXR1cmVzIHN0aWxsIHJlcXVpcmUgdGhlIGVudnZh ciB0byBiZWdpbiB3aXRoIGFuICJVTlNBRkU6IiBwcmVmaXgsIHRvCnRyeSB0byBpbnRlcnJ1cHQg dGhlIGZsb3cgb2Ygc29tZW9uZSB3aG8gaXMgYWJvdXQgdG8gZG8gc29tZXRoaW5nIHRoZXkKc2hv dWxkIG5vdC4KClNvIG5vdywgcmF0aGVyIHRoYW4KCiAgICBQR09BVVRIREVCVUc9VU5TQUZFICAg ICAgICAjIGVuYWJsZSBhbGwgdGhlIHVuc2FmZSB0aGluZ3MKCmEgZGV2ZWxvcGVyIGNhbiBzYXkK CiAgICBQR09BVVRIREVCVUc9Y2FsbC1jb3VudCAgICAjIG9ubHkgc2hvdyBtZSB0aGUgY2FsbCBj b3VudC4gc2FmZSEKICAgIFBHT0FVVEhERUJVRz1VTlNBRkU6dHJhY2UgICMgcHJpbnQgc2VjcmV0 cywgYnV0IGRvbid0IGFsbG93IEhUVFAKClRvIGF2b2lkIGFkZGluZyBtb3JlIGJ1aWxkIHN5c3Rl bSBzY2FmZm9sZGluZyB0byBsaWJwcS1vYXV0aCwgaW1wbGVtZW50CnRoaXMgZW50aXJlbHkgaW4g YSBzbWFsbCBwcml2YXRlIGhlYWRlci4gVGhpcyB1bmZvcnR1bmF0ZWx5IGNhbid0IGJlCnN0YW5k YWxvbmUsIHNvIGl0IG5lZWRzIGEgaGVhZGVyc2NoZWNrIGV4Y2VwdGlvbi4KCkF1dGhvcjogWnNv bHQgUGFycmFnaSA8enNvbHQucGFycmFnaUBwZXJjb25hLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEph Y29iIENoYW1waW9uIDxqYWNvYi5jaGFtcGlvbkBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1i eTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFpzb2x0IFBh cnJhZ2kgPHpzb2x0LnBhcnJhZ2lAcGVyY29uYS5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FPWW1pJTJCJTNEZmJaTkpTa0hWY2klM0RHcFI4WFBZT2JLJTNESCUyQjJFUlJo YTBMRFRTJTJCaWZzV253JTQwbWFpbC5nbWFpbC5jb20KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS9DQU40Q1pGTW1EWk1INTZPOXZiX2c3dkhxQWs4cnlXRnhCTVYxOUMzOVBGZ2hFTmc4 a0ElNDBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAg ICAgICAgICAgICAgICB8IDExOSArKysrKysrKysrKystLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBx LW9hdXRoL29hdXRoLXV0aWxzLmggICAgICB8ICAgMSAtCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1hdXRoLW9hdXRoLmggICAgICAgICAgfCAgIDEgLQogc3JjL2ludGVyZmFjZXMvbGlicHEvb2F1 dGgtZGVidWcuaCAgICAgICAgICAgIHwgMTQyICsrKysrKysrKysrKysrKysrKwogc3JjL2ludGVy ZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jICAgICAgIHwgIDIyICsrLQogc3JjL2ludGVy ZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuYyAgICAgIHwgIDExIC0tCiBzcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC90ZXN0LW9hdXRoLWN1cmwuYyAgfCAgIDIgKy0KIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGguYyAgICAgICAgICB8ICAxOCArLS0KIC4uLi9tb2R1bGVz L29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwgICB8ICAyMiArKy0KIHNyYy90b29scy9w Z2luY2x1ZGUvaGVhZGVyc2NoZWNrICAgICAgICAgICAgICB8ICAgMiArCiAxMCBmaWxlcyBjaGFu Z2VkLCAyNzcgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvb2F1dGgtZGVidWcuaAoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggYTQ4ZDMx NjE0OTUuLjBhMTljMmI1NTNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMTA2NDMsMzUgKzEwNjQzLDEwNCBAQCB0 eXBlZGVmIHN0cnVjdAogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBBICJkYW5nZXJvdXMg ZGVidWdnaW5nIG1vZGUiIG1heSBiZSBlbmFibGVkIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50 Ci0gICAgdmFyaWFibGUgPGVudmFyPlBHT0FVVEhERUJVRz1VTlNBRkU8L2VudmFyPi4gVGhpcyBm dW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkCi0gICAgZm9yIGVhc2Ugb2YgbG9jYWwgZGV2ZWxvcG1l bnQgYW5kIHRlc3Rpbmcgb25seS4gSXQgZG9lcyBzZXZlcmFsIHRoaW5ncyB0aGF0Ci0gICAgeW91 IHdpbGwgbm90IHdhbnQgYSBwcm9kdWN0aW9uIHN5c3RlbSB0byBkbzoKKyAgICBEZWJ1ZyBmZWF0 dXJlcyBtYXkgYmUgZW5hYmxlZCBieSBzZXR0aW5nIHRoZSA8ZW52YXI+UEdPQVVUSERFQlVHPC9l bnZhcj4KKyAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHBy b3ZpZGVkIGZvciBlYXNlIG9mIGxvY2FsCisgICAgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFRo ZSB2YXJpYWJsZSBhY2NlcHRzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YKKyAgICBkZWJ1ZyBv cHRpb25zOgorCisgICAgPHByb2dyYW1saXN0aW5nPgorUEdPQVVUSERFQlVHPW9wdGlvbjEsb3B0 aW9uMiwuLi4gICAgICAgICA8bGluZWFubm90YXRpb24+Zm9yIHNhZmUgb3B0aW9ucyBvbmx5PC9s aW5lYW5ub3RhdGlvbj4KK1BHT0FVVEhERUJVRz1VTlNBRkU6b3B0aW9uMSxvcHRpb24yLC4uLiAg PGxpbmVhbm5vdGF0aW9uPndoZW4gdXNpbmcgdW5zYWZlIG9wdGlvbnM8L2xpbmVhbm5vdGF0aW9u PgorUEdPQVVUSERFQlVHPVVOU0FGRSAgICAgICAgICAgICAgICAgICAgICA8bGluZWFubm90YXRp b24+bGVnYWN5IGZvcm1hdDsgZW5hYmxlcyBhbGwgb3B0aW9uczwvbGluZWFubm90YXRpb24+Cisg ICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KIAotICAgIDxpdGVtaXplZGxpc3Qgc3Bh Y2luZz0iY29tcGFjdCI+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIHBl cm1pdHMgdGhlIHVzZSBvZiB1bmVuY3J5cHRlZCBIVFRQIGR1cmluZyB0aGUgT0F1dGggcHJvdmlk ZXIgZXhjaGFuZ2UKLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICAgPGxpc3Rp dGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgcHJpbnRzIEhUVFAgdHJhZmZpYyAoY29udGFpbmlu ZyBzZXZlcmFsIGNyaXRpY2FsIHNlY3JldHMpIHRvIHN0YW5kYXJkCi0gICAgICAgZXJyb3IgZHVy aW5nIHRoZSBPQXV0aCBmbG93Ci0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAg IDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIHBlcm1pdHMgdGhlIHVzZSBvZiB6ZXJv LXNlY29uZCByZXRyeSBpbnRlcnZhbHMsIHdoaWNoIGNhbiBjYXVzZSB0aGUKLSAgICAgICBjbGll bnQgdG8gYnVzeS1sb29wIGFuZCBwb2ludGxlc3NseSBjb25zdW1lIENQVQotICAgICAgPC9wYXJh PgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPHBhcmE+CisgICAg QXZhaWxhYmxlIGRlYnVnIG9wdGlvbnM6CisKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+aHR0cDwvbGl0ZXJhbD4gKHVuc2FmZSk8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFBlcm1pdHMg dGhlIHVzZSBvZiB1bmVuY3J5cHRlZCBIVFRQIGR1cmluZyB0aGUgT0F1dGggcHJvdmlkZXIgZXhj aGFuZ2UuCisgICAgICAgIFRoaXMgYWxsb3dzIE9BdXRoIGNyZWRlbnRpYWxzIHRvIGJlIHRyYW5z bWl0dGVkIG92ZXIgdW5lbmNyeXB0ZWQKKyAgICAgICAgY29ubmVjdGlvbnMsIHdoaWNoIGlzIGV4 dHJlbWVseSBkYW5nZXJvdXMgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yCisgICAgICAgIGxv Y2FsIHRlc3RpbmcuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxsaXRlcmFs PnRyYWNlPC9saXRlcmFsPiAodW5zYWZlKTwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgUHJpbnRzIEhUVFAgdHJhZmZpYyB0byBzdGFuZGFyZCBlcnJvciBk dXJpbmcgdGhlIE9BdXRoIGZsb3cuIFRoaXMgb3V0cHV0CisgICAgICAgIGNvbnRhaW5zIGNyaXRp Y2FsIHNlY3JldHMgaW5jbHVkaW5nIGJlYXJlciB0b2tlbnMsIGNsaWVudCBzZWNyZXRzLCBhY2Nl c3MKKyAgICAgICAgdG9rZW5zLCBhbmQgYXV0aG9yaXphdGlvbiBjb2Rlcy4gTmV2ZXIgc2hhcmUg dGhpcyBvdXRwdXQgd2l0aCB0aGlyZAorICAgICAgICBwYXJ0aWVzLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICA8dGVybT48bGl0ZXJhbD5kb3MtZW5kcG9pbnQ8L2xpdGVyYWw+ICh1bnNh ZmUpPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBQZXJt aXRzIHRoZSB1c2Ugb2YgemVyby1zZWNvbmQgcmV0cnkgaW50ZXJ2YWxzIGluc3RlYWQgb2YgdGhl IG5vcm1hbAorICAgICAgICBtaW5pbXVtIG9mIG9uZSBzZWNvbmQuIFRoaXMgc3BlZWRzIHVwIHRl c3RzLCBidXQgaW4gbm9ybWFsIG9wZXJhdGlvbiBpdAorICAgICAgICB3aWxsIGNhdXNlIHRoZSBj bGllbnQgdG8gYnVzeS1sb29wLCBjb25zdW1pbmcgQ1BVIGFuZCBuZXR3b3JrIHJlc291cmNlcy4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+Y2FsbC1jb3VudDwv bGl0ZXJhbD4gKHNhZmUpPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBQcmludHMgdGhlIHRvdGFsIG51bWJlciBvZiBjYWxscyB0byB0aGUgZmxvdyBwbHVn aW4gdG8gc3RhbmRhcmQgZXJyb3IKKyAgICAgICAgd2hlbiB0aGUgT0F1dGggZmxvdyBjb21wbGV0 ZXMuIFRoaXMgaGVscHMgZGV2ZWxvcGVycyBkZWJ1ZyB0aGUgYXN5bmMKKyAgICAgICAgY2FsbGJh Y2sgYmVoYXZpb3IuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxsaXRlcmFs PnBsdWdpbi1lcnJvcnM8L2xpdGVyYWw+IChzYWZlKTwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgUHJpbnRzIHBsdWdpbiBsb2FkaW5nIGVycm9ycyB0byBz dGFuZGFyZCBlcnJvci4gVGhpcyBoZWxwcyBkZXZlbG9wZXJzCisgICAgICAgIGFuZCBwYWNrYWdl IG1haW50YWluZXJzIGRlYnVnIGlzc3VlcyB3aGVuIHRoZSBPQXV0aCBwbHVnaW4gZmFpbHMgdG8g bG9hZC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg VW5zYWZlIG9wdGlvbnMgKDxsaXRlcmFsPmh0dHA8L2xpdGVyYWw+LCA8bGl0ZXJhbD50cmFjZTwv bGl0ZXJhbD4sCisgICAgPGxpdGVyYWw+ZG9zLWVuZHBvaW50PC9saXRlcmFsPikgcmVxdWlyZSB0 aGUgPGxpdGVyYWw+VU5TQUZFOjwvbGl0ZXJhbD4gcHJlZml4LgorICAgIElmIHVuc2FmZSBvcHRp b25zIGFyZSBzcGVjaWZpZWQgd2l0aG91dCB0aGlzIHByZWZpeCwgb3IgaWYgYW4gb3B0aW9uIG5h bWUgaXMKKyAgICB1bnJlY29nbml6ZWQsIGEgd2FybmluZyBpcyBwcmludGVkIHRvIHN0YW5kYXJk IGVycm9yIGFuZCB0aGF0IG9wdGlvbiBpcworICAgIGlnbm9yZWQuIE90aGVyIHZhbGlkIG9wdGlv bnMgaW4gdGhlIGxpc3QgY29udGludWUgdG8gd29yay4gU2FmZSBvcHRpb25zCisgICAgKDxsaXRl cmFsPmNhbGwtY291bnQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD5wbHVnaW4tZXJyb3JzPC9saXRlcmFs PikgY2FuIGJlCisgICAgdXNlZCB3aXRob3V0IHRoZSBwcmVmaXguCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIEV4YW1wbGVzOgorICAgIDxwcm9ncmFtbGlzdGluZz4KK1BHT0FVVEhERUJV Rz1jYWxsLWNvdW50ICAgICAgICAgICAgICA8bGluZWFubm90YXRpb24+c2FmZSBvcHRpb25zIG9u bHk8L2xpbmVhbm5vdGF0aW9uPgorUEdPQVVUSERFQlVHPVVOU0FGRTpodHRwLHRyYWNlICAgICAg IDxsaW5lYW5ub3RhdGlvbj5lbmFibGUgSFRUUCBhbmQgdHJhZmZpYyBsb2dnaW5nPC9saW5lYW5u b3RhdGlvbj4KK1BHT0FVVEhERUJVRz1VTlNBRkU6aHR0cCxjYWxsLWNvdW50ICA8bGluZWFubm90 YXRpb24+bWl4IG9mIHVuc2FmZSBhbmQgc2FmZTwvbGluZWFubm90YXRpb24+CisgICAgPC9wcm9n cmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKwogICAgPHdhcm5pbmc+CiAgICAgPHBhcmE+Ci0gICAg IERvIG5vdCBzaGFyZSB0aGUgb3V0cHV0IG9mIHRoZSBPQXV0aCBmbG93IHRyYWZmaWMgd2l0aCB0 aGlyZCBwYXJ0aWVzLiBJdAotICAgICBjb250YWlucyBzZWNyZXRzIHRoYXQgY2FuIGJlIHVzZWQg dG8gYXR0YWNrIHlvdXIgY2xpZW50cyBhbmQgc2VydmVycy4KKyAgICAgTmV2ZXIgdXNlIHVuc2Fm ZSBkZWJ1ZyBvcHRpb25zIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiBUaGV5IGV4cG9zZQor ICAgICBzZWNyZXRzIGFuZCBiZWhhdmlvcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBhdHRhY2sgeW91 ciBjbGllbnRzIGFuZCBzZXJ2ZXJzLgorICAgICBEbyBub3Qgc2hhcmUgPGxpdGVyYWw+dHJhY2U8 L2xpdGVyYWw+IG91dHB1dCB3aXRoIHRoaXJkIHBhcnRpZXMuCiAgICAgPC9wYXJhPgogICAgPC93 YXJuaW5nPgogICA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1 dGgvb2F1dGgtdXRpbHMuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxz LmgKaW5kZXggMjkzZTk5MzY5ODkuLmRhY2QyZGJhY2ZlIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx LW9hdXRoL29hdXRoLXV0aWxzLmgKQEAgLTM1LDcgKzM1LDYgQEAgdHlwZWRlZiBlbnVtCiAJUEdf Qk9PTF9OTwkJCQkJLyogTm8gKGZhbHNlKSAqLwogfSBQR1Rlcm5hcnlCb29sOwogCi1leHRlcm4g Ym9vbCBvYXV0aF91bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQodm9pZCk7CiBleHRlcm4gaW50CXBx X2Jsb2NrX3NpZ3BpcGUoc2lnc2V0X3QgKm9zaWdzZXQsIGJvb2wgKnNpZ3BpcGVfcGVuZGluZyk7 CiBleHRlcm4gdm9pZCBwcV9yZXNldF9zaWdwaXBlKHNpZ3NldF90ICpvc2lnc2V0LCBib29sIHNp Z3BpcGVfcGVuZGluZywgYm9vbCBnb3RfZXBpcGUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRo LW9hdXRoLmgKaW5kZXggODcyZjVkZjU1MWEuLmE1MGQ3YjAzNDA4IDEwMDY0NAotLS0gYS9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtYXV0aC1vYXV0aC5oCkBAIC00MCw3ICs0MCw2IEBAIHR5cGVkZWYgc3RydWN0CiB9IGZl X29hdXRoX3N0YXRlOwogCiBleHRlcm4gdm9pZCBwcUNsZWFyT0F1dGhUb2tlbihQR2Nvbm4gKmNv bm4pOwotZXh0ZXJuIGJvb2wgb2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFibGVkKHZvaWQpOwog CiAvKiBNZWNoYW5pc21zIGluIGZlLWF1dGgtb2F1dGguYyAqLwogZXh0ZXJuIGNvbnN0IHBnX2Zl X3Nhc2xfbWVjaCBwZ19vYXV0aF9tZWNoOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvb2F1dGgtZGVidWcuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL29hdXRoLWRlYnVnLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRmMGM4NzExN2UxCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvb2F1dGgtZGVidWcuaApAQCAtMCwwICsx LDE0MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogb2F1dGgtZGVidWcuaAorICoJICBQ YXJzaW5nIGxvZ2ljIGZvciBQR09BVVRIREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAqCisg KiBCb3RoIGxpYnBxIGFuZCBsaWJwcS1vYXV0aCBuZWVkIHRoaXMgbG9naWMsIHNvIGl0J3MgcGFj a2FnZWQgaW4gYSBzbWFsbAorICogaGVhZGVyIGZvciBjb252ZW5pZW5jZS4gVGhpcyBpcyBub3Qg cXVpdGUgYSBzdGFuZGFsb25lIGhlYWRlciwgZHVlIHRvIHRoZQorICogY29tcGxpY2F0aW9uIGlu dHJvZHVjZWQgYnkgbGlicHFfZ2V0dGV4dCgpOyBzZWUgbm90ZSBiZWxvdy4KKyAqCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUg VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqIAlzcmMv aW50ZXJmYWNlcy9saWJwcS9vYXV0aC1kZWJ1Zy5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2lmbmRlZiBPQVVUSF9ERUJVR19ICisjZGVmaW5lIE9BVVRIX0RFQlVHX0gKKworI2lu Y2x1ZGUgInBvc3RncmVzX2ZlLmgiCisKKy8qCisgKiBYWFggbGlicHEtb2F1dGggY2FuJ3QgY29t cGlsZSBhZ2FpbnN0IGxpYnBxLWludC5oLCBzbyBjbGllbnRzIG9mIHRoaXMgaGVhZGVyCisgKiBu ZWVkIHRvIHByb3ZpZGUgdGhlIGRlY2xhcmF0aW9uIG9mIGxpYnBxX2dldHRleHQoKSBiZWZvcmUg I2luY2x1ZGluZyBpdC4KKyAqIEZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUgb25seSB0d28gc3VjaCBj bGllbnRzLgorICovCisvKiAjaW5jbHVkZSAibGlicHEtaW50LmgiICovCisKKy8qCisgKiBEZWJ1 ZyBmbGFncyBmb3IgdGhlIFBHT0FVVEhERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRWFjaCBm bGFnIGNvbnRyb2xzIGEKKyAqIHNwZWNpZmljIGRlYnVnIGZlYXR1cmUuIE9BVVRIREVCVUdfVU5T QUZFXyogZmxhZ3MgcmVxdWlyZSB0aGUgZW52dmFyIHRvIGhhdmUKKyAqIGEgbGl0ZXJhbCAiVU5T QUZFOiIgcHJlZml4LgorICovCisKKy8qIGFsbG93IEhUVFAgKHVuZW5jcnlwdGVkKSBjb25uZWN0 aW9ucyAqLworI2RlZmluZSBPQVVUSERFQlVHX1VOU0FGRV9IVFRQCQkJKDE8PDApCisvKiBsb2cg SFRUUCB0cmFmZmljIChleHBvc2VzIHNlY3JldHMpICovCisjZGVmaW5lIE9BVVRIREVCVUdfVU5T QUZFX1RSQUNFCQkJKDE8PDEpCisvKiBhbGxvdyB6ZXJvLXNlY29uZCByZXRyeSBpbnRlcnZhbHMg Ki8KKyNkZWZpbmUgT0FVVEhERUJVR19VTlNBRkVfRE9TX0VORFBPSU5UCSgxPDwyKQorCisvKiBt aW5kIHRoZSBnYXAgaW4gdmFsdWVzOyBzZWUgT0FVVEhERUJVR19VTlNBRkVfTUFTSyBiZWxvdyAq LworCisvKiBwcmludCBQUWNvbm5lY3RQb2xsIHN0YXRpc3RpY3MgKi8KKyNkZWZpbmUgT0FVVEhE RUJVR19DQUxMX0NPVU5UCQkJKDE8PDE2KQorLyogcHJpbnQgcGx1Z2luIGxvYWRpbmcgZXJyb3Jz ICovCisjZGVmaW5lIE9BVVRIREVCVUdfUExVR0lOX0VSUk9SUwkJKDE8PDE3KQorCisvKiBhbGwg c2FmZSBhbmQgdW5zYWZlIGZsYWdzLCBmb3IgdGhlIGxlZ2FjeSBVTlNBRkUgYmVoYXZpb3IgKi8K KyNkZWZpbmUgT0FVVEhERUJVR19MRUdBQ1lfVU5TQUZFCQkoKHVpbnQzMikgfjApCisKKy8qIEZs YWdzIGFyZSBkaXZpZGVkIGludG8gInNhZmUiIGFuZCAidW5zYWZlIiBiYXNlZCBvbiBiaXQgcG9z aXRpb24uICovCisjZGVmaW5lIE9BVVRIREVCVUdfVU5TQUZFX01BU0sJCQkoKHVpbnQzMikgMHgw MDAwRkZGRikKKworc3RhdGljX2Fzc2VydChPQVVUSERFQlVHX0NBTExfQ09VTlQgPT0gT0FVVEhE RUJVR19VTlNBRkVfTUFTSyArIDEsCisJCQkgICJ0aGUgZmlyc3Qgc2FmZSBPQVVUSERFQlVHIGZs YWcgc2hvdWxkIGJlIGFib3ZlIE9BVVRIREVCVUdfVU5TQUZFX01BU0siKTsKKworLyoKKyAqIFBh cnNlcyB0aGUgUEdPQVVUSERFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCByZXR1cm5zIGRl YnVnIGZsYWdzLgorICoKKyAqIFN1cHBvcnRlZCBmb3JtYXRzOgorICogICBQR09BVVRIREVCVUc9 VU5TQUZFICAgICAgICAgICAgICAtIGxlZ2FjeSBmb3JtYXQsIGVuYWJsZXMgYWxsIGZlYXR1cmVz CisgKiAgIFBHT0FVVEhERUJVRz1vcHRpb24xLG9wdGlvbjIgICAgIC0gZW5hYmxlIHNhZmUgZmVh dHVyZXMgb25seQorICogICBQR09BVVRIREVCVUc9VU5TQUZFOm9wdDEsb3B0MiAgICAtIGVuYWJs ZSB1bnNhZmUgYW5kL29yIHNhZmUgZmVhdHVyZXMKKyAqCisgKiBQcmludHMgYSB3YXJuaW5nIGFu ZCBza2lwcyB0aGUgaW52YWxpZCBvcHRpb24gaWY6CisgKiAtIEFuIHVucmVjb2duaXplZCBvcHRp b24gaXMgc3BlY2lmaWVkCisgKiAtIEFuIHVuc2FmZSBvcHRpb24gaXMgc3BlY2lmaWVkIHdpdGhv dXQgdGhlIFVOU0FGRTogcHJlZml4CisgKgorICogWFhYIFRoZSBwYXJzaW5nLCBhbmQgYW55IHdh cm5pbmdzLCB3aWxsIGhhcHBlbiBlYWNoIHRpbWUgdGhlIGZ1bmN0aW9uIGlzCisgKiBjYWxsZWQs IHNvIGNvbnNpZGVyIGNhY2hpbmcgdGhlIHJlc3VsdCBpbiBjYXNlcyB3aGVyZSB0aGF0IG1pZ2h0 IGdldAorICogYW5ub3lpbmcuIEJ1dCBkb24ndCB0cnkgdG8gY2FjaGUgaW5zaWRlIHRoaXMgZnVu Y3Rpb24sIHVubGVzcyB5b3UgYWxzbyBoYXZlIGEKKyAqIHBsYW4gZm9yIGdldHRpbmcgbGlicHEg YW5kIGxpYnBxLW9hdXRoIHRvIHNoYXJlIHRoYXQgY2FjaGUgc2FmZWx5Li4uIHByb2JhYmx5Cisg KiBub3Qgd29ydGggdGhlIGVmZm9ydCBmb3IgYSBkZWJ1Z2dpbmcgYWlkPworICovCitzdGF0aWMg dWludDMyCitvYXV0aF9wYXJzZV9kZWJ1Z19mbGFncyh2b2lkKQoreworCXVpbnQzMgkJZmxhZ3Mg PSAwOworCWNvbnN0IGNoYXIgKmVudiA9IGdldGVudigiUEdPQVVUSERFQlVHIik7CisJY2hhcgkg ICAqb3B0aW9uc19zdHI7CisJY2hhcgkgICAqb3B0aW9uOworCWNoYXIJICAgKnNhdmVwdHIgPSBO VUxMOworCWJvb2wJCXVuc2FmZV9hbGxvd2VkID0gZmFsc2U7CisKKwlpZiAoIWVudiB8fCBlbnZb MF0gPT0gJ1wwJykKKwkJcmV0dXJuIGZsYWdzOworCisJaWYgKHN0cmNtcChlbnYsICJVTlNBRkUi KSA9PSAwKQorCQlyZXR1cm4gT0FVVEhERUJVR19MRUdBQ1lfVU5TQUZFOworCisJaWYgKHN0cm5j bXAoZW52LCAiVU5TQUZFOiIsIDcpID09IDApCisJeworCQl1bnNhZmVfYWxsb3dlZCA9IHRydWU7 CisJCWVudiArPSA3OworCX0KKworCW9wdGlvbnNfc3RyID0gc3RyZHVwKGVudik7CisJaWYgKCFv cHRpb25zX3N0cikKKwkJcmV0dXJuIGZsYWdzOworCisJb3B0aW9uID0gc3RydG9rX3Iob3B0aW9u c19zdHIsICIsIiwgJnNhdmVwdHIpOworCXdoaWxlIChvcHRpb24gIT0gTlVMTCkKKwl7CisJCXVp bnQzMgkJZmxhZyA9IDA7CisKKwkJaWYgKHN0cmNtcChvcHRpb24sICJodHRwIikgPT0gMCkKKwkJ CWZsYWcgPSBPQVVUSERFQlVHX1VOU0FGRV9IVFRQOworCQllbHNlIGlmIChzdHJjbXAob3B0aW9u LCAidHJhY2UiKSA9PSAwKQorCQkJZmxhZyA9IE9BVVRIREVCVUdfVU5TQUZFX1RSQUNFOworCQll bHNlIGlmIChzdHJjbXAob3B0aW9uLCAiZG9zLWVuZHBvaW50IikgPT0gMCkKKwkJCWZsYWcgPSBP QVVUSERFQlVHX1VOU0FGRV9ET1NfRU5EUE9JTlQ7CisJCWVsc2UgaWYgKHN0cmNtcChvcHRpb24s ICJjYWxsLWNvdW50IikgPT0gMCkKKwkJCWZsYWcgPSBPQVVUSERFQlVHX0NBTExfQ09VTlQ7CisJ CWVsc2UgaWYgKHN0cmNtcChvcHRpb24sICJwbHVnaW4tZXJyb3JzIikgPT0gMCkKKwkJCWZsYWcg PSBPQVVUSERFQlVHX1BMVUdJTl9FUlJPUlM7CisJCWVsc2UKKwkJCWZwcmludGYoc3RkZXJyLAor CQkJCQlsaWJwcV9nZXR0ZXh0KCJXQVJOSU5HOiB1bnJlY29nbml6ZWQgUEdPQVVUSERFQlVHIG9w dGlvbiBcIiVzXCIgKGlnbm9yZWQpXG4iKSwKKwkJCQkJb3B0aW9uKTsKKworCQlpZiAoIXVuc2Fm ZV9hbGxvd2VkICYmICgoZmxhZyAmIE9BVVRIREVCVUdfVU5TQUZFX01BU0spICE9IDApKQorCQl7 CisJCQlmbGFnID0gMDsKKworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCWxpYnBxX2dldHRleHQo IldBUk5JTkc6IFBHT0FVVEhERUJVRyBvcHRpb24gXCIlc1wiIGlzIHVuc2FmZSAoaWdub3JlZClc biIpLAorCQkJCQlvcHRpb24pOworCQl9CisKKwkJZmxhZ3MgfD0gZmxhZzsKKwkJb3B0aW9uID0g c3RydG9rX3IoTlVMTCwgIiwiLCAmc2F2ZXB0cik7CisJfQorCisJZnJlZShvcHRpb25zX3N0cik7 CisKKwlyZXR1cm4gZmxhZ3M7Cit9CisKKyNlbmRpZgkJCQkJCQkvKiBPQVVUSF9ERUJVR19IICov CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMKaW5kZXggM2JhZWRlMWIyZTcu LmFiYmVmOTNmOTVmIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0 aC1jdXJsLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jCkBA IC00OSw2ICs0OSwxMiBAQAogCiAjZW5kaWYJCQkJCQkJLyogVVNFX0RZTkFNSUNfT0FVVEggKi8K IAorLyoKKyAqIG9hdXRoLWRlYnVnLmggbmVlZHMgdGhlIGRlY2xhcmF0aW9uIG9mIGxpYnBxX2dl dHRleHQoKSwgZnJvbSBvbmUgb2YgdGhlIGFib3ZlCisgKiBzb3VyY2VzLgorICovCisjaW5jbHVk ZSAib2F1dGgtZGVidWcuaCIKKwogLyogT25lIGZpbmFsIGd1YXJkcmFpbCBhZ2FpbnN0IGFjY2lk ZW50YWwgaW5jbHVzaW9uLi4uICovCiAjaWYgZGVmaW5lZChVU0VfRFlOQU1JQ19PQVVUSCkgJiYg ZGVmaW5lZChMSUJQUV9JTlRfSCkKICNlcnJvciBkbyBub3QgcmVseSBvbiBsaWJwcS1pbnQuaCBp biBkeW5hbWljIGJ1aWxkcyBvZiBsaWJwcS1vYXV0aApAQCAtMjc0LDcgKzI4MCw3IEBAIHN0cnVj dCBhc3luY19jdHgKIAlpbnQJCQlydW5uaW5nOwkJLyogaXMgYXN5bmNocm9ub3VzIHdvcmsgaW4g cHJvZ3Jlc3M/ICovCiAJYm9vbAkJdXNlcl9wcm9tcHRlZDsJLyogaGF2ZSB3ZSBhbHJlYWR5IHNl bnQgdGhlIGF1dGh6IHByb21wdD8gKi8KIAlib29sCQl1c2VkX2Jhc2ljX2F1dGg7CS8qIGRpZCB3 ZSBzZW5kIGEgY2xpZW50IHNlY3JldD8gKi8KLQlib29sCQlkZWJ1Z2dpbmc7CQkvKiBjYW4gd2Ug Z2l2ZSB1bnNhZmUgZGV2ZWxvcGVyIGFzc2lzdGFuY2U/ICovCisJdWludDMyCQlkZWJ1Z19mbGFn czsJLyogY2FuIHdlIGdpdmUgZGV2ZWxvcGVyIGFzc2lzdGFuY2U/ICovCiAJaW50CQkJZGJnX251 bV9jYWxsczsJLyogKGRlYnVnIG1vZGUpIGhvdyBtYW55IHRpbWVzIHdlcmUgd2UgY2FsbGVkPyAq LwogfTsKIApAQCAtMTAyMyw3ICsxMDI5LDcgQEAgcGFyc2VfaW50ZXJ2YWwoc3RydWN0IGFzeW5j X2N0eCAqYWN0eCwgY29uc3QgY2hhciAqaW50ZXJ2YWxfc3RyKQogCXBhcnNlZCA9IGNlaWwocGFy c2VkKTsKIAogCWlmIChwYXJzZWQgPCAxKQotCQlyZXR1cm4gYWN0eC0+ZGVidWdnaW5nID8gMCA6 IDE7CisJCXJldHVybiAoYWN0eC0+ZGVidWdfZmxhZ3MgJiBPQVVUSERFQlVHX1VOU0FGRV9ET1Nf RU5EUE9JTlQpID8gMCA6IDE7CiAKIAllbHNlIGlmIChwYXJzZWQgPj0gSU5UX01BWCkKIAkJcmV0 dXJuIElOVF9NQVg7CkBAIC0xNzk3LDcgKzE4MDMsNyBAQCBzZXR1cF9jdXJsX2hhbmRsZXMoc3Ry dWN0IGFzeW5jX2N0eCAqYWN0eCkKIAkgKi8KIAlDSEVDS19TRVRPUFQoYWN0eCwgQ1VSTE9QVF9O T1NJR05BTCwgMUwsIHJldHVybiBmYWxzZSk7CiAKLQlpZiAoYWN0eC0+ZGVidWdnaW5nKQorCWlm IChhY3R4LT5kZWJ1Z19mbGFncyAmIE9BVVRIREVCVUdfVU5TQUZFX1RSQUNFKQogCXsKIAkJLyoK IAkJICogU2V0IGEgY2FsbGJhY2sgZm9yIHJldHJpZXZpbmcgZXJyb3IgaW5mb3JtYXRpb24gZnJv bSBsaWJjdXJsLCB0aGUKQEAgLTE4MjksNyArMTgzNSw3IEBAIHNldHVwX2N1cmxfaGFuZGxlcyhz dHJ1Y3QgYXN5bmNfY3R4ICphY3R4KQogCQljb25zdCBsb25nCXVuc2FmZSA9IENVUkxQUk9UT19I VFRQUyB8IENVUkxQUk9UT19IVFRQOwogI2VuZGlmCiAKLQkJaWYgKGFjdHgtPmRlYnVnZ2luZykK KwkJaWYgKGFjdHgtPmRlYnVnX2ZsYWdzICYgT0FVVEhERUJVR19VTlNBRkVfSFRUUCkKIAkJCXBy b3RvcyA9IHVuc2FmZTsKIAogCQlDSEVDS19TRVRPUFQoYWN0eCwgcG9wdCwgcHJvdG9zLCByZXR1 cm4gZmFsc2UpOwpAQCAtMjI5Nyw3ICsyMzAzLDcgQEAgY2hlY2tfZm9yX2RldmljZV9mbG93KHN0 cnVjdCBhc3luY19jdHggKmFjdHgpCiAJICogZGVjZW50IHRpbWUgdG8gYmFpbCBvdXQgaWYgd2Un cmUgbm90IHVzaW5nIEhUVFBTIGZvciB0aGUgZW5kcG9pbnRzCiAJICogd2UnbGwgdXNlIGZvciB0 aGUgZmxvdy4KIAkgKi8KLQlpZiAoIWFjdHgtPmRlYnVnZ2luZykKKwlpZiAoKGFjdHgtPmRlYnVn X2ZsYWdzICYgT0FVVEhERUJVR19VTlNBRkVfSFRUUCkgPT0gMCkKIAl7CiAJCWlmIChwZ19zdHJu Y2FzZWNtcChwcm92aWRlci0+ZGV2aWNlX2F1dGhvcml6YXRpb25fZW5kcG9pbnQsCiAJCQkJCQkg ICBIVFRQU19TQ0hFTUUsIHN0cmxlbihIVFRQU19TQ0hFTUUpKSAhPSAwKQpAQCAtMzAyNyw3ICsz MDMzLDcgQEAgcGdfZmVfcnVuX29hdXRoX2Zsb3coUEdjb25uICpjb25uLCBzdHJ1Y3QgUEdvYXV0 aEJlYXJlclJlcXVlc3QgKnJlcXVlc3QsCiAJICogZHJhaW5fdGltZXJfZXZlbnRzKCksIHdoZW4g d2UncmUgaW4gZGVidWcgbW9kZSwgdHJhY2sgdGhlIHRvdGFsIG51bWJlcgogCSAqIG9mIGNhbGxz IHRvIHRoaXMgZnVuY3Rpb24gYW5kIHByaW50IHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUgZmxvdy4K IAkgKi8KLQlpZiAoYWN0eC0+ZGVidWdnaW5nKQorCWlmIChhY3R4LT5kZWJ1Z19mbGFncyAmIE9B VVRIREVCVUdfQ0FMTF9DT1VOVCkKIAl7CiAJCWFjdHgtPmRiZ19udW1fY2FsbHMrKzsKIAkJaWYg KHJlc3VsdCA9PSBQR1JFU19QT0xMSU5HX09LIHx8IHJlc3VsdCA9PSBQR1JFU19QT0xMSU5HX0ZB SUxFRCkKQEAgLTMwODcsOCArMzA5Myw4IEBAIHBnX3N0YXJ0X29hdXRoYmVhcmVyKFBHY29ubiAq Y29ubiwgUEdvYXV0aEJlYXJlclJlcXVlc3RWMiAqcmVxdWVzdCkKIAkgKiBOb3cgZmluaXNoIGZp bGxpbmcgaW4gdGhlIGFjdHguCiAJICovCiAKLQkvKiBTaG91bGQgd2UgZW5hYmxlIHVuc2FmZSBm ZWF0dXJlcz8gKi8KLQlhY3R4LT5kZWJ1Z2dpbmcgPSBvYXV0aF91bnNhZmVfZGVidWdnaW5nX2Vu YWJsZWQoKTsKKwkvKiBQYXJzZSBkZWJ1ZyBmbGFncyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gKi8K KwlhY3R4LT5kZWJ1Z19mbGFncyA9IG9hdXRoX3BhcnNlX2RlYnVnX2ZsYWdzKCk7CiAKIAlpbml0 UFFFeHBCdWZmZXIoJmFjdHgtPndvcmtfZGF0YSk7CiAJaW5pdFBRRXhwQnVmZmVyKCZhY3R4LT5l cnJidWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRp bHMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmMKaW5kZXggY2Ni MGQ5YmYyYzUuLjAwNGQ0MWYwMmFhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1v YXV0aC9vYXV0aC11dGlscy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRo LXV0aWxzLmMKQEAgLTc1LDE3ICs3NSw2IEBAIGxpYnBxX2dldHRleHQoY29uc3QgY2hhciAqbXNn aWQpCiAKICNlbmRpZgkJCQkJCQkvKiBFTkFCTEVfTkxTICovCiAKLS8qCi0gKiBSZXR1cm5zIHRy dWUgaWYgdGhlIFBHT0FVVEhERUJVRz1VTlNBRkUgZmxhZyBpcyBzZXQgaW4gdGhlIGVudmlyb25t ZW50LgotICovCi1ib29sCi1vYXV0aF91bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQodm9pZCkKLXsK LQljb25zdCBjaGFyICplbnYgPSBnZXRlbnYoIlBHT0FVVEhERUJVRyIpOwotCi0JcmV0dXJuIChl bnYgJiYgc3RyY21wKGVudiwgIlVOU0FGRSIpID09IDApOwotfQotCiAvKgogICogRHVwbGljYXRl IFNPQ0tfRVJSTk8qIGRlZmluaXRpb25zIGZyb20gbGlicHEtaW50LmgsIGZvciB1c2UgYnkKICAq IHBxX2Jsb2NrL3Jlc2V0X3NpZ3BpcGUoKS4KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxLW9hdXRoL3Rlc3Qtb2F1dGgtY3VybC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgv dGVzdC1vYXV0aC1jdXJsLmMKaW5kZXggNDMyOGEzMzI3MzguLjlkYjM5MDUzZGQzIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC90ZXN0LW9hdXRoLWN1cmwuYworKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC90ZXN0LW9hdXRoLWN1cmwuYwpAQCAtODksNyArODks NyBAQCBpbml0X3Rlc3RfYWN0eCh2b2lkKQogCiAJYWN0eC0+bXV4ID0gUEdJTlZBTElEX1NPQ0tF VDsKIAlhY3R4LT50aW1lcmZkID0gLTE7Ci0JYWN0eC0+ZGVidWdnaW5nID0gdHJ1ZTsKKwlhY3R4 LT5kZWJ1Z19mbGFncyA9IE9BVVRIREVCVUdfTEVHQUNZX1VOU0FGRTsKIAogCWluaXRQUUV4cEJ1 ZmZlcigmYWN0eC0+ZXJyYnVmKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtYXV0aC1vYXV0aC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5jCmlu ZGV4IGFjMDNkMWQ0ZjlkLi44MjZmNzQ2MWNiMyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtYXV0aC1vYXV0aC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgt b2F1dGguYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImZlLWF1dGguaCIKICNpbmNsdWRl ICJmZS1hdXRoLW9hdXRoLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKKyNpbmNsdWRlICJv YXV0aC1kZWJ1Zy5oIgogI2luY2x1ZGUgInBnX2NvbmZpZ19wYXRocy5oIgogI2luY2x1ZGUgInV0 aWxzL21lbWRlYnVnLmgiCiAKQEAgLTM4OSw3ICszOTAsNyBAQCBpc3N1ZXJfZnJvbV93ZWxsX2tu b3duX3VyaShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKndrdXJpKQogCQlhdXRob3JpdHlfc3Rh cnQgPSB3a3VyaSArIHN0cmxlbihIVFRQU19TQ0hFTUUpOwogCiAJaWYgKCFhdXRob3JpdHlfc3Rh cnQKLQkJJiYgb2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFibGVkKCkKKwkJJiYgKG9hdXRoX3Bh cnNlX2RlYnVnX2ZsYWdzKCkgJiBPQVVUSERFQlVHX1VOU0FGRV9IVFRQKQogCQkmJiBwZ19zdHJu Y2FzZWNtcCh3a3VyaSwgSFRUUF9TQ0hFTUUsIHN0cmxlbihIVFRQX1NDSEVNRSkpID09IDApCiAJ ewogCQkvKiBBbGxvdyBodHRwOi8vIGZvciB0ZXN0aW5nIG9ubHkuICovCkBAIC05MDAsNyArOTAx LDcgQEAgdXNlX2J1aWx0aW5fZmxvdyhQR2Nvbm4gKmNvbm4sIGZlX29hdXRoX3N0YXRlICpzdGF0 ZSwgUEdvYXV0aEJlYXJlclJlcXVlc3RWMiAqcmUKIAkJICoKIAkJICogTm90ZSB0aGF0IFBPU0lY IGRsZXJyb3IoKSBpc24ndCBndWFyYW50ZWVkIHRvIGJlIHRocmVhZHNhZmUuCiAJCSAqLwotCQlp ZiAob2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFibGVkKCkpCisJCWlmIChvYXV0aF9wYXJzZV9k ZWJ1Z19mbGFncygpICYgT0FVVEhERUJVR19QTFVHSU5fRVJST1JTKQogCQkJZnByaW50ZihzdGRl cnIsICJmYWlsZWQgZGxvcGVuIGZvciBsaWJwcS1vYXV0aDogJXNcbiIsIGRsZXJyb3IoKSk7CiAK IAkJcmV0dXJuIDA7CkBAIC05MjIsNyArOTIzLDcgQEAgdXNlX2J1aWx0aW5fZmxvdyhQR2Nvbm4g KmNvbm4sIGZlX29hdXRoX3N0YXRlICpzdGF0ZSwgUEdvYXV0aEJlYXJlclJlcXVlc3RWMiAqcmUK IAkJICogY2F1c2UgaXMgc3RpbGwgbG9ja2VkIGJlaGluZCBQR09BVVRIREVCVUcgZHVlIHRvIHRo ZSBkbGVycm9yKCkKIAkJICogdGhyZWFkc2FmZXR5IGlzc3VlLgogCQkgKi8KLQkJaWYgKG9hdXRo X3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCgpKQorCQlpZiAob2F1dGhfcGFyc2VfZGVidWdfZmxh Z3MoKSAmIE9BVVRIREVCVUdfUExVR0lOX0VSUk9SUykKIAkJCWZwcmludGYoc3RkZXJyLCAiZmFp bGVkIGRsc3ltIGZvciBsaWJwcS1vYXV0aDogJXNcbiIsIGRsZXJyb3IoKSk7CiAKIAkJZGxjbG9z ZShzdGF0ZS0+Zmxvd19tb2R1bGUpOwpAQCAtMTQzNywxNyArMTQzOCw2IEBAIHBxQ2xlYXJPQXV0 aFRva2VuKFBHY29ubiAqY29ubikKIAljb25uLT5vYXV0aF90b2tlbiA9IE5VTEw7CiB9CiAKLS8q Ci0gKiBSZXR1cm5zIHRydWUgaWYgdGhlIFBHT0FVVEhERUJVRz1VTlNBRkUgZmxhZyBpcyBzZXQg aW4gdGhlIGVudmlyb25tZW50LgotICovCi1ib29sCi1vYXV0aF91bnNhZmVfZGVidWdnaW5nX2Vu YWJsZWQodm9pZCkKLXsKLQljb25zdCBjaGFyICplbnYgPSBnZXRlbnYoIlBHT0FVVEhERUJVRyIp OwotCi0JcmV0dXJuIChlbnYgJiYgc3RyY21wKGVudiwgIlVOU0FGRSIpID09IDApOwotfQotCiAv KgogICogSG9vayB2MSBQb2lzb25pbmcKICAqCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwgYi9zcmMvdGVzdC9tb2R1bGVzL29hdXRo X3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwKaW5kZXggYzljNDZlNjM1MzkuLjNkMTkwYzJiYTcx IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2 ZXIucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0b3IvdC8wMDFfc2VydmVy LnBsCkBAIC05Myw2ICs5MywyMSBAQCAkbm9kZS0+Y29ubmVjdF9mYWlscygKIAkgIHFyQE9BdXRo IGRpc2NvdmVyeSBVUkkgIlxRJGlzc3VlclxFLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0 aW9uIiBtdXN0IHVzZSBIVFRQU0AKICk7CiAKK3sKKwkjIFBHT0FVVEhERUJVRz1odHRwIHNob3Vs ZCBoYXZlIG5vIGVmZmVjdCAoaXQgbmVlZHMgYW4gVU5TQUZFOiBtYXJrZXIpLgorCWxvY2FsICRF TlZ7UEdPQVVUSERFQlVHfSA9ICJodHRwIjsKKworCSRub2RlLT5jb25uZWN0X2ZhaWxzKAorCQki dXNlcj10ZXN0IGRibmFtZT1wb3N0Z3JlcyBvYXV0aF9pc3N1ZXI9JGlzc3VlciBvYXV0aF9jbGll bnRfaWQ9ZjAyYzYzNjEtMDYzNSIsCisJCSJIVFRQUyBpcyByZXF1aXJlZCB3aXRob3V0IGRlYnVn IG1vZGUgKGJhZCBQR09BVVRIREVCVUcgdmFsdWUpIiwKKwkJZXhwZWN0ZWRfc3RkZXJyID0+IHFy WworCQkJXldBUk5JTkc6IC4qIFxRb3B0aW9uICJodHRwIiBpcyB1bnNhZmVcRQorCQkJLioKKwkJ CVxRT0F1dGggZGlzY292ZXJ5IFVSSSAiJGlzc3Vlci8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmln dXJhdGlvbiIgbXVzdCB1c2UgSFRUUFNcRQorCQldbXN4CisJKTsKK30KKwogIyBTd2l0Y2ggdG8g SFRUUFMuCiAkaXNzdWVyID0gImh0dHBzOi8vMTI3LjAuMC4xOiRwb3J0IjsKIApAQCAtMTcyLDgg KzE4NywxMSBAQCAkbm9kZS0+Y29ubmVjdF9vaygKIAldLAogCWxvZ191bmxpa2UgPT4gW3FyL0ZB VEFMLipPQXV0aCBiZWFyZXIgYXV0aGVudGljYXRpb24gZmFpbGVkL10pOwogCi0jIEVuYWJsZSBQ R09BVVRIREVCVUcgZm9yIGFsbCByZW1haW5pbmcgdGVzdHMuCi0kRU5We1BHT0FVVEhERUJVR30g PSAiVU5TQUZFIjsKKyMgRW5hYmxlIHNvbWUgZGVidWdnaW5nIGZlYXR1cmVzIGZvciBhbGwgcmVt YWluaW5nIHRlc3RzOgorIyAtIHRyYWNlLCBmb3IgZGV0YWlsZWQgQ3VybCBsb2dzIG9uIGZhaWx1 cmUKKyMgLSBkb3MtZW5kcG9pbnQsIHRvIHNwZWVkIHVwIHRoZSB0aHJlZS13YXkgaGFuZHNoYWtl CisjIC0gY2FsbC1jb3VudCwgZm9yIG91ciBsYXRlciBzYW5pdHkgY2hlY2sKKyRFTlZ7UEdPQVVU SERFQlVHfSA9ICJVTlNBRkU6dHJhY2UsZG9zLWVuZHBvaW50LGNhbGwtY291bnQiOwogCiAjIFRo ZSAvYWx0ZXJuYXRlIGlzc3VlciB1c2VzIHNsaWdodGx5IGRpZmZlcmVudCBwYXJhbWV0ZXJzLCBh bG9uZyB3aXRoIGFuCiAjIE9BdXRoLXN0eWxlIGRpc2NvdmVyeSBkb2N1bWVudC4KZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3BnaW5jbHVk ZS9oZWFkZXJzY2hlY2sKaW5kZXggMTRjNDY2Y2MyMzcuLmRlNTBiNjkzN2FmIDEwMDc1NQotLS0g YS9zcmMvdG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjaworKysgYi9zcmMvdG9vbHMvcGdpbmNs dWRlL2hlYWRlcnNjaGVjawpAQCAtMTUzLDYgKzE1Myw4IEBAIGRvCiAJdGVzdCAiJGYiID0gc3Jj L2luY2x1ZGUvY2F0YWxvZy9zeXNjYWNoZV9pZHMuaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9 IHNyYy9pbmNsdWRlL2NhdGFsb2cvc3lzY2FjaGVfaW5mby5oICYmIGNvbnRpbnVlCiAKKwl0ZXN0 ICIkZiIgPSBzcmMvaW50ZXJmYWNlcy9saWJwcS9vYXV0aC1kZWJ1Zy5oICYmIGNvbnRpbnVlCisK IAkjIFdlIGNhbid0IG1ha2UgdGhlc2UgQmlzb24gb3V0cHV0IGZpbGVzIGNvbXBpbGFibGUgc3Rh bmRhbG9uZQogCSMgd2l0aG91dCB1c2luZyAiJWNvZGUgcmVxdWlyZSIsIHdoaWNoIG9sZCBCaXNv biB2ZXJzaW9ucyBsYWNrLgogCSMgcGFyc2VyL2dyYW0uaCB3aWxsIGJlIGluY2x1ZGVkIGJ5IHBh cnNlci9ncmFtcGFyc2UuaCBhbnl3YXkuCi0tIAoyLjM0LjEKCg== --000000000000531576064e91884b--