<?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>35576</bug_id>
          
          <creation_ts>2010-03-02 04:20:10 -0800</creation_ts>
          <short_desc>WebKit should tell plug-in instances when private browsing state changes</short_desc>
          <delta_ts>2010-03-02 15:14:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>darin</cc>
    
    <cc>jhoneycutt</cc>
    
    <cc>robert</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>195019</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 04:20:10 -0800</bug_when>
    <thetext>The Mac plug-in implementation uses setvalue to notify a plug-in instance when the NPNVprivateModeBool value changes (&lt;http://trac.webkit.org/browser/trunk/WebKit/mac/Plugins/WebNetscapePluginView.mm#L833&gt;).  The cross-platform plug-in implementation in WebCore should do the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195020</commentid>
    <comment_count>1</comment_count>
      <attachid>49800</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 04:22:04 -0800</bug_when>
    <thetext>Created attachment 49800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195023</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 04:33:21 -0800</bug_when>
    <thetext>This is the second half of supporting private browsing mode with plug-ins (related to bug 30348 for Windows, bug 33180 for Qt, and bug 35500 for Gtk).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195159</commentid>
    <comment_count>3</comment_count>
      <attachid>49800</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-02 12:14:05 -0800</bug_when>
    <thetext>Comment on attachment 49800
Patch

&gt; +        const HashSet&lt;RefPtr&lt;Widget&gt; &gt;* children = view-&gt;children();
&gt; +        ASSERT(children);

If the children function never returns 0, I wish it returned a reference instead of a pointer.

&gt; +        HashSet&lt;RefPtr&lt;Widget&gt; &gt;::const_iterator end = children-&gt;end();
&gt; +        for (HashSet&lt;RefPtr&lt;Widget&gt; &gt;::const_iterator it = children-&gt;begin(); it != end; ++it) {
&gt; +            Widget* widget = (*it).get();
&gt; +            if (!widget-&gt;isPluginView())
&gt; +                continue;
&gt; +            static_cast&lt;PluginView*&gt;(widget)-&gt;privateBrowsingStateChanged(privateBrowsingEnabled);
&gt; +        }

Is there a guarantee that the code called by the privateBrowsingStateChanged function won&apos;t change the children of the FrameView*?

Is there a guarantee that the code called by the privateBrowsingStateChanged function won&apos;t cause the Frame pointed to by the &quot;frame&quot; local variable to be deleted?

I think we might need to build a vector of widgets to call before calling any of them.

&gt; +    m_page-&gt;privateBrowsingStateChanged();

Can&apos;t a single Settings be used by more than one page? Maybe I&apos;m thinking only of Objective-C.

review- because I&apos;m concerned this won&apos;t work if the plug-in does a lot of work in the browsing state changed function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195168</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 12:25:48 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; +        HashSet&lt;RefPtr&lt;Widget&gt; &gt;::const_iterator end = children-&gt;end();
&gt; &gt; +        for (HashSet&lt;RefPtr&lt;Widget&gt; &gt;::const_iterator it = children-&gt;begin(); it != end; ++it) {
&gt; &gt; +            Widget* widget = (*it).get();
&gt; &gt; +            if (!widget-&gt;isPluginView())
&gt; &gt; +                continue;
&gt; &gt; +            static_cast&lt;PluginView*&gt;(widget)-&gt;privateBrowsingStateChanged(privateBrowsingEnabled);
&gt; &gt; +        }
&gt; 
&gt; Is there a guarantee that the code called by the privateBrowsingStateChanged
&gt; function won&apos;t change the children of the FrameView*?
&gt; 
&gt; Is there a guarantee that the code called by the privateBrowsingStateChanged
&gt; function won&apos;t cause the Frame pointed to by the &quot;frame&quot; local variable to be
&gt; deleted?
&gt; 
&gt; I think we might need to build a vector of widgets to call before calling any
&gt; of them.

That’s a good point.  I’ll make this change.

&gt; &gt; +    m_page-&gt;privateBrowsingStateChanged();
&gt; 
&gt; Can&apos;t a single Settings be used by more than one page? Maybe I&apos;m thinking only
&gt; of Objective-C.

WebPreferences can be shared by many WebView’s, but each Page creates and owns its Settings instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195178</commentid>
    <comment_count>5</comment_count>
      <attachid>49832</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 12:51:08 -0800</bug_when>
    <thetext>Created attachment 49832
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195182</commentid>
    <comment_count>6</comment_count>
      <attachid>49832</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-02 13:01:15 -0800</bug_when>
    <thetext>Comment on attachment 49832
Patch v2

Looks good.

I would add a comment to the Page::privateBrowsingStateChanged function explaining that the function uses local variables so it can run to completion even if the entire Page is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195267</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-02 15:14:34 -0800</bug_when>
    <thetext>Landed in r55433.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49800</attachid>
            <date>2010-03-02 04:22:04 -0800</date>
            <delta_ts>2010-03-02 12:51:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-35576-WebKit-should-tell-plug-in-instances-when-.patch</filename>
            <type>text/plain</type>
            <size>13009</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSBhMGYxYjdmMjYyM2I5Yzc1MmI5YWY2NDRjMjRhNGM4NTY4ZTFmMjg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAyIE1hciAyMDEwIDA0OjEzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQnVnIDM1NTc2OiBX
ZWJLaXQgc2hvdWxkIHRlbGwgcGx1Zy1pbiBpbnN0YW5jZXMgd2hlbiBwcml2YXRlIGJyb3dzaW5n
IHN0YXRlIGNoYW5nZXMKIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM1NTc2PgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKTm90aWZ5IHBsdWctaW4gaW5zdGFuY2VzIHdoZW4g
dGhlIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgY2hhbmdlcyB0byBtYXRjaCB0aGUgYmVoYXZpb3Ig
b2YgdGhlCk1hYyBwbHVnLWluIGNvZGUuCgoqIHBhZ2UvUGFnZS5jcHA6CihXZWJDb3JlOjpQYWdl
Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBXYWxrIHRoZSBmcmFtZSB0cmVlIGFuZCBu
b3RpZnkgZWFjaCBQbHVnaW5WaWV3IHRoYXQKdGhlIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgaGFz
IGNoYW5nZWQuCiogcGFnZS9QYWdlLmg6CiogcGFnZS9TZXR0aW5ncy5jcHA6CihXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6IE5vdGlmeSB0aGUgcGFnZSB0aGF0
IHRoZSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlCmhhcyBjaGFuZ2VkLgoqIHBsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CihXZWJDb3JlOjpQbHVnaW5WaWV3Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5n
ZWQpOiBOb3RpZnkgdGhlIHBsdWctaW4gaW5zdGFuY2Ugb2YgdGhlIG5ldyBwcml2YXRlCmJyb3dz
aW5nIHN0YXRlLgoqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgoKV2ViS2l0VG9vbHM6CgpUZXN0TmV0
c2NhcGVQbHVnaW4gaXMgYW5vdGhlciBiaXQgb2YgcGx1Zy1pbiBjb2RlIHdoZXJlIGNvcHktcGFz
dGUgd2FzIGhlYXZpbHkgdXNlZAp3aGVuIHBvcnRpbmcuICBVcGRhdGUgdGhlIFdpbmRvd3MgYW5k
IFVOSVggaW1wbGVtZW50YXRpb25zIG9mIE5QUF9OZXcgYW5kIE5QUF9TZXRWYWx1ZQp0byBwcm92
aWRlIHRoZSBleHBlY3RlZCBiZWhhdmlvciByZWxhdGVkIHRvIE5QTlZwcml2YXRlTW9kZUJvb2wu
ICBIb3BlZnVsbHkgdGhpcyBjb2RlCmR1cGxpY2F0aW9uIGNhbiBiZSBjbGVhbmVkIHVwIGluIHRo
ZSBmdXR1cmUuCgoqIER1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi5jcHA6Cih3ZWJraXRfdGVzdF9wbHVnaW5fbmV3X2luc3RhbmNlKToKKHdl
YmtpdF90ZXN0X3BsdWdpbl9zZXRfdmFsdWUpOgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0
c2NhcGVQbHVnaW4vbWFpbi5jcHA6CihOUFBfTmV3KToKKE5QUF9TZXRWYWx1ZSk6CgpMYXlvdXRU
ZXN0czoKCiogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFJlbW92ZSBwbHVnaW5zL3ByaXZhdGUtYnJv
d3NpbmctbW9kZS5odG1sIG5vdyB0aGF0IGl0IHBhc3Nlcy4KLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrKwogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzIC0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIg
KysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL1BhZ2UuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2Uv
UGFnZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsrKwogV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsr
KysrKysrKysrKysKIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTkgKysrKysrKysrKysrKysrKwogLi4uL3VuaXgvVGVzdE5ldHNjYXBl
UGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5jcHAgfCAgIDE2ICsrKysrKysrKysrLS0KIC4uLi9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwIHwgICAxNyArKysr
KysrKysrKy0tLQogMTEgZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmZTA0NTRlLi5kNGIyMmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTUgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBCdWcgMzU1
NzY6IFdlYktpdCBzaG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHByaXZhdGUgYnJv
d3Npbmcgc3RhdGUgY2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNTU3Nj4K
KworICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBSZW1vdmUgcGx1Z2lucy9wcml2YXRl
LWJyb3dzaW5nLW1vZGUuaHRtbCBub3cgdGhhdCBpdCBwYXNzZXMuCisKKzIwMTAtMDMtMDIgIE1h
cmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKwogICAgICAgICBQYXJ0IG9mIEJ1ZyAzMDM0ODogSW1wbGVtZW50IHByaXZhdGUg
bW9kZSBmb3IgcGx1Zy1pbnMgb24gV2luZG93cwogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8zMDM0OD4gLyA8cmRhcjovL3Byb2JsZW0vNzU2MjI2MT4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAppbmRleCA1MmY5OTE1Li41M2QzMDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApA
QCAtNjcxLDkgKzY3MSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtbWlzc2luZy1maWxlLWV4Y2VwdGlvbi5odG1sCiBmYXN0L2RvbS9XaW5kb3cvc2xvdy11bmxv
YWQtaGFuZGxlci5odG1sCiBmYXN0L2RvbS9XaW5kb3cvc2xvdy11bmxvYWQtaGFuZGxlci1vbmx5
LWZyYW1lLWlzLXN0b3BwZWQuaHRtbAogCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzAzNDg+Ci1wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCi0K
ICMgU2tpcCB0aGVzZSB0d28gZmFpbHVyZXMgSSBpbnRyb2R1Y2VkIHRoaXMgbW9ybmluZyB3aGls
ZSBJIGV4cGxvcmUgdGhlbS4KIGh0dHAvdGVzdHMvZ2xvYmFsaGlzdG9yeS9oaXN0b3J5LWRlbGVn
YXRlLWJhc2ljLXZpc2l0ZWQtbGlua3MuaHRtbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0YzYzZTEuLjYwZWMzYmQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIs
MjggQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBC
dWcgMzU1NzY6IFdlYktpdCBzaG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHByaXZh
dGUgYnJvd3Npbmcgc3RhdGUgY2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8z
NTU3Nj4KKworICAgICAgICBOb3RpZnkgcGx1Zy1pbiBpbnN0YW5jZXMgd2hlbiB0aGUgcHJpdmF0
ZSBicm93c2luZyBzdGF0ZSBjaGFuZ2VzIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiB0aGUKKyAg
ICAgICAgTWFjIHBsdWctaW4gY29kZS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBXYWxrIHRo
ZSBmcmFtZSB0cmVlIGFuZCBub3RpZnkgZWFjaCBQbHVnaW5WaWV3IHRoYXQKKyAgICAgICAgdGhl
IHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgaGFzIGNoYW5nZWQuCisgICAgICAgICogcGFnZS9QYWdl
Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6IE5vdGlmeSB0aGUgcGFnZSB0aGF0IHRo
ZSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlCisgICAgICAgIGhhcyBjaGFuZ2VkLgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
cml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBOb3RpZnkgdGhlIHBsdWctaW4gaW5zdGFuY2Ug
b2YgdGhlIG5ldyBwcml2YXRlCisgICAgICAgIGJyb3dzaW5nIHN0YXRlLgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luVmlldy5oOgorCisyMDEwLTAzLTAyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAg
UGFydCBvZiBCdWcgMzAzNDg6IEltcGxlbWVudCBwcml2YXRlIG1vZGUgZm9yIHBsdWctaW5zIG9u
IFdpbmRvd3MKICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzAzNDg+IC8gPHJkYXI6Ly9w
cm9ibGVtLzc1NjIyNjE+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmZDIzNWE3Li5kNDA2NDE3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01Miw2
ICs1Miw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5o
IgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlci5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNp
bmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtNzc1LDYgKzc3NiwyOCBAQCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50KiBQYWdlOjppbnNwZWN0b3JUaW1lbGluZUFnZW50KCkgY29uc3QKIH0KICNlbmRp
ZgogCit2b2lkIFBhZ2U6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZCgpCit7CisgICAgYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkID0gbV9zZXR0aW5ncy0+cHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCgpOworCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgRnJhbWVWaWV3
KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaWYgKCF2aWV3KQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPiogY2hpbGRy
ZW4gPSB2aWV3LT5jaGlsZHJlbigpOworICAgICAgICBBU1NFUlQoY2hpbGRyZW4pOworCisgICAg
ICAgIEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY2hpbGRy
ZW4tPmVuZCgpOworICAgICAgICBmb3IgKEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBjaGlsZHJlbi0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9ICgqaXQpLmdldCgpOworICAgICAgICAgICAgaWYgKCF3
aWRnZXQtPmlzUGx1Z2luVmlldygpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHdpZGdldCktPnByaXZhdGVCcm93c2luZ1N0
YXRlQ2hhbmdlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyAgICAgICAgfQorICAgIH0KK30K
Kwogdm9pZCBQYWdlOjpwbHVnaW5BbGxvd2VkUnVuVGltZUNoYW5nZWQoKQogewogICAgIGlmICht
X3BsdWdpbkhhbHRlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDA0YTU0NWMuLjJhOTBjYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTk3LDYgKzE5Nyw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB1c2VyU3R5bGVTaGVldExvY2F0aW9u
Q2hhbmdlZCgpOwogICAgICAgICBjb25zdCBTdHJpbmcmIHVzZXJTdHlsZVNoZWV0KCkgY29uc3Q7
CiAKKyAgICAgICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoKTsKKwogICAgICAg
ICB2b2lkIGRpZFN0YXJ0UGx1Z2luKEhhbHRhYmxlUGx1Z2luKik7CiAgICAgICAgIHZvaWQgZGlk
U3RvcFBsdWdpbihIYWx0YWJsZVBsdWdpbiopOwogICAgICAgICB2b2lkIHBsdWdpbkFsbG93ZWRS
dW5UaW1lQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBi
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNTdmM2NkZC4uMjc4M2JjYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCkBAIC0yNzcsNyArMjc3LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFn
ZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhKQogCiB2b2lkIFNldHRpbmdzOjpzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKKyAg
ICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbmFibGVkID09IHByaXZhdGVCcm93c2luZ0VuYWJsZWQp
CisgICAgICAgIHJldHVybjsKKwogICAgIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA9IHByaXZh
dGVCcm93c2luZ0VuYWJsZWQ7CisgICAgbV9wYWdlLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5n
ZWQoKTsKIH0KIAogdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseShib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMjVmNWJhNS4uNDRmMDJlOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMTM3Myw0ICsxMzczLDE5IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFs
dWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIHJldHVybiBOUEVSUl9H
RU5FUklDX0VSUk9SOwogfQogCit2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCit7CisgICAgTlBQX1NldFZhbHVl
UHJvY1B0ciBzZXRWYWx1ZSA9IG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR2YWx1ZTsKKyAg
ICBpZiAoIXNldFZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBQbHVnaW5WaWV3OjpzZXRD
dXJyZW50UGx1Z2luVmlldyh0aGlzKTsKKyAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRy
b3BBbGxMb2NrcyhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgc2V0Q2FsbGluZ1Bs
dWdpbih0cnVlKTsKKyAgICBOUEJvb2wgdmFsdWUgPSBwcml2YXRlQnJvd3NpbmdFbmFibGVkOwor
ICAgIHNldFZhbHVlKG1faW5zdGFuY2UsIE5QTlZwcml2YXRlTW9kZUJvb2wsICZ2YWx1ZSk7Cisg
ICAgc2V0Q2FsbGluZ1BsdWdpbihmYWxzZSk7CisgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBs
dWdpblZpZXcoMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5o
CmluZGV4IDY4OTY1OGUuLjIxYTI1ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTU2LDYgKzE1
Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRQ
YXVzZWQoYm9vbCk7CiAKKyAgICAgICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQo
Ym9vbCk7CisKICAgICAgICAgdm9pZCBkaXNjb25uZWN0U3RyZWFtKFBsdWdpblN0cmVhbSopOwog
ICAgICAgICB2b2lkIHN0cmVhbURpZEZpbmlzaExvYWRpbmcoUGx1Z2luU3RyZWFtKiBzdHJlYW0p
IHsgZGlzY29ubmVjdFN0cmVhbShzdHJlYW0pOyB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBlMjBjYjQwLi5jYmQzMGM3
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMtMDIgIE1hcmsgUm93ZSAgPG1yb3dlQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdWcgMzU1NzY6IFdlYktpdCBzaG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHBy
aXZhdGUgYnJvd3Npbmcgc3RhdGUgY2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8zNTU3Nj4KKworICAgICAgICBUZXN0TmV0c2NhcGVQbHVnaW4gaXMgYW5vdGhlciBiaXQgb2Yg
cGx1Zy1pbiBjb2RlIHdoZXJlIGNvcHktcGFzdGUgd2FzIGhlYXZpbHkgdXNlZAorICAgICAgICB3
aGVuIHBvcnRpbmcuICBVcGRhdGUgdGhlIFdpbmRvd3MgYW5kIFVOSVggaW1wbGVtZW50YXRpb25z
IG9mIE5QUF9OZXcgYW5kIE5QUF9TZXRWYWx1ZQorICAgICAgICB0byBwcm92aWRlIHRoZSBleHBl
Y3RlZCBiZWhhdmlvciByZWxhdGVkIHRvIE5QTlZwcml2YXRlTW9kZUJvb2wuICBIb3BlZnVsbHkg
dGhpcyBjb2RlCisgICAgICAgIGR1cGxpY2F0aW9uIGNhbiBiZSBjbGVhbmVkIHVwIGluIHRoZSBm
dXR1cmUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2FwZVBsdWdp
bi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwOgorICAgICAgICAod2Via2l0X3Rlc3RfcGx1Z2luX25l
d19pbnN0YW5jZSk6CisgICAgICAgICh3ZWJraXRfdGVzdF9wbHVnaW5fc2V0X3ZhbHVlKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwOgor
ICAgICAgICAoTlBQX05ldyk6CisgICAgICAgIChOUFBfU2V0VmFsdWUpOgorCiAyMDEwLTAzLTAx
ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4aW5n
IGJyb2tlbiBEUlQgb24gTGVvcGFyZC9UaWdlci4gU2Vjb25kIHRyeS4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRz
Y2FwZVBsdWdpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRz
Y2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IGNiMDEyNjcuLmE1MzJiNjUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBl
UGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvdW5peC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLmNwcApAQCAt
NTgsNiArNTgsNyBAQCB3ZWJraXRfdGVzdF9wbHVnaW5fbmV3X2luc3RhbmNlKE5QTUlNRVR5cGUg
LyptaW1ldHlwZSovLAogewogICAgIGlmIChicm93c2VyLT52ZXJzaW9uID49IDE0KSB7CiAgICAg
ICAgIFBsdWdpbk9iamVjdCogb2JqID0gKFBsdWdpbk9iamVjdCopYnJvd3Nlci0+Y3JlYXRlb2Jq
ZWN0KGluc3RhbmNlLCBnZXRQbHVnaW5DbGFzcygpKTsKKyAgICAgICAgaW5zdGFuY2UtPnBkYXRh
ID0gb2JqOwogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CiAgICAg
ICAgICAgICBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAib25zdHJlYW1sb2FkIikgPT0gMCAmJiAh
b2JqLT5vblN0cmVhbUxvYWQpCkBAIC04Niw3ICs4Nyw4IEBAIHdlYmtpdF90ZXN0X3BsdWdpbl9u
ZXdfaW5zdGFuY2UoTlBNSU1FVHlwZSAvKm1pbWV0eXBlKi8sCiAgICAgICAgICAgICBlbHNlIGlm
IChzdHJjYXNlY21wKGFyZ25baV0sICJ0ZXN0d2luZG93b3BlbiIpID09IDApCiAgICAgICAgICAg
ICAgICAgb2JqLT50ZXN0V2luZG93T3BlbiA9IFRSVUU7CiAgICAgICAgIH0KLSAgICAgICAgaW5z
dGFuY2UtPnBkYXRhID0gb2JqOworCisgICAgICAgIGJyb3dzZXItPmdldHZhbHVlKGluc3RhbmNl
LCBOUE5WcHJpdmF0ZU1vZGVCb29sLCAodm9pZCAqKSZvYmotPmNhY2hlZFByaXZhdGVCcm93c2lu
Z01vZGUpOwogICAgIH0KIAogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKQEAgLTI4Miw5ICsy
ODQsMTcgQEAgd2Via2l0X3Rlc3RfcGx1Z2luX2dldF92YWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1ZSkKIH0KIAogc3RhdGljIE5QRXJyb3IKLXdlYmtp
dF90ZXN0X3BsdWdpbl9zZXRfdmFsdWUoTlBQIC8qaW5zdGFuY2UqLywgTlBOVmFyaWFibGUgLyp2
YXJpYWJsZSovLCB2b2lkKiAvKnZhbHVlKi8pCit3ZWJraXRfdGVzdF9wbHVnaW5fc2V0X3ZhbHVl
KE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogewotICAg
IHJldHVybiBOUEVSUl9OT19FUlJPUjsKKyAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19j
YXN0PFBsdWdpbk9iamVjdCo+KGluc3RhbmNlLT5wZGF0YSk7CisKKyAgICBzd2l0Y2ggKHZhcmlh
YmxlKSB7CisgICAgICAgIGNhc2UgTlBOVnByaXZhdGVNb2RlQm9vbDoKKyAgICAgICAgICAgIG9i
ai0+Y2FjaGVkUHJpdmF0ZUJyb3dzaW5nTW9kZSA9ICooTlBCb29sKil2YWx1ZTsKKyAgICAgICAg
ICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIH0KIH0KIAogY2hhciAqCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21h
aW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdp
bi9tYWluLmNwcAppbmRleCAwOGEyZjZhLi4wOWU2ZjkzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAK
QEAgLTg5LDcgKzg5LDggQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwg
TlBQIGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKIHsKICAgICBpZiAoYnJv
d3Nlci0+dmVyc2lvbiA+PSAxNCkgewogICAgICAgICBQbHVnaW5PYmplY3QqIG9iaiA9IChQbHVn
aW5PYmplY3QqKWJyb3dzZXItPmNyZWF0ZW9iamVjdChpbnN0YW5jZSwgZ2V0UGx1Z2luQ2xhc3Mo
KSk7Ci0gICAgICAgIAorICAgICAgICBpbnN0YW5jZS0+cGRhdGEgPSBvYmo7CisKICAgICAgICAg
Zm9yIChpbnQxNiBpID0gMDsgaSA8IGFyZ2M7IGkrKykgewogICAgICAgICAgICAgaWYgKF9zdHJp
Y21wKGFyZ25baV0sICJvbnN0cmVhbWxvYWQiKSA9PSAwICYmICFvYmotPm9uU3RyZWFtTG9hZCkK
ICAgICAgICAgICAgICAgICBvYmotPm9uU3RyZWFtTG9hZCA9IF9zdHJkdXAoYXJndltpXSk7CkBA
IC0xMDgsOCArMTA5LDggQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwg
TlBQIGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKICAgICAgICAgICAgICAg
ZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgInRlc3R3aW5kb3dvcGVuIikgPT0gMCkKICAgICAg
ICAgICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0gVFJVRTsKICAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgaW5zdGFuY2UtPnBkYXRhID0gb2JqOworCisgICAgICAgIGJyb3dzZXItPmdl
dHZhbHVlKGluc3RhbmNlLCBOUE5WcHJpdmF0ZU1vZGVCb29sLCAodm9pZCAqKSZvYmotPmNhY2hl
ZFByaXZhdGVCcm93c2luZ01vZGUpOwogICAgIH0KIAogICAgIHJldHVybiBOUEVSUl9OT19FUlJP
UjsKQEAgLTIzOCw1ICsyMzksMTMgQEAgTlBFcnJvciBOUFBfR2V0VmFsdWUoTlBQIGluc3RhbmNl
LCBOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCiAKIE5QRXJyb3IgTlBQX1NldFZh
bHVlKE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQgKnZhbHVlKQogewot
ICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIFBsdWdpbk9iamVjdCogb2JqID0g
c3RhdGljX2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaW5zdGFuY2UtPnBkYXRhKTsKKworICAgIHN3aXRj
aCAodmFyaWFibGUpIHsKKyAgICAgICAgY2FzZSBOUE5WcHJpdmF0ZU1vZGVCb29sOgorICAgICAg
ICAgICAgb2JqLT5jYWNoZWRQcml2YXRlQnJvd3NpbmdNb2RlID0gKihOUEJvb2wqKXZhbHVlOwor
ICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgfQogfQotLSAKMS43LjAu
MS42MS5nZGMwNWQKCg==
</data>
<flag name="review"
          id="32777"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49832</attachid>
            <date>2010-03-02 12:51:08 -0800</date>
            <delta_ts>2010-03-02 13:01:15 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Bug-35576-WebKit-should-tell-plug-in-instances-when-.patch</filename>
            <type>text/plain</type>
            <size>13120</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">RnJvbSAxZmVlOTFlYmExZmM3NjI3NzkxNjNhNmE4MDIzYjZmZWU0MmE5MjNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFJvd2UgPG1yb3dlQGFwcGxlLmNvbT4KRGF0ZTogVHVl
LCAyIE1hciAyMDEwIDA0OjEzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQnVnIDM1NTc2OiBX
ZWJLaXQgc2hvdWxkIHRlbGwgcGx1Zy1pbiBpbnN0YW5jZXMgd2hlbiBwcml2YXRlIGJyb3dzaW5n
IHN0YXRlIGNoYW5nZXMKIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM1NTc2PgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKTm90aWZ5IHBsdWctaW4gaW5zdGFuY2VzIHdoZW4g
dGhlIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgY2hhbmdlcyB0byBtYXRjaCB0aGUgYmVoYXZpb3Ig
b2YgdGhlCk1hYyBwbHVnLWluIGNvZGUuCgoqIHBhZ2UvUGFnZS5jcHA6CihXZWJDb3JlOjpQYWdl
Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBXYWxrIHRoZSBmcmFtZSB0cmVlIGFuZCBu
b3RpZnkgZWFjaCBQbHVnaW5WaWV3IHRoYXQKdGhlIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgaGFz
IGNoYW5nZWQuCiogcGFnZS9QYWdlLmg6CiogcGFnZS9TZXR0aW5ncy5jcHA6CihXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6IE5vdGlmeSB0aGUgcGFnZSB0aGF0
IHRoZSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlCmhhcyBjaGFuZ2VkLgoqIHBsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CihXZWJDb3JlOjpQbHVnaW5WaWV3Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5n
ZWQpOiBOb3RpZnkgdGhlIHBsdWctaW4gaW5zdGFuY2Ugb2YgdGhlIG5ldyBwcml2YXRlCmJyb3dz
aW5nIHN0YXRlLgoqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgoKV2ViS2l0VG9vbHM6CgpUZXN0TmV0
c2NhcGVQbHVnaW4gaXMgYW5vdGhlciBiaXQgb2YgcGx1Zy1pbiBjb2RlIHdoZXJlIGNvcHktcGFz
dGUgd2FzIGhlYXZpbHkgdXNlZAp3aGVuIHBvcnRpbmcuICBVcGRhdGUgdGhlIFdpbmRvd3MgYW5k
IFVOSVggaW1wbGVtZW50YXRpb25zIG9mIE5QUF9OZXcgYW5kIE5QUF9TZXRWYWx1ZQp0byBwcm92
aWRlIHRoZSBleHBlY3RlZCBiZWhhdmlvciByZWxhdGVkIHRvIE5QTlZwcml2YXRlTW9kZUJvb2wu
ICBIb3BlZnVsbHkgdGhpcyBjb2RlCmR1cGxpY2F0aW9uIGNhbiBiZSBjbGVhbmVkIHVwIGluIHRo
ZSBmdXR1cmUuCgoqIER1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi5jcHA6Cih3ZWJraXRfdGVzdF9wbHVnaW5fbmV3X2luc3RhbmNlKToKKHdl
YmtpdF90ZXN0X3BsdWdpbl9zZXRfdmFsdWUpOgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0
c2NhcGVQbHVnaW4vbWFpbi5jcHA6CihOUFBfTmV3KToKKE5QUF9TZXRWYWx1ZSk6CgpMYXlvdXRU
ZXN0czoKCiogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFJlbW92ZSBwbHVnaW5zL3ByaXZhdGUtYnJv
d3NpbmctbW9kZS5odG1sIG5vdyB0aGF0IGl0IHBhc3Nlcy4KLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgLS0KIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiAr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGFnZS9QYWdl
LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKysrCiBXZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysr
KysrKysKIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTkgKysrKysrKysrKysrKysKIC4uLi91bml4L1Rlc3ROZXRzY2FwZVBsdWdpbi9U
ZXN0TmV0c2NhcGVQbHVnaW4uY3BwIHwgICAxNiArKysrKysrKystLQogLi4uL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgfCAgIDE3ICsrKysrKysrKy0tLQog
MTEgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmZTA0NTRlLi5kNGIyMmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTUgQEAKIAogICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBCdWcgMzU1NzY6IFdlYktpdCBz
aG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUg
Y2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNTU3Nj4KKworICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBSZW1vdmUgcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1v
ZGUuaHRtbCBub3cgdGhhdCBpdCBwYXNzZXMuCisKKzIwMTAtMDMtMDIgIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwog
ICAgICAgICBQYXJ0IG9mIEJ1ZyAzMDM0ODogSW1wbGVtZW50IHByaXZhdGUgbW9kZSBmb3IgcGx1
Zy1pbnMgb24gV2luZG93cwogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8zMDM0OD4gLyA8
cmRhcjovL3Byb2JsZW0vNzU2MjI2MT4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA1
MmY5OTE1Li41M2QzMDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtNjcxLDkgKzY3
MSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWlzc2luZy1m
aWxlLWV4Y2VwdGlvbi5odG1sCiBmYXN0L2RvbS9XaW5kb3cvc2xvdy11bmxvYWQtaGFuZGxlci5o
dG1sCiBmYXN0L2RvbS9XaW5kb3cvc2xvdy11bmxvYWQtaGFuZGxlci1vbmx5LWZyYW1lLWlzLXN0
b3BwZWQuaHRtbAogCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzAzNDg+Ci1wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCi0KICMgU2tpcCB0aGVz
ZSB0d28gZmFpbHVyZXMgSSBpbnRyb2R1Y2VkIHRoaXMgbW9ybmluZyB3aGlsZSBJIGV4cGxvcmUg
dGhlbS4KIGh0dHAvdGVzdHMvZ2xvYmFsaGlzdG9yeS9oaXN0b3J5LWRlbGVnYXRlLWJhc2ljLXZp
c2l0ZWQtbGlua3MuaHRtbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGQxNmJiNzEuLjBkNDk4NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjggQEAKIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBCdWcgMzU1NzY6IFdl
YktpdCBzaG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHByaXZhdGUgYnJvd3Npbmcg
c3RhdGUgY2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNTU3Nj4KKworICAg
ICAgICBOb3RpZnkgcGx1Zy1pbiBpbnN0YW5jZXMgd2hlbiB0aGUgcHJpdmF0ZSBicm93c2luZyBz
dGF0ZSBjaGFuZ2VzIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgICAgTWFjIHBs
dWctaW4gY29kZS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBXYWxrIHRoZSBmcmFtZSB0cmVl
IGFuZCBub3RpZnkgZWFjaCBQbHVnaW5WaWV3IHRoYXQKKyAgICAgICAgdGhlIHByaXZhdGUgYnJv
d3Npbmcgc3RhdGUgaGFzIGNoYW5nZWQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCk6IE5vdGlmeSB0aGUgcGFnZSB0aGF0IHRoZSBwcml2YXRlIGJy
b3dzaW5nIHN0YXRlCisgICAgICAgIGhhcyBjaGFuZ2VkLgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpwcml2YXRlQnJvd3Np
bmdTdGF0ZUNoYW5nZWQpOiBOb3RpZnkgdGhlIHBsdWctaW4gaW5zdGFuY2Ugb2YgdGhlIG5ldyBw
cml2YXRlCisgICAgICAgIGJyb3dzaW5nIHN0YXRlLgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2lu
Vmlldy5oOgorCisyMDEwLTAzLTAyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgUGFydCBvZiBCdWcg
MzAzNDg6IEltcGxlbWVudCBwcml2YXRlIG1vZGUgZm9yIHBsdWctaW5zIG9uIFdpbmRvd3MKICAg
ICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzAzNDg+IC8gPHJkYXI6Ly9wcm9ibGVtLzc1NjIy
NjE+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCBmZDIzNWE3Li5lODhmM2RiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAj
aW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1ZGUg
IlBsdWdpbkhhbHRlci5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcm9n
cmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgpAQCAtNzc1LDYgKzc3NiwzMiBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBQ
YWdlOjppbnNwZWN0b3JUaW1lbGluZUFnZW50KCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFBh
Z2U6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZCgpCit7CisgICAgYm9vbCBwcml2YXRlQnJv
d3NpbmdFbmFibGVkID0gbV9zZXR0aW5ncy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworCisg
ICAgVmVjdG9yPFJlZlB0cjxQbHVnaW5WaWV3PiwgMzI+IHBsdWdpblZpZXdzOworICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3
KCk7CisgICAgICAgIGlmICghdmlldykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBj
b25zdCBIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID4qIGNoaWxkcmVuID0gdmlldy0+Y2hpbGRyZW4o
KTsKKyAgICAgICAgQVNTRVJUKGNoaWxkcmVuKTsKKworICAgICAgICBIYXNoU2V0PFJlZlB0cjxX
aWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNoaWxkcmVuLT5lbmQoKTsKKyAgICAgICAg
Zm9yIChIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2hpbGRy
ZW4tPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgV2lkZ2V0KiB3aWRn
ZXQgPSAoKml0KS5nZXQoKTsKKyAgICAgICAgICAgIGlmICghd2lkZ2V0LT5pc1BsdWdpblZpZXco
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHBsdWdpblZpZXdzLmFw
cGVuZChzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lkZ2V0KSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBsdWdpblZpZXdzLnNpemUoKTsgaSsrKQor
ICAgICAgICBwbHVnaW5WaWV3c1tpXS0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpOworfQorCiB2b2lkIFBhZ2U6OnBsdWdpbkFsbG93ZWRSdW5UaW1l
Q2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fcGx1Z2luSGFsdGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMDRhNTQ1Yy4uMmE5MGNh
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC0xOTcsNiArMTk3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiAgICAgICAgIGNvbnN0IFN0cmluZyYg
dXNlclN0eWxlU2hlZXQoKSBjb25zdDsKIAorICAgICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0
YXRlQ2hhbmdlZCgpOworCiAgICAgICAgIHZvaWQgZGlkU3RhcnRQbHVnaW4oSGFsdGFibGVQbHVn
aW4qKTsKICAgICAgICAgdm9pZCBkaWRTdG9wUGx1Z2luKEhhbHRhYmxlUGx1Z2luKik7CiAgICAg
ICAgIHZvaWQgcGx1Z2luQWxsb3dlZFJ1blRpbWVDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA1
N2YzY2RkLi4yNzgzYmNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTI3Nyw3ICsyNzcsMTEgQEAgdm9pZCBT
ZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlUXVvdGEodW5zaWduZWQgbG9jYWxTdG9yYWdlUXVvdGEp
CiAKIHZvaWQgU2V0dGluZ3M6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQogeworICAgIGlmIChtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgPT0g
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkID0gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKKyAgICBtX3BhZ2UtPnBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZCgpOwogfQogCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wgamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA1YWMzZWM4Li5m
MTNhMmQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMzczLDQgKzEzNzMsMTkgQEAgTlBF
cnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFs
dWUpCiAgICAgfQogfQogCit2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCit7CisgICAgTlBQX1NldFZhbHVlUHJv
Y1B0ciBzZXRWYWx1ZSA9IG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR2YWx1ZTsKKyAgICBp
ZiAoIXNldFZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBQbHVnaW5WaWV3OjpzZXRDdXJy
ZW50UGx1Z2luVmlldyh0aGlzKTsKKyAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BB
bGxMb2NrcyhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgc2V0Q2FsbGluZ1BsdWdp
bih0cnVlKTsKKyAgICBOUEJvb2wgdmFsdWUgPSBwcml2YXRlQnJvd3NpbmdFbmFibGVkOworICAg
IHNldFZhbHVlKG1faW5zdGFuY2UsIE5QTlZwcml2YXRlTW9kZUJvb2wsICZ2YWx1ZSk7CisgICAg
c2V0Q2FsbGluZ1BsdWdpbihmYWxzZSk7CisgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdp
blZpZXcoMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmlu
ZGV4IDY4OTY1OGUuLjIxYTI1ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTU2LDYgKzE1Niw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRQYXVz
ZWQoYm9vbCk7CiAKKyAgICAgICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9v
bCk7CisKICAgICAgICAgdm9pZCBkaXNjb25uZWN0U3RyZWFtKFBsdWdpblN0cmVhbSopOwogICAg
ICAgICB2b2lkIHN0cmVhbURpZEZpbmlzaExvYWRpbmcoUGx1Z2luU3RyZWFtKiBzdHJlYW0pIHsg
ZGlzY29ubmVjdFN0cmVhbShzdHJlYW0pOyB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBlMjBjYjQwLi5jYmQzMGM3IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMtMDIgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
dWcgMzU1NzY6IFdlYktpdCBzaG91bGQgdGVsbCBwbHVnLWluIGluc3RhbmNlcyB3aGVuIHByaXZh
dGUgYnJvd3Npbmcgc3RhdGUgY2hhbmdlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8z
NTU3Nj4KKworICAgICAgICBUZXN0TmV0c2NhcGVQbHVnaW4gaXMgYW5vdGhlciBiaXQgb2YgcGx1
Zy1pbiBjb2RlIHdoZXJlIGNvcHktcGFzdGUgd2FzIGhlYXZpbHkgdXNlZAorICAgICAgICB3aGVu
IHBvcnRpbmcuICBVcGRhdGUgdGhlIFdpbmRvd3MgYW5kIFVOSVggaW1wbGVtZW50YXRpb25zIG9m
IE5QUF9OZXcgYW5kIE5QUF9TZXRWYWx1ZQorICAgICAgICB0byBwcm92aWRlIHRoZSBleHBlY3Rl
ZCBiZWhhdmlvciByZWxhdGVkIHRvIE5QTlZwcml2YXRlTW9kZUJvb2wuICBIb3BlZnVsbHkgdGhp
cyBjb2RlCisgICAgICAgIGR1cGxpY2F0aW9uIGNhbiBiZSBjbGVhbmVkIHVwIGluIHRoZSBmdXR1
cmUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2FwZVBsdWdpbi9U
ZXN0TmV0c2NhcGVQbHVnaW4uY3BwOgorICAgICAgICAod2Via2l0X3Rlc3RfcGx1Z2luX25ld19p
bnN0YW5jZSk6CisgICAgICAgICh3ZWJraXRfdGVzdF9wbHVnaW5fc2V0X3ZhbHVlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwOgorICAg
ICAgICAoTlBQX05ldyk6CisgICAgICAgIChOUFBfU2V0VmFsdWUpOgorCiAyMDEwLTAzLTAxICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4aW5nIGJy
b2tlbiBEUlQgb24gTGVvcGFyZC9UaWdlci4gU2Vjb25kIHRyeS4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2Fw
ZVBsdWdpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2Fw
ZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IGNiMDEyNjcuLmE1MzJiNjUgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1
Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvdW5peC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLmNwcApAQCAtNTgs
NiArNTgsNyBAQCB3ZWJraXRfdGVzdF9wbHVnaW5fbmV3X2luc3RhbmNlKE5QTUlNRVR5cGUgLypt
aW1ldHlwZSovLAogewogICAgIGlmIChicm93c2VyLT52ZXJzaW9uID49IDE0KSB7CiAgICAgICAg
IFBsdWdpbk9iamVjdCogb2JqID0gKFBsdWdpbk9iamVjdCopYnJvd3Nlci0+Y3JlYXRlb2JqZWN0
KGluc3RhbmNlLCBnZXRQbHVnaW5DbGFzcygpKTsKKyAgICAgICAgaW5zdGFuY2UtPnBkYXRhID0g
b2JqOwogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CiAgICAgICAg
ICAgICBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAib25zdHJlYW1sb2FkIikgPT0gMCAmJiAhb2Jq
LT5vblN0cmVhbUxvYWQpCkBAIC04Niw3ICs4Nyw4IEBAIHdlYmtpdF90ZXN0X3BsdWdpbl9uZXdf
aW5zdGFuY2UoTlBNSU1FVHlwZSAvKm1pbWV0eXBlKi8sCiAgICAgICAgICAgICBlbHNlIGlmIChz
dHJjYXNlY21wKGFyZ25baV0sICJ0ZXN0d2luZG93b3BlbiIpID09IDApCiAgICAgICAgICAgICAg
ICAgb2JqLT50ZXN0V2luZG93T3BlbiA9IFRSVUU7CiAgICAgICAgIH0KLSAgICAgICAgaW5zdGFu
Y2UtPnBkYXRhID0gb2JqOworCisgICAgICAgIGJyb3dzZXItPmdldHZhbHVlKGluc3RhbmNlLCBO
UE5WcHJpdmF0ZU1vZGVCb29sLCAodm9pZCAqKSZvYmotPmNhY2hlZFByaXZhdGVCcm93c2luZ01v
ZGUpOwogICAgIH0KIAogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKQEAgLTI4Miw5ICsyODQs
MTcgQEAgd2Via2l0X3Rlc3RfcGx1Z2luX2dldF92YWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZhcmlh
YmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1ZSkKIH0KIAogc3RhdGljIE5QRXJyb3IKLXdlYmtpdF90
ZXN0X3BsdWdpbl9zZXRfdmFsdWUoTlBQIC8qaW5zdGFuY2UqLywgTlBOVmFyaWFibGUgLyp2YXJp
YWJsZSovLCB2b2lkKiAvKnZhbHVlKi8pCit3ZWJraXRfdGVzdF9wbHVnaW5fc2V0X3ZhbHVlKE5Q
UCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogewotICAgIHJl
dHVybiBOUEVSUl9OT19FUlJPUjsKKyAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19jYXN0
PFBsdWdpbk9iamVjdCo+KGluc3RhbmNlLT5wZGF0YSk7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxl
KSB7CisgICAgICAgIGNhc2UgTlBOVnByaXZhdGVNb2RlQm9vbDoKKyAgICAgICAgICAgIG9iai0+
Y2FjaGVkUHJpdmF0ZUJyb3dzaW5nTW9kZSA9ICooTlBCb29sKil2YWx1ZTsKKyAgICAgICAgICAg
IHJldHVybiBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
dHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIH0KIH0KIAogY2hhciAqCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4u
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9t
YWluLmNwcAppbmRleCAwOGEyZjZhLi4wOWU2ZjkzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKQEAg
LTg5LDcgKzg5LDggQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQ
IGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKIHsKICAgICBpZiAoYnJvd3Nl
ci0+dmVyc2lvbiA+PSAxNCkgewogICAgICAgICBQbHVnaW5PYmplY3QqIG9iaiA9IChQbHVnaW5P
YmplY3QqKWJyb3dzZXItPmNyZWF0ZW9iamVjdChpbnN0YW5jZSwgZ2V0UGx1Z2luQ2xhc3MoKSk7
Ci0gICAgICAgIAorICAgICAgICBpbnN0YW5jZS0+cGRhdGEgPSBvYmo7CisKICAgICAgICAgZm9y
IChpbnQxNiBpID0gMDsgaSA8IGFyZ2M7IGkrKykgewogICAgICAgICAgICAgaWYgKF9zdHJpY21w
KGFyZ25baV0sICJvbnN0cmVhbWxvYWQiKSA9PSAwICYmICFvYmotPm9uU3RyZWFtTG9hZCkKICAg
ICAgICAgICAgICAgICBvYmotPm9uU3RyZWFtTG9hZCA9IF9zdHJkdXAoYXJndltpXSk7CkBAIC0x
MDgsOCArMTA5LDggQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQ
IGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKICAgICAgICAgICAgICAgZWxz
ZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgInRlc3R3aW5kb3dvcGVuIikgPT0gMCkKICAgICAgICAg
ICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0gVFJVRTsKICAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgaW5zdGFuY2UtPnBkYXRhID0gb2JqOworCisgICAgICAgIGJyb3dzZXItPmdldHZh
bHVlKGluc3RhbmNlLCBOUE5WcHJpdmF0ZU1vZGVCb29sLCAodm9pZCAqKSZvYmotPmNhY2hlZFBy
aXZhdGVCcm93c2luZ01vZGUpOwogICAgIH0KIAogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsK
QEAgLTIzOCw1ICsyMzksMTMgQEAgTlBFcnJvciBOUFBfR2V0VmFsdWUoTlBQIGluc3RhbmNlLCBO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCiAKIE5QRXJyb3IgTlBQX1NldFZhbHVl
KE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQgKnZhbHVlKQogewotICAg
IHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIFBsdWdpbk9iamVjdCogb2JqID0gc3Rh
dGljX2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaW5zdGFuY2UtPnBkYXRhKTsKKworICAgIHN3aXRjaCAo
dmFyaWFibGUpIHsKKyAgICAgICAgY2FzZSBOUE5WcHJpdmF0ZU1vZGVCb29sOgorICAgICAgICAg
ICAgb2JqLT5jYWNoZWRQcml2YXRlQnJvd3NpbmdNb2RlID0gKihOUEJvb2wqKXZhbHVlOworICAg
ICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgfQogfQotLSAKMS43LjAuMS42
MS5nZGMwNWQKCg==
</data>
<flag name="review"
          id="32814"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>