<?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>116061</bug_id>
          
          <creation_ts>2013-05-13 14:26:00 -0700</creation_ts>
          <short_desc>Headers and footers should be pinned to the left edge of the window when scrolling horizontally</short_desc>
          <delta_ts>2013-05-13 16:15:39 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>888525</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-13 14:26:00 -0700</bug_when>
    <thetext>Headers and footers should stay fixed on the horizontal axis, but they should scroll normally on the vertical axis.

&lt;rdar://problem/13599215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888528</commentid>
    <comment_count>1</comment_count>
      <attachid>201634</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-13 14:36:51 -0700</bug_when>
    <thetext>Created attachment 201634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888529</commentid>
    <comment_count>2</comment_count>
      <attachid>201634</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-13 14:42:24 -0700</bug_when>
    <thetext>Comment on attachment 201634
Patch

Attachment 201634 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/468205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888531</commentid>
    <comment_count>3</comment_count>
      <attachid>201634</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-13 14:42:58 -0700</bug_when>
    <thetext>Comment on attachment 201634
Patch

Attachment 201634 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/427976</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888532</commentid>
    <comment_count>4</comment_count>
      <attachid>201634</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-13 14:43:06 -0700</bug_when>
    <thetext>Comment on attachment 201634
Patch

Attachment 201634 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/346911</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888534</commentid>
    <comment_count>5</comment_count>
      <attachid>201634</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-13 14:43:27 -0700</bug_when>
    <thetext>Comment on attachment 201634
Patch

Attachment 201634 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/464403</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888536</commentid>
    <comment_count>6</comment_count>
      <attachid>201636</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-13 14:51:37 -0700</bug_when>
    <thetext>Created attachment 201636
Patch, attempting to fix builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888555</commentid>
    <comment_count>7</comment_count>
      <attachid>201636</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-13 16:04:38 -0700</bug_when>
    <thetext>Comment on attachment 201636
Patch, attempting to fix builds

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2557
&gt;      m_layerForHeader-&gt;setPosition(FloatPoint(0, 0));
&gt; +    m_layerForHeader-&gt;setAnchorPoint(FloatPoint3D(0, 0, 0));

These could just be FloatPoint(), FloatPoint3D().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888569</commentid>
    <comment_count>8</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-13 16:15:39 -0700</bug_when>
    <thetext>Thank you!

http://trac.webkit.org/changeset/150043</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201634</attachid>
            <date>2013-05-13 14:36:51 -0700</date>
            <delta_ts>2013-05-13 14:51:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>20112</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDEzLTA1LTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHNo
b3VsZCBiZSBwaW5uZWQgdG8gdGhlIGxlZnQgZWRnZSBvZiB0aGUgd2luZG93IHdoZW4gc2Nyb2xs
aW5nIAorICAgICAgICBob3Jpem9udGFsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjA2MQorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzU5OTIxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRocmVhZCB3aWxsIG5lZWQg
dG8ga25vdyBhYm91dCB0aGUgaGVhZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGluIG9yZGVyIAorICAg
ICAgICB0aGUgaW1wbGVtZW50IHRoaXMgY3VzdG9tIHNjcm9sbGluZyBiZWhhdmlvci4gCisKKyAg
ICAgICAgVGhlc2UgZ2V0dGVycyB3aWxsIGZldGNoIHRoZSBoZWFkZXIgb3IgZm9vdGVyIGxheWVy
IGZyb20gdGhlIEZyYW1lVmlldyBhcyAKKyAgICAgICAgYXBwcm9wcmlhdGUuCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmb290ZXJMYXllckZvckZyYW1lVmll
dyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKwor
ICAgICAgICBXaGVuIHdl4oCZcmUgc2Nyb2xsaW5nIG9uIHRoZSBtYWluIHRocmVhZCwgYWRqdXN0
IHRoZSBwb3NpdGlvbiBvZiB0aGUgaGVhZGVyIGFuZCAKKyAgICAgICAgZm9vdGVyIGxheWVycyBo
ZXJlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKToKKworICAgICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUgbm93IHN0b3JlcyBHcmFwaGljc0xheWVycyBhbmQgUGxhdGZvcm1MYXllcnMgZm9yIHRoZSAK
KyAgICAgICAgaGVhZGVyIGFuZCBmb290ZXIsIGp1c3QgbGlrZSBpdCBhbHJlYWR5IGRvZXMgZm9y
IHRoZSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAg
ICAgKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmhlYWRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVyTGF5ZXIpOgorCisgICAgICAgIFNl
dHRlcnMgZm9yIHRoZSBuZXcgbGF5ZXJzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpmcmFtZVZp
ZXdSb290TGF5ZXJEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OnNldEhlYWRlckxheWVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6c2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKToKKworICAgICAgICBU
aGVzZSBzZXR0ZXJzIGFuZCBnZXR0ZXJzIG1pcnJvciB0aGUgZXhpc3Rpbmcgb25lIGZvciBjb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6aGVhZGVyUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhlYWRlckxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVyUGxhdGZvcm1MYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZv
b3RlckxheWVyKToKKworICAgICAgICBBbmQgdGhlIFNjcm9sbGluZ1RyZWUgd2lsbCBzdG9yZSBD
QUxheWVycyBmb3IgdGhlIGhlYWRlciBhbmQgZm9vdGVyLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVNYWMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVCZWZvcmVDaGlsZHJlbik6CisKKyAgICAg
ICAgVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucyB3aGVuIHdlIGFyZSBzY3JvbGxpbmcg
b24gdGhlIHNjcm9sbGluZyB0aHJlYWQuIAorICAgICAgICBBZGp1c3QgdGhlIGhvcml6b250YWwg
cG9zaXRpb24gdGhlIGJlaGF2ZSBsaWtlIGEgZml4ZWQgb2JqZWN0LCBidXQga2VlcCB0aGUgCisg
ICAgICAgIHZlcnRpY2FsIHBvc2l0aW9uIHdoYXQgaXQgd2FzIHdoZW4gbGF5ZXIgd2FzIGNyZWF0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0
U2Nyb2xsTGF5ZXJQb3NpdGlvbik6CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIG11
c3Qgbm93IHByb3ZpZGUgZ2V0dGVycyBmb3IgdGhlIGhlYWRlciBhbmQgZm9vdGVyLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aGVhZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpmb290ZXJMYXllcik6CisKKyAgICAgICAgU2V0IHRoZSBhbmNob3IgcG9p
bnQgZm9yIHdoZW4gd2UgYWRqdXN0IHRoZSBwb3NpdGlvbiBsYXRlciBvbi4gQWxzbyBjYWxsIAor
ICAgICAgICBmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoKSB0byBnZXQgdGhlIG5ldyBsYXll
cnMgcGlja2VkIHVwIGFuZCBzZW50IHRvIHRoZSAKKyAgICAgICAgc2Nyb2xsaW5nIHRyZWUuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5
ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWdyZXNzaW9ucyBpbiBmbGV4Ym94IGxheW91dCBjYXVzZWQgYnkgdGhl
IGZsZXhpbmcgb3B0aW1pemF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAJKHJldmlzaW9uIDE1MDAy
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3LDYgKzMwNyw0MSBAQCBHcmFwaGljc0xheWVyKiBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2NyCiAjZW5kaWYKIH0KIAorR3JhcGhpY3NMYXllciogU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJh
bWVWaWV3KQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQorICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lVmlldy0+ZnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkt
PmhlYWRlckxheWVyKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZVZpZXcpOworICAg
IHJldHVybiAwOworI2VuZGlmCit9CisKK0dyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpmb290ZXJMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKK3sKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykK
KyAgICBGcmFtZSogZnJhbWUgPSBmcmFtZVZpZXctPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+Zm9vdGVyTGF5ZXIoKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lVmlldyk7CisgICAgcmV0dXJuIDA7CisjZW5k
aWYKK30KKwogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3Jv
bGxpbmdMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKIHsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0zODcsMTQgKzQyMiwyNiBAQCB2b2lkIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciA9IHNjcm9sbExheWVy
Rm9yRnJhbWVWaWV3KGZyYW1lVmlldykpIHsKICAgICAgICAgR3JhcGhpY3NMYXllciogY291bnRl
clNjcm9sbGluZ0xheWVyID0gY291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KGZyYW1l
Vmlldyk7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0gaGVhZGVyTGF5ZXJG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgR3JhcGhpY3NMYXllciogZm9vdGVyTGF5
ZXIgPSBmb290ZXJMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOworICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldEZvckZpeGVkID0gZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBv
c2l0aW9uKCk7CisKICAgICAgICAgaWYgKHByb2dyYW1tYXRpY1Njcm9sbCB8fCBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pIHsKICAgICAg
ICAgICAgIHNjcm9sbExheWVyLT5zZXRQb3NpdGlvbigtZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlv
bigpKTsKICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCi0gICAgICAgICAg
ICAgICAgY291bnRlclNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihJbnRQb2ludChmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSkpOworICAgICAgICAgICAgICAgIGNv
dW50ZXJTY3JvbGxpbmdMYXllci0+c2V0UG9zaXRpb24oSW50UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWQpKTsKKyAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAgICAgICAgICBo
ZWFkZXJMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZC53
aWR0aCgpLCAwKSk7CisgICAgICAgICAgICBpZiAoZm9vdGVyTGF5ZXIpCisgICAgICAgICAgICAg
ICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4
ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0gZnJh
bWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
c2Nyb2xsTGF5ZXItPnN5bmNQb3NpdGlvbigtZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsK
ICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCi0gICAgICAgICAgICAgICAg
Y291bnRlclNjcm9sbGluZ0xheWVyLT5zeW5jUG9zaXRpb24oSW50UG9pbnQoZnJhbWVWaWV3LT5z
Y3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBjb3VudGVy
U2Nyb2xsaW5nTGF5ZXItPnN5bmNQb3NpdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhl
ZCkpOworICAgICAgICAgICAgaWYgKGhlYWRlckxheWVyKQorICAgICAgICAgICAgICAgIGhlYWRl
ckxheWVyLT5zeW5jUG9zaXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZC53aWR0
aCgpLCAwKSk7CisgICAgICAgICAgICBpZiAoZm9vdGVyTGF5ZXIpCisgICAgICAgICAgICAgICAg
Zm9vdGVyTGF5ZXItPnN5bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVk
LndpZHRoKCksIGZyYW1lVmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAtIGZyYW1l
Vmlldy0+Zm9vdGVySGVpZ2h0KCkpKTsKIAogICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3cG9y
dFJlY3QgPSBmcmFtZVZpZXctPnZpZXdwb3J0Q29uc3RyYWluZWRWaXNpYmxlQ29udGVudFJlY3Qo
KTsKICAgICAgICAgICAgIHN5bmNDaGlsZFBvc2l0aW9ucyh2aWV3cG9ydFJlY3QpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsNiArMTc3LDgg
QEAgcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIGNvbXB1dGVDdXJyZW50V2hlZWxFdmVudEhhbmRs
ZXJDb3VudCgpOwogICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyopOwogICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKKyAgICBHcmFwaGljc0xheWVyKiBoZWFkZXJMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKKyAgICBHcmFwaGljc0xheWVyKiBmb290ZXJMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuY3BwCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw4IEBAIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSogc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQogICAgIDogU2Nyb2xsaW5nU3RhdGVOb2RlKHN0YXRlVHJlZSwgbm9kZUlEKQogICAgICwg
bV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIoMCkKKyAgICAsIG1faGVhZGVyTGF5ZXIoMCkKKyAgICAs
IG1fZm9vdGVyTGF5ZXIoMCkKICAgICAsIG1fZnJhbWVTY2FsZUZhY3RvcigxKQogICAgICwgbV93
aGVlbEV2ZW50SGFuZGxlckNvdW50KDApCiAgICAgLCBtX3Nob3VsZFVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb25Pbk1haW5UaHJlYWQoMCkKQEAgLTc4LDYgKzgwLDggQEAgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdAogICAgICwgbV9mb290ZXJIZWlnaHQoc3RhdGVOb2Rl
LmZvb3RlckhlaWdodCgpKQogewogICAgIHNldENvdW50ZXJTY3JvbGxpbmdMYXllcihzdGF0ZU5v
ZGUuY291bnRlclNjcm9sbGluZ0xheWVyKCkpOworICAgIHNldEhlYWRlckxheWVyKHN0YXRlTm9k
ZS5oZWFkZXJMYXllcigpKTsKKyAgICBzZXRGb290ZXJMYXllcihzdGF0ZU5vZGUuZm9vdGVyTGF5
ZXIoKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6flNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAkocmV2aXNpb24gMTUw
MDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAg
ICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwKICAgICAgICAgQ291bnRlclNjcm9sbGluZ0xh
eWVyLAogICAgICAgICBIZWFkZXJIZWlnaHQsCi0gICAgICAgIEZvb3RlckhlaWdodAorICAgICAg
ICBGb290ZXJIZWlnaHQsCisgICAgICAgIEhlYWRlckxheWVyLAorICAgICAgICBGb290ZXJMYXll
cgogICAgIH07CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxpbmdOb2RlKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTIwLDYgKzEyMiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIFBsYXRmb3JtTGF5
ZXIqIGNvdW50ZXJTY3JvbGxpbmdQbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAKKyAgICAvLyBUaGUg
aGVhZGVyIGFuZCBmb290ZXIgbGF5ZXJzIHNjcm9sbCB2ZXJ0aWNhbGx5IHdpdGggdGhlIHBhZ2Us
IHRoZXkgc2hvdWxkIHJlbWFpbiBmaXhlZCB3aGVuIHNjcm9sbGluZyBob3Jpem9udGFsbHkuCisg
ICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2hlYWRlckxh
eWVyOyB9CisgICAgdm9pZCBzZXRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKik7CisgICAgUGxh
dGZvcm1MYXllciogaGVhZGVyUGxhdGZvcm1MYXllcigpIGNvbnN0OworCisgICAgLy8gVGhlIGhl
YWRlciBhbmQgZm9vdGVyIGxheWVycyBzY3JvbGwgdmVydGljYWxseSB3aXRoIHRoZSBwYWdlLCB0
aGV5IHNob3VsZCByZW1haW4gZml4ZWQgd2hlbiBzY3JvbGxpbmcgaG9yaXpvbnRhbGx5LgorICAg
IEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJMYXll
cjsgfQorICAgIHZvaWQgc2V0Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciopOworICAgIFBsYXRm
b3JtTGF5ZXIqIGZvb3RlclBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKwogICAgIGJvb2wgcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGw7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50
IGluZGVudCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMjksOCArMTQxLDEyIEBAIHByaXZhdGU6CiAg
ICAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYpOwogCiAgICAgR3JhcGhpY3NMYXllciogbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7
CisgICAgR3JhcGhpY3NMYXllciogbV9oZWFkZXJMYXllcjsKKyAgICBHcmFwaGljc0xheWVyKiBt
X2Zvb3RlckxheWVyOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nUGxhdGZvcm1MYXllcjsKKyAgICBSZXRhaW5QdHI8UGxh
dGZvcm1MYXllcj4gbV9oZWFkZXJQbGF0Zm9ybUxheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9y
bUxheWVyPiBtX2Zvb3RlclBsYXRmb3JtTGF5ZXI7CiAjZW5kaWYKICAgICAKICAgICBJbnRSZWN0
IG1fdmlld3BvcnRSZWN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgJKHJldmlzaW9uIDE1
MDAyMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNiArMTIyLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldFNjcm9sbFBhcmFtZXRlcnNGb3JOb2RlKGNvbnN0IFNjcm9sbFBhcmFtZXRl
cnMmLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqKTsKICAgICB2b2lkIHNldFNjcm9sbExh
eWVyRm9yTm9kZShHcmFwaGljc0xheWVyKiwgU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAgICAgdm9p
ZCBzZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JOb2RlKEdyYXBoaWNzTGF5ZXIqLCBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUqKTsKKyAgICB2b2lkIHNldEhlYWRlckxheWVyRm9yTm9kZShH
cmFwaGljc0xheWVyKiwgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKik7CisgICAgdm9pZCBz
ZXRGb290ZXJMYXllckZvck5vZGUoR3JhcGhpY3NMYXllciosIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSopOwogICAgIHZvaWQgc2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25Gb3JOb2RlKGNv
bnN0IFJlZ2lvbiYsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSopOwogICAgIHZvaWQgc2V0
V2hlZWxFdmVudEhhbmRsZXJDb3VudEZvck5vZGUodW5zaWduZWQsIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCShyZXZpc2lvbiAx
NTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsOCBAQCB2b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpmcmFtZVZpZXdSCiAgICAgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlKiBub2RlID0gdG9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUobV9zY3JvbGxp
bmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKGZyYW1lVmlldy0+c2Nyb2xsTGF5ZXJJRCgpKSk7
CiAgICAgc2V0U2Nyb2xsTGF5ZXJGb3JOb2RlKHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KGZyYW1l
VmlldyksIG5vZGUpOwogICAgIHNldENvdW50ZXJTY3JvbGxpbmdMYXllckZvck5vZGUoY291bnRl
clNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyksIG5vZGUpOworICAgIHNldEhl
YWRlckxheWVyRm9yTm9kZShoZWFkZXJMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpLCBub2Rl
KTsKKyAgICBzZXRGb290ZXJMYXllckZvck5vZGUoZm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJh
bWVWaWV3KSwgbm9kZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNjcm9s
bGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFi
bGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbikKQEAgLTI3NCw2ICsyNzYsMjQgQEAgdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2V0Q291bnRlcgogICAgIHNjaGVkdWxlVHJlZVN0YXRl
Q29tbWl0KCk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldEhlYWRlckxh
eWVyRm9yTm9kZShHcmFwaGljc0xheWVyKiBoZWFkZXJMYXllciwgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlKiBub2RlKQoreworICAgIC8vIEhlYWRlcnMgYW5kIGZvb3RlcnMgYXJlIG9ubHkg
c3VwcG9ydGVkIG9uIHRoZSByb290IG5vZGUuCisgICAgQVNTRVJUKG5vZGUgPT0gbV9zY3JvbGxp
bmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKSk7CisKKyAgICBub2RlLT5zZXRIZWFkZXJMYXll
cihoZWFkZXJMYXllcik7CisgICAgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKTsKK30KKwordm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKEdyYXBoaWNz
TGF5ZXIqIGZvb3RlckxheWVyLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqIG5vZGUpCit7
CisgICAgLy8gSGVhZGVycyBhbmQgZm9vdGVycyBhcmUgb25seSBzdXBwb3J0ZWQgb24gdGhlIHJv
b3Qgbm9kZS4KKyAgICBBU1NFUlQobm9kZSA9PSBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0
YXRlTm9kZSgpKTsKKworICAgIG5vZGUtPnNldEZvb3RlckxheWVyKGZvb3RlckxheWVyKTsKKyAg
ICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkZvck5vZGUoY29uc3QgUmVnaW9uJiBy
ZWdpb24sIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSogbm9kZSkKIHsKICAgICBub2RlLT5z
ZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihyZWdpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw0NCBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6c2V0Q291CiAgICAgICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFu
Z2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAorUGxhdGZvcm1MYXllciogU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpoZWFkZXJQbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9oZWFkZXJQbGF0Zm9ybUxheWVyLmdldCgpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0SGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikK
K3sKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUhlYWRlckxheWVyID0gZ3JhcGhpY3NMYXll
ciA/IGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBpZiAobV9oZWFk
ZXJQbGF0Zm9ybUxheWVyID09IHBsYXRmb3JtSGVhZGVyTGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIG1faGVhZGVyUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtSGVhZGVyTGF5ZXI7CisgICAg
bV9oZWFkZXJMYXllciA9IGdyYXBoaWNzTGF5ZXI7CisKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQo
SGVhZGVyTGF5ZXIpOworICAgIGlmIChtX3Njcm9sbGluZ1N0YXRlVHJlZSkKKyAgICAgICAgbV9z
Y3JvbGxpbmdTdGF0ZVRyZWUtPnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworfQorCitQ
bGF0Zm9ybUxheWVyKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmZvb3RlclBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2Zvb3RlclBsYXRmb3JtTGF5ZXIuZ2V0KCk7
Cit9CisKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcihH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQoreworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtRm9vdGVyTGF5ZXIgPSBncmFwaGljc0xheWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1M
YXllcigpIDogbmlsOworICAgIGlmIChtX2Zvb3RlclBsYXRmb3JtTGF5ZXIgPT0gcGxhdGZvcm1G
b290ZXJMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb290ZXJQbGF0Zm9ybUxheWVy
ID0gcGxhdGZvcm1Gb290ZXJMYXllcjsKKyAgICBtX2Zvb3RlckxheWVyID0gZ3JhcGhpY3NMYXll
cjsKKworICAgIHNldFByb3BlcnR5Q2hhbmdlZChGb290ZXJMYXllcik7CisgICAgaWYgKG1fc2Ny
b2xsaW5nU3RhdGVUcmVlKQorICAgICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hh
bmdlZFByb3BlcnRpZXModHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVNYWMuaAkocmV2aXNpb24gMTUwMDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgyLDYgKzgyLDggQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX3Njcm9sbExheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2NvdW50ZXJTY3JvbGxp
bmdMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9oZWFkZXJMYXllcjsKKyAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gbV9mb290ZXJMYXllcjsKICAgICBJbnRQb2ludCBtX3Byb2JhYmxlTWFp
blRocmVhZFNjcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9sYXN0U2Nyb2xsSGFkVW5maWxsZWRQ
aXhlbHM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQkocmV2
aXNpb24gMTUwMDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nywx
MiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhCiAgICAgaWYgKHNj
cm9sbGluZ1N0YXRlTm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkKICAgICAgICAgbV9jb3VudGVyU2Nyb2xs
aW5nTGF5ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUtPmNvdW50ZXJTY3JvbGxpbmdQbGF0Zm9ybUxh
eWVyKCk7CiAKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLT5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIZWFkZXJMYXllcikpCisgICAgICAgIG1faGVh
ZGVyTGF5ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUtPmhlYWRlclBsYXRmb3JtTGF5ZXIoKTsKKwor
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OkZvb3RlckxheWVyKSkKKyAgICAgICAgbV9mb290ZXJMYXllciA9
IHNjcm9sbGluZ1N0YXRlTm9kZS0+Zm9vdGVyUGxhdGZvcm1MYXllcigpOworCiAgICAgaWYgKHNj
cm9sbGluZ1N0YXRlTm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFpblRocmVhZCkpIHsK
ICAgICAgICAgdW5zaWduZWQgbWFpblRocmVhZFNjcm9sbGluZ1JlYXNvbnMgPSB0aGlzLT5zaG91
bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9uT25NYWluVGhyZWFkKCk7CiAKQEAgLTMwOSw2ICsz
MTUsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0UwogICAgIGlm
IChtX2NvdW50ZXJTY3JvbGxpbmdMYXllcikKICAgICAgICAgbV9jb3VudGVyU2Nyb2xsaW5nTGF5
ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRy
ZW4pOwogCisgICAgaWYgKG1faGVhZGVyTGF5ZXIpCisgICAgICAgIG1faGVhZGVyTGF5ZXIuZ2V0
KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4ud2lk
dGgoKSwgMCk7CisKKyAgICBpZiAobV9mb290ZXJMYXllcikKKyAgICAgICAgbV9mb290ZXJMYXll
ci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJl
bi53aWR0aCgpLCB0b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0gZm9vdGVySGVpZ2h0KCkp
OworCiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShy
ZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4Miw2ICsxNTgyLDE4IEBAIEdyYXBo
aWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2MKICAgICByZXR1cm4gbV9zY3JvbGxM
YXllci5nZXQoKTsKIH0KIAorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKK0dyYXBoaWNzTGF5
ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aGVhZGVyTGF5ZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOworfQorCitHcmFwaGljc0xheWVyKiBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmZvb3RlckxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXll
ckZvckZvb3Rlci5nZXQoKTsKK30KKyNlbmRpZgorCiBUaWxlZEJhY2tpbmcqIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cGFnZVRpbGVkQmFja2luZygpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXJC
YWNraW5nKiByZW5kZXJWaWV3QmFja2luZyA9IG1fcmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2lu
ZygpOwpAQCAtMjU0Miw3ICsyNTU0LDEyIEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXAKICAgICB9CiAKICAgICBtX2xheWVyRm9ySGVhZGVyLT5zZXRQb3NpdGlvbihG
bG9hdFBvaW50KDAsIDApKTsKKyAgICBtX2xheWVyRm9ySGVhZGVyLT5zZXRBbmNob3JQb2ludChG
bG9hdFBvaW50M0QoMCwgMCwgMCkpOwogICAgIG1fbGF5ZXJGb3JIZWFkZXItPnNldFNpemUoRmxv
YXRTaXplKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPnZpc2libGVXaWR0aCgpLCBtX3JlbmRl
clZpZXctPmZyYW1lVmlldygpLT5oZWFkZXJIZWlnaHQoKSkpOworCisgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkpCisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5
ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CisKICAgICByZXR1cm4gbV9s
YXllckZvckhlYWRlci5nZXQoKTsKIH0KIApAQCAtMjU2OCw3ICsyNTg1LDEyIEBAIEdyYXBoaWNz
TGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXAKICAgICB9CiAKICAgICBtX2xheWVyRm9y
Rm9vdGVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIG1fcm9vdENvbnRlbnRMYXllci0+c2l6
ZSgpLmhlaWdodCgpICsgbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+aGVhZGVySGVpZ2h0KCkp
KTsKKyAgICBtX2xheWVyRm9yRm9vdGVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoMCwg
MCwgMCkpOwogICAgIG1fbGF5ZXJGb3JGb290ZXItPnNldFNpemUoRmxvYXRTaXplKG1fcmVuZGVy
Vmlldy0+ZnJhbWVWaWV3KCktPnZpc2libGVXaWR0aCgpLCBtX3JlbmRlclZpZXctPmZyYW1lVmll
dygpLT5mb290ZXJIZWlnaHQoKSkpOworCisgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9y
ZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CisKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5n
ZXQoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaAkocmV2aXNpb24gMTUwMDIyKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiAr
MTg1LDExIEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXllcigp
IGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyKCkgY29uc3Q7CiAKKyNpZiBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBj
b25zdDsKKyAgICBHcmFwaGljc0xheWVyKiBmb290ZXJMYXllcigpIGNvbnN0OworI2VuZGlmCisK
ICAgICBlbnVtIFJvb3RMYXllckF0dGFjaG1lbnQgewogICAgICAgICBSb290TGF5ZXJVbmF0dGFj
aGVkLAogICAgICAgICBSb290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudCwK
</data>
<flag name="commit-queue"
          id="222974"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201636</attachid>
            <date>2013-05-13 14:51:37 -0700</date>
            <delta_ts>2013-05-13 16:04:37 -0700</delta_ts>
            <desc>Patch, attempting to fix builds</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>21559</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDEzLTA1LTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHNo
b3VsZCBiZSBwaW5uZWQgdG8gdGhlIGxlZnQgZWRnZSBvZiB0aGUgd2luZG93IHdoZW4gc2Nyb2xs
aW5nIAorICAgICAgICBob3Jpem9udGFsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjA2MQorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzU5OTIxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRocmVhZCB3aWxsIG5lZWQg
dG8ga25vdyBhYm91dCB0aGUgaGVhZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGluIG9yZGVyIAorICAg
ICAgICB0aGUgaW1wbGVtZW50IHRoaXMgY3VzdG9tIHNjcm9sbGluZyBiZWhhdmlvci4gCisKKyAg
ICAgICAgVGhlc2UgZ2V0dGVycyB3aWxsIGZldGNoIHRoZSBoZWFkZXIgb3IgZm9vdGVyIGxheWVy
IGZyb20gdGhlIEZyYW1lVmlldyBhcyAKKyAgICAgICAgYXBwcm9wcmlhdGUuCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmb290ZXJMYXllckZvckZyYW1lVmll
dyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKwor
ICAgICAgICBXaGVuIHdl4oCZcmUgc2Nyb2xsaW5nIG9uIHRoZSBtYWluIHRocmVhZCwgYWRqdXN0
IHRoZSBwb3NpdGlvbiBvZiB0aGUgaGVhZGVyIGFuZCAKKyAgICAgICAgZm9vdGVyIGxheWVycyBo
ZXJlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKToKKworICAgICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUgbm93IHN0b3JlcyBHcmFwaGljc0xheWVycyBhbmQgUGxhdGZvcm1MYXllcnMgZm9yIHRoZSAK
KyAgICAgICAgaGVhZGVyIGFuZCBmb290ZXIsIGp1c3QgbGlrZSBpdCBhbHJlYWR5IGRvZXMgZm9y
IHRoZSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAg
ICAgKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmhlYWRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVyTGF5ZXIpOgorCisgICAgICAgIFNl
dHRlcnMgZm9yIHRoZSBuZXcgbGF5ZXJzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpmcmFtZVZp
ZXdSb290TGF5ZXJEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OnNldEhlYWRlckxheWVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6c2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKToKKworICAgICAgICBU
aGVzZSBzZXR0ZXJzIGFuZCBnZXR0ZXJzIG1pcnJvciB0aGUgZXhpc3Rpbmcgb25lIGZvciBjb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6aGVhZGVyUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhlYWRlckxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVyUGxhdGZvcm1MYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZv
b3RlckxheWVyKToKKworICAgICAgICBBbmQgdGhlIFNjcm9sbGluZ1RyZWUgd2lsbCBzdG9yZSBD
QUxheWVycyBmb3IgdGhlIGhlYWRlciBhbmQgZm9vdGVyLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVNYWMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVCZWZvcmVDaGlsZHJlbik6CisKKyAgICAg
ICAgVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucyB3aGVuIHdlIGFyZSBzY3JvbGxpbmcg
b24gdGhlIHNjcm9sbGluZyB0aHJlYWQuIAorICAgICAgICBBZGp1c3QgdGhlIGhvcml6b250YWwg
cG9zaXRpb24gdGhlIGJlaGF2ZSBsaWtlIGEgZml4ZWQgb2JqZWN0LCBidXQga2VlcCB0aGUgCisg
ICAgICAgIHZlcnRpY2FsIHBvc2l0aW9uIHdoYXQgaXQgd2FzIHdoZW4gbGF5ZXIgd2FzIGNyZWF0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0
U2Nyb2xsTGF5ZXJQb3NpdGlvbik6CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIG11
c3Qgbm93IHByb3ZpZGUgZ2V0dGVycyBmb3IgdGhlIGhlYWRlciBhbmQgZm9vdGVyLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aGVhZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpmb290ZXJMYXllcik6CisKKyAgICAgICAgU2V0IHRoZSBhbmNob3IgcG9p
bnQgZm9yIHdoZW4gd2UgYWRqdXN0IHRoZSBwb3NpdGlvbiBsYXRlciBvbi4gQWxzbyBjYWxsIAor
ICAgICAgICBmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoKSB0byBnZXQgdGhlIG5ldyBsYXll
cnMgcGlja2VkIHVwIGFuZCBzZW50IHRvIHRoZSAKKyAgICAgICAgc2Nyb2xsaW5nIHRyZWUuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5
ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWdyZXNzaW9ucyBpbiBmbGV4Ym94IGxheW91dCBjYXVzZWQgYnkgdGhl
IGZsZXhpbmcgb3B0aW1pemF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAJKHJldmlzaW9uIDE1MDAy
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3LDYgKzMwNyw0MSBAQCBHcmFwaGljc0xheWVyKiBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2NyCiAjZW5kaWYKIH0KIAorR3JhcGhpY3NMYXllciogU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJh
bWVWaWV3KQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQorICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lVmlldy0+ZnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkt
PmhlYWRlckxheWVyKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZVZpZXcpOworICAg
IHJldHVybiAwOworI2VuZGlmCit9CisKK0dyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpmb290ZXJMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKK3sKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykK
KyAgICBGcmFtZSogZnJhbWUgPSBmcmFtZVZpZXctPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+Zm9vdGVyTGF5ZXIoKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lVmlldyk7CisgICAgcmV0dXJuIDA7CisjZW5k
aWYKK30KKwogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3Jv
bGxpbmdMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKIHsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0zODcsMTQgKzQyMiwyNiBAQCB2b2lkIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciA9IHNjcm9sbExheWVy
Rm9yRnJhbWVWaWV3KGZyYW1lVmlldykpIHsKICAgICAgICAgR3JhcGhpY3NMYXllciogY291bnRl
clNjcm9sbGluZ0xheWVyID0gY291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KGZyYW1l
Vmlldyk7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0gaGVhZGVyTGF5ZXJG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgR3JhcGhpY3NMYXllciogZm9vdGVyTGF5
ZXIgPSBmb290ZXJMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOworICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldEZvckZpeGVkID0gZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBv
c2l0aW9uKCk7CisKICAgICAgICAgaWYgKHByb2dyYW1tYXRpY1Njcm9sbCB8fCBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pIHsKICAgICAg
ICAgICAgIHNjcm9sbExheWVyLT5zZXRQb3NpdGlvbigtZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlv
bigpKTsKICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCi0gICAgICAgICAg
ICAgICAgY291bnRlclNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihJbnRQb2ludChmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSkpOworICAgICAgICAgICAgICAgIGNv
dW50ZXJTY3JvbGxpbmdMYXllci0+c2V0UG9zaXRpb24oSW50UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWQpKTsKKyAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAgICAgICAgICBo
ZWFkZXJMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZC53
aWR0aCgpLCAwKSk7CisgICAgICAgICAgICBpZiAoZm9vdGVyTGF5ZXIpCisgICAgICAgICAgICAg
ICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4
ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0gZnJh
bWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
c2Nyb2xsTGF5ZXItPnN5bmNQb3NpdGlvbigtZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsK
ICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCi0gICAgICAgICAgICAgICAg
Y291bnRlclNjcm9sbGluZ0xheWVyLT5zeW5jUG9zaXRpb24oSW50UG9pbnQoZnJhbWVWaWV3LT5z
Y3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBjb3VudGVy
U2Nyb2xsaW5nTGF5ZXItPnN5bmNQb3NpdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhl
ZCkpOworICAgICAgICAgICAgaWYgKGhlYWRlckxheWVyKQorICAgICAgICAgICAgICAgIGhlYWRl
ckxheWVyLT5zeW5jUG9zaXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZC53aWR0
aCgpLCAwKSk7CisgICAgICAgICAgICBpZiAoZm9vdGVyTGF5ZXIpCisgICAgICAgICAgICAgICAg
Zm9vdGVyTGF5ZXItPnN5bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVk
LndpZHRoKCksIGZyYW1lVmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAtIGZyYW1l
Vmlldy0+Zm9vdGVySGVpZ2h0KCkpKTsKIAogICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3cG9y
dFJlY3QgPSBmcmFtZVZpZXctPnZpZXdwb3J0Q29uc3RyYWluZWRWaXNpYmxlQ29udGVudFJlY3Qo
KTsKICAgICAgICAgICAgIHN5bmNDaGlsZFBvc2l0aW9ucyh2aWV3cG9ydFJlY3QpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsNiArMTc3LDgg
QEAgcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIGNvbXB1dGVDdXJyZW50V2hlZWxFdmVudEhhbmRs
ZXJDb3VudCgpOwogICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyopOwogICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKKyAgICBHcmFwaGljc0xheWVyKiBoZWFkZXJMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKKyAgICBHcmFwaGljc0xheWVyKiBmb290ZXJMYXllckZvckZy
YW1lVmlldyhGcmFtZVZpZXcqKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuY3BwCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw4IEBAIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSogc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQogICAgIDogU2Nyb2xsaW5nU3RhdGVOb2RlKHN0YXRlVHJlZSwgbm9kZUlEKQogICAgICwg
bV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIoMCkKKyAgICAsIG1faGVhZGVyTGF5ZXIoMCkKKyAgICAs
IG1fZm9vdGVyTGF5ZXIoMCkKICAgICAsIG1fZnJhbWVTY2FsZUZhY3RvcigxKQogICAgICwgbV93
aGVlbEV2ZW50SGFuZGxlckNvdW50KDApCiAgICAgLCBtX3Nob3VsZFVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb25Pbk1haW5UaHJlYWQoMCkKQEAgLTc4LDYgKzgwLDggQEAgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdAogICAgICwgbV9mb290ZXJIZWlnaHQoc3RhdGVOb2Rl
LmZvb3RlckhlaWdodCgpKQogewogICAgIHNldENvdW50ZXJTY3JvbGxpbmdMYXllcihzdGF0ZU5v
ZGUuY291bnRlclNjcm9sbGluZ0xheWVyKCkpOworICAgIHNldEhlYWRlckxheWVyKHN0YXRlTm9k
ZS5oZWFkZXJMYXllcigpKTsKKyAgICBzZXRGb290ZXJMYXllcihzdGF0ZU5vZGUuZm9vdGVyTGF5
ZXIoKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6flNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAkocmV2aXNpb24gMTUw
MDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAg
ICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwKICAgICAgICAgQ291bnRlclNjcm9sbGluZ0xh
eWVyLAogICAgICAgICBIZWFkZXJIZWlnaHQsCi0gICAgICAgIEZvb3RlckhlaWdodAorICAgICAg
ICBGb290ZXJIZWlnaHQsCisgICAgICAgIEhlYWRlckxheWVyLAorICAgICAgICBGb290ZXJMYXll
cgogICAgIH07CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxpbmdOb2RlKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTIwLDYgKzEyMiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIoR3JhcGhpY3NMYXllciopOwogICAgIFBsYXRmb3JtTGF5
ZXIqIGNvdW50ZXJTY3JvbGxpbmdQbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAKKyAgICAvLyBUaGUg
aGVhZGVyIGFuZCBmb290ZXIgbGF5ZXJzIHNjcm9sbCB2ZXJ0aWNhbGx5IHdpdGggdGhlIHBhZ2Us
IHRoZXkgc2hvdWxkIHJlbWFpbiBmaXhlZCB3aGVuIHNjcm9sbGluZyBob3Jpem9udGFsbHkuCisg
ICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2hlYWRlckxh
eWVyOyB9CisgICAgdm9pZCBzZXRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKik7CisgICAgUGxh
dGZvcm1MYXllciogaGVhZGVyUGxhdGZvcm1MYXllcigpIGNvbnN0OworCisgICAgLy8gVGhlIGhl
YWRlciBhbmQgZm9vdGVyIGxheWVycyBzY3JvbGwgdmVydGljYWxseSB3aXRoIHRoZSBwYWdlLCB0
aGV5IHNob3VsZCByZW1haW4gZml4ZWQgd2hlbiBzY3JvbGxpbmcgaG9yaXpvbnRhbGx5LgorICAg
IEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJMYXll
cjsgfQorICAgIHZvaWQgc2V0Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciopOworICAgIFBsYXRm
b3JtTGF5ZXIqIGZvb3RlclBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKwogICAgIGJvb2wgcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGw7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50
IGluZGVudCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMjksOCArMTQxLDEyIEBAIHByaXZhdGU6CiAg
ICAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYpOwogCiAgICAgR3JhcGhpY3NMYXllciogbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7
CisgICAgR3JhcGhpY3NMYXllciogbV9oZWFkZXJMYXllcjsKKyAgICBHcmFwaGljc0xheWVyKiBt
X2Zvb3RlckxheWVyOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nUGxhdGZvcm1MYXllcjsKKyAgICBSZXRhaW5QdHI8UGxh
dGZvcm1MYXllcj4gbV9oZWFkZXJQbGF0Zm9ybUxheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9y
bUxheWVyPiBtX2Zvb3RlclBsYXRmb3JtTGF5ZXI7CiAjZW5kaWYKICAgICAKICAgICBJbnRSZWN0
IG1fdmlld3BvcnRSZWN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29v
cmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVDb29yZGluYXRlZEdy
YXBoaWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9j
b29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZUNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZUNv
b3JkaW5hdGVkR3JhcGhpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywyOCBAQCB2
b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Q291CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IC8vIFNjcm9sbGluZ1N0YXRlVHJlZSBpbiBjb29yZCBncmFwaGljcyBpcyB1c2Vk
IG9ubHkgdG8gaGFuZGxlIGNvbnN0cmFpbmVkIGVsZW1lbnRzLgogfQogCitQbGF0Zm9ybUxheWVy
KiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmhlYWRlclBsYXRmb3JtTGF5ZXIoKSBjb25z
dAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBTY3JvbGxpbmdTdGF0ZVRyZWUgaW4g
Y29vcmQgZ3JhcGhpY3MgaXMgdXNlZCBvbmx5IHRvIGhhbmRsZSBjb25zdHJhaW5lZCBlbGVtZW50
cy4KKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBTY3JvbGxpbmdTdGF0ZVRyZWUgaW4gY29vcmQgZ3JhcGhpY3MgaXMgdXNlZCBvbmx5
IHRvIGhhbmRsZSBjb25zdHJhaW5lZCBlbGVtZW50cy4KK30KKworUGxhdGZvcm1MYXllciogU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpmb290ZXJQbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gU2Nyb2xsaW5nU3RhdGVUcmVlIGluIGNvb3Jk
IGdyYXBoaWNzIGlzIHVzZWQgb25seSB0byBoYW5kbGUgY29uc3RyYWluZWQgZWxlbWVudHMuCisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRG
b290ZXJMYXllcihHcmFwaGljc0xheWVyKikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gU2Nyb2xsaW5nU3RhdGVUcmVlIGluIGNvb3JkIGdyYXBoaWNzIGlzIHVzZWQgb25seSB0byBo
YW5kbGUgY29uc3RyYWluZWQgZWxlbWVudHMuCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5oCShyZXZpc2lvbiAxNTAwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDYgKzEyMiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTY3JvbGxQYXJhbWV0ZXJzRm9yTm9k
ZShjb25zdCBTY3JvbGxQYXJhbWV0ZXJzJiwgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKik7
CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllckZvck5vZGUoR3JhcGhpY3NMYXllciosIFNjcm9sbGlu
Z1N0YXRlTm9kZSopOwogICAgIHZvaWQgc2V0Q291bnRlclNjcm9sbGluZ0xheWVyRm9yTm9kZShH
cmFwaGljc0xheWVyKiwgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKik7CisgICAgdm9pZCBz
ZXRIZWFkZXJMYXllckZvck5vZGUoR3JhcGhpY3NMYXllciosIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSopOworICAgIHZvaWQgc2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKEdyYXBoaWNzTGF5ZXIq
LCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqKTsKICAgICB2b2lkIHNldE5vbkZhc3RTY3Jv
bGxhYmxlUmVnaW9uRm9yTm9kZShjb25zdCBSZWdpb24mLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUqKTsKICAgICB2b2lkIHNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnRGb3JOb2RlKHVuc2ln
bmVkLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQkocmV2aXNpb24gMTUwMDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTAsNiArMTkwLDggQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZnJhbWVWaWV3Ugog
ICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSogbm9kZSA9IHRvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlKG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVGb3JJRChmcmFtZVZp
ZXctPnNjcm9sbExheWVySUQoKSkpOwogICAgIHNldFNjcm9sbExheWVyRm9yTm9kZShzY3JvbGxM
YXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpLCBub2RlKTsKICAgICBzZXRDb3VudGVyU2Nyb2xs
aW5nTGF5ZXJGb3JOb2RlKGNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZyYW1lVmlldyhmcmFtZVZp
ZXcpLCBub2RlKTsKKyAgICBzZXRIZWFkZXJMYXllckZvck5vZGUoaGVhZGVyTGF5ZXJGb3JGcmFt
ZVZpZXcoZnJhbWVWaWV3KSwgbm9kZSk7CisgICAgc2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKGZvb3Rl
ckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyksIG5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpzY3JvbGxhYmxlQXJlYVNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKFNj
cm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSwgU2Nyb2xsYmFyT3JpZW50YXRpb24pCkBAIC0y
NzQsNiArMjc2LDI0IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldENvdW50ZXIK
ICAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogfQogCit2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjpzZXRIZWFkZXJMYXllckZvck5vZGUoR3JhcGhpY3NMYXllciogaGVhZGVyTGF5
ZXIsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSogbm9kZSkKK3sKKyAgICAvLyBIZWFkZXJz
IGFuZCBmb290ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBvbiB0aGUgcm9vdCBub2RlLgorICAgIEFT
U0VSVChub2RlID09IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCkpOworCisg
ICAgbm9kZS0+c2V0SGVhZGVyTGF5ZXIoaGVhZGVyTGF5ZXIpOworICAgIHNjaGVkdWxlVHJlZVN0
YXRlQ29tbWl0KCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldEZvb3Rl
ckxheWVyRm9yTm9kZShHcmFwaGljc0xheWVyKiBmb290ZXJMYXllciwgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlKiBub2RlKQoreworICAgIC8vIEhlYWRlcnMgYW5kIGZvb3RlcnMgYXJlIG9u
bHkgc3VwcG9ydGVkIG9uIHRoZSByb290IG5vZGUuCisgICAgQVNTRVJUKG5vZGUgPT0gbV9zY3Jv
bGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKSk7CisKKyAgICBub2RlLT5zZXRGb290ZXJM
YXllcihmb290ZXJMYXllcik7CisgICAgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKTsKK30KKwog
dm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25G
b3JOb2RlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUq
IG5vZGUpCiB7CiAgICAgbm9kZS0+c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24ocmVnaW9uKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQkocmV2aXNpb24gMTUw
MDIyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNDQgQEAgdm9p
ZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldENvdQogICAgICAgICBtX3Njcm9sbGlu
Z1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKK1BsYXRmb3Jt
TGF5ZXIqIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aGVhZGVyUGxhdGZvcm1MYXllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGVhZGVyUGxhdGZvcm1MYXllci5nZXQoKTsKK30KKwor
dm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhlYWRlckxheWVyKEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1IZWFk
ZXJMYXllciA9IGdyYXBoaWNzTGF5ZXIgPyBncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkg
OiBuaWw7CisgICAgaWYgKG1faGVhZGVyUGxhdGZvcm1MYXllciA9PSBwbGF0Zm9ybUhlYWRlckxh
eWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hlYWRlclBsYXRmb3JtTGF5ZXIgPSBwbGF0
Zm9ybUhlYWRlckxheWVyOworICAgIG1faGVhZGVyTGF5ZXIgPSBncmFwaGljc0xheWVyOworCisg
ICAgc2V0UHJvcGVydHlDaGFuZ2VkKEhlYWRlckxheWVyKTsKKyAgICBpZiAobV9zY3JvbGxpbmdT
dGF0ZVRyZWUpCisgICAgICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJv
cGVydGllcyh0cnVlKTsKK30KKworUGxhdGZvcm1MYXllciogU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpmb290ZXJQbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mb290
ZXJQbGF0Zm9ybUxheWVyLmdldCgpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6c2V0Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUZvb3RlckxheWVyID0gZ3JhcGhpY3NMYXllciA/IGdy
YXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBpZiAobV9mb290ZXJQbGF0
Zm9ybUxheWVyID09IHBsYXRmb3JtRm9vdGVyTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZm9vdGVyUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtRm9vdGVyTGF5ZXI7CisgICAgbV9mb290
ZXJMYXllciA9IGdyYXBoaWNzTGF5ZXI7CisKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoRm9vdGVy
TGF5ZXIpOworICAgIGlmIChtX3Njcm9sbGluZ1N0YXRlVHJlZSkKKyAgICAgICAgbV9zY3JvbGxp
bmdTdGF0ZVRyZWUtPnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmgJKHJldmlzaW9uIDE1MDAyMikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw4IEBAIHByaXZhdGU6CiAK
ICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1f
aGVhZGVyTGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZm9vdGVyTGF5ZXI7CiAgICAg
SW50UG9pbnQgbV9wcm9iYWJsZU1haW5UaHJlYWRTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1f
bGFzdFNjcm9sbEhhZFVuZmlsbGVkUGl4ZWxzOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVNYWMubW0JKHJldmlzaW9uIDE1MDAyMikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNzcsNiArNzcsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZU1hYzo6dXBkYQogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OkNvdW50ZXJTY3JvbGxpbmdMYXllcikpCiAg
ICAgICAgIG1fY291bnRlclNjcm9sbGluZ0xheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLT5jb3Vu
dGVyU2Nyb2xsaW5nUGxhdGZvcm1MYXllcigpOwogCisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SGVhZGVy
TGF5ZXIpKQorICAgICAgICBtX2hlYWRlckxheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLT5oZWFk
ZXJQbGF0Zm9ybUxheWVyKCk7CisKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpGb290ZXJMYXllcikpCisg
ICAgICAgIG1fZm9vdGVyTGF5ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUtPmZvb3RlclBsYXRmb3Jt
TGF5ZXIoKTsKKwogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNob3VsZFVwZGF0ZVNjcm9sbExheWVyUG9z
aXRpb25Pbk1haW5UaHJlYWQpKSB7CiAgICAgICAgIHVuc2lnbmVkIG1haW5UaHJlYWRTY3JvbGxp
bmdSZWFzb25zID0gdGhpcy0+c2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFpblRo
cmVhZCgpOwogCkBAIC0zMDksNiArMzE1LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnNldFMKICAgICBpZiAobV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCiAgICAgICAg
IG1fY291bnRlclNjcm9sbGluZ0xheWVyLmdldCgpLnBvc2l0aW9uID0gRmxvYXRQb2ludChzY3Jv
bGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuKTsKIAorICAgIGlmIChtX2hlYWRlckxheWVyKQorICAg
ICAgICBtX2hlYWRlckxheWVyLmdldCgpLnBvc2l0aW9uID0gRmxvYXRQb2ludChzY3JvbGxPZmZz
ZXRGb3JGaXhlZENoaWxkcmVuLndpZHRoKCksIDApOworCisgICAgaWYgKG1fZm9vdGVyTGF5ZXIp
CisgICAgICAgIG1fZm9vdGVyTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KHNjcm9s
bE9mZnNldEZvckZpeGVkQ2hpbGRyZW4ud2lkdGgoKSwgdG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSAtIGZvb3RlckhlaWdodCgpKTsKKwogICAgIGlmICghbV9jaGlsZHJlbikKICAgICAgICAg
cmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTUwMDIyKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
ODIsNiArMTU4MiwxOCBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNj
CiAgICAgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCitHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmhlYWRlckxh
eWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXllckZvckhlYWRlci5nZXQoKTsKK30KKwor
R3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmb290ZXJMYXllcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogVGls
ZWRCYWNraW5nKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VUaWxlZEJhY2tpbmcoKSBjb25z
dAogewogICAgIFJlbmRlckxheWVyQmFja2luZyogcmVuZGVyVmlld0JhY2tpbmcgPSBtX3JlbmRl
clZpZXctPmxheWVyKCktPmJhY2tpbmcoKTsKQEAgLTI1NDIsNyArMjU1NCwxMiBAQCBHcmFwaGlj
c0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgfQogCiAgICAgbV9sYXllckZv
ckhlYWRlci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCAwKSk7CisgICAgbV9sYXllckZvckhl
YWRlci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKDAsIDAsIDApKTsKICAgICBtX2xheWVy
Rm9ySGVhZGVyLT5zZXRTaXplKEZsb2F0U2l6ZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT52
aXNpYmxlV2lkdGgoKSwgbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+aGVhZGVySGVpZ2h0KCkp
KTsKKworICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGlu
YXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3
KCkpOworCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCk7CiB9CiAKQEAgLTI1Njgs
NyArMjU4NSwxMiBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAg
ICAgfQogCiAgICAgbV9sYXllckZvckZvb3Rlci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCBt
X3Jvb3RDb250ZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSArIG1fcmVuZGVyVmlldy0+ZnJhbWVW
aWV3KCktPmhlYWRlckhlaWdodCgpKSk7CisgICAgbV9sYXllckZvckZvb3Rlci0+c2V0QW5jaG9y
UG9pbnQoRmxvYXRQb2ludDNEKDAsIDAsIDApKTsKICAgICBtX2xheWVyRm9yRm9vdGVyLT5zZXRT
aXplKEZsb2F0U2l6ZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT52aXNpYmxlV2lkdGgoKSwg
bV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+Zm9vdGVySGVpZ2h0KCkpKTsKKworICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkpOworCiAgICAgcmV0
dXJuIG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDE1MDAyMikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSwxMSBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXll
ciogcm9vdEdyYXBoaWNzTGF5ZXIoKSBjb25zdDsKICAgICBHcmFwaGljc0xheWVyKiBzY3JvbGxM
YXllcigpIGNvbnN0OwogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIEdyYXBoaWNz
TGF5ZXIqIGhlYWRlckxheWVyKCkgY29uc3Q7CisgICAgR3JhcGhpY3NMYXllciogZm9vdGVyTGF5
ZXIoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgZW51bSBSb290TGF5ZXJBdHRhY2htZW50IHsKICAg
ICAgICAgUm9vdExheWVyVW5hdHRhY2hlZCwKICAgICAgICAgUm9vdExheWVyQXR0YWNoZWRWaWFD
aHJvbWVDbGllbnQsCg==
</data>
<flag name="review"
          id="222977"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>