<?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>155747</bug_id>
          
          <creation_ts>2016-03-22 06:38:59 -0700</creation_ts>
          <short_desc>Use Region instead of IntRect in PageClient and WebPageProxy setViewNeedsDisplay method</short_desc>
          <delta_ts>2016-03-29 00:27:35 -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>WebKit2</component>
          <version>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1176960</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-22 06:38:59 -0700</bug_when>
    <thetext>This way instead of calling setViewNeedsDisplay() for every rectangle in the damage area, we can build a region and call setViewNeedsDisplay() once. GTK+ has API to queue a redraw for a given region, so we also avoid scheduling multiple redraws in GTK+ port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176961</commentid>
    <comment_count>1</comment_count>
      <attachid>274648</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-22 06:42:51 -0700</bug_when>
    <thetext>Created attachment 274648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176999</commentid>
    <comment_count>2</comment_count>
      <attachid>274648</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-22 09:34:56 -0700</bug_when>
    <thetext>Comment on attachment 274648
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp:73
&gt; +    RefPtr&lt;cairo_region_t&gt; damageRegion = adoptRef(cairo_region_create());
&gt; +    auto rects = region.rects();
&gt; +    for (const auto&amp; rect : rects) {
&gt; +        cairo_rectangle_int_t damageRect = rect;
&gt; +        cairo_region_union_rectangle(damageRegion.get(), &amp;damageRect);
&gt; +    }

This is “make a cairo_region_t out of a WebCore::Region” and it should do that as efficiently as possible. I think that belongs as a separate function, not nested inside PageClientImpl::setViewNeedsDisplay.

&gt; Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp:237
&gt; +        damageRegion.unite(IntRect(IntPoint(), m_webPageProxy.viewSize()));

Should use the constructor here instead of unite.

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:416
&gt; +    auto rects = region.rects();
&gt; +    for (const auto&amp; rect : rects)
&gt; +        m_client.viewNeedsDisplay(this, rect);

No reason for the local variable.

    for (auto&amp; rect : region.rects())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177314</commentid>
    <comment_count>3</comment_count>
      <attachid>274740</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-23 01:23:10 -0700</bug_when>
    <thetext>Created attachment 274740
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177317</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-23 01:52:12 -0700</bug_when>
    <thetext>Committed r198580: &lt;http://trac.webkit.org/changeset/198580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177352</commentid>
    <comment_count>5</comment_count>
      <attachid>274740</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-23 08:21:54 -0700</bug_when>
    <thetext>Comment on attachment 274740
Patch for landing

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

&gt; Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp:70
&gt; +    RefPtr&lt;cairo_region_t&gt; damageRegion = toCairoRegion(region);
&gt; +    gtk_widget_queue_draw_region(m_viewWidget, damageRegion.get());

If you ever care to return here you could make this a 1-liner:

    gtk_widget_queue_draw_region(m_viewWidget, toCairoRegion(region).get());

That’s part of the magic of smart pointers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178628</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-29 00:27:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 274740 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274740&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp:70
&gt; &gt; +    RefPtr&lt;cairo_region_t&gt; damageRegion = toCairoRegion(region);
&gt; &gt; +    gtk_widget_queue_draw_region(m_viewWidget, damageRegion.get());
&gt; 
&gt; If you ever care to return here you could make this a 1-liner:
&gt; 
&gt;     gtk_widget_queue_draw_region(m_viewWidget, toCairoRegion(region).get());
&gt; 
&gt; That’s part of the magic of smart pointers!

Sure, done in r198775</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274648</attachid>
            <date>2016-03-22 06:42:51 -0700</date>
            <delta_ts>2016-03-23 01:23:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-needs-display-region.diff</filename>
            <type>text/plain</type>
            <size>11478</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3MDBhNjNhLi42MDMyYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDEg
QEAKIDIwMTYtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFVzZSBSZWdpb24gaW5zdGVhZCBvZiBJbnRSZWN0IGluIFBhZ2VDbGllbnQg
YW5kIFdlYlBhZ2VQcm94eSBzZXRWaWV3TmVlZHNEaXNwbGF5IG1ldGhvZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3YXkgaW5zdGVhZCBvZiBj
YWxsaW5nIHNldFZpZXdOZWVkc0Rpc3BsYXkoKSBmb3IgZXZlcnkKKyAgICAgICAgcmVjdGFuZ2xl
IGluIHRoZSBkYW1hZ2UgYXJlYSwgd2UgY2FuIGJ1aWxkIGEgcmVnaW9uIGFuZCBjYWxsCisgICAg
ICAgIHNldFZpZXdOZWVkc0Rpc3BsYXkoKSBvbmNlLiBHVEsrIGhhcyBBUEkgdG8gcXVldWUgYSBy
ZWRyYXcgZm9yIGEKKyAgICAgICAgZ2l2ZW4gcmVnaW9uLCBzbyB3ZSBhbHNvIGF2b2lkIHNjaGVk
dWxpbmcgbXVsdGlwbGUgcmVkcmF3cyBpbiBHVEsrCisgICAgICAgIHBvcnQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KTogQ29udmVydCB0aGUgUmVnaW9u
CisgICAgICAgIGludG8gYSBjYWlyb19yZWdpb25fdCBhbmQgdXNlIGd0a193aWRnZXRfcXVldWVf
ZHJhd19yZWdpb24oKQorICAgICAgICBpbnN0eWVhZCBvZiBndGtfd2lkZ2V0X3F1ZXVlX2RyYXdf
YXJlYSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OmluY29ycG9yYXRlVXBkYXRlKTogQnVpbGQgYSBS
ZWdpb24KKyAgICAgICAgd2l0aCB0aGUgZGFtYWdlIHJlY3RhbmdsZXMgYW5kIGNhbGwKKyAgICAg
ICAgV2ViUGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KCkgb25jZS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaWV3TmVl
ZHNEaXNwbGF5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheSk6CisK
KzIwMTYtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZGlzcGxheSBhbmQgc2Nyb2xsIHZpZXcgbWV0aG9kcyBm
cm9tIFBhZ2VDbGllbnQgYW5kIFdlYlBhZ2VQcm94eQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzQ0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBkZjQxNThiLi4zZGQ4
ZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0
a1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTYyLDkgKzYzLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdl
Q2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8RHJhd2luZ0FyZWFQcm94eUltcGw+KCp3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2Uo
V0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSkpOwogfQogCi12b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6
OlJlZ2lvbiYgcmVnaW9uKQogewotICAgIGd0a193aWRnZXRfcXVldWVfZHJhd19hcmVhKG1fdmll
d1dpZGdldCwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkp
OworICAgIFJlZlB0cjxjYWlyb19yZWdpb25fdD4gZGFtYWdlUmVnaW9uID0gYWRvcHRSZWYoY2Fp
cm9fcmVnaW9uX2NyZWF0ZSgpKTsKKyAgICBhdXRvIHJlY3RzID0gcmVnaW9uLnJlY3RzKCk7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiByZWN0IDogcmVjdHMpIHsKKyAgICAgICAgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90IGRhbWFnZVJlY3QgPSByZWN0OworICAgICAgICBjYWlyb19yZWdpb25fdW5pb25f
cmVjdGFuZ2xlKGRhbWFnZVJlZ2lvbi5nZXQoKSwgJmRhbWFnZVJlY3QpOworICAgIH0KKyAgICBn
dGtfd2lkZ2V0X3F1ZXVlX2RyYXdfcmVnaW9uKG1fdmlld1dpZGdldCwgZGFtYWdlUmVnaW9uLmdl
dCgpKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXgg
NzMzN2ZhOS4uNzA3MzJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgLy8gUGFnZUNsaWVudAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWV3TmVl
ZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJvZ3Jh
bW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4
IGVlMmFjMGQuLmI3NzE2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMjI4LDExICsyMjgsMTQgQEAgdm9pZCBEcmF3aW5n
QXJlYVByb3h5SW1wbDo6aW5jb3Jwb3JhdGVVcGRhdGUoY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbykKICAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBzdGQ6Om1ha2VfdW5pcXVlPEJhY2tpbmdT
dG9yZT4odXBkYXRlSW5mby52aWV3U2l6ZSwgdXBkYXRlSW5mby5kZXZpY2VTY2FsZUZhY3Rvciwg
bV93ZWJQYWdlUHJveHkpOwogCiAgICAgbV9iYWNraW5nU3RvcmUtPmluY29ycG9yYXRlVXBkYXRl
KHVwZGF0ZUluZm8pOworCisgICAgUmVnaW9uIGRhbWFnZVJlZ2lvbjsKICAgICBpZiAodXBkYXRl
SW5mby5zY3JvbGxSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHJl
Y3QgOiB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzKQotICAgICAgICAgICAgbV93ZWJQYWdlUHJveHku
c2V0Vmlld05lZWRzRGlzcGxheShyZWN0KTsKKyAgICAgICAgICAgIGRhbWFnZVJlZ2lvbi51bml0
ZShyZWN0KTsKICAgICB9IGVsc2UKLSAgICAgICAgbV93ZWJQYWdlUHJveHkuc2V0Vmlld05lZWRz
RGlzcGxheShJbnRSZWN0KEludFBvaW50KCksIG1fd2ViUGFnZVByb3h5LnZpZXdTaXplKCkpKTsK
KyAgICAgICAgZGFtYWdlUmVnaW9uLnVuaXRlKEludFJlY3QoSW50UG9pbnQoKSwgbV93ZWJQYWdl
UHJveHkudmlld1NpemUoKSkpOworICAgIG1fd2ViUGFnZVByb3h5LnNldFZpZXdOZWVkc0Rpc3Bs
YXkoZGFtYWdlUmVnaW9uKTsKIH0KIAogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6YmFja2lu
Z1N0b3JlU3RhdGVEaWRDaGFuZ2UoUmVzcG9uZEltbWVkaWF0ZWx5T3JOb3QgcmVzcG9uZEltbWVk
aWF0ZWx5T3JOb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxN2Y3
OTY4Ny4uODdiODNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC05
Myw4ICs5Myw4IEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYSBuZXcgZHJhd2luZyBhcmVhIHBy
b3h5IGZvciB0aGUgZ2l2ZW4gcGFnZS4KICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3
aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgPSAwOwogCi0gICAgLy8gVGVs
bCB0aGUgdmlldyB0byBpbnZhbGlkYXRlIHRoZSBnaXZlbiByZWN0LiBUaGUgcmVjdCBpcyBpbiB2
aWV3IGNvb3JkaW5hdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CisgICAgLy8gVGVsbCB0aGUgdmlldyB0byBpbnZh
bGlkYXRlIHRoZSBnaXZlbiByZWdpb24uIFRoZSByZWdpb24gaXMgaW4gdmlldyBjb29yZGluYXRl
cy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpS
ZWdpb24mKSA9IDA7CiAKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2
ZW4gcG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4K
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwg
Ym9vbCBpc1Byb2dyYW1tYXRpY1Njcm9sbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA3NzFiMzYzLi5lOGMwNzYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTMxOSw5ICsxMzE5LDkgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpWaWV3V2lsbEVuZExpdmVSZXNpemUoKSwgbV9wYWdlSUQpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0
JiByZWN0KQordm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVn
aW9uJiByZWdpb24pCiB7Ci0gICAgbV9wYWdlQ2xpZW50LnNldFZpZXdOZWVkc0Rpc3BsYXkocmVj
dCk7CisgICAgbV9wYWdlQ2xpZW50LnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgaXNQcm9ncmFtbWF0
aWNTY3JvbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNTIz
MDA2MS4uNDE0ZWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNDEzLDcgKzQxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyU2VsZWN0aW9uKCk7CiAg
ICAgdm9pZCByZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CiAKLSAg
ICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAg
IHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKICAgICB2
b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgaXNQcm9ncmFt
bWF0aWNTY3JvbGwpOwogICAgIAogICAgIHZvaWQgc2V0RGVsZWdhdGVzU2Nyb2xsaW5nKGJvb2wg
ZGVsZWdhdGVzU2Nyb2xsaW5nKSB7IG1fZGVsZWdhdGVzU2Nyb2xsaW5nID0gZGVsZWdhdGVzU2Ny
b2xsaW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAppbmRleCBi
ZDJlZjEzLi4xY2QwODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5j
cHAKQEAgLTQwOSw5ICs0MDksMTEgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+
IFdlYlZpZXc6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eT4oKm1fcGFnZSk7CiB9CiAKLXZvaWQg
V2ViVmlldzo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhcmVh
KQordm9pZCBXZWJWaWV3OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lv
biYgcmVnaW9uKQogewotICAgIG1fY2xpZW50LnZpZXdOZWVkc0Rpc3BsYXkodGhpcywgYXJlYSk7
CisgICAgYXV0byByZWN0cyA9IHJlZ2lvbi5yZWN0cygpOworICAgIGZvciAoY29uc3QgYXV0byYg
cmVjdCA6IHJlY3RzKQorICAgICAgICBtX2NsaWVudC52aWV3TmVlZHNEaXNwbGF5KHRoaXMsIHJl
Y3QpOwogfQogCiB2b2lkIFdlYlZpZXc6OnJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggYjU5ZTdlOC4uYTI4MDFhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFBhZ2VDbGllbnQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4g
Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRWaWV3TmVl
ZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA3OGNlMjY1Li5kMWQyNTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgLy8gUGFnZUNsaWVu
dAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJl
YVByb3h5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGMzZTk5OTUuLjUyYjMxMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCiAgICAgcmV0dXJuIFtt
X2NvbnRlbnRWaWV3IF9jcmVhdGVEcmF3aW5nQXJlYVByb3h5XTsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDg1MDJlNjEuLjA4ZGY1ODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRy
PERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJy
aWRlOworICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24m
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4sIGJvb2wgaXNQcm9ncmFtbWF0aWNTY3JvbGwpIG92ZXJyaWRlOwogCiAgICAgV2ViQ29yZTo6
SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNjg4OWE2Zi4uZDliMWEzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0xMTUsNyAr
MTE1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKICAgICByZXR1cm4gbV9pbXBsLT5jcmVhdGVEcmF3
aW5nQXJlYVByb3h5KCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikKIHsKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0K
</data>
<flag name="review"
          id="299060"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274740</attachid>
            <date>2016-03-23 01:23:10 -0700</date>
            <delta_ts>2016-03-23 01:23:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-needs-display-region.diff</filename>
            <type>text/plain</type>
            <size>13893</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxODVjY2VmLi45OTE4MWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMDMtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFVzZSBSZWdpb24gaW5zdGVhZCBvZiBJbnRSZWN0IGluIFBhZ2VDbGllbnQg
YW5kIFdlYlBhZ2VQcm94eSBzZXRWaWV3TmVlZHNEaXNwbGF5IG1ldGhvZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBt
YWtlIGNhaXJvIHJlZ2lvbiBvdXQgb2YgYSBXZWJDb3JlOjpSZWdpb24uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0NhaXJvUmVnaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5oOgorCiAyMDE2LTAzLTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1hcHBlcl0gRGVzdHJ1Y3RpbmcgVGV4dHVy
ZU1hcHBlckxheWVyIHNob3VsZCBjbGVhbiB1cCBpdHMgZWZmZWN0IHRhcmdldApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRp
ZXMuY3BwCmluZGV4IGJlOTcwMTAuLjY1ZTMxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1QYXRoQ2Fp
cm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgorI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0z
MDgsNiArMzA5LDE2IEBAIHZvaWQgY2Fpcm9TdXJmYWNlR2V0RGV2aWNlU2NhbGUoY2Fpcm9fc3Vy
ZmFjZV90KiBzdXJmYWNlLCBkb3VibGUmIHhTY2FsZSwgZG91YmxlCiAjZW5kaWYKIH0KIAorUmVm
UHRyPGNhaXJvX3JlZ2lvbl90PiB0b0NhaXJvUmVnaW9uKGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQor
eworICAgIFJlZlB0cjxjYWlyb19yZWdpb25fdD4gY2Fpcm9SZWdpb24gPSBhZG9wdFJlZihjYWly
b19yZWdpb25fY3JlYXRlKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlZ2lvbi5y
ZWN0cygpKSB7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBjYWlyb1JlY3QgPSByZWN0
OworICAgICAgICBjYWlyb19yZWdpb25fdW5pb25fcmVjdGFuZ2xlKGNhaXJvUmVnaW9uLmdldCgp
LCAmY2Fpcm9SZWN0KTsKKyAgICB9CisgICAgcmV0dXJuIGNhaXJvUmVnaW9uOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0FJUk8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaApp
bmRleCBhZGFiMGU1Li4wZWJlM2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAg
Y2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3Mg
UGF0aDsKK2NsYXNzIFJlZ2lvbjsKIAogdm9pZCBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9f
dCogc3JjQ3IsIGNhaXJvX3QqIGRzdENyKTsKIHZvaWQgc2V0U291cmNlUkdCQUZyb21Db2xvcihj
YWlyb190KiwgY29uc3QgQ29sb3ImKTsKQEAgLTY1LDYgKzY2LDggQEAgdm9pZCBmbGlwSW1hZ2VT
dXJmYWNlVmVydGljYWxseShjYWlyb19zdXJmYWNlX3QqKTsKIHZvaWQgY2Fpcm9TdXJmYWNlU2V0
RGV2aWNlU2NhbGUoY2Fpcm9fc3VyZmFjZV90KiwgZG91YmxlIHhTY2FsZSwgZG91YmxlIHlTY2Fs
ZSk7CiB2b2lkIGNhaXJvU3VyZmFjZUdldERldmljZVNjYWxlKGNhaXJvX3N1cmZhY2VfdCosIGRv
dWJsZSYgeFNjYWxlLCBkb3VibGUmIHlTY2FsZSk7CiAKK1JlZlB0cjxjYWlyb19yZWdpb25fdD4g
dG9DYWlyb1JlZ2lvbihjb25zdCBSZWdpb24mKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gVVNFKENBSVJPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcwMGE2M2EuLmIxZDI4NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxNi0wMy0yMyAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXNlIFJlZ2lvbiBpbnN0ZWFkIG9m
IEludFJlY3QgaW4gUGFnZUNsaWVudCBhbmQgV2ViUGFnZVByb3h5IHNldFZpZXdOZWVkc0Rpc3Bs
YXkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTU3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBU
aGlzIHdheSBpbnN0ZWFkIG9mIGNhbGxpbmcgc2V0Vmlld05lZWRzRGlzcGxheSgpIGZvciBldmVy
eQorICAgICAgICByZWN0YW5nbGUgaW4gdGhlIGRhbWFnZSBhcmVhLCB3ZSBjYW4gYnVpbGQgYSBy
ZWdpb24gYW5kIGNhbGwKKyAgICAgICAgc2V0Vmlld05lZWRzRGlzcGxheSgpIG9uY2UuIEdUSysg
aGFzIEFQSSB0byBxdWV1ZSBhIHJlZHJhdyBmb3IgYQorICAgICAgICBnaXZlbiByZWdpb24sIHNv
IHdlIGFsc28gYXZvaWQgc2NoZWR1bGluZyBtdWx0aXBsZSByZWRyYXdzIGluIEdUSysKKyAgICAg
ICAgcG9ydC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkp
OiBDb252ZXJ0IHRoZSBSZWdpb24KKyAgICAgICAgaW50byBhIGNhaXJvX3JlZ2lvbl90IGFuZCB1
c2UgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3X3JlZ2lvbigpCisgICAgICAgIGluc3R5ZWFkIG9mIGd0
a193aWRnZXRfcXVldWVfZHJhd19hcmVhKCkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
UGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUlt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6aW5jb3Jwb3Jh
dGVVcGRhdGUpOiBCdWlsZCBhIFJlZ2lvbgorICAgICAgICB3aXRoIHRoZSBkYW1hZ2UgcmVjdGFu
Z2xlcyBhbmQgY2FsbAorICAgICAgICBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXko
KSBvbmNlLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2V0Vmlld05lZWRzRGlzcGxheSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXc6OnNldFZpZXdOZWVkc0Rpc3BsYXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwv
V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRW
aWV3TmVlZHNEaXNwbGF5KToKKwogMjAxNi0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBkaXNwbGF5IGFuZCBz
Y3JvbGwgdmlldyBtZXRob2RzIGZyb20gUGFnZUNsaWVudCBhbmQgV2ViUGFnZVByb3h5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAK
aW5kZXggZGY0MTU4Yi4uMDc5OWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNDEsOSArNDEsMTEgQEAKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUd0ay5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxp
dGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9F
dmVudE5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02Miw5ICs2NCwxMCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoKQogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhUHJv
eHlJbXBsPigqd2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKG1f
dmlld1dpZGdldCkpKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlz
cGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikKIHsKLSAg
ICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXdfYXJlYShtX3ZpZXdXaWRnZXQsIHJlY3QueCgpLCByZWN0
LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fcmVn
aW9uX3Q+IGRhbWFnZVJlZ2lvbiA9IHRvQ2Fpcm9SZWdpb24ocmVnaW9uKTsKKyAgICBndGtfd2lk
Z2V0X3F1ZXVlX2RyYXdfcmVnaW9uKG1fdmlld1dpZGdldCwgZGFtYWdlUmVnaW9uLmdldCgpKTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNzMzN2Zh
OS4uNzA3MzJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
UGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
Ly8gUGFnZUNsaWVudAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVh
dGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJvZ3JhbW1hdGlj
U2Nyb2xsKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4IGVlMmFj
MGQuLmNkNTIzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcApAQCAtMjI4LDExICsyMjgsMTQgQEAgdm9pZCBEcmF3aW5nQXJlYVBy
b3h5SW1wbDo6aW5jb3Jwb3JhdGVVcGRhdGUoY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykK
ICAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBzdGQ6Om1ha2VfdW5pcXVlPEJhY2tpbmdTdG9yZT4o
dXBkYXRlSW5mby52aWV3U2l6ZSwgdXBkYXRlSW5mby5kZXZpY2VTY2FsZUZhY3RvciwgbV93ZWJQ
YWdlUHJveHkpOwogCiAgICAgbV9iYWNraW5nU3RvcmUtPmluY29ycG9yYXRlVXBkYXRlKHVwZGF0
ZUluZm8pOworCisgICAgUmVnaW9uIGRhbWFnZVJlZ2lvbjsKICAgICBpZiAodXBkYXRlSW5mby5z
Y3JvbGxSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlY3QgOiB1
cGRhdGVJbmZvLnVwZGF0ZVJlY3RzKQotICAgICAgICAgICAgbV93ZWJQYWdlUHJveHkuc2V0Vmll
d05lZWRzRGlzcGxheShyZWN0KTsKKyAgICAgICAgICAgIGRhbWFnZVJlZ2lvbi51bml0ZShyZWN0
KTsKICAgICB9IGVsc2UKLSAgICAgICAgbV93ZWJQYWdlUHJveHkuc2V0Vmlld05lZWRzRGlzcGxh
eShJbnRSZWN0KEludFBvaW50KCksIG1fd2ViUGFnZVByb3h5LnZpZXdTaXplKCkpKTsKKyAgICAg
ICAgZGFtYWdlUmVnaW9uID0gSW50UmVjdChJbnRQb2ludCgpLCBtX3dlYlBhZ2VQcm94eS52aWV3
U2l6ZSgpKTsKKyAgICBtX3dlYlBhZ2VQcm94eS5zZXRWaWV3TmVlZHNEaXNwbGF5KGRhbWFnZVJl
Z2lvbik7CiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmJhY2tpbmdTdG9yZVN0YXRl
RGlkQ2hhbmdlKFJlc3BvbmRJbW1lZGlhdGVseU9yTm90IHJlc3BvbmRJbW1lZGlhdGVseU9yTm90
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMTdmNzk2ODcuLjg3Yjgz
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtOTMsOCArOTMsOCBA
QCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlIGEgbmV3IGRyYXdpbmcgYXJlYSBwcm94eSBmb3IgdGhl
IGdpdmVuIHBhZ2UuCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94
eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpID0gMDsKIAotICAgIC8vIFRlbGwgdGhlIHZpZXcg
dG8gaW52YWxpZGF0ZSB0aGUgZ2l2ZW4gcmVjdC4gVGhlIHJlY3QgaXMgaW4gdmlldyBjb29yZGlu
YXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgPSAwOworICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gaW52YWxpZGF0ZSB0aGUg
Z2l2ZW4gcmVnaW9uLiBUaGUgcmVnaW9uIGlzIGluIHZpZXcgY29vcmRpbmF0ZXMuCisgICAgdmly
dHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgPSAw
OwogCiAgICAgLy8gVGVsbCB0aGUgdmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9u
LCBhbmQgd2hldGhlciB0aGlzIHdhcyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgaXNQcm9n
cmFtbWF0aWNTY3JvbGwpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNzcxYjM2My4uZThjMDc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzMTksOSArMTMxOSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp2aWV3V2lsbEVuZExpdmVSZXNpemUoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6Vmlld1dpbGxFbmRMaXZlUmVzaXplKCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgSW50UmVjdCYgcmVjdCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9u
KQogewotICAgIG1fcGFnZUNsaWVudC5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlY3QpOworICAgIG1f
cGFnZUNsaWVudC5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJvZ3JhbW1hdGljU2Nyb2xsKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDUyMzAwNjEuLjQxNGVi
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQxMyw3ICs0
MTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclNlbGVjdGlvbigpOwogICAgIHZvaWQgcmVz
dG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpOwogCi0gICAgdm9pZCBzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2b2lkIHNldFZp
ZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7CiAgICAgdm9pZCByZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJvZ3JhbW1hdGljU2Nyb2xs
KTsKICAgICAKICAgICB2b2lkIHNldERlbGVnYXRlc1Njcm9sbGluZyhib29sIGRlbGVnYXRlc1Nj
cm9sbGluZykgeyBtX2RlbGVnYXRlc1Njcm9sbGluZyA9IGRlbGVnYXRlc1Njcm9sbGluZzsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKaW5kZXggYmQyZWYxMy4uZTA2
YWYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC00MDks
OSArNDA5LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBXZWJWaWV3Ojpj
cmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb29y
ZGluYXRlZERyYXdpbmdBcmVhUHJveHk+KCptX3BhZ2UpOwogfQogCi12b2lkIFdlYlZpZXc6OnNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYXJlYSkKK3ZvaWQgV2Vi
Vmlldzo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mIHJlZ2lvbikK
IHsKLSAgICBtX2NsaWVudC52aWV3TmVlZHNEaXNwbGF5KHRoaXMsIGFyZWEpOworICAgIGZvciAo
Y29uc3QgYXV0byYgcmVjdCA6IHJlZ2lvbi5yZWN0cygpKQorICAgICAgICBtX2NsaWVudC52aWV3
TmVlZHNEaXNwbGF5KHRoaXMsIHJlY3QpOwogfQogCiB2b2lkIFdlYlZpZXc6OnJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
Ym9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggYjU5ZTdlOC4u
YTI4MDFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTE1NCw3
ICsxNTQsNyBAQCBwcml2YXRlOgogICAgIC8vIFBhZ2VDbGllbnQKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVn
aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApp
bmRleCA3OGNlMjY1Li5kMWQyNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgLy8gUGFnZUNsaWVudAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIGlzUHJv
Z3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXpl
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IGMzZTk5OTUuLjUyYjMxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQ
cm94eSgpCiAgICAgcmV0dXJuIFttX2NvbnRlbnRWaWV3IF9jcmVhdGVEcmF3aW5nQXJlYVByb3h5
XTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBJ
bnRSZWN0JiByZWN0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShj
b25zdCBSZWdpb24mKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDg1MDJlNjEuLjA4
ZGY1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVh
UHJveHkoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShj
b25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgaXNQcm9ncmFtbWF0aWNTY3JvbGwpIG92ZXJy
aWRlOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNjg4OWE2
Zi4uZDliMWEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKICAgICByZXR1
cm4gbV9pbXBsLT5jcmVhdGVEcmF3aW5nQXJlYVByb3h5KCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
UmVnaW9uJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>