<?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>136136</bug_id>
          
          <creation_ts>2014-08-21 16:21:41 -0700</creation_ts>
          <short_desc>Implement paint flashing via GraphicsLayers in the WK2 inspector overlay</short_desc>
          <delta_ts>2014-08-22 12:09:07 -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>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030580</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-21 16:21:41 -0700</bug_when>
    <thetext>Implement paint flashing via GraphicsLayers in the WK2 inspector overlay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030583</commentid>
    <comment_count>1</comment_count>
      <attachid>236943</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-21 16:26:34 -0700</bug_when>
    <thetext>Created attachment 236943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030584</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-21 16:27:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/18095991&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030586</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-21 16:29:53 -0700</bug_when>
    <thetext>Attachment 236943 did not pass style-queue:


ERROR: Source/WebCore/WebCore.exp.in:0:  Source/WebCore/WebCore.exp.in should be sorted, use Tools/Scripts/sort-export-file script  [list/order] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030619</commentid>
    <comment_count>4</comment_count>
      <attachid>236943</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-21 18:14:26 -0700</bug_when>
    <thetext>Comment on attachment 236943
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:54
&gt; +    virtual void notifyAnimationEnded(const GraphicsLayer* layer, const String&amp;)

This should have override.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h:93
&gt; +    HashSet&lt;WebCore::GraphicsLayer*&gt; m_paintRectLayers;

It might be worth noting that this should use a HashSet&lt;std::unique_ptr&lt;WebCore::GraphicsLayer&gt;&gt; but can&apos;t due to HashSet issues (and point to a bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030687</commentid>
    <comment_count>5</comment_count>
      <attachid>236943</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-08-22 00:03:06 -0700</bug_when>
    <thetext>Comment on attachment 236943
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:503
&gt; +    if (InspectorPageAgent* pageAgent = instrumentingAgents-&gt;inspectorPageAgent()) {
&gt; +        LayoutRect absoluteRect = LayoutRect(renderer-&gt;localToAbsoluteQuad(FloatRect(rect)).boundingBox());
&gt; +        FrameView* view = renderer-&gt;document().view();
&gt; +        
&gt; +        LayoutRect rootRect = absoluteRect;
&gt; +        if (!view-&gt;frame().isMainFrame()) {
&gt; +            IntRect rootViewRect = view-&gt;contentsToRootView(pixelSnappedIntRect(absoluteRect));
&gt; +            rootRect = view-&gt;frame().mainFrame().view()-&gt;rootViewToContents(rootViewRect);
&gt; +        }
&gt; +        pageAgent-&gt;didPaint(rootRect);
&gt; +    }

Typically InspectorInstrumentation is just meant to be a very thin layer calling out to the Agents. Technically it could probably be auto generated. This logic could go in InspectorPageAgent. But I&apos;m fine with it being here. We can do our own clean up later if we need to.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:46
&gt; +class RepaintIndicatorLayerClient : public GraphicsLayerClient {

Mark the class as final?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:139
&gt; +        m_page-&gt;installPageOverlay(m_paintRectOverlay, PageOverlay::FadeMode::DoNotFade);

I think m_paintRectOverlay should be uninstalled in ~WebInspectorClient. Otherwise, won&apos;t this stay around because it is RefCounted and PageOverlayController will keep a reference.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:162
&gt; +    paintLayer-&gt;addAnimation(fadeKeyframes, FloatSize(), opacityAnimation.get(), &quot;opacity&quot;, 0);

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h:72
&gt; +    virtual bool overridesShowPaintRects() override { return true; }

Nit: Ideally this would be a const method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030776</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-22 12:09:07 -0700</bug_when>
    <thetext>I addressed the comments.

https://trac.webkit.org/r172864</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236943</attachid>
            <date>2014-08-21 16:26:34 -0700</date>
            <delta_ts>2014-08-22 00:03:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136136-20140821162625.patch</filename>
            <type>text/plain</type>
            <size>19687</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVhNjE0NzQ2MDI2Mjk1
ZWFkOTgwZjM5MjNiOTY1ZmI3MDBmMWMwNy4uMmZkOTNhMGE1OTQyN2RkYWVmMmMwNDQxZWM2M2E4
NjE4MTgwN2U3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE0LTA4LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEltcGxlbWVudCBw
YWludCBmbGFzaGluZyB2aWEgR3JhcGhpY3NMYXllcnMgaW4gdGhlIFdLMiBpbnNwZWN0b3Igb3Zl
cmxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
b3cgSW5zcGVjdG9yQ2xpZW50IHRvIGhhdmUgYSBjdXN0b20gaW1wbGVtZW50YXRpb24gb2Ygc2hv
d1BhaW50UmVjdCgpLiBGb3IKKyAgICAgICAgV2ViS2l0MidzIFdlYkluc3BlY3RvckNsaWVudCwg
aW1wbGVtZW50IHRoaXMgYnkgY3JlYXRpbmcgYSBzZXQgb2YgR3JhcGhpY3NMYXllcnMKKyAgICAg
ICAgd2hpY2ggYXJlIHBhcmVudGVkIGluIGEgZG9jdW1lbnQgb3ZlcmxheSwgd2l0aCAwLjI1cyBm
YWRlLW91dCBhbmltYXRpb25zLgorICAgICAgICAKKyAgICAgICAgQWxzbyBjaGFuZ2UgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludEltcGwoKSB0byBubyBsb25nZXIgdGFrZSBhIEdy
YXBoaWNzQ29udGV4dDsKKyAgICAgICAgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gcGFpbnQgdGhlIHBh
aW50IHJlY3RzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRleHQgb2YgdGhlIHdlYiBwYWdlLgorICAg
ICAgICBOb3cgdGhhdCB0aGUgcGFpbnQgcmVjdHMgYXJlIHBhaW50ZWQgaW50byBhbiBvdmVybGF5
LCB0aGUgcmVjdGFuZ2xlcyBuZWVkIHRvIGJlIGNvbnZlcnRlZAorICAgICAgICB0byByb290IGRv
Y3VtZW50IGNvb3JkaW5hdGVzLCB3aGljaCBpcyBkb25lIGluIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnRJbXBsKCkuCisgICAgICAgIAorICAgICAgICBSZW1vdmUgdGhlIGdlbmVy
aWMgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd091dGxpbmUoKS1iYXNlZCBpbmRpY2F0b3JzOyB0aGV5
IHdpbGwKKyAgICAgICAgYmUgcmVpbXBsZW1lbnRlZCBpbiBhIGxhdGVyIHBhdGNoLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnRJbXBsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmRpZFBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludENvbnRlbnRzKToKKworMjAxNC0wOC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgYW5pbWF0aW9uRGlkRW5kIGNhbGxiYWNr
cyBvbiBHcmFwaGljc0xheWVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzYwODQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY2NjEzNzM1MjAwYzk5N2NkYmUxMzUw
NjAwMDcwODJiYjVjMDg0MGIuLjE1YzQ2MTc2NjJlMDA3ZTU4MjA4NGFhZmYzNzg4MzJmNjAyOTJl
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNSBAQAogMjAxNC0wOC0yMSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgcGFpbnQgZmxh
c2hpbmcgdmlhIEdyYXBoaWNzTGF5ZXJzIGluIHRoZSBXSzIgaW5zcGVjdG9yIG92ZXJsYXkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjEzNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWxs
b3cgSW5zcGVjdG9yQ2xpZW50IHRvIGhhdmUgYSBjdXN0b20gaW1wbGVtZW50YXRpb24gb2Ygc2hv
d1BhaW50UmVjdCgpLiBGb3IKKyAgICAgICAgV2ViS2l0MidzIFdlYkluc3BlY3RvckNsaWVudCwg
aW1wbGVtZW50IHRoaXMgYnkgY3JlYXRpbmcgYSBzZXQgb2YgR3JhcGhpY3NMYXllcnMKKyAgICAg
ICAgd2hpY2ggYXJlIHBhcmVudGVkIGluIGEgZG9jdW1lbnQgb3ZlcmxheSwgd2l0aCAwLjI1cyBm
YWRlLW91dCBhbmltYXRpb25zLgorICAgICAgICAKKyAgICAgICAgQWxzbyBjaGFuZ2UgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludEltcGwoKSB0byBubyBsb25nZXIgdGFrZSBhIEdy
YXBoaWNzQ29udGV4dDsKKyAgICAgICAgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gcGFpbnQgdGhlIHBh
aW50IHJlY3RzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRleHQgb2YgdGhlIHdlYiBwYWdlLgorICAg
ICAgICBOb3cgdGhhdCB0aGUgcGFpbnQgcmVjdHMgYXJlIHBhaW50ZWQgaW50byBhbiBvdmVybGF5
LCB0aGUgcmVjdGFuZ2xlcyBuZWVkIHRvIGJlIGNvbnZlcnRlZAorICAgICAgICB0byByb290IGRv
Y3VtZW50IGNvb3JkaW5hdGVzLCB3aGljaCBpcyBkb25lIGluIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnRJbXBsKCkuCisgICAgICAgIAorICAgICAgICBSZW1vdmUgdGhlIGdlbmVy
aWMgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd091dGxpbmUoKS1iYXNlZCBpbmRpY2F0b3JzOyB0aGV5
IHdpbGwKKyAgICAgICAgYmUgcmVpbXBsZW1lbnRlZCBpbiBhIGxhdGVyIHBhdGNoLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZXBhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQ6OlJlcGFpbnRJbmRp
Y2F0b3JMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlcGFpbnRJbmRpY2F0b3JMYXll
ckNsaWVudDo6flJlcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OlJlcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudDo6bm90aWZ5QW5pbWF0aW9uRW5kZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6OldlYkluc3BlY3RvckNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6fldlYkluc3BlY3RvckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6YW5pbWF0aW9uRW5kZWRGb3JMYXll
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50OjpXZWJJbnNwZWN0b3JD
bGllbnQpOiBEZWxldGVkLgorCisyMDE0LTA4LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBhbmltYXRpb25EaWRFbmQgY2FsbGJhY2tzIG9u
IEdyYXBoaWNzTGF5ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNjA4NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGVkNzIzYWY3NjI3NWI5NTk2
YmFkNWNiZGI1ZTE4N2ExZWU4NmJkZDUuLjU3OWU2OTAwMDAxNzk2ZDUxMzQwYWM3M2FkMmViNzg1
YjBjYzcxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03NTksNiArNzU5LDcgQEAgX19aTjdX
ZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudDIwb3B0aW9uU2VsZWN0ZWRCeVVzZXJFaWJiCiBfX1pO
N1dlYkNvcmUxN0hpc3RvcnlDb250cm9sbGVyMjZzYXZlRG9jdW1lbnRBbmRTY3JvbGxTdGF0ZUV2
CiBfX1pON1dlYkNvcmUxN0hpc3RvcnlDb250cm9sbGVyMzNyZXN0b3JlU2Nyb2xsUG9zaXRpb25B
bmRWaWV3U3RhdGVFdgogX19aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVjdDZzX2luZm9FCitf
X1pON1dlYkNvcmUxN0tleWZyYW1lVmFsdWVMaXN0Nmluc2VydEVOM1dURjEwUGFzc093blB0cklL
TlNfMTRBbmltYXRpb25WYWx1ZUVFRQogX19aTjdXZWJDb3JlMTdNb3VzZVJlbGF0ZWRFdmVudDdv
ZmZzZXRYRXYKIF9fWk43V2ViQ29yZTE3TW91c2VSZWxhdGVkRXZlbnQ3b2Zmc2V0WUV2CiBfX1pO
N1dlYkNvcmUxN1BsYXRmb3JtQ0FGaWx0ZXJzMTdzZXRGaWx0ZXJzT25MYXllckVQN0NBTGF5ZXJS
S05TXzE2RmlsdGVyT3BlcmF0aW9uc0UKQEAgLTEzNzcsNiArMTM3OCw4IEBAIF9fWk43V2ViQ29y
ZThvcGVuRmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKIF9fWk43V2ViQ29y
ZTh0b1N0cmluZ0VSS04zV1RGNlZlY3RvcklOU18xMVByb3h5U2VydmVyRUxtMEVOUzBfMTVDcmFz
aE9uT3ZlcmZsb3dFRUUKIF9fWk43V2ViQ29yZTh0b1VJbnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5T
MF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKIF9fWk43V2Vi
Q29yZTh0b1VJbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJD
b252ZXJzaW9uQ29uZmlndXJhdGlvbkUKK19fWk43V2ViQ29yZTlBbmltYXRpb25DMUV2CitfX1pO
N1dlYkNvcmU5QW5pbWF0aW9uRDFFdgogX19aTjdXZWJDb3JlOURPTVdpbmRvdzMwZGlzcGF0Y2hB
bGxQZW5kaW5nVW5sb2FkRXZlbnRzRXYKIF9fWk43V2ViQ29yZTlET01XaW5kb3czNmRpc3BhdGNo
QWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50c0V2CiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0NXNj
YWxlRWZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXgg
ZmI0ZjUxYmE0MDc5NTU3OTcyYzhhMjI5MmNmMzRmMGU1ZGQyZjdiYS4uYmM2YWM3YTVlOGNlOGI4
NmU5ZDc1YzE5YzFjNzg2NmZlNjcyZTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDbGllbnQuaApAQCAtMzQsOCArMzQsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBG
cmFtZTsKK2NsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBJ
bnNwZWN0b3JDbGllbnQgewpAQCAtNjIsNiArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0cyhib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5TaG93RGVidWdCb3JkZXJzKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVycyhib29sKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNjkyYTQ3ZWM1ZDk3
YzNkZjdhN2IzMzEzMDdjNTZmZjM4Y2ExNjRjNS4uOTg2ODNhYTg2YTc3OGQzYWQ0MmZiN2JhMzg2
M2NmMzYwYzZhZDk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTQ4NSwxMiArNDg1LDIyIEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxQYWludCgmcmVuZGVy
ZXItPmZyYW1lKCkpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFp
bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqICBpbnN0cnVtZW50aW5nQWdlbnRzLCBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVs
aW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JU
aW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFBhaW50KHJlbmRlcmVy
LCByZWN0KTsKLSAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKLSAgICAgICAgcGFnZUFnZW50LT5k
aWRQYWludChjb250ZXh0LCByZWN0KTsKKworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKSB7Cisg
ICAgICAgIExheW91dFJlY3QgYWJzb2x1dGVSZWN0ID0gTGF5b3V0UmVjdChyZW5kZXJlci0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVjdCkpLmJvdW5kaW5nQm94KCkpOworICAgICAg
ICBGcmFtZVZpZXcqIHZpZXcgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS52aWV3KCk7CisgICAgICAg
IAorICAgICAgICBMYXlvdXRSZWN0IHJvb3RSZWN0ID0gYWJzb2x1dGVSZWN0OworICAgICAgICBp
ZiAoIXZpZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKSkgeworICAgICAgICAgICAgSW50UmVjdCBy
b290Vmlld1JlY3QgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocGl4ZWxTbmFwcGVkSW50UmVj
dChhYnNvbHV0ZVJlY3QpKTsKKyAgICAgICAgICAgIHJvb3RSZWN0ID0gdmlldy0+ZnJhbWUoKS5t
YWluRnJhbWUoKS52aWV3KCktPnJvb3RWaWV3VG9Db250ZW50cyhyb290Vmlld1JlY3QpOworICAg
ICAgICB9CisgICAgICAgIHBhZ2VBZ2VudC0+ZGlkUGFpbnQocm9vdFJlY3QpOworICAgIH0KIH0K
IAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTY3JvbGxMYXllckltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDEyMzkxMGE0MGI3ZDEyNzdiMDEzYWMxYTFlNzFlNTk4NWY3Y2Y4NWYuLmQwYTViYmI2
OGYxZWJjYWE3MDRkZTBjOTg5OGI4NzM0MDg4OGU4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE2Niw3ICsxNjYs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2lsbFNjcm9sbExheWVyKEZyYW1lKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkU2Nyb2xsTGF5ZXIoRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsUGFpbnQoUmVuZGVyT2JqZWN0Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUGFpbnQoUmVuZGVy
T2JqZWN0KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHN0YXRp
YyB2b2lkIGRpZFBhaW50KFJlbmRlck9iamVjdCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0eWxl
KERvY3VtZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjYWxjdWxhdGVTdHlsZShjb25zdCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRTY2hl
ZHVsZVN0eWxlUmVjYWxjdWxhdGlvbihEb2N1bWVudCopOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgd2lsbFNjcm9sbExheWVySW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRTY3JvbGxMYXllckltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxQYWludEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIFJlbmRlck9iamVjdCopOwotICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUmVuZGVyT2JqZWN0KiwgR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAg
IHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2FsY3VsYXRlU3R5
bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZFJlY2FsY3VsYXRlU3R5bGVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlU3R5bGVSZWNhbGN1bGF0aW9uSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqKTsKQEAgLTExMjEsMTUgKzExMjEsMTQgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFBhaW50KFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK2lubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3Qg
TGF5b3V0UmVjdCYgcmVjdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVU
VVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclJlbmRlcmVyKHJl
bmRlcmVyKSkKLSAgICAgICAgZGlkUGFpbnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHJlbmRl
cmVyLCBjb250ZXh0LCByZWN0KTsKKyAgICAgICAgZGlkUGFpbnRJbXBsKGluc3RydW1lbnRpbmdB
Z2VudHMsIHJlbmRlcmVyLCByZWN0KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJlbmRlcmVy
KTsKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDYyMGUxYjc5NGQ5ODNmMjE5YmFkMDg1NGMwMzNjM2FiNDI3MTZlMWIuLmY2
Y2U0NjA3YTFmM2VmODQzYTZjYzY5OTE1NWE4YWM0YjczNmVmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC04ODAsMjEgKzg4MCwx
NyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUnVuSmF2YVNjcmlwdERpYWxvZygpCiAg
ICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmphdmFzY3JpcHREaWFsb2dDbG9zZWQoKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRQ
YWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogewotICAgIGlmICghbV9lbmFibGVkIHx8IG1f
Y2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpIHx8ICFtX3Nob3dQYWludFJlY3RzKQor
ICAgIGlmICghbV9lbmFibGVkIHx8ICFtX3Nob3dQYWludFJlY3RzKQogICAgICAgICByZXR1cm47
CisgICAgCisgICAgaWYgKG1fY2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpKSB7Cisg
ICAgICAgIG1fY2xpZW50LT5zaG93UGFpbnRSZWN0KHJlY3QpOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCi0gICAgc3RhdGljIGludCBjb2xvclNlbGVjdG9yID0gMDsKLSAgICBjb25zdCBDb2xv
ciBjb2xvcnNbXSA9IHsKLSAgICAgICAgQ29sb3IoMHhGRiwgMCwgMCwgMHgzRiksCi0gICAgICAg
IENvbG9yKDB4RkYsIDAsIDB4RkYsIDB4M0YpLAotICAgICAgICBDb2xvcigwLCAwLCAweEZGLCAw
eDNGKSwKLSAgICB9OwotCi0gICAgTGF5b3V0UmVjdCBpbmZsYXRlZFJlY3QocmVjdCk7Ci0gICAg
aW5mbGF0ZWRSZWN0LmluZmxhdGUoLTEpOwotICAgIG1fb3ZlcmxheS0+ZHJhd091dGxpbmUoY29u
dGV4dCwgaW5mbGF0ZWRSZWN0LCBjb2xvcnNbY29sb3JTZWxlY3RvcisrICUgV1RGX0FSUkFZX0xF
TkdUSChjb2xvcnMpXSk7CisgICAgLy8gRklYTUU6IHRoZSBvdmVybGF5IG5lZWRzIHRvIGFjY3Vt
dWxhdGUgcGFpbnQgcmVjdHMgYW5kIGRyYXcgdGhlbSBpdHNlbGYuCiB9CiAKIHZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpkaWRMYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDlmODdkMjI5ZDQzNjcwOTZmMjg2MDM4MWVmMjNkM2Iy
MjUzMTk0YjQuLjI2NmM2MTdjZjZhODNhY2Y1MzExZmM5NDdlN2Q3MjQxM2JhZDM4NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTU1LDcg
KzU1LDYgQEAgY2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIEZyb250ZW5kOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xh
c3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yT3ZlcmxheTsKIGNsYXNzIEluc3Ry
dW1lbnRpbmdBZ2VudHM7CkBAIC0xNDAsNyArMTM5LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2ls
bFJ1bkphdmFTY3JpcHREaWFsb2coY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lkIGRp
ZFJ1bkphdmFTY3JpcHREaWFsb2coKTsKICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJp
bmcqKTsKLSAgICB2b2lkIGRpZFBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJl
Y3QmKTsKKyAgICB2b2lkIGRpZFBhaW50KGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRp
ZExheW91dCgpOwogICAgIHZvaWQgZGlkU2Nyb2xsKCk7CiAgICAgdm9pZCBkaWRSZWNhbGN1bGF0
ZVN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggY2JlN2JkYjQ5NmJjZjk3
Yzc3MmJiYjU5Y2RkY2E1YmI4ZWFiZjBiZC4uNDQyZmFkYWY3MDA0NjU2OGEwY2NjMGExMTZmMzI3
MTU1Yjg3YTEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzY1OSw3ICszNjU5
LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmRpZFBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVIKICAgICAgICAgc0N1cnJlbnRQYWludFRpbWVT
dGFtcCA9IDA7CiAKICAgICBpZiAoIWNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkgewotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KHJlbmRlclZpZXcoKSwgY29u
dGV4dCwgZGlydHlSZWN0KTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQ
YWludChyZW5kZXJWaWV3KCksIGRpcnR5UmVjdCk7CiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
cHJvYmFibHkgbm90IGZpcmUgbWlsZXN0b25lcyBmb3Igc25hcHNob3QgcGFpbnRpbmcuIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2MjMKICAgICAgICAgZmlyZVBh
aW50UmVsYXRlZE1pbGVzdG9uZXNJZk5lZWRlZCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggODI1MTIwZDI2MGI4MTRm
YjI4YzM4MzAzZWQwNjFjNWQ2ZTlmOWZiYy4uYzk4YzczZmJiNDYwOWM4ODVlZjg1MjAxY2Q4YmZm
MTQ0YzY5MGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKQEAgLTIxOTgsNyArMjE5OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBo
CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIHRoZSBzYW1lIHJvb3QgYXMgZm9yIGhpdCB0ZXN0
aW5nLCBiZWNhdXNlIGJvdGggbWV0aG9kcyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUgY2xpcFJlY3Rz
LgogICAgICAgICBwYWludEludG9MYXllcihncmFwaGljc0xheWVyLCAmY29udGV4dCwgZGlydHlS
ZWN0LCBQYWludEJlaGF2aW9yTm9ybWFsLCBwYWludGluZ1BoYXNlKTsKIAotICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KCZyZW5kZXJlcigpLCAmY29udGV4dCwgZGly
dHlSZWN0KTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCgmcmVu
ZGVyZXIoKSwgZGlydHlSZWN0KTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5
ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9v
d25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGRpcnR5UmVjdCk7CiAg
ICAgfSBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGU1YjQzN2M5YWQzN2RjZmEw
MzI5OTE4MWJiNzUwY2VmNTBiZmQ1NDIuLjNkMjcxN2EzYWVjMTg5MTc4YTE3N2RmNjA5NDNiYjg4
NTkzNGM5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTI4LDEwICsyOCwx
MiBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgi
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQog
I2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgpAQCAtNDEsNiArNDMsMzYgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBS
ZXBhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7
CitwdWJsaWM6CisgICAgUmVwYWludEluZGljYXRvckxheWVyQ2xpZW50KFdlYkluc3BlY3RvckNs
aWVudCYgaW5zcGVjdG9yQ2xpZW50KQorICAgICAgICA6IG1faW5zcGVjdG9yQ2xpZW50KGluc3Bl
Y3RvckNsaWVudCkKKyAgICB7CisgICAgfQorICAgIHZpcnR1YWwgflJlcGFpbnRJbmRpY2F0b3JM
YXllckNsaWVudCgpIHsgfQorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0
aW9uRW5kZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIsIGNvbnN0IFN0cmluZyYpCisgICAg
eworICAgICAgICBtX2luc3BlY3RvckNsaWVudC5hbmltYXRpb25FbmRlZEZvckxheWVyKGxheWVy
KTsKKyAgICB9CisgICAgCisgICAgV2ViSW5zcGVjdG9yQ2xpZW50JiBtX2luc3BlY3RvckNsaWVu
dDsKK307CisKK1dlYkluc3BlY3RvckNsaWVudDo6V2ViSW5zcGVjdG9yQ2xpZW50KFdlYlBhZ2Uq
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1faGlnaGxpZ2h0T3ZlcmxheShudWxs
cHRyKQoreworfQorCitXZWJJbnNwZWN0b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQoKQor
eworICAgIGZvciAoYXV0byBsYXllciA6IG1fcGFpbnRSZWN0TGF5ZXJzKSB7CisgICAgICAgIGxh
eWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgIGRlbGV0ZSBsYXllcjsKKyAgICB9Cit9
CisKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQoKQogewogICAg
IGNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTEwMCw2ICsxMzIsNDggQEAgdm9pZCBXZWJJ
bnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQoKQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViSW5z
cGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAg
ICBpZiAoIW1fcGFpbnRSZWN0T3ZlcmxheSkgeworICAgICAgICBtX3BhaW50UmVjdE92ZXJsYXkg
PSBQYWdlT3ZlcmxheTo6Y3JlYXRlKHRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9j
dW1lbnQpOworICAgICAgICBtX3BhZ2UtPmluc3RhbGxQYWdlT3ZlcmxheShtX3BhaW50UmVjdE92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB9CisKKyAgICBp
ZiAoIW1fcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCkKKyAgICAgICAgbV9wYWludEluZGljYXRv
ckxheWVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxSZXBhaW50SW5kaWNhdG9yTGF5ZXJDbGll
bnQ+KCp0aGlzKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBwYWludExh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+Z3JhcGhp
Y3NMYXllckZhY3RvcnkoKSwgKm1fcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCk7CisgICAgCisg
ICAgcGFpbnRMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOworICAgIHBhaW50
TGF5ZXItPnNldFBvc2l0aW9uKHJlY3QubG9jYXRpb24oKSk7CisgICAgcGFpbnRMYXllci0+c2V0
U2l6ZShyZWN0LnNpemUoKSk7CisgICAgcGFpbnRMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKENv
bG9yKDEuMGYsIDAuMGYsIDAuMGYsIDAuMmYpKTsKKworICAgIEtleWZyYW1lVmFsdWVMaXN0IGZh
ZGVLZXlmcmFtZXMoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOworICAgIE93blB0cjxBbmltYXRp
b25WYWx1ZT4gaW50aWFsVmFsdWUgPSBGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMCwgMSk7
CisgICAgZmFkZUtleWZyYW1lcy5pbnNlcnQoaW50aWFsVmFsdWUucmVsZWFzZSgpKTsKKworICAg
IE93blB0cjxBbmltYXRpb25WYWx1ZT4gZmluYWxWYWx1ZSA9IEZsb2F0QW5pbWF0aW9uVmFsdWU6
OmNyZWF0ZSgwLjI1LCAwKTsKKyAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChmaW5hbFZhbHVlLnJl
bGVhc2UoKSk7CisgICAgCisgICAgUmVmUHRyPEFuaW1hdGlvbj4gb3BhY2l0eUFuaW1hdGlvbiA9
IEFuaW1hdGlvbjo6Y3JlYXRlKCk7CisgICAgb3BhY2l0eUFuaW1hdGlvbi0+c2V0RHVyYXRpb24o
MC4yNSk7CisKKyAgICBwYWludExheWVyLT5hZGRBbmltYXRpb24oZmFkZUtleWZyYW1lcywgRmxv
YXRTaXplKCksIG9wYWNpdHlBbmltYXRpb24uZ2V0KCksICJvcGFjaXR5IiwgMCk7CisgICAgCisg
ICAgbV9wYWludFJlY3RMYXllcnMuYWRkKHBhaW50TGF5ZXIuZ2V0KCkpOworCisgICAgR3JhcGhp
Y3NMYXllciogb3ZlcmxheVJvb3RMYXllciA9IG1fcGFpbnRSZWN0T3ZlcmxheS0+bGF5ZXIoKTsK
KyAgICBvdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChwYWludExheWVyLnJlbGVhc2UoKSk7Cit9
CisKK3ZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjphbmltYXRpb25FbmRlZEZvckxheWVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQoreworICAgIGNvbnN0X2Nhc3Q8R3JhcGhpY3NMYXllcio+
KGxheWVyKS0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fcGFpbnRSZWN0TGF5ZXJzLnJlbW92
ZShjb25zdF9jYXN0PEdyYXBoaWNzTGF5ZXIqPihsYXllcikpOworICAgIGRlbGV0ZSBsYXllcjsK
K30KKwogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzaG93SW5z
cGVjdG9ySW5kaWNhdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAppbmRleCBiM2Vk
OGQyM2UyZGIzMDI1YWEzNGQ0M2QxMWI5MTEzMzM4MTY2YWIxLi42MjY2ODEwZWZiZTExMzQ5YzVk
MDkyNWM1OWU3NGY2OGE3Y2JkZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTMy
LDIzICszMiwyNCBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZvcndhcmRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Citj
bGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgSW50UmVjdDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYlBhZ2U7CitjbGFzcyBSZXBhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQ7
CiAKIGNsYXNzIFdlYkluc3BlY3RvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JD
bGllbnQsIHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwsIHByaXZhdGUg
UGFnZU92ZXJsYXk6OkNsaWVudCB7CitmcmllbmQgY2xhc3MgUmVwYWludEluZGljYXRvckxheWVy
Q2xpZW50OwogcHVibGljOgotICAgIFdlYkluc3BlY3RvckNsaWVudChXZWJQYWdlKiBwYWdlKQot
ICAgICAgICA6IG1fcGFnZShwYWdlKQotICAgICAgICAsIG1faGlnaGxpZ2h0T3ZlcmxheSgwKQot
ICAgIHsKLSAgICB9CisgICAgV2ViSW5zcGVjdG9yQ2xpZW50KFdlYlBhZ2UqKTsKKyAgICB2aXJ0
dWFsIH5XZWJJbnNwZWN0b3JDbGllbnQoKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
aW5zcGVjdG9yRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC02OCw2ICs2OSw5IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCkgb3ZlcnJpZGU7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBvdmVycmlkZXNTaG93UGFpbnRSZWN0cygpIG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BhaW50UmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKwogICAgIHZpcnR1YWwgYm9vbCBz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbigpOwpAQCAtNzksOCArODMsMTQg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoUGFnZU92ZXJsYXkqLCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIG1vdXNlRXZlbnQoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3Vz
ZUV2ZW50Jikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGFuaW1hdGlvbkVuZGVkRm9yTGF5ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAg
IFBhZ2VPdmVybGF5KiBtX2hpZ2hsaWdodE92ZXJsYXk7CisgICAgCisgICAgUmVmUHRyPFBhZ2VP
dmVybGF5PiBtX3BhaW50UmVjdE92ZXJsYXk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlcGFpbnRJ
bmRpY2F0b3JMYXllckNsaWVudD4gbV9wYWludEluZGljYXRvckxheWVyQ2xpZW50OworICAgIEhh
c2hTZXQ8V2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IG1fcGFpbnRSZWN0TGF5ZXJzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="261642"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>