<?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>68453</bug_id>
          
          <creation_ts>2011-09-20 11:33:10 -0700</creation_ts>
          <short_desc>Repaint tests don&apos;t work in WebKit2</short_desc>
          <delta_ts>2011-09-26 23:16:36 -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>Tools / Tests</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>
          <dependson>68644</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>470213</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-20 11:33:10 -0700</bug_when>
    <thetext>layoutTestController.display() does nothing in WebKit2. Making it behave the same way as WK1 is tricky, because the WebProcess would have to retain a bitmap for the entire page, with the alpha wash, and then copy parts over to the UI process.

A better solution is to keep track of the repaint rects in WebCore, and add layout test controller API to retrieve them. We can then use these rects to synthesize the repaint pixel results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471750</commentid>
    <comment_count>1</comment_count>
      <attachid>108373</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-22 11:51:08 -0700</bug_when>
    <thetext>Created attachment 108373
Have FrameView track repaint rects and expose them in WK1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471754</commentid>
    <comment_count>2</comment_count>
      <attachid>108373</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-22 11:54:18 -0700</bug_when>
    <thetext>Comment on attachment 108373
Have FrameView track repaint rects and expose them in WK1

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

&gt; Source/WebKit/mac/WebView/WebViewPrivate.h:499
&gt; +- (void)setTracksRepaints:(BOOL)flag;
&gt; +- (BOOL)isTrackingRepaints;
&gt; +- (void)resetTrackedRepaints;
&gt; +- (NSArray*)trackedRepaintRects; // Returned array contains rectValue NSValues.

Do we need WebKit SPI for this? Can DRT make calls directly to window.internals from native code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471766</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-22 12:07:17 -0700</bug_when>
    <thetext>+dglazkov for the window.internals question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472653</commentid>
    <comment_count>4</comment_count>
      <attachid>108567</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-23 17:37:57 -0700</bug_when>
    <thetext>Created attachment 108567
Have FrameView track repaint rects and expose them in WK1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472655</commentid>
    <comment_count>5</comment_count>
      <attachid>108567</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-23 17:38:40 -0700</bug_when>
    <thetext>Comment on attachment 108567
Have FrameView track repaint rects and expose them in WK1

Change from the previous patch is to have FrameView unapply the scroll offset from the rects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472664</commentid>
    <comment_count>6</comment_count>
      <attachid>108569</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-23 17:49:16 -0700</bug_when>
    <thetext>Created attachment 108569
Expose repaint rects through WK2 private API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472666</commentid>
    <comment_count>7</comment_count>
      <attachid>108571</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-23 17:56:10 -0700</bug_when>
    <thetext>Created attachment 108571
Use the repaint rects to generate the repaint overlay in DRT and WTR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472713</commentid>
    <comment_count>8</comment_count>
      <attachid>108569</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-23 20:51:51 -0700</bug_when>
    <thetext>Comment on attachment 108569
Expose repaint rects through WK2 private API

Attachment 108569 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9840142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472752</commentid>
    <comment_count>9</comment_count>
      <attachid>108569</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-09-24 04:30:04 -0700</bug_when>
    <thetext>Comment on attachment 108569
Expose repaint rects through WK2 private API

Attachment 108569 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9844242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472753</commentid>
    <comment_count>10</comment_count>
      <attachid>108571</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-09-24 04:31:00 -0700</bug_when>
    <thetext>Comment on attachment 108571
Use the repaint rects to generate the repaint overlay in DRT and WTR

Attachment 108571 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9856002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473163</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 10:07:25 -0700</bug_when>
    <thetext>Later patches are failing because they require the FrameView changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473167</commentid>
    <comment_count>12</comment_count>
      <attachid>108567</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-26 10:11:47 -0700</bug_when>
    <thetext>Comment on attachment 108567
Have FrameView track repaint rects and expose them in WK1

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

&gt; Source/WebCore/page/FrameView.h:454
&gt; +    bool m_isTrackingRepaints; // Used for testing.
&gt; +    Vector&lt;LayoutRect&gt; m_trackedRepaintRects;

This seems like it should be IntRects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473169</commentid>
    <comment_count>13</comment_count>
      <attachid>108571</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-26 10:15:13 -0700</bug_when>
    <thetext>Comment on attachment 108571
Use the repaint rects to generate the repaint overlay in DRT and WTR

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

&gt; Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm:152
&gt; +    if (repaintRects) {
&gt; +        
&gt; +        for (NSValue *value in repaintRects) {

Unnecessary newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473264</commentid>
    <comment_count>14</comment_count>
      <attachid>108567</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 11:56:27 -0700</bug_when>
    <thetext>Comment on attachment 108567
Have FrameView track repaint rects and expose them in WK1

http://trac.webkit.org/changeset/95967</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473271</commentid>
    <comment_count>15</comment_count>
      <attachid>108569</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 12:00:47 -0700</bug_when>
    <thetext>Comment on attachment 108569
Expose repaint rects through WK2 private API

http://trac.webkit.org/changeset/95968</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473456</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 15:33:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/96005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473695</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-26 23:16:36 -0700</bug_when>
    <thetext>Qt-WK2 buildfixes landed in
http://trac.webkit.org/changeset/95989 
http://trac.webkit.org/changeset/96071</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108373</attachid>
            <date>2011-09-22 11:51:08 -0700</date>
            <delta_ts>2011-09-23 17:37:53 -0700</delta_ts>
            <desc>Have FrameView track repaint rects and expose them in WK1</desc>
            <filename>bug-68453-20110922115107.patch</filename>
            <type>text/plain</type>
            <size>8215</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU1NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Y2NhMzEwNjMwNWM1Mjdj
NTUxNmY4YmJhZTIxZjQxMDM4MDkzODY4Li45MjRlMGM2YTVmOTNmNGFjODU0MmUwZWE3NDMyZDFl
OWU4YjU0YzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDktMjIgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwYWludCB0ZXN0
cyBkb24ndCB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSGF2ZSBGcmFtZVZpZXcga2VlcCB0cmFjayBvZiByZXBhaW50IHJlY3Rz
IHdoZW4gYXNrZWQgdG8sIGFuZAorICAgICAgICBleHBvc2UgdGhpcyBzZXQgb2YgcmVwYWludCBy
ZWN0cyB2aWEgcHJpdmF0ZSBXZWJLaXQgQVBJIGZvciBsYXRlcgorICAgICAgICB1c2UgYnkgRHVt
cFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OkZyYW1lVmlldyk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzZXRUcmFja3NSZXBhaW50cyk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNUcmFja2luZ1JlcGFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzZXRUcmFja2VkUmVwYWludHMpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp0cmFja2VkUmVwYWludFJlY3RzKToKKwogMjAxMS0wOS0x
OSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIEhl
YXAgYWxsb2NhdGlvbiBsb2dpYyBpbnRvIHNlcGFyYXRlIEFsbG9jYXRpb25TcGFjZSBjbGFzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZDcyNDVmNjFiZTQ3MzZiYjdlMDM2NjM1ZGE2NTVkYjQy
OGI1MzVkLi42ZDQ5OWYyNWVjZGQ5ZDcwOTUxNWY0M2Q1Y2E5MjBjYzQxNWMxOGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtOTcxLDYgKzk3MSw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcx
NHNldFRyYW5zcGFyZW50RWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxNXNldE1hcmdpbkhlaWdo
dEVpCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTZzZXRQYWludEJlaGF2aW9yRWoKIF9fWk43V2Vi
Q29yZTlGcmFtZVZpZXcxN3NldFNjcm9sbFBvc2l0aW9uRVJLTlNfOEludFBvaW50RQorX19aTjdX
ZWJDb3JlOUZyYW1lVmlldzE3c2V0VHJhY2tzUmVwYWludHNFYgogX19aTjdXZWJDb3JlOUZyYW1l
VmlldzE4dXBkYXRlQ29udHJvbFRpbnRzRXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMGVudGVy
Q29tcG9zaXRpbmdNb2RlRXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMWZsdXNoRGVmZXJyZWRS
ZXBhaW50c0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMTNiZGU5NmY3MzY0NGEx
NTZiZDExOTE4OWI3NWM4YmUxNzdlMDYzNC4uOWQ1MDM4YzcwM2NmOTM2NTk4YTYyYWVhNTAxNTY0
MzNlOTMzNDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTMxLDYgKzEzMSw3
IEBAIEZyYW1lVmlldzo6RnJhbWVWaWV3KEZyYW1lKiBmcmFtZSkKICAgICAsIG1fd2FzU2Nyb2xs
ZWRCeVVzZXIoZmFsc2UpCiAgICAgLCBtX2luUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKQogICAg
ICwgbV9kZWZlcnJlZFJlcGFpbnRUaW1lcih0aGlzLCAmRnJhbWVWaWV3OjpkZWZlcnJlZFJlcGFp
bnRUaW1lckZpcmVkKQorICAgICwgbV9pc1RyYWNraW5nUmVwYWludHMoZmFsc2UpCiAgICAgLCBt
X3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKHRydWUpCiAgICAgLCBtX2RlZmVyU2V0TmVlZHNM
YXlvdXRzKDApCiAgICAgLCBtX3NldE5lZWRzTGF5b3V0V2FzRGVmZXJyZWQoZmFsc2UpCkBAIC0y
MjgsNiArMjI5LDggQEAgdm9pZCBGcmFtZVZpZXc6OnJlc2V0KCkKICAgICBtX3JlcGFpbnRSZWN0
cy5jbGVhcigpOwogICAgIG1fZGVmZXJyZWRSZXBhaW50RGVsYXkgPSBzX2luaXRpYWxEZWZlcnJl
ZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmc7CiAgICAgbV9kZWZlcnJlZFJlcGFpbnRUaW1lci5z
dG9wKCk7CisgICAgbV9pc1RyYWNraW5nUmVwYWludHMgPSBmYWxzZTsKKyAgICBtX3RyYWNrZWRS
ZXBhaW50UmVjdHMuY2xlYXIoKTsKICAgICBtX2xhc3RQYWludFRpbWUgPSAwOwogICAgIG1fcGFp
bnRCZWhhdmlvciA9IFBhaW50QmVoYXZpb3JOb3JtYWw7CiAgICAgbV9pc1BhaW50aW5nID0gZmFs
c2U7CkBAIC0xNjg2LDYgKzE2ODksOSBAQCBjb25zdCB1bnNpZ25lZCBjUmVwYWludFJlY3RVbmlv
blRocmVzaG9sZCA9IDI1Owogdm9pZCBGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xl
KGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlKQogewogICAgIEFTU0VSVCghbV9m
cmFtZS0+b3duZXJFbGVtZW50KCkpOworICAgIAorICAgIGlmIChtX2lzVHJhY2tpbmdSZXBhaW50
cykKKyAgICAgICAgbV90cmFja2VkUmVwYWludFJlY3RzLmFwcGVuZChyKTsKIAogICAgIGRvdWJs
ZSBkZWxheSA9IG1fZGVmZXJyaW5nUmVwYWludHMgPyAwIDogYWRqdXN0ZWREZWZlcnJlZFJlcGFp
bnREZWxheSgpOwogICAgIGlmICgobV9kZWZlcnJpbmdSZXBhaW50cyB8fCBtX2RlZmVycmVkUmVw
YWludFRpbWVyLmlzQWN0aXZlKCkgfHwgZGVsYXkpICYmICFpbW1lZGlhdGUpIHsKQEAgLTMwNDIs
NiArMzA0OCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJl
ZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcoZAogICAgIHNfZGVmZXJyZWRSZXBh
aW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gcDsKIH0KIAordm9pZCBGcmFtZVZpZXc6
OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBhaW50cykKK3sKKyAgICBpZiAodHJhY2tS
ZXBhaW50cyA9PSBtX2lzVHJhY2tpbmdSZXBhaW50cykKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIG1fdHJhY2tlZFJlcGFpbnRSZWN0cy5jbGVhcigpOworICAgIG1faXNUcmFja2luZ1JlcGFp
bnRzID0gdHJhY2tSZXBhaW50czsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmlzVmVydGljYWxEb2N1
bWVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
aW5kZXggMzNlMWQ5YzAzYTI2Mjc1NDNiYmIwZGE0N2E0NzlmYTRhNGIzYTIwMy4uNDk2MGY4MzVj
Y2U5MzZmNWMxMWJlZjU1NzdkZGQ1NzcwMmNjYWEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC0yOTAsNiArMjkwLDExIEBAIHB1YmxpYzoKICAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29u
dGVudEJveCgpIGNvbnN0OwogCiAgICAgdm9pZCBjbGVhck93bmluZ1JlbmRlcmVyRm9yQ3VzdG9t
U2Nyb2xsYmFycyhSZW5kZXJCb3gqKTsKKyAgICAKKyAgICB2b2lkIHNldFRyYWNrc1JlcGFpbnRz
KGJvb2wpOworICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9p
c1RyYWNraW5nUmVwYWludHM7IH0KKyAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRzKCkgeyBt
X3RyYWNrZWRSZXBhaW50UmVjdHMuY2xlYXIoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRS
ZWN0PiYgdHJhY2tlZFJlcGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tlZFJlcGFp
bnRSZWN0czsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNjcm9sbENvbnRlbnRz
RmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IExheW91dFJlY3QmIHJl
Y3RUb1Njcm9sbCwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpOwpAQCAtNDQwLDYgKzQ0NSw5
IEBAIHByaXZhdGU6CiAgICAgVGltZXI8RnJhbWVWaWV3PiBtX2RlZmVycmVkUmVwYWludFRpbWVy
OwogICAgIGRvdWJsZSBtX2RlZmVycmVkUmVwYWludERlbGF5OwogICAgIGRvdWJsZSBtX2xhc3RQ
YWludFRpbWU7CisgICAgCisgICAgYm9vbCBtX2lzVHJhY2tpbmdSZXBhaW50czsgLy8gVXNlZCBm
b3IgdGVzdGluZy4KKyAgICBWZWN0b3I8TGF5b3V0UmVjdD4gbV90cmFja2VkUmVwYWludFJlY3Rz
OwogCiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTdmNzE5NzAyMjgwMmIwNDAzZDNkNmZlOTYyNDM0MWZjNGMwMjFmMS4uMjhmNDYz
OWYxYjNkNjQyNGVjOWE4NDk0NjJhNjZjZmJjNTQ3ZjI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDExLTA5LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgdGVzdHMgZG9uJ3Qgd29yayBpbiBXZWJLaXQyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ1MworICAg
ICAgICAKKyAgICAgICAgSGF2ZSBGcmFtZVZpZXcga2VlcCB0cmFjayBvZiByZXBhaW50IHJlY3Rz
IHdoZW4gYXNrZWQgdG8sIGFuZAorICAgICAgICBleHBvc2UgdGhpcyBzZXQgb2YgcmVwYWludCBy
ZWN0cyB2aWEgcHJpdmF0ZSBXZWJLaXQgQVBJIGZvciBsYXRlcgorICAgICAgICB1c2UgYnkgRHVt
cFJlbmRlclRyZWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgc2V0VHJhY2tz
UmVwYWludHM6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaXNUcmFja2luZ1JlcGFpbnRzXSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdKToKKyAgICAgICAgKC1bV2Vi
VmlldyB0cmFja2VkUmVwYWludFJlY3RzXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oOgorCiAyMDExLTA5LTE5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdHJlYW1saW5lIENvbnNvbGUncyBNZXNzYWdl
VHlwZSBhbmQgTWVzc2FnZVNvdXJjZSBzZW1hbnRpY3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggYjc0MDMzNTUyMmRhMTQzODQ5ZWEzMWYwZjY1Zjc3ZTJiNzU2YmY1MS4u
ZjVhNTU5MjdhMjhmYjE0MDFlNzkwMTllY2JjYzE4YjIzMDZiYzZjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjQzNCw2ICsyNDM0LDQ1IEBAIHN0YXRpYyBpbmxpbmUg
SU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAgICByZXR1cm4gX3ByaXZhdGUtPmluY2x1ZGVz
RmxhdHRlbmVkQ29tcG9zaXRpbmdMYXllcnNXaGVuRHJhd2luZ1RvQml0bWFwOwogfQogCistICh2
b2lkKXNldFRyYWNrc1JlcGFpbnRzOihCT09MKWZsYWcKK3sKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBjb3Jl
RnJhbWUtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+c2V0VHJhY2tzUmVwYWludHMoZmxhZyk7Cit9
CisKKy0gKEJPT0wpaXNUcmFja2luZ1JlcGFpbnRzCit7CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZy
YW1lLT52aWV3KCkpCisgICAgICAgIHJldHVybiB2aWV3LT5pc1RyYWNraW5nUmVwYWludHMoKTsK
KyAgICAKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKHZvaWQpcmVzZXRUcmFja2VkUmVwYWludHMK
K3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOworICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+cmVz
ZXRUcmFja2VkUmVwYWludHMoKTsKK30KKworLSAoTlNBcnJheSopdHJhY2tlZFJlcGFpbnRSZWN0
cworeworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07CisgICAg
RnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCk7CisgICAgaWYgKCF2aWV3IHx8ICF2
aWV3LT5pc1RyYWNraW5nUmVwYWludHMoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGNv
bnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVwYWludFJlY3RzID0gdmlldy0+dHJhY2tlZFJlcGFpbnRS
ZWN0cygpOworICAgIE5TTXV0YWJsZUFycmF5KiByZWN0c0FycmF5ID0gW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpyZXBhaW50UmVjdHMuc2l6ZSgpXTsKKyAgICAKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVwYWludFJlY3RzLnNpemUoKTsgKytpKQorICAg
ICAgICBbcmVjdHNBcnJheSBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoUmVjdDpyZXBhaW50
UmVjdHNbaV1dXTsKKworICAgIHJldHVybiBbcmVjdHNBcnJheSBhdXRvcmVsZWFzZV07Cit9CisK
IC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJvYXJkCiB7CiAgICAgcmV0dXJuIF9w
cml2YXRlID8gX3ByaXZhdGUtPmluc2VydGlvblBhc3RlYm9hcmQgOiBuaWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggOTc4OTljMGI1YzM0NmQ2N2Uy
ODYzZjY2MzVjNzFmZjNiN2U0NGUxYS4uMGU0YTFhMDlkZDk4YmYyYjY5ODBiMmRlMWExMzIyNGFk
ZmQ2N2NkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApA
QCAtNDkzLDYgKzQ5MywxMSBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0g
KHZvaWQpX3NldEluY2x1ZGVzRmxhdHRlbmVkQ29tcG9zaXRpbmdMYXllcnNXaGVuRHJhd2luZ1Rv
Qml0bWFwOihCT09MKWZsYWc7CiAtIChCT09MKV9pbmNsdWRlc0ZsYXR0ZW5lZENvbXBvc2l0aW5n
TGF5ZXJzV2hlbkRyYXdpbmdUb0JpdG1hcDsKIAorLSAodm9pZClzZXRUcmFja3NSZXBhaW50czoo
Qk9PTClmbGFnOworLSAoQk9PTClpc1RyYWNraW5nUmVwYWludHM7CistICh2b2lkKXJlc2V0VHJh
Y2tlZFJlcGFpbnRzOworLSAoTlNBcnJheSopdHJhY2tlZFJlcGFpbnRSZWN0czsgLy8gUmV0dXJu
ZWQgYXJyYXkgY29udGFpbnMgcmVjdFZhbHVlIE5TVmFsdWVzLgorCiAvLyBXaGljaCBwYXN0ZWJv
YXJkIHRleHQgaXMgY29taW5nIGZyb20gaW4gZWRpdGluZyBkZWxlZ2F0ZSBtZXRob2RzIHN1Y2gg
YXMgc2hvdWxkSW5zZXJ0Tm9kZS4KIC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJv
YXJkOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108567</attachid>
            <date>2011-09-23 17:37:57 -0700</date>
            <delta_ts>2011-09-26 11:56:27 -0700</delta_ts>
            <desc>Have FrameView track repaint rects and expose them in WK1</desc>
            <filename>bug-68453-20110923173756.patch</filename>
            <type>text/plain</type>
            <size>8353</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMjQzZmU4MGZkMmFjMjA0
ZTNkOTFlZGJhOTEzNTUxNWIzYmY3ZGYzLi5lMGNmOTMxODZlMjRlNzMyNmUzNjZhYjdhYjQ3YTI4
MTY2OWVmYTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDktMjMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwYWludCB0ZXN0
cyBkb24ndCB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSGF2ZSBGcmFtZVZpZXcga2VlcCB0cmFjayBvZiByZXBhaW50IHJlY3Rz
IHdoZW4gYXNrZWQgdG8sIGFuZAorICAgICAgICBleHBvc2UgdGhpcyBzZXQgb2YgcmVwYWludCBy
ZWN0cyB2aWEgcHJpdmF0ZSBXZWJLaXQgQVBJIGZvciBsYXRlcgorICAgICAgICB1c2UgYnkgRHVt
cFJlbmRlclRyZWUuCisgICAgICAgIAorICAgICAgICBUaGUgcmVwYWludCByZWN0cyBhcmUgaW4g
V2ViVmlldyBjb29yZGluYXRlcywgc28gd2UgaGF2ZSB0bworICAgICAgICB1bmFwcGx5IHRoZSBz
Y3JvbGwgb2Zmc2V0LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2V0VHJhY2tzUmVwYWludHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmlzVHJhY2tpbmdSZXBhaW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0VHJhY2tlZFJlcGFpbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dHJhY2tlZFJlcGFpbnRSZWN0cyk6CisKIDIwMTEtMDkt
MjIgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFByb2dyZXNzIGNvbnRy
b2wgZ2V0cyBjcm9wcGVkIG9uIHRoZSBib3R0b20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2Yz
ZDFlMDQxYWEwNzE2MTMwMDllYjExMDAwMjI3NjYxMjFiZGM0ZS4uMzMwYjhhMzBkN2U0ZThiM2Vm
NTA0NzRiZTE3Nzg5ZTE1ZjY2OGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk3MCw2ICs5
NzAsNyBAQCBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTRzZXRUcmFuc3BhcmVudEViCiBfX1pON1dl
YkNvcmU5RnJhbWVWaWV3MTVzZXRNYXJnaW5IZWlnaHRFaQogX19aTjdXZWJDb3JlOUZyYW1lVmll
dzE2c2V0UGFpbnRCZWhhdmlvckVqCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTdzZXRTY3JvbGxQ
b3NpdGlvbkVSS05TXzhJbnRQb2ludEUKK19fWk43V2ViQ29yZTlGcmFtZVZpZXcxN3NldFRyYWNr
c1JlcGFpbnRzRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxOHVwZGF0ZUNvbnRyb2xUaW50c0V2
CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjBlbnRlckNvbXBvc2l0aW5nTW9kZUV2CiBfX1pON1dl
YkNvcmU5RnJhbWVWaWV3MjFmbHVzaERlZmVycmVkUmVwYWludHNFdgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGIwZmY4YjI0NjViN2UyYmU0NjY4NzliMzU0MzVlMzE2ZGE2ODViMWYu
LjQyNzgyNTM3ZmI1OTBjMGRjYjg5NjQwMmIwNGQ2MTRjNTE1MGZmYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTEzMSw2ICsxMzEsNyBAQCBGcmFtZVZpZXc6OkZyYW1lVmlldyhG
cmFtZSogZnJhbWUpCiAgICAgLCBtX3dhc1Njcm9sbGVkQnlVc2VyKGZhbHNlKQogICAgICwgbV9p
blByb2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKICAgICAsIG1fZGVmZXJyZWRSZXBhaW50VGltZXIo
dGhpcywgJkZyYW1lVmlldzo6ZGVmZXJyZWRSZXBhaW50VGltZXJGaXJlZCkKKyAgICAsIG1faXNU
cmFja2luZ1JlcGFpbnRzKGZhbHNlKQogICAgICwgbV9zaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVl
bih0cnVlKQogICAgICwgbV9kZWZlclNldE5lZWRzTGF5b3V0cygwKQogICAgICwgbV9zZXROZWVk
c0xheW91dFdhc0RlZmVycmVkKGZhbHNlKQpAQCAtMjI3LDYgKzIyOCw4IEBAIHZvaWQgRnJhbWVW
aWV3OjpyZXNldCgpCiAgICAgbV9yZXBhaW50UmVjdHMuY2xlYXIoKTsKICAgICBtX2RlZmVycmVk
UmVwYWludERlbGF5ID0gc19pbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5n
OwogICAgIG1fZGVmZXJyZWRSZXBhaW50VGltZXIuc3RvcCgpOworICAgIG1faXNUcmFja2luZ1Jl
cGFpbnRzID0gZmFsc2U7CisgICAgbV90cmFja2VkUmVwYWludFJlY3RzLmNsZWFyKCk7CiAgICAg
bV9sYXN0UGFpbnRUaW1lID0gMDsKICAgICBtX3BhaW50QmVoYXZpb3IgPSBQYWludEJlaGF2aW9y
Tm9ybWFsOwogICAgIG1faXNQYWludGluZyA9IGZhbHNlOwpAQCAtMTY4NSw2ICsxNjg4LDEyIEBA
IGNvbnN0IHVuc2lnbmVkIGNSZXBhaW50UmVjdFVuaW9uVGhyZXNob2xkID0gMjU7CiB2b2lkIEZy
YW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgciwgYm9v
bCBpbW1lZGlhdGUpCiB7CiAgICAgQVNTRVJUKCFtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSk7Cisg
ICAgCisgICAgaWYgKG1faXNUcmFja2luZ1JlcGFpbnRzKSB7CisgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QgPSByOworICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1zY3JvbGxPZmZzZXQo
KSk7CisgICAgICAgIG1fdHJhY2tlZFJlcGFpbnRSZWN0cy5hcHBlbmQocmVwYWludFJlY3QpOwor
ICAgIH0KIAogICAgIGRvdWJsZSBkZWxheSA9IG1fZGVmZXJyaW5nUmVwYWludHMgPyAwIDogYWRq
dXN0ZWREZWZlcnJlZFJlcGFpbnREZWxheSgpOwogICAgIGlmICgobV9kZWZlcnJpbmdSZXBhaW50
cyB8fCBtX2RlZmVycmVkUmVwYWludFRpbWVyLmlzQWN0aXZlKCkgfHwgZGVsYXkpICYmICFpbW1l
ZGlhdGUpIHsKQEAgLTMwNDUsNiArMzA1NCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0UmVwYWlu
dFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcoZAog
ICAgIHNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gcDsKIH0K
IAordm9pZCBGcmFtZVZpZXc6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBhaW50cykK
K3sKKyAgICBpZiAodHJhY2tSZXBhaW50cyA9PSBtX2lzVHJhY2tpbmdSZXBhaW50cykKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIG1fdHJhY2tlZFJlcGFpbnRSZWN0cy5jbGVhcigpOworICAg
IG1faXNUcmFja2luZ1JlcGFpbnRzID0gdHJhY2tSZXBhaW50czsKK30KKwogYm9vbCBGcmFtZVZp
ZXc6OmlzVmVydGljYWxEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggOTNlZTkxYWU5YTUwZWJjOTdhMTMxZDJmNWUzNzg4NjY3
ZDIxMDk3Yi4uOGJjZWE3N2Y5ZTI4ZGY4ODhlMmUwNzg3MjA2ZWJjYTZjMTk1MjY0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yOTIsNiArMjkyLDExIEBAIHB1YmxpYzoKICAgICBSZW5k
ZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OwogCiAgICAgdm9pZCBjbGVhck93bmlu
Z1JlbmRlcmVyRm9yQ3VzdG9tU2Nyb2xsYmFycyhSZW5kZXJCb3gqKTsKKyAgICAKKyAgICB2b2lk
IHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOworICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KKyAgICB2b2lkIHJlc2V0VHJh
Y2tlZFJlcGFpbnRzKCkgeyBtX3RyYWNrZWRSZXBhaW50UmVjdHMuY2xlYXIoKTsgfQorICAgIGNv
bnN0IFZlY3RvcjxMYXlvdXRSZWN0PiYgdHJhY2tlZFJlcGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhY2tlZFJlcGFpbnRSZWN0czsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBi
b29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNv
bnN0IExheW91dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3Qp
OwpAQCAtNDQ0LDYgKzQ0OSw5IEBAIHByaXZhdGU6CiAgICAgVGltZXI8RnJhbWVWaWV3PiBtX2Rl
ZmVycmVkUmVwYWludFRpbWVyOwogICAgIGRvdWJsZSBtX2RlZmVycmVkUmVwYWludERlbGF5Owog
ICAgIGRvdWJsZSBtX2xhc3RQYWludFRpbWU7CisgICAgCisgICAgYm9vbCBtX2lzVHJhY2tpbmdS
ZXBhaW50czsgLy8gVXNlZCBmb3IgdGVzdGluZy4KKyAgICBWZWN0b3I8TGF5b3V0UmVjdD4gbV90
cmFja2VkUmVwYWludFJlY3RzOwogCiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2Ny
ZWVuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMjdkNGUyMDY2YzU5ZjhkNzFjMzM4ZDM3MWZmN2Qw
MGE5MzhiZThkNy4uMzM1NjIyY2RjNTI1ZDE4YmFjMzViOTdlN2IzZGIxODIwZWJkODlkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA5LTIzICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgdGVzdHMgZG9uJ3Qg
d29yayBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02ODQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEhhdmUgRnJhbWVWaWV3IGtlZXAgdHJhY2sgb2YgcmVwYWludCByZWN0cyB3aGVuIGFz
a2VkIHRvLCBhbmQKKyAgICAgICAgZXhwb3NlIHRoaXMgc2V0IG9mIHJlcGFpbnQgcmVjdHMgdmlh
IHByaXZhdGUgV2ViS2l0IEFQSSBmb3IgbGF0ZXIKKyAgICAgICAgdXNlIGJ5IER1bXBSZW5kZXJU
cmVlLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IHNldFRyYWNrc1JlcGFpbnRzOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGlzVHJhY2tpbmdSZXBh
aW50c10pOgorICAgICAgICAoLVtXZWJWaWV3IHJlc2V0VHJhY2tlZFJlcGFpbnRzXSk6CisgICAg
ICAgICgtW1dlYlZpZXcgdHJhY2tlZFJlcGFpbnRSZWN0c10pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMS0wOS0yMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQgb2YgV2lkZ2V0OjpzZXRCb3VuZHNTaXpl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjc0MDMzNTUyMmRhMTQzODQ5
ZWEzMWYwZjY1Zjc3ZTJiNzU2YmY1MS4uZjVhNTU5MjdhMjhmYjE0MDFlNzkwMTllY2JjYzE4YjIz
MDZiYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjQzNCw2ICsy
NDM0LDQ1IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAgICBy
ZXR1cm4gX3ByaXZhdGUtPmluY2x1ZGVzRmxhdHRlbmVkQ29tcG9zaXRpbmdMYXllcnNXaGVuRHJh
d2luZ1RvQml0bWFwOwogfQogCistICh2b2lkKXNldFRyYWNrc1JlcGFpbnRzOihCT09MKWZsYWcK
K3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOworICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+c2V0
VHJhY2tzUmVwYWludHMoZmxhZyk7Cit9CisKKy0gKEJPT0wpaXNUcmFja2luZ1JlcGFpbnRzCit7
CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKKyAgICBpZiAo
RnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCkpCisgICAgICAgIHJldHVybiB2aWV3
LT5pc1RyYWNraW5nUmVwYWludHMoKTsKKyAgICAKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKHZv
aWQpcmVzZXRUcmFja2VkUmVwYWludHMKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYg
X21haW5Db3JlRnJhbWVdOworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZp
ZXcoKSkKKyAgICAgICAgdmlldy0+cmVzZXRUcmFja2VkUmVwYWludHMoKTsKK30KKworLSAoTlNB
cnJheSopdHJhY2tlZFJlcGFpbnRSZWN0cworeworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2Vs
ZiBfbWFpbkNvcmVGcmFtZV07CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3
KCk7CisgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT5pc1RyYWNraW5nUmVwYWludHMoKSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVwYWludFJlY3Rz
ID0gdmlldy0+dHJhY2tlZFJlcGFpbnRSZWN0cygpOworICAgIE5TTXV0YWJsZUFycmF5KiByZWN0
c0FycmF5ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpyZXBhaW50
UmVjdHMuc2l6ZSgpXTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVwYWlu
dFJlY3RzLnNpemUoKTsgKytpKQorICAgICAgICBbcmVjdHNBcnJheSBhZGRPYmplY3Q6W05TVmFs
dWUgdmFsdWVXaXRoUmVjdDpyZXBhaW50UmVjdHNbaV1dXTsKKworICAgIHJldHVybiBbcmVjdHNB
cnJheSBhdXRvcmVsZWFzZV07Cit9CisKIC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0
ZWJvYXJkCiB7CiAgICAgcmV0dXJuIF9wcml2YXRlID8gX3ByaXZhdGUtPmluc2VydGlvblBhc3Rl
Ym9hcmQgOiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggOTc4OTljMGI1YzM0NmQ2N2UyODYzZjY2MzVjNzFmZjNiN2U0NGUxYS4uMGU0YTFhMDlk
ZDk4YmYyYjY5ODBiMmRlMWExMzIyNGFkZmQ2N2NkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtNDkzLDYgKzQ5MywxMSBAQCBDb3VsZCBiZSB3b3J0
aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKHZvaWQpX3NldEluY2x1ZGVzRmxhdHRlbmVkQ29tcG9z
aXRpbmdMYXllcnNXaGVuRHJhd2luZ1RvQml0bWFwOihCT09MKWZsYWc7CiAtIChCT09MKV9pbmNs
dWRlc0ZsYXR0ZW5lZENvbXBvc2l0aW5nTGF5ZXJzV2hlbkRyYXdpbmdUb0JpdG1hcDsKIAorLSAo
dm9pZClzZXRUcmFja3NSZXBhaW50czooQk9PTClmbGFnOworLSAoQk9PTClpc1RyYWNraW5nUmVw
YWludHM7CistICh2b2lkKXJlc2V0VHJhY2tlZFJlcGFpbnRzOworLSAoTlNBcnJheSopdHJhY2tl
ZFJlcGFpbnRSZWN0czsgLy8gUmV0dXJuZWQgYXJyYXkgY29udGFpbnMgcmVjdFZhbHVlIE5TVmFs
dWVzLgorCiAvLyBXaGljaCBwYXN0ZWJvYXJkIHRleHQgaXMgY29taW5nIGZyb20gaW4gZWRpdGlu
ZyBkZWxlZ2F0ZSBtZXRob2RzIHN1Y2ggYXMgc2hvdWxkSW5zZXJ0Tm9kZS4KIC0gKE5TUGFzdGVi
b2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJvYXJkOwogCg==
</data>
<flag name="review"
          id="105564"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108569</attachid>
            <date>2011-09-23 17:49:16 -0700</date>
            <delta_ts>2011-09-26 12:00:47 -0700</delta_ts>
            <desc>Expose repaint rects through WK2 private API</desc>
            <filename>bug-68453-20110923174915.patch</filename>
            <type>text/plain</type>
            <size>18073</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkYjQzMzU0MTE1NDAxZjJk
NDNhYzVjMGNhZjRmNTlkNGMyN2Y1MzVjLi43NDhiZDI0ZDY4Y2Q1YTQwZThlMzMxMTU2NTFlYzhh
NWE3ZjBlYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDktMjMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwYWludCB0ZXN0
cyBkb24ndCB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIAorICAgICAgICBFeHBvc2UgV0tCdW5kbGVQYWdlIG1ldGhvZHMgdG8gdHVy
biBvbiByZXBhaW50IHJlY3QgdHJhY2tpbmcKKyAgICAgICAgaW4gV2ViS2l0MiwgZm9yIFdlYktp
dFRlc3RSdW5uZXIuCisgICAgICAgIAorICAgICAgICBBcyBwYXJ0IG9mIHRoZSBjaGFuZ2UsIGV4
cG9zZSB1dGlsaXR5IG1ldGhvZHMgb24gV2ViUGFnZQorICAgICAgICB0byBnZXQgdGhlIG1haW4g
RnJhbWUgYW5kIEZyYW1lVmlldywgd2hpY2ggcmVxdWlyZWQgcmVuYW1pbmcKKyAgICAgICAgdGhl
IGV4aXNpdGluZyBtZXRob2QgdGhhdCByZXR1cm5zIGEgV2ViRnJhbWUuIEZpeCBjYWxsZXJzCisg
ICAgICAgIG9mIHRoYXQgbWV0aG9kIHRvIGhhbmRsZSBudWxsIHdoZW4gbmVjZXNzYXJ5LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
OgorICAgICAgICAoV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKToKKyAgICAgICAgKFdLQnVuZGxl
UGFnZVNldFRyYWNrc1JlcGFpbnRzKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUlzVHJhY2tpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VSZXNldFRyYWNrZWRSZXBhaW50cyk6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VDb3B5VHJhY2tlZFJlcGFpbnRSZWN0cyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmlyc3RMYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMYXlvdXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkQ29tcGxl
dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9u
YWxMb2FkU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0
cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojpkb2N1bWVudEZyYWdtZW50RnJv
bUF0dHJpYnV0ZWRTdHJpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppc01haW5GcmFtZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzZXRUcmFja3NSZXBhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVHJh
Y2tpbmdSZXBhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc2V0VHJhY2tlZFJl
cGFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsZWFyTWFpbkZyYW1lTmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmxheW91dElmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWFpbkZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjptYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJh
bWVWaWV3KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjptYWluV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbToKKyAgICAgICAgKC1b
V0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpdKToKKwog
MjAxMS0wOS0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgQVBJT2JqZWN0cyBmb3IgU2l6ZSwgUG9pbnQsIFJlY3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcAppbmRleCA5ZjE5NzMzOTVhNmZjMTAzY2FiOGYwYTI1OTI2NGUxMDViYzM3
ODU5Li41Y2JmYzViYWVmMWJiZGRmOTYxMzljNTY4MjE1M2RhMzZhODUxOWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgV0tCdW5kbGVQYWdlR3Jv
dXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQog
CiBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJh
bWUoKSk7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChwYWdlUmVmKS0+bWFpbldlYkZyYW1lKCkp
OwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVN0b3BMb2FkaW5nKFdLQnVuZGxlUGFnZVJlZiBwYWdl
UmVmKQpAQCAtMjcwLDMgKzI3MCwyNCBAQCB1aW50NjRfdCBXS0J1bmRsZVBhZ2VHZXRSZW5kZXJU
cmVlU2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKHBh
Z2VSZWYpLT5yZW5kZXJUcmVlU2l6ZSgpOwogfQorCit2b2lkIFdLQnVuZGxlUGFnZVNldFRyYWNr
c1JlcGFpbnRzKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBib29sIHRyYWNrUmVwYWludHMpCit7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRUcmFja3NSZXBhaW50cyh0cmFja1JlcGFpbnRzKTsK
K30KKworYm9vbCBXS0J1bmRsZVBhZ2VJc1RyYWNraW5nUmVwYWludHMoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+aXNUcmFja2luZ1JlcGFp
bnRzKCk7Cit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlUmVzZXRUcmFja2VkUmVwYWludHMoV0tCdW5k
bGVQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5yZXNldFRyYWNrZWRS
ZXBhaW50cygpOworfQorCitXS0FycmF5UmVmIFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVwYWlu
dFJlY3RzKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0lt
cGwocGFnZVJlZiktPnRyYWNrZWRSZXBhaW50UmVjdHMoKS5yZWxlYXNlUmVmKCkpOworfQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCmluZGV4IDIzYmQwMThhZGQ0ZWU0
MDdmZWVkNWM2YjhiZTg1ZDg2ZDMwM2ExZWUuLmJjMDFjY2E2MThlZTkzYjAyZDQwOTY3NTdhYzdk
MTViMjNhY2Q5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCkBA
IC01NSw2ICs1NSwxMiBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNl
TW90aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvcwogCiBXS19FWFBPUlQgdWlu
dDY0X3QgV0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tCdW5kbGVQYWdlUmVmIHBhZ2Up
OwogCitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRUcmFja3NSZXBhaW50cyhXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgYm9vbCB0cmFja1JlcGFpbnRzKTsKK1dLX0VYUE9SVCBib29sIFdLQnVu
ZGxlUGFnZUlzVHJhY2tpbmdSZXBhaW50cyhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitXS19FWFBP
UlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXNldFRyYWNrZWRSZXBhaW50cyhXS0J1bmRsZVBhZ2VSZWYg
cGFnZSk7CitXS19FWFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZVBhZ2VDb3B5VHJhY2tlZFJlcGFp
bnRSZWN0cyhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CisKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA1Njg0NTVlMGY2ZDVlZTcwMzQ5
YjdkMThlZWQyZDRmZjdiNjkxYjViLi5iNWRjOTg1NjI3MWViMmM5N2U3MThjZWJiNTg4MTM5YWU5
OTdlMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIHN0YXRp
YyBXZWJGcmFtZSogZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSogcGFnZSkKIHsK
ICAgICAvLyBBcHByb3hpbWF0ZSB3aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRlZmF1bHQg
dGFyZ2V0IGZyYW1lIGZvciBhcHBsaWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCiAKLSAgICBXZWJG
cmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgV2ViRnJhbWUqIG1haW5G
cmFtZSA9IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghbWFpbkZyYW1lLT5pc0ZyYW1l
U2V0KCkpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCkt
PnNldEdyb3VwTmFtZShTdHJpbmcoKSk7CiAKLSAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gbV9w
YWdlLT5tYWluRnJhbWUoKSkgeworICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1h
aW5XZWJGcmFtZSgpKSB7CiAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNv
cmVGcmFtZSgpKQogICAgICAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS0+c3RvcEZvclVzZXJD
YW5jZWwoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRk
ZmJkM2ZhMjk2YzE5ZmMwYjcwODEyNDU3MGIwZDg4NDhlNWVmNTEuLjQ1OWFjNGRlMDhmM2EwNzBi
OTAwMjg4MWM2MGE3ZGM4NDlkYTU1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC01MzcsNyArNTM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGaXJzdExheW91dCgpCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaXJzdExheW91dEZvckZyYW1l
KG1fZnJhbWUtPmZyYW1lSUQoKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIodXNl
ckRhdGEuZ2V0KCkpKSk7CiAKLSAgICBpZiAobV9mcmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1h
aW5GcmFtZSgpKQorICAgIGlmIChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbldlYkZy
YW1lKCkpCiAgICAgICAgIHdlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnNldExheWVyVHJlZVN0YXRl
SXNGcm96ZW4oZmFsc2UpOwogfQogCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMYXlvdXQoKQogICAgIC8vIHRoZSBVSVByb2Nlc3MgZm9y
IGV2ZXJ5IGNhbGwuCiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIGF0IHRoZSBzb29uZXN0IHBvc3Np
YmxlIHRpbWUuCi0gICAgaWYgKG1fZnJhbWUgPT0gbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUo
KSkKKyAgICBpZiAobV9mcmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5XZWJGcmFtZSgpKQog
ICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFJlbmRlclRy
ZWVTaXplKHdlYlBhZ2UtPnJlbmRlclRyZWVTaXplKCkpKTsKIH0KIApAQCAtMTAzMyw3ICsxMDMz
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ZyYW1lID09IG1f
ZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpCisgICAgaWYgKG1fZnJhbWUgPT0gbV9mcmFtZS0+
cGFnZSgpLT5tYWluV2ViRnJhbWUoKSkKICAgICAgICAgd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKS0+
c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7CiB9CiAKQEAgLTEwNTAsNyArMTA1MCw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUoKQogCiAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkuIFdlYkNvcmUgc2hvdWxkIGJl
IGNvcnJlY3RseSBpbnZhbGlkYXRpbmcKICAgICAvLyB0aGUgdmlldyBvbiByZXN0b3JlcyBmcm9t
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgaWYgKG1fZnJhbWUgPT0gbV9mcmFtZS0+cGFn
ZSgpLT5tYWluRnJhbWUoKSkKKyAgICBpZiAobV9mcmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1h
aW5XZWJGcmFtZSgpKQogICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNl
dE5lZWRzRGlzcGxheShtX2ZyYW1lLT5wYWdlKCktPmJvdW5kcygpKTsKIH0KIApAQCAtMTA2MCw3
ICsxMDYwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9uYWxMb2FkU3Rh
cnRlZCgpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9m
cmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKQorICAgIGlmIChtX2ZyYW1lID09
IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbldlYkZyYW1lKCkpCiAgICAgICAgIHdlYlBhZ2UtPmRyYXdp
bmdBcmVhKCktPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4odHJ1ZSk7CiB9CiAKQEAgLTExMDgs
NyArMTEwOCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVQbGF0Zm9ybURhdGFU
b0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lKikKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRy
YW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7CiAgICAg
V2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBib29sIGlzTWFpbkZyYW1l
ID0gd2ViUGFnZS0+bWFpbkZyYW1lKCkgPT0gbV9mcmFtZTsKKyAgICBib29sIGlzTWFpbkZyYW1l
ID0gd2ViUGFnZS0+bWFpbldlYkZyYW1lKCkgPT0gbV9mcmFtZTsKICAgICAKICAgICBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tUmVw
cmVzZW50YXRpb24gPSBpc01haW5GcmFtZSAmJiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zaG91bGRV
c2VDdXN0b21SZXByZXNlbnRhdGlvbkZvclJlc3BvbnNlKHJlc3BvbnNlKTsKQEAgLTExMTksNyAr
MTExOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UoKQogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAg
ICAgQ29sb3IgYmFja2dyb3VuZENvbG9yID0gd2ViUGFnZS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tn
cm91bmQoKSA/IENvbG9yOjp0cmFuc3BhcmVudCA6IENvbG9yOjp3aGl0ZTsKIAotICAgIGJvb2wg
aXNNYWluRnJhbWUgPSB3ZWJQYWdlLT5tYWluRnJhbWUoKSA9PSBtX2ZyYW1lOworICAgIGJvb2wg
aXNNYWluRnJhbWUgPSB3ZWJQYWdlLT5tYWluV2ViRnJhbWUoKSA9PSBtX2ZyYW1lOwogCiAjaWYg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgSW50U2l6ZSBjdXJyZW50VmlzaWJsZUNv
bnRlbnRTaXplID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKSA/IG1fZnJhbWUtPmNvcmVG
cmFtZSgpLT52aWV3KCktPnZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSA6IEludFNpemUoKTsK
QEAgLTEyMzcsNyArMTIzNyw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luCiAgICAgcGFyYW1l
dGVycy5sb2FkTWFudWFsbHkgPSBsb2FkTWFudWFsbHk7CiAgICAgcGFyYW1ldGVycy5kb2N1bWVu
dFVSTCA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKTsK
IAotICAgIEZyYW1lKiBtYWluRnJhbWUgPSB3ZWJQYWdlLT5tYWluRnJhbWUoKS0+Y29yZUZyYW1l
KCk7CisgICAgRnJhbWUqIG1haW5GcmFtZSA9IHdlYlBhZ2UtPm1haW5XZWJGcmFtZSgpLT5jb3Jl
RnJhbWUoKTsKICAgICBpZiAobV9mcmFtZS0+Y29yZUZyYW1lKCkgPT0gbWFpbkZyYW1lKQogICAg
ICAgICBwYXJhbWV0ZXJzLnRvcGxldmVsRG9jdW1lbnRVUkwgPSBwYXJhbWV0ZXJzLmRvY3VtZW50
VVJMOwogICAgIGVsc2UgaWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLT5jYW5BY2Nlc3MobWFpbkZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tCmluZGV4IDA1OTgx
MDAzNWZjMzdhZWI1M2ZhNTU1Y2M3MWFhNTVkOTkxNGQ1ZDUuLjlhMjdiZTgzYzYxZTliNzhkOWZj
NjI3MzAyOGFhMWFkMTczMDFjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMu
bW0KQEAgLTExNCw4ICsxMTQsOSBAQCBEb2N1bWVudEZyYWdtZW50KiBXZWJFZGl0b3JDbGllbnQ6
OmRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmlidXRlZFN0cmluZyhOU0F0dHJpYgogICAgICAgICBO
U0V4Y2x1ZGVkRWxlbWVudHNEb2N1bWVudEF0dHJpYnV0ZSwgbmlsLCBAIldlYlJlc291cmNlSGFu
ZGxlciIsIG5pbF07CiAgICAgCiAgICAgTlNBcnJheSAqc3ViUmVzb3VyY2VzOworICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkgPyBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5kb2N1bWVudCgpIDogMDsKICAgICBET01Eb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCA9IFtz
dHJpbmcgX2RvY3VtZW50RnJvbVJhbmdlOk5TTWFrZVJhbmdlKDAsIFtzdHJpbmcgbGVuZ3RoXSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50OmtpdChtX3BhZ2UtPm1haW5GcmFtZSgpLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50OmtpdChkb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnRBdHRyaWJ1dGVzOmRpY3Rpb25hcnkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicmVzb3VyY2VzOiZzdWJSZXNvdXJj
ZXNdOwogICAgIGZvciAoV2ViUmVzb3VyY2UqIHJlc291cmNlIGluIHN1YlJlc291cmNlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDQ1
ZmVhYjEyMGFiZDlmMGU5ZmE1N2M4ODdhMTBmOTg4MDNmNzljOWMuLmFlNTM3NTU1YjY3ZGFlMzdk
NDQzMTc5MDNlNGUwMTY1OTY2YzhmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIGJvb2wgV2ViRnJhbWU6
OmlzRnJhbWVTZXQoKSBjb25zdAogYm9vbCBXZWJGcmFtZTo6aXNNYWluRnJhbWUoKSBjb25zdAog
ewogICAgIGlmIChXZWJQYWdlKiBwID0gcGFnZSgpKQotICAgICAgICByZXR1cm4gcC0+bWFpbkZy
YW1lKCkgPT0gdGhpczsKKyAgICAgICAgcmV0dXJuIHAtPm1haW5XZWJGcmFtZSgpID09IHRoaXM7
CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTFmMDBhZTU2MTYwY2IyNjQ0M2UwZGE3YTQwMjEyMmI1
MDYyNmJjNC4uNzUwNDZlYTkwMDZiOTIxNmFkMTBjZDAzMTllZjBiZmNiOTY2OTFlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTcsNiAr
NTcsNyBAQAogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1h
bmFnZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldl
Ykdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3IuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JDbGllbnQuaCIKQEAgLTM3NSw2ICszNzYsNDYg
QEAgdWludDY0X3QgV2ViUGFnZTo6cmVuZGVyVHJlZVNpemUoKSBjb25zdAogICAgIHJldHVybiBz
aXplOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBh
aW50cykKK3sKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lVmlldygpKQorICAg
ICAgICB2aWV3LT5zZXRUcmFja3NSZXBhaW50cyh0cmFja1JlcGFpbnRzKTsKK30KKworYm9vbCBX
ZWJQYWdlOjppc1RyYWNraW5nUmVwYWludHMoKSBjb25zdAoreworICAgIGlmIChGcmFtZVZpZXcq
IHZpZXcgPSBtYWluRnJhbWVWaWV3KCkpCisgICAgICAgIHJldHVybiB2aWV3LT5pc1RyYWNraW5n
UmVwYWludHMoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXNl
dFRyYWNrZWRSZXBhaW50cygpCit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1haW5GcmFt
ZVZpZXcoKSkKKyAgICAgICAgdmlldy0+cmVzZXRUcmFja2VkUmVwYWludHMoKTsKK30KKworUGFz
c1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0cygpCit7
CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lVmlldygpOworICAgIGlmICghdmlldykK
KyAgICAgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUoKTsKKworICAgIGNvbnN0IFZl
Y3RvcjxJbnRSZWN0PiYgcmVjdHMgPSB2aWV3LT50cmFja2VkUmVwYWludFJlY3RzKCk7CisgICAg
c2l6ZV90IHNpemUgPSByZWN0cy5zaXplKCk7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1
cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZSgpOworCisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmpl
Y3Q+ID4gdmVjdG9yOworICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOwor
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIHZlY3Rvci51
bmNoZWNrZWRBcHBlbmQoV2ViUmVjdDo6Y3JlYXRlKHRvQVBJKHJlY3RzW2ldKSkpOworCisgICAg
cmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9wdCh2ZWN0b3IpOworfQorCiB2b2lkIFdlYlBhZ2U6
OmV4ZWN1dGVFZGl0aW5nQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBT
dHJpbmcmIGFyZ3VtZW50KQogewogICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwpAQCAtMzk1LDcgKzQzNiw4IEBAIGJvb2wg
V2ViUGFnZTo6aXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSkKICAgICAKIHZvaWQgV2ViUGFnZTo6Y2xlYXJNYWluRnJhbWVOYW1lKCkKIHsKLSAgICBtYWlu
RnJhbWUoKS0+Y29yZUZyYW1lKCktPnRyZWUoKS0+Y2xlYXJOYW1lKCk7CisgICAgaWYgKEZyYW1l
KiBmcmFtZSA9IG1haW5GcmFtZSgpKQorICAgICAgICBmcmFtZS0+dHJlZSgpLT5jbGVhck5hbWUo
KTsKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTYwNyw3ICs2NDks
NyBAQCB2b2lkIFdlYlBhZ2U6OmxheW91dElmTmVlZGVkKCkKICAgICAgICAgbV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLT52aWV3KCktPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNp
dmUoKTsKIAogICAgIGlmIChtX3VuZGVybGF5UGFnZSkgewotICAgICAgICBpZiAoRnJhbWVWaWV3
ICpmcmFtZVZpZXcgPSBtX3VuZGVybGF5UGFnZS0+bWFpbkZyYW1lKCktPmNvcmVGcmFtZSgpLT52
aWV3KCkpCisgICAgICAgIGlmIChGcmFtZVZpZXcgKmZyYW1lVmlldyA9IG1fdW5kZXJsYXlQYWdl
LT5tYWluRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBmcmFtZVZpZXctPnVwZGF0ZUxheW91dEFu
ZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKICAgICB9CiB9CkBAIC0xOTk1LDcgKzIwMzcsMTAg
QEAgdm9pZCBXZWJQYWdlOjpjbGVhclNlbGVjdGlvbigpCiAKIGJvb2wgV2ViUGFnZTo6bWFpbkZy
YW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24oKSBjb25zdAogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KG1haW5GcmFtZSgpLT5jb3JlRnJhbWUoKS0+bG9h
ZGVyKCktPmNsaWVudCgpKS0+ZnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbigpOworICAgIGlm
IChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPmZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb24oKTsKKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JNYWluRnJhbWUoKQpAQCAtMjQ2NCw0
ICsyNTA5LDE3IEBAIHZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJ
bnRQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2
ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlTW92ZSwgV2ViTW91c2VFdmVudDo6Tm9CdXR0b24sIHBv
c2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgMCwgV2ViTW91c2VFdmVudDo6TW9kaWZpZXJzKCks
IHRpbWUpKTsKIH0KIAorRnJhbWUqIFdlYlBhZ2U6Om1haW5GcmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcGFnZSA/IG1fcGFnZS0+bWFpbkZyYW1lKCkgOiAwOworfQorCitGcmFtZVZpZXcq
IFdlYlBhZ2U6Om1haW5GcmFtZVZpZXcoKSBjb25zdAoreworICAgIGlmIChGcmFtZSogZnJhbWUg
PSBtYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT52aWV3KCk7CisgICAgCisgICAg
cmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2JiODhmZTkwNGM4MWI4NzBmMGNjNWU5
ZTAyOTMzMTY3NDZkMTI2My4uZDUwY2RlMzRlMDU0MjQyOGQ2ZmY5MjcxNzFiNzA1ZWVkZjk1MWE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmluZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIkltYWdlT3B0aW9u
cy5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmgi
CkBAIC04MCw2ICs4MSw4IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBj
bGFzcyBGcmFtZVZpZXc7CiAgICAgY2xhc3MgS2V5Ym9hcmRFdmVudDsKICAgICBjbGFzcyBQYWdl
OwogICAgIGNsYXNzIFByaW50Q29udGV4dDsKQEAgLTIyMiw3ICsyMjUsMTEgQEAgcHVibGljOgog
CiAgICAgYm9vbCBmaW5kU3RyaW5nRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFN0cmluZyYsIEZp
bmRPcHRpb25zKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X21haW5GcmFtZS5nZXQoKTsgfQorICAgIFdlYkZyYW1lKiBtYWluV2ViRnJhbWUoKSBjb25zdCB7
IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQorCisgICAgV2ViQ29yZTo6RnJhbWUqIG1haW5G
cmFtZSgpIGNvbnN0OyAvLyBNYXkgcmV0dXJuIDAuCisgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiBt
YWluRnJhbWVWaWV3KCkgY29uc3Q7IC8vIE1heSByZXR1cm4gMC4KKwogICAgIFBhc3NSZWZQdHI8
UGx1Z2luPiBjcmVhdGVQbHVnaW4oY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJik7CiAKICAgICBF
ZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSgpIGNvbnN0OwpAQCAtMjMwLDYgKzIzNywxMSBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIHJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKCkgY29uc3Q7
CiAgICAgdWludDY0X3QgcmVuZGVyVHJlZVNpemUoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0VHJh
Y2tzUmVwYWludHMoYm9vbCk7CisgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdDsK
KyAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRzKCk7CisgICAgUGFzc1JlZlB0cjxJbW11dGFi
bGVBcnJheT4gdHJhY2tlZFJlcGFpbnRSZWN0cygpOworCiAgICAgdm9pZCBleGVjdXRlRWRpdGlu
Z0NvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVu
dCk7CiAgICAgYm9vbCBpc0VkaXRpbmdDb21tYW5kRW5hYmxlZChjb25zdCBTdHJpbmcmIGNvbW1h
bmROYW1lKTsKICAgICB2b2lkIGNsZWFyTWFpbkZyYW1lTmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCmluZGV4IDdjZjViNGI3NGQ4MmYwM2JkMmFjZWNiZjlh
ZTY1ZjM2NmIwNDc3YWIuLmM1NTNhNTVjMTVkYjAyNjJhZjNkODBhNGIwOWFhMzgyYWFkYWYwYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0KQEAgLTE3NiwxMiAr
MTc2LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgcG9pbnQueSAtPSByZW1vdGVQ
b3NpdGlvbi55OwogICAgIHBvaW50LnggLT0gcmVtb3RlUG9zaXRpb24ueDsKICAgICAKLSAgICBp
ZiAobV9wYWdlICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkgJiYgbV9wYWdlLT5tYWluRnJhbWUoKS0+
Y29yZUZyYW1lKCkpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiBmdiA9IG1fcGFnZS0+
bWFpbkZyYW1lKCktPmNvcmVGcmFtZSgpLT52aWV3KCk7Ci0gICAgICAgIGlmIChmdikgewotICAg
ICAgICAgICAgcG9pbnQueSArPSBmdi0+c2Nyb2xsUG9zaXRpb24oKS55KCk7Ci0gICAgICAgICAg
ICBwb2ludC54ICs9IGZ2LT5zY3JvbGxQb3NpdGlvbigpLngoKTsKLSAgICAgICAgfQorICAgIFdl
YkNvcmU6OkZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9wYWdlID8gbV9wYWdlLT5tYWluRnJhbWVW
aWV3KCkgOiAwOworICAgIGlmIChmcmFtZVZpZXcpIHsKKyAgICAgICAgcG9pbnQueSArPSBmcmFt
ZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkueSgpOworICAgICAgICBwb2ludC54ICs9IGZyYW1lVmll
dy0+c2Nyb2xsUG9zaXRpb24oKS54KCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBbW3NlbGYg
YWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpwb2lu
dF07Cg==
</data>
<flag name="review"
          id="105565"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="105573"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108571</attachid>
            <date>2011-09-23 17:56:10 -0700</date>
            <delta_ts>2011-09-26 10:15:13 -0700</delta_ts>
            <desc>Use the repaint rects to generate the repaint overlay in DRT and WTR</desc>
            <filename>bug-68453-20110923175609.patch</filename>
            <type>text/plain</type>
            <size>15083</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3NTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiN2M0ZTczOGYxNzkzNTMxOGU3NzE3ZTUwOWY2NGViZTRj
N2VlNDk1Li4yZGM1Njg2Mzc5YjkyMzliN2Q4ZDFkNmNmY2I3OWUzN2VmN2MwYjQ0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMTEtMDktMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwYWludCB0ZXN0cyBkb24ndCB3b3JrIGluIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBDb252ZXJ0IER1bXBS
ZW5kZXJUcmVlIHRvIHVzZSB1c2UgdGhlIHJlcGFpbnQgcmVjdHMKKyAgICAgICAgZXhwb3NlZCB2
aWEgV2ViS2l0IEFQSSB3aGVuIGdlbmVyYXRpbmcgdGhlIHJlcGFpbnQgdGVzdAorICAgICAgICBv
dmVybGF5LgorICAgICAgICAKKyAgICAgICAgRml4IFdlYktpdFRlc3RSdW5uZXIgdG8gd29yayB3
aXRoIHJlcGFpbnQgdGVzdHMsIGFnYWluCisgICAgICAgIHVzaW5nIHRoZSByZXBhaW50IHJlY3Rz
IGV4cG9zZWQgZnJvbSBXSzIuCisgICAgICAgIAorICAgICAgICBJbiBib3RoIGNhc2VzLCBsYXlv
dXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCkgbm93IGp1c3QKKyAgICAgICAgZm9yY2VzIGEgZGlz
cGxheSBvZiB0aGUgd2ViIHZpZXcsIGFuZCB0dXJucyBvbiByZXBhaW50CisgICAgICAgIHJlY3Qg
dHJhY2tpbmcgb24gdGhlIG1haW4gRnJhbWVWaWV3LgorICAgICAgICAKKyAgICAgICAgTGF0ZXIs
IHdoZW4gcGl4ZWwgcmVzdWx0cyBhcmUgcmVxdWVzdGVkLCB0aGUgYWxwaGEgb3ZlcmxheQorICAg
ICAgICB0aGF0IHNob3dzIHRoZSByZXBhaW50IHJlY3RzIGlzIGdlbmVyYXRlZCB1c2luZyB0aGUg
bGlzdAorICAgICAgICBvZiByZWN0cyBzdXBwbGllZCBieSBXZWJDb3JlLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXREZWZh
dWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAoZGlzcGxheVdlYlZpZXcpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tOgorICAgICAgICAo
cGFpbnRSZXBhaW50UmVjdE92ZXJsYXkpOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVz
dGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkb25lKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlOjpzZXRSZXBhaW50UmVjdHMpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpyZXNldCk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZHVtcCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRl
c3RDb250cm9sbGVyOjpkaXNwbGF5KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2Nh
dGlvbkNHLmNwcDoKKyAgICAgICAgKFdUUjo6cGFpbnRSZXBhaW50UmVjdE92ZXJsYXkpOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0
ZWQpOgorCiAyMDExLTA5LTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCBzaG91bGQgY2FsbCAtW1dLVmll
dyBtb3VzZVVwOl0gaW5zdGVhZCBvZiAtW1dLVmlldyBtb3VzZURvd246XQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDVmMzhhZTRjZDYzNDAzY2MyMDk2
MjFmOTY3N2E4MDY4OGNhOWFlMGQuLjIwN2I0MjFiMmRiNWFjNmY1MDMzYTI2OGMyNzZkNjFjNjUw
ODE2MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAg
LTM1MCw3ICszNTAsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpYnJhcnlQYXRoRm9yRHVtcFJlbmRl
clRyZWUoKQogLy8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCiBzdGF0aWMgdm9pZCByZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKIHsKLSAgICAvLyBHaXZlIHNvbWUgY2xlYXIgdG8g
dW5kb2N1bWVudGVkIGRlZmF1bHRzIHZhbHVlcwogICAgIHN0YXRpYyBjb25zdCBpbnQgTm9Gb250
U21vb3RoaW5nID0gMDsKICAgICBzdGF0aWMgY29uc3QgaW50IEJsdWVUaW50ZWRBcHBlYXJhbmNl
ID0gMTsKIApAQCAtMTAxMiw3ICsxMDExLDggQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICBbV2ViVmlldyBfcmVtb3ZlQWxsVXNl
ckNvbnRlbnRGcm9tR3JvdXA6W3dlYlZpZXcgZ3JvdXBOYW1lXV07CiAgICAgW1t3ZWJWaWV3IHdp
bmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwogICAgIFt3ZWJWaWV3IF9zZXRNaW5pbXVtVGltZXJJ
bnRlcnZhbDpbV2ViVmlldyBfZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsXV07Ci0KKyAgICBb
d2ViVmlldyBzZXRUcmFja3NSZXBhaW50czpOT107CisgICAgCiAgICAgcmVzZXREZWZhdWx0c1Rv
Q29uc2lzdGVudFZhbHVlcygpOwogCiAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlcikKQEAg
LTExNzIsMTIgKzExNzIsMTEgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRl
c3RQYXRoT3JVUkwpCiAKIHZvaWQgZGlzcGxheVdlYlZpZXcoKQogewotICAgIE5TVmlldyAqd2Vi
VmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd2ViVmlldyA9IFttYWlu
RnJhbWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0gICAgW3dlYlZpZXcgbG9j
a0ZvY3VzXTsKLSAgICBbW1tOU0NvbG9yIGJsYWNrQ29sb3JdIGNvbG9yV2l0aEFscGhhQ29tcG9u
ZW50OjAuNjZdIHNldF07Ci0gICAgTlNSZWN0RmlsbFVzaW5nT3BlcmF0aW9uKFt3ZWJWaWV3IGZy
YW1lXSwgTlNDb21wb3NpdGVTb3VyY2VPdmVyKTsKLSAgICBbd2ViVmlldyB1bmxvY2tGb2N1c107
CisgICAgCisgICAgW3dlYlZpZXcgc2V0VHJhY2tzUmVwYWludHM6WUVTXTsKKyAgICBbd2ViVmll
dyByZXNldFRyYWNrZWRSZXBhaW50c107CiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBEdW1wUmVuZGVy
VHJlZUV2ZW50CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1w
U3VwcG9ydE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0
TWFjLm1tCmluZGV4IDIyZDgxMjE5MTFlNGIyMDg5YWFkNjg5MzEyMzdhYmQwMjgxNjU1M2UuLmUw
YzA4MzcxZWI5OWU3MjYzNzJkYWNkNzc2YmQ2MjY4YzU0Nzc1MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCkBAIC0xMzAsNiArMTMwLDM1
IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHQo
c2l6ZV90IHBpeGVsc1dpZGUsIHNpemVfdCBwCiAgICAgcmV0dXJuIEJpdG1hcENvbnRleHQ6OmNy
ZWF0ZUJ5QWRvcHRpbmdCaXRtYXBBbmRDb250ZXh0KGJ1ZmZlciwgY29udGV4dCk7CiB9CiAKK3N0
YXRpYyB2b2lkIHBhaW50UmVwYWludFJlY3RPdmVybGF5KFdlYlZpZXcqIHdlYlZpZXcsIENHQ29u
dGV4dFJlZiBjb250ZXh0KQoreworICAgIENHUmVjdCB2aWV3UmVjdCA9IE5TUmVjdFRvQ0dSZWN0
KFt3ZWJWaWV3IGJvdW5kc10pOworCisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsK
KworICAgIC8vIFVzaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyIGlzIGVhc2llciB0aGFuIGZ1dHpp
bmcgd2l0aCBjbGlwcGluZy4KKyAgICBDR0NvbnRleHRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGNv
bnRleHQsIDApOworCisgICAgLy8gRmxpcCB0aGUgY29udGV4dC4KKyAgICBDR0NvbnRleHRTY2Fs
ZUNUTShjb250ZXh0LCAxLCAtMSk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQs
IDAsIC12aWV3UmVjdC5zaXplLmhlaWdodCk7CisgICAgCisgICAgQ0dDb250ZXh0U2V0UkdCRmls
bENvbG9yKGNvbnRleHQsIDAsIDAsIDAsIHN0YXRpY19jYXN0PENHRmxvYXQ+KDAuNjYpKTsKKyAg
ICBDR0NvbnRleHRGaWxsUmVjdChjb250ZXh0LCB2aWV3UmVjdCk7CisKKyAgICBOU0FycmF5ICpy
ZXBhaW50UmVjdHMgPSBbd2ViVmlldyB0cmFja2VkUmVwYWludFJlY3RzXTsKKyAgICBpZiAocmVw
YWludFJlY3RzKSB7CisgICAgICAgIAorICAgICAgICBmb3IgKE5TVmFsdWUgKnZhbHVlIGluIHJl
cGFpbnRSZWN0cykgeworICAgICAgICAgICAgQ0dSZWN0IGN1cnJSZWN0ID0gTlNSZWN0VG9DR1Jl
Y3QoW3ZhbHVlIHJlY3RWYWx1ZV0pOworICAgICAgICAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNv
bnRleHQsIGN1cnJSZWN0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBDR0NvbnRleHRF
bmRUcmFuc3BhcmVuY3lMYXllcihjb250ZXh0KTsKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRl
KGNvbnRleHQpOworfQorCiBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENv
bnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWVudGFsUmVwYWludCwg
Ym9vbCBzd2VlcEhvcml6b250YWxseSwgYm9vbCBkcmF3U2VsZWN0aW9uUmVjdCkKIHsKICAgICBX
ZWJWaWV3KiB2aWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKQEAgLTE3NSw2ICsyMDQsOSBAQCBQ
YXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhi
b29sIG9uc2NyZWVuLCBib29sIGluYwogICAgICAgICAgICAgQ0dJbWFnZVJlZiBpbWFnZSA9IENH
V2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGwsIGtDR1dpbmRvd0xpc3RPcHRpb25JbmNs
dWRpbmdXaW5kb3csIFtbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0sIGtDR1dpbmRvd0ltYWdl
Qm91bmRzSWdub3JlRnJhbWluZyB8IGtDR1dpbmRvd0ltYWdlU2hvdWxkQmVPcGFxdWUpOwogICAg
ICAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgQ0dJ
bWFnZUdldFdpZHRoKGltYWdlKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZSkpLCBpbWFnZSk7CiAg
ICAgICAgICAgICBDR0ltYWdlUmVsZWFzZShpbWFnZSk7CisKKyAgICAgICAgICAgIGlmIChbdmll
dyBpc1RyYWNraW5nUmVwYWludHNdKQorICAgICAgICAgICAgICAgIHBhaW50UmVwYWludFJlY3RP
dmVybGF5KHZpZXcsIGNvbnRleHQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIHRoZSB2aWV3IGhhcyBiZWVuIHBhaW50ZWQuCiAgICAgICAgICAgICBbdmlldyBk
aXNwbGF5SWZOZWVkZWRdOwpAQCAtMTg4LDYgKzIyMCwxMCBAQCBQYXNzUmVmUHRyPEJpdG1hcENv
bnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29s
IGluYwogICAgICAgICAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBzYXZlZENvbnRl
eHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwogICAgICAgICAgICAgW05T
R3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0Om5zQ29udGV4dF07CiAgICAgICAgICAg
ICBbaW1hZ2VSZXAgZHJhd107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChbdmlldyBp
c1RyYWNraW5nUmVwYWludHNdKQorICAgICAgICAgICAgICAgIHBhaW50UmVwYWludFJlY3RPdmVy
bGF5KHZpZXcsIGNvbnRleHQpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBbTlNHcmFwaGlj
c0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZGQwNDU3ODZiNGNhNmI0ZDkyMmU0MTAyNmNi
NDczNjY5MTAxYjk0Zi4uNzQwZTdiMzgxY2U3M2ZlZTgzZWI1OTIyYjQzYjBiZDNmMDZiMjk0ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpiZWdpblRlc3RpbmcoKQogCiAgICAgbV9vdXRwdXRTdHJlYW0uc3RyKCIiKTsKICAgICBtX3Bp
eGVsUmVzdWx0LmNsZWFyKCk7CisgICAgbV9yZXBhaW50UmVjdHMuY2xlYXIoKTsKIAogICAgIG1f
bGF5b3V0VGVzdENvbnRyb2xsZXIgPSBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y3JlYXRlKCk7CiAg
ICAgbV9nY0NvbnRyb2xsZXIgPSBHQ0NvbnRyb2xsZXI6OmNyZWF0ZSgpOwpAQCAtMjA5LDYgKzIx
MCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRvbmUoKQogICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBwaXhlbFJlc3VsdEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlBpeGVsUmVzdWx0IikpOwogICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oZG9uZU1lc3Nh
Z2VCb2R5LmdldCgpLCBwaXhlbFJlc3VsdEtleS5nZXQoKSwgbV9waXhlbFJlc3VsdC5nZXQoKSk7
CiAKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcmVwYWludFJlY3RzS2V5ID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUmVwYWludFJlY3RzIikpOworICAgIFdL
RGljdGlvbmFyeUFkZEl0ZW0oZG9uZU1lc3NhZ2VCb2R5LmdldCgpLCByZXBhaW50UmVjdHNLZXku
Z2V0KCksIG1fcmVwYWludFJlY3RzLmdldCgpKTsKKwogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2Uo
bV9idW5kbGUsIGRvbmVNZXNzYWdlTmFtZS5nZXQoKSwgZG9uZU1lc3NhZ2VCb2R5LmdldCgpKTsK
IAogICAgIGNsb3NlT3RoZXJQYWdlcygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDUwNmJlZGY4ZDMzOTgw
YjEyZTMxZDUzMjJiMzkyNjkwMzRhODY2N2YuLmI5MGZhOWY3YzVkZTJhYTFmNDg3NTAxMjA0NmY3
OTk3ZWFjNWU1NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZG9uZSgpOwogICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSYgb3MoKSB7IHJldHVybiBtX291
dHB1dFN0cmVhbTsgfQogICAgIHZvaWQgc2V0UGl4ZWxSZXN1bHQoV0tJbWFnZVJlZiBpbWFnZSkg
eyBtX3BpeGVsUmVzdWx0ID0gaW1hZ2U7IH0KKyAgICB2b2lkIHNldFJlcGFpbnRSZWN0cyhXS0Fy
cmF5UmVmIHJlY3RzKSB7IG1fcmVwYWludFJlY3RzID0gcmVjdHM7IH0KIAogICAgIGJvb2wgaXNU
ZXN0UnVubmluZygpIHsgcmV0dXJuIG1fc3RhdGUgPT0gVGVzdGluZzsgfQogCkBAIC0xMTUsNiAr
MTE2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcFBpeGVsczsKIAogICAgIFdLUmV0YWlu
UHRyPFdLSW1hZ2VSZWY+IG1fcGl4ZWxSZXN1bHQ7CisgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJl
Zj4gbV9yZXBhaW50UmVjdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcAppbmRleCA5YzgwYWQwODU4ZGIzYWIwYWNhZWE3NWNhMmNhMmIyNjBjYTcxZjE3
Li5kNTE1NzMzZTIzN2Q1NjRiZjFjMTIxZDYyOWE0ZWI0MjhmMGQwNjNjIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCkBAIC0zMDcsNiArMzA3LDggQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnJlc2V0KCkKICAgICBtX3ByZXZpb3VzVGVzdEJhY2tGb3J3YXJkTGlzdEl0ZW0gPSBhZG9wdFdL
KFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Q29weUl0ZW1BdEluZGV4KFdLQnVuZGxlUGFnZUdldEJh
Y2tGb3J3YXJkTGlzdChtX3BhZ2UpLCAwKSk7CiAKICAgICBXS0J1bmRsZUZyYW1lQ2xlYXJPcGVu
ZXIoV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKG1fcGFnZSkpOworICAgIAorICAgIFdLQnVuZGxl
UGFnZVNldFRyYWNrc1JlcGFpbnRzKG1fcGFnZSwgZmFsc2UpOwogfQogCiAvLyBMb2FkZXIgQ2xp
ZW50IENhbGxiYWNrcwpAQCAtNTc1LDggKzU3NywxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6ZHVtcCgpCiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29u
dHJvbGxlcigpLT5zaG91bGREdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFdpbmRvd3MoKSkKICAg
ICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmR1bXBCYWNrRm9yd2FyZExpc3RzRm9yQWxs
UGFnZXMoKTsKIAotICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2hvdWxkRHVtcFBp
eGVscygpICYmIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigp
LT5zaG91bGREdW1wUGl4ZWxzKCkpCisgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5z
aG91bGREdW1wUGl4ZWxzKCkgJiYgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RD
b250cm9sbGVyKCktPnNob3VsZER1bXBQaXhlbHMoKSkgewogICAgICAgICBJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkuc2V0UGl4ZWxSZXN1bHQoYWRvcHRXSyhXS0J1bmRsZVBhZ2VDcmVhdGVTbmFw
c2hvdEluVmlld0Nvb3JkaW5hdGVzKG1fcGFnZSwgV0tCdW5kbGVGcmFtZUdldFZpc2libGVDb250
ZW50Qm91bmRzKFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShtX3BhZ2UpKSwga1dLSW1hZ2VPcHRp
b25zU2hhcmVhYmxlKSkuZ2V0KCkpOworICAgICAgICBpZiAoV0tCdW5kbGVQYWdlSXNUcmFja2lu
Z1JlcGFpbnRzKG1fcGFnZSkpCisgICAgICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
c2V0UmVwYWludFJlY3RzKGFkb3B0V0soV0tCdW5kbGVQYWdlQ29weVRyYWNrZWRSZXBhaW50UmVj
dHMobV9wYWdlKSkuZ2V0KCkpOworICAgIH0KIAogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5kb25lKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDAzYzI3ZjY1MTQ2
Mjc1NzAzNjA4YWIyOGI3NmNlOGI5NGRmMTUwZDEuLjk3YTdmYWVlYTM3YTc1MjA1OWFkYzdjNTA3
NWMxNjhkNTM5MzY4MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjIsNyAr
MTIyLDEwIEBAIEpTQ2xhc3NSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndyYXBwZXJDbGFzcygp
CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkoKQogewotICAgIC8vIEZJWE1F
OiBhY3R1YWxseSBpbXBsZW1lbnQsIG9uY2Ugd2Ugd2FudCBwaXhlbCB0ZXN0cworICAgIFdLQnVu
ZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgp
OworICAgIFdLQnVuZGxlUGFnZUZvcmNlUmVwYWludChwYWdlKTsKKyAgICBXS0J1bmRsZVBhZ2VT
ZXRUcmFja3NSZXBhaW50cyhwYWdlLCB0cnVlKTsKKyAgICBXS0J1bmRsZVBhZ2VSZXNldFRyYWNr
ZWRSZXBhaW50cyhwYWdlKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFz
VGV4dChib29sIGR1bXBQaXhlbHMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCmluZGV4IGJlMjAwNDZhMjFiMDEzNTAxMjI5MWRlYzM3ZWU1YmYxNjExMDEzNDIuLjY1
N2ZiOTZlMTcxMWM3MjZjYjRkMjg0NGFjYThiYjlmYzA4OWQ5YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yMjIsMTMgKzIyMiwxNiBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmlu
Z1JlZiBtZXNzYWdlTmFtZQogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGl4ZWxS
ZXN1bHRLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaXhlbFJl
c3VsdCIpKTsKICAgICAgICAgV0tJbWFnZVJlZiBwaXhlbFJlc3VsdCA9IHN0YXRpY19jYXN0PFdL
SW1hZ2VSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCBwaXhlbFJlc3VsdEtleS5nZXQoKSkpOwogICAgICAgICBBU1NFUlQoIXBpeGVsUmVzdWx0IHx8
IG1fZHVtcFBpeGVscyk7CisgICAgICAgIAorICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gcmVwYWludFJlY3RzS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiUmVwYWludFJlY3RzIikpOworICAgICAgICBXS0FycmF5UmVmIHJlcGFpbnRSZWN0cyA9IHN0
YXRpY19jYXN0PFdLQXJyYXlSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCByZXBhaW50UmVjdHNLZXkuZ2V0KCkpKTsgICAgICAgIAogCiAgICAgICAg
IC8vIER1bXAgdGV4dC4KICAgICAgICAgZHVtcCh0b1NURCh0ZXh0T3V0cHV0KS5jX3N0cigpLCB0
cnVlKTsKIAogICAgICAgICAvLyBEdW1wIHBpeGVscyAoaWYgbmVjZXNzYXJ5KS4KICAgICAgICAg
aWYgKG1fZHVtcFBpeGVscyAmJiBwaXhlbFJlc3VsdCkKLSAgICAgICAgICAgIGR1bXBQaXhlbHNB
bmRDb21wYXJlV2l0aEV4cGVjdGVkKHBpeGVsUmVzdWx0KTsKKyAgICAgICAgICAgIGR1bXBQaXhl
bHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKHBpeGVsUmVzdWx0LCByZXBhaW50UmVjdHMpOwogCiAg
ICAgICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRvdXQpOwogICAgICAgICBmZmx1c2goc3Rkb3V0KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBhYWI1OGEyNzc5Zjcy
MTEwNTkyOTdjOTgxNjg1MzNhNTBjMmEzOTI1Li41ZmY3ZWEwYTgzNzcxMjc4ZTFlODVkZjIxMDU3
ZTNlYzZjYWQ3MmU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBA
IC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGR1bXAoY29uc3Qg
Y2hhciosIGJvb2wgc2luZ2xlRU9GID0gZmFsc2UpOwotICAgIHZvaWQgZHVtcFBpeGVsc0FuZENv
bXBhcmVXaXRoRXhwZWN0ZWQoV0tJbWFnZVJlZik7CisgICAgdm9pZCBkdW1wUGl4ZWxzQW5kQ29t
cGFyZVdpdGhFeHBlY3RlZChXS0ltYWdlUmVmLCBXS0FycmF5UmVmIHJlcGFpbnRSZWN0cyk7CiAg
ICAgYm9vbCBjb21wYXJlQWN0dWFsSGFzaFRvRXhwZWN0ZWRBbmREdW1wUmVzdWx0cyhjb25zdCBj
aGFyWzMzXSk7CiAgICAgCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IG1fdXJsOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2NhdGlvbkNHLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25DRy5jcHAKaW5kZXggNDQwODQ1
NDQ1ZDljMzYwNmY4NDUyN2YzOTIzMTQ4MWYxZTBkODZkMy4uYmVkOGY1NjAxZmZjN2UzOGZkZTMx
Y2QxZDRiY2U5ZmY4MTA4ZWY2OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
Zy9UZXN0SW52b2NhdGlvbkNHLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NnL1Rl
c3RJbnZvY2F0aW9uQ0cuY3BwCkBAIC0xMTQsMTAgKzExNCw0MiBAQCBzdGF0aWMgdm9pZCBkdW1w
Qml0bWFwKENHQ29udGV4dFJlZiBiaXRtYXBDb250ZXh0LCBjb25zdCBjaGFyKiBjaGVja3N1bSkK
ICAgICBwcmludFBORyhkYXRhLCBkYXRhTGVuZ3RoLCBjaGVja3N1bSk7CiB9CiAKLXZvaWQgVGVz
dEludm9jYXRpb246OmR1bXBQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKFdLSW1hZ2VSZWYg
aW1hZ2UpCitzdGF0aWMgdm9pZCBwYWludFJlcGFpbnRSZWN0T3ZlcmxheShDR0NvbnRleHRSZWYg
Y29udGV4dCwgV0tJbWFnZVJlZiBpbWFnZSwgV0tBcnJheVJlZiByZXBhaW50UmVjdHMpCit7Cisg
ICAgV0tTaXplIGltYWdlU2l6ZSA9IFdLSW1hZ2VHZXRTaXplKGltYWdlKTsKKworICAgIENHQ29u
dGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CisKKyAgICAvLyBVc2luZyBhIHRyYW5zcGFyZW5jeSBs
YXllciBpcyBlYXNpZXIgdGhhbiBmdXR6aW5nIHdpdGggY2xpcHBpbmcuCisgICAgQ0dDb250ZXh0
QmVnaW5UcmFuc3BhcmVuY3lMYXllcihjb250ZXh0LCAwKTsKKyAgICAKKyAgICAvLyBGbGlwIHRo
ZSBjb250ZXh0LgorICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKKyAgICBD
R0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgLWltYWdlU2l6ZS5oZWlnaHQpOworICAg
IAorICAgIENHQ29udGV4dFNldFJHQkZpbGxDb2xvcihjb250ZXh0LCAwLCAwLCAwLCBzdGF0aWNf
Y2FzdDxDR0Zsb2F0PigwLjY2KSk7CisgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4dCwgQ0dS
ZWN0TWFrZSgwLCAwLCBpbWFnZVNpemUud2lkdGgsIGltYWdlU2l6ZS5oZWlnaHQpKTsKKworICAg
IC8vIENsZWFyIHRoZSByZXBhaW50IHJlY3RzLgorICAgIHNpemVfdCBjb3VudCA9IFdLQXJyYXlH
ZXRTaXplKHJlcGFpbnRSZWN0cyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsg
KytpKSB7CisgICAgICAgIFdLUmVjdCByZWN0ID0gV0tSZWN0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8
V0tSZWN0UmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgocmVwYWludFJlY3RzLCBpKSkpOworICAg
ICAgICBDR1JlY3QgY2dSZWN0ID0gQ0dSZWN0TWFrZShyZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdp
bi55LCByZWN0LnNpemUud2lkdGgsIHJlY3Quc2l6ZS5oZWlnaHQpOworICAgICAgICBDR0NvbnRl
eHRDbGVhclJlY3QoY29udGV4dCwgY2dSZWN0KTsKKyAgICB9CisgICAgCisgICAgQ0dDb250ZXh0
RW5kVHJhbnNwYXJlbmN5TGF5ZXIoY29udGV4dCk7CisgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0
ZShjb250ZXh0KTsKK30KKwordm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBh
cmVXaXRoRXhwZWN0ZWQoV0tJbWFnZVJlZiBpbWFnZSwgV0tBcnJheVJlZiByZXBhaW50UmVjdHMp
CiB7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBjcmVhdGVDR0NvbnRleHRGcm9tSW1hZ2Uo
aW1hZ2UpOwogCisgICAgLy8gQSBub24tbnVsbCByZXBhaW50UmVjdHMgYXJyYXkgbWVhbnMgd2Un
cmUgZG9pbmcgYSByZXBhaW50IHRlc3QuCisgICAgaWYgKHJlcGFpbnRSZWN0cykKKyAgICAgICAg
cGFpbnRSZXBhaW50UmVjdE92ZXJsYXkoY29udGV4dCwgaW1hZ2UsIHJlcGFpbnRSZWN0cyk7CisK
ICAgICBjaGFyIGFjdHVhbEhhc2hbMzNdOwogICAgIGNvbXB1dGVNRDVIYXNoU3RyaW5nRm9yQ29u
dGV4dChjb250ZXh0LCBhY3R1YWxIYXNoKTsKICAgICBpZiAoIWNvbXBhcmVBY3R1YWxIYXNoVG9F
eHBlY3RlZEFuZER1bXBSZXN1bHRzKGFjdHVhbEhhc2gpKQo=
</data>
<flag name="review"
          id="105567"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="105585"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
      

    </bug>

</bugzilla>