<?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>72760</bug_id>
          
          <creation_ts>2011-11-18 14:48:49 -0800</creation_ts>
          <short_desc>[chromium] compositing/masks layout tests fail with accelerated drawing</short_desc>
          <delta_ts>2011-12-13 13:13:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73247</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alok Priyadarshi">alokp</reporter>
          <assigned_to name="Alok Priyadarshi">alokp</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506076</commentid>
    <comment_count>0</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-11-18 14:48:49 -0800</bug_when>
    <thetext>The mask is rendered upside down. Compositor assumes that the textures are top-down (opposite to OpenGL convention). The accelerated path creates textures in bottom-up orientation, which gets flipped in the shader and then flipped again by the projection matrix.

The mask does not go through the shader and projection matrix, so it does not get a chance to end up in top-down orientation. I think it will be better to just always have textures in bottom-up orientation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516919</commentid>
    <comment_count>1</comment_count>
      <attachid>118278</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-12-07 14:24:19 -0800</bug_when>
    <thetext>Created attachment 118278
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516988</commentid>
    <comment_count>2</comment_count>
      <attachid>118278</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 16:35:07 -0800</bug_when>
    <thetext>Comment on attachment 118278
proposed patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        Ideally the compositor should not do so many flips. It is confusing and unnecessary.
&gt; +        If the textures are always in the bottom-up orientation then we also do not need to distinguish between whether we are rendering to an FBO (render-to-texture) or the window.
&gt; +        I tried removing all the flips, but the computation in the tiler becomes a little involved. I still think we should try to remove all the flips and will get back to it eventually.
&gt; +        

I&apos;m not sure if this section is describing a future improvement or not. Could you file such a thing as a bug rather than as commentary in a ChangeLog?  The latter is not very actionable.

&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:-217
&gt; -    // this = this * mat

the changes in this file seem unrelated to this patch. could you make this a separate patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516990</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 16:35:56 -0800</bug_when>
    <thetext>This bug title isn&apos;t very descriptive - it looks like what&apos;s actually going on here is you are moving y-flips to a different place. Could you please update the bug title and description to make it more obvious what is going on?  In particular, the vast majority of this patch is not specific to accelerated drawing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517043</commentid>
    <comment_count>4</comment_count>
      <attachid>118278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 17:58:54 -0800</bug_when>
    <thetext>Comment on attachment 118278
proposed patch

Attachment 118278 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10806003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517178</commentid>
    <comment_count>5</comment_count>
      <attachid>118327</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-12-07 21:43:42 -0800</bug_when>
    <thetext>Created attachment 118327
proposed patch

- Removed unrelated changes
- Fixed compile error
- Better ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517180</commentid>
    <comment_count>6</comment_count>
      <attachid>118278</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-12-07 21:44:57 -0800</bug_when>
    <thetext>Comment on attachment 118278
proposed patch

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

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +        
&gt; 
&gt; I&apos;m not sure if this section is describing a future improvement or not. Could you file such a thing as a bug rather than as commentary in a ChangeLog?  The latter is not very actionable.

https://bugs.webkit.org/show_bug.cgi?id=74052

&gt;&gt; Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:-217
&gt;&gt; -    // this = this * mat
&gt; 
&gt; the changes in this file seem unrelated to this patch. could you make this a separate patch?

DONE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517182</commentid>
    <comment_count>7</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-12-07 21:48:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; This bug title isn&apos;t very descriptive - it looks like what&apos;s actually going on here is you are moving y-flips to a different place. Could you please update the bug title and description to make it more obvious what is going on?  In particular, the vast majority of this patch is not specific to accelerated drawing.

I think the bug title is pretty accurate. The bug title simply states what the problem is. The following description and ChangeLog describe the reasons and solution. If you have any suggestions, I would be happy to incorporate.

This patch is very specific to accelerated drawing. Yes it is moving the y-flip to a different location, but only for the accelerated drawing path. Now that both - software and accelerated path produce texture in the same orientation, there is no need for LayerTextureUpdater::Orientation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518531</commentid>
    <comment_count>8</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-12-09 14:34:49 -0800</bug_when>
    <thetext>ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520272</commentid>
    <comment_count>9</comment_count>
      <attachid>118327</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-12-13 12:13:33 -0800</bug_when>
    <thetext>Comment on attachment 118327
proposed patch

Looks good.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520320</commentid>
    <comment_count>10</comment_count>
      <attachid>118327</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 13:12:58 -0800</bug_when>
    <thetext>Comment on attachment 118327
proposed patch

Clearing flags on attachment: 118327

Committed r102698: &lt;http://trac.webkit.org/changeset/102698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520321</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 13:13:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118278</attachid>
            <date>2011-12-07 14:24:19 -0800</date>
            <delta_ts>2011-12-07 21:44:57 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>72760.patch</filename>
            <type>text/plain</type>
            <size>14155</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjI3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDExLTEyLTA3ICBBbG9rIFBy
aXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gY29t
cG9zaXRpbmcvbWFza3MgbGF5b3V0IHRlc3RzIGZhaWwgd2l0aCBhY2NlbGVyYXRlZCBkcmF3aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VsZXJh
dGVkIGRyYXdpbmcgcGF0aCB1c2VkIHRvIHJlbmRlciBib3R0b20tdXAgdXByaWdodCB0ZXh0dXJl
cywgd2hpY2ggd2FzIG9wcG9zaXRlIG9mIHdoYXQgdGhlIHNvZnR3YXJlIHBhdGggcmVuZGVyZWQu
CisgICAgICAgIFRoZSB0ZXh0dXJlcyBwcm9kdWNlZCBieSB0aGUgYWNjZWxlcmF0ZWQgcGF0aCB3
YXMgZmxpcHBlZCBhbG9uZyBZIGluIHRoZSBzaGFkZXIgdG8gbWFrZSBpdCB1cHNpZGUgZG93biBh
cyBleHBlY3RlZCBieSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgVGhpcyBzdHJhdGVneSBkb2Vz
IG5vdCB3b3JrIGluIGNhc2Ugb2YgbWFza3Mgd2hpY2ggZG8gbm90IGdvIHRocm91Z2ggYSBzaGFk
ZXIgYW5kIGhlbmNlIGRvIG5vdCBnZXQgZmxpcHBlZC4KKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBhY2NlbGVyYXRlZCBkcmF3aW5nIHBhdGggcmVuZGVyIHRleHR1cmVzIGluIHRoZSBzYW1lIG9y
aWVudGF0aW9uIGFzIHRoZSBzb2Z0d2FyZSBwYXRoLAorICAgICAgICBzbyB0aGVyZSBpcyBubyBu
ZWVkIHRvIGtlZXAgYXJvdW5kIHRoZSBvcmllbnRhdGlvbiBpbmZvIGFuZCBkbyB0aGUgZmxpcC4K
KyAgICAgICAgCisgICAgICAgIElkZWFsbHkgdGhlIGNvbXBvc2l0b3Igc2hvdWxkIG5vdCBkbyBz
byBtYW55IGZsaXBzLiBJdCBpcyBjb25mdXNpbmcgYW5kIHVubmVjZXNzYXJ5LgorICAgICAgICBJ
ZiB0aGUgdGV4dHVyZXMgYXJlIGFsd2F5cyBpbiB0aGUgYm90dG9tLXVwIG9yaWVudGF0aW9uIHRo
ZW4gd2UgYWxzbyBkbyBub3QgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHdoZXRoZXIgd2Ug
YXJlIHJlbmRlcmluZyB0byBhbiBGQk8gKHJlbmRlci10by10ZXh0dXJlKSBvciB0aGUgd2luZG93
LgorICAgICAgICBJIHRyaWVkIHJlbW92aW5nIGFsbCB0aGUgZmxpcHMsIGJ1dCB0aGUgY29tcHV0
YXRpb24gaW4gdGhlIHRpbGVyIGJlY29tZXMgYSBsaXR0bGUgaW52b2x2ZWQuIEkgc3RpbGwgdGhp
bmsgd2Ugc2hvdWxkIHRyeSB0byByZW1vdmUgYWxsIHRoZSBmbGlwcyBhbmQgd2lsbCBnZXQgYmFj
ayB0byBpdCBldmVudHVhbGx5LgorICAgICAgICAKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRl
ZC4gRXhpc3RpbmcgY29tcG9zaXRpbmcgdGVzdHMgc2hvdWxkIGNhdGNoIGFueSByZWdyZXNzaW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpUaWxlZExh
eWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpzZXRM
YXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHVz
aFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJ
bXBsOjpkcmF3VGlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGlsZWRMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGlsZWRMYXllckltcGw6
OnNldFNraXBzRHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorCiAyMDExLTEyLTA3ICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW5kZXJPYmplY3Q6OnN0eWxlKCk6IElubGluZSBl
YXJseS1yZXR1cm4gY29uZGl0aW9uLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAkocmV2aXNpb24gMTAyMTQ5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKCk7CiAKICAgICB2aXJ0dWFs
IFBhc3NPd25QdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZT4gY3JlYXRlVGV4dHVyZShU
ZXh0dXJlTWFuYWdlciopOwotICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSB7
IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpCb3R0b21VcE9yaWVudGF0aW9uOyB9CiAgICAg
dmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRl
eHR1cmVGb3JtYXQpOwogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4
ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdy
YXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1Bp
Y3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCShyZXZpc2lvbiAxMDIxNDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3
LDExIEBAIHZvaWQgRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHQKICAgICBTa0Nh
bnZhcyogY2FudmFzID0gYnVmZmVyLmluaXRpYWxpemUoY29udGV4dCwgYWxsb2NhdG9yLCB0ZXh0
dXJlKTsKIAogICAgIGNhbnZhcy0+Y2xpcFJlY3QoU2tSZWN0KGRlc3RSZWN0KSk7CisgICAgLy8g
VGhlIGNvbXBvc2l0b3IgZXhwZWN0cyB0aGUgdGV4dHVyZXMgdG8gYmUgdXBzaWRlLWRvd24gc28g
aXQgY2FuIGZsaXAKKyAgICAvLyB0aGUgZmluYWwgY29tcG9zaXRlZCBpbWFnZS4gR2FuZXNoIHJl
bmRlcnMgdGhlIGltYWdlIHVwcmlnaHQgc28gd2UKKyAgICAvLyBuZWVkIHRvIGRvIGEgeS1mbGlw
LgorICAgIGNhbnZhcy0+dHJhbnNsYXRlKDAuMCwgdGV4dHVyZS0+c2l6ZSgpLmhlaWdodCgpKTsK
KyAgICBjYW52YXMtPnNjYWxlKDEuMCwgLTEuMCk7CiAgICAgLy8gVHJhbnNsYXRlIHRoZSBvcmln
aW4gb2YgY29udGVudFJlY3QgdG8gdGhhdCBvZiBkZXN0UmVjdC4KICAgICAvLyBOb3RlIHRoYXQg
ZGVzdFJlY3QgaXMgZGVmaW5lZCByZWxhdGl2ZSB0byBzb3VyY2VSZWN0LgogICAgIGNhbnZhcy0+
dHJhbnNsYXRlKGNvbnRlbnRSZWN0KCkueCgpIC0gc291cmNlUmVjdC54KCkgKyBkZXN0UmVjdC54
KCksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNr
UGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAkocmV2aXNpb24gMTAyMTQ5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1Bp
Y3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcg
KzUzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcigpOwogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPExheWVyVGV4
dHVyZVVwZGF0ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoVGV4dHVyZU1hbmFnZXIqKTsKLSAg
ICB2aXJ0dWFsIE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgeyByZXR1cm4gTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6VG9wRG93bk9yaWVudGF0aW9uOyB9CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxG
b3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpOwogICAgIHZv
aWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9y
KiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRS
ZWN0JiBkZXN0UmVjdCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAko
cmV2aXNpb24gMTAyMTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsOCArNzcs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGV4dHVyZSh0aGlzLCBN
YW5hZ2VkVGV4dHVyZTo6Y3JlYXRlKG1hbmFnZXIpKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBP
cmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OkJv
dHRvbVVwT3JpZW50YXRpb247IH0KLQogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNh
bXBsZWRUZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KQogICAgIHsKICAgICAgICAg
cmV0dXJuIFBsYXRmb3JtQ29sb3I6OnNhbWVDb21wb25lbnRPcmRlcih0ZXh0dXJlRm9ybWF0KSA/
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRl
eHR1cmVVcGRhdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCShyZXZpc2lvbiAxMDIxNDkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVV
cGRhdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDE5ICs2MCwxMiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIH5MYXllclRleHR1cmVVcGRhdGVyKCkgeyB9CiAKLSAgICBlbnVtIE9yaWVudGF0
aW9uIHsKLSAgICAgICAgQm90dG9tVXBPcmllbnRhdGlvbiwKLSAgICAgICAgVG9wRG93bk9yaWVu
dGF0aW9uLAotICAgICAgICBJbnZhbGlkT3JpZW50YXRpb24sCi0gICAgfTsKICAgICBlbnVtIFNh
bXBsZWRUZXhlbEZvcm1hdCB7CiAgICAgICAgIFNhbXBsZWRUZXhlbEZvcm1hdFJHQkEsCiAgICAg
ICAgIFNhbXBsZWRUZXhlbEZvcm1hdEJHUkEsCiAgICAgICAgIFNhbXBsZWRUZXhlbEZvcm1hdElu
dmFsaWQsCiAgICAgfTsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8VGV4dHVyZT4gY3JlYXRlVGV4
dHVyZShUZXh0dXJlTWFuYWdlciopID0gMDsKLSAgICAvLyBSZXR1cm5zIHRoZSBvcmllbnRhdGlv
biBvZiB0aGUgdGV4dHVyZSB1cGxvYWRlZCBieSB0aGlzIGludGVyZmFjZS4KLSAgICB2aXJ0dWFs
IE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgPSAwOwogICAgIC8vIFJldHVybnMgdGhlIGZvcm1h
dCBvZiB0aGUgdGV4ZWwgdXBsb2FkZWQgYnkgdGhpcyBpbnRlcmZhY2UuCiAgICAgLy8gVGhpcyBm
b3JtYXQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCBieSB0ZXh0dXJlIGludGVybmFsIGZvcm1hdC4K
ICAgICAvLyBUaGlzIGZvcm1hdCBzcGVjaWZpZXMgdGhlIGNvbXBvbmVudCBvcmRlciBpbiB0aGUg
c2FtcGxlZCB0ZXhlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAkocmV2
aXNpb24gMTAyMTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNiBA
QCBUaWxlZExheWVyQ2hyb21pdW06OlRpbGVkTGF5ZXJDaHJvbWl1bShDCiAgICAgOiBMYXllckNo
cm9taXVtKGRlbGVnYXRlKQogICAgICwgbV90ZXh0dXJlRm9ybWF0KEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0pCiAgICAgLCBtX3NraXBzRHJhdyhmYWxzZSkKLSAgICAsIG1fdGV4dHVy
ZU9yaWVudGF0aW9uKExheWVyVGV4dHVyZVVwZGF0ZXI6OkludmFsaWRPcmllbnRhdGlvbikKICAg
ICAsIG1fc2FtcGxlZFRleGVsRm9ybWF0KExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhl
bEZvcm1hdEludmFsaWQpCiAgICAgLCBtX3RpbGluZ09wdGlvbihBdXRvVGlsZSkKIHsKQEAgLTE2
Myw3ICsxNjIsNiBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zCiAg
ICAgY3JlYXRlVGV4dHVyZVVwZGF0ZXIoaG9zdCk7CiAKICAgICBzZXRUZXh0dXJlRm9ybWF0KGhv
c3QtPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5iZXN0VGV4dHVyZUZvcm1hdCk7Ci0gICAg
bV90ZXh0dXJlT3JpZW50YXRpb24gPSB0ZXh0dXJlVXBkYXRlcigpLT5vcmllbnRhdGlvbigpOwog
ICAgIG1fc2FtcGxlZFRleGVsRm9ybWF0ID0gdGV4dHVyZVVwZGF0ZXIoKS0+c2FtcGxlZFRleGVs
Rm9ybWF0KG1fdGV4dHVyZUZvcm1hdCk7CiB9CiAKQEAgLTI0Niw3ICsyNDQsNiBAQCB2b2lkIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUCiAgICAgfQogCiAgICAgdGlsZWRMYXll
ci0+c2V0U2tpcHNEcmF3KG1fc2tpcHNEcmF3KTsKLSAgICB0aWxlZExheWVyLT5zZXRUZXh0dXJl
T3JpZW50YXRpb24obV90ZXh0dXJlT3JpZW50YXRpb24pOwogICAgIHRpbGVkTGF5ZXItPnNldFNh
bXBsZWRUZXhlbEZvcm1hdChtX3NhbXBsZWRUZXhlbEZvcm1hdCk7CiAgICAgdGlsZWRMYXllci0+
c2V0VGlsaW5nRGF0YSgqbV90aWxlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1
bS5oCShyZXZpc2lvbiAxMDIxNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcg
KzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICBHQzNEZW51bSBtX3RleHR1cmVGb3JtYXQ7CiAgICAg
Ym9vbCBtX3NraXBzRHJhdzsKLSAgICBMYXllclRleHR1cmVVcGRhdGVyOjpPcmllbnRhdGlvbiBt
X3RleHR1cmVPcmllbnRhdGlvbjsKICAgICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4
ZWxGb3JtYXQgbV9zYW1wbGVkVGV4ZWxGb3JtYXQ7CiAKICAgICBUaWxpbmdPcHRpb24gbV90aWxp
bmdPcHRpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcAkocmV2aXNp
b24gMTAyMTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSwxMyArMjk1LDYg
QEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjpkcmF3VGlsZXMoTGF5ZXJSZQogICAgICAgICAgICAg
ZmxvYXQgZnJhZ21lbnRUZXhTY2FsZVggPSBjbGFtcFJlY3Qud2lkdGgoKSAvIHRpbGVXaWR0aDsK
ICAgICAgICAgICAgIGZsb2F0IGZyYWdtZW50VGV4U2NhbGVZID0gY2xhbXBSZWN0LmhlaWdodCgp
IC8gdGlsZUhlaWdodDsKIAotICAgICAgICAgICAgLy8gT3BlbkdMIGNvb3JkaW5hdGUgc3lzdGVt
IGlzIGJvdHRvbS11cC4KLSAgICAgICAgICAgIC8vIElmIHRpbGUgdGV4dHVyZSBpcyB0b3AtZG93
biwgd2UgbmVlZCB0byBmbGlwIHRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzLgotICAgICAgICAgICAg
aWYgKG1fdGV4dHVyZU9yaWVudGF0aW9uID09IExheWVyVGV4dHVyZVVwZGF0ZXI6OlRvcERvd25P
cmllbnRhdGlvbikgewotICAgICAgICAgICAgICAgIGZyYWdtZW50VGV4VHJhbnNsYXRlWSA9IDEu
MCAtIGZyYWdtZW50VGV4VHJhbnNsYXRlWTsKLSAgICAgICAgICAgICAgICBmcmFnbWVudFRleFNj
YWxlWSAqPSAtMS4wOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBDQ0xheWVyUXVhZDo6
RWRnZSBlZGdlWCA9IGNvbnRlbnRRdWFkLnJpZ2h0KCk7CiAgICAgICAgICAgICBpZiAoaSA8ICht
X3RpbGVyLT5udW1UaWxlc1goKSAtIDEpKSB7CiAgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBw
MSh0aWxlUmVjdC5tYXhYKCksIHRpbGVSZWN0LnkoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxl
ZExheWVySW1wbC5oCShyZXZpc2lvbiAxMDIxNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkdW1wTGF5ZXJQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdDsKIAogICAgIHZvaWQgc2V0U2tp
cHNEcmF3KGJvb2wgc2tpcHNEcmF3KSB7IG1fc2tpcHNEcmF3ID0gc2tpcHNEcmF3OyB9Ci0gICAg
dm9pZCBzZXRUZXh0dXJlT3JpZW50YXRpb24oTGF5ZXJUZXh0dXJlVXBkYXRlcjo6T3JpZW50YXRp
b24gdGV4dHVyZU9yaWVudGF0aW9uKSB7IG1fdGV4dHVyZU9yaWVudGF0aW9uID0gdGV4dHVyZU9y
aWVudGF0aW9uOyB9CiAgICAgdm9pZCBzZXRTYW1wbGVkVGV4ZWxGb3JtYXQoTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdCkgeyBtX3NhbXBs
ZWRUZXhlbEZvcm1hdCA9IHNhbXBsZWRUZXhlbEZvcm1hdDsgfQogICAgIHZvaWQgc2V0VGlsaW5n
RGF0YShjb25zdCBDQ0xheWVyVGlsaW5nRGF0YSYgdGlsZXIpOwogICAgIHZvaWQgc3luY1RleHR1
cmVJZChpbnQsIGludCwgUGxhdGZvcm0zRE9iamVjdCB0ZXh0dXJlSWQpOwpAQCAtODksNyArODgs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd1RpbGVzKExheWVyUmVuZGVyZXJDaHJvbWl1bSos
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
Z2xvYmFsVHJhbnNmb3JtLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZGV2aWNlVHJhbnNm
b3JtLCBjb25zdCBDQ0xheWVyUXVhZCYgZGV2aWNlUmVjdCwgY29uc3QgQ0NMYXllclF1YWQmIGNv
bnRlbnRRdWFkLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBUKiBwcm9ncmFtLCBpbnQgZnJhZ21lbnRU
ZXhUcmFuc2Zvcm1Mb2NhdGlvbiwgaW50IGVkZ2VMb2NhdGlvbik7CiAKICAgICBib29sIG1fc2tp
cHNEcmF3OwotICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6Ok9yaWVudGF0aW9uIG1fdGV4dHVyZU9y
aWVudGF0aW9uOwogICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBt
X3NhbXBsZWRUZXhlbEZvcm1hdDsKIAogICAgIE93blB0cjxDQ0xheWVyVGlsaW5nRGF0YT4gbV90
aWxlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgJKHJldmlzaW9u
IDEwMjE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDcgKzIxNCw3IEBA
IHB1YmxpYzoKICAgICBkb3VibGUgZigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzNdWzFdOyB9
CiAgICAgdm9pZCBzZXRGKGRvdWJsZSBmKSB7IG1fbWF0cml4WzNdWzFdID0gZjsgfQogCi0gICAg
Ly8gdGhpcyA9IHRoaXMgKiBtYXQKKyAgICAvLyAqdGhpcyA9IG1hdCAqICp0aGlzCiAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG11bHRpcGx5KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7
CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2NhbGUoZG91YmxlKTsKQEAgLTMwMSwxMyAr
MzAxLDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAK
LSAgICAvLyAqdGhpcyA9ICp0aGlzICogdAorICAgIC8vICp0aGlzID0gdCAqICp0aGlzCiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG9wZXJhdG9yKj0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHQpCiAgICAgewogICAgICAgICByZXR1cm4gbXVsdGlwbHkodCk7CiAgICAgfQogICAgIAot
ICAgIC8vIHJlc3VsdCA9ICp0aGlzICogdAorICAgIC8vIHJlc3VsdCA9IHQgKiAqdGhpcwogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IG9wZXJhdG9yKihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdCkgY29uc3QKICAgICB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlc3VsdCA9
ICp0aGlzOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjI3MCkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMTItMDcgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGluZy9tYXNrcyBsYXlvdXQgdGVz
dHMgZmFpbCB3aXRoIGFjY2VsZXJhdGVkIGRyYXdpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNw
cDoKKyAgICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZVRleHR1cmUp
OgorCiAyMDExLTEyLTA3ICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gUGx1bWIgZGFtYWdlIGZyb20gV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXIgYW5kIFdlYlBsdWdpbkNvbnRhaW5lciB0byBDQ0RhbWFnZVRyYWNrZXIKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21p
dW1UZXN0LmNwcAkocmV2aXNpb24gMTAyMTQ5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyAr
NTgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKSB7
IH0KIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJl
PiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKiBtYW5hZ2VyKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgVGV4dHVyZShNYW5hZ2VkVGV4dHVyZTo6Y3JlYXRlKG1hbmFnZXIpKSk7IH0KLSAgICB2
aXJ0dWFsIE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgeyByZXR1cm4gQm90dG9tVXBPcmllbnRh
dGlvbjsgfQogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1h
dChHQzNEZW51bSkgeyByZXR1cm4gU2FtcGxlZFRleGVsRm9ybWF0UkdCQTsgfQogICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBp
bnQsIGZsb2F0KSB7IH0KIH07Cg==
</data>
<flag name="commit-queue"
          id="117989"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118327</attachid>
            <date>2011-12-07 21:43:42 -0800</date>
            <delta_ts>2011-12-13 13:12:58 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>72760.patch</filename>
            <type>text/plain</type>
            <size>13738</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjMxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDExLTEyLTA3ICBBbG9rIFBy
aXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gY29t
cG9zaXRpbmcvbWFza3MgbGF5b3V0IHRlc3RzIGZhaWwgd2l0aCBhY2NlbGVyYXRlZCBkcmF3aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VsZXJh
dGVkIGRyYXdpbmcgcGF0aCB1c2VkIHRvIHJlbmRlciBib3R0b20tdXAgdXByaWdodCB0ZXh0dXJl
cywgd2hpY2ggd2FzIG9wcG9zaXRlIG9mIHdoYXQgdGhlIHNvZnR3YXJlIHBhdGggcmVuZGVyZWQu
CisgICAgICAgIFRoZSB0ZXh0dXJlcyBwcm9kdWNlZCBieSB0aGUgYWNjZWxlcmF0ZWQgcGF0aCB3
YXMgZmxpcHBlZCBhbG9uZyBZIGluIHRoZSBzaGFkZXIgdG8gbWFrZSBpdCB1cHNpZGUgZG93biBh
cyBleHBlY3RlZCBieSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgVGhpcyBzdHJhdGVneSBkb2Vz
IG5vdCB3b3JrIGluIGNhc2Ugb2YgbWFza3Mgd2hpY2ggZG8gbm90IGdvIHRocm91Z2ggYSBzaGFk
ZXIgYW5kIGhlbmNlIGRvIG5vdCBnZXQgZmxpcHBlZCwKKyAgICAgICAgd2hpY2ggcmVzdWx0cyBp
biBhIGNhc2Ugd2hlcmUgdGV4dHVyZSBpbiB0aGUgcmVuZGVyIHN1cmZhY2UgaXMgdG9wLWRvd24s
IHdoaWxlIHRoYXQgaW4gdGhlIG1hc2sgaXMgYm90dG9tLXVwLgorICAgICAgICBUaGlzIHBhdGNo
IG1ha2VzIGFjY2VsZXJhdGVkIGRyYXdpbmcgcGF0aCByZW5kZXIgdGV4dHVyZXMgaW4gdGhlIHNh
bWUgb3JpZW50YXRpb24gYXMgdGhlIHNvZnR3YXJlIHBhdGguCisgICAgICAgIExheWVyVGV4dHVy
ZVVwZGF0ZXI6Ok9yaWVudGF0aW9uIHdhcyBhZGRlZCB0byBzdXBwb3J0IHRoZSBkaWZmZXJlbmNl
IGluIHRleHR1cmUgb3JpZW50YXRpb24gYmV0d2VlbiBzb2Z0d2FyZSBhbmQgYWNjZWxlcmF0ZWQg
cGF0aHMuCisgICAgICAgIE5vdyB0aGF0IGJvdGggcGF0aHMgcHJvZHVjZSB0ZXh0dXJlcyBpbiB0
aGUgc2FtZSBvcmllbnRhdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIG5lZWRlZC4gQ292ZXJlZCBieSBleGlzdGluZyBjb21wb3NpdGluZyB0ZXN0
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQnVmZmVyU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlZExheWVyQ2hyb21pdW06OlRpbGVkTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaWxlZExheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZWRMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDVGlsZWRMYXllckltcGw6OmRyYXdUaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q0NUaWxlZExheWVySW1wbDo6c2V0U2tpcHNEcmF3KToKKwogMjAxMS0xMi0wNyAg
WGluZ25hbiBXYW5nICA8eGluZ25hbi53YW5nQGludGVsLmNvbT4KIAogICAgICAgICBJbXBsZW1l
bnQgdGhlIFNTRSBvcHRpbWl6YXRpb24gaW4gU2luY1Jlc2FtcGxlcjo6cHJvY2VzcygpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCShy
ZXZpc2lvbiAxMDIzMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDcgKzU3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkJpdG1hcENhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIoKTsKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1cmVVcGRh
dGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKik7Ci0gICAgdmlydHVh
bCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6
OkJvdHRvbVVwT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBz
YW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7CiAgICAgdmlydHVhbCB2
b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50
U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpOwog
ICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxs
b2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRSZWN0JiBkZXN0UmVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Qml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCShyZXZpc2lvbiAxMDIz
MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBT
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDcgKzU2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkJpdG1hcFNrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIoKTsKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1
cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKik7Ci0gICAg
dmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVw
ZGF0ZXI6OkJvdHRvbVVwT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZv
cm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7CiAgICAgdmly
dHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29u
c3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2Nh
bGUpOwogICAgIHZvaWQgcGFpbnRDb250ZW50c1JlY3QoU2tDYW52YXMqLCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAkocmV2aXNp
b24gMTAyMzA5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ3LDYgKzE0NywxMSBAQCB2b2lkIEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0CiAgICAgU2tDYW52YXMqIGNhbnZhcyA9IGJ1ZmZlci5pbml0aWFsaXplKGNv
bnRleHQsIGFsbG9jYXRvciwgdGV4dHVyZSk7CiAKICAgICBjYW52YXMtPmNsaXBSZWN0KFNrUmVj
dChkZXN0UmVjdCkpOworICAgIC8vIFRoZSBjb21wb3NpdG9yIGV4cGVjdHMgdGhlIHRleHR1cmVz
IHRvIGJlIHVwc2lkZS1kb3duIHNvIGl0IGNhbiBmbGlwCisgICAgLy8gdGhlIGZpbmFsIGNvbXBv
c2l0ZWQgaW1hZ2UuIEdhbmVzaCByZW5kZXJzIHRoZSBpbWFnZSB1cHJpZ2h0IHNvIHdlCisgICAg
Ly8gbmVlZCB0byBkbyBhIHktZmxpcC4KKyAgICBjYW52YXMtPnRyYW5zbGF0ZSgwLjAsIHRleHR1
cmUtPnNpemUoKS5oZWlnaHQoKSk7CisgICAgY2FudmFzLT5zY2FsZSgxLjAsIC0xLjApOwogICAg
IC8vIFRyYW5zbGF0ZSB0aGUgb3JpZ2luIG9mIGNvbnRlbnRSZWN0IHRvIHRoYXQgb2YgZGVzdFJl
Y3QuCiAgICAgLy8gTm90ZSB0aGF0IGRlc3RSZWN0IGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gc291
cmNlUmVjdC4KICAgICBjYW52YXMtPnRyYW5zbGF0ZShjb250ZW50UmVjdCgpLngoKSAtIHNvdXJj
ZVJlY3QueCgpICsgZGVzdFJlY3QueCgpLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgJ
KHJldmlzaW9uIDEwMjMwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIoKTsKIAogICAgIHZpcnR1
YWwgUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJl
KFRleHR1cmVNYW5hZ2VyKik7Ci0gICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigp
IHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OlRvcERvd25PcmllbnRhdGlvbjsgfQogICAg
IHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChHQzNEZW51bSB0
ZXh0dXJlRm9ybWF0KTsKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4
dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lt
YWdlTGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEwMjMwOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc3LDggKzc3LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFRleHR1cmUodGhpcywgTWFuYWdlZFRleHR1cmU6OmNyZWF0ZShtYW5hZ2VyKSkpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSB7IHJldHVybiBM
YXllclRleHR1cmVVcGRhdGVyOjpCb3R0b21VcE9yaWVudGF0aW9uOyB9Ci0KICAgICB2aXJ0dWFs
IFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZv
cm1hdCkKICAgICB7CiAgICAgICAgIHJldHVybiBQbGF0Zm9ybUNvbG9yOjpzYW1lQ29tcG9uZW50
T3JkZXIodGV4dHVyZUZvcm1hdCkgPwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAkocmV2aXNpb24gMTAyMzA5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxOSAr
NjAsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsg
fQogCi0gICAgZW51bSBPcmllbnRhdGlvbiB7Ci0gICAgICAgIEJvdHRvbVVwT3JpZW50YXRpb24s
Ci0gICAgICAgIFRvcERvd25PcmllbnRhdGlvbiwKLSAgICAgICAgSW52YWxpZE9yaWVudGF0aW9u
LAotICAgIH07CiAgICAgZW51bSBTYW1wbGVkVGV4ZWxGb3JtYXQgewogICAgICAgICBTYW1wbGVk
VGV4ZWxGb3JtYXRSR0JBLAogICAgICAgICBTYW1wbGVkVGV4ZWxGb3JtYXRCR1JBLAogICAgICAg
ICBTYW1wbGVkVGV4ZWxGb3JtYXRJbnZhbGlkLAogICAgIH07CiAgICAgdmlydHVhbCBQYXNzT3du
UHRyPFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoVGV4dHVyZU1hbmFnZXIqKSA9IDA7Ci0gICAgLy8g
UmV0dXJucyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIHRleHR1cmUgdXBsb2FkZWQgYnkgdGhpcyBp
bnRlcmZhY2UuCi0gICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpID0gMDsKICAg
ICAvLyBSZXR1cm5zIHRoZSBmb3JtYXQgb2YgdGhlIHRleGVsIHVwbG9hZGVkIGJ5IHRoaXMgaW50
ZXJmYWNlLgogICAgIC8vIFRoaXMgZm9ybWF0IHNob3VsZCBub3QgYmUgY29uZnVzZWQgYnkgdGV4
dHVyZSBpbnRlcm5hbCBmb3JtYXQuCiAgICAgLy8gVGhpcyBmb3JtYXQgc3BlY2lmaWVzIHRoZSBj
b21wb25lbnQgb3JkZXIgaW4gdGhlIHNhbXBsZWQgdGV4ZWwuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVk
TGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEwMjMwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcyLDcgKzcyLDYgQEAgVGlsZWRMYXllckNocm9taXVtOjpUaWxlZExheWVyQ2hy
b21pdW0oQwogICAgIDogTGF5ZXJDaHJvbWl1bShkZWxlZ2F0ZSkKICAgICAsIG1fdGV4dHVyZUZv
cm1hdChHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKQogICAgICwgbV9za2lwc0RyYXco
ZmFsc2UpCi0gICAgLCBtX3RleHR1cmVPcmllbnRhdGlvbihMYXllclRleHR1cmVVcGRhdGVyOjpJ
bnZhbGlkT3JpZW50YXRpb24pCiAgICAgLCBtX3NhbXBsZWRUZXhlbEZvcm1hdChMYXllclRleHR1
cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRJbnZhbGlkKQogICAgICwgbV90aWxpbmdPcHRp
b24oQXV0b1RpbGUpCiB7CkBAIC0xNjMsNyArMTYyLDYgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21p
dW06OnNldExheWVyVHJlZUhvcwogICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVyKGhvc3QpOwogCiAg
ICAgc2V0VGV4dHVyZUZvcm1hdChob3N0LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkuYmVz
dFRleHR1cmVGb3JtYXQpOwotICAgIG1fdGV4dHVyZU9yaWVudGF0aW9uID0gdGV4dHVyZVVwZGF0
ZXIoKS0+b3JpZW50YXRpb24oKTsKICAgICBtX3NhbXBsZWRUZXhlbEZvcm1hdCA9IHRleHR1cmVV
cGRhdGVyKCktPnNhbXBsZWRUZXhlbEZvcm1hdChtX3RleHR1cmVGb3JtYXQpOwogfQogCkBAIC0y
NTAsNyArMjQ4LDYgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVAog
ICAgIH0KIAogICAgIHRpbGVkTGF5ZXItPnNldFNraXBzRHJhdyhtX3NraXBzRHJhdyk7Ci0gICAg
dGlsZWRMYXllci0+c2V0VGV4dHVyZU9yaWVudGF0aW9uKG1fdGV4dHVyZU9yaWVudGF0aW9uKTsK
ICAgICB0aWxlZExheWVyLT5zZXRTYW1wbGVkVGV4ZWxGb3JtYXQobV9zYW1wbGVkVGV4ZWxGb3Jt
YXQpOwogICAgIHRpbGVkTGF5ZXItPnNldFRpbGluZ0RhdGEoKm1fdGlsZXIpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaAkocmV2aXNpb24gMTAyMzA5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNiBAQCBwcml2YXRlOgogCiAgICAgR0MzRGVudW0g
bV90ZXh0dXJlRm9ybWF0OwogICAgIGJvb2wgbV9za2lwc0RyYXc7Ci0gICAgTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6T3JpZW50YXRpb24gbV90ZXh0dXJlT3JpZW50YXRpb247CiAgICAgTGF5ZXJUZXh0
dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IG1fc2FtcGxlZFRleGVsRm9ybWF0OwogCiAg
ICAgVGlsaW5nT3B0aW9uIG1fdGlsaW5nT3B0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxl
ZExheWVySW1wbC5jcHAJKHJldmlzaW9uIDEwMjMwOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yODgsMTMgKzI4OCw2IEBAIHZvaWQgQ0NUaWxlZExheWVySW1wbDo6ZHJhd1RpbGVz
KExheWVyUmUKICAgICAgICAgICAgIGZsb2F0IGZyYWdtZW50VGV4U2NhbGVYID0gY2xhbXBSZWN0
LndpZHRoKCkgLyB0aWxlV2lkdGg7CiAgICAgICAgICAgICBmbG9hdCBmcmFnbWVudFRleFNjYWxl
WSA9IGNsYW1wUmVjdC5oZWlnaHQoKSAvIHRpbGVIZWlnaHQ7CiAKLSAgICAgICAgICAgIC8vIE9w
ZW5HTCBjb29yZGluYXRlIHN5c3RlbSBpcyBib3R0b20tdXAuCi0gICAgICAgICAgICAvLyBJZiB0
aWxlIHRleHR1cmUgaXMgdG9wLWRvd24sIHdlIG5lZWQgdG8gZmxpcCB0aGUgdGV4dHVyZSBjb29y
ZGluYXRlcy4KLSAgICAgICAgICAgIGlmIChtX3RleHR1cmVPcmllbnRhdGlvbiA9PSBMYXllclRl
eHR1cmVVcGRhdGVyOjpUb3BEb3duT3JpZW50YXRpb24pIHsKLSAgICAgICAgICAgICAgICBmcmFn
bWVudFRleFRyYW5zbGF0ZVkgPSAxLjAgLSBmcmFnbWVudFRleFRyYW5zbGF0ZVk7Ci0gICAgICAg
ICAgICAgICAgZnJhZ21lbnRUZXhTY2FsZVkgKj0gLTEuMDsKLSAgICAgICAgICAgIH0KLQogICAg
ICAgICAgICAgQ0NMYXllclF1YWQ6OkVkZ2UgZWRnZVggPSBjb250ZW50UXVhZC5yaWdodCgpOwog
ICAgICAgICAgICAgaWYgKGkgPCAobV90aWxlci0+bnVtVGlsZXNYKCkgLSAxKSkgewogICAgICAg
ICAgICAgICAgIEZsb2F0UG9pbnQgcDEodGlsZVJlY3QubWF4WCgpLCB0aWxlUmVjdC55KCkpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxl
ZExheWVySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaAkocmV2aXNpb24gMTAyMzA5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCkgY29u
c3Q7CiAKICAgICB2b2lkIHNldFNraXBzRHJhdyhib29sIHNraXBzRHJhdykgeyBtX3NraXBzRHJh
dyA9IHNraXBzRHJhdzsgfQotICAgIHZvaWQgc2V0VGV4dHVyZU9yaWVudGF0aW9uKExheWVyVGV4
dHVyZVVwZGF0ZXI6Ok9yaWVudGF0aW9uIHRleHR1cmVPcmllbnRhdGlvbikgeyBtX3RleHR1cmVP
cmllbnRhdGlvbiA9IHRleHR1cmVPcmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0U2FtcGxlZFRl
eGVsRm9ybWF0KExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVk
VGV4ZWxGb3JtYXQpIHsgbV9zYW1wbGVkVGV4ZWxGb3JtYXQgPSBzYW1wbGVkVGV4ZWxGb3JtYXQ7
IH0KICAgICB2b2lkIHNldFRpbGluZ0RhdGEoY29uc3QgQ0NMYXllclRpbGluZ0RhdGEmIHRpbGVy
KTsKICAgICB2b2lkIHN5bmNUZXh0dXJlSWQoaW50LCBpbnQsIFBsYXRmb3JtM0RPYmplY3QgdGV4
dHVyZUlkKTsKQEAgLTg5LDcgKzg4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdUaWxlcyhM
YXllclJlbmRlcmVyQ2hyb21pdW0qLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIGdsb2JhbFRyYW5zZm9ybSwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIGRldmljZVRyYW5zZm9ybSwgY29uc3QgQ0NMYXllclF1YWQmIGRldmljZVJlY3Qs
IGNvbnN0IENDTGF5ZXJRdWFkJiBjb250ZW50UXVhZCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgVCog
cHJvZ3JhbSwgaW50IGZyYWdtZW50VGV4VHJhbnNmb3JtTG9jYXRpb24sIGludCBlZGdlTG9jYXRp
b24pOwogCiAgICAgYm9vbCBtX3NraXBzRHJhdzsKLSAgICBMYXllclRleHR1cmVVcGRhdGVyOjpP
cmllbnRhdGlvbiBtX3RleHR1cmVPcmllbnRhdGlvbjsKICAgICBMYXllclRleHR1cmVVcGRhdGVy
OjpTYW1wbGVkVGV4ZWxGb3JtYXQgbV9zYW1wbGVkVGV4ZWxGb3JtYXQ7CiAKICAgICBPd25QdHI8
Q0NMYXllclRpbGluZ0RhdGE+IG1fdGlsZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTAyMzEyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0wNyAgQWxvayBQcml5YWRh
cnNoaSAgPGFsb2twQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIGNvbXBvc2l0
aW5nL21hc2tzIGxheW91dCB0ZXN0cyBmYWlsIHdpdGggYWNjZWxlcmF0ZWQgZHJhd2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL1RpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV1RGOjpGYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6Y3JlYXRlVGV4dHVyZSk6CisKIDIwMTEtMTItMDcgIEFsZXhhbmRyZSBFbGlhcyAgPGFl
bGlhc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBhZ2Utc2NhbGUgYW5p
bWF0aW9uIHN1cHBvcnQgdG8gSW1wbCB0aHJlYWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAkocmV2aXNp
b24gMTAyMzA5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKSB7IH0KIAogICAgIHZpcnR1YWwg
UGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRl
eHR1cmVNYW5hZ2VyKiBtYW5hZ2VyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dHVyZShNYW5h
Z2VkVGV4dHVyZTo6Y3JlYXRlKG1hbmFnZXIpKSk7IH0KLSAgICB2aXJ0dWFsIE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgeyByZXR1cm4gQm90dG9tVXBPcmllbnRhdGlvbjsgfQogICAgIHZpcnR1
YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChHQzNEZW51bSkgeyByZXR1
cm4gU2FtcGxlZFRleGVsRm9ybWF0UkdCQTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBpbnQsIGZsb2F0KSB7IH0KIH07
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>