<?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>190035</bug_id>
          
          <creation_ts>2018-09-27 06:13:15 -0700</creation_ts>
          <short_desc>[GStreamer] Fix EncodedImage timestamps to match what libWebRTC expects</short_desc>
          <delta_ts>2018-11-05 23:15:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190678</dependson>
          <blocked>187064</blocked>
    
    <blocked>190682</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thibault Saunier">tsaunier</reporter>
          <assigned_to name="Thibault Saunier">tsaunier</assigned_to>
          <cc>alex</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1463939</commentid>
    <comment_count>0</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-09-27 06:13:15 -0700</bug_when>
    <thetext>[GStreamer] Fix EncodedImage timestamps to match what libWebRTC expects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463940</commentid>
    <comment_count>1</comment_count>
      <attachid>350957</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-09-27 06:18:37 -0700</bug_when>
    <thetext>Created attachment 350957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463952</commentid>
    <comment_count>2</comment_count>
      <attachid>350957</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2018-09-27 07:55:51 -0700</bug_when>
    <thetext>Comment on attachment 350957
Patch

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

Great catch, tricky problem, LGTM with some small changes.

&gt; Source/WebCore/ChangeLog:12
&gt; +        all the GStreamer processing pipelines as the WebRTC object basically wrap the &quot;same&quot;

Nit, wrap -&gt; wraps

&gt; Source/WebCore/ChangeLog:26
&gt; +        because of that issue.

Nit, is this a leftover?

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:424
&gt; +    std::map&lt;GstClockTime, RtpTimestamps&gt; m_ptsRtpTimestampMap;

We usually use HashMap type defined in WTF, is there any feature in the std::maps that we want to use?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470266</commentid>
    <comment_count>3</comment_count>
      <attachid>352612</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-10-17 12:39:14 -0700</bug_when>
    <thetext>Created attachment 352612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475108</commentid>
    <comment_count>4</comment_count>
      <attachid>353868</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-05 09:19:32 -0800</bug_when>
    <thetext>Created attachment 353868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475162</commentid>
    <comment_count>5</comment_count>
      <attachid>353868</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-11-05 10:40:45 -0800</bug_when>
    <thetext>Comment on attachment 353868
Patch

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

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:70
&gt; +        , m_adapter(adoptGRef(gst_adapter_new()))

Hum. I think this needs a GRefPtrGStreamer template specialization to avoid leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475163</commentid>
    <comment_count>6</comment_count>
      <attachid>353868</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-11-05 10:43:30 -0800</bug_when>
    <thetext>Comment on attachment 353868
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:70
&gt;&gt; +        , m_adapter(adoptGRef(gst_adapter_new()))
&gt; 
&gt; Hum. I think this needs a GRefPtrGStreamer template specialization to avoid leaks.

Ah no, it&apos;s a normal GObject. Nevermind :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475184</commentid>
    <comment_count>7</comment_count>
      <attachid>353868</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-05 11:15:22 -0800</bug_when>
    <thetext>Comment on attachment 353868
Patch

Clearing flags on attachment: 353868

Committed r237819: &lt;https://trac.webkit.org/changeset/237819&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475185</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-05 11:15:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475186</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-05 11:16:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/45813371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475430</commentid>
    <comment_count>10</comment_count>
      <attachid>353868</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-11-05 23:15:41 -0800</bug_when>
    <thetext>Comment on attachment 353868
Patch

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

I&apos;m late, but if there&apos;s any follow up, we can fix this couple of things.

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:242
&gt; +        m_bufferMapLock.lock();
&gt; +        // Make sure that the frame.timestamp == previsouly input_frame._timeStamp
&gt; +        // as it is required by the VideoDecoder baseclass.
&gt; +        auto timestamps = m_dtsPtsMap[GST_BUFFER_PTS(buffer)];
&gt; +        m_dtsPtsMap.erase(GST_BUFFER_PTS(buffer));
&gt; +        m_bufferMapLock.unlock();

Nit: I would have used a Locker here by either using unlockEarly or just using { } to create scope.

Besides, previsouly -&gt; previously.

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:266
&gt; +                uint flags = GST_BUFFER_FLAGS(buffer);

unsigned</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350957</attachid>
            <date>2018-09-27 06:18:37 -0700</date>
            <delta_ts>2018-10-17 12:39:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190035-20180927101835.patch</filename>
            <type>text/plain</type>
            <size>4506</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWMyZmE5Y2UyNjVmMDlj
OTE1YzIyOWVlMzlkMmY4MGQ5NWMwZTQ0YS4uOTgzYzZkMDdiYTM4MzI5MzA5NTgyYTdkM2MxM2Iy
NjZmZGEwYmFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA5LTI3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBGaXggRW5jb2RlZEltYWdlIHRpbWVzdGFtcHMgdG8gbWF0Y2ggd2hhdCBsaWJXZWJSVEMgZXhw
ZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
MDM1CisKKyAgICAgICAgV2UgY2FuJ3QgcmVseSBvbiBHU3RyZWFtZXIgdGltZXN0YW1wcyB0byBw
YXNzIHRvIEVuY29kZWRJbWFnZXMgYWZ0ZXIgZW5jb2RpbmcKKyAgICAgICAgYmVjYXVzZSBsaWJX
ZWJSVEMgZG9lc24ndCB1c2UgdGhlIHRpbWVzdGFtcCB3ZSBmZWQgaXQgYnV0IGRvZXMKKyAgICAg
ICAgc29tZSBjb21wdXRhdGlvbiBvbiB0aGUgaW5wdXQgdGltZXN0YW1wIGluIHRoZSBpbWFnZXMg
d2UgcGFzcyBpbiBiZWZvcmUgaXQgcGFzc2VzCisgICAgICAgIHRoZW0gYmFjayB0byB0aGUgZW5j
b2Rlci4gVGhlbiBpbnRlcm5hbGx5IExpYldlYlJUQyByZWxpZXMgb24gdGhvc2UgZXhhY3QgdGlt
ZXN0YW1wcworICAgICAgICBwYXNzZWQgaW50byB0aGUgZW5jb2RlciB0byBkbyBjaGVja3MgYW5k
IGNvbXB1dGUgUlRQIHRpbWVzdGFtcHMgc28gd2UgbmVlZCB0byBjYXJlZnVsbHkKKyAgICAgICAg
cGFzcyB0aGUgZXhhY3QgdGltZXN0YW1wcyB0byBMaWJXZWJSVEMgKGluIHByYWN0aWNlIHdlIHN0
aWxsIHVzZSBHU3RyZWFtZXIgdGltZXN0YW1wcyBpbgorICAgICAgICBhbGwgdGhlIEdTdHJlYW1l
ciBwcm9jZXNzaW5nIHBpcGVsaW5lcyBhcyB0aGUgV2ViUlRDIG9iamVjdCBiYXNpY2FsbHkgd3Jh
cCB0aGUgInNhbWUiCisgICAgICAgIGBHc3RTYW1wbGVgIGFsbCBhcm91bmQpLgorCisgICAgICAg
IFRoYXQgcGFzc2VkIHVubm90aWNlZCB1bnRpbCBub3csIGJ1dCB3aXRoIHRoZSBsYXRlc3QgdXBk
YXRlIG9mIGxpYndlYnJ0YyBhZnRlciBhIGZldyBzZWNvbmRzCisgICAgICAgIG9mIHZpZGVvIGNh
bGwgd2UgYXJlIG5vdyBnZXR0aW5nOgorCisgICAgICAgIGBgYAorICAgICAgICAjCisgICAgICAg
ICMgRmF0YWwgZXJyb3IgaW46IC9hcHAvd2Via2l0L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL251bWVyaWNzL3NhbXBsZV9jb3VudGVyLmNjLCBsaW5l
IDMyCisgICAgICAgICMgbGFzdCBzeXN0ZW0gZXJyb3I6IDExCisgICAgICAgICMgQ2hlY2sgZmFp
bGVkOiBpbnQ2NF90e3NhbXBsZX0gKiBzYW1wbGUgPD0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2
NF90Pjo6bWF4KCkgLSBzdW1fc3F1YXJlZF8gKDI0MzkwNjE2OTM3MjUzMDYyNSB2cy4gMTk4ODM2
NzE4NjEzODA4NjQzKQorICAgICAgICAjCisgICAgICAgIGBgYAorCisgICAgICAgIGJlY2F1c2Ug
b2YgdGhhdCBpc3N1ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rl
cjo6bmV3U2FtcGxlQ2FsbGJhY2spOgorCiAyMDE4LTA5LTI0ICBUaGliYXVsdCBTYXVuaWVyICA8
dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXVtHVEtdW1dlYlJUQ10gRml4dXAg
VlA4IGVuY29kaW5nIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCA1MmQ0MjQ0MDc3Y2MzYTgzY2YzNTRlMmUxMjcz
OTExMzk3YjkwNGU4Li42MWU5OTVkODU4NGQ2YzE3ZWU3YWQ1NDNjOTFlNjYyOWQ1MDFmMTljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCkBAIC01OCw2ICs1OCwxMSBAQCBzdGF0aWMgR1JlZlB0cjxHUmVnZXg+IHRhcmdldEJpdHJh
dGVCaXRQZXJTZWM7CiBzdGF0aWMgR1JlZlB0cjxHUmVnZXg+IGJpdHJhdGVCaXRQZXJTZWM7CiBz
dGF0aWMgR1JlZlB0cjxHUmVnZXg+IGJpdHJhdGVLQml0UGVyU2VjOwogCit0eXBlZGVmIHN0cnVj
dCB7CisgICAgdWludDY0X3QgcnRwVGltZXN0YW1wOworICAgIGludDY0X3QgY2FwdHVyZVRpbWVN
czsKK30gUnRwVGltZXN0YW1wczsKKwogY2xhc3MgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIDogcHVi
bGljIHdlYnJ0Yzo6VmlkZW9FbmNvZGVyIHsKIHB1YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0Vu
Y29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpCkBAIC0xOTksNiArMjA0LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgYXV0byBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0
X3N0YXRpY19wYWQobV9zcmMsICJzcmMiKSk7CiAgICAgICAgICAgICBnc3RfcGFkX3NldF9vZmZz
ZXQocGFkLmdldCgpLCAtbV9maXJzdEZyYW1lUHRzKTsKICAgICAgICAgfQorICAgICAgICBtX3B0
c1J0cFRpbWVzdGFtcE1hcFtHU1RfQlVGRkVSX1BUUyhidWZmZXIpXSA9IHsgZnJhbWUudGltZXN0
YW1wKCksIGZyYW1lLnJlbmRlcl90aW1lX21zKCkgfTsKIAogICAgICAgICBmb3IgKGF1dG8gZnJh
bWVfdHlwZSA6ICpmcmFtZVR5cGVzKSB7CiAgICAgICAgICAgICBpZiAoZnJhbWVfdHlwZSA9PSB3
ZWJydGM6OmtWaWRlb0ZyYW1lS2V5KSB7CkBAIC0yNDEsOSArMjQ3LDExIEBAIHB1YmxpYzoKIAog
ICAgICAgICBtX2VuY29kZWRGcmFtZS5fZnJhbWVUeXBlID0gR1NUX0JVRkZFUl9GTEFHX0lTX1NF
VChidWZmZXIsIEdTVF9CVUZGRVJfRkxBR19ERUxUQV9VTklUKSA/IHdlYnJ0Yzo6a1ZpZGVvRnJh
bWVEZWx0YSA6IHdlYnJ0Yzo6a1ZpZGVvRnJhbWVLZXk7CiAgICAgICAgIG1fZW5jb2RlZEZyYW1l
Ll9jb21wbGV0ZUZyYW1lID0gdHJ1ZTsKLSAgICAgICAgbV9lbmNvZGVkRnJhbWUuY2FwdHVyZV90
aW1lX21zXyA9IEdTVF9USU1FX0FTX01TRUNPTkRTKEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikpOwot
ICAgICAgICBtX2VuY29kZWRGcmFtZS5fdGltZVN0YW1wID0gR1NUX1RJTUVfQVNfTVNFQ09ORFMo
R1NUX0JVRkZFUl9EVFMoYnVmZmVyKSk7Ci0gICAgICAgIEdTVF9MT0dfT0JKRUNUKG1fcGlwZWxp
bmUuZ2V0KCksICJHb3QgYnVmZmVyIFRTOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FS
R1MoR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSkpOworICAgICAgICBtX2VuY29kZWRGcmFtZS5jYXB0
dXJlX3RpbWVfbXNfID0gbV9wdHNSdHBUaW1lc3RhbXBNYXBbR1NUX0JVRkZFUl9QVFMoYnVmZmVy
KV0uY2FwdHVyZVRpbWVNczsKKyAgICAgICAgbV9lbmNvZGVkRnJhbWUuX3RpbWVTdGFtcCA9IG1f
cHRzUnRwVGltZXN0YW1wTWFwW0dTVF9CVUZGRVJfUFRTKGJ1ZmZlcildLnJ0cFRpbWVzdGFtcDsK
KyAgICAgICAgbV9wdHNSdHBUaW1lc3RhbXBNYXAuZXJhc2UoR1NUX0JVRkZFUl9QVFMoYnVmZmVy
KSk7CisgICAgICAgIEdTVF9MT0dfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJHb3QgYnVmZmVy
IGNhcHR1cmVfdGltZV9tczogJWxkIF90aW1lc3RhbXA6ICVsZCIsCisgICAgICAgICAgICBtX2Vu
Y29kZWRGcmFtZS5jYXB0dXJlX3RpbWVfbXNfLCBtX2VuY29kZWRGcmFtZS5fdGltZVN0YW1wKTsK
IAogICAgICAgICB3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvIGNvZGVjU3BlY2lmaUluZm9zOwog
ICAgICAgICBQb3B1bGF0ZUNvZGVjU3BlY2lmaWMoJmNvZGVjU3BlY2lmaUluZm9zLCBidWZmZXIp
OwpAQCAtNDEzLDYgKzQyMSw3IEBAIHByaXZhdGU6CiAgICAgd2VicnRjOjpFbmNvZGVkSW1hZ2Ug
bV9lbmNvZGVkRnJhbWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbV9lbmNvZGVk
SW1hZ2VCdWZmZXI7CiAgICAgc2l6ZV90IG1fZW5jb2RlZEltYWdlQnVmZmVyU2l6ZTsKKyAgICBz
dGQ6Om1hcDxHc3RDbG9ja1RpbWUsIFJ0cFRpbWVzdGFtcHM+IG1fcHRzUnRwVGltZXN0YW1wTWFw
OwogfTsKIAogY2xhc3MgSDI2NEVuY29kZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVy
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352612</attachid>
            <date>2018-10-17 12:39:14 -0700</date>
            <delta_ts>2018-11-05 09:19:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190035-20181017163913.patch</filename>
            <type>text/plain</type>
            <size>14596</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQyNzc1MTVlM2NjNGVm
MTgzZjJhMzIzZDAxNjI2ZGI2MTJjOGYwNi4uMTc5NWJhZTcyOTIxNmY0MjQyODNjOTljMTYxYzEx
ZTU3MmM1MDFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEwLTE3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBGaXggRW5jb2RlZEltYWdlIHRpbWVzdGFtcHMgdG8gbWF0Y2ggd2hhdCBsaWJXZWJSVEMgZXhw
ZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
Y2FuJ3QgcmVseSBvbiBHU3RyZWFtZXIgdGltZXN0YW1wcyB0byBwYXNzIHRvIEVuY29kZWRJbWFn
ZXMgYWZ0ZXIgZW5jb2RpbmcKKyAgICAgICAgYmVjYXVzZSBsaWJXZWJSVEMgZG9lc24ndCB1c2Ug
dGhlIHRpbWVzdGFtcCB3ZSBmZWQgaXQgYnV0IGRvZXMKKyAgICAgICAgc29tZSBjb21wdXRhdGlv
biBvbiB0aGUgaW5wdXQgdGltZXN0YW1wIGluIHRoZSBpbWFnZXMgd2UgcGFzcyBpbiBiZWZvcmUg
aXQgcGFzc2VzCisgICAgICAgIHRoZW0gYmFjayB0byB0aGUgZW5jb2Rlci4gVGhlbiBpbnRlcm5h
bGx5IExpYldlYlJUQyByZWxpZXMgb24gdGhvc2UgZXhhY3QgdGltZXN0YW1wcworICAgICAgICBw
YXNzZWQgaW50byB0aGUgZW5jb2RlciB0byBkbyBjaGVja3MgYW5kIGNvbXB1dGUgUlRQIHRpbWVz
dGFtcHMgc28gd2UgbmVlZCB0byBjYXJlZnVsbHkKKyAgICAgICAgcGFzcyB0aGUgZXhhY3QgdGlt
ZXN0YW1wcyB0byBMaWJXZWJSVEMgKGluIHByYWN0aWNlIHdlIHN0aWxsIHVzZSBHU3RyZWFtZXIg
dGltZXN0YW1wcyBpbgorICAgICAgICBhbGwgdGhlIEdTdHJlYW1lciBwcm9jZXNzaW5nIHBpcGVs
aW5lcyBhcyB0aGUgV2ViUlRDIG9iamVjdCBiYXNpY2FsbHkgd3JhcHMgdGhlICJzYW1lIgorICAg
ICAgICBgR3N0U2FtcGxlYCBhbGwgYXJvdW5kLCBidXQgd2UgYXJlIG5vdCBzeW5jZWQgb24gdGhl
IGNsb2NrIGFueXdheSkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1ZpZGVvRnJhbWVGcm9tR1N0cmVhbWVyU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclZpZGVvRGVjb2Rlcjo6bmV3U2FtcGxlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6R1N0cmVhbWVyVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6bmV3
U2FtcGxlQ2FsbGJhY2spOgorCiAyMDE4LTEwLTE3ICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5p
ZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtXZWJSVENdIEVycm9yIG91dCB3
aGVuIHNpbXVsY2FzdCBpcyBhY3RpdmF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCmluZGV4IGZmZGFlNGViNTA4ZWU2MjVkMjgyY2EyMmE5
OTg3YzVjYzJmZTMwZDYuLjA5YTQzZTYwYzRjNGJmNjMwOTE4NDJhODY2OTZmOWUyNTAxYjY0OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNw
cApAQCAtMTU0LDcgKzE1NCw2IEBAIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMgewogICAg
IEdzdENsb2NrVGltZSBmaXJzdEZyYW1lUHRzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcj4gb2JzZXJ2ZXI7Ci0gICAgU3RyaW5nIHZpZGVvVHJh
Y2tJRDsKICAgICB2b2xhdGlsZSBnaW50IG5wYWRzOwogICAgIGd1bG9uZyBwcm9iZWlkOwogICAg
IFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IHN0cmVhbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1l
TGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcAppbmRleCA1N2M0OGQyZTA4MWRl
MWQ0MTIzYTIzYzJkMTVlZWNkZmFlODhmYmY0Li4xMjBmNWYzY2RiNWE4ZGRlOTc2NWFiMTkzOGVk
OWMxMDc3Y2Q3ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEMuY3BwCkBAIC02OSwxMiArNjksMTMgQEAgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQzo6
Y3JlYXQKICAgICByZXR1cm4gcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1
ZmZlcj4obmV3IEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMoc2FtcGxlLCBpbmZvKSk7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRnJhbWU+IExpYldlYlJUQ1ZpZGVvRnJh
bWVGcm9tR1N0cmVhbWVyU2FtcGxlKEdzdFNhbXBsZSogc2FtcGxlLCB3ZWJydGM6OlZpZGVvUm90
YXRpb24gcm90YXRpb24pCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0ZyYW1lPiBMaWJX
ZWJSVENWaWRlb0ZyYW1lRnJvbUdTdHJlYW1lclNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgd2Vi
cnRjOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLAorICAgIGludDY0X3QgdGltZXN0YW1wLCBpbnQ2
NF90IHJlbmRlclRpbWVNcykKIHsKICAgICBhdXRvIGZyYW1lQnVmZmVyKEdTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEM6OmNyZWF0ZShzYW1wbGUpKTsKIAotICAgIGF1dG8gYnVmZmVyID0gZ3N0
X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZSk7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRnJhbWU+KG5ldyB3ZWJydGM6OlZpZGVvRnJhbWUoZnJhbWVCdWZmZXIsIEdT
VF9CVUZGRVJfRFRTKGJ1ZmZlciksIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlciksIHJvdGF0aW9uKSk7
CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRnJhbWU+KAorICAgICAg
ICBuZXcgd2VicnRjOjpWaWRlb0ZyYW1lKGZyYW1lQnVmZmVyLCB0aW1lc3RhbXAsIHJlbmRlclRp
bWVNcywgcm90YXRpb24pKTsKIH0KIAogd2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlIEdT
dHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEM6OnR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmgKaW5kZXggNTNhZGE0MjM2MWJj
ODAzZWUzYTQyNTc0YTQ1OGEwYTI3OWQxYzgyMS4uOWU1M2U5NmRhMmI2MmMwNDE1NDIwOWZlZTdm
NWQ4MjcxNjY4OWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNvbnN0IEdSZWZQdHI8R3N0U2FtcGxlPiBHU3RyZWFtZXJTYW1wbGVGcm9tTGliV2ViUlRDVmlk
ZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmKTsKLXN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRnJhbWU+IExpYldlYlJUQ1ZpZGVvRnJhbWVGcm9tR1N0cmVhbWVyU2FtcGxlKEdz
dFNhbXBsZSosIHdlYnJ0Yzo6VmlkZW9Sb3RhdGlvbik7CitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0ZyYW1lPiBMaWJXZWJSVENWaWRlb0ZyYW1lRnJvbUdTdHJlYW1lclNhbXBsZShHc3RT
YW1wbGUqLCB3ZWJydGM6OlZpZGVvUm90YXRpb24sIGludDY0X3QgdGltZXN0YW1wLCBpbnQ2NF90
IHJlbmRlclRpbWVNcyk7CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMgOiBw
dWJsaWMgcnRjOjpSZWZDb3VudGVkT2JqZWN0PHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gewog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZh
Y3RvcnkuY3BwCmluZGV4IGRjMzMwYjk2YzkwZTlkYmNkZGJjYTVmYTI0YWJhMTZkNjA3MjhiYjAu
LmYwYWM4ZGY2ZjZhZGJiZTU5ZjI5YWIxMzNjZTk1YzIxNDUzNTg0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0RlY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTQ0LDYg
KzQ0LDExIEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfd2VicnRjZGVjX2RlYnVnKTsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdWludDY0X3QgdGlt
ZXN0YW1wOworICAgIGludDY0X3QgcmVuZGVyVGltZU1zOworfSBJbnB1dFRpbWVzdGFtcHM7CisK
IGNsYXNzIEdTdHJlYW1lclZpZGVvRGVjb2RlciA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2Rl
ciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyVmlkZW9EZWNvZGVyKCkKQEAgLTE2Nyw3ICsxNzIs
OCBAQCBwdWJsaWM6CiAgICAgICAgIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlci5nZXQoKSkgPSAoc3Rh
dGljX2Nhc3Q8Z3VpbnQ2ND4ocmVuZGVyVGltZU1zKSAqIEdTVF9NU0VDT05EKSAtIG1fZmlyc3RC
dWZmZXJQdHM7CiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9idWZmZXJNYXBMb2NrKTsKLSAgICAgICAgICAgIG1fZHRzUHRzTWFwW0dTVF9CVUZGRVJfUFRT
KGJ1ZmZlci5nZXQoKSldID0gaW5wdXRJbWFnZS5UaW1lc3RhbXAoKTsKKyAgICAgICAgICAgIElu
cHV0VGltZXN0YW1wcyB0aW1lc3RhbXBzID0ge2lucHV0SW1hZ2UuVGltZXN0YW1wKCksIHJlbmRl
clRpbWVNc307CisgICAgICAgICAgICBtX2R0c1B0c01hcFtHU1RfQlVGRkVSX1BUUyhidWZmZXIu
Z2V0KCkpXSA9IHRpbWVzdGFtcHM7CiAgICAgICAgIH0KIAogICAgICAgICBHU1RfTE9HX09CSkVD
VChwaXBlbGluZSgpLCAiJWxkIERlY29kaW5nOiAlIiBHU1RfUFRSX0ZPUk1BVCwgcmVuZGVyVGlt
ZU1zLCBidWZmZXIuZ2V0KCkpOwpAQCAtMjI4LDE0ICsyMzQsMTYgQEAgcHVibGljOgogICAgICAg
ICBhdXRvIHNhbXBsZSA9IGdzdF9hcHBfc2lua19wdWxsX3NhbXBsZShHU1RfQVBQX1NJTksoc2lu
aykpOwogICAgICAgICBhdXRvIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUp
OwogCi0gICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZm
ZXJNYXBMb2NrKTsKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBmcmFtZS50aW1l
c3RhbXAgPT0gcHJldmlzb3VseSBpbnB1dF9mcmFtZS5fdGltZVN0YW1wCi0gICAgICAgICAgICAv
LyBhcyBpdCBpcyByZXF1aXJlZCBieSB0aGUgVmlkZW9EZWNvZGVyIGJhc2VjbGFzcy4KLSAgICAg
ICAgICAgIEdTVF9CVUZGRVJfRFRTKGJ1ZmZlcikgPSBtX2R0c1B0c01hcFtHU1RfQlVGRkVSX1BU
UyhidWZmZXIpXTsKLSAgICAgICAgICAgIG1fZHRzUHRzTWFwLmVyYXNlKEdTVF9CVUZGRVJfUFRT
KGJ1ZmZlcikpOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8gZnJhbWUoTGliV2ViUlRDVmlkZW9G
cmFtZUZyb21HU3RyZWFtZXJTYW1wbGUoc2FtcGxlLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAp
KTsKKyAgICAgICAgbV9idWZmZXJNYXBMb2NrLmxvY2soKTsKKyAgICAgICAgLy8gTWFrZSBzdXJl
IHRoYXQgdGhlIGZyYW1lLnRpbWVzdGFtcCA9PSBwcmV2aXNvdWx5IGlucHV0X2ZyYW1lLl90aW1l
U3RhbXAKKyAgICAgICAgLy8gYXMgaXQgaXMgcmVxdWlyZWQgYnkgdGhlIFZpZGVvRGVjb2RlciBi
YXNlY2xhc3MuCisgICAgICAgIGF1dG8gdGltZXN0YW1wcyA9IG1fZHRzUHRzTWFwW0dTVF9CVUZG
RVJfUFRTKGJ1ZmZlcildOworICAgICAgICBtX2R0c1B0c01hcC5lcmFzZShHU1RfQlVGRkVSX1BU
UyhidWZmZXIpKTsKKyAgICAgICAgbV9idWZmZXJNYXBMb2NrLnVubG9jaygpOworCisgICAgICAg
IGF1dG8gZnJhbWUoTGliV2ViUlRDVmlkZW9GcmFtZUZyb21HU3RyZWFtZXJTYW1wbGUoc2FtcGxl
LCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsCisgICAgICAgICAgICB0aW1lc3RhbXBzLnRpbWVz
dGFtcCwgdGltZXN0YW1wcy5yZW5kZXJUaW1lTXMpKTsKKwogICAgICAgICBHU1RfQlVGRkVSX0RU
UyhidWZmZXIpID0gR1NUX0NMT0NLX1RJTUVfTk9ORTsKICAgICAgICAgR1NUX0xPR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIk91dHB1dCBkZWNvZGVkIGZyYW1lISAlZCAtPiAlIiBHU1RfUFRSX0ZPUk1B
VCwKICAgICAgICAgICAgIGZyYW1lLT50aW1lc3RhbXAoKSwgYnVmZmVyKTsKQEAgLTI2Nyw3ICsy
NzUsNyBAQCBwcml2YXRlOgogICAgIHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIG1faW1h
Z2VSZWFkeUNiOwogCiAgICAgTG9jayBtX2J1ZmZlck1hcExvY2s7Ci0gICAgU3RkTWFwPEdzdENs
b2NrVGltZSwgR3N0Q2xvY2tUaW1lPiBtX2R0c1B0c01hcDsKKyAgICBTdGRNYXA8R3N0Q2xvY2tU
aW1lLCBJbnB1dFRpbWVzdGFtcHM+IG1fZHRzUHRzTWFwOwogICAgIEdzdENsb2NrVGltZSBtX2Zp
cnN0QnVmZmVyUHRzOwogICAgIEdzdENsb2NrVGltZSBtX2ZpcnN0QnVmZmVyRHRzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApp
bmRleCBkNThmM2U1NmQyZDhiZTgwZTYyY2IxYjExOWZiOWU4OWNkNDFmNzU0Li43ZDc2ZWQzZmI3
MGIxNmM2MjI4OWNkYjQwNTA1ZTdhMDZhYjRhNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFj
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC00MCw4ICs0MCw5IEBACiAj
dW5kZWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkKICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9lbmNvZGlu
Zy1wcm9maWxlLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+Ci0KLSNpbmNsdWRlIDxt
dXRleD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Cisj
aW5jbHVkZSA8d3RmL1N0ZE1hcC5oPgogCiAvLyBSZXF1aXJlZCBmb3IgdW5pZmllZCBidWlsZHMK
ICNpZmRlZiBHU1RfQ0FUX0RFRkFVTFQKQEAgLTU1LDIxICs1NiwyNCBAQCBHU1RfREVCVUdfQ0FU
RUdPUlkod2Via2l0X3dlYnJ0Y2VuY19kZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dHlwZWRlZiB2b2lkICgqQml0cmF0ZVNldHRlcikoR3N0RWxlbWVudCogZW5jb2RlciwgdWludDMy
X3QgYml0cmF0ZSk7Ci1zdGF0aWMgR1JlZlB0cjxHUmVnZXg+IHRhcmdldEJpdHJhdGVCaXRQZXJT
ZWM7Ci1zdGF0aWMgR1JlZlB0cjxHUmVnZXg+IGJpdHJhdGVCaXRQZXJTZWM7Ci1zdGF0aWMgR1Jl
ZlB0cjxHUmVnZXg+IGJpdHJhdGVLQml0UGVyU2VjOwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVp
bnQ2NF90IHJ0cFRpbWVzdGFtcDsKKyAgICBpbnQ2NF90IGNhcHR1cmVUaW1lTXM7CisgICAgd2Vi
cnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY0luZm87Cit9IEZyYW1lRGF0YTsKIAogY2xhc3Mg
R1N0cmVhbWVyVmlkZW9FbmNvZGVyIDogcHVibGljIHdlYnJ0Yzo6VmlkZW9FbmNvZGVyIHsKIHB1
YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zv
cm1hdCYpCiAgICAgICAgIDogbV9maXJzdEZyYW1lUHRzKEdTVF9DTE9DS19USU1FX05PTkUpCiAg
ICAgICAgICwgbV9yZXN0cmljdGlvbkNhcHMoYWRvcHRHUmVmKGdzdF9jYXBzX25ld19lbXB0eV9z
aW1wbGUoInZpZGVvL3gtcmF3IikpKQorICAgICAgICAsIG1fYWRhcHRlcihhZG9wdEdSZWYoZ3N0
X2FkYXB0ZXJfbmV3KCkpKQogICAgIHsKICAgICB9CiAgICAgR1N0cmVhbWVyVmlkZW9FbmNvZGVy
KCkKICAgICAgICAgOiBtX2ZpcnN0RnJhbWVQdHMoR1NUX0NMT0NLX1RJTUVfTk9ORSkKICAgICAg
ICAgLCBtX3Jlc3RyaWN0aW9uQ2FwcyhhZG9wdEdSZWYoZ3N0X2NhcHNfbmV3X2VtcHR5X3NpbXBs
ZSgidmlkZW8veC1yYXciKSkpCisgICAgICAgICwgbV9hZGFwdGVyKGFkb3B0R1JlZihnc3RfYWRh
cHRlcl9uZXcoKSkpCiAgICAgewogICAgIH0KIApAQCAtMTg3LDcgKzE5MSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBpbnQzMl90IEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZy
YW1lLAotICAgICAgICBjb25zdCB3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKiwKKyAgICAgICAg
Y29uc3Qgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5mbyogY29kZWNJbmZvLAogICAgICAgICBjb25z
dCBzdGQ6OnZlY3Rvcjx3ZWJydGM6OkZyYW1lVHlwZT4qIGZyYW1lVHlwZXMpIGZpbmFsCiAgICAg
ewogICAgICAgICBpZiAoIW1faW1hZ2VSZWFkeUNiKSB7CkBAIC0yMTEsMTEgKzIxNSwxOSBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBnc3RfcGFkX3NldF9vZmZzZXQocGFkLmdldCgpLCAtbV9maXJz
dEZyYW1lUHRzKTsKICAgICAgICAgfQogCisgICAgICAgIHdlYnJ0Yzo6Q29kZWNTcGVjaWZpY0lu
Zm8gbG9jYWxDb2RlY0luZm87CisgICAgICAgIEZyYW1lRGF0YSBmcmFtZURhdGEgPSB7IGZyYW1l
LnRpbWVzdGFtcCgpLCBmcmFtZS5yZW5kZXJfdGltZV9tcygpLCBjb2RlY0luZm8gPyAqY29kZWNJ
bmZvIDogbG9jYWxDb2RlY0luZm8gfTsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2J1ZmZlck1hcExvY2spOworICAgICAgICAgICAgbV9mcmFtZXNEYXRh
LmFwcGVuZChmcmFtZURhdGEpOworICAgICAgICB9CisKICAgICAgICAgZm9yIChhdXRvIGZyYW1l
X3R5cGUgOiAqZnJhbWVUeXBlcykgewogICAgICAgICAgICAgaWYgKGZyYW1lX3R5cGUgPT0gd2Vi
cnRjOjprVmlkZW9GcmFtZUtleSkgewogICAgICAgICAgICAgICAgIGF1dG8gcGFkID0gYWRvcHRH
UmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fc3JjLCAic3JjIikpOwogICAgICAgICAg
ICAgICAgIGF1dG8gZm9yY2VLZXlVbml0ID0gZ3N0X3ZpZGVvX2V2ZW50X25ld19kb3duc3RyZWFt
X2ZvcmNlX2tleV91bml0KEdTVF9DTE9DS19USU1FX05PTkUsCiAgICAgICAgICAgICAgICAgICAg
IEdTVF9DTE9DS19USU1FX05PTkUsIEdTVF9DTE9DS19USU1FX05PTkUsIEZBTFNFLCAxKTsKKyAg
ICAgICAgICAgICAgICBHU1RfSU5GT19PQkpFQ1QobV9waXBlbGluZS5nZXQoKSwgIlJlcXVlc3Rp
bmcgS0VZRlJBTUUhIik7CiAKICAgICAgICAgICAgICAgICBpZiAoIWdzdF9wYWRfcHVzaF9ldmVu
dChwYWQuZ2V0KCksIGZvcmNlS2V5VW5pdCkpCiAgICAgICAgICAgICAgICAgICAgIEdTVF9XQVJO
SU5HX09CSkVDVChwaXBlbGluZSgpLCAiQ291bGQgbm90IHNlbmQgRm9yY2VLZXlVbml0IGV2ZW50
Iik7CkBAIC0yNDAsNiArMjUyLDI5IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBidWZmZXIgPSBn
c3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlLmdldCgpKTsKICAgICAgICAgYXV0byBjYXBzID0g
Z3N0X3NhbXBsZV9nZXRfY2FwcyhzYW1wbGUuZ2V0KCkpOwogCisgICAgICAgIHdlYnJ0Yzo6Q29k
ZWNTcGVjaWZpY0luZm8gbG9jYWxDb2RlY0luZm87CisgICAgICAgIEZyYW1lRGF0YSBmcmFtZURh
dGEgPSB7IDAsIDAsIGxvY2FsQ29kZWNJbmZvfTsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlck1hcExvY2spOworICAgICAgICAgICAgaWYgKCFt
X2ZyYW1lc0RhdGEuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZ3N0X2FkYXB0ZXJfcHVzaCht
X2FkYXB0ZXIuZ2V0KCksIGdzdF9idWZmZXJfcmVmKGJ1ZmZlcikpOworCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEdTVF9GTE9XX09LOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
Z3N0X2FkYXB0ZXJfYXZhaWxhYmxlKG1fYWRhcHRlci5nZXQoKSkgPiAwKSB7CisgICAgICAgICAg
ICAgICAgdWludCBmbGFncyA9IEdTVF9CVUZGRVJfRkxBR1MoYnVmZmVyKTsKKworICAgICAgICAg
ICAgICAgIEdTVF9JTkZPX09CSkVDVChtX3BpcGVsaW5lLmdldCgpLCAiR290IG1vcmUgYnVmZmVy
IHRoYW4gcHVzaGVkIGZyYW1lLCB0cnlpbmcgdG8gZGVhbCB3aXRoIGl0LiIpOworICAgICAgICAg
ICAgICAgIGdzdF9hZGFwdGVyX3B1c2gobV9hZGFwdGVyLmdldCgpLCBnc3RfYnVmZmVyX3JlZihi
dWZmZXIpKTsKKworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGdzdF9hZGFwdGVyX3Rha2VfYnVm
ZmVyKG1fYWRhcHRlci5nZXQoKSwgZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlKG1fYWRhcHRlci5nZXQo
KSkpOworICAgICAgICAgICAgICAgIEdTVF9CVUZGRVJfRkxBR1MoYnVmZmVyKSA9IGZsYWdzOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZnJhbWVEYXRhID0gbV9mcmFtZXNEYXRhWzBdOwor
ICAgICAgICAgICAgbV9mcmFtZXNEYXRhLnJlbW92ZShzdGF0aWNfY2FzdDxzaXplX3Q+KDApKTsK
KyAgICAgICAgfQorCiAgICAgICAgIHdlYnJ0Yzo6UlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFn
bWVudGF0aW9uSW5mbzsKICAgICAgICAgRnJhZ21lbnRpemUoJm1fZW5jb2RlZEZyYW1lLCAmbV9l
bmNvZGVkSW1hZ2VCdWZmZXIsICZtX2VuY29kZWRJbWFnZUJ1ZmZlclNpemUsIGJ1ZmZlciwgJmZy
YWdtZW50YXRpb25JbmZvKTsKICAgICAgICAgaWYgKCFtX2VuY29kZWRGcmFtZS5fc2l6ZSkKQEAg
LTI1MSwxNSArMjg2LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG51bGxwdHIpOwogCiAgICAg
ICAgIG1fZW5jb2RlZEZyYW1lLl9mcmFtZVR5cGUgPSBHU1RfQlVGRkVSX0ZMQUdfSVNfU0VUKGJ1
ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0RFTFRBX1VOSVQpID8gd2VicnRjOjprVmlkZW9GcmFtZURl
bHRhIDogd2VicnRjOjprVmlkZW9GcmFtZUtleTsKLSAgICAgICAgbV9lbmNvZGVkRnJhbWUuX2Nv
bXBsZXRlRnJhbWUgPSB0cnVlOwotICAgICAgICBtX2VuY29kZWRGcmFtZS5jYXB0dXJlX3RpbWVf
bXNfID0gR1NUX1RJTUVfQVNfTVNFQ09ORFMoR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSk7Ci0gICAg
ICAgIG1fZW5jb2RlZEZyYW1lLlNldFRpbWVzdGFtcChHU1RfVElNRV9BU19NU0VDT05EUyhHU1Rf
QlVGRkVSX0RUUyhidWZmZXIpKSk7Ci0gICAgICAgIEdTVF9MT0dfT0JKRUNUKG1fcGlwZWxpbmUu
Z2V0KCksICJHb3QgYnVmZmVyIFRTOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FSR1Mo
R1NUX0JVRkZFUl9QVFMoYnVmZmVyKSkpOworICAgICAgICBtX2VuY29kZWRGcmFtZS5fY29tcGxl
dGVGcmFtZSA9IGZhbHNlOworICAgICAgICBtX2VuY29kZWRGcmFtZS5jYXB0dXJlX3RpbWVfbXNf
ID0gZnJhbWVEYXRhLmNhcHR1cmVUaW1lTXM7CisgICAgICAgIG1fZW5jb2RlZEZyYW1lLlNldFRp
bWVzdGFtcChmcmFtZURhdGEucnRwVGltZXN0YW1wKTsKIAotICAgICAgICB3ZWJydGM6OkNvZGVj
U3BlY2lmaWNJbmZvIGNvZGVjU3BlY2lmaUluZm9zOwotICAgICAgICBQb3B1bGF0ZUNvZGVjU3Bl
Y2lmaWMoJmNvZGVjU3BlY2lmaUluZm9zLCBidWZmZXIpOworICAgICAgICBHU1RfTE9HX09CSkVD
VChtX3BpcGVsaW5lLmdldCgpLCAiR290IGJ1ZmZlciBjYXB0dXJlX3RpbWVfbXM6ICVsZCBfdGlt
ZXN0YW1wOiAlbGQiLAorICAgICAgICAgICAgbV9lbmNvZGVkRnJhbWUuY2FwdHVyZV90aW1lX21z
XywgbV9lbmNvZGVkRnJhbWUuVGltZXN0YW1wKCkpOwogCi0gICAgICAgIHdlYnJ0Yzo6RW5jb2Rl
ZEltYWdlQ2FsbGJhY2s6OlJlc3VsdCByZXN1bHQgPSBtX2ltYWdlUmVhZHlDYi0+T25FbmNvZGVk
SW1hZ2UobV9lbmNvZGVkRnJhbWUsICZjb2RlY1NwZWNpZmlJbmZvcywgJmZyYWdtZW50YXRpb25J
bmZvKTsKKyAgICAgICAgUG9wdWxhdGVDb2RlY1NwZWNpZmljKCZmcmFtZURhdGEuY29kZWNJbmZv
LCBidWZmZXIpOworCisgICAgICAgIHdlYnJ0Yzo6RW5jb2RlZEltYWdlQ2FsbGJhY2s6OlJlc3Vs
dCByZXN1bHQgPSBtX2ltYWdlUmVhZHlDYi0+T25FbmNvZGVkSW1hZ2UobV9lbmNvZGVkRnJhbWUs
ICZmcmFtZURhdGEuY29kZWNJbmZvLCAmZnJhZ21lbnRhdGlvbkluZm8pOwogICAgICAgICBpZiAo
cmVzdWx0LmVycm9yICE9IHdlYnJ0Yzo6RW5jb2RlZEltYWdlQ2FsbGJhY2s6OlJlc3VsdDo6T0sp
CiAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJFbmNvZGUg
Y2FsbGJhY2sgZmFpbGVkOiAlZCIsIHJlc3VsdC5lcnJvcik7CiAKQEAgLTI5NCwxMSArMzMwLDYg
QEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCBjb25zdCBnY2hhciog
UHJvZmlsZU5hbWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAg
ICAgdmlydHVhbCBjb25zdCBnY2hhciogQ2FwcygpCiAgICAgewogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTM3Miw2ICs0MDMsMTAgQEAgcHJpdmF0ZToKICAgICB3ZWJydGM6OkVuY29kZWRJ
bWFnZSBtX2VuY29kZWRGcmFtZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBtX2Vu
Y29kZWRJbWFnZUJ1ZmZlcjsKICAgICBzaXplX3QgbV9lbmNvZGVkSW1hZ2VCdWZmZXJTaXplOwor
CisgICAgTG9jayBtX2J1ZmZlck1hcExvY2s7CisgICAgR1JlZlB0cjxHc3RBZGFwdGVyPiBtX2Fk
YXB0ZXI7CisgICAgVmVjdG9yPEZyYW1lRGF0YT4gbV9mcmFtZXNEYXRhOwogfTsKIAogY2xhc3Mg
SDI2NEVuY29kZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKQEAgLTQ3NCw3ICs1
MDksNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgZ2NoYXIqIENhcHMoKSBmaW5hbCB7IHJldHVybiAi
dmlkZW8veC12cDgiOyB9CiAgICAgY29uc3QgZ2NoYXIqIE5hbWUoKSBmaW5hbCB7IHJldHVybiBj
cmlja2V0OjprVnA4Q29kZWNOYW1lOyB9CiAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBDb2Rl
Y1R5cGUoKSBmaW5hbCB7IHJldHVybiB3ZWJydGM6OmtWaWRlb0NvZGVjVlA4OyB9Ci0gICAgdmly
dHVhbCBjb25zdCBnY2hhciogUHJvZmlsZU5hbWUoKSB7IHJldHVybiAiUHJvZmlsZSBSZWFsdGlt
ZSI7IH0KIAogICAgIHZvaWQgUG9wdWxhdGVDb2RlY1NwZWNpZmljKHdlYnJ0Yzo6Q29kZWNTcGVj
aWZpY0luZm8qIGNvZGVjU3BlY2lmaUluZm9zLCBHc3RCdWZmZXIqIGJ1ZmZlcikgZmluYWwKICAg
ICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353868</attachid>
            <date>2018-11-05 09:19:32 -0800</date>
            <delta_ts>2018-11-05 11:15:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190035-20181105141931.patch</filename>
            <type>text/plain</type>
            <size>14596</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRhY2RmNzM2YTBjOTIx
ZWNmNjY0OTk4MWNjNWJjOTQ5NjNiMTg4Ni4uMmVjNjdkMmQxMjVlNGEzYjc2MjYyNjdjZmJhMWFh
M2RlYzE3OWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEwLTE3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBGaXggRW5jb2RlZEltYWdlIHRpbWVzdGFtcHMgdG8gbWF0Y2ggd2hhdCBsaWJXZWJSVEMgZXhw
ZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkw
MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
Y2FuJ3QgcmVseSBvbiBHU3RyZWFtZXIgdGltZXN0YW1wcyB0byBwYXNzIHRvIEVuY29kZWRJbWFn
ZXMgYWZ0ZXIgZW5jb2RpbmcKKyAgICAgICAgYmVjYXVzZSBsaWJXZWJSVEMgZG9lc24ndCB1c2Ug
dGhlIHRpbWVzdGFtcCB3ZSBmZWQgaXQgYnV0IGRvZXMKKyAgICAgICAgc29tZSBjb21wdXRhdGlv
biBvbiB0aGUgaW5wdXQgdGltZXN0YW1wIGluIHRoZSBpbWFnZXMgd2UgcGFzcyBpbiBiZWZvcmUg
aXQgcGFzc2VzCisgICAgICAgIHRoZW0gYmFjayB0byB0aGUgZW5jb2Rlci4gVGhlbiBpbnRlcm5h
bGx5IExpYldlYlJUQyByZWxpZXMgb24gdGhvc2UgZXhhY3QgdGltZXN0YW1wcworICAgICAgICBw
YXNzZWQgaW50byB0aGUgZW5jb2RlciB0byBkbyBjaGVja3MgYW5kIGNvbXB1dGUgUlRQIHRpbWVz
dGFtcHMgc28gd2UgbmVlZCB0byBjYXJlZnVsbHkKKyAgICAgICAgcGFzcyB0aGUgZXhhY3QgdGlt
ZXN0YW1wcyB0byBMaWJXZWJSVEMgKGluIHByYWN0aWNlIHdlIHN0aWxsIHVzZSBHU3RyZWFtZXIg
dGltZXN0YW1wcyBpbgorICAgICAgICBhbGwgdGhlIEdTdHJlYW1lciBwcm9jZXNzaW5nIHBpcGVs
aW5lcyBhcyB0aGUgV2ViUlRDIG9iamVjdCBiYXNpY2FsbHkgd3JhcHMgdGhlICJzYW1lIgorICAg
ICAgICBgR3N0U2FtcGxlYCBhbGwgYXJvdW5kLCBidXQgd2UgYXJlIG5vdCBzeW5jZWQgb24gdGhl
IGNsb2NrIGFueXdheSkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1ZpZGVvRnJhbWVGcm9tR1N0cmVhbWVyU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclZpZGVvRGVjb2Rlcjo6bmV3U2FtcGxlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6R1N0cmVhbWVyVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6bmV3
U2FtcGxlQ2FsbGJhY2spOgorCiAyMDE4LTExLTA1ICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5p
ZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtXZWJSVENdIEVycm9yIG91dCB3
aGVuIHNpbXVsY2FzdCBpcyBhY3RpdmF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCmluZGV4IGZmZGFlNGViNTA4ZWU2MjVkMjgyY2EyMmE5
OTg3YzVjYzJmZTMwZDYuLjA5YTQzZTYwYzRjNGJmNjMwOTE4NDJhODY2OTZmOWUyNTAxYjY0OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNw
cApAQCAtMTU0LDcgKzE1NCw2IEBAIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMgewogICAg
IEdzdENsb2NrVGltZSBmaXJzdEZyYW1lUHRzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcj4gb2JzZXJ2ZXI7Ci0gICAgU3RyaW5nIHZpZGVvVHJh
Y2tJRDsKICAgICB2b2xhdGlsZSBnaW50IG5wYWRzOwogICAgIGd1bG9uZyBwcm9iZWlkOwogICAg
IFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IHN0cmVhbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1l
TGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcAppbmRleCA1N2M0OGQyZTA4MWRl
MWQ0MTIzYTIzYzJkMTVlZWNkZmFlODhmYmY0Li4xMjBmNWYzY2RiNWE4ZGRlOTc2NWFiMTkzOGVk
OWMxMDc3Y2Q3ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEMuY3BwCkBAIC02OSwxMiArNjksMTMgQEAgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQzo6
Y3JlYXQKICAgICByZXR1cm4gcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1
ZmZlcj4obmV3IEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMoc2FtcGxlLCBpbmZvKSk7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRnJhbWU+IExpYldlYlJUQ1ZpZGVvRnJh
bWVGcm9tR1N0cmVhbWVyU2FtcGxlKEdzdFNhbXBsZSogc2FtcGxlLCB3ZWJydGM6OlZpZGVvUm90
YXRpb24gcm90YXRpb24pCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0ZyYW1lPiBMaWJX
ZWJSVENWaWRlb0ZyYW1lRnJvbUdTdHJlYW1lclNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgd2Vi
cnRjOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLAorICAgIGludDY0X3QgdGltZXN0YW1wLCBpbnQ2
NF90IHJlbmRlclRpbWVNcykKIHsKICAgICBhdXRvIGZyYW1lQnVmZmVyKEdTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEM6OmNyZWF0ZShzYW1wbGUpKTsKIAotICAgIGF1dG8gYnVmZmVyID0gZ3N0
X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZSk7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRnJhbWU+KG5ldyB3ZWJydGM6OlZpZGVvRnJhbWUoZnJhbWVCdWZmZXIsIEdT
VF9CVUZGRVJfRFRTKGJ1ZmZlciksIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlciksIHJvdGF0aW9uKSk7
CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRnJhbWU+KAorICAgICAg
ICBuZXcgd2VicnRjOjpWaWRlb0ZyYW1lKGZyYW1lQnVmZmVyLCB0aW1lc3RhbXAsIHJlbmRlclRp
bWVNcywgcm90YXRpb24pKTsKIH0KIAogd2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlIEdT
dHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEM6OnR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVv
RnJhbWVMaWJXZWJSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmgKaW5kZXggNTNhZGE0MjM2MWJj
ODAzZWUzYTQyNTc0YTQ1OGEwYTI3OWQxYzgyMS4uOWU1M2U5NmRhMmI2MmMwNDE1NDIwOWZlZTdm
NWQ4MjcxNjY4OWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNvbnN0IEdSZWZQdHI8R3N0U2FtcGxlPiBHU3RyZWFtZXJTYW1wbGVGcm9tTGliV2ViUlRDVmlk
ZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmKTsKLXN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRnJhbWU+IExpYldlYlJUQ1ZpZGVvRnJhbWVGcm9tR1N0cmVhbWVyU2FtcGxlKEdz
dFNhbXBsZSosIHdlYnJ0Yzo6VmlkZW9Sb3RhdGlvbik7CitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0ZyYW1lPiBMaWJXZWJSVENWaWRlb0ZyYW1lRnJvbUdTdHJlYW1lclNhbXBsZShHc3RT
YW1wbGUqLCB3ZWJydGM6OlZpZGVvUm90YXRpb24sIGludDY0X3QgdGltZXN0YW1wLCBpbnQ2NF90
IHJlbmRlclRpbWVNcyk7CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMgOiBw
dWJsaWMgcnRjOjpSZWZDb3VudGVkT2JqZWN0PHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gewog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZh
Y3RvcnkuY3BwCmluZGV4IGRjMzMwYjk2YzkwZTlkYmNkZGJjYTVmYTI0YWJhMTZkNjA3MjhiYjAu
LmYwYWM4ZGY2ZjZhZGJiZTU5ZjI5YWIxMzNjZTk1YzIxNDUzNTg0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0RlY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTQ0LDYg
KzQ0LDExIEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfd2VicnRjZGVjX2RlYnVnKTsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdWludDY0X3QgdGlt
ZXN0YW1wOworICAgIGludDY0X3QgcmVuZGVyVGltZU1zOworfSBJbnB1dFRpbWVzdGFtcHM7CisK
IGNsYXNzIEdTdHJlYW1lclZpZGVvRGVjb2RlciA6IHB1YmxpYyB3ZWJydGM6OlZpZGVvRGVjb2Rl
ciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyVmlkZW9EZWNvZGVyKCkKQEAgLTE2Nyw3ICsxNzIs
OCBAQCBwdWJsaWM6CiAgICAgICAgIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlci5nZXQoKSkgPSAoc3Rh
dGljX2Nhc3Q8Z3VpbnQ2ND4ocmVuZGVyVGltZU1zKSAqIEdTVF9NU0VDT05EKSAtIG1fZmlyc3RC
dWZmZXJQdHM7CiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9idWZmZXJNYXBMb2NrKTsKLSAgICAgICAgICAgIG1fZHRzUHRzTWFwW0dTVF9CVUZGRVJfUFRT
KGJ1ZmZlci5nZXQoKSldID0gaW5wdXRJbWFnZS5UaW1lc3RhbXAoKTsKKyAgICAgICAgICAgIElu
cHV0VGltZXN0YW1wcyB0aW1lc3RhbXBzID0ge2lucHV0SW1hZ2UuVGltZXN0YW1wKCksIHJlbmRl
clRpbWVNc307CisgICAgICAgICAgICBtX2R0c1B0c01hcFtHU1RfQlVGRkVSX1BUUyhidWZmZXIu
Z2V0KCkpXSA9IHRpbWVzdGFtcHM7CiAgICAgICAgIH0KIAogICAgICAgICBHU1RfTE9HX09CSkVD
VChwaXBlbGluZSgpLCAiJWxkIERlY29kaW5nOiAlIiBHU1RfUFRSX0ZPUk1BVCwgcmVuZGVyVGlt
ZU1zLCBidWZmZXIuZ2V0KCkpOwpAQCAtMjI4LDE0ICsyMzQsMTYgQEAgcHVibGljOgogICAgICAg
ICBhdXRvIHNhbXBsZSA9IGdzdF9hcHBfc2lua19wdWxsX3NhbXBsZShHU1RfQVBQX1NJTksoc2lu
aykpOwogICAgICAgICBhdXRvIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUp
OwogCi0gICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZm
ZXJNYXBMb2NrKTsKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBmcmFtZS50aW1l
c3RhbXAgPT0gcHJldmlzb3VseSBpbnB1dF9mcmFtZS5fdGltZVN0YW1wCi0gICAgICAgICAgICAv
LyBhcyBpdCBpcyByZXF1aXJlZCBieSB0aGUgVmlkZW9EZWNvZGVyIGJhc2VjbGFzcy4KLSAgICAg
ICAgICAgIEdTVF9CVUZGRVJfRFRTKGJ1ZmZlcikgPSBtX2R0c1B0c01hcFtHU1RfQlVGRkVSX1BU
UyhidWZmZXIpXTsKLSAgICAgICAgICAgIG1fZHRzUHRzTWFwLmVyYXNlKEdTVF9CVUZGRVJfUFRT
KGJ1ZmZlcikpOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8gZnJhbWUoTGliV2ViUlRDVmlkZW9G
cmFtZUZyb21HU3RyZWFtZXJTYW1wbGUoc2FtcGxlLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAp
KTsKKyAgICAgICAgbV9idWZmZXJNYXBMb2NrLmxvY2soKTsKKyAgICAgICAgLy8gTWFrZSBzdXJl
IHRoYXQgdGhlIGZyYW1lLnRpbWVzdGFtcCA9PSBwcmV2aXNvdWx5IGlucHV0X2ZyYW1lLl90aW1l
U3RhbXAKKyAgICAgICAgLy8gYXMgaXQgaXMgcmVxdWlyZWQgYnkgdGhlIFZpZGVvRGVjb2RlciBi
YXNlY2xhc3MuCisgICAgICAgIGF1dG8gdGltZXN0YW1wcyA9IG1fZHRzUHRzTWFwW0dTVF9CVUZG
RVJfUFRTKGJ1ZmZlcildOworICAgICAgICBtX2R0c1B0c01hcC5lcmFzZShHU1RfQlVGRkVSX1BU
UyhidWZmZXIpKTsKKyAgICAgICAgbV9idWZmZXJNYXBMb2NrLnVubG9jaygpOworCisgICAgICAg
IGF1dG8gZnJhbWUoTGliV2ViUlRDVmlkZW9GcmFtZUZyb21HU3RyZWFtZXJTYW1wbGUoc2FtcGxl
LCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsCisgICAgICAgICAgICB0aW1lc3RhbXBzLnRpbWVz
dGFtcCwgdGltZXN0YW1wcy5yZW5kZXJUaW1lTXMpKTsKKwogICAgICAgICBHU1RfQlVGRkVSX0RU
UyhidWZmZXIpID0gR1NUX0NMT0NLX1RJTUVfTk9ORTsKICAgICAgICAgR1NUX0xPR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIk91dHB1dCBkZWNvZGVkIGZyYW1lISAlZCAtPiAlIiBHU1RfUFRSX0ZPUk1B
VCwKICAgICAgICAgICAgIGZyYW1lLT50aW1lc3RhbXAoKSwgYnVmZmVyKTsKQEAgLTI2Nyw3ICsy
NzUsNyBAQCBwcml2YXRlOgogICAgIHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIG1faW1h
Z2VSZWFkeUNiOwogCiAgICAgTG9jayBtX2J1ZmZlck1hcExvY2s7Ci0gICAgU3RkTWFwPEdzdENs
b2NrVGltZSwgR3N0Q2xvY2tUaW1lPiBtX2R0c1B0c01hcDsKKyAgICBTdGRNYXA8R3N0Q2xvY2tU
aW1lLCBJbnB1dFRpbWVzdGFtcHM+IG1fZHRzUHRzTWFwOwogICAgIEdzdENsb2NrVGltZSBtX2Zp
cnN0QnVmZmVyUHRzOwogICAgIEdzdENsb2NrVGltZSBtX2ZpcnN0QnVmZmVyRHRzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApp
bmRleCBkNThmM2U1NmQyZDhiZTgwZTYyY2IxYjExOWZiOWU4OWNkNDFmNzU0Li43ZDc2ZWQzZmI3
MGIxNmM2MjI4OWNkYjQwNTA1ZTdhMDZhYjRhNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFj
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC00MCw4ICs0MCw5IEBACiAj
dW5kZWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkKICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9lbmNvZGlu
Zy1wcm9maWxlLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+Ci0KLSNpbmNsdWRlIDxt
dXRleD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Cisj
aW5jbHVkZSA8d3RmL1N0ZE1hcC5oPgogCiAvLyBSZXF1aXJlZCBmb3IgdW5pZmllZCBidWlsZHMK
ICNpZmRlZiBHU1RfQ0FUX0RFRkFVTFQKQEAgLTU1LDIxICs1NiwyNCBAQCBHU1RfREVCVUdfQ0FU
RUdPUlkod2Via2l0X3dlYnJ0Y2VuY19kZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dHlwZWRlZiB2b2lkICgqQml0cmF0ZVNldHRlcikoR3N0RWxlbWVudCogZW5jb2RlciwgdWludDMy
X3QgYml0cmF0ZSk7Ci1zdGF0aWMgR1JlZlB0cjxHUmVnZXg+IHRhcmdldEJpdHJhdGVCaXRQZXJT
ZWM7Ci1zdGF0aWMgR1JlZlB0cjxHUmVnZXg+IGJpdHJhdGVCaXRQZXJTZWM7Ci1zdGF0aWMgR1Jl
ZlB0cjxHUmVnZXg+IGJpdHJhdGVLQml0UGVyU2VjOwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVp
bnQ2NF90IHJ0cFRpbWVzdGFtcDsKKyAgICBpbnQ2NF90IGNhcHR1cmVUaW1lTXM7CisgICAgd2Vi
cnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY0luZm87Cit9IEZyYW1lRGF0YTsKIAogY2xhc3Mg
R1N0cmVhbWVyVmlkZW9FbmNvZGVyIDogcHVibGljIHdlYnJ0Yzo6VmlkZW9FbmNvZGVyIHsKIHB1
YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zv
cm1hdCYpCiAgICAgICAgIDogbV9maXJzdEZyYW1lUHRzKEdTVF9DTE9DS19USU1FX05PTkUpCiAg
ICAgICAgICwgbV9yZXN0cmljdGlvbkNhcHMoYWRvcHRHUmVmKGdzdF9jYXBzX25ld19lbXB0eV9z
aW1wbGUoInZpZGVvL3gtcmF3IikpKQorICAgICAgICAsIG1fYWRhcHRlcihhZG9wdEdSZWYoZ3N0
X2FkYXB0ZXJfbmV3KCkpKQogICAgIHsKICAgICB9CiAgICAgR1N0cmVhbWVyVmlkZW9FbmNvZGVy
KCkKICAgICAgICAgOiBtX2ZpcnN0RnJhbWVQdHMoR1NUX0NMT0NLX1RJTUVfTk9ORSkKICAgICAg
ICAgLCBtX3Jlc3RyaWN0aW9uQ2FwcyhhZG9wdEdSZWYoZ3N0X2NhcHNfbmV3X2VtcHR5X3NpbXBs
ZSgidmlkZW8veC1yYXciKSkpCisgICAgICAgICwgbV9hZGFwdGVyKGFkb3B0R1JlZihnc3RfYWRh
cHRlcl9uZXcoKSkpCiAgICAgewogICAgIH0KIApAQCAtMTg3LDcgKzE5MSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBpbnQzMl90IEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZy
YW1lLAotICAgICAgICBjb25zdCB3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKiwKKyAgICAgICAg
Y29uc3Qgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5mbyogY29kZWNJbmZvLAogICAgICAgICBjb25z
dCBzdGQ6OnZlY3Rvcjx3ZWJydGM6OkZyYW1lVHlwZT4qIGZyYW1lVHlwZXMpIGZpbmFsCiAgICAg
ewogICAgICAgICBpZiAoIW1faW1hZ2VSZWFkeUNiKSB7CkBAIC0yMTEsMTEgKzIxNSwxOSBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBnc3RfcGFkX3NldF9vZmZzZXQocGFkLmdldCgpLCAtbV9maXJz
dEZyYW1lUHRzKTsKICAgICAgICAgfQogCisgICAgICAgIHdlYnJ0Yzo6Q29kZWNTcGVjaWZpY0lu
Zm8gbG9jYWxDb2RlY0luZm87CisgICAgICAgIEZyYW1lRGF0YSBmcmFtZURhdGEgPSB7IGZyYW1l
LnRpbWVzdGFtcCgpLCBmcmFtZS5yZW5kZXJfdGltZV9tcygpLCBjb2RlY0luZm8gPyAqY29kZWNJ
bmZvIDogbG9jYWxDb2RlY0luZm8gfTsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2J1ZmZlck1hcExvY2spOworICAgICAgICAgICAgbV9mcmFtZXNEYXRh
LmFwcGVuZChmcmFtZURhdGEpOworICAgICAgICB9CisKICAgICAgICAgZm9yIChhdXRvIGZyYW1l
X3R5cGUgOiAqZnJhbWVUeXBlcykgewogICAgICAgICAgICAgaWYgKGZyYW1lX3R5cGUgPT0gd2Vi
cnRjOjprVmlkZW9GcmFtZUtleSkgewogICAgICAgICAgICAgICAgIGF1dG8gcGFkID0gYWRvcHRH
UmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fc3JjLCAic3JjIikpOwogICAgICAgICAg
ICAgICAgIGF1dG8gZm9yY2VLZXlVbml0ID0gZ3N0X3ZpZGVvX2V2ZW50X25ld19kb3duc3RyZWFt
X2ZvcmNlX2tleV91bml0KEdTVF9DTE9DS19USU1FX05PTkUsCiAgICAgICAgICAgICAgICAgICAg
IEdTVF9DTE9DS19USU1FX05PTkUsIEdTVF9DTE9DS19USU1FX05PTkUsIEZBTFNFLCAxKTsKKyAg
ICAgICAgICAgICAgICBHU1RfSU5GT19PQkpFQ1QobV9waXBlbGluZS5nZXQoKSwgIlJlcXVlc3Rp
bmcgS0VZRlJBTUUhIik7CiAKICAgICAgICAgICAgICAgICBpZiAoIWdzdF9wYWRfcHVzaF9ldmVu
dChwYWQuZ2V0KCksIGZvcmNlS2V5VW5pdCkpCiAgICAgICAgICAgICAgICAgICAgIEdTVF9XQVJO
SU5HX09CSkVDVChwaXBlbGluZSgpLCAiQ291bGQgbm90IHNlbmQgRm9yY2VLZXlVbml0IGV2ZW50
Iik7CkBAIC0yNDAsNiArMjUyLDI5IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBidWZmZXIgPSBn
c3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlLmdldCgpKTsKICAgICAgICAgYXV0byBjYXBzID0g
Z3N0X3NhbXBsZV9nZXRfY2FwcyhzYW1wbGUuZ2V0KCkpOwogCisgICAgICAgIHdlYnJ0Yzo6Q29k
ZWNTcGVjaWZpY0luZm8gbG9jYWxDb2RlY0luZm87CisgICAgICAgIEZyYW1lRGF0YSBmcmFtZURh
dGEgPSB7IDAsIDAsIGxvY2FsQ29kZWNJbmZvfTsKKyAgICAgICAgeworICAgICAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlck1hcExvY2spOworICAgICAgICAgICAgaWYgKCFt
X2ZyYW1lc0RhdGEuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZ3N0X2FkYXB0ZXJfcHVzaCht
X2FkYXB0ZXIuZ2V0KCksIGdzdF9idWZmZXJfcmVmKGJ1ZmZlcikpOworCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEdTVF9GTE9XX09LOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
Z3N0X2FkYXB0ZXJfYXZhaWxhYmxlKG1fYWRhcHRlci5nZXQoKSkgPiAwKSB7CisgICAgICAgICAg
ICAgICAgdWludCBmbGFncyA9IEdTVF9CVUZGRVJfRkxBR1MoYnVmZmVyKTsKKworICAgICAgICAg
ICAgICAgIEdTVF9JTkZPX09CSkVDVChtX3BpcGVsaW5lLmdldCgpLCAiR290IG1vcmUgYnVmZmVy
IHRoYW4gcHVzaGVkIGZyYW1lLCB0cnlpbmcgdG8gZGVhbCB3aXRoIGl0LiIpOworICAgICAgICAg
ICAgICAgIGdzdF9hZGFwdGVyX3B1c2gobV9hZGFwdGVyLmdldCgpLCBnc3RfYnVmZmVyX3JlZihi
dWZmZXIpKTsKKworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGdzdF9hZGFwdGVyX3Rha2VfYnVm
ZmVyKG1fYWRhcHRlci5nZXQoKSwgZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlKG1fYWRhcHRlci5nZXQo
KSkpOworICAgICAgICAgICAgICAgIEdTVF9CVUZGRVJfRkxBR1MoYnVmZmVyKSA9IGZsYWdzOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZnJhbWVEYXRhID0gbV9mcmFtZXNEYXRhWzBdOwor
ICAgICAgICAgICAgbV9mcmFtZXNEYXRhLnJlbW92ZShzdGF0aWNfY2FzdDxzaXplX3Q+KDApKTsK
KyAgICAgICAgfQorCiAgICAgICAgIHdlYnJ0Yzo6UlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFn
bWVudGF0aW9uSW5mbzsKICAgICAgICAgRnJhZ21lbnRpemUoJm1fZW5jb2RlZEZyYW1lLCAmbV9l
bmNvZGVkSW1hZ2VCdWZmZXIsICZtX2VuY29kZWRJbWFnZUJ1ZmZlclNpemUsIGJ1ZmZlciwgJmZy
YWdtZW50YXRpb25JbmZvKTsKICAgICAgICAgaWYgKCFtX2VuY29kZWRGcmFtZS5fc2l6ZSkKQEAg
LTI1MSwxNSArMjg2LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG51bGxwdHIpOwogCiAgICAg
ICAgIG1fZW5jb2RlZEZyYW1lLl9mcmFtZVR5cGUgPSBHU1RfQlVGRkVSX0ZMQUdfSVNfU0VUKGJ1
ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0RFTFRBX1VOSVQpID8gd2VicnRjOjprVmlkZW9GcmFtZURl
bHRhIDogd2VicnRjOjprVmlkZW9GcmFtZUtleTsKLSAgICAgICAgbV9lbmNvZGVkRnJhbWUuX2Nv
bXBsZXRlRnJhbWUgPSB0cnVlOwotICAgICAgICBtX2VuY29kZWRGcmFtZS5jYXB0dXJlX3RpbWVf
bXNfID0gR1NUX1RJTUVfQVNfTVNFQ09ORFMoR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSk7Ci0gICAg
ICAgIG1fZW5jb2RlZEZyYW1lLlNldFRpbWVzdGFtcChHU1RfVElNRV9BU19NU0VDT05EUyhHU1Rf
QlVGRkVSX0RUUyhidWZmZXIpKSk7Ci0gICAgICAgIEdTVF9MT0dfT0JKRUNUKG1fcGlwZWxpbmUu
Z2V0KCksICJHb3QgYnVmZmVyIFRTOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FSR1Mo
R1NUX0JVRkZFUl9QVFMoYnVmZmVyKSkpOworICAgICAgICBtX2VuY29kZWRGcmFtZS5fY29tcGxl
dGVGcmFtZSA9IGZhbHNlOworICAgICAgICBtX2VuY29kZWRGcmFtZS5jYXB0dXJlX3RpbWVfbXNf
ID0gZnJhbWVEYXRhLmNhcHR1cmVUaW1lTXM7CisgICAgICAgIG1fZW5jb2RlZEZyYW1lLlNldFRp
bWVzdGFtcChmcmFtZURhdGEucnRwVGltZXN0YW1wKTsKIAotICAgICAgICB3ZWJydGM6OkNvZGVj
U3BlY2lmaWNJbmZvIGNvZGVjU3BlY2lmaUluZm9zOwotICAgICAgICBQb3B1bGF0ZUNvZGVjU3Bl
Y2lmaWMoJmNvZGVjU3BlY2lmaUluZm9zLCBidWZmZXIpOworICAgICAgICBHU1RfTE9HX09CSkVD
VChtX3BpcGVsaW5lLmdldCgpLCAiR290IGJ1ZmZlciBjYXB0dXJlX3RpbWVfbXM6ICVsZCBfdGlt
ZXN0YW1wOiAlbGQiLAorICAgICAgICAgICAgbV9lbmNvZGVkRnJhbWUuY2FwdHVyZV90aW1lX21z
XywgbV9lbmNvZGVkRnJhbWUuVGltZXN0YW1wKCkpOwogCi0gICAgICAgIHdlYnJ0Yzo6RW5jb2Rl
ZEltYWdlQ2FsbGJhY2s6OlJlc3VsdCByZXN1bHQgPSBtX2ltYWdlUmVhZHlDYi0+T25FbmNvZGVk
SW1hZ2UobV9lbmNvZGVkRnJhbWUsICZjb2RlY1NwZWNpZmlJbmZvcywgJmZyYWdtZW50YXRpb25J
bmZvKTsKKyAgICAgICAgUG9wdWxhdGVDb2RlY1NwZWNpZmljKCZmcmFtZURhdGEuY29kZWNJbmZv
LCBidWZmZXIpOworCisgICAgICAgIHdlYnJ0Yzo6RW5jb2RlZEltYWdlQ2FsbGJhY2s6OlJlc3Vs
dCByZXN1bHQgPSBtX2ltYWdlUmVhZHlDYi0+T25FbmNvZGVkSW1hZ2UobV9lbmNvZGVkRnJhbWUs
ICZmcmFtZURhdGEuY29kZWNJbmZvLCAmZnJhZ21lbnRhdGlvbkluZm8pOwogICAgICAgICBpZiAo
cmVzdWx0LmVycm9yICE9IHdlYnJ0Yzo6RW5jb2RlZEltYWdlQ2FsbGJhY2s6OlJlc3VsdDo6T0sp
CiAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKG1fcGlwZWxpbmUuZ2V0KCksICJFbmNvZGUg
Y2FsbGJhY2sgZmFpbGVkOiAlZCIsIHJlc3VsdC5lcnJvcik7CiAKQEAgLTI5NCwxMSArMzMwLDYg
QEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCBjb25zdCBnY2hhciog
UHJvZmlsZU5hbWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAg
ICAgdmlydHVhbCBjb25zdCBnY2hhciogQ2FwcygpCiAgICAgewogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTM3Miw2ICs0MDMsMTAgQEAgcHJpdmF0ZToKICAgICB3ZWJydGM6OkVuY29kZWRJ
bWFnZSBtX2VuY29kZWRGcmFtZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBtX2Vu
Y29kZWRJbWFnZUJ1ZmZlcjsKICAgICBzaXplX3QgbV9lbmNvZGVkSW1hZ2VCdWZmZXJTaXplOwor
CisgICAgTG9jayBtX2J1ZmZlck1hcExvY2s7CisgICAgR1JlZlB0cjxHc3RBZGFwdGVyPiBtX2Fk
YXB0ZXI7CisgICAgVmVjdG9yPEZyYW1lRGF0YT4gbV9mcmFtZXNEYXRhOwogfTsKIAogY2xhc3Mg
SDI2NEVuY29kZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKQEAgLTQ3NCw3ICs1
MDksNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgZ2NoYXIqIENhcHMoKSBmaW5hbCB7IHJldHVybiAi
dmlkZW8veC12cDgiOyB9CiAgICAgY29uc3QgZ2NoYXIqIE5hbWUoKSBmaW5hbCB7IHJldHVybiBj
cmlja2V0OjprVnA4Q29kZWNOYW1lOyB9CiAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBDb2Rl
Y1R5cGUoKSBmaW5hbCB7IHJldHVybiB3ZWJydGM6OmtWaWRlb0NvZGVjVlA4OyB9Ci0gICAgdmly
dHVhbCBjb25zdCBnY2hhciogUHJvZmlsZU5hbWUoKSB7IHJldHVybiAiUHJvZmlsZSBSZWFsdGlt
ZSI7IH0KIAogICAgIHZvaWQgUG9wdWxhdGVDb2RlY1NwZWNpZmljKHdlYnJ0Yzo6Q29kZWNTcGVj
aWZpY0luZm8qIGNvZGVjU3BlY2lmaUluZm9zLCBHc3RCdWZmZXIqIGJ1ZmZlcikgZmluYWwKICAg
ICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>