<?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>69298</bug_id>
          
          <creation_ts>2011-10-03 15:17:52 -0700</creation_ts>
          <short_desc>Add an option to suppress rendering until the document&apos;s load event fires.</short_desc>
          <delta_ts>2011-10-05 21:17:04 -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>Layout and Rendering</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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>477281</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-03 15:17:52 -0700</bug_when>
    <thetext>Add an option to suppress rendering until the document&apos;s load event fires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477284</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-03 15:25:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/10196544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477389</commentid>
    <comment_count>2</comment_count>
      <attachid>109565</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-03 18:10:19 -0700</bug_when>
    <thetext>Created attachment 109565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477653</commentid>
    <comment_count>3</comment_count>
      <attachid>109565</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-10-04 09:48:55 -0700</bug_when>
    <thetext>Comment on attachment 109565
Patch

We already have some paint suppression code for when styles haven&apos;t loaded yet. I wonder if you could latch on to that spot instead of adding a new spot in FrameView?

Check out the top of paintLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477654</commentid>
    <comment_count>4</comment_count>
      <attachid>109565</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-04 09:49:11 -0700</bug_when>
    <thetext>Comment on attachment 109565
Patch

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

r- pending discussion of how to slice the preferences.

&gt; Source/WebCore/page/Settings.h:469
&gt; +        void setSuppressRenderingWhileInitiallyLoading(bool flag) { m_suppressRenderingWhileInitiallyLoading = flag; }
&gt; +        bool suppressRenderingWhileInitiallyLoading() const { return m_suppressRenderingWhileInitiallyLoading; }

Is this a good name for the setting? I wonder if we might want to extend the influence of this setting layer to do things like avoiding painting partially-loaded images. There&apos;s a risk of setting-creep here.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:251
&gt; +        &amp;&amp; m_renderView-&gt;document()-&gt;settings()-&gt;suppressRenderingWhileInitiallyLoading()
&gt; +        &amp;&amp; !m_renderView-&gt;document()-&gt;loadEventFinished())

Would be nice to wrap these two tests in their own method (on document?), like Document::visibleUpdatesAllowed() or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477664</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-04 10:00:59 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 109565 [details])
&gt; We already have some paint suppression code for when styles haven&apos;t loaded yet. I wonder if you could latch on to that spot instead of adding a new spot in FrameView?
&gt; 
&gt; Check out the top of paintLayer.

I modeled this approach off of the FOUC suppression, and initially tried what you suggested, but it caused flashes during navigation since the FOUC check allows the root layer to paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477670</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-04 10:04:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 109565 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109565&amp;action=review
&gt; 
&gt; r- pending discussion of how to slice the preferences.
&gt; 
&gt; &gt; Source/WebCore/page/Settings.h:469
&gt; &gt; +        void setSuppressRenderingWhileInitiallyLoading(bool flag) { m_suppressRenderingWhileInitiallyLoading = flag; }
&gt; &gt; +        bool suppressRenderingWhileInitiallyLoading() const { return m_suppressRenderingWhileInitiallyLoading; }
&gt; 
&gt; Is this a good name for the setting? I wonder if we might want to extend the influence of this setting layer to do things like avoiding painting partially-loaded images. There&apos;s a risk of setting-creep here.

My plan was to make that a separate setting for maximum flexibility, but it sounds like you want to avoid that. It&apos;s possible that no client would want this setting without having non-incremental images as well, though.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:251
&gt; &gt; +        &amp;&amp; m_renderView-&gt;document()-&gt;settings()-&gt;suppressRenderingWhileInitiallyLoading()
&gt; &gt; +        &amp;&amp; !m_renderView-&gt;document()-&gt;loadEventFinished())
&gt; 
&gt; Would be nice to wrap these two tests in their own method (on document?), like Document::visibleUpdatesAllowed() or something.

That&apos;s a nice idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478697</commentid>
    <comment_count>7</comment_count>
      <attachid>109865</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-05 14:43:16 -0700</bug_when>
    <thetext>Created attachment 109865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478698</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-05 14:44:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=109865) [details]
&gt; Patch

A new patch with a new (and hopefully improved) preference name. I also moved the painting suppression check out of FrameView and integrated it into the FOUC check in RenderLayer, per Hyatt&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478907</commentid>
    <comment_count>9</comment_count>
      <attachid>109865</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-05 20:27:24 -0700</bug_when>
    <thetext>Comment on attachment 109865
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        No tests currently possible. Testing this would require the ability for
&gt; +        DRT to dump state while resources are loading, which it doesn&apos;t
&gt; +        currently do.

Can&apos;t we use an http test that trickles in the main resource, and a pixel test for this?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2629
&gt; +    ASSERT_ARG(layer, layer);

This isn&apos;t much use. We&apos;ll crash on the next line if layer is null.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:250
&gt; +    // Compositing layers will be updated in Document::implicitClose() if suppressed here.
&gt; +    if (!m_renderView-&gt;document()-&gt;visualUpdatesAllowed())
&gt; +        return;

This is a different throttling mechanism to that used elsewhere. See LayerTreeHostCAMac::setLayerFlushSchedulingEnabled(). Maybe we should move that logic down into WebCore. That can be done later though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478916</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-05 20:41:11 -0700</bug_when>
    <thetext>Thanks!

(In reply to comment #9)
&gt; (From update of attachment 109865 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109865&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        No tests currently possible. Testing this would require the ability for
&gt; &gt; +        DRT to dump state while resources are loading, which it doesn&apos;t
&gt; &gt; +        currently do.
&gt; 
&gt; Can&apos;t we use an http test that trickles in the main resource, and a pixel test for this?

I tried writing a test like that. The problem is that DumpRenderTree won&apos;t dump while a main frame load is in progress, even if you call notifyDone(). I intend to file a bug about making this feature testable.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2629
&gt; &gt; +    ASSERT_ARG(layer, layer);
&gt; 
&gt; This isn&apos;t much use. We&apos;ll crash on the next line if layer is null.

Indeed. I&apos;ll take it out.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:250
&gt; &gt; +    // Compositing layers will be updated in Document::implicitClose() if suppressed here.
&gt; &gt; +    if (!m_renderView-&gt;document()-&gt;visualUpdatesAllowed())
&gt; &gt; +        return;
&gt; 
&gt; This is a different throttling mechanism to that used elsewhere. See LayerTreeHostCAMac::setLayerFlushSchedulingEnabled(). Maybe we should move that logic down into WebCore. That can be done later though.

Okay, I&apos;ll take a look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478928</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-10-05 21:17:04 -0700</bug_when>
    <thetext>Committed r96786: &lt;http://trac.webkit.org/changeset/96786&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109565</attachid>
            <date>2011-10-03 18:10:19 -0700</date>
            <delta_ts>2011-10-05 14:43:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69298-20111003181027.patch</filename>
            <type>text/plain</type>
            <size>16023</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1MjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZjNjYjFkNDY1MWRhYThk
ODBkODI5MmUyMDU4MmRmZWQ0ODFiOTdkLi4yZDRhMWMxYzhlNWQwN2I0YTVkMzFhY2Q1OTM5NWJl
ZjY0MzgyOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMTAtMDMgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBvcHRpb24gdG8gc3Vw
cHJlc3MgcmVuZGVyaW5nIHVudGlsIHRoZSBkb2N1bWVudCdzIGxvYWQgZXZlbnQgZmlyZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI5OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFdlYkNv
cmUgc2V0dGluZyB0aGF0IHN1cHByZXNzZXMgcGFpbnRpbmcgYW5kIGNvbXBvc2l0aW5nIGxheWVy
CisgICAgICAgIHVwZGF0ZXMgdW50aWwgdGhlIGRvY3VtZW50J3MgbG9hZCBldmVudCBmaXJlcy4g
VGhpcyBtYXNrcyB0aGUgZWZmZWN0cworICAgICAgICBvZiBpbmNyZW1lbnRhbCByZW5kZXJpbmcg
Zm9yIGNsaWVudHMgdGhhdCBvcHQgaW4gYnkgdHJ5aW5nIHRvIGVuc3VyZQorICAgICAgICB0aGF0
IGFsbCBzdWJyZXNvdXJjZXMgaGF2ZSBsb2FkZWQgYW5kIGEgZnVsbCBsYXlvdXQgaGFzIHRha2Vu
IHBsYWNlCisgICAgICAgIGJlZm9yZSBwYWludGluZyB0aGUgZG9jdW1lbnQgZm9yIHRoZSBmaXJz
dCB0aW1lLgorCisgICAgICAgIE5vIHRlc3RzIGN1cnJlbnRseSBwb3NzaWJsZS4gVGVzdGluZyB0
aGlzIHdvdWxkIHJlcXVpcmUgcGl4ZWwgcmVzdWx0cworICAgICAgICBhbmQgdGhlIGFiaWxpdHkg
Zm9yIERSVCB0byBkdW1wIHN0YXRlIHdoaWxlIHJlc291cmNlcyBhcmUgbG9hZGluZywKKyAgICAg
ICAgd2hpY2ggaXQgZG9lc24ndCBjdXJyZW50bHkgZG8gKGF0IGxlYXN0IG5vdCBvbiB0aGUgTWFj
KS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aW1wbGljaXRDbG9zZSk6IElmIHJlbmRlcmluZyB3YXMgc3VwcHJlc3NlZCwgZm9yY2UK
KyAgICAgICAgYSByZXBhaW50IGFuZCBjb21wb3NpdGluZyBsYXllciB1cGRhdGUgbm93LgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
cGFpbnRDb250ZW50cyk6IElmIHdlIHNob3VsZCBzdXBwcmVzcyBwYWludGluZyBhbmQKKyAgICAg
ICAgdGhlIGxvYWQgZXZlbnQgaGFzIHlldCB0byBmaXJlLCByZXR1cm4gZWFybHkuCisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGlu
Z3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpzZXRTdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6c3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRp
bmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xh
eWVycyk6IElmIHdlIHNob3VsZAorICAgICAgICBzdXBwcmVzcyBjb21wb3NpdGluZyBsYXllciB1
cGRhdGVzIGFuZCB0aGUgbG9hZCBldmVudCBoYXMgeWV0IHRvIGZpcmUsCisgICAgICAgIHJldHVy
biBlYXJseS4KKwogMjAxMS0xMC0wMyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFYOiBjbGljayBwb2ludCBmb3IgQVhIZWFkaW5ncyBvZnRlbiByZXR1
cm5zIHBvaW50IG9uIGVtcHR5IHNwYWNlIChyZXN1bHRzIGluIHdyb25nIGNvbnRleHQgbWVudSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE0ODNjZjBmNzFjMWNlZTZlMzBiN2Y2NDMzYWEz
MTcyOTNkMWZiY2QuLmU3ZWY2ZDQwN2QzOTQ3MTc1NzkzYmM1OGUwOTJlZTUzMDc3NDBmYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjIzMSw2ICsyMjMxLDE0IEBAIHZvaWQgRG9jdW1l
bnQ6OmltcGxpY2l0Q2xvc2UoKQogICAgICAgICAgICAgdmlldygpLT5sYXlvdXQoKTsKICAgICB9
CiAKKyAgICAvLyBJZiBwYWludGluZyBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgdXBkYXRlcyB3ZXJl
IHN1cHByZXNzZWQgcGVuZGluZyB0aGUgbG9hZCBldmVudCwgZG8gdGhlc2UgYWN0aW9ucyBub3cu
CisgICAgaWYgKHJlbmRlcmVyKCkgJiYgc2V0dGluZ3MoKSAmJiBzZXR0aW5ncygpLT5zdXBwcmVz
c1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZygpKSB7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgICAgICB2aWV3KCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKCk7
CisjZW5kaWYKKyAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOworICAgIH0KKwogI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaWYgKGYgJiYgcmVuZGVyT2Jq
ZWN0ICYmIHRoaXMgPT0gdG9wRG9jdW1lbnQoKSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIFRoZSBBWCBjYWNoZSBtYXkgaGF2ZSBiZWVuIGNs
ZWFyZWQgYXQgdGhpcyBwb2ludCwgYnV0IHdlIG5lZWQgdG8gbWFrZSBzdXJlIGl0IGNvbnRhaW5z
IGFuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZDEyMzMxODFhMmFmNTdiMzU4ZjFk
MjYxN2M0ZThhMjNlMTM0OTg3My4uZWU1Njg2Yzg5YzY5MWQ4YmZkMGE4N2EyMWQ0NjQzMTQ4ZTc1
Y2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjY2MywxMCArMjY2MywxNiBA
QCB2b2lkIEZyYW1lVmlldzo6cGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0
IExheW91dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFmcmFtZSgpKQogICAgICAgICByZXR1cm47
CisgICAgCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxQYWludChtX2ZyYW1lLmdldCgpLCByZWN0KTsKKyAgICAvLyBBIGZ1
bGwgcmVwYWludCB3aWxsIG9jY3VyIGluIERvY3VtZW50OjppbXBsaWNpdENsb3NlKCkgaWYgcGFp
bnRpbmcgaXMgc3VwcHJlc3NlZCBoZXJlLgorICAgIGlmIChtX2ZyYW1lLT5zZXR0aW5ncygpCisg
ICAgICAgICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPnN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0
aWFsbHlMb2FkaW5nKCkKKyAgICAgICAgJiYgIWRvY3VtZW50LT5sb2FkRXZlbnRGaW5pc2hlZCgp
KQorICAgICAgICByZXR1cm47CiAKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludChtX2ZyYW1lLmdldCgpLCByZWN0KTsK
IAogI2lmbmRlZiBOREVCVUcKICAgICBib29sIGZpbGxXaXRoUmVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAppbmRleCBkN2UwMGQxYzdkYTYyN2QxYTdmYTViNGFiZTI2ZWEwYmI5MDA5YjA0Li4y
NzBmNjJkMjdkZTM0ZTU3ZDVkMmE4N2RhOTZjZTNkNTBhNzg5YzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcApAQCAtMjE3LDYgKzIxNyw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBw
YWdlKQogICAgICwgbV9tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSkKICAg
ICAsIG1fbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSh0cnVlKQogICAgICwgbV9wYXNzd29yZEVj
aG9FbmFibGVkKGZhbHNlKQorICAgICwgbV9zdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5
TG9hZGluZyhmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXIodGhp
cywgJlNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKQogICAgICwg
bV96b29tQW5pbWF0b3JTY2FsZSgxKQogICAgICwgbV96b29tQW5pbWF0b3JQb3NYKDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKaW5kZXggZGI3MzY0OGQ0YTEwYjliMmRjZjU1NDQyYjkyN2ExOWY4YjBm
YjFjMC4uZDdhM2VlY2I3ZWQyOTExZmM0NTFmYTVmNTMzNWQzNDEzODkwMThjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaApAQCAtNDY1LDYgKzQ2NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZmxhZykgeyBtX3Bhc3N3b3Jk
RWNob0VuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQg
c2V0U3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcoYm9vbCBmbGFnKSB7IG1f
c3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcgPSBmbGFnOyB9CisgICAgICAg
IGJvb2wgc3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nOyB9CisKICAgICAg
ICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25J
blNlY29uZHMpIHsgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyA9IGR1cmF0aW9uSW5T
ZWNvbmRzOyB9CiAgICAgICAgIGRvdWJsZSBwYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcygp
IGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHM7IH0KIApAQCAt
NTk4LDYgKzYwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX21lZGlh
UGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIDogMTsKICAgICAgICAgYm9vbCBtX21lZGlhUGxh
eWJhY2tBbGxvd3NJbmxpbmUgOiAxOwogICAgICAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxl
ZCA6IDE7CisgICAgICAgIGJvb2wgbV9zdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9h
ZGluZyA6IDE7CiAKICAgICAgICAgVGltZXI8U2V0dGluZ3M+IG1fbG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5VGltZXI7CiAgICAgICAgIHZvaWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJG
aXJlZChUaW1lcjxTZXR0aW5ncz4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNjQ3NTRjNWY0N2JjZTIwMTVmZGE0Yjcw
ZTBjNzE2ZmUzZTkyOGY3NC4uOWQxZDYwMDViZDMwNjc3ZmYzNGU1MWFlM2E1ZGY1NzAwMTJjYmFk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTI0NCw2ICsyNDQsMTIgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXJGaXJlZChUaW1lcjxSZW5kZXJMYXllckMKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3Np
dGluZ1VwZGF0ZVR5cGUgdXBkYXRlVHlwZSwgUmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3QpCiB7CiAg
ICAgbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyLnN0b3AoKTsKKyAgICAKKyAgICAvLyBD
b21wb3NpdGluZyBsYXllcnMgd2lsbCBiZSB1cGRhdGVkIGluIERvY3VtZW50OjppbXBsaWNpdENs
b3NlKCkgaWYgc3VwcHJlc3NlZCBoZXJlLgorICAgIGlmIChtX3JlbmRlclZpZXctPmRvY3VtZW50
KCktPnNldHRpbmdzKCkKKyAgICAgICAgJiYgbV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5zZXR0
aW5ncygpLT5zdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZygpCisgICAgICAg
ICYmICFtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmxvYWRFdmVudEZpbmlzaGVkKCkpCisgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlICYmICFtX2NvbXBv
c2l0aW5nKQogICAgICAgICBlbmFibGVDb21wb3NpdGluZ01vZGUodHJ1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggOWQ4NDIwYTRiMzcxNTI0NzA4ZGIxN2RhYzVjMTllZTE2YTdkNTNkZi4uYzFlOTMx
OGYyOGYzNjYzOTc5ZDM1ZWYwOGVjN2QwMDNiNzI0ZWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDExLTEwLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYW4gb3B0aW9uIHRvIHN1cHByZXNzIHJlbmRlcmluZyB1bnRpbCB0aGUg
ZG9jdW1lbnQncyBsb2FkIGV2ZW50IGZpcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIG5ldyBwcml2YXRlIFdlYlByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U3VwcHJlc3NS
ZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmc6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVu
Y2VzIHN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAx
MS0xMC0wMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFN0cmVuZ3Ro
IHJlZHVjZSBNYWMgb25seSBGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudCBhbmQg
RnJhbWU6Om1hdGNoTGFiZWxzQWdhaW5zdEVsZW1lbnQgaW50byBjYWxsZXJzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRl
eCBkOWRmMjk5MWFhNGRlYTg5MzE5MzIyNzA5OWFhZjA3YTZmNTIyYjg4Li5mZWVmNDcwZjE3ZGUx
MGQzYjBhZWY1NDI2YmU0MGRiYWJlNGIzOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEyNSw2ICsxMjUsNyBA
QAogI2RlZmluZSBXZWJLaXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJl
ZmVyZW5jZUtleSBAIldlYktpdFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQ
cmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0RWRpdGluZ0JlaGF2aW9yIgogI2RlZmluZSBXZWJLaXRVc2VQcmVIVE1MNVBhcnNl
clF1aXJrc0tleSBAIldlYktpdFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzIgorI2RlZmluZSBXZWJL
aXRTdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZ0tleSBAIldlYktpdFN1cHBy
ZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nIgogCiAvLyBDb3JlR3JhcGhpY3MgZGVm
ZXJyZWQgdXBkYXRlcyBhcmUgZGlzYWJsZWQgaWYgV2ViS2l0RW5hYmxlQ29hbGVzY2VkVXBkYXRl
c1ByZWZlcmVuY2VLZXkgaXMgc2V0CiAvLyB0byBOTywgb3IgaGFzIG5vIHZhbHVlLiAgRm9yIGNv
bXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWCAxMC40LjYsIGRlZmVycmVkIHVwZGF0ZXMgYXJlIE9G
RiBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXgg
N2ExNmM0ZmEyOWJlNWMzN2M0NTkwOTFiMGRmYzY3MTA3NTU5ODkwOS4uMTM0MGUxYTQ2MmNlOWZm
MDJkZmM3OTBjN2RjYmUxYzI3OGExOTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zODUsNiArMzg1LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9k
ZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgICBXZWJLaXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZVBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2Vi
S2l0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZVByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0V2ViQXVkaW9FbmFibGVkUHJlZmVyZW5j
ZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTdXBw
cmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZ0tleSwKIAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aExvbmdMb25nOkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCld
LCBXZWJLaXRBcHBsaWNhdGlvbkNhY2hlVG90YWxRdW90YSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhMb25nTG9uZzpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpXSwgV2Vi
S2l0QXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmlnaW5RdW90YSwKQEAgLTE1NTIsNiArMTU1Mywx
NiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYg
X3NldFN0cmluZ1ZhbHVlOiBmYW1pbHkgZm9yS2V5OiBXZWJLaXRQaWN0b2dyYXBoRm9udFByZWZl
cmVuY2VLZXldOwogfQogCistICh2b2lkKXNldFN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFs
bHlMb2FkaW5nOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9y
S2V5OldlYktpdFN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nS2V5XTsKK30K
KworLSAoQk9PTClzdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZworeworICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFN1cHByZXNzUmVuZGVyaW5nV2hp
bGVJbml0aWFsbHlMb2FkaW5nS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
UHJlZmVyZW5jZXMgKFdlYkludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYWY3ODE2NGRiYWM0YTcwM2IxZDY5YWNk
Y2Q1MGFhNTgxYjU1NTE0Yy4uM2E2ZmRkOTNjMjM1ODY5MGVhN2ZkYTY3OTdkZTA2NTQwOGY1YTMy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCkBAIC0yNjUsNCArMjY1LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNl
c0NoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIC0gKHZvaWQpc2V0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClpc0hpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQ7CiAKKy0gKHZvaWQpc2V0U3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRp
YWxseUxvYWRpbmc6KEJPT0wpZmxhZzsKKy0gKEJPT0wpc3VwcHJlc3NSZW5kZXJpbmdXaGlsZUlu
aXRpYWxseUxvYWRpbmc7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCAzOWM3NzgzYTUyZDU4ZTYyY2I0ZWQ1MDIyZWFjMjRkNTY3ZTkxZGQ2Li5kMmJkZjViZGJk
MDZkMDVmNjVhYTVkMWY3ZDBhYzlmMDcxMzRiZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC0xNDc1LDYgKzE0NzUsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRh
aW5XaGlsZUxvYWRpbmdRdWlyaygpCiAjZW5kaWYKICAgICBzZXR0aW5ncy0+c2V0TWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoW3ByZWZlcmVuY2VzIG1lZGlhUGxheWJhY2tSZXF1aXJl
c1VzZXJHZXN0dXJlXSk7CiAgICAgc2V0dGluZ3MtPnNldE1lZGlhUGxheWJhY2tBbGxvd3NJbmxp
bmUoW3ByZWZlcmVuY2VzIG1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmVdKTsKKyAgICBzZXR0aW5n
cy0+c2V0U3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcoW3ByZWZlcmVuY2Vz
IHN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nXSk7CiAKICAgICAvLyBBcHBs
aWNhdGlvbiBDYWNoZSBQcmVmZXJlbmNlcyBhcmUgc3RvcmVkIG9uIHRoZSBnbG9iYWwgY2FjaGUg
c3RvcmFnZSBtYW5hZ2VyLCBub3QgaW4gU2V0dGluZ3MuCiAgICAgW1dlYkFwcGxpY2F0aW9uQ2Fj
aGUgc2V0RGVmYXVsdE9yaWdpblF1b3RhOltwcmVmZXJlbmNlcyBhcHBsaWNhdGlvbkNhY2hlRGVm
YXVsdE9yaWdpblF1b3RhXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTA0MmM0NTcxYWJhNzRjYjVlMWFlYjdl
MmM1NzhlMDQ1MzJjZThhNy4uN2VhOTUyN2M0MzNmZjI3MmFlODA0ZGQ3MDJlMzk5NzYzODNkNmVl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEwLTAzICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYW4gb3B0aW9uIHRvIHN1cHByZXNzIHJl
bmRlcmluZyB1bnRpbCB0aGUgZG9jdW1lbnQncyBsb2FkIGV2ZW50IGZpcmVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyOTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIG5ldyBX
S1ByZWZlcmVuY2UuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRTdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZyk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzR2V0U3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxv
YWRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTEtMTAtMDMgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBmYWlsaW5n
IHVyaSBwYXJhbWV0ZXIgdG8gcHJvdmlzaW9uYWwtbG9hZC1mYWlsZWQgYW5kIGxvYWQtZmFpbGVk
IHNpZ25hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmlu
ZGV4IDJhYzlhZDc1M2JiZDY2ZjdkMWY2NDM2OWFkNjI2ZmQ4MGZjMGVjNWMuLmNiNjExOGQ2ZjM2
ZmQxNDgyYWU0OGNkOTgyMGMwNWM2NTZkNTVjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtOTQsNiArOTQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKICAgICBtYWNybyhTaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCwgc2hvd3NUb29sVGlw
T3ZlclRydW5jYXRlZFRleHQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oTW9ja1Nj
cm9sbGJhcnNFbmFibGVkLCBtb2NrU2Nyb2xsYmFyc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCiAgICAgbWFjcm8oV2ViQXVkaW9FbmFibGVkLCB3ZWJBdWRpb0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxv
YWRpbmcsIHN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nLCBCb29sLCBib29s
LCBmYWxzZSkgXAogICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZF
UkVOQ0UobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcAppbmRleCBkMjE1OGNlMzZlMjA4NDY4NjRhMzg3ZGRiNzRhN2MwZjk3N2Vj
ODcwLi5jN2RhMDE0OGE4NzA0NWIyMWUzYjFjZDhlNzQzM2ZkMzA0NmRlOTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC02MzEs
MyArNjMxLDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT53ZWJBdWRpb0VuYWJsZWQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3Vw
cHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldFN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nKGVuYWJsZWQpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRTdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9h
ZGluZyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0lt
cGwocHJlZmVyZW5jZXNSZWYpLT5zdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGlu
ZygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmgKaW5kZXggMzE1YmY2Yjc4MzM3MGU2OGM0Njk1OWRmMjFkYmM5NGMwNWVjYjljNy4uNmJmY2Ji
MmZhNmZiYWYwNDRkNDIxYTEzNWEyMDM1MjZmZDRjNTUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC0xNjgsNiArMTY4LDEwIEBAIFdL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRBVkZvdW5kYXRpb25FbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSCiAvLyBEZWZhdWx0cyB0byBmYWxzZQogV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKKyAgICAK
Ky8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3Vw
cHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRTdXBwcmVzc1JlbmRlcmluZ1doaWxlSW5pdGlhbGx5TG9hZGluZyhXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTkyNjViZDJhZGRiZmRh
MjEzYmIwZjRjODJhYzY3NGI5N2YyMDVlYi4uMzAwM2MwNDFjZDkxZGRmZWU4NDBjYmU4YmI1ZDk2
MzYxNWFmNjlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTY4Miw2ICsxNjgyLDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy0+c2V0
V2ViQXVkaW9FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6d2ViQXVkaW9FbmFibGVkS2V5KCkpKTsKICNlbmRpZgogCisgICAgc2V0dGluZ3MtPnNldFN1
cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6c3VwcHJlc3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxv
YWRpbmdLZXkoKSkpOworCiAgICAgcGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShzdG9yZSk7
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109865</attachid>
            <date>2011-10-05 14:43:16 -0700</date>
            <delta_ts>2011-10-05 20:27:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69298-20111005144438.patch</filename>
            <type>text/plain</type>
            <size>17826</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY2MzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYWVkY2Q5YzI0MWVlNDAw
NDM3MjYzZDJmZmE2NzQyNjE2MWMyOTQ4Li4xNWZmNzQ5MjQ4OTA0NzNkNDllMzM1Zjg3MWI4ODMy
MzI4NDMzMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTAtMDMgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0aGUgb3B0aW9uIHRvIHN1
cHByZXNzIHJlbmRlcmluZyB1bnRpbCB0aGUgZG9jdW1lbnQncyBsb2FkIGV2ZW50IGZpcmVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyOTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBXZWJD
b3JlIHNldHRpbmcgdGhhdCBzdXBwcmVzc2VzIHBhaW50aW5nIGFuZCBjb21wb3NpdGluZyBsYXll
cgorICAgICAgICB1cGRhdGVzIHVudGlsIHRoZSBkb2N1bWVudCdzIGxvYWQgZXZlbnQgZmlyZXMu
IFRoaXMgbWFza3MgdGhlIGVmZmVjdHMKKyAgICAgICAgb2YgaW5jcmVtZW50YWwgcmVuZGVyaW5n
IChmb3IgY2xpZW50cyB0aGF0IG9wdCBpbikgYnkgZW5zdXJpbmcgdGhhdCBhbGwKKyAgICAgICAg
c3ViLXJlc291cmNlcyBoYXZlIGxvYWRlZCBhbmQgYSBmdWxsIGxheW91dCBoYXMgdGFrZW4gcGxh
Y2UgYmVmb3JlCisgICAgICAgIHBhaW50aW5nIHRoZSBkb2N1bWVudCBmb3IgdGhlIGZpcnN0IHRp
bWUuCisKKyAgICAgICAgTm8gdGVzdHMgY3VycmVudGx5IHBvc3NpYmxlLiBUZXN0aW5nIHRoaXMg
d291bGQgcmVxdWlyZSB0aGUgYWJpbGl0eSBmb3IKKyAgICAgICAgRFJUIHRvIGR1bXAgc3RhdGUg
d2hpbGUgcmVzb3VyY2VzIGFyZSBsb2FkaW5nLCB3aGljaCBpdCBkb2Vzbid0CisgICAgICAgIGN1
cnJlbnRseSBkby4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSk6IElmIHJlbmRlcmluZyB3YXMgcHJldmlvdXNs
eQorICAgICAgICBzdXBwcmVzc2VkLCBmb3JjZSBhIHJlcGFpbnQgYW5kIGNvbXBvc2l0aW5nIGxh
eWVyIHVwZGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2aXN1YWxVcGRhdGVzQWxs
b3dlZCk6IEFkZCBhIGhlbHBlciBtZXRob2QgdG8KKyAgICAgICAgZGV0ZXJtaW5lIGlmIHRoZSBk
b2N1bWVudCBpcyBpbiBhIHN0YXRlIHdoZXJlIHJlbmRlcmluZyBpcyBhbGxvd2VkLgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3VwcHJlc3NJbmNyZW1lbnRhbFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c3VwcHJlc3NJbmNyZW1lbnRh
bFJlbmRlcmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcik6IEVuY2Fwc3VsYXRlIHRo
ZSBGT1VDIGFuZAorICAgICAgICBwYWludGluZyBzdXBwcmVzc2lvbiBjaGVja3MgaW50byBhIHNp
bmdsZSBoZWxwZXIgZnVuY3Rpb24gZm9yCisgICAgICAgIHJlYWRhYmlsaXR5J3Mgc2FrZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOiBJZiB3ZSBzaG91bGQK
KyAgICAgICAgc3VwcHJlc3MgY29tcG9zaXRpbmcgbGF5ZXIgdXBkYXRlcyBhbmQgdGhlIGxvYWQg
ZXZlbnQgaGFzIHlldCB0byBmaXJlLAorICAgICAgICByZXR1cm4gZWFybHkuCisKIDIwMTEtMTAt
MDQgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVk
REIgYWRkKCkgc2hvdWxkIGZhaWwgaWYga2V5IGlzIE5hTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggYWRiYjQwYWEyNGJmMjkxMTUyMDhlNDFmN2U2N2RjYTk3ODIzNDU2Yy4uYTZkN2VjOTVm
YTQzODU4MjI2M2U4ODdkM2VhMWIxNDFlZTZjZmQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0yMjMxLDYgKzIyMzEsMTQgQEAgdm9pZCBEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgpCiAg
ICAgICAgICAgICB2aWV3KCktPmxheW91dCgpOwogICAgIH0KIAorICAgIC8vIElmIHBhaW50aW5n
IGFuZCBjb21wb3NpdGluZyBsYXllciB1cGRhdGVzIHdlcmUgc3VwcHJlc3NlZCBwZW5kaW5nIHRo
ZSBsb2FkIGV2ZW50LCBkbyB0aGVzZSBhY3Rpb25zIG5vdy4KKyAgICBpZiAocmVuZGVyZXIoKSAm
JiBzZXR0aW5ncygpICYmIHNldHRpbmdzKCktPnN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmco
KSkgeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgdmlldygpLT51
cGRhdGVDb21wb3NpdGluZ0xheWVycygpOworI2VuZGlmCisgICAgICAgIHJlbmRlcmVyKCktPnJl
cGFpbnQoKTsKKyAgICB9CisKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVN
KQogICAgIGlmIChmICYmIHJlbmRlck9iamVjdCAmJiB0aGlzID09IHRvcERvY3VtZW50KCkgJiYg
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICAvLyBUaGUg
QVggY2FjaGUgbWF5IGhhdmUgYmVlbiBjbGVhcmVkIGF0IHRoaXMgcG9pbnQsIGJ1dCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZSBpdCBjb250YWlucyBhbgpAQCAtNTE1OCw2ICs1MTY2LDEzIEBAIHZvaWQg
RG9jdW1lbnQ6OmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCkKICAgICAgICAgbWFpbkZyYW1l
LT5ub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOwogfQog
Citib29sIERvY3VtZW50Ojp2aXN1YWxVcGRhdGVzQWxsb3dlZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICFzZXR0aW5ncygpCisgICAgICAgIHx8ICFzZXR0aW5ncygpLT5zdXBwcmVzc0luY3JlbWVu
dGFsUmVuZGVyaW5nKCkKKyAgICAgICAgfHwgbG9hZEV2ZW50RmluaXNoZWQoKTsKK30KKwogRG9j
dW1lbnRMb2FkZXIqIERvY3VtZW50Ojpsb2FkZXIoKSBjb25zdAogewogICAgIGlmICghbV9mcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYzFlNDdmNDEzOGFlNTczNGYzMWZhNGExNjkwODEz
MmI2NDJmOWJmNi4uMWIzNTQ5ZjNhODUyNjBjZWYxZWUxODQyZjkxMWM0YmJjZTM4ZTI2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTEwOTUsNiArMTA5NSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCk7CiAgICAgdm9pZCBkaWRSZW1vdmVXaGVlbEV2ZW50
SGFuZGxlcigpOwogICAgIAorICAgIGJvb2wgdmlzdWFsVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsK
KyAgICAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBk
MGVjNjBjOTNjMmJlNDEwMTRhM2ZiYzI0NGY3NWIwYTIzZjEwZjFhLi42Y2FmNmUyMWQ2M2MyYTNk
NWZkZWQzMmI0NTI3ODVjYmMyMjQwYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAt
MjE2LDYgKzIxNiw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9t
ZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSkKICAgICAsIG1fbWVkaWFQbGF5
YmFja0FsbG93c0lubGluZSh0cnVlKQogICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkKGZhbHNl
KQorICAgICwgbV9zdXBwcmVzc0luY3JlbWVudGFsUmVuZGVyaW5nKGZhbHNlKQogICAgICwgbV9s
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcih0aGlzLCAmU2V0dGluZ3M6OmxvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseVRpbWVyRmlyZWQpCiAgICAgLCBtX3pvb21BbmltYXRvclNjYWxlKDEpCiAg
ICAgLCBtX3pvb21BbmltYXRvclBvc1goMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA1MjUy
OGM4YzdhOTllNWM3MmVlMmU5MGQ3YTkxM2FhNTE4NWI0NDhjLi5iYzIwNjYyMDA1ZDFhZDlmOTA3
YTMzZjIyOThlZjc1OWM0OTZhM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC00NjIsNiAr
NDYyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNo
b0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZsYWc7IH0KICAg
ICAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29y
ZEVjaG9FbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRTdXBwcmVzc0luY3JlbWVudGFsUmVu
ZGVyaW5nKGJvb2wgZmxhZykgeyBtX3N1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmcgPSBmbGFn
OyB9CisgICAgICAgIGJvb2wgc3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZygpIGNvbnN0IHsg
cmV0dXJuIG1fc3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZzsgfQorCiAgICAgICAgIHZvaWQg
c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRz
KSB7IG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMgPSBkdXJhdGlvbkluU2Vjb25kczsg
fQogICAgICAgICBkb3VibGUgcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoKSBjb25zdCB7
IHJldHVybiBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzOyB9CiAKQEAgLTU5NCw2ICs1
OTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9tZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZSA6IDE7CiAgICAgICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrQWxs
b3dzSW5saW5lIDogMTsKICAgICAgICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWQgOiAxOwor
ICAgICAgICBib29sIG1fc3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZyA6IDE7CiAKICAgICAg
ICAgVGltZXI8U2V0dGluZ3M+IG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXI7CiAgICAg
ICAgIHZvaWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJGaXJlZChUaW1lcjxTZXR0aW5n
cz4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGI5NDY5
NjQzZDhkYzI0NDc4M2Q3N2Y3ZDhjYTI0ZWRmNzg0OWFkYTkuLjY1MTc2MWY0ZDc5MDI2N2Q1OGQ4
YzBmYjI1YzIxMjU3YmVhN2M0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMjYyMyw2ICsyNjIzLDI0IEBAIHN0YXRpYyBib29sIHNob3VsZERvU29mdHdh
cmVQYWludChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGJvb2wgcGFpbnRpbmdSZWZsZWN0CiAg
ICAgcmV0dXJuIHBhaW50aW5nUmVmbGVjdGlvbiAmJiAhbGF5ZXItPmhhczNEVHJhbnNmb3JtKCk7
CiB9CiAjZW5kaWYKKyAgICAKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRTdXBwcmVzc1BhaW50
aW5nTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQoreworICAgIEFTU0VSVF9BUkcobGF5ZXIsIGxh
eWVyKTsKKworICAgIC8vIEF2b2lkIHBhaW50aW5nIGRlc2NlbmRhbnRzIG9mIHRoZSByb290IGxh
eWVyIHdoZW4gc3R5bGVzaGVldHMgaGF2ZW4ndCBsb2FkZWQuIFRoaXMgZWxpbWluYXRlcyBGT1VD
LgorICAgIC8vIEl0J3Mgb2sgbm90IHRvIGRyYXcsIGJlY2F1c2UgbGF0ZXIgb24sIHdoZW4gYWxs
IHRoZSBzdHlsZXNoZWV0cyBkbyBsb2FkLCB1cGRhdGVTdHlsZVNlbGVjdG9yIG9uIHRoZSBEb2N1
bWVudAorICAgIC8vIHdpbGwgZG8gYSBmdWxsIHJlcGFpbnQoKS4KKyAgICBpZiAobGF5ZXItPnJl
bmRlcmVyKCktPmRvY3VtZW50KCktPmRpZExheW91dFdpdGhQZW5kaW5nU3R5bGVzaGVldHMoKSAm
JiAhbGF5ZXItPnJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpICYmICFsYXllci0+cmVuZGVyZXIo
KS0+aXNSb290KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gQXZvaWQgcGFpbnRp
bmcgYWxsIGxheWVycyBpZiB0aGUgZG9jdW1lbnQgaXMgaW4gYSBzdGF0ZSB3aGVyZSB2aXN1YWwg
dXBkYXRlcyBhcmVuJ3QgYWxsb3dlZC4KKyAgICAvLyBBIGZ1bGwgcmVwYWludCB3aWxsIG9jY3Vy
IGluIERvY3VtZW50OjppbXBsaWNpdENsb3NlKCkgaWYgcGFpbnRpbmcgaXMgc3VwcHJlc3NlZCBo
ZXJlLgorICAgIGlmICghbGF5ZXItPnJlbmRlcmVyKCktPmRvY3VtZW50KCktPnZpc3VhbFVwZGF0
ZXNBbGxvd2VkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOwor
fQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIs
IEdyYXBoaWNzQ29udGV4dCogcCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91
dFJlY3QmIHBhaW50RGlydHlSZWN0LCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsCkBAIC0y
NjQyLDEwICsyNjYwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXll
ciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsCiAgICAgfQogI2VuZGlmCiAKLSAgICAv
LyBBdm9pZCBwYWludGluZyBsYXllcnMgd2hlbiBzdHlsZXNoZWV0cyBoYXZlbid0IGxvYWRlZC4g
IFRoaXMgZWxpbWluYXRlcyBGT1VDLgotICAgIC8vIEl0J3Mgb2sgbm90IHRvIGRyYXcsIGJlY2F1
c2UgbGF0ZXIgb24sIHdoZW4gYWxsIHRoZSBzdHlsZXNoZWV0cyBkbyBsb2FkLCB1cGRhdGVTdHls
ZVNlbGVjdG9yIG9uIHRoZSBEb2N1bWVudAotICAgIC8vIHdpbGwgZG8gYSBmdWxsIHJlcGFpbnQo
KS4KLSAgICBpZiAocmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZGlkTGF5b3V0V2l0aFBlbmRpbmdT
dHlsZXNoZWV0cygpICYmICFyZW5kZXJlcigpLT5pc1JlbmRlclZpZXcoKSAmJiAhcmVuZGVyZXIo
KS0+aXNSb290KCkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcih0aGlzKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIElmIHRoaXMgbGF5ZXIgaXMgdG90YWxseSBp
bnZpc2libGUgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIHBhaW50LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA0ZmQ4MmE5
M2M2ZjI2ZTlmZTYwNjhhNjgwNmU1Y2U2OWNmMWQwN2VlLi5mMjYyN2RlNjYxMmI5Nzc4ZDllMzEz
NjU5ZWRjMmRlZmIwNTQ2MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjQ0LDYgKzI0NCwxMCBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lckZpcmVkKFRpbWVy
PFJlbmRlckxheWVyQwogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0
aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGVUeXBlLCBSZW5kZXJMYXllciog
dXBkYXRlUm9vdCkKIHsKICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIuc3RvcCgp
OworICAgIAorICAgIC8vIENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9j
dW1lbnQ6OmltcGxpY2l0Q2xvc2UoKSBpZiBzdXBwcmVzc2VkIGhlcmUuCisgICAgaWYgKCFtX3Jl
bmRlclZpZXctPmRvY3VtZW50KCktPnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCisgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlICYmICFtX2NvbXBvc2l0aW5n
KQogICAgICAgICBlbmFibGVDb21wb3NpdGluZ01vZGUodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggODI3NWQ3ZDlhNDE3Y2Q5OWUyYmViMjIyODZjNmFkMTE0MmUzYmQzZS4uMTJhNDdlYjMwMWQ1
NzQzM2FlZmJmZDVkNGJmODBiZmVkZDBmNjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDExLTEwLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgYW4gb3B0aW9uIHRvIHN1cHByZXNzIHJlbmRlcmluZyB1bnRpbCB0aGUgZG9jdW1l
bnQncyBsb2FkIGV2ZW50IGZpcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjkyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIG5ldyBwcml2YXRlIFdlYlByZWZlcmVuY2UuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U3VwcHJlc3NSZW5kZXJp
bmdXaGlsZUluaXRpYWxseUxvYWRpbmc6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHN1
cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nXSk6CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxMS0xMC0w
MyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByOTY1MjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBkOWRmMjk5MWFhNGRlYTg5MzE5MzIy
NzA5OWFhZjA3YTZmNTIyYjg4Li4xMDNiOWQ4NDU1YTU2ZDNkMGYwOWIyNmE0Nzc4ZTY2ODNjMjFk
ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKQEAgLTEyNSw2ICsxMjUsNyBAQAogI2RlZmluZSBXZWJLaXRUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdFRleHRE
aXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBX
ZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RWRpdGluZ0JlaGF2aW9y
IgogI2RlZmluZSBXZWJLaXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrc0tleSBAIldlYktpdFVzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzIgorI2RlZmluZSBXZWJLaXRTdXBwcmVzc0luY3JlbWVudGFsUmVu
ZGVyaW5nS2V5IEAiV2ViS2l0U3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZyIKIAogLy8gQ29y
ZUdyYXBoaWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdlYktpdEVuYWJsZUNv
YWxlc2NlZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIHNldAogLy8gdG8gTk8sIG9yIGhhcyBubyB2
YWx1ZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAuNC42LCBkZWZlcnJlZCB1
cGRhdGVzIGFyZSBPRkYgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCmluZGV4IDdhMTZjNGZhMjliZTVjMzdjNDU5MDkxYjBkZmM2NzEwNzU1OTg5MDkuLjc5
MmI0YWNhMDU5OTk5ZmJhY2QwZTlmOGNlZTg0ZTlhYThlY2M4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzg1LDYgKzM4NSw3IEBAIHN0YXRp
YyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0TWVkaWFQbGF5YmFja1JlcXVpcmVz
VXNlckdlc3R1cmVQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJv
b2w6WUVTXSwgIFdlYktpdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmVQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFdlYkF1ZGlvRW5h
YmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10s
ICAgV2ViS2l0U3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZ0tleSwKIAogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aExvbmdMb25nOkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3Rh
KCldLCBXZWJLaXRBcHBsaWNhdGlvbkNhY2hlVG90YWxRdW90YSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhMb25nTG9uZzpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpXSwg
V2ViS2l0QXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmlnaW5RdW90YSwKQEAgLTE1NTIsNiArMTU1
MywxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3Nl
bGYgX3NldFN0cmluZ1ZhbHVlOiBmYW1pbHkgZm9yS2V5OiBXZWJLaXRQaWN0b2dyYXBoRm9udFBy
ZWZlcmVuY2VLZXldOwogfQogCistICh2b2lkKXNldFN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJp
bmc6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2Vi
S2l0U3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZ0tleV07Cit9CisKKy0gKEJPT0wpc3VwcHJl
c3NJbmNyZW1lbnRhbFJlbmRlcmluZworeworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9y
S2V5OldlYktpdFN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmdLZXldOworfQorCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBhZjc4
MTY0ZGJhYzRhNzAzYjFkNjlhY2RjZDUwYWE1ODFiNTU1MTRjLi5iODdjOTMyYzVmOWQwN2Y5MDBl
MjRkYzViNTE2MzQ5NGQxMzljODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI2NSw0ICsyNjUsNyBAQCBleHRlcm4gTlNT
dHJpbmcgKldlYlByZWZlcmVuY2VzQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwogLSAodm9p
ZClzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09M
KWlzSGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZDsKIAorLSAodm9pZClzZXRTdXBwcmVz
c0luY3JlbWVudGFsUmVuZGVyaW5nOihCT09MKWZsYWc7CistIChCT09MKXN1cHByZXNzSW5jcmVt
ZW50YWxSZW5kZXJpbmc7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCAzOWM3NzgzYTUyZDU4ZTYyY2I0ZWQ1MDIyZWFjMjRkNTY3ZTkxZGQ2Li43NDM2NzFmMmE3
MDgxMTI0MTk4MWEzY2JhZWZlNmExNWE1OGY5ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC0xNDc1LDYgKzE0NzUsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRh
aW5XaGlsZUxvYWRpbmdRdWlyaygpCiAjZW5kaWYKICAgICBzZXR0aW5ncy0+c2V0TWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoW3ByZWZlcmVuY2VzIG1lZGlhUGxheWJhY2tSZXF1aXJl
c1VzZXJHZXN0dXJlXSk7CiAgICAgc2V0dGluZ3MtPnNldE1lZGlhUGxheWJhY2tBbGxvd3NJbmxp
bmUoW3ByZWZlcmVuY2VzIG1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmVdKTsKKyAgICBzZXR0aW5n
cy0+c2V0U3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZyhbcHJlZmVyZW5jZXMgc3VwcHJlc3NJ
bmNyZW1lbnRhbFJlbmRlcmluZ10pOwogCiAgICAgLy8gQXBwbGljYXRpb24gQ2FjaGUgUHJlZmVy
ZW5jZXMgYXJlIHN0b3JlZCBvbiB0aGUgZ2xvYmFsIGNhY2hlIHN0b3JhZ2UgbWFuYWdlciwgbm90
IGluIFNldHRpbmdzLgogICAgIFtXZWJBcHBsaWNhdGlvbkNhY2hlIHNldERlZmF1bHRPcmlnaW5R
dW90YTpbcHJlZmVyZW5jZXMgYXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmlnaW5RdW90YV1dOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IGI5ODAxNGIwOTJlNjI3NTlkNjYyNDUzNDY2MWUxNGMyZTJhMjhjM2MuLmMz
NWJlZGYzNDk0MDI3MjA5ZTQ2NThhZTBlYWEyZDA2YzhhODQ4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMS0xMC0wMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGFuIG9wdGlvbiB0byBzdXBwcmVzcyByZW5kZXJpbmcgdW50aWwgdGhlIGRv
Y3VtZW50J3MgbG9hZCBldmVudCBmaXJlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcgV0tQcmVmZXJlbmNlLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3VwcHJl
c3NSZW5kZXJpbmdXaGlsZUluaXRpYWxseUxvYWRpbmcpOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c0dldFN1cHByZXNzUmVuZGVyaW5nV2hpbGVJbml0aWFsbHlMb2FkaW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMpOgorCiAyMDExLTEwLTA0ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXS1ByZWZlcmVuY2VzIHNob3VsZCBhbGxvdyBjb250cm9sIG9mIGFwcGxpY2F0aW9u
IGNocm9tZSBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
aAppbmRleCAzNWMyOThmMWE1M2M3NjdlMmQ3NDE3ZGM4OWI1ODgwMjA0OTQ2ZDRiLi5jMGRhYjY4
YjAxM2Y2OGY5YTc3MmUxZWI0YmRkZTI1OWZhZjEyNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTk1LDYgKzk1LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgbWFjcm8oTW9ja1Njcm9sbGJhcnNFbmFibGVkLCBtb2NrU2Nyb2xsYmFyc0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oV2ViQXVkaW9FbmFibGVkLCB3
ZWJBdWRpb0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oQXBwbGljYXRp
b25DaHJvbWVNb2RlRW5hYmxlZCwgYXBwbGljYXRpb25DaHJvbWVNb2RlLCBCb29sLCBib29sLCBm
YWxzZSkgXAorICAgIG1hY3JvKFN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmcsIHN1cHByZXNz
SW5jcmVtZW50YWxSZW5kZXJpbmcsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgXAogCiAjZGVm
aW5lIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVfUFJFRkVSRU5DRShtYWNybykgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE1YjEx
NjQ0YTMyODlmMTA3OGQ4MWU3MjNkYTdiYTcxNzRhZDc4NzcuLmZmODFhYzE5ZTMyNDZhMjk4OGI1
ZWE4ZWFjMDQyZTk4ZTk5MDAyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTY0MSwzICs2NDEsMTMgQEAgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0QXBwbGljYXRpb25DaHJvbWVNb2RlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmUKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YXBwbGlj
YXRpb25DaHJvbWVNb2RlKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFN1cHByZXNzSW5j
cmVtZW50YWxSZW5kZXJpbmcoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBl
bmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN1cHByZXNzSW5jcmVt
ZW50YWxSZW5kZXJpbmcoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFN1cHBy
ZXNzSW5jcmVtZW50YWxSZW5kZXJpbmcoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c3VwcHJlc3NJbmNyZW1lbnRh
bFJlbmRlcmluZygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmgKaW5kZXggMzE1YmY2Yjc4MzM3MGU2OGM0Njk1OWRmMjFkYmM5NGMwNWVjYjlj
Ny4uOTc1ZTI0ZTQxYTU0YzExNjZhYWQ4ODVjMzlkZjYzOWYwZjk2ZWRlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC0xNjgsNiArMTY4
LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRBVkZvdW5kYXRpb25FbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSCiAvLyBEZWZhdWx0cyB0byBmYWxzZQogV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KTsKKyAgICAKKy8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0U3VwcHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZyhXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmcoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDhhN2U3MDUyZWE2ZmVkODE4ZmViNzNjZGNi
NjExMzJmMGQ4ZjA3NDYuLjgwNDdhZjc5ZjM4ZWUwZTg5YjY5M2RiODJiYmFhYjhkYmRkNTIwODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE2ODIsOCArMTY4Miw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3MtPnNldFdlYkF1ZGlvRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OndlYkF1ZGlv
RW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAotICAgIHNldHRpbmdzLT5zZXRBcHBsaWNhdGlvbkNo
cm9tZU1vZGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphcHBs
aWNhdGlvbkNocm9tZU1vZGVLZXkoKSkpOwotICAgIAorICAgIHNldHRpbmdzLT5zZXRBcHBsaWNh
dGlvbkNocm9tZU1vZGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjphcHBsaWNhdGlvbkNocm9tZU1vZGVLZXkoKSkpOyAgICAKKyAgICBzZXR0aW5ncy0+c2V0U3Vw
cHJlc3NJbmNyZW1lbnRhbFJlbmRlcmluZyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnN1cHByZXNzSW5jcmVtZW50YWxSZW5kZXJpbmdLZXkoKSkpOworCiAgICAg
cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShzdG9yZSk7CiB9CiAK
</data>
<flag name="review"
          id="107203"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>