<?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>169537</bug_id>
          
          <creation_ts>2017-03-12 21:08:07 -0700</creation_ts>
          <short_desc>[WTF] Clean up RunLoop and WorkQueue with Seconds and Function</short_desc>
          <delta_ts>2017-03-14 08:43:10 -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></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>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287024</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-12 21:08:07 -0700</bug_when>
    <thetext>[WTF] Clean up RunLoop and WorkQueue with Seconds and Function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287025</commentid>
    <comment_count>1</comment_count>
      <attachid>304220</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-12 21:09:42 -0700</bug_when>
    <thetext>Created attachment 304220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287254</commentid>
    <comment_count>2</comment_count>
      <attachid>304220</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-13 11:27:21 -0700</bug_when>
    <thetext>Comment on attachment 304220
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287264</commentid>
    <comment_count>3</comment_count>
      <attachid>304220</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-13 11:56:58 -0700</bug_when>
    <thetext>Comment on attachment 304220
Patch

Clearing flags on attachment: 304220

Committed r213858: &lt;http://trac.webkit.org/changeset/213858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287265</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-13 11:57:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287573</commentid>
    <comment_count>5</comment_count>
      <attachid>304220</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-14 04:05:11 -0700</bug_when>
    <thetext>Comment on attachment 304220
Patch

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

&gt; Source/WTF/wtf/glib/RunLoopGLib.cpp:-198
&gt; -    auto intervalDuration = std::chrono::duration&lt;double&gt;(fireInterval);
&gt; -    auto safeDuration = std::chrono::microseconds::max();
&gt; -    if (intervalDuration &lt; safeDuration)
&gt; -        safeDuration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(intervalDuration);

Something like this is still needed. GSoure works with microseconds, when std::numeric_limits&lt;double&gt;::infinity() is passed here (like XMLHttpRequest does to disable network timeouts), we will overflow later when trying to convert infinity to microseconds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287574</commentid>
    <comment_count>6</comment_count>
      <attachid>304220</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-14 04:18:46 -0700</bug_when>
    <thetext>Comment on attachment 304220
Patch

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

&gt; Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp:42
&gt; -    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration.count()), m_dispatchQueue, BlockPtr&lt;void ()&gt;::fromCallable([protectedThis = makeRef(*this), function = WTFMove(function)] {
&gt; +    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration.nanoseconds()), m_dispatchQueue, BlockPtr&lt;void()&gt;::fromCallable([protectedThis = makeRef(*this), function = WTFMove(function)] {

This could also overflow now, I think. It doesn&apos;t probably happen because dispatchAfter is never called with infinity or a long enough value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287575</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-14 04:52:10 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287576</commentid>
    <comment_count>8</comment_count>
      <attachid>304372</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-14 04:52:15 -0700</bug_when>
    <thetext>Created attachment 304372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287577</commentid>
    <comment_count>9</comment_count>
      <attachid>304373</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-14 05:38:04 -0700</bug_when>
    <thetext>Created attachment 304373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287579</commentid>
    <comment_count>10</comment_count>
      <attachid>304373</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-14 06:09:56 -0700</bug_when>
    <thetext>Comment on attachment 304373
Patch

This looks good to me. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287580</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-14 06:21:07 -0700</bug_when>
    <thetext>Committed r213896: &lt;http://trac.webkit.org/changeset/213896&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304220</attachid>
            <date>2017-03-12 21:09:42 -0700</date>
            <delta_ts>2017-03-14 04:52:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169537-20170313130940.patch</filename>
            <type>text/plain</type>
            <size>27754</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OGZhODFkYjUyNjg2MDAwYTJmOGJkZTdiN2IyYzg0NDY3NWUxZDE5Li4yZmM4MzRjNzBhYjk0MGEx
MjNiMjI0NGY1YWUwYzdlOTU3M2MyMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBDbGVhbiB1cCBSdW5Mb29wIGFuZCBXb3JrUXVldWUgd2l0
aCBTZWNvbmRzIGFuZCBGdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5NTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAgICAgKEpTQzo6V2F0
Y2hkb2c6OnN0YXJ0VGltZXIpOgorCiAyMDE3LTAzLTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgU3RydWN0dXJlOjp3aWxsU3RvcmVWYWx1ZVNsb3cgbmVlZHMg
dG8ga2VlcCB0aGUgcHJvcGVydHkgdGFibGUgYWxpdmUgdW50aWwgdGhlIGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkYTlj
ZmMwZWIzOTIwNjYwYTUzNjI2NGM5YjJkYjk5MjFlMzRmMjZjLi5jZWU2MmQ2NWQ0Y2RjZTdkYjU4
YTkwZjgyODljZDg3NGU0ODNiZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTAzLTEyICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXVEZdIENs
ZWFuIHVwIFJ1bkxvb3AgYW5kIFdvcmtRdWV1ZSB3aXRoIFNlY29uZHMgYW5kIEZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk1MzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IG1vZGVybml6ZXMgUnVuTG9vcCBhbmQgV29ya1F1ZXVlLgorCisgICAgICAgIDEuIFVzZSBSZWY8
PiBhZ2dyZXNzaXZlbHkKKyAgICAgICAgMi4gVXNlIFNlY29uZHMgaW5zdGVhZCBvZiBjaHJvbm8g
dGltZXMKKyAgICAgICAgMy4gVXNlIEZ1bmN0aW9uPD4gaW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9u
CisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAgIChXVEY6OmRpc3BhdGNo
RnVuY3Rpb25zRnJvbU1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6CisgICAg
ICAgICogd3RmL1dvcmtRdWV1ZS5oOgorICAgICAgICAqIHd0Zi9jb2NvYS9Xb3JrUXVldWVDb2Nv
YS5jcHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6ZGlzcGF0Y2gpOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OmNv
bmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL2dlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMu
Y3BwOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KToKKyAgICAgICAgKiB3dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHA6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzazo6Y3JlYXRlKToKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrOjpFYXJsaWVzdFNjaGVkdWxl
OjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6cG9wdWxhdGVUYXNrcyk6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bkltcGwpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpz
Y2hlZHVsZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnNjaGVkdWxlQW5kV2FrZVVwKToKKyAg
ICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcik6CisgICAgICAgIChXVEY6OlJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdl
bmVyaWMuY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaCk6CisgICAgICAgIChXb3Jr
UXVldWU6OmRpc3BhdGNoQWZ0ZXIpOgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BHTGliLmNw
cDoKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hBZnRlckNvbnRleHQ6OkRpc3BhdGNoQWZ0ZXJDb250
ZXh0KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcik6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dXBkYXRlUmVhZHlUaW1lKToKKyAgICAgICAgKFdURjo6
UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVk
V29ya1RocmVhZCk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6ZGlzcGF0Y2gpOgorICAgICAg
ICAoV1RGOjpXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIpOgorCiAyMDE3LTAzLTExICBDc2FiYSBP
c3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjEz
NjQ1KTogSXQgbWFkZSBKU0MgdGVzdHMgc3VwZXIgc2xvdyBhbmQgdGltZW91dCBvbiBBQXJjaDY0
IExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTEwN2M4M2I0NDkxNzk3YzliZGUwNzk0MmY4NjMzNDM1Njgw
Mjk5Yi4uNzIyZjBhMzRmNjg0YWQyZmZkYzZlZTZkNDkxNDUzNzc5ZWRkNjM0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTEyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXVEZdIENsZWFuIHVwIFJ1bkxvb3AgYW5kIFdvcmtR
dWV1ZSB3aXRoIFNlY29uZHMgYW5kIEZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk1MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlWDExOjpyZXNpemUpOgorCiAyMDE3LTAzLTEyICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2l0aW9uIEdlbmVy
aWNDYWxsYmFjayBmcm9tIHN0ZDo6ZnVuY3Rpb24gdG8gV1RGOjpGdW5jdGlvbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAppbmRleCAyMGU0ZjhlNWIwOWJiMWEz
Y2JhMjE5NDMxYTU3ZTg4YjllMDZjNDY5Li41NzM0MjYzZmQxZjEzNzljMDU0ZjYwMjZkMDNhMTI3
Yzc5M2RmZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRj
aGRvZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzIHRpbWVMaW1pdCkKICAgICAvLyBTbywgd2UgYWx3YXlzIG5lZWQgdG8g
bnVsbCBjaGVjayBtX3ZtIGJlZm9yZSB1c2luZyBpdC4gVGhlIFZNIHdpbGwgbm90aWZ5IHRoZSBX
YXRjaGRvZwogICAgIC8vIHZpYSB3aWxsRGVzdHJveVZNKCkgYmVmb3JlIGl0IGdvZXMgYXdheS4K
ICAgICBSZWZQdHI8V2F0Y2hkb2c+IHByb3RlY3RlZFRoaXMgPSB0aGlzOwotICAgIG1fdGltZXJR
dWV1ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHModGltZUxpbWl0KSwg
W3RoaXMsIHByb3RlY3RlZFRoaXNdIHsKKyAgICBtX3RpbWVyUXVldWUtPmRpc3BhdGNoQWZ0ZXIo
U2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyh0aW1lTGltaXQuY291bnQoKSksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzXSB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAg
IGlmIChtX3ZtKQogICAgICAgICAgICAgbV92bS0+bm90aWZ5TmVlZFdhdGNoZG9nQ2hlY2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL1dURi93
dGYvTWFpblRocmVhZC5jcHAKaW5kZXggZWVhMGIzNmNkZGY4Nzc4ODBjOTg0NjVhNTU3NjY4M2Q0
OWYwN2JiOC4uZTY2YzNiM2U4YWRkYTk5M2QyYTFiMThjNjFjYmJhMmM4OTEwMmU2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
TWFpblRocmVhZC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIGluaXRpYWxpemVNYWluVGhy
ZWFkKCkKICNlbmRpZgogCiAvLyAwLjEgc2VjIGRlbGF5cyBpbiBVSSBpcyBhcHByb3hpbWF0ZSB0
aHJlc2hvbGQgd2hlbiB0aGV5IGJlY29tZSBub3RpY2VhYmxlLiBIYXZlIGEgbGltaXQgdGhhdCdz
IGhhbGYgb2YgdGhhdC4KLXN0YXRpYyBjb25zdCBhdXRvIG1heFJ1bkxvb3BTdXNwZW5zaW9uVGlt
ZSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTApOworc3RhdGljIGNvbnN0IGF1dG8gbWF4
UnVuTG9vcFN1c3BlbnNpb25UaW1lID0gNTBfbXM7CiAKIHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCgpCiB7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBkaXNwYXRjaEZ1bmN0
aW9uc0Zyb21NYWluVGhyZWFkKCkKICAgICBpZiAoY2FsbGJhY2tzUGF1c2VkKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpOworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAg
ICBGdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKIApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQg
ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAgICAgICAgIC8vIHlpZWxkIHNvIHRo
ZSB1c2VyIGlucHV0IGNhbiBiZSBwcm9jZXNzZWQuIE90aGVyd2lzZSB1c2VyIG1heSBub3QgYmUg
YWJsZSB0byBldmVuIGNsb3NlIHRoZSB3aW5kb3cuCiAgICAgICAgIC8vIFRoaXMgY29kZSBoYXMg
ZWZmZWN0IG9ubHkgaW4gY2FzZSB0aGUgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRo
cmVhZCgpIGlzIGltcGxlbWVudGVkIGluIGEgd2F5IHRoYXQKICAgICAgICAgLy8gYWxsb3dzIGlu
cHV0IGV2ZW50cyB0byBiZSBwcm9jZXNzZWQgYmVmb3JlIHdlIGFyZSBiYWNrIGhlcmUuCi0gICAg
ICAgIGlmIChzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIHN0YXJ0VGltZSA+IG1h
eFJ1bkxvb3BTdXNwZW5zaW9uVGltZSkgeworICAgICAgICBpZiAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBzdGFydFRpbWUgPiBtYXhSdW5Mb29wU3VzcGVuc2lvblRpbWUpIHsKICAgICAgICAgICAg
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9T
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggOThjMTIyOWY2YzVjMWY2YWE5ZDEzZDk5NjFl
MjFmM2Q4NDBhNmI0OS4uNzIyZmEyYTk2NDg2NzliNjM0ZTBlN2U2YTZmMThjMTBhMDlkMGQ3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRpc3Bh
dGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCkBAIC01NCw3ICs1NSw3IEBAIGNsYXNzIFJ1
bkxvb3AgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIGJvb2wgaXNNYWluKCk7CiAgICAgflJ1bkxvb3AoKTsKIAotICAgIHZvaWQgZGlz
cGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChG
dW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyB2b2lkIHJ1bigpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3AoKTsKQEAg
LTc0LDcgKzc1LDcgQEAgY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIg
ewogI2VuZGlmCiAKICNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKSB8fCBVU0UoR0VORVJJQ19FVkVO
VF9MT09QKQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoQWZ0ZXIoc3RkOjpj
aHJvbm86Om5hbm9zZWNvbmRzLCBGdW5jdGlvbjx2b2lkICgpPiYmKTsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkaXNwYXRjaEFmdGVyKFNlY29uZHMsIEZ1bmN0aW9uPHZvaWQoKT4mJik7
CiAjZW5kaWYKIAogICAgIGNsYXNzIFRpbWVyQmFzZSB7CkBAIC0xMTMsNyArMTE0LDcgQEAgY2xh
c3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAgICB2b2lkIHVw
ZGF0ZVJlYWR5VGltZSgpOwogICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fc291cmNlOwogICAg
ICAgICBib29sIG1faXNSZXBlYXRpbmcgeyBmYWxzZSB9OwotICAgICAgICBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzIG1fZmlyZUludGVydmFsIHsgMCB9OworICAgICAgICBTZWNvbmRzIG1fZmly
ZUludGVydmFsIHsgMCB9OwogI2VsaWYgVVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKICAgICAgICAg
Y2xhc3MgU2NoZWR1bGVkVGFzazsKICAgICAgICAgUmVmUHRyPFNjaGVkdWxlZFRhc2s+IG1fc2No
ZWR1bGVkVGFzazsKQEAgLTE0Nyw3ICsxNDgsNyBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1
bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgdm9pZCBwZXJmb3JtV29yaygpOwogCiAgICAgTXV0ZXgg
bV9mdW5jdGlvblF1ZXVlTG9jazsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkICgpPj4gbV9mdW5j
dGlvblF1ZXVlOworICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fZnVuY3Rpb25RdWV1ZTsK
IAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCiAgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJS
dW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CkBAIC0xNjYsMTAgKzE2NywxMCBAQCBjbGFzcyBS
dW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgVmVjdG9yPEdSZWZQdHI8
R01haW5Mb29wPj4gbV9tYWluTG9vcHM7CiAgICAgR1JlZlB0cjxHU291cmNlPiBtX3NvdXJjZTsK
ICNlbGlmIFVTRShHRU5FUklDX0VWRU5UX0xPT1ApCi0gICAgdm9pZCBzY2hlZHVsZShSZWZQdHI8
VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmKTsKLSAgICB2b2lkIHNjaGVkdWxlKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiwgUmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4mJik7CisgICAg
dm9pZCBzY2hlZHVsZShSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmKTsKKyAgICB2b2lk
IHNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVk
VGFzaz4mJik7CiAgICAgdm9pZCB3YWtlVXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKLSAgICB2
b2lkIHNjaGVkdWxlQW5kV2FrZVVwKFJlZlB0cjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+KTsK
KyAgICB2b2lkIHNjaGVkdWxlQW5kV2FrZVVwKFJlZjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYpOwogCiAgICAgZW51bSBjbGFzcyBSdW5Nb2RlIHsKICAgICAgICAgSXRlcmF0ZSwKQEAgLTE4
MSwxMiArMTgyLDEyIEBAIGNsYXNzIFJ1bkxvb3AgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVy
IHsKICAgICAgICAgU3RvcHBpbmcsCiAgICAgfTsKICAgICB2b2lkIHJ1bkltcGwoUnVuTW9kZSk7
Ci0gICAgYm9vbCBwb3B1bGF0ZVRhc2tzKFJ1bk1vZGUsIFN0YXR1cyYsIERlcXVlPFJlZlB0cjxU
aW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+PiYpOworICAgIGJvb2wgcG9wdWxhdGVUYXNrcyhSdW5N
b2RlLCBTdGF0dXMmLCBEZXF1ZTxSZWY8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPj4mKTsKIAog
ICAgIExvY2sgbV9sb29wTG9jazsKICAgICBDb25kaXRpb24gbV9yZWFkeVRvUnVuOwogICAgIENv
bmRpdGlvbiBtX3N0b3BDb25kaXRpb247Ci0gICAgVmVjdG9yPFJlZlB0cjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+PiBtX3NjaGVkdWxlczsKKyAgICBWZWN0b3I8UmVmPFRpbWVyQmFzZTo6U2No
ZWR1bGVkVGFzaz4+IG1fc2NoZWR1bGVzOwogICAgIFZlY3RvcjxTdGF0dXMqPiBtX21haW5Mb29w
czsKICAgICBib29sIG1fc2h1dGRvd24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9wZW5kaW5nVGFz
a3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmggYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAppbmRleCA0MjljMzhkODYzMDcwMDg4YTU1MjkxMjk2
OTdhNzg4OWQyMmVkNWEwLi5hNDdmMjFlMjBkMzFiYzhiZjczMThmNDFiOTU3YWIzNjZjMTkxNTAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuaApAQCAtMjcsMTEgKzI3LDExIEBACiAjaWZuZGVmIFdvcmtRdWV1ZV9o
CiAjZGVmaW5lIFdvcmtRdWV1ZV9oCiAKLSNpbmNsdWRlIDxjaHJvbm8+CiAjaW5jbHVkZSA8ZnVu
Y3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bkRpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgVVNFKENPQ09B
X0VWRU5UX0xPT1ApCkBAIC02NiwxMCArNjYsMTAgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDog
cHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNl
cmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKICAgICB2aXJ0dWFsIH5Xb3JrUXVldWUoKTsKIAot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYp
IG92ZXJyaWRlOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoQWZ0ZXIoc3Rk
OjpjaHJvbm86Om5hbm9zZWNvbmRzLCBGdW5jdGlvbjx2b2lkICgpPiYmKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoQWZ0ZXIoU2Vjb25kcywgRnVuY3Rp
b248dm9pZCgpPiYmKTsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjb25j
dXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAo
c2l6ZV90IGluZGV4KT4mKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY29u
Y3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
c2l6ZV90IGluZGV4KT4mKTsKIAogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIGRpc3Bh
dGNoX3F1ZXVlX3QgZGlzcGF0Y2hRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGF0Y2hRdWV1
ZTsgfQpAQCAtOTksNyArOTksNyBAQCBjbGFzcyBXb3JrUXVldWUgZmluYWwgOiBwdWJsaWMgRnVu
Y3Rpb25EaXNwYXRjaGVyIHsKICAgICB2b2xhdGlsZSBMT05HIG1faXNXb3JrVGhyZWFkUmVnaXN0
ZXJlZDsKIAogICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7Ci0gICAgVmVjdG9yPEZ1bmN0
aW9uPHZvaWQgKCk+PiBtX2Z1bmN0aW9uUXVldWU7CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQo
KT4+IG1fZnVuY3Rpb25RdWV1ZTsKIAogICAgIEhBTkRMRSBtX3RpbWVyUXVldWU7CiAjZWxpZiBV
U0UoR0xJQl9FVkVOVF9MT09QKSB8fCBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNlL1dURi93
dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCmluZGV4IDJkNjY0ZDkxZTYzMzg0NDNhODNlN2Nk
N2I5ODBhM2EyMDdhMzZjNjQuLmZmZGZiYTU0NGJlMTJmZThkMGE5MmQyMzQxNzc3YmE2YzJhZWQ2
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTMwLDE2ICsz
MCwxNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKEZ1
bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewotICAgIGRpc3BhdGNoX2FzeW5jKG1fZGlzcGF0
Y2hRdWV1ZSwgQmxvY2tQdHI8dm9pZCAoKT46OmZyb21DYWxsYWJsZShbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgZGlz
cGF0Y2hfYXN5bmMobV9kaXNwYXRjaFF1ZXVlLCBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9tQ2FsbGFi
bGUoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKV0gewogICAgICAgICBmdW5jdGlvbigpOwogICAgIH0pLmdldCgpKTsKIH0KIAotdm9p
ZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0
aW9uLCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQordm9pZCBXb3JrUXVldWU6OmRpc3Bh
dGNoQWZ0ZXIoU2Vjb25kcyBkdXJhdGlvbiwgRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQog
ewotICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIGR1
cmF0aW9uLmNvdW50KCkpLCBtX2Rpc3BhdGNoUXVldWUsIEJsb2NrUHRyPHZvaWQgKCk+Ojpmcm9t
Q2FsbGFibGUoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnVuY3Rpb24gPSBXVEZN
b3ZlKGZ1bmN0aW9uKV0geworICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFU
Q0hfVElNRV9OT1csIGR1cmF0aW9uLm5hbm9zZWNvbmRzKCkpLCBtX2Rpc3BhdGNoUXVldWUsIEJs
b2NrUHRyPHZvaWQoKT46OmZyb21DYWxsYWJsZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGZ1bmN0aW9uKCk7
CiAgICAgfSkuZ2V0KCkpOwogfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgV29ya1F1ZXVlOjpw
bGF0Zm9ybUludmFsaWRhdGUoKQogICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaFF1ZXVl
KTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9u
cywgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkIChzaXplX3QgaW5kZXgpPiYgZnVuY3Rpb24pCit2
b2lkIFdvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoc2l6ZV90IGluZGV4KT4mIGZ1bmN0aW9uKQogewogICAgIGRpc3Bh
dGNoX2FwcGx5KGl0ZXJhdGlvbnMsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hf
UVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF4oc2l6ZV90IGluZGV4KSB7CiAgICAgICAgIGZ1
bmN0aW9uKGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvTWFpblRo
cmVhZEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJp
Yy5jcHAKaW5kZXggYzg0OWM2OTUxZThiMmJhM2NmYjNlYTY4YWE0ZmI0NDg3YTQ5YmUwOS4uYjlm
MzNmM2RhNWJlM2RkY2E2NGMxMGNiMmYxYjhhMjUzYjUzODEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdm9pZCBp
bml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkKIAogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVu
Y3Rpb25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+KGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQpKTsKKyAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goRnVuY3Rpb248dm9pZCgpPigmZGlzcGF0Y2hGdW5j
dGlvbnNGcm9tTWFpblRocmVhZCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVu
TG9vcEdlbmVyaWMuY3BwCmluZGV4IDFmZDlhOTJjZTkyNDc1YzY4Zjc2NTViYjQ4YWM3NDk3NDQz
NzQyZGYuLjAyNjllY2ZhNWY4MjU0MzAyYTQ3ZGUzZjc0MDQzZmVjN2U1ODc1MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCkBAIC0zMiw5ICszMiw5IEBAIG5h
bWVzcGFjZSBXVEYgewogY2xhc3MgUnVuTG9vcDo6VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNjaGVkdWxlZFRhc2s+IHsKIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNjaGVkdWxlZFRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8U2No
ZWR1bGVkVGFzaz4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbiwgU2Vjb25kcyBp
bnRlcnZhbCwgYm9vbCByZXBlYXRpbmcpCisgICAgc3RhdGljIFJlZjxTY2hlZHVsZWRUYXNrPiBj
cmVhdGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uLCBTZWNvbmRzIGludGVydmFsLCBib29s
IHJlcGVhdGluZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2NoZWR1bGVk
VGFzayhXVEZNb3ZlKGZ1bmN0aW9uKSwgaW50ZXJ2YWwsIHJlcGVhdGluZykpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY2hlZHVsZWRUYXNrKFdURk1vdmUoZnVuY3Rpb24pLCBpbnRl
cnZhbCwgcmVwZWF0aW5nKSk7CiAgICAgfQogCiAgICAgU2NoZWR1bGVkVGFzayhGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24sIFNlY29uZHMgaW50ZXJ2YWwsIGJvb2wgcmVwZWF0aW5nKQpAQCAt
NzMsNyArNzMsNyBAQCBXVEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVsZWRUYXNrKTsKICAgICB9
CiAKICAgICBzdHJ1Y3QgRWFybGllc3RTY2hlZHVsZSB7Ci0gICAgICAgIGJvb2wgb3BlcmF0b3Io
KShjb25zdCBSZWZQdHI8U2NoZWR1bGVkVGFzaz4mIGxocywgY29uc3QgUmVmUHRyPFNjaGVkdWxl
ZFRhc2s+JiByaHMpCisgICAgICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBSZWY8U2NoZWR1bGVk
VGFzaz4mIGxocywgY29uc3QgUmVmPFNjaGVkdWxlZFRhc2s+JiByaHMpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBsaHMtPnNjaGVkdWxlZFRpbWVQb2ludCgpID4gcmhzLT5zY2hlZHVs
ZWRUaW1lUG9pbnQoKTsKICAgICAgICAgfQpAQCAtMTEyLDcgKzExMiw3IEBAIFJ1bkxvb3A6On5S
dW5Mb29wKCkKICAgICAgICAgbV9zdG9wQ29uZGl0aW9uLndhaXQobV9sb29wTG9jayk7CiB9CiAK
LWlubGluZSBib29sIFJ1bkxvb3A6OnBvcHVsYXRlVGFza3MoUnVuTW9kZSBydW5Nb2RlLCBTdGF0
dXMmIHN0YXR1c09mVGhpc0xvb3AsIERlcXVlPFJlZlB0cjxUaW1lckJhc2U6OlNjaGVkdWxlZFRh
c2s+PiYgZmlyZWRUaW1lcnMpCitpbmxpbmUgYm9vbCBSdW5Mb29wOjpwb3B1bGF0ZVRhc2tzKFJ1
bk1vZGUgcnVuTW9kZSwgU3RhdHVzJiBzdGF0dXNPZlRoaXNMb29wLCBEZXF1ZTxSZWY8VGltZXJC
YXNlOjpTY2hlZHVsZWRUYXNrPj4mIGZpcmVkVGltZXJzKQogewogICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9vcExvY2spOwogCkBAIC0xMzksMTIgKzEzOSwxMiBAQCBpbmxpbmUgYm9vbCBSdW5M
b29wOjpwb3B1bGF0ZVRhc2tzKFJ1bk1vZGUgcnVuTW9kZSwgU3RhdHVzJiBzdGF0dXNPZlRoaXNM
b29wLCBEZQogICAgIC8vIENoZWNrIGV4cGlyZWQgdGltZXJzLgogICAgIE1vbm90b25pY1RpbWUg
bm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgd2hpbGUgKCFtX3NjaGVkdWxlcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4gZWFybGll
c3QgPSBtX3NjaGVkdWxlcy5maXJzdCgpOworICAgICAgICBSZWY8VGltZXJCYXNlOjpTY2hlZHVs
ZWRUYXNrPiBlYXJsaWVzdCA9IG1fc2NoZWR1bGVzLmZpcnN0KCkuY29weVJlZigpOwogICAgICAg
ICBpZiAoZWFybGllc3QtPnNjaGVkdWxlZFRpbWVQb2ludCgpID4gbm93KQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIHN0ZDo6cG9wX2hlYXAobV9zY2hlZHVsZXMuYmVnaW4oKSwgbV9zY2hl
ZHVsZXMuZW5kKCksIFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzazo6RWFybGllc3RTY2hlZHVsZSgp
KTsKICAgICAgICAgbV9zY2hlZHVsZXMucmVtb3ZlTGFzdCgpOwotICAgICAgICBmaXJlZFRpbWVy
cy5hcHBlbmQoZWFybGllc3QpOworICAgICAgICBmaXJlZFRpbWVycy5hcHBlbmQoV1RGTW92ZShl
YXJsaWVzdCkpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTYwLDE0ICsxNjAsMTQg
QEAgdm9pZCBSdW5Mb29wOjpydW5JbXBsKFJ1bk1vZGUgcnVuTW9kZSkKICAgICAgICAgbV9tYWlu
TG9vcHMuYXBwZW5kKCZzdGF0dXNPZlRoaXNMb29wKTsKICAgICB9CiAKLSAgICBEZXF1ZTxSZWZQ
dHI8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPj4gZmlyZWRUaW1lcnM7CisgICAgRGVxdWU8UmVm
PFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4+IGZpcmVkVGltZXJzOwogICAgIHdoaWxlICh0cnVl
KSB7CiAgICAgICAgIGlmICghcG9wdWxhdGVUYXNrcyhydW5Nb2RlLCBzdGF0dXNPZlRoaXNMb29w
LCBmaXJlZFRpbWVycykpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gRGlzcGF0
Y2ggc2NoZWR1bGVkIHRpbWVycy4KICAgICAgICAgd2hpbGUgKCFmaXJlZFRpbWVycy5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+IHRhc2sg
PSBmaXJlZFRpbWVycy50YWtlRmlyc3QoKTsKKyAgICAgICAgICAgIFJlZjxUaW1lckJhc2U6OlNj
aGVkdWxlZFRhc2s+IHRhc2sgPSBmaXJlZFRpbWVycy50YWtlRmlyc3QoKTsKICAgICAgICAgICAg
IGlmICh0YXNrLT5maXJlZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gUmVzY2hlZHVsZSBiZWNh
dXNlIHRoZSB0aW1lciByZXF1aXJlcyByZXBlYXRpbmcuCiAgICAgICAgICAgICAgICAgLy8gU2lu
Y2Ugd2Ugd2lsbCBxdWVyeSB0aGUgdGltZXJzJyB0aW1lIHBvaW50cyBiZWZvcmUgc2xlZXBpbmcs
CkBAIC0yMTgsMzAgKzIxOCwzMCBAQCB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiAgICAgd2FrZVVw
KGxvY2tlcik7CiB9CiAKLXZvaWQgUnVuTG9vcDo6c2NoZWR1bGUoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImLCBSZWZQdHI8VGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrPiYmIHRhc2spCit2b2lkIFJ1bkxv
b3A6OnNjaGVkdWxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgUmVmPFRpbWVyQmFzZTo6U2NoZWR1
bGVkVGFzaz4mJiB0YXNrKQogewogICAgIG1fc2NoZWR1bGVzLmFwcGVuZChXVEZNb3ZlKHRhc2sp
KTsKICAgICBzdGQ6OnB1c2hfaGVhcChtX3NjaGVkdWxlcy5iZWdpbigpLCBtX3NjaGVkdWxlcy5l
bmQoKSwgVGltZXJCYXNlOjpTY2hlZHVsZWRUYXNrOjpFYXJsaWVzdFNjaGVkdWxlKCkpOwogfQog
Ci12b2lkIFJ1bkxvb3A6OnNjaGVkdWxlKFJlZlB0cjxUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s+
JiYgdGFzaykKK3ZvaWQgUnVuTG9vcDo6c2NoZWR1bGUoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVk
VGFzaz4mJiB0YXNrKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwogICAg
IHNjaGVkdWxlKGxvY2tlciwgV1RGTW92ZSh0YXNrKSk7CiB9CiAKLXZvaWQgUnVuTG9vcDo6c2No
ZWR1bGVBbmRXYWtlVXAoUmVmUHRyPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFzaz4gdGFzaykKK3Zv
aWQgUnVuTG9vcDo6c2NoZWR1bGVBbmRXYWtlVXAoUmVmPFRpbWVyQmFzZTo6U2NoZWR1bGVkVGFz
az4mJiB0YXNrKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwogICAgIHNj
aGVkdWxlKGxvY2tlciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgd2FrZVVwKGxvY2tlcik7CiB9CiAK
LXZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgZGVs
YXksIEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFJ1bkxvb3A6OmRpc3BhdGNo
QWZ0ZXIoU2Vjb25kcyBkZWxheSwgRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9vcExvY2spOwogICAgIGJvb2wgcmVwZWF0aW5nID0gZmFs
c2U7Ci0gICAgc2NoZWR1bGUobG9ja2VyLCBUaW1lckJhc2U6OlNjaGVkdWxlZFRhc2s6OmNyZWF0
ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgU2Vjb25kcyhkZWxheS5jb3VudCgpIC8gMTAwMC4wIC8gMTAw
MC4wIC8gMTAwMC4wKSwgcmVwZWF0aW5nKSk7CisgICAgc2NoZWR1bGUobG9ja2VyLCBUaW1lckJh
c2U6OlNjaGVkdWxlZFRhc2s6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgZGVsYXksIHJlcGVh
dGluZykpOwogICAgIHdha2VVcChsb2NrZXIpOwogfQogCkBAIC0yNjksNyArMjY5LDcgQEAgdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBpbnRlcnZhbCwgYm9vbCByZXBlYXRp
bmcpCiAgICAgbV9zY2hlZHVsZWRUYXNrID0gU2NoZWR1bGVkVGFzazo6Y3JlYXRlKFt0aGlzXSB7
CiAgICAgICAgIGZpcmVkKCk7CiAgICAgfSwgU2Vjb25kcyhpbnRlcnZhbCksIHJlcGVhdGluZyk7
Ci0gICAgbV9ydW5Mb29wLnNjaGVkdWxlQW5kV2FrZVVwKG1fc2NoZWR1bGVkVGFzayk7CisgICAg
bV9ydW5Mb29wLnNjaGVkdWxlQW5kV2FrZVVwKCptX3NjaGVkdWxlZFRhc2spOwogfQogCiB2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9n
ZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3Jr
UXVldWVHZW5lcmljLmNwcAppbmRleCBmNTk0ZTI0MDExNmQ0ZTA0M2Q0ZGMzYTNmNmNmN2MwN2Q0
YjIzNDQyLi45MzRhMzhjYmJlNjRiYmZmYWViNGQzN2RmMWI4ZDk5NTJiODg1MzQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTU2LDcgKzU2LDcg
QEAgdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgfQogfQogCi12b2lk
IFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKK3ZvaWQg
V29ya1F1ZXVlOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAg
UmVmUHRyPFdvcmtRdWV1ZT4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3J1bkxvb3AtPmRpc3BhdGNo
KFtwcm90ZWN0LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CkBAIC02NCw3ICs2NCw3
IEBAIHZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9u
KQogICAgIH0pOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9u
bzo6bmFub3NlY29uZHMgZGVsYXksIEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lk
IFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihTZWNvbmRzIGRlbGF5LCBGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCiB7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gcHJvdGVjdCh0aGlzKTsKICAg
ICBtX3J1bkxvb3AtPmRpc3BhdGNoQWZ0ZXIoZGVsYXksIFtwcm90ZWN0LCBmdW5jdGlvbiA9IFdU
Rk1vdmUoZnVuY3Rpb24pXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxv
b3BHTGliLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCmluZGV4IDky
N2NlMzI1NGY4YjU2Mjc4YmE2YjdmZjAyMWMwZGYwYWE1ZjMyMTYuLmY1YWY2OTBmYzdiZDU4ZWFm
OTFlMWQzMmY5ZGRiMDU3Y2RlNWM3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3Bw
CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogY2xhc3MgRGlzcGF0
Y2hBZnRlckNvbnRleHQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIERpc3BhdGNoQWZ0ZXJDb250ZXh0KEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCisg
ICAgRGlzcGF0Y2hBZnRlckNvbnRleHQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogICAg
ICAgICA6IG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCiAgICAgewogICAgIH0KQEAgLTEz
NSwxMiArMTM1LDEyIEBAIGNsYXNzIERpc3BhdGNoQWZ0ZXJDb250ZXh0IHsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgRnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsKKyAgICBGdW5jdGlvbjx2
b2lkKCk+IG1fZnVuY3Rpb247CiB9OwogCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoQWZ0ZXIoc3Rk
OjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0
aW9uKQordm9pZCBSdW5Mb29wOjpkaXNwYXRjaEFmdGVyKFNlY29uZHMgZHVyYXRpb24sIEZ1bmN0
aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9
IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2Fz
dDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihkdXJhdGlvbikuY291bnQoKSkpOworICAgIEdS
ZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KGR1
cmF0aW9uLm1pbGxpc2Vjb25kcygpKSk7CiAgICAgZ19zb3VyY2Vfc2V0X25hbWUoc291cmNlLmdl
dCgpLCAiW1dlYktpdF0gUnVuTG9vcCBkaXNwYXRjaEFmdGVyIik7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGlzcGF0Y2hBZnRlckNvbnRleHQ+IGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPERp
c3BhdGNoQWZ0ZXJDb250ZXh0PihXVEZNb3ZlKGZ1bmN0aW9uKSk7CkBAIC0xNzksMjUgKzE3OSwy
MCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0UHJpb3JpdHkoaW50IHByaW9yaXR5KQog
CiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dXBkYXRlUmVhZHlUaW1lKCkKIHsKLSAgICBpZiAo
IW1fZmlyZUludGVydmFsLmNvdW50KCkpIHsKKyAgICBpZiAoIW1fZmlyZUludGVydmFsKSB7CiAg
ICAgICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fc291cmNlLmdldCgpLCAwKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGdpbnQ2NCBjdXJyZW50VGltZSA9IGdfZ2V0X21vbm90
b25pY190aW1lKCk7Ci0gICAgZ2ludDY0IHRhcmdldFRpbWUgPSBjdXJyZW50VGltZSArIHN0ZDo6
bWluPGdpbnQ2ND4oR19NQVhJTlQ2NCAtIGN1cnJlbnRUaW1lLCBtX2ZpcmVJbnRlcnZhbC5jb3Vu
dCgpKTsKKyAgICBnaW50NjQgdGFyZ2V0VGltZSA9IGN1cnJlbnRUaW1lICsgc3RkOjptaW48Z2lu
dDY0PihHX01BWElOVDY0IC0gY3VycmVudFRpbWUsIG1fZmlyZUludGVydmFsLm1pY3Jvc2Vjb25k
cygpKTsKICAgICBBU1NFUlQodGFyZ2V0VGltZSA+PSBjdXJyZW50VGltZSk7CiAgICAgZ19zb3Vy
Y2Vfc2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCksIHRhcmdldFRpbWUpOwogfQogCiB2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBl
YXQpCiB7Ci0gICAgYXV0byBpbnRlcnZhbER1cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9u
PGRvdWJsZT4oZmlyZUludGVydmFsKTsKLSAgICBhdXRvIHNhZmVEdXJhdGlvbiA9IHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHM6Om1heCgpOwotICAgIGlmIChpbnRlcnZhbER1cmF0aW9uIDwgc2Fm
ZUR1cmF0aW9uKQotICAgICAgICBzYWZlRHVyYXRpb24gPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25f
Y2FzdDxzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzPihpbnRlcnZhbER1cmF0aW9uKTsKLQotICAg
IG1fZmlyZUludGVydmFsID0gc2FmZUR1cmF0aW9uOworICAgIG1fZmlyZUludGVydmFsID0gU2Vj
b25kcyhmaXJlSW50ZXJ2YWwpOwogICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CiAgICAgdXBk
YXRlUmVhZHlUaW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1
ZXVlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IGY0
YzRiOGM3N2RjZTk5NWY1N2YyNTY3MDJjMWY5Y2VmOGM2NWE1YWEuLmU4MTU0NzczNzQ2NzM0NjY5
NmQwNmI1YWM0MDhhYTBlMzBjYzA4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9X
b3JrUXVldWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3Bw
CkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwZXJmb3JtV29ya09uUmVnaXN0ZXJl
ZFdvcmtUaHJlYWQoKQogICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2subG9jaygpOwogCiAgICAgd2hp
bGUgKCFtX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFZlY3RvcjxGdW5jdGlv
bjx2b2lkICgpPj4gZnVuY3Rpb25RdWV1ZTsKKyAgICAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQo
KT4+IGZ1bmN0aW9uUXVldWU7CiAgICAgICAgIG1fZnVuY3Rpb25RdWV1ZS5zd2FwKGZ1bmN0aW9u
UXVldWUpOwogCiAgICAgICAgIC8vIEFsbG93IG1vcmUgd29yayB0byBiZSBzY2hlZHVsZWQgd2hp
bGUgd2UncmUgbm90IHVzaW5nIHRoZSBxdWV1ZSBkaXJlY3RseS4KQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAgICAgOjpEZWxldGVUaW1lclF1
ZXVlRXgobV90aW1lclF1ZXVlLCAwKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKEZ1
bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1
bmN0aW9uUXVldWVMb2NrKTsKICAgICByZWYoKTsKQEAgLTExOCw3ICsxMTgsNyBAQCBzdHJ1Y3Qg
VGltZXJDb250ZXh0IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRpbWVyQ29udGV4dD4g
ewogICAgIHN0YXRpYyBSZWZQdHI8VGltZXJDb250ZXh0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgVGltZXJDb250ZXh0KTsgfQogCiAgICAgV29ya1F1ZXVlKiBxdWV1ZTsKLSAgICBG
dW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9u
OwogICAgIE11dGV4IHRpbWVyTXV0ZXg7CiAgICAgSEFORExFIHRpbWVyOwogCkBAIC0xNDksNyAr
MTQ5LDcgQEAgdm9pZCBXb3JrUXVldWU6OnRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9P
TEVBTiB0aW1lck9yV2FpdEZpcmVkKQogICAgIH0KIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3Bh
dGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lk
ICgpPiYmIGZ1bmN0aW9uKQordm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoU2Vjb25kcyBk
dXJhdGlvbiwgRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChtX3Rp
bWVyUXVldWUpOwogICAgIHJlZigpOwpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgV29ya1F1ZXVl
OjpkaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBkdXJhdGlvbiwgRnVuY3Rp
b248dm9pZCAoCiAgICAgICAgIC8vIHRpbWVyIGhhbmRsZSBoYXMgYmVlbiBzdG9yZWQgaW4gaXQu
CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2soY29udGV4dC0+dGltZXJNdXRleCk7CiAKLSAgICAg
ICAgaW50NjRfdCBtaWxsaXNlY29uZHMgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzPihkdXJhdGlvbikuY291bnQoKTsKKyAgICAgICAgaW50NjRf
dCBtaWxsaXNlY29uZHMgPSBkdXJhdGlvbi5taWxsaXNlY29uZHMoKTsKIAogICAgICAgICAvLyBG
cm9tIGVtcGlyaWNhbCB0ZXN0aW5nLCB3ZSd2ZSBzZWVuIENyZWF0ZVRpbWVyUXVldWVUaW1lcigp
IHNvbWV0aW1lcyBmaXJlIHVwIHRvIDUrIG1zIGVhcmx5LgogICAgICAgICAvLyBUaGlzIGNhdXNl
cyBoYXZvYyBmb3IgY2xpZW50cyBvZiB0aGlzIGNvZGUgdGhhdCBleHBlY3QgdG8gbm90IGJlIGNh
bGxlZCBiYWNrIHVudGlsIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApp
bmRleCA2MDE3YzU3YmVkYWFjM2IzMWJhMjAxYWQzZTk1M2JiZTE3Mjk4YWY5Li4wNjBjNjNhZTc5
MmQ5NTk0NDgxMzk3NmYyOWRiODRhOTA0MTRlZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQogewogICAgIC8vIElmIHRoZSBjb25u
ZWN0aW9uIGhhcyBiZWVuIGNsb3NlZCBhbmQgd2UgaGF2ZW4ndCByZXNwb25kZWQgaW4gdGhlIG1h
aW4gdGhyZWFkIGZvciAxMCBzZWNvbmRzCiAgICAgLy8gdGhlIHByb2Nlc3Mgd2lsbCBleGl0IGZv
cmNpYmx5LgotICAgIGF1dG8gd2F0Y2hkb2dEZWxheSA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEw
KTsKKyAgICBhdXRvIHdhdGNoZG9nRGVsYXkgPSAxMF9zOwogCiAgICAgV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuQ2hpbGRQcm9jZXNzLldhdGNoRG9nUXVldWUiKS0+ZGlzcGF0
Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAgIC8vIFdlIHVzZSBfZXhpdCBoZXJl
IHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVh
ZCBhbmQgd2UgZG9uJ3Qgd2FudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCmluZGV4IDY3ZWNiODk0NTIxZWFm
YTY0MWM0NTBmMmJlOWUyODRjMGJmODlkM2MuLjYzMjY1N2JjMDBiZWI5ZWEwZjk2ZTAxYjFiOWZh
MDBiZWU5YjU5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdl
L0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBjb25zdCBhdXRvIGRhdGFiYXNlVXBkYXRl
SW50ZXJ2YWwgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcygxKTsKK3N0YXRpYyBjb25zdCBhdXRvIGRh
dGFiYXNlVXBkYXRlSW50ZXJ2YWwgPSAxX3M7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bUl0
ZW1zVG9VcGRhdGUgPSAxMDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlWDExLmNwcAppbmRleCA2
NjVlMjU3ODk1MDVhNjE5MGZlYmRhODhjOTE4NWM1ODFlMDc1YWMzLi5iNDJkZDZjYTRmZWM0NTE1
NzE2MzRiNGRmNDg4ZjRhN2Y4NmJiMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVgxMS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VYMTEuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgYm9vbCBBY2NlbGVyYXRlZFN1cmZhY2VYMTE6OnJlc2l6ZShj
b25zdCBJbnRTaXplJiBzaXplKQogICAgIFhGbHVzaChtX2Rpc3BsYXkpOwogCiAgICAgLy8gUmVs
ZWFzZSB0aGUgcHJldmlvdXMgcGl4bWFwIGxhdGVyIHRvIGdpdmUgc29tZSB0aW1lIHRvIHRoZSBV
SSBwcm9jZXNzIHRvIHVwZGF0ZS4KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2hBZnRlcihz
dGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwgW3BpeG1hcCA9IFdURk1vdmUobV9waXhtYXApXSB7IH0p
OworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaEFmdGVyKDVfcywgW3BpeG1hcCA9IFdURk1v
dmUobV9waXhtYXApXSB7IH0pOwogICAgIGNyZWF0ZVBpeG1hcCgpOwogICAgIHJldHVybiB0cnVl
OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDgwZGE4MjI4ZGNhNzdlOWI5Mzg2ZDM5ZWJlNWM4ZjU0MmNmM2NiOWQuLmU0ZjlmMDg0NDVjN2Iw
NWY2NjhkNDM2ZWM3MTIyZDFkYTQ1NmEwYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMy0xMiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBDbGVhbiB1
cCBSdW5Mb29wIGFuZCBXb3JrUXVldWUgd2l0aCBTZWNvbmRzIGFuZCBGdW5jdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NTM3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKIDIwMTctMDMtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbmFibGUgYXN5bmMgaW1hZ2UgZGVjb2RpbmcgZm9yIGxhcmdlIGltYWdl
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKaW5kZXggN2Uy
NzdlOTRjNDdjZTNjZTJmYjgyNTJmNmNkYzNhNTVhZjM3YmU3OS4uYzlhMTRjZTBkNDcwNmFiNDRk
NTI4ZDVkNTY1NmJiYzVmODlhNGVmNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Xb3JrUXVldWUuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2lt
cGxlKQogCiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIG1fZnVuY3Rp
b25DYWxsT3JkZXIuYXBwZW5kKGxvbmdUZXN0TGFiZWwpOwotICAgICAgICBzdGQ6OnRoaXNfdGhy
ZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKDEwMCkpOworICAgICAgICBz
dGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IoMTAwbnMpOwogICAgICAgICBjYWxsZWRMb25nVGVz
dCA9IHRydWU7CiAgICAgfSk7CiAKQEAgLTEyMCw3ICsxMjAsNyBAQCBURVNUKFdURl9Xb3JrUXVl
dWUsIFR3b1F1ZXVlcykKICAgICB9KTsKIAogICAgIHF1ZXVlMi0+ZGlzcGF0Y2goWyZdKHZvaWQp
IHsKLSAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMoNTApKTsKKyAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKDUwbXMp
OwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAKQEAgLTE3OCw3ICsxNzgs
NyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiAgICAgICAgIG1fdGVzdENv
bXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAotICAgIHF1ZXVlLT5kaXNwYXRjaEFmdGVy
KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSwgWyZdKHZvaWQpIHsKKyAgICBxdWV1ZS0+
ZGlzcGF0Y2hBZnRlcig1MDBfbXMsIFsmXSh2b2lkKSB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKGRpc3BhdGNo
QWZ0ZXJMYWJlbCk7CiAgICAgICAgIGNhbGxlZERpc3BhdGNoQWZ0ZXJUZXN0ID0gdHJ1ZTsKQEAg
LTIxMiw3ICsyMTIsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERlc3Ryb3lPblNlbGYpCiAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICB7CiAgICAgICAgICAgICBhdXRv
IHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRj
aEFmdGVyIik7Ci0gICAgICAgICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7CisgICAgICAgICAgICBxdWV1ZS0+ZGlzcGF0
Y2hBZnRlcig1MDBfbXMsIFsmXSh2b2lkKSB7CiAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hBZnRlclRlc3RTdGFydGVkLndh
aXQobG9jaywgWyZdIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304372</attachid>
            <date>2017-03-14 04:52:15 -0700</date>
            <delta_ts>2017-03-14 05:37:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169537-20170314205213.patch</filename>
            <type>text/plain</type>
            <size>4219</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyZmZmNzA4OGVjNGUyNzQ2NTEzZjhk
ZmJkNzIzZDM0NjA1MmRhMDIuLjUyYmUzYmYwNTcyYmE2YWNjYmQxOTMyMWNlZTI2NDI0ZGM3ZTVh
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDMtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2xhbXAgU2Vjb25kcyB0byBpbnRlZ2VyIHVz
aW5nIGNsYW1wVG8gYW5kIGNsYW1wVG82NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiB1c2luZyB0aGUgdXN1YWwgc3RhdGljX2Nhc3QsIGluZmlu
aXR5IGJlY29tZXMgMCBhY2NpZGVudGFsbHkuCisgICAgICAgIEl0IGlzIG5vdCBpbnRlbmRlZCB2
YWx1ZSB3aGVuIHVzaW5nIFNlY29uZHMgZm9yIHRpbWVvdXQgdmFsdWUuCisgICAgICAgIEluc3Rl
YWQsIHdlIHVzZSBjbGFtcFRvIGFuZCBjbGFtcFRvNjQgdG8gY29udmVydCBTZWNvbmRzIHRvCisg
ICAgICAgIGludGVnZXIgdmFsdWVzIHRvIHBhc3MgdGhlbSB0byB0aGUgc3lzdGVtIGZ1bmN0aW9u
cy4KKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6CisgICAgICAgIChjbGFtcFRvNjQpOgor
ICAgICAgICAqIHd0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHA6CisgICAgICAgIChXVEY6Oldv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcik6CisgICAgICAgICogd3RmL2dsaWIvUnVuTG9vcEdMaWIu
Y3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpkaXNwYXRjaEFmdGVyKToKKyAgICAgICAgKFdU
Rjo6UnVuTG9vcDo6VGltZXJCYXNlOjp1cGRhdGVSZWFkeVRpbWUpOgorCiAyMDE3LTAzLTEzICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdW0xp
bnV4XSBJbXBsZW1lbnQgVk1UcmFwIGluIExpbnV4IHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NYXRoRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKaW5kZXgg
YzEwOTNmYTY4MDY4MWEyMjY2M2IyOWI3NzIyMTEyZjdkOTljYmRkMy4uNThmZDRiODM2YWZhZTYw
MmQ1MGFiNmEzZjI4MjYyNDE3ZDNkMDNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWF0
aEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaApAQCAtMTkzLDYgKzE5
MywxOCBAQCBpbmxpbmUgaW50IGNsYW1wVG9JbnRlZ2VyKFQgeCkKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pih4KTsKIH0KIAorLy8gRXhwbGljaXRseSBjbGFtcCBkb3VibGUgdmFsdWUgdG8g
NjQgcmFuZ2UuCisvLyBLZWVwIGluIG1pbmQgdGhhdCBkb3VibGUgY2FuIG9ubHkgcmVwcmVzZW50
IDUzYml0IGludGVnZXIgcHJlY2lzZWx5LgordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQg
Y2xhbXBUbzY0KGRvdWJsZSB2YWx1ZSwgVCBtaW4gPSBkZWZhdWx0TWluaW11bUZvckNsYW1wPFQ+
KCksIFQgbWF4ID0gZGVmYXVsdE1heGltdW1Gb3JDbGFtcDxUPigpKQoreworICAgIHN0YXRpY19h
c3NlcnQoc2l6ZW9mKFQpID09IHNpemVvZih1aW50NjRfdCksICIiKTsKKyAgICBpZiAodmFsdWUg
Pj0gc3RhdGljX2Nhc3Q8ZG91YmxlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlm
ICh2YWx1ZSA8PSBzdGF0aWNfY2FzdDxkb3VibGU+KG1pbikpCisgICAgICAgIHJldHVybiBtaW47
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KHZhbHVlKTsKK30KKwogaW5saW5lIGJvb2wgaXNX
aXRoaW5JbnRSYW5nZShmbG9hdCB4KQogewogICAgIHJldHVybiB4ID4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWluKCkpICYmIHggPCBzdGF0aWNfY2FzdDxm
bG9hdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9Xb3JrUXVldWVDb2NvYS5jcHAKaW5kZXggZmZkZmJhNTQ0YmUxMmZlOGQwYTkyZDIzNDE3Nzdi
YTZjMmFlZDZkZS4uNjYyZDMzNjUxMmY5YjZhNDI4MTkzODUxZGIxNTkwNzQxNjg3NTUzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtMzksNyArMzksNyBAQCB2
b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogCiB2
b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihTZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShE
SVNQQVRDSF9USU1FX05PVywgZHVyYXRpb24ubmFub3NlY29uZHMoKSksIG1fZGlzcGF0Y2hRdWV1
ZSwgQmxvY2tQdHI8dm9pZCgpPjo6ZnJvbUNhbGxhYmxlKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsKKyAgICBkaXNwYXRjaF9h
ZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBjbGFtcFRvNjQ8aW50NjRfdD4o
ZHVyYXRpb24ubmFub3NlY29uZHMoKSkpLCBtX2Rpc3BhdGNoUXVldWUsIEJsb2NrUHRyPHZvaWQo
KT46OmZyb21DYWxsYWJsZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmdW5jdGlv
biA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGZ1bmN0aW9uKCk7CiAgICAgfSkuZ2V0
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAppbmRleCBmNWFmNjkwZmM3YmQ1
OGVhZjkxZTFkMzJmOWRkYjA1N2NkZTVjN2I3Li42NTg1OGNmYjc2Mzk5MGM5NzY0YzlkMzlkYWE3
OWVhYTM5N2YyZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGli
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcApAQCAtMTQwLDcg
KzE0MCw3IEBAIGNsYXNzIERpc3BhdGNoQWZ0ZXJDb250ZXh0IHsKIAogdm9pZCBSdW5Mb29wOjpk
aXNwYXRjaEFmdGVyKFNlY29uZHMgZHVyYXRpb24sIEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikKIHsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRf
c291cmNlX25ldyhkdXJhdGlvbi5taWxsaXNlY29uZHMoKSkpOworICAgIEdSZWZQdHI8R1NvdXJj
ZT4gc291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KGNsYW1wVG88Z3VpbnQ+
KGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpKSkpOwogICAgIGdfc291cmNlX3NldF9uYW1lKHNvdXJj
ZS5nZXQoKSwgIltXZWJLaXRdIFJ1bkxvb3AgZGlzcGF0Y2hBZnRlciIpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERpc3BhdGNoQWZ0ZXJDb250ZXh0PiBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1
ZTxEaXNwYXRjaEFmdGVyQ29udGV4dD4oV1RGTW92ZShmdW5jdGlvbikpOwpAQCAtMTg1LDcgKzE4
NSw3IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp1cGRhdGVSZWFkeVRpbWUoKQogICAgIH0K
IAogICAgIGdpbnQ2NCBjdXJyZW50VGltZSA9IGdfZ2V0X21vbm90b25pY190aW1lKCk7Ci0gICAg
Z2ludDY0IHRhcmdldFRpbWUgPSBjdXJyZW50VGltZSArIHN0ZDo6bWluPGdpbnQ2ND4oR19NQVhJ
TlQ2NCAtIGN1cnJlbnRUaW1lLCBtX2ZpcmVJbnRlcnZhbC5taWNyb3NlY29uZHMoKSk7CisgICAg
Z2ludDY0IHRhcmdldFRpbWUgPSBjdXJyZW50VGltZSArIHN0ZDo6bWluPGdpbnQ2ND4oR19NQVhJ
TlQ2NCAtIGN1cnJlbnRUaW1lLCBjbGFtcFRvNjQ8Z2ludDY0PihtX2ZpcmVJbnRlcnZhbC5taWNy
b3NlY29uZHMoKSkpOwogICAgIEFTU0VSVCh0YXJnZXRUaW1lID49IGN1cnJlbnRUaW1lKTsKICAg
ICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSwgdGFyZ2V0VGltZSk7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304373</attachid>
            <date>2017-03-14 05:38:04 -0700</date>
            <delta_ts>2017-03-14 08:43:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169537-20170314213803.patch</filename>
            <type>text/plain</type>
            <size>9135</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMyZmZmNzA4OGVjNGUyNzQ2NTEzZjhk
ZmJkNzIzZDM0NjA1MmRhMDIuLmYyNmQ2ZTY1ZjFmOGZhNGU2YzE4ZGNlOTFmZTI4MDYyZGNkNDdm
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDMtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkIHNlY29uZHNBczxUPiBtZXRob2RzIHRv
IFNlY29uZHMgdG8gY29udmVydCBpdCB0byBpbnRlZ2VycyB3aXRoIGNsYW1wCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk1MzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHVzaW5nIHRoZSB1c3Vh
bCBzdGF0aWNfY2FzdCwgaW5maW5pdHkgYmVjb21lcyAwIGFjY2lkZW50YWxseS4KKyAgICAgICAg
SXQgaXMgbm90IGludGVuZGVkIHZhbHVlIHdoZW4gdXNpbmcgU2Vjb25kcyBmb3IgdGltZW91dCB2
YWx1ZS4KKyAgICAgICAgSW5zdGVhZCwgd2UgdXNlIGNsYW1wVG9BY2NlcHRpbmc2NCB0byBjb252
ZXJ0IFNlY29uZHMgdG8KKyAgICAgICAgaW50ZWdlciB2YWx1ZXMgdG8gcGFzcyB0aGVtIHRvIHRo
ZSBzeXN0ZW0gZnVuY3Rpb25zLgorCisgICAgICAgICogd3RmL01hdGhFeHRyYXMuaDoKKyAgICAg
ICAgKGNsYW1wVG9BY2NlcHRpbmc2NCk6CisgICAgICAgICogd3RmL1NlY29uZHMuaDoKKyAgICAg
ICAgKFdURjo6U2Vjb25kczo6bWludXRlc0FzKToKKyAgICAgICAgKFdURjo6U2Vjb25kczo6c2Vj
b25kc0FzKToKKyAgICAgICAgKFdURjo6U2Vjb25kczo6bWlsbGlzZWNvbmRzQXMpOgorICAgICAg
ICAoV1RGOjpTZWNvbmRzOjptaWNyb3NlY29uZHNBcyk6CisgICAgICAgIChXVEY6OlNlY29uZHM6
Om5hbm9zZWNvbmRzQXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHA6
CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcik6CisgICAgICAgICogd3Rm
L2dsaWIvUnVuTG9vcEdMaWIuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpkaXNwYXRjaEFm
dGVyKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp1cGRhdGVSZWFkeVRpbWUp
OgorCiAyMDE3LTAzLTEzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CiAgICAgICAgIFtKU0NdW0xpbnV4XSBJbXBsZW1lbnQgVk1UcmFwIGluIExpbnV4IHBvcnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9N
YXRoRXh0cmFzLmgKaW5kZXggYzEwOTNmYTY4MDY4MWEyMjY2M2IyOWI3NzIyMTEyZjdkOTljYmRk
My4uMmM3YjE0ODU5Y2JmOWY5OGFlZGUxZDIyYTUyMGI1MGQ1YTBjN2ZiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRy
YXMuaApAQCAtMTkzLDYgKzE5MywxNyBAQCBpbmxpbmUgaW50IGNsYW1wVG9JbnRlZ2VyKFQgeCkK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKIH0KIAorLy8gRXhwbGljaXRseSBhY2Nl
cHQgNjRiaXQgcmVzdWx0IHdoZW4gY2xhbXBpbmcgZG91YmxlIHZhbHVlLgorLy8gS2VlcCBpbiBt
aW5kIHRoYXQgZG91YmxlIGNhbiBvbmx5IHJlcHJlc2VudCA1M2JpdCBpbnRlZ2VyIHByZWNpc2Vs
eS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUIGNsYW1wVG9BY2NlcHRpbmc2NChkb3Vi
bGUgdmFsdWUsIFQgbWluID0gZGVmYXVsdE1pbmltdW1Gb3JDbGFtcDxUPigpLCBUIG1heCA9IGRl
ZmF1bHRNYXhpbXVtRm9yQ2xhbXA8VD4oKSkKK3sKKyAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nh
c3Q8ZG91YmxlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlmICh2YWx1ZSA8PSBz
dGF0aWNfY2FzdDxkb3VibGU+KG1pbikpCisgICAgICAgIHJldHVybiBtaW47CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFQ+KHZhbHVlKTsKK30KKwogaW5saW5lIGJvb2wgaXNXaXRoaW5JbnRSYW5n
ZShmbG9hdCB4KQogewogICAgIHJldHVybiB4ID4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50Pjo6bWluKCkpICYmIHggPCBzdGF0aWNfY2FzdDxmbG9hdD4oc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9T
ZWNvbmRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmgKaW5kZXggNjI2ODc2MTRmNWQ3YWUz
NzNkYmZmMmI5MTM0ODAxMmRmMmFiMzc1OS4uZDA3ZmZlZjc4YjVhMzVlMmMzYjUwN2MwNzZlYWM0
ZGQ3MjM0ZGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2Vjb25kcy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1NlY29uZHMuaApAQCAtNTEsNiArNTEsMTMgQEAgY2xhc3MgU2Vjb25kcyB7
CiAgICAgZG91YmxlIG1pbGxpc2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIHNlY29uZHMoKSAqIDEw
MDA7IH0KICAgICBkb3VibGUgbWljcm9zZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gbWlsbGlzZWNv
bmRzKCkgKiAxMDAwOyB9CiAgICAgZG91YmxlIG5hbm9zZWNvbmRzKCkgY29uc3QgeyByZXR1cm4g
bWljcm9zZWNvbmRzKCkgKiAxMDAwOyB9CisKKyAgICAvLyBLZWVwIGluIG1pbmQgdGhhdCBTZWNv
bmRzIGlzIGhlbGQgaW4gZG91YmxlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHJhbmdlIG9mIDUz
Yml0IGludGVnZXIsIHRoZSByZXN1bHQgbWF5IG5vdCBiZSBwcmVjaXNlLgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IFQgbWludXRlc0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
aW50ZWdyYWw8VD46OnZhbHVlLCAiIik7IHJldHVybiBjbGFtcFRvQWNjZXB0aW5nNjQ8VD4obWlu
dXRlcygpKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgc2Vjb25kc0FzKCkgY29uc3Qg
eyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLCAiIik7IHJldHVybiBj
bGFtcFRvQWNjZXB0aW5nNjQ8VD4oc2Vjb25kcygpKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IFQgbWlsbGlzZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRl
Z3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaWxsaXNl
Y29uZHMoKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG1pY3Jvc2Vjb25kc0FzKCkg
Y29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLCAiIik7IHJl
dHVybiBjbGFtcFRvQWNjZXB0aW5nNjQ8VD4obWljcm9zZWNvbmRzKCkpOyB9CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gVCBuYW5vc2Vjb25kc0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLCAiIik7IHJldHVybiBjbGFtcFRvQWNjZXB0aW5nNjQ8
VD4obmFub3NlY29uZHMoKSk7IH0KICAgICAKICAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMg
ZnJvbU1pbnV0ZXMoZG91YmxlIG1pbnV0ZXMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvV29y
a1F1ZXVlQ29jb2EuY3BwCmluZGV4IGZmZGZiYTU0NGJlMTJmZThkMGE5MmQyMzQxNzc3YmE2YzJh
ZWQ2ZGUuLjFhNzIxOWFkMjU5ZWQ3NTk3MmE1YTQ1OGM1YzQ4NDk3YTM4OGU0ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBX
b3JrUXVldWU6OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIAogdm9pZCBX
b3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoU2Vjb25kcyBkdXJhdGlvbiwgRnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQogewotICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFU
Q0hfVElNRV9OT1csIGR1cmF0aW9uLm5hbm9zZWNvbmRzKCkpLCBtX2Rpc3BhdGNoUXVldWUsIEJs
b2NrUHRyPHZvaWQoKT46OmZyb21DYWxsYWJsZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgZGlzcGF0Y2hfYWZ0ZXIo
ZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgZHVyYXRpb24ubmFub3NlY29uZHNBczxp
bnQ2NF90PigpKSwgbV9kaXNwYXRjaFF1ZXVlLCBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9tQ2FsbGFi
bGUoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKV0gewogICAgICAgICBmdW5jdGlvbigpOwogICAgIH0pLmdldCgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIvU291cmNlL1dURi93
dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKaW5kZXggZjVhZjY5MGZjN2JkNThlYWY5MWUxZDMyZjlk
ZGIwNTdjZGU1YzdiNy4uMjU4NzQxZjE0MzZkZGI1NTA0YzVlYTMzMzBiYmY1NzI0MzQzZmQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBjbGFz
cyBEaXNwYXRjaEFmdGVyQ29udGV4dCB7CiAKIHZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcihT
ZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgR1Jl
ZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoZHVy
YXRpb24ubWlsbGlzZWNvbmRzKCkpKTsKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFk
b3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhkdXJhdGlvbi5taWxsaXNlY29uZHNBczxndWlu
dD4oKSkpOwogICAgIGdfc291cmNlX3NldF9uYW1lKHNvdXJjZS5nZXQoKSwgIltXZWJLaXRdIFJ1
bkxvb3AgZGlzcGF0Y2hBZnRlciIpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BhdGNoQWZ0
ZXJDb250ZXh0PiBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxEaXNwYXRjaEFmdGVyQ29udGV4
dD4oV1RGTW92ZShmdW5jdGlvbikpOwpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp1cGRhdGVSZWFkeVRpbWUoKQogICAgIH0KIAogICAgIGdpbnQ2NCBjdXJyZW50
VGltZSA9IGdfZ2V0X21vbm90b25pY190aW1lKCk7Ci0gICAgZ2ludDY0IHRhcmdldFRpbWUgPSBj
dXJyZW50VGltZSArIHN0ZDo6bWluPGdpbnQ2ND4oR19NQVhJTlQ2NCAtIGN1cnJlbnRUaW1lLCBt
X2ZpcmVJbnRlcnZhbC5taWNyb3NlY29uZHMoKSk7CisgICAgZ2ludDY0IHRhcmdldFRpbWUgPSBj
dXJyZW50VGltZSArIHN0ZDo6bWluPGdpbnQ2ND4oR19NQVhJTlQ2NCAtIGN1cnJlbnRUaW1lLCBt
X2ZpcmVJbnRlcnZhbC5taWNyb3NlY29uZHNBczxnaW50NjQ+KCkpOwogICAgIEFTU0VSVCh0YXJn
ZXRUaW1lID49IGN1cnJlbnRUaW1lKTsKICAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Nv
dXJjZS5nZXQoKSwgdGFyZ2V0VGltZSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzc4MGY0N2MyMDVhYzNhNWMzZTIzOGZmYmJiNzc2MjE5
ODIxYTI3ZS4uMTg1NTEyYTk1NDc5MDJlODRhYTE3YjFkNjMwMTk1M2JiYzBkNGFjNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE3LTAzLTE0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtXVEZdIENsZWFuIHVwIFJ1bkxvb3AgYW5kIFdvcmtRdWV1ZSB3aXRoIFNlY29u
ZHMgYW5kIEZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjk1MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDMtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFdLV2ViVmlldyBwcm92aWRlcyBubyBhY2Nlc3MgdG8gY29v
a2llcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RpbWUuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGltZS5jcHAKaW5kZXggNTJlNzE0OTRi
ZmYxYjk5NjA5MmE1MGM0MDM1MGY3NGExNDkxOWMyNS4uYTk4ZWNkNDZhYTFlZDVmYzA0MzVkMWRh
ZmExOTA0ZTRmOTVmNGE3YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVGltZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGltZS5jcHAK
QEAgLTMxNCw1ICszMTQsNDQgQEAgVEVTVChXVEZfVGltZSwgbGl0ZXJhbHMpCiAgICAgRVhQRUNU
X1RSVUUoU2Vjb25kczo6ZnJvbU5hbm9zZWNvbmRzKDIuNSkgPT0gMi41X25zKTsKIH0KIAorVEVT
VChXVEZfVGltZSwgY2xhbXApCit7CisgICAgU2Vjb25kcyBwb3NpdGl2ZUluZmluaXR5ID0gU2Vj
b25kczo6aW5maW5pdHkoKTsKKyAgICBFWFBFQ1RfRVEocG9zaXRpdmVJbmZpbml0eS5zZWNvbmRz
QXM8aW50MzJfdD4oKSwgSU5UMzJfTUFYKTsKKyAgICBFWFBFQ1RfRVEocG9zaXRpdmVJbmZpbml0
eS5zZWNvbmRzQXM8dWludDMyX3Q+KCksIFVJTlQzMl9NQVgpOworICAgIEVYUEVDVF9FUShwb3Np
dGl2ZUluZmluaXR5LnNlY29uZHNBczxpbnQ2NF90PigpLCBJTlQ2NF9NQVgpOworICAgIEVYUEVD
VF9FUShwb3NpdGl2ZUluZmluaXR5LnNlY29uZHNBczx1aW50NjRfdD4oKSwgVUlOVDY0X01BWCk7
CisgICAgRVhQRUNUX0VRKHBvc2l0aXZlSW5maW5pdHkubWlsbGlzZWNvbmRzQXM8aW50MzJfdD4o
KSwgSU5UMzJfTUFYKTsKKyAgICBFWFBFQ1RfRVEocG9zaXRpdmVJbmZpbml0eS5taWxsaXNlY29u
ZHNBczx1aW50MzJfdD4oKSwgVUlOVDMyX01BWCk7CisgICAgRVhQRUNUX0VRKHBvc2l0aXZlSW5m
aW5pdHkubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSwgSU5UNjRfTUFYKTsKKyAgICBFWFBFQ1Rf
RVEocG9zaXRpdmVJbmZpbml0eS5taWxsaXNlY29uZHNBczx1aW50NjRfdD4oKSwgVUlOVDY0X01B
WCk7CisgICAgRVhQRUNUX0VRKHBvc2l0aXZlSW5maW5pdHkubWljcm9zZWNvbmRzQXM8aW50MzJf
dD4oKSwgSU5UMzJfTUFYKTsKKyAgICBFWFBFQ1RfRVEocG9zaXRpdmVJbmZpbml0eS5taWNyb3Nl
Y29uZHNBczx1aW50MzJfdD4oKSwgVUlOVDMyX01BWCk7CisgICAgRVhQRUNUX0VRKHBvc2l0aXZl
SW5maW5pdHkubWljcm9zZWNvbmRzQXM8aW50NjRfdD4oKSwgSU5UNjRfTUFYKTsKKyAgICBFWFBF
Q1RfRVEocG9zaXRpdmVJbmZpbml0eS5taWNyb3NlY29uZHNBczx1aW50NjRfdD4oKSwgVUlOVDY0
X01BWCk7CisgICAgRVhQRUNUX0VRKHBvc2l0aXZlSW5maW5pdHkubmFub3NlY29uZHNBczxpbnQz
Ml90PigpLCBJTlQzMl9NQVgpOworICAgIEVYUEVDVF9FUShwb3NpdGl2ZUluZmluaXR5Lm5hbm9z
ZWNvbmRzQXM8dWludDMyX3Q+KCksIFVJTlQzMl9NQVgpOworICAgIEVYUEVDVF9FUShwb3NpdGl2
ZUluZmluaXR5Lm5hbm9zZWNvbmRzQXM8aW50NjRfdD4oKSwgSU5UNjRfTUFYKTsKKyAgICBFWFBF
Q1RfRVEocG9zaXRpdmVJbmZpbml0eS5uYW5vc2Vjb25kc0FzPHVpbnQ2NF90PigpLCBVSU5UNjRf
TUFYKTsKKworICAgIFNlY29uZHMgbmVnYXRpdmVJbmZpbml0eSA9IC1TZWNvbmRzOjppbmZpbml0
eSgpOworICAgIEVYUEVDVF9FUShuZWdhdGl2ZUluZmluaXR5LnNlY29uZHNBczxpbnQzMl90Pigp
LCBJTlQzMl9NSU4pOworICAgIEVYUEVDVF9FUShuZWdhdGl2ZUluZmluaXR5LnNlY29uZHNBczx1
aW50MzJfdD4oKSwgMCk7CisgICAgRVhQRUNUX0VRKG5lZ2F0aXZlSW5maW5pdHkuc2Vjb25kc0Fz
PGludDY0X3Q+KCksIElOVDY0X01JTik7CisgICAgRVhQRUNUX0VRKG5lZ2F0aXZlSW5maW5pdHku
c2Vjb25kc0FzPHVpbnQ2NF90PigpLCAwKTsKKyAgICBFWFBFQ1RfRVEobmVnYXRpdmVJbmZpbml0
eS5taWxsaXNlY29uZHNBczxpbnQzMl90PigpLCBJTlQzMl9NSU4pOworICAgIEVYUEVDVF9FUShu
ZWdhdGl2ZUluZmluaXR5Lm1pbGxpc2Vjb25kc0FzPHVpbnQzMl90PigpLCAwKTsKKyAgICBFWFBF
Q1RfRVEobmVnYXRpdmVJbmZpbml0eS5taWxsaXNlY29uZHNBczxpbnQ2NF90PigpLCBJTlQ2NF9N
SU4pOworICAgIEVYUEVDVF9FUShuZWdhdGl2ZUluZmluaXR5Lm1pbGxpc2Vjb25kc0FzPHVpbnQ2
NF90PigpLCAwKTsKKyAgICBFWFBFQ1RfRVEobmVnYXRpdmVJbmZpbml0eS5taWNyb3NlY29uZHNB
czxpbnQzMl90PigpLCBJTlQzMl9NSU4pOworICAgIEVYUEVDVF9FUShuZWdhdGl2ZUluZmluaXR5
Lm1pY3Jvc2Vjb25kc0FzPHVpbnQzMl90PigpLCAwKTsKKyAgICBFWFBFQ1RfRVEobmVnYXRpdmVJ
bmZpbml0eS5taWNyb3NlY29uZHNBczxpbnQ2NF90PigpLCBJTlQ2NF9NSU4pOworICAgIEVYUEVD
VF9FUShuZWdhdGl2ZUluZmluaXR5Lm1pY3Jvc2Vjb25kc0FzPHVpbnQ2NF90PigpLCAwKTsKKyAg
ICBFWFBFQ1RfRVEobmVnYXRpdmVJbmZpbml0eS5uYW5vc2Vjb25kc0FzPGludDMyX3Q+KCksIElO
VDMyX01JTik7CisgICAgRVhQRUNUX0VRKG5lZ2F0aXZlSW5maW5pdHkubmFub3NlY29uZHNBczx1
aW50MzJfdD4oKSwgMCk7CisgICAgRVhQRUNUX0VRKG5lZ2F0aXZlSW5maW5pdHkubmFub3NlY29u
ZHNBczxpbnQ2NF90PigpLCBJTlQ2NF9NSU4pOworICAgIEVYUEVDVF9FUShuZWdhdGl2ZUluZmlu
aXR5Lm5hbm9zZWNvbmRzQXM8dWludDY0X3Q+KCksIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCiAK
</data>
<flag name="review"
          id="325903"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>