<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>230393</bug_id>
          
          <creation_ts>2021-09-17 01:35:08 -0700</creation_ts>
          <short_desc>[JSC] Add fast property enumeration mode for JSON.stringify</short_desc>
          <delta_ts>2021-09-17 16:18:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794370</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 01:35:08 -0700</bug_when>
    <thetext>[JSC] Add fast property enumeration mode for JSON.stringify</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794371</commentid>
    <comment_count>1</comment_count>
      <attachid>438450</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 01:35:48 -0700</bug_when>
    <thetext>Created attachment 438450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794372</commentid>
    <comment_count>2</comment_count>
      <attachid>438451</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 01:36:55 -0700</bug_when>
    <thetext>Created attachment 438451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794375</commentid>
    <comment_count>3</comment_count>
      <attachid>438452</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 01:51:18 -0700</bug_when>
    <thetext>Created attachment 438452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794388</commentid>
    <comment_count>4</comment_count>
      <attachid>438459</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 03:49:30 -0700</bug_when>
    <thetext>Created attachment 438459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794393</commentid>
    <comment_count>5</comment_count>
      <attachid>438461</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 04:53:48 -0700</bug_when>
    <thetext>Created attachment 438461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794558</commentid>
    <comment_count>6</comment_count>
      <attachid>438503</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 12:41:00 -0700</bug_when>
    <thetext>Created attachment 438503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794560</commentid>
    <comment_count>7</comment_count>
      <attachid>438504</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 12:51:01 -0700</bug_when>
    <thetext>Created attachment 438504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794633</commentid>
    <comment_count>8</comment_count>
      <attachid>438504</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-09-17 14:58:40 -0700</bug_when>
    <thetext>Comment on attachment 438504
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438504&amp;action=review

r=me

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        This patch adds fast object property enumeration. When we know that source object has some conditions, we can say that,

I suggest &quot;has some conditions&quot; ==&gt; &quot;meets some conditions&quot;.

&gt; Source/JavaScriptCore/runtime/JSONObject.cpp:96
&gt; +        bool isFastObjectProperties() const { return m_isFastObjectProperties; }

nit: let&apos;s rename these to `hasFastObjectProperties()` and `m_hasFastObjectProperties`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794670</commentid>
    <comment_count>9</comment_count>
      <attachid>438504</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 16:12:59 -0700</bug_when>
    <thetext>Comment on attachment 438504
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438504&amp;action=review

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        This patch adds fast object property enumeration. When we know that source object has some conditions, we can say that,
&gt; 
&gt; I suggest &quot;has some conditions&quot; ==&gt; &quot;meets some conditions&quot;.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSONObject.cpp:96
&gt;&gt; +        bool isFastObjectProperties() const { return m_isFastObjectProperties; }
&gt; 
&gt; nit: let&apos;s rename these to `hasFastObjectProperties()` and `m_hasFastObjectProperties`.

Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794674</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-17 16:17:31 -0700</bug_when>
    <thetext>Committed r282707 (241844@main): &lt;https://commits.webkit.org/241844@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794675</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-17 16:18:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/83259718&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438450</attachid>
            <date>2021-09-17 01:35:48 -0700</date>
            <delta_ts>2021-09-17 01:38:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917013547.patch</filename>
            <type>text/plain</type>
            <size>11176</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi40NmUyNWQwZTVkMDQ4MThk
ODYyODZiYzA2OWMxZTU1YTJjZWJiNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvQXJnTGlzdC5oOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6TWFya2VkQXJndW1lbnRCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlcjo6fk1hcmtlZEFyZ3VtZW50QnVmZmVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNpemUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6aXNFbXB0eSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpjbGVhcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphcHBlbmRXaXRoQWN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphcHBlbmRXaXRoQ3Jh
c2hPbk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OnJlbW92ZUxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6bGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
Ojp0YWtlTGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
OjplbnN1cmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyOjpoYXNPdmVyZmxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXI6Om92ZXJmbG93Q2hlY2tOb3ROZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZmlsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzbG90Rm9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6Om1hbGxvY0Jhc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2V0TmVlZHNPdmVyZmxvd0NoZWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmNsZWFyTmVlZHNPdmVy
Zmxvd0NoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjppc0Zhc3RPYmplY3RQcm9wZXJ0aWVz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFs
dWUpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIpOgorICAgICAg
ICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNh
blBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkpOgorCiAyMDIx
LTA5LTE2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4MjQ3OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ0xpc3QuaAppbmRleCA5OWZiOTIxNWU2NDgwOTlmMWRhMjI5MWM0MGQ5YTFmZGU4OWY2
ODg3Li5lOTJhMDJhZGQ2NDdlNjRlZGMyNDYyY2M0NTQ3ODM4ZjJkNGQ5NDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCkBAIC0yOCw3ICsyOCw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRP
dmVyZmxvdyB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBzaXplX3QgcGFzc2VkSW5saW5lQ2FwYWNpdHkg
PSA4PgorY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZSA6IHB1YmxpYyBSZWNvcmRP
dmVyZmxvdyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIp
OwogICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOwogICAgIFdU
Rl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwpAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBNYXJrZWRB
cmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7CiAKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
aW5saW5lQ2FwYWNpdHkgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGlubGluZUNh
cGFjaXR5ID0gcGFzc2VkSW5saW5lQ2FwYWNpdHk7CiAgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtl
ZEFyZ3VtZW50QnVmZmVyKj4gTGlzdFNldDsKIAogICAgIC8vIENvbnN0cnVjdG9yIGZvciBhIHJl
YWQtd3JpdGUgbGlzdCwgdG8gd2hpY2ggeW91IG1heSBhcHBlbmQgdmFsdWVzLgpAQCAtMTgyLDYg
KzE4Myw4IEBAIGNsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJm
bG93IHsKICAgICBMaXN0U2V0KiBtX21hcmtTZXQ7CiB9OwogCit1c2luZyBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciA9IE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8PjsKKwogY2xhc3MgQXJnTGlz
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNsYXNzIEludGVy
cHJldGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApp
bmRleCA3ZjZmMmExMWUzNjVkYmUwY2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0Li40NGIzY2U3ODRh
ODdiMzU5NWRlNWZiNDlhN2ExYjk1Mjg3ODIyNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkpT
QXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpdGVy
YWxQYXJzZXIuaCIKLSNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9i
amVjdENvbnN0cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5Lmgi
CiAjaW5jbHVkZSAiVk1JbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgpAQCAtODgsMjEgKzg4LDI1IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsKICAgICBjbGFzcyBI
b2xkZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBSb290SG9sZGVyVGFnIHsgUm9vdEhv
bGRlciB9OwotICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOworICAg
ICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVyZSopOwogICAg
ICAgICBIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqKTsKIAogICAgICAgICBKU09iamVj
dCogb2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICAgICAgYm9vbCBpc0Fy
cmF5KCkgY29uc3QgeyByZXR1cm4gbV9pc0FycmF5OyB9CisgICAgICAgIGJvb2wgaXNGYXN0T2Jq
ZWN0UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0UHJvcGVydGllczsg
fQogCiAgICAgICAgIGJvb2wgYXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiwgU3RyaW5n
QnVpbGRlciYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0Owot
ICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5OwotICAgICAgICBjb25zdCBib29sIG1faXNB
cnJheTsKKyAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9OworICAgICAgICBT
dHJ1Y3R1cmUqIG1fc3RydWN0dXJlIHsgbnVsbHB0ciB9OworICAgICAgICBjb25zdCBib29sIG1f
aXNKU0FycmF5IHsgZmFsc2UgfTsKKyAgICAgICAgY29uc3QgYm9vbCBtX2lzQXJyYXkgeyBmYWxz
ZSB9OworICAgICAgICBib29sIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyB7IGZhbHNlIH07CiAg
ICAgICAgIHVuc2lnbmVkIG1faW5kZXggeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fc2l6ZSB7
IDAgfTsKICAgICAgICAgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9wcm9wZXJ0eU5h
bWVzOworICAgICAgICBWZWN0b3I8c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1bnNpZ25lZD4sIDg+
IG1fcHJvcGVydGllc0FuZE9mZnNldHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBIb2xk
ZXI7CkBAIC0xMjUsNyArMTI5LDcgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIENhbGxEYXRh
IG1fcmVwbGFjZXJDYWxsRGF0YTsKICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBtX29iamVjdFN0YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNp
emU8MTY+IG1fb2JqZWN0U3RhY2s7CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVuc2FmZVZlY3Rv
ck92ZXJmbG93PiBtX2hvbGRlclN0YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVkR2FwOwogICAg
IFN0cmluZyBtX2luZGVudDsKQEAgLTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZpZXI6OlN0cmlu
Z2lmeVJlc3VsdCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJpbmdCdWls
ZGVyJgogICAgIH0KIAogICAgIGJvb2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1faG9sZGVyU3Rh
Y2suaXNFbXB0eSgpOwotICAgIG1faG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlcihtX2dsb2JhbE9i
amVjdCwgb2JqZWN0KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVj
dHVyZSh2bSk7CisgICAgbV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFsT2JqZWN0
LCBvYmplY3QsIHN0cnVjdHVyZSkpOwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNo
T25PdmVyZmxvdyhvYmplY3QpOworICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25P
dmVyZmxvdyhzdHJ1Y3R1cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmlu
Z2lmeUZhaWxlZCk7CiAgICAgaWYgKCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAgICAgICByZXR1
cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmluZ2lmaWVyOjpT
dHJpbmdpZnlSZXN1bHQgU3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUoU3RyaW5n
QnVpbGRlciYKICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAgICAgICAgIG1f
aG9sZGVyU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBtX29iamVjdFN0YWNrLnJlbW92ZUxh
c3QoKTsKKyAgICAgICAgbV9vYmplY3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3aGlsZSAo
IW1faG9sZGVyU3RhY2suaXNFbXB0eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVk
OwogfQpAQCAtNDU1LDggKzQ2Miw5IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVyOjpzdGFydE5l
d0xpbmUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZCht
X2luZGVudCk7CiB9CiAKLWlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGluZSBTdHJpbmdp
Zmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIG9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVjdChvYmplY3Qp
CisgICAgLCBtX3N0cnVjdHVyZShzdHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJheShpc0pTQXJy
YXkob2JqZWN0KSkKICAgICAsIG1faXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFsT2JqZWN0LCBv
YmplY3QpKQogewpAQCAtNDY0LDggKzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVy
OjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjCiAK
IGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmpl
Y3QqIG9iamVjdCkKICAgICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNKU0FycmF5KGZh
bHNlKQotICAgICwgbV9pc0FycmF5KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUgKzQ5NiwyOSBA
QCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmll
ciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBs
YWNlcikKKyAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikg
ewogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVyLm1fYXJyYXlS
ZXBsYWNlclByb3BlcnR5TmFtZXMuZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5z
aXplKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1fb2JqZWN0LT5z
dHJ1Y3R1cmVJRCgpID09IG1fc3RydWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1GYXN0UHJvcGVy
dHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7CisgICAgICAgICAg
ICAgICAgbV9zdHJ1Y3R1cmUtPmZvckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0IFByb3BlcnR5
TWFwRW50cnkmIGVudHJ5KSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5
LmF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKGVudHJ5LmtleSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNvbnN0cnVjdEFu
ZEFwcGVuZChJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRyeS5vZmZzZXQp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVlOworICAgICAg
ICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgpOworICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBvYmplY3RQ
cm9wZXJ0eU5hbWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9s
TW9kZTo6RXhjbHVkZSk7CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlOYW1lcyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBvYmplY3RQcm9w
ZXJ0eU5hbWVzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAg
bV9wcm9wZXJ0eU5hbWVzID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgpOworICAg
ICAgICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9y
KCkuc2l6ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0
eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgneycpOwogICAgICAgICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmluZGVudCgpOwpA
QCAtNTM4LDEwICs1NTgsMjMgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0
UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgc3Ry
aW5naWZ5UmVzdWx0ID0gc3RyaW5naWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1ZShidWlsZGVy
LCB2YWx1ZSwgKnRoaXMsIGluZGV4KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lmeVJlc3VsdCAh
PSBTdHJpbmdpZnlGYWlsZWREdWVUb1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5kZXhdOwot
ICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAg
ICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUgdmFsdWU7Cisg
ICAgICAgIGlmIChtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHByb3Bl
cnR5TmFtZSA9IHN0ZDo6Z2V0PDA+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAg
ICAgICAgICAgIGlmIChtX29iamVjdC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVjdHVyZS0+aWQo
KSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0PDE+KG1fcHJv
cGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fb2Jq
ZWN0LT5nZXREaXJlY3Qob2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgdmFsdWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsK
KyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIHZhbHVl
LgorICAgICAgICAgICAgcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5h
bWVWZWN0b3IoKVtpbmRleF07CisgICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXQoZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZmFsc2UpOworICAgICAgICB9CiAKICAgICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1
aWxkZXIubGVuZ3RoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggNzIzYzQxMzE1MGVjNWYwOTg0
NjVkMzMxM2JkNGYzNTY3ZGUxMzkzZC4uNTIyNzMzYzE5YjBmYTQ1NTI0M2QxYTllNDhlZmE1YTBk
NjA1ZDk4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmgKQEAgLTUzLDYgKzUzLDExIEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JPYmplY3RBc3NpZ24o
U3RydWN0dXJlKiBzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBj
YW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JKU09OU3RyaW5naWZ5KFN0cnVjdHVy
ZSogc3RydWN0dXJlKQoreworICAgIHJldHVybiBjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVy
YXRpb25Gb3JPYmplY3RBc3NpZ24oc3RydWN0dXJlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lk
IG9iamVjdEFzc2lnbkZhc3QoVk0mIHZtLCBKU09iamVjdCogdGFyZ2V0LCBKU09iamVjdCogc291
cmNlLCBWZWN0b3I8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiwgOD4mIHByb3BlcnRpZXMsIE1h
cmtlZEFyZ3VtZW50QnVmZmVyJiB2YWx1ZXMpCiB7CiAgICAgLy8gfHNvdXJjZXwgU3RydWN0dXJl
IGRvZXMgbm90IGhhdmUgYW55IGdldHRlcnMuIEFuZCB0YXJnZXQgY2FuIHBlcmZvcm0gZmFzdCBw
dXQuCg==
</data>
<flag name="commit-queue"
          id="461828"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438451</attachid>
            <date>2021-09-17 01:36:55 -0700</date>
            <delta_ts>2021-09-17 01:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917013654.patch</filename>
            <type>text/plain</type>
            <size>11167</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi40NmUyNWQwZTVkMDQ4MThk
ODYyODZiYzA2OWMxZTU1YTJjZWJiNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvQXJnTGlzdC5oOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6TWFya2VkQXJndW1lbnRCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlcjo6fk1hcmtlZEFyZ3VtZW50QnVmZmVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNpemUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6aXNFbXB0eSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpjbGVhcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphcHBlbmRXaXRoQWN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjphcHBlbmRXaXRoQ3Jh
c2hPbk92ZXJmbG93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OnJlbW92ZUxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6bGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
Ojp0YWtlTGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
OjplbnN1cmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyOjpoYXNPdmVyZmxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXI6Om92ZXJmbG93Q2hlY2tOb3ROZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZmlsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzbG90Rm9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6Om1hbGxvY0Jhc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2V0TmVlZHNPdmVyZmxvd0NoZWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmNsZWFyTmVlZHNPdmVy
Zmxvd0NoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjppc0Zhc3RPYmplY3RQcm9wZXJ0aWVz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFs
dWUpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIpOgorICAgICAg
ICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNh
blBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkpOgorCiAyMDIx
LTA5LTE2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4MjQ3OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ0xpc3QuaAppbmRleCA5OWZiOTIxNWU2NDgwOTlmMWRhMjI5MWM0MGQ5YTFmZGU4OWY2
ODg3Li5jNzRmZGJhMzY1ZWI5MjFkMjUzMTU2OTk1MjA5OWQ3ZTM0ZWYwYWQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCkBAIC0yOCw3ICsyOCw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRP
dmVyZmxvdyB7Cit0ZW1wbGF0ZTxzaXplX3QgcGFzc2VkSW5saW5lQ2FwYWNpdHkgPSA4PgorY2xh
c3MgTWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZSA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOwogICAgIFdU
Rl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOwogICAgIFdURl9GT1JCSURf
SEVBUF9BTExPQ0FUSU9OOwpAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1
ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNl
ID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5saW5lQ2Fw
YWNpdHkgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0g
cGFzc2VkSW5saW5lQ2FwYWNpdHk7CiAgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50
QnVmZmVyKj4gTGlzdFNldDsKIAogICAgIC8vIENvbnN0cnVjdG9yIGZvciBhIHJlYWQtd3JpdGUg
bGlzdCwgdG8gd2hpY2ggeW91IG1heSBhcHBlbmQgdmFsdWVzLgpAQCAtMTgyLDYgKzE4Myw4IEBA
IGNsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJmbG93IHsKICAg
ICBMaXN0U2V0KiBtX21hcmtTZXQ7CiB9OwogCit1c2luZyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA9
IE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8PjsKKwogY2xhc3MgQXJnTGlzdCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNsYXNzIEludGVycHJldGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3ZjZm
MmExMWUzNjVkYmUwY2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0Li40NGIzY2U3ODRhODdiMzU5NWRl
NWZiNDlhN2ExYjk1Mjg3ODIyNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXlJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIu
aCIKLSNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9iamVjdENvbnN0
cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVk
ZSAiVk1JbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAt
ODgsMjEgKzg4LDI1IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsKICAgICBjbGFzcyBIb2xkZXIgewog
ICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBSb290SG9sZGVyVGFnIHsgUm9vdEhvbGRlciB9Owot
ICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOworICAgICAgICBIb2xk
ZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICBIb2xk
ZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqKTsKIAogICAgICAgICBKU09iamVjdCogb2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICAgICAgYm9vbCBpc0FycmF5KCkgY29u
c3QgeyByZXR1cm4gbV9pc0FycmF5OyB9CisgICAgICAgIGJvb2wgaXNGYXN0T2JqZWN0UHJvcGVy
dGllcygpIGNvbnN0IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0UHJvcGVydGllczsgfQogCiAgICAg
ICAgIGJvb2wgYXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiwgU3RyaW5nQnVpbGRlciYp
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0OwotICAgICAgICBj
b25zdCBib29sIG1faXNKU0FycmF5OwotICAgICAgICBjb25zdCBib29sIG1faXNBcnJheTsKKyAg
ICAgICAgSlNPYmplY3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9OworICAgICAgICBTdHJ1Y3R1cmUq
IG1fc3RydWN0dXJlIHsgbnVsbHB0ciB9OworICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5
IHsgZmFsc2UgfTsKKyAgICAgICAgY29uc3QgYm9vbCBtX2lzQXJyYXkgeyBmYWxzZSB9OworICAg
ICAgICBib29sIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyB7IGZhbHNlIH07CiAgICAgICAgIHVu
c2lnbmVkIG1faW5kZXggeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fc2l6ZSB7IDAgfTsKICAg
ICAgICAgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9wcm9wZXJ0eU5hbWVzOworICAg
ICAgICBWZWN0b3I8c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1bnNpZ25lZD4sIDg+IG1fcHJvcGVy
dGllc0FuZE9mZnNldHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBIb2xkZXI7CkBAIC0x
MjUsNyArMTI5LDcgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIENhbGxEYXRhIG1fcmVwbGFj
ZXJDYWxsRGF0YTsKICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBtX29iamVjdFN0YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8MTY+IG1f
b2JqZWN0U3RhY2s7CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVuc2FmZVZlY3Rvck92ZXJmbG93
PiBtX2hvbGRlclN0YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVkR2FwOwogICAgIFN0cmluZyBt
X2luZGVudDsKQEAgLTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZpZXI6OlN0cmluZ2lmeVJlc3Vs
dCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJpbmdCdWlsZGVyJgogICAg
IH0KIAogICAgIGJvb2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1faG9sZGVyU3RhY2suaXNFbXB0
eSgpOwotICAgIG1faG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlcihtX2dsb2JhbE9iamVjdCwgb2Jq
ZWN0KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7
CisgICAgbV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFsT2JqZWN0LCBvYmplY3Qs
IHN0cnVjdHVyZSkpOwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxv
dyhvYmplY3QpOworICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhz
dHJ1Y3R1cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZ2lmeUZhaWxl
ZCk7CiAgICAgaWYgKCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAgICAgICByZXR1cm4gU3RyaW5n
aWZ5U3VjY2VlZGVkOwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZnlS
ZXN1bHQgU3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUoU3RyaW5nQnVpbGRlciYK
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAgICAgICAgIG1faG9sZGVyU3Rh
Y2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBtX29iamVjdFN0YWNrLnJlbW92ZUxhc3QoKTsKKyAg
ICAgICAgbV9vYmplY3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3aGlsZSAoIW1faG9sZGVy
U3RhY2suaXNFbXB0eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwogfQpAQCAt
NDU1LDggKzQ2Miw5IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVyOjpzdGFydE5ld0xpbmUoU3Ry
aW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChtX2luZGVudCk7
CiB9CiAKLWlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGluZSBTdHJpbmdpZmllcjo6SG9s
ZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVjdChvYmplY3QpCisgICAgLCBt
X3N0cnVjdHVyZShzdHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJheShpc0pTQXJyYXkob2JqZWN0
KSkKICAgICAsIG1faXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFsT2JqZWN0LCBvYmplY3QpKQog
ewpAQCAtNDY0LDggKzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjCiAKIGlubGluZSBT
dHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqIG9iamVj
dCkKICAgICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNKU0FycmF5KGZhbHNlKQotICAg
ICwgbV9pc0FycmF5KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUgKzQ5NiwyOSBAQCBib29sIFN0
cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5n
aWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikKKyAg
ICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikgewogICAgICAg
ICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVyLm1fYXJyYXlSZXBsYWNlclBy
b3BlcnR5TmFtZXMuZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
bV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1fb2JqZWN0LT5zdHJ1Y3R1cmVJ
RCgpID09IG1fc3RydWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJh
dGlvbkZvckpTT05TdHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7CisgICAgICAgICAgICAgICAgbV9z
dHJ1Y3R1cmUtPmZvckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0IFByb3BlcnR5TWFwRW50cnkm
IGVudHJ5KSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmF0dHJpYnV0
ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKGVudHJ5LmtleSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgICAgICAgICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNvbnN0cnVjdEFuZEFwcGVuZChJ
ZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRyeS5vZmZzZXQpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICBtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICAgICAgICAg
IG1fc2l6ZSA9IG1fcHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgpOworICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBvYmplY3RQcm9wZXJ0eU5h
bWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhj
bHVkZSk7CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3du
UHJvcGVydHlOYW1lcyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBvYmplY3RQcm9wZXJ0eU5hbWVz
LCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0
eU5hbWVzID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgpOworICAgICAgICAgICAg
ICAgIG1fc2l6ZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKCkuc2l6ZSgp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5w
cm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
eycpOwogICAgICAgICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmluZGVudCgpOwpAQCAtNTM4LDEw
ICs1NTgsMjMgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHko
U3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgc3RyaW5naWZ5UmVz
dWx0ID0gc3RyaW5naWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1ZShidWlsZGVyLCB2YWx1ZSwg
KnRoaXMsIGluZGV4KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lmeVJlc3VsdCAhPSBTdHJpbmdp
ZnlGYWlsZWREdWVUb1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIC8vIEdldCB0aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZpZXImIHByb3BlcnR5TmFtZSA9
IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5kZXhdOwotICAgICAgICBK
U1ZhbHVlIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUgdmFsdWU7CisgICAgICAgIGlm
IChtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9
IHN0ZDo6Z2V0PDA+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAg
IGlmIChtX29iamVjdC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVjdHVyZS0+aWQoKSkgeworICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0PDE+KG1fcHJvcGVydGllc0Fu
ZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXRE
aXJlY3Qob2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFs
dWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIHZhbHVlLgorICAgICAg
ICAgICAgcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3Io
KVtpbmRleF07CisgICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOworICAgICAgICB9CiAKICAgICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1aWxkZXIubGVu
Z3RoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggNzIzYzQxMzE1MGVjNWYwOTg0NjVkMzMxM2Jk
NGYzNTY3ZGUxMzkzZC4uNTIyNzMzYzE5YjBmYTQ1NTI0M2QxYTllNDhlZmE1YTBkNjA1ZDk4OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3JJbmxpbmVzLmgKQEAgLTUzLDYgKzUzLDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBj
YW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JPYmplY3RBc3NpZ24oU3RydWN0dXJl
KiBzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBjYW5QZXJmb3Jt
RmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JKU09OU3RyaW5naWZ5KFN0cnVjdHVyZSogc3RydWN0
dXJlKQoreworICAgIHJldHVybiBjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JP
YmplY3RBc3NpZ24oc3RydWN0dXJlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIG9iamVjdEFz
c2lnbkZhc3QoVk0mIHZtLCBKU09iamVjdCogdGFyZ2V0LCBKU09iamVjdCogc291cmNlLCBWZWN0
b3I8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiwgOD4mIHByb3BlcnRpZXMsIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyJiB2YWx1ZXMpCiB7CiAgICAgLy8gfHNvdXJjZXwgU3RydWN0dXJlIGRvZXMgbm90
IGhhdmUgYW55IGdldHRlcnMuIEFuZCB0YXJnZXQgY2FuIHBlcmZvcm0gZmFzdCBwdXQuCg==
</data>
<flag name="commit-queue"
          id="461830"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438452</attachid>
            <date>2021-09-17 01:51:18 -0700</date>
            <delta_ts>2021-09-17 03:49:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917015116.patch</filename>
            <type>text/plain</type>
            <size>19135</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi4yZGU3MDAyODUyZDdkNjM1
ZWYwMmE5MmExNWJiN2EwZmNjMDI1MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFkZENvcmVDb25z
dHJhaW50cyk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaGVhcC9IZWFwSW5s
aW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJnTGlzdC5jcHA6CisgICAgICAgIChKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6YWRkTWFya1NldCk6CisgICAgICAgIChKU0M6Ok1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZTo6bWFya0xpc3RzKToKKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlOjpzbG93RW5zdXJlQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXJCYXNlOjpzbG93QXBwZW5kKToKKyAgICAgICAgKEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXI6OmFkZE1hcmtTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzbG93QXBwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXJXaXRoU2l6ZTo6TWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZSk6CisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjp+TWFya2VkQXJndW1lbnRC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2l6
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpp
c0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6
OmFwcGVuZFdpdGhBY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXI6OmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6cmVtb3ZlTGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpsYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OnRha2VMYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OmVuc3VyZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6Omhhc092ZXJmbG93ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6b3ZlcmZsb3dDaGVja05vdE5lZWRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpmaWxsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3RGb3IgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFsbG9jQmFz
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzZXROZWVk
c092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6Y2xlYXJOZWVkc092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6Omlz
RmFzdE9iamVjdFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6
YXBwZW5kU3RyaW5naWZpZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xk
ZXI6OkhvbGRlcik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5l
eHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6Y2FuUGVyZm9ybUZhc3RQcm9wZXJ0eUVudW1lcmF0aW9uRm9ySlNP
TlN0cmluZ2lmeSk6CisKIDIwMjEtMDktMTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgyNDc4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCBhMDdiMzcyNDZhYzJiZTAxYWEyNDE1MWZi
YWEzNWZkYTkyZjNmYmJkLi4wZWNmOGJkNjk4ZjUwNGFmNWFmMjZjODQ0MTM2YzI1YmY0OTg3MTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMjc2Nyw3ICsyNzY3LDcgQEAg
dm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpIHsKICAgICAgICAg
ICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFy
a1JlYXNvbjo6Q29uc2VydmF0aXZlU2Nhbik7Ci0gICAgICAgICAgICAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXI6Om1hcmtMaXN0cyh2aXNpdG9yLCAqbV9tYXJrTGlzdFNldCk7CisgICAgICAgICAg
ICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjptYXJrTGlzdHModmlzaXRvciwgKm1fbWFy
a0xpc3RTZXQpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmgKaW5kZXggNzQ0ZjNiZmVmZjVlNmExMTg4ZWMwYWZmNzI2NjVmYjE4MDYxZGIy
Mi4uMDgxZGY0NmVkZmZmYWExMDA4YjhmZWFlZjIzNDFlZWZjMDEzZDI3NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuaApAQCAtNzcsNyArNzcsNyBAQCBjbGFzcyBNYXJrU3RhY2tBcnJheTsK
IGNsYXNzIE1hcmtTdGFja01lcmdpbmdDb25zdHJhaW50OwogY2xhc3MgTWFya2VkSlNWYWx1ZVJl
ZkFycmF5OwogY2xhc3MgQmxvY2tEaXJlY3Rvcnk7Ci1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZl
cjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTsKIGNsYXNzIE1hcmtpbmdDb25zdHJh
aW50OwogY2xhc3MgTWFya2luZ0NvbnN0cmFpbnRTZXQ7CiBjbGFzcyBNdXRhdG9yU2NoZWR1bGVy
OwpAQCAtMjQ1LDcgKzI0NSw3IEBAIGNsYXNzIEhlYXAgewogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0ZDo6dW5pcXVlX3B0cjxUeXBlQ291bnRTZXQ+IHByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMo
KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnVuaXF1ZV9wdHI8VHlwZUNvdW50U2V0PiBv
YmplY3RUeXBlQ291bnRzKCk7CiAKLSAgICBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4m
IG1hcmtMaXN0U2V0KCk7CisgICAgSGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPiYg
bWFya0xpc3RTZXQoKTsKICAgICB2b2lkIGFkZE1hcmtlZEpTVmFsdWVSZWZBcnJheShNYXJrZWRK
U1ZhbHVlUmVmQXJyYXkqKTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2
b2lkIGZvckVhY2hQcm90ZWN0ZWRDZWxsKGNvbnN0IEZ1bmN0b3ImKTsKQEAgLTYyNCw3ICs2MjQs
NyBAQCBjbGFzcyBIZWFwIHsKICAgICBIYXNoU2V0PGNvbnN0IEpTQ2VsbCo+IG1fY29weWluZ1Jl
bWVtYmVyZWRTZXQ7CiAKICAgICBQcm90ZWN0Q291bnRTZXQgbV9wcm90ZWN0ZWRWYWx1ZXM7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPj4gbV9tYXJr
TGlzdFNldDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZl
ckJhc2UqPj4gbV9tYXJrTGlzdFNldDsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8TWFya2VkSlNW
YWx1ZVJlZkFycmF5LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+
PiBtX21hcmtlZEpTVmFsdWVSZWZBcnJheXM7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFjaGlu
ZVRocmVhZHM+IG1fbWFjaGluZVRocmVhZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cElubGluZXMuaAppbmRleCAxZDc3MGVhNjk4MmM4Mzg0NTk5ZWU1YzU3NGM0NmZjYmVhNGNiMzk4
Li43MWJlZDFjZTI1YzQ3MzkwZDMxZTU5MjM4MWU3YmY5YTMzM2EwYWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgKQEAgLTIxNSwxMCArMjE1LDEwIEBAIGlubGlu
ZSB2b2lkIEhlYXA6OmRlY3JlbWVudERlZmVycmFsRGVwdGhBbmRHQ0lmTmVlZGVkKCkKICAgICB9
CiB9CiAKLWlubGluZSBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4mIEhlYXA6Om1hcmtM
aXN0U2V0KCkKK2lubGluZSBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSo+JiBIZWFw
OjptYXJrTGlzdFNldCgpCiB7CiAgICAgaWYgKCFtX21hcmtMaXN0U2V0KQotICAgICAgICBtX21h
cmtMaXN0U2V0ID0gbWFrZVVuaXF1ZTxIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4+KCk7
CisgICAgICAgIG1fbWFya0xpc3RTZXQgPSBtYWtlVW5pcXVlPEhhc2hTZXQ8TWFya2VkQXJndW1l
bnRCdWZmZXJCYXNlKj4+KCk7CiAgICAgcmV0dXJuICptX21hcmtMaXN0U2V0OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCmluZGV4IDUxYWJjNWExM2NiNmY5
ZWMwZDgyNTVmNTFlYzBkZjliMzRhZDE2ODEuLmYyODE1YjgwYzhjNzk3NzY0NGJkMGVmMmUzMjZk
YTE0MmU0NTc5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z0xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3Bw
CkBAIC0yNyw3ICsyNyw3IEBAIHVzaW5nIHN0ZDo6bWluOwogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YWRkTWFya1NldChKU1ZhbHVlIHYpCit2b2lkIE1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6YWRkTWFya1NldChKU1ZhbHVlIHYpCiB7CiAgICAgaWYg
KG1fbWFya1NldCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTIsMjAgKzUyLDIwIEBAIHZvaWQgQXJn
TGlzdDo6Z2V0U2xpY2UoaW50IHN0YXJ0SW5kZXgsIEFyZ0xpc3QmIHJlc3VsdCkgY29uc3QKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6
Om1hcmtMaXN0cyhWaXNpdG9yJiB2aXNpdG9yLCBMaXN0U2V0JiBtYXJrU2V0KQordm9pZCBNYXJr
ZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1hcmtMaXN0cyhWaXNpdG9yJiB2aXNpdG9yLCBMaXN0U2V0
JiBtYXJrU2V0KQogewogICAgIExpc3RTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1hcmtTZXQuZW5kKCk7
CiAgICAgZm9yIChMaXN0U2V0OjppdGVyYXRvciBpdCA9IG1hcmtTZXQuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyKiBsaXN0ID0gKml0Owor
ICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqIGxpc3QgPSAqaXQ7CiAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbGlzdC0+bV9zaXplOyArK2kpCiAgICAgICAgICAgICB2aXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkKEpTVmFsdWU6OmRlY29kZShsaXN0LT5zbG90Rm9yKGkpKSk7CiAg
ICAgfQogfQogCi10ZW1wbGF0ZSB2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYXJrTGlzdHMo
QWJzdHJhY3RTbG90VmlzaXRvciYsIExpc3RTZXQmKTsKLXRlbXBsYXRlIHZvaWQgTWFya2VkQXJn
dW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhTbG90VmlzaXRvciYsIExpc3RTZXQmKTsKK3RlbXBsYXRl
IHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjptYXJrTGlzdHMoQWJzdHJhY3RTbG90Vmlz
aXRvciYsIExpc3RTZXQmKTsKK3RlbXBsYXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNl
OjptYXJrTGlzdHMoU2xvdFZpc2l0b3ImLCBMaXN0U2V0Jik7CiAKLXZvaWQgTWFya2VkQXJndW1l
bnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eShzaXplX3QgcmVxdWVzdGVkQ2FwYWNpdHkpCit2
b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVfdCBy
ZXF1ZXN0ZWRDYXBhY2l0eSkKIHsKICAgICBzZXROZWVkc092ZXJmbG93Q2hlY2soKTsKICAgICBh
dXRvIGNoZWNrZWROZXdDYXBhY2l0eSA9IENoZWNrZWRJbnQzMihyZXF1ZXN0ZWRDYXBhY2l0eSk7
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVD
YXBhY2l0eShzaXplX3QgcmVxdWVzdGVkQ2FwYWNpdHkpCiAgICAgZXhwYW5kQ2FwYWNpdHkoY2hl
Y2tlZE5ld0NhcGFjaXR5KTsKIH0KIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZXhwYW5k
Q2FwYWNpdHkoKQordm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5
KCkKIHsKICAgICBzZXROZWVkc092ZXJmbG93Q2hlY2soKTsKICAgICBhdXRvIGNoZWNrZWROZXdD
YXBhY2l0eSA9IENoZWNrZWRJbnQzMihtX2NhcGFjaXR5KSAqIDI7CkBAIC04Myw3ICs4Myw3IEBA
IHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KCkKICAgICBleHBhbmRD
YXBhY2l0eShjaGVja2VkTmV3Q2FwYWNpdHkpOwogfQogCi12b2lkIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyOjpleHBhbmRDYXBhY2l0eShpbnQgbmV3Q2FwYWNpdHkpCit2b2lkIE1hcmtlZEFyZ3VtZW50
QnVmZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHkoaW50IG5ld0NhcGFjaXR5KQogewogICAgIHNldE5l
ZWRzT3ZlcmZsb3dDaGVjaygpOwogICAgIEFTU0VSVChtX2NhcGFjaXR5IDwgbmV3Q2FwYWNpdHkp
OwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENh
cGFjaXR5KGludCBuZXdDYXBhY2l0eSkKICAgICBtX2NhcGFjaXR5ID0gbmV3Q2FwYWNpdHk7CiB9
CiAKLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQordm9p
ZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQogewogICAg
IEFTU0VSVChtX3NpemUgPD0gbV9jYXBhY2l0eSk7CiAgICAgaWYgKG1fc2l6ZSA9PSBtX2NhcGFj
aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCmluZGV4IDk5ZmI5MjE1
ZTY0ODA5OWYxZGEyMjkxYzQwZDlhMWZkZTg5ZjY4ODcuLmQyM2RmZDYyNDg1Y2Q2YTgxYjY2MGEw
MzhjNmFlMWQ5ZDA1MTE1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0
LmgKQEAgLTI4LDI5ICsyOCwyOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgTWFya2Vk
QXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKE1hcmtlZEFyZ3VtZW50QnVmZmVyKTsKLSAgICBXVEZfTUFLRV9OT05NT1ZBQkxF
KE1hcmtlZEFyZ3VtZW50QnVmZmVyKTsKK2NsYXNzIGFsaWduYXMoYWxpZ25vZihFbmNvZGVkSlNW
YWx1ZSkpIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKTsKKyAg
ICBXVEZfTUFLRV9OT05NT1ZBQkxFKE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSk7CiAgICAgV1RG
X0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiAgICAgZnJpZW5kIGNsYXNzIFZNOwogICAgIGZyaWVu
ZCBjbGFzcyBBcmdMaXN0OwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFJlY29yZE92ZXJm
bG93OwotICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gODsKLSAg
ICB0eXBlZGVmIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPiBMaXN0U2V0OworICAgIHR5
cGVkZWYgSGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPiBMaXN0U2V0OwogCiAgICAg
Ly8gQ29uc3RydWN0b3IgZm9yIGEgcmVhZC13cml0ZSBsaXN0LCB0byB3aGljaCB5b3UgbWF5IGFw
cGVuZCB2YWx1ZXMuCiAgICAgLy8gRklYTUU6IFJlbW92ZSBhbGwgY2xpZW50cyBvZiB0aGlzIEFQ
SSwgdGhlbiByZW1vdmUgdGhpcyBBUEkuCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZShzaXplX3QgY2FwYWNpdHkpCiAgICAgICAgIDogbV9z
aXplKDApCi0gICAgICAgICwgbV9jYXBhY2l0eShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgLCBt
X2J1ZmZlcihtX2lubGluZUJ1ZmZlcikKKyAgICAgICAgLCBtX2NhcGFjaXR5KGNhcGFjaXR5KQor
ICAgICAgICAsIG1fYnVmZmVyKGlubGluZUJ1ZmZlcigpKQogICAgICAgICAsIG1fbWFya1NldChu
dWxscHRyKQogICAgIHsKICAgICB9CiAKLSAgICB+TWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAg
IH5NYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UoKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX25l
ZWRzT3ZlcmZsb3dDaGVjayk7CiAgICAgICAgIGlmIChtX21hcmtTZXQpCkBAIC0xNDUsNiArMTQ0
LDEyIEBAIGNsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJmbG93
IHsKICAgICAgICAgZnVuYyhyZWludGVycHJldF9jYXN0PEpTVmFsdWUqPigmc2xvdEZvcigwKSkp
OwogICAgIH0KIAorcHJvdGVjdGVkOgorICAgIEVuY29kZWRKU1ZhbHVlKiBpbmxpbmVCdWZmZXIo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KGJp
dHdpc2VfY2FzdDx1aW50OF90Kj4odGhpcykgKyBzaXplb2YoTWFya2VkQXJndW1lbnRCdWZmZXJC
YXNlKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoKTsKICAg
ICB2b2lkIGV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0eSk7CkBAIC0xNjEsNyArMTY2LDcg
QEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewog
ICAgICAgICAKICAgICBFbmNvZGVkSlNWYWx1ZSogbWFsbG9jQmFzZSgpCiAgICAgewotICAgICAg
ICBpZiAobV9idWZmZXIgPT0gbV9pbmxpbmVCdWZmZXIpCisgICAgICAgIGlmIChtX2J1ZmZlciA9
PSBpbmxpbmVCdWZmZXIoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gJnNsb3RGb3IoMCk7CiAgICAgfQpAQCAtMTc3LDExICsxODIsMjcgQEAgY2xhc3MgTWFy
a2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewogI2VuZGlmIC8vIEFT
U0VSVF9FTkFCTEVECiAgICAgaW50IG1fc2l6ZTsKICAgICBpbnQgbV9jYXBhY2l0eTsKLSAgICBF
bmNvZGVkSlNWYWx1ZSBtX2lubGluZUJ1ZmZlcltpbmxpbmVDYXBhY2l0eV07CiAgICAgRW5jb2Rl
ZEpTVmFsdWUqIG1fYnVmZmVyOwogICAgIExpc3RTZXQqIG1fbWFya1NldDsKIH07CiAKK3RlbXBs
YXRlPHNpemVfdCBwYXNzZWRJbmxpbmVDYXBhY2l0eSA9IDg+CitjbGFzcyBNYXJrZWRBcmd1bWVu
dEJ1ZmZlcldpdGhTaXplIDogcHVibGljIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSB7CitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSBwYXNzZWRJ
bmxpbmVDYXBhY2l0eTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemUoKQorICAg
ICAgICA6IE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZShpbmxpbmVDYXBhY2l0eSkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpbmxpbmVCdWZmZXIoKSA9PSBtX2lubGluZUJ1ZmZlcik7CisgICAgfQor
Citwcml2YXRlOgorICAgIEVuY29kZWRKU1ZhbHVlIG1faW5saW5lQnVmZmVyW2lubGluZUNhcGFj
aXR5XSB7IH07Cit9OworCit1c2luZyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA9IE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyV2l0aFNpemU8PjsKKwogY2xhc3MgQXJnTGlzdCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNsYXNzIEludGVycHJldGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3ZjZmMmExMWUzNjVkYmUw
Y2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0Li40NGIzY2U3ODRhODdiMzU5NWRlNWZiNDlhN2ExYjk1
Mjg3ODIyNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKLSNpbmNsdWRl
ICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9ySW5saW5l
cy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiVk1JbmxpbmVz
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtODgsMjEgKzg4LDI1
IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsKICAgICBjbGFzcyBIb2xkZXIgewogICAgIHB1YmxpYzoK
ICAgICAgICAgZW51bSBSb290SG9sZGVyVGFnIHsgUm9vdEhvbGRlciB9OwotICAgICAgICBIb2xk
ZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOworICAgICAgICBIb2xkZXIoSlNHbG9iYWxP
YmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICBIb2xkZXIoUm9vdEhvbGRl
clRhZywgSlNPYmplY3QqKTsKIAogICAgICAgICBKU09iamVjdCogb2JqZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9vYmplY3Q7IH0KICAgICAgICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4g
bV9pc0FycmF5OyB9CisgICAgICAgIGJvb2wgaXNGYXN0T2JqZWN0UHJvcGVydGllcygpIGNvbnN0
IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0UHJvcGVydGllczsgfQogCiAgICAgICAgIGJvb2wgYXBw
ZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiwgU3RyaW5nQnVpbGRlciYpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0OwotICAgICAgICBjb25zdCBib29sIG1f
aXNKU0FycmF5OwotICAgICAgICBjb25zdCBib29sIG1faXNBcnJheTsKKyAgICAgICAgSlNPYmpl
Y3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9OworICAgICAgICBTdHJ1Y3R1cmUqIG1fc3RydWN0dXJl
IHsgbnVsbHB0ciB9OworICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5IHsgZmFsc2UgfTsK
KyAgICAgICAgY29uc3QgYm9vbCBtX2lzQXJyYXkgeyBmYWxzZSB9OworICAgICAgICBib29sIG1f
aXNGYXN0T2JqZWN0UHJvcGVydGllcyB7IGZhbHNlIH07CiAgICAgICAgIHVuc2lnbmVkIG1faW5k
ZXggeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fc2l6ZSB7IDAgfTsKICAgICAgICAgUmVmUHRy
PFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9wcm9wZXJ0eU5hbWVzOworICAgICAgICBWZWN0b3I8
c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1bnNpZ25lZD4sIDg+IG1fcHJvcGVydGllc0FuZE9mZnNl
dHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBIb2xkZXI7CkBAIC0xMjUsNyArMTI5LDcg
QEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIENhbGxEYXRhIG1fcmVwbGFjZXJDYWxsRGF0YTsK
ICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBtX29iamVjdFN0
YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8MTY+IG1fb2JqZWN0U3RhY2s7
CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2hvbGRlclN0
YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVkR2FwOwogICAgIFN0cmluZyBtX2luZGVudDsKQEAg
LTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZpZXI6OlN0cmluZ2lmeVJlc3VsdCBTdHJpbmdpZmll
cjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJpbmdCdWlsZGVyJgogICAgIH0KIAogICAgIGJv
b2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1faG9sZGVyU3RhY2suaXNFbXB0eSgpOwotICAgIG1f
aG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlcihtX2dsb2JhbE9iamVjdCwgb2JqZWN0KSk7CisgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CisgICAgbV9ob2xk
ZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHN0cnVjdHVyZSkp
OwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhvYmplY3QpOwor
ICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhzdHJ1Y3R1cmUpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZ2lmeUZhaWxlZCk7CiAgICAgaWYg
KCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAgICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVk
OwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5n
aWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUoU3RyaW5nQnVpbGRlciYKICAgICAgICAgICAg
IHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAgICAgICAgIG1faG9sZGVyU3RhY2sucmVtb3ZlTGFz
dCgpOwogICAgICAgICBtX29iamVjdFN0YWNrLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgbV9vYmpl
Y3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3aGlsZSAoIW1faG9sZGVyU3RhY2suaXNFbXB0
eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwogfQpAQCAtNDU1LDggKzQ2Miw5
IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVyOjpzdGFydE5ld0xpbmUoU3RyaW5nQnVpbGRlciYg
YnVpbGRlcikgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChtX2luZGVudCk7CiB9CiAKLWlubGlu
ZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVjdChvYmplY3QpCisgICAgLCBtX3N0cnVjdHVyZShz
dHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJheShpc0pTQXJyYXkob2JqZWN0KSkKICAgICAsIG1f
aXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFsT2JqZWN0LCBvYmplY3QpKQogewpAQCAtNDY0LDgg
KzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjCiAKIGlubGluZSBTdHJpbmdpZmllcjo6
SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqIG9iamVjdCkKICAgICA6IG1f
b2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNKU0FycmF5KGZhbHNlKQotICAgICwgbV9pc0FycmF5
KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUgKzQ5NiwyOSBAQCBib29sIFN0cmluZ2lmaWVyOjpI
b2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmlu
Z0J1aQogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikKKyAgICAgICAgICAgIGlm
IChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikgewogICAgICAgICAgICAgICAgIG1f
cHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVyLm1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMu
ZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9zaXplID0gbV9w
cm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1fb2JqZWN0LT5zdHJ1Y3R1cmVJRCgpID09IG1fc3Ry
dWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05T
dHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7CisgICAgICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZv
ckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0IFByb3BlcnR5TWFwRW50cnkmIGVudHJ5KSAtPiBi
b29sIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKGVudHJ5
LmtleSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAg
ICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNvbnN0cnVjdEFuZEFwcGVuZChJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRyeS5vZmZzZXQpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBtX2lz
RmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fc2l6ZSA9IG1f
cHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBvYmplY3RQcm9wZXJ0eU5hbWVzKHZtLCBQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAg
ICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1l
cyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBvYmplY3RQcm9wZXJ0eU5hbWVzLCBEb250RW51bVBy
b3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gb2Jq
ZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgpOworICAgICAgICAgICAgICAgIG1fc2l6ZSA9
IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKCkuc2l6ZSgpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVW
ZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgneycpOwogICAgICAg
ICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmluZGVudCgpOwpAQCAtNTM4LDEwICs1NTgsMjMgQEAg
Ym9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXIm
IHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgc3RyaW5naWZ5UmVzdWx0ID0gc3RyaW5n
aWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1ZShidWlsZGVyLCB2YWx1ZSwgKnRoaXMsIGluZGV4
KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lmeVJlc3VsdCAhPSBTdHJpbmdpZnlGYWlsZWREdWVU
b1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEdldCB0
aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZpZXImIHByb3BlcnR5TmFtZSA9IG1fcHJvcGVydHlO
YW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5kZXhdOwotICAgICAgICBKU1ZhbHVlIHZhbHVl
ID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUgdmFsdWU7CisgICAgICAgIGlmIChtX2lzRmFzdE9i
amVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IHN0ZDo6Z2V0PDA+
KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgIGlmIChtX29iamVj
dC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVjdHVyZS0+aWQoKSkgeworICAgICAgICAgICAgICAg
IHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0PDE+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5k
ZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBtX29iamVj
dC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIHZhbHVlLgorICAgICAgICAgICAgcHJvcGVy
dHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07Cisg
ICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAg
ICAgICB9CiAKICAgICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1aWxkZXIubGVuZ3RoKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3JJbmxpbmVzLmgKaW5kZXggNzIzYzQxMzE1MGVjNWYwOTg0NjVkMzMxM2JkNGYzNTY3ZGUxMzkz
ZC4uNTIyNzMzYzE5YjBmYTQ1NTI0M2QxYTllNDhlZmE1YTBkNjA1ZDk4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxp
bmVzLmgKQEAgLTUzLDYgKzUzLDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBjYW5QZXJmb3JtRmFz
dFByb3BlcnR5RW51bWVyYXRpb25Gb3JPYmplY3RBc3NpZ24oU3RydWN0dXJlKiBzCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBjYW5QZXJmb3JtRmFzdFByb3BlcnR5
RW51bWVyYXRpb25Gb3JKU09OU3RyaW5naWZ5KFN0cnVjdHVyZSogc3RydWN0dXJlKQoreworICAg
IHJldHVybiBjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JPYmplY3RBc3NpZ24o
c3RydWN0dXJlKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIG9iamVjdEFzc2lnbkZhc3QoVk0m
IHZtLCBKU09iamVjdCogdGFyZ2V0LCBKU09iamVjdCogc291cmNlLCBWZWN0b3I8UmVmUHRyPFVu
aXF1ZWRTdHJpbmdJbXBsPiwgOD4mIHByb3BlcnRpZXMsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiB2
YWx1ZXMpCiB7CiAgICAgLy8gfHNvdXJjZXwgU3RydWN0dXJlIGRvZXMgbm90IGhhdmUgYW55IGdl
dHRlcnMuIEFuZCB0YXJnZXQgY2FuIHBlcmZvcm0gZmFzdCBwdXQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438459</attachid>
            <date>2021-09-17 03:49:30 -0700</date>
            <delta_ts>2021-09-17 04:53:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917034930.patch</filename>
            <type>text/plain</type>
            <size>22294</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi4yZGU3MDAyODUyZDdkNjM1
ZWYwMmE5MmExNWJiN2EwZmNjMDI1MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFkZENvcmVDb25z
dHJhaW50cyk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaGVhcC9IZWFwSW5s
aW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJnTGlzdC5jcHA6CisgICAgICAgIChKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6YWRkTWFya1NldCk6CisgICAgICAgIChKU0M6Ok1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZTo6bWFya0xpc3RzKToKKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlOjpzbG93RW5zdXJlQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXJCYXNlOjpzbG93QXBwZW5kKToKKyAgICAgICAgKEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXI6OmFkZE1hcmtTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzbG93QXBwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXJXaXRoU2l6ZTo6TWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZSk6CisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjp+TWFya2VkQXJndW1lbnRC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2l6
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpp
c0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6
OmFwcGVuZFdpdGhBY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXI6OmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6cmVtb3ZlTGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpsYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OnRha2VMYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OmVuc3VyZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6Omhhc092ZXJmbG93ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6b3ZlcmZsb3dDaGVja05vdE5lZWRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpmaWxsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3RGb3IgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFsbG9jQmFz
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzZXROZWVk
c092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6Y2xlYXJOZWVkc092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6Omlz
RmFzdE9iamVjdFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6
YXBwZW5kU3RyaW5naWZpZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xk
ZXI6OkhvbGRlcik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5l
eHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6Y2FuUGVyZm9ybUZhc3RQcm9wZXJ0eUVudW1lcmF0aW9uRm9ySlNP
TlN0cmluZ2lmeSk6CisKIDIwMjEtMDktMTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgyNDc4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGI2YjNiMjE4ZGM5NjVjNTY4YTI4MTZkMmU4MTljOWZjM2M3MjBkZGYuLjc0M2U0
MjU4NTc1NDc1NDUzZjAyMmY0ZTI4ZjlkNTg5YjI1NGUzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9yIEpT
T04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKwogMjAy
MS0wOS0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VS
VElPTiBGQUlMRUQ6IG5zRGF0YSB1bmRlciBEYXRhVVJMUmVzb3VyY2VNZWRpYUxvYWRlcjo6RGF0
YVVSTFJlc291cmNlTWVkaWFMb2FkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApp
bmRleCBhMDdiMzcyNDZhYzJiZTAxYWEyNDE1MWZiYWEzNWZkYTkyZjNmYmJkLi4wZWNmOGJkNjk4
ZjUwNGFmNWFmMjZjODQ0MTM2YzI1YmY0OTg3MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcApAQCAtMjc2Nyw3ICsyNzY3LDcgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWlu
dHMoKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21h
cmtMaXN0U2V0LT5zaXplKCkpIHsKICAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNj
b3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFya1JlYXNvbjo6Q29uc2VydmF0aXZlU2Nhbik7
Ci0gICAgICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyh2aXNpdG9y
LCAqbV9tYXJrTGlzdFNldCk7CisgICAgICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXJC
YXNlOjptYXJrTGlzdHModmlzaXRvciwgKm1fbWFya0xpc3RTZXQpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggNzQ0ZjNiZmVm
ZjVlNmExMTg4ZWMwYWZmNzI2NjVmYjE4MDYxZGIyMi4uMDgxZGY0NmVkZmZmYWExMDA4YjhmZWFl
ZjIzNDFlZWZjMDEzZDI3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNzcsNyAr
NzcsNyBAQCBjbGFzcyBNYXJrU3RhY2tBcnJheTsKIGNsYXNzIE1hcmtTdGFja01lcmdpbmdDb25z
dHJhaW50OwogY2xhc3MgTWFya2VkSlNWYWx1ZVJlZkFycmF5OwogY2xhc3MgQmxvY2tEaXJlY3Rv
cnk7Ci1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZTsKIGNsYXNzIE1hcmtpbmdDb25zdHJhaW50OwogY2xhc3MgTWFya2luZ0NvbnN0cmFp
bnRTZXQ7CiBjbGFzcyBNdXRhdG9yU2NoZWR1bGVyOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIGNsYXNz
IEhlYXAgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6dW5pcXVlX3B0cjxUeXBlQ291bnRT
ZXQ+IHByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBz
dGQ6OnVuaXF1ZV9wdHI8VHlwZUNvdW50U2V0PiBvYmplY3RUeXBlQ291bnRzKCk7CiAKLSAgICBI
YXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4mIG1hcmtMaXN0U2V0KCk7CisgICAgSGFzaFNl
dDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPiYgbWFya0xpc3RTZXQoKTsKICAgICB2b2lkIGFk
ZE1hcmtlZEpTVmFsdWVSZWZBcnJheShNYXJrZWRKU1ZhbHVlUmVmQXJyYXkqKTsKICAgICAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hQcm90ZWN0ZWRDZWxsKGNv
bnN0IEZ1bmN0b3ImKTsKQEAgLTYyNCw3ICs2MjQsNyBAQCBjbGFzcyBIZWFwIHsKICAgICBIYXNo
U2V0PGNvbnN0IEpTQ2VsbCo+IG1fY29weWluZ1JlbWVtYmVyZWRTZXQ7CiAKICAgICBQcm90ZWN0
Q291bnRTZXQgbV9wcm90ZWN0ZWRWYWx1ZXM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8
TWFya2VkQXJndW1lbnRCdWZmZXIqPj4gbV9tYXJrTGlzdFNldDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPj4gbV9tYXJrTGlzdFNldDsKICAg
ICBTZW50aW5lbExpbmtlZExpc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5LCBCYXNpY1Jhd1NlbnRp
bmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+PiBtX21hcmtlZEpTVmFsdWVSZWZBcnJheXM7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFjaGluZVRocmVhZHM+IG1fbWFjaGluZVRocmVhZHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAppbmRleCAxZDc3MGVhNjk4
MmM4Mzg0NTk5ZWU1YzU3NGM0NmZjYmVhNGNiMzk4Li43MWJlZDFjZTI1YzQ3MzkwZDMxZTU5MjM4
MWU3YmY5YTMzM2EwYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVz
LmgKQEAgLTIxNSwxMCArMjE1LDEwIEBAIGlubGluZSB2b2lkIEhlYXA6OmRlY3JlbWVudERlZmVy
cmFsRGVwdGhBbmRHQ0lmTmVlZGVkKCkKICAgICB9CiB9CiAKLWlubGluZSBIYXNoU2V0PE1hcmtl
ZEFyZ3VtZW50QnVmZmVyKj4mIEhlYXA6Om1hcmtMaXN0U2V0KCkKK2lubGluZSBIYXNoU2V0PE1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZSo+JiBIZWFwOjptYXJrTGlzdFNldCgpCiB7CiAgICAgaWYg
KCFtX21hcmtMaXN0U2V0KQotICAgICAgICBtX21hcmtMaXN0U2V0ID0gbWFrZVVuaXF1ZTxIYXNo
U2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4+KCk7CisgICAgICAgIG1fbWFya0xpc3RTZXQgPSBt
YWtlVW5pcXVlPEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKj4+KCk7CiAgICAgcmV0
dXJuICptX21hcmtMaXN0U2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcmdMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z0xpc3QuY3BwCmluZGV4IDUxYWJjNWExM2NiNmY5ZWMwZDgyNTVmNTFlYzBkZjliMzRhZDE2ODEu
LmYyODE1YjgwYzhjNzk3NzY0NGJkMGVmMmUzMjZkYTE0MmU0NTc5MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCkBAIC0yNyw3ICsyNyw3IEBAIHVzaW5nIHN0
ZDo6bWluOwogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6
YWRkTWFya1NldChKU1ZhbHVlIHYpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6YWRk
TWFya1NldChKU1ZhbHVlIHYpCiB7CiAgICAgaWYgKG1fbWFya1NldCkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTIsMjAgKzUyLDIwIEBAIHZvaWQgQXJnTGlzdDo6Z2V0U2xpY2UoaW50IHN0YXJ0SW5k
ZXgsIEFyZ0xpc3QmIHJlc3VsdCkgY29uc3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRv
cj4KLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhWaXNpdG9yJiB2aXNpdG9y
LCBMaXN0U2V0JiBtYXJrU2V0KQordm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1hcmtM
aXN0cyhWaXNpdG9yJiB2aXNpdG9yLCBMaXN0U2V0JiBtYXJrU2V0KQogewogICAgIExpc3RTZXQ6
Oml0ZXJhdG9yIGVuZCA9IG1hcmtTZXQuZW5kKCk7CiAgICAgZm9yIChMaXN0U2V0OjppdGVyYXRv
ciBpdCA9IG1hcmtTZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyKiBsaXN0ID0gKml0OworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ckJhc2UqIGxpc3QgPSAqaXQ7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC0+bV9z
aXplOyArK2kpCiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKEpTVmFsdWU6
OmRlY29kZShsaXN0LT5zbG90Rm9yKGkpKSk7CiAgICAgfQogfQogCi10ZW1wbGF0ZSB2b2lkIE1h
cmtlZEFyZ3VtZW50QnVmZmVyOjptYXJrTGlzdHMoQWJzdHJhY3RTbG90VmlzaXRvciYsIExpc3RT
ZXQmKTsKLXRlbXBsYXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhTbG90
VmlzaXRvciYsIExpc3RTZXQmKTsKK3RlbXBsYXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJC
YXNlOjptYXJrTGlzdHMoQWJzdHJhY3RTbG90VmlzaXRvciYsIExpc3RTZXQmKTsKK3RlbXBsYXRl
IHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjptYXJrTGlzdHMoU2xvdFZpc2l0b3ImLCBM
aXN0U2V0Jik7CiAKLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0
eShzaXplX3QgcmVxdWVzdGVkQ2FwYWNpdHkpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFz
ZTo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVfdCByZXF1ZXN0ZWRDYXBhY2l0eSkKIHsKICAgICBz
ZXROZWVkc092ZXJmbG93Q2hlY2soKTsKICAgICBhdXRvIGNoZWNrZWROZXdDYXBhY2l0eSA9IENo
ZWNrZWRJbnQzMihyZXF1ZXN0ZWRDYXBhY2l0eSk7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgTWFy
a2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eShzaXplX3QgcmVxdWVzdGVkQ2Fw
YWNpdHkpCiAgICAgZXhwYW5kQ2FwYWNpdHkoY2hlY2tlZE5ld0NhcGFjaXR5KTsKIH0KIAotdm9p
ZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZXhwYW5kQ2FwYWNpdHkoKQordm9pZCBNYXJrZWRBcmd1
bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5KCkKIHsKICAgICBzZXROZWVkc092ZXJmbG93
Q2hlY2soKTsKICAgICBhdXRvIGNoZWNrZWROZXdDYXBhY2l0eSA9IENoZWNrZWRJbnQzMihtX2Nh
cGFjaXR5KSAqIDI7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6
OmV4cGFuZENhcGFjaXR5KCkKICAgICBleHBhbmRDYXBhY2l0eShjaGVja2VkTmV3Q2FwYWNpdHkp
OwogfQogCi12b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eShpbnQgbmV3
Q2FwYWNpdHkpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHko
aW50IG5ld0NhcGFjaXR5KQogewogICAgIHNldE5lZWRzT3ZlcmZsb3dDaGVjaygpOwogICAgIEFT
U0VSVChtX2NhcGFjaXR5IDwgbmV3Q2FwYWNpdHkpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQg
TWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0eSkKICAg
ICBtX2NhcGFjaXR5ID0gbmV3Q2FwYWNpdHk7CiB9CiAKLXZvaWQgTWFya2VkQXJndW1lbnRCdWZm
ZXI6OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQordm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6
OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQogewogICAgIEFTU0VSVChtX3NpemUgPD0gbV9jYXBhY2l0
eSk7CiAgICAgaWYgKG1fc2l6ZSA9PSBtX2NhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJnTGlzdC5oCmluZGV4IDk5ZmI5MjE1ZTY0ODA5OWYxZGEyMjkxYzQwZDlhMWZkZTg5
ZjY4ODcuLmQyM2RmZDYyNDg1Y2Q2YTgxYjY2MGEwMzhjNmFlMWQ5ZDA1MTE1NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTI4LDI5ICsyOCwyOCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVj
b3JkT3ZlcmZsb3cgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hcmtlZEFyZ3VtZW50QnVm
ZmVyKTsKLSAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKE1hcmtlZEFyZ3VtZW50QnVmZmVyKTsKK2Ns
YXNzIGFsaWduYXMoYWxpZ25vZihFbmNvZGVkSlNWYWx1ZSkpIE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZSA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKTsKKyAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKE1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZSk7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiAg
ICAgZnJpZW5kIGNsYXNzIFZNOwogICAgIGZyaWVuZCBjbGFzcyBBcmdMaXN0OwogCiBwdWJsaWM6
CiAgICAgdXNpbmcgQmFzZSA9IFJlY29yZE92ZXJmbG93OwotICAgIHN0YXRpYyBjb25zdGV4cHIg
c2l6ZV90IGlubGluZUNhcGFjaXR5ID0gODsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8TWFya2VkQXJn
dW1lbnRCdWZmZXIqPiBMaXN0U2V0OworICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRBcmd1bWVu
dEJ1ZmZlckJhc2UqPiBMaXN0U2V0OwogCiAgICAgLy8gQ29uc3RydWN0b3IgZm9yIGEgcmVhZC13
cml0ZSBsaXN0LCB0byB3aGljaCB5b3UgbWF5IGFwcGVuZCB2YWx1ZXMuCiAgICAgLy8gRklYTUU6
IFJlbW92ZSBhbGwgY2xpZW50cyBvZiB0aGlzIEFQSSwgdGhlbiByZW1vdmUgdGhpcyBBUEkuCi0g
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZShz
aXplX3QgY2FwYWNpdHkpCiAgICAgICAgIDogbV9zaXplKDApCi0gICAgICAgICwgbV9jYXBhY2l0
eShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgLCBtX2J1ZmZlcihtX2lubGluZUJ1ZmZlcikKKyAg
ICAgICAgLCBtX2NhcGFjaXR5KGNhcGFjaXR5KQorICAgICAgICAsIG1fYnVmZmVyKGlubGluZUJ1
ZmZlcigpKQogICAgICAgICAsIG1fbWFya1NldChudWxscHRyKQogICAgIHsKICAgICB9CiAKLSAg
ICB+TWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAgIH5NYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2Uo
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX25lZWRzT3ZlcmZsb3dDaGVjayk7CiAgICAgICAg
IGlmIChtX21hcmtTZXQpCkBAIC0xNDUsNiArMTQ0LDEyIEBAIGNsYXNzIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJmbG93IHsKICAgICAgICAgZnVuYyhyZWludGVycHJl
dF9jYXN0PEpTVmFsdWUqPigmc2xvdEZvcigwKSkpOwogICAgIH0KIAorcHJvdGVjdGVkOgorICAg
IEVuY29kZWRKU1ZhbHVlKiBpbmxpbmVCdWZmZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KGJpdHdpc2VfY2FzdDx1aW50OF90Kj4odGhpcykg
KyBzaXplb2YoTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKSk7CisgICAgfQorCiBwcml2YXRlOgog
ICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoKTsKICAgICB2b2lkIGV4cGFuZENhcGFjaXR5KGludCBu
ZXdDYXBhY2l0eSk7CkBAIC0xNjEsNyArMTY2LDcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZm
ZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewogICAgICAgICAKICAgICBFbmNvZGVkSlNWYWx1
ZSogbWFsbG9jQmFzZSgpCiAgICAgewotICAgICAgICBpZiAobV9idWZmZXIgPT0gbV9pbmxpbmVC
dWZmZXIpCisgICAgICAgIGlmIChtX2J1ZmZlciA9PSBpbmxpbmVCdWZmZXIoKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gJnNsb3RGb3IoMCk7CiAgICAgfQpA
QCAtMTc3LDExICsxODIsMjcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMg
UmVjb3JkT3ZlcmZsb3cgewogI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAgICAgaW50IG1fc2l6
ZTsKICAgICBpbnQgbV9jYXBhY2l0eTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBtX2lubGluZUJ1ZmZl
cltpbmxpbmVDYXBhY2l0eV07CiAgICAgRW5jb2RlZEpTVmFsdWUqIG1fYnVmZmVyOwogICAgIExp
c3RTZXQqIG1fbWFya1NldDsKIH07CiAKK3RlbXBsYXRlPHNpemVfdCBwYXNzZWRJbmxpbmVDYXBh
Y2l0eSA9IDg+CitjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplIDogcHVibGljIE1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBz
aXplX3QgaW5saW5lQ2FwYWNpdHkgPSBwYXNzZWRJbmxpbmVDYXBhY2l0eTsKKworICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyV2l0aFNpemUoKQorICAgICAgICA6IE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZShpbmxpbmVDYXBhY2l0eSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmxpbmVCdWZmZXIo
KSA9PSBtX2lubGluZUJ1ZmZlcik7CisgICAgfQorCitwcml2YXRlOgorICAgIEVuY29kZWRKU1Zh
bHVlIG1faW5saW5lQnVmZmVyW2lubGluZUNhcGFjaXR5XSB7IH07Cit9OworCit1c2luZyBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciA9IE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8PjsKKwogY2xh
c3MgQXJnTGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNs
YXNzIEludGVycHJldGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAppbmRleCA3ZjZmMmExMWUzNjVkYmUwY2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0Li4w
NDY1YmY2ZTc1OTZmNWUxZGUzNDZkMmE5M2UyNDkxZDZlOGViNTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2lu
Y2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1
ZGUgIkxpdGVyYWxQYXJzZXIuaCIKLSNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFt
ZUFycmF5LmgiCiAjaW5jbHVkZSAiVk1JbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgpAQCAtODgsMjEgKzg4LDI1IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsKICAg
ICBjbGFzcyBIb2xkZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBSb290SG9sZGVyVGFn
IHsgUm9vdEhvbGRlciB9OwotICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCopOworICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVy
ZSopOwogICAgICAgICBIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqKTsKIAogICAgICAg
ICBKU09iamVjdCogb2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICAgICAg
Ym9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gbV9pc0FycmF5OyB9CisgICAgICAgIGJvb2wg
aXNGYXN0T2JqZWN0UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0UHJv
cGVydGllczsgfQogCiAgICAgICAgIGJvb2wgYXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVy
JiwgU3RyaW5nQnVpbGRlciYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNPYmplY3QqIG1f
b2JqZWN0OwotICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5OwotICAgICAgICBjb25zdCBi
b29sIG1faXNBcnJheTsKKyAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9Owor
ICAgICAgICBTdHJ1Y3R1cmUqIG1fc3RydWN0dXJlIHsgbnVsbHB0ciB9OworICAgICAgICBjb25z
dCBib29sIG1faXNKU0FycmF5IHsgZmFsc2UgfTsKKyAgICAgICAgY29uc3QgYm9vbCBtX2lzQXJy
YXkgeyBmYWxzZSB9OworICAgICAgICBib29sIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyB7IGZh
bHNlIH07CiAgICAgICAgIHVuc2lnbmVkIG1faW5kZXggeyAwIH07CiAgICAgICAgIHVuc2lnbmVk
IG1fc2l6ZSB7IDAgfTsKICAgICAgICAgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9w
cm9wZXJ0eU5hbWVzOworICAgICAgICBWZWN0b3I8c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1bnNp
Z25lZD4+IG1fcHJvcGVydGllc0FuZE9mZnNldHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBjbGFz
cyBIb2xkZXI7CkBAIC0xMjUsNyArMTI5LDcgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIENh
bGxEYXRhIG1fcmVwbGFjZXJDYWxsRGF0YTsKICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBtX29iamVjdFN0YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
V2l0aFNpemU8MTY+IG1fb2JqZWN0U3RhY2s7CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVuc2Fm
ZVZlY3Rvck92ZXJmbG93PiBtX2hvbGRlclN0YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVkR2Fw
OwogICAgIFN0cmluZyBtX2luZGVudDsKQEAgLTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZpZXI6
OlN0cmluZ2lmeVJlc3VsdCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJp
bmdCdWlsZGVyJgogICAgIH0KIAogICAgIGJvb2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1faG9s
ZGVyU3RhY2suaXNFbXB0eSgpOwotICAgIG1faG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlcihtX2ds
b2JhbE9iamVjdCwgb2JqZWN0KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3Qt
PnN0cnVjdHVyZSh2bSk7CisgICAgbV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFs
T2JqZWN0LCBvYmplY3QsIHN0cnVjdHVyZSkpOwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0
aENyYXNoT25PdmVyZmxvdyhvYmplY3QpOworICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENy
YXNoT25PdmVyZmxvdyhzdHJ1Y3R1cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IFN0cmluZ2lmeUZhaWxlZCk7CiAgICAgaWYgKCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAgICAg
ICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmluZ2lm
aWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUo
U3RyaW5nQnVpbGRlciYKICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAgICAg
ICAgIG1faG9sZGVyU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBtX29iamVjdFN0YWNrLnJl
bW92ZUxhc3QoKTsKKyAgICAgICAgbV9vYmplY3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3
aGlsZSAoIW1faG9sZGVyU3RhY2suaXNFbXB0eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5U3Vj
Y2VlZGVkOwogfQpAQCAtNDU1LDggKzQ2Miw5IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVyOjpz
dGFydE5ld0xpbmUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBidWlsZGVyLmFw
cGVuZChtX2luZGVudCk7CiB9CiAKLWlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGluZSBT
dHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIG9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVjdChv
YmplY3QpCisgICAgLCBtX3N0cnVjdHVyZShzdHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJheShp
c0pTQXJyYXkob2JqZWN0KSkKICAgICAsIG1faXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QpKQogewpAQCAtNDY0LDggKzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmllcjo6
SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjCiAKIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRhZywg
SlNPYmplY3QqIG9iamVjdCkKICAgICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNKU0Fy
cmF5KGZhbHNlKQotICAgICwgbV9pc0FycmF5KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUgKzQ5
NiwyOSBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJp
bmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJy
YXlSZXBsYWNlcikKKyAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBs
YWNlcikgewogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVyLm1f
YXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMuZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0
b3IoKS5zaXplKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1fb2Jq
ZWN0LT5zdHJ1Y3R1cmVJRCgpID09IG1fc3RydWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1GYXN0
UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7CisgICAg
ICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZvckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0IFBy
b3BlcnR5TWFwRW50cnkmIGVudHJ5KSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGVudHJ5LmF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKGVudHJ5LmtleSk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNvbnN0
cnVjdEFuZEFwcGVuZChJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRyeS5v
ZmZzZXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBv
YmplY3RQcm9wZXJ0eU5hbWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRl
U3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRh
YmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBvYmpl
Y3RQcm9wZXJ0eU5hbWVzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAgICAg
ICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAg
ICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgp
OworICAgICAgICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1l
VmVjdG9yKCkuc2l6ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zaXplID0gbV9w
cm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgneycpOwogICAgICAgICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmluZGVu
dCgpOwpAQCAtNTM4LDEwICs1NTgsMjIgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBl
bmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAg
ICAgc3RyaW5naWZ5UmVzdWx0ID0gc3RyaW5naWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1ZShi
dWlsZGVyLCB2YWx1ZSwgKnRoaXMsIGluZGV4KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lmeVJl
c3VsdCAhPSBTdHJpbmdpZnlGYWlsZWREdWVUb1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5k
ZXhdOwotICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNl
KTsKKyAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUgdmFs
dWU7CisgICAgICAgIGlmIChtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAg
IHByb3BlcnR5TmFtZSA9IHN0ZDo6Z2V0PDA+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhd
KTsKKyAgICAgICAgICAgIGlmIChtX29iamVjdC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVjdHVy
ZS0+aWQoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0PDE+
KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9
IG1fb2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgdmFsdWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcm9wZXJ0eU5h
bWUgPSBtX3Byb3BlcnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKKyAgICAg
ICAgICAgIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7
CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAg
IH0KIAogICAgICAgICByb2xsQmFja1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvcklu
bGluZXMuaAppbmRleCA3MjNjNDEzMTUwZWM1ZjA5ODQ2NWQzMzEzYmQ0ZjM1NjdkZTEzOTNkLi41
MjI3MzNjMTliMGZhNDU1MjQzZDFhOWU0OGVmYTVhMGQ2MDVkOTg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMu
aApAQCAtNTMsNiArNTMsMTEgQEAgQUxXQVlTX0lOTElORSBib29sIGNhblBlcmZvcm1GYXN0UHJv
cGVydHlFbnVtZXJhdGlvbkZvck9iamVjdEFzc2lnbihTdHJ1Y3R1cmUqIHMKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorQUxXQVlTX0lOTElORSBib29sIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVt
ZXJhdGlvbkZvckpTT05TdHJpbmdpZnkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgcmV0
dXJuIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvck9iamVjdEFzc2lnbihzdHJ1
Y3R1cmUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgb2JqZWN0QXNzaWduRmFzdChWTSYgdm0s
IEpTT2JqZWN0KiB0YXJnZXQsIEpTT2JqZWN0KiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8VW5pcXVl
ZFN0cmluZ0ltcGw+LCA4PiYgcHJvcGVydGllcywgTWFya2VkQXJndW1lbnRCdWZmZXImIHZhbHVl
cykKIHsKICAgICAvLyB8c291cmNlfCBTdHJ1Y3R1cmUgZG9lcyBub3QgaGF2ZSBhbnkgZ2V0dGVy
cy4gQW5kIHRhcmdldCBjYW4gcGVyZm9ybSBmYXN0IHB1dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRl
eCAxNTMyMTljYTM1NjA3YTU4NTUxMTRjYTJkMDRiNDE4MzgwZjc1MWU0Li40OGRjMzY2MDIzNDVl
OWU5NTE1NTJlMjdiNDBhZWI3NGI0OWFlNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0yMTMs
NyArMjEzLDcgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3Io
Y29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKIH0KIAotdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVu
dHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1
ZmZlciYgYXJncywgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3Rv
cjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCit2b2lkIEF1ZGlvV29y
a2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QsIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYgYXJncywgY29uc3QgVmVjdG9y
PFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0
cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+
PiYgcGFyYW1WYWx1ZXNNYXApCiB7CiAgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdl
IGNhY2hlIHRoZSBhcnJheXMgcGFzc2VkIHRvIEpTIGFuZCByZWNvbnN0cnVjdCB0aGVtIG9ubHkg
d2hlbiB0aGUgdG9wb2xvZ3kgY2hhbmdlcy4KICAgICBpZiAoIWNvcHlEYXRhRnJvbUJ1c2VzVG9K
U0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgdG9KU0FycmF5KG1fanNJbnB1dHMpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dFByb2Nlc3Nvci5oCmluZGV4IDc5YjUzZDBjMDZhZmUwYTRmZDZkM2M4NzNmNDQ0NmZlOTM0MzNi
M2UuLmZhOTdjY2Q4MmI1MDhhMzAxMjI5MTljODIyYzI4MjhiMjdmYzI1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuaApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTQXJyYXk7
Ci1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBB
dWRpb1dvcmtsZXRQcm9jZXNzb3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9X
b3JrbGV0UHJvY2Vzc29yPgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFBy
b2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhJik7Ci0g
ICAgdm9pZCBidWlsZEpTQXJndW1lbnRzKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+
PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8
U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFw
KTsKKyAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8
QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFt
VmFsdWVzTWFwKTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBt
X3BvcnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438461</attachid>
            <date>2021-09-17 04:53:48 -0700</date>
            <delta_ts>2021-09-17 12:40:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917045348.patch</filename>
            <type>text/plain</type>
            <size>25179</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi4yZGU3MDAyODUyZDdkNjM1
ZWYwMmE5MmExNWJiN2EwZmNjMDI1MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFkZENvcmVDb25z
dHJhaW50cyk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaGVhcC9IZWFwSW5s
aW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJnTGlzdC5jcHA6CisgICAgICAgIChKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6YWRkTWFya1NldCk6CisgICAgICAgIChKU0M6Ok1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZTo6bWFya0xpc3RzKToKKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlOjpzbG93RW5zdXJlQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXJCYXNlOjpzbG93QXBwZW5kKToKKyAgICAgICAgKEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXI6OmFkZE1hcmtTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzbG93QXBwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXJXaXRoU2l6ZTo6TWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZSk6CisgICAgICAg
IChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjp+TWFya2VkQXJndW1lbnRC
dWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2l6
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpp
c0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZm
ZXI6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6
OmFwcGVuZFdpdGhBY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXI6OmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6cmVtb3ZlTGFzdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpsYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OnRha2VMYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXI6OmVuc3VyZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6Omhhc092ZXJmbG93ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6b3ZlcmZsb3dDaGVja05vdE5lZWRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpmaWxsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3RGb3IgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFsbG9jQmFz
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzZXROZWVk
c092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6Y2xlYXJOZWVkc092ZXJmbG93Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6Omlz
RmFzdE9iamVjdFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6
YXBwZW5kU3RyaW5naWZpZWRWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xk
ZXI6OkhvbGRlcik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5l
eHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6Y2FuUGVyZm9ybUZhc3RQcm9wZXJ0eUVudW1lcmF0aW9uRm9ySlNP
TlN0cmluZ2lmeSk6CisKIDIwMjEtMDktMTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgyNDc4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGI2YjNiMjE4ZGM5NjVjNTY4YTI4MTZkMmU4MTljOWZjM2M3MjBkZGYuLjc0M2U0
MjU4NTc1NDc1NDUzZjAyMmY0ZTI4ZjlkNTg5YjI1NGUzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9yIEpT
T04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKwogMjAy
MS0wOS0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VS
VElPTiBGQUlMRUQ6IG5zRGF0YSB1bmRlciBEYXRhVVJMUmVzb3VyY2VNZWRpYUxvYWRlcjo6RGF0
YVVSTFJlc291cmNlTWVkaWFMb2FkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGUzYjQ5M2ZkYTg3OGE3OWRhY2NiZjMxNTM1NzRlYjgyNjM2MWYyMTkuLjdiYzkzMDgyMTJiZTQx
NmQ3NWViZjk0YTM3Yzg2NmE0NGQ5Y2EwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1v
ZGUgZm9yIEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5oOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpkZW1h
cnNoYWxWYWx1ZXMpOgorCiAyMDIxLTA5LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgW0hhcmRlbmluZ10gVmFsaWRhdGUgSURCVmFsdWUncyBibG9iIHBhdGhz
IGluIFdlYklEQlNlcnZlcjo6cHV0T3JBZGQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cAppbmRleCBhMDdiMzcyNDZhYzJiZTAxYWEyNDE1MWZiYWEzNWZkYTkyZjNmYmJkLi4wZWNmOGJk
Njk4ZjUwNGFmNWFmMjZjODQ0MTM2YzI1YmY0OTg3MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcApAQCAtMjc2Nyw3ICsyNzY3LDcgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3Ry
YWludHMoKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBt
X21hcmtMaXN0U2V0LT5zaXplKCkpIHsKICAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNv
blNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFya1JlYXNvbjo6Q29uc2VydmF0aXZlU2Nh
bik7Ci0gICAgICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyh2aXNp
dG9yLCAqbV9tYXJrTGlzdFNldCk7CisgICAgICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXJCYXNlOjptYXJrTGlzdHModmlzaXRvciwgKm1fbWFya0xpc3RTZXQpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggNzQ0ZjNi
ZmVmZjVlNmExMTg4ZWMwYWZmNzI2NjVmYjE4MDYxZGIyMi4uMDgxZGY0NmVkZmZmYWExMDA4Yjhm
ZWFlZjIzNDFlZWZjMDEzZDI3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNzcs
NyArNzcsNyBAQCBjbGFzcyBNYXJrU3RhY2tBcnJheTsKIGNsYXNzIE1hcmtTdGFja01lcmdpbmdD
b25zdHJhaW50OwogY2xhc3MgTWFya2VkSlNWYWx1ZVJlZkFycmF5OwogY2xhc3MgQmxvY2tEaXJl
Y3Rvcnk7Ci1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50
QnVmZmVyQmFzZTsKIGNsYXNzIE1hcmtpbmdDb25zdHJhaW50OwogY2xhc3MgTWFya2luZ0NvbnN0
cmFpbnRTZXQ7CiBjbGFzcyBNdXRhdG9yU2NoZWR1bGVyOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIGNs
YXNzIEhlYXAgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6dW5pcXVlX3B0cjxUeXBlQ291
bnRTZXQ+IHByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGQ6OnVuaXF1ZV9wdHI8VHlwZUNvdW50U2V0PiBvYmplY3RUeXBlQ291bnRzKCk7CiAKLSAg
ICBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4mIG1hcmtMaXN0U2V0KCk7CisgICAgSGFz
aFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPiYgbWFya0xpc3RTZXQoKTsKICAgICB2b2lk
IGFkZE1hcmtlZEpTVmFsdWVSZWZBcnJheShNYXJrZWRKU1ZhbHVlUmVmQXJyYXkqKTsKICAgICAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hQcm90ZWN0ZWRDZWxs
KGNvbnN0IEZ1bmN0b3ImKTsKQEAgLTYyNCw3ICs2MjQsNyBAQCBjbGFzcyBIZWFwIHsKICAgICBI
YXNoU2V0PGNvbnN0IEpTQ2VsbCo+IG1fY29weWluZ1JlbWVtYmVyZWRTZXQ7CiAKICAgICBQcm90
ZWN0Q291bnRTZXQgbV9wcm90ZWN0ZWRWYWx1ZXM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hT
ZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPj4gbV9tYXJrTGlzdFNldDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPj4gbV9tYXJrTGlzdFNldDsK
ICAgICBTZW50aW5lbExpbmtlZExpc3Q8TWFya2VkSlNWYWx1ZVJlZkFycmF5LCBCYXNpY1Jhd1Nl
bnRpbmVsTm9kZTxNYXJrZWRKU1ZhbHVlUmVmQXJyYXk+PiBtX21hcmtlZEpTVmFsdWVSZWZBcnJh
eXM7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFjaGluZVRocmVhZHM+IG1fbWFjaGluZVRocmVh
ZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAppbmRleCAxZDc3MGVh
Njk4MmM4Mzg0NTk5ZWU1YzU3NGM0NmZjYmVhNGNiMzk4Li43MWJlZDFjZTI1YzQ3MzkwZDMxZTU5
MjM4MWU3YmY5YTMzM2EwYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxp
bmVzLmgKQEAgLTIxNSwxMCArMjE1LDEwIEBAIGlubGluZSB2b2lkIEhlYXA6OmRlY3JlbWVudERl
ZmVycmFsRGVwdGhBbmRHQ0lmTmVlZGVkKCkKICAgICB9CiB9CiAKLWlubGluZSBIYXNoU2V0PE1h
cmtlZEFyZ3VtZW50QnVmZmVyKj4mIEhlYXA6Om1hcmtMaXN0U2V0KCkKK2lubGluZSBIYXNoU2V0
PE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSo+JiBIZWFwOjptYXJrTGlzdFNldCgpCiB7CiAgICAg
aWYgKCFtX21hcmtMaXN0U2V0KQotICAgICAgICBtX21hcmtMaXN0U2V0ID0gbWFrZVVuaXF1ZTxI
YXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj4+KCk7CisgICAgICAgIG1fbWFya0xpc3RTZXQg
PSBtYWtlVW5pcXVlPEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKj4+KCk7CiAgICAg
cmV0dXJuICptX21hcmtMaXN0U2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcmdMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ0xpc3QuY3BwCmluZGV4IDUxYWJjNWExM2NiNmY5ZWMwZDgyNTVmNTFlYzBkZjliMzRhZDE2
ODEuLmYyODE1YjgwYzhjNzk3NzY0NGJkMGVmMmUzMjZkYTE0MmU0NTc5MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwCkBAIC0yNyw3ICsyNyw3IEBAIHVzaW5n
IHN0ZDo6bWluOwogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZl
cjo6YWRkTWFya1NldChKU1ZhbHVlIHYpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6
YWRkTWFya1NldChKU1ZhbHVlIHYpCiB7CiAgICAgaWYgKG1fbWFya1NldCkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTIsMjAgKzUyLDIwIEBAIHZvaWQgQXJnTGlzdDo6Z2V0U2xpY2UoaW50IHN0YXJ0
SW5kZXgsIEFyZ0xpc3QmIHJlc3VsdCkgY29uc3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlz
aXRvcj4KLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhWaXNpdG9yJiB2aXNp
dG9yLCBMaXN0U2V0JiBtYXJrU2V0KQordm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1h
cmtMaXN0cyhWaXNpdG9yJiB2aXNpdG9yLCBMaXN0U2V0JiBtYXJrU2V0KQogewogICAgIExpc3RT
ZXQ6Oml0ZXJhdG9yIGVuZCA9IG1hcmtTZXQuZW5kKCk7CiAgICAgZm9yIChMaXN0U2V0OjppdGVy
YXRvciBpdCA9IG1hcmtTZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyKiBsaXN0ID0gKml0OworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1
ZmZlckJhc2UqIGxpc3QgPSAqaXQ7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC0+
bV9zaXplOyArK2kpCiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKEpTVmFs
dWU6OmRlY29kZShsaXN0LT5zbG90Rm9yKGkpKSk7CiAgICAgfQogfQogCi10ZW1wbGF0ZSB2b2lk
IE1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYXJrTGlzdHMoQWJzdHJhY3RTbG90VmlzaXRvciYsIExp
c3RTZXQmKTsKLXRlbXBsYXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhT
bG90VmlzaXRvciYsIExpc3RTZXQmKTsKK3RlbXBsYXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZm
ZXJCYXNlOjptYXJrTGlzdHMoQWJzdHJhY3RTbG90VmlzaXRvciYsIExpc3RTZXQmKTsKK3RlbXBs
YXRlIHZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjptYXJrTGlzdHMoU2xvdFZpc2l0b3Im
LCBMaXN0U2V0Jik7CiAKLXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBh
Y2l0eShzaXplX3QgcmVxdWVzdGVkQ2FwYWNpdHkpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZTo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVfdCByZXF1ZXN0ZWRDYXBhY2l0eSkKIHsKICAg
ICBzZXROZWVkc092ZXJmbG93Q2hlY2soKTsKICAgICBhdXRvIGNoZWNrZWROZXdDYXBhY2l0eSA9
IENoZWNrZWRJbnQzMihyZXF1ZXN0ZWRDYXBhY2l0eSk7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQg
TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dFbnN1cmVDYXBhY2l0eShzaXplX3QgcmVxdWVzdGVk
Q2FwYWNpdHkpCiAgICAgZXhwYW5kQ2FwYWNpdHkoY2hlY2tlZE5ld0NhcGFjaXR5KTsKIH0KIAot
dm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZXhwYW5kQ2FwYWNpdHkoKQordm9pZCBNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2U6OmV4cGFuZENhcGFjaXR5KCkKIHsKICAgICBzZXROZWVkc092ZXJm
bG93Q2hlY2soKTsKICAgICBhdXRvIGNoZWNrZWROZXdDYXBhY2l0eSA9IENoZWNrZWRJbnQzMiht
X2NhcGFjaXR5KSAqIDI7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTWFya2VkQXJndW1lbnRCdWZm
ZXI6OmV4cGFuZENhcGFjaXR5KCkKICAgICBleHBhbmRDYXBhY2l0eShjaGVja2VkTmV3Q2FwYWNp
dHkpOwogfQogCi12b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eShpbnQg
bmV3Q2FwYWNpdHkpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6ZXhwYW5kQ2FwYWNp
dHkoaW50IG5ld0NhcGFjaXR5KQogewogICAgIHNldE5lZWRzT3ZlcmZsb3dDaGVjaygpOwogICAg
IEFTU0VSVChtX2NhcGFjaXR5IDwgbmV3Q2FwYWNpdHkpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZv
aWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0eSkK
ICAgICBtX2NhcGFjaXR5ID0gbmV3Q2FwYWNpdHk7CiB9CiAKLXZvaWQgTWFya2VkQXJndW1lbnRC
dWZmZXI6OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQordm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJh
c2U6OnNsb3dBcHBlbmQoSlNWYWx1ZSB2KQogewogICAgIEFTU0VSVChtX3NpemUgPD0gbV9jYXBh
Y2l0eSk7CiAgICAgaWYgKG1fc2l6ZSA9PSBtX2NhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJnTGlzdC5oCmluZGV4IDk5ZmI5MjE1ZTY0ODA5OWYxZGEyMjkxYzQwZDlhMWZk
ZTg5ZjY4ODcuLmQyM2RmZDYyNDg1Y2Q2YTgxYjY2MGEwMzhjNmFlMWQ5ZDA1MTE1NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTI4LDI5ICsyOCwyOCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMg
UmVjb3JkT3ZlcmZsb3cgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hcmtlZEFyZ3VtZW50
QnVmZmVyKTsKLSAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKE1hcmtlZEFyZ3VtZW50QnVmZmVyKTsK
K2NsYXNzIGFsaWduYXMoYWxpZ25vZihFbmNvZGVkSlNWYWx1ZSkpIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZSA6IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKTsKKyAgICBXVEZfTUFLRV9OT05NT1ZBQkxFKE1h
cmtlZEFyZ3VtZW50QnVmZmVyQmFzZSk7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047
CiAgICAgZnJpZW5kIGNsYXNzIFZNOwogICAgIGZyaWVuZCBjbGFzcyBBcmdMaXN0OwogCiBwdWJs
aWM6CiAgICAgdXNpbmcgQmFzZSA9IFJlY29yZE92ZXJmbG93OwotICAgIHN0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gODsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8TWFya2Vk
QXJndW1lbnRCdWZmZXIqPiBMaXN0U2V0OworICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRBcmd1
bWVudEJ1ZmZlckJhc2UqPiBMaXN0U2V0OwogCiAgICAgLy8gQ29uc3RydWN0b3IgZm9yIGEgcmVh
ZC13cml0ZSBsaXN0LCB0byB3aGljaCB5b3UgbWF5IGFwcGVuZCB2YWx1ZXMuCiAgICAgLy8gRklY
TUU6IFJlbW92ZSBhbGwgY2xpZW50cyBvZiB0aGlzIEFQSSwgdGhlbiByZW1vdmUgdGhpcyBBUEku
Ci0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFz
ZShzaXplX3QgY2FwYWNpdHkpCiAgICAgICAgIDogbV9zaXplKDApCi0gICAgICAgICwgbV9jYXBh
Y2l0eShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgLCBtX2J1ZmZlcihtX2lubGluZUJ1ZmZlcikK
KyAgICAgICAgLCBtX2NhcGFjaXR5KGNhcGFjaXR5KQorICAgICAgICAsIG1fYnVmZmVyKGlubGlu
ZUJ1ZmZlcigpKQogICAgICAgICAsIG1fbWFya1NldChudWxscHRyKQogICAgIHsKICAgICB9CiAK
LSAgICB+TWFya2VkQXJndW1lbnRCdWZmZXIoKQorICAgIH5NYXJrZWRBcmd1bWVudEJ1ZmZlckJh
c2UoKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX25lZWRzT3ZlcmZsb3dDaGVjayk7CiAgICAg
ICAgIGlmIChtX21hcmtTZXQpCkBAIC0xNDUsNiArMTQ0LDEyIEBAIGNsYXNzIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIDogcHVibGljIFJlY29yZE92ZXJmbG93IHsKICAgICAgICAgZnVuYyhyZWludGVy
cHJldF9jYXN0PEpTVmFsdWUqPigmc2xvdEZvcigwKSkpOwogICAgIH0KIAorcHJvdGVjdGVkOgor
ICAgIEVuY29kZWRKU1ZhbHVlKiBpbmxpbmVCdWZmZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KGJpdHdpc2VfY2FzdDx1aW50OF90Kj4odGhp
cykgKyBzaXplb2YoTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKSk7CisgICAgfQorCiBwcml2YXRl
OgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoKTsKICAgICB2b2lkIGV4cGFuZENhcGFjaXR5KGlu
dCBuZXdDYXBhY2l0eSk7CkBAIC0xNjEsNyArMTY2LDcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRC
dWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewogICAgICAgICAKICAgICBFbmNvZGVkSlNW
YWx1ZSogbWFsbG9jQmFzZSgpCiAgICAgewotICAgICAgICBpZiAobV9idWZmZXIgPT0gbV9pbmxp
bmVCdWZmZXIpCisgICAgICAgIGlmIChtX2J1ZmZlciA9PSBpbmxpbmVCdWZmZXIoKSkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gJnNsb3RGb3IoMCk7CiAgICAg
fQpAQCAtMTc3LDExICsxODIsMjcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJs
aWMgUmVjb3JkT3ZlcmZsb3cgewogI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAgICAgaW50IG1f
c2l6ZTsKICAgICBpbnQgbV9jYXBhY2l0eTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBtX2lubGluZUJ1
ZmZlcltpbmxpbmVDYXBhY2l0eV07CiAgICAgRW5jb2RlZEpTVmFsdWUqIG1fYnVmZmVyOwogICAg
IExpc3RTZXQqIG1fbWFya1NldDsKIH07CiAKK3RlbXBsYXRlPHNpemVfdCBwYXNzZWRJbmxpbmVD
YXBhY2l0eSA9IDg+CitjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplIDogcHVibGlj
IE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSBwYXNzZWRJbmxpbmVDYXBhY2l0eTsKKworICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemUoKQorICAgICAgICA6IE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZShpbmxpbmVDYXBhY2l0eSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmxpbmVCdWZm
ZXIoKSA9PSBtX2lubGluZUJ1ZmZlcik7CisgICAgfQorCitwcml2YXRlOgorICAgIEVuY29kZWRK
U1ZhbHVlIG1faW5saW5lQnVmZmVyW2lubGluZUNhcGFjaXR5XSB7IH07Cit9OworCit1c2luZyBN
YXJrZWRBcmd1bWVudEJ1ZmZlciA9IE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8PjsKKwog
Y2xhc3MgQXJnTGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5k
IGNsYXNzIEludGVycHJldGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAppbmRleCA3ZjZmMmExMWUzNjVkYmUwY2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0
Li4wNDY1YmY2ZTc1OTZmNWUxZGUzNDZkMmE5M2UyNDkxZDZlOGViNTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKLSNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgor
I2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5
TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiVk1JbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgpAQCAtODgsMjEgKzg4LDI1IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsK
ICAgICBjbGFzcyBIb2xkZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBSb290SG9sZGVy
VGFnIHsgUm9vdEhvbGRlciB9OwotICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCopOworICAgICAgICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVj
dHVyZSopOwogICAgICAgICBIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqKTsKIAogICAg
ICAgICBKU09iamVjdCogb2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gbV9pc0FycmF5OyB9CisgICAgICAgIGJv
b2wgaXNGYXN0T2JqZWN0UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0
UHJvcGVydGllczsgfQogCiAgICAgICAgIGJvb2wgYXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lm
aWVyJiwgU3RyaW5nQnVpbGRlciYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNPYmplY3Qq
IG1fb2JqZWN0OwotICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5OwotICAgICAgICBjb25z
dCBib29sIG1faXNBcnJheTsKKyAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9
OworICAgICAgICBTdHJ1Y3R1cmUqIG1fc3RydWN0dXJlIHsgbnVsbHB0ciB9OworICAgICAgICBj
b25zdCBib29sIG1faXNKU0FycmF5IHsgZmFsc2UgfTsKKyAgICAgICAgY29uc3QgYm9vbCBtX2lz
QXJyYXkgeyBmYWxzZSB9OworICAgICAgICBib29sIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyB7
IGZhbHNlIH07CiAgICAgICAgIHVuc2lnbmVkIG1faW5kZXggeyAwIH07CiAgICAgICAgIHVuc2ln
bmVkIG1fc2l6ZSB7IDAgfTsKICAgICAgICAgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4g
bV9wcm9wZXJ0eU5hbWVzOworICAgICAgICBWZWN0b3I8c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1
bnNpZ25lZD4+IG1fcHJvcGVydGllc0FuZE9mZnNldHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBj
bGFzcyBIb2xkZXI7CkBAIC0xMjUsNyArMTI5LDcgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAg
IENhbGxEYXRhIG1fcmVwbGFjZXJDYWxsRGF0YTsKICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBN
YXJrZWRBcmd1bWVudEJ1ZmZlciBtX29iamVjdFN0YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyV2l0aFNpemU8MTY+IG1fb2JqZWN0U3RhY2s7CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVu
c2FmZVZlY3Rvck92ZXJmbG93PiBtX2hvbGRlclN0YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVk
R2FwOwogICAgIFN0cmluZyBtX2luZGVudDsKQEAgLTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZp
ZXI6OlN0cmluZ2lmeVJlc3VsdCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShT
dHJpbmdCdWlsZGVyJgogICAgIH0KIAogICAgIGJvb2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1f
aG9sZGVyU3RhY2suaXNFbXB0eSgpOwotICAgIG1faG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlciht
X2dsb2JhbE9iamVjdCwgb2JqZWN0KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmpl
Y3QtPnN0cnVjdHVyZSh2bSk7CisgICAgbV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xv
YmFsT2JqZWN0LCBvYmplY3QsIHN0cnVjdHVyZSkpOwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5k
V2l0aENyYXNoT25PdmVyZmxvdyhvYmplY3QpOworICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0
aENyYXNoT25PdmVyZmxvdyhzdHJ1Y3R1cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIFN0cmluZ2lmeUZhaWxlZCk7CiAgICAgaWYgKCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAg
ICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmlu
Z2lmaWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFs
dWUoU3RyaW5nQnVpbGRlciYKICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAg
ICAgICAgIG1faG9sZGVyU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBtX29iamVjdFN0YWNr
LnJlbW92ZUxhc3QoKTsKKyAgICAgICAgbV9vYmplY3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAg
fSB3aGlsZSAoIW1faG9sZGVyU3RhY2suaXNFbXB0eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5
U3VjY2VlZGVkOwogfQpAQCAtNDU1LDggKzQ2Miw5IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVy
OjpzdGFydE5ld0xpbmUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBidWlsZGVy
LmFwcGVuZChtX2luZGVudCk7CiB9CiAKLWlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xk
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGlu
ZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVj
dChvYmplY3QpCisgICAgLCBtX3N0cnVjdHVyZShzdHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJh
eShpc0pTQXJyYXkob2JqZWN0KSkKICAgICAsIG1faXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFs
T2JqZWN0LCBvYmplY3QpKQogewpAQCAtNDY0LDggKzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmll
cjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjCiAKIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRh
ZywgSlNPYmplY3QqIG9iamVjdCkKICAgICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNK
U0FycmF5KGZhbHNlKQotICAgICwgbV9pc0FycmF5KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUg
KzQ5NiwyOSBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShT
dHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1sn
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5n
QXJyYXlSZXBsYWNlcikKKyAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlS
ZXBsYWNlcikgewogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVy
Lm1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMuZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVW
ZWN0b3IoKS5zaXplKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1f
b2JqZWN0LT5zdHJ1Y3R1cmVJRCgpID09IG1fc3RydWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1G
YXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7Cisg
ICAgICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZvckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0
IFByb3BlcnR5TWFwRW50cnkmIGVudHJ5KSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGVudHJ5LmF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKGVudHJ5LmtleSk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNv
bnN0cnVjdEFuZEFwcGVuZChJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRy
eS5vZmZzZXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgp
OworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJh
eSBvYmplY3RQcm9wZXJ0eU5hbWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2
YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBv
YmplY3RQcm9wZXJ0eU5hbWVzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAg
ICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAg
ICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0
YSgpOworICAgICAgICAgICAgICAgIG1fc2l6ZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlO
YW1lVmVjdG9yKCkuc2l6ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zaXplID0g
bV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgneycpOwogICAgICAgICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmlu
ZGVudCgpOwpAQCAtNTM4LDEwICs1NTgsMjIgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjph
cHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAg
ICAgICAgc3RyaW5naWZ5UmVzdWx0ID0gc3RyaW5naWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1
ZShidWlsZGVyLCB2YWx1ZSwgKnRoaXMsIGluZGV4KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lm
eVJlc3VsdCAhPSBTdHJpbmdpZnlGYWlsZWREdWVUb1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEdldCB0aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClb
aW5kZXhdOwotICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZh
bHNlKTsKKyAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUg
dmFsdWU7CisgICAgICAgIGlmIChtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAg
ICAgIHByb3BlcnR5TmFtZSA9IHN0ZDo6Z2V0PDA+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5k
ZXhdKTsKKyAgICAgICAgICAgIGlmIChtX29iamVjdC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVj
dHVyZS0+aWQoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0
PDE+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1
ZSA9IG1fb2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFsdWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxz
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcm9wZXJ0
eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKKyAg
ICAgICAgICAgIHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAg
ICAgIH0KIAogICAgICAgICByb2xsQmFja1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
cklubGluZXMuaAppbmRleCA3MjNjNDEzMTUwZWM1ZjA5ODQ2NWQzMzEzYmQ0ZjM1NjdkZTEzOTNk
Li41MjI3MzNjMTliMGZhNDU1MjQzZDFhOWU0OGVmYTVhMGQ2MDVkOTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGlu
ZXMuaApAQCAtNTMsNiArNTMsMTEgQEAgQUxXQVlTX0lOTElORSBib29sIGNhblBlcmZvcm1GYXN0
UHJvcGVydHlFbnVtZXJhdGlvbkZvck9iamVjdEFzc2lnbihTdHJ1Y3R1cmUqIHMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorQUxXQVlTX0lOTElORSBib29sIGNhblBlcmZvcm1GYXN0UHJvcGVydHlF
bnVtZXJhdGlvbkZvckpTT05TdHJpbmdpZnkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAg
cmV0dXJuIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvck9iamVjdEFzc2lnbihz
dHJ1Y3R1cmUpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgb2JqZWN0QXNzaWduRmFzdChWTSYg
dm0sIEpTT2JqZWN0KiB0YXJnZXQsIEpTT2JqZWN0KiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8VW5p
cXVlZFN0cmluZ0ltcGw+LCA4PiYgcHJvcGVydGllcywgTWFya2VkQXJndW1lbnRCdWZmZXImIHZh
bHVlcykKIHsKICAgICAvLyB8c291cmNlfCBTdHJ1Y3R1cmUgZG9lcyBub3QgaGF2ZSBhbnkgZ2V0
dGVycy4gQW5kIHRhcmdldCBjYW4gcGVyZm9ybSBmYXN0IHB1dC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApp
bmRleCAxNTMyMTljYTM1NjA3YTU4NTUxMTRjYTJkMDRiNDE4MzgwZjc1MWU0Li40OGRjMzY2MDIz
NDVlOWU5NTE1NTJlMjdiNDBhZWI3NGI0OWFlNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0y
MTMsNyArMjEzLDcgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNz
b3IoY29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKIH0KIAotdm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1
bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciYgYXJncywgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZl
Y3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCit2b2lkIEF1ZGlv
V29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QsIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYgYXJncywgY29uc3QgVmVj
dG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0
cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJy
YXk+PiYgcGFyYW1WYWx1ZXNNYXApCiB7CiAgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMs
IHdlIGNhY2hlIHRoZSBhcnJheXMgcGFzc2VkIHRvIEpTIGFuZCByZWNvbnN0cnVjdCB0aGVtIG9u
bHkgd2hlbiB0aGUgdG9wb2xvZ3kgY2hhbmdlcy4KICAgICBpZiAoIWNvcHlEYXRhRnJvbUJ1c2Vz
VG9KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgdG9KU0FycmF5KG1fanNJbnB1dHMp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFByb2Nlc3Nvci5oCmluZGV4IDc5YjUzZDBjMDZhZmUwYTRmZDZkM2M4NzNmNDQ0NmZlOTM0
MzNiM2UuLmZhOTdjY2Q4MmI1MDhhMzAxMjI5MTljODIyYzI4MjhiMjdmYzI1YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9j
ZXNzb3IuaApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTQXJy
YXk7Ci1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlcjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNyArNjcsNyBAQCBjbGFz
cyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVk
aW9Xb3JrbGV0UHJvY2Vzc29yPgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xl
dFByb2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhJik7
Ci0gICAgdm9pZCBidWlsZEpTQXJndW1lbnRzKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
JiwgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9C
dXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVz
TWFwKTsKKyAgICB2b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBh
cmFtVmFsdWVzTWFwKTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgUmVmPE1lc3NhZ2VQb3J0
PiBtX3BvcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCmluZGV4IDNi
NDkzNDQ2YzE4ODg0ZDhkZTIwNDE3NmVlZmVmMTg5YTcxYWE0ZmQuLjVhMDVlZDIxM2E1Y2ZjMmQy
OGFiMjJhNzFjMDkwM2YxYjJlNGUwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eS5oCkBAIC0zMTAsNyArMzEwLDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3gKICAg
ICB2b2lkIGFkZFZhbHVlVG9BcnJheShOU011dGFibGVBcnJheSAqLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpOwogICAgIAogICAgIGJvb2wgZGVtYXJzaGFs
VmFsdWVGcm9tQXJyYXkoSlNDOjpKU0dsb2JhbE9iamVjdCosIE5TQXJyYXkgKmFycmF5LCBOU1VJ
bnRlZ2VyJiBpbmRleCwgSlNDOjpKU1ZhbHVlJiByZXN1bHQpOwotICAgIHZvaWQgZGVtYXJzaGFs
VmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBkYXRhX3QgdmFsdWVzRGF0YSwgbWFjaF9tc2df
dHlwZV9udW1iZXJfdCB2YWx1ZXNMZW5ndGgsIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImIHJl
c3VsdCk7CisgICAgdm9pZCBkZW1hcnNoYWxWYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIGRh
dGFfdCB2YWx1ZXNEYXRhLCBtYWNoX21zZ190eXBlX251bWJlcl90IHZhbHVlc0xlbmd0aCwgSlND
OjpNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UmIHJlc3VsdCk7CiAKICAgICBjbGFzcyBMb2NhbE9i
amVjdE1hcCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2FsT2JqZWN0TWFwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBlZDBlMzE0M2Vm
OGMwNmFjYzk4OGFhMjRhYjg4MjdhMzk4ZjViYTM1Li5iMmEyNDg0ZWVhZjg2ZjQ2YWIxNWQwZGQw
OWZiY2NiOGFiMjg4NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tCkBAIC0xNDMzLDcgKzE0MzMsNyBAQCBKU1ZhbHVlIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eTo6ZGVtYXJzaGFsVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJl
dHVybiB2YWx1ZTsKIH0KIAotdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFy
c2hhbFZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgZGF0YV90IHZh
bHVlc0RhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgdmFsdWVzTGVuZ3RoLCBNYXJrZWRBcmd1
bWVudEJ1ZmZlciYgcmVzdWx0KQordm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRl
bWFyc2hhbFZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgZGF0YV90
IHZhbHVlc0RhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgdmFsdWVzTGVuZ3RoLCBNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2UmIHJlc3VsdCkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRh
ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29weTp2YWx1ZXNEYXRh
IGxlbmd0aDp2YWx1ZXNMZW5ndGggZnJlZVdoZW5Eb25lOk5PXSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438503</attachid>
            <date>2021-09-17 12:41:00 -0700</date>
            <delta_ts>2021-09-17 12:50:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917124059.patch</filename>
            <type>text/plain</type>
            <size>31021</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi4yNTM5MTk5NjRiMGJiNWQ2
NDMyNWMwYTU5Y2NjNDhkYTc4ZDZiZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NCBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBjb2xsZWN0ZWQgcHJvZmlsZXMgYW5kIGZvdW5kIHNldmVyYWwgc3VidGVzdHMg
YXJlIHVzaW5nIEpTT04uc3RyaW5naWZ5IGVub3VnaC4gQW5kIGdlbmVyYXRlZCBzdHJpbmdzIGFy
ZSBtYW55IHNlcmlhbGl6ZWQgbGVhZiBvYmplY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBmYXN0IG9iamVjdCBwcm9wZXJ0eSBlbnVtZXJhdGlvbi4gV2hlbiB3ZSBrbm93IHRoYXQgc291
cmNlIG9iamVjdCBoYXMgc29tZSBjb25kaXRpb25zLCB3ZSBjYW4gc2F5IHRoYXQsCisgICAgICAg
IGFzIGxvbmcgYXMgc3RydWN0dXJlIGlzIG5vdCBjaGFuZ2VkLCB3ZSBjYW4gY29udGludWUgdXNp
bmcgcHJvcGVydHkgbmFtZXMgYW5kIG9mZnNldCBjb2xsZWN0ZWQgZnJvbSB0aGUgc3RydWN0dXJl
LgorICAgICAgICBUaGlzIHdheSByZW1vdmVzIG5vbiBvYnNlcnZhYmxlIFtbR2V0XV0gb3BlcmF0
aW9ucyB0byBhY2NlbGVyYXRlIEpTT04uc3RyaW5naWZ5IHBlcmZvcm1hbmNlIGZvciBtYWpvciBv
YmplY3QgaXRlcmF0aW9uIGNhc2VzLgorCisgICAgICAgIFdlIGFsc28gZXh0ZW5kIE1hcmtlZEFy
Z3VtZW50QnVmZmVyOiBpbnRyb2R1Y2luZyBNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplIHdo
aWNoIGNhbiB0YWtlIGRlZmF1bHQgaW5saW5lIGNhcGFjaXR5IGFzIGEgdGVtcGxhdGUKKyAgICAg
ICAgcGFyYW1ldGVyLiBUaGlzIGlzIHVzZWQgaW4gSlNPTi5zdHJpbmdpZnkgdG8gaW5jcmVhc2Ug
dGhlIGJ1ZmZlciBiZWNhdXNlIG5vdyB3ZSBhbHNvIG5lZWQgdG8gcmVjb3JkIHN0cnVjdHVyZXMg
aW4gTWFya2VkQXJndW1lbnRCdWZmZXIuCisKKyAgICAgICAgVGhpcyBvZmZlcnMgMC40JSBpbXBy
b3ZlbWVudCBpbiBTcGVlZG9tZXRlcjIgKEVtYmVySlMtVG9kb01WQywgVmFuaWxsYS1YWFgsIEVt
YmVySlMtRGVidWctVG9kb01WQywgdGhleSBoYXZlIGVub3VnaCBhbW91bnQgb2YgSlNPTi5zdHJp
bmdpZnkKKyAgICAgICAgdGltZSkuCisKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
ICB8ICAgICAgICAgICAgICAgc3VidGVzdCAgICAgICAgICAgICAgICB8ICAgICBtcyAgICAgIHwg
ICAgIG1zICAgICAgfCAgYiAvIGEgICB8IHBWYWx1ZSAoc2lnbmlmaWNhbmNlIHVzaW5nIEZhbHNl
IERpc2NvdmVyeSBSYXRlKSB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCBF
bG0tVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICAgICAgfDExNy43MTAwMDAgICB8MTE3Ljc1
MTY2NyAgIHwxLjAwMDM1NCAgfCAwLjg4MzI0NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgICAgICB8IFZ1ZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAg
ICAgICB8MjQuNTAwMDAwICAgIHwyNC4zMTE2NjcgICAgfDAuOTkyMzEzICB8IDAuMzY1MTMwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRW1iZXJK
Uy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgIHwxMjYuNjQ2NjY3ICAgfDEyNS43MzgzMzMg
ICB8MC45OTI4MjggIHwgMC4wMDI1ODcgKHNpZ25pZmljYW50KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAgICAgfCBCYWNrYm9uZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAg
fDQ3Ljg3MzMzMyAgICB8NDcuOTExNjY3ICAgIHwxLjAwMDgwMSAgfCAwLjc2MjUwOSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFByZWFjdC1Ub2Rv
TVZDICAgICAgICAgICAgICAgICAgICAgICB8MTcuMDIwMDAwICAgIHwxNy4wNzAwMDAgICAgfDEu
MDAyOTM4ICB8IDAuNzg2Nzk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8CisgICAgICAgIHwgQW5ndWxhckpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgIHwxMjku
ODU2NjY3ICAgfDEyOS4zNTMzMzMgICB8MC45OTYxMjQgIHwgMC4xNzc2MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhLUVTMjAxNS1U
b2RvTVZDICAgICAgICAgICAgICAgfDYxLjY5ODMzMyAgICB8NjEuMTIwMDAwICAgIHwwLjk5MDYy
NiAgfCAwLjAwMDAwMyAoc2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICAgICAgICB8IEluZmVybm8tVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICB8NjIuODQwMDAw
ICAgIHw2Mi40OTY2NjcgICAgfDAuOTk0NTM2ICB8IDAuMzEyMzQwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRmxpZ2h0LVRvZG9NVkMgICAgICAg
ICAgICAgICAgICAgICAgIHw3Ny4wOTUwMDAgICAgfDc2LjkzNjY2NyAgICB8MC45OTc5NDYgIHwg
MC43MDI3MjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAg
ICAgfCBBbmd1bGFyMi1UeXBlU2NyaXB0LVRvZG9NVkMgICAgICAgICAgfDM5Ljc0MDAwMCAgICB8
MzkuMTkxNjY3ICAgIHwwLjk4NjIwMiAgfCAwLjA1MzQ4NSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFZhbmlsbGFKUy1Ub2RvTVZDICAgICAgICAg
ICAgICAgICAgICB8NDkuMDA4MzMzICAgIHw0OC4zNDY2NjcgICAgfDAuOTg2NDk5ICB8IDAuMDAw
NjM4IChzaWduaWZpY2FudCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwg
alF1ZXJ5LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHwyMTYuNzg1MDAwICAgfDIxNy4x
ODgzMzMgICB8MS4wMDE4NjEgIHwgMC4yNzA3NDcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKKyAgICAgICAgfCBFbWJlckpTLURlYnVnLVRvZG9NVkMgICAgICAgICAg
ICAgICAgfDM0NC4yMzAwMDAgICB8MzQyLjk5MzMzMyAgIHwwLjk5NjQwNyAgfCAwLjAxMjI2MiAo
c2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFJlYWN0
LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgICB8ODUuNDYxNjY3ICAgIHw4NS40MTE2Njcg
ICAgfDAuOTk5NDE1ICB8IDAuNzU4MDQ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8CisgICAgICAgIHwgUmVhY3QtUmVkdXgtVG9kb01WQyAgICAgICAgICAgICAgICAg
IHwxNDAuNjgxNjY3ICAgfDE0MC42NDAwMDAgICB8MC45OTk3MDQgIHwgMC44NzEyNzcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhLUVT
MjAxNS1CYWJlbC1XZWJwYWNrLVRvZG9NVkMgfDU5LjkyODMzMyAgICB8NTkuMzUxNjY3ICAgIHww
Ljk5MDM3NyAgfCAwLjAwMDAwMCAoc2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIGEgbWVhbiA9IDI2NC40MDY1
MAorICAgICAgICBiIG1lYW4gPSAyNjUuNTE1MzMKKyAgICAgICAgcFZhbHVlID0gMC4wMDA1NTY3
MzU3CisgICAgICAgIChCaWdnZXIgbWVhbnMgYXJlIGJldHRlci4pCisgICAgICAgIDEuMDA0IHRp
bWVzIGJldHRlcgorICAgICAgICBSZXN1bHRzIEFSRSBzaWduaWZpY2FudAorCisgICAgICAgICog
aGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKToK
KyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6Cisg
ICAgICAgICogcnVudGltZS9BcmdMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXJCYXNlOjphZGRNYXJrU2V0KToKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXJCYXNlOjptYXJrTGlzdHMpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZl
ckJhc2U6OnNsb3dFbnN1cmVDYXBhY2l0eSk6CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlckJhc2U6OnNsb3dBcHBlbmQpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6YWRkTWFya1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyOjptYXJrTGlzdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dBcHBlbmQpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvQXJnTGlzdC5oOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcldp
dGhTaXplOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplKToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6On5NYXJrZWRBcmd1bWVudEJ1ZmZlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzaXplIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmlzRW1wdHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6Y2xlYXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXBwZW5kV2l0
aEFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjph
cHBlbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXBw
ZW5kV2l0aENyYXNoT25PdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFy
Z3VtZW50QnVmZmVyOjpyZW1vdmVMYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXI6Omxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6dGFrZUxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6ZW5zdXJlQ2FwYWNpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6aGFzT3ZlcmZsb3dlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpvdmVyZmxvd0NoZWNrTm90TmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmZpbGwpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xvdEZvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYWxsb2NCYXNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNldE5lZWRzT3ZlcmZsb3dD
aGVjayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpjbGVh
ck5lZWRzT3ZlcmZsb3dDaGVjayk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU09OT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6aXNGYXN0T2JqZWN0
UHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjphcHBlbmRTdHJp
bmdpZmllZFZhbHVlKToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6SG9sZGVy
KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JKU09OU3RyaW5naWZ5
KToKKwogMjAyMS0wOS0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODI0NzguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjZiM2IyMThkYzk2NWM1NjhhMjgxNmQyZTgxOWM5ZmMzYzcyMGRkZi4uNzQzZTQyNTg1NzU0NzU0
NTNmMDIyZjRlMjhmOWQ1ODliMjU0ZTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIxLTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0pTQ10gQWRkIGZhc3QgcHJvcGVydHkgZW51bWVyYXRpb24gbW9kZSBmb3IgSlNPTi5zdHJpbmdp
ZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDM5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oOgorCiAyMDIxLTA5LTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxF
RDogbnNEYXRhIHVuZGVyIERhdGFVUkxSZXNvdXJjZU1lZGlhTG9hZGVyOjpEYXRhVVJMUmVzb3Vy
Y2VNZWRpYUxvYWRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTNiNDkzZmRh
ODc4YTc5ZGFjY2JmMzE1MzU3NGViODI2MzYxZjIxOS4uN2JjOTMwODIxMmJlNDE2ZDc1ZWJmOTRh
MzdjODY2YTQ0ZDljYTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIxLTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gQWRkIGZhc3QgcHJvcGVydHkgZW51bWVyYXRpb24gbW9kZSBmb3IgSlNP
Ti5zdHJpbmdpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDM5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lmg6CisgICAg
ICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFyc2hhbFZhbHVl
cyk6CisKIDIwMjEtMDktMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSGFyZGVuaW5nXSBWYWxpZGF0ZSBJREJWYWx1ZSdzIGJsb2IgcGF0aHMgaW4gV2ViSURC
U2VydmVyOjpwdXRPckFkZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGEw
N2IzNzI0NmFjMmJlMDFhYTI0MTUxZmJhYTM1ZmRhOTJmM2ZiYmQuLjBlY2Y4YmQ2OThmNTA0YWY1
YWYyNmM4NDQxMzZjMjViZjQ5ODcxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CkBAIC0yNzY3LDcgKzI3NjcsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21hcmtMaXN0U2V0ICYmIG1fbWFya0xpc3RT
ZXQtPnNpemUoKSkgewogICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9v
dFNjb3BlKHZpc2l0b3IsIFJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKLSAgICAg
ICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKHZpc2l0b3IsICptX21h
cmtMaXN0U2V0KTsKKyAgICAgICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1h
cmtMaXN0cyh2aXNpdG9yLCAqbV9tYXJrTGlzdFNldCk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCA3NDRmM2JmZWZmNWU2YTEx
ODhlYzBhZmY3MjY2NWZiMTgwNjFkYjIyLi4wODFkZjQ2ZWRmZmZhYTEwMDhiOGZlYWVmMjM0MWVl
ZmMwMTNkMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03Nyw3ICs3Nyw3IEBA
IGNsYXNzIE1hcmtTdGFja0FycmF5OwogY2xhc3MgTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQ7
CiBjbGFzcyBNYXJrZWRKU1ZhbHVlUmVmQXJyYXk7CiBjbGFzcyBCbG9ja0RpcmVjdG9yeTsKLWNs
YXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyOworY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNl
OwogY2xhc3MgTWFya2luZ0NvbnN0cmFpbnQ7CiBjbGFzcyBNYXJraW5nQ29uc3RyYWludFNldDsK
IGNsYXNzIE11dGF0b3JTY2hlZHVsZXI7CkBAIC0yNDUsNyArMjQ1LDcgQEAgY2xhc3MgSGVhcCB7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RkOjp1bmlxdWVfcHRyPFR5cGVDb3VudFNldD4gcHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6dW5p
cXVlX3B0cjxUeXBlQ291bnRTZXQ+IG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgIEhhc2hTZXQ8
TWFya2VkQXJndW1lbnRCdWZmZXIqPiYgbWFya0xpc3RTZXQoKTsKKyAgICBIYXNoU2V0PE1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZSo+JiBtYXJrTGlzdFNldCgpOwogICAgIHZvaWQgYWRkTWFya2Vk
SlNWYWx1ZVJlZkFycmF5KE1hcmtlZEpTVmFsdWVSZWZBcnJheSopOwogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaFByb3RlY3RlZENlbGwoY29uc3QgRnVu
Y3RvciYpOwpAQCAtNjI0LDcgKzYyNCw3IEBAIGNsYXNzIEhlYXAgewogICAgIEhhc2hTZXQ8Y29u
c3QgSlNDZWxsKj4gbV9jb3B5aW5nUmVtZW1iZXJlZFNldDsKIAogICAgIFByb3RlY3RDb3VudFNl
dCBtX3Byb3RlY3RlZFZhbHVlczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxNYXJrZWRB
cmd1bWVudEJ1ZmZlcio+PiBtX21hcmtMaXN0U2V0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNo
U2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSo+PiBtX21hcmtMaXN0U2V0OwogICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxNYXJrZWRKU1ZhbHVlUmVmQXJyYXksIEJhc2ljUmF3U2VudGluZWxOb2Rl
PE1hcmtlZEpTVmFsdWVSZWZBcnJheT4+IG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5czsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxNYWNoaW5lVGhyZWFkcz4gbV9tYWNoaW5lVGhyZWFkczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCmluZGV4IDFkNzcwZWE2OTgyYzgzODQ1
OTllZTVjNTc0YzQ2ZmNiZWE0Y2IzOTguLjcxYmVkMWNlMjVjNDczOTBkMzFlNTkyMzgxZTdiZjlh
MzMzYTBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaApAQCAt
MjE1LDEwICsyMTUsMTAgQEAgaW5saW5lIHZvaWQgSGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0
aEFuZEdDSWZOZWVkZWQoKQogICAgIH0KIH0KIAotaW5saW5lIEhhc2hTZXQ8TWFya2VkQXJndW1l
bnRCdWZmZXIqPiYgSGVhcDo6bWFya0xpc3RTZXQoKQoraW5saW5lIEhhc2hTZXQ8TWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlKj4mIEhlYXA6Om1hcmtMaXN0U2V0KCkKIHsKICAgICBpZiAoIW1fbWFy
a0xpc3RTZXQpCi0gICAgICAgIG1fbWFya0xpc3RTZXQgPSBtYWtlVW5pcXVlPEhhc2hTZXQ8TWFy
a2VkQXJndW1lbnRCdWZmZXIqPj4oKTsKKyAgICAgICAgbV9tYXJrTGlzdFNldCA9IG1ha2VVbmlx
dWU8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPj4oKTsKICAgICByZXR1cm4gKm1f
bWFya0xpc3RTZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ0xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5j
cHAKaW5kZXggNTFhYmM1YTEzY2I2ZjllYzBkODI1NWY1MWVjMGRmOWIzNGFkMTY4MS4uZjI4MTVi
ODBjOGM3OTc3NjQ0YmQwZWYyZTMyNmRhMTQyZTQ1NzkzOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAgdXNpbmcgc3RkOjptaW47
CiAKIG5hbWVzcGFjZSBKU0MgewogCi12b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjphZGRNYXJr
U2V0KEpTVmFsdWUgdikKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjphZGRNYXJrU2V0
KEpTVmFsdWUgdikKIHsKICAgICBpZiAobV9tYXJrU2V0KQogICAgICAgICByZXR1cm47CkBAIC01
MiwyMCArNTIsMjAgQEAgdm9pZCBBcmdMaXN0OjpnZXRTbGljZShpbnQgc3RhcnRJbmRleCwgQXJn
TGlzdCYgcmVzdWx0KSBjb25zdAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgotdm9p
ZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKFZpc2l0b3ImIHZpc2l0b3IsIExpc3RT
ZXQmIG1hcmtTZXQpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6bWFya0xpc3RzKFZp
c2l0b3ImIHZpc2l0b3IsIExpc3RTZXQmIG1hcmtTZXQpCiB7CiAgICAgTGlzdFNldDo6aXRlcmF0
b3IgZW5kID0gbWFya1NldC5lbmQoKTsKICAgICBmb3IgKExpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0g
bWFya1NldC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIqIGxpc3QgPSAqaXQ7CisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSog
bGlzdCA9ICppdDsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0LT5tX3NpemU7ICsr
aSkKICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoSlNWYWx1ZTo6ZGVjb2Rl
KGxpc3QtPnNsb3RGb3IoaSkpKTsKICAgICB9CiB9CiAKLXRlbXBsYXRlIHZvaWQgTWFya2VkQXJn
dW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhBYnN0cmFjdFNsb3RWaXNpdG9yJiwgTGlzdFNldCYpOwot
dGVtcGxhdGUgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKFNsb3RWaXNpdG9y
JiwgTGlzdFNldCYpOwordGVtcGxhdGUgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1h
cmtMaXN0cyhBYnN0cmFjdFNsb3RWaXNpdG9yJiwgTGlzdFNldCYpOwordGVtcGxhdGUgdm9pZCBN
YXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1hcmtMaXN0cyhTbG90VmlzaXRvciYsIExpc3RTZXQm
KTsKIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVf
dCByZXF1ZXN0ZWRDYXBhY2l0eSkKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjpzbG93
RW5zdXJlQ2FwYWNpdHkoc2l6ZV90IHJlcXVlc3RlZENhcGFjaXR5KQogewogICAgIHNldE5lZWRz
T3ZlcmZsb3dDaGVjaygpOwogICAgIGF1dG8gY2hlY2tlZE5ld0NhcGFjaXR5ID0gQ2hlY2tlZElu
dDMyKHJlcXVlc3RlZENhcGFjaXR5KTsKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVfdCByZXF1ZXN0ZWRDYXBhY2l0eSkK
ICAgICBleHBhbmRDYXBhY2l0eShjaGVja2VkTmV3Q2FwYWNpdHkpOwogfQogCi12b2lkIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eSgpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHkoKQogewogICAgIHNldE5lZWRzT3ZlcmZsb3dDaGVjaygp
OwogICAgIGF1dG8gY2hlY2tlZE5ld0NhcGFjaXR5ID0gQ2hlY2tlZEludDMyKG1fY2FwYWNpdHkp
ICogMjsKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZXhwYW5k
Q2FwYWNpdHkoKQogICAgIGV4cGFuZENhcGFjaXR5KGNoZWNrZWROZXdDYXBhY2l0eSk7CiB9CiAK
LXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0
eSkKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjpleHBhbmRDYXBhY2l0eShpbnQgbmV3
Q2FwYWNpdHkpCiB7CiAgICAgc2V0TmVlZHNPdmVyZmxvd0NoZWNrKCk7CiAgICAgQVNTRVJUKG1f
Y2FwYWNpdHkgPCBuZXdDYXBhY2l0eSk7CkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBNYXJrZWRB
cmd1bWVudEJ1ZmZlcjo6ZXhwYW5kQ2FwYWNpdHkoaW50IG5ld0NhcGFjaXR5KQogICAgIG1fY2Fw
YWNpdHkgPSBuZXdDYXBhY2l0eTsKIH0KIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xv
d0FwcGVuZChKU1ZhbHVlIHYpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6c2xvd0Fw
cGVuZChKU1ZhbHVlIHYpCiB7CiAgICAgQVNTRVJUKG1fc2l6ZSA8PSBtX2NhcGFjaXR5KTsKICAg
ICBpZiAobV9zaXplID09IG1fY2FwYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcmdMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmgKaW5kZXggOTlmYjkyMTVlNjQ4MDk5ZjFkYTIyOTFjNDBkOWExZmRlODlmNjg4Ny4u
ZDIzZGZkNjI0ODVjZDZhODFiNjYwYTAzOGM2YWUxZDlkMDUxMTU1NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaApAQCAtMjgsMjkgKzI4LDI4IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVy
ZmxvdyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOwot
ICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOworY2xhc3MgYWxp
Z25hcyhhbGlnbm9mKEVuY29kZWRKU1ZhbHVlKSkgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlIDog
cHVibGljIFJlY29yZE92ZXJmbG93IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2UpOworICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1l
bnRCdWZmZXJCYXNlKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKICAgICBmcmll
bmQgY2xhc3MgVk07CiAgICAgZnJpZW5kIGNsYXNzIEFyZ0xpc3Q7CiAKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
aW5saW5lQ2FwYWNpdHkgPSA4OwotICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1
ZmZlcio+IExpc3RTZXQ7CisgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZSo+IExpc3RTZXQ7CiAKICAgICAvLyBDb25zdHJ1Y3RvciBmb3IgYSByZWFkLXdyaXRlIGxp
c3QsIHRvIHdoaWNoIHlvdSBtYXkgYXBwZW5kIHZhbHVlcy4KICAgICAvLyBGSVhNRTogUmVtb3Zl
IGFsbCBjbGllbnRzIG9mIHRoaXMgQVBJLCB0aGVuIHJlbW92ZSB0aGlzIEFQSS4KLSAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlcigpCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKHNpemVfdCBj
YXBhY2l0eSkKICAgICAgICAgOiBtX3NpemUoMCkKLSAgICAgICAgLCBtX2NhcGFjaXR5KGlubGlu
ZUNhcGFjaXR5KQotICAgICAgICAsIG1fYnVmZmVyKG1faW5saW5lQnVmZmVyKQorICAgICAgICAs
IG1fY2FwYWNpdHkoY2FwYWNpdHkpCisgICAgICAgICwgbV9idWZmZXIoaW5saW5lQnVmZmVyKCkp
CiAgICAgICAgICwgbV9tYXJrU2V0KG51bGxwdHIpCiAgICAgewogICAgIH0KIAotICAgIH5NYXJr
ZWRBcmd1bWVudEJ1ZmZlcigpCisgICAgfk1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSgpCiAgICAg
ewogICAgICAgICBBU1NFUlQoIW1fbmVlZHNPdmVyZmxvd0NoZWNrKTsKICAgICAgICAgaWYgKG1f
bWFya1NldCkKQEAgLTE0NSw2ICsxNDQsMTIgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIg
OiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewogICAgICAgICBmdW5jKHJlaW50ZXJwcmV0X2Nhc3Q8
SlNWYWx1ZSo+KCZzbG90Rm9yKDApKSk7CiAgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgRW5jb2Rl
ZEpTVmFsdWUqIGlubGluZUJ1ZmZlcigpCisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9j
YXN0PEVuY29kZWRKU1ZhbHVlKj4oYml0d2lzZV9jYXN0PHVpbnQ4X3QqPih0aGlzKSArIHNpemVv
ZihNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBleHBhbmRDYXBhY2l0eSgpOwogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoaW50IG5ld0NhcGFj
aXR5KTsKQEAgLTE2MSw3ICsxNjYsNyBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1
YmxpYyBSZWNvcmRPdmVyZmxvdyB7CiAgICAgICAgIAogICAgIEVuY29kZWRKU1ZhbHVlKiBtYWxs
b2NCYXNlKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2J1ZmZlciA9PSBtX2lubGluZUJ1ZmZlcikK
KyAgICAgICAgaWYgKG1fYnVmZmVyID09IGlubGluZUJ1ZmZlcigpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiAmc2xvdEZvcigwKTsKICAgICB9CkBAIC0xNzcs
MTEgKzE4MiwyNyBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRP
dmVyZmxvdyB7CiAjZW5kaWYgLy8gQVNTRVJUX0VOQUJMRUQKICAgICBpbnQgbV9zaXplOwogICAg
IGludCBtX2NhcGFjaXR5OwotICAgIEVuY29kZWRKU1ZhbHVlIG1faW5saW5lQnVmZmVyW2lubGlu
ZUNhcGFjaXR5XTsKICAgICBFbmNvZGVkSlNWYWx1ZSogbV9idWZmZXI7CiAgICAgTGlzdFNldCog
bV9tYXJrU2V0OwogfTsKIAordGVtcGxhdGU8c2l6ZV90IHBhc3NlZElubGluZUNhcGFjaXR5ID0g
OD4KK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemUgOiBwdWJsaWMgTWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSA9IHBhc3NlZElubGluZUNhcGFjaXR5OworCisgICAgTWFya2VkQXJndW1l
bnRCdWZmZXJXaXRoU2l6ZSgpCisgICAgICAgIDogTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKGlu
bGluZUNhcGFjaXR5KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlubGluZUJ1ZmZlcigpID09IG1f
aW5saW5lQnVmZmVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRW5jb2RlZEpTVmFsdWUgbV9p
bmxpbmVCdWZmZXJbaW5saW5lQ2FwYWNpdHldIHsgfTsKK307CisKK3VzaW5nIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyID0gTWFya2VkQXJndW1lbnRCdWZmZXJXaXRoU2l6ZTw+OworCiBjbGFzcyBBcmdM
aXN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBmcmllbmQgY2xhc3MgSW50
ZXJwcmV0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IDdmNmYyYTExZTM2NWRiZTBjYzJiMjc3MDZhYjE1MDFmOGExNWViMjQuLmFjZGJiZTEx
NDYzNzQxYTI0OTVhMzliMjcwYzYxNWM0MDI5OGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAi
SlNBcnJheUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGl0
ZXJhbFBhcnNlci5oIgotI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXku
aCIKICNpbmNsdWRlICJWTUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CkBAIC04OCwyMSArODgsMjUgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIGNsYXNz
IEhvbGRlciB7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIFJvb3RIb2xkZXJUYWcgeyBSb290
SG9sZGVyIH07Ci0gICAgICAgIEhvbGRlcihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Kik7Cisg
ICAgICAgIEhvbGRlcihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3RydWN0dXJlKik7CiAg
ICAgICAgIEhvbGRlcihSb290SG9sZGVyVGFnLCBKU09iamVjdCopOwogCiAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQogICAgICAgICBib29sIGlz
QXJyYXkoKSBjb25zdCB7IHJldHVybiBtX2lzQXJyYXk7IH0KKyAgICAgICAgYm9vbCBpc0Zhc3RP
YmplY3RQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9pc0Zhc3RPYmplY3RQcm9wZXJ0aWVz
OyB9CiAKICAgICAgICAgYm9vbCBhcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImLCBTdHJp
bmdCdWlsZGVyJik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU09iamVjdCogbV9vYmplY3Q7
Ci0gICAgICAgIGNvbnN0IGJvb2wgbV9pc0pTQXJyYXk7Ci0gICAgICAgIGNvbnN0IGJvb2wgbV9p
c0FycmF5OworICAgICAgICBKU09iamVjdCogbV9vYmplY3QgeyBudWxscHRyIH07CisgICAgICAg
IFN0cnVjdHVyZSogbV9zdHJ1Y3R1cmUgeyBudWxscHRyIH07CisgICAgICAgIGNvbnN0IGJvb2wg
bV9pc0pTQXJyYXkgeyBmYWxzZSB9OworICAgICAgICBjb25zdCBib29sIG1faXNBcnJheSB7IGZh
bHNlIH07CisgICAgICAgIGJvb2wgbV9pc0Zhc3RPYmplY3RQcm9wZXJ0aWVzIHsgZmFsc2UgfTsK
ICAgICAgICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKICAgICAgICAgdW5zaWduZWQgbV9zaXpl
IHsgMCB9OwogICAgICAgICBSZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiBtX3Byb3BlcnR5
TmFtZXM7CisgICAgICAgIFZlY3RvcjxzdGQ6OnR1cGxlPElkZW50aWZpZXIsIHVuc2lnbmVkPiwg
OD4gbV9wcm9wZXJ0aWVzQW5kT2Zmc2V0czsKICAgICB9OwogCiAgICAgZnJpZW5kIGNsYXNzIEhv
bGRlcjsKQEAgLTEyNSw3ICsxMjksNyBAQCBjbGFzcyBTdHJpbmdpZmllciB7CiAgICAgQ2FsbERh
dGEgbV9yZXBsYWNlckNhbGxEYXRhOwogICAgIFN0cmluZyBtX2dhcDsKIAotICAgIE1hcmtlZEFy
Z3VtZW50QnVmZmVyIG1fb2JqZWN0U3RhY2s7CisgICAgTWFya2VkQXJndW1lbnRCdWZmZXJXaXRo
U2l6ZTwxNj4gbV9vYmplY3RTdGFjazsKICAgICBWZWN0b3I8SG9sZGVyLCAxNiwgVW5zYWZlVmVj
dG9yT3ZlcmZsb3c+IG1faG9sZGVyU3RhY2s7CiAgICAgU3RyaW5nIG1fcmVwZWF0ZWRHYXA7CiAg
ICAgU3RyaW5nIG1faW5kZW50OwpAQCAtNDA4LDggKzQxMiwxMCBAQCBTdHJpbmdpZmllcjo6U3Ry
aW5naWZ5UmVzdWx0IFN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKFN0cmluZ0J1
aWxkZXImCiAgICAgfQogCiAgICAgYm9vbCBob2xkZXJTdGFja1dhc0VtcHR5ID0gbV9ob2xkZXJT
dGFjay5pc0VtcHR5KCk7Ci0gICAgbV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFs
T2JqZWN0LCBvYmplY3QpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3Ry
dWN0dXJlKHZtKTsKKyAgICBtX2hvbGRlclN0YWNrLmFwcGVuZChIb2xkZXIobV9nbG9iYWxPYmpl
Y3QsIG9iamVjdCwgc3RydWN0dXJlKSk7CiAgICAgbV9vYmplY3RTdGFjay5hcHBlbmRXaXRoQ3Jh
c2hPbk92ZXJmbG93KG9iamVjdCk7CisgICAgbV9vYmplY3RTdGFjay5hcHBlbmRXaXRoQ3Jhc2hP
bk92ZXJmbG93KHN0cnVjdHVyZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3Ry
aW5naWZ5RmFpbGVkKTsKICAgICBpZiAoIWhvbGRlclN0YWNrV2FzRW1wdHkpCiAgICAgICAgIHJl
dHVybiBTdHJpbmdpZnlTdWNjZWVkZWQ7CkBAIC00MjIsNiArNDI4LDcgQEAgU3RyaW5naWZpZXI6
OlN0cmluZ2lmeVJlc3VsdCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJp
bmdCdWlsZGVyJgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZ2lmeUZhaWxlZDsKICAgICAgICAg
bV9ob2xkZXJTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgICAgIG1fb2JqZWN0U3RhY2sucmVtb3Zl
TGFzdCgpOworICAgICAgICBtX29iamVjdFN0YWNrLnJlbW92ZUxhc3QoKTsKICAgICB9IHdoaWxl
ICghbV9ob2xkZXJTdGFjay5pc0VtcHR5KCkpOwogICAgIHJldHVybiBTdHJpbmdpZnlTdWNjZWVk
ZWQ7CiB9CkBAIC00NTUsOCArNDYyLDkgQEAgaW5saW5lIHZvaWQgU3RyaW5naWZpZXI6OnN0YXJ0
TmV3TGluZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5k
KG1faW5kZW50KTsKIH0KIAotaW5saW5lIFN0cmluZ2lmaWVyOjpIb2xkZXI6OkhvbGRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0KQoraW5saW5lIFN0cmlu
Z2lmaWVyOjpIb2xkZXI6OkhvbGRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogb2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IG1fb2JqZWN0KG9iamVj
dCkKKyAgICAsIG1fc3RydWN0dXJlKHN0cnVjdHVyZSkKICAgICAsIG1faXNKU0FycmF5KGlzSlNB
cnJheShvYmplY3QpKQogICAgICwgbV9pc0FycmF5KEpTQzo6aXNBcnJheShnbG9iYWxPYmplY3Qs
IG9iamVjdCkpCiB7CkBAIC00NjQsOCArNDcyLDYgQEAgaW5saW5lIFN0cmluZ2lmaWVyOjpIb2xk
ZXI6OkhvbGRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWMK
IAogaW5saW5lIFN0cmluZ2lmaWVyOjpIb2xkZXI6OkhvbGRlcihSb290SG9sZGVyVGFnLCBKU09i
amVjdCogb2JqZWN0KQogICAgIDogbV9vYmplY3Qob2JqZWN0KQotICAgICwgbV9pc0pTQXJyYXko
ZmFsc2UpCi0gICAgLCBtX2lzQXJyYXkoZmFsc2UpCiB7CiB9CiAKQEAgLTQ5MCwxNSArNDk2LDI5
IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lm
aWVyJiBzdHJpbmdpZmllciwgU3RyaW5nQnVpCiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHN0cmluZ2lmaWVyLm1fdXNpbmdBcnJheVJl
cGxhY2VyKQorICAgICAgICAgICAgaWYgKHN0cmluZ2lmaWVyLm1fdXNpbmdBcnJheVJlcGxhY2Vy
KSB7CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gc3RyaW5naWZpZXIubV9hcnJh
eVJlcGxhY2VyUHJvcGVydHlOYW1lcy5kYXRhKCk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBtX3NpemUgPSBtX3Byb3BlcnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3Rvcigp
LnNpemUoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJ1Y3R1cmUgJiYgbV9vYmplY3Qt
PnN0cnVjdHVyZUlEKCkgPT0gbV9zdHJ1Y3R1cmUtPmlkKCkgJiYgY2FuUGVyZm9ybUZhc3RQcm9w
ZXJ0eUVudW1lcmF0aW9uRm9ySlNPTlN0cmluZ2lmeShtX3N0cnVjdHVyZSkpIHsKKyAgICAgICAg
ICAgICAgICBtX3N0cnVjdHVyZS0+Zm9yRWFjaFByb3BlcnR5KHZtLCBbJl0oY29uc3QgUHJvcGVy
dHlNYXBFbnRyeSYgZW50cnkpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgICAgICBpZiAoZW50
cnkuYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUoZW50cnkua2V5KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBy
b3BlcnR5TmFtZS5pc1N5bWJvbCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICAgICAgICAgIG1fcHJvcGVydGllc0FuZE9mZnNldHMuY29uc3RydWN0
QW5kQXBwZW5kKElkZW50aWZpZXI6OmZyb21VaWQodm0sIGVudHJ5LmtleSksIGVudHJ5Lm9mZnNl
dCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyA9IHRydWU7CisgICAg
ICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0aWVzQW5kT2Zmc2V0cy5zaXplKCk7CisgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIFByb3BlcnR5TmFtZUFycmF5IG9iamVj
dFByb3BlcnR5TmFtZXModm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1i
b2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAgICBtX29iamVjdC0+bWV0aG9kVGFibGUo
dm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1fb2JqZWN0LCBnbG9iYWxPYmplY3QsIG9iamVjdFBy
b3BlcnR5TmFtZXMsIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUpOwogICAgICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAgICAgICAgICAg
ICBtX3Byb3BlcnR5TmFtZXMgPSBvYmplY3RQcm9wZXJ0eU5hbWVzLnJlbGVhc2VEYXRhKCk7Cisg
ICAgICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0
b3IoKS5zaXplKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX3NpemUgPSBtX3Byb3Bl
cnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpLnNpemUoKTsKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCd7Jyk7CiAgICAgICAgIH0KICAgICAgICAgc3RyaW5naWZpZXIuaW5kZW50KCk7
CkBAIC01MzgsMTAgKzU1OCwyMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5l
eHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICBz
dHJpbmdpZnlSZXN1bHQgPSBzdHJpbmdpZmllci5hcHBlbmRTdHJpbmdpZmllZFZhbHVlKGJ1aWxk
ZXIsIHZhbHVlLCAqdGhpcywgaW5kZXgpOwogICAgICAgICBBU1NFUlQoc3RyaW5naWZ5UmVzdWx0
ICE9IFN0cmluZ2lmeUZhaWxlZER1ZVRvVW5kZWZpbmVkT3JTeW1ib2xWYWx1ZSk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZS4KLSAgICAgICAgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07
Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwor
ICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZTsKKyAgICAgICAgSlNWYWx1ZSB2YWx1ZTsK
KyAgICAgICAgaWYgKG1faXNGYXN0T2JqZWN0UHJvcGVydGllcykgeworICAgICAgICAgICAgcHJv
cGVydHlOYW1lID0gc3RkOjpnZXQ8MD4obV9wcm9wZXJ0aWVzQW5kT2Zmc2V0c1tpbmRleF0pOwor
ICAgICAgICAgICAgaWYgKG1fb2JqZWN0LT5zdHJ1Y3R1cmVJRCgpID09IG1fc3RydWN0dXJlLT5p
ZCgpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0gc3RkOjpnZXQ8MT4obV9w
cm9wZXJ0aWVzQW5kT2Zmc2V0c1tpbmRleF0pOworICAgICAgICAgICAgICAgIHZhbHVlID0gbV9v
YmplY3QtPmdldERpcmVjdChvZmZzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9
IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5kZXhdOworICAgICAgICAg
ICAgdmFsdWUgPSBtX29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgfQog
CiAgICAgICAgIHJvbGxCYWNrUG9pbnQgPSBidWlsZGVyLmxlbmd0aCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5l
cy5oCmluZGV4IDcyM2M0MTMxNTBlYzVmMDk4NDY1ZDMzMTNiZDRmMzU2N2RlMTM5M2QuLjUyMjcz
M2MxOWIwZmE0NTUyNDNkMWE5ZTQ4ZWZhNWEwZDYwNWQ5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oCkBA
IC01Myw2ICs1MywxMSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgY2FuUGVyZm9ybUZhc3RQcm9wZXJ0
eUVudW1lcmF0aW9uRm9yT2JqZWN0QXNzaWduKFN0cnVjdHVyZSogcwogICAgIHJldHVybiB0cnVl
OwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgY2FuUGVyZm9ybUZhc3RQcm9wZXJ0eUVudW1lcmF0
aW9uRm9ySlNPTlN0cmluZ2lmeShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICByZXR1cm4g
Y2FuUGVyZm9ybUZhc3RQcm9wZXJ0eUVudW1lcmF0aW9uRm9yT2JqZWN0QXNzaWduKHN0cnVjdHVy
ZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgdm9pZCBvYmplY3RBc3NpZ25GYXN0KFZNJiB2bSwgSlNP
YmplY3QqIHRhcmdldCwgSlNPYmplY3QqIHNvdXJjZSwgVmVjdG9yPFJlZlB0cjxVbmlxdWVkU3Ry
aW5nSW1wbD4sIDg+JiBwcm9wZXJ0aWVzLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgdmFsdWVzKQog
ewogICAgIC8vIHxzb3VyY2V8IFN0cnVjdHVyZSBkb2VzIG5vdCBoYXZlIGFueSBnZXR0ZXJzLiBB
bmQgdGFyZ2V0IGNhbiBwZXJmb3JtIGZhc3QgcHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4IDE1
MzIxOWNhMzU2MDdhNTg1NTExNGNhMmQwNGI0MTgzODBmNzUxZTQuLjQ4ZGMzNjYwMjM0NWU5ZTk1
MTU1MmUyN2I0MGFlYjc0YjQ5YWU2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTIxMyw3ICsy
MTMsNyBAQCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25z
dCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1YwogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogfQogCi12b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIE1hcmtlZEFyZ3VtZW50QnVmZmVy
JiBhcmdzLCBjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJl
ZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkKK3ZvaWQgQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCwgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiBhcmdzLCBjb25zdCBWZWN0b3I8UmVm
UHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBj
b25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBw
YXJhbVZhbHVlc01hcCkKIHsKICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgY2Fj
aGUgdGhlIGFycmF5cyBwYXNzZWQgdG8gSlMgYW5kIHJlY29uc3RydWN0IHRoZW0gb25seSB3aGVu
IHRoZSB0b3BvbG9neSBjaGFuZ2VzLgogICAgIGlmICghY29weURhdGFGcm9tQnVzZXNUb0pTQXJy
YXkodm0sIGdsb2JhbE9iamVjdCwgaW5wdXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9j
ZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yLmgKaW5kZXggNzliNTNkMGMwNmFmZTBhNGZkNmQzYzg3M2Y0NDQ2ZmU5MzQzM2IzZS4u
ZmE5N2NjZDgyYjUwOGEzMDEyMjkxOWM4MjJjMjgyOGIyN2ZjMjVhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
CkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNBcnJheTsKLWNs
YXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyOworY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNl
OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIEF1ZGlv
V29ya2xldFByb2Nlc3NvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1dvcmts
ZXRQcm9jZXNzb3I+CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yKGNvbnN0IEF1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEmKTsKLSAgICB2
b2lkIGJ1aWxkSlNBcmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6
Ok1hcmtlZEFyZ3VtZW50QnVmZmVyJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBp
bnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApOwor
ICAgIHZvaWQgYnVpbGRKU0FyZ3VtZW50cyhKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlJiwgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRp
b0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1
ZXNNYXApOwogCiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9y
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmgKaW5kZXggM2I0OTM0NDZj
MTg4ODRkOGRlMjA0MTc2ZWVmZWYxODlhNzFhYTRmZC4uNWEwNWVkMjEzYTVjZmMyZDI4YWIyMmE3
MWMwOTAzZjFiMmU0ZTBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
LmgKQEAgLTMxMCw3ICszMTAsNyBAQCBjbGFzcyBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkg
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveAogICAgIHZvaWQg
YWRkVmFsdWVUb0FycmF5KE5TTXV0YWJsZUFycmF5ICosIEpTQzo6SlNHbG9iYWxPYmplY3QqIGV4
ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSk7CiAgICAgCiAgICAgYm9vbCBkZW1hcnNoYWxWYWx1ZUZy
b21BcnJheShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgTlNBcnJheSAqYXJyYXksIE5TVUludGVnZXIm
IGluZGV4LCBKU0M6OkpTVmFsdWUmIHJlc3VsdCk7Ci0gICAgdm9pZCBkZW1hcnNoYWxWYWx1ZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIGRhdGFfdCB2YWx1ZXNEYXRhLCBtYWNoX21zZ190eXBlX251
bWJlcl90IHZhbHVlc0xlbmd0aCwgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYgcmVzdWx0KTsK
KyAgICB2b2lkIGRlbWFyc2hhbFZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgZGF0YV90IHZh
bHVlc0RhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgdmFsdWVzTGVuZ3RoLCBKU0M6Ok1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZSYgcmVzdWx0KTsKIAogICAgIGNsYXNzIExvY2FsT2JqZWN0TWFw
IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jYWxPYmplY3RNYXApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGVkMGUzMTQzZWY4YzA2YWNj
OTg4YWEyNGFiODgyN2EzOThmNWJhMzUuLmIyYTI0ODRlZWFmODZmNDZhYjE1ZDBkZDA5ZmJjY2I4
YWIyODg0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAg
LTE0MzMsNyArMTQzMyw3IEBAIEpTVmFsdWUgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpk
ZW1hcnNoYWxWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIHZh
bHVlOwogfQogCi12b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVtYXJzaGFsVmFs
dWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBkYXRhX3QgdmFsdWVzRGF0
YSwgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCB2YWx1ZXNMZW5ndGgsIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyJiByZXN1bHQpCit2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVtYXJzaGFs
VmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBkYXRhX3QgdmFsdWVz
RGF0YSwgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCB2YWx1ZXNMZW5ndGgsIE1hcmtlZEFyZ3VtZW50
QnVmZmVyQmFzZSYgcmVzdWx0KQogewogICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGEgPSBhZG9w
dE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OnZhbHVlc0RhdGEgbGVuZ3Ro
OnZhbHVlc0xlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0Y2U0NDYwN2Q4ZThiMTFmZWU0ODcx
MzEzNWUzMTZmOGUyY2RjNDA0Li45NTE4ZmRjNWU3MDgwOGVkMmFmZTI3M2MwNjgyZTQ0NjRmYjMw
YWRjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGZhc3QgcHJvcGVydHkgZW51bWVyYXRpb24g
bW9kZSBmb3IgSlNPTi5zdHJpbmdpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDM5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2pzb24tc3RyaW5naWZ5LW9iamVjdC1tb2RpZnkuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yLmxl
dC5vYmplY3QuaGVsbG8uZ2V0IGlubmVyKToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvcik6Cisg
ICAgICAgIChzaG91bGRCZS5sZXQub2JqZWN0LmhlbGxvLmdldCBpbm5lcik6CisKIDIwMjEtMDkt
MTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBP
cHRpbWl6ZSBsZWFmIG9iamVjdCBjcmVhdGlvbiBpbiBKU09OLnBhcnNlCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9qc29uLXN0cmluZ2lmeS1vYmplY3QtbW9kaWZ5LmpzIGIvSlNUZXN0cy9z
dHJlc3MvanNvbi1zdHJpbmdpZnktb2JqZWN0LW1vZGlmeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzYyZDAw
NDJmZWZmM2E2YjI4ZWE5MDdmMWM4MWFiMmVlNTY5OWJkCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvanNvbi1zdHJpbmdpZnktb2JqZWN0LW1vZGlmeS5qcwpAQCAtMCwwICsxLDM1
IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKK30KKworeworICAgIGxldCBvYmplY3QgPSB7CisgICAgICAgIGhlbGxvOiB7Cisg
ICAgICAgICAgICBnZXQgaW5uZXIoKSB7CisgICAgICAgICAgICAgICAgJHZtLnRvVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5KG9iamVjdCk7CisgICAgICAgICAgICAgICAgb2JqZWN0LndvcmxkID0gMDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gMzM7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgIHdvcmxkOiA0MiwKKyAgICAgICAgdGVzdDogbnVsbCwKKyAgICB9OworCisgICAgc2hv
dWxkQmUoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgYHsiaGVsbG8iOnsiaW5uZXIiOjMzfSwid29y
bGQiOjAsInRlc3QiOm51bGx9YCk7Cit9Cit7CisgICAgbGV0IG9iamVjdCA9IHsKKyAgICAgICAg
aGVsbG86IHsKKyAgICAgICAgICAgIGdldCBpbm5lcigpIHsKKyAgICAgICAgICAgICAgICBkZWxl
dGUgb2JqZWN0LndvcmxkOworICAgICAgICAgICAgICAgIG9iamVjdC50ZXN0aW5nID0gMzM7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIDMzOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
ICAgICB3b3JsZDogNDIsCisgICAgICAgIHRlc3Q6IG51bGwsCisgICAgfTsKKworICAgIHNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KG9iamVjdCksIGB7ImhlbGxvIjp7ImlubmVyIjozM30sInRlc3Qi
Om51bGx9YCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438504</attachid>
            <date>2021-09-17 12:51:01 -0700</date>
            <delta_ts>2021-09-17 14:58:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230393-20210917125100.patch</filename>
            <type>text/plain</type>
            <size>31232</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJjNjg4MDMxZWJlNDI3YmUwZWUyZjQyYmZlNzFmZGYwNWM5MjljLi4yNTM5MTk5NjRiMGJiNWQ2
NDMyNWMwYTU5Y2NjNDhkYTc4ZDZiZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NCBAQAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9y
IEpTT04uc3RyaW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBjb2xsZWN0ZWQgcHJvZmlsZXMgYW5kIGZvdW5kIHNldmVyYWwgc3VidGVzdHMg
YXJlIHVzaW5nIEpTT04uc3RyaW5naWZ5IGVub3VnaC4gQW5kIGdlbmVyYXRlZCBzdHJpbmdzIGFy
ZSBtYW55IHNlcmlhbGl6ZWQgbGVhZiBvYmplY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBmYXN0IG9iamVjdCBwcm9wZXJ0eSBlbnVtZXJhdGlvbi4gV2hlbiB3ZSBrbm93IHRoYXQgc291
cmNlIG9iamVjdCBoYXMgc29tZSBjb25kaXRpb25zLCB3ZSBjYW4gc2F5IHRoYXQsCisgICAgICAg
IGFzIGxvbmcgYXMgc3RydWN0dXJlIGlzIG5vdCBjaGFuZ2VkLCB3ZSBjYW4gY29udGludWUgdXNp
bmcgcHJvcGVydHkgbmFtZXMgYW5kIG9mZnNldCBjb2xsZWN0ZWQgZnJvbSB0aGUgc3RydWN0dXJl
LgorICAgICAgICBUaGlzIHdheSByZW1vdmVzIG5vbiBvYnNlcnZhYmxlIFtbR2V0XV0gb3BlcmF0
aW9ucyB0byBhY2NlbGVyYXRlIEpTT04uc3RyaW5naWZ5IHBlcmZvcm1hbmNlIGZvciBtYWpvciBv
YmplY3QgaXRlcmF0aW9uIGNhc2VzLgorCisgICAgICAgIFdlIGFsc28gZXh0ZW5kIE1hcmtlZEFy
Z3VtZW50QnVmZmVyOiBpbnRyb2R1Y2luZyBNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplIHdo
aWNoIGNhbiB0YWtlIGRlZmF1bHQgaW5saW5lIGNhcGFjaXR5IGFzIGEgdGVtcGxhdGUKKyAgICAg
ICAgcGFyYW1ldGVyLiBUaGlzIGlzIHVzZWQgaW4gSlNPTi5zdHJpbmdpZnkgdG8gaW5jcmVhc2Ug
dGhlIGJ1ZmZlciBiZWNhdXNlIG5vdyB3ZSBhbHNvIG5lZWQgdG8gcmVjb3JkIHN0cnVjdHVyZXMg
aW4gTWFya2VkQXJndW1lbnRCdWZmZXIuCisKKyAgICAgICAgVGhpcyBvZmZlcnMgMC40JSBpbXBy
b3ZlbWVudCBpbiBTcGVlZG9tZXRlcjIgKEVtYmVySlMtVG9kb01WQywgVmFuaWxsYS1YWFgsIEVt
YmVySlMtRGVidWctVG9kb01WQywgdGhleSBoYXZlIGVub3VnaCBhbW91bnQgb2YgSlNPTi5zdHJp
bmdpZnkKKyAgICAgICAgdGltZSkuCisKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
ICB8ICAgICAgICAgICAgICAgc3VidGVzdCAgICAgICAgICAgICAgICB8ICAgICBtcyAgICAgIHwg
ICAgIG1zICAgICAgfCAgYiAvIGEgICB8IHBWYWx1ZSAoc2lnbmlmaWNhbmNlIHVzaW5nIEZhbHNl
IERpc2NvdmVyeSBSYXRlKSB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCBF
bG0tVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICAgICAgfDExNy43MTAwMDAgICB8MTE3Ljc1
MTY2NyAgIHwxLjAwMDM1NCAgfCAwLjg4MzI0NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgICAgICB8IFZ1ZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAg
ICAgICB8MjQuNTAwMDAwICAgIHwyNC4zMTE2NjcgICAgfDAuOTkyMzEzICB8IDAuMzY1MTMwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRW1iZXJK
Uy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgIHwxMjYuNjQ2NjY3ICAgfDEyNS43MzgzMzMg
ICB8MC45OTI4MjggIHwgMC4wMDI1ODcgKHNpZ25pZmljYW50KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAgICAgfCBCYWNrYm9uZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAg
fDQ3Ljg3MzMzMyAgICB8NDcuOTExNjY3ICAgIHwxLjAwMDgwMSAgfCAwLjc2MjUwOSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFByZWFjdC1Ub2Rv
TVZDICAgICAgICAgICAgICAgICAgICAgICB8MTcuMDIwMDAwICAgIHwxNy4wNzAwMDAgICAgfDEu
MDAyOTM4ICB8IDAuNzg2Nzk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8CisgICAgICAgIHwgQW5ndWxhckpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgIHwxMjku
ODU2NjY3ICAgfDEyOS4zNTMzMzMgICB8MC45OTYxMjQgIHwgMC4xNzc2MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhLUVTMjAxNS1U
b2RvTVZDICAgICAgICAgICAgICAgfDYxLjY5ODMzMyAgICB8NjEuMTIwMDAwICAgIHwwLjk5MDYy
NiAgfCAwLjAwMDAwMyAoc2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICAgICAgICB8IEluZmVybm8tVG9kb01WQyAgICAgICAgICAgICAgICAgICAgICB8NjIuODQwMDAw
ICAgIHw2Mi40OTY2NjcgICAgfDAuOTk0NTM2ICB8IDAuMzEyMzQwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRmxpZ2h0LVRvZG9NVkMgICAgICAg
ICAgICAgICAgICAgICAgIHw3Ny4wOTUwMDAgICAgfDc2LjkzNjY2NyAgICB8MC45OTc5NDYgIHwg
MC43MDI3MjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAg
ICAgfCBBbmd1bGFyMi1UeXBlU2NyaXB0LVRvZG9NVkMgICAgICAgICAgfDM5Ljc0MDAwMCAgICB8
MzkuMTkxNjY3ICAgIHwwLjk4NjIwMiAgfCAwLjA1MzQ4NSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFZhbmlsbGFKUy1Ub2RvTVZDICAgICAgICAg
ICAgICAgICAgICB8NDkuMDA4MzMzICAgIHw0OC4zNDY2NjcgICAgfDAuOTg2NDk5ICB8IDAuMDAw
NjM4IChzaWduaWZpY2FudCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwg
alF1ZXJ5LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHwyMTYuNzg1MDAwICAgfDIxNy4x
ODgzMzMgICB8MS4wMDE4NjEgIHwgMC4yNzA3NDcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKKyAgICAgICAgfCBFbWJlckpTLURlYnVnLVRvZG9NVkMgICAgICAgICAg
ICAgICAgfDM0NC4yMzAwMDAgICB8MzQyLjk5MzMzMyAgIHwwLjk5NjQwNyAgfCAwLjAxMjI2MiAo
c2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFJlYWN0
LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgICB8ODUuNDYxNjY3ICAgIHw4NS40MTE2Njcg
ICAgfDAuOTk5NDE1ICB8IDAuNzU4MDQ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8CisgICAgICAgIHwgUmVhY3QtUmVkdXgtVG9kb01WQyAgICAgICAgICAgICAgICAg
IHwxNDAuNjgxNjY3ICAgfDE0MC42NDAwMDAgICB8MC45OTk3MDQgIHwgMC44NzEyNzcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhLUVT
MjAxNS1CYWJlbC1XZWJwYWNrLVRvZG9NVkMgfDU5LjkyODMzMyAgICB8NTkuMzUxNjY3ICAgIHww
Ljk5MDM3NyAgfCAwLjAwMDAwMCAoc2lnbmlmaWNhbnQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIGEgbWVhbiA9IDI2NC40MDY1
MAorICAgICAgICBiIG1lYW4gPSAyNjUuNTE1MzMKKyAgICAgICAgcFZhbHVlID0gMC4wMDA1NTY3
MzU3CisgICAgICAgIChCaWdnZXIgbWVhbnMgYXJlIGJldHRlci4pCisgICAgICAgIDEuMDA0IHRp
bWVzIGJldHRlcgorICAgICAgICBSZXN1bHRzIEFSRSBzaWduaWZpY2FudAorCisgICAgICAgICog
aGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKToK
KyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6Cisg
ICAgICAgICogcnVudGltZS9BcmdMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXJCYXNlOjphZGRNYXJrU2V0KToKKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXJCYXNlOjptYXJrTGlzdHMpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZl
ckJhc2U6OnNsb3dFbnN1cmVDYXBhY2l0eSk6CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlckJhc2U6OnNsb3dBcHBlbmQpOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlcjo6YWRkTWFya1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyOjptYXJrTGlzdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNsb3dBcHBlbmQpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvQXJnTGlzdC5oOgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcldp
dGhTaXplOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcldpdGhTaXplKToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXI6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6On5NYXJrZWRBcmd1bWVudEJ1ZmZlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpzaXplIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmlzRW1wdHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6Y2xlYXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXBwZW5kV2l0
aEFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjph
cHBlbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6YXBw
ZW5kV2l0aENyYXNoT25PdmVyZmxvdyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFy
Z3VtZW50QnVmZmVyOjpyZW1vdmVMYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXI6Omxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6dGFrZUxhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6ZW5zdXJlQ2FwYWNpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlcjo6aGFzT3ZlcmZsb3dlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpvdmVyZmxvd0NoZWNrTm90TmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OmZpbGwpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xvdEZvciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYWxsb2NCYXNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXI6OnNldE5lZWRzT3ZlcmZsb3dD
aGVjayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyOjpjbGVh
ck5lZWRzT3ZlcmZsb3dDaGVjayk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU09OT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6aXNGYXN0T2JqZWN0
UHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjphcHBlbmRTdHJp
bmdpZmllZFZhbHVlKToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6SG9sZGVy
KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpjYW5QZXJmb3JtRmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JKU09OU3RyaW5naWZ5
KToKKwogMjAyMS0wOS0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODI0NzguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjZiM2IyMThkYzk2NWM1NjhhMjgxNmQyZTgxOWM5ZmMzYzcyMGRkZi4uNzQzZTQyNTg1NzU0NzU0
NTNmMDIyZjRlMjhmOWQ1ODliMjU0ZTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIxLTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0pTQ10gQWRkIGZhc3QgcHJvcGVydHkgZW51bWVyYXRpb24gbW9kZSBmb3IgSlNPTi5zdHJpbmdp
ZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDM5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oOgorCiAyMDIxLTA5LTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxF
RDogbnNEYXRhIHVuZGVyIERhdGFVUkxSZXNvdXJjZU1lZGlhTG9hZGVyOjpEYXRhVVJMUmVzb3Vy
Y2VNZWRpYUxvYWRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTNiNDkzZmRh
ODc4YTc5ZGFjY2JmMzE1MzU3NGViODI2MzYxZjIxOS4uN2JjOTMwODIxMmJlNDE2ZDc1ZWJmOTRh
MzdjODY2YTQ0ZDljYTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIxLTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gQWRkIGZhc3QgcHJvcGVydHkgZW51bWVyYXRpb24gbW9kZSBmb3IgSlNP
Ti5zdHJpbmdpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDM5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lmg6CisgICAg
ICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFyc2hhbFZhbHVl
cyk6CisKIDIwMjEtMDktMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSGFyZGVuaW5nXSBWYWxpZGF0ZSBJREJWYWx1ZSdzIGJsb2IgcGF0aHMgaW4gV2ViSURC
U2VydmVyOjpwdXRPckFkZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGEw
N2IzNzI0NmFjMmJlMDFhYTI0MTUxZmJhYTM1ZmRhOTJmM2ZiYmQuLjBlY2Y4YmQ2OThmNTA0YWY1
YWYyNmM4NDQxMzZjMjViZjQ5ODcxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CkBAIC0yNzY3LDcgKzI3NjcsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21hcmtMaXN0U2V0ICYmIG1fbWFya0xpc3RT
ZXQtPnNpemUoKSkgewogICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9v
dFNjb3BlKHZpc2l0b3IsIFJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKLSAgICAg
ICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKHZpc2l0b3IsICptX21h
cmtMaXN0U2V0KTsKKyAgICAgICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1h
cmtMaXN0cyh2aXNpdG9yLCAqbV9tYXJrTGlzdFNldCk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCA3NDRmM2JmZWZmNWU2YTEx
ODhlYzBhZmY3MjY2NWZiMTgwNjFkYjIyLi4wODFkZjQ2ZWRmZmZhYTEwMDhiOGZlYWVmMjM0MWVl
ZmMwMTNkMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03Nyw3ICs3Nyw3IEBA
IGNsYXNzIE1hcmtTdGFja0FycmF5OwogY2xhc3MgTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQ7
CiBjbGFzcyBNYXJrZWRKU1ZhbHVlUmVmQXJyYXk7CiBjbGFzcyBCbG9ja0RpcmVjdG9yeTsKLWNs
YXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyOworY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNl
OwogY2xhc3MgTWFya2luZ0NvbnN0cmFpbnQ7CiBjbGFzcyBNYXJraW5nQ29uc3RyYWludFNldDsK
IGNsYXNzIE11dGF0b3JTY2hlZHVsZXI7CkBAIC0yNDUsNyArMjQ1LDcgQEAgY2xhc3MgSGVhcCB7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RkOjp1bmlxdWVfcHRyPFR5cGVDb3VudFNldD4gcHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6dW5p
cXVlX3B0cjxUeXBlQ291bnRTZXQ+IG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgIEhhc2hTZXQ8
TWFya2VkQXJndW1lbnRCdWZmZXIqPiYgbWFya0xpc3RTZXQoKTsKKyAgICBIYXNoU2V0PE1hcmtl
ZEFyZ3VtZW50QnVmZmVyQmFzZSo+JiBtYXJrTGlzdFNldCgpOwogICAgIHZvaWQgYWRkTWFya2Vk
SlNWYWx1ZVJlZkFycmF5KE1hcmtlZEpTVmFsdWVSZWZBcnJheSopOwogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaFByb3RlY3RlZENlbGwoY29uc3QgRnVu
Y3RvciYpOwpAQCAtNjI0LDcgKzYyNCw3IEBAIGNsYXNzIEhlYXAgewogICAgIEhhc2hTZXQ8Y29u
c3QgSlNDZWxsKj4gbV9jb3B5aW5nUmVtZW1iZXJlZFNldDsKIAogICAgIFByb3RlY3RDb3VudFNl
dCBtX3Byb3RlY3RlZFZhbHVlczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxNYXJrZWRB
cmd1bWVudEJ1ZmZlcio+PiBtX21hcmtMaXN0U2V0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNo
U2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSo+PiBtX21hcmtMaXN0U2V0OwogICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxNYXJrZWRKU1ZhbHVlUmVmQXJyYXksIEJhc2ljUmF3U2VudGluZWxOb2Rl
PE1hcmtlZEpTVmFsdWVSZWZBcnJheT4+IG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5czsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxNYWNoaW5lVGhyZWFkcz4gbV9tYWNoaW5lVGhyZWFkczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCmluZGV4IDFkNzcwZWE2OTgyYzgzODQ1
OTllZTVjNTc0YzQ2ZmNiZWE0Y2IzOTguLjcxYmVkMWNlMjVjNDczOTBkMzFlNTkyMzgxZTdiZjlh
MzMzYTBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaApAQCAt
MjE1LDEwICsyMTUsMTAgQEAgaW5saW5lIHZvaWQgSGVhcDo6ZGVjcmVtZW50RGVmZXJyYWxEZXB0
aEFuZEdDSWZOZWVkZWQoKQogICAgIH0KIH0KIAotaW5saW5lIEhhc2hTZXQ8TWFya2VkQXJndW1l
bnRCdWZmZXIqPiYgSGVhcDo6bWFya0xpc3RTZXQoKQoraW5saW5lIEhhc2hTZXQ8TWFya2VkQXJn
dW1lbnRCdWZmZXJCYXNlKj4mIEhlYXA6Om1hcmtMaXN0U2V0KCkKIHsKICAgICBpZiAoIW1fbWFy
a0xpc3RTZXQpCi0gICAgICAgIG1fbWFya0xpc3RTZXQgPSBtYWtlVW5pcXVlPEhhc2hTZXQ8TWFy
a2VkQXJndW1lbnRCdWZmZXIqPj4oKTsKKyAgICAgICAgbV9tYXJrTGlzdFNldCA9IG1ha2VVbmlx
dWU8SGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UqPj4oKTsKICAgICByZXR1cm4gKm1f
bWFya0xpc3RTZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ0xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5j
cHAKaW5kZXggNTFhYmM1YTEzY2I2ZjllYzBkODI1NWY1MWVjMGRmOWIzNGFkMTY4MS4uZjI4MTVi
ODBjOGM3OTc3NjQ0YmQwZWYyZTMyNmRhMTQyZTQ1NzkzOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAgdXNpbmcgc3RkOjptaW47
CiAKIG5hbWVzcGFjZSBKU0MgewogCi12b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjphZGRNYXJr
U2V0KEpTVmFsdWUgdikKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjphZGRNYXJrU2V0
KEpTVmFsdWUgdikKIHsKICAgICBpZiAobV9tYXJrU2V0KQogICAgICAgICByZXR1cm47CkBAIC01
MiwyMCArNTIsMjAgQEAgdm9pZCBBcmdMaXN0OjpnZXRTbGljZShpbnQgc3RhcnRJbmRleCwgQXJn
TGlzdCYgcmVzdWx0KSBjb25zdAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgotdm9p
ZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKFZpc2l0b3ImIHZpc2l0b3IsIExpc3RT
ZXQmIG1hcmtTZXQpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6bWFya0xpc3RzKFZp
c2l0b3ImIHZpc2l0b3IsIExpc3RTZXQmIG1hcmtTZXQpCiB7CiAgICAgTGlzdFNldDo6aXRlcmF0
b3IgZW5kID0gbWFya1NldC5lbmQoKTsKICAgICBmb3IgKExpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0g
bWFya1NldC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIqIGxpc3QgPSAqaXQ7CisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSog
bGlzdCA9ICppdDsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0LT5tX3NpemU7ICsr
aSkKICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoSlNWYWx1ZTo6ZGVjb2Rl
KGxpc3QtPnNsb3RGb3IoaSkpKTsKICAgICB9CiB9CiAKLXRlbXBsYXRlIHZvaWQgTWFya2VkQXJn
dW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhBYnN0cmFjdFNsb3RWaXNpdG9yJiwgTGlzdFNldCYpOwot
dGVtcGxhdGUgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKFNsb3RWaXNpdG9y
JiwgTGlzdFNldCYpOwordGVtcGxhdGUgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1h
cmtMaXN0cyhBYnN0cmFjdFNsb3RWaXNpdG9yJiwgTGlzdFNldCYpOwordGVtcGxhdGUgdm9pZCBN
YXJrZWRBcmd1bWVudEJ1ZmZlckJhc2U6Om1hcmtMaXN0cyhTbG90VmlzaXRvciYsIExpc3RTZXQm
KTsKIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVf
dCByZXF1ZXN0ZWRDYXBhY2l0eSkKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjpzbG93
RW5zdXJlQ2FwYWNpdHkoc2l6ZV90IHJlcXVlc3RlZENhcGFjaXR5KQogewogICAgIHNldE5lZWRz
T3ZlcmZsb3dDaGVjaygpOwogICAgIGF1dG8gY2hlY2tlZE5ld0NhcGFjaXR5ID0gQ2hlY2tlZElu
dDMyKHJlcXVlc3RlZENhcGFjaXR5KTsKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBNYXJrZWRBcmd1
bWVudEJ1ZmZlcjo6c2xvd0Vuc3VyZUNhcGFjaXR5KHNpemVfdCByZXF1ZXN0ZWRDYXBhY2l0eSkK
ICAgICBleHBhbmRDYXBhY2l0eShjaGVja2VkTmV3Q2FwYWNpdHkpOwogfQogCi12b2lkIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyOjpleHBhbmRDYXBhY2l0eSgpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyQmFzZTo6ZXhwYW5kQ2FwYWNpdHkoKQogewogICAgIHNldE5lZWRzT3ZlcmZsb3dDaGVjaygp
OwogICAgIGF1dG8gY2hlY2tlZE5ld0NhcGFjaXR5ID0gQ2hlY2tlZEludDMyKG1fY2FwYWNpdHkp
ICogMjsKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6ZXhwYW5k
Q2FwYWNpdHkoKQogICAgIGV4cGFuZENhcGFjaXR5KGNoZWNrZWROZXdDYXBhY2l0eSk7CiB9CiAK
LXZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXI6OmV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0
eSkKK3ZvaWQgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlOjpleHBhbmRDYXBhY2l0eShpbnQgbmV3
Q2FwYWNpdHkpCiB7CiAgICAgc2V0TmVlZHNPdmVyZmxvd0NoZWNrKCk7CiAgICAgQVNTRVJUKG1f
Y2FwYWNpdHkgPCBuZXdDYXBhY2l0eSk7CkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBNYXJrZWRB
cmd1bWVudEJ1ZmZlcjo6ZXhwYW5kQ2FwYWNpdHkoaW50IG5ld0NhcGFjaXR5KQogICAgIG1fY2Fw
YWNpdHkgPSBuZXdDYXBhY2l0eTsKIH0KIAotdm9pZCBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6c2xv
d0FwcGVuZChKU1ZhbHVlIHYpCit2b2lkIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTo6c2xvd0Fw
cGVuZChKU1ZhbHVlIHYpCiB7CiAgICAgQVNTRVJUKG1fc2l6ZSA8PSBtX2NhcGFjaXR5KTsKICAg
ICBpZiAobV9zaXplID09IG1fY2FwYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcmdMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmdMaXN0LmgKaW5kZXggOTlmYjkyMTVlNjQ4MDk5ZjFkYTIyOTFjNDBkOWExZmRlODlmNjg4Ny4u
OGVhOWIwZTMwOGI4Y2UzYWI0MDE5OTBiYWIzNDA1M2QxNmYyMGRiOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuaApAQCAtMjgsMjkgKzI4LDE4IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6IHB1YmxpYyBSZWNvcmRPdmVy
ZmxvdyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOwot
ICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1lbnRCdWZmZXIpOworY2xhc3MgYWxp
Z25hcyhhbGlnbm9mKEVuY29kZWRKU1ZhbHVlKSkgTWFya2VkQXJndW1lbnRCdWZmZXJCYXNlIDog
cHVibGljIFJlY29yZE92ZXJmbG93IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYXJrZWRB
cmd1bWVudEJ1ZmZlckJhc2UpOworICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTWFya2VkQXJndW1l
bnRCdWZmZXJCYXNlKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKICAgICBmcmll
bmQgY2xhc3MgVk07CiAgICAgZnJpZW5kIGNsYXNzIEFyZ0xpc3Q7CiAKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlID0gUmVjb3JkT3ZlcmZsb3c7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
aW5saW5lQ2FwYWNpdHkgPSA4OwotICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRBcmd1bWVudEJ1
ZmZlcio+IExpc3RTZXQ7CisgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVy
QmFzZSo+IExpc3RTZXQ7CiAKLSAgICAvLyBDb25zdHJ1Y3RvciBmb3IgYSByZWFkLXdyaXRlIGxp
c3QsIHRvIHdoaWNoIHlvdSBtYXkgYXBwZW5kIHZhbHVlcy4KLSAgICAvLyBGSVhNRTogUmVtb3Zl
IGFsbCBjbGllbnRzIG9mIHRoaXMgQVBJLCB0aGVuIHJlbW92ZSB0aGlzIEFQSS4KLSAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlcigpCi0gICAgICAgIDogbV9zaXplKDApCi0gICAgICAgICwgbV9jYXBh
Y2l0eShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgLCBtX2J1ZmZlcihtX2lubGluZUJ1ZmZlcikK
LSAgICAgICAgLCBtX21hcmtTZXQobnVsbHB0cikKLSAgICB7Ci0gICAgfQotCi0gICAgfk1hcmtl
ZEFyZ3VtZW50QnVmZmVyKCkKKyAgICB+TWFya2VkQXJndW1lbnRCdWZmZXJCYXNlKCkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghbV9uZWVkc092ZXJmbG93Q2hlY2spOwogICAgICAgICBpZiAobV9t
YXJrU2V0KQpAQCAtMTQ1LDYgKzEzNCwyMiBAQCBjbGFzcyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA6
IHB1YmxpYyBSZWNvcmRPdmVyZmxvdyB7CiAgICAgICAgIGZ1bmMocmVpbnRlcnByZXRfY2FzdDxK
U1ZhbHVlKj4oJnNsb3RGb3IoMCkpKTsKICAgICB9CiAKK3Byb3RlY3RlZDoKKyAgICAvLyBDb25z
dHJ1Y3RvciBmb3IgYSByZWFkLXdyaXRlIGxpc3QsIHRvIHdoaWNoIHlvdSBtYXkgYXBwZW5kIHZh
bHVlcy4KKyAgICAvLyBGSVhNRTogUmVtb3ZlIGFsbCBjbGllbnRzIG9mIHRoaXMgQVBJLCB0aGVu
IHJlbW92ZSB0aGlzIEFQSS4KKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2Uoc2l6ZV90IGNh
cGFjaXR5KQorICAgICAgICA6IG1fc2l6ZSgwKQorICAgICAgICAsIG1fY2FwYWNpdHkoY2FwYWNp
dHkpCisgICAgICAgICwgbV9idWZmZXIoaW5saW5lQnVmZmVyKCkpCisgICAgICAgICwgbV9tYXJr
U2V0KG51bGxwdHIpCisgICAgeworICAgIH0KKworICAgIEVuY29kZWRKU1ZhbHVlKiBpbmxpbmVC
dWZmZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxFbmNvZGVkSlNWYWx1
ZSo+KGJpdHdpc2VfY2FzdDx1aW50OF90Kj4odGhpcykgKyBzaXplb2YoTWFya2VkQXJndW1lbnRC
dWZmZXJCYXNlKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHko
KTsKICAgICB2b2lkIGV4cGFuZENhcGFjaXR5KGludCBuZXdDYXBhY2l0eSk7CkBAIC0xNjEsNyAr
MTY2LDcgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZs
b3cgewogICAgICAgICAKICAgICBFbmNvZGVkSlNWYWx1ZSogbWFsbG9jQmFzZSgpCiAgICAgewot
ICAgICAgICBpZiAobV9idWZmZXIgPT0gbV9pbmxpbmVCdWZmZXIpCisgICAgICAgIGlmIChtX2J1
ZmZlciA9PSBpbmxpbmVCdWZmZXIoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICByZXR1cm4gJnNsb3RGb3IoMCk7CiAgICAgfQpAQCAtMTc3LDExICsxODIsMjcgQEAgY2xh
c3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3JkT3ZlcmZsb3cgewogI2VuZGlm
IC8vIEFTU0VSVF9FTkFCTEVECiAgICAgaW50IG1fc2l6ZTsKICAgICBpbnQgbV9jYXBhY2l0eTsK
LSAgICBFbmNvZGVkSlNWYWx1ZSBtX2lubGluZUJ1ZmZlcltpbmxpbmVDYXBhY2l0eV07CiAgICAg
RW5jb2RlZEpTVmFsdWUqIG1fYnVmZmVyOwogICAgIExpc3RTZXQqIG1fbWFya1NldDsKIH07CiAK
K3RlbXBsYXRlPHNpemVfdCBwYXNzZWRJbmxpbmVDYXBhY2l0eSA9IDg+CitjbGFzcyBNYXJrZWRB
cmd1bWVudEJ1ZmZlcldpdGhTaXplIDogcHVibGljIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSBw
YXNzZWRJbmxpbmVDYXBhY2l0eTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemUo
KQorICAgICAgICA6IE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZShpbmxpbmVDYXBhY2l0eSkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChpbmxpbmVCdWZmZXIoKSA9PSBtX2lubGluZUJ1ZmZlcik7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEVuY29kZWRKU1ZhbHVlIG1faW5saW5lQnVmZmVyW2lubGlu
ZUNhcGFjaXR5XSB7IH07Cit9OworCit1c2luZyBNYXJrZWRBcmd1bWVudEJ1ZmZlciA9IE1hcmtl
ZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8PjsKKwogY2xhc3MgQXJnTGlzdCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNsYXNzIEludGVycHJldGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3ZjZmMmExMWUz
NjVkYmUwY2MyYjI3NzA2YWIxNTAxZjhhMTVlYjI0Li5hY2RiYmUxMTQ2Mzc0MWEyNDk1YTM5YjI3
MGM2MTVjNDAyOThkMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKLSNp
bmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9y
SW5saW5lcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiVk1J
bmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtODgsMjEg
Kzg4LDI1IEBAIGNsYXNzIFN0cmluZ2lmaWVyIHsKICAgICBjbGFzcyBIb2xkZXIgewogICAgIHB1
YmxpYzoKICAgICAgICAgZW51bSBSb290SG9sZGVyVGFnIHsgUm9vdEhvbGRlciB9OwotICAgICAg
ICBIb2xkZXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOworICAgICAgICBIb2xkZXIoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICBIb2xkZXIoUm9v
dEhvbGRlclRhZywgSlNPYmplY3QqKTsKIAogICAgICAgICBKU09iamVjdCogb2JqZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICAgICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0FycmF5OyB9CisgICAgICAgIGJvb2wgaXNGYXN0T2JqZWN0UHJvcGVydGllcygp
IGNvbnN0IHsgcmV0dXJuIG1faXNGYXN0T2JqZWN0UHJvcGVydGllczsgfQogCiAgICAgICAgIGJv
b2wgYXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiwgU3RyaW5nQnVpbGRlciYpOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgSlNPYmplY3QqIG1fb2JqZWN0OwotICAgICAgICBjb25zdCBi
b29sIG1faXNKU0FycmF5OwotICAgICAgICBjb25zdCBib29sIG1faXNBcnJheTsKKyAgICAgICAg
SlNPYmplY3QqIG1fb2JqZWN0IHsgbnVsbHB0ciB9OworICAgICAgICBTdHJ1Y3R1cmUqIG1fc3Ry
dWN0dXJlIHsgbnVsbHB0ciB9OworICAgICAgICBjb25zdCBib29sIG1faXNKU0FycmF5IHsgZmFs
c2UgfTsKKyAgICAgICAgY29uc3QgYm9vbCBtX2lzQXJyYXkgeyBmYWxzZSB9OworICAgICAgICBi
b29sIG1faXNGYXN0T2JqZWN0UHJvcGVydGllcyB7IGZhbHNlIH07CiAgICAgICAgIHVuc2lnbmVk
IG1faW5kZXggeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fc2l6ZSB7IDAgfTsKICAgICAgICAg
UmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9wcm9wZXJ0eU5hbWVzOworICAgICAgICBW
ZWN0b3I8c3RkOjp0dXBsZTxJZGVudGlmaWVyLCB1bnNpZ25lZD4sIDg+IG1fcHJvcGVydGllc0Fu
ZE9mZnNldHM7CiAgICAgfTsKIAogICAgIGZyaWVuZCBjbGFzcyBIb2xkZXI7CkBAIC0xMjUsNyAr
MTI5LDcgQEAgY2xhc3MgU3RyaW5naWZpZXIgewogICAgIENhbGxEYXRhIG1fcmVwbGFjZXJDYWxs
RGF0YTsKICAgICBTdHJpbmcgbV9nYXA7CiAKLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBtX29i
amVjdFN0YWNrOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyV2l0aFNpemU8MTY+IG1fb2JqZWN0
U3RhY2s7CiAgICAgVmVjdG9yPEhvbGRlciwgMTYsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2hv
bGRlclN0YWNrOwogICAgIFN0cmluZyBtX3JlcGVhdGVkR2FwOwogICAgIFN0cmluZyBtX2luZGVu
dDsKQEAgLTQwOCw4ICs0MTIsMTAgQEAgU3RyaW5naWZpZXI6OlN0cmluZ2lmeVJlc3VsdCBTdHJp
bmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJpbmdCdWlsZGVyJgogICAgIH0KIAog
ICAgIGJvb2wgaG9sZGVyU3RhY2tXYXNFbXB0eSA9IG1faG9sZGVyU3RhY2suaXNFbXB0eSgpOwot
ICAgIG1faG9sZGVyU3RhY2suYXBwZW5kKEhvbGRlcihtX2dsb2JhbE9iamVjdCwgb2JqZWN0KSk7
CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CisgICAg
bV9ob2xkZXJTdGFjay5hcHBlbmQoSG9sZGVyKG1fZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHN0cnVj
dHVyZSkpOwogICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhvYmpl
Y3QpOworICAgIG1fb2JqZWN0U3RhY2suYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhzdHJ1Y3R1
cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZ2lmeUZhaWxlZCk7CiAg
ICAgaWYgKCFob2xkZXJTdGFja1dhc0VtcHR5KQogICAgICAgICByZXR1cm4gU3RyaW5naWZ5U3Vj
Y2VlZGVkOwpAQCAtNDIyLDYgKzQyOCw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZnlSZXN1bHQg
U3RyaW5naWZpZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUoU3RyaW5nQnVpbGRlciYKICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmdpZnlGYWlsZWQ7CiAgICAgICAgIG1faG9sZGVyU3RhY2sucmVt
b3ZlTGFzdCgpOwogICAgICAgICBtX29iamVjdFN0YWNrLnJlbW92ZUxhc3QoKTsKKyAgICAgICAg
bV9vYmplY3RTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfSB3aGlsZSAoIW1faG9sZGVyU3RhY2su
aXNFbXB0eSgpKTsKICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwogfQpAQCAtNDU1LDgg
KzQ2Miw5IEBAIGlubGluZSB2b2lkIFN0cmluZ2lmaWVyOjpzdGFydE5ld0xpbmUoU3RyaW5nQnVp
bGRlciYgYnVpbGRlcikgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChtX2luZGVudCk7CiB9CiAK
LWlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkKK2lubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpI
b2xkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBtX29iamVjdChvYmplY3QpCisgICAgLCBtX3N0cnVj
dHVyZShzdHJ1Y3R1cmUpCiAgICAgLCBtX2lzSlNBcnJheShpc0pTQXJyYXkob2JqZWN0KSkKICAg
ICAsIG1faXNBcnJheShKU0M6OmlzQXJyYXkoZ2xvYmFsT2JqZWN0LCBvYmplY3QpKQogewpAQCAt
NDY0LDggKzQ3Miw2IEBAIGlubGluZSBTdHJpbmdpZmllcjo6SG9sZGVyOjpIb2xkZXIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjCiAKIGlubGluZSBTdHJpbmdp
Zmllcjo6SG9sZGVyOjpIb2xkZXIoUm9vdEhvbGRlclRhZywgSlNPYmplY3QqIG9iamVjdCkKICAg
ICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAsIG1faXNKU0FycmF5KGZhbHNlKQotICAgICwgbV9p
c0FycmF5KGZhbHNlKQogewogfQogCkBAIC00OTAsMTUgKzQ5NiwyOSBAQCBib29sIFN0cmluZ2lm
aWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIs
IFN0cmluZ0J1aQogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikKKyAgICAgICAg
ICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikgewogICAgICAgICAgICAg
ICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lmaWVyLm1fYXJyYXlSZXBsYWNlclByb3BlcnR5
TmFtZXMuZGF0YSgpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9zaXpl
ID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKG1fc3RydWN0dXJlICYmIG1fb2JqZWN0LT5zdHJ1Y3R1cmVJRCgpID09
IG1fc3RydWN0dXJlLT5pZCgpICYmIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZv
ckpTT05TdHJpbmdpZnkobV9zdHJ1Y3R1cmUpKSB7CisgICAgICAgICAgICAgICAgbV9zdHJ1Y3R1
cmUtPmZvckVhY2hQcm9wZXJ0eSh2bSwgWyZdKGNvbnN0IFByb3BlcnR5TWFwRW50cnkmIGVudHJ5
KSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmF0dHJpYnV0ZXMgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KGVudHJ5LmtleSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1i
b2woKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
ICAgICAgICBtX3Byb3BlcnRpZXNBbmRPZmZzZXRzLmNvbnN0cnVjdEFuZEFwcGVuZChJZGVudGlm
aWVyOjpmcm9tVWlkKHZtLCBlbnRyeS5rZXkpLCBlbnRyeS5vZmZzZXQpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBtX2lzRmFzdE9iamVjdFByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fc2l6
ZSA9IG1fcHJvcGVydGllc0FuZE9mZnNldHMuc2l6ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBvYmplY3RQcm9wZXJ0eU5hbWVzKHZt
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7
CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVy
dHlOYW1lcyhtX29iamVjdCwgZ2xvYmFsT2JqZWN0LCBvYmplY3RQcm9wZXJ0eU5hbWVzLCBEb250
RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVz
ID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgpOworICAgICAgICAgICAgICAgIG1f
c2l6ZSA9IG1fcHJvcGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKCkuc2l6ZSgpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgbV9zaXplID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0
eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgneycpOwog
ICAgICAgICB9CiAgICAgICAgIHN0cmluZ2lmaWVyLmluZGVudCgpOwpAQCAtNTM4LDEwICs1NTgs
MjIgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5n
aWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgc3RyaW5naWZ5UmVzdWx0ID0g
c3RyaW5naWZpZXIuYXBwZW5kU3RyaW5naWZpZWRWYWx1ZShidWlsZGVyLCB2YWx1ZSwgKnRoaXMs
IGluZGV4KTsKICAgICAgICAgQVNTRVJUKHN0cmluZ2lmeVJlc3VsdCAhPSBTdHJpbmdpZnlGYWls
ZWREdWVUb1VuZGVmaW5lZE9yU3ltYm9sVmFsdWUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8v
IEdldCB0aGUgdmFsdWUuCi0gICAgICAgIElkZW50aWZpZXImIHByb3BlcnR5TmFtZSA9IG1fcHJv
cGVydHlOYW1lcy0+cHJvcGVydHlOYW1lVmVjdG9yKClbaW5kZXhdOwotICAgICAgICBKU1ZhbHVl
IHZhbHVlID0gbV9vYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgSWRlbnRpZmll
ciBwcm9wZXJ0eU5hbWU7CisgICAgICAgIEpTVmFsdWUgdmFsdWU7CisgICAgICAgIGlmIChtX2lz
RmFzdE9iamVjdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IHN0ZDo6
Z2V0PDA+KG1fcHJvcGVydGllc0FuZE9mZnNldHNbaW5kZXhdKTsKKyAgICAgICAgICAgIGlmICht
X29iamVjdC0+c3RydWN0dXJlSUQoKSA9PSBtX3N0cnVjdHVyZS0+aWQoKSkgeworICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0ZDo6Z2V0PDE+KG1fcHJvcGVydGllc0FuZE9mZnNl
dHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fb2JqZWN0LT5nZXREaXJlY3Qo
b2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBt
X29iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMt
PnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKKyAgICAgICAgICAgIHZhbHVlID0gbV9vYmpl
Y3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgIH0KIAogICAgICAgICByb2xsQmFj
a1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCA3MjNjNDEz
MTUwZWM1ZjA5ODQ2NWQzMzEzYmQ0ZjM1NjdkZTEzOTNkLi41MjI3MzNjMTliMGZhNDU1MjQzZDFh
OWU0OGVmYTVhMGQ2MDVkOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3RvcklubGluZXMuaApAQCAtNTMsNiArNTMsMTEgQEAg
QUxXQVlTX0lOTElORSBib29sIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvck9i
amVjdEFzc2lnbihTdHJ1Y3R1cmUqIHMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorQUxXQVlTX0lO
TElORSBib29sIGNhblBlcmZvcm1GYXN0UHJvcGVydHlFbnVtZXJhdGlvbkZvckpTT05TdHJpbmdp
ZnkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgcmV0dXJuIGNhblBlcmZvcm1GYXN0UHJv
cGVydHlFbnVtZXJhdGlvbkZvck9iamVjdEFzc2lnbihzdHJ1Y3R1cmUpOworfQorCiBBTFdBWVNf
SU5MSU5FIHZvaWQgb2JqZWN0QXNzaWduRmFzdChWTSYgdm0sIEpTT2JqZWN0KiB0YXJnZXQsIEpT
T2JqZWN0KiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCA4PiYgcHJv
cGVydGllcywgTWFya2VkQXJndW1lbnRCdWZmZXImIHZhbHVlcykKIHsKICAgICAvLyB8c291cmNl
fCBTdHJ1Y3R1cmUgZG9lcyBub3QgaGF2ZSBhbnkgZ2V0dGVycy4gQW5kIHRhcmdldCBjYW4gcGVy
Zm9ybSBmYXN0IHB1dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCAxNTMyMTljYTM1NjA3YTU4NTUx
MTRjYTJkMDRiNDE4MzgwZjc1MWU0Li40OGRjMzY2MDIzNDVlOWU5NTE1NTJlMjdiNDBhZWI3NGI0
OWFlNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3IoY29uc3QgQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIH0KIAotdm9pZCBB
dWRpb1dvcmtsZXRQcm9jZXNzb3I6OmJ1aWxkSlNBcmd1bWVudHMoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgY29uc3QgVmVj
dG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0
cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJy
YXk+PiYgcGFyYW1WYWx1ZXNNYXApCit2b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRK
U0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIE1hcmtlZEFy
Z3VtZW50QnVmZmVyQmFzZSYgYXJncywgY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBp
bnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCiB7
CiAgICAgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHdlIGNhY2hlIHRoZSBhcnJheXMgcGFz
c2VkIHRvIEpTIGFuZCByZWNvbnN0cnVjdCB0aGVtIG9ubHkgd2hlbiB0aGUgdG9wb2xvZ3kgY2hh
bmdlcy4KICAgICBpZiAoIWNvcHlEYXRhRnJvbUJ1c2VzVG9KU0FycmF5KHZtLCBnbG9iYWxPYmpl
Y3QsIGlucHV0cywgdG9KU0FycmF5KG1fanNJbnB1dHMpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCmluZGV4IDc5
YjUzZDBjMDZhZmUwYTRmZDZkM2M4NzNmNDQ0NmZlOTM0MzNiM2UuLmZhOTdjY2Q4MmI1MDhhMzAx
MjI5MTljODIyYzI4MjhiMjdmYzI1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaApAQCAtMzgsNyArMzgsNyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTQXJyYXk7Ci1jbGFzcyBNYXJrZWRBcmd1bWVu
dEJ1ZmZlcjsKK2NsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyQmFzZTsKIH0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3Ig
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPgogCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25zdCBBdWRpb1dv
cmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhJik7Ci0gICAgdm9pZCBidWlsZEpTQXJndW1l
bnRzKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVm
PEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKTsKKyAgICB2b2lkIGJ1aWxkSlNB
cmd1bWVudHMoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6Ok1hcmtlZEFyZ3Vt
ZW50QnVmZmVyQmFzZSYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBW
ZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwKTsKIAogICAgIFN0
cmluZyBtX25hbWU7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCmluZGV4IDNiNDkzNDQ2YzE4ODg0ZDhkZTIwNDE3NmVl
ZmVmMTg5YTcxYWE0ZmQuLjVhMDVlZDIxM2E1Y2ZjMmQyOGFiMjJhNzFjMDkwM2YxYjJlNGUwY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCkBAIC0zMTAsNyArMzEw
LDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5IDogcHVibGljIFJlZkNvdW50
ZWQ8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3gKICAgICB2b2lkIGFkZFZhbHVlVG9BcnJheShO
U011dGFibGVBcnJheSAqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBleGVjLCBKU0M6OkpTVmFsdWUg
dmFsdWUpOwogICAgIAogICAgIGJvb2wgZGVtYXJzaGFsVmFsdWVGcm9tQXJyYXkoSlNDOjpKU0ds
b2JhbE9iamVjdCosIE5TQXJyYXkgKmFycmF5LCBOU1VJbnRlZ2VyJiBpbmRleCwgSlNDOjpKU1Zh
bHVlJiByZXN1bHQpOwotICAgIHZvaWQgZGVtYXJzaGFsVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBkYXRhX3QgdmFsdWVzRGF0YSwgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCB2YWx1ZXNMZW5n
dGgsIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImIHJlc3VsdCk7CisgICAgdm9pZCBkZW1hcnNo
YWxWYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIGRhdGFfdCB2YWx1ZXNEYXRhLCBtYWNoX21z
Z190eXBlX251bWJlcl90IHZhbHVlc0xlbmd0aCwgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlckJh
c2UmIHJlc3VsdCk7CiAKICAgICBjbGFzcyBMb2NhbE9iamVjdE1hcCB7CiAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKExvY2FsT2JqZWN0TWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQppbmRleCBlZDBlMzE0M2VmOGMwNmFjYzk4OGFhMjRhYjg4MjdhMzk4
ZjViYTM1Li5iMmEyNDg0ZWVhZjg2ZjQ2YWIxNWQwZGQwOWZiY2NiOGFiMjg4NDMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xNDMzLDcgKzE0MzMsNyBA
QCBKU1ZhbHVlIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVtYXJzaGFsVmFsdWUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotdm9pZCBO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFyc2hhbFZhbHVlcyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgZGF0YV90IHZhbHVlc0RhdGEsIG1hY2hfbXNnX3R5cGVf
bnVtYmVyX3QgdmFsdWVzTGVuZ3RoLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgcmVzdWx0KQordm9p
ZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFyc2hhbFZhbHVlcyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgZGF0YV90IHZhbHVlc0RhdGEsIG1hY2hfbXNnX3R5
cGVfbnVtYmVyX3QgdmFsdWVzTGVuZ3RoLCBNYXJrZWRBcmd1bWVudEJ1ZmZlckJhc2UmIHJlc3Vs
dCkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlc05vQ29weTp2YWx1ZXNEYXRhIGxlbmd0aDp2YWx1ZXNMZW5ndGggZnJl
ZVdoZW5Eb25lOk5PXSk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNGNlNDQ2MDdkOGU4YjExZmVlNDg3MTMxMzVlMzE2ZjhlMmNkYzQw
NC4uOTUxOGZkYzVlNzA4MDhlZDJhZmUyNzNjMDY4MmU0NDY0ZmIzMGFkYyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFtKU0NdIEFkZCBmYXN0IHByb3BlcnR5IGVudW1lcmF0aW9uIG1vZGUgZm9yIEpTT04uc3Ry
aW5naWZ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzAzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9qc29uLXN0cmluZ2lmeS1vYmplY3QtbW9kaWZ5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvci5sZXQub2JqZWN0LmhlbGxvLmdl
dCBpbm5lcik6CisgICAgICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAoc2hvdWxkQmUu
bGV0Lm9iamVjdC5oZWxsby5nZXQgaW5uZXIpOgorCiAyMDIxLTA5LTE1ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gT3B0aW1pemUgbGVhZiBvYmpl
Y3QgY3JlYXRpb24gaW4gSlNPTi5wYXJzZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvanNv
bi1zdHJpbmdpZnktb2JqZWN0LW1vZGlmeS5qcyBiL0pTVGVzdHMvc3RyZXNzL2pzb24tc3RyaW5n
aWZ5LW9iamVjdC1tb2RpZnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc2MmQwMDQyZmVmZjNhNmIyOGVhOTA3
ZjFjODFhYjJlZTU2OTliZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2pzb24t
c3RyaW5naWZ5LW9iamVjdC1tb2RpZnkuanMKQEAgLTAsMCArMSwzNSBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sK
KyAgICBsZXQgb2JqZWN0ID0geworICAgICAgICBoZWxsbzogeworICAgICAgICAgICAgZ2V0IGlu
bmVyKCkgeworICAgICAgICAgICAgICAgICR2bS50b1VuY2FjaGVhYmxlRGljdGlvbmFyeShvYmpl
Y3QpOworICAgICAgICAgICAgICAgIG9iamVjdC53b3JsZCA9IDA7CisgICAgICAgICAgICAgICAg
cmV0dXJuIDMzOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB3b3JsZDogNDIs
CisgICAgICAgIHRlc3Q6IG51bGwsCisgICAgfTsKKworICAgIHNob3VsZEJlKEpTT04uc3RyaW5n
aWZ5KG9iamVjdCksIGB7ImhlbGxvIjp7ImlubmVyIjozM30sIndvcmxkIjowLCJ0ZXN0IjpudWxs
fWApOworfQoreworICAgIGxldCBvYmplY3QgPSB7CisgICAgICAgIGhlbGxvOiB7CisgICAgICAg
ICAgICBnZXQgaW5uZXIoKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIG9iamVjdC53b3JsZDsK
KyAgICAgICAgICAgICAgICBvYmplY3QudGVzdGluZyA9IDMzOworICAgICAgICAgICAgICAgIHJl
dHVybiAzMzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgd29ybGQ6IDQyLAor
ICAgICAgICB0ZXN0OiBudWxsLAorICAgIH07CisKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lm
eShvYmplY3QpLCBgeyJoZWxsbyI6eyJpbm5lciI6MzN9LCJ0ZXN0IjpudWxsfWApOworfQo=
</data>
<flag name="review"
          id="461901"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>