<?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>113743</bug_id>
          
          <creation_ts>2013-04-01 21:14:10 -0700</creation_ts>
          <short_desc>Viewport constrained elements should work properly with headers and footers</short_desc>
          <delta_ts>2013-04-02 11:24: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>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>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>867523</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-01 21:14:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/147039 provided API to allow a WebView to have a header and/or footer. position:fixed elements need to work correctly in this mode.

&lt;rdar://problem/13522402&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867529</commentid>
    <comment_count>1</comment_count>
      <attachid>196068</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-01 21:25:10 -0700</bug_when>
    <thetext>Created attachment 196068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867539</commentid>
    <comment_count>2</comment_count>
      <attachid>196068</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-01 22:15:02 -0700</bug_when>
    <thetext>Comment on attachment 196068
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:112
&gt; +    unsigned headerHeight() const { return m_headerHeight; }

int return.

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:115
&gt; +    unsigned footerHeight() const { return m_footerHeight; }

Ditto.

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:161
&gt; +    unsigned m_headerHeight;
&gt; +    unsigned m_footerHeight;

int?

&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:77
&gt; +    unsigned headerHeight() const { return m_headerHeight; }
&gt; +    unsigned footerHeight() const { return m_footerHeight; }

ints

&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:98
&gt; +    unsigned m_headerHeight;
&gt; +    unsigned m_footerHeight;

ints

&gt; Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h:119
&gt; +        unsigned headerHeight;
&gt; +        unsigned footerHeight;

ints

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/fixed/four-bars-with-header-and-footer.html:5
&gt; +    &lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot;&gt;

Remove this.

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/fixed/four-bars-with-header-and-footer.html:47
&gt; +    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;

No need for the attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868097</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-02 11:24:37 -0700</bug_when>
    <thetext>Thanks, Simon! I fixed the errors you found.

http://trac.webkit.org/changeset/147471</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196068</attachid>
            <date>2013-04-01 21:25:10 -0700</date>
            <delta_ts>2013-04-01 22:15:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>23510</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzM3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA0LTAxICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBWaWV3cG9ydCBjb25zdHJhaW5lZCBl
bGVtZW50cyBzaG91bGQgd29yayBwcm9wZXJseSB3aXRoIGhlYWRlcnMgYW5kIGZvb3RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzc0MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjcm9sbGFibGVB
cmVhOjpjb25zdHJhaW5TY3JvbGxQb3NpdGlvbkZvck92ZXJoYW5nKCkgbmVlZHMgdG8gdGFrZSBo
ZWFkZXJIZWlnaHQgCisgICAgICAgIGFuZCBmb290ZXJIZWlnaHQgaW50byBhY2NvdW50LiBJdCBh
bHNvIG5lZWRzIHRvIHVzZSB0b3RhbENvbnRlbnRzU2l6ZSgpIGluc3RlYWQgb2YgCisgICAgICAg
IGNvbnRlbnRzU2l6ZSgpLgorCisgICAgICAgIFNlbmQgdG90YWxDb250ZW50c1NpemUoKSBpbnN0
ZWFkIG9mIGNvbnRlbnRzU2l6ZSgpIGFuZCBhbHNvIHNlbmQgaGVhZGVySGVpZ2h0KCkgCisgICAg
ICAgIGFuZCBmb290ZXJIZWlnaHQoKS4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24p
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcpOgorCisg
ICAgICAgIFRoZSBzY3JvbGxpbmcgdHJlZSB3aWxsIGFsc28gbmVlZCB0byBrbm93IGFib3V0IGhl
YWRlciBhbmQgZm9vdGVyIGhlaWdodHMgc2luY2UgaXQgCisgICAgICAgIHdpbGwgbmVlZCB0aGVz
ZSB2YWx1ZXMgdG8gY2FsbCAKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpblNjcm9s
bFBvc2l0aW9uRm9yT3ZlcmhhbmcoKS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFkZXJIZWlnaHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJI
ZWlnaHQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpo
ZWFkZXJIZWlnaHQpOgorICAgICAgICAoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVySGVpZ2h0
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnVwZGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmhlYWRlckhlaWdodCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVySGVpZ2h0KToKKyAgICAgICAgKFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDoKKyAgICAgICAgKFNjcm9sbFBhcmFtZXRlcnMpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpmcmFtZVZpZXdMYXlv
dXRVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpz
ZXRTY3JvbGxQYXJhbWV0ZXJzRm9yTm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorCisg
ICAgICAgIFVzZSBmb290ZXJIZWlnaHQgd2hlbiBjYWxjdWxhdGluZyB0aGUgbWF4VmFsdWUgYW5k
IHVzZSBoZWFkZXJIZWlnaHQgaW4gZGV0ZXJtaW5pbmcgCisgICAgICAgIHdoYXQgdGhlIG1pbmlt
dW0gdmFsdWUgaXMuIAorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnN0cmFpbmVkU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpblNjcm9sbFBvc2l0aW9uRm9yT3Zlcmhhbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgIChTY3JvbGxh
YmxlQXJlYSk6CisKIDIwMTMtMDQtMDEgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNv
bT4KIAogICAgICAgICBWUzIwMTAgV2ViQ29yZUdlbmVyYXRlZCBidWlsZCBzY3JpcHRzIHNob3Vs
ZCB1c2UgbmV3IGZlYXR1cmUtZGVmaW5lcyBzY3JpcHQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCShyZXZpc2lvbiAxNDczMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MDQsMTQgKzE2MDQsMTQgQEAgTGF5b3V0UmVj
dCBGcmFtZVZpZXc6OnZpZXdwb3J0Q29uc3RyYWluZQogICAgIHJldHVybiB2aWV3cG9ydFJlY3Q7
CiB9CiAKLUludFNpemUgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGNv
bnN0IEludFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgY29udGVudHNT
aXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3Jv
bGxPcmlnaW4sIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IsIGJvb2wgZml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZSkKK0ludFNpemUgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhl
ZFBvc2l0aW9uKGNvbnN0IEludFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgSW50U2l6
ZSYgdG90YWxDb250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBm
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLCBpbnQgaGVhZGVySGVpZ2h0LCBpbnQg
Zm9vdGVySGVpZ2h0KQogewotICAgIEludFBvaW50IGNvbnN0cmFpbmVkUG9zaXRpb24gPSBTY3Jv
bGxhYmxlQXJlYTo6Y29uc3RyYWluU2Nyb2xsUG9zaXRpb25Gb3JPdmVyaGFuZyh2aXNpYmxlQ29u
dGVudFJlY3QsIGNvbnRlbnRzU2l6ZSwgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7Cisg
ICAgSW50UG9pbnQgY29uc3RyYWluZWRQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVhOjpjb25zdHJh
aW5TY3JvbGxQb3NpdGlvbkZvck92ZXJoYW5nKHZpc2libGVDb250ZW50UmVjdCwgdG90YWxDb250
ZW50c1NpemUsIHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4sIGhlYWRlckhlaWdodCwgZm9v
dGVySGVpZ2h0KTsKIAotICAgIEludFNpemUgbWF4U2l6ZSA9IGNvbnRlbnRzU2l6ZSAtIHZpc2li
bGVDb250ZW50UmVjdC5zaXplKCk7CisgICAgSW50U2l6ZSBtYXhTaXplID0gdG90YWxDb250ZW50
c1NpemUgLSB2aXNpYmxlQ29udGVudFJlY3Quc2l6ZSgpOwogCi0gICAgZmxvYXQgZHJhZ0ZhY3Rv
clggPSAoZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSB8fCAhbWF4U2l6ZS53aWR0
aCgpKSA/IDEgOiAoY29udGVudHNTaXplLndpZHRoKCkgLSB2aXNpYmxlQ29udGVudFJlY3Qud2lk
dGgoKSAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4U2l6ZS53aWR0aCgpOwotICAgIGZsb2F0IGRy
YWdGYWN0b3JZID0gKGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgfHwgIW1heFNp
emUuaGVpZ2h0KCkpID8gMSA6IChjb250ZW50c1NpemUuaGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVu
dFJlY3QuaGVpZ2h0KCkgKiBmcmFtZVNjYWxlRmFjdG9yKSAvIG1heFNpemUuaGVpZ2h0KCk7Cisg
ICAgZmxvYXQgZHJhZ0ZhY3RvclggPSAoZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZSB8fCAhbWF4U2l6ZS53aWR0aCgpKSA/IDEgOiAodG90YWxDb250ZW50c1NpemUud2lkdGgoKSAt
IHZpc2libGVDb250ZW50UmVjdC53aWR0aCgpICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhTaXpl
LndpZHRoKCk7CisgICAgZmxvYXQgZHJhZ0ZhY3RvclkgPSAoZml4ZWRFbGVtZW50c0xheW91dFJl
bGF0aXZlVG9GcmFtZSB8fCAhbWF4U2l6ZS5oZWlnaHQoKSkgPyAxIDogKHRvdGFsQ29udGVudHNT
aXplLmhlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdodCgpICogZnJhbWVTY2FsZUZh
Y3RvcikgLyBtYXhTaXplLmhlaWdodCgpOwogCiAgICAgcmV0dXJuIEludFNpemUoY29uc3RyYWlu
ZWRQb3NpdGlvbi54KCkgKiBkcmFnRmFjdG9yWCAvIGZyYW1lU2NhbGVGYWN0b3IsIGNvbnN0cmFp
bmVkUG9zaXRpb24ueSgpICogZHJhZ0ZhY3RvclkgLyBmcmFtZVNjYWxlRmFjdG9yKTsKIH0KQEAg
LTE2MTksMTEgKzE2MTksMTEgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZp
eGVkUAogSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBj
b25zdAogewogICAgIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdGhpcy0+dmlzaWJsZUNv
bnRlbnRSZWN0KCk7Ci0gICAgSW50U2l6ZSBjb250ZW50c1NpemUgPSB0aGlzLT5jb250ZW50c1Np
emUoKTsKKyAgICBJbnRTaXplIHRvdGFsQ29udGVudHNTaXplID0gdGhpcy0+dG90YWxDb250ZW50
c1NpemUoKTsKICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMtPnNjcm9sbFBvc2l0
aW9uKCk7CiAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luID0gdGhpcy0+c2Nyb2xsT3JpZ2luKCk7
CiAgICAgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5mcmFtZVNj
YWxlRmFjdG9yKCkgOiAxOwotICAgIHJldHVybiBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9u
KHZpc2libGVDb250ZW50UmVjdCwgY29udGVudHNTaXplLCBzY3JvbGxQb3NpdGlvbiwgc2Nyb2xs
T3JpZ2luLCBmcmFtZVNjYWxlRmFjdG9yLCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0Zy
YW1lKCkpOworICAgIHJldHVybiBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKHZpc2libGVD
b250ZW50UmVjdCwgdG90YWxDb250ZW50c1NpemUsIHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmln
aW4sIGZyYW1lU2NhbGVGYWN0b3IsIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUo
KSwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6
OmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNDczMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgog
ICAgIC8vIGFuZCBhZGp1c3RpbmcgZm9yIHBhZ2Ugc2NhbGUuCiAgICAgSW50U2l6ZSBzY3JvbGxP
ZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgLy8gU3RhdGljIGZ1bmN0aW9uIGNh
biBiZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KLSAgICBzdGF0aWMgSW50U2l6ZSBzY3Jv
bGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGNvbnN0IEludFJlY3QmIHZpc2libGVDb250ZW50UmVj
dCwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGZsb2F0IGZyYW1lU2NhbGVGYWN0
b3IsIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk7CisgICAgc3RhdGlj
IEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihjb25zdCBJbnRSZWN0JiB2aXNp
YmxlQ29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRvdGFsQ29udGVudHNTaXplLCBjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGZs
b2F0IGZyYW1lU2NhbGVGYWN0b3IsIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSwgaW50IGhlYWRlckhlaWdodCwgaW50IGZvb3RlckhlaWdodCk7CiAKICAgICBib29sIGZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuY3BwCShyZXZpc2lvbiAxNDczMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw2ICs1Miw4IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
aW5nU3QKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKGZhbHNlKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZShTY3JvbGxi
YXJBdXRvKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbGJhck1vZGUoU2Nyb2xsYmFyQXV0bykKKyAg
ICAsIG1faGVhZGVySGVpZ2h0KDApCisgICAgLCBtX2Zvb3RlckhlaWdodCgwKQogewogfQogCkBA
IC03Miw2ICs3NCw4IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3QK
ICAgICAsIG1fdmVydGljYWxTY3JvbGxiYXJNb2RlKHN0YXRlTm9kZS52ZXJ0aWNhbFNjcm9sbGJh
ck1vZGUoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc3RhdGVOb2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKCkpCiAgICAgLCBtX3Njcm9sbE9yaWdpbihzdGF0ZU5vZGUuc2Ny
b2xsT3JpZ2luKCkpCisgICAgLCBtX2hlYWRlckhlaWdodChzdGF0ZU5vZGUuaGVhZGVySGVpZ2h0
KCkpCisgICAgLCBtX2Zvb3RlckhlaWdodChzdGF0ZU5vZGUuZm9vdGVySGVpZ2h0KCkpCiB7CiAg
ICAgc2V0Q291bnRlclNjcm9sbGluZ0xheWVyKHN0YXRlTm9kZS5jb3VudGVyU2Nyb2xsaW5nTGF5
ZXIoKSk7CiB9CkBAIC0yMjQsNiArMjI4LDI2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpzZXRTY3IKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFBy
b3BlcnRpZXModHJ1ZSk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpz
ZXRIZWFkZXJIZWlnaHQodW5zaWduZWQgaGVhZGVySGVpZ2h0KQoreworICAgIGlmIChtX2hlYWRl
ckhlaWdodCA9PSBoZWFkZXJIZWlnaHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGVhZGVy
SGVpZ2h0ID0gaGVhZGVySGVpZ2h0OworICAgIHNldFByb3BlcnR5Q2hhbmdlZChIZWFkZXJIZWln
aHQpOworICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0
cnVlKTsKK30KKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZvb3Rlckhl
aWdodCh1bnNpZ25lZCBmb290ZXJIZWlnaHQpCit7CisgICAgaWYgKG1fZm9vdGVySGVpZ2h0ID09
IGZvb3RlckhlaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb290ZXJIZWlnaHQgPSBm
b290ZXJIZWlnaHQ7CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEZvb3RlckhlaWdodCk7CisgICAg
bV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworfQor
CiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAgdHMgPDwgIigiIDw8ICJTY3JvbGxp
bmcgbm9kZSIgPDwgIlxuIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCShyZXZpc2lvbiAx
NDczMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIFZlcnRpY2FsU2Nyb2xsYmFyTW9kZSwKICAgICAgICAgU2Nyb2xsT3JpZ2luLAogICAg
ICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwKLSAgICAgICAgQ291bnRlclNjcm9sbGluZ0xh
eWVyCisgICAgICAgIENvdW50ZXJTY3JvbGxpbmdMYXllciwKKyAgICAgICAgSGVhZGVySGVpZ2h0
LAorICAgICAgICBGb290ZXJIZWlnaHQKICAgICB9OwogCiAgICAgdmlydHVhbCBib29sIGlzU2Ny
b2xsaW5nTm9kZSgpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEwNyw2ICsxMDksMTIg
QEAgcHVibGljOgogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbE9yaWdpbjsgfQogICAgIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNvbnN0IElu
dFBvaW50Jik7CiAKKyAgICB1bnNpZ25lZCBoZWFkZXJIZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X2hlYWRlckhlaWdodDsgfQorICAgIHZvaWQgc2V0SGVhZGVySGVpZ2h0KHVuc2lnbmVkKTsKKwor
ICAgIHVuc2lnbmVkIGZvb3RlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0
OyB9CisgICAgdm9pZCBzZXRGb290ZXJIZWlnaHQodW5zaWduZWQpOworCiAgICAgLy8gVGhpcyBp
cyBhIGxheWVyIG1vdmVkIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gdG8gc2Nyb2xsaW5nLCBm
b3IgZXhhbXBsZSBmb3IgYmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkCiAgICAgR3JhcGhpY3NM
YXllciogY291bnRlclNjcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb3VudGVyU2Ny
b2xsaW5nTGF5ZXI7IH0KICAgICB2b2lkIHNldENvdW50ZXJTY3JvbGxpbmdMYXllcihHcmFwaGlj
c0xheWVyKik7CkBAIC0xNDgsNiArMTU2LDkgQEAgcHJpdmF0ZToKIAogICAgIEludFBvaW50IG1f
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgSW50UG9pbnQgbV9zY3JvbGxPcmlnaW47CisK
KyAgICB1bnNpZ25lZCBtX2hlYWRlckhlaWdodDsKKyAgICB1bnNpZ25lZCBtX2Zvb3RlckhlaWdo
dDsKIH07CiAKIGlubGluZSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqIHRvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5jcHAJKHJldmlzaW9uIDE0NzMzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsOCBAQCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5n
VHJlCiAgICAgLCBtX2hhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSkKICAgICAsIG1f
aG9yaXpvbnRhbFNjcm9sbGJhck1vZGUoU2Nyb2xsYmFyQXV0bykKICAgICAsIG1fdmVydGljYWxT
Y3JvbGxiYXJNb2RlKFNjcm9sbGJhckF1dG8pCisgICAgLCBtX2hlYWRlckhlaWdodCgwKQorICAg
ICwgbV9mb290ZXJIZWlnaHQoMCkKIHsKIH0KIApAQCAtODUsNiArODcsMTIgQEAgdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6dXBkYXRlQgogCiAgICAgaWYgKHN0YXRlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKQog
ICAgICAgICBtX3Njcm9sbE9yaWdpbiA9IHN0YXRlLT5zY3JvbGxPcmlnaW4oKTsKKworICAgIGlm
IChzdGF0ZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
SGVhZGVySGVpZ2h0KSkKKyAgICAgICAgbV9oZWFkZXJIZWlnaHQgPSBzdGF0ZS0+aGVhZGVySGVp
Z2h0KCk7CisKKyAgICBpZiAoc3RhdGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OkZvb3RlckhlaWdodCkpCisgICAgICAgIG1fZm9vdGVySGVpZ2h0ID0g
c3RhdGUtPmZvb3RlckhlaWdodCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmgJKHJldmlzaW9uIDE0NzMzOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTczLDYgKzczLDkgQEAgcHJvdGVjdGVkOgogCiAgICAgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CiAKKyAgICB1bnNp
Z25lZCBoZWFkZXJIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQorICAg
IHVuc2lnbmVkIGZvb3RlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0OyB9
CisKIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX3ZpZXdwb3J0UmVjdDsKICAgICBJbnRTaXplIG1f
dG90YWxDb250ZW50c1NpemU7CkBAIC05MCw2ICs5Myw5IEBAIHByaXZhdGU6CiAKICAgICBTY3Jv
bGxiYXJNb2RlIG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGU7CiAgICAgU2Nyb2xsYmFyTW9kZSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZTsKKworICAgIHVuc2lnbmVkIG1faGVhZGVySGVpZ2h0Owor
ICAgIHVuc2lnbmVkIG1fZm9vdGVySGVpZ2h0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgJKHJldmlzaW9uIDE0NzMzOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDkgQEAgcHJpdmF0ZToKICAgICAgICAgSW50U2l6
ZSB0b3RhbENvbnRlbnRzU2l6ZTsKICAgICAgICAgCiAgICAgICAgIGZsb2F0IGZyYW1lU2NhbGVG
YWN0b3I7CisKKyAgICAgICAgdW5zaWduZWQgaGVhZGVySGVpZ2h0OworICAgICAgICB1bnNpZ25l
ZCBmb290ZXJIZWlnaHQ7CiAgICAgfTsKIAogICAgIHZvaWQgc2V0U2Nyb2xsUGFyYW1ldGVyc0Zv
ck5vZGUoY29uc3QgU2Nyb2xsUGFyYW1ldGVycyYsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZSopOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQkocmV2aXNpb24gMTQ3MzM5KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgdm9pZCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6ZnJhbWVWaWV3TAogICAgIHNjcm9sbFBhcmFtZXRlcnMudmlld3BvcnRSZWN0
ID0gSW50UmVjdChJbnRQb2ludCgpLCBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpLnNp
emUoKSk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy50b3RhbENvbnRlbnRzU2l6ZSA9IGZyYW1lVmll
dy0+dG90YWxDb250ZW50c1NpemUoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmZyYW1lU2NhbGVG
YWN0b3IgPSBmcmFtZVZpZXctPmZyYW1lKCktPmZyYW1lU2NhbGVGYWN0b3IoKTsKKyAgICBzY3Jv
bGxQYXJhbWV0ZXJzLmhlYWRlckhlaWdodCA9IGZyYW1lVmlldy0+aGVhZGVySGVpZ2h0KCk7Cisg
ICAgc2Nyb2xsUGFyYW1ldGVycy5mb290ZXJIZWlnaHQgPSBmcmFtZVZpZXctPmZvb3RlckhlaWdo
dCgpOwogCiAgICAgc2V0U2Nyb2xsUGFyYW1ldGVyc0Zvck5vZGUoc2Nyb2xsUGFyYW1ldGVycywg
bm9kZSk7CiB9CkBAIC0yOTEsNiArMjkzLDggQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6c2V0U2Nyb2xsUAogICAgIG5vZGUtPnNldFZpZXdwb3J0UmVjdChzY3JvbGxQYXJhbWV0ZXJz
LnZpZXdwb3J0UmVjdCk7CiAgICAgbm9kZS0+c2V0VG90YWxDb250ZW50c1NpemUoc2Nyb2xsUGFy
YW1ldGVycy50b3RhbENvbnRlbnRzU2l6ZSk7CiAgICAgbm9kZS0+c2V0RnJhbWVTY2FsZUZhY3Rv
cihzY3JvbGxQYXJhbWV0ZXJzLmZyYW1lU2NhbGVGYWN0b3IpOworICAgIG5vZGUtPnNldEhlYWRl
ckhlaWdodChzY3JvbGxQYXJhbWV0ZXJzLmhlYWRlckhlaWdodCk7CisgICAgbm9kZS0+c2V0Rm9v
dGVySGVpZ2h0KHNjcm9sbFBhcmFtZXRlcnMuZm9vdGVySGVpZ2h0KTsKIAogICAgIHNjaGVkdWxl
VHJlZVN0YXRlQ29tbWl0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
TWFjLm1tCShyZXZpc2lvbiAxNDczMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTMwNSw3ICszMDUsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRT
CiAgICAgQVNTRVJUKCFzaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9uT25NYWluVGhyZWFk
KCkpOwogICAgIG1fc2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBDR1BvaW50TWFrZSgtcG9z
aXRpb24ueCgpICsgc2Nyb2xsT3JpZ2luKCkueCgpLCAtcG9zaXRpb24ueSgpICsgc2Nyb2xsT3Jp
Z2luKCkueSgpKTsKIAotICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiA9
IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbih2aWV3cG9ydFJlY3QoKSwg
dG90YWxDb250ZW50c1NpemUoKSwgcG9zaXRpb24sIHNjcm9sbE9yaWdpbigpLCBmcmFtZVNjYWxl
RmFjdG9yKCksIGZhbHNlKTsKKyAgICBJbnRTaXplIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRy
ZW4gPSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24odmlld3BvcnRSZWN0
KCksIHRvdGFsQ29udGVudHNTaXplKCksIHBvc2l0aW9uLCBzY3JvbGxPcmlnaW4oKSwgZnJhbWVT
Y2FsZUZhY3RvcigpLCBmYWxzZSwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKICAg
ICBpZiAobV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCiAgICAgICAgIG1fY291bnRlclNjcm9sbGlu
Z0xheWVyLmdldCgpLnBvc2l0aW9uID0gRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZENo
aWxkcmVuKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcAkocmV2aXNpb24gMTQ3MzM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjgsMTggKzQyOCwyMyBAQCBJbnRSZWN0
IFNjcm9sbGFibGVBcmVhOjp2aXNpYmxlQ29udGVudFJlCiAgICAgICAgICAgICAgICAgICAgc3Rk
OjptYXgoMCwgdmlzaWJsZUhlaWdodCgpICsgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCkpOwog
fQogCi1zdGF0aWMgaW50IGNvbnN0cmFpbmVkU2Nyb2xsUG9zaXRpb24oaW50IHZpc2libGVDb250
ZW50U2l6ZSwgaW50IGNvbnRlbnRzU2l6ZSwgaW50IHNjcm9sbFBvc2l0aW9uLCBpbnQgc2Nyb2xs
T3JpZ2luKQorc3RhdGljIGludCBjb25zdHJhaW5lZFNjcm9sbFBvc2l0aW9uKGludCB2aXNpYmxl
Q29udGVudFNpemUsIGludCB0b3RhbENvbnRlbnRzU2l6ZSwgaW50IHNjcm9sbFBvc2l0aW9uLCBp
bnQgc2Nyb2xsT3JpZ2luLCBpbnQgaGVhZGVySGVpZ2h0LCBpbnQgZm9vdGVySGVpZ2h0KQogewot
ICAgIGludCBtYXhWYWx1ZSA9IGNvbnRlbnRzU2l6ZSAtIHZpc2libGVDb250ZW50U2l6ZTsKKyAg
ICBpbnQgbWF4VmFsdWUgPSB0b3RhbENvbnRlbnRzU2l6ZSAtIHZpc2libGVDb250ZW50U2l6ZSAt
IGZvb3RlckhlaWdodDsKICAgICBpZiAobWF4VmFsdWUgPD0gMCkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBpZiAoIXNjcm9sbE9yaWdpbikgewotICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24g
PD0gMCkKKyAgICAgICAgaWYgKHNjcm9sbFBvc2l0aW9uIDw9IGhlYWRlckhlaWdodCkKICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPiBtYXhWYWx1ZSkK
LSAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gbWF4VmFsdWU7CisgICAgICAgICAgICBzY3Jv
bGxQb3NpdGlvbiA9IG1heFZhbHVlIC0gaGVhZGVySGVpZ2h0OworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBzY3JvbGxQb3NpdGlvbiAtPSBoZWFkZXJIZWlnaHQ7CiAgICAgfSBlbHNlIHsKKyAg
ICAgICAgLy8gRklYTUU6IHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIGFyZSBjdXJyZW50bHkgYnJv
a2VuIHdoZW4gdGhlcmUgaXMgYSBub24temVybyB5LXZhbHVlIGluIHRoZSBzY3JvbGwgb3JpZ2lu
CisgICAgICAgIC8vIHN1Y2ggYXMgd2hlbiAtd2Via2l0LXdyaXRpbmctbW9kZTpob3Jpem9udGFs
LWJ0OyBpcyBzZXQuIEJ1dCB3aGVuIHdlIGZpeCB0aGF0LCB3ZSBuZWVkIHRvIG1ha2Ugc3VjaAor
ICAgICAgICAvLyBwYWdlcyB3b3JrIGNvcnJlY3RseSB3aXRoIGhlYWRlcnMgYW5kIGZvb3RlcnMg
YXMgd2VsbC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzc0MQog
ICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPj0gMCkKICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPCAtbWF4VmFsdWUpCkBAIC00NDksMTUgKzQ1NCwx
NSBAQCBzdGF0aWMgaW50IGNvbnN0cmFpbmVkU2Nyb2xsUG9zaXRpb24oaW50CiAgICAgcmV0dXJu
IHNjcm9sbFBvc2l0aW9uOwogfQogCi1JbnRQb2ludCBTY3JvbGxhYmxlQXJlYTo6Y29uc3RyYWlu
U2Nyb2xsUG9zaXRpb25Gb3JPdmVyaGFuZyhjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQorSW50UG9pbnQgU2Nyb2xsYWJs
ZUFyZWE6OmNvbnN0cmFpblNjcm9sbFBvc2l0aW9uRm9yT3ZlcmhhbmcoY29uc3QgSW50UmVjdCYg
dmlzaWJsZUNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZSwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
LCBpbnQgaGVhZGVySGVpZ2h0LCBpbnQgZm9vdGVySGVpZ2h0KQogewotICAgIHJldHVybiBJbnRQ
b2ludChjb25zdHJhaW5lZFNjcm9sbFBvc2l0aW9uKHZpc2libGVDb250ZW50UmVjdC53aWR0aCgp
LCBjb250ZW50c1NpemUud2lkdGgoKSwgc2Nyb2xsUG9zaXRpb24ueCgpLCBzY3JvbGxPcmlnaW4u
eCgpKSwKLSAgICAgICAgY29uc3RyYWluZWRTY3JvbGxQb3NpdGlvbih2aXNpYmxlQ29udGVudFJl
Y3QuaGVpZ2h0KCksIGNvbnRlbnRzU2l6ZS5oZWlnaHQoKSwgc2Nyb2xsUG9zaXRpb24ueSgpLCBz
Y3JvbGxPcmlnaW4ueSgpKSk7CisgICAgcmV0dXJuIEludFBvaW50KGNvbnN0cmFpbmVkU2Nyb2xs
UG9zaXRpb24odmlzaWJsZUNvbnRlbnRSZWN0LndpZHRoKCksIHRvdGFsQ29udGVudHNTaXplLndp
ZHRoKCksIHNjcm9sbFBvc2l0aW9uLngoKSwgc2Nyb2xsT3JpZ2luLngoKSwgMCwgMCksCisgICAg
ICAgIGNvbnN0cmFpbmVkU2Nyb2xsUG9zaXRpb24odmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdodCgp
LCB0b3RhbENvbnRlbnRzU2l6ZS5oZWlnaHQoKSwgc2Nyb2xsUG9zaXRpb24ueSgpLCBzY3JvbGxP
cmlnaW4ueSgpLCBoZWFkZXJIZWlnaHQsIGZvb3RlckhlaWdodCkpOwogfQogCiBJbnRQb2ludCBT
Y3JvbGxhYmxlQXJlYTo6Y29uc3RyYWluU2Nyb2xsUG9zaXRpb25Gb3JPdmVyaGFuZyhjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgcmV0dXJuIGNvbnN0cmFpblNjcm9sbFBv
c2l0aW9uRm9yT3ZlcmhhbmcodmlzaWJsZUNvbnRlbnRSZWN0KCksIGNvbnRlbnRzU2l6ZSgpLCBz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKCkpOworICAgIHJldHVybiBjb25zdHJhaW5TY3Jv
bGxQb3NpdGlvbkZvck92ZXJoYW5nKHZpc2libGVDb250ZW50UmVjdCgpLCB0b3RhbENvbnRlbnRz
U2l6ZSgpLCBzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKCksIGhlYWRlckhlaWdodCgpLCBm
b290ZXJIZWlnaHQoKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgJKHJldmlzaW9uIDE0NzMzOSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgLy8gTk9URTogT25seSBjYWxsZWQgZnJv
bSBJbnRlcm5hbHMgZm9yIHRlc3RpbmcuCiAgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXRGcm9tSW50
ZXJuYWxzKGNvbnN0IEludFBvaW50Jik7CiAKLSAgICBzdGF0aWMgSW50UG9pbnQgY29uc3RyYWlu
U2Nyb2xsUG9zaXRpb25Gb3JPdmVyaGFuZyhjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJl
Y3QsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyAgICBzdGF0aWMgSW50UG9p
bnQgY29uc3RyYWluU2Nyb2xsUG9zaXRpb25Gb3JPdmVyaGFuZyhjb25zdCBJbnRSZWN0JiB2aXNp
YmxlQ29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRvdGFsQ29udGVudHNTaXplLCBjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGlu
dCBoZWFkZXJIZWlnaHQsIGludCBmb290ZXRIZWlnaHQpOwogICAgIEludFBvaW50IGNvbnN0cmFp
blNjcm9sbFBvc2l0aW9uRm9yT3ZlcmhhbmcoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
KTsKIAogICAgIC8vIExldCBzdWJjbGFzc2VzIHByb3ZpZGUgYSB3YXkgb2YgYXNraW5nIGZvciBh
bmQgc2VydmljaW5nIHNjcm9sbApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3Mzc2KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDQt
MDEgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFZpZXdwb3J0IGNv
bnN0cmFpbmVkIGVsZW1lbnRzIHNob3VsZCB3b3JrIHByb3Blcmx5IHdpdGggaGVhZGVycyBhbmQg
Zm9vdGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzNzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQvZm91ci1iYXJzLXdpdGgtaGVh
ZGVyLWFuZC1mb290ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQvZm91ci1iYXJzLXdpdGgtaGVhZGVyLWFuZC1mb290
ZXIuaHRtbDogQWRkZWQuCisKIDIwMTMtMDQtMDEgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcu
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQv
Zm91ci1iYXJzLXdpdGgtaGVhZGVyLWFuZC1mb290ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9maXhlZC9mb3Vy
LWJhcnMtd2l0aC1oZWFkZXItYW5kLWZvb3Rlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQvZm91ci1i
YXJzLXdpdGgtaGVhZGVyLWFuZC1mb290ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDI4IEBACisoU2Nyb2xsaW5nIG5vZGUKKyAgKHZpZXdwb3J0IHJlY3QgMCAwIDc4NSA2
MDApCisgIChjb250ZW50cyBzaXplIDc4NSAyNDIxKQorICAocmVxdWVzdGVkIHNjcm9sbCBwb3Np
dGlvbiAwIDIwMCkKKyAgKGNoaWxkcmVuIDQKKyAgICAoRml4ZWQgbm9kZQorICAgICAgKGFuY2hv
ciBlZGdlczogQW5jaG9yRWRnZUxlZnQgQW5jaG9yRWRnZVRvcCkKKyAgICAgICh2aWV3cG9ydCBy
ZWN0IGF0IGxhc3QgbGF5b3V0OiAwLjAwIDEwMC4wMCA3ODUuMDAgNjAwLjAwKQorICAgICAgKGxh
eWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDAuMDAgMTAwLjAwKQorICAgICkKKyAgICAoRml4
ZWQgbm9kZQorICAgICAgKGFuY2hvciBlZGdlczogQW5jaG9yRWRnZUxlZnQgQW5jaG9yRWRnZVRv
cCkKKyAgICAgICh2aWV3cG9ydCByZWN0IGF0IGxhc3QgbGF5b3V0OiAwLjAwIDEwMC4wMCA3ODUu
MDAgNjAwLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDEwLjAwIDMw
MC4wMCkKKyAgICApCisgICAgKEZpeGVkIG5vZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hv
ckVkZ2VSaWdodCBBbmNob3JFZGdlVG9wKQorICAgICAgKHZpZXdwb3J0IHJlY3QgYXQgbGFzdCBs
YXlvdXQ6IDAuMDAgMTAwLjAwIDc4NS4wMCA2MDAuMDApCisgICAgICAobGF5ZXIgcG9zaXRpb24g
YXQgbGFzdCBsYXlvdXQgNjAxLjAwIDMwMC4wMCkKKyAgICApCisgICAgKEZpeGVkIG5vZGUKKyAg
ICAgIChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VMZWZ0IEFuY2hvckVkZ2VCb3R0b20pCisgICAg
ICAodmlld3BvcnQgcmVjdCBhdCBsYXN0IGxheW91dDogMC4wMCAxMDAuMDAgNzg1LjAwIDYwMC4w
MCkKKyAgICAgIChsYXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCAwLjAwIDYxNi4wMCkKKyAg
ICApCisgICkKKykKK1RoaXMgaXMgdGhlIHRvcCBiYXIuIFRoaXMgaXMgdGhlIGxlZnQgYmFyLiBU
aGlzIGlzIHRoZSByaWdodCBiYXIuIFRoaXMgaXMgdGhlIGJvdHRvbSBiYXIuCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQvZm91ci1iYXJzLXdp
dGgtaGVhZGVyLWFuZC1mb290ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZml4ZWQvZm91ci1iYXJzLXdpdGgtaGVhZGVyLWFu
ZC1mb290ZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9maXhlZC9mb3VyLWJhcnMtd2l0aC1oZWFkZXItYW5kLWZvb3Rlci5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg5IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0
bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxl
IiBjb250ZW50PSJ5ZXMiPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVl
biI+CisgICAgICBib2R5IHsKKyAgICAgICAgaGVpZ2h0OiAyMjAwcHg7CisgICAgICB9CisgICAg
ICAKKyAgICAgIC5maXhlZCB7CisgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgdG9w
OiAwOworICAgICAgICBsZWZ0OiAwOworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjgsIDAsIDAu
OCk7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAgICAgICAtd2Via2l0LWJv
eC1zaGFkb3c6IDAgMCAxMHB4IGJsYWNrOworICAgICAgfQorICAgICAgCisgICAgICAudG9wLCAu
Ym90dG9tIHsKKyAgICAgICAgd2lkdGg6IDk2JTsKKyAgICAgIH0KKworICAgICAgLmxlZnQgewor
ICAgICAgICB0b3A6IDIwMHB4OworICAgICAgICBsZWZ0OiAxMHB4OworICAgICAgICB3aWR0aDog
MTUwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICB9CisKKyAgICAgIC5yaWdodCB7
CisgICAgICAgIHRvcDogMjAwcHg7CisgICAgICAgIGxlZnQ6IGF1dG87CisgICAgICAgIHJpZ2h0
OiAxMHB4OworICAgICAgICB3aWR0aDogMTUwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgICB9CisgICAgICAKKyAgICAgIC5ib3R0b20geworICAgICAgICB0b3A6IGF1dG87CisgICAg
ICAgIGJvdHRvbTogMTBweDsKKyAgICAgIH0KKyAgICAgIAorICAgIDwvc3R5bGU+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB9CisgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEhlYWRl
ckhlaWdodChkb2N1bWVudCwgMTAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
Rm9vdGVySGVpZ2h0KGRvY3VtZW50LCAxMDApOworICAgICAgICB9CisKKyAgICAgIGZ1bmN0aW9u
IGRvU2Nyb2xsKCkKKyAgICAgIHsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDIwMCk7CisgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0KGRvY3VtZW50KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgIH0KKyAgICAgICAgfSwgMTApOworICAgICAgfQorICAgICAgCisgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvU2Nyb2xsLCBmYWxzZSk7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+CisKKzxkaXYg
Y2xhc3M9ImZpeGVkIHRvcCI+CisgIFRoaXMgaXMgdGhlIHRvcCBiYXIuCis8L2Rpdj4KKzxkaXYg
Y2xhc3M9ImZpeGVkIGxlZnQiPgorICBUaGlzIGlzIHRoZSBsZWZ0IGJhci4KKzwvZGl2PgorPGRp
diBjbGFzcz0iZml4ZWQgcmlnaHQiPgorICBUaGlzIGlzIHRoZSByaWdodCBiYXIuCis8L2Rpdj4K
KzxkaXYgY2xhc3M9ImZpeGVkIGJvdHRvbSI+CisgIFRoaXMgaXMgdGhlIGJvdHRvbSBiYXIuCis8
L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="218055"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>