<?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>200151</bug_id>
          
          <creation_ts>2019-07-25 20:55:11 -0700</creation_ts>
          <short_desc>[JSC] Potential GC fix for JSPropertyNameEnumerator</short_desc>
          <delta_ts>2019-07-26 21:55:15 -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>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1556013</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-25 20:55:11 -0700</bug_when>
    <thetext>[JSC] Potential GC fix for JSPropertyEnumerator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556014</commentid>
    <comment_count>1</comment_count>
      <attachid>374936</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-25 20:55:39 -0700</bug_when>
    <thetext>Created attachment 374936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556045</commentid>
    <comment_count>2</comment_count>
      <attachid>374947</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 00:33:19 -0700</bug_when>
    <thetext>Created attachment 374947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556065</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 01:26:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/23602966&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556309</commentid>
    <comment_count>4</comment_count>
      <attachid>375005</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 17:49:22 -0700</bug_when>
    <thetext>Created attachment 375005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556311</commentid>
    <comment_count>5</comment_count>
      <attachid>375006</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 17:59:47 -0700</bug_when>
    <thetext>Created attachment 375006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556316</commentid>
    <comment_count>6</comment_count>
      <attachid>375006</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-07-26 18:16:45 -0700</bug_when>
    <thetext>Comment on attachment 375006
Patch

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

Very nicely done.  r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        We are seeing some JSPropertyNameEnumerator::visitChildren crashes for a long time. The crash frequency itself is not high, but it exists so long.

I suggest /are seeing/have been seeing/ and /exists so long/has existed for a long time/.

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        The crash happens when visiting m_propertyNames. It is also possible that this crash is caused by random corruption in somewhere, but JSPropertyNameEnumerator

/in somewhere/somewhere/.

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +           We should use Auxiliary memory for this use case. And we should set this memory at a constructor so that

I suggest /at a constructor/in the constructor/.

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        In this patch, we align JSPropertyNameEnumerator implementation to the modern one to avoid using Vector&lt;WriteBarrier&lt;JSString&gt;&gt;. And we can make JSPropertyNameEnumerator
&gt; +        non-destructible cell. Since JSCell&apos;s destructor is one of the cause of various issues, we should avoid it if we can.

/make non-destructible cell/make a non-destructible cell/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556339</commentid>
    <comment_count>7</comment_count>
      <attachid>375006</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-26 20:18:06 -0700</bug_when>
    <thetext>Comment on attachment 375006
Patch

Attachment 375006 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12819333

New failing tests:
stress/for-in-stress.js.ftl-eager-no-cjit-b3o1
stress/for-in-stress.js.dfg-eager
stress/for-in-stress.js.ftl-no-cjit-validate-sampling-profiler
stress/for-in-stress.js.mini-mode
stress/for-in-stress.js.ftl-no-cjit-no-put-stack-validate
stress/for-in-stress.js.ftl-no-cjit-b3o0
stress/for-in-stress.js.no-cjit-validate-phases
stress/for-in-stress.js.ftl-no-cjit-small-pool
stress/for-in-stress.js.no-cjit-collect-continuously
stress/for-in-stress.js.no-ftl
stress/for-in-stress.js.ftl-eager
stress/for-in-stress.js.no-llint
stress/for-in-stress.js.bytecode-cache
stress/for-in-stress.js.ftl-no-cjit-no-inline-validate
stress/for-in-stress.js.default
stress/for-in-stress.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-stress.js.dfg-eager-no-cjit-validate
stress/for-in-stress.js.ftl-eager-no-cjit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556340</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 20:28:11 -0700</bug_when>
    <thetext>(In reply to Build Bot from comment #7)
&gt; Comment on attachment 375006 [details]
&gt; Patch
&gt; 
&gt; Attachment 375006 [details] did not pass jsc-ews (mac):
&gt; Output: https://webkit-queues.webkit.org/results/12819333
&gt; 
&gt; New failing tests:
&gt; stress/for-in-stress.js.ftl-eager-no-cjit-b3o1
&gt; stress/for-in-stress.js.dfg-eager
&gt; stress/for-in-stress.js.ftl-no-cjit-validate-sampling-profiler
&gt; stress/for-in-stress.js.mini-mode
&gt; stress/for-in-stress.js.ftl-no-cjit-no-put-stack-validate
&gt; stress/for-in-stress.js.ftl-no-cjit-b3o0
&gt; stress/for-in-stress.js.no-cjit-validate-phases
&gt; stress/for-in-stress.js.ftl-no-cjit-small-pool
&gt; stress/for-in-stress.js.no-cjit-collect-continuously
&gt; stress/for-in-stress.js.no-ftl
&gt; stress/for-in-stress.js.ftl-eager
&gt; stress/for-in-stress.js.no-llint
&gt; stress/for-in-stress.js.bytecode-cache
&gt; stress/for-in-stress.js.ftl-no-cjit-no-inline-validate
&gt; stress/for-in-stress.js.default
&gt; stress/for-in-stress.js.dfg-maximal-flush-validate-no-cjit
&gt; stress/for-in-stress.js.dfg-eager-no-cjit-validate
&gt; stress/for-in-stress.js.ftl-eager-no-cjit

The iteration counter was too large, and timeout in the test harness. I&apos;ll decrease the counter to fit it in the timeout threshold.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556341</commentid>
    <comment_count>9</comment_count>
      <attachid>375006</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 20:37:32 -0700</bug_when>
    <thetext>Comment on attachment 375006
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        We are seeing some JSPropertyNameEnumerator::visitChildren crashes for a long time. The crash frequency itself is not high, but it exists so long.
&gt; 
&gt; I suggest /are seeing/have been seeing/ and /exists so long/has existed for a long time/.

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        The crash happens when visiting m_propertyNames. It is also possible that this crash is caused by random corruption in somewhere, but JSPropertyNameEnumerator
&gt; 
&gt; /in somewhere/somewhere/.

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:13
&gt;&gt; +           We should use Auxiliary memory for this use case. And we should set this memory at a constructor so that
&gt; 
&gt; I suggest /at a constructor/in the constructor/.

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt; +        non-destructible cell. Since JSCell&apos;s destructor is one of the cause of various issues, we should avoid it if we can.
&gt; 
&gt; /make non-destructible cell/make a non-destructible cell/.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556342</commentid>
    <comment_count>10</comment_count>
      <attachid>375014</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 20:39:51 -0700</bug_when>
    <thetext>Created attachment 375014
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556347</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-26 21:55:15 -0700</bug_when>
    <thetext>Committed r247888: &lt;https://trac.webkit.org/changeset/247888&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374936</attachid>
            <date>2019-07-25 20:55:39 -0700</date>
            <delta_ts>2019-07-26 00:33:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200151-20190725205538.patch</filename>
            <type>text/plain</type>
            <size>5306</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YzAxODA5MmIyYWZjODA1OGZlZGQwZWUxYzMxNWJhMjAyYjVmOWE4Li43ZWI4NzE2MGM5MzMzMWM4
NmY2MmQ5ODY1MTM4Y2Y5M2Q4MDExMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvdGVudGlhbCBHQyBmaXggZm9yIEpTUHJvcGVydHlFbnVtZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcik6CisgICAgICAgIChKU0M6OkpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmg6CisKIDIwMTktMDctMjUgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIExlZ2FjeSBudW1lcmljIGxp
dGVyYWxzIHNob3VsZCBub3QgcGVybWl0IHNlcGFyYXRvcnMgb3IgQmlnSW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmNwcAppbmRleCBmODYyZWQ0M2ZhZmU3YmMxNGMwNjJhNTMyMzY1YTFmZmIyZjA3MmNiLi45
NjRlYzUzMTM4MDM2M2Q2ZDg0ZmExNTA2YzI3OTQ0MTlkNGM3MTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5jcHAKQEAgLTQ1LDM1ICs0NSwyOSBAQCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlKFZNJiB2bSkKIAogSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCB1aW50MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBudW1iZXJTdHJ1
Y3R1cmVQcm9wZXJ0aWVzLCBQcm9wZXJ0eU5hbWVBcnJheSYmIHByb3BlcnR5TmFtZXMpCiB7Ci0g
ICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlkKCkg
OiAwOwotICAgIHVpbnQzMl90IGlubGluZUNhcGFjaXR5ID0gc3RydWN0dXJlID8gc3RydWN0dXJl
LT5pbmxpbmVDYXBhY2l0eSgpIDogMDsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVu
dW1lcmF0b3IgPSBuZXcgKE5vdE51bGwsIAotICAgICAgICBhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yPih2bS5oZWFwKSkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCBz
dHJ1Y3R1cmVJRCwgaW5saW5lQ2FwYWNpdHkpOwotICAgIGVudW1lcmF0b3ItPmZpbmlzaENyZWF0
aW9uKHZtLCBpbmRleGVkTGVuZ3RoLCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBwcm9wZXJ0
eU5hbWVzLnJlbGVhc2VEYXRhKCkpOworICAgICAgICBhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yPih2bS5oZWFwKSkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCBzdHJ1
Y3R1cmUsIGluZGV4ZWRMZW5ndGgsIG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIHByb3BlcnR5
TmFtZXMuc2l6ZSgpKTsKKyAgICBlbnVtZXJhdG9yLT5maW5pc2hDcmVhdGlvbih2bSwgcHJvcGVy
dHlOYW1lcy5yZWxlYXNlRGF0YSgpKTsKICAgICByZXR1cm4gZW51bWVyYXRvcjsKIH0KIAotSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpCitKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCB1aW50MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBudW1iZXJT
dHJ1Y3R1cmVQcm9wZXJ0aWVzLCB1bnNpZ25lZCBudW1iZXJPZlByb3BlcnR5TmFtZXMpCiAgICAg
OiBKU0NlbGwodm0sIHZtLnByb3BlcnR5TmFtZUVudW1lcmF0b3JTdHJ1Y3R1cmUuZ2V0KCkpCi0g
ICAgLCBtX2NhY2hlZFN0cnVjdHVyZUlEKHN0cnVjdHVyZUlEKQotICAgICwgbV9jYWNoZWRJbmxp
bmVDYXBhY2l0eShpbmxpbmVDYXBhY2l0eSkKKyAgICAsIG1fcHJvcGVydHlOYW1lcyhudW1iZXJP
ZlByb3BlcnR5TmFtZXMpCisgICAgLCBtX2NhY2hlZFN0cnVjdHVyZUlEKHN0cnVjdHVyZSA/IHN0
cnVjdHVyZS0+aWQoKSA6IDApCisgICAgLCBtX2luZGV4ZWRMZW5ndGgoaW5kZXhlZExlbmd0aCkK
KyAgICAsIG1fZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleChudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0
aWVzKQorICAgICwgbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleChudW1iZXJPZlByb3BlcnR5TmFt
ZXMpCisgICAgLCBtX2NhY2hlZElubGluZUNhcGFjaXR5KHN0cnVjdHVyZSA/IHN0cnVjdHVyZS0+
aW5saW5lQ2FwYWNpdHkoKSA6IDApCiB7CiB9CiAKLXZvaWQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIHVpbnQzMl90IGluZGV4ZWRMZW5ndGgsIHVpbnQz
Ml90IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURh
dGE+JiYgaWRlbnRpZmllcnMpCit2b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBSZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmIGlkZW50aWZp
ZXJzKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKIAogICAgIFByb3BlcnR5TmFt
ZUFycmF5RGF0YTo6UHJvcGVydHlOYW1lVmVjdG9yJiB2ZWN0b3IgPSBpZGVudGlmaWVycy0+cHJv
cGVydHlOYW1lVmVjdG9yKCk7Ci0KLSAgICBtX2luZGV4ZWRMZW5ndGggPSBpbmRleGVkTGVuZ3Ro
OwotICAgIG1fZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCA9IGVuZFN0cnVjdHVyZVByb3BlcnR5
SW5kZXg7Ci0gICAgbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleCA9IHZlY3Rvci5zaXplKCk7Ci0K
LSAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwg
Y2VsbExvY2soKSk7Ci0gICAgICAgIG1fcHJvcGVydHlOYW1lcy5yZXNpemVUb0ZpdCh2ZWN0b3Iu
c2l6ZSgpKTsKLSAgICB9CisgICAgQVNTRVJUKG1fcHJvcGVydHlOYW1lcy5zaXplKCkgPT0gdmVj
dG9yLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7
ICsraSkgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyID0gdmVjdG9yW2ld
OwogICAgICAgICBtX3Byb3BlcnR5TmFtZXNbaV0uc2V0KHZtLCB0aGlzLCBqc1N0cmluZygmdm0s
IGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKQEAgLTkwLDcgKzg0LDYgQEAgdm9pZCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
Y2VsbCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5j
ZWxsTG9jaygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPm1f
cHJvcGVydHlOYW1lcykKICAgICAgICAgdmlzaXRvci5hcHBlbmQocHJvcGVydHlOYW1lKTsKICAg
ICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZUNoYWluKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmgKaW5kZXggNDYwOGM2M2FkYmFjY2ZlMmU3M2ViYjEyN2M1NDY4NTQ2MTExMzJhMy4uNjMz
ODU0YmU3MGZhZGRjNWE5MmY0OTk3Nzg0MGRkNDQ3Mzk2ZTdjNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgK
QEAgLTg0LDggKzg0LDggQEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBT
bG90VmlzaXRvciYpOwogCiBwcml2YXRlOgotICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcihW
TSYsIFN0cnVjdHVyZUlELCB1aW50MzJfdCk7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYs
IHVpbnQzMl90LCB1aW50MzJfdCwgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4mJik7Cisg
ICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgU3RydWN0dXJlKiwgdWludDMyX3QsIHVp
bnQzMl90LCB1bnNpZ25lZCk7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFJlZlB0cjxQ
cm9wZXJ0eU5hbWVBcnJheURhdGE+JiYpOwogCiAgICAgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0
cmluZz4+IG1fcHJvcGVydHlOYW1lczsKICAgICBTdHJ1Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVy
ZUlEOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374947</attachid>
            <date>2019-07-26 00:33:19 -0700</date>
            <delta_ts>2019-07-26 17:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200151-20190726003318.patch</filename>
            <type>text/plain</type>
            <size>10549</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWQxMmFjMzczZGJhYTYzNWRiMmJlNDI5MGNmYTc1OWE4MzhhNDFiLi42MDZmNmE4MmEwMTlhZmJk
NTg2NmRiODdlZjcyNWQ2Y2EwMGY0NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvdGVudGlhbCBHQyBmaXggZm9yIEpTUHJvcGVydHlFbnVtZXJh
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0pT
UHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6ZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU2xvdyk6CisgICAgICAgICog
cnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6ZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKToKKwogMjAxOS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFVzZSB1bmFsaWduZWRMb2FkIGZvciBKU1JvcGVTdHJpbmcgZmliZXIg
YWNjZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmlu
ZGV4IGQxMmUyYzk3MDJiOTlmZDFiZDg2YjIwMGM4ZjQwNjEzNTJhMDM1NzEuLmRlZjBiNzBkNTNi
MDUwYjFjZjRjYTBmNTAzMWQ5MzNhN2FmZjMwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjE2Miw3ICsyMTYyLDcgQEAgSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1YKIAogICAgIEpTVmFsdWUgYmFzZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
QmFzZSk7CiAgICAgaWYgKGJhc2UuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJu
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlKHZtKTsKKyAgICAgICAgcmV0dXJuIHZt
LmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcigpOwogCiAgICAgSlNPYmplY3QqIGJhc2VPYmpl
Y3QgPSBiYXNlLnRvT2JqZWN0KGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcAppbmRleCA1ZGY0ZjU4ODA3OTQ3MTlhMDA5MTRkNGRiYjk5ZDZmMzYwMTQ1NzlkLi4x
OTM3MGY3NDE3NzE0ODljZmMyYTg3YjI0MDM1NTAxZGIxYjlmMjJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTk3Miw3ICs5
NzIsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3Ip
CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEdldFByb3BlcnR5RW51bWVyYXRvcj4oKTsK
ICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEdFVChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsK
ICAgICBpZiAoYmFzZVZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIFJFVFVSTihK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZSh2bSkpOworICAgICAgICBSRVRVUk4odm0u
ZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkpOwogCiAgICAgSlNPYmplY3QqIGJhc2UgPSBi
YXNlVmFsdWUudG9PYmplY3QoZXhlYyk7CiAgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLmNwcAppbmRleCBmODYyZWQ0M2ZhZmU3YmMxNGMwNjJhNTMyMzY1YTFmZmIyZjA3MmNi
Li4yZDBjOTE1OTZhMzBiYmUzNDA5OTJmOThlZmNkYzVhNTY3ZDgzZjE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVy
YXRvci5jcHAKQEAgLTM0LDQ2ICszNCwzMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xh
c3NJbmZvIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6c19pbmZvID0geyAiSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpIH07CiAKLUpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtKQotewotICAgIGlm
ICghdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpKSB7Ci0gICAgICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdz
LCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7Ci0gICAgICAgIHZtLmVtcHR5UHJvcGVydHlO
YW1lRW51bWVyYXRvciA9IFN0cm9uZzxKU0NlbGw+KHZtLCBjcmVhdGUodm0sIDAsIDAsIDAsIFdU
Rk1vdmUocHJvcGVydHlOYW1lcykpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IqPih2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCkp
OwotfQotCiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGluZGV4ZWRM
ZW5ndGgsIHVpbnQzMl90IG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIFByb3BlcnR5TmFtZUFy
cmF5JiYgcHJvcGVydHlOYW1lcykKIHsKLSAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IHN0
cnVjdHVyZSA/IHN0cnVjdHVyZS0+aWQoKSA6IDA7Ci0gICAgdWludDMyX3QgaW5saW5lQ2FwYWNp
dHkgPSBzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlubGluZUNhcGFjaXR5KCkgOiAwOwogICAgIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG5ldyAoTm90TnVsbCwgCi0gICAg
ICAgIGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I+KHZtLmhlYXApKSBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3Iodm0sIHN0cnVjdHVyZUlELCBpbmxpbmVDYXBhY2l0eSk7Ci0g
ICAgZW51bWVyYXRvci0+ZmluaXNoQ3JlYXRpb24odm0sIGluZGV4ZWRMZW5ndGgsIG51bWJlclN0
cnVjdHVyZVByb3BlcnRpZXMsIHByb3BlcnR5TmFtZXMucmVsZWFzZURhdGEoKSk7CisgICAgICAg
IGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I+KHZtLmhlYXApKSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3Iodm0sIHN0cnVjdHVyZSwgaW5kZXhlZExlbmd0aCwgbnVtYmVyU3Ry
dWN0dXJlUHJvcGVydGllcywgcHJvcGVydHlOYW1lcy5zaXplKCkpOworICAgIGVudW1lcmF0b3It
PmZpbmlzaENyZWF0aW9uKHZtLCBwcm9wZXJ0eU5hbWVzLnJlbGVhc2VEYXRhKCkpOwogICAgIHJl
dHVybiBlbnVtZXJhdG9yOwogfQogCi1KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlELCB1aW50MzJf
dCBpbmxpbmVDYXBhY2l0eSkKK0pTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGluZGV4
ZWRMZW5ndGgsIHVpbnQzMl90IG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMsIHVuc2lnbmVkIG51
bWJlck9mUHJvcGVydHlOYW1lcykKICAgICA6IEpTQ2VsbCh2bSwgdm0ucHJvcGVydHlOYW1lRW51
bWVyYXRvclN0cnVjdHVyZS5nZXQoKSkKLSAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQoc3RydWN0
dXJlSUQpCi0gICAgLCBtX2NhY2hlZElubGluZUNhcGFjaXR5KGlubGluZUNhcGFjaXR5KQorICAg
ICwgbV9wcm9wZXJ0eU5hbWVzKG51bWJlck9mUHJvcGVydHlOYW1lcykKKyAgICAsIG1fY2FjaGVk
U3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3RydWN0dXJlLT5pZCgpIDogMCkKKyAgICAsIG1faW5k
ZXhlZExlbmd0aChpbmRleGVkTGVuZ3RoKQorICAgICwgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUlu
ZGV4KG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMpCisgICAgLCBtX2VuZEdlbmVyaWNQcm9wZXJ0
eUluZGV4KG51bWJlck9mUHJvcGVydHlOYW1lcykKKyAgICAsIG1fY2FjaGVkSW5saW5lQ2FwYWNp
dHkoc3RydWN0dXJlID8gc3RydWN0dXJlLT5pbmxpbmVDYXBhY2l0eSgpIDogMCkKIHsKIH0KIAot
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgdWlu
dDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3QgZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCwg
UmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4mJiBpZGVudGlmaWVycykKK3ZvaWQgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZlB0cjxQcm9wZXJ0
eU5hbWVBcnJheURhdGE+JiYgaWRlbnRpZmllcnMpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwogCiAgICAgUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpQcm9wZXJ0eU5hbWVWZWN0b3Im
IHZlY3RvciA9IGlkZW50aWZpZXJzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKTsKLQotICAgIG1faW5k
ZXhlZExlbmd0aCA9IGluZGV4ZWRMZW5ndGg7Ci0gICAgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUlu
ZGV4ID0gZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleDsKLSAgICBtX2VuZEdlbmVyaWNQcm9wZXJ0
eUluZGV4ID0gdmVjdG9yLnNpemUoKTsKLQotICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBs
b2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCBjZWxsTG9jaygpKTsKLSAgICAgICAgbV9wcm9wZXJ0
eU5hbWVzLnJlc2l6ZVRvRml0KHZlY3Rvci5zaXplKCkpOwotICAgIH0KKyAgICBBU1NFUlQobV9w
cm9wZXJ0eU5hbWVzLnNpemUoKSA9PSB2ZWN0b3Iuc2l6ZSgpKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIgPSB2ZWN0b3JbaV07CiAgICAgICAgIG1fcHJvcGVydHlOYW1lc1tpXS5z
ZXQodm0sIHRoaXMsIGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOwpAQCAtOTAs
NyArNzUsNiBAQCB2b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqPihj
ZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbihjZWxsLCB2aXNpdG9yKTsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKHRoaXNPYmplY3QtPmNlbGxMb2NrKCkpOwogICAgIGZvciAoYXV0byYgcHJv
cGVydHlOYW1lIDogdGhpc09iamVjdC0+bV9wcm9wZXJ0eU5hbWVzKQogICAgICAgICB2aXNpdG9y
LmFwcGVuZChwcm9wZXJ0eU5hbWUpOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1f
cHJvdG90eXBlQ2hhaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAppbmRleCA0NjA4YzYzYWRiYWNjZmUyZTcz
ZWJiMTI3YzU0Njg1NDYxMTEzMmEzLi5mMDBmODdiODAwN2Y1MWYxMjI0NTUzY2NkN2Q4MTY1OGUy
MTczMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaApAQCAtMzcsNyArMzcsNiBAQCBjbGFzcyBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB0eXBlZGVmIEpT
Q2VsbCBCYXNlOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIHN0YXRpYyBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGNyZWF0ZShWTSYpOwogICAgIHN0YXRpYyBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIHVpbnQzMl90LCB1aW50
MzJfdCwgUHJvcGVydHlOYW1lQXJyYXkmJik7CiAKICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVk
c0Rlc3RydWN0aW9uID0gdHJ1ZTsKQEAgLTg0LDggKzgzLDggQEAgY2xhc3MgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiBwcml2YXRlOgotICAgIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcihWTSYsIFN0cnVjdHVyZUlELCB1aW50MzJfdCk7Ci0gICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIHVpbnQzMl90LCB1aW50MzJfdCwgUmVmUHRyPFByb3BlcnR5
TmFtZUFycmF5RGF0YT4mJik7CisgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiwgU3Ry
dWN0dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCB1bnNpZ25lZCk7CisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+JiYpOwogCiAgICAgVmVj
dG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+IG1fcHJvcGVydHlOYW1lczsKICAgICBTdHJ1Y3R1
cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CmluZGV4IDI1ZWY5NDVjYmU1YTc0NDVjMmNhN2NlMDYyNmMyZjk4ODRhN2MyMTAuLmE1NDgxZTJk
YzY1ZjgyNjY1M2U2OGI2M2M5Mjc0ZjMyMTEyMDBiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKQEAgLTEzMDgsNiArMTMwOCwxNSBAQCBKU0NlbGwqIFZNOjpzZW50aW5lbE1h
cEJ1Y2tldFNsb3coKQogICAgIHJldHVybiBzZW50aW5lbDsKIH0KIAorSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKiBWTTo6ZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yU2xvdygpCit7CisgICAg
QVNTRVJUKCFtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcik7CisgICAgUHJvcGVydHlOYW1l
QXJyYXkgcHJvcGVydHlOYW1lcyh0aGlzLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2
YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CisgICAgYXV0byogZW51bWVyYXRvciA9IEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlKCp0aGlzLCBudWxscHRyLCAwLCAwLCBXVEZNb3ZlKHBy
b3BlcnR5TmFtZXMpKTsKKyAgICBtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvci5zZXQoKnRo
aXMsIGVudW1lcmF0b3IpOworICAgIHJldHVybiBlbnVtZXJhdG9yOworfQorCiBKU0dsb2JhbE9i
amVjdCogVk06OnZtRW50cnlHbG9iYWxPYmplY3QoY29uc3QgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
IGNvbnN0CiB7CiAgICAgaWYgKGNhbGxGcmFtZSAmJiBjYWxsRnJhbWUtPmlzR2xvYmFsRXhlYygp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA4MjQ2MmUxZGZmYTE1Yzg2OGVh
OGE3ZDdmNjI5NDcwMWIwOGIxYjdhLi42OTAwNDBkYTFkMzE5ODM2MTFmNzc3NDcwZjg0YTczYjgw
NDczODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTEyMyw2ICsxMjMsNyBA
QCBjbGFzcyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOwogY2xhc3MgSlNEZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGU7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIGNsYXNzIEpTT2Jq
ZWN0OworY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogY2xhc3MgSlNSdW5Mb29wVGlt
ZXI7CiBjbGFzcyBKU1N0cmluZ0hlYXBDZWxsVHlwZTsKIGNsYXNzIEpTV2ViQXNzZW1ibHlDb2Rl
QmxvY2tIZWFwQ2VsbFR5cGU7CkBAIC01NDUsNyArNTQ2LDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+
IHsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBtX3NldEl0ZXJhdG9yU3RydWN0dXJlOwogICAgIFN0
cm9uZzxTdHJ1Y3R1cmU+IG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmU7CiAKLSAgICBTdHJvbmc8SlND
ZWxsPiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3I7CisgICAgU3Ryb25nPEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcj4gbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3I7CiAKICAgICBTdHJv
bmc8SlNDZWxsPiBtX3NlbnRpbmVsU2V0QnVja2V0OwogICAgIFN0cm9uZzxKU0NlbGw+IG1fc2Vu
dGluZWxNYXBCdWNrZXQ7CkBAIC01OTgsNiArNTk5LDEzIEBAIGNsYXNzIFZNIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7
CiAgICAgICAgIHJldHVybiBzZW50aW5lbE1hcEJ1Y2tldFNsb3coKTsKICAgICB9CiAKKyAgICBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcigpCisg
ICAgeworICAgICAgICBpZiAoTElLRUxZKG1fZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKSkK
KyAgICAgICAgICAgIHJldHVybiBtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvci5nZXQoKTsK
KyAgICAgICAgcmV0dXJuIGVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3coKTsKKyAgICB9
CisKICAgICBXZWFrR0NNYXA8U3ltYm9sSW1wbCosIFN5bWJvbCwgUHRySGFzaDxTeW1ib2xJbXBs
Kj4+IHN5bWJvbEltcGxUb1N5bWJvbE1hcDsKIAogICAgIGVudW0gY2xhc3MgRGVsZXRlUHJvcGVy
dHlNb2RlIHsKQEAgLTk1Myw2ICs5NjEsNyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIEpT
X0VYUE9SVF9QUklWQVRFIFN0cnVjdHVyZSogbWFwSXRlcmF0b3JTdHJ1Y3R1cmVTbG93KCk7CiAg
ICAgSlNDZWxsKiBzZW50aW5lbFNldEJ1Y2tldFNsb3coKTsKICAgICBKU0NlbGwqIHNlbnRpbmVs
TWFwQnVja2V0U2xvdygpOworICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW1wdHlQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yU2xvdygpOwogCiAgICAgdm9pZCB1cGRhdGVTdGFja0xpbWl0cygp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375005</attachid>
            <date>2019-07-26 17:49:22 -0700</date>
            <delta_ts>2019-07-26 17:59:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200151-20190726174921.patch</filename>
            <type>text/plain</type>
            <size>17203</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWQxMmFjMzczZGJhYTYzNWRiMmJlNDI5MGNmYTc1OWE4MzhhNDFiLi4wODhiMmRiM2NlNjZmZjQ2
MjhhYjEyN2RlMGRhOWQ1ZmJiOGUxNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvdGVudGlhbCBHQyBmaXggZm9yIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgYXJlIHNlZWluZyBzb21lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJl
biBjcmFzaGVzIGZvciBhIGxvbmcgdGltZS4gVGhlIGNyYXNoIGZyZXF1ZW5jeSBpdHNlbGYgaXMg
bm90IGhpZ2gsIGJ1dCBpdCBleGlzdHMgc28gbG9uZy4KKyAgICAgICAgVGhlIGNyYXNoIGhhcHBl
bnMgd2hlbiB2aXNpdGluZyBtX3Byb3BlcnR5TmFtZXMuIEl0IGlzIGFsc28gcG9zc2libGUgdGhh
dCB0aGlzIGNyYXNoIGlzIGNhdXNlZCBieSByYW5kb20gY29ycnVwdGlvbiBpbiBzb21ld2hlcmUs
IGJ1dCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IKKyAgICAgICAgaGFzIHNvbWUgdHJpY2t5IChh
bmQgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzKSBpbXBsZW1lbnRhdGlvbnMgYW55d2F5LgorCisgICAg
ICAgIDEuIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBoYXZlIFZlY3RvcjxXcml0ZUJhcnJpZXI8
SlNTdHJpbmc+PiBhbmQgaXQgaXMgZXh0ZW5kZWQgaW4gZmluaXNoQ3JlYXRpb24gd2l0aCBhIGxv
Y2suCisgICAgICAgICAgIFdlIHNob3VsZCB1c2UgQXV4aWxpYXJ5IG1lbW9yeSBmb3IgdGhpcyB1
c2UgY2FzZS4gQW5kIHdlIHNob3VsZCBzZXQgdGhpcyBtZW1vcnkgYXQgYSBjb25zdHJ1Y3RvciBz
byB0aGF0CisgICAgICAgICAgIHdlIGRvIG5vdCBleHRlbmQgaXQgaW4gZmluaXNoQ3JlYXRpb24s
IGFuZCB3ZSBkbyBub3QgbmVlZCBhIGxvY2suCisgICAgICAgIDIuIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciBnZXRzIFN0cnVjdHVyZUlEIGJlZm9yZSBhbGxvY2F0aW5nIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvci4gVGhpcyBpcyBwb3RlbnRpYWxseSBkYW5nZXJvdXMgYmVjYXVzZSB0aGUgY29u
c2VydmF0aXZlIHNjYW4KKyAgICAgICAgICAgY2Fubm90IGZpbmQgdGhlIFN0cnVjdHVyZSogc2lu
Y2Ugd2UgY291bGQgb25seSBoYXZlIFN0cnVjdHVyZUlELiBTaW5jZSBhbGxvY2F0aW9uIGNvZGUg
aGFwcGVucyBhZnRlciBTdHJ1Y3R1cmVJRCBpcyByZXRyaWV2ZWQsIGl0IGlzIHBvc3NpYmxlIHRo
YXQKKyAgICAgICAgICAgdGhlIGFsbG9jYXRpb24gY2F1c2VzIEdDIGFuZCBTdHJ1Y3R1cmUqIGlz
IGNvbGxlY3RlZC4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBhbGlnbiBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IgaW1wbGVtZW50YXRpb24gdG8gdGhlIG1vZGVybiBvbmUgdG8gYXZvaWQg
dXNpbmcgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+LiBBbmQgd2UgY2FuIG1ha2UgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIG5vbi1kZXN0cnVjdGlibGUgY2VsbC4gU2lu
Y2UgSlNDZWxsJ3MgZGVzdHJ1Y3RvciBpcyBvbmUgb2YgdGhlIGNhdXNlIG9mIHZhcmlvdXMgaXNz
dWVzLCB3ZSBzaG91bGQgYXZvaWQgaXQgaWYgd2UgY2FuLgorCisgICAgICAgIE5vIGJlaGF2aW9y
IGNoYW5nZS4gVGhpcyBwYXRjaCBhZGRzIGEgdGVzdCBzdHJlc3NpbmcgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLgorCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RF
Q0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAo
SlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcik6
CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmRlc3Ryb3kpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjplbXB0eVByb3BlcnR5TmFt
ZUVudW1lcmF0b3JTbG93KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6
OlZNOjplbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorCiAyMDE5LTA3LTI1ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHVuYWxpZ25l
ZExvYWQgZm9yIEpTUm9wZVN0cmluZyBmaWJlciBhY2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZDEyZTJjOTcwMmI5OWZkMWJkODZiMjAw
YzhmNDA2MTM1MmEwMzU3MS4uZGVmMGI3MGQ1M2IwNTBiMWNmNGNhMGY1MDMxZDkzM2E3YWZmMzBl
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0y
MTYyLDcgKzIxNjIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVy
dHlFbnVtZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogCiAgICAgSlNWYWx1ZSBi
YXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBpZiAoYmFzZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpj
cmVhdGUodm0pOworICAgICAgICByZXR1cm4gdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KCk7CiAKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJhc2UudG9PYmplY3QoZXhlYyk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IDVkZjRmNTg4MDc5NDcx
OWEwMDkxNGQ0ZGJiOTlkNmYzNjAxNDU3OWQuLjE5MzcwZjc0MTc3MTQ4OWNmYzJhODdiMjQwMzU1
MDFkYjFiOWYyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcApAQCAtOTcyLDcgKzk3Miw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcikKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFz
PE9wR2V0UHJvcGVydHlFbnVtZXJhdG9yPigpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gR0VU
KGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpOwogICAgIGlmIChiYXNlVmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkKLSAgICAgICAgUkVUVVJOKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3Jl
YXRlKHZtKSk7CisgICAgICAgIFJFVFVSTih2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Io
KSk7CiAKICAgICBKU09iamVjdCogYmFzZSA9IGJhc2VWYWx1ZS50b09iamVjdChleGVjKTsKICAg
ICBDSEVDS19FWENFUFRJT04oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCmluZGV4IGY4NjJlZDQzZmFm
ZTdiYzE0YzA2MmE1MzIzNjVhMWZmYjJmMDcyY2IuLmVhY2IwNzQwMTM2YWNlMmEzNzE4NTJmM2Y3
YjYxYmIzMjM5M2RkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcApAQCAtMzQsNjUgKzM0LDUyIEBA
IG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yOjpzX2luZm8gPSB7ICJKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IiLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cikgfTsKIAotSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3I6OmNyZWF0ZShWTSYgdm0pCi17Ci0gICAgaWYgKCF2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1l
cmF0b3IuZ2V0KCkpIHsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygm
dm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRl
KTsKLSAgICAgICAgdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yID0gU3Ryb25nPEpTQ2Vs
bD4odm0sIGNyZWF0ZSh2bSwgMCwgMCwgMCwgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSkpOwotICAg
IH0KLSAgICByZXR1cm4ganNDYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KHZtLmVtcHR5
UHJvcGVydHlOYW1lRW51bWVyYXRvci5nZXQoKSk7Ci19Ci0KIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3QgbnVtYmVyU3RydWN0
dXJlUHJvcGVydGllcywgUHJvcGVydHlOYW1lQXJyYXkmJiBwcm9wZXJ0eU5hbWVzKQogewotICAg
IFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gc3RydWN0dXJlID8gc3RydWN0dXJlLT5pZCgpIDog
MDsKLSAgICB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSA9IHN0cnVjdHVyZSA/IHN0cnVjdHVyZS0+
aW5saW5lQ2FwYWNpdHkoKSA6IDA7Ci0gICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVt
ZXJhdG9yID0gbmV3IChOb3ROdWxsLCAKLSAgICAgICAgYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcj4odm0uaGVhcCkpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgc3Ry
dWN0dXJlSUQsIGlubGluZUNhcGFjaXR5KTsKLSAgICBlbnVtZXJhdG9yLT5maW5pc2hDcmVhdGlv
bih2bSwgaW5kZXhlZExlbmd0aCwgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgcHJvcGVydHlO
YW1lcy5yZWxlYXNlRGF0YSgpKTsKKyAgICB1bnNpZ25lZCBwcm9wZXJ0eU5hbWVzU2l6ZSA9IHBy
b3BlcnR5TmFtZXMuc2l6ZSgpOworICAgIHVuc2lnbmVkIHByb3BlcnR5TmFtZXNCdWZmZXJTaXpl
SW5CeXRlcyA9IChDaGVja2VkPHVuc2lnbmVkPihwcm9wZXJ0eU5hbWVzU2l6ZSkgKiBzaXplb2Yo
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpLnVuc2FmZUdldCgpOworICAgIFdyaXRlQmFycmllcjxK
U1N0cmluZz4qIHByb3BlcnR5TmFtZXNCdWZmZXIgPSBudWxscHRyOworICAgIGlmIChwcm9wZXJ0
eU5hbWVzQnVmZmVyU2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgcHJvcGVydHlOYW1lc0J1ZmZlciA9
IHN0YXRpY19jYXN0PFdyaXRlQmFycmllcjxKU1N0cmluZz4qPih2bS5qc1ZhbHVlR2lnYWNhZ2VB
dXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwodm0sIHByb3BlcnR5TmFtZXNCdWZmZXJT
aXplSW5CeXRlcywgbnVsbHB0ciwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlOjpBc3NlcnQpKTsKKyAg
ICAgICAgbWVtc2V0KHByb3BlcnR5TmFtZXNCdWZmZXIsIDAsIHByb3BlcnR5TmFtZXNCdWZmZXJT
aXplSW5CeXRlcyk7CisgICAgfQorICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVy
YXRvciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cj4odm0uaGVhcCkpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgc3RydWN0dXJlLCBpbmRl
eGVkTGVuZ3RoLCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWVzQnVmZmVy
LCBwcm9wZXJ0eU5hbWVzU2l6ZSk7CisgICAgZW51bWVyYXRvci0+ZmluaXNoQ3JlYXRpb24odm0s
IHByb3BlcnR5TmFtZXMucmVsZWFzZURhdGEoKSk7CiAgICAgcmV0dXJuIGVudW1lcmF0b3I7CiB9
CiAKLUpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZN
JiB2bSwgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KQor
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3Qg
bnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiogcHJvcGVy
dHlOYW1lc0J1ZmZlciwgdW5zaWduZWQgcHJvcGVydHlOYW1lc1NpemUpCiAgICAgOiBKU0NlbGwo
dm0sIHZtLnByb3BlcnR5TmFtZUVudW1lcmF0b3JTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2Nh
Y2hlZFN0cnVjdHVyZUlEKHN0cnVjdHVyZUlEKQotICAgICwgbV9jYWNoZWRJbmxpbmVDYXBhY2l0
eShpbmxpbmVDYXBhY2l0eSkKKyAgICAsIG1fcHJvcGVydHlOYW1lcyh2bSwgdGhpcywgcHJvcGVy
dHlOYW1lc0J1ZmZlcikKKyAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3Ry
dWN0dXJlLT5pZCgpIDogMCkKKyAgICAsIG1faW5kZXhlZExlbmd0aChpbmRleGVkTGVuZ3RoKQor
ICAgICwgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4KG51bWJlclN0cnVjdHVyZVByb3BlcnRp
ZXMpCisgICAgLCBtX2VuZEdlbmVyaWNQcm9wZXJ0eUluZGV4KHByb3BlcnR5TmFtZXNTaXplKQor
ICAgICwgbV9jYWNoZWRJbmxpbmVDYXBhY2l0eShzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlubGlu
ZUNhcGFjaXR5KCkgOiAwKQogewogfQogCi12b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCB1aW50MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBl
bmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4LCBSZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYm
IGlkZW50aWZpZXJzKQordm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4mJiBpZGVudGlmaWVycykK
IHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAKICAgICBQcm9wZXJ0eU5hbWVBcnJh
eURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYgdmVjdG9yID0gaWRlbnRpZmllcnMtPnByb3BlcnR5
TmFtZVZlY3RvcigpOwotCi0gICAgbV9pbmRleGVkTGVuZ3RoID0gaW5kZXhlZExlbmd0aDsKLSAg
ICBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXggPSBlbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4
OwotICAgIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXggPSB2ZWN0b3Iuc2l6ZSgpOwotCi0gICAg
ewotICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsIGNlbGxM
b2NrKCkpOwotICAgICAgICBtX3Byb3BlcnR5TmFtZXMucmVzaXplVG9GaXQodmVjdG9yLnNpemUo
KSk7Ci0gICAgfQorICAgIEFTU0VSVChtX2VuZEdlbmVyaWNQcm9wZXJ0eUluZGV4ID09IHZlY3Rv
ci5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciA9IHZlY3RvcltpXTsK
LSAgICAgICAgbV9wcm9wZXJ0eU5hbWVzW2ldLnNldCh2bSwgdGhpcywganNTdHJpbmcoJnZtLCBp
ZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgICAgIG1fcHJvcGVydHlOYW1lcy5nZXQoKVtpXS5z
ZXQodm0sIHRoaXMsIGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOwogICAgIH0K
IH0KIAotdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmRlc3Ryb3koSlNDZWxsKiBjZWxs
KQotewotICAgIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpLT5K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6On5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKLX0K
LQogdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4oY2VsbCk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4oY2VsbCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKLSAgICBmb3IgKGF1dG8mIHByb3BlcnR5
TmFtZSA6IHRoaXNPYmplY3QtPm1fcHJvcGVydHlOYW1lcykKLSAgICAgICAgdmlzaXRvci5hcHBl
bmQocHJvcGVydHlOYW1lKTsKKyAgICBpZiAoYXV0byogcHJvcGVydHlOYW1lcyA9IHRoaXNPYmpl
Y3QtPm1fcHJvcGVydHlOYW1lcy5nZXQoKSkgeworICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlh
cnkocHJvcGVydHlOYW1lcyk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZXMs
IHByb3BlcnR5TmFtZXMgKyB0aGlzT2JqZWN0LT5zaXplT2ZQcm9wZXJ0eU5hbWVzKCkpOworICAg
IH0KICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZUNoYWluKTsKIAog
ICAgIGlmICh0aGlzT2JqZWN0LT5jYWNoZWRTdHJ1Y3R1cmVJRCgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5o
CmluZGV4IDQ2MDhjNjNhZGJhY2NmZTJlNzNlYmIxMjdjNTQ2ODU0NjExMTMyYTMuLjEwNzkzMDQ1
NjE5ZTI5MGNkNzE0ZTU4NjFlNzY0OTkwMzg1ZmJhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC0z
NCwxNSArMzQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIHR5cGVkZWYgSlND
ZWxsIEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlz
SW1tb3J0YWw7CiAKLSAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUo
Vk0mKTsKICAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCB1aW50MzJfdCwgdWludDMyX3QsIFByb3BlcnR5TmFtZUFycmF5JiYpOwogCi0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7Ci0gICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ2VsbFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKQEAgLTUwLDExICs0NiwxMSBAQCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAK
LSAgICBKU1N0cmluZyogcHJvcGVydHlOYW1lQXRJbmRleCh1aW50MzJfdCBpbmRleCkgY29uc3QK
KyAgICBKU1N0cmluZyogcHJvcGVydHlOYW1lQXRJbmRleCh1aW50MzJfdCBpbmRleCkKICAgICB7
Ci0gICAgICAgIGlmIChpbmRleCA+PSBtX3Byb3BlcnR5TmFtZXMuc2l6ZSgpKQorICAgICAgICBp
ZiAoaW5kZXggPj0gc2l6ZU9mUHJvcGVydHlOYW1lcygpKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXNbaW5kZXhdLmdldCgpOworICAg
ICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVzLmdldCgpW2luZGV4XS5nZXQoKTsKICAgICB9CiAK
ICAgICBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90eXBlQ2hhaW4oKSBjb25zdCB7IHJldHVy
biBtX3Byb3RvdHlwZUNoYWluLmdldCgpOyB9CkBAIC03MSw2ICs2Nyw3IEBAIGNsYXNzIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHVpbnQzMl90
IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2VuZFN0cnVjdHVy
ZVByb3BlcnR5SW5kZXg7IH0KICAgICB1aW50MzJfdCBlbmRHZW5lcmljUHJvcGVydHlJbmRleCgp
IGNvbnN0IHsgcmV0dXJuIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXg7IH0KICAgICB1aW50MzJf
dCBjYWNoZWRJbmxpbmVDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkSW5saW5lQ2Fw
YWNpdHk7IH0KKyAgICB1aW50MzJfdCBzaXplT2ZQcm9wZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1
cm4gZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgoKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgY2Fj
aGVkU3RydWN0dXJlSURPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yLCBtX2NhY2hlZFN0cnVjdHVyZUlEKTsgfQogICAgIHN0YXRpYyBwdHJk
aWZmX3QgaW5kZXhlZExlbmd0aE9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IsIG1faW5kZXhlZExlbmd0aCk7IH0KICAgICBzdGF0aWMgcHRy
ZGlmZl90IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXhPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5
SW5kZXgpOyB9CkBAIC03OCwxOCArNzUsMTggQEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIHB0cmRpZmZfdCBjYWNoZWRJ
bmxpbmVDYXBhY2l0eU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IsIG1fY2FjaGVkSW5saW5lQ2FwYWNpdHkpOyB9CiAgICAgc3RhdGljIHB0
cmRpZmZfdCBjYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yT2Zmc2V0KCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX3Byb3Bl
cnR5TmFtZXMpICsgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+OjpkYXRhTWVtb3J5T2Zm
c2V0KCk7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLCBtX3Byb3BlcnR5TmFtZXMpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogcHJpdmF0ZToKLSAgICBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IoVk0mLCBTdHJ1Y3R1cmVJRCwgdWludDMyX3QpOwotICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oVk0mLCB1aW50MzJfdCwgdWludDMyX3QsIFJlZlB0cjxQcm9wZXJ0eU5h
bWVBcnJheURhdGE+JiYpOworICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIFN0cnVj
dHVyZSosIHVpbnQzMl90LCB1aW50MzJfdCwgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiosIHVuc2ln
bmVkKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgUmVmUHRyPFByb3BlcnR5TmFtZUFy
cmF5RGF0YT4mJik7CiAKLSAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPj4gbV9wcm9w
ZXJ0eU5hbWVzOwotICAgIFN0cnVjdHVyZUlEIG1fY2FjaGVkU3RydWN0dXJlSUQ7CisgICAgQXV4
aWxpYXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVzOwog
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmVDaGFpbj4gbV9wcm90b3R5cGVDaGFpbjsKKyAgICBT
dHJ1Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExl
bmd0aDsKICAgICB1aW50MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWlu
dDMyX3QgbV9lbmRHZW5lcmljUHJvcGVydHlJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcAppbmRleCAyNWVmOTQ1Y2JlNWE3NDQ1YzJjYTdjZTA2MjZjMmY5ODg0YTdjMjEwLi5h
NTQ4MWUyZGM2NWY4MjY2NTNlNjhiNjNjOTI3NGYzMjExMjAwYjdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMzA4LDYgKzEzMDgsMTUgQEAgSlNDZWxsKiBWTTo6c2Vu
dGluZWxNYXBCdWNrZXRTbG93KCkKICAgICByZXR1cm4gc2VudGluZWw7CiB9CiAKK0pTUHJvcGVy
dHlOYW1lRW51bWVyYXRvciogVk06OmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3coKQor
eworICAgIEFTU0VSVCghbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IpOworICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXModGhpcywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
cywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOworICAgIGF1dG8qIGVudW1lcmF0b3IgPSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgMCwgMCwgV1RG
TW92ZShwcm9wZXJ0eU5hbWVzKSk7CisgICAgbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Iu
c2V0KCp0aGlzLCBlbnVtZXJhdG9yKTsKKyAgICByZXR1cm4gZW51bWVyYXRvcjsKK30KKwogSlNH
bG9iYWxPYmplY3QqIFZNOjp2bUVudHJ5R2xvYmFsT2JqZWN0KGNvbnN0IENhbGxGcmFtZSogY2Fs
bEZyYW1lKSBjb25zdAogewogICAgIGlmIChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5pc0dsb2Jh
bEV4ZWMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggODI0NjJlMWRmZmEx
NWM4NjhlYThhN2Q3ZjYyOTQ3MDFiMDhiMWI3YS4uNjkwMDQwZGExZDMxOTgzNjExZjc3NzQ3MGY4
NGE3M2I4MDQ3Mzg1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0xMjMsNiAr
MTIzLDcgQEAgY2xhc3MgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjsKIGNsYXNzIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBjbGFz
cyBKU09iamVjdDsKK2NsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjsKIGNsYXNzIEpTUnVu
TG9vcFRpbWVyOwogY2xhc3MgSlNTdHJpbmdIZWFwQ2VsbFR5cGU7CiBjbGFzcyBKU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOwpAQCAtNTQ1LDcgKzU0Niw3IEBAIGNsYXNzIFZNIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3RO
b2RlPFZNPiB7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZTsK
ICAgICBTdHJvbmc8U3RydWN0dXJlPiBtX21hcEl0ZXJhdG9yU3RydWN0dXJlOwogCi0gICAgU3Ry
b25nPEpTQ2VsbD4gZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOworICAgIFN0cm9uZzxKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3I+IG1fZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogCiAg
ICAgU3Ryb25nPEpTQ2VsbD4gbV9zZW50aW5lbFNldEJ1Y2tldDsKICAgICBTdHJvbmc8SlNDZWxs
PiBtX3NlbnRpbmVsTWFwQnVja2V0OwpAQCAtNTk4LDYgKzU5OSwxMyBAQCBjbGFzcyBWTSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9k
ZTxWTT4gewogICAgICAgICByZXR1cm4gc2VudGluZWxNYXBCdWNrZXRTbG93KCk7CiAgICAgfQog
CisgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0
b3IoKQorICAgIHsKKyAgICAgICAgaWYgKExJS0VMWShtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVy
YXRvcikpCisgICAgICAgICAgICByZXR1cm4gbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Z2V0KCk7CisgICAgICAgIHJldHVybiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3JTbG93KCk7
CisgICAgfQorCiAgICAgV2Vha0dDTWFwPFN5bWJvbEltcGwqLCBTeW1ib2wsIFB0ckhhc2g8U3lt
Ym9sSW1wbCo+PiBzeW1ib2xJbXBsVG9TeW1ib2xNYXA7CiAKICAgICBlbnVtIGNsYXNzIERlbGV0
ZVByb3BlcnR5TW9kZSB7CkBAIC05NTMsNiArOTYxLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIG1hcEl0ZXJhdG9yU3RydWN0dXJlU2xv
dygpOwogICAgIEpTQ2VsbCogc2VudGluZWxTZXRCdWNrZXRTbG93KCk7CiAgICAgSlNDZWxsKiBz
ZW50aW5lbE1hcEJ1Y2tldFNsb3coKTsKKyAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVt
cHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3coKTsKIAogICAgIHZvaWQgdXBkYXRlU3RhY2tM
aW1pdHMoKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCAwNGQwMTFhZDgxYjJiOWFlOTU0MGI3YzMwMTE2NjcxYWNkMzJiZGFjLi41N2M1
ZjFhNmIwY2NkMzkyMmUyYjNkNzY2M2VmZmZiYjIzNjMwNGRhIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5
LTA3LTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pT
Q10gUG90ZW50aWFsIEdDIGZpeCBmb3IgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9mb3ItaW4t
c3RyZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKGtleXMpOgorCiAyMDE5LTA3LTI1ICBSb3NzIEtp
cnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBMZWdhY3kgbnVtZXJp
YyBsaXRlcmFscyBzaG91bGQgbm90IHBlcm1pdCBzZXBhcmF0b3JzIG9yIEJpZ0ludApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLWluLXN0cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zv
ci1pbi1zdHJlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU2MmI3MTAxZmQwMWQ2NjE4OWIxM2ViZTUzZDNl
OTRkYjViNWNiMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1zdHJl
c3MuanMKQEAgLTAsMCArMSwyNyBAQAorZnVuY3Rpb24ga2V5cyhhLCBiLCBjKSB7CisgICAgZm9y
ICh2YXIgaSBpbiBhKSB7CisgICAgICAgIGZvciAodmFyIGogaW4gYikgeworICAgICAgICAgICAg
Zm9yICh2YXIgayBpbiBjKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAg
Z2MoKTsKK30KK25vSW5saW5lKGtleXMpOworCit2YXIgZGljdGlvbmFyeSA9IHsKKyAgICAwOiAy
LAorICAgICJIZXkiOiAiSGVsbG8iLAorICAgICJXb3JsZCI6IDMyLjQsCisgICAgImRlbGV0ZWQi
OiAyMCwKK307CitkZWxldGUgZGljdGlvbmFyeVsiZGVsZXRlZCJdOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIGtleXMoW10sIFsyMF0sIFsiSGV5Il0pOworICAgIGtleXMo
WyJPSyIsIDMwXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgW10pOworICAgIGtleXMoWyJPSyIs
IDMwXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgWzQyXSk7CisgICAga2V5cyhbIk9LIiwgMzBd
LCBbXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIgfSk7CisgICAga2V5cyhbIk9LIiwgMzBdLCBbMi41
LCAzLjddLCBkaWN0aW9uYXJ5KTsKKyAgICBrZXlzKGRpY3Rpb25hcnksIHsgSGVsbG86IDAsIFdv
cmxkOiAyIH0sIGRpY3Rpb25hcnkpOworICAgIGtleXMoeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwg
ZGljdGlvbmFyeSwgeyBIZWxsbzogMCwgV29ybGQ6IDIsIDM6NDIgfSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375006</attachid>
            <date>2019-07-26 17:59:47 -0700</date>
            <delta_ts>2019-07-26 20:18:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200151-20190726175946.patch</filename>
            <type>text/plain</type>
            <size>17233</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWQxMmFjMzczZGJhYTYzNWRiMmJlNDI5MGNmYTc1OWE4MzhhNDFiLi4wODhiMmRiM2NlNjZmZjQ2
MjhhYjEyN2RlMGRhOWQ1ZmJiOGUxNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvdGVudGlhbCBHQyBmaXggZm9yIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgYXJlIHNlZWluZyBzb21lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJl
biBjcmFzaGVzIGZvciBhIGxvbmcgdGltZS4gVGhlIGNyYXNoIGZyZXF1ZW5jeSBpdHNlbGYgaXMg
bm90IGhpZ2gsIGJ1dCBpdCBleGlzdHMgc28gbG9uZy4KKyAgICAgICAgVGhlIGNyYXNoIGhhcHBl
bnMgd2hlbiB2aXNpdGluZyBtX3Byb3BlcnR5TmFtZXMuIEl0IGlzIGFsc28gcG9zc2libGUgdGhh
dCB0aGlzIGNyYXNoIGlzIGNhdXNlZCBieSByYW5kb20gY29ycnVwdGlvbiBpbiBzb21ld2hlcmUs
IGJ1dCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IKKyAgICAgICAgaGFzIHNvbWUgdHJpY2t5IChh
bmQgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzKSBpbXBsZW1lbnRhdGlvbnMgYW55d2F5LgorCisgICAg
ICAgIDEuIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBoYXZlIFZlY3RvcjxXcml0ZUJhcnJpZXI8
SlNTdHJpbmc+PiBhbmQgaXQgaXMgZXh0ZW5kZWQgaW4gZmluaXNoQ3JlYXRpb24gd2l0aCBhIGxv
Y2suCisgICAgICAgICAgIFdlIHNob3VsZCB1c2UgQXV4aWxpYXJ5IG1lbW9yeSBmb3IgdGhpcyB1
c2UgY2FzZS4gQW5kIHdlIHNob3VsZCBzZXQgdGhpcyBtZW1vcnkgYXQgYSBjb25zdHJ1Y3RvciBz
byB0aGF0CisgICAgICAgICAgIHdlIGRvIG5vdCBleHRlbmQgaXQgaW4gZmluaXNoQ3JlYXRpb24s
IGFuZCB3ZSBkbyBub3QgbmVlZCBhIGxvY2suCisgICAgICAgIDIuIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciBnZXRzIFN0cnVjdHVyZUlEIGJlZm9yZSBhbGxvY2F0aW5nIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvci4gVGhpcyBpcyBwb3RlbnRpYWxseSBkYW5nZXJvdXMgYmVjYXVzZSB0aGUgY29u
c2VydmF0aXZlIHNjYW4KKyAgICAgICAgICAgY2Fubm90IGZpbmQgdGhlIFN0cnVjdHVyZSogc2lu
Y2Ugd2UgY291bGQgb25seSBoYXZlIFN0cnVjdHVyZUlELiBTaW5jZSBhbGxvY2F0aW9uIGNvZGUg
aGFwcGVucyBhZnRlciBTdHJ1Y3R1cmVJRCBpcyByZXRyaWV2ZWQsIGl0IGlzIHBvc3NpYmxlIHRo
YXQKKyAgICAgICAgICAgdGhlIGFsbG9jYXRpb24gY2F1c2VzIEdDIGFuZCBTdHJ1Y3R1cmUqIGlz
IGNvbGxlY3RlZC4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBhbGlnbiBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IgaW1wbGVtZW50YXRpb24gdG8gdGhlIG1vZGVybiBvbmUgdG8gYXZvaWQg
dXNpbmcgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+LiBBbmQgd2UgY2FuIG1ha2UgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIG5vbi1kZXN0cnVjdGlibGUgY2VsbC4gU2lu
Y2UgSlNDZWxsJ3MgZGVzdHJ1Y3RvciBpcyBvbmUgb2YgdGhlIGNhdXNlIG9mIHZhcmlvdXMgaXNz
dWVzLCB3ZSBzaG91bGQgYXZvaWQgaXQgaWYgd2UgY2FuLgorCisgICAgICAgIE5vIGJlaGF2aW9y
IGNoYW5nZS4gVGhpcyBwYXRjaCBhZGRzIGEgdGVzdCBzdHJlc3NpbmcgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLgorCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RF
Q0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAo
SlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcik6
CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmRlc3Ryb3kpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjplbXB0eVByb3BlcnR5TmFt
ZUVudW1lcmF0b3JTbG93KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6
OlZNOjplbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorCiAyMDE5LTA3LTI1ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHVuYWxpZ25l
ZExvYWQgZm9yIEpTUm9wZVN0cmluZyBmaWJlciBhY2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZDEyZTJjOTcwMmI5OWZkMWJkODZiMjAw
YzhmNDA2MTM1MmEwMzU3MS4uZGVmMGI3MGQ1M2IwNTBiMWNmNGNhMGY1MDMxZDkzM2E3YWZmMzBl
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0y
MTYyLDcgKzIxNjIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVy
dHlFbnVtZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogCiAgICAgSlNWYWx1ZSBi
YXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBpZiAoYmFzZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpj
cmVhdGUodm0pOworICAgICAgICByZXR1cm4gdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KCk7CiAKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJhc2UudG9PYmplY3QoZXhlYyk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IDVkZjRmNTg4MDc5NDcx
OWEwMDkxNGQ0ZGJiOTlkNmYzNjAxNDU3OWQuLjE5MzcwZjc0MTc3MTQ4OWNmYzJhODdiMjQwMzU1
MDFkYjFiOWYyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcApAQCAtOTcyLDcgKzk3Miw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcikKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFz
PE9wR2V0UHJvcGVydHlFbnVtZXJhdG9yPigpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gR0VU
KGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpOwogICAgIGlmIChiYXNlVmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkKLSAgICAgICAgUkVUVVJOKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3Jl
YXRlKHZtKSk7CisgICAgICAgIFJFVFVSTih2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Io
KSk7CiAKICAgICBKU09iamVjdCogYmFzZSA9IGJhc2VWYWx1ZS50b09iamVjdChleGVjKTsKICAg
ICBDSEVDS19FWENFUFRJT04oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCmluZGV4IGY4NjJlZDQzZmFm
ZTdiYzE0YzA2MmE1MzIzNjVhMWZmYjJmMDcyY2IuLmE2MTM2Y2QxMjk5ODQ2Nzg0YjAyMGNmM2Zl
OGYxOTM2ZDIxM2VjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcApAQCAtMzQsNjUgKzM0LDUzIEBA
IG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yOjpzX2luZm8gPSB7ICJKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IiLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cikgfTsKIAotSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3I6OmNyZWF0ZShWTSYgdm0pCi17Ci0gICAgaWYgKCF2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1l
cmF0b3IuZ2V0KCkpIHsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygm
dm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRl
KTsKLSAgICAgICAgdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yID0gU3Ryb25nPEpTQ2Vs
bD4odm0sIGNyZWF0ZSh2bSwgMCwgMCwgMCwgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSkpOwotICAg
IH0KLSAgICByZXR1cm4ganNDYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KHZtLmVtcHR5
UHJvcGVydHlOYW1lRW51bWVyYXRvci5nZXQoKSk7Ci19Ci0KIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3QgbnVtYmVyU3RydWN0
dXJlUHJvcGVydGllcywgUHJvcGVydHlOYW1lQXJyYXkmJiBwcm9wZXJ0eU5hbWVzKQogewotICAg
IFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gc3RydWN0dXJlID8gc3RydWN0dXJlLT5pZCgpIDog
MDsKLSAgICB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSA9IHN0cnVjdHVyZSA/IHN0cnVjdHVyZS0+
aW5saW5lQ2FwYWNpdHkoKSA6IDA7Ci0gICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVt
ZXJhdG9yID0gbmV3IChOb3ROdWxsLCAKLSAgICAgICAgYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcj4odm0uaGVhcCkpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgc3Ry
dWN0dXJlSUQsIGlubGluZUNhcGFjaXR5KTsKLSAgICBlbnVtZXJhdG9yLT5maW5pc2hDcmVhdGlv
bih2bSwgaW5kZXhlZExlbmd0aCwgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgcHJvcGVydHlO
YW1lcy5yZWxlYXNlRGF0YSgpKTsKKyAgICB1bnNpZ25lZCBwcm9wZXJ0eU5hbWVzU2l6ZSA9IHBy
b3BlcnR5TmFtZXMuc2l6ZSgpOworICAgIHVuc2lnbmVkIHByb3BlcnR5TmFtZXNCdWZmZXJTaXpl
SW5CeXRlcyA9IChDaGVja2VkPHVuc2lnbmVkPihwcm9wZXJ0eU5hbWVzU2l6ZSkgKiBzaXplb2Yo
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpLnVuc2FmZUdldCgpOworICAgIFdyaXRlQmFycmllcjxK
U1N0cmluZz4qIHByb3BlcnR5TmFtZXNCdWZmZXIgPSBudWxscHRyOworICAgIGlmIChwcm9wZXJ0
eU5hbWVzQnVmZmVyU2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgcHJvcGVydHlOYW1lc0J1ZmZlciA9
IHN0YXRpY19jYXN0PFdyaXRlQmFycmllcjxKU1N0cmluZz4qPih2bS5qc1ZhbHVlR2lnYWNhZ2VB
dXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwodm0sIHByb3BlcnR5TmFtZXNCdWZmZXJT
aXplSW5CeXRlcywgbnVsbHB0ciwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlOjpBc3NlcnQpKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXNTaXplOyArK2kpCisg
ICAgICAgICAgICBwcm9wZXJ0eU5hbWVzQnVmZmVyW2ldLmNsZWFyKCk7CisgICAgfQorICAgIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9IG5ldyAoTm90TnVsbCwgYWxsb2Nh
dGVDZWxsPEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcj4odm0uaGVhcCkpIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcih2bSwgc3RydWN0dXJlLCBpbmRleGVkTGVuZ3RoLCBudW1iZXJTdHJ1Y3R1cmVQ
cm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWVzQnVmZmVyLCBwcm9wZXJ0eU5hbWVzU2l6ZSk7CisgICAg
ZW51bWVyYXRvci0+ZmluaXNoQ3JlYXRpb24odm0sIHByb3BlcnR5TmFtZXMucmVsZWFzZURhdGEo
KSk7CiAgICAgcmV0dXJuIGVudW1lcmF0b3I7CiB9CiAKLUpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlSUQgc3RydWN0dXJl
SUQsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KQorSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWlu
dDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3QgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywg
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPiogcHJvcGVydHlOYW1lc0J1ZmZlciwgdW5zaWduZWQgcHJv
cGVydHlOYW1lc1NpemUpCiAgICAgOiBKU0NlbGwodm0sIHZtLnByb3BlcnR5TmFtZUVudW1lcmF0
b3JTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2NhY2hlZFN0cnVjdHVyZUlEKHN0cnVjdHVyZUlE
KQotICAgICwgbV9jYWNoZWRJbmxpbmVDYXBhY2l0eShpbmxpbmVDYXBhY2l0eSkKKyAgICAsIG1f
cHJvcGVydHlOYW1lcyh2bSwgdGhpcywgcHJvcGVydHlOYW1lc0J1ZmZlcikKKyAgICAsIG1fY2Fj
aGVkU3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3RydWN0dXJlLT5pZCgpIDogMCkKKyAgICAsIG1f
aW5kZXhlZExlbmd0aChpbmRleGVkTGVuZ3RoKQorICAgICwgbV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0
eUluZGV4KG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMpCisgICAgLCBtX2VuZEdlbmVyaWNQcm9w
ZXJ0eUluZGV4KHByb3BlcnR5TmFtZXNTaXplKQorICAgICwgbV9jYWNoZWRJbmxpbmVDYXBhY2l0
eShzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlubGluZUNhcGFjaXR5KCkgOiAwKQogewogfQogCi12
b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCB1aW50
MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBlbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4LCBS
ZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmIGlkZW50aWZpZXJzKQordm9pZCBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgUmVmUHRyPFByb3BlcnR5
TmFtZUFycmF5RGF0YT4mJiBpZGVudGlmaWVycykKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAKICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYg
dmVjdG9yID0gaWRlbnRpZmllcnMtPnByb3BlcnR5TmFtZVZlY3RvcigpOwotCi0gICAgbV9pbmRl
eGVkTGVuZ3RoID0gaW5kZXhlZExlbmd0aDsKLSAgICBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5k
ZXggPSBlbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwotICAgIG1fZW5kR2VuZXJpY1Byb3BlcnR5
SW5kZXggPSB2ZWN0b3Iuc2l6ZSgpOwotCi0gICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGxv
Y2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsIGNlbGxMb2NrKCkpOwotICAgICAgICBtX3Byb3BlcnR5
TmFtZXMucmVzaXplVG9GaXQodmVjdG9yLnNpemUoKSk7Ci0gICAgfQorICAgIEFTU0VSVChtX2Vu
ZEdlbmVyaWNQcm9wZXJ0eUluZGV4ID09IHZlY3Rvci5zaXplKCkpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllciA9IHZlY3RvcltpXTsKLSAgICAgICAgbV9wcm9wZXJ0eU5hbWVzW2ld
LnNldCh2bSwgdGhpcywganNTdHJpbmcoJnZtLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAg
ICAgIG1fcHJvcGVydHlOYW1lcy5nZXQoKVtpXS5zZXQodm0sIHRoaXMsIGpzU3RyaW5nKCZ2bSwg
aWRlbnRpZmllci5zdHJpbmcoKSkpOwogICAgIH0KIH0KIAotdm9pZCBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3I6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQotewotICAgIHN0YXRpY19jYXN0PEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpLT5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6On5K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKLX0KLQogdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4oY2VsbCwg
dmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9j
aygpKTsKLSAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPm1fcHJvcGVy
dHlOYW1lcykKLSAgICAgICAgdmlzaXRvci5hcHBlbmQocHJvcGVydHlOYW1lKTsKKyAgICBpZiAo
YXV0byogcHJvcGVydHlOYW1lcyA9IHRoaXNPYmplY3QtPm1fcHJvcGVydHlOYW1lcy5nZXQoKSkg
eworICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkocHJvcGVydHlOYW1lcyk7CisgICAgICAg
IHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZXMsIHByb3BlcnR5TmFtZXMgKyB0aGlzT2JqZWN0
LT5zaXplT2ZQcm9wZXJ0eU5hbWVzKCkpOworICAgIH0KICAgICB2aXNpdG9yLmFwcGVuZCh0aGlz
T2JqZWN0LT5tX3Byb3RvdHlwZUNoYWluKTsKIAogICAgIGlmICh0aGlzT2JqZWN0LT5jYWNoZWRT
dHJ1Y3R1cmVJRCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDQ2MDhjNjNhZGJhY2NmZTJlNzNl
YmIxMjdjNTQ2ODU0NjExMTMyYTMuLjEwNzkzMDQ1NjE5ZTI5MGNkNzE0ZTU4NjFlNzY0OTkwMzg1
ZmJhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvcGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC0zNCwxNSArMzQsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0Nl
bGwgewogcHVibGljOgotICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CisgICAgdXNpbmcgQmFzZSA9
IEpTQ2VsbDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKLSAgICBzdGF0aWMgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUoVk0mKTsKICAgICBzdGF0aWMgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCB1aW50MzJfdCwgdWludDMy
X3QsIFByb3BlcnR5TmFtZUFycmF5JiYpOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNE
ZXN0cnVjdGlvbiA9IHRydWU7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oQ2VsbFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKQEAgLTUwLDExICs0NiwxMSBA
QCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBKU1N0cmluZyogcHJvcGVydHlOYW1l
QXRJbmRleCh1aW50MzJfdCBpbmRleCkgY29uc3QKKyAgICBKU1N0cmluZyogcHJvcGVydHlOYW1l
QXRJbmRleCh1aW50MzJfdCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlmIChpbmRleCA+PSBtX3By
b3BlcnR5TmFtZXMuc2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gc2l6ZU9mUHJvcGVydHlO
YW1lcygpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX3By
b3BlcnR5TmFtZXNbaW5kZXhdLmdldCgpOworICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVz
LmdldCgpW2luZGV4XS5nZXQoKTsKICAgICB9CiAKICAgICBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVk
UHJvdG90eXBlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZUNoYWluLmdldCgpOyB9
CkBAIC03MSw2ICs2Nyw3IEBAIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIHVpbnQzMl90IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgo
KSBjb25zdCB7IHJldHVybiBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7IH0KICAgICB1aW50
MzJfdCBlbmRHZW5lcmljUHJvcGVydHlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kR2VuZXJp
Y1Byb3BlcnR5SW5kZXg7IH0KICAgICB1aW50MzJfdCBjYWNoZWRJbmxpbmVDYXBhY2l0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FjaGVkSW5saW5lQ2FwYWNpdHk7IH0KKyAgICB1aW50MzJfdCBzaXpl
T2ZQcm9wZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1cm4gZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgo
KTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgY2FjaGVkU3RydWN0dXJlSURPZmZzZXQoKSB7IHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX2NhY2hlZFN0
cnVjdHVyZUlEKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgaW5kZXhlZExlbmd0aE9mZnNldCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IsIG1faW5k
ZXhlZExlbmd0aCk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IGVuZFN0cnVjdHVyZVByb3BlcnR5
SW5kZXhPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgpOyB9CkBAIC03OCwxOCArNzUsMTgg
QEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiAgICAgc3RhdGljIHB0cmRpZmZfdCBjYWNoZWRJbmxpbmVDYXBhY2l0eU9mZnNldCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IsIG1fY2FjaGVkSW5s
aW5lQ2FwYWNpdHkpOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBjYWNoZWRQcm9wZXJ0eU5hbWVz
VmVjdG9yT2Zmc2V0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX3Byb3BlcnR5TmFtZXMpICsgVmVjdG9yPFdyaXRlQmFy
cmllcjxKU1N0cmluZz4+OjpkYXRhTWVtb3J5T2Zmc2V0KCk7CisgICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX3Byb3BlcnR5TmFtZXMpOwog
ICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0
b3ImKTsKIAogcHJpdmF0ZToKLSAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mLCBTdHJ1
Y3R1cmVJRCwgdWludDMyX3QpOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCB1aW50MzJf
dCwgdWludDMyX3QsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+JiYpOworICAgIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcihWTSYsIFN0cnVjdHVyZSosIHVpbnQzMl90LCB1aW50MzJfdCwg
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPiosIHVuc2lnbmVkKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4mJik7CiAKLSAgICBWZWN0b3I8
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPj4gbV9wcm9wZXJ0eU5hbWVzOwotICAgIFN0cnVjdHVyZUlE
IG1fY2FjaGVkU3RydWN0dXJlSUQ7CisgICAgQXV4aWxpYXJ5QmFycmllcjxXcml0ZUJhcnJpZXI8
SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVzOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmVD
aGFpbj4gbV9wcm90b3R5cGVDaGFpbjsKKyAgICBTdHJ1Y3R1cmVJRCBtX2NhY2hlZFN0cnVjdHVy
ZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0aDsKICAgICB1aW50MzJfdCBtX2VuZFN0
cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWludDMyX3QgbV9lbmRHZW5lcmljUHJvcGVydHlJ
bmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAyNWVmOTQ1Y2JlNWE3
NDQ1YzJjYTdjZTA2MjZjMmY5ODg0YTdjMjEwLi5hNTQ4MWUyZGM2NWY4MjY2NTNlNjhiNjNjOTI3
NGYzMjExMjAwYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMzA4
LDYgKzEzMDgsMTUgQEAgSlNDZWxsKiBWTTo6c2VudGluZWxNYXBCdWNrZXRTbG93KCkKICAgICBy
ZXR1cm4gc2VudGluZWw7CiB9CiAKK0pTUHJvcGVydHlOYW1lRW51bWVyYXRvciogVk06OmVtcHR5
UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3coKQoreworICAgIEFTU0VSVCghbV9lbXB0eVByb3Bl
cnR5TmFtZUVudW1lcmF0b3IpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMo
dGhpcywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1
ZGUpOworICAgIGF1dG8qIGVudW1lcmF0b3IgPSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNy
ZWF0ZSgqdGhpcywgbnVsbHB0ciwgMCwgMCwgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSk7CisgICAg
bV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KCp0aGlzLCBlbnVtZXJhdG9yKTsKKyAg
ICByZXR1cm4gZW51bWVyYXRvcjsKK30KKwogSlNHbG9iYWxPYmplY3QqIFZNOjp2bUVudHJ5R2xv
YmFsT2JqZWN0KGNvbnN0IENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAogewogICAgIGlmIChj
YWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5pc0dsb2JhbEV4ZWMoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKaW5kZXggODI0NjJlMWRmZmExNWM4NjhlYThhN2Q3ZjYyOTQ3MDFiMDhiMWI3
YS4uNjkwMDQwZGExZDMxOTgzNjExZjc3NzQ3MGY4NGE3M2I4MDQ3Mzg1NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCkBAIC0xMjMsNiArMTIzLDcgQEAgY2xhc3MgSlNDdXN0b21HZXR0
ZXJTZXR0ZXJGdW5jdGlvbjsKIGNsYXNzIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBl
OwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBjbGFzcyBKU09iamVjdDsKK2NsYXNzIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjsKIGNsYXNzIEpTUnVuTG9vcFRpbWVyOwogY2xhc3MgSlNTdHJpbmdI
ZWFwQ2VsbFR5cGU7CiBjbGFzcyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOwpA
QCAtNTQ1LDcgKzU0Niw3IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgU3Ryb25nPFN0cnVj
dHVyZT4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBtX21h
cEl0ZXJhdG9yU3RydWN0dXJlOwogCi0gICAgU3Ryb25nPEpTQ2VsbD4gZW1wdHlQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOworICAgIFN0cm9uZzxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I+IG1fZW1w
dHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogCiAgICAgU3Ryb25nPEpTQ2VsbD4gbV9zZW50aW5l
bFNldEJ1Y2tldDsKICAgICBTdHJvbmc8SlNDZWxsPiBtX3NlbnRpbmVsTWFwQnVja2V0OwpAQCAt
NTk4LDYgKzU5OSwxMyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxW
TT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgICAgICByZXR1cm4gc2Vu
dGluZWxNYXBCdWNrZXRTbG93KCk7CiAgICAgfQogCisgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKExJ
S0VMWShtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcikpCisgICAgICAgICAgICByZXR1cm4g
bV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCk7CisgICAgICAgIHJldHVybiBlbXB0
eVByb3BlcnR5TmFtZUVudW1lcmF0b3JTbG93KCk7CisgICAgfQorCiAgICAgV2Vha0dDTWFwPFN5
bWJvbEltcGwqLCBTeW1ib2wsIFB0ckhhc2g8U3ltYm9sSW1wbCo+PiBzeW1ib2xJbXBsVG9TeW1i
b2xNYXA7CiAKICAgICBlbnVtIGNsYXNzIERlbGV0ZVByb3BlcnR5TW9kZSB7CkBAIC05NTMsNiAr
OTYxLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJs
aWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1
Y3R1cmUqIG1hcEl0ZXJhdG9yU3RydWN0dXJlU2xvdygpOwogICAgIEpTQ2VsbCogc2VudGluZWxT
ZXRCdWNrZXRTbG93KCk7CiAgICAgSlNDZWxsKiBzZW50aW5lbE1hcEJ1Y2tldFNsb3coKTsKKyAg
ICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNs
b3coKTsKIAogICAgIHZvaWQgdXBkYXRlU3RhY2tMaW1pdHMoKTsKIApkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwNGQwMTFhZDgxYjJiOWFl
OTU0MGI3YzMwMTE2NjcxYWNkMzJiZGFjLi41N2M1ZjFhNmIwY2NkMzkyMmUyYjNkNzY2M2VmZmZi
YjIzNjMwNGRhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA3LTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gUG90ZW50aWFsIEdDIGZpeCBmb3IgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDAxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0cmVzcy9mb3ItaW4tc3RyZXNzLmpzOiBBZGRlZC4KKyAgICAgICAg
KGtleXMpOgorCiAyMDE5LTA3LTI1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255
LmNvbT4KIAogICAgICAgICBMZWdhY3kgbnVtZXJpYyBsaXRlcmFscyBzaG91bGQgbm90IHBlcm1p
dCBzZXBhcmF0b3JzIG9yIEJpZ0ludApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLWlu
LXN0cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1zdHJlc3MuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzU2MmI3MTAxZmQwMWQ2NjE4OWIxM2ViZTUzZDNlOTRkYjViNWNiMwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1zdHJlc3MuanMKQEAgLTAsMCArMSwyNyBAQAorZnVu
Y3Rpb24ga2V5cyhhLCBiLCBjKSB7CisgICAgZm9yICh2YXIgaSBpbiBhKSB7CisgICAgICAgIGZv
ciAodmFyIGogaW4gYikgeworICAgICAgICAgICAgZm9yICh2YXIgayBpbiBjKSB7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZ2MoKTsKK30KK25vSW5saW5lKGtleXMpOwor
Cit2YXIgZGljdGlvbmFyeSA9IHsKKyAgICAwOiAyLAorICAgICJIZXkiOiAiSGVsbG8iLAorICAg
ICJXb3JsZCI6IDMyLjQsCisgICAgImRlbGV0ZWQiOiAyMCwKK307CitkZWxldGUgZGljdGlvbmFy
eVsiZGVsZXRlZCJdOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGtleXMo
W10sIFsyMF0sIFsiSGV5Il0pOworICAgIGtleXMoWyJPSyIsIDMwXSwgeyBIZWxsbzogMCwgV29y
bGQ6IDIgfSwgW10pOworICAgIGtleXMoWyJPSyIsIDMwXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIg
fSwgWzQyXSk7CisgICAga2V5cyhbIk9LIiwgMzBdLCBbXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIg
fSk7CisgICAga2V5cyhbIk9LIiwgMzBdLCBbMi41LCAzLjddLCBkaWN0aW9uYXJ5KTsKKyAgICBr
ZXlzKGRpY3Rpb25hcnksIHsgSGVsbG86IDAsIFdvcmxkOiAyIH0sIGRpY3Rpb25hcnkpOworICAg
IGtleXMoeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgZGljdGlvbmFyeSwgeyBIZWxsbzogMCwgV29y
bGQ6IDIsIDM6NDIgfSk7Cit9Cg==
</data>
<flag name="review"
          id="390805"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="390811"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375014</attachid>
            <date>2019-07-26 20:39:51 -0700</date>
            <delta_ts>2019-07-26 20:39:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200151-20190726203950.patch</filename>
            <type>text/plain</type>
            <size>17311</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YjQwY2U0Yjc2MTEyOGJjNzFkNDBmNDAwYzcyOTU5Zjk5ZTJiN2U2Li4wNjEyZWIzMWFiYmE0Zjk5
ODk1NTk3YWRkMmQ1YTQ3ZjlkMjMwMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvdGVudGlhbCBHQyBmaXggZm9yIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgaGF2ZSBiZWVuIHNlZWluZyBzb21lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRD
aGlsZHJlbiBjcmFzaGVzIGZvciBhIGxvbmcgdGltZS4gVGhlIGNyYXNoIGZyZXF1ZW5jeSBpdHNl
bGYgaXMgbm90IGhpZ2gsIGJ1dCBpdCBoYXMgZXhpc3RlZCBmb3IgYSBsb25nIHRpbWUuCisgICAg
ICAgIFRoZSBjcmFzaCBoYXBwZW5zIHdoZW4gdmlzaXRpbmcgbV9wcm9wZXJ0eU5hbWVzLiBJdCBp
cyBhbHNvIHBvc3NpYmxlIHRoYXQgdGhpcyBjcmFzaCBpcyBjYXVzZWQgYnkgcmFuZG9tIGNvcnJ1
cHRpb24gc29tZXdoZXJlLCBidXQgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIGhh
cyBzb21lIHRyaWNreSAoYW5kIHBvdGVudGlhbGx5IGRhbmdlcm91cykgaW1wbGVtZW50YXRpb25z
IGFueXdheS4KKworICAgICAgICAxLiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgaGF2ZSBWZWN0
b3I8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPj4gYW5kIGl0IGlzIGV4dGVuZGVkIGluIGZpbmlzaENy
ZWF0aW9uIHdpdGggYSBsb2NrLgorICAgICAgICAgICBXZSBzaG91bGQgdXNlIEF1eGlsaWFyeSBt
ZW1vcnkgZm9yIHRoaXMgdXNlIGNhc2UuIEFuZCB3ZSBzaG91bGQgc2V0IHRoaXMgbWVtb3J5IGlu
IHRoZSBjb25zdHJ1Y3RvciBzbyB0aGF0CisgICAgICAgICAgIHdlIGRvIG5vdCBleHRlbmQgaXQg
aW4gZmluaXNoQ3JlYXRpb24sIGFuZCB3ZSBkbyBub3QgbmVlZCBhIGxvY2suCisgICAgICAgIDIu
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciBnZXRzIFN0cnVjdHVyZUlEIGJlZm9yZSBhbGxvY2F0
aW5nIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci4gVGhpcyBpcyBwb3RlbnRpYWxseSBkYW5nZXJv
dXMgYmVjYXVzZSB0aGUgY29uc2VydmF0aXZlIHNjYW4KKyAgICAgICAgICAgY2Fubm90IGZpbmQg
dGhlIFN0cnVjdHVyZSogc2luY2Ugd2UgY291bGQgb25seSBoYXZlIFN0cnVjdHVyZUlELiBTaW5j
ZSBhbGxvY2F0aW9uIGNvZGUgaGFwcGVucyBhZnRlciBTdHJ1Y3R1cmVJRCBpcyByZXRyaWV2ZWQs
IGl0IGlzIHBvc3NpYmxlIHRoYXQKKyAgICAgICAgICAgdGhlIGFsbG9jYXRpb24gY2F1c2VzIEdD
IGFuZCBTdHJ1Y3R1cmUqIGlzIGNvbGxlY3RlZC4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3
ZSBhbGlnbiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgaW1wbGVtZW50YXRpb24gdG8gdGhlIG1v
ZGVybiBvbmUgdG8gYXZvaWQgdXNpbmcgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+LiBB
bmQgd2UgY2FuIG1ha2UgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIGEgbm9uLWRl
c3RydWN0aWJsZSBjZWxsLiBTaW5jZSBKU0NlbGwncyBkZXN0cnVjdG9yIGlzIG9uZSBvZiB0aGUg
Y2F1c2Ugb2YgdmFyaW91cyBpc3N1ZXMsIHdlIHNob3VsZCBhdm9pZCBpdCBpZiB3ZSBjYW4uCisK
KyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBUaGlzIHBhdGNoIGFkZHMgYSB0ZXN0IHN0cmVz
c2luZyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuCisKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVy
YXRvcjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVy
YXRvcjo6ZGVzdHJveSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6
Vk06OmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3cpOgorICAgICAgICAqIHJ1bnRpbWUv
Vk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcik6CisK
IDIwMTktMDctMjYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBjcmFzaCBkaWFnbm9zdGljcyBmb3IgZGVidWdnaW5nIHVuZXhwZWN0ZWQgemFwcGVkIGNlbGxz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZDEy
ZTJjOTcwMmI5OWZkMWJkODZiMjAwYzhmNDA2MTM1MmEwMzU3MS4uZGVmMGI3MGQ1M2IwNTBiMWNm
NGNhMGY1MDMxZDkzM2E3YWZmMzBlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCkBAIC0yMTYyLDcgKzIxNjIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVgogCiAgICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsK
ICAgICBpZiAoYmFzZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUodm0pOworICAgICAgICByZXR1cm4gdm0uZW1wdHlQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCk7CiAKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJh
c2UudG9PYmplY3QoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CmluZGV4IDVkZjRmNTg4MDc5NDcxOWEwMDkxNGQ0ZGJiOTlkNmYzNjAxNDU3OWQuLjE5MzcwZjc0
MTc3MTQ4OWNmYzJhODdiMjQwMzU1MDFkYjFiOWYyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtOTcyLDcgKzk3Miw3IEBA
IFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcikKICAgICBh
dXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wR2V0UHJvcGVydHlFbnVtZXJhdG9yPigpOwogICAgIEpT
VmFsdWUgYmFzZVZhbHVlID0gR0VUKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpOwogICAgIGlm
IChiYXNlVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgUkVUVVJOKEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlKHZtKSk7CisgICAgICAgIFJFVFVSTih2bS5lbXB0eVBy
b3BlcnR5TmFtZUVudW1lcmF0b3IoKSk7CiAKICAgICBKU09iamVjdCogYmFzZSA9IGJhc2VWYWx1
ZS50b09iamVjdChleGVjKTsKICAgICBDSEVDS19FWENFUFRJT04oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Y3BwCmluZGV4IGY4NjJlZDQzZmFmZTdiYzE0YzA2MmE1MzIzNjVhMWZmYjJmMDcyY2IuLmE2MTM2
Y2QxMjk5ODQ2Nzg0YjAyMGNmM2ZlOGYxOTM2ZDIxM2VjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNw
cApAQCAtMzQsNjUgKzM0LDUzIEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8g
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpzX2luZm8gPSB7ICJKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcikgfTsKIAotSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0pCi17Ci0gICAgaWYgKCF2bS5l
bXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCkpIHsKLSAgICAgICAgUHJvcGVydHlOYW1l
QXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZh
dGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKLSAgICAgICAgdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yID0gU3Ryb25nPEpTQ2VsbD4odm0sIGNyZWF0ZSh2bSwgMCwgMCwgMCwgV1RGTW92ZShw
cm9wZXJ0eU5hbWVzKSkpOwotICAgIH0KLSAgICByZXR1cm4ganNDYXN0PEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvcio+KHZtLmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvci5nZXQoKSk7Ci19Ci0K
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVh
dGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwg
dWludDMyX3QgbnVtYmVyU3RydWN0dXJlUHJvcGVydGllcywgUHJvcGVydHlOYW1lQXJyYXkmJiBw
cm9wZXJ0eU5hbWVzKQogewotICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gc3RydWN0dXJl
ID8gc3RydWN0dXJlLT5pZCgpIDogMDsKLSAgICB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSA9IHN0
cnVjdHVyZSA/IHN0cnVjdHVyZS0+aW5saW5lQ2FwYWNpdHkoKSA6IDA7Ci0gICAgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yID0gbmV3IChOb3ROdWxsLCAKLSAgICAgICAgYWxs
b2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcj4odm0uaGVhcCkpIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcih2bSwgc3RydWN0dXJlSUQsIGlubGluZUNhcGFjaXR5KTsKLSAgICBlbnVt
ZXJhdG9yLT5maW5pc2hDcmVhdGlvbih2bSwgaW5kZXhlZExlbmd0aCwgbnVtYmVyU3RydWN0dXJl
UHJvcGVydGllcywgcHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgpKTsKKyAgICB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWVzU2l6ZSA9IHByb3BlcnR5TmFtZXMuc2l6ZSgpOworICAgIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZXNCdWZmZXJTaXplSW5CeXRlcyA9IChDaGVja2VkPHVuc2lnbmVkPihwcm9wZXJ0
eU5hbWVzU2l6ZSkgKiBzaXplb2YoV3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpLnVuc2FmZUdldCgp
OworICAgIFdyaXRlQmFycmllcjxKU1N0cmluZz4qIHByb3BlcnR5TmFtZXNCdWZmZXIgPSBudWxs
cHRyOworICAgIGlmIChwcm9wZXJ0eU5hbWVzQnVmZmVyU2l6ZUluQnl0ZXMpIHsKKyAgICAgICAg
cHJvcGVydHlOYW1lc0J1ZmZlciA9IHN0YXRpY19jYXN0PFdyaXRlQmFycmllcjxKU1N0cmluZz4q
Pih2bS5qc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwodm0s
IHByb3BlcnR5TmFtZXNCdWZmZXJTaXplSW5CeXRlcywgbnVsbHB0ciwgQWxsb2NhdGlvbkZhaWx1
cmVNb2RlOjpBc3NlcnQpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3Bl
cnR5TmFtZXNTaXplOyArK2kpCisgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzQnVmZmVyW2ldLmNs
ZWFyKCk7CisgICAgfQorICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvciA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcj4odm0u
aGVhcCkpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcih2bSwgc3RydWN0dXJlLCBpbmRleGVkTGVu
Z3RoLCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWVzQnVmZmVyLCBwcm9w
ZXJ0eU5hbWVzU2l6ZSk7CisgICAgZW51bWVyYXRvci0+ZmluaXNoQ3JlYXRpb24odm0sIHByb3Bl
cnR5TmFtZXMucmVsZWFzZURhdGEoKSk7CiAgICAgcmV0dXJuIGVudW1lcmF0b3I7CiB9CiAKLUpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKFZNJiB2bSwg
U3RydWN0dXJlSUQgc3RydWN0dXJlSUQsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KQorSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWludDMyX3QgbnVtYmVy
U3RydWN0dXJlUHJvcGVydGllcywgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiogcHJvcGVydHlOYW1l
c0J1ZmZlciwgdW5zaWduZWQgcHJvcGVydHlOYW1lc1NpemUpCiAgICAgOiBKU0NlbGwodm0sIHZt
LnByb3BlcnR5TmFtZUVudW1lcmF0b3JTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2NhY2hlZFN0
cnVjdHVyZUlEKHN0cnVjdHVyZUlEKQotICAgICwgbV9jYWNoZWRJbmxpbmVDYXBhY2l0eShpbmxp
bmVDYXBhY2l0eSkKKyAgICAsIG1fcHJvcGVydHlOYW1lcyh2bSwgdGhpcywgcHJvcGVydHlOYW1l
c0J1ZmZlcikKKyAgICAsIG1fY2FjaGVkU3RydWN0dXJlSUQoc3RydWN0dXJlID8gc3RydWN0dXJl
LT5pZCgpIDogMCkKKyAgICAsIG1faW5kZXhlZExlbmd0aChpbmRleGVkTGVuZ3RoKQorICAgICwg
bV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4KG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMpCisg
ICAgLCBtX2VuZEdlbmVyaWNQcm9wZXJ0eUluZGV4KHByb3BlcnR5TmFtZXNTaXplKQorICAgICwg
bV9jYWNoZWRJbmxpbmVDYXBhY2l0eShzdHJ1Y3R1cmUgPyBzdHJ1Y3R1cmUtPmlubGluZUNhcGFj
aXR5KCkgOiAwKQogewogfQogCi12b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCB1aW50MzJfdCBpbmRleGVkTGVuZ3RoLCB1aW50MzJfdCBlbmRTdHJ1
Y3R1cmVQcm9wZXJ0eUluZGV4LCBSZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiYmIGlkZW50
aWZpZXJzKQordm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4mJiBpZGVudGlmaWVycykKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAKICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6
OlByb3BlcnR5TmFtZVZlY3RvciYgdmVjdG9yID0gaWRlbnRpZmllcnMtPnByb3BlcnR5TmFtZVZl
Y3RvcigpOwotCi0gICAgbV9pbmRleGVkTGVuZ3RoID0gaW5kZXhlZExlbmd0aDsKLSAgICBtX2Vu
ZFN0cnVjdHVyZVByb3BlcnR5SW5kZXggPSBlbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4OwotICAg
IG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXggPSB2ZWN0b3Iuc2l6ZSgpOwotCi0gICAgewotICAg
ICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsIGNlbGxMb2NrKCkp
OwotICAgICAgICBtX3Byb3BlcnR5TmFtZXMucmVzaXplVG9GaXQodmVjdG9yLnNpemUoKSk7Ci0g
ICAgfQorICAgIEFTU0VSVChtX2VuZEdlbmVyaWNQcm9wZXJ0eUluZGV4ID09IHZlY3Rvci5zaXpl
KCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciA9IHZlY3RvcltpXTsKLSAgICAg
ICAgbV9wcm9wZXJ0eU5hbWVzW2ldLnNldCh2bSwgdGhpcywganNTdHJpbmcoJnZtLCBpZGVudGlm
aWVyLnN0cmluZygpKSk7CisgICAgICAgIG1fcHJvcGVydHlOYW1lcy5nZXQoKVtpXS5zZXQodm0s
IHRoaXMsIGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOwogICAgIH0KIH0KIAot
dm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQotewot
ICAgIHN0YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpLT5KU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6On5KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IoKTsKLX0KLQogdm9p
ZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4oY2VsbCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6
OnZpc2l0Q2hpbGRyZW4oY2VsbCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKLSAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6
IHRoaXNPYmplY3QtPm1fcHJvcGVydHlOYW1lcykKLSAgICAgICAgdmlzaXRvci5hcHBlbmQocHJv
cGVydHlOYW1lKTsKKyAgICBpZiAoYXV0byogcHJvcGVydHlOYW1lcyA9IHRoaXNPYmplY3QtPm1f
cHJvcGVydHlOYW1lcy5nZXQoKSkgeworICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkocHJv
cGVydHlOYW1lcyk7CisgICAgICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZXMsIHByb3Bl
cnR5TmFtZXMgKyB0aGlzT2JqZWN0LT5zaXplT2ZQcm9wZXJ0eU5hbWVzKCkpOworICAgIH0KICAg
ICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZUNoYWluKTsKIAogICAgIGlm
ICh0aGlzT2JqZWN0LT5jYWNoZWRTdHJ1Y3R1cmVJRCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4
IDQ2MDhjNjNhZGJhY2NmZTJlNzNlYmIxMjdjNTQ2ODU0NjExMTMyYTMuLjEwNzkzMDQ1NjE5ZTI5
MGNkNzE0ZTU4NjFlNzY0OTkwMzg1ZmJhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC0zNCwxNSAr
MzQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIHR5cGVkZWYgSlNDZWxsIEJh
c2U7CisgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0
YWw7CiAKLSAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUoVk0mKTsK
ICAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1
cmUqLCB1aW50MzJfdCwgdWludDMyX3QsIFByb3BlcnR5TmFtZUFycmF5JiYpOwogCi0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7Ci0gICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0NlbGwqKTsKLQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ2VsbFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKQEAgLTUwLDExICs0NiwxMSBAQCBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBK
U1N0cmluZyogcHJvcGVydHlOYW1lQXRJbmRleCh1aW50MzJfdCBpbmRleCkgY29uc3QKKyAgICBK
U1N0cmluZyogcHJvcGVydHlOYW1lQXRJbmRleCh1aW50MzJfdCBpbmRleCkKICAgICB7Ci0gICAg
ICAgIGlmIChpbmRleCA+PSBtX3Byb3BlcnR5TmFtZXMuc2l6ZSgpKQorICAgICAgICBpZiAoaW5k
ZXggPj0gc2l6ZU9mUHJvcGVydHlOYW1lcygpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXNbaW5kZXhdLmdldCgpOworICAgICAgICBy
ZXR1cm4gbV9wcm9wZXJ0eU5hbWVzLmdldCgpW2luZGV4XS5nZXQoKTsKICAgICB9CiAKICAgICBT
dHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90eXBlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX3By
b3RvdHlwZUNoYWluLmdldCgpOyB9CkBAIC03MSw2ICs2Nyw3IEBAIGNsYXNzIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHVpbnQzMl90IGVuZFN0
cnVjdHVyZVByb3BlcnR5SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2VuZFN0cnVjdHVyZVByb3Bl
cnR5SW5kZXg7IH0KICAgICB1aW50MzJfdCBlbmRHZW5lcmljUHJvcGVydHlJbmRleCgpIGNvbnN0
IHsgcmV0dXJuIG1fZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXg7IH0KICAgICB1aW50MzJfdCBjYWNo
ZWRJbmxpbmVDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkSW5saW5lQ2FwYWNpdHk7
IH0KKyAgICB1aW50MzJfdCBzaXplT2ZQcm9wZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1cm4gZW5k
R2VuZXJpY1Byb3BlcnR5SW5kZXgoKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgY2FjaGVkU3Ry
dWN0dXJlSURPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLCBtX2NhY2hlZFN0cnVjdHVyZUlEKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qg
aW5kZXhlZExlbmd0aE9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IsIG1faW5kZXhlZExlbmd0aCk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90
IGVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXhPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgp
OyB9CkBAIC03OCwxOCArNzUsMTggQEAgY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIHB0cmRpZmZfdCBjYWNoZWRJbmxpbmVD
YXBhY2l0eU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IsIG1fY2FjaGVkSW5saW5lQ2FwYWNpdHkpOyB9CiAgICAgc3RhdGljIHB0cmRpZmZf
dCBjYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yT2Zmc2V0KCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLCBtX3Byb3BlcnR5TmFt
ZXMpICsgVmVjdG9yPFdyaXRlQmFycmllcjxKU1N0cmluZz4+OjpkYXRhTWVtb3J5T2Zmc2V0KCk7
CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
LCBtX3Byb3BlcnR5TmFtZXMpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogcHJpdmF0ZToKLSAgICBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IoVk0mLCBTdHJ1Y3R1cmVJRCwgdWludDMyX3QpOwotICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oVk0mLCB1aW50MzJfdCwgdWludDMyX3QsIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJh
eURhdGE+JiYpOworICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcihWTSYsIFN0cnVjdHVyZSos
IHVpbnQzMl90LCB1aW50MzJfdCwgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiosIHVuc2lnbmVkKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0
YT4mJik7CiAKLSAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPj4gbV9wcm9wZXJ0eU5h
bWVzOwotICAgIFN0cnVjdHVyZUlEIG1fY2FjaGVkU3RydWN0dXJlSUQ7CisgICAgQXV4aWxpYXJ5
QmFycmllcjxXcml0ZUJhcnJpZXI8SlNTdHJpbmc+Kj4gbV9wcm9wZXJ0eU5hbWVzOwogICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmVDaGFpbj4gbV9wcm90b3R5cGVDaGFpbjsKKyAgICBTdHJ1Y3R1
cmVJRCBtX2NhY2hlZFN0cnVjdHVyZUlEOwogICAgIHVpbnQzMl90IG1faW5kZXhlZExlbmd0aDsK
ICAgICB1aW50MzJfdCBtX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXg7CiAgICAgdWludDMyX3Qg
bV9lbmRHZW5lcmljUHJvcGVydHlJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAppbmRleCBjOTU4NzQwNjA2NTI4YjRkNWMxOTM5YjYzNzFkMzk1MDg4OWQ4ZWVkLi5jMDM5MTgw
ZTc0MTQwNGRkMDIxOTBmZTJkMzI4NDFlYTU2NzdhNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwCkBAIC0xMzA4LDYgKzEzMDgsMTUgQEAgSlNDZWxsKiBWTTo6c2VudGluZWxN
YXBCdWNrZXRTbG93KCkKICAgICByZXR1cm4gc2VudGluZWw7CiB9CiAKK0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvciogVk06OmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvclNsb3coKQoreworICAg
IEFTU0VSVCghbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IpOworICAgIFByb3BlcnR5TmFt
ZUFycmF5IHByb3BlcnR5TmFtZXModGhpcywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJp
dmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOworICAgIGF1dG8qIGVudW1lcmF0b3IgPSBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgMCwgMCwgV1RGTW92ZShw
cm9wZXJ0eU5hbWVzKSk7CisgICAgbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KCp0
aGlzLCBlbnVtZXJhdG9yKTsKKyAgICByZXR1cm4gZW51bWVyYXRvcjsKK30KKwogSlNHbG9iYWxP
YmplY3QqIFZNOjp2bUVudHJ5R2xvYmFsT2JqZWN0KGNvbnN0IENhbGxGcmFtZSogY2FsbEZyYW1l
KSBjb25zdAogewogICAgIGlmIChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5pc0dsb2JhbEV4ZWMo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggODI0NjJlMWRmZmExNWM4Njhl
YThhN2Q3ZjYyOTQ3MDFiMDhiMWI3YS4uNjkwMDQwZGExZDMxOTgzNjExZjc3NzQ3MGY4NGE3M2I4
MDQ3Mzg1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0xMjMsNiArMTIzLDcg
QEAgY2xhc3MgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbjsKIGNsYXNzIEpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlOwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBjbGFzcyBKU09i
amVjdDsKK2NsYXNzIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjsKIGNsYXNzIEpTUnVuTG9vcFRp
bWVyOwogY2xhc3MgSlNTdHJpbmdIZWFwQ2VsbFR5cGU7CiBjbGFzcyBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrSGVhcENlbGxUeXBlOwpAQCAtNTQ1LDcgKzU0Niw3IEBAIGNsYXNzIFZNIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZN
PiB7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZTsKICAgICBT
dHJvbmc8U3RydWN0dXJlPiBtX21hcEl0ZXJhdG9yU3RydWN0dXJlOwogCi0gICAgU3Ryb25nPEpT
Q2VsbD4gZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOworICAgIFN0cm9uZzxKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I+IG1fZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogCiAgICAgU3Ry
b25nPEpTQ2VsbD4gbV9zZW50aW5lbFNldEJ1Y2tldDsKICAgICBTdHJvbmc8SlNDZWxsPiBtX3Nl
bnRpbmVsTWFwQnVja2V0OwpAQCAtNTk4LDYgKzU5OSwxMyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4g
ewogICAgICAgICByZXR1cm4gc2VudGluZWxNYXBCdWNrZXRTbG93KCk7CiAgICAgfQogCisgICAg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKQor
ICAgIHsKKyAgICAgICAgaWYgKExJS0VMWShtX2VtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvcikp
CisgICAgICAgICAgICByZXR1cm4gbV9lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCk7
CisgICAgICAgIHJldHVybiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3JTbG93KCk7CisgICAg
fQorCiAgICAgV2Vha0dDTWFwPFN5bWJvbEltcGwqLCBTeW1ib2wsIFB0ckhhc2g8U3ltYm9sSW1w
bCo+PiBzeW1ib2xJbXBsVG9TeW1ib2xNYXA7CiAKICAgICBlbnVtIGNsYXNzIERlbGV0ZVByb3Bl
cnR5TW9kZSB7CkBAIC05NTMsNiArOTYxLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBK
U19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIG1hcEl0ZXJhdG9yU3RydWN0dXJlU2xvdygpOwog
ICAgIEpTQ2VsbCogc2VudGluZWxTZXRCdWNrZXRTbG93KCk7CiAgICAgSlNDZWxsKiBzZW50aW5l
bE1hcEJ1Y2tldFNsb3coKTsKKyAgICBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVtcHR5UHJv
cGVydHlOYW1lRW51bWVyYXRvclNsb3coKTsKIAogICAgIHZvaWQgdXBkYXRlU3RhY2tMaW1pdHMo
KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCAwNGQwMTFhZDgxYjJiOWFlOTU0MGI3YzMwMTE2NjcxYWNkMzJiZGFjLi41N2M1ZjFhNmIw
Y2NkMzkyMmUyYjNkNzY2M2VmZmZiYjIzNjMwNGRhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA3LTI2
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gUG90
ZW50aWFsIEdDIGZpeCBmb3IgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9mb3ItaW4tc3RyZXNz
LmpzOiBBZGRlZC4KKyAgICAgICAgKGtleXMpOgorCiAyMDE5LTA3LTI1ICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBMZWdhY3kgbnVtZXJpYyBsaXRl
cmFscyBzaG91bGQgbm90IHBlcm1pdCBzZXBhcmF0b3JzIG9yIEJpZ0ludApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvZm9yLWluLXN0cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1z
dHJlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdjZDQwNTU2ZWE0ZTk1YjdiZTFjZWJiNWU1YjUyOTE5ZGZm
NTJhMAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1zdHJlc3MuanMK
QEAgLTAsMCArMSwyOSBAQAordmFyIGNvdW50ZXIgPSAwOworZnVuY3Rpb24ga2V5cyhhLCBiLCBj
KSB7CisgICAgZm9yICh2YXIgaSBpbiBhKSB7CisgICAgICAgIGZvciAodmFyIGogaW4gYikgewor
ICAgICAgICAgICAgZm9yICh2YXIgayBpbiBjKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisgICAgaWYgKCgrK2NvdW50ZXIpICUgMTAwMCA9PT0gMCkKKyAgICAgICAgZ2MoKTsK
K30KK25vSW5saW5lKGtleXMpOworCit2YXIgZGljdGlvbmFyeSA9IHsKKyAgICAwOiAyLAorICAg
ICJIZXkiOiAiSGVsbG8iLAorICAgICJXb3JsZCI6IDMyLjQsCisgICAgImRlbGV0ZWQiOiAyMCwK
K307CitkZWxldGUgZGljdGlvbmFyeVsiZGVsZXRlZCJdOworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkgeworICAgIGtleXMoW10sIFsyMF0sIFsiSGV5Il0pOworICAgIGtleXMoWyJPSyIs
IDMwXSwgeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgW10pOworICAgIGtleXMoWyJPSyIsIDMwXSwg
eyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgWzQyXSk7CisgICAga2V5cyhbIk9LIiwgMzBdLCBbXSwg
eyBIZWxsbzogMCwgV29ybGQ6IDIgfSk7CisgICAga2V5cyhbIk9LIiwgMzBdLCBbMi41LCAzLjdd
LCBkaWN0aW9uYXJ5KTsKKyAgICBrZXlzKGRpY3Rpb25hcnksIHsgSGVsbG86IDAsIFdvcmxkOiAy
IH0sIGRpY3Rpb25hcnkpOworICAgIGtleXMoeyBIZWxsbzogMCwgV29ybGQ6IDIgfSwgZGljdGlv
bmFyeSwgeyBIZWxsbzogMCwgV29ybGQ6IDIsIDM6NDIgfSk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>