<?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>69963</bug_id>
          
          <creation_ts>2011-10-12 14:24:13 -0700</creation_ts>
          <short_desc>InjectedBundleHitTestResult::imageRect() should return rect in WKView coordinates</short_desc>
          <delta_ts>2011-10-14 15:16:14 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Miller">jeffm</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          <cc>aroben</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>482706</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-12 14:24:13 -0700</bug_when>
    <thetext>Since WebKit2 clients only know about the WKView coordinate space, this rectangle is only useful if it&apos;s in that space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482707</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-10-12 14:24:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/10275376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482715</commentid>
    <comment_count>2</comment_count>
      <attachid>110747</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-12 14:30:04 -0700</bug_when>
    <thetext>Created attachment 110747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482728</commentid>
    <comment_count>3</comment_count>
      <attachid>110747</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-12 14:35:59 -0700</bug_when>
    <thetext>Comment on attachment 110747
Patch

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

Is it possible to write a test for this?

&gt; Source/WebKit2/ChangeLog:7
&gt; +        InjectedBundleHitTestResult::imageRect() should return rect in WKView coordinates
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=69963
&gt; +        
&gt; +        Use the confusingly-named ScrollView::contentsToWindow() function to convert the image rect
&gt; +        from frame to WKView coordinates.

Can you give a little justification as to why WKView coordinates are better than whatever coordinates we were previously using?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482747</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-12 14:48:38 -0700</bug_when>
    <thetext>In the immortal words of Adam Roben, &quot;this should have an API test.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482748</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-12 14:49:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; In the immortal words of Adam Roben, &quot;this should have an API test.&quot;

Actually, my words were:

(In reply to comment #3)
&gt; Is it possible to write a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482766</commentid>
    <comment_count>6</comment_count>
      <attachid>110747</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-12 14:57:49 -0700</bug_when>
    <thetext>Comment on attachment 110747
Patch

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

&gt;&gt; Source/WebKit2/ChangeLog:7
&gt;&gt; +        from frame to WKView coordinates.
&gt; 
&gt; Can you give a little justification as to why WKView coordinates are better than whatever coordinates we were previously using?

The justification is in the comment in the code, but I&apos;ll elaborate in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482768</commentid>
    <comment_count>7</comment_count>
      <attachid>110747</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-12 15:03:00 -0700</bug_when>
    <thetext>Comment on attachment 110747
Patch

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

&gt;&gt;&gt; Source/WebKit2/ChangeLog:7
&gt;&gt;&gt; +        from frame to WKView coordinates.
&gt;&gt; 
&gt;&gt; Can you give a little justification as to why WKView coordinates are better than whatever coordinates we were previously using?
&gt; 
&gt; The justification is in the comment in the code, but I&apos;ll elaborate in the ChangeLog.

&quot;ToWindow&quot; really is window coords, not view coords. The coords will be flipped in WK1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483231</commentid>
    <comment_count>8</comment_count>
      <attachid>110747</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-13 09:15:45 -0700</bug_when>
    <thetext>Comment on attachment 110747
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit2/ChangeLog:7
&gt;&gt;&gt;&gt; +        from frame to WKView coordinates.
&gt;&gt;&gt; 
&gt;&gt;&gt; Can you give a little justification as to why WKView coordinates are better than whatever coordinates we were previously using?
&gt;&gt; 
&gt;&gt; The justification is in the comment in the code, but I&apos;ll elaborate in the ChangeLog.
&gt; 
&gt; &quot;ToWindow&quot; really is window coords, not view coords. The coords will be flipped in WK1.

This is injected bundle code in WebKit2, so I don’t see how WebKit1 is relevant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483411</commentid>
    <comment_count>9</comment_count>
      <attachid>110747</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-13 12:51:36 -0700</bug_when>
    <thetext>Comment on attachment 110747
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebKit2/ChangeLog:7
&gt;&gt;&gt;&gt;&gt; +        from frame to WKView coordinates.
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Can you give a little justification as to why WKView coordinates are better than whatever coordinates we were previously using?
&gt;&gt;&gt; 
&gt;&gt;&gt; The justification is in the comment in the code, but I&apos;ll elaborate in the ChangeLog.
&gt;&gt; 
&gt;&gt; &quot;ToWindow&quot; really is window coords, not view coords. The coords will be flipped in WK1.
&gt; 
&gt; This is injected bundle code in WebKit2, so I don’t see how WebKit1 is relevant.

WebKit1 isn&apos;t relevant, but the first part of Simon&apos;s comment is correct.  After talking to Simon more, I&apos;m working on a patch to add member functions to Widget and ScrollView to convert between frame view and root view coordinate systems, since there&apos;s no way to do this currently. InjectedBundleHitTestResult::imageRect() can use one of these functions, and I also need to write a WK2 API test (as Sam and Adam pointed out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484214</commentid>
    <comment_count>10</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-14 12:57:48 -0700</bug_when>
    <thetext>I wrote bug 70136 to cover writing the test for this, since I need to land this patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484222</commentid>
    <comment_count>11</comment_count>
      <attachid>111062</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-14 13:08:19 -0700</bug_when>
    <thetext>Created attachment 111062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484279</commentid>
    <comment_count>12</comment_count>
      <attachid>111062</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-14 14:15:33 -0700</bug_when>
    <thetext>Comment on attachment 111062
Patch

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

&gt; Source/WebCore/platform/Widget.cpp:106
&gt; +IntRect Widget::convertFromRootView(const IntRect&amp; rootRect) const
&gt; +{
&gt; +    if (const ScrollView* parentScrollView = parent()) {
&gt; +        IntRect parentRect = parentScrollView-&gt;convertFromRootView(rootRect);
&gt; +        return convertFromContainingView(parentRect);
&gt; +    }
&gt; +    return rootRect;
&gt; +}
&gt; +
&gt; +IntRect Widget::convertToRootView(const IntRect&amp; localRect) const
&gt; +{
&gt; +    if (const ScrollView* parentScrollView = parent()) {
&gt; +        IntRect parentRect = convertToContainingView(localRect);
&gt; +        return parentScrollView-&gt;convertToRootView(parentRect);
&gt; +    }
&gt; +    return localRect;
&gt; +}
&gt; +
&gt; +IntPoint Widget::convertFromRootView(const IntPoint&amp; rootPoint) const
&gt; +{
&gt; +    if (const ScrollView* parentScrollView = parent()) {
&gt; +        IntPoint parentPoint = parentScrollView-&gt;convertFromRootView(rootPoint);
&gt; +        return convertFromContainingView(parentPoint);
&gt; +    }
&gt; +    return rootPoint;
&gt; +}
&gt; +
&gt; +IntPoint Widget::convertToRootView(const IntPoint&amp; localPoint) const
&gt; +{
&gt; +    if (const ScrollView* parentScrollView = parent()) {
&gt; +        IntPoint parentPoint = convertToContainingView(localPoint);
&gt; +        return parentScrollView-&gt;convertToRootView(parentPoint);
&gt; +    }
&gt; +    return localPoint;
&gt; +}

How about calling these from the existing toWindow/fromWindow calls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484305</commentid>
    <comment_count>13</comment_count>
      <attachid>111062</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-14 14:34:16 -0700</bug_when>
    <thetext>Comment on attachment 111062
Patch

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

&gt;&gt; Source/WebCore/platform/Widget.cpp:106
&gt;&gt; +}
&gt; 
&gt; How about calling these from the existing toWindow/fromWindow calls?

Good idea, but I&apos;d rather not perturb existing code in this patch. I will file a followup bug to track this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484339</commentid>
    <comment_count>14</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-14 15:10:22 -0700</bug_when>
    <thetext>Committed r97514: &lt;http://trac.webkit.org/changeset/97514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484348</commentid>
    <comment_count>15</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-10-14 15:16:14 -0700</bug_when>
    <thetext>I wrote bug 70152 to track Simon&apos;s suggestion.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110747</attachid>
            <date>2011-10-12 14:30:04 -0700</date>
            <delta_ts>2011-10-14 13:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69963-20111012143003.patch</filename>
            <type>text/plain</type>
            <size>2321</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MzAzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMTIgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIEluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdDo6aW1hZ2VSZWN0KCkgc2hvdWxkIHJldHVybiByZWN0IGluIFdLVmlldyBjb29yZGluYXRl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5NjMK
KyAgICAgICAgCisgICAgICAgIFVzZSB0aGUgY29uZnVzaW5nbHktbmFtZWQgU2Nyb2xsVmlldzo6
Y29udGVudHNUb1dpbmRvdygpIGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIGltYWdlIHJlY3QKKyAg
ICAgICAgZnJvbSBmcmFtZSB0byBXS1ZpZXcgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2VSZWN0KTogQ29udmVydCB0byBXS1ZpZXcg
Y29vcmRpbmF0ZXMuCisKIDIwMTEtMTAtMTIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBNb3ZlIHF3ZWJl
cnJvciogb3V0IG9mIEFQSS9xdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0LmNwcAkocmV2aXNpb24gOTcyNjApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVM
b2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvS1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMDIsNyAr
MTAzLDI1IEBAIFN0cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmxpbmsKIAogV2Vi
Q29yZTo6SW50UmVjdCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1faGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKTsKKyAgICBXZWJD
b3JlOjpJbnRSZWN0IGltYWdlUmVjdCA9IG1faGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKTsKKyAg
ICBpZiAoaW1hZ2VSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGltYWdlUmVjdDsKKyAg
ICAgICAgCisgICAgLy8gVGhlIGltYWdlIHJlY3QgaW4gV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCBp
cyBpbiBmcmFtZSBjb29yZGluYXRlcywgYnV0IHdlIG5lZWQgaXQgaW4gV0tWaWV3CisgICAgLy8g
Y29vcmRpbmF0ZXMgc2luY2UgV2ViS2l0MiBjbGllbnRzIGRvbid0IGhhdmUgZW5vdWdoIGNvbnRl
eHQgdG8gZG8gdGhlIGNvbnZlcnNpb24gdGhlbXNlbHZlcy4KKyAgICBXZWJGcmFtZSogd2ViRnJh
bWUgPSBmcmFtZSgpOworICAgIGlmICghd2ViRnJhbWUpCisgICAgICAgIHJldHVybiBpbWFnZVJl
Y3Q7CisgICAgCisgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IHdlYkZyYW1lLT5jb3Jl
RnJhbWUoKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIGltYWdlUmVjdDsK
KyAgICAKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsK
KyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBpbWFnZVJlY3Q7CisgICAgCisgICAgcmV0
dXJuIHZpZXctPmNvbnRlbnRzVG9XaW5kb3coaW1hZ2VSZWN0KTsKIH0KIAogYm9vbCBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmlzU2VsZWN0ZWQoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111062</attachid>
            <date>2011-10-14 13:08:19 -0700</date>
            <delta_ts>2011-10-14 14:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69963-20111014130818.patch</filename>
            <type>text/plain</type>
            <size>9367</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTQgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIEluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdDo6aW1hZ2VSZWN0KCkgc2hvdWxkIHJldHVybiByZWN0IGluIFdLVmlldyBjb29yZGluYXRl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5NjMK
KyAgICAgICAgCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBjb252ZXJ0IGZyb20gYW55
IGZyYW1lIHZpZXcncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUKKyAgICAgICAgcm9vdCB2aWV3
J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzICh5ZXQpLCB0aGlzIGlzIGNvdmVyZWQgYnkgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzNj4uCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0ZWQgV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29udGVudHNU
b1Jvb3RWaWV3KCksIHVzZWQgYnkgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcC4KKyAg
ICAgICAgCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3Ojpyb290Vmlld1RvQ29udGVudHMpOiBBZGRlZCAoYm90aCBwb2ludCBh
bmQgcmVjdCB2ZXJzaW9ucykuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpjb250ZW50
c1RvUm9vdFZpZXcpOiBEaXR0by4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
Vmlldy5oOiBBZGRlZCBtZW1iZXIgZnVuY3Rpb25zIHRvIGNvbnZlcnQgdG8vZnJvbSByb290IHZp
ZXcgY29vcmRpbmF0ZXMuCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmNvbnZlcnRGcm9tUm9vdFZpZXcpOiBBZGRlZCAo
Ym90aCBwb2ludCBhbmQgcmVjdCB2ZXJzaW9ucykuCisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6
OmNvbnZlcnRUb1Jvb3RWaWV3KTogRGl0dG8uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3Jt
L1dpZGdldC5oOiBBZGRlZCBtZW1iZXIgZnVuY3Rpb25zIHRvIGNvbnZlcnQgdG8vZnJvbSByb290
IHZpZXcgY29vcmRpbmF0ZXMuCisKIDIwMTEtMTAtMTQgIFBldGVyIEJldmVybG9vICA8cGV0ZXJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW5oZXJpdCBzZXR0aW5ncyBmcm9t
IENocm9taXVtJ3MgZW52c2V0dXAuc2gsIGFkZHJlc3MgYSBOREsgdG9kbwpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHJldmlzaW9uIDk3NDY1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTExMDUsNiArMTEwNSw3IEBAIF9fWk5LN1dlYkNvcmUx
MFNjcm9sbFZpZXcxNndpbmRvd1RvQ29udGUKIF9fWk5LN1dlYkNvcmUxMFNjcm9sbFZpZXcxNmNv
bnRlbnRzVG9XaW5kb3dFUktOU184SW50UG9pbnRFCiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3
MTZ3aW5kb3dUb0NvbnRlbnRzRVJLTlNfOEludFBvaW50RQogX19aTks3V2ViQ29yZTEwU2Nyb2xs
VmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIKK19fWk5LN1dlYkNvcmUxMFNjcm9sbFZpZXcxOGNv
bnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMTFDYWNoZWRJbWFn
ZTVpbWFnZUV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEwaXNDb21wbGV0ZUV2CiBfX1pO
SzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFUktOU18xNVJlc291cmNlUmVx
dWVzdEUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lv
biA5NzQ2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02ODEsNiArNjgxLDMyIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29u
dGVudHNTbG93UGF0aCgKICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOwogfQogCitJbnRQb2ludCBTY3JvbGxWaWV3Ojpy
b290Vmlld1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpIGNvbnN0Cit7
CisgICAgSW50UG9pbnQgdmlld1BvaW50ID0gY29udmVydEZyb21Sb290Vmlldyhyb290Vmlld1Bv
aW50KTsKKyAgICByZXR1cm4gdmlld1BvaW50ICsgc2Nyb2xsT2Zmc2V0KCk7Cit9CisKK0ludFBv
aW50IFNjcm9sbFZpZXc6OmNvbnRlbnRzVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgY29udGVu
dHNQb2ludCkgY29uc3QKK3sKKyAgICBJbnRQb2ludCB2aWV3UG9pbnQgPSBjb250ZW50c1BvaW50
IC0gc2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIGNvbnZlcnRUb1Jvb3RWaWV3KHZpZXdQb2lu
dCk7ICAKK30KKworSW50UmVjdCBTY3JvbGxWaWV3Ojpyb290Vmlld1RvQ29udGVudHMoY29uc3Qg
SW50UmVjdCYgcm9vdFZpZXdSZWN0KSBjb25zdAoreworICAgIEludFJlY3Qgdmlld1JlY3QgPSBj
b252ZXJ0RnJvbVJvb3RWaWV3KHJvb3RWaWV3UmVjdCk7CisgICAgdmlld1JlY3QubW92ZShzY3Jv
bGxPZmZzZXQoKSk7CisgICAgcmV0dXJuIHZpZXdSZWN0OworfQorCitJbnRSZWN0IFNjcm9sbFZp
ZXc6OmNvbnRlbnRzVG9Sb290Vmlldyhjb25zdCBJbnRSZWN0JiBjb250ZW50c1JlY3QpIGNvbnN0
Cit7CisgICAgSW50UmVjdCB2aWV3UmVjdCA9IGNvbnRlbnRzUmVjdDsKKyAgICB2aWV3UmVjdC5t
b3ZlKC1zY3JvbGxPZmZzZXQoKSk7CisgICAgcmV0dXJuIGNvbnZlcnRUb1Jvb3RWaWV3KHZpZXdS
ZWN0KTsKK30KKwogSW50UG9pbnQgU2Nyb2xsVmlldzo6d2luZG93VG9Db250ZW50cyhjb25zdCBJ
bnRQb2ludCYgd2luZG93UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgdmlld1BvaW50ID0g
Y29udmVydEZyb21Db250YWluaW5nV2luZG93KHdpbmRvd1BvaW50KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHJldmlzaW9uIDk3NDY1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNiArMTk3LDEx
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wgc3VwcHJl
c3NlZCwgYm9vbCByZXBhaW50T25VbnN1cHByZXNzID0gZmFsc2UpOwogICAgIGJvb2wgc2Nyb2xs
YmFyc1N1cHByZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhcnNTdXBwcmVzc2VkOyB9
CiAKKyAgICBJbnRQb2ludCByb290Vmlld1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmKSBjb25z
dDsKKyAgICBJbnRQb2ludCBjb250ZW50c1RvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25z
dDsKKyAgICBJbnRSZWN0IHJvb3RWaWV3VG9Db250ZW50cyhjb25zdCBJbnRSZWN0JikgY29uc3Q7
CisgICAgSW50UmVjdCBjb250ZW50c1RvUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0Owor
CiAgICAgLy8gRXZlbnQgY29vcmRpbmF0ZXMgYXJlIGFzc3VtZWQgdG8gYmUgaW4gdGhlIGNvb3Jk
aW5hdGUgc3BhY2Ugb2YgYSB3aW5kb3cgdGhhdCBjb250YWlucwogICAgIC8vIHRoZSBlbnRpcmUg
d2lkZ2V0IGhpZXJhcmNoeS4gSXQgaXMgdXAgdG8gdGhlIHBsYXRmb3JtIHRvIGRlY2lkZSB3aGF0
IHRoZSBwcmVjaXNlIGRlZmluaXRpb24KICAgICAvLyBvZiBjb250YWluaW5nIHdpbmRvdyBpcy4g
KEZvciBleGFtcGxlIG9uIE1hYyBpdCBpcyB0aGUgY29udGFpbmluZyBOU1dpbmRvdy4pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAJKHJldmlzaW9uIDk3NDY1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjks
NDIgQEAgdm9pZCBXaWRnZXQ6OnJlbW92ZUZyb21QYXJlbnQoKQogICAgICAgICBwYXJlbnQoKS0+
cmVtb3ZlQ2hpbGQodGhpcyk7CiB9CiAKK0ludFJlY3QgV2lkZ2V0Ojpjb252ZXJ0RnJvbVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmIHJvb3RSZWN0KSBjb25zdAoreworICAgIGlmIChjb25zdCBTY3Jv
bGxWaWV3KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpIHsKKyAgICAgICAgSW50UmVjdCBw
YXJlbnRSZWN0ID0gcGFyZW50U2Nyb2xsVmlldy0+Y29udmVydEZyb21Sb290Vmlldyhyb290UmVj
dCk7CisgICAgICAgIHJldHVybiBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KHBhcmVudFJlY3Qp
OworICAgIH0KKyAgICByZXR1cm4gcm9vdFJlY3Q7Cit9CisKK0ludFJlY3QgV2lkZ2V0Ojpjb252
ZXJ0VG9Sb290Vmlldyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0Cit7CisgICAgaWYg
KGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkgeworICAgICAg
ICBJbnRSZWN0IHBhcmVudFJlY3QgPSBjb252ZXJ0VG9Db250YWluaW5nVmlldyhsb2NhbFJlY3Qp
OworICAgICAgICByZXR1cm4gcGFyZW50U2Nyb2xsVmlldy0+Y29udmVydFRvUm9vdFZpZXcocGFy
ZW50UmVjdCk7CisgICAgfQorICAgIHJldHVybiBsb2NhbFJlY3Q7Cit9CisKK0ludFBvaW50IFdp
ZGdldDo6Y29udmVydEZyb21Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcm9vdFBvaW50KSBjb25z
dAoreworICAgIGlmIChjb25zdCBTY3JvbGxWaWV3KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50
KCkpIHsKKyAgICAgICAgSW50UG9pbnQgcGFyZW50UG9pbnQgPSBwYXJlbnRTY3JvbGxWaWV3LT5j
b252ZXJ0RnJvbVJvb3RWaWV3KHJvb3RQb2ludCk7CisgICAgICAgIHJldHVybiBjb252ZXJ0RnJv
bUNvbnRhaW5pbmdWaWV3KHBhcmVudFBvaW50KTsKKyAgICB9CisgICAgcmV0dXJuIHJvb3RQb2lu
dDsKK30KKworSW50UG9pbnQgV2lkZ2V0Ojpjb252ZXJ0VG9Sb290Vmlldyhjb25zdCBJbnRQb2lu
dCYgbG9jYWxQb2ludCkgY29uc3QKK3sKKyAgICBpZiAoY29uc3QgU2Nyb2xsVmlldyogcGFyZW50
U2Nyb2xsVmlldyA9IHBhcmVudCgpKSB7CisgICAgICAgIEludFBvaW50IHBhcmVudFBvaW50ID0g
Y29udmVydFRvQ29udGFpbmluZ1ZpZXcobG9jYWxQb2ludCk7CisgICAgICAgIHJldHVybiBwYXJl
bnRTY3JvbGxWaWV3LT5jb252ZXJ0VG9Sb290VmlldyhwYXJlbnRQb2ludCk7CisgICAgfQorICAg
IHJldHVybiBsb2NhbFBvaW50OworfQorCiBJbnRSZWN0IFdpZGdldDo6Y29udmVydEZyb21Db250
YWluaW5nV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QpIGNvbnN0CiB7CiAgICAgaWYg
KGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkgewpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgJKHJldmlzaW9uIDk3NDY1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Nyw2ICsxNzcsMTIgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVdpZGdldChXaWRnZXROb3RpZmljYXRp
b24pIHsgfQogCisgICAgSW50UmVjdCBjb252ZXJ0VG9Sb290Vmlldyhjb25zdCBJbnRSZWN0Jikg
Y29uc3Q7CisgICAgSW50UmVjdCBjb252ZXJ0RnJvbVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSBj
b25zdDsKKworICAgIEludFBvaW50IGNvbnZlcnRUb1Jvb3RWaWV3KGNvbnN0IEludFBvaW50Jikg
Y29uc3Q7CisgICAgSW50UG9pbnQgY29udmVydEZyb21Sb290Vmlldyhjb25zdCBJbnRQb2ludCYp
IGNvbnN0OworCiAgICAgLy8gSXQgaXMgaW1wb3J0YW50IGZvciBjcm9zcy1wbGF0Zm9ybSBjb2Rl
IHRvIHJlYWxpemUgdGhhdCBNYWMgaGFzIGZsaXBwZWQgY29vcmRpbmF0ZXMuICBUaGVyZWZvcmUg
YW55IGNvZGUKICAgICAvLyB0aGF0IHRyaWVzIHRvIGNvbnZlcnQgdGhlIGxvY2F0aW9uIG9mIGEg
cmVjdCB1c2luZyB0aGUgcG9pbnQtYmFzZWQgY29udmVydEZyb21Db250YWluaW5nV2luZG93IHdp
bGwgZW5kCiAgICAgLy8gdXAgd2l0aCBhbiBpbmFjY3VyYXRlIHJlY3QuICBBbHdheXMgbWFrZSBz
dXJlIHRvIHVzZSB0aGUgcmVjdC1iYXNlZCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cgbWV0
aG9kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzQ5NikKKysrIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTEwLTE0ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBJbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQ6OmltYWdlUmVjdCgpIHNob3VsZCByZXR1cm4gcmVjdCBpbiBXS1ZpZXcgY29vcmRp
bmF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
OTYzCisgICAgICAgIAorICAgICAgICBXZWJLaXQyIGNsaWVudHMgb25seSBoYXZlIGtub3dsZWRn
ZSBvZiB0aGUgV0tWaWV3J3MgY29vcmRpbmF0ZSBzeXN0ZW0sIHRoZXkgaGF2ZSBubyB3YXkgdG8K
KyAgICAgICAgY29udmVydCBmcm9tIHN1YmZyYW1lIHZpZXcgY29vcmRpbmF0ZXMgLCBzbyBhbnkg
cmVjdCB0aGF0IHdlIGV4cG9zZSB0aHJvdWdoIFdLMiBBUElzIHNob3VsZAorICAgICAgICBiZSBp
biBXS1ZpZXcgY29vcmRpbmF0ZXMuCisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0OjppbWFnZVJlY3QpOiBVc2UgV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb250
ZW50c1RvUm9vdFZpZXcoKSB0byBjb252ZXJ0IHRoZSBpbWFnZSByZWN0IHRvIFdLVmlldyBjb29y
ZGluYXRlcy4KKwogMjAxMS0xMC0xNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk3Mzc1LgpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAkocmV2aXNp
b24gOTc0NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMDIsNyArMTAzLDI1IEBAIFN0cmluZyBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmxpbmsKIAogV2ViQ29yZTo6SW50UmVjdCBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faGl0
VGVzdFJlc3VsdC5pbWFnZVJlY3QoKTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGltYWdlUmVjdCA9
IG1faGl0VGVzdFJlc3VsdC5pbWFnZVJlY3QoKTsKKyAgICBpZiAoaW1hZ2VSZWN0LmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIGltYWdlUmVjdDsKKyAgICAgICAgCisgICAgLy8gVGhlIGltYWdl
IHJlY3QgaW4gV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCBpcyBpbiBmcmFtZSBjb29yZGluYXRlcywg
YnV0IHdlIG5lZWQgaXQgaW4gV0tWaWV3CisgICAgLy8gY29vcmRpbmF0ZXMgc2luY2UgV2ViS2l0
MiBjbGllbnRzIGRvbid0IGhhdmUgZW5vdWdoIGNvbnRleHQgdG8gZG8gdGhlIGNvbnZlcnNpb24g
dGhlbXNlbHZlcy4KKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSgpOworICAgIGlmICgh
d2ViRnJhbWUpCisgICAgICAgIHJldHVybiBpbWFnZVJlY3Q7CisgICAgCisgICAgV2ViQ29yZTo6
RnJhbWUqIGNvcmVGcmFtZSA9IHdlYkZyYW1lLT5jb3JlRnJhbWUoKTsKKyAgICBpZiAoIWNvcmVG
cmFtZSkKKyAgICAgICAgcmV0dXJuIGltYWdlUmVjdDsKKyAgICAKKyAgICBXZWJDb3JlOjpGcmFt
ZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAg
IHJldHVybiBpbWFnZVJlY3Q7CisgICAgCisgICAgcmV0dXJuIHZpZXctPmNvbnRlbnRzVG9Sb290
VmlldyhpbWFnZVJlY3QpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6
aXNTZWxlY3RlZCgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="108760"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>