<?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>84445</bug_id>
          
          <creation_ts>2012-04-20 06:26:05 -0700</creation_ts>
          <short_desc>[Qt][WK2] Minibrowser&apos;s progress bar should reset when WebProcess crashes while loading.</short_desc>
          <delta_ts>2012-05-02 03:00:01 -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>WebKit Qt</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606540</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-20 06:26:05 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606547</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-20 06:36:53 -0700</bug_when>
    <thetext>also nobody resets m_loadStartedSignalSent, so even if the page finished loading, a new loadfailed is emitted, when WebProcess crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606549</commentid>
    <comment_count>2</comment_count>
      <attachid>138084</attachid>
    <who name="alan">zalan</who>
    <bug_when>2012-04-20 06:42:37 -0700</bug_when>
    <thetext>Created attachment 138084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606644</commentid>
    <comment_count>3</comment_count>
      <attachid>138084</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-04-20 09:39:48 -0700</bug_when>
    <thetext>Comment on attachment 138084
Patch

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

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:33
&gt; +using namespace WebKit;
&gt; +using namespace WebCore;

Humm we have to move all those non-api classes in the WebKit namespace at some point.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:59
&gt; +void QtWebPageLoadClient::resetLoadingStatusIfNeeded()

This method only does crash related logic, I think its logic could go directly in processDidCrash, or its name could be improved to reflect what it does.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:62
&gt; +    if (!isLoading())
&gt; +        return;

What was ensured by m_loadStartedSignalSent now has to be ensured by isLoading. Could you add asserts to LoadStarted,Failed,etc to check that it returns the right value at those points?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606658</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-20 09:58:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 138084 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138084&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:33
&gt; &gt; +using namespace WebKit;
&gt; &gt; +using namespace WebCore;
&gt; 
&gt; Humm we have to move all those non-api classes in the WebKit namespace at some point.

Yes and I just started doing it today. Pretty messy what we have atm, including &apos;using namespace WebKit&apos; in header files. 

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:59
&gt; &gt; +void QtWebPageLoadClient::resetLoadingStatusIfNeeded()
&gt; 
&gt; This method only does crash related logic, I think its logic could go directly in processDidCrash, or its name could be improved to reflect what it does.

I just moved it out from QQuickWebViewPrivate::processDidCrash, because it was pulling in some functionalities to QQuickWebViewPrivate which I think should stay in some loader related class. WebLoaderClients also have the processDidCrash() callback, but apparently they will be removed at some point (at least that&apos;s what the related comment in WebLoaderClient.h indicates) I&apos;d rather improve the naming, then moving the code back.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:62
&gt; &gt; +    if (!isLoading())
&gt; &gt; +        return;
&gt; 
&gt; What was ensured by m_loadStartedSignalSent now has to be ensured by isLoading. Could you add asserts to LoadStarted,Failed,etc to check that it returns the right value at those points?
I can surely do it, though since isLoading() is nothing but a query on the loading percentage, I think it is overly defensive. Checking on the load state callbacks vs. percentage callback is not port specific responsibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606661</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-20 10:00:51 -0700</bug_when>
    <thetext>and thanks for looking at it. I should have looked at git blame and cc you in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606890</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-04-20 14:14:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
Ok, cool

&gt; I can surely do it, though since isLoading() is nothing but a query on the loading percentage, I think it is overly defensive. Checking on the load state callbacks vs. percentage callback is not port specific responsibility.

Sure, it would just be to make sure that the loadingChanged, loading and loadProgress have synchronized states if anybody play with this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607193</commentid>
    <comment_count>7</comment_count>
      <attachid>138231</attachid>
    <who name="alan">zalan</who>
    <bug_when>2012-04-21 04:01:05 -0700</bug_when>
    <thetext>Created attachment 138231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607195</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-21 04:05:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; Ok, cool
&gt; 
&gt; &gt; I can surely do it, though since isLoading() is nothing but a query on the loading percentage, I think it is overly defensive. Checking on the load state callbacks vs. percentage callback is not port specific responsibility.
&gt; 
&gt; Sure, it would just be to make sure that the loadingChanged, loading and loadProgress have synchronized states if anybody play with this code.

I removed isLoading() as it was not really necessary. I see what you mean with the ASSERT, but I rather do it when we clear up this loading task responsibilities and add the assert there: see here bug 84527
Or if you dont feel comfortable landing code without those asserts, we can hold off this patch until after bug 84527 gets resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611550</commentid>
    <comment_count>9</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-04-27 08:58:15 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I removed isLoading() as it was not really necessary. I see what you mean with the ASSERT, but I rather do it when we clear up this loading task responsibilities and add the assert there: see here bug 84527
&gt; Or if you dont feel comfortable landing code without those asserts, we can hold off this patch until after bug 84527 gets resolved.

Well from what I meant the asserts should actually check the value of QQuickWebView::loading to make sure that it fits, so it&apos;s not related to isLoading. Ideally we should check that they are synchronized somewhere, I&apos;ll try to remember that you add them in the next patch :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611552</commentid>
    <comment_count>10</comment_count>
      <attachid>138231</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-04-27 08:59:56 -0700</bug_when>
    <thetext>Comment on attachment 138231
Patch

I didn&apos;t update committers.py yet, so the commit queue might complain if you use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614100</commentid>
    <comment_count>11</comment_count>
      <attachid>139769</attachid>
    <who name="alan">zalan</who>
    <bug_when>2012-05-02 01:54:49 -0700</bug_when>
    <thetext>Created attachment 139769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614136</commentid>
    <comment_count>12</comment_count>
      <attachid>139769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 02:59:45 -0700</bug_when>
    <thetext>Comment on attachment 139769
Patch

Clearing flags on attachment: 139769

Committed r115808: &lt;http://trac.webkit.org/changeset/115808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614137</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 03:00:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138084</attachid>
            <date>2012-04-20 06:42:37 -0700</date>
            <delta_ts>2012-04-21 04:00:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84445-20120420154235.patch</filename>
            <type>text/plain</type>
            <size>10559</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDc0NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA0LTIwICBaYWxhbiBC
dWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gTWluaWJyb3dz
ZXIncyBwcm9ncmVzcyBiYXIgc2hvdWxkIHJlc2V0IHdoZW4gV2ViUHJvY2VzcyBjcmFzaGVzIHdo
aWxlIGxvYWRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDQ0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByb2dyZXNzIHZhbHVlIG5lZWRzIHJlc2V0dGluZywgd2hlbiBXZWJQcm9jZXNzIGNyYXNo
ZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgY3Jhc2ggbG9naWMgZm9yIGxvYWRpbmcgdG8g
UXRXZWJQYWdlTG9hZENsaWVudC4gSXQKKyAgICAgICAgYWxzbyBzaW1wbGlmaWVzIHRoZSBjYWxs
YmFjayBmdW5jdGlvbiBuYW1lcyBpbiBRdFdlYlBhZ2VMb2FkQ2xpZW50LCBhcyB0aGV5CisgICAg
ICAgIGFsbCB2YWxpZCBvbmx5IGZvciBtYWluIGZyYW1lcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6
OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3BfcC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZUxv
YWRDbGllbnQ6OlF0V2ViUGFnZUxvYWRDbGllbnQpOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENs
aWVudDo6cmVzZXRMb2FkaW5nU3RhdHVzSWZOZWVkZWQpOgorICAgICAgICAoUXRXZWJQYWdlTG9h
ZENsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoUXRXZWJQYWdlTG9h
ZENsaWVudDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50Ojpk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVUaXRsZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2Fk
Q2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENs
aWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQpOgorICAgICAgICAoUXRXZWJQ
YWdlTG9hZENsaWVudDo6aXNMb2FkaW5nKToKKwogMjAxMi0wNC0xOSAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSWdub3JlIHJlc291
cmNlcyB3aGlsZSByZXBsYWNpbmcgY29udGVudCBpbiBXZWJLaXQyIEdUSysgQVBJCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAJ
KHJldmlzaW9uIDExNDcxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDYgQEAgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YQogICAgICwgbV91c2VEZWZhdWx0Q29udGVu
dEl0ZW1TaXplKHRydWUpCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIoZmFsc2UpCi0gICAgLCBtX2xvYWRTdGFy
dGVkU2lnbmFsU2VudChmYWxzZSkKICAgICAsIG1fZGlhbG9nQWN0aXZlKGZhbHNlKQogewogICAg
IHZpZXdwb3J0LT5zZXRDbGlwKHRydWUpOwpAQCAtMTgxLDE0ICsxODAsNiBAQCB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpfcV9vbkljb25DaGFuCiAgICAgc2V0SWNvbihpY29uVVJMKTsKIH0K
IAotdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlTG9hZGluZ1N0YXRlKFFXZWJM
b2FkUmVxdWVzdCogbG9hZFJlcXVlc3QpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotICAg
IEFTU0VSVChxLT5sb2FkaW5nKCkgPT0gKGxvYWRSZXF1ZXN0LT5zdGF0dXMoKSA9PSBRUXVpY2tX
ZWJWaWV3OjpMb2FkU3RhcnRlZFN0YXR1cykpOwotICAgIGVtaXQgcS0+bG9hZGluZ0NoYW5nZWQo
bG9hZFJlcXVlc3QpOwotICAgIG1fbG9hZFN0YXJ0ZWRTaWduYWxTZW50ID0gbG9hZFJlcXVlc3Qt
PnN0YXR1cygpID09IFFRdWlja1dlYlZpZXc6OkxvYWRTdGFydGVkU3RhdHVzOwotfQotCiB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoKQogewogICAg
IG5hdmlnYXRpb25IaXN0b3J5LT5kLT5yZXNldCgpOwpAQCAtMTk3LDExICsxODgsOSBAQCB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VCYWNrCiB2b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpwcm9jZXNzRGlkQ3Jhc2goKQogewogICAgIHBhZ2VWaWV3LT5ldmVudEhhbmRsZXIo
KS0+cmVzZXRHZXN0dXJlUmVjb2duaXplcnMoKTsKKyAgICBwYWdlTG9hZENsaWVudC0+cmVzZXRM
b2FkaW5nU3RhdHVzSWZOZWVkZWQoKTsKKwogICAgIFFVcmwgdXJsKEtVUkwoV2ViQ29yZTo6UGFy
c2VkVVJMU3RyaW5nLCB3ZWJQYWdlUHJveHktPnVybEF0UHJvY2Vzc0V4aXQoKSkpOwotICAgIGlm
IChtX2xvYWRTdGFydGVkU2lnbmFsU2VudCkgewotICAgICAgICBRV2ViTG9hZFJlcXVlc3QgbG9h
ZFJlcXVlc3QodXJsLCBRUXVpY2tXZWJWaWV3OjpMb2FkRmFpbGVkU3RhdHVzLCBRTGF0aW4xU3Ry
aW5nKCJUaGUgd2ViIHByb2Nlc3MgY3Jhc2hlZC4iKSwgUVF1aWNrV2ViVmlldzo6SW50ZXJuYWxF
cnJvckRvbWFpbiwgMCk7Ci0gICAgICAgIGRpZENoYW5nZUxvYWRpbmdTdGF0ZSgmbG9hZFJlcXVl
c3QpOwotICAgIH0KICAgICBxV2FybmluZygiV0FSTklORzogVGhlIHdlYiBwcm9jZXNzIGV4cGVy
aWVuY2VkIGEgY3Jhc2ggb24gJyVzJy4iLCBxUHJpbnRhYmxlKHVybC50b1N0cmluZyhRVXJsOjpS
ZW1vdmVVc2VySW5mbykpKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAkocmV2aXNpb24gMTE0NzE1KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjYsNyArMTY2LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91c2VE
ZWZhdWx0Q29udGVudEl0ZW1TaXplOwogICAgIGJvb2wgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJs
ZWQ7CiAgICAgYm9vbCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVyOwotICAgIGJvb2wgbV9sb2Fk
U3RhcnRlZFNpZ25hbFNlbnQ7CiAgICAgYm9vbCBtX2RpYWxvZ0FjdGl2ZTsKICAgICBRVXJsIG1f
aWNvblVSTDsKICAgICBRVXJsIG1fZGVmZXJlZFVybFRvTG9hZDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAJKHJldmlz
aW9uIDExNDcxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2Fk
Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDE2IEBACiAjaW5jbHVkZSAi
cXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKICNpbmNs
dWRlICJxd2VibG9hZHJlcXVlc3RfcC5oIgorI2luY2x1ZGUgPEtVUkwuaD4KICNpbmNsdWRlIDxX
S0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViUGFnZVByb3h5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUXRXZWJQYWdlTG9hZENsaWVudDo6
UXRXZWJQYWdlTG9hZENsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmlldyogd2Vi
VmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQorICAgICwgbV93ZWJQYWdlUHJveHkodG9J
bXBsKHBhZ2VSZWYpKQogICAgICwgbV9sb2FkUHJvZ3Jlc3MoMCkKIHsKICAgICBXS1BhZ2VMb2Fk
ZXJDbGllbnQgbG9hZENsaWVudDsKQEAgLTUwLDEzICs1NiwyNSBAQCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpRdFdlYlBhZ2VMb2FkQ2xpZW50CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChw
YWdlUmVmLCAmbG9hZENsaWVudCk7CiB9CiAKLXZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCit2b2lkIFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OnJlc2V0TG9hZGluZ1N0YXR1c0lmTmVlZGVkKCkKK3sKKyAgICBpZiAo
IWlzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBRVXJsIHVybChLVVJMKFdlYkNv
cmU6OlBhcnNlZFVSTFN0cmluZywgbV93ZWJQYWdlUHJveHktPnVybEF0UHJvY2Vzc0V4aXQoKSkp
OworICAgIFFXZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVzdCh1cmwsIFFRdWlja1dlYlZpZXc6Okxv
YWRGYWlsZWRTdGF0dXMsIFFMYXRpbjFTdHJpbmcoIlRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVkLiIp
LCBRUXVpY2tXZWJWaWV3OjpJbnRlcm5hbEVycm9yRG9tYWluLCAwKTsKKworICAgIGVtaXQgbV93
ZWJWaWV3LT5sb2FkaW5nQ2hhbmdlZCgmbG9hZFJlcXVlc3QpOworICAgIHNldExvYWRQcm9ncmVz
cygxMDApOworfQorCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBRV2ViTG9hZFJlcXVlc3QgbG9hZFJlcXVl
c3QodXJsLCBRUXVpY2tXZWJWaWV3OjpMb2FkU3RhcnRlZFN0YXR1cyk7Ci0gICAgbV93ZWJWaWV3
LT5kX2Z1bmMoKS0+ZGlkQ2hhbmdlTG9hZGluZ1N0YXRlKCZsb2FkUmVxdWVzdCk7CisgICAgZW1p
dCBtX3dlYlZpZXctPmxvYWRpbmdDaGFuZ2VkKCZsb2FkUmVxdWVzdCk7CiB9CiAKLXZvaWQgUXRX
ZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKCkKK3ZvaWQgUXRXZWJQYWdl
TG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgZW1pdCBtX3dlYlZpZXctPm5hdmln
YXRpb25IaXN0b3J5Q2hhbmdlZCgpOwogICAgIGVtaXQgbV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7
CkBAIC02NCwxOCArODIsMTggQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRM
b2FkRgogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWREaWRDb21taXQoKTsKIH0KIAotdm9p
ZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUo
KQordm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKCkK
IHsKICAgICBlbWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3RvcnlDaGFuZ2VkKCk7CiAgICAg
ZW1pdCBtX3dlYlZpZXctPnVybENoYW5nZWQoKTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSgpCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVUaXRsZSgpCiB7CiAgICAgZW1pdCBtX3dlYlZpZXctPnRpdGxlQ2hhbmdlZCgp
OwogfQogCi12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKCkKK3ZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0KCkKIHsKICAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5kaWRGaW5p
c2hGaXJzdE5vbkVtcHR5TGF5b3V0KCk7CiB9CkBAIC0xMjMsNyArMTQxLDcgQEAgdm9pZCBRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3ZpcwogICAgIFdlYkZyYW1lUHJveHkqIHdrZnJh
bWUgPSB0b0ltcGwoZnJhbWUpOwogICAgIFFTdHJpbmcgdXJsU3RyKHdrZnJhbWUtPnByb3Zpc2lv
bmFsVVJMKCkpOwogICAgIFFVcmwgcVVybCA9IHVybFN0cjsKLSAgICB0b1F0V2ViUGFnZUxvYWRD
bGllbnQoY2xpZW50SW5mbyktPmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUocVVybCk7
CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRTdGFydFByb3Zpc2lv
bmFsTG9hZChxVXJsKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBA
IC0xMzcsNyArMTU1LDcgQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2Fk
RgogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJu
OwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKCk7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRDb21t
aXRMb2FkKCk7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQpAQCAtMTU0LDE2ICsxNzIsMTggQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRGYWlsTG9hZFdpdAogICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZv
KS0+ZGlzcGF0Y2hMb2FkRmFpbGVkKGVycm9yKTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBRdFdlYlBhZ2VMb2Fk
Q2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICB0b1F0V2ViUGFnZUxv
YWRDbGllbnQoY2xpZW50SW5mbyktPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSgp
OworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbigpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJ
c01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKLSAgICB0b1F0V2ViUGFnZUxvYWRD
bGllbnQoY2xpZW50SW5mbyktPmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKCk7CisgICAgdG9RdFdl
YlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRSZWNlaXZlVGl0bGUoKTsKIH0KIAogdm9p
ZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb2dyZXNzKFdLUGFnZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKQEAgLTE4Nyw3ICsyMDcsNyBAQCB2b2lkIFF0V2ViUGFnZUxvYWRD
bGllbnQ6OmRpZEZpcnN0VmlzdWFsCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJh
bWUpKQogICAgICAgICByZXR1cm47Ci0gICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudElu
Zm8pLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSgpOworICAgIHRvUXRX
ZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0KCk7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXS0FycmF5UmVmLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViUGFnZUxvYWRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oCShyZXZpc2lvbiAxMTQ3MTUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCwyMiArMjgsMjkgQEAKIAogY2xhc3MgUVF1aWNrV2ViVmlldzsKIAorbmFtZXNw
YWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlUHJveHk7Cit9CisKIGNsYXNzIFF0V2ViUGFnZUxv
YWRDbGllbnQgewogcHVibGljOgogICAgIFF0V2ViUGFnZUxvYWRDbGllbnQoV0tQYWdlUmVmLCBR
UXVpY2tXZWJWaWV3Kik7CiAKICAgICBpbnQgbG9hZFByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4g
bV9sb2FkUHJvZ3Jlc3M7IH0KKyAgICB2b2lkIHJlc2V0TG9hZGluZ1N0YXR1c0lmTmVlZGVkKCk7
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNv
bnN0IFFVcmwmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSgpOwotICAgIHZvaWQg
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSgpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUoKTsKLSAgICB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCgpOworICAgIGJv
b2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJvZ3Jlc3MgJiYgbV9sb2FkUHJv
Z3Jlc3MgPCAxMDA7IH0KIAorICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWQoY29uc3Qg
UVVybCYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOworICAgIHZvaWQgZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbigpOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlKCk7CisgICAgdm9pZCBk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKTsKKyAgICB2b2lkIGRpZENoYW5nZUJhY2tG
b3J3YXJkTGlzdCgpOwogICAgIHZvaWQgZGlzcGF0Y2hMb2FkU3VjY2VlZGVkKCk7CiAgICAgdm9p
ZCBkaXNwYXRjaExvYWRGYWlsZWQoV0tFcnJvclJlZik7CisKICAgICB2b2lkIHNldExvYWRQcm9n
cmVzcyhpbnQpOwogCiAgICAgLy8gV0tQYWdlTG9hZENsaWVudCBjYWxsYmFja3MuCkBAIC02MSw2
ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRM
aXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXS0FycmF5UmVmLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIAogICAgIFFRdWlja1dlYlZpZXcqIG1fd2ViVmlldzsKKyAg
ICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogbV93ZWJQYWdlUHJveHk7CiAgICAgaW50IG1fbG9hZFBy
b2dyZXNzOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138231</attachid>
            <date>2012-04-21 04:01:05 -0700</date>
            <delta_ts>2012-05-02 01:54:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84445-20120421130103.patch</filename>
            <type>text/plain</type>
            <size>11219</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDg0MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTIxICBaYWxhbiBC
dWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gTWluaWJyb3dz
ZXIncyBwcm9ncmVzcyBiYXIgc2hvdWxkIHJlc2V0IHdoZW4gV2ViUHJvY2VzcyBjcmFzaGVzIHdo
aWxlIGxvYWRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDQ0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByb2dyZXNzIHZhbHVlIG5lZWRzIHJlc2V0dGluZywgd2hlbiBXZWJQcm9jZXNzIGNyYXNo
ZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgY3Jhc2ggbG9naWMgZm9yIGxvYWRpbmcgdG8g
UXRXZWJQYWdlTG9hZENsaWVudC4gSXQKKyAgICAgICAgYWxzbyBzaW1wbGlmaWVzIHRoZSBjYWxs
YmFjayBmdW5jdGlvbiBuYW1lcyBpbiBRdFdlYlBhZ2VMb2FkQ2xpZW50LCBhcyB0aGV5CisgICAg
ICAgIGFsbCB2YWxpZCBvbmx5IGZvciBtYWluIGZyYW1lcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6
OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0
ZTo6bG9hZERpZFN1Y2NlZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OlF0V2ViUGFnZUxvYWRDbGllbnQpOgorICAgICAgICAoUXRXZWJQYWdl
TG9hZENsaWVudDo6Y29tcGxldGVMb2FkV2hlblByb2Nlc3NEaWRDcmFzaElmTmVlZGVkKToKKyAg
ICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKyAg
ICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoUXRX
ZWJQYWdlTG9hZENsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbik6CisgICAgICAgIChR
dFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAoUXRXZWJQYWdl
TG9hZENsaWVudDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KToKKyAgICAgICAgKFF0
V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAg
ICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50
KToKKwogMjAxMi0wNC0yMCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSB0aGUgV2ViIEluc3BlY3RvciBiZSB0aGUgZmlyc3QgcmVzcG9uZGVyIHdo
ZW4gb3BlbmluZyBkb2NrZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAJKHJldmlzaW9uIDExNDcxNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5LDcgKzc5LDYgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YQogICAgICwgbV91c2VEZWZhdWx0Q29udGVudEl0ZW1TaXplKHRydWUpCiAgICAgLCBtX25hdmln
YXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZm
ZXIoZmFsc2UpCi0gICAgLCBtX2xvYWRTdGFydGVkU2lnbmFsU2VudChmYWxzZSkKICAgICAsIG1f
ZGlhbG9nQWN0aXZlKGZhbHNlKQogewogICAgIHZpZXdwb3J0LT5zZXRDbGlwKHRydWUpOwpAQCAt
MTgxLDE0ICsxODAsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vbkljb25DaGFu
CiAgICAgc2V0SWNvbihpY29uVVJMKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
ZGlkQ2hhbmdlTG9hZGluZ1N0YXRlKFFXZWJMb2FkUmVxdWVzdCogbG9hZFJlcXVlc3QpCi17Ci0g
ICAgUV9RKFFRdWlja1dlYlZpZXcpOwotICAgIEFTU0VSVChxLT5sb2FkaW5nKCkgPT0gKGxvYWRS
ZXF1ZXN0LT5zdGF0dXMoKSA9PSBRUXVpY2tXZWJWaWV3OjpMb2FkU3RhcnRlZFN0YXR1cykpOwot
ICAgIGVtaXQgcS0+bG9hZGluZ0NoYW5nZWQobG9hZFJlcXVlc3QpOwotICAgIG1fbG9hZFN0YXJ0
ZWRTaWduYWxTZW50ID0gbG9hZFJlcXVlc3QtPnN0YXR1cygpID09IFFRdWlja1dlYlZpZXc6Okxv
YWRTdGFydGVkU3RhdHVzOwotfQotCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFu
Z2VCYWNrRm9yd2FyZExpc3QoKQogewogICAgIG5hdmlnYXRpb25IaXN0b3J5LT5kLT5yZXNldCgp
OwpAQCAtMTk3LDExICsxODgsOSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFu
Z2VCYWNrCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpwcm9jZXNzRGlkQ3Jhc2goKQogewog
ICAgIHBhZ2VWaWV3LT5ldmVudEhhbmRsZXIoKS0+cmVzZXRHZXN0dXJlUmVjb2duaXplcnMoKTsK
KyAgICBwYWdlTG9hZENsaWVudC0+Y29tcGxldGVMb2FkV2hlblByb2Nlc3NEaWRDcmFzaElmTmVl
ZGVkKCk7CisKICAgICBRVXJsIHVybChLVVJMKFdlYkNvcmU6OlBhcnNlZFVSTFN0cmluZywgd2Vi
UGFnZVByb3h5LT51cmxBdFByb2Nlc3NFeGl0KCkpKTsKLSAgICBpZiAobV9sb2FkU3RhcnRlZFNp
Z25hbFNlbnQpIHsKLSAgICAgICAgUVdlYkxvYWRSZXF1ZXN0IGxvYWRSZXF1ZXN0KHVybCwgUVF1
aWNrV2ViVmlldzo6TG9hZEZhaWxlZFN0YXR1cywgUUxhdGluMVN0cmluZygiVGhlIHdlYiBwcm9j
ZXNzIGNyYXNoZWQuIiksIFFRdWlja1dlYlZpZXc6OkludGVybmFsRXJyb3JEb21haW4sIDApOwot
ICAgICAgICBkaWRDaGFuZ2VMb2FkaW5nU3RhdGUoJmxvYWRSZXF1ZXN0KTsKLSAgICB9CiAgICAg
cVdhcm5pbmcoIldBUk5JTkc6IFRoZSB3ZWIgcHJvY2VzcyBleHBlcmllbmNlZCBhIGNyYXNoIG9u
ICclcycuIiwgcVByaW50YWJsZSh1cmwudG9TdHJpbmcoUVVybDo6UmVtb3ZlVXNlckluZm8pKSk7
CiB9CiAKQEAgLTYwNyw3ICs1OTYsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2
YXRlOjpsb2FkCiAgICAgICAgIFFRdWlja1dlYlZpZXdQcml2YXRlOjpsb2FkRGlkU3VjY2VlZCgp
OwogICAgIGVsc2UKICAgICAgICAgbG9hZFN1Y2Nlc3NEaXNwYXRjaElzUGVuZGluZyA9IHRydWU7
Ci0KIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6bG9hZERpZENvbW1p
dCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCShyZXZpc2lvbiAxMTQ3MTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcg
Kzc3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlkQ29tbWl0KCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZp
ZXdwb3J0QXR0cmlidXRlcyYgYXR0cikgeyB9Ci0gICAgdm9pZCBkaWRDaGFuZ2VMb2FkaW5nU3Rh
dGUoUVdlYkxvYWRSZXF1ZXN0KiBsb2FkUmVxdWVzdCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNr
Rm9yd2FyZExpc3QoKTsKIAogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0xNjYsNyAr
MTY1LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91c2VEZWZhdWx0Q29udGVudEl0ZW1TaXpl
OwogICAgIGJvb2wgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgYm9vbCBtX3JlbmRl
clRvT2Zmc2NyZWVuQnVmZmVyOwotICAgIGJvb2wgbV9sb2FkU3RhcnRlZFNpZ25hbFNlbnQ7CiAg
ICAgYm9vbCBtX2RpYWxvZ0FjdGl2ZTsKICAgICBRVXJsIG1faWNvblVSTDsKICAgICBRVXJsIG1f
ZGVmZXJlZFVybFRvTG9hZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VMb2FkQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAJKHJldmlzaW9uIDExNDcxNSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTAgKzI1LDE2IEBACiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAj
aW5jbHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKICNpbmNsdWRlICJxd2VibG9hZHJlcXVlc3Rf
cC5oIgorI2luY2x1ZGUgPEtVUkwuaD4KICNpbmNsdWRlIDxXS0ZyYW1lLmg+CisjaW5jbHVkZSA8
V2ViUGFnZVByb3h5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogUXRXZWJQYWdlTG9hZENsaWVudDo6UXRXZWJQYWdlTG9hZENsaWVudChX
S1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmlldyogd2ViVmlldykKICAgICA6IG1fd2ViVmll
dyh3ZWJWaWV3KQorICAgICwgbV93ZWJQYWdlUHJveHkodG9JbXBsKHBhZ2VSZWYpKQogICAgICwg
bV9sb2FkUHJvZ3Jlc3MoMCkKIHsKICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZENsaWVudDsK
QEAgLTUwLDEzICs1NiwyNiBAQCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpRdFdlYlBhZ2VMb2FkQ2xp
ZW50CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmLCAmbG9hZENsaWVudCk7
CiB9CiAKLXZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmNvbXBs
ZXRlTG9hZFdoZW5Qcm9jZXNzRGlkQ3Jhc2hJZk5lZWRlZCgpCit7CisgICAgLy8gQ2hlY2sgaWYg
bG9hZGluZyB3YXMgb25nb2luZywgd2hlbiBwcm9jZXNzIGNyYXNoZWQuCisgICAgaWYgKCFtX2xv
YWRQcm9ncmVzcyB8fCBtX2xvYWRQcm9ncmVzcyA9PSAxMDApCisgICAgICAgIHJldHVybjsKKwor
ICAgIFFVcmwgdXJsKEtVUkwoV2ViQ29yZTo6UGFyc2VkVVJMU3RyaW5nLCBtX3dlYlBhZ2VQcm94
eS0+dXJsQXRQcm9jZXNzRXhpdCgpKSk7CisgICAgUVdlYkxvYWRSZXF1ZXN0IGxvYWRSZXF1ZXN0
KHVybCwgUVF1aWNrV2ViVmlldzo6TG9hZEZhaWxlZFN0YXR1cywgUUxhdGluMVN0cmluZygiVGhl
IHdlYiBwcm9jZXNzIGNyYXNoZWQuIiksIFFRdWlja1dlYlZpZXc6OkludGVybmFsRXJyb3JEb21h
aW4sIDApOworCisgICAgZW1pdCBtX3dlYlZpZXctPmxvYWRpbmdDaGFuZ2VkKCZsb2FkUmVxdWVz
dCk7CisgICAgc2V0TG9hZFByb2dyZXNzKDEwMCk7Cit9CisKK3ZvaWQgUXRXZWJQYWdlTG9hZENs
aWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQoY29uc3QgUVVybCYgdXJsKQogewogICAgIFFX
ZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVzdCh1cmwsIFFRdWlja1dlYlZpZXc6OkxvYWRTdGFydGVk
U3RhdHVzKTsKLSAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5kaWRDaGFuZ2VMb2FkaW5nU3RhdGUo
JmxvYWRSZXF1ZXN0KTsKKyAgICBlbWl0IG1fd2ViVmlldy0+bG9hZGluZ0NoYW5nZWQoJmxvYWRS
ZXF1ZXN0KTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUoKQordm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkKCkKIHsKICAg
ICBlbWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3RvcnlDaGFuZ2VkKCk7CiAgICAgZW1pdCBt
X3dlYlZpZXctPnVybENoYW5nZWQoKTsKQEAgLTY0LDE4ICs4MywxOCBAQCB2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGCiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMoKS0+bG9h
ZERpZENvbW1pdCgpOwogfQogCi12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZSgpCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb24oKQogewogICAgIGVtaXQgbV93ZWJWaWV3LT5uYXZpZ2F0aW9u
SGlzdG9yeUNoYW5nZWQoKTsKICAgICBlbWl0IG1fd2ViVmlldy0+dXJsQ2hhbmdlZCgpOwogfQog
Ci12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKCkKK3Zv
aWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlKCkKIHsKICAgICBlbWl0IG1f
d2ViVmlldy0+dGl0bGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoKQordm9pZCBRdFdlYlBhZ2VM
b2FkQ2xpZW50OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKQogewogICAgIG1fd2Vi
Vmlldy0+ZF9mdW5jKCktPmRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKTsKIH0KQEAgLTEy
Myw3ICsxNDIsNyBAQCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzCiAg
ICAgV2ViRnJhbWVQcm94eSogd2tmcmFtZSA9IHRvSW1wbChmcmFtZSk7CiAgICAgUVN0cmluZyB1
cmxTdHIod2tmcmFtZS0+cHJvdmlzaW9uYWxVUkwoKSk7CiAgICAgUVVybCBxVXJsID0gdXJsU3Ry
OwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZShxVXJsKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50
SW5mbyktPmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKHFVcmwpOwogfQogCiB2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTEzNyw3ICsxNTYsNyBAQCB2b2lkIFF0V2ViUGFnZUxv
YWRDbGllbnQ6OmRpZENvbW1pdExvYWRGCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUo
ZnJhbWUpKQogICAgICAgICByZXR1cm47Ci0gICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVu
dEluZm8pLT5kaWRDb21taXRMb2FkRm9yRnJhbWUoKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGll
bnQoY2xpZW50SW5mbyktPmRpZENvbW1pdExvYWQoKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2Fk
Q2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0xNTQsMTYgKzE3MywxOCBA
QCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkV2l0CiAgICAgdG9RdFdlYlBh
Z2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQoZXJyb3IpOwogfQog
Ci12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JG
cmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdh
dGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvckZyYW1lKCk7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJh
bWUpKQorICAgICAgICByZXR1cm47CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudElu
Zm8pLT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKCk7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9h
ZENsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0
aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJu
OwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUoKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpZFJl
Y2VpdmVUaXRsZSgpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJv
Z3Jlc3MoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMTg3LDcgKzIwOCw3
IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmlyc3RWaXN1YWwKIHsKICAgICBpZiAo
IVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKLSAgICB0b1F0V2Vi
UGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckZyYW1lKCk7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYsIFdLQXJyYXlSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmgJKHJl
dmlzaW9uIDExNDcxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VM
b2FkQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDIyICsyOCwyNyBAQAogCiBjbGFzcyBR
UXVpY2tXZWJWaWV3OwogCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsK
K30KKwogY2xhc3MgUXRXZWJQYWdlTG9hZENsaWVudCB7CiBwdWJsaWM6CiAgICAgUXRXZWJQYWdl
TG9hZENsaWVudChXS1BhZ2VSZWYsIFFRdWlja1dlYlZpZXcqKTsKIAogICAgIGludCBsb2FkUHJv
Z3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX2xvYWRQcm9ncmVzczsgfQorICAgIHZvaWQgY29tcGxl
dGVMb2FkV2hlblByb2Nlc3NEaWRDcmFzaElmTmVlZGVkKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNvbnN0IFFVcmwmKTsKLSAgICB2b2lk
IGRpZENvbW1pdExvYWRGb3JGcmFtZSgpOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSgpOwotICAg
IHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoKTsKKyAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFFVcmwmKTsKKyAgICB2b2lkIGRpZENvbW1p
dExvYWQoKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb24oKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZSgpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoKTsKLQogICAgIHZvaWQg
ZGlzcGF0Y2hMb2FkU3VjY2VlZGVkKCk7CiAgICAgdm9pZCBkaXNwYXRjaExvYWRGYWlsZWQoV0tF
cnJvclJlZik7CisKICAgICB2b2lkIHNldExvYWRQcm9ncmVzcyhpbnQpOwogCiAgICAgLy8gV0tQ
YWdlTG9hZENsaWVudCBjYWxsYmFja3MuCkBAIC02MSw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmLCBXS0FycmF5UmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAog
ICAgIFFRdWlja1dlYlZpZXcqIG1fd2ViVmlldzsKKyAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSog
bV93ZWJQYWdlUHJveHk7CiAgICAgaW50IG1fbG9hZFByb2dyZXNzOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139769</attachid>
            <date>2012-05-02 01:54:49 -0700</date>
            <delta_ts>2012-05-02 02:59:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84445-20120502105447.patch</filename>
            <type>text/plain</type>
            <size>12399</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNTgwMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA1LTAyICBaYWxhbiBC
dWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gTWluaWJyb3dz
ZXIncyBwcm9ncmVzcyBiYXIgc2hvdWxkIHJlc2V0IHdoZW4gV2ViUHJvY2VzcyBjcmFzaGVzIHdo
aWxlIGxvYWRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDQ0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2VseW4gVHVyY290dGUuCisKKyAg
ICAgICAgUHJvZ3Jlc3MgdmFsdWUgbmVlZHMgcmVzZXR0aW5nLCB3aGVuIFdlYlByb2Nlc3MgY3Jh
c2hlcy4KKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBjcmFzaCBsb2dpYyBmb3IgbG9hZGluZyB0
byBRdFdlYlBhZ2VMb2FkQ2xpZW50LiBJdAorICAgICAgICBhbHNvIHNpbXBsaWZpZXMgdGhlIGNh
bGxiYWNrIGZ1bmN0aW9uIG5hbWVzIGluIFF0V2ViUGFnZUxvYWRDbGllbnQsIGFzIHRoZXkKKyAg
ICAgICAgYWxsIHZhbGlkIG9ubHkgZm9yIG1haW4gZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2
YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6cHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2
YXRlOjpsb2FkRGlkU3VjY2VlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpRdFdlYlBhZ2VMb2FkQ2xpZW50OjpRdFdlYlBhZ2VMb2FkQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6UXRXZWJQYWdlTG9hZENsaWVudDo6Y29tcGxldGVMb2FkV2hlblByb2Nlc3NEaWRD
cmFzaElmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlF0V2Vi
UGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktp
dDo6UXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29t
bWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpRdFdlYlBhZ2VMb2FkQ2xpZW50
OjpkaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYlBhZ2VMb2FkQ2xpZW50
OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYlBhZ2VM
b2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlTG9hZENsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFF0V2ViUGFnZUxv
YWRDbGllbnQpOgorCiAyMDEyLTA1LTAyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFFRdWlja1dlYlZpZXcgZG9lcyBub3QgYWxsb3cg
Zm9yIGlucHV0IGZyb20gdmlydHVhbCBrZXlib2FyZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCShyZXZpc2lvbiAxMTU3OTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEsNyArMTYxLDYgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFR
dWlja1dlYlZpZXdQcml2YQogICAgICwgbV91c2VEZWZhdWx0Q29udGVudEl0ZW1TaXplKHRydWUp
CiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVuZGVy
VG9PZmZzY3JlZW5CdWZmZXIoZmFsc2UpCi0gICAgLCBtX2xvYWRTdGFydGVkU2lnbmFsU2VudChm
YWxzZSkKICAgICAsIG1fZGlhbG9nQWN0aXZlKGZhbHNlKQogewogICAgIHZpZXdwb3J0LT5zZXRD
bGlwKHRydWUpOwpAQCAtMjY0LDE0ICsyNjMsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpfcV9vbkljb25DaGFuCiAgICAgc2V0SWNvbihpY29uVVJMKTsKIH0KIAotdm9pZCBRUXVpY2tX
ZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlTG9hZGluZ1N0YXRlKFFXZWJMb2FkUmVxdWVzdCogbG9h
ZFJlcXVlc3QpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotICAgIEFTU0VSVChxLT5sb2Fk
aW5nKCkgPT0gKGxvYWRSZXF1ZXN0LT5zdGF0dXMoKSA9PSBRUXVpY2tXZWJWaWV3OjpMb2FkU3Rh
cnRlZFN0YXR1cykpOwotICAgIGVtaXQgcS0+bG9hZGluZ0NoYW5nZWQobG9hZFJlcXVlc3QpOwot
ICAgIG1fbG9hZFN0YXJ0ZWRTaWduYWxTZW50ID0gbG9hZFJlcXVlc3QtPnN0YXR1cygpID09IFFR
dWlja1dlYlZpZXc6OkxvYWRTdGFydGVkU3RhdHVzOwotfQotCiB2b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoKQogewogICAgIG5hdmlnYXRpb25IaXN0
b3J5LT5kLT5yZXNldCgpOwpAQCAtMjgwLDExICsyNzEsOSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpkaWRDaGFuZ2VCYWNrCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpwcm9jZXNz
RGlkQ3Jhc2goKQogewogICAgIHBhZ2VWaWV3LT5ldmVudEhhbmRsZXIoKS0+cmVzZXRHZXN0dXJl
UmVjb2duaXplcnMoKTsKKyAgICBwYWdlTG9hZENsaWVudC0+Y29tcGxldGVMb2FkV2hlblByb2Nl
c3NEaWRDcmFzaElmTmVlZGVkKCk7CisKICAgICBRVXJsIHVybChLVVJMKFdlYkNvcmU6OlBhcnNl
ZFVSTFN0cmluZywgd2ViUGFnZVByb3h5LT51cmxBdFByb2Nlc3NFeGl0KCkpKTsKLSAgICBpZiAo
bV9sb2FkU3RhcnRlZFNpZ25hbFNlbnQpIHsKLSAgICAgICAgUVdlYkxvYWRSZXF1ZXN0IGxvYWRS
ZXF1ZXN0KHVybCwgUVF1aWNrV2ViVmlldzo6TG9hZEZhaWxlZFN0YXR1cywgUUxhdGluMVN0cmlu
ZygiVGhlIHdlYiBwcm9jZXNzIGNyYXNoZWQuIiksIFFRdWlja1dlYlZpZXc6OkludGVybmFsRXJy
b3JEb21haW4sIDApOwotICAgICAgICBkaWRDaGFuZ2VMb2FkaW5nU3RhdGUoJmxvYWRSZXF1ZXN0
KTsKLSAgICB9CiAgICAgcVdhcm5pbmcoIldBUk5JTkc6IFRoZSB3ZWIgcHJvY2VzcyBleHBlcmll
bmNlZCBhIGNyYXNoIG9uICclcycuIiwgcVByaW50YWJsZSh1cmwudG9TdHJpbmcoUVVybDo6UmVt
b3ZlVXNlckluZm8pKSk7CiB9CiAKQEAgLTcwMiw3ICs2OTEsNiBAQCB2b2lkIFFRdWlja1dlYlZp
ZXdGbGlja2FibGVQcml2YXRlOjpsb2FkCiAgICAgICAgIFFRdWlja1dlYlZpZXdQcml2YXRlOjps
b2FkRGlkU3VjY2VlZCgpOwogICAgIGVsc2UKICAgICAgICAgbG9hZFN1Y2Nlc3NEaXNwYXRjaElz
UGVuZGluZyA9IHRydWU7Ci0KIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0
ZTo6bG9hZERpZENvbW1pdCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcF9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCShyZXZpc2lvbiAxMTU3OTYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc4LDcgKzc4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlk
Q29tbWl0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlv
dXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikgeyB9Ci0gICAgdm9pZCBkaWRD
aGFuZ2VMb2FkaW5nU3RhdGUoUVdlYkxvYWRSZXF1ZXN0KiBsb2FkUmVxdWVzdCk7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoKTsKIAogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5
KCk7CkBAIC0xOTEsNyArMTkwLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91c2VEZWZhdWx0
Q29udGVudEl0ZW1TaXplOwogICAgIGJvb2wgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAg
ICAgYm9vbCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVyOwotICAgIGJvb2wgbV9sb2FkU3RhcnRl
ZFNpZ25hbFNlbnQ7CiAgICAgYm9vbCBtX2RpYWxvZ0FjdGl2ZTsKICAgICBRVXJsIG1faWNvblVS
TDsKICAgICBRVXJsIG1fZGVmZXJyZWRVcmxUb0xvYWQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCShyZXZpc2lvbiAx
MTU3OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEyICsyNiwxNyBAQAogI2luY2x1ZGUgInFxdWlj
a3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAi
cXdlYmxvYWRyZXF1ZXN0X3AuaCIKKyNpbmNsdWRlIDxLVVJMLmg+CiAjaW5jbHVkZSA8V0tGcmFt
ZS5oPgorI2luY2x1ZGUgPFdlYlBhZ2VQcm94eS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFF0V2ViUGFnZUxvYWRDbGllbnQ6OlF0V2ViUGFn
ZUxvYWRDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFRdWlja1dlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgOiBtX3dlYlZpZXcod2ViVmlldykKKyAgICAsIG1fd2ViUGFnZVByb3h5KHRvSW1wbChwYWdl
UmVmKSkKICAgICAsIG1fbG9hZFByb2dyZXNzKDApCiB7CiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50
IGxvYWRDbGllbnQ7CkBAIC01NCwzNyArNTksNTAgQEAgUXRXZWJQYWdlTG9hZENsaWVudDo6UXRX
ZWJQYWdlTG9hZENsaWVudAogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZVJlZiwg
JmxvYWRDbGllbnQpOwogfQogCi12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYgdXJsKQordm9pZCBRdFdlYlBhZ2VMb2Fk
Q2xpZW50Ojpjb21wbGV0ZUxvYWRXaGVuUHJvY2Vzc0RpZENyYXNoSWZOZWVkZWQoKQoreworICAg
IC8vIENoZWNrIGlmIGxvYWRpbmcgd2FzIG9uZ29pbmcsIHdoZW4gcHJvY2VzcyBjcmFzaGVkLgor
ICAgIGlmICghbV9sb2FkUHJvZ3Jlc3MgfHwgbV9sb2FkUHJvZ3Jlc3MgPT0gMTAwKQorICAgICAg
ICByZXR1cm47CisKKyAgICBRVXJsIHVybChLVVJMKFdlYkNvcmU6OlBhcnNlZFVSTFN0cmluZywg
bV93ZWJQYWdlUHJveHktPnVybEF0UHJvY2Vzc0V4aXQoKSkpOworICAgIFFXZWJMb2FkUmVxdWVz
dCBsb2FkUmVxdWVzdCh1cmwsIFFRdWlja1dlYlZpZXc6OkxvYWRGYWlsZWRTdGF0dXMsIFFMYXRp
bjFTdHJpbmcoIlRoZSB3ZWIgcHJvY2VzcyBjcmFzaGVkLiIpLCBRUXVpY2tXZWJWaWV3OjpJbnRl
cm5hbEVycm9yRG9tYWluLCAwKTsKKworICAgIGVtaXQgbV93ZWJWaWV3LT5sb2FkaW5nQ2hhbmdl
ZCgmbG9hZFJlcXVlc3QpOworICAgIHNldExvYWRQcm9ncmVzcygxMDApOworfQorCit2b2lkIFF0
V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFFVcmwmIHVy
bCkKIHsKICAgICBRV2ViTG9hZFJlcXVlc3QgbG9hZFJlcXVlc3QodXJsLCBRUXVpY2tXZWJWaWV3
OjpMb2FkU3RhcnRlZFN0YXR1cyk7CiAgICAgbV93ZWJWaWV3LT5lbWl0VXJsQ2hhbmdlSWZOZWVk
ZWQoKTsKLSAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5kaWRDaGFuZ2VMb2FkaW5nU3RhdGUoJmxv
YWRSZXF1ZXN0KTsKKyAgICBlbWl0IG1fd2ViVmlldy0+bG9hZGluZ0NoYW5nZWQoJmxvYWRSZXF1
ZXN0KTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCit2b2lkIFF0
V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZChjb25zdCBRVXJsJiB1cmwpCiB7CiAgICAgbV93ZWJWaWV3LT5lbWl0VXJsQ2hhbmdlSWZO
ZWVkZWQoKTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUoKQordm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkKCkKIHsKICAg
ICBlbWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3RvcnlDaGFuZ2VkKCk7CiAgICAgZW1pdCBt
X3dlYlZpZXctPnRpdGxlQ2hhbmdlZCgpOwogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWRE
aWRDb21taXQoKTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoKQordm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uKCkKIHsKICAgICBtX3dlYlZpZXctPmVtaXRVcmxDaGFuZ2VJZk5l
ZWRlZCgpOwogICAgIGVtaXQgbV93ZWJWaWV3LT5uYXZpZ2F0aW9uSGlzdG9yeUNoYW5nZWQoKTsK
IH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSgp
Cit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZSgpCiB7CiAgICAgZW1p
dCBtX3dlYlZpZXctPnRpdGxlQ2hhbmdlZCgpOwogfQogCi12b2lkIFF0V2ViUGFnZUxvYWRDbGll
bnQ6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKCkKK3ZvaWQgUXRXZWJQ
YWdlTG9hZENsaWVudDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KCkKIHsKICAgICBt
X3dlYlZpZXctPmRfZnVuYygpLT5kaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCk7CiB9CkBA
IC0xNDcsNyArMTY1LDcgQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3Zp
cwogICAgIFdlYkZyYW1lUHJveHkqIHdrZnJhbWUgPSB0b0ltcGwoZnJhbWUpOwogICAgIFFTdHJp
bmcgdXJsU3RyKHdrZnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkpOwogICAgIFFVcmwgcVVybCA9IHVy
bFN0cjsKLSAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUocVVybCk7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNs
aWVudEluZm8pLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChxVXJsKTsKIH0KIAogdm9pZCBRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKQEAgLTE1Nyw3ICsxNzUsNyBAQCB2b2lkIFF0V2ViUGFnZUxvYWRD
bGllbnQ6OmRpZFJlY2VpdmVTZXJ2CiAgICAgV2ViRnJhbWVQcm94eSogd2tmcmFtZSA9IHRvSW1w
bChmcmFtZSk7CiAgICAgUVN0cmluZyB1cmxTdHIod2tmcmFtZS0+cHJvdmlzaW9uYWxVUkwoKSk7
CiAgICAgUVVybCBxVXJsID0gdXJsU3RyOwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGll
bnRJbmZvKS0+ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUocVVybCk7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQocVVybCk7CiB9CiAKIHZvaWQgUXRX
ZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMTcyLDcgKzE5MCw3IEBAIHZvaWQgUXRXZWJQ
YWdlTG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZEYKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKLSAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQo
Y2xpZW50SW5mbyktPmRpZENvbW1pdExvYWRGb3JGcmFtZSgpOworICAgIHRvUXRXZWJQYWdlTG9h
ZENsaWVudChjbGllbnRJbmZvKS0+ZGlkQ29tbWl0TG9hZCgpOwogfQogCiB2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTE4OSwxNiArMjA3
LDE4IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbExvYWRXaXQKICAgICB0b1F0
V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZhaWxlZChmcmFtZSwg
ZXJyb3IpOwogfQogCi12b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKCk7CisgICAgaWYgKCFXS0ZyYW1lSXNN
YWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xp
ZW50KGNsaWVudEluZm8pLT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKCk7CiB9CiAKIHZvaWQg
UXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBX
S1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUoKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50
SW5mbyktPmRpZFJlY2VpdmVUaXRsZSgpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6
OmRpZFN0YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAt
MjIyLDcgKzI0Miw3IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmlyc3RWaXN1YWwK
IHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsK
LSAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckZyYW1lKCk7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVu
dEluZm8pLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKTsKIH0KIAogdm9pZCBRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmLCBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdLQXJyYXlSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2Fk
Q2xpZW50LmgJKHJldmlzaW9uIDExNTc5NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDIzICszMiwyNyBA
QCBjbGFzcyBRUXVpY2tXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2Vi
UGFnZVByb3h5OworCiBjbGFzcyBRdFdlYlBhZ2VMb2FkQ2xpZW50IHsKIHB1YmxpYzoKICAgICBR
dFdlYlBhZ2VMb2FkQ2xpZW50KFdLUGFnZVJlZiwgUVF1aWNrV2ViVmlldyopOwogCiAgICAgaW50
IGxvYWRQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZFByb2dyZXNzOyB9CisgICAgdm9p
ZCBjb21wbGV0ZUxvYWRXaGVuUHJvY2Vzc0RpZENyYXNoSWZOZWVkZWQoKTsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYpOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoY29uc3QgUVVybCYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKCk7Ci0gICAg
dm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKCk7Ci0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZSgpOworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWQoY29uc3Qg
UVVybCYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKGNvbnN0IFFVcmwmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKKyAgICB2b2lkIGRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb24oKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZSgpOwor
ICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KCk7CiAgICAgdm9pZCBkaWRD
aGFuZ2VCYWNrRm9yd2FyZExpc3QoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hMb2FkU3VjY2VlZGVk
KCk7CiAgICAgdm9pZCBkaXNwYXRjaExvYWRGYWlsZWQoV0tGcmFtZVJlZiwgV0tFcnJvclJlZik7
CisKICAgICB2b2lkIHNldExvYWRQcm9ncmVzcyhpbnQpOwogCiAgICAgLy8gV0tQYWdlTG9hZENs
aWVudCBjYWxsYmFja3MuCkBAIC02Nyw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZv
aWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmLCBXS0FycmF5UmVmLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogICAgIFFRdWlj
a1dlYlZpZXcqIG1fd2ViVmlldzsKKyAgICBXZWJQYWdlUHJveHkqIG1fd2ViUGFnZVByb3h5Owog
ICAgIGludCBtX2xvYWRQcm9ncmVzczsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>