<?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>27021</bug_id>
          
          <creation_ts>2009-07-06 22:20:32 -0700</creation_ts>
          <short_desc>Make use of geometry information to decide which layers become composited</short_desc>
          <delta_ts>2009-07-07 10:15:37 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130129</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-06 22:20:32 -0700</bug_when>
    <thetext>The current RenderLayerCompositor algorithm only makes use of painting order trees when deciding which layers should be composited. This means that an element like &lt;video&gt; can kick a bunch of non-overlapping elements into compositing layers, with resulting impact on text antialiasing.

We can improve the RenderLayerCompositor algorithm to look at overlap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130131</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-06 22:21:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/7011947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130135</commentid>
    <comment_count>2</comment_count>
      <attachid>32362</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-06 23:30:17 -0700</bug_when>
    <thetext>Created attachment 32362
Patch, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130233</commentid>
    <comment_count>3</comment_count>
      <attachid>32362</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-07-07 10:10:56 -0700</bug_when>
    <thetext>Comment on attachment 32362
Patch, changelog

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130234</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-07 10:15:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/45598</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32362</attachid>
            <date>2009-07-06 23:30:17 -0700</date>
            <delta_ts>2009-07-07 10:10:56 -0700</delta_ts>
            <desc>Patch, changelog</desc>
            <filename>27021_patch.txt</filename>
            <type>text/plain</type>
            <size>31576</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjU0ZGQwMS4uNjJhZDg5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDEgQEAKKzIwMDktMDctMDYgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgZ2VvbWV0cnkgaW5mb3JtYXRpb24gdG8g
ZGVjaWRlIHdoaWNoIGxheWVycyBiZWNvbWUgY29tcG9zaXRlZAorCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDExOTQ3PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3MDIxPgorICAgICAgICAKKyAgICAgICAgSW4gYWRkaXRpb24gdG8gbG9va2lu
ZyBhdCBwYWludGluZyBvcmRlciwgYWxzbywgb3B0aW9uYWxseSwgdGFrZSBsYXllcgorICAgICAg
ICBvdmVybGFwIGludG8gYWNjb3VudCB3aGVuIGRlY2lkaW5nIHdoaWNoIFJlbmRlckxheWVycyBu
ZWVkIHRvIGJlIGNvbXBvc2l0ZWQuCisKKyAgICAgICAgTm8gdGVzdGNhc2UgYmVjYXVzZSBEUlQg
ZG9lc24ndCBkdW1wIHdoaWNoIGxheWVycyBhcmUgY29tcG9zaXRlZC4KKyAgICAgICAgCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKToKKyAg
ICAgICAgUmVtb3ZlZCB0aGUgdW51c2VkIENvbXBvc2l0aW5nVXBkYXRlIHBhcmFtZXRlciwgYW5k
IGp1c3QgZG8gYW4gZWFybHkgcmV0dXJuCisgICAgICAgIHdoZW4gdGhlcmUgaXMgbm8gdmlldy4K
KyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpyZW5kZXJlckNvbnRlbnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpkaXJ0eVpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0
eU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdHlsZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om11c3RPdmVybGFwQ29tcG9z
aXRlZExheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0TXVzdE92ZXJs
YXBDb21wb3NpdGVkTGF5ZXJzKToKKyAgICAgICAgQ2hhbmdlICJvdmVybGF5IiB0byAib3Zlcmxh
cCIgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHVzZSBvZiAib3ZlcmxhcCIKKyAgICAgICAgZWxz
ZXdoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUFmdGVyTGF5b3V0KToK
KyAgICAgICAgY29tcG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKCkgcmVuYW1lZCB0byBjb21wb3Np
dGluZ0xheWVyc05lZWRSZWJ1aWxkKCkuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbik6CisgICAgICAgIFRlbGwgdGhlIGNvbXBv
c2l0b3IgdGhhdCB3ZSBzdGFydGVkIGFuIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBvciB0cmFuc2l0
aW9uLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXBvc2l0aW5n
TGF5ZXJzTmVlZFJlYnVpbGQpOgorICAgICAgICBSZW5hbWVkLCBzaW5jZSBpdCdzIGV4cGxpY2l0
bHkgYWJvdXQgY2hhbmdlcyBpbiBoaWVyYXJjaHkgbm93LgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0Q29tcG9zaXRpbmdDb25zdWx0c092ZXJs
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wb3NpdGlu
Z0NvbnN1bHRzT3ZlcmxhcCk6CisgICAgICAgIE5ldyBnZXR0ZXIgYW5kIHNldHRlciBmb3Igd2hl
dGhlciBjb21wb3NpdGluZyBzaG91bGQgdGFrZSBvdmVybGFwIGludG8gYWNjb3VudC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBvc2l0b3IpOgorICAg
ICAgICBBZGQgbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCwgcmUtb3JkZXIgc29tZSBtZW1i
ZXIgdmFyaWFibGVzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEZsYWcpOgorICAgICAg
ICBXaGl0ZXNwYWNlIGNsZWFudXAgYW5kIG1ldGhvZCByZW5hbWUuCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRDb21wb3NpdGluZ0xheWVyc05l
ZWRSZWJ1aWxkKToKKyAgICAgICAgTWV0aG9kIGFuZCB2YXJpYWJsZSByZW5hbWluZy4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBv
c2l0aW5nTGF5ZXJzKToKKyAgICAgICAgTm93IHdlIGhhdmUgdG8gcnVuIHRocm91Z2ggdGhlIGxh
eWVyIGhpZXJhcmNoeSBldmVyeSB0aW1lIGlmIGxvb2tpbmcKKyAgICAgICAgYXQgb3ZlcmxhcCwg
YmVjYXVzZSBjaGFuZ2VzIGluIGxheW91dCBjYW4gbm93IGFsdGVyIGNvbXBvc2l0aW5nIGJlaGF2
aW9yLgorICAgICAgICBXZSBtaW5pbWl6ZSB3b3JrIGJ5IHRyYWNraW5nIHdoZXRoZXIgd2UgYWN0
dWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlIGxheWVyCisgICAgICAgIGhpZXJhcmNoeSB2aWEgbmVl
ZExheWVyUmVidWlsZC4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorICAgICAgICAzRCB0cmFuc2Zvcm1zIHR1cm4gb2Zm
IG92ZXJsYXAgbW9kZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmxheWVyV2FzQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpsYXllcldpbGxCZVJlbW92ZWQpOgorICAgICAgICBNZXRob2QgcmVuYW1lLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9P
dmVybGFwTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6b3Zl
cmxhcHNDb21wb3NpdGVkTGF5ZXJzKToKKyAgICAgICAgVXRpbGl0eSBtZXRob2RzIHRvIGFkZCBh
IGxheWVyIHRvIHRoZSBvdmVybGFwTWFwIChjb21wdXRpbmcgdGhlIGFic29sdXRlCisgICAgICAg
IGJvdW5kaW5nIGJveCBvbmx5IGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBkb25lIHNvKSwgYW5kIHRl
c3RpbmcgdGhlIG1hcAorICAgICAgICBlbnRyaWVzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRz
KToKKyAgICAgICAgSWYgYSBsYXllciB3b3VsZCBjb21wb3NpdGUgb25seSBiZWNhdXNlIGl0IGNv
bWVzIGFmdGVyIG90aGVyIGNvbXBvc2l0aW5nCisgICAgICAgIGxheWVycyBpbiB0aGUgcGFpbnRp
bmcgb3JkZXIsIHRoZW4gY29uc3VsdCB0aGUgb3ZlcmxhcCBtYXAgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIKKyAgICAgICAgaXQgb3ZlcmxhcHMsIGFuZCB0aHVzIGFjdHVhbGx5IG5lZWRzIHRvIGNvbXBv
c2l0ZS4KKyAgICAgICAgCisgICAgICAgIEFkZCBsYXllcnMgdG8gdGhlIG1hcCB3aGVuIHRoZXkg
bXVzdCBiZSBjb21wb3NpdGVkLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgT25s
eSBkbyByZS1wYXJlbnRpbmcgd29yayBpZiB0aGUgdXBkYXRlSGllcmFyY2h5IGZsYWcgaXMgc2V0
LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlk
U3RhcnRBY2NlbGVyYXRlZEFuaW1hdGlvbik6CisgICAgICAgIFdoZW4gd2Ugc3RhcnQgYW4gYWNj
ZWxlcmF0ZWQgdHJhbnNpdGlvbiBvciBhbmltYXRpb24sIHdlIHN0b3AgbG9va2luZyBhdAorICAg
ICAgICBvdmVybGFwIGJlY2F1c2Ugd2UgY2FuIG5vIGxvbmdlciBndWFyYW50ZWUgY29ycmVjdCBm
cm9udC10by1iYWNrIG9yZGVyaW5nIHdoaWxlIHRoZQorICAgICAgICBhY2NlbGVyYXRlZCBhbmlt
YXRpb24gaXMgcnVubmluZy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpuZWVkc1RvQmVDb21wb3NpdGVkKToKKyAgICAgICAgTWV0aG9kIHJlbmFtZXMuCisgICAg
ICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5lU2l6ZSk6CisgICAgICAgIEFkZCBjb21t
ZW50IGluZGljYXRpbmcgdGhhdCB0aGlzIGNvdWxkIGJlIG9wdGltaXplZC4KKwogMjAwOS0wNy0w
NiAgQWxiZXJ0IEouIFdvbmcgIDxhandvbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA2YzkzZWYxLi4yZDhi
NDMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDE3LDIwICs0MTcsMTggQEAgdm9pZCBGcmFtZVZpZXc6
OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KFJlbmRlck9iamVjdCogbywgU2Nyb2xsYmFyTW9kZSYg
aE1vZGUsIFMKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLXZvaWQgRnJh
bWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZSB1cGRhdGVU
eXBlKQordm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKCkKIHsKICAgICBS
ZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7Ci0gICAgaWYgKHZp
ZXcgJiYgdmlldy0+Y29tcG9zaXRvcigpKSB7Ci0gICAgICAgIC8vIFRoaXMgY2FsbCB3aWxsIG1h
a2Ugc3VyZSB0aGUgY2FjaGVkIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgaXMgdXBkYXRlZCBm
cm9tIHRoZSBwcmVmCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS0+Y2FjaGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEZsYWcoKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCF2aWV3IHx8
ICF2aWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKKyAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmICh1cGRhdGVUeXBlID09IEZvcmNlZENvbXBvc2l0aW5nVXBkYXRlKQotICAg
ICAgICB2aWV3LT5jb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgp
OworICAgIC8vIFRoaXMgY2FsbCB3aWxsIG1ha2Ugc3VyZSB0aGUgY2FjaGVkIGhhc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcgaXMgdXBkYXRlZCBmcm9tIHRoZSBwcmVmCisgICAgdmlldy0+Y29tcG9z
aXRvcigpLT5jYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkRmxhZygpOwogICAgIAor
ICAgIGlmICghdmlldy0+dXNlc0NvbXBvc2l0aW5nKCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IHZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCmluZGV4IGQ0NzFlNWEuLmZiY2QzNjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTkzLDggKzkzLDcgQEAg
cHVibGljOgogICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9G
dWxsUmVwYWludDsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGVu
dW0gQ29tcG9zaXRpbmdVcGRhdGUgeyBOb3JtYWxDb21wb3NpdGluZ1VwZGF0ZSwgRm9yY2VkQ29t
cG9zaXRpbmdVcGRhdGUgfTsKLSAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBv
c2l0aW5nVXBkYXRlIHVwZGF0ZVR5cGUgPSBOb3JtYWxDb21wb3NpdGluZ1VwZGF0ZSk7CisgICAg
dm9pZCB1cGRhdGVDb21wb3NpdGluZ0xheWVycygpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hh
bmdlcyB0byB0aGUgR3JhcGhpY3NMYXllciBoaWVyYXJjaHkgaGF2ZSB0byBiZSBzeW5jaHJvbml6
ZWQgd2l0aAogICAgIC8vIGNvbnRlbnQgcmVuZGVyZWQgdmlhIHRoZSBub3JtYWwgcGFpbnRpbmcg
cGF0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzY2RlNmI4Li4yNDNiZjkyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgUmVuZGVyTGF5
ZXI6OlJlbmRlckxheWVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlcikKICAgICAsIG1f
aGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnQoZmFsc2UpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICwgbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoZmFsc2UpCi0gICAg
LCBtX211c3RPdmVybGF5Q29tcG9zaXRlZExheWVycyhmYWxzZSkKKyAgICAsIG1fbXVzdE92ZXJs
YXBDb21wb3NpdGVkTGF5ZXJzKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX21hcnF1ZWUoMCkKICAg
ICAsIG1fc3RhdGljWCgwKQpAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJl
bmRlcmVyQ29udGVudENoYW5nZWQoKQogewogICAgIC8vIFRoaXMgY2FuIGdldCBjYWxsZWQgd2hl
biB2aWRlbyBiZWNvbWVzIGFjY2VsZXJhdGVkLCBzbyB0aGUgbGF5ZXJzIG1heSBjaGFuZ2UuCiAg
ICAgaWYgKGNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKHRoaXMpKQot
ICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOwor
ICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsK
IAogICAgIGlmIChtX2JhY2tpbmcpCiAgICAgICAgIG1fYmFja2luZy0+cmVuZGVyZXJDb250ZW50
Q2hhbmdlZCgpOwpAQCAtMjk3Niw3ICsyOTc2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHla
T3JkZXJMaXN0cygpCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCi0gICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKCk7CisgICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogI2VuZGlmCiB9CiAKQEAg
LTI5OTUsNyArMjk5NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxvd0xpc3Qo
KQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIo
KS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQotICAgICAgICBjb21wb3NpdG9yKCktPnNldENv
bXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworICAgICAgICBjb21wb3NpdG9yKCktPnNldENv
bXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICNlbmRpZgogfQogCkBAIC0zMTg1LDcgKzMx
ODUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKikKICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKIAogICAgIGlm
IChjb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZSh0aGlzKSkKLSAgICAg
ICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRVcGRhdGUoKTsKKyAgICAg
ICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAg
ZWxzZSBpZiAobV9iYWNraW5nKQogICAgICAgICBtX2JhY2tpbmctPnVwZGF0ZUdyYXBoaWNzTGF5
ZXJHZW9tZXRyeSgpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAxMTM4NjU4Li5iNTk0
MTRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUyMyw4ICs1MjMsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgaGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQ7IH0KICAgICB2b2lkIHNldEhhc0NvbXBvc2l0aW5nRGVz
Y2VuZGFudChib29sIGIpICB7IG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50ID0gYjsgfQogICAg
IAotICAgIGJvb2wgbXVzdE92ZXJsYXlDb21wb3NpdGVkTGF5ZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9tdXN0T3ZlcmxheUNvbXBvc2l0ZWRMYXllcnM7IH0KLSAgICB2b2lkIHNldE11c3RPdmVybGF5
Q29tcG9zaXRlZExheWVycyhib29sIGIpIHsgbV9tdXN0T3ZlcmxheUNvbXBvc2l0ZWRMYXllcnMg
PSBiOyB9CisgICAgYm9vbCBtdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMoKSBjb25zdCB7IHJl
dHVybiBtX211c3RPdmVybGFwQ29tcG9zaXRlZExheWVyczsgfQorICAgIHZvaWQgc2V0TXVzdE92
ZXJsYXBDb21wb3NpdGVkTGF5ZXJzKGJvb2wgYikgeyBtX211c3RPdmVybGFwQ29tcG9zaXRlZExh
eWVycyA9IGI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNjE3LDcgKzYxNyw3IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4g
YSBwcmVzZXJ2ZXMzRCBoaWVyYXJjaHkuIEhpbnQgdG8gZG8gM0QtYXdhcmUgaGl0IHRlc3Rpbmcu
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgbV9oYXNDb21wb3Np
dGluZ0Rlc2NlbmRhbnQgOiAxOwotICAgIGJvb2wgbV9tdXN0T3ZlcmxheUNvbXBvc2l0ZWRMYXll
cnMgOiAxOworICAgIGJvb2wgbV9tdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMgOiAxOwogI2Vu
ZGlmCiAKICAgICBSZW5kZXJNYXJxdWVlKiBtX21hcnF1ZWU7IC8vIFVzZWQgYnkgbGF5ZXJzIHdp
dGggb3ZlcmZsb3c6bWFycXVlZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggYWM3MzQ1OS4uY2UwZmZiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVB
ZnRlckxheW91dChVcGRhdGVEZXB0aCB1cGRhdGVEZXB0aCkKIHsKICAgICBSZW5kZXJMYXllckNv
bXBvc2l0b3IqIGxheWVyQ29tcG9zaXRvciA9IGNvbXBvc2l0b3IoKTsKLSAgICBpZiAoIWxheWVy
Q29tcG9zaXRvci0+Y29tcG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKCkpIHsKKyAgICBpZiAoIWxh
eWVyQ29tcG9zaXRvci0+Y29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpKSB7CiAgICAgICAg
IC8vIENhbGxpbmcgdXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkgaGVyZSBnaXZlcyBpbmNv
cnJlY3QgcmVzdWx0cywgYmVjYXVzZSB0aGUKICAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhpcyBs
YXllcidzIEdyYXBoaWNzTGF5ZXIgZGVwZW5kcyBvbiB0aGUgcG9zaXRpb24gb2Ygb3VyIGNvbXBv
c2l0aW5nCiAgICAgICAgIC8vIGFuY2VzdG9yJ3MgR3JhcGhpY3NMYXllci4gVGhhdCBjYW5ub3Qg
YmUgZGV0ZXJtaW5lZCB1bnRpbCBhbGwgdGhlIGRlc2NlbmRhbnQgCkBAIC05NzEsNyArOTcxLDEx
IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUgYmVnaW5U
aW1lLCBjb25zdCBBbmltYXRpb24qIGFuaW0sCiAgICAgaWYgKGhhc09wYWNpdHkgJiYgbV9ncmFw
aGljc0xheWVyLT5hbmltYXRlRmxvYXQoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHksIG9wYWNpdHlW
ZWN0b3IsIGFuaW0sIGJlZ2luVGltZSkpCiAgICAgICAgIGRpZEFuaW1hdGVPcGFjaXR5ID0gdHJ1
ZTsKICAgICAKLSAgICByZXR1cm4gZGlkQW5pbWF0ZVRyYW5zZm9ybSAmJiBkaWRBbmltYXRlT3Bh
Y2l0eTsKKyAgICBib29sIHJ1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbiA9IGRpZEFuaW1hdGVU
cmFuc2Zvcm0gJiYgZGlkQW5pbWF0ZU9wYWNpdHk7CisgICAgaWYgKHJ1bm5pbmdBY2NlbGVyYXRl
ZEFuaW1hdGlvbikKKyAgICAgICAgY29tcG9zaXRvcigpLT5kaWRTdGFydEFjY2VsZXJhdGVkQW5p
bWF0aW9uKCk7CisKKyAgICByZXR1cm4gcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uOwogfQog
CiBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSBiZWdpblRp
bWUsIGludCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUqIGZyb21TdHlsZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIHRvU3R5bGUpCkBAIC0xMDA1LDYgKzEwMDksOSBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSBiZWdpblRpbWUsIGludCBwcm9wZXJ0eSwg
Y29uc3QgUgogICAgICAgICAgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwogICAgICAgICB9CiAg
ICAgfQorCisgICAgaWYgKGRpZEFuaW1hdGUpCisgICAgICAgIGNvbXBvc2l0b3IoKS0+ZGlkU3Rh
cnRBY2NlbGVyYXRlZEFuaW1hdGlvbigpOwogICAgIAogICAgIHJldHVybiBkaWRBbmltYXRlOwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggOTUz
MjA0Ni4uMTM0YjY5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC03OCwxMCArNzgsMTEgQEAgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUgewogUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBvc2l0b3IoUmVuZGVyVmlldyogcmVu
ZGVyVmlldykKICAgICA6IG1fcmVuZGVyVmlldyhyZW5kZXJWaWV3KQogICAgICwgbV9yb290UGxh
dGZvcm1MYXllcigwKQorICAgICwgbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKHRydWUpCisg
ICAgLCBtX2NvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKHRydWUpCiAgICAgLCBtX2NvbXBvc2l0
aW5nKGZhbHNlKQogICAgICwgbV9yb290TGF5ZXJBdHRhY2hlZChmYWxzZSkKLSAgICAsIG1fY29t
cG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKGZhbHNlKQotICAgICwgbV9oYXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKHRydWUpCisgICAgLCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoZmFs
c2UpCiAjaWYgUFJPRklMRV9MQVlFUl9SRUJVSUxECiAgICAgLCBtX3Jvb3RMYXllclVwZGF0ZUNv
dW50KDApCiAjZW5kaWYgLy8gUFJPRklMRV9MQVlFUl9SRUJVSUxECkBAIC0xMTMsMjEgKzExNCwy
MSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZEZsYWcoKQogewogICAgIGJvb2wgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9
IGZhbHNlOwogICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3JlbmRlclZpZXctPmRvY3Vt
ZW50KCktPnNldHRpbmdzKCkpCi0gICAgICAgIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBz
ZXR0aW5ncy0+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CisgICAgICAgIGhhc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBzZXR0aW5ncy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQoKTsKIAogICAgIGlmIChoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nICE9IG1faGFzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZykKLSAgICAgICAgc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkVXBk
YXRlKCk7CisgICAgICAgIHNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICAg
ICAgCiAgICAgbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gaGFzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZzsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNldENvbXBvc2l0aW5n
TGF5ZXJzTmVlZFVwZGF0ZShib29sIG5lZWRVcGRhdGUpCit2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZChib29sIG5lZWRSZWJ1aWxkKQog
ewogICAgIGlmIChpbkNvbXBvc2l0aW5nTW9kZSgpKSB7Ci0gICAgICAgIGlmICghbV9jb21wb3Np
dGluZ0xheWVyc05lZWRVcGRhdGUgJiYgbmVlZFVwZGF0ZSkKKyAgICAgICAgaWYgKCFtX2NvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQgJiYgbmVlZFJlYnVpbGQpCiAgICAgICAgICAgICBzY2hl
ZHVsZVZpZXdVcGRhdGUoKTsKIAotICAgICAgICBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0
ZSA9IG5lZWRVcGRhdGU7CisgICAgICAgIG1fY29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCA9
IG5lZWRSZWJ1aWxkOwogICAgIH0KIH0KIApAQCAtMTQzLDE0ICsxNDQsMTcgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxlVmlld1VwZGF0ZSgpCiAKIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhSZW5kZXJMYXllciogdXBkYXRl
Um9vdCkKIHsKLSAgICBpZiAoIW1fY29tcG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKQorICAgIC8v
IFdoZW4gbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCBpcyB0cnVlLCB0aGVuIGxheWVyIHBv
c2l0aW9ucyBhZmZlY3QgY29tcG9zaXRpbmcsCisgICAgLy8gc28gd2UgY2FuIG9ubHkgYmFpbCBo
ZXJlIHdoZW4gd2UncmUgbm90IGxvb2tpbmcgYXQgb3ZlcmxhcC4KKyAgICBpZiAoIW1fY29tcG9z
aXRpbmdMYXllcnNOZWVkUmVidWlsZCAmJiAhbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGluQ29tcG9zaXRpbmdNb2RlKCkpOwogCisg
ICAgYm9vbCBuZWVkTGF5ZXJSZWJ1aWxkID0gbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxk
OwogICAgIGlmICghdXBkYXRlUm9vdCkgewotICAgICAgICAvLyBPbmx5IGNsZWFyIHRoZSBmbGFn
IGlmIHdlJ3JlIHVwZGF0aW5nIHRoZSBlbnRpcmUgaGllcmFyY2h5Ci0gICAgICAgIG1fY29tcG9z
aXRpbmdMYXllcnNOZWVkVXBkYXRlID0gZmFsc2U7CisgICAgICAgIC8vIE9ubHkgY2xlYXIgdGhl
IGZsYWcgaWYgd2UncmUgdXBkYXRpbmcgdGhlIGVudGlyZSBoaWVyYXJjaHkuCisgICAgICAgIG1f
Y29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCA9IGZhbHNlOwogICAgICAgICB1cGRhdGVSb290
ID0gcm9vdFJlbmRlckxheWVyKCk7CiAgICAgfQogCkBAIC0xNjYsMTMgKzE3MCwyMCBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoUmVuZGVyTGF5
ZXIqIHVwZGF0ZVJvb3QpCiAgICAgLy8gY29tcGxleC4KICAgICB7CiAgICAgICAgIENvbXBvc2l0
aW5nU3RhdGUgY29tcFN0YXRlKHVwZGF0ZVJvb3QpOwotICAgICAgICBjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHModXBkYXRlUm9vdCwgY29tcFN0YXRlKTsKKyAgICAgICAgYm9vbCBsYXll
cnNDaGFuZ2VkOworICAgICAgICBpZiAobV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCkgewor
ICAgICAgICAgICAgT3ZlcmxhcE1hcCBvdmVybGFwVGVzdFJlcXVlc3RNYXA7CisgICAgICAgICAg
ICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHModXBkYXRlUm9vdCwgJm92ZXJsYXBUZXN0
UmVxdWVzdE1hcCwgY29tcFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHModXBkYXRlUm9vdCwgMCwg
Y29tcFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKKyAgICAgICAgCisgICAgICAgIG5lZWRMYXllclJl
YnVpbGQgfD0gbGF5ZXJzQ2hhbmdlZDsKICAgICB9CiAKICAgICAvLyBOb3cgY3JlYXRlIGFuZCBw
YXJlbnQgdGhlIGNvbXBvc2l0aW5nIGxheWVycy4KICAgICB7CiAgICAgICAgIENvbXBvc2l0aW5n
U3RhdGUgY29tcFN0YXRlKHVwZGF0ZVJvb3QpOwotICAgICAgICByZWJ1aWxkQ29tcG9zaXRpbmdM
YXllclRyZWUodXBkYXRlUm9vdCwgY29tcFN0YXRlKTsKKyAgICAgICAgcmVidWlsZENvbXBvc2l0
aW5nTGF5ZXJUcmVlKHVwZGF0ZVJvb3QsIGNvbXBTdGF0ZSwgbmVlZExheWVyUmVidWlsZCk7CiAg
ICAgfQogICAgIAogI2lmIFBST0ZJTEVfTEFZRVJfUkVCVUlMRApAQCAtMTgxLDcgKzE5Miw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhSZW5k
ZXJMYXllciogdXBkYXRlUm9vdCkKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVcGRhdGUgJWQ6
IGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyBmb3IgdGhlIHdvcmxkIHRvb2sgJWZtc1xu
IiwKICAgICAgICAgICAgICAgICAgICAgbV9yb290TGF5ZXJVcGRhdGVDb3VudCwgMTAwMC4wICog
KGVuZFRpbWUgLSBzdGFydFRpbWUpKTsKICNlbmRpZgotICAgIEFTU0VSVCh1cGRhdGVSb290IHx8
ICFtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSk7CisgICAgQVNTRVJUKHVwZGF0ZVJvb3Qg
fHwgIW1fY29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCk7CiAKICAgICBpZiAoIWhhc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAgICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGZhbHNl
KTsKQEAgLTE5Myw2ICsyMDQsMTEgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUJhY2tpbmcoUmVuZGVyTGF5ZXIqIGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVIKIAogICAgIGlm
IChuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKSkgewogICAgICAgICBlbmFibGVDb21wb3NpdGlu
Z01vZGUoKTsKKyAgICAgICAgCisgICAgICAgIC8vIDNEIHRyYW5zZm9ybXMgdHVybiBvZmYgdGhl
IHRlc3Rpbmcgb2Ygb3ZlcmxhcC4KKyAgICAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JU
cmFuc2Zvcm0obGF5ZXItPnJlbmRlcmVyKCkpKQorICAgICAgICAgICAgc2V0Q29tcG9zaXRpbmdD
b25zdWx0c092ZXJsYXAoZmFsc2UpOworCiAgICAgICAgIGlmICghbGF5ZXItPmJhY2tpbmcoKSkg
ewogCiAgICAgICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIHJlcGFpbnQsIGRvIHNvIGJlZm9yZSBt
YWtpbmcgYmFja2luZwpAQCAtMzE3LDcgKzMzMyw3IEBAIEludFJlY3QgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBsYXll
CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllcldhc0FkZGVkKFJlbmRlckxheWVy
KiAvKnBhcmVudCovLCBSZW5kZXJMYXllciogLypjaGlsZCovKQogewotICAgIHNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworICAgIHNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVp
bGQoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyV2lsbEJlUmVtb3Zl
ZChSZW5kZXJMYXllciogcGFyZW50LCBSZW5kZXJMYXllciogY2hpbGQpCkBAIC0zNDMsNyArMzU5
LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyV2lsbEJlUmVtb3ZlZChSZW5k
ZXJMYXllciogcGFyZW50LCBSZW5kZXJMYXllcioKICAgICAgICAgbV9yZW5kZXJWaWV3LT5mcmFt
ZVZpZXcoKS0+c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpOwogICAgIH0K
IAotICAgIHNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworICAgIHNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKIH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6ZW5jbG9zaW5nTm9uU3RhY2tpbmdDbGlwcGluZ0xheWVyKGNvbnN0IFJlbmRlckxh
eWVyKiBsYXllcikgY29uc3QKQEAgLTM1OCw2ICszNzQsMzEgQEAgUmVuZGVyTGF5ZXIqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6ZW5jbG9zaW5nTm9uU3RhY2tpbmdDbGlwcGluZ0xheWVyKGNvbnN0
IFJlbmQKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFk
ZFRvT3ZlcmxhcE1hcChPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBSZW5kZXJMYXllciogbGF5ZXIs
IEludFJlY3QmIGxheWVyQm91bmRzLCBib29sJiBib3VuZHNDb21wdXRlZCkKK3sKKyAgICBpZiAo
bGF5ZXItPmlzUm9vdExheWVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghYm91bmRz
Q29tcHV0ZWQpIHsKKyAgICAgICAgbGF5ZXJCb3VuZHMgPSBsYXllci0+cmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobGF5ZXItPmxvY2FsQm91bmRpbmdCb3goKSkpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgICAgIGJvdW5kc0NvbXB1dGVkID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICBvdmVybGFwTWFwLmFkZChsYXllciwgbGF5ZXJCb3VuZHMpOworfQorCitib29s
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6b3ZlcmxhcHNDb21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBN
YXAmIG92ZXJsYXBNYXAsIGNvbnN0IEludFJlY3QmIGxheWVyQm91bmRzKQoreworICAgIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6T3ZlcmxhcE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gb3Zlcmxh
cE1hcC5lbmQoKTsKKyAgICBmb3IgKFJlbmRlckxheWVyQ29tcG9zaXRvcjo6T3ZlcmxhcE1hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBvdmVybGFwTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
eworICAgICAgICBjb25zdCBJbnRSZWN0JiBib3VuZHMgPSBpdC0+c2Vjb25kOworICAgICAgICBp
ZiAobGF5ZXJCb3VuZHMuaW50ZXJzZWN0cyhib3VuZHMpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gIFJlY3Vyc2UgdGhy
b3VnaCB0aGUgbGF5ZXJzIGluIHotaW5kZXggYW5kIG92ZXJmbG93IG9yZGVyICh3aGljaCBpcyBl
cXVpdmFsZW50IHRvIHBhaW50aW5nIG9yZGVyKQogLy8gIEZvciB0aGUgei1vcmRlciBjaGlsZHJl
biBvZiBhIGNvbXBvc2l0aW5nIGxheWVyOgogLy8gICAgICBJZiBhIGNoaWxkIGxheWVycyBoYXMg
YSBjb21wb3NpdGluZyBsYXllciwgdGhlbiBhbGwgc3Vic2VxdWVudCBsYXllcnMgbXVzdApAQCAt
MzY3LDcgKzQwOCw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuY2xv
c2luZ05vblN0YWNraW5nQ2xpcHBpbmdMYXllcihjb25zdCBSZW5kCiAvLyAgICAgIG11c3QgYmUg
Y29tcG9zaXRpbmcgc28gdGhhdCBpdHMgY29udGVudHMgcmVuZGVyIG92ZXIgdGhhdCBjaGlsZC4K
IC8vICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgaXRzIHBvc2l0aXZlIHotaW5kZXggY2hpbGRyZW4g
bXVzdCBhbHNvIGJlIGNvbXBvc2l0aW5nLgogLy8KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1
Y3QgQ29tcG9zaXRpbmdTdGF0ZSYgY29tcG9zaXRpbmdTdGF0ZSkKK3ZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxh
eWVyLCBPdmVybGFwTWFwKiBvdmVybGFwTWFwLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSYgY29t
cG9zaXRpbmdTdGF0ZSwgYm9vbCYgbGF5ZXJzQ2hhbmdlZCkKIHsKICAgICBsYXllci0+dXBkYXRl
TGF5ZXJQb3NpdGlvbigpOwogICAgIGxheWVyLT51cGRhdGVaT3JkZXJMaXN0cygpOwpAQCAtMzc1
LDcgKzQxNiwxOSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgcwogICAgIAogICAgIC8vIENsZWFy
IHRoZSBmbGFnCiAgICAgbGF5ZXItPnNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudChmYWxzZSk7
Ci0gICAgbGF5ZXItPnNldE11c3RPdmVybGF5Q29tcG9zaXRlZExheWVycyhjb21wb3NpdGluZ1N0
YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcpOworICAgIAorICAgIGJvb2wgbXVzdE92ZXJsYXBD
b21wb3NpdGVkTGF5ZXJzID0gY29tcG9zaXRpbmdTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5n
OworCisgICAgYm9vbCBoYXZlQ29tcHV0ZWRCb3VuZHMgPSBmYWxzZTsKKyAgICBJbnRSZWN0IGFi
c0JvdW5kczsKKyAgICBpZiAob3ZlcmxhcE1hcCAmJiBtdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXll
cnMpIHsKKyAgICAgICAgLy8gSWYgd2UncmUgdGVzdGluZyBmb3Igb3ZlcmxhcCwgd2Ugb25seSBu
ZWVkIHRvIGNvbXBvc2l0ZSBpZiB3ZSBvdmVybGFwIHNvbWV0aGluZyB0aGF0IGlzIGFscmVhZHkg
Y29tcG9zaXRlZC4KKyAgICAgICAgYWJzQm91bmRzID0gbGF5ZXItPnJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxheWVyLT5sb2NhbEJvdW5kaW5nQm94KCkpKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOworICAgICAgICBoYXZlQ29tcHV0ZWRCb3VuZHMgPSB0cnVlOwor
ICAgICAgICBtdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMgJj0gb3ZlcmxhcHNDb21wb3NpdGVk
TGF5ZXJzKCpvdmVybGFwTWFwLCBhYnNCb3VuZHMpOworICAgIH0KKyAgICAKKyAgICBsYXllci0+
c2V0TXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5ZXJzKG11c3RPdmVybGFwQ29tcG9zaXRlZExheWVy
cyk7CiAgICAgCiAgICAgLy8gVGhlIGNoaWxkcmVuIG9mIHRoaXMgbGF5ZXIgZG9uJ3QgbmVlZCB0
byBjb21wb3NpdGUsIHVubGVzcyB0aGVyZSBpcwogICAgIC8vIGEgY29tcG9zaXRpbmcgbGF5ZXIg
YW1vbmcgdGhlbSwgc28gc3RhcnQgYnkgaW5oZXJpdGluZyB0aGUgY29tcG9zaXRpbmcKQEAgLTM5
MSw2ICs0NDQsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgcwogICAgICAgICBjb21wb3NpdGlu
Z1N0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcgPSB0cnVlOwogICAgICAgICAvLyBUaGlzIGxh
eWVyIG5vdyBhY3RzIGFzIHRoZSBhbmNlc3RvciBmb3Iga2lkcy4KICAgICAgICAgY2hpbGRTdGF0
ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKKyAgICAgICAgaWYgKG92ZXJsYXBNYXAp
CisgICAgICAgICAgICBhZGRUb092ZXJsYXBNYXAoKm92ZXJsYXBNYXAsIGxheWVyLCBhYnNCb3Vu
ZHMsIGhhdmVDb21wdXRlZEJvdW5kcyk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFZJREVPKQpAQCAt
NDA3LDE0ICs0NjIsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIHMKICAgICAgICAgICAgIHNp
emVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgICAgIFJlbmRl
ckxheWVyKiBjdXJMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgICAg
IGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgY2hpbGRTdGF0ZSk7Cisg
ICAgICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKGN1ckxheWVyLCBv
dmVybGFwTWFwLCBjaGlsZFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKIAogICAgICAgICAgICAgICAg
IC8vIElmIHdlIGhhdmUgdG8gbWFrZSBhIGxheWVyIGZvciB0aGlzIGNoaWxkLCBtYWtlIG9uZSBu
b3cgc28gd2UgY2FuIGhhdmUgYSBjb250ZW50cyBsYXllcgogICAgICAgICAgICAgICAgIC8vIChz
aW5jZSB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSAtdmUgei1vcmRlciBjaGlsZCByZW5kZXJz
IHVuZGVybmVhdGggb3VyIGNvbnRlbnRzKS4KICAgICAgICAgICAgICAgICBpZiAoY2hpbGRTdGF0
ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ug
bGF5ZXIgY29tcG9zaXRpbmcKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXItPnNldE11c3RPdmVy
bGF5Q29tcG9zaXRlZExheWVycyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgbGF5ZXItPnNl
dE11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRUb092ZXJs
YXBNYXAoKm92ZXJsYXBNYXAsIGxheWVyLCBhYnNCb3VuZHMsIGhhdmVDb21wdXRlZEJvdW5kcyk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00MjUsNyAr
NDgyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIHMKICAgICAgICAgc2l6ZV90IGxpc3RTaXpl
ID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBu
b3JtYWxGbG93TGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoY3VyTGF5ZXIsIGNoaWxkU3RhdGUpOworICAgICAgICAgICAgY29tcHV0ZUNvbXBv
c2l0aW5nUmVxdWlyZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0YXRlLCBsYXll
cnNDaGFuZ2VkKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDM0LDcgKzQ5MSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVu
ZGVyTGF5ZXIqIGxheWVyLCBzCiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3Jk
ZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RT
aXplOyArK2kpIHsKICAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3Na
T3JkZXJMaXN0LT5hdChpKTsKLSAgICAgICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoY3VyTGF5ZXIsIGNoaWxkU3RhdGUpOworICAgICAgICAgICAgICAgIGNvbXB1dGVD
b21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgb3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwg
bGF5ZXJzQ2hhbmdlZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC00NDMs
OCArNTAwLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBzCiAgICAgLy8gYmUgY29tcG9zaXRl
ZC4gQWxzbywgaWYgd2UgaGF2ZSBvcGFjaXR5IDwgMSwgdGhlbiB3ZSBuZWVkIHRvIGJlIGEgbGF5
ZXIgc28gdGhhdAogICAgIC8vIHRoZSBjaGlsZCBsYXllcnMgYXJlIG9wYXF1ZSwgdGhlbiByZW5k
ZXJlZCB3aXRoIG9wYWNpdHkgb24gdGhpcyBsYXllci4KICAgICBpZiAoY2hpbGRTdGF0ZS5tX3N1
YnRyZWVJc0NvbXBvc2l0aW5nICYmCi0gICAgICAgIChsYXllci0+cmVuZGVyZXIoKS0+aGFzVHJh
bnNmb3JtKCkgfHwgbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPm9wYWNpdHkoKSA8IDEpKQot
ICAgICAgICBsYXllci0+c2V0TXVzdE92ZXJsYXlDb21wb3NpdGVkTGF5ZXJzKHRydWUpOworICAg
ICAgICAobGF5ZXItPnJlbmRlcmVyKCktPmhhc1RyYW5zZm9ybSgpIHx8IGxheWVyLT5yZW5kZXJl
cigpLT5zdHlsZSgpLT5vcGFjaXR5KCkgPCAxKSkgeworICAgICAgICBsYXllci0+c2V0TXVzdE92
ZXJsYXBDb21wb3NpdGVkTGF5ZXJzKHRydWUpOworICAgICAgICBpZiAob3ZlcmxhcE1hcCkKKyAg
ICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcCgqb3ZlcmxhcE1hcCwgbGF5ZXIsIGFic0JvdW5kcywg
aGF2ZUNvbXB1dGVkQm91bmRzKTsKKyAgICB9CiAKICAgICAvLyBTdWJzZXF1ZW50IGxheWVycyBp
biB0aGUgcGFyZW50IHN0YWNraW5nIGNvbnRleHQgYWxzbyBuZWVkIHRvIGNvbXBvc2l0ZS4KICAg
ICBpZiAoY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nKQpAQCAtNDYwLDcgKzUyMCw4
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJl
bWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBzCiAgICAgbGF5ZXItPnNldEhhc0NvbXBvc2l0aW5n
RGVzY2VuZGFudChjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcpOwogCiAgICAgLy8g
VXBkYXRlIGJhY2tpbmcgbm93LCBzbyB0aGF0IHdlIGNhbiB1c2UgaXNDb21wb3NpdGVkKCkgcmVs
aWFibHkgZHVyaW5nIHRyZWUgdHJhdmVyc2FsIGluIHJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJl
ZSgpLgotICAgIHVwZGF0ZUJhY2tpbmcobGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUmVwYWludE5v
dyk7CisgICAgaWYgKHVwZGF0ZUJhY2tpbmcobGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUmVwYWlu
dE5vdykpCisgICAgICAgIGxheWVyc0NoYW5nZWQgPSB0cnVlOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6c2V0Q29tcG9zaXRpbmdQYXJlbnQoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5
ZXIsIFJlbmRlckxheWVyKiBwYXJlbnRMYXllcikKQEAgLTUxNSw3ICs1NzYsNyBAQCBib29sIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKFJlbmRlclZp
ZGVvKiBvKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpy
ZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1Y3QgQ29t
cG9zaXRpbmdTdGF0ZSYgY29tcG9zaXRpbmdTdGF0ZSkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1
Y3QgQ29tcG9zaXRpbmdTdGF0ZSYgY29tcG9zaXRpbmdTdGF0ZSwgYm9vbCB1cGRhdGVIaWVyYXJj
aHkpCiB7CiAgICAgLy8gTWFrZSB0aGUgbGF5ZXIgY29tcG9zaXRpbmcgaWYgbmVjZXNzYXJ5LCBh
bmQgc2V0IHVwIGNsaXBwaW5nIGFuZCBjb250ZW50IGxheWVycy4KICAgICAvLyBOb3RlIHRoYXQg
d2UgY2FuIG9ubHkgZG8gd29yayBoZXJlIHRoYXQgaXMgaW5kZXBlbmRlbnQgb2Ygd2hldGhlciB0
aGUgZGVzY2VuZGFudCBsYXllcnMKQEAgLTUzMywxMSArNTk0LDEyIEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxh
eWVyLCBzdHJ1CiAgICAgICAgICAgICB1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpOwogCiAgICAg
ICAgIC8vIEZJWE1FOiBtYWtlIHRoaXMgbW9yZSBpbmNyZW1lbnRhbAotICAgICAgICBsYXllckJh
Y2tpbmctPnBhcmVudEZvclN1YmxheWVycygpLT5yZW1vdmVBbGxDaGlsZHJlbigpOworICAgICAg
ICBpZiAodXBkYXRlSGllcmFyY2h5KQorICAgICAgICAgICAgbGF5ZXJCYWNraW5nLT5wYXJlbnRG
b3JTdWJsYXllcnMoKS0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICB9CiAKICAgICAvLyBob3N0
IHRoZSBkb2N1bWVudCBsYXllciBpbiB0aGUgUmVuZGVyVmlldydzIHJvb3QgbGF5ZXIKLSAgICBp
ZiAobGF5ZXItPmlzUm9vdExheWVyKCkgJiYgbGF5ZXItPmlzQ29tcG9zaXRlZCgpKQorICAgIGlm
ICh1cGRhdGVIaWVyYXJjaHkgJiYgbGF5ZXItPmlzUm9vdExheWVyKCkgJiYgbGF5ZXItPmlzQ29t
cG9zaXRlZCgpKQogICAgICAgICBwYXJlbnRJblJvb3RMYXllcihsYXllcik7CiAKICAgICBDb21w
b3NpdGluZ1N0YXRlIGNoaWxkU3RhdGUgPSBjb21wb3NpdGluZ1N0YXRlOwpAQCAtNTU5LDEzICs2
MjEsMTMgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xh
eWVyVHJlZShSZW5kZXJMYXllciogbGF5ZXIsIHN0cnUKICAgICAgICAgICAgIHNpemVfdCBsaXN0
U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBj
dXJMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgICAgIHJlYnVpbGRD
b21wb3NpdGluZ0xheWVyVHJlZShjdXJMYXllciwgY2hpbGRTdGF0ZSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAgICAgICAgICAgICByZWJ1aWxk
Q29tcG9zaXRpbmdMYXllclRyZWUoY3VyTGF5ZXIsIGNoaWxkU3RhdGUsIHVwZGF0ZUhpZXJhcmNo
eSk7CisgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUhpZXJhcmNoeSAmJiBjdXJMYXllci0+aXND
b21wb3NpdGVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHNldENvbXBvc2l0aW5nUGFyZW50KGN1
ckxheWVyLCBjaGlsZFN0YXRlLm1fY29tcG9zaXRpbmdBbmNlc3Rvcik7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobGF5ZXJCYWNraW5nICYmIGxheWVyQmFja2luZy0+
Y29udGVudHNMYXllcigpKSB7CisgICAgICAgIGlmICh1cGRhdGVIaWVyYXJjaHkgJiYgbGF5ZXJC
YWNraW5nICYmIGxheWVyQmFja2luZy0+Y29udGVudHNMYXllcigpKSB7CiAgICAgICAgICAgICAv
LyB3ZSBvbmx5IGhhdmUgYSBjb250ZW50cyBsYXllciBpZiB3ZSBoYXZlIGFuIG1fbGF5ZXIKICAg
ICAgICAgICAgIGxheWVyQmFja2luZy0+Y29udGVudHNMYXllcigpLT5yZW1vdmVGcm9tUGFyZW50
KCk7CiAKQEAgLTU3OSw4ICs2NDEsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVi
dWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydQogICAgICAg
ICBzaXplX3QgbGlzdFNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOwogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAgIFJlbmRlckxh
eWVyKiBjdXJMYXllciA9IG5vcm1hbEZsb3dMaXN0LT5hdChpKTsKLSAgICAgICAgICAgIHJlYnVp
bGRDb21wb3NpdGluZ0xheWVyVHJlZShjdXJMYXllciwgY2hpbGRTdGF0ZSk7Ci0gICAgICAgICAg
ICBpZiAoY3VyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKQorICAgICAgICAgICAgcmVidWlsZENvbXBv
c2l0aW5nTGF5ZXJUcmVlKGN1ckxheWVyLCBjaGlsZFN0YXRlLCB1cGRhdGVIaWVyYXJjaHkpOwor
ICAgICAgICAgICAgaWYgKHVwZGF0ZUhpZXJhcmNoeSAmJiBjdXJMYXllci0+aXNDb21wb3NpdGVk
KCkpCiAgICAgICAgICAgICAgICAgc2V0Q29tcG9zaXRpbmdQYXJlbnQoY3VyTGF5ZXIsIGNoaWxk
U3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yKTsKICAgICAgICAgfQogICAgIH0KQEAgLTU5MCw4
ICs2NTIsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5n
TGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydQogICAgICAgICAgICAgc2l6ZV90IGxp
c3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIq
IGN1ckxheWVyID0gcG9zWk9yZGVyTGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICAgICAgcmVidWls
ZENvbXBvc2l0aW5nTGF5ZXJUcmVlKGN1ckxheWVyLCBjaGlsZFN0YXRlKTsKLSAgICAgICAgICAg
ICAgICBpZiAoY3VyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKQorICAgICAgICAgICAgICAgIHJlYnVp
bGRDb21wb3NpdGluZ0xheWVyVHJlZShjdXJMYXllciwgY2hpbGRTdGF0ZSwgdXBkYXRlSGllcmFy
Y2h5KTsKKyAgICAgICAgICAgICAgICBpZiAodXBkYXRlSGllcmFyY2h5ICYmIGN1ckxheWVyLT5p
c0NvbXBvc2l0ZWQoKSkKICAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9zaXRpbmdQYXJlbnQo
Y3VyTGF5ZXIsIGNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNzMwLDYgKzc5MiwxNCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlUm9vdExheWVyUG9zaXRpb24oKQogICAgICAgICBtX3Jvb3RQbGF0Zm9ybUxh
eWVyLT5zZXRTaXplKEZsb2F0U2l6ZShtX3JlbmRlclZpZXctPm92ZXJmbG93V2lkdGgoKSwgbV9y
ZW5kZXJWaWV3LT5vdmVyZmxvd0hlaWdodCgpKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpkaWRTdGFydEFjY2VsZXJhdGVkQW5pbWF0aW9uKCkKK3sKKyAgICAvLyBJZiBhbiBh
Y2NlbGVyYXRlZCBhbmltYXRpb24gb3IgdHJhbnNpdGlvbiBydW5zLCB3ZSBoYXZlIHRvIHR1cm4g
b2ZmIG92ZXJsYXAgY2hlY2tpbmcgYmVjYXVzZQorICAgIC8vIHdlIGRvbid0IGRvIGxheW91dCBm
b3IgZXZlcnkgZnJhbWUsIGJ1dCB3ZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBsYXllcmluZyBp
cworICAgIC8vIGNvcnJlY3QgYmV0d2VlbiB0aGUgYW5pbWF0aW5nIG9iamVjdCBhbmQgb3RoZXIg
b2JqZWN0cyBvbiB0aGUgcGFnZS4KKyAgICBzZXRDb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcChm
YWxzZSk7Cit9CisKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpoYXMzRENvbnRlbnQoKSBj
b25zdAogewogICAgIHJldHVybiBsYXllckhhczNEQ29udGVudChyb290UmVuZGVyTGF5ZXIoKSk7
CkBAIC03NDAsNyArODEwLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5lZWRzVG9C
ZUNvbXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogICAgIGlmICghbV9o
YXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nIHx8ICFsYXllci0+aXNTZWxmUGFpbnRpbmdMYXllcigp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gcmVxdWlyZXNDb21wb3NpdGlu
Z0xheWVyKGxheWVyKSB8fCBsYXllci0+bXVzdE92ZXJsYXlDb21wb3NpdGVkTGF5ZXJzKCk7Cisg
ICAgcmV0dXJuIHJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihsYXllcikgfHwgbGF5ZXItPm11c3RP
dmVybGFwQ29tcG9zaXRlZExheWVycygpOwogfQogCiAvLyBOb3RlOiB0aGlzIHNwZWNpZmllcyB3
aGV0aGVyIHRoZSBSTCBuZWVkcyBhIGNvbXBvc2l0aW5nIGxheWVyIGZvciBpbnRyaW5zaWMgcmVh
c29ucy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggOGRk
ZjFjOC4uNzc4ZWNjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKQEAgLTY0LDkgKzY0LDE2IEBAIHB1YmxpYzoKICAgICAvLyBDb3B5IHRoZSBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEZsYWcgZnJvbSBTZXR0aW5ncwogICAgIHZvaWQgY2FjaGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEZsYWcoKTsKIAotICAgIHZvaWQgc2V0Q29tcG9zaXRp
bmdMYXllcnNOZWVkVXBkYXRlKGJvb2wgbmVlZFVwZGF0ZSA9IHRydWUpOwotICAgIGJvb2wgY29t
cG9zaXRpbmdMYXllcnNOZWVkVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ0xh
eWVyc05lZWRVcGRhdGU7IH0KLQorICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsYXllciBoaWVyYXJj
aHkgbmVlZHMgdG8gYmUgdWRwYXRlZCAoY29tcG9zaXRpbmcgbGF5ZXJzIGhhdmUgYmVlbgorICAg
IC8vIGNyZWF0ZWQsIGRlc3Ryb3llZCBvciByZS1wYXJlbnRlZCkuCisgICAgdm9pZCBzZXRDb21w
b3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKGJvb2wgbmVlZFJlYnVpbGQgPSB0cnVlKTsKKyAgICBi
b29sIGNvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQ7IH0KKworICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgb3Ig
bm90IHRvIGNvbnN1bHQgZ2VvbWV0cnkgd2hlbiBkZWNpZGluZyB3aGljaCBsYXllcnMgbmVlZAor
ICAgIC8vIHRvIGJlIGNvbXBvc2l0ZWQuIERlZmF1bHRzIHRvIHRydWUuCisgICAgdm9pZCBzZXRD
b21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcChib29sIGIpIHsgbV9jb21wb3NpdGluZ0NvbnN1bHRz
T3ZlcmxhcCA9IGI7IH0KKyAgICBib29sIGNvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKCkgY29u
c3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcDsgfQorICAgIAogICAgIHZv
aWQgc2NoZWR1bGVWaWV3VXBkYXRlKCk7CiAgICAgCiAgICAgLy8gUmVidWlsZCB0aGUgdHJlZSBv
ZiBjb21wb3NpdGluZyBsYXllcnMKQEAgLTExMSw2ICsxMTgsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCk7CiAgICAgCisgICAgdm9pZCBkaWRTdGFydEFj
Y2VsZXJhdGVkQW5pbWF0aW9uKCk7CisgICAgCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIC8vIFVz
ZSBieSBSZW5kZXJWaWRlbyB0byBhc2sgaWYgaXQgc2hvdWxkIHRyeSB0byB1c2UgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcuCiAgICAgYm9vbCBjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoUmVu
ZGVyVmlkZW8qKSBjb25zdDsKQEAgLTEzMiw4ICsxNDEsMTMgQEAgcHJpdmF0ZToKICAgICAvLyBS
ZXBhaW50IHRoZSBnaXZlbiByZWN0ICh3aGljaCBpcyBsYXllcidzIGNvb3JkcyksIGFuZCByZWdp
b25zIG9mIGNoaWxkIGxheWVycyB0aGF0IGludGVyc2VjdCB0aGF0IHJlY3QuCiAgICAgdm9pZCBy
ZWN1cnNpdmVSZXBhaW50TGF5ZXJSZWN0KFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgSW50UmVj
dCYgcmVjdCk7CiAKLSAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5k
ZXJMYXllciosIHN0cnVjdCBDb21wb3NpdGluZ1N0YXRlJik7Ci0gICAgdm9pZCByZWJ1aWxkQ29t
cG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1Y3QgQ29tcG9zaXRpbmdT
dGF0ZSYpOworICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIEludFJlY3Q+IE92ZXJs
YXBNYXA7CisgICAgc3RhdGljIHZvaWQgYWRkVG9PdmVybGFwTWFwKE92ZXJsYXBNYXAmLCBSZW5k
ZXJMYXllciosIEludFJlY3QmIGxheWVyQm91bmRzLCBib29sJiBib3VuZHNDb21wdXRlZCk7Cisg
ICAgc3RhdGljIGJvb2wgb3ZlcmxhcHNDb21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBNYXAmLCBjb25z
dCBJbnRSZWN0JiBsYXllckJvdW5kcyk7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IGxh
eWVyJ3MgY29tcG9zaXRpbmcgY2hhbmdlZAorICAgIHZvaWQgY29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKFJlbmRlckxheWVyKiwgT3ZlcmxhcE1hcCosIHN0cnVjdCBDb21wb3NpdGluZ1N0
YXRlJiwgYm9vbCYgbGF5ZXJzQ2hhbmdlZCk7CisgICAgdm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdM
YXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSYsIGJv
b2wgdXBkYXRlSGllcmFyY2h5KTsKIAogICAgIC8vIEhvb2sgY29tcG9zaXRpbmcgbGF5ZXJzIHRv
Z2V0aGVyCiAgICAgdm9pZCBzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciogY2hpbGRM
YXllciwgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyKTsKQEAgLTE1NCwxMCArMTY4LDExIEBAIHBy
aXZhdGU6CiBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIG1fcmVuZGVyVmlldzsKICAgICBHcmFw
aGljc0xheWVyKiBtX3Jvb3RQbGF0Zm9ybUxheWVyOworICAgIGJvb2wgbV9oYXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nOworICAgIGJvb2wgbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcDsKICAg
ICBib29sIG1fY29tcG9zaXRpbmc7CiAgICAgYm9vbCBtX3Jvb3RMYXllckF0dGFjaGVkOwotICAg
IGJvb2wgbV9jb21wb3NpdGluZ0xheWVyc05lZWRVcGRhdGU7Ci0gICAgYm9vbCBtX2hhc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmc7CisgICAgYm9vbCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVp
bGQ7CiAgICAgCiAjaWYgUFJPRklMRV9MQVlFUl9SRUJVSUxECiAgICAgaW50IG1fcm9vdExheWVy
VXBkYXRlQ291bnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDAzNzJmZGQuLjNiOGE0
ZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBS
ZW5kZXJWaWV3OjpzZXRNYXhpbWFsT3V0bGluZVNpemUoaW50IG8pCiAgICAgICAgIG1fbWF4aW1h
bE91dGxpbmVTaXplID0gbzsKIAogICAgICAgICAvLyBtYXhpbWFsT3V0bGluZVNpemUgYWZmZWN0
cyBjb21wb3NpdGluZyBsYXllciBkaW1lbnNpb25zLgotICAgICAgICBjb21wb3NpdG9yKCktPnNl
dENvbXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworICAgICAgICBjb21wb3NpdG9yKCktPnNl
dENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsgICAgLy8gRklYTUU6IHRoaXMgcmVhbGx5
IGp1c3QgbmVlZHMgdG8gYmUgYSBnZW9tZXRyeSB1cGRhdGUuCiAgICAgfQogfQogI2VuZGlmCg==
</data>
<flag name="review"
          id="16817"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>