<?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>84817</bug_id>
          
          <creation_ts>2012-04-24 18:54:40 -0700</creation_ts>
          <short_desc>Add a logging channel and some ouput for compositing</short_desc>
          <delta_ts>2012-04-24 21:30:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>jamesr</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609370</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 18:54:40 -0700</bug_when>
    <thetext>Add a logging channel and some ouput for compositing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609374</commentid>
    <comment_count>1</comment_count>
      <attachid>138716</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 19:02:03 -0700</bug_when>
    <thetext>Created attachment 138716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609375</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 19:03:11 -0700</bug_when>
    <thetext>Sample output (maps.google.com when zooming):


Update 26 of main frame
  Layer 0x124de87d8 1280x1280 1.638MP (animation) RenderBlock (positioned) DIV
  Layer 0x123a5ad28 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5b1a8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5b628 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5baa8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5bf28 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5c3a8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5c828 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x123a5cca8 0x0 0.000MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108e72b8 83x152 0.013MP (overlap/stacking) RenderBlock (positioned) DIV &apos;views-control&apos;
  Layer 0x1108f2e48 19x19 0.000MP (overlap/stacking) RenderBlock (positioned) DIV &apos;map_overview&apos;
  Layer 0x122431f08 390x19 0.007MP (overlap/stacking) RenderBlock (positioned) DIV &apos;copyright&apos;
  Layer 0x1229401c8 43x29 0.000MP (overlap/stacking) RenderBlock (positioned) DIV &apos;map_magnifyingglass&apos;
  Layer 0x1224321b8 86x29 0.002MP (overlap/stacking) RenderBlock (positioned) DIV &apos;scalecontrol&apos;
  Layer 0x1211f0a88 90x339 0.031MP (overlap/stacking) RenderBlock (positioned) DIV &apos;lmc3d&apos;
  Layer 0x1108caab8 838x844 0.000MP (clips compositing descendants) RenderBlock (relative positioned) DIV &apos;map&apos;
  Layer 0x1108f6238 1219x1 0.001MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108f6c78 1219x2 0.002MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108f76b8 1219x3 0.004MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108f80f8 1219x4 0.005MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108f8b38 1219x5 0.006MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108f9a88 1x842 0.001MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108fa538 2x842 0.002MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108fafe8 3x842 0.003MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108fba98 4x842 0.003MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x11d6f31b8 5x842 0.004MP (overlap/stacking) RenderBlock (positioned) DIV
  Layer 0x1108b9118 381x59 0.022MP (overlap/stacking) RenderBlock (relative positioned) DIV &apos;topbar&apos;
  Layer 0x11d6baa08 381x787 0.300MP (overlap/stacking) RenderBlock (positioned) DIV &apos;panel&apos;
  Layer 0x1216132c8 1219x102 0.124MP (overlap/stacking) RenderBlock (relative positioned) DIV
  Layer 0x110897b38 1219x0 0.000MP (overlap/stacking) RenderBlock (relative positioned) DIV &apos;infoarea&apos;
  Layer 0x11d9eacf8 1219x13944 0.000MP (root) RenderView
31 layers (3 primary, 28 secondary), total backing area 2.17MP, update took 3.74ms,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609391</commentid>
    <comment_count>3</comment_count>
      <attachid>138716</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-24 19:27:18 -0700</bug_when>
    <thetext>Comment on attachment 138716
Patch

Attachment 138716 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12529386</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609403</commentid>
    <comment_count>4</comment_count>
      <attachid>138716</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-24 19:56:42 -0700</bug_when>
    <thetext>Comment on attachment 138716
Patch

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

Looks fine, but please revise so it doesn’t break the Windows build.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:429
&gt; +    // Return an estimate of how much memory is used for backing store. May be incorrect for tiled layers.

Maybe this should have the word “estimate” in its name too, not just the comment.

&gt; Source/WebCore/rendering/RenderLayerBacking.h:162
&gt; +    double backingStoreArea() const;

Probably needs a comment, and maybe the word “estimate” in its name.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:154
&gt; +#if !LOG_DISABLED
&gt; +    return LogCompositing.state == WTFLogChannelOn;
&gt; +#endif
&gt; +    return false;

Should use #else here. I suspect this may be why the Windows build is failing.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:374
&gt; +        startTime = WTF::currentTime();

I’m surprised the WTF:: prefix is needed here.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:439
&gt; +#if !LOG_DISABLED
&gt; +void RenderLayerCompositor::logCompositingInfo(const RenderLayer* layer)

One neat trick is to always compile logCompositingInfo but make it an inline function that does nothing in when LOG_DISABLED is set. This eliminates the need for #if at the call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609446</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 21:27:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; One neat trick is to always compile logCompositingInfo but make it an inline function that does nothing in when LOG_DISABLED is set. This eliminates the need for #if at the call sites.

That would require moving compositingLogEnabled() to the header, which I don&apos;t really want to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609448</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 21:30:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/115165</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138716</attachid>
            <date>2012-04-24 19:02:03 -0700</date>
            <delta_ts>2012-04-24 19:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84817-20120424190202.patch</filename>
            <type>text/plain</type>
            <size>18836</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlMjk1NjBjODhhY2E3
ZjNmNjFkZjJlYjgzNzU1ZjdlOWY3MjIyZS4uMzM3NTgwZTVlZjUyMDkyZTZmNjQyNDBkN2Y1MDEw
MjVlNWVkN2VlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA0LTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIGxvZ2dp
bmcgY2hhbm5lbCBhbmQgc29tZSBvdXB1dCBmb3IgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODE3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbG9nZ2luZyBjaGFubmVsIGNh
bGxlZCAiQ29tcG9zaXRpbmciLgorICAgICAgICAKKyAgICAgICAgT3V0cHV0IHVzZWZ1bCBpbmZv
cm1hdGlvbiB0byB0aGlzIGNoYW5uZWwsIGluY2x1ZGluZworICAgICAgICBhIGxpbmUgZm9yIGVh
Y2ggY29tcG9zaXRlZCBsYXllciwgaXRzIGNvbXBvc2l0ZWQgYm91bmRzLAorICAgICAgICB0aGUg
cmVhc29uIGl0IHdhcyBjb21wb3NpdGVkLCB0aGUgYmFja2luZyBzdG9yZSBtZWdhcGl4ZWxzLAor
ICAgICAgICBhbmQgYSBjb3VudCBvZiB0b3RhbCBjb21wb3NpdGVkIGxheWVycyBhbmQgdG90YWwg
YmFja2luZworICAgICAgICBzdG9yZSBtZWdhcGl4ZWxzLgorCisgICAgICAgICogcGxhdGZvcm0v
TG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldENo
YW5uZWxGcm9tTmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpiYWNraW5nU3RvcmVBcmVhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChHcmFw
aGljc0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpiYWNraW5nU3RvcmVB
cmVhKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNBKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxp
emVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
Om5hbWVGb3JMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmJh
Y2tpbmdTdG9yZUFyZWEpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcG9zaXRpbmdMb2dFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9z
aXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
b2dDb21wb3NpdGluZ0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllclRyZWVHZW9tZXRyeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChSZW5k
ZXJMYXllckNvbXBvc2l0b3IpOgorCiAyMDEyLTA0LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCByMTE1MDA5OyBJdCBkb2Vzbid0IG1ha2UgbmVj
ZXNzYXJ5IGNoYW5nZXMgdG8gTm9kZVJhcmVEYXRhIGFuZCBOb2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmNwcAppbmRleCBiZDAxOTY0MTBhNTYyNTgxMjYwOTE5YjZkZDQ4NjczYjEzMGM3
MGJmLi4zNDYzN2E3Y2MzMzJkZmM1NjcwMzYxZmU4YTRlNTBhYTBhMzg1M2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcApAQCAtNjIsNiArNjIsOCBAQCBXVEZMb2dDaGFubmVsIExv
Z1Byb2dyZXNzID0gICAgICAgICAgeyAweDA4MDAwMDAwLCAiV2ViQ29yZUxvZ0xldmVsIiwgV1RG
TG9nQ2hhbgogV1RGTG9nQ2hhbm5lbCBMb2dGaWxlQVBJID0gICAgICAgICAgIHsgMHgxMDAwMDAw
MCwgIldlYkNvcmVMb2dMZXZlbCIsIFdURkxvZ0NoYW5uZWxPZmYgfTsKIAogV1RGTG9nQ2hhbm5l
bCBMb2dXZWJBdWRpbyA9ICAgICAgICAgIHsgMHgyMDAwMDAwMCwgIldlYkNvcmVMb2dMZXZlbCIs
IFdURkxvZ0NoYW5uZWxPZmYgfTsKK1dURkxvZ0NoYW5uZWwgTG9nQ29tcG9zaXRpbmcgPSAgICAg
ICB7IDB4NDAwMDAwMDAsICJXZWJDb3JlTG9nTGV2ZWwiLCBXVEZMb2dDaGFubmVsT2ZmIH07CisK
IAogV1RGTG9nQ2hhbm5lbCogZ2V0Q2hhbm5lbEZyb21OYW1lKGNvbnN0IFN0cmluZyYgY2hhbm5l
bE5hbWUpCiB7CkBAIC0xNDAsNiArMTQyLDkgQEAgV1RGTG9nQ2hhbm5lbCogZ2V0Q2hhbm5lbEZy
b21OYW1lKGNvbnN0IFN0cmluZyYgY2hhbm5lbE5hbWUpCiAgICAgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKGNoYW5uZWxOYW1lLCBTdHJpbmcoIldlYkF1ZGlvIikpKQogICAgICAgICByZXR1cm4gJkxv
Z1dlYkF1ZGlvOwogCisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGNoYW5uZWxOYW1lLCBTdHJp
bmcoIkNvbXBvc2l0aW5nIikpKQorICAgICAgICByZXR1cm4gJkxvZ0NvbXBvc2l0aW5nOworCiAg
ICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA4MjAxZjE2
YjM2MzE1YTEwNzY4NDMzMzkwYTgyM2JiZmFhNDEzZGE4Li4xYWYxYzA0YWJmMGJhNTg5Y2ZhNWVh
OGUzMjVjZDdjN2IyNTYyZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC02MCw2
ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBM
b2dQcm9ncmVzczsKICAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dGaWxlQVBJOwogICAgIGV4
dGVybiBXVEZMb2dDaGFubmVsIExvZ1dlYkF1ZGlvOworICAgIGV4dGVybiBXVEZMb2dDaGFubmVs
IExvZ0NvbXBvc2l0aW5nOwogCiAgICAgdm9pZCBpbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkoKTsKICAgICBXVEZMb2dDaGFubmVsKiBnZXRDaGFubmVsRnJvbU5hbWUoY29uc3Qg
U3RyaW5nJiBjaGFubmVsTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGIyOWRlNzYzZmQ1MjAxZWJiYzJhYWQ3OTkw
OGRhZGM0M2NkZjJjNGIuLjEwZDdiN2ZjOGRhNGY0ODZkMDNlMDMzZmI0ODIxMTU4NjFhZjYyZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC01MDksNiArNTA5LDE0IEBAIGludCBHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzCiAgICAg
cmV0dXJuIGZpcnN0SW5kZXg7CiB9CiAKK2RvdWJsZSBHcmFwaGljc0xheWVyOjpiYWNraW5nU3Rv
cmVBcmVhKCkgY29uc3QKK3sKKyAgICBpZiAoIWRyYXdzQ29udGVudCgpKQorICAgICAgICByZXR1
cm4gMDsKKyAgICAKKyAgICAvLyBFZmZlY3RzIG9mIHBhZ2UgYW5kIGRldmljZSBzY2FsZSBhcmUg
aWdub3JlZDsgc3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdG8gdGFrZSB0aGVzZSBpbnRvIGFj
Y291bnQuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZSgpLndpZHRoKCkpICog
c2l6ZSgpLmhlaWdodCgpOworfQogCiBzdGF0aWMgdm9pZCB3cml0ZUluZGVudChUZXh0U3RyZWFt
JiB0cywgaW50IGluZGVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAxYTA2YTY0ODI2NTQyNGZhY2FlYmZlZDExMTBiMWQ1
ZTljNDU4ZGY5Li5hNDFiMjJiNzdkOTU5OTUxMGMzM2EzMDI0MWJlYmUyMTk2OGVlODU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC00MjYsNiArNDI2LDkgQEAgcHVibGljOgogICAgIC8vIHBvaW50ZXJzIGZvciB0aGUgbGF5ZXJz
IGFuZCB0aW1pbmcgZGF0YSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzdHJpbmcu
CiAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKIAorICAgIC8vIFJldHVybiBhbiBl
c3RpbWF0ZSBvZiBob3cgbXVjaCBtZW1vcnkgaXMgdXNlZCBmb3IgYmFja2luZyBzdG9yZS4gTWF5
IGJlIGluY29ycmVjdCBmb3IgdGlsZWQgbGF5ZXJzLgorICAgIHZpcnR1YWwgZG91YmxlIGJhY2tp
bmdTdG9yZUFyZWEoKSBjb25zdDsKKwogICAgIGJvb2wgdXNpbmdUaWxlZExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV91c2luZ1RpbGVkTGF5ZXI7IH0KIAogICAgIHZpcnR1YWwgVGlsZWRCYWNraW5n
KiB0aWxlZEJhY2tpbmcoKSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA5OWFkZjJi
MTYyN2FmNjQ5MjQ5M2FmNjRiZTA0NmZlZDU1NmQyODA1Li4xZDliNGMxYTY4NTlkOWVjNmY3ZTA1
MDI4NmJiYTFmYmJmZmYyZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI4MTAsNiArMjgxMCwxNSBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKExheWVyQ2hh
bmdlRmxhZ3MgZmxhZ3MpCiAgICAgbV91bmNvbW1pdHRlZENoYW5nZXMgfD0gZmxhZ3M7CiB9CiAK
K2RvdWJsZSBHcmFwaGljc0xheWVyQ0E6OmJhY2tpbmdTdG9yZUFyZWEoKSBjb25zdAoreworICAg
IGlmICghZHJhd3NDb250ZW50KCkpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIC8vIGNv
bnRlbnRzTGF5ZXIgaXMgZ2l2ZW4gdG8gdXMsIHNvIHdlIGRvbid0IHJlYWxseSBrbm93IGFueXRo
aW5nIGFib3V0IGl0cyBjb250ZW50cy4KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihz
aXplKCkud2lkdGgoKSkgKiBzaXplKCkuaGVpZ2h0KCkgKiBtX2xheWVyLT5jb250ZW50c1NjYWxl
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggZTM4NWRiYTZjODNiZjBhZGYyNGQ1Yjc5
YTAyZTdjMjc2NjhhMjI5Zi4uNGQ1ZjAxYjlkNDZiNTVhZTNjMGFhZmY2OTc1YjExNjJlMjFlOGJl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKQEAgLTE2Miw2ICsxNjIsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBwbGF0Zm9ybUNBTGF5ZXJEaWRDcmVhdGVUaWxlcyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0
PiYgZGlydHlSZWN0cykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5
ZXJEZXZpY2VTY2FsZUZhY3RvcigpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCBkb3VibGUgYmFj
a2luZ1N0b3JlQXJlYSgpIGNvbnN0OworCiAgICAgdm9pZCB1cGRhdGVPcGFjaXR5T25MYXllcigp
OwogICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Mb2dnaW5nTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0xvZ2dpbmdNYWMubW0KaW5kZXggNDVjZjZlNWE0NWNkNzMxNjIzZTQ0Njk3YTgxYzdlZTA2
ZWU4YmQzYS4uNGM5YjMwMzUxNmViODAwYWFiZjBiZDYyNzY0YmYzYzFlNjgyNmQ3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW0KQEAgLTczLDYgKzczLDcgQEAg
dm9pZCBpbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogICAgIGluaXRpYWxp
emVXaXRoVXNlckRlZmF1bHQoTG9nUGx1Z2lucyk7CiAgICAgaW5pdGlhbGl6ZVdpdGhVc2VyRGVm
YXVsdChMb2dBcmNoaXZlcyk7CiAgICAgaW5pdGlhbGl6ZVdpdGhVc2VyRGVmYXVsdChMb2dXZWJB
dWRpbyk7CisgICAgaW5pdGlhbGl6ZVdpdGhVc2VyRGVmYXVsdChMb2dDb21wb3NpdGluZyk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggYThkNzgzNDE4OTBmZWU1Mzg2ZjNjNDkzMjE2YmUwZGI4N2YyNWMwYS4uZGExMjdm
ZjdkNWQ3MTdmNjg4ZTgyMWYzZTAyNDE5ZDQyYmVlNWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE1MDAsNyArMTUwMCw2IEBA
IEFuaW1hdGVkUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmNzc1RvR3JhcGhpY3NMYXll
clByb3BlcnR5KENTU1Byb3BlcnR5SUQKICAgICByZXR1cm4gQW5pbWF0ZWRQcm9wZXJ0eUludmFs
aWQ7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCiBTdHJpbmcgUmVuZGVyTGF5ZXJCYWNraW5nOjpuYW1l
Rm9yTGF5ZXIoKSBjb25zdAogewogICAgIFN0cmluZyBuYW1lID0gcmVuZGVyZXIoKS0+cmVuZGVy
TmFtZSgpOwpAQCAtMTUxNiw3ICsxNTE1LDYgQEAgU3RyaW5nIFJlbmRlckxheWVyQmFja2luZzo6
bmFtZUZvckxheWVyKCkgY29uc3QKIAogICAgIHJldHVybiBuYW1lOwogfQotI2VuZGlmCiAKIENv
bXBvc2l0aW5nTGF5ZXJUeXBlIFJlbmRlckxheWVyQmFja2luZzo6Y29tcG9zaXRpbmdMYXllclR5
cGUoKSBjb25zdAogewpAQCAtMTUyOSw2ICsxNTI3LDMwIEBAIENvbXBvc2l0aW5nTGF5ZXJUeXBl
IFJlbmRlckxheWVyQmFja2luZzo6Y29tcG9zaXRpbmdMYXllclR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBDb250YWluZXJDb21wb3NpdGluZ0xheWVyOwogfQogCitkb3VibGUgUmVuZGVyTGF5ZXJC
YWNraW5nOjpiYWNraW5nU3RvcmVBcmVhKCkgY29uc3QKK3sKKyAgICBkb3VibGUgYmFja2luZ0Fy
ZWE7CisgICAgCisgICAgLy8gbV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIgYW5kIG1fY2xpcHBpbmdM
YXllciBhcmUganVzdCB1c2VkIGZvciBtYXNraW5nLCBzbyBoYXZlIG5vIGJhY2tpbmcuCisgICAg
YmFja2luZ0FyZWEgPSBtX2dyYXBoaWNzTGF5ZXItPmJhY2tpbmdTdG9yZUFyZWEoKTsKKyAgICBp
ZiAobV9mb3JlZ3JvdW5kTGF5ZXIpCisgICAgICAgIGJhY2tpbmdBcmVhICs9IG1fZm9yZWdyb3Vu
ZExheWVyLT5iYWNraW5nU3RvcmVBcmVhKCk7CisgICAgaWYgKG1fbWFza0xheWVyKQorICAgICAg
ICBiYWNraW5nQXJlYSArPSBtX21hc2tMYXllci0+YmFja2luZ1N0b3JlQXJlYSgpOworCisgICAg
aWYgKG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICBiYWNraW5nQXJlYSAr
PSBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+YmFja2luZ1N0b3JlQXJlYSgpOworCisg
ICAgaWYgKG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcikKKyAgICAgICAgYmFja2luZ0FyZWEg
Kz0gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyLT5iYWNraW5nU3RvcmVBcmVhKCk7CisKKyAg
ICBpZiAobV9sYXllckZvclNjcm9sbENvcm5lcikKKyAgICAgICAgYmFja2luZ0FyZWEgKz0gbV9s
YXllckZvclNjcm9sbENvcm5lci0+YmFja2luZ1N0b3JlQXJlYSgpOworICAgIAorICAgIHJldHVy
biBiYWNraW5nQXJlYTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggY2NmZjc3MzE1YWI2MzJlNDE3OWUzMzhhMmUz
MDQxMzVkYTM2ZTUwYS4uMzcwNTcwMTg4YWQwN2QyOWY4M2YxNmY4NGI3YWVmMTkxNTgxOTgzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAt
MTU4LDYgKzE1OCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9v
bCBjYW5Db21wb3NpdGVGaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Db21wb3NpdGVGaWx0
ZXJzOyB9CiAjZW5kaWYKKworICAgIGRvdWJsZSBiYWNraW5nU3RvcmVBcmVhKCkgY29uc3Q7Cisg
ICAgU3RyaW5nIG5hbWVGb3JMYXllcigpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICB2b2lk
IGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CkBAIC0yMjAsMTAgKzIyMyw2IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHko
QW5pbWF0ZWRQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlEIGNzc1Rv
R3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCi0jaWZuZGVmIE5ERUJVRwot
ICAgIFN0cmluZyBuYW1lRm9yTGF5ZXIoKSBjb25zdDsKLSNlbmRpZgotCiAgICAgUmVuZGVyTGF5
ZXIqIG1fb3duaW5nTGF5ZXI7CiAKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9hbmNlc3Rv
ckNsaXBwaW5nTGF5ZXI7IC8vIG9ubHkgdXNlZCBpZiB3ZSBhcmUgY2xpcHBlZCBieSBhbiBhbmNl
c3RvciB3aGljaCBpcyBub3QgYSBzdGFja2luZyBjb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDM3YjVmZjdiZTA2
ZmJkMWQ2NGJkNDM4N2U4YTZhMGVjNWMzMGE4ZTguLjM1YzJiZjgzMmQ5ZTRkYTViMGUyM2M0NDU1
ZTI2NTFhODM0MTgyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2VuZGlmCiAKLSNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKKyNpZiAh
TE9HX0RJU0FCTEVECiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjZW5kaWYKIApAQCAt
MTQ1LDYgKzE0NSwxNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSB7CiAjZW5kaWYKIH07CiAK
Kworc3RhdGljIGlubGluZSBib29sIGNvbXBvc2l0aW5nTG9nRW5hYmxlZCgpCit7CisjaWYgIUxP
R19ESVNBQkxFRAorICAgIHJldHVybiBMb2dDb21wb3NpdGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFu
bmVsT247CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNkZWZpbmUgUElYRUxTX1BF
Ul9NRUdBUElYRUwgMTAwMDAwMC4wCisKIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgOiBtX3JlbmRlclZpZXco
cmVuZGVyVmlldykKICAgICAsIG1fdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lcih0aGlzLCAm
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVyRmlyZWQp
CkBAIC0xNjEsOSArMTcyLDEyIEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yKFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCiAgICAgLCBtX2ZsdXNoaW5nTGF5ZXJz
KGZhbHNlKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1fcm9v
dExheWVyQXR0YWNobWVudChSb290TGF5ZXJVbmF0dGFjaGVkKQotI2lmIFBST0ZJTEVfTEFZRVJf
UkVCVUlMRAorI2lmICFMT0dfRElTQUJMRUQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQo
MCkKLSNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKKyAgICAsIG1fb2JsaWdhdGVDb21w
b3NpdGVkTGF5ZXJDb3VudCgwKQorICAgICwgbV9zZWNvbmRhcnlDb21wb3NpdGVkTGF5ZXJDb3Vu
dCgwKQorICAgICwgbV9iYWNraW5nQXJlYU1lZ2FQaXhlbHMoMCkKKyNlbmRpZgogewogfQogCkBA
IC0zNTMsMTAgKzM2NywxMiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29t
cG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBlIHVwZGF0ZQogICAgIGlmIChpc0Z1
bGxVcGRhdGUgJiYgdXBkYXRlVHlwZSA9PSBDb21wb3NpdGluZ1VwZGF0ZUFmdGVyTGF5b3V0KQog
ICAgICAgICBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0ID0gZmFsc2U7CiAKLSNp
ZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKLSAgICArK21fcm9vdExheWVyVXBkYXRlQ291bnQ7Ci0g
ICAgCi0gICAgZG91YmxlIHN0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKKyNpZiAhTE9H
X0RJU0FCTEVECisgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICBpZiAoY29tcG9zaXRpbmdMb2dF
bmFibGVkKCkpIHsKKyAgICAgICAgKyttX3Jvb3RMYXllclVwZGF0ZUNvdW50OworICAgICAgICBz
dGFydFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisgICAgfQogI2VuZGlmICAgICAgICAKIAog
ICAgIGlmIChjaGVja0ZvckhpZXJhcmNoeVVwZGF0ZSkgewpAQCAtMzczLDYgKzM4OSwxOCBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9z
aXRpbmdVcGRhdGVUeXBlIHVwZGF0ZQogICAgICAgICBuZWVkSGllcmFyY2h5VXBkYXRlIHw9IGxh
eWVyc0NoYW5nZWQ7CiAgICAgfQogCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGlmIChjb21wb3Np
dGluZ0xvZ0VuYWJsZWQoKSAmJiBpc0Z1bGxVcGRhdGUgJiYgKG5lZWRIaWVyYXJjaHlVcGRhdGUg
fHwgbmVlZEdlb21ldHJ5VXBkYXRlKSkgeworICAgICAgICBtX29ibGlnYXRlQ29tcG9zaXRlZExh
eWVyQ291bnQgPSAwOworICAgICAgICBtX3NlY29uZGFyeUNvbXBvc2l0ZWRMYXllckNvdW50ID0g
MDsKKyAgICAgICAgbV9iYWNraW5nQXJlYU1lZ2FQaXhlbHMgPSAwOworCisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CisgICAgICAgIGJv
b2wgaXNNYWluRnJhbWUgPSAhbV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQo
KTsKKyAgICAgICAgTE9HKENvbXBvc2l0aW5nLCAiXG5VcGRhdGUgJWQgb2YgJXNcbiIsIG1fcm9v
dExheWVyVXBkYXRlQ291bnQsIGlzTWFpbkZyYW1lID8gIm1haW4gZnJhbWUiIDogZnJhbWUtPnRy
ZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKyNlbmRp
ZiAgICAgICAgCisKICAgICBpZiAobmVlZEhpZXJhcmNoeVVwZGF0ZSkgewogICAgICAgICAvLyBV
cGRhdGUgdGhlIGhpZXJhcmNoeSBvZiB0aGUgY29tcG9zaXRpbmcgbGF5ZXJzLgogICAgICAgICBW
ZWN0b3I8R3JhcGhpY3NMYXllcio+IGNoaWxkTGlzdDsKQEAgLTM5MywxMSArNDIxLDEzIEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3Np
dGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAgICAgICAgIHVwZGF0ZUxheWVyVHJlZUdlb21ldHJ5KHVw
ZGF0ZVJvb3QpOwogICAgIH0KICAgICAKLSNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKLSAgICBk
b3VibGUgZW5kVGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKLSAgICBpZiAoaXNGdWxsVXBkYXRl
KQotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVwZGF0ZSAlZDogY29tcHV0ZUNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzIGZvciB0aGUgd29ybGQgdG9vayAlZm1zXG4iLAotICAgICAgICAgICAgICAg
ICAgICBtX3Jvb3RMYXllclVwZGF0ZUNvdW50LCAxMDAwLjAgKiAoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBpZiAoY29tcG9zaXRpbmdMb2dFbmFibGVkKCkg
JiYgaXNGdWxsVXBkYXRlICYmIChuZWVkSGllcmFyY2h5VXBkYXRlIHx8IG5lZWRHZW9tZXRyeVVw
ZGF0ZSkpIHsKKyAgICAgICAgZG91YmxlIGVuZFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7Cisg
ICAgICAgIExPRyhDb21wb3NpdGluZywgIiVkIGxheWVycyAoJWQgcHJpbWFyeSwgJWQgc2Vjb25k
YXJ5KSwgdG90YWwgYmFja2luZyBhcmVhICUuMmZNUCwgdXBkYXRlIHRvb2sgJS4yZm1zLCBcbiIs
CisgICAgICAgICAgICBtX29ibGlnYXRlQ29tcG9zaXRlZExheWVyQ291bnQgKyBtX3NlY29uZGFy
eUNvbXBvc2l0ZWRMYXllckNvdW50LCBtX29ibGlnYXRlQ29tcG9zaXRlZExheWVyQ291bnQsCisg
ICAgICAgICAgICBtX3NlY29uZGFyeUNvbXBvc2l0ZWRMYXllckNvdW50LCBtX2JhY2tpbmdBcmVh
TWVnYVBpeGVscywgMTAwMC4wICogKGVuZFRpbWUgLSBzdGFydFRpbWUpKTsKKyAgICB9CiAjZW5k
aWYKICAgICBBU1NFUlQodXBkYXRlUm9vdCB8fCAhbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1
aWxkKTsKIApAQCAtNDA1LDYgKzQzNSwyNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBlIHVwZGF0ZQogICAg
ICAgICBlbmFibGVDb21wb3NpdGluZ01vZGUoZmFsc2UpOwogfQogCisjaWYgIUxPR19ESVNBQkxF
RAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0NvbXBvc2l0aW5nSW5mbyhjb25zdCBS
ZW5kZXJMYXllciogbGF5ZXIpCit7CisgICAgaWYgKCFjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0xh
eWVyKGxheWVyKSB8fCBsYXllci0+aXNSb290TGF5ZXIoKSkKKyAgICAgICAgKyttX29ibGlnYXRl
Q29tcG9zaXRlZExheWVyQ291bnQ7CisgICAgZWxzZQorICAgICAgICArK21fc2Vjb25kYXJ5Q29t
cG9zaXRlZExheWVyQ291bnQ7CisKKyAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBs
YXllci0+YmFja2luZygpOworICAgIAorICAgIG1fYmFja2luZ0FyZWFNZWdhUGl4ZWxzICs9IGJh
Y2tpbmctPmJhY2tpbmdTdG9yZUFyZWEoKSAvIFBJWEVMU19QRVJfTUVHQVBJWEVMOworCisgICAg
TE9HKENvbXBvc2l0aW5nLCAiICBMYXllciAlcCAlZHglZCAlLjNmTVAgKCVzKSAlc1xuIiwgbGF5
ZXIsIGJhY2tpbmctPmNvbXBvc2l0ZWRCb3VuZHMoKS53aWR0aCgpLCBiYWNraW5nLT5jb21wb3Np
dGVkQm91bmRzKCkuaGVpZ2h0KCksCisgICAgICAgIGJhY2tpbmctPmJhY2tpbmdTdG9yZUFyZWEo
KSAvIFBJWEVMU19QRVJfTUVHQVBJWEVMLAorICAgICAgICByZWFzb25Gb3JDb21wb3NpdGluZyhs
YXllciksIGxheWVyLT5iYWNraW5nKCktPm5hbWVGb3JMYXllcigpLnV0ZjgoKS5kYXRhKCkpOwor
fQorI2VuZGlmCisKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKFJl
bmRlckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50IHNob3VsZFJlcGFpbnQp
CiB7CiAgICAgYm9vbCBsYXllckNoYW5nZWQgPSBmYWxzZTsKQEAgLTkzMyw2ICs5ODQsMTAgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShS
ZW5kZXJMYXllciogbGF5ZXIsIFZlY3QKICAgICAgICAgfQogCiAgICAgICAgIGNoaWxkTGF5ZXJz
T2ZFbmNsb3NpbmdMYXllci5hcHBlbmQobGF5ZXJCYWNraW5nLT5jaGlsZEZvclN1cGVybGF5ZXJz
KCkpOworICAgICAgICAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgICAgIGxvZ0NvbXBvc2l0aW5n
SW5mbyhsYXllcik7CisjZW5kaWYKICAgICB9CiB9CiAKQEAgLTEwNDIsNiArMTA5NywxMCBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJUcmVlR2VvbWV0cnkoUmVuZGVy
TGF5ZXIqIGxheWVyKQogCiAgICAgICAgIGlmICghbGF5ZXItPnBhcmVudCgpKQogICAgICAgICAg
ICAgdXBkYXRlUm9vdExheWVyUG9zaXRpb24oKTsKKworI2lmICFMT0dfRElTQUJMRUQKKyAgICAg
ICAgbG9nQ29tcG9zaXRpbmdJbmZvKGxheWVyKTsKKyNlbmRpZgogICAgIH0KIAogI2lmICFBU1NF
UlRfRElTQUJMRUQKQEAgLTEzNzEsNiArMTQzMCw1NSBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6cmVxdWlyZXNPd25CYWNraW5nU3RvcmUoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBj
bwogICAgICAgICB8fCBsYXllci0+bXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5ZXJzKCk7CiB9CiAK
KyNpZiAhTE9HX0RJU0FCTEVECitjb25zdCBjaGFyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gbGF5ZXItPnJlbmRlcmVyKCk7CisgICAgaWYgKGxheWVyLT5p
c1JlZmxlY3Rpb24oKSkgeworICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5wYXJlbnQoKTsK
KyAgICAgICAgbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KHJlbmRlcmVyKS0+bGF5ZXIo
KTsKKyAgICB9CisKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclRyYW5zZm9ybShyZW5k
ZXJlcikpCisgICAgICAgIHJldHVybiAidHJhbnNmb3JtIjsKKworICAgIGlmIChyZXF1aXJlc0Nv
bXBvc2l0aW5nRm9yVmlkZW8ocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gInZpZGVvIjsKKwor
ICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKHJlbmRlcmVyKSkKKyAgICAgICAg
cmV0dXJuICJjYW52YXMiOworCisgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4o
cmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gInBsdWdpbiI7CisKKyAgICBpZiAocmVxdWlyZXND
b21wb3NpdGluZ0ZvckZyYW1lKHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuICJpZnJhbWUiOwor
ICAgIAorICAgIGlmICgoY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkgJiYgcmVuZGVyZXItPnN0eWxl
KCktPmJhY2tmYWNlVmlzaWJpbGl0eSgpID09IEJhY2tmYWNlVmlzaWJpbGl0eUhpZGRlbikpCisg
ICAgICAgIHJldHVybiAiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuIjsKKworICAgIGlmIChj
bGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMobGF5ZXIpKQorICAgICAgICByZXR1cm4gImNsaXBz
IGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIjsKKworICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yQW5pbWF0aW9uKHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuICJhbmltYXRpb24iOworCisg
ICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJzKHJlbmRlcmVyKSkKKyAgICAgICAg
cmV0dXJuICJmaWx0ZXJzIjsKKworICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRp
b24ocmVuZGVyZXIsIGxheWVyKSkKKyAgICAgICAgcmV0dXJuICJwb3NpdGlvbjogZml4ZWQiOwor
CisgICAgaWYgKGxheWVyLT5tdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMoKSkKKyAgICAgICAg
cmV0dXJuICJvdmVybGFwL3N0YWNraW5nIjsKKworICAgIGlmIChpbkNvbXBvc2l0aW5nTW9kZSgp
ICYmIGxheWVyLT5pc1Jvb3RMYXllcigpKQorICAgICAgICByZXR1cm4gInJvb3QiOworCisgICAg
cmV0dXJuICIiOworfQorI2VuZGlmCisKIC8vIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBsYXll
ciBoYXMgc29tZSBhbmNlc3RvciBpbiB0aGUgUmVuZGVyTGF5ZXIgaGllcmFyY2h5IHRoYXQgY2xp
cHMsCiAvLyB1cCB0byB0aGUgZW5jbG9zaW5nIGNvbXBvc2l0aW5nIGFuY2VzdG9yLiBUaGlzIGlz
IHJlcXVpcmVkIGJlY2F1c2UgY29tcG9zaXRpbmcgbGF5ZXJzIGFyZSBwYXJlbnRlZAogLy8gYWNj
b3JkaW5nIHRvIHRoZSB6LW9yZGVyIGhpZXJhcmNoeSwgeWV0IGNsaXBwaW5nIGdvZXMgZG93biB0
aGUgcmVuZGVyZXIgaGllcmFyY2h5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDczMzRjOTZjNDViM2JjODM1NTcxMWRhM2I1NzM4
OTgwMzhkNTkyMmQuLjI3MzQzMDNlZmFhODk2MDY1ZmZhZGIzMDE3ZWI4NGRlZTExZTIwZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
QEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jZGVmaW5lIFBST0ZJ
TEVfTEFZRVJfUkVCVUlMRCAwCi0KIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBSZW5kZXJF
bWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlclBhcnQ7CkBAIC0zMDIsNiArMzAwLDExIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCByZXF1aXJlc0NvbnRlbnRTaGFkb3dMYXllcigpIGNvbnN0OwogI2Vu
ZGlmCiAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgY29uc3QgY2hhciogcmVhc29uRm9yQ29tcG9z
aXRpbmcoY29uc3QgUmVuZGVyTGF5ZXIqKTsKKyAgICB2b2lkIGxvZ0NvbXBvc2l0aW5nSW5mbyhj
b25zdCBSZW5kZXJMYXllciopOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgUmVuZGVyVmlldyog
bV9yZW5kZXJWaWV3OwogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RDb250ZW50TGF5
ZXI7CkBAIC0zNDIsOCArMzQ1LDEyIEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzOwogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBt
X2NvbnRlbnRTaGFkb3dMYXllcjsKICNlbmRpZgotI2lmIFBST0ZJTEVfTEFZRVJfUkVCVUlMRAor
CisjaWYgIUxPR19ESVNBQkxFRAogICAgIGludCBtX3Jvb3RMYXllclVwZGF0ZUNvdW50OworICAg
IGludCBtX29ibGlnYXRlQ29tcG9zaXRlZExheWVyQ291bnQ7IC8vIGNvdW50IG9mIGxheWVyIHRo
YXQgaGF2ZSB0byBiZSBjb21wb3NpdGVkLgorICAgIGludCBtX3NlY29uZGFyeUNvbXBvc2l0ZWRM
YXllckNvdW50OyAvLyBjb3VudCBvZiBsYXllcnMgdGhhdCBoYXZlIHRvIGJlIGNvbXBvc2l0ZWQg
YmVjYXVzZSBvZiBzdGFja2luZyBvciBvdmVybGFwLgorICAgIGRvdWJsZSBtX2JhY2tpbmdBcmVh
TWVnYVBpeGVsczsKICNlbmRpZgogfTsKIAo=
</data>
<flag name="review"
          id="144142"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="144147"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>