<?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>201555</bug_id>
          
          <creation_ts>2019-09-06 13:23:24 -0700</creation_ts>
          <short_desc>Revert to pre-r243144 scavenging behavior for macOS</short_desc>
          <delta_ts>2019-09-09 15:38:43 -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>bmalloc</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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ggaren</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1568656</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-06 13:23:24 -0700</bug_when>
    <thetext>Various tests seem to indicate that the code before r243144 is actually better for Macs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568659</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-06 13:24:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/53995557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568661</commentid>
    <comment_count>2</comment_count>
      <attachid>378225</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-06 13:27:23 -0700</bug_when>
    <thetext>Created attachment 378225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568665</commentid>
    <comment_count>3</comment_count>
      <attachid>378226</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-06 13:42:19 -0700</bug_when>
    <thetext>Created attachment 378226
Updated patch with &quot;Scavenger::verbose&quot; flag set to false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568684</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-06 14:05:45 -0700</bug_when>
    <thetext>(In reply to Michael Saboff from comment #0)
&gt; Various tests seem to indicate that the code before r243144 is actually
&gt; better for Macs.

Which tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568686</commentid>
    <comment_count>5</comment_count>
      <attachid>378226</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-06 14:08:42 -0700</bug_when>
    <thetext>Comment on attachment 378226
Updated patch with &quot;Scavenger::verbose&quot; flag set to false

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

Why so much special casing on platform(MAC) vs not? Was that really in the original code?

&gt; Source/bmalloc/ChangeLog:7
&gt; +

you should say what and why

&gt; Source/bmalloc/bmalloc/LargeRange.h:170
&gt; +#if !BPLATFORM(MAC)
&gt; +        , mergedUsedSinceLastScavenge
&gt; +#endif

do we still use this bit? Why just on iOS? Seems weird

&gt; Source/bmalloc/bmalloc/Scavenger.cpp:226
&gt; +#if BPLATFORM(MAC)
&gt; +                PerProcess&lt;PerHeapKind&lt;Heap&gt;&gt;::get()-&gt;at(i).scavenge(lock, decommitter);
&gt; +#else
&gt;                  PerProcess&lt;PerHeapKind&lt;Heap&gt;&gt;::get()-&gt;at(i).scavenge(lock, decommitter, deferredDecommits);
&gt; +#endif

what&apos;s different about these two code paths per platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568733</commentid>
    <comment_count>6</comment_count>
      <attachid>378226</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-06 15:25:55 -0700</bug_when>
    <thetext>Comment on attachment 378226
Updated patch with &quot;Scavenger::verbose&quot; flag set to false

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

&gt;&gt; Source/bmalloc/ChangeLog:7
&gt;&gt; +
&gt; 
&gt; you should say what and why

I&apos;ll add &quot;The change in r243144 regressed internal power metrics for some Mac models.&quot;

&gt;&gt; Source/bmalloc/bmalloc/LargeRange.h:170
&gt;&gt; +#endif
&gt; 
&gt; do we still use this bit? Why just on iOS? Seems weird

The used bits are integral to the current code and required for the non-Mac code paths.

&gt;&gt; Source/bmalloc/bmalloc/Scavenger.cpp:226
&gt;&gt; +#endif
&gt; 
&gt; what&apos;s different about these two code paths per platform?

The extra &quot;deferredDecommits&quot; reference parameter, which is used in the non-Mac code below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568760</commentid>
    <comment_count>7</comment_count>
      <attachid>378226</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-06 16:20:59 -0700</bug_when>
    <thetext>Comment on attachment 378226
Updated patch with &quot;Scavenger::verbose&quot; flag set to false

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569319</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-09 15:38:43 -0700</bug_when>
    <thetext>Committed r249670: &lt;https://trac.webkit.org/changeset/249670&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378225</attachid>
            <date>2019-09-06 13:27:23 -0700</date>
            <delta_ts>2019-09-06 13:42:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>201555.patch</filename>
            <type>text/plain</type>
            <size>23465</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA5LTA2ICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJldmVydCB0byBwcmUtcjI0
MzE0NCBzY2F2ZW5naW5nIGJlaGF2aW9yIGZvciBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBibWFsbG9jL0hlYXAuY3BwOgorICAgICAgICAo
Ym1hbGxvYzo6SGVhcDo6c2NhdmVuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6c2NhdmVu
Z2VUb0hpZ2hXYXRlcm1hcmspOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6YWxsb2NhdGVTbWFs
bENodW5rKToKKyAgICAgICAgKGJtYWxsb2M6OkhlYXA6OmFsbG9jYXRlU21hbGxQYWdlKToKKyAg
ICAgICAgKGJtYWxsb2M6OkhlYXA6OmFsbG9jYXRlTGFyZ2UpOgorICAgICAgICAqIGJtYWxsb2Mv
SGVhcC5oOgorICAgICAgICAqIGJtYWxsb2MvSXNvRGlyZWN0b3J5Lmg6CisgICAgICAgICogYm1h
bGxvYy9Jc29EaXJlY3RvcnlJbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9jOjpwYXNzZWROdW1Q
YWdlcz46OnRha2VGaXJzdEVsaWdpYmxlKToKKyAgICAgICAgKGJtYWxsb2M6OnBhc3NlZE51bVBh
Z2VzPjo6c2NhdmVuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6cGFzc2VkTnVtUGFnZXM+OjpzY2F2
ZW5nZVRvSGlnaFdhdGVybWFyayk6CisgICAgICAgICogYm1hbGxvYy9Jc29IZWFwSW1wbC5oOgor
ICAgICAgICAqIGJtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9j
OjpJc29IZWFwSW1wbDxDb25maWc+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayk6CisgICAgICAg
ICogYm1hbGxvYy9MYXJnZU1hcC5jcHA6CisgICAgICAgIChibWFsbG9jOjpMYXJnZU1hcDo6YWRk
KToKKyAgICAgICAgKiBibWFsbG9jL0xhcmdlUmFuZ2UuaDoKKyAgICAgICAgKGJtYWxsb2M6Okxh
cmdlUmFuZ2U6OkxhcmdlUmFuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6bWVyZ2UpOgorICAgICAg
ICAqIGJtYWxsb2MvU2NhdmVuZ2VyLmNwcDoKKyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6
U2NhdmVuZ2VyKToKKyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6dGltZVNpbmNlTGFzdFBh
cnRpYWxTY2F2ZW5nZSk6CisgICAgICAgIChibWFsbG9jOjpTY2F2ZW5nZXI6OnNjYXZlbmdlKToK
KyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6cGFydGlhbFNjYXZlbmdlKToKKyAgICAgICAg
KGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCk6CisgICAgICAgICogYm1hbGxvYy9T
Y2F2ZW5nZXIuaDoKKyAgICAgICAgKiBibWFsbG9jL1NtYWxsUGFnZS5oOgorCiAyMDE5LTA5LTA2
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRmFpbHVyZUFj
dGlvbiBldmVyeXdoZXJlIGluIGJtYWxsb2MgaW5zdGVhZCBvZiBhIGNyYXNoT25GYWlsdXJlIGJv
b2xlYW4uCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDI0OTU4OCkKKysr
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSwx
OCArMTc1LDI0IEBAIHZvaWQgSGVhcDo6ZGVjb21taXRMYXJnZVJhbmdlKHN0ZDo6bG9ja18KICNl
bmRpZgogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgSGVhcDo6c2NhdmVuZ2Uoc3RkOjps
b2NrX2d1YXJkPE11dGV4PiYgbG9jaywgQnVsa0RlY29tbWl0JiBkZWNvbW1pdHRlcikKKyNlbHNl
CiB2b2lkIEhlYXA6OnNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mIGxvY2ssIEJ1bGtE
ZWNvbW1pdCYgZGVjb21taXR0ZXIsIHNpemVfdCYgZGVmZXJyZWREZWNvbW1pdHMpCisjZW5kaWYK
IHsKICAgICBmb3IgKGF1dG8mIGxpc3QgOiBtX2ZyZWVQYWdlcykgewogICAgICAgICBmb3IgKGF1
dG8qIGNodW5rIDogbGlzdCkgewogICAgICAgICAgICAgZm9yIChhdXRvKiBwYWdlIDogY2h1bmst
PmZyZWVQYWdlcygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFwYWdlLT5oYXNQaHlzaWNhbFBh
Z2VzKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworI2lmICFCUExBVEZPUk0oTUFD
KQogICAgICAgICAgICAgICAgIGlmIChwYWdlLT51c2VkU2luY2VMYXN0U2NhdmVuZ2UoKSkgewog
ICAgICAgICAgICAgICAgICAgICBwYWdlLT5jbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpOwog
ICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZERlY29tbWl0cysrOwogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CisjZW5kaWYKIAogICAgICAgICAgICAg
ICAgIHNpemVfdCBwYWdlU2l6ZSA9IGJtYWxsb2M6OnBhZ2VTaXplKCZsaXN0IC0gJm1fZnJlZVBh
Z2VzWzBdKTsKICAgICAgICAgICAgICAgICBzaXplX3QgZGVjb21taXRTaXplID0gcGh5c2ljYWxQ
YWdlU2l6ZVNsb3BweShwYWdlLT5iZWdpbigpLT5iZWdpbigpLCBwYWdlU2l6ZSk7CkBAIC0yMDcs
MTUgKzIxMywzNyBAQCB2b2lkIEhlYXA6OnNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRlCiAg
ICAgfQogCiAgICAgZm9yIChMYXJnZVJhbmdlJiByYW5nZSA6IG1fbGFyZ2VGcmVlKSB7CisjaWYg
QlBMQVRGT1JNKE1BQykKKyAgICAgICAgbV9oaWdoV2F0ZXJtYXJrID0gc3RkOjptaW4obV9oaWdo
V2F0ZXJtYXJrLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmFuZ2UuYmVnaW4oKSkpOworI2Vsc2UKICAg
ICAgICAgaWYgKHJhbmdlLnVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpKSB7CiAgICAgICAgICAgICBy
YW5nZS5jbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpOwogICAgICAgICAgICAgZGVmZXJyZWRE
ZWNvbW1pdHMrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgZGVjb21taXRMYXJnZVJhbmdlKGxvY2ssIHJhbmdlLCBkZWNvbW1pdHRlcik7CiAgICAg
fQorCisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBtX2ZyZWVhYmxlTWVtb3J5ID0gMDsKKyNlbmRp
ZgogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgSGVhcDo6c2NhdmVuZ2VUb0hpZ2hXYXRl
cm1hcmsoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYgbG9jaywgQnVsa0RlY29tbWl0JiBkZWNvbW1p
dHRlcikKK3sKKyAgICB2b2lkKiBuZXdIaWdoV2F0ZXJNYXJrID0gbnVsbHB0cjsKKyAgICBmb3Ig
KExhcmdlUmFuZ2UmIHJhbmdlIDogbV9sYXJnZUZyZWUpIHsKKyAgICAgICAgaWYgKHJhbmdlLmJl
Z2luKCkgPD0gbV9oaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgbmV3SGlnaFdhdGVyTWFyayA9
IHN0ZDo6bWluKG5ld0hpZ2hXYXRlck1hcmssIHN0YXRpY19jYXN0PHZvaWQqPihyYW5nZS5iZWdp
bigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlY29tbWl0TGFyZ2VSYW5nZShsb2Nr
LCByYW5nZSwgZGVjb21taXR0ZXIpOworICAgIH0KKyAgICBtX2hpZ2hXYXRlcm1hcmsgPSBuZXdI
aWdoV2F0ZXJNYXJrOworfQorI2VuZGlmCisKIHZvaWQgSGVhcDo6ZGVhbGxvY2F0ZUxpbmVDYWNo
ZShzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYsIExpbmVDYWNoZSYgbGluZUNhY2hlKQogewogICAg
IGZvciAoYXV0byYgbGlzdCA6IGxpbmVDYWNoZSkgewpAQCAtMjQ4LDcgKzI3Niw5IEBAIHZvaWQg
SGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6dW5pcXUKIAogICAgICAgICBmb3JFYWNoUGFn
ZShjaHVuaywgcGFnZVNpemUsIFsmXShTbWFsbFBhZ2UqIHBhZ2UpIHsKICAgICAgICAgICAgIHBh
Z2UtPnNldEhhc1BoeXNpY2FsUGFnZXModHJ1ZSk7CisjaWYgIUJQTEFURk9STShNQUMpCiAgICAg
ICAgICAgICBwYWdlLT5zZXRVc2VkU2luY2VMYXN0U2NhdmVuZ2UoKTsKKyNlbmRpZgogICAgICAg
ICAgICAgcGFnZS0+c2V0SGFzRnJlZUxpbmVzKGxvY2ssIHRydWUpOwogICAgICAgICAgICAgY2h1
bmstPmZyZWVQYWdlcygpLnB1c2gocGFnZSk7CiAgICAgICAgIH0pOwpAQCAtMzMxLDcgKzM2MSw5
IEBAIFNtYWxsUGFnZSogSGVhcDo6YWxsb2NhdGVTbWFsbFBhZ2Uoc3RkOjoKICAgICAgICAgICAg
IG1fcGh5c2ljYWxQYWdlTWFwLmNvbW1pdChwYWdlLT5iZWdpbigpLT5iZWdpbigpLCBwYWdlU2l6
ZSk7CiAjZW5kaWYKICAgICAgICAgfQorI2lmICFCUExBVEZPUk0oTUFDKQogICAgICAgICBwYWdl
LT5zZXRVc2VkU2luY2VMYXN0U2NhdmVuZ2UoKTsKKyNlbmRpZgogCiAgICAgICAgIHJldHVybiBw
YWdlOwogICAgIH0oKTsKQEAgLTYwNyw2ICs2MzksOSBAQCB2b2lkKiBIZWFwOjphbGxvY2F0ZUxh
cmdlKHN0ZDo6dW5pcXVlX2xvCiAgICAgbV9mcmVlYWJsZU1lbW9yeSAtPSByYW5nZS50b3RhbFBo
eXNpY2FsU2l6ZSgpOwogCiAgICAgdm9pZCogcmVzdWx0ID0gc3BsaXRBbmRBbGxvY2F0ZShsb2Nr
LCByYW5nZSwgYWxpZ25tZW50LCBzaXplKS5iZWdpbigpOworI2lmIEJQTEFURk9STShNQUMpCisg
ICAgbV9oaWdoV2F0ZXJtYXJrID0gc3RkOjptYXgobV9oaWdoV2F0ZXJtYXJrLCByZXN1bHQpOwor
I2VuZGlmCiAgICAgQVNTRVJUX09SX1JFVFVSTl9PTl9GQUlMVVJFKHJlc3VsdCk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgJKHJldmlzaW9uIDI0OTU4OCkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3
ICs3NiwxMiBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGxhcmdlU2l6ZShzdGQ6OnVuaXF1ZV9sb2Nr
PE11dGV4PiYsIHZvaWQqKTsKICAgICB2b2lkIHNocmlua0xhcmdlKHN0ZDo6dW5pcXVlX2xvY2s8
TXV0ZXg+JiwgY29uc3QgUmFuZ2UmLCBzaXplX3QpOwogCisjaWYgQlBMQVRGT1JNKE1BQykKKyAg
ICB2b2lkIHNjYXZlbmdlVG9IaWdoV2F0ZXJtYXJrKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mLCBC
dWxrRGVjb21taXQmKTsKKyAgICB2b2lkIHNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4m
LCBCdWxrRGVjb21taXQmKTsKKyNlbHNlCiAgICAgdm9pZCBzY2F2ZW5nZShzdGQ6OmxvY2tfZ3Vh
cmQ8TXV0ZXg+JiwgQnVsa0RlY29tbWl0Jiwgc2l6ZV90JiBkZWZlcnJlZERlY29tbWl0cyk7Cisj
ZW5kaWYKICAgICB2b2lkIHNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mLCBCdWxrRGVj
b21taXQmLCBzaXplX3QmIGZyZWVkLCBzaXplX3QgZ29hbCk7CiAKICAgICBzaXplX3QgZnJlZWFi
bGVNZW1vcnkoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYpOwpAQCAtMTUyLDYgKzE1NywxMCBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRV9QSFlTSUNBTF9QQUdFX01BUCAKICAgICBQaHlzaWNhbFBhZ2VN
YXAgbV9waHlzaWNhbFBhZ2VNYXA7CiAjZW5kaWYKKyAgICAKKyNpZiBCUExBVEZPUk0oTUFDKQor
ICAgIHZvaWQqIG1faGlnaFdhdGVybWFyayB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogaW5s
aW5lIHZvaWQgSGVhcDo6YWxsb2NhdGVTbWFsbEJ1bXBSYW5nZXMoCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0lzb0RpcmVjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvSXNvRGlyZWN0b3J5LmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDkg
QEAgcHVibGljOgogICAgIC8vIEl0ZXJhdGUgb3ZlciBhbGwgZW1wdHkgYW5kIGNvbW1pdHRlZCBw
YWdlcywgYW5kIHB1dCB0aGVtIGludG8gdGhlIHZlY3Rvci4gVGhpcyBhbHNvIHJlY29yZHMgdGhl
CiAgICAgLy8gcGFnZXMgYXMgYmVpbmcgZGVjb21taXR0ZWQuIEl0J3MgdGhlIGNhbGxlcidzIGpv
YiB0byBkbyB0aGUgYWN0dWFsIGRlY29tbWl0dGluZy4KICAgICB2b2lkIHNjYXZlbmdlKFZlY3Rv
cjxEZWZlcnJlZERlY29tbWl0PiYpOworI2lmIEJQTEFURk9STShNQUMpCisgICAgdm9pZCBzY2F2
ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVmZXJyZWREZWNvbW1pdD4mKTsKKyNlbmRpZgog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KICAgICB2b2lkIGZvckVhY2hDb21taXR0ZWRQ
YWdlKGNvbnN0IEZ1bmMmKTsKQEAgLTg5LDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBCaXRzPG51
bVBhZ2VzPiBtX2NvbW1pdHRlZDsKICAgICBzdGQ6OmFycmF5PElzb1BhZ2U8Q29uZmlnPiosIG51
bVBhZ2VzPiBtX3BhZ2VzOwogICAgIHVuc2lnbmVkIG1fZmlyc3RFbGlnaWJsZU9yRGVjb21taXR0
ZWQgeyAwIH07CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICB1bnNpZ25lZCBtX2hpZ2hXYXRlcm1h
cmsgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxsb2MKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5SW5saW5lcy5oCShyZXZpc2lvbiAy
NDk1ODgpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0RpcmVjdG9yeUlubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsMTAgQEAgRWxpZ2liaWxpdHlSZXN1bHQ8Q29uZmln
PiBJc29EaXJlY3Rvcnk8QwogICAgIGlmIChwYWdlSW5kZXggPj0gbnVtUGFnZXMpCiAgICAgICAg
IHJldHVybiBFbGlnaWJpbGl0eUtpbmQ6OkZ1bGw7CiAKKyNpZiBCUExBVEZPUk0oTUFDKQorICAg
IG1faGlnaFdhdGVybWFyayA9IHN0ZDo6bWF4KHBhZ2VJbmRleCwgbV9oaWdoV2F0ZXJtYXJrKTsK
KyNlbmRpZgorCiAgICAgU2NhdmVuZ2VyJiBzY2F2ZW5nZXIgPSAqU2NhdmVuZ2VyOjpnZXQoKTsK
ICAgICBzY2F2ZW5nZXIuZGlkU3RhcnRHcm93aW5nKCk7CiAgICAgCkBAIC0xNDQsNyArMTQ4LDIz
IEBAIHZvaWQgSXNvRGlyZWN0b3J5PENvbmZpZywgcGFzc2VkTnVtUGFnZXMKICAgICAgICAgWyZd
IChzaXplX3QgaW5kZXgpIHsKICAgICAgICAgICAgIHNjYXZlbmdlUGFnZShpbmRleCwgZGVjb21t
aXRzKTsKICAgICAgICAgfSk7CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBtX2hpZ2hXYXRlcm1h
cmsgPSAwOworI2VuZGlmCit9CisKKyNpZiBCUExBVEZPUk0oTUFDKQordGVtcGxhdGU8dHlwZW5h
bWUgQ29uZmlnLCB1bnNpZ25lZCBwYXNzZWROdW1QYWdlcz4KK3ZvaWQgSXNvRGlyZWN0b3J5PENv
bmZpZywgcGFzc2VkTnVtUGFnZXM+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVm
ZXJyZWREZWNvbW1pdD4mIGRlY29tbWl0cykKK3sKKyAgICAobV9lbXB0eSAmIG1fY29tbWl0dGVk
KS5mb3JFYWNoU2V0Qml0KAorICAgICAgICBbJl0gKHNpemVfdCBpbmRleCkgeworICAgICAgICAg
ICAgaWYgKGluZGV4ID4gbV9oaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgICAgIHNjYXZlbmdl
UGFnZShpbmRleCwgZGVjb21taXRzKTsKKyAgICAgICAgfSk7CisgICAgbV9oaWdoV2F0ZXJtYXJr
ID0gMDsKIH0KKyNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25maWcsIHVuc2lnbmVkIHBh
c3NlZE51bVBhZ2VzPgogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSXNvSGVhcEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0lzb0hlYXBJbXBsLmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvSXNvSGVhcEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+SXNvSGVhcEltcGxCYXNlKCk7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHNjYXZlbmdlKFZlY3RvcjxEZWZlcnJlZERlY29tbWl0PiYpID0gMDsKKyNpZiBCUExB
VEZPUk0oTUFDKQorICAgIHZpcnR1YWwgdm9pZCBzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0
b3I8RGVmZXJyZWREZWNvbW1pdD4mKSA9IDA7CisjZW5kaWYKICAgICB2aXJ0dWFsIHNpemVfdCBm
cmVlYWJsZU1lbW9yeSgpID0gMDsKICAgICB2aXJ0dWFsIHNpemVfdCBmb290cHJpbnQoKSA9IDA7
CiAgICAgCkBAIC04Nyw2ICs5MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEJlY29tZUVsaWdp
YmxlT3JEZWNvbW1pdGVkKElzb0RpcmVjdG9yeTxDb25maWcsIElzb0RpcmVjdG9yeVBhZ2U8Q29u
ZmlnPjo6bnVtUGFnZXM+Kik7CiAgICAgCiAgICAgdm9pZCBzY2F2ZW5nZShWZWN0b3I8RGVmZXJy
ZWREZWNvbW1pdD4mKSBvdmVycmlkZTsKKyNpZiBCUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2Nh
dmVuZ2VUb0hpZ2hXYXRlcm1hcmsoVmVjdG9yPERlZmVycmVkRGVjb21taXQ+Jikgb3ZlcnJpZGU7
CisjZW5kaWYKIAogICAgIHNpemVfdCBmcmVlYWJsZU1lbW9yeSgpIG92ZXJyaWRlOwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXBJbXBsSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmgJKHJldmlzaW9u
IDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsMjEgQEAgdm9pZCBJc29IZWFwSW1wbDxDb25m
aWc+OjpzY2F2ZW5nZShWZWN0bwogICAgIG1fZGlyZWN0b3J5SGlnaFdhdGVybWFyayA9IDA7CiB9
CiAKKyNpZiBCUExBVEZPUk0oTUFDKQordGVtcGxhdGU8dHlwZW5hbWUgQ29uZmlnPgordm9pZCBJ
c29IZWFwSW1wbDxDb25maWc+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVmZXJy
ZWREZWNvbW1pdD4mIGRlY29tbWl0cykKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+IGxv
Y2tlcih0aGlzLT5sb2NrKTsKKyAgICBpZiAoIW1fZGlyZWN0b3J5SGlnaFdhdGVybWFyaykKKyAg
ICAgICAgbV9pbmxpbmVEaXJlY3Rvcnkuc2NhdmVuZ2VUb0hpZ2hXYXRlcm1hcmsoZGVjb21taXRz
KTsKKyAgICBmb3IgKElzb0RpcmVjdG9yeVBhZ2U8Q29uZmlnPiogcGFnZSA9IG1faGVhZERpcmVj
dG9yeTsgcGFnZTsgcGFnZSA9IHBhZ2UtPm5leHQpIHsKKyAgICAgICAgaWYgKHBhZ2UtPmluZGV4
KCkgPj0gbV9kaXJlY3RvcnlIaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgcGFnZS0+cGF5bG9h
ZC5zY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhkZWNvbW1pdHMpOworICAgIH0KKyAgICBtX2RpcmVj
dG9yeUhpZ2hXYXRlcm1hcmsgPSAwOworfQorI2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1lIENv
bmZpZz4KIHNpemVfdCBJc29IZWFwSW1wbDxDb25maWc+OjpmcmVlYWJsZU1lbW9yeSgpCiB7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xhcmdlTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xhcmdlTWFwLmNwcAkocmV2aXNpb24gMjQ5NTg4KQorKysg
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9MYXJnZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2
LDcgKzc2LDkgQEAgdm9pZCBMYXJnZU1hcDo6YWRkKGNvbnN0IExhcmdlUmFuZ2UmIHJhbgogICAg
ICAgICBtZXJnZWQgPSBtZXJnZShtZXJnZWQsIG1fZnJlZS5wb3AoaS0tKSk7CiAgICAgfQogCisj
aWYgIUJQTEFURk9STShNQUMpCiAgICAgbWVyZ2VkLnNldFVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgp
OworI2VuZGlmCiAgICAgbV9mcmVlLnB1c2gobWVyZ2VkKTsKIH0KIApJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9MYXJnZVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9MYXJnZVJhbmdlLmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvTGFyZ2VSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNywxMCBAQCBw
dWJsaWM6CiAgICAgICAgIDogUmFuZ2UoKQogICAgICAgICAsIG1fc3RhcnRQaHlzaWNhbFNpemUo
MCkKICAgICAgICAgLCBtX3RvdGFsUGh5c2ljYWxTaXplKDApCisjaWYgIUJQTEFURk9STShNQUMp
CiAgICAgICAgICwgbV9pc0VsaWdpYmxlKHRydWUpCiAgICAgICAgICwgbV91c2VkU2luY2VMYXN0
U2NhdmVuZ2UoZmFsc2UpCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC00NiwxMyArNDgsMjUg
QEAgcHVibGljOgogICAgICAgICA6IFJhbmdlKG90aGVyKQogICAgICAgICAsIG1fc3RhcnRQaHlz
aWNhbFNpemUoc3RhcnRQaHlzaWNhbFNpemUpCiAgICAgICAgICwgbV90b3RhbFBoeXNpY2FsU2l6
ZSh0b3RhbFBoeXNpY2FsU2l6ZSkKKyNpZiAhQlBMQVRGT1JNKE1BQykKICAgICAgICAgLCBtX2lz
RWxpZ2libGUodHJ1ZSkKICAgICAgICAgLCBtX3VzZWRTaW5jZUxhc3RTY2F2ZW5nZShmYWxzZSkK
KyNlbmRpZgogICAgIHsKICAgICAgICAgQkFTU0VSVCh0aGlzLT5zaXplKCkgPj0gdGhpcy0+dG90
YWxQaHlzaWNhbFNpemUoKSk7CiAgICAgICAgIEJBU1NFUlQodGhpcy0+dG90YWxQaHlzaWNhbFNp
emUoKSA+PSB0aGlzLT5zdGFydFBoeXNpY2FsU2l6ZSgpKTsKICAgICB9CiAKKyNpZiBCUExBVEZP
Uk0oTUFDKQorICAgIExhcmdlUmFuZ2Uodm9pZCogYmVnaW4sIHNpemVfdCBzaXplLCBzaXplX3Qg
c3RhcnRQaHlzaWNhbFNpemUsIHNpemVfdCB0b3RhbFBoeXNpY2FsU2l6ZSkKKyAgICAgICAgOiBS
YW5nZShiZWdpbiwgc2l6ZSkKKyAgICAgICAgLCBtX3N0YXJ0UGh5c2ljYWxTaXplKHN0YXJ0UGh5
c2ljYWxTaXplKQorICAgICAgICAsIG1fdG90YWxQaHlzaWNhbFNpemUodG90YWxQaHlzaWNhbFNp
emUpCisgICAgeworICAgICAgICBCQVNTRVJUKHRoaXMtPnNpemUoKSA+PSB0aGlzLT50b3RhbFBo
eXNpY2FsU2l6ZSgpKTsKKyAgICAgICAgQkFTU0VSVCh0aGlzLT50b3RhbFBoeXNpY2FsU2l6ZSgp
ID49IHRoaXMtPnN0YXJ0UGh5c2ljYWxTaXplKCkpOworICAgIH0KKyNlbHNlCiAgICAgTGFyZ2VS
YW5nZSh2b2lkKiBiZWdpbiwgc2l6ZV90IHNpemUsIHNpemVfdCBzdGFydFBoeXNpY2FsU2l6ZSwg
c2l6ZV90IHRvdGFsUGh5c2ljYWxTaXplLCBib29sIHVzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IGZh
bHNlKQogICAgICAgICA6IFJhbmdlKGJlZ2luLCBzaXplKQogICAgICAgICAsIG1fc3RhcnRQaHlz
aWNhbFNpemUoc3RhcnRQaHlzaWNhbFNpemUpCkBAIC02Myw2ICs3Nyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQkFTU0VSVCh0aGlzLT5zaXplKCkgPj0gdGhpcy0+dG90YWxQaHlzaWNhbFNpemUoKSk7
CiAgICAgICAgIEJBU1NFUlQodGhpcy0+dG90YWxQaHlzaWNhbFNpemUoKSA+PSB0aGlzLT5zdGFy
dFBoeXNpY2FsU2l6ZSgpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFJldHVybnMgYSBsb3dl
ciBib3VuZCBvbiBwaHlzaWNhbCBzaXplIGF0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuIFJhbmdl
cyB0aGF0CiAgICAgLy8gc3BhbiBub24tcGh5c2ljYWwgZnJhZ21lbnRzIHVzZSB0aGlzIG51bWJl
ciB0byByZW1lbWJlciB0aGUgcGh5c2ljYWwgc2l6ZSBvZgpAQCAtODksOSArMTA0LDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEVsaWdpYmxlKGJvb2wgZWxpZ2libGUpIHsgbV9pc0VsaWdpYmxl
ID0gZWxpZ2libGU7IH0KICAgICBib29sIGlzRWxpZ2liaWxlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0VsaWdpYmxlOyB9CiAKKyNpZiAhQlBMQVRGT1JNKE1BQykKICAgICBib29sIHVzZWRTaW5jZUxh
c3RTY2F2ZW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOyB9CiAg
ICAgdm9pZCBjbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHsgbV91c2VkU2luY2VMYXN0U2Nh
dmVuZ2UgPSBmYWxzZTsgfQogICAgIHZvaWQgc2V0VXNlZFNpbmNlTGFzdFNjYXZlbmdlKCkgeyBt
X3VzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IHRydWU7IH0KKyNlbmRpZgogCiAgICAgYm9vbCBvcGVy
YXRvcjwoY29uc3Qgdm9pZCogb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGJlZ2luKCkgPCBvdGhlcjsg
fQogICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IExhcmdlUmFuZ2UmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBiZWdpbigpIDwgb3RoZXIuYmVnaW4oKTsgfQpAQCAtOTksOCArMTE2LDEyIEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fc3RhcnRQaHlzaWNhbFNpemU7CiAgICAgc2l6ZV90
IG1fdG90YWxQaHlzaWNhbFNpemU7CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBib29sIG1faXNF
bGlnaWJsZSB7IHRydWUgfTsKKyNlbHNlCiAgICAgdW5zaWduZWQgbV9pc0VsaWdpYmxlOiAxOwog
ICAgIHVuc2lnbmVkIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOiAxOworI2VuZGlmCiB9OwogCiBp
bmxpbmUgYm9vbCBjYW5NZXJnZShjb25zdCBMYXJnZVJhbmdlJiBhLCBjb25zdCBMYXJnZVJhbmdl
JiBiKQpAQCAtMTIzLDIyICsxNDQsMzEgQEAgaW5saW5lIGJvb2wgY2FuTWVyZ2UoY29uc3QgTGFy
Z2VSYW5nZSYgYQogaW5saW5lIExhcmdlUmFuZ2UgbWVyZ2UoY29uc3QgTGFyZ2VSYW5nZSYgYSwg
Y29uc3QgTGFyZ2VSYW5nZSYgYikKIHsKICAgICBjb25zdCBMYXJnZVJhbmdlJiBsZWZ0ID0gc3Rk
OjptaW4oYSwgYik7CisjaWYgIUJQTEFURk9STShNQUMpCiAgICAgYm9vbCBtZXJnZWRVc2VkU2lu
Y2VMYXN0U2NhdmVuZ2UgPSBhLnVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHx8IGIudXNlZFNpbmNl
TGFzdFNjYXZlbmdlKCk7CisjZW5kaWYKICAgICBpZiAobGVmdC5zaXplKCkgPT0gbGVmdC5zdGFy
dFBoeXNpY2FsU2l6ZSgpKSB7CiAgICAgICAgIHJldHVybiBMYXJnZVJhbmdlKAogICAgICAgICAg
ICAgbGVmdC5iZWdpbigpLAogICAgICAgICAgICAgYS5zaXplKCkgKyBiLnNpemUoKSwKICAgICAg
ICAgICAgIGEuc3RhcnRQaHlzaWNhbFNpemUoKSArIGIuc3RhcnRQaHlzaWNhbFNpemUoKSwKLSAg
ICAgICAgICAgIGEudG90YWxQaHlzaWNhbFNpemUoKSArIGIudG90YWxQaHlzaWNhbFNpemUoKSwK
LSAgICAgICAgICAgIG1lcmdlZFVzZWRTaW5jZUxhc3RTY2F2ZW5nZSk7CisgICAgICAgICAgICBh
LnRvdGFsUGh5c2ljYWxTaXplKCkgKyBiLnRvdGFsUGh5c2ljYWxTaXplKCkKKyNpZiAhQlBMQVRG
T1JNKE1BQykKKyAgICAgICAgICAgICwgbWVyZ2VkVXNlZFNpbmNlTGFzdFNjYXZlbmdlCisjZW5k
aWYKKyAgICAgICAgKTsKKyAgICAgICAgCiAgICAgfQogCiAgICAgcmV0dXJuIExhcmdlUmFuZ2Uo
CiAgICAgICAgIGxlZnQuYmVnaW4oKSwKICAgICAgICAgYS5zaXplKCkgKyBiLnNpemUoKSwKICAg
ICAgICAgbGVmdC5zdGFydFBoeXNpY2FsU2l6ZSgpLAotICAgICAgICBhLnRvdGFsUGh5c2ljYWxT
aXplKCkgKyBiLnRvdGFsUGh5c2ljYWxTaXplKCksCi0gICAgICAgIG1lcmdlZFVzZWRTaW5jZUxh
c3RTY2F2ZW5nZSk7CisgICAgICAgIGEudG90YWxQaHlzaWNhbFNpemUoKSArIGIudG90YWxQaHlz
aWNhbFNpemUoKQorI2lmICFCUExBVEZPUk0oTUFDKQorICAgICAgICAsIG1lcmdlZFVzZWRTaW5j
ZUxhc3RTY2F2ZW5nZQorI2VuZGlmCisgICAgKTsKIH0KIAogaW5saW5lIHN0ZDo6cGFpcjxMYXJn
ZVJhbmdlLCBMYXJnZVJhbmdlPiBMYXJnZVJhbmdlOjpzcGxpdChzaXplX3QgbGVmdFNpemUpIGNv
bnN0CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NjYXZlbmdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5nZXIuY3BwCShyZXZpc2lvbiAyNDk1
ODgpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NjYXZlbmdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIGJtYWxsb2MgewogCi1zdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSB0cnVlOwogCiBzdHJ1Y3QgUHJpbnRUaW1lIHsKICAgICBQcmludFRpbWUoY29uc3QgY2hh
ciogc3RyKSAKQEAgLTgwLDcgKzgwLDExIEBAIFNjYXZlbmdlcjo6U2NhdmVuZ2VyKHN0ZDo6bG9j
a19ndWFyZDxNdXQKICAgICBkaXNwYXRjaF9yZXN1bWUobV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRj
aFNvdXJjZSk7CiAgICAgZGlzcGF0Y2hfcmVsZWFzZShxdWV1ZSk7CiAjZW5kaWYKKyNpZiBCUExB
VEZPUk0oTUFDKQorICAgIG1fd2FpdFRpbWUgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKG1f
aXNJbk1pbmlNb2RlID8gMjAwIDogMjAwMCk7CisjZWxzZQogICAgIG1fd2FpdFRpbWUgPSBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwKTsKKyNlbmRpZgogCiAgICAgbV90aHJlYWQgPSBzdGQ6
OnRocmVhZCgmdGhyZWFkRW50cnlQb2ludCwgdGhpcyk7CiB9CkBAIC0xNzgsNiArMTgyLDE0IEBA
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgU2NhdmVuZ2VyOjp0aW0KICAgICByZXR1cm4gc3Rk
OjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBtX2xhc3RGdWxsU2NhdmVuZ2VUaW1lKTsKIH0K
IAorI2lmIEJQTEFURk9STShNQUMpCitzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjYXZlbmdl
cjo6dGltZVNpbmNlTGFzdFBhcnRpYWxTY2F2ZW5nZSgpCit7CisgICAgc3RkOjp1bmlxdWVfbG9j
azxNdXRleD4gbG9jayhtdXRleCgpKTsKKyAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9u
X2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9j
azo6bm93KCkgLSBtX2xhc3RQYXJ0aWFsU2NhdmVuZ2VUaW1lKTsKK30KKyNlbmRpZgorCiB2b2lk
IFNjYXZlbmdlcjo6ZW5hYmxlTWluaU1vZGUoKQogewogICAgIG1faXNJbk1pbmlNb2RlID0gdHJ1
ZTsgLy8gV2UganVzdCBzdG9yZSB0byB0aGlzIHJhY2lseS4gVGhlIHNjYXZlbmdlciB0aHJlYWQg
d2lsbCBldmVudHVhbGx5IHBpY2sgdXAgdGhlIHJpZ2h0IHZhbHVlLgpAQCAtMjAwLDE3ICsyMTIs
MjUgQEAgdm9pZCBTY2F2ZW5nZXI6OnNjYXZlbmdlKCkKIAogICAgICAgICB7CiAgICAgICAgICAg
ICBQcmludFRpbWUgcHJpbnRUaW1lKCJcbmZ1bGwgc2NhdmVuZ2UgdW5kZXIgbG9jayB0aW1lIik7
CisjaWYgIUJQTEFURk9STShNQUMpCiAgICAgICAgICAgICBzaXplX3QgZGVmZXJyZWREZWNvbW1p
dHMgPSAwOworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+IGxvY2so
SGVhcDo6bXV0ZXgoKSk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1IZWFwczsg
aS0tOykgewogICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVIZWFwS2luZChzdGF0aWNfY2Fz
dDxIZWFwS2luZD4oaSkpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyNpZiBCUExB
VEZPUk0oTUFDKQorICAgICAgICAgICAgICAgIFBlclByb2Nlc3M8UGVySGVhcEtpbmQ8SGVhcD4+
OjpnZXQoKS0+YXQoaSkuc2NhdmVuZ2UobG9jaywgZGVjb21taXR0ZXIpOworI2Vsc2UKICAgICAg
ICAgICAgICAgICBQZXJQcm9jZXNzPFBlckhlYXBLaW5kPEhlYXA+Pjo6Z2V0KCktPmF0KGkpLnNj
YXZlbmdlKGxvY2ssIGRlY29tbWl0dGVyLCBkZWZlcnJlZERlY29tbWl0cyk7CisjZW5kaWYKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGRlY29tbWl0dGVyLnByb2Nlc3NFYWdlcigpOwogCisj
aWYgIUJQTEFURk9STShNQUMpCiAgICAgICAgICAgICBpZiAoZGVmZXJyZWREZWNvbW1pdHMpCiAg
ICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5Tb29uOworI2VuZGlmCiAgICAgICAg
IH0KIAogICAgICAgICB7CkBAIC0yNTEsNiArMjcxLDc1IEBAIHZvaWQgU2NhdmVuZ2VyOjpzY2F2
ZW5nZSgpCiAgICAgfQogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgU2NhdmVuZ2VyOjpw
YXJ0aWFsU2NhdmVuZ2UoKQoreworICAgIHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+IGxvY2sobV9z
Y2F2ZW5naW5nTXV0ZXgpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgZnByaW50Zihz
dGRlcnIsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiLS1iZWZvcmUgcGFydGlhbCBzY2F2ZW5naW5nLS1cbiIpOworICAgICAg
ICBkdW1wU3RhdHMoKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEJ1bGtEZWNvbW1pdCBkZWNv
bW1pdHRlcjsKKyAgICAgICAgeworICAgICAgICAgICAgUHJpbnRUaW1lIHByaW50VGltZSgiXG5w
YXJ0aWFsU2NhdmVuZ2UgdW5kZXIgbG9jayB0aW1lIik7CisgICAgICAgICAgICBzdGQ6OmxvY2tf
Z3VhcmQ8TXV0ZXg+IGxvY2soSGVhcDo6bXV0ZXgoKSk7CisgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBudW1IZWFwczsgaS0tOykgeworICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVI
ZWFwS2luZChzdGF0aWNfY2FzdDxIZWFwS2luZD4oaSkpKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2VzczxQZXJIZWFw
S2luZDxIZWFwPj46OmdldCgpLT5hdChpKTsKKyAgICAgICAgICAgICAgICBzaXplX3QgZnJlZWFi
bGVNZW1vcnkgPSBoZWFwLmZyZWVhYmxlTWVtb3J5KGxvY2spOworICAgICAgICAgICAgICAgIGlm
IChmcmVlYWJsZU1lbW9yeSA8IDQgKiBNQikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgaGVhcC5zY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhsb2NrLCBkZWNv
bW1pdHRlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlY29tbWl0dGVyLnByb2Nl
c3NFYWdlcigpOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgUHJpbnRUaW1l
IHByaW50VGltZSgicGFydGlhbFNjYXZlbmdlIGxhenkgZGVjb21taXQgdGltZSIpOworICAgICAg
ICAgICAgZGVjb21taXR0ZXIucHJvY2Vzc0xhenkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHsK
KyAgICAgICAgICAgIFByaW50VGltZSBwcmludFRpbWUoInBhcnRpYWxTY2F2ZW5nZSBtYXJrIGFs
bCBhcyBlbGlnaWJsZSB0aW1lIik7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+
IGxvY2soSGVhcDo6bXV0ZXgoKSk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1I
ZWFwczsgaS0tOykgeworICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVIZWFwS2luZChzdGF0
aWNfY2FzdDxIZWFwS2luZD4oaSkpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2VzczxQZXJIZWFwS2luZDxIZWFwPj46
OmdldCgpLT5hdChpKTsKKyAgICAgICAgICAgICAgICBoZWFwLm1hcmtBbGxMYXJnZUFzRWxpZ2li
aWxlKGxvY2spOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgeworICAg
ICAgICBSRUxFQVNFX0JBU1NFUlQoIW1fZGVmZXJyZWREZWNvbW1pdHMuc2l6ZSgpKTsKKyAgICAg
ICAgQWxsSXNvSGVhcHM6OmdldCgpLT5mb3JFYWNoKAorICAgICAgICAgICAgWyZdIChJc29IZWFw
SW1wbEJhc2UmIGhlYXApIHsKKyAgICAgICAgICAgICAgICBoZWFwLnNjYXZlbmdlVG9IaWdoV2F0
ZXJtYXJrKG1fZGVmZXJyZWREZWNvbW1pdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIElz
b0hlYXBJbXBsQmFzZTo6ZmluaXNoU2NhdmVuZ2luZyhtX2RlZmVycmVkRGVjb21taXRzKTsKKyAg
ICAgICAgbV9kZWZlcnJlZERlY29tbWl0cy5zaHJpbmsoMCk7CisgICAgfQorCisgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICItLWFmdGVyIHBhcnRpYWwgc2NhdmVu
Z2luZy0tXG4iKTsKKyAgICAgICAgZHVtcFN0YXRzKCk7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgIH0KKworICAgIHsK
KyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxNdXRleD4gbG9jayhtdXRleCgpKTsKKyAgICAgICAg
bV9sYXN0UGFydGlhbFNjYXZlbmdlVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5v
dygpOworICAgIH0KK30KKyNlbmRpZgorCiBzaXplX3QgU2NhdmVuZ2VyOjpmcmVlYWJsZU1lbW9y
eSgpCiB7CiAgICAgc2l6ZV90IHJlc3VsdCA9IDA7CkBAIC0zMzIsNiArNDIxLDY5IEBAIHZvaWQg
U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29wKCkKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgICAgICB9CiAKKyNpZiBC
UExBVEZPUk0oTUFDKQorICAgICAgICBlbnVtIGNsYXNzIFNjYXZlbmdlTW9kZSB7CisgICAgICAg
ICAgICBOb25lLAorICAgICAgICAgICAgUGFydGlhbCwKKyAgICAgICAgICAgIEZ1bGwKKyAgICAg
ICAgfTsKKworICAgICAgICBzaXplX3QgZnJlZWFibGVNZW1vcnkgPSB0aGlzLT5mcmVlYWJsZU1l
bW9yeSgpOworCisgICAgICAgIFNjYXZlbmdlTW9kZSBzY2F2ZW5nZU1vZGUgPSBbJl0geworICAg
ICAgICAgICAgYXV0byB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlID0gdGhpcy0+dGltZVNpbmNl
TGFzdEZ1bGxTY2F2ZW5nZSgpOworICAgICAgICAgICAgYXV0byB0aW1lU2luY2VMYXN0UGFydGlh
bFNjYXZlbmdlID0gdGhpcy0+dGltZVNpbmNlTGFzdFBhcnRpYWxTY2F2ZW5nZSgpOworICAgICAg
ICAgICAgYXV0byB0aW1lU2luY2VMYXN0U2NhdmVuZ2UgPSBzdGQ6Om1pbih0aW1lU2luY2VMYXN0
UGFydGlhbFNjYXZlbmdlLCB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlKTsKKworICAgICAgICAg
ICAgaWYgKGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpICYmIGZyZWVhYmxlTWVtb3J5ID4gMSAqIE1C
ICYmIHRpbWVTaW5jZUxhc3RTY2F2ZW5nZSA+IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6RnVsbDsKKworICAgICAgICAg
ICAgaWYgKCFtX2lzUHJvYmFibHlHcm93aW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVT
aW5jZUxhc3RGdWxsU2NhdmVuZ2UgPCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApICYm
ICFtX2lzSW5NaW5pTW9kZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9k
ZTo6UGFydGlhbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpGdWxsOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9pc0luTWluaU1vZGUpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodGltZVNpbmNlTGFzdEZ1bGxTY2F2ZW5nZSA8IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMoMjAwKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9k
ZTo6UGFydGlhbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpGdWxsOwor
ICAgICAgICAgICAgfQorCisjaWYgQkNQVShYODZfNjQpCisgICAgICAgICAgICBhdXRvIHBhcnRp
YWxTY2F2ZW5nZUludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMjAwMCk7Cisj
ZWxzZQorICAgICAgICAgICAgYXV0byBwYXJ0aWFsU2NhdmVuZ2VJbnRlcnZhbCA9IHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMoODAwMCk7CisjZW5kaWYKKyAgICAgICAgICAgIGlmICh0aW1lU2lu
Y2VMYXN0U2NhdmVuZ2UgPCBwYXJ0aWFsU2NhdmVuZ2VJbnRlcnZhbCkgeworICAgICAgICAgICAg
ICAgIC8vIFJhdGUgbGltaXQgcGFydGlhbCBzY2F2ZW5nZXMuCisgICAgICAgICAgICAgICAgcmV0
dXJuIFNjYXZlbmdlTW9kZTo6Tm9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChm
cmVlYWJsZU1lbW9yeSA8IDI1ICogTUIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdl
TW9kZTo6Tm9uZTsKKyAgICAgICAgICAgIGlmICg1ICogZnJlZWFibGVNZW1vcnkgPCBmb290cHJp
bnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpOb25lOworICAgICAg
ICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6UGFydGlhbDsKKyAgICAgICAgfSgpOworCisgICAg
ICAgIG1faXNQcm9iYWJseUdyb3dpbmcgPSBmYWxzZTsKKworICAgICAgICBzd2l0Y2ggKHNjYXZl
bmdlTW9kZSkgeworICAgICAgICBjYXNlIFNjYXZlbmdlTW9kZTo6Tm9uZTogeworICAgICAgICAg
ICAgcnVuU29vbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBTY2F2ZW5nZU1vZGU6OlBhcnRpYWw6IHsKKyAgICAgICAgICAgIHBhcnRpYWxTY2F2ZW5nZSgp
OworICAgICAgICAgICAgcnVuU29vbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBTY2F2ZW5nZU1vZGU6OkZ1bGw6IHsKKyAgICAgICAgICAgIHNjYXZlbmdl
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisjZWxzZQogICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHN0YXJ0IHsgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgfTsKICAgICAgICAgCiAgICAgICAgIHNjYXZlbmdl
KCk7CkBAIC0zNTcsNiArNTA5LDcgQEAgdm9pZCBTY2F2ZW5nZXI6OnRocmVhZFJ1bkxvb3AoKQog
CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJuZXcg
d2FpdCB0aW1lICVsbGRtc1xuIiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIGludD4obV93YWl0VGlt
ZS5jb3VudCgpKSk7CisjZW5kaWYKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvU2NhdmVuZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9T
Y2F2ZW5nZXIuaAkocmV2aXNpb24gMjQ5NTg4KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9T
Y2F2ZW5nZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldFRocmVhZE5hbWUoY29uc3QgY2hhciopOwogCiAgICAgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlKCk7CisjaWYgQlBMQVRGT1JNKE1B
QykKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVTaW5jZUxhc3RQYXJ0aWFsU2Nh
dmVuZ2UoKTsKKyAgICB2b2lkIHBhcnRpYWxTY2F2ZW5nZSgpOworI2VuZGlmCiAKICAgICBzdGQ6
OmF0b21pYzxTdGF0ZT4gbV9zdGF0ZSB7IFN0YXRlOjpTbGVlcCB9OwogICAgIHNpemVfdCBtX3Nj
YXZlbmdlckJ5dGVzIHsgMCB9OwpAQCAtMTAxLDcgKzEwNSwxMCBAQCBwcml2YXRlOgogCiAgICAg
c3RkOjp0aHJlYWQgbV90aHJlYWQ7CiAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCBtX2xhc3RGdWxsU2NhdmVuZ2VUaW1lIHsgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9j
azo6bm93KCkgfTsKLSAgICAKKyNpZiBCUExBVEZPUk0oTUFDKQorICAgIHN0ZDo6Y2hyb25vOjpz
dGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0UGFydGlhbFNjYXZlbmdlVGltZSB7IHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIH07CisjZW5kaWYKKwogI2lmIEJPUyhEQVJXSU4p
CiAgICAgZGlzcGF0Y2hfc291cmNlX3QgbV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJjZTsK
ICAgICBxb3NfY2xhc3NfdCBtX3JlcXVlc3RlZFNjYXZlbmdlclRocmVhZFFPU0NsYXNzIHsgUU9T
X0NMQVNTX1VTRVJfSU5JVElBVEVEIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1Nt
YWxsUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxQYWdl
LmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxQYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAg
Ym9vbCBoYXNQaHlzaWNhbFBhZ2VzKCkgeyByZXR1cm4gbV9oYXNQaHlzaWNhbFBhZ2VzOyB9CiAg
ICAgdm9pZCBzZXRIYXNQaHlzaWNhbFBhZ2VzKGJvb2wgaGFzUGh5c2ljYWxQYWdlcykgeyBtX2hh
c1BoeXNpY2FsUGFnZXMgPSBoYXNQaHlzaWNhbFBhZ2VzOyB9Ci0gICAgCisKKyNpZiAhQlBMQVRG
T1JNKE1BQykKICAgICBib29sIHVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHsgcmV0dXJuIG1fdXNl
ZFNpbmNlTGFzdFNjYXZlbmdlOyB9CiAgICAgdm9pZCBjbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5n
ZSgpIHsgbV91c2VkU2luY2VMYXN0U2NhdmVuZ2UgPSBmYWxzZTsgfQogICAgIHZvaWQgc2V0VXNl
ZFNpbmNlTGFzdFNjYXZlbmdlKCkgeyBtX3VzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IHRydWU7IH0K
KyNlbmRpZgogCiAgICAgU21hbGxMaW5lKiBiZWdpbigpOwogCkBAIC02Myw3ICs2NSw5IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgY2hhciBtX2hhc0ZyZWVMaW5lczogMTsKICAg
ICB1bnNpZ25lZCBjaGFyIG1faGFzUGh5c2ljYWxQYWdlczogMTsKKyNpZiAhQlBMQVRGT1JNKE1B
QykKICAgICB1bnNpZ25lZCBjaGFyIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOiAxOworI2VuZGlm
CiAgICAgdW5zaWduZWQgY2hhciBtX3JlZkNvdW50OiA3OwogICAgIHVuc2lnbmVkIGNoYXIgbV9z
aXplQ2xhc3M7CiAgICAgdW5zaWduZWQgY2hhciBtX3NsaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378226</attachid>
            <date>2019-09-06 13:42:19 -0700</date>
            <delta_ts>2019-09-06 16:20:59 -0700</delta_ts>
            <desc>Updated patch with &quot;Scavenger::verbose&quot; flag set to false</desc>
            <filename>201555-2.patch</filename>
            <type>text/plain</type>
            <size>23288</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA5LTA2ICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJldmVydCB0byBwcmUtcjI0
MzE0NCBzY2F2ZW5naW5nIGJlaGF2aW9yIGZvciBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBibWFsbG9jL0hlYXAuY3BwOgorICAgICAgICAo
Ym1hbGxvYzo6SGVhcDo6c2NhdmVuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6c2NhdmVu
Z2VUb0hpZ2hXYXRlcm1hcmspOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6YWxsb2NhdGVTbWFs
bENodW5rKToKKyAgICAgICAgKGJtYWxsb2M6OkhlYXA6OmFsbG9jYXRlU21hbGxQYWdlKToKKyAg
ICAgICAgKGJtYWxsb2M6OkhlYXA6OmFsbG9jYXRlTGFyZ2UpOgorICAgICAgICAqIGJtYWxsb2Mv
SGVhcC5oOgorICAgICAgICAqIGJtYWxsb2MvSXNvRGlyZWN0b3J5Lmg6CisgICAgICAgICogYm1h
bGxvYy9Jc29EaXJlY3RvcnlJbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9jOjpwYXNzZWROdW1Q
YWdlcz46OnRha2VGaXJzdEVsaWdpYmxlKToKKyAgICAgICAgKGJtYWxsb2M6OnBhc3NlZE51bVBh
Z2VzPjo6c2NhdmVuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6cGFzc2VkTnVtUGFnZXM+OjpzY2F2
ZW5nZVRvSGlnaFdhdGVybWFyayk6CisgICAgICAgICogYm1hbGxvYy9Jc29IZWFwSW1wbC5oOgor
ICAgICAgICAqIGJtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9j
OjpJc29IZWFwSW1wbDxDb25maWc+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayk6CisgICAgICAg
ICogYm1hbGxvYy9MYXJnZU1hcC5jcHA6CisgICAgICAgIChibWFsbG9jOjpMYXJnZU1hcDo6YWRk
KToKKyAgICAgICAgKiBibWFsbG9jL0xhcmdlUmFuZ2UuaDoKKyAgICAgICAgKGJtYWxsb2M6Okxh
cmdlUmFuZ2U6OkxhcmdlUmFuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6bWVyZ2UpOgorICAgICAg
ICAqIGJtYWxsb2MvU2NhdmVuZ2VyLmNwcDoKKyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6
U2NhdmVuZ2VyKToKKyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6dGltZVNpbmNlTGFzdFBh
cnRpYWxTY2F2ZW5nZSk6CisgICAgICAgIChibWFsbG9jOjpTY2F2ZW5nZXI6OnNjYXZlbmdlKToK
KyAgICAgICAgKGJtYWxsb2M6OlNjYXZlbmdlcjo6cGFydGlhbFNjYXZlbmdlKToKKyAgICAgICAg
KGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCk6CisgICAgICAgICogYm1hbGxvYy9T
Y2F2ZW5nZXIuaDoKKyAgICAgICAgKiBibWFsbG9jL1NtYWxsUGFnZS5oOgorCiAyMDE5LTA5LTA2
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRmFpbHVyZUFj
dGlvbiBldmVyeXdoZXJlIGluIGJtYWxsb2MgaW5zdGVhZCBvZiBhIGNyYXNoT25GYWlsdXJlIGJv
b2xlYW4uCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDI0OTU4OCkKKysr
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSwx
OCArMTc1LDI0IEBAIHZvaWQgSGVhcDo6ZGVjb21taXRMYXJnZVJhbmdlKHN0ZDo6bG9ja18KICNl
bmRpZgogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgSGVhcDo6c2NhdmVuZ2Uoc3RkOjps
b2NrX2d1YXJkPE11dGV4PiYgbG9jaywgQnVsa0RlY29tbWl0JiBkZWNvbW1pdHRlcikKKyNlbHNl
CiB2b2lkIEhlYXA6OnNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mIGxvY2ssIEJ1bGtE
ZWNvbW1pdCYgZGVjb21taXR0ZXIsIHNpemVfdCYgZGVmZXJyZWREZWNvbW1pdHMpCisjZW5kaWYK
IHsKICAgICBmb3IgKGF1dG8mIGxpc3QgOiBtX2ZyZWVQYWdlcykgewogICAgICAgICBmb3IgKGF1
dG8qIGNodW5rIDogbGlzdCkgewogICAgICAgICAgICAgZm9yIChhdXRvKiBwYWdlIDogY2h1bmst
PmZyZWVQYWdlcygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFwYWdlLT5oYXNQaHlzaWNhbFBh
Z2VzKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworI2lmICFCUExBVEZPUk0oTUFD
KQogICAgICAgICAgICAgICAgIGlmIChwYWdlLT51c2VkU2luY2VMYXN0U2NhdmVuZ2UoKSkgewog
ICAgICAgICAgICAgICAgICAgICBwYWdlLT5jbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpOwog
ICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZERlY29tbWl0cysrOwogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CisjZW5kaWYKIAogICAgICAgICAgICAg
ICAgIHNpemVfdCBwYWdlU2l6ZSA9IGJtYWxsb2M6OnBhZ2VTaXplKCZsaXN0IC0gJm1fZnJlZVBh
Z2VzWzBdKTsKICAgICAgICAgICAgICAgICBzaXplX3QgZGVjb21taXRTaXplID0gcGh5c2ljYWxQ
YWdlU2l6ZVNsb3BweShwYWdlLT5iZWdpbigpLT5iZWdpbigpLCBwYWdlU2l6ZSk7CkBAIC0yMDcs
MTUgKzIxMywzNyBAQCB2b2lkIEhlYXA6OnNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRlCiAg
ICAgfQogCiAgICAgZm9yIChMYXJnZVJhbmdlJiByYW5nZSA6IG1fbGFyZ2VGcmVlKSB7CisjaWYg
QlBMQVRGT1JNKE1BQykKKyAgICAgICAgbV9oaWdoV2F0ZXJtYXJrID0gc3RkOjptaW4obV9oaWdo
V2F0ZXJtYXJrLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmFuZ2UuYmVnaW4oKSkpOworI2Vsc2UKICAg
ICAgICAgaWYgKHJhbmdlLnVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpKSB7CiAgICAgICAgICAgICBy
YW5nZS5jbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpOwogICAgICAgICAgICAgZGVmZXJyZWRE
ZWNvbW1pdHMrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgZGVjb21taXRMYXJnZVJhbmdlKGxvY2ssIHJhbmdlLCBkZWNvbW1pdHRlcik7CiAgICAg
fQorCisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBtX2ZyZWVhYmxlTWVtb3J5ID0gMDsKKyNlbmRp
ZgogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgSGVhcDo6c2NhdmVuZ2VUb0hpZ2hXYXRl
cm1hcmsoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYgbG9jaywgQnVsa0RlY29tbWl0JiBkZWNvbW1p
dHRlcikKK3sKKyAgICB2b2lkKiBuZXdIaWdoV2F0ZXJNYXJrID0gbnVsbHB0cjsKKyAgICBmb3Ig
KExhcmdlUmFuZ2UmIHJhbmdlIDogbV9sYXJnZUZyZWUpIHsKKyAgICAgICAgaWYgKHJhbmdlLmJl
Z2luKCkgPD0gbV9oaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgbmV3SGlnaFdhdGVyTWFyayA9
IHN0ZDo6bWluKG5ld0hpZ2hXYXRlck1hcmssIHN0YXRpY19jYXN0PHZvaWQqPihyYW5nZS5iZWdp
bigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlY29tbWl0TGFyZ2VSYW5nZShsb2Nr
LCByYW5nZSwgZGVjb21taXR0ZXIpOworICAgIH0KKyAgICBtX2hpZ2hXYXRlcm1hcmsgPSBuZXdI
aWdoV2F0ZXJNYXJrOworfQorI2VuZGlmCisKIHZvaWQgSGVhcDo6ZGVhbGxvY2F0ZUxpbmVDYWNo
ZShzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYsIExpbmVDYWNoZSYgbGluZUNhY2hlKQogewogICAg
IGZvciAoYXV0byYgbGlzdCA6IGxpbmVDYWNoZSkgewpAQCAtMjQ4LDcgKzI3Niw5IEBAIHZvaWQg
SGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKHN0ZDo6dW5pcXUKIAogICAgICAgICBmb3JFYWNoUGFn
ZShjaHVuaywgcGFnZVNpemUsIFsmXShTbWFsbFBhZ2UqIHBhZ2UpIHsKICAgICAgICAgICAgIHBh
Z2UtPnNldEhhc1BoeXNpY2FsUGFnZXModHJ1ZSk7CisjaWYgIUJQTEFURk9STShNQUMpCiAgICAg
ICAgICAgICBwYWdlLT5zZXRVc2VkU2luY2VMYXN0U2NhdmVuZ2UoKTsKKyNlbmRpZgogICAgICAg
ICAgICAgcGFnZS0+c2V0SGFzRnJlZUxpbmVzKGxvY2ssIHRydWUpOwogICAgICAgICAgICAgY2h1
bmstPmZyZWVQYWdlcygpLnB1c2gocGFnZSk7CiAgICAgICAgIH0pOwpAQCAtMzMxLDcgKzM2MSw5
IEBAIFNtYWxsUGFnZSogSGVhcDo6YWxsb2NhdGVTbWFsbFBhZ2Uoc3RkOjoKICAgICAgICAgICAg
IG1fcGh5c2ljYWxQYWdlTWFwLmNvbW1pdChwYWdlLT5iZWdpbigpLT5iZWdpbigpLCBwYWdlU2l6
ZSk7CiAjZW5kaWYKICAgICAgICAgfQorI2lmICFCUExBVEZPUk0oTUFDKQogICAgICAgICBwYWdl
LT5zZXRVc2VkU2luY2VMYXN0U2NhdmVuZ2UoKTsKKyNlbmRpZgogCiAgICAgICAgIHJldHVybiBw
YWdlOwogICAgIH0oKTsKQEAgLTYwNyw2ICs2MzksOSBAQCB2b2lkKiBIZWFwOjphbGxvY2F0ZUxh
cmdlKHN0ZDo6dW5pcXVlX2xvCiAgICAgbV9mcmVlYWJsZU1lbW9yeSAtPSByYW5nZS50b3RhbFBo
eXNpY2FsU2l6ZSgpOwogCiAgICAgdm9pZCogcmVzdWx0ID0gc3BsaXRBbmRBbGxvY2F0ZShsb2Nr
LCByYW5nZSwgYWxpZ25tZW50LCBzaXplKS5iZWdpbigpOworI2lmIEJQTEFURk9STShNQUMpCisg
ICAgbV9oaWdoV2F0ZXJtYXJrID0gc3RkOjptYXgobV9oaWdoV2F0ZXJtYXJrLCByZXN1bHQpOwor
I2VuZGlmCiAgICAgQVNTRVJUX09SX1JFVFVSTl9PTl9GQUlMVVJFKHJlc3VsdCk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgJKHJldmlzaW9uIDI0OTU4OCkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3
ICs3NiwxMiBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGxhcmdlU2l6ZShzdGQ6OnVuaXF1ZV9sb2Nr
PE11dGV4PiYsIHZvaWQqKTsKICAgICB2b2lkIHNocmlua0xhcmdlKHN0ZDo6dW5pcXVlX2xvY2s8
TXV0ZXg+JiwgY29uc3QgUmFuZ2UmLCBzaXplX3QpOwogCisjaWYgQlBMQVRGT1JNKE1BQykKKyAg
ICB2b2lkIHNjYXZlbmdlVG9IaWdoV2F0ZXJtYXJrKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mLCBC
dWxrRGVjb21taXQmKTsKKyAgICB2b2lkIHNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4m
LCBCdWxrRGVjb21taXQmKTsKKyNlbHNlCiAgICAgdm9pZCBzY2F2ZW5nZShzdGQ6OmxvY2tfZ3Vh
cmQ8TXV0ZXg+JiwgQnVsa0RlY29tbWl0Jiwgc2l6ZV90JiBkZWZlcnJlZERlY29tbWl0cyk7Cisj
ZW5kaWYKICAgICB2b2lkIHNjYXZlbmdlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mLCBCdWxrRGVj
b21taXQmLCBzaXplX3QmIGZyZWVkLCBzaXplX3QgZ29hbCk7CiAKICAgICBzaXplX3QgZnJlZWFi
bGVNZW1vcnkoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYpOwpAQCAtMTUyLDYgKzE1NywxMCBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRV9QSFlTSUNBTF9QQUdFX01BUCAKICAgICBQaHlzaWNhbFBhZ2VN
YXAgbV9waHlzaWNhbFBhZ2VNYXA7CiAjZW5kaWYKKyAgICAKKyNpZiBCUExBVEZPUk0oTUFDKQor
ICAgIHZvaWQqIG1faGlnaFdhdGVybWFyayB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogaW5s
aW5lIHZvaWQgSGVhcDo6YWxsb2NhdGVTbWFsbEJ1bXBSYW5nZXMoCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0lzb0RpcmVjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvSXNvRGlyZWN0b3J5LmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDkg
QEAgcHVibGljOgogICAgIC8vIEl0ZXJhdGUgb3ZlciBhbGwgZW1wdHkgYW5kIGNvbW1pdHRlZCBw
YWdlcywgYW5kIHB1dCB0aGVtIGludG8gdGhlIHZlY3Rvci4gVGhpcyBhbHNvIHJlY29yZHMgdGhl
CiAgICAgLy8gcGFnZXMgYXMgYmVpbmcgZGVjb21taXR0ZWQuIEl0J3MgdGhlIGNhbGxlcidzIGpv
YiB0byBkbyB0aGUgYWN0dWFsIGRlY29tbWl0dGluZy4KICAgICB2b2lkIHNjYXZlbmdlKFZlY3Rv
cjxEZWZlcnJlZERlY29tbWl0PiYpOworI2lmIEJQTEFURk9STShNQUMpCisgICAgdm9pZCBzY2F2
ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVmZXJyZWREZWNvbW1pdD4mKTsKKyNlbmRpZgog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KICAgICB2b2lkIGZvckVhY2hDb21taXR0ZWRQ
YWdlKGNvbnN0IEZ1bmMmKTsKQEAgLTg5LDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBCaXRzPG51
bVBhZ2VzPiBtX2NvbW1pdHRlZDsKICAgICBzdGQ6OmFycmF5PElzb1BhZ2U8Q29uZmlnPiosIG51
bVBhZ2VzPiBtX3BhZ2VzOwogICAgIHVuc2lnbmVkIG1fZmlyc3RFbGlnaWJsZU9yRGVjb21taXR0
ZWQgeyAwIH07CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICB1bnNpZ25lZCBtX2hpZ2hXYXRlcm1h
cmsgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxsb2MKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvRGlyZWN0b3J5SW5saW5lcy5oCShyZXZpc2lvbiAy
NDk1ODgpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0RpcmVjdG9yeUlubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsMTAgQEAgRWxpZ2liaWxpdHlSZXN1bHQ8Q29uZmln
PiBJc29EaXJlY3Rvcnk8QwogICAgIGlmIChwYWdlSW5kZXggPj0gbnVtUGFnZXMpCiAgICAgICAg
IHJldHVybiBFbGlnaWJpbGl0eUtpbmQ6OkZ1bGw7CiAKKyNpZiBCUExBVEZPUk0oTUFDKQorICAg
IG1faGlnaFdhdGVybWFyayA9IHN0ZDo6bWF4KHBhZ2VJbmRleCwgbV9oaWdoV2F0ZXJtYXJrKTsK
KyNlbmRpZgorCiAgICAgU2NhdmVuZ2VyJiBzY2F2ZW5nZXIgPSAqU2NhdmVuZ2VyOjpnZXQoKTsK
ICAgICBzY2F2ZW5nZXIuZGlkU3RhcnRHcm93aW5nKCk7CiAgICAgCkBAIC0xNDQsNyArMTQ4LDIz
IEBAIHZvaWQgSXNvRGlyZWN0b3J5PENvbmZpZywgcGFzc2VkTnVtUGFnZXMKICAgICAgICAgWyZd
IChzaXplX3QgaW5kZXgpIHsKICAgICAgICAgICAgIHNjYXZlbmdlUGFnZShpbmRleCwgZGVjb21t
aXRzKTsKICAgICAgICAgfSk7CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBtX2hpZ2hXYXRlcm1h
cmsgPSAwOworI2VuZGlmCit9CisKKyNpZiBCUExBVEZPUk0oTUFDKQordGVtcGxhdGU8dHlwZW5h
bWUgQ29uZmlnLCB1bnNpZ25lZCBwYXNzZWROdW1QYWdlcz4KK3ZvaWQgSXNvRGlyZWN0b3J5PENv
bmZpZywgcGFzc2VkTnVtUGFnZXM+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVm
ZXJyZWREZWNvbW1pdD4mIGRlY29tbWl0cykKK3sKKyAgICAobV9lbXB0eSAmIG1fY29tbWl0dGVk
KS5mb3JFYWNoU2V0Qml0KAorICAgICAgICBbJl0gKHNpemVfdCBpbmRleCkgeworICAgICAgICAg
ICAgaWYgKGluZGV4ID4gbV9oaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgICAgIHNjYXZlbmdl
UGFnZShpbmRleCwgZGVjb21taXRzKTsKKyAgICAgICAgfSk7CisgICAgbV9oaWdoV2F0ZXJtYXJr
ID0gMDsKIH0KKyNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25maWcsIHVuc2lnbmVkIHBh
c3NlZE51bVBhZ2VzPgogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSXNvSGVhcEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0lzb0hlYXBJbXBsLmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvSXNvSGVhcEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+SXNvSGVhcEltcGxCYXNlKCk7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHNjYXZlbmdlKFZlY3RvcjxEZWZlcnJlZERlY29tbWl0PiYpID0gMDsKKyNpZiBCUExB
VEZPUk0oTUFDKQorICAgIHZpcnR1YWwgdm9pZCBzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0
b3I8RGVmZXJyZWREZWNvbW1pdD4mKSA9IDA7CisjZW5kaWYKICAgICB2aXJ0dWFsIHNpemVfdCBm
cmVlYWJsZU1lbW9yeSgpID0gMDsKICAgICB2aXJ0dWFsIHNpemVfdCBmb290cHJpbnQoKSA9IDA7
CiAgICAgCkBAIC04Nyw2ICs5MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEJlY29tZUVsaWdp
YmxlT3JEZWNvbW1pdGVkKElzb0RpcmVjdG9yeTxDb25maWcsIElzb0RpcmVjdG9yeVBhZ2U8Q29u
ZmlnPjo6bnVtUGFnZXM+Kik7CiAgICAgCiAgICAgdm9pZCBzY2F2ZW5nZShWZWN0b3I8RGVmZXJy
ZWREZWNvbW1pdD4mKSBvdmVycmlkZTsKKyNpZiBCUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2Nh
dmVuZ2VUb0hpZ2hXYXRlcm1hcmsoVmVjdG9yPERlZmVycmVkRGVjb21taXQ+Jikgb3ZlcnJpZGU7
CisjZW5kaWYKIAogICAgIHNpemVfdCBmcmVlYWJsZU1lbW9yeSgpIG92ZXJyaWRlOwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXBJbXBsSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmgJKHJldmlzaW9u
IDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsMjEgQEAgdm9pZCBJc29IZWFwSW1wbDxDb25m
aWc+OjpzY2F2ZW5nZShWZWN0bwogICAgIG1fZGlyZWN0b3J5SGlnaFdhdGVybWFyayA9IDA7CiB9
CiAKKyNpZiBCUExBVEZPUk0oTUFDKQordGVtcGxhdGU8dHlwZW5hbWUgQ29uZmlnPgordm9pZCBJ
c29IZWFwSW1wbDxDb25maWc+OjpzY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhWZWN0b3I8RGVmZXJy
ZWREZWNvbW1pdD4mIGRlY29tbWl0cykKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+IGxv
Y2tlcih0aGlzLT5sb2NrKTsKKyAgICBpZiAoIW1fZGlyZWN0b3J5SGlnaFdhdGVybWFyaykKKyAg
ICAgICAgbV9pbmxpbmVEaXJlY3Rvcnkuc2NhdmVuZ2VUb0hpZ2hXYXRlcm1hcmsoZGVjb21taXRz
KTsKKyAgICBmb3IgKElzb0RpcmVjdG9yeVBhZ2U8Q29uZmlnPiogcGFnZSA9IG1faGVhZERpcmVj
dG9yeTsgcGFnZTsgcGFnZSA9IHBhZ2UtPm5leHQpIHsKKyAgICAgICAgaWYgKHBhZ2UtPmluZGV4
KCkgPj0gbV9kaXJlY3RvcnlIaWdoV2F0ZXJtYXJrKQorICAgICAgICAgICAgcGFnZS0+cGF5bG9h
ZC5zY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhkZWNvbW1pdHMpOworICAgIH0KKyAgICBtX2RpcmVj
dG9yeUhpZ2hXYXRlcm1hcmsgPSAwOworfQorI2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1lIENv
bmZpZz4KIHNpemVfdCBJc29IZWFwSW1wbDxDb25maWc+OjpmcmVlYWJsZU1lbW9yeSgpCiB7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xhcmdlTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xhcmdlTWFwLmNwcAkocmV2aXNpb24gMjQ5NTg4KQorKysg
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9MYXJnZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2
LDcgKzc2LDkgQEAgdm9pZCBMYXJnZU1hcDo6YWRkKGNvbnN0IExhcmdlUmFuZ2UmIHJhbgogICAg
ICAgICBtZXJnZWQgPSBtZXJnZShtZXJnZWQsIG1fZnJlZS5wb3AoaS0tKSk7CiAgICAgfQogCisj
aWYgIUJQTEFURk9STShNQUMpCiAgICAgbWVyZ2VkLnNldFVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgp
OworI2VuZGlmCiAgICAgbV9mcmVlLnB1c2gobWVyZ2VkKTsKIH0KIApJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9MYXJnZVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9MYXJnZVJhbmdlLmgJKHJldmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvTGFyZ2VSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNywxMCBAQCBw
dWJsaWM6CiAgICAgICAgIDogUmFuZ2UoKQogICAgICAgICAsIG1fc3RhcnRQaHlzaWNhbFNpemUo
MCkKICAgICAgICAgLCBtX3RvdGFsUGh5c2ljYWxTaXplKDApCisjaWYgIUJQTEFURk9STShNQUMp
CiAgICAgICAgICwgbV9pc0VsaWdpYmxlKHRydWUpCiAgICAgICAgICwgbV91c2VkU2luY2VMYXN0
U2NhdmVuZ2UoZmFsc2UpCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC00NiwxMyArNDgsMjUg
QEAgcHVibGljOgogICAgICAgICA6IFJhbmdlKG90aGVyKQogICAgICAgICAsIG1fc3RhcnRQaHlz
aWNhbFNpemUoc3RhcnRQaHlzaWNhbFNpemUpCiAgICAgICAgICwgbV90b3RhbFBoeXNpY2FsU2l6
ZSh0b3RhbFBoeXNpY2FsU2l6ZSkKKyNpZiAhQlBMQVRGT1JNKE1BQykKICAgICAgICAgLCBtX2lz
RWxpZ2libGUodHJ1ZSkKICAgICAgICAgLCBtX3VzZWRTaW5jZUxhc3RTY2F2ZW5nZShmYWxzZSkK
KyNlbmRpZgogICAgIHsKICAgICAgICAgQkFTU0VSVCh0aGlzLT5zaXplKCkgPj0gdGhpcy0+dG90
YWxQaHlzaWNhbFNpemUoKSk7CiAgICAgICAgIEJBU1NFUlQodGhpcy0+dG90YWxQaHlzaWNhbFNp
emUoKSA+PSB0aGlzLT5zdGFydFBoeXNpY2FsU2l6ZSgpKTsKICAgICB9CiAKKyNpZiBCUExBVEZP
Uk0oTUFDKQorICAgIExhcmdlUmFuZ2Uodm9pZCogYmVnaW4sIHNpemVfdCBzaXplLCBzaXplX3Qg
c3RhcnRQaHlzaWNhbFNpemUsIHNpemVfdCB0b3RhbFBoeXNpY2FsU2l6ZSkKKyAgICAgICAgOiBS
YW5nZShiZWdpbiwgc2l6ZSkKKyAgICAgICAgLCBtX3N0YXJ0UGh5c2ljYWxTaXplKHN0YXJ0UGh5
c2ljYWxTaXplKQorICAgICAgICAsIG1fdG90YWxQaHlzaWNhbFNpemUodG90YWxQaHlzaWNhbFNp
emUpCisgICAgeworICAgICAgICBCQVNTRVJUKHRoaXMtPnNpemUoKSA+PSB0aGlzLT50b3RhbFBo
eXNpY2FsU2l6ZSgpKTsKKyAgICAgICAgQkFTU0VSVCh0aGlzLT50b3RhbFBoeXNpY2FsU2l6ZSgp
ID49IHRoaXMtPnN0YXJ0UGh5c2ljYWxTaXplKCkpOworICAgIH0KKyNlbHNlCiAgICAgTGFyZ2VS
YW5nZSh2b2lkKiBiZWdpbiwgc2l6ZV90IHNpemUsIHNpemVfdCBzdGFydFBoeXNpY2FsU2l6ZSwg
c2l6ZV90IHRvdGFsUGh5c2ljYWxTaXplLCBib29sIHVzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IGZh
bHNlKQogICAgICAgICA6IFJhbmdlKGJlZ2luLCBzaXplKQogICAgICAgICAsIG1fc3RhcnRQaHlz
aWNhbFNpemUoc3RhcnRQaHlzaWNhbFNpemUpCkBAIC02Myw2ICs3Nyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQkFTU0VSVCh0aGlzLT5zaXplKCkgPj0gdGhpcy0+dG90YWxQaHlzaWNhbFNpemUoKSk7
CiAgICAgICAgIEJBU1NFUlQodGhpcy0+dG90YWxQaHlzaWNhbFNpemUoKSA+PSB0aGlzLT5zdGFy
dFBoeXNpY2FsU2l6ZSgpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFJldHVybnMgYSBsb3dl
ciBib3VuZCBvbiBwaHlzaWNhbCBzaXplIGF0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuIFJhbmdl
cyB0aGF0CiAgICAgLy8gc3BhbiBub24tcGh5c2ljYWwgZnJhZ21lbnRzIHVzZSB0aGlzIG51bWJl
ciB0byByZW1lbWJlciB0aGUgcGh5c2ljYWwgc2l6ZSBvZgpAQCAtODksOSArMTA0LDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEVsaWdpYmxlKGJvb2wgZWxpZ2libGUpIHsgbV9pc0VsaWdpYmxl
ID0gZWxpZ2libGU7IH0KICAgICBib29sIGlzRWxpZ2liaWxlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0VsaWdpYmxlOyB9CiAKKyNpZiAhQlBMQVRGT1JNKE1BQykKICAgICBib29sIHVzZWRTaW5jZUxh
c3RTY2F2ZW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOyB9CiAg
ICAgdm9pZCBjbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHsgbV91c2VkU2luY2VMYXN0U2Nh
dmVuZ2UgPSBmYWxzZTsgfQogICAgIHZvaWQgc2V0VXNlZFNpbmNlTGFzdFNjYXZlbmdlKCkgeyBt
X3VzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IHRydWU7IH0KKyNlbmRpZgogCiAgICAgYm9vbCBvcGVy
YXRvcjwoY29uc3Qgdm9pZCogb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGJlZ2luKCkgPCBvdGhlcjsg
fQogICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IExhcmdlUmFuZ2UmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBiZWdpbigpIDwgb3RoZXIuYmVnaW4oKTsgfQpAQCAtOTksOCArMTE2LDEyIEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fc3RhcnRQaHlzaWNhbFNpemU7CiAgICAgc2l6ZV90
IG1fdG90YWxQaHlzaWNhbFNpemU7CisjaWYgQlBMQVRGT1JNKE1BQykKKyAgICBib29sIG1faXNF
bGlnaWJsZSB7IHRydWUgfTsKKyNlbHNlCiAgICAgdW5zaWduZWQgbV9pc0VsaWdpYmxlOiAxOwog
ICAgIHVuc2lnbmVkIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOiAxOworI2VuZGlmCiB9OwogCiBp
bmxpbmUgYm9vbCBjYW5NZXJnZShjb25zdCBMYXJnZVJhbmdlJiBhLCBjb25zdCBMYXJnZVJhbmdl
JiBiKQpAQCAtMTIzLDIyICsxNDQsMzEgQEAgaW5saW5lIGJvb2wgY2FuTWVyZ2UoY29uc3QgTGFy
Z2VSYW5nZSYgYQogaW5saW5lIExhcmdlUmFuZ2UgbWVyZ2UoY29uc3QgTGFyZ2VSYW5nZSYgYSwg
Y29uc3QgTGFyZ2VSYW5nZSYgYikKIHsKICAgICBjb25zdCBMYXJnZVJhbmdlJiBsZWZ0ID0gc3Rk
OjptaW4oYSwgYik7CisjaWYgIUJQTEFURk9STShNQUMpCiAgICAgYm9vbCBtZXJnZWRVc2VkU2lu
Y2VMYXN0U2NhdmVuZ2UgPSBhLnVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHx8IGIudXNlZFNpbmNl
TGFzdFNjYXZlbmdlKCk7CisjZW5kaWYKICAgICBpZiAobGVmdC5zaXplKCkgPT0gbGVmdC5zdGFy
dFBoeXNpY2FsU2l6ZSgpKSB7CiAgICAgICAgIHJldHVybiBMYXJnZVJhbmdlKAogICAgICAgICAg
ICAgbGVmdC5iZWdpbigpLAogICAgICAgICAgICAgYS5zaXplKCkgKyBiLnNpemUoKSwKICAgICAg
ICAgICAgIGEuc3RhcnRQaHlzaWNhbFNpemUoKSArIGIuc3RhcnRQaHlzaWNhbFNpemUoKSwKLSAg
ICAgICAgICAgIGEudG90YWxQaHlzaWNhbFNpemUoKSArIGIudG90YWxQaHlzaWNhbFNpemUoKSwK
LSAgICAgICAgICAgIG1lcmdlZFVzZWRTaW5jZUxhc3RTY2F2ZW5nZSk7CisgICAgICAgICAgICBh
LnRvdGFsUGh5c2ljYWxTaXplKCkgKyBiLnRvdGFsUGh5c2ljYWxTaXplKCkKKyNpZiAhQlBMQVRG
T1JNKE1BQykKKyAgICAgICAgICAgICwgbWVyZ2VkVXNlZFNpbmNlTGFzdFNjYXZlbmdlCisjZW5k
aWYKKyAgICAgICAgKTsKKyAgICAgICAgCiAgICAgfQogCiAgICAgcmV0dXJuIExhcmdlUmFuZ2Uo
CiAgICAgICAgIGxlZnQuYmVnaW4oKSwKICAgICAgICAgYS5zaXplKCkgKyBiLnNpemUoKSwKICAg
ICAgICAgbGVmdC5zdGFydFBoeXNpY2FsU2l6ZSgpLAotICAgICAgICBhLnRvdGFsUGh5c2ljYWxT
aXplKCkgKyBiLnRvdGFsUGh5c2ljYWxTaXplKCksCi0gICAgICAgIG1lcmdlZFVzZWRTaW5jZUxh
c3RTY2F2ZW5nZSk7CisgICAgICAgIGEudG90YWxQaHlzaWNhbFNpemUoKSArIGIudG90YWxQaHlz
aWNhbFNpemUoKQorI2lmICFCUExBVEZPUk0oTUFDKQorICAgICAgICAsIG1lcmdlZFVzZWRTaW5j
ZUxhc3RTY2F2ZW5nZQorI2VuZGlmCisgICAgKTsKIH0KIAogaW5saW5lIHN0ZDo6cGFpcjxMYXJn
ZVJhbmdlLCBMYXJnZVJhbmdlPiBMYXJnZVJhbmdlOjpzcGxpdChzaXplX3QgbGVmdFNpemUpIGNv
bnN0CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NjYXZlbmdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5nZXIuY3BwCShyZXZpc2lvbiAyNDk1
ODgpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NjYXZlbmdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgwLDcgKzgwLDExIEBAIFNjYXZlbmdlcjo6U2NhdmVuZ2VyKHN0ZDo6bG9ja19ndWFy
ZDxNdXQKICAgICBkaXNwYXRjaF9yZXN1bWUobV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJj
ZSk7CiAgICAgZGlzcGF0Y2hfcmVsZWFzZShxdWV1ZSk7CiAjZW5kaWYKKyNpZiBCUExBVEZPUk0o
TUFDKQorICAgIG1fd2FpdFRpbWUgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKG1faXNJbk1p
bmlNb2RlID8gMjAwIDogMjAwMCk7CisjZWxzZQogICAgIG1fd2FpdFRpbWUgPSBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzKDEwKTsKKyNlbmRpZgogCiAgICAgbV90aHJlYWQgPSBzdGQ6OnRocmVh
ZCgmdGhyZWFkRW50cnlQb2ludCwgdGhpcyk7CiB9CkBAIC0xNzgsNiArMTgyLDE0IEBAIHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgU2NhdmVuZ2VyOjp0aW0KICAgICByZXR1cm4gc3RkOjpjaHJv
bm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBtX2xhc3RGdWxsU2NhdmVuZ2VUaW1lKTsKIH0KIAorI2lm
IEJQTEFURk9STShNQUMpCitzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjYXZlbmdlcjo6dGlt
ZVNpbmNlTGFzdFBhcnRpYWxTY2F2ZW5nZSgpCit7CisgICAgc3RkOjp1bmlxdWVfbG9jazxNdXRl
eD4gbG9jayhtdXRleCgpKTsKKyAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93
KCkgLSBtX2xhc3RQYXJ0aWFsU2NhdmVuZ2VUaW1lKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjYXZl
bmdlcjo6ZW5hYmxlTWluaU1vZGUoKQogewogICAgIG1faXNJbk1pbmlNb2RlID0gdHJ1ZTsgLy8g
V2UganVzdCBzdG9yZSB0byB0aGlzIHJhY2lseS4gVGhlIHNjYXZlbmdlciB0aHJlYWQgd2lsbCBl
dmVudHVhbGx5IHBpY2sgdXAgdGhlIHJpZ2h0IHZhbHVlLgpAQCAtMjAwLDE3ICsyMTIsMjUgQEAg
dm9pZCBTY2F2ZW5nZXI6OnNjYXZlbmdlKCkKIAogICAgICAgICB7CiAgICAgICAgICAgICBQcmlu
dFRpbWUgcHJpbnRUaW1lKCJcbmZ1bGwgc2NhdmVuZ2UgdW5kZXIgbG9jayB0aW1lIik7CisjaWYg
IUJQTEFURk9STShNQUMpCiAgICAgICAgICAgICBzaXplX3QgZGVmZXJyZWREZWNvbW1pdHMgPSAw
OworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+IGxvY2soSGVhcDo6
bXV0ZXgoKSk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1IZWFwczsgaS0tOykg
ewogICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVIZWFwS2luZChzdGF0aWNfY2FzdDxIZWFw
S2luZD4oaSkpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyNpZiBCUExBVEZPUk0o
TUFDKQorICAgICAgICAgICAgICAgIFBlclByb2Nlc3M8UGVySGVhcEtpbmQ8SGVhcD4+OjpnZXQo
KS0+YXQoaSkuc2NhdmVuZ2UobG9jaywgZGVjb21taXR0ZXIpOworI2Vsc2UKICAgICAgICAgICAg
ICAgICBQZXJQcm9jZXNzPFBlckhlYXBLaW5kPEhlYXA+Pjo6Z2V0KCktPmF0KGkpLnNjYXZlbmdl
KGxvY2ssIGRlY29tbWl0dGVyLCBkZWZlcnJlZERlY29tbWl0cyk7CisjZW5kaWYKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGRlY29tbWl0dGVyLnByb2Nlc3NFYWdlcigpOwogCisjaWYgIUJQ
TEFURk9STShNQUMpCiAgICAgICAgICAgICBpZiAoZGVmZXJyZWREZWNvbW1pdHMpCiAgICAgICAg
ICAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5Tb29uOworI2VuZGlmCiAgICAgICAgIH0KIAog
ICAgICAgICB7CkBAIC0yNTEsNiArMjcxLDc1IEBAIHZvaWQgU2NhdmVuZ2VyOjpzY2F2ZW5nZSgp
CiAgICAgfQogfQogCisjaWYgQlBMQVRGT1JNKE1BQykKK3ZvaWQgU2NhdmVuZ2VyOjpwYXJ0aWFs
U2NhdmVuZ2UoKQoreworICAgIHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+IGxvY2sobV9zY2F2ZW5n
aW5nTXV0ZXgpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIs
ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiLS1iZWZvcmUgcGFydGlhbCBzY2F2ZW5naW5nLS1cbiIpOworICAgICAgICBkdW1w
U3RhdHMoKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEJ1bGtEZWNvbW1pdCBkZWNvbW1pdHRl
cjsKKyAgICAgICAgeworICAgICAgICAgICAgUHJpbnRUaW1lIHByaW50VGltZSgiXG5wYXJ0aWFs
U2NhdmVuZ2UgdW5kZXIgbG9jayB0aW1lIik7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TXV0ZXg+IGxvY2soSGVhcDo6bXV0ZXgoKSk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBudW1IZWFwczsgaS0tOykgeworICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVIZWFwS2lu
ZChzdGF0aWNfY2FzdDxIZWFwS2luZD4oaSkpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2VzczxQZXJIZWFwS2luZDxI
ZWFwPj46OmdldCgpLT5hdChpKTsKKyAgICAgICAgICAgICAgICBzaXplX3QgZnJlZWFibGVNZW1v
cnkgPSBoZWFwLmZyZWVhYmxlTWVtb3J5KGxvY2spOworICAgICAgICAgICAgICAgIGlmIChmcmVl
YWJsZU1lbW9yeSA8IDQgKiBNQikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgaGVhcC5zY2F2ZW5nZVRvSGlnaFdhdGVybWFyayhsb2NrLCBkZWNvbW1pdHRl
cik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlY29tbWl0dGVyLnByb2Nlc3NFYWdl
cigpOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgUHJpbnRUaW1lIHByaW50
VGltZSgicGFydGlhbFNjYXZlbmdlIGxhenkgZGVjb21taXQgdGltZSIpOworICAgICAgICAgICAg
ZGVjb21taXR0ZXIucHJvY2Vzc0xhenkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFByaW50VGltZSBwcmludFRpbWUoInBhcnRpYWxTY2F2ZW5nZSBtYXJrIGFsbCBhcyBl
bGlnaWJsZSB0aW1lIik7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+IGxvY2so
SGVhcDo6bXV0ZXgoKSk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1IZWFwczsg
aS0tOykgeworICAgICAgICAgICAgICAgIGlmICghaXNBY3RpdmVIZWFwS2luZChzdGF0aWNfY2Fz
dDxIZWFwS2luZD4oaSkpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBIZWFwJiBoZWFwID0gUGVyUHJvY2VzczxQZXJIZWFwS2luZDxIZWFwPj46OmdldCgp
LT5hdChpKTsKKyAgICAgICAgICAgICAgICBoZWFwLm1hcmtBbGxMYXJnZUFzRWxpZ2liaWxlKGxv
Y2spOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICBS
RUxFQVNFX0JBU1NFUlQoIW1fZGVmZXJyZWREZWNvbW1pdHMuc2l6ZSgpKTsKKyAgICAgICAgQWxs
SXNvSGVhcHM6OmdldCgpLT5mb3JFYWNoKAorICAgICAgICAgICAgWyZdIChJc29IZWFwSW1wbEJh
c2UmIGhlYXApIHsKKyAgICAgICAgICAgICAgICBoZWFwLnNjYXZlbmdlVG9IaWdoV2F0ZXJtYXJr
KG1fZGVmZXJyZWREZWNvbW1pdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIElzb0hlYXBJ
bXBsQmFzZTo6ZmluaXNoU2NhdmVuZ2luZyhtX2RlZmVycmVkRGVjb21taXRzKTsKKyAgICAgICAg
bV9kZWZlcnJlZERlY29tbWl0cy5zaHJpbmsoMCk7CisgICAgfQorCisgICAgaWYgKHZlcmJvc2Up
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICItLWFmdGVyIHBhcnRpYWwgc2NhdmVuZ2luZy0t
XG4iKTsKKyAgICAgICAgZHVtcFN0YXRzKCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgIH0KKworICAgIHsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxNdXRleD4gbG9jayhtdXRleCgpKTsKKyAgICAgICAgbV9sYXN0
UGFydGlhbFNjYXZlbmdlVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwor
ICAgIH0KK30KKyNlbmRpZgorCiBzaXplX3QgU2NhdmVuZ2VyOjpmcmVlYWJsZU1lbW9yeSgpCiB7
CiAgICAgc2l6ZV90IHJlc3VsdCA9IDA7CkBAIC0zMzIsNiArNDIxLDY5IEBAIHZvaWQgU2NhdmVu
Z2VyOjp0aHJlYWRSdW5Mb29wKCkKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgICAgICB9CiAKKyNpZiBCUExBVEZP
Uk0oTUFDKQorICAgICAgICBlbnVtIGNsYXNzIFNjYXZlbmdlTW9kZSB7CisgICAgICAgICAgICBO
b25lLAorICAgICAgICAgICAgUGFydGlhbCwKKyAgICAgICAgICAgIEZ1bGwKKyAgICAgICAgfTsK
KworICAgICAgICBzaXplX3QgZnJlZWFibGVNZW1vcnkgPSB0aGlzLT5mcmVlYWJsZU1lbW9yeSgp
OworCisgICAgICAgIFNjYXZlbmdlTW9kZSBzY2F2ZW5nZU1vZGUgPSBbJl0geworICAgICAgICAg
ICAgYXV0byB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlID0gdGhpcy0+dGltZVNpbmNlTGFzdEZ1
bGxTY2F2ZW5nZSgpOworICAgICAgICAgICAgYXV0byB0aW1lU2luY2VMYXN0UGFydGlhbFNjYXZl
bmdlID0gdGhpcy0+dGltZVNpbmNlTGFzdFBhcnRpYWxTY2F2ZW5nZSgpOworICAgICAgICAgICAg
YXV0byB0aW1lU2luY2VMYXN0U2NhdmVuZ2UgPSBzdGQ6Om1pbih0aW1lU2luY2VMYXN0UGFydGlh
bFNjYXZlbmdlLCB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlKTsKKworICAgICAgICAgICAgaWYg
KGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpICYmIGZyZWVhYmxlTWVtb3J5ID4gMSAqIE1CICYmIHRp
bWVTaW5jZUxhc3RTY2F2ZW5nZSA+IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6RnVsbDsKKworICAgICAgICAgICAgaWYg
KCFtX2lzUHJvYmFibHlHcm93aW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVTaW5jZUxh
c3RGdWxsU2NhdmVuZ2UgPCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApICYmICFtX2lz
SW5NaW5pTW9kZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6UGFy
dGlhbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpGdWxsOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9pc0luTWluaU1vZGUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodGltZVNpbmNlTGFzdEZ1bGxTY2F2ZW5nZSA8IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMoMjAwKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6UGFy
dGlhbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpGdWxsOworICAgICAg
ICAgICAgfQorCisjaWYgQkNQVShYODZfNjQpCisgICAgICAgICAgICBhdXRvIHBhcnRpYWxTY2F2
ZW5nZUludGVydmFsID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMjAwMCk7CisjZWxzZQor
ICAgICAgICAgICAgYXV0byBwYXJ0aWFsU2NhdmVuZ2VJbnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMoODAwMCk7CisjZW5kaWYKKyAgICAgICAgICAgIGlmICh0aW1lU2luY2VMYXN0
U2NhdmVuZ2UgPCBwYXJ0aWFsU2NhdmVuZ2VJbnRlcnZhbCkgeworICAgICAgICAgICAgICAgIC8v
IFJhdGUgbGltaXQgcGFydGlhbCBzY2F2ZW5nZXMuCisgICAgICAgICAgICAgICAgcmV0dXJuIFNj
YXZlbmdlTW9kZTo6Tm9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmcmVlYWJs
ZU1lbW9yeSA8IDI1ICogTUIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFNjYXZlbmdlTW9kZTo6
Tm9uZTsKKyAgICAgICAgICAgIGlmICg1ICogZnJlZWFibGVNZW1vcnkgPCBmb290cHJpbnQoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gU2NhdmVuZ2VNb2RlOjpOb25lOworICAgICAgICAgICAg
cmV0dXJuIFNjYXZlbmdlTW9kZTo6UGFydGlhbDsKKyAgICAgICAgfSgpOworCisgICAgICAgIG1f
aXNQcm9iYWJseUdyb3dpbmcgPSBmYWxzZTsKKworICAgICAgICBzd2l0Y2ggKHNjYXZlbmdlTW9k
ZSkgeworICAgICAgICBjYXNlIFNjYXZlbmdlTW9kZTo6Tm9uZTogeworICAgICAgICAgICAgcnVu
U29vbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBTY2F2
ZW5nZU1vZGU6OlBhcnRpYWw6IHsKKyAgICAgICAgICAgIHBhcnRpYWxTY2F2ZW5nZSgpOworICAg
ICAgICAgICAgcnVuU29vbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBTY2F2ZW5nZU1vZGU6OkZ1bGw6IHsKKyAgICAgICAgICAgIHNjYXZlbmdlKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisjZWxzZQogICAgICAgICBz
dGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHN0YXJ0IHsgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6bm93KCkgfTsKICAgICAgICAgCiAgICAgICAgIHNjYXZlbmdlKCk7CkBA
IC0zNTcsNiArNTA5LDcgQEAgdm9pZCBTY2F2ZW5nZXI6OnRocmVhZFJ1bkxvb3AoKQogCiAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJuZXcgd2FpdCB0
aW1lICVsbGRtc1xuIiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIGludD4obV93YWl0VGltZS5jb3Vu
dCgpKSk7CisjZW5kaWYKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
U2NhdmVuZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5n
ZXIuaAkocmV2aXNpb24gMjQ5NTg4KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5n
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldFRocmVhZE5hbWUoY29uc3QgY2hhciopOwogCiAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyB0aW1lU2luY2VMYXN0RnVsbFNjYXZlbmdlKCk7CisjaWYgQlBMQVRGT1JNKE1BQykKKyAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVTaW5jZUxhc3RQYXJ0aWFsU2NhdmVuZ2Uo
KTsKKyAgICB2b2lkIHBhcnRpYWxTY2F2ZW5nZSgpOworI2VuZGlmCiAKICAgICBzdGQ6OmF0b21p
YzxTdGF0ZT4gbV9zdGF0ZSB7IFN0YXRlOjpTbGVlcCB9OwogICAgIHNpemVfdCBtX3NjYXZlbmdl
ckJ5dGVzIHsgMCB9OwpAQCAtMTAxLDcgKzEwNSwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp0
aHJlYWQgbV90aHJlYWQ7CiAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dCBtX2xhc3RGdWxsU2NhdmVuZ2VUaW1lIHsgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93
KCkgfTsKLSAgICAKKyNpZiBCUExBVEZPUk0oTUFDKQorICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlf
Y2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0UGFydGlhbFNjYXZlbmdlVGltZSB7IHN0ZDo6Y2hyb25v
OjpzdGVhZHlfY2xvY2s6Om5vdygpIH07CisjZW5kaWYKKwogI2lmIEJPUyhEQVJXSU4pCiAgICAg
ZGlzcGF0Y2hfc291cmNlX3QgbV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJjZTsKICAgICBx
b3NfY2xhc3NfdCBtX3JlcXVlc3RlZFNjYXZlbmdlclRocmVhZFFPU0NsYXNzIHsgUU9TX0NMQVNT
X1VTRVJfSU5JVElBVEVEIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NtYWxsUGFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxQYWdlLmgJKHJl
dmlzaW9uIDI0OTU4OCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxQYWdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBo
YXNQaHlzaWNhbFBhZ2VzKCkgeyByZXR1cm4gbV9oYXNQaHlzaWNhbFBhZ2VzOyB9CiAgICAgdm9p
ZCBzZXRIYXNQaHlzaWNhbFBhZ2VzKGJvb2wgaGFzUGh5c2ljYWxQYWdlcykgeyBtX2hhc1BoeXNp
Y2FsUGFnZXMgPSBoYXNQaHlzaWNhbFBhZ2VzOyB9Ci0gICAgCisKKyNpZiAhQlBMQVRGT1JNKE1B
QykKICAgICBib29sIHVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHsgcmV0dXJuIG1fdXNlZFNpbmNl
TGFzdFNjYXZlbmdlOyB9CiAgICAgdm9pZCBjbGVhclVzZWRTaW5jZUxhc3RTY2F2ZW5nZSgpIHsg
bV91c2VkU2luY2VMYXN0U2NhdmVuZ2UgPSBmYWxzZTsgfQogICAgIHZvaWQgc2V0VXNlZFNpbmNl
TGFzdFNjYXZlbmdlKCkgeyBtX3VzZWRTaW5jZUxhc3RTY2F2ZW5nZSA9IHRydWU7IH0KKyNlbmRp
ZgogCiAgICAgU21hbGxMaW5lKiBiZWdpbigpOwogCkBAIC02Myw3ICs2NSw5IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgY2hhciBtX2hhc0ZyZWVMaW5lczogMTsKICAgICB1bnNp
Z25lZCBjaGFyIG1faGFzUGh5c2ljYWxQYWdlczogMTsKKyNpZiAhQlBMQVRGT1JNKE1BQykKICAg
ICB1bnNpZ25lZCBjaGFyIG1fdXNlZFNpbmNlTGFzdFNjYXZlbmdlOiAxOworI2VuZGlmCiAgICAg
dW5zaWduZWQgY2hhciBtX3JlZkNvdW50OiA3OwogICAgIHVuc2lnbmVkIGNoYXIgbV9zaXplQ2xh
c3M7CiAgICAgdW5zaWduZWQgY2hhciBtX3NsaWRlOwo=
</data>
<flag name="review"
          id="393874"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>