<?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>136138</bug_id>
          
          <creation_ts>2014-08-21 16:34:15 -0700</creation_ts>
          <short_desc>Implement paint flashing in the WK1 InspectorOverlay page</short_desc>
          <delta_ts>2014-08-22 13:26:46 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030588</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-21 16:34:15 -0700</bug_when>
    <thetext>Implement paint flashing in the WK1 InspectorOverlay page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030589</commentid>
    <comment_count>1</comment_count>
      <attachid>236944</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-21 16:38:00 -0700</bug_when>
    <thetext>Created attachment 236944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030590</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-21 16:38:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/18096165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030613</commentid>
    <comment_count>3</comment_count>
      <attachid>236944</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-21 18:04:19 -0700</bug_when>
    <thetext>Comment on attachment 236944
Patch

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

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:494
&gt; +    double removeTime = currentTime() + 0.25;

Wat? Crono?

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:498
&gt; +        m_paintRectUpdateTimer.startRepeating(0.016);

Wat?

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:210
&gt; +    // Don&apos;t get the context until we need to paint, to avoid backing store allocation.

This comment is weirdly paragraphed?

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:216
&gt; +    // clear paint rects?

This is weird? At least add a FIXME: and capitalize the C in clear.

&gt; Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h:107
&gt; +#if PLATFORM(IOS)
&gt; +    bool m_showingPaintRects;
&gt; +#endif
&gt;  };

This is unused. You should remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030624</commentid>
    <comment_count>4</comment_count>
      <attachid>236944</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-21 18:27:09 -0700</bug_when>
    <thetext>Comment on attachment 236944
Patch

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

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:347
&gt; +    object-&gt;setNumber(&quot;x&quot;, rect.x());
&gt; +    object-&gt;setNumber(&quot;y&quot;, rect.y());
&gt; +    object-&gt;setNumber(&quot;width&quot;, rect.width());
&gt; +    object-&gt;setNumber(&quot;height&quot;, rect.height());

Nit: ASCIILiteral for each of the keys.

&gt; Source/WebCore/inspector/InspectorOverlay.cpp:528
&gt; +    evaluateInOverlay(&quot;updatePaintRects&quot;, fragmentsArray.release());

Nit: ASCIILiteral(&quot;updatePaintRects&quot;)

&gt; Source/WebCore/inspector/InspectorOverlayPage.js:183
&gt; +    for (var i in paintRectList) {
&gt; +        var rectObject = paintRectList[i];
&gt; +        context.fillRect(rectObject.x, rectObject.y, rectObject.width, rectObject.height);
&gt; +    }

You should not use &quot;for..in&quot; for array iteration (and paintRectList is an Array).

You could write this:

    for (var rectObject of paintRectList)
        context.fillRect(rectObject.x, rectObject.y, rectObject.width, rectObject.height);

&gt; Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h:80
&gt; +    virtual bool overridesShowPaintRects() override { return true; }

Ideally this would be &quot;const&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030785</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-22 13:26:46 -0700</bug_when>
    <thetext>https://trac.webkit.org/r172869</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236944</attachid>
            <date>2014-08-21 16:38:00 -0700</date>
            <delta_ts>2014-08-21 18:27:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136138-20140821163751.patch</filename>
            <type>text/plain</type>
            <size>20295</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZkOTNhMGE1OTQyN2Rk
YWVmMmMwNDQxZWM2M2E4NjE4MTgwN2U3My4uYmEyOTlmNGYxZWZlMWI4MTljMDZkODVjZDEwZjhh
ZjlmZDQ5YmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE0LTA4LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEltcGxlbWVudCBw
YWludCBmbGFzaGluZyBpbiB0aGUgV0sxIEluc3BlY3Rvck92ZXJsYXkgcGFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MTM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHBhaW50IGZs
YXNoaW5nIGZvciB0aGUgV2ViS2l0MSBJbnNwZWN0b3JPdmVybGF5IHZpYSBhIHNlY29uZCBjYW52
YXMgaW4gdGhlIG92ZXJsYXkgcGFnZS4KKyAgICAgICAgV2UgYXZvaWQgYWxsb2NhdGluZyBiYWNr
aW5nIHN0b3JlIGZvciB0aGlzIGNhbnZhcyB1bnRpbCB3ZSBoYXZlIHBhaW50IHJlY3RzLgorICAg
ICAgICAKKyAgICAgICAgQmVjYXVzZSB0aGlzIG92ZXJsYXkgcGFnZSBpcyB3ZWlyZCBhbmQgZG9l
c24ndCBrbm93IGhvdyB0byBwYWludCBpdHNlbGYsIEluc3BlY3Rvck92ZXJsYXkgbWFuYWdlcwor
ICAgICAgICBhbiBhcnJheSBvZiByZWN0cywgYW5kIHB1c2hlcyB0aGVtIHRvIHRoZSBwYWdlIHdo
ZW4gdGhleSBjaGFuZ2UsIGJlZm9yZSBmb3JjaW5nIGEgcGFpbnQuCisgICAgICAgIAorICAgICAg
ICBCZWNhdXNlIGlPUyBkb2Vzbid0IHVzZSB0aGUgSW5zcGVjdG9yT3ZlcmxheSBwYWdlLCBzdHVi
IG91dCBzZXRTaG93UGFpbnRSZWN0cyBvbiBpdHMKKyAgICAgICAgV2ViS2l0IFdlYkluc3BlY3Rv
ckNsaWVudCwgYnV0IGRvbid0IHlldCBpbXBsZW1lbnQgcGFpbnQgZmxhc2hpbmcgdGhlcmUuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3VsZFNob3dPdmVybGF5KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9i
amVjdEZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2V0U2hv
d2luZ1BhaW50UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2hv
d1BhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGVQ
YWludFJlY3RzVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5
OjpkcmF3UGFpbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5Ojpm
b3JjZVBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OnF1YWRUb1BhdGgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZHJhd091dGxpbmVkUXVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JPdmVybGF5OjpkcmF3T3V0bGluZSk6IERlbGV0ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheVBhZ2UuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eVBhZ2UuanM6CisgICAgICAgICh1cGRhdGVQYWludFJlY3RzKToKKyAgICAgICAgKHJlc2V0KToK
KyAgICAgICAgKF9kcmF3U2hhcGVIaWdobGlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjpzZXRTaG93UGFpbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmRpZFBhaW50KToKKworMjAxNC0wOC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgcGFpbnQgZmxhc2hpbmcgdmlhIEdyYXBo
aWNzTGF5ZXJzIGluIHRoZSBXSzIgaW5zcGVjdG9yIG92ZXJsYXkKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjEzNgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5k
ZXggYTNmMDY5MzUxNWJjZTFiNmRhN2ZmMzE3MTdjYTI1MjUxMmJhYmExYy4uM2YzNDYyZWY3OTIy
ZTY1ZGM5MTI1NDIzNGFiZWY3ZjFlMzEwNzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDE0LTA4LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBwYWludCBmbGFzaGluZyBpbiB0aGUgV0sxIEluc3BlY3Rv
ck92ZXJsYXkgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2MTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHBhaW50IGZsYXNoaW5nIGZvciB0aGUgV2ViS2l0MSBJbnNwZWN0b3JP
dmVybGF5IHZpYSBhIHNlY29uZCBjYW52YXMgaW4gdGhlIG92ZXJsYXkgcGFnZS4KKyAgICAgICAg
V2UgYXZvaWQgYWxsb2NhdGluZyBiYWNraW5nIHN0b3JlIGZvciB0aGlzIGNhbnZhcyB1bnRpbCB3
ZSBoYXZlIHBhaW50IHJlY3RzLgorICAgICAgICAKKyAgICAgICAgQmVjYXVzZSB0aGlzIG92ZXJs
YXkgcGFnZSBpcyB3ZWlyZCBhbmQgZG9lc24ndCBrbm93IGhvdyB0byBwYWludCBpdHNlbGYsIElu
c3BlY3Rvck92ZXJsYXkgbWFuYWdlcworICAgICAgICBhbiBhcnJheSBvZiByZWN0cywgYW5kIHB1
c2hlcyB0aGVtIHRvIHRoZSBwYWdlIHdoZW4gdGhleSBjaGFuZ2UsIGJlZm9yZSBmb3JjaW5nIGEg
cGFpbnQuCisgICAgICAgIAorICAgICAgICBCZWNhdXNlIGlPUyBkb2Vzbid0IHVzZSB0aGUgSW5z
cGVjdG9yT3ZlcmxheSBwYWdlLCBzdHViIG91dCBzZXRTaG93UGFpbnRSZWN0cyBvbiBpdHMKKyAg
ICAgICAgV2ViS2l0IFdlYkluc3BlY3RvckNsaWVudCwgYnV0IGRvbid0IHlldCBpbXBsZW1lbnQg
cGFpbnQgZmxhc2hpbmcgdGhlcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6OnNldFNob3dQ
YWludFJlY3RzKToKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6
CisKIDIwMTQtMDgtMTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCB0aGUgaU9TIGJ1aWxkIGFmdGVyICByMTcyNzA5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGI1
NDcyNjEzNTdlZDliZGNjMDNjNjRhNjY3MjZlNDJjYmM1NTVkZDEuLjE1ZDhkNmUxYWY0MWI2Zjdj
ZWM5MjJhMzMwMDhkODU3MzczMDJjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxNC0wOC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgcGFpbnQgZmxhc2hpbmcgaW4gdGhlIFdLMSBJbnNwZWN0b3JPdmVy
bGF5IHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBwYWludCBmbGFzaGluZyBmb3IgdGhlIFdlYktpdDEgSW5zcGVjdG9yT3Zlcmxh
eSB2aWEgYSBzZWNvbmQgY2FudmFzIGluIHRoZSBvdmVybGF5IHBhZ2UuCisgICAgICAgIFdlIGF2
b2lkIGFsbG9jYXRpbmcgYmFja2luZyBzdG9yZSBmb3IgdGhpcyBjYW52YXMgdW50aWwgd2UgaGF2
ZSBwYWludCByZWN0cy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2UgdGhpcyBvdmVybGF5IHBh
Z2UgaXMgd2VpcmQgYW5kIGRvZXNuJ3Qga25vdyBob3cgdG8gcGFpbnQgaXRzZWxmLCBJbnNwZWN0
b3JPdmVybGF5IG1hbmFnZXMKKyAgICAgICAgYW4gYXJyYXkgb2YgcmVjdHMsIGFuZCBwdXNoZXMg
dGhlbSB0byB0aGUgcGFnZSB3aGVuIHRoZXkgY2hhbmdlLCBiZWZvcmUgZm9yY2luZyBhIHBhaW50
LgorICAgICAgICAKKyAgICAgICAgQmVjYXVzZSBpT1MgZG9lc24ndCB1c2UgdGhlIEluc3BlY3Rv
ck92ZXJsYXkgcGFnZSwgc3R1YiBvdXQgc2V0U2hvd1BhaW50UmVjdHMgb24gaXRzCisgICAgICAg
IFdlYktpdCBXZWJJbnNwZWN0b3JDbGllbnQsIGJ1dCBkb24ndCB5ZXQgaW1wbGVtZW50IHBhaW50
IGZsYXNoaW5nIHRoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
OgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpXZWJJbnNwZWN0b3JDbGllbnQpOgorCiAy
MDE0LTA4LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCAwM2U5ZWVmNjI0MGFiNjRjZDA2ZGI3Yjhh
NDEyYTdkZDczNWQ5NDJkLi4wYzNkYzFhZmZhMWU3ZTIzNjQ4MDkzZTkzNjdmMWFjMzdiMjQyYjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBA
IC02Myw0MSArNjMsNiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBQYXRoIHF1YWRUb1BhdGgoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KQotewotICAgIFBhdGggcXVhZFBhdGg7Ci0gICAgcXVhZFBhdGgubW92ZVRvKHF1YWQucDEoKSk7
Ci0gICAgcXVhZFBhdGguYWRkTGluZVRvKHF1YWQucDIoKSk7Ci0gICAgcXVhZFBhdGguYWRkTGlu
ZVRvKHF1YWQucDMoKSk7Ci0gICAgcXVhZFBhdGguYWRkTGluZVRvKHF1YWQucDQoKSk7Ci0gICAg
cXVhZFBhdGguY2xvc2VTdWJwYXRoKCk7Ci0gICAgcmV0dXJuIHF1YWRQYXRoOwotfQotCi1zdGF0
aWMgdm9pZCBkcmF3T3V0bGluZWRRdWFkKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRRdWFkJiBxdWFkLCBjb25zdCBDb2xvciYgZmlsbENvbG9yLCBjb25zdCBDb2xvciYgb3V0
bGluZUNvbG9yKQotewotICAgIHN0YXRpYyBjb25zdCBpbnQgb3V0bGluZVRoaWNrbmVzcyA9IDI7
Ci0KLSAgICBQYXRoIHF1YWRQYXRoID0gcXVhZFRvUGF0aChxdWFkKTsKLQotICAgIC8vIENsaXAg
b3V0IHRoZSBxdWFkLCB0aGVuIGRyYXcgd2l0aCBhIDJweCBzdHJva2UgdG8gZ2V0IGEgcGl4ZWwK
LSAgICAvLyBvZiBvdXRsaW5lIChiZWNhdXNlIGluZmxhdGluZyBhIHF1YWQgaXMgaGFyZCkKLSAg
ICB7Ci0gICAgICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICAgICAgY29udGV4dC0+Y2xpcE91dChx
dWFkUGF0aCk7Ci0KLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG91dGxpbmVU
aGlja25lc3MpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvdXRsaW5lQ29sb3Is
IENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICBjb250ZXh0LT5zdHJva2VQYXRoKHF1YWRQ
YXRoKTsKLQotICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7Ci0gICAgfQotCi0gICAgLy8gTm93
IGRvIHRoZSBmaWxsCi0gICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGZpbGxDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgY29udGV4dC0+ZmlsbFBhdGgocXVhZFBhdGgpOwotfQotCiBz
dGF0aWMgdm9pZCBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0oY29uc3QgRnJhbWVWaWV3
KiBtYWluVmlldywgY29uc3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9hdFF1YWQmIHF1YWQsIEluc3Bl
Y3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkKIHsKICAgICBx
dWFkLnNldFAxKHZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhyb3VuZGVkSW50UG9pbnQocXVhZC5w
MSgpKSkpOwpAQCAtMjM4LDcgKzIwMyw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkUXVhZEhpZ2hsaWdo
dChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnCiBJbnNw
ZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVu
dCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisg
ICAgLCBtX3BhaW50UmVjdFVwZGF0ZVRpbWVyKHRoaXMsICZJbnNwZWN0b3JPdmVybGF5Ojp1cGRh
dGVQYWludFJlY3RzVGltZXJGaXJlZCkKICAgICAsIG1faW5kaWNhdGluZyhmYWxzZSkKKyAgICAs
IG1fc2hvd2luZ1BhaW50UmVjdHMoZmFsc2UpCiB7CiB9CiAKQEAgLTI1NywxMiArMjI0LDYgQEAg
dm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAg
ICAgdmlldy0+cGFpbnQoJmNvbnRleHQsIEludFJlY3QoMCwgMCwgdmlldy0+d2lkdGgoKSwgdmll
dy0+aGVpZ2h0KCkpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3T3V0bGluZShH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvcikKLXsKLSAgICBGbG9hdFJlY3Qgb3V0bGluZVJlY3QgPSByZWN0OwotICAgIGRy
YXdPdXRsaW5lZFF1YWQoY29udGV4dCwgb3V0bGluZVJlY3QsIENvbG9yKCksIGNvbG9yKTsKLX0K
LQogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGln
aHQsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkg
Y29uc3QKIHsKICAgICBpZiAoIW1faGlnaGxpZ2h0Tm9kZSAmJiAhbV9oaWdobGlnaHRRdWFkKQpA
QCAtMzI5LDcgKzI5MCw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6c2V0SW5kaWNhdGluZyhi
b29sIGluZGljYXRpbmcpCiAKIGJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvdWxkU2hvd092ZXJs
YXkoKSBjb25zdAogewotICAgIHJldHVybiBtX2hpZ2hsaWdodE5vZGUgfHwgbV9oaWdobGlnaHRO
b2RlIHx8IG1faW5kaWNhdGluZyB8fCAhbV9wYXVzZWRJbkRlYnVnZ2VyTWVzc2FnZS5pc051bGwo
KTsKKyAgICByZXR1cm4gbV9oaWdobGlnaHROb2RlIHx8IG1faGlnaGxpZ2h0Tm9kZSB8fCBtX2lu
ZGljYXRpbmcgfHwgbV9zaG93aW5nUGFpbnRSZWN0cyB8fCAhbV9wYXVzZWRJbkRlYnVnZ2VyTWVz
c2FnZS5pc051bGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUoKQpAQCAt
MzU5LDE0ICszMjAsMTQgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUoKQogICAgIGRy
YXdOb2RlSGlnaGxpZ2h0KCk7CiAgICAgZHJhd1F1YWRIaWdobGlnaHQoKTsKICAgICBkcmF3UGF1
c2VkSW5EZWJ1Z2dlck1lc3NhZ2UoKTsKKyAgICBkcmF3UGFpbnRSZWN0cygpOwogCiAgICAgLy8g
UG9zaXRpb24gRE9NIGVsZW1lbnRzLgogICAgIG92ZXJsYXlQYWdlKCktPm1haW5GcmFtZSgpLmRv
Y3VtZW50KCktPnJlY2FsY1N0eWxlKFN0eWxlOjpGb3JjZSk7CiAgICAgaWYgKG92ZXJsYXlWaWV3
LT5uZWVkc0xheW91dCgpKQogICAgICAgICBvdmVybGF5Vmlldy0+bGF5b3V0KCk7CiAKLSAgICAv
LyBLaWNrIHBhaW50LgotICAgIG1fY2xpZW50LT5oaWdobGlnaHQoKTsKKyAgICBmb3JjZVBhaW50
KCk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RG
b3JQb2ludChjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKQEAgLTM3Nyw2ICszMzgsMTYgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclBvaW50KGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50KQogICAgIHJldHVybiBvYmplY3QucmVsZWFzZSgpOwogfQogCitz
dGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBvYmplY3QtPnNldE51bWJlcigieCIs
IHJlY3QueCgpKTsKKyAgICBvYmplY3QtPnNldE51bWJlcigieSIsIHJlY3QueSgpKTsKKyAgICBv
YmplY3QtPnNldE51bWJlcigid2lkdGgiLCByZWN0LndpZHRoKCkpOworICAgIG9iamVjdC0+c2V0
TnVtYmVyKCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsKKyAgICByZXR1cm4gb2JqZWN0LnJlbGVh
c2UoKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlG
b3JRdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IGFycmF5ID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOwpAQCAtNDk5LDYgKzQ3MCw2NCBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ1NTUmVn
aW9uQ29udGVudENsaXAoUmVuZGVyUmVnaQogICAgIHJldHVybiByZWdpb25PYmplY3QucmVsZWFz
ZSgpOwogfQogCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFNob3dpbmdQYWludFJlY3RzKGJv
b2wgc2hvd2luZ1BhaW50UmVjdHMpCit7CisgICAgaWYgKG1fc2hvd2luZ1BhaW50UmVjdHMgPT0g
c2hvd2luZ1BhaW50UmVjdHMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hvd2luZ1BhaW50
UmVjdHMgPSBzaG93aW5nUGFpbnRSZWN0czsKKyAgICBpZiAoIW1fc2hvd2luZ1BhaW50UmVjdHMp
IHsKKyAgICAgICAgbV9wYWludFJlY3RzLmNsZWFyKCk7CisgICAgICAgIG1fcGFpbnRSZWN0VXBk
YXRlVGltZXIuc3RvcCgpOworICAgICAgICBkcmF3UGFpbnRSZWN0cygpOworICAgICAgICBmb3Jj
ZVBhaW50KCk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNob3dQYWludFJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGlmICghbV9zaG93aW5nUGFpbnRSZWN0
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgSW50UmVjdCByb290UmVjdCA9IG1fcGFnZS5tYWlu
RnJhbWUoKS52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhlbmNsb3NlZEludFJlY3QocmVjdCkp
OworCisgICAgZG91YmxlIHJlbW92ZVRpbWUgPSBjdXJyZW50VGltZSgpICsgMC4yNTsKKyAgICBt
X3BhaW50UmVjdHMuYXBwZW5kKHN0ZDo6cGFpcjxkb3VibGUsIEZsb2F0UmVjdD4ocmVtb3ZlVGlt
ZSwgcm9vdFJlY3QpKTsKKworICAgIGlmICghbV9wYWludFJlY3RVcGRhdGVUaW1lci5pc0FjdGl2
ZSgpKQorICAgICAgICBtX3BhaW50UmVjdFVwZGF0ZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuMDE2
KTsKKworICAgIGRyYXdQYWludFJlY3RzKCk7CisgICAgZm9yY2VQYWludCgpOworfQorCit2b2lk
IEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZVBhaW50UmVjdHNUaW1lckZpcmVkKFRpbWVyPEluc3Bl
Y3Rvck92ZXJsYXk+JikKK3sKKyAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWUoKTsKKyAgICBi
b29sIHJlY3RzQ2hhbmdlZCA9IGZhbHNlOworICAgIHdoaWxlICghbV9wYWludFJlY3RzLmlzRW1w
dHkoKSAmJiBtX3BhaW50UmVjdHMuZmlyc3QoKS5maXJzdCA8IG5vdykgeworICAgICAgICBtX3Bh
aW50UmVjdHMucmVtb3ZlRmlyc3QoKTsKKyAgICAgICAgcmVjdHNDaGFuZ2VkID0gdHJ1ZTsKKyAg
ICB9CisgICAgCisgICAgaWYgKG1fcGFpbnRSZWN0cy5pc0VtcHR5KCkpCisgICAgICAgIG1fcGFp
bnRSZWN0VXBkYXRlVGltZXIuc3RvcCgpOworCisgICAgaWYgKHJlY3RzQ2hhbmdlZCkgeworICAg
ICAgICBkcmF3UGFpbnRSZWN0cygpOworICAgICAgICBmb3JjZVBhaW50KCk7CisgICAgfQorfQor
Cit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdQYWludFJlY3RzKCkKK3sKKyAgICBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+IGZyYWdtZW50c0FycmF5ID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgp
OworICAgIGZvciAoY29uc3QgYXV0byYgcGFpciA6IG1fcGFpbnRSZWN0cykKKyAgICAgICAgZnJh
Z21lbnRzQXJyYXktPnB1c2hPYmplY3QoYnVpbGRPYmplY3RGb3JSZWN0KHBhaXIuc2Vjb25kKSk7
CisKKyAgICBldmFsdWF0ZUluT3ZlcmxheSgidXBkYXRlUGFpbnRSZWN0cyIsIGZyYWdtZW50c0Fy
cmF5LnJlbGVhc2UoKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd0d1dHRlcigp
CiB7CiAgICAgZXZhbHVhdGVJbk92ZXJsYXkoImRyYXdHdXR0ZXIiKTsKQEAgLTgxNyw2ICs4NDYs
MTIgQEAgUGFnZSogSW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UoKQogICAgIHJldHVybiBt
X292ZXJsYXlQYWdlLmdldCgpOwogfQogCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmZvcmNlUGFp
bnQoKQoreworICAgIC8vIFRoaXMgb3ZlcmxheSBwYWdlIGlzIHZlcnkgd2VpcmQgYW5kIGRvZXNu
J3QgYXV0b21hdGljYWxseSBwYWludC4gV2UgaGF2ZSB0byBmb3JjZSBwYWludHMgbWFudWFsbHku
CisgICAgbV9jbGllbnQtPmhpZ2hsaWdodCgpOworfQorCiB2b2lkIEluc3BlY3Rvck92ZXJsYXk6
OnJlc2V0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgZnJhbWVW
aWV3RnVsbFNpemUpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzZXREYXRhID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5oCmluZGV4IDE5M2FjOWFkZWExMmQ2NzYxMTQ2MjIwOGQ0MDQ4ZDFkM2Vj
MDMyMGUuLmE0ODU2NTdhZGM1NzA0NjVhM2Y2Zjc4NjNiMGZlODgwMjFhYzMzMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaApAQCAtMzIsNiArMzIsOCBA
QAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAi
TGF5b3V0UmVjdC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTExMCw3ICsxMTIsNiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHVwZGF0ZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0Jik7Ci0g
ICAgdm9pZCBkcmF3T3V0bGluZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jiwg
Y29uc3QgQ29sb3ImKTsKICAgICB2b2lkIGdldEhpZ2hsaWdodChIaWdobGlnaHQqLCBDb29yZGlu
YXRlU3lzdGVtKSBjb25zdDsKIAogICAgIHZvaWQgc2V0UGF1c2VkSW5EZWJ1Z2dlck1lc3NhZ2Uo
Y29uc3QgU3RyaW5nKik7CkBAIC0xMTgsNyArMTE5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhp
ZGVIaWdobGlnaHQoKTsKICAgICB2b2lkIGhpZ2hsaWdodE5vZGUoTm9kZSosIGNvbnN0IEhpZ2hs
aWdodENvbmZpZyYpOwogICAgIHZvaWQgaGlnaGxpZ2h0UXVhZChzdGQ6OnVuaXF1ZV9wdHI8Rmxv
YXRRdWFkPiwgY29uc3QgSGlnaGxpZ2h0Q29uZmlnJik7Ci0KKyAgICAKKyAgICB2b2lkIHNldFNo
b3dpbmdQYWludFJlY3RzKGJvb2wpOworICAgIHZvaWQgc2hvd1BhaW50UmVjdChjb25zdCBGbG9h
dFJlY3QmKTsKKyAgICAKICAgICBOb2RlKiBoaWdobGlnaHRlZE5vZGUoKSBjb25zdDsKIAogICAg
IHZvaWQgZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpOwpAQCAtMTM0LDcgKzEz
OCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoKTsKICAgICB2b2lk
IGRyYXdRdWFkSGlnaGxpZ2h0KCk7CiAgICAgdm9pZCBkcmF3UGF1c2VkSW5EZWJ1Z2dlck1lc3Nh
Z2UoKTsKKyAgICB2b2lkIGRyYXdQYWludFJlY3RzKCk7CisgICAgdm9pZCB1cGRhdGVQYWludFJl
Y3RzVGltZXJGaXJlZChUaW1lcjxJbnNwZWN0b3JPdmVybGF5PiYpOworCiAgICAgUGFnZSogb3Zl
cmxheVBhZ2UoKTsKKworICAgIHZvaWQgZm9yY2VQYWludCgpOwogICAgIHZvaWQgcmVzZXQoY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBmcmFtZVZpZXdGdWxsU2l6
ZSk7CiAgICAgdm9pZCBldmFsdWF0ZUluT3ZlcmxheShjb25zdCBTdHJpbmcmIG1ldGhvZCk7CiAg
ICAgdm9pZCBldmFsdWF0ZUluT3ZlcmxheShjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3Ry
aW5nJiBhcmd1bWVudCk7CkBAIC0xNDgsNyArMTU3LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEZsb2F0UXVhZD4gbV9oaWdobGlnaHRRdWFkOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxQYWdlPiBtX292ZXJsYXlQYWdlOwogICAgIEhpZ2hsaWdodENvbmZpZyBtX3F1YWRIaWdobGln
aHRDb25maWc7CisgICAgRGVxdWU8c3RkOjpwYWlyPGRvdWJsZSwgRmxvYXRSZWN0Pj4gbV9wYWlu
dFJlY3RzOworICAgIFRpbWVyPEluc3BlY3Rvck92ZXJsYXk+IG1fcGFpbnRSZWN0VXBkYXRlVGlt
ZXI7CiAgICAgYm9vbCBtX2luZGljYXRpbmc7CisgICAgYm9vbCBtX3Nob3dpbmdQYWludFJlY3Rz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbAppbmRleCAxOWFhYmRkMjlmODAwNTg5
OTMxMDI2YjJmODQ2MDFhY2YzYTdmYTkyLi5jNTYxNzgxMTdkZTRiMWZkZGU4MmNkZDhlYTMzYTI1
NDZhMzViYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheVBhZ2UuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheVBhZ2UuaHRtbApAQCAtMzQsNiArMzQsNyBAQAogPGJvZHkgY2xhc3M9ImZpbGwiPgog
PGRpdiBjbGFzcz0ibWVzc2FnZS1saW5lIj48c3BhbiBjbGFzcz0ibWVzc2FnZS1ib3giIGlkPSJw
YXVzZWQtaW4tZGVidWdnZXIiPjwvc3Bhbj48L2Rpdj4KIDxjYW52YXMgaWQ9ImNhbnZhcyIgY2xh
c3M9ImZpbGwiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0icGFpbnRyZWN0cy1jYW52YXMiIGNsYXNz
PSJmaWxsIj48L2NhbnZhcz4KIDxkaXYgaWQ9ImVsZW1lbnQtdGl0bGUtY29udGFpbmVyIj48L2Rp
dj4KIDxkaXYgaWQ9InJpZ2h0LWd1dHRlciI+PC9kaXY+CiA8ZGl2IGlkPSJib3R0b20tZ3V0dGVy
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5UGFnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
UGFnZS5qcwppbmRleCBiZDk4NTA1ZjJjM2RjNGM3YjdhNmY0MGFmYTI2ODdkN2I2NTFmNmE3Li41
OTU3NTBiZjdhNWViNTY2NDkwNzk4MGZkMjYwODA1NWNjMGY2OTQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzCkBAIC0yMiw2ICsyMiw4
IEBAIGNvbnN0IHJlZ2lvbk51bWJlclN0cm9rZUNvbG9yID0gInJnYig2MSwgMTI3LCAyMDQpIjsK
IGNvbnN0IHNoYXBlSGlnaGxpZ2h0Q29sb3IgPSAicmdiYSg5NiwgODIsIDEyNywgMC44KSI7CiBj
b25zdCBzaGFwZU1hcmdpbkhpZ2hsaWdodENvbG9yID0gInJnYmEoOTYsIDgyLCAxMjcsIDAuNiki
OwogCitjb25zdCBwYWludFJlY3RGaWxsQ29sb3IgPSAicmdiYSgyNTUsIDAsIDAsIDAuNSkiOwor
CiBmdW5jdGlvbiBkcmF3UGF1c2VkSW5EZWJ1Z2dlck1lc3NhZ2UobWVzc2FnZSkKIHsKICAgICB2
YXIgcGF1c2VkSW5EZWJ1Z2dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXVzZWQtaW4t
ZGVidWdnZXIiKTsKQEAgLTE2Myw2ICsxNjUsMjUgQEAgZnVuY3Rpb24gZHJhd0d1dHRlcigpCiAg
ICAgfQogfQogCit2YXIgdXBkYXRlUGFpbnRSZWN0c0ludGVydmFsSUQ7CisKK2Z1bmN0aW9uIHVw
ZGF0ZVBhaW50UmVjdHMocGFpbnRSZWN0TGlzdCkKK3sKKyAgICB2YXIgY29udGV4dCA9IHBhaW50
UmVjdHNDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LnNhdmUoKTsKKyAgICBj
b250ZXh0LnNjYWxlKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLCB3aW5kb3cuZGV2aWNlUGl4ZWxS
YXRpbyk7CisKKyAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBwYWludFJlY3RzQ2FudmFzLndp
ZHRoLCBwYWludFJlY3RzQ2FudmFzLmhlaWdodCk7CisKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9
IHBhaW50UmVjdEZpbGxDb2xvcjsKKworICAgIGZvciAodmFyIGkgaW4gcGFpbnRSZWN0TGlzdCkg
eworICAgICAgICB2YXIgcmVjdE9iamVjdCA9IHBhaW50UmVjdExpc3RbaV07CisgICAgICAgIGNv
bnRleHQuZmlsbFJlY3QocmVjdE9iamVjdC54LCByZWN0T2JqZWN0LnksIHJlY3RPYmplY3Qud2lk
dGgsIHJlY3RPYmplY3QuaGVpZ2h0KTsKKyAgICB9CisgICAgY29udGV4dC5yZXN0b3JlKCk7Cit9
CisKIGZ1bmN0aW9uIHJlc2V0KHJlc2V0RGF0YSkKIHsKICAgICB2YXIgZGV2aWNlU2NhbGVGYWN0
b3IgPSByZXNldERhdGEuZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xNzAsNiArMTkxLDggQEAgZnVu
Y3Rpb24gcmVzZXQocmVzZXREYXRhKQogICAgIHdpbmRvdy5mcmFtZVZpZXdGdWxsU2l6ZSA9IHJl
c2V0RGF0YS5mcmFtZVZpZXdGdWxsU2l6ZTsKIAogICAgIHdpbmRvdy5jYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgd2luZG93LnBhaW50UmVjdHNDYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFpbnRyZWN0cy1jYW52YXMiKTsKKwogICAgIHdp
bmRvdy5jb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgd2luZG93LnJpZ2h0
R3V0dGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJpZ2h0LWd1dHRlciIpOwogICAgIHdp
bmRvdy5ib3R0b21HdXR0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm90dG9tLWd1dHRl
ciIpOwpAQCAtMTgwLDkgKzIwMywxNyBAQCBmdW5jdGlvbiByZXNldChyZXNldERhdGEpCiAgICAg
Y2FudmFzLnN0eWxlLmhlaWdodCA9IHZpZXdwb3J0U2l6ZS5oZWlnaHQgKyAicHgiOwogICAgIGNv
bnRleHQuc2NhbGUoZGV2aWNlU2NhbGVGYWN0b3IsIGRldmljZVNjYWxlRmFjdG9yKTsKIAorICAg
IHBhaW50UmVjdHNDYW52YXMud2lkdGggPSBkZXZpY2VTY2FsZUZhY3RvciAqIHZpZXdwb3J0U2l6
ZS53aWR0aDsKKyAgICBwYWludFJlY3RzQ2FudmFzLmhlaWdodCA9IGRldmljZVNjYWxlRmFjdG9y
ICogdmlld3BvcnRTaXplLmhlaWdodDsKKyAgICBwYWludFJlY3RzQ2FudmFzLnN0eWxlLndpZHRo
ID0gdmlld3BvcnRTaXplLndpZHRoICsgInB4IjsKKyAgICBwYWludFJlY3RzQ2FudmFzLnN0eWxl
LmhlaWdodCA9IHZpZXdwb3J0U2l6ZS5oZWlnaHQgKyAicHgiOworICAgIC8vIERvbid0IGdldCB0
aGUgY29udGV4dCB1bnRpbCB3ZSBuZWVkIHRvIHBhaW50LCB0byBhdm9pZCBiYWNraW5nIHN0b3Jl
IGFsbG9jYXRpb24uCisKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF1c2VkLWluLWRl
YnVnZ2VyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlbGVtZW50LXRpdGxlLWNvbnRhaW5lciIpLmlubmVySFRNTCA9ICIiOwogICAg
IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiZGltbWVkIik7CisgICAgCisgICAgLy8g
Y2xlYXIgcGFpbnQgcmVjdHM/CiB9CiAKIGZ1bmN0aW9uIERPTUJ1aWxkZXIodGFnTmFtZSwgY2xh
c3NOYW1lKQpAQCAtMzgzLDcgKzQxNCw4IEBAIGZ1bmN0aW9uIF9kcmF3UmVnaW9uc0hpZ2hsaWdo
dChyZWdpb25zKQogICAgIH0KIH0KIAotZnVuY3Rpb24gX2RyYXdTaGFwZUhpZ2hsaWdodChzaGFw
ZUluZm8pIHsKK2Z1bmN0aW9uIF9kcmF3U2hhcGVIaWdobGlnaHQoc2hhcGVJbmZvKQorewogICAg
IGlmIChzaGFwZUluZm8ubWFyZ2luU2hhcGUpCiAgICAgICAgIGRyYXdQYXRoKGNvbnRleHQsIHNo
YXBlSW5mby5tYXJnaW5TaGFwZSwgc2hhcGVNYXJnaW5IaWdobGlnaHRDb2xvcik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZjZj
ZTQ2MDdhMWYzZWY4NDNhNmNjNjk5MTU1YThhYzRiNzM2ZWY1Yi4uNWQ5NWEzODUyMGJhMGI2MTdj
ZmFmZmYzOGY2OGE4YmZmZWFkMjRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTY1Miw5ICs2NTIsMTEgQEAgdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnNldFNob3dQYWludFJlY3RzKEVycm9yU3RyaW5nKiwgYm9vbCBzaG93KQog
ewogICAgIG1fc2hvd1BhaW50UmVjdHMgPSBzaG93OwogICAgIG1fY2xpZW50LT5zZXRTaG93UGFp
bnRSZWN0cyhzaG93KTsKKyAgICAKKyAgICBpZiAobV9jbGllbnQtPm92ZXJyaWRlc1Nob3dQYWlu
dFJlY3RzKCkpCisgICAgICAgIHJldHVybjsKIAotICAgIGlmICghc2hvdyAmJiBtYWluRnJhbWUo
KSAmJiBtYWluRnJhbWUoKS0+dmlldygpKQotICAgICAgICBtYWluRnJhbWUoKS0+dmlldygpLT5p
bnZhbGlkYXRlKCk7CisgICAgbV9vdmVybGF5LT5zZXRTaG93aW5nUGFpbnRSZWN0cyhzaG93KTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhblNob3dEZWJ1Z0JvcmRlcnMoRXJyb3JT
dHJpbmcqLCBib29sKiBvdXRQYXJhbSkKQEAgLTg5MCw3ICs4OTIsNyBAQCB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6ZGlkUGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiB0aGUgb3ZlcmxheSBuZWVkcyB0byBhY2N1bXVs
YXRlIHBhaW50IHJlY3RzIGFuZCBkcmF3IHRoZW0gaXRzZWxmLgorICAgIG1fb3ZlcmxheS0+c2hv
d1BhaW50UmVjdChyZWN0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZExheW91
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnRJT1MubW0KaW5kZXggOTM4YjUyZWQzYjJiY2E1MjQ0MzMwM2Y3MzUyZjEz
YmJjMGMxNjUwMi4uNTZjOGJkYWI3N2Y5ODdhY2JlYjJkM2Q2MDdkOTM0OTJjNDZhNzZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudElPUy5tbQpAQCAtOTcsNiArOTcsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGll
bnQ6OmhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCkKICAgICBbbV93ZWJWaWV3IHNldFNob3dpbmdJ
bnNwZWN0b3JJbmRpY2F0aW9uOk5PXTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNl
dFNob3dQYWludFJlY3RzKGJvb2wgc2hvdykKK3sKKyAgICBtX3Nob3dpbmdQYWludFJlY3RzID0g
c2hvdzsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QoY29uc3Qg
RmxvYXRSZWN0JikKK3sKKyAgICAvLyBGSVhNRTogbmVlZCB0byBkbyBDQUxheWVyLWJhc2VkIGhp
Z2hsaWdodGluZyBvZiBwYWludCByZWN0cy4KK30KKwogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6
OmRpZFNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKQogewogICAgIFdlYkluc3BlY3Rv
ciAqaW5zcGVjdG9yID0gW21fd2ViVmlldyBpbnNwZWN0b3JdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAppbmRleCAzNDZm
NjgwYjlmNmRlNjUyOTUxNGU2MTEzMzM4YWY1ODIzYzc5NjQ5Li44NzRlNTA2Yzg1MDRkMDgxZGI4
NWFlZTIyMmQzOGJjNDE5Mjg1MTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaApAQCAtNzYsNiArNzYsMTAgQEAgcHVi
bGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3Rvcklu
ZGljYXRpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUluc3BlY3RvckluZGlj
YXRpb24oKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBvdmVycmlkZXNTaG93UGFpbnRS
ZWN0cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d1BhaW50UmVjdHMoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNob3dQYWludFJl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wpIG92ZXJyaWRlOwpAQCAtOTcs
NiArMTAxLDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V2ViTm9kZUhpZ2hsaWdodGVyPiBt
X2hpZ2hsaWdodGVyOwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fZnJvbnRlbmRQYWdlOwogICAgIFdl
Ykluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBtX2Zyb250ZW5kQ2xpZW50OworI2lmIFBMQVRGT1JN
KElPUykKKyAgICBib29sIG1fc2hvd2luZ1BhaW50UmVjdHM7CisjZW5kaWYKIH07CiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lm1tCmluZGV4IGRjM2U5MjMwNTEyYTAzYzJhNjFjNDc3MGYwNzhiMGZhYzI2MzEzOTEuLjk0
ZTM5MjI1ZThmNjMwMGZlODBkMDE4MjI3MWM1MTQ4N2E0MWY3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAg
LTEzNSw2ICsxMzUsOSBAQCBXZWJJbnNwZWN0b3JDbGllbnQ6OldlYkluc3BlY3RvckNsaWVudChX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgICwgbV9oaWdobGlnaHRlcihhZG9wdE5TKFtbV2ViTm9kZUhp
Z2hsaWdodGVyIGFsbG9jXSBpbml0V2l0aEluc3BlY3RlZFdlYlZpZXc6d2ViVmlld10pKQogICAg
ICwgbV9mcm9udGVuZFBhZ2UoMCkKICAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgLCBtX3Nob3dpbmdQYWludFJlY3RzKGZhbHNlKQorI2VuZGlmCiB7CiB9
CiAK
</data>
<flag name="review"
          id="261643"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>