<?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>59113</bug_id>
          
          <creation_ts>2011-04-21 10:26:55 -0700</creation_ts>
          <short_desc>XMLViewer breaks when scripts are disabled</short_desc>
          <delta_ts>2022-03-01 02:42:53 -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>WebCore Misc.</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="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>pfeldman</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390126</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-21 10:26:55 -0700</bug_when>
    <thetext>(Original report at http://crbug.com/78246)

XMLTreeViewer (and associated XMLViewer.js) breaks in interesting and different ways when Javascript is disabled.  In V8, none of XMLViewer.js runs, and we therefore crash at http://trac.webkit.org/browser/trunk/Source/WebCore/xml/XMLTreeViewer.cpp#L80 because the node wasn&apos;t added to the DOM by the script that didn&apos;t run.  In JSC, we appear to run the initial script but block events, and the load event is required to display the document properly.

abarth and I discussed this, and we think it might make sense to have some special rules for documents that are conceptually viewing source (HTMLViewSourceDocuments + documents using XMLTreeViewer).  These documents would be permitted to run scripts regardless of user settings, but would be placed in a unique SecurityOrigin.

I&apos;ll post a patch demonstrating the idea in a few minutes.

Thoughts/concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390133</commentid>
    <comment_count>1</comment_count>
      <attachid>90553</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-21 10:32:58 -0700</bug_when>
    <thetext>Created attachment 90553
Unique SecurityOrigins for view source documents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390201</commentid>
    <comment_count>2</comment_count>
      <attachid>90553</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-21 11:41:12 -0700</bug_when>
    <thetext>Comment on attachment 90553
Unique SecurityOrigins for view source documents

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

&gt; Source/WebCore/xml/XMLTreeViewer.cpp:74
&gt; +    m_document-&gt;setSecurityOrigin(uniqueOrigin.get());

This isn&apos;t right.  You should be using setForcedSandboxFlags on FrameLoader before creating the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391060</commentid>
    <comment_count>3</comment_count>
      <attachid>90760</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-22 14:25:25 -0700</bug_when>
    <thetext>Created attachment 90760
Temporary fix

This is a patch to ensure that we displaying something of the xml document when script is disabled.  We lose formatting and we strip the xml tags, but it&apos;s better than  crashing or only showing boilerplate.

I&apos;ll keep working on this, but I wanted to get something in before I lose the first half of next week to the contributor meeting :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391083</commentid>
    <comment_count>4</comment_count>
      <attachid>90760</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 14:41:12 -0700</bug_when>
    <thetext>Comment on attachment 90760
Temporary fix

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

&gt; Source/WebCore/xml/XMLTreeViewer.cpp:75
&gt; +    if (!m_document-&gt;frame()-&gt;script()-&gt;canExecuteScripts(NotAboutToExecuteScript))

Can frame() be null here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391091</commentid>
    <comment_count>5</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-22 14:48:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 90760 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=90760&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/XMLTreeViewer.cpp:75
&gt; &gt; +    if (!m_document-&gt;frame()-&gt;script()-&gt;canExecuteScripts(NotAboutToExecuteScript))
&gt; 
&gt; Can frame() be null here?

This appears to only be reachable from Document::finishParsing(), which is only called from places where there&apos;s a valid Frame, and I don&apos;t see anywhere that could blow away the Frame after finishParsing() is entered.

So I think the answer is &quot;No&quot;, but I&apos;m also confident that my manual code inspection doesn&apos;t constitute a proof :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391361</commentid>
    <comment_count>6</comment_count>
      <attachid>90760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-22 20:20:18 -0700</bug_when>
    <thetext>Comment on attachment 90760
Temporary fix

Clearing flags on attachment: 90760

Committed r84732: &lt;http://trac.webkit.org/changeset/84732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391362</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-22 20:20:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393650</commentid>
    <comment_count>8</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-27 10:47:42 -0700</bug_when>
    <thetext>Reopening, since the real fix is still in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393885</commentid>
    <comment_count>9</comment_count>
      <attachid>91361</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-27 15:29:42 -0700</bug_when>
    <thetext>Created attachment 91361
Attempt #2 at unique SecurityOrigins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408414</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-23 15:52:02 -0700</bug_when>
    <thetext>This is definitely a patch for abarth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408419</commentid>
    <comment_count>11</comment_count>
      <attachid>91361</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-23 15:56:55 -0700</bug_when>
    <thetext>Comment on attachment 91361
Attempt #2 at unique SecurityOrigins

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

This looks great.  I would like to see one more round though because this stuff is delicate.

&gt; Source/WebCore/dom/Document.cpp:1669
&gt; +    m_frame-&gt;loader()-&gt;setForcedSandboxFlags(SandboxOrigin);

Is this part necessary?  If you&apos;re going to set the security origin forcibly on the next line, you probably don&apos;t need this line.

&gt; Source/WebCore/dom/Document.cpp:1742
&gt; +        if (m_isViewSource)
&gt; +            m_frame-&gt;loader()-&gt;setForcedSandboxFlags(SandboxNone);

This seems wrong.  You might clobber other forced sandbox flags (e.g., in SVGImage).

&gt; Source/WebCore/bindings/ScriptControllerBase.cpp:42
&gt; +    if (m_frame-&gt;document() &amp;&amp; m_frame-&gt;document()-&gt;isViewSource()) {

Normally m_frame-&gt;document() is always non-null, but I think you&apos;re right that it can be null here.

&gt; Source/WebCore/loader/FrameLoader.h:255
&gt; -    void setForcedSandboxFlags(SandboxFlags flags) { m_forcedSandboxFlags = flags; m_sandboxFlags |= flags; }
&gt; +    void setForcedSandboxFlags(SandboxFlags flags) { m_forcedSandboxFlags = flags; updateSandboxFlags(); }

This change probably isn&apos;t necessary if we don&apos;t call setForcedSandboxFlags above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408420</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-23 15:57:35 -0700</bug_when>
    <thetext>Apparently I wrote that review a while ago and never clicked publish.  Thankfully Ojan&apos;s auto-saving kept it for me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409276</commentid>
    <comment_count>13</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-05-24 15:45:10 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebCore/dom/Document.cpp:1669
&gt; &gt; +    m_frame-&gt;loader()-&gt;setForcedSandboxFlags(SandboxOrigin);
&gt; 
&gt; Is this part necessary?  If you&apos;re going to set the security origin forcibly on the next line, you probably don&apos;t need this line.

The next line only sets the flags on the Document, not on the FrameLoader.

&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:1742
&gt; &gt; +        if (m_isViewSource)
&gt; &gt; +            m_frame-&gt;loader()-&gt;setForcedSandboxFlags(SandboxNone);
&gt; 
&gt; This seems wrong.  You might clobber other forced sandbox flags (e.g., in SVGImage).

Hmm....I think it might be a moot point (the document will be going away soon since we&apos;re in detach(), right?), but yeah, I guess it does make sense to not try to remove the flags.

&gt; &gt; Source/WebCore/loader/FrameLoader.h:255
&gt; &gt; -    void setForcedSandboxFlags(SandboxFlags flags) { m_forcedSandboxFlags = flags; m_sandboxFlags |= flags; }
&gt; &gt; +    void setForcedSandboxFlags(SandboxFlags flags) { m_forcedSandboxFlags = flags; updateSandboxFlags(); }
&gt; 
&gt; This change probably isn&apos;t necessary if we don&apos;t call setForcedSandboxFlags above.

Yeah, this is only necessary if we try to remove force flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409302</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-24 16:37:51 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; &gt; Source/WebCore/dom/Document.cpp:1669
&gt; &gt; &gt; +    m_frame-&gt;loader()-&gt;setForcedSandboxFlags(SandboxOrigin);
&gt; &gt; 
&gt; &gt; Is this part necessary?  If you&apos;re going to set the security origin forcibly on the next line, you probably don&apos;t need this line.
&gt; 
&gt; The next line only sets the flags on the Document, not on the FrameLoader.

Why do we want to set it on the FrameLoader?  It seems like setting it on the Document would be sufficient.  Also, that should remove the need to clear the bit elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409311</commentid>
    <comment_count>15</comment_count>
      <attachid>94715</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-05-24 16:57:37 -0700</bug_when>
    <thetext>Created attachment 94715
Addressing abarth&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409318</commentid>
    <comment_count>16</comment_count>
      <attachid>94715</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-24 17:06:07 -0700</bug_when>
    <thetext>Comment on attachment 94715
Addressing abarth&apos;s comments

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

This is great.  Thanks.

&gt; Source/WebCore/dom/Document.cpp:1725
&gt; +    if (!m_isViewSource || !m_frame)
&gt; +        return;

why !m_frame here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409755</commentid>
    <comment_count>17</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-05-25 10:53:45 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 94715 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94715&amp;action=review
&gt; 
&gt; This is great.  Thanks.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:1725
&gt; &gt; +    if (!m_isViewSource || !m_frame)
&gt; &gt; +        return;
&gt; 
&gt; why !m_frame here?

Left over from when I was using m_frame-&gt;loader() in the next line :)

Will remove it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409795</commentid>
    <comment_count>18</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-05-25 11:51:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/87309</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90553</attachid>
            <date>2011-04-21 10:32:58 -0700</date>
            <delta_ts>2011-04-27 15:29:42 -0700</delta_ts>
            <desc>Unique SecurityOrigins for view source documents</desc>
            <filename>xml.txt</filename>
            <type>text/plain</type>
            <size>7063</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiA4NDQzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsNiArNDA0LDcgQEAKICAg
ICBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc0hUTUw7IH0KICAgICBi
b29sIGlzWEhUTUxEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNYSFRNTDsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc0hUTUxWaWV3U291cmNlRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogI2lmIEVOQUJMRShTVkcpCiAgICAgdmlydHVhbCBib29sIGlzU1ZHRG9jdW1lbnQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzU1ZHUm9vdE5vZGUoKSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gODQ0MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzExLDYgKzE3
MTEsOSBAQAogICAgIHN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAgbV9ldmVudFF1ZXVlLT5j
YW5jZWxRdWV1ZWRFdmVudHMoKTsKIAorICAgIGlmICghaXNIVE1MVmlld1NvdXJjZURvY3VtZW50
KCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS0+aXNEaXNwbGF5aW5nSW5p
dGlhbEVtcHR5RG9jdW1lbnQoKSkKKyAgICAgICAgbV9mcmFtZS0+c2V0SW5WaWV3U291cmNlTW9k
ZShmYWxzZSk7CisKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgLy8g
RklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVjdC4KICAgICBtX3NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlciA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDQzMykKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDExLTA0LTIwICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHV0IHZpZXctc291cmNl
IGRvY3VtZW50cyBpbiBhIHVuaXF1ZSBvcmlnaW4gYW5kIGFsd2F5cyBhbGxvdyB0aGVtIHRvIHJ1
biBzY3JpcHRzLiBUaGlzIGVuc3VyZXMgdG9vbHMgbGlrZQorICAgICAgICBYTUxWaWV3ZXIgd29y
ayBldmVuIHdoZW4gc2NyaXB0cyBhcmUgZGlzYWJsZWQsIHdoaWxlIHN0aWxsIHByb3ZpZGluZyB0
aGUgcHJvdGVjdGlvbnMgZXhwZWN0ZWQgd2hlbiBzY3JpcHRzIGFyZSBkaXNhYmxlZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTEzCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cyk6IElmIHRoZSBjdXJyZW50IGZy
YW1lIGlzIGluIHZpZXcgc291cmNlIG1vZGUgYW5kIHRoZXJlJ3MgYSBkb2N1bWVudCBhdHRhY2hl
ZCwKKyAgICAgICAgICAgIGFsd2F5cyBhbGxvdyBzY3JpcHRzLiBBbHNvIGFzc2VydCB0aGF0IGlu
IHRoaXMgY2FzZSwgYW55IG5vbi1lbXB0eSBkb2N1bWVudCBpcyBpbiBhIHVuaXF1ZSBvcmlnaW4u
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpkZXRhY2gpOiBFbnN1cmUgdGhhdCBhIG5vbi1lbXB0eSwgbm9uLUhUTUxWaWV3U291cmNlIERv
Y3VtZW50IHJlc2V0cyB0aGUgRnJhbWUgdG8gbm9uLXZpZXctc291cmNlIG1vZGUgb24gZGV0YWNo
LgorICAgICAgICAgICAgVGhlIEZyYW1lJ3Mgdmlldy1zb3VyY2UgYml0IHdpbGwgY2F1c2UgdGhl
IG5leHQgRG9jdW1lbnQgdG8gYmUgYSBIVE1MVmlld1NvdXJjZURvY3VtZW50IGlmIGl0IGlzbid0
IGNsZWFyZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6aXNIVE1MVmlld1NvdXJjZURvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxW
aWV3U291cmNlRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudCk6IEVuc3VyZSB3ZSdyZSBpbiBhIHVuaXF1
ZSBvcmlnaW4uCisgICAgICAgICogaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJjZURvY3VtZW50Ojppc0hUTUxWaWV3U291cmNlRG9j
dW1lbnQpOgorICAgICAgICAqIHhtbC9YTUxUcmVlVmlld2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmlldyk6IEVuc3VyZSB3
ZSdyZSBpbiBhIHVuaXF1ZSBvcmlnaW4uCisKIDIwMTEtMDQtMjAgIEppYSBQdSAgPGpwdUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwCShyZXZp
c2lvbiA4NDQzMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJC
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAKICAgICBpZiAobV9mcmFt
ZS0+bG9hZGVyKCktPmlzU2FuZGJveGVkKFNhbmRib3hTY3JpcHRzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUtPmluVmlld1NvdXJjZU1vZGUoKSAmJiBtX2ZyYW1l
LT5kb2N1bWVudCgpKSB7CisgICAgICAgIEFTU0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLT5pc1VuaXF1ZSgpIHx8IG1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hp
bmUoKS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKwogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRp
bmdzKCk7CiAgICAgY29uc3QgYm9vbCBhbGxvd2VkID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVu
dCgpLT5hbGxvd0phdmFTY3JpcHQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmlzSmF2YVNjcmlwdEVu
YWJsZWQoKSk7CiAgICAgaWYgKCFhbGxvd2VkICYmIHJlYXNvbiA9PSBBYm91dFRvRXhlY3V0ZVNj
cmlwdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dC5oCShyZXZpc2lvbiA4NDQzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBACiAKICAgICB2b2lk
IGFkZFNvdXJjZShjb25zdCBTdHJpbmcmLCBIVE1MVG9rZW4mKTsKIAorICAgIHZpcnR1YWwgYm9v
bCBpc0hUTUxWaWV3U291cmNlRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKIHBy
aXZhdGU6CiAgICAgSFRNTFZpZXdTb3VyY2VEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Vmlld1NvdXJjZURvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA4NDQzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxWaWV3U291cmNlUGFyc2VyLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCIKQEAg
LTU2LDYgKzU3LDggQEAKIAogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKFF1aXJrc01vZGUpOwog
ICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwsIFNhbmRib3hP
cmlnaW4pKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNlcj4gSFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVl
Vmlld2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdl
ci5jcHAJKHJldmlzaW9uIDg0NDMyKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw5IEBACiAKIHZvaWQgWE1MVHJlZVZp
ZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKIHsKKyAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHVuaXF1ZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9kb2N1bWVu
dC0+dXJsKCksIFNhbmRib3hPcmlnaW4pOworICAgIG1fZG9jdW1lbnQtPmZyYW1lKCktPnNldElu
Vmlld1NvdXJjZU1vZGUodHJ1ZSk7CisgICAgbV9kb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4o
dW5pcXVlT3JpZ2luLmdldCgpKTsKICAgICBTdHJpbmcgc2NyaXB0U3RyaW5nKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl9qcyksIHNpemVvZihYTUxWaWV3ZXJfanMpKTsK
ICAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNl
Q29kZShzY3JpcHRTdHJpbmcpKTsKICAgICBTdHJpbmcgbm9TdHlsZU1lc3NhZ2UoIlRoaXMgWE1M
IGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0aW9uIGFzc29j
aWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cuIik7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZXctc291cmNlLW5vLWphdmFzY3Jp
cHQtdXJsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3ZpZXctc291cmNlLW5vLWphdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gODQ0MzIpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZXctc291
cmNlLW5vLWphdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRl
bXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJp
dHkvcmVzb3VyY2VzL2lubm9jZW50LXZpY3RpbS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3ZpZXctc291cmNlLW5vLWphdmFzY3JpcHQtdXJs
Lmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKwogVGhpcyB0
ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBhbGVydCBGQUlMLgogCiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDg0NDMzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMDQtMjAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgaW5zZWN1cmUgc2NyaXB0IHdhcm5pbmcgZHVlIHRvIGNoYW5nZXMgaW4gU2VjdXJpdHlP
cmlnaW5zCisgICAgICAgIGZvciB2aWV3c291cmNlIGRvY3VtZW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTEzCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3ZpZXctc291cmNlLW5vLWphdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4
dDoKKwogMjAxMS0wNC0yMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVwZGF0ZSAyIG1vcmUgdGVzdHMgdGhhdCBhcmUgbWlzc2luZyBwbmcgZmlsZXMuCg==
</data>
<flag name="review"
          id="83313"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90760</attachid>
            <date>2011-04-22 14:25:25 -0700</date>
            <delta_ts>2011-04-27 15:29:42 -0700</delta_ts>
            <desc>Temporary fix</desc>
            <filename>xml_temp.txt</filename>
            <type>text/plain</type>
            <size>1616</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NjgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMjIgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEb24ndCB1c2UgWE1MVHJlZVZpZXdlciB3aGVuIHNjcmlwdCBp
cyBkaXNhYmxlZCAoaXQgdXNlcyBKYXZhc2NyaXB0CisgICAgICAgIHRvIGJ1aWxkIGEgcHJldHRp
ZmllZCB2ZXJzaW9uIG9mIHRoZSB4bWwgZG9jdW1lbnQpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTMKKworICAgICAgICAqIHhtbC9YTUxUcmVl
Vmlld2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9ybURv
Y3VtZW50VG9UcmVlVmlldyk6CisKIDIwMTEtMDQtMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAJKHJldmlzaW9uIDg0Njc0KQorKysgU291cmNlL1dl
YkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwx
MiBAQAogCiB2b2lkIFhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmlldygp
CiB7CisgICAgLy8gRklYTUU6IFRlbXBvcmFyeSBoYWNrIHRvIGVuc3VyZSB0aGF0IHdlIHN0aWxs
IGRpc3BsYXkgc29tZSBvZiB0aGUgZG9jdW1lbnQgKGFuZCBkb24ndCBjcmFzaCkKKyAgICAvLyB3
aGVuIHNjcmlwdCBpcyBkaXNhYmxlZC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01OTExMyBmb3Igd29yayBvbiBhCisgICAgLy8gYmV0dGVyIHNvbHV0aW9uLgor
ICAgIGlmICghbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRz
KE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5n
IHNjcmlwdFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihYTUxWaWV3ZXJfanMp
LCBzaXplb2YoWE1MVmlld2VyX2pzKSk7CiAgICAgbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0
KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0U3RyaW5nKSk7CiAgICAgU3RyaW5n
IG5vU3R5bGVNZXNzYWdlKCJUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFu
eSBzdHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVl
IGlzIHNob3duIGJlbG93LiIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91361</attachid>
            <date>2011-04-27 15:29:42 -0700</date>
            <delta_ts>2011-05-24 16:57:37 -0700</delta_ts>
            <desc>Attempt #2 at unique SecurityOrigins</desc>
            <filename>xml.txt</filename>
            <type>text/plain</type>
            <size>9867</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiA4NTA2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjcsOCArNDI3LDggQEAKICAg
ICAKICAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9ySWZFeGlzdHMoKSBjb25zdCB7
IHJldHVybiBtX3N0eWxlU2VsZWN0b3IuZ2V0KCk7IH0KIAotICAgIGJvb2wgdXNlc1ZpZXdTb3Vy
Y2VTdHlsZXMoKSBjb25zdCB7IHJldHVybiBtX3VzZXNWaWV3U291cmNlU3R5bGVzOyB9Ci0gICAg
dm9pZCBzZXRVc2VzVmlld1NvdXJjZVN0eWxlcyhib29sIHVzZXNWaWV3U291cmNlU3R5bGVzKSB7
IG1fdXNlc1ZpZXdTb3VyY2VTdHlsZXMgPSB1c2VzVmlld1NvdXJjZVN0eWxlczsgfQorICAgIGJv
b2wgaXNWaWV3U291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZpZXdTb3VyY2U7IH0KKyAgICB2
b2lkIHNldElzVmlld1NvdXJjZShib29sKTsKIAogICAgIGJvb2wgc2F3RWxlbWVudHNJbktub3du
TmFtZXNwYWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2F3RWxlbWVudHNJbktub3duTmFtZXNwYWNl
czsgfQogCkBAIC0xMzQ0LDcgKzEzNDQsNyBAQAogICAgIGJvb2wgbV9pc1hIVE1MOwogICAgIGJv
b2wgbV9pc0hUTUw7CiAKLSAgICBib29sIG1fdXNlc1ZpZXdTb3VyY2VTdHlsZXM7CisgICAgYm9v
bCBtX2lzVmlld1NvdXJjZTsKICAgICBib29sIG1fc2F3RWxlbWVudHNJbktub3duTmFtZXNwYWNl
czsKIAogICAgIGJvb2wgbV91c2luZ0dlb2xvY2F0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCShyZXZpc2lvbiA4NTA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxMCw3ICs0MTAsNyBAQAogICAgICwgbV91c2VTZWN1cmVL
ZXlib2FyZEVudHJ5V2hlbkFjdGl2ZShmYWxzZSkKICAgICAsIG1faXNYSFRNTChpc1hIVE1MKQog
ICAgICwgbV9pc0hUTUwoaXNIVE1MKQotICAgICwgbV91c2VzVmlld1NvdXJjZVN0eWxlcyhmYWxz
ZSkKKyAgICAsIG1faXNWaWV3U291cmNlKGZhbHNlKQogICAgICwgbV9zYXdFbGVtZW50c0luS25v
d25OYW1lc3BhY2VzKGZhbHNlKQogICAgICwgbV91c2luZ0dlb2xvY2F0aW9uKGZhbHNlKQogICAg
ICwgbV9ldmVudFF1ZXVlKEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKQEAgLTE2NjAsNiArMTY2
MCwxNiBAQAogICAgIHJldHVybiBtX2Nzc1ByaW1pdGl2ZVZhbHVlQ2FjaGU7CiB9CiAKK3ZvaWQg
RG9jdW1lbnQ6OnNldElzVmlld1NvdXJjZShib29sIGlzVmlld1NvdXJjZSkKK3sKKyAgICBtX2lz
Vmlld1NvdXJjZSA9IGlzVmlld1NvdXJjZTsKKyAgICBpZiAoIW1faXNWaWV3U291cmNlIHx8ICFt
X2ZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9mcmFtZS0+bG9hZGVyKCktPnNl
dEZvcmNlZFNhbmRib3hGbGFncyhTYW5kYm94T3JpZ2luKTsKKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCgpLCBT
YW5kYm94T3JpZ2luKSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZVN0eWxlU2VsZWN0b3Io
KQogewogICAgIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzID0gdHJ1ZTsKQEAgLTE3Mjcs
NiArMTczNyw5IEBACiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsK
ICAgICAgICAgaWYgKHZpZXcpCiAgICAgICAgICAgICB2aWV3LT5kZXRhY2hDdXN0b21TY3JvbGxi
YXJzKCk7CisgICAgICAgIAorICAgICAgICBpZiAobV9pc1ZpZXdTb3VyY2UpCisgICAgICAgICAg
ICBtX2ZyYW1lLT5sb2FkZXIoKS0+c2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hOb25lKTsK
IAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIFBhZ2UqIG93bmVyUGFnZSA9IHBh
Z2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MTA1KQorKysgU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDQtMjcgIE5h
dGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXQgdmlldy1zb3VyY2UgZG9jdW1lbnRzIGluIGEg
dW5pcXVlIG9yaWdpbiBhbmQgYWx3YXlzIGFsbG93IHRoZW0gdG8gcnVuIHNjcmlwdHMuIFRoaXMg
ZW5zdXJlcyB0b29scyBsaWtlCisgICAgICAgIFhNTFZpZXdlciB3b3JrIGV2ZW4gd2hlbiBzY3Jp
cHRzIGFyZSBkaXNhYmxlZCwgd2hpbGUgc3RpbGwgcHJvdmlkaW5nIHRoZSBwcm90ZWN0aW9ucyBl
eHBlY3RlZCB3aGVuIHNjcmlwdHMgYXJlIGRpc2FibGVkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTMKKworICAgICAgICAqIGJpbmRpbmdzL1Nj
cmlwdENvbnRyb2xsZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmNhbkV4ZWN1dGVTY3JpcHRzKTogQ2hlY2sgd2hldGhlciB0aGUgZG9jdW1lbnQgaXMgdmll
d2luZyBzb3VyY2UsIGFuZCBhbGxvdyBzY3JpcHRzIGluIHRoYXQgY2FzZS4KKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjptYXRjaFVBUnVsZXMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldElzVmlld1NvdXJjZSk6IFJlbmFtZWQgZnJvbSBzZXRVc2VzVmlld1NvdXJjZVN0eWxl
cygpLCBzZXQncyBhIHVuaXF1ZSBzZWN1cml0eSBvcmlnaW4gaWYgd2UgYXJlIHZpZXdpbmcgc291
cmNlLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaCk6IFJlbW92ZSBhbnkgZm9y
Y2VkIHNhbmRib3ggZmxhZ3MgZnJvbSBGcmFtZUxvYWRlciBpZiB0aGV5IHdlcmUgc2V0IGZvciB2
aWV3aW5nIHNvdXJjZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojppc1ZpZXdTb3VyY2UpOiBSZW5hbWVkIGZyb20gdXNlc1ZpZXdTb3VyY2VT
dHlsZXMoKS4KKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6SFRNTFZpZXdTb3VyY2VEb2N1
bWVudCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpyZWNlaXZlZEZpcnN0RGF0YSk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0Rm9yY2VkU2Fu
ZGJveEZsYWdzKTogVXNlIHVwZGF0ZVNhbmRib3hGbGFncygpIGluc3RlYWQgb2YgdXBkYXRpbmcg
bV9zYW5kYm94RmxhZ3Mgb3Vyc2VsdmVzLCBzbyB0aGF0IGZvcmNlZCBmbGFncy4KKyAgICAgICAg
ICAgIGNhbiBiZSByZW1vdmVkLgorICAgICAgICAqIHhtbC9YTUxUcmVlVmlld2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmll
dyk6CisKIDIwMTEtMDQtMjcgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIFdlaW5zdGVpbi4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAJKHJldmlzaW9u
IDg1MDY5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQAogICAgIGlmIChtX2ZyYW1lLT5s
b2FkZXIoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFNjcmlwdHMpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5pc1ZpZXdTb3VyY2UoKSkgeworICAgICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+aXNVbmlxdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKwogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRpbmdzKCk7CiAgICAg
Y29uc3QgYm9vbCBhbGxvd2VkID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd0ph
dmFTY3JpcHQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmlzSmF2YVNjcmlwdEVuYWJsZWQoKSk7CiAg
ICAgaWYgKCFhbGxvd2VkICYmIHJlYXNvbiA9PSBBYm91dFRvRXhlY3V0ZVNjcmlwdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkocmV2
aXNpb24gODUwNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBACiAgICAgLCBtX3R5cGUobWlt
ZVR5cGUpCiB7CiAgICAgc2V0VXNlc0JlZm9yZUFmdGVyUnVsZXModHJ1ZSk7Ci0gICAgc2V0VXNl
c1ZpZXdTb3VyY2VTdHlsZXModHJ1ZSk7CisgICAgc2V0SXNWaWV3U291cmNlKHRydWUpOwogCiAg
ICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoUXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGliaWxp
dHlNb2RlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShy
ZXZpc2lvbiA4NTA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTIxOCw3ICsxMjE4LDcgQEAKICAgICAgICAgbWF0Y2hSdWxl
cyhkZWZhdWx0UXVpcmtzU3R5bGUsIGZpcnN0VUFSdWxlLCBsYXN0VUFSdWxlLCBmYWxzZSk7CiAg
ICAgICAgIAogICAgIC8vIElmIGRvY3VtZW50IHVzZXMgdmlldyBzb3VyY2Ugc3R5bGVzIChpbiB2
aWV3IHNvdXJjZSBtb2RlIG9yIGluIHhtbCB2aWV3ZXIgbW9kZSksIHRoZW4gd2UgbWF0Y2ggcnVs
ZXMgZnJvbSB0aGUgdmlldyBzb3VyY2Ugc3R5bGUgc2hlZXQuCi0gICAgaWYgKG1fY2hlY2tlci5t
X2RvY3VtZW50LT51c2VzVmlld1NvdXJjZVN0eWxlcygpKSB7CisgICAgaWYgKG1fY2hlY2tlci5t
X2RvY3VtZW50LT5pc1ZpZXdTb3VyY2UoKSkgewogICAgICAgICBpZiAoIWRlZmF1bHRWaWV3U291
cmNlU3R5bGUpCiAgICAgICAgICAgICBsb2FkVmlld1NvdXJjZVN0eWxlKCk7CiAgICAgICAgIG1h
dGNoUnVsZXMoZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSwgZmlyc3RVQVJ1bGUsIGxhc3RVQVJ1bGUs
IGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAJKHJldmlzaW9u
IDg1MDY5KQorKysgU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OSwxMiArNjksNyBAQAogCiB2b2lkIFhNTFRyZWVWaWV3ZXI6OnRyYW5zZm9y
bURvY3VtZW50VG9UcmVlVmlldygpCiB7Ci0gICAgLy8gRklYTUU6IFRlbXBvcmFyeSBoYWNrIHRv
IGVuc3VyZSB0aGF0IHdlIHN0aWxsIGRpc3BsYXkgc29tZSBvZiB0aGUgZG9jdW1lbnQgKGFuZCBk
b24ndCBjcmFzaCkKLSAgICAvLyB3aGVuIHNjcmlwdCBpcyBkaXNhYmxlZC4gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTExMyBmb3Igd29yayBvbiBhCi0gICAg
Ly8gYmV0dGVyIHNvbHV0aW9uLgotICAgIGlmICghbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0
KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKLSAgICAgICAg
cmV0dXJuOwotCisgICAgbV9kb2N1bWVudC0+c2V0SXNWaWV3U291cmNlKHRydWUpOwogICAgIFN0
cmluZyBzY3JpcHRTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oWE1MVmlld2Vy
X2pzKSwgc2l6ZW9mKFhNTFZpZXdlcl9qcykpOwogICAgIG1fZG9jdW1lbnQtPmZyYW1lKCktPnNj
cmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdFN0cmluZykpOwogICAgIFN0
cmluZyBub1N0eWxlTWVzc2FnZSgiVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2
ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZG9jdW1lbnQg
dHJlZSBpcyBzaG93biBiZWxvdy4iKTsKQEAgLTg0LDggKzc5LDYgQEAKICAgICBSZWZQdHI8VGV4
dD4gdGV4dCA9IG1fZG9jdW1lbnQtPmNyZWF0ZVRleHROb2RlKGNzc1N0cmluZyk7CiAgICAgRXhj
ZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwogICAgIG1fZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlk
KCJ4bWwtdmlld2VyLXN0eWxlIiktPmFwcGVuZENoaWxkKHRleHQsIGV4Y2VwdGlvbkNvZGUpOwot
Ci0gICAgbV9kb2N1bWVudC0+c2V0VXNlc1ZpZXdTb3VyY2VTdHlsZXModHJ1ZSk7CiAgICAgbV9k
b2N1bWVudC0+c3R5bGVTZWxlY3RvckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gODUw
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MjIsNyArNjIyLDcgQEAKICAgICBTdHJpbmcgdXJsOwogICAgIGlmICghbV9kb2N1
bWVudExvYWRlcikKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2ZyYW1lLT5pblZpZXdTb3Vy
Y2VNb2RlKCkpCisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCktPmlzVmlld1NvdXJjZSgpKQog
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCFwYXJzZUhUVFBSZWZyZXNoKG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJSZWZyZXNoIiksIGZhbHNlLCBkZWxheSwg
dXJsKSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgJKHJldmlzaW9uIDg1MDY5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsNyBAQAogICAgIFNhbmRib3hGbGFncyBz
YW5kYm94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFnczsgfQogICAgIC8vIFRo
ZSBmb2xsb3dpbmcgc2FuZGJveCBmbGFncyB3aWxsIGJlIGZvcmNlZCwgcmVnYXJkbGVzcyBvZiBj
aGFuZ2VzIHRvCiAgICAgLy8gdGhlIHNhbmRib3ggYXR0cmlidXRlIG9mIGFueSBwYXJlbnQgZnJh
bWVzLgotICAgIHZvaWQgc2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykg
eyBtX2ZvcmNlZFNhbmRib3hGbGFncyA9IGZsYWdzOyBtX3NhbmRib3hGbGFncyB8PSBmbGFnczsg
fQorICAgIHZvaWQgc2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykgeyBt
X2ZvcmNlZFNhbmRib3hGbGFncyA9IGZsYWdzOyB1cGRhdGVTYW5kYm94RmxhZ3MoKTsgfQogCiAg
ICAgLy8gTWl4ZWQgY29udGVudCByZWxhdGVkIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgYm9vbCBp
c01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWV3LXNvdXJjZS1uby1qYXZhc2Ny
aXB0LXVybC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS92aWV3LXNvdXJjZS1uby1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDg1MDY5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWV3LXNv
dXJjZS1uby1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9pbm5vY2VudC12aWN0aW0uaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS92aWV3LXNvdXJjZS1uby1qYXZhc2NyaXB0LXVy
bC5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKIFRoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgYWxlcnQgRkFJTC4KIAogCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA4NTEwNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDExIEBACisyMDExLTA0LTI3ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IG5ldyBjb25zb2xlIG91dHB1dCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU5MTEzLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS92aWV3LXNvdXJj
ZS1uby1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDQtMjcgIE1hcmsgUm93
ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBHZW9mZiBH
YXJlbi4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94715</attachid>
            <date>2011-05-24 16:57:37 -0700</date>
            <delta_ts>2022-03-01 02:42:53 -0800</delta_ts>
            <desc>Addressing abarth&apos;s comments</desc>
            <filename>xml2.txt</filename>
            <type>text/plain</type>
            <size>8565</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlldy1zb3VyY2Utbm8tamF2
YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvdmlldy1zb3VyY2Utbm8tamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA4NzIxNikKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmll
dy1zb3VyY2Utbm8tamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0
IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvaW5ub2NlbnQtdmljdGltLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvdmlldy1zb3VyY2Utbm8tamF2YXNjcmlw
dC11cmwuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBU
aGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGFsZXJ0IEZBSUwuCiAKIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gODcyMTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMSBAQAorMjAxMS0wNC0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgY29uc29sZSBvdXRwdXQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01OTExMy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlldy1z
b3VyY2Utbm8tamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0OgorCiAyMDExLTA1LTI0ICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiA4NzIxNikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDMs
OCArNDQzLDggQEAKICAgICAKICAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9ySWZF
eGlzdHMoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlU2VsZWN0b3IuZ2V0KCk7IH0KIAotICAgIGJv
b2wgdXNlc1ZpZXdTb3VyY2VTdHlsZXMoKSBjb25zdCB7IHJldHVybiBtX3VzZXNWaWV3U291cmNl
U3R5bGVzOyB9Ci0gICAgdm9pZCBzZXRVc2VzVmlld1NvdXJjZVN0eWxlcyhib29sIHVzZXNWaWV3
U291cmNlU3R5bGVzKSB7IG1fdXNlc1ZpZXdTb3VyY2VTdHlsZXMgPSB1c2VzVmlld1NvdXJjZVN0
eWxlczsgfQorICAgIGJvb2wgaXNWaWV3U291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZpZXdT
b3VyY2U7IH0KKyAgICB2b2lkIHNldElzVmlld1NvdXJjZShib29sKTsKIAogICAgIGJvb2wgc2F3
RWxlbWVudHNJbktub3duTmFtZXNwYWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2F3RWxlbWVudHNJ
bktub3duTmFtZXNwYWNlczsgfQogCkBAIC0xMzcxLDcgKzEzNzEsNyBAQAogICAgIGJvb2wgbV9p
c1hIVE1MOwogICAgIGJvb2wgbV9pc0hUTUw7CiAKLSAgICBib29sIG1fdXNlc1ZpZXdTb3VyY2VT
dHlsZXM7CisgICAgYm9vbCBtX2lzVmlld1NvdXJjZTsKICAgICBib29sIG1fc2F3RWxlbWVudHNJ
bktub3duTmFtZXNwYWNlczsKIAogICAgIGJvb2wgbV91c2luZ0dlb2xvY2F0aW9uOwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA4NzIxNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw3ICs0MDUsNyBAQAogICAg
ICwgbV91c2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZShmYWxzZSkKICAgICAsIG1faXNY
SFRNTChpc1hIVE1MKQogICAgICwgbV9pc0hUTUwoaXNIVE1MKQotICAgICwgbV91c2VzVmlld1Nv
dXJjZVN0eWxlcyhmYWxzZSkKKyAgICAsIG1faXNWaWV3U291cmNlKGZhbHNlKQogICAgICwgbV9z
YXdFbGVtZW50c0luS25vd25OYW1lc3BhY2VzKGZhbHNlKQogICAgICwgbV91c2luZ0dlb2xvY2F0
aW9uKGZhbHNlKQogICAgICwgbV9ldmVudFF1ZXVlKEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkK
QEAgLTE3MTgsNiArMTcxOCwxNSBAQAogICAgIHJldHVybiBtX2Nzc1ByaW1pdGl2ZVZhbHVlQ2Fj
aGU7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNldElzVmlld1NvdXJjZShib29sIGlzVmlld1NvdXJj
ZSkKK3sKKyAgICBtX2lzVmlld1NvdXJjZSA9IGlzVmlld1NvdXJjZTsKKyAgICBpZiAoIW1faXNW
aWV3U291cmNlIHx8ICFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVy
bCgpLCBTYW5kYm94T3JpZ2luKSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZVN0eWxlU2Vs
ZWN0b3IoKQogewogICAgIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzID0gdHJ1ZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MjE2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDUtMjQgIE5hdGUgQ2hhcGlu
ICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQdXQgdmlldy1zb3VyY2UgZG9jdW1lbnRzIGluIGEgdW5pcXVlIG9y
aWdpbiBhbmQgYWx3YXlzIGFsbG93IHRoZW0gdG8gcnVuIHNjcmlwdHMuIFRoaXMgZW5zdXJlcyB0
b29scyBsaWtlCisgICAgICAgIFhNTFZpZXdlciB3b3JrIGV2ZW4gd2hlbiBzY3JpcHRzIGFyZSBk
aXNhYmxlZCwgd2hpbGUgc3RpbGwgcHJvdmlkaW5nIHRoZSBwcm90ZWN0aW9ucyBleHBlY3RlZCB3
aGVuIHNjcmlwdHMgYXJlIGRpc2FibGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTMKKworICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdENvbnRy
b2xsZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNhbkV4
ZWN1dGVTY3JpcHRzKTogQ2hlY2sgd2hldGhlciB0aGUgZG9jdW1lbnQgaXMgdmlld2luZyBzb3Vy
Y2UsIGFuZCBhbGxvdyBzY3JpcHRzIGluIHRoYXQgY2FzZS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjptYXRj
aFVBUnVsZXMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldElz
Vmlld1NvdXJjZSk6IFJlbmFtZWQgZnJvbSBzZXRVc2VzVmlld1NvdXJjZVN0eWxlcygpLCBzZXQn
cyBhIHVuaXF1ZSBzZWN1cml0eSBvcmlnaW4gaWYgd2UgYXJlIHZpZXdpbmcgc291cmNlLgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmlzVmll
d1NvdXJjZSk6IFJlbmFtZWQgZnJvbSB1c2VzVmlld1NvdXJjZVN0eWxlcygpLgorICAgICAgICAq
IGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Vmlld1NvdXJjZURvY3VtZW50OjpIVE1MVmlld1NvdXJjZURvY3VtZW50KToKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJl
Y2VpdmVkRmlyc3REYXRhKToKKyAgICAgICAgKiB4bWwvWE1MVHJlZVZpZXdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxUcmVlVmlld2VyOjp0cmFuc2Zvcm1Eb2N1bWVudFRvVHJlZVZpZXcp
OgorCiAyMDExLTA1LTI0ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAJKHJldmlzaW9uIDg3MjE2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzksNiArNDAsMTEgQEAKICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkt
PmlzU2FuZGJveGVkKFNhbmRib3hTY3JpcHRzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aXNWaWV3
U291cmNlKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPmlzVW5pcXVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAg
ICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOwogICAgIGNvbnN0IGJv
b2wgYWxsb3dlZCA9IG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dKYXZhU2NyaXB0
KHNldHRpbmdzICYmIHNldHRpbmdzLT5pc0phdmFTY3JpcHRFbmFibGVkKCkpOwogICAgIGlmICgh
YWxsb3dlZCAmJiByZWFzb24gPT0gQWJvdXRUb0V4ZWN1dGVTY3JpcHQpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHJldmlzaW9uIDg3
MjE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQAogICAgICwgbV90eXBlKG1pbWVUeXBlKQog
ewogICAgIHNldFVzZXNCZWZvcmVBZnRlclJ1bGVzKHRydWUpOwotICAgIHNldFVzZXNWaWV3U291
cmNlU3R5bGVzKHRydWUpOworICAgIHNldElzVmlld1NvdXJjZSh0cnVlKTsKIAogICAgIHNldENv
bXBhdGliaWxpdHlNb2RlKFF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24g
ODcyMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMDYsNyArMTIwNiw3IEBACiAgICAgICAgIG1hdGNoUnVsZXMoZGVmYXVs
dFF1aXJrc1N0eWxlLCBmaXJzdFVBUnVsZSwgbGFzdFVBUnVsZSwgZmFsc2UpOwogICAgICAgICAK
ICAgICAvLyBJZiBkb2N1bWVudCB1c2VzIHZpZXcgc291cmNlIHN0eWxlcyAoaW4gdmlldyBzb3Vy
Y2UgbW9kZSBvciBpbiB4bWwgdmlld2VyIG1vZGUpLCB0aGVuIHdlIG1hdGNoIHJ1bGVzIGZyb20g
dGhlIHZpZXcgc291cmNlIHN0eWxlIHNoZWV0LgotICAgIGlmIChtX2NoZWNrZXIubV9kb2N1bWVu
dC0+dXNlc1ZpZXdTb3VyY2VTdHlsZXMoKSkgeworICAgIGlmIChtX2NoZWNrZXIubV9kb2N1bWVu
dC0+aXNWaWV3U291cmNlKCkpIHsKICAgICAgICAgaWYgKCFkZWZhdWx0Vmlld1NvdXJjZVN0eWxl
KQogICAgICAgICAgICAgbG9hZFZpZXdTb3VyY2VTdHlsZSgpOwogICAgICAgICBtYXRjaFJ1bGVz
KGRlZmF1bHRWaWV3U291cmNlU3R5bGUsIGZpcnN0VUFSdWxlLCBsYXN0VUFSdWxlLCBmYWxzZSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCShyZXZpc2lvbiA4NzIxNikK
KysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzAsMTIgKzcwLDcgQEAKIAogdm9pZCBYTUxUcmVlVmlld2VyOjp0cmFuc2Zvcm1Eb2N1bWVu
dFRvVHJlZVZpZXcoKQogewotICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkgaGFjayB0byBlbnN1cmUg
dGhhdCB3ZSBzdGlsbCBkaXNwbGF5IHNvbWUgb2YgdGhlIGRvY3VtZW50IChhbmQgZG9uJ3QgY3Jh
c2gpCi0gICAgLy8gd2hlbiBzY3JpcHQgaXMgZGlzYWJsZWQuIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTMgZm9yIHdvcmsgb24gYQotICAgIC8vIGJldHRl
ciBzb2x1dGlvbi4KLSAgICBpZiAoIW1fZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpLT5jYW5F
eGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCi0gICAgICAgIHJldHVybjsK
LQorICAgIG1fZG9jdW1lbnQtPnNldElzVmlld1NvdXJjZSh0cnVlKTsKICAgICBTdHJpbmcgc2Ny
aXB0U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFhNTFZpZXdlcl9qcyksIHNp
emVvZihYTUxWaWV3ZXJfanMpKTsKICAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+
ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRTdHJpbmcpKTsKICAgICBTdHJpbmcgbm9T
dHlsZU1lc3NhZ2UoIlRoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0
eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMg
c2hvd24gYmVsb3cuIik7CkBAIC04NSw4ICs4MCw2IEBACiAgICAgUmVmUHRyPFRleHQ+IHRleHQg
PSBtX2RvY3VtZW50LT5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZXhjZXB0aW9uQ29kZTsKICAgICBtX2RvY3VtZW50LT5nZXRFbGVtZW50QnlJZCgieG1sLXZp
ZXdlci1zdHlsZSIpLT5hcHBlbmRDaGlsZCh0ZXh0LCBleGNlcHRpb25Db2RlKTsKLQotICAgIG1f
ZG9jdW1lbnQtPnNldFVzZXNWaWV3U291cmNlU3R5bGVzKHRydWUpOwogICAgIG1fZG9jdW1lbnQt
PnN0eWxlU2VsZWN0b3JDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDg3MjE2KQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Njc1LDcgKzY3NSw3IEBACiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAoIW1fZG9jdW1lbnRMb2Fk
ZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV9mcmFtZS0+aW5WaWV3U291cmNlTW9kZSgp
KQorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pc1ZpZXdTb3VyY2UoKSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICghcGFyc2VIVFRQUmVmcmVzaChtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiUmVmcmVzaCIpLCBmYWxzZSwgZGVsYXksIHVybCkpCiAg
ICAgICAgIHJldHVybjsK
</data>
<flag name="review"
          id="88063"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>