<?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>48202</bug_id>
          
          <creation_ts>2010-10-24 01:15:35 -0700</creation_ts>
          <short_desc>[GTK] Port to new GtkScrollable interface in GTK+ 3.x</short_desc>
          <delta_ts>2010-10-26 01:42:36 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298537</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-24 01:15:35 -0700</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298538</commentid>
    <comment_count>1</comment_count>
      <attachid>71672</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-24 01:18:59 -0700</bug_when>
    <thetext>Created attachment 71672
scrollable.diff

This seems to be enough to get things going...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298539</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-24 01:21:36 -0700</bug_when>
    <thetext>Attachment 71672 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/gtk/webkit/webkitwebview.cpp:414:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/gtk/webkit/webkitwebview.cpp:417:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/gtk/webkit/webkitwebview.cpp:418:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/gtk/webkit/webkitwebview.cpp:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/gtk/webkit/webkitwebview.cpp:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 5 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298541</commentid>
    <comment_count>3</comment_count>
      <attachid>71673</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-24 01:27:08 -0700</bug_when>
    <thetext>Created attachment 71673
scrollable.diff

Yikes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298542</commentid>
    <comment_count>4</comment_count>
      <attachid>71674</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-24 01:29:21 -0700</bug_when>
    <thetext>Created attachment 71674
scrollable.diff

The code in get/set needs to be made conditional too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298727</commentid>
    <comment_count>5</comment_count>
      <attachid>71674</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-24 22:17:27 -0700</bug_when>
    <thetext>Comment on attachment 71674
scrollable.diff

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

Looks good. I have a couple nits.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:202
&gt; +#else
&gt; +    PROP_VIEW_MODE,

I believe it&apos;s fine to have the extra comma on PROP_VIEW_MODE for the GTK+ 2.0 version. That would simplify the enum and #ifdef.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:214
&gt; +                        G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL))

Should this NULL be a 0?

&gt; WebKit/gtk/webkit/webkitwebview.cpp:400
&gt; +static void webkit_web_view_set_hadjustment(WebKitWebView* webView, GtkAdjustment* hadj)

IMO if these setters aren&apos;t public they should be named in WebKit style. I can see naming them this way for consistency though. I definitely think &apos;hadj&apos; should be &apos;horizontalAdjustment&apos; though. These comments apply for webkit_web_view_set_vadjustment as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299303</commentid>
    <comment_count>6</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-25 23:27:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 71674 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71674&amp;action=review
&gt; 
&gt; Looks good. I have a couple nits.
&gt; 
&gt; &gt; WebKit/gtk/webkit/webkitwebview.cpp:202
&gt; &gt; +#else
&gt; &gt; +    PROP_VIEW_MODE,
&gt; 
&gt; I believe it&apos;s fine to have the extra comma on PROP_VIEW_MODE for the GTK+ 2.0 version. That would simplify the enum and #ifdef.

I believe the trailing comma was forbidden in the old standards of C and C++. For sure it&apos;s been traditionally not allowed in GNOME code for this reason. Not sure where we stand on this in WebKit, though.

&gt; 
&gt; &gt; WebKit/gtk/webkit/webkitwebview.cpp:214
&gt; &gt; +                        G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL))
&gt; 
&gt; Should this NULL be a 0?

Yeah, I used NULL because I wasn&apos;t sure... reading the macro I think it&apos;s OK to use 0, so I&apos;ll change it.

&gt; 
&gt; &gt; WebKit/gtk/webkit/webkitwebview.cpp:400
&gt; &gt; +static void webkit_web_view_set_hadjustment(WebKitWebView* webView, GtkAdjustment* hadj)
&gt; 
&gt; IMO if these setters aren&apos;t public they should be named in WebKit style. I can see naming them this way for consistency though. I definitely think &apos;hadj&apos; should be &apos;horizontalAdjustment&apos; though. These comments apply for webkit_web_view_set_vadjustment as well.

I used hadjustment/vadjustment because that&apos;s how the property is named (in the parent class, so it&apos;s not up to us to change the name). If the methods remain private we can do whatever we want though, so I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299310</commentid>
    <comment_count>7</comment_count>
      <attachid>71842</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-26 00:05:49 -0700</bug_when>
    <thetext>Created attachment 71842
scrollable.diff

Address review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299336</commentid>
    <comment_count>8</comment_count>
      <attachid>71842</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-26 01:24:09 -0700</bug_when>
    <thetext>Comment on attachment 71842
scrollable.diff

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

Okay. Patch looks great to me, but perhaps you might consider my suggestions before landing. Thanks!

&gt; WebKit/gtk/webkit/webkitwebview.cpp:203
&gt; +#ifndef GTK_API_VERSION_2
&gt; +    , PROP_HADJUSTMENT
&gt; +    , PROP_VADJUSTMENT
&gt; +#endif

I guess I prefer the original method to this one. :/

&gt; WebKit/gtk/webkit/webkitwebview.cpp:398
&gt; +static void setHorizontalAdjustment(WebKitWebView* webView, GtkAdjustment* hadj)

My preference is to rename hadj/vadj to horizontalAdjustment/verticalAdjustment before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299343</commentid>
    <comment_count>9</comment_count>
      <attachid>71842</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-10-26 01:40:36 -0700</bug_when>
    <thetext>Comment on attachment 71842
scrollable.diff

Landed as r70514.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71672</attachid>
            <date>2010-10-24 01:18:59 -0700</date>
            <delta_ts>2010-10-24 01:27:08 -0700</delta_ts>
            <desc>scrollable.diff</desc>
            <filename>scrollable.diff</filename>
            <type>text/plain</type>
            <size>14889</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA5OWYwN2U5MDU1Nzc2YmIwOWJlNWFiMDc1ZjNmZTBkOWY4NzBhZWViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBT
dW4sIDI0IE9jdCAyMDEwIDE3OjE3OjU2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Ny
b2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVGhlIG5ldyBHdGtTY3JvbGxhYmxl
IEFQSSBzZXRzIHRoZSBhZGp1c3RtZW50cyBpbmRpdmlkdWFsbHksIHNvCiAgICAgICAgYWRqdXN0
IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCgogICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5o
OgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgogICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8g
c2V0IHRoZSBob3Jpem9udGFsIGFkanVzdG1lbnQuCiAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnNldFZlcnRpY2FsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8gc2V0IHRoZSB2ZXJ0aWNh
bCBhZGp1c3RtZW50LgogICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRob2RzLgoKV2ViS2l0
L2d0azoKCjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcg
R3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVXNlIHRoZSBuZXcgR3Rr
U2Nyb2xsYWJsZSBpbnRlcmZhY2Ugd2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCiAgICAgICAg
My54LgoKICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKICAgICAgICAod2Via2l0
X3dlYl92aWV3X3NldF9oYWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRf
dmFkanVzdG1lbnQpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hhZGp1c3RtZW50KToK
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF92YWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3By
b3BlcnR5KToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotLS0KIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaCAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgfCAgIDcxICsrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysr
KysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgIHwgICA2NiArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9u
cygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYzRkMDY1Li43MGQxZDUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEwLTEwLTI0ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBQb3J0IHRvIG5ldyBHdGtT
Y3JvbGxhYmxlIGludGVyZmFjZSBpbiBHVEsrIDMueAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKKworICAgICAgICBUaGUgbmV3IEd0a1Njcm9s
bGFibGUgQVBJIHNldHMgdGhlIGFkanVzdG1lbnRzIGluZGl2aWR1YWxseSwgc28KKyAgICAgICAg
YWRqdXN0IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SG9yaXpvbnRhbEFkanVzdG1lbnQpOiBuZXcg
bWV0aG9kIHRvIHNldCB0aGUgaG9yaXpvbnRhbCBhZGp1c3RtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6c2V0VmVydGljYWxBZGp1c3RtZW50KTogbmV3IG1ldGhvZCB0byBzZXQg
dGhlIHZlcnRpY2FsIGFkanVzdG1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpz
ZXRHdGtBZGp1c3RtZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRo
b2RzLgorCiAyMDEwLTEwLTIzICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmggYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCAyM2Y0
OGNhLi4xZDgzNTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMzM5LDYgKzMzOSw4IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogcHVibGljOgogICAgIHZvaWQgc2V0R3RrQWRqdXN0
bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNl
dFZhbHVlcyA9IHRydWUpOworICAgIHZvaWQgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRq
dXN0bWVudCogaGFkaiwgYm9vbCByZXNldFZhbHVlcyA9IHRydWUpOworICAgIHZvaWQgc2V0VmVy
dGljYWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIHZhZGosIGJvb2wgcmVzZXRWYWx1ZXMgPSB0
cnVlKTsKICAgICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBvZmZzZXQpIHsg
bV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggZWJjZGFhMS4uODkxZWVlMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTc4LDQ3ICs3OCwyOSBAQCBQYXNzUmVmUHRyPFNj
cm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9u
IG9yaWVudGF0aQogICAgIHJldHVybiBNYWluRnJhbWVTY3JvbGxiYXJHdGs6OmNyZWF0ZSh0aGlz
LCBvcmllbnRhdGlvbiwgbV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCkpOwogfQogCi0vKgotICog
VGhlIGZvbGxvd2luZyBpcyBhc3N1bWVkOgotICogICAoaGFkaiAmJiB2YWRqKSB8fCAoIWhhZGog
JiYgIXZhZGopCi0gKi8KLXZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRq
dXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNldFZhbHVlcykKK3Zv
aWQgU2Nyb2xsVmlldzo6c2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudCogaGFk
aiwgYm9vbCByZXNldFZhbHVlcykKIHsKLSAgICBBU1NFUlQoIWhhZGogPT0gIXZhZGopOwotCi0g
ICAgLy8gSWYgdGhpcyBpcyBhIG5vbi1tYWluIGZyYW1lIFNjcm9sbFZpZXcsIHdlIGRvIG5vdCB3
YW50IHRvIHNldCB0aGUKLSAgICAvLyBtX2hvcml6b250YWxBZGp1c3RtZW50cyAmIG1fdmVydGlj
YWxBZGp1c3RtZW50cyBtZW1iZXJzLiBBdCB0aGUgc2FtZQotICAgIC8vIHRpbWUgd2Ugd2FudCB0
byB0byBhbGxvdyBGcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgdG8gY2FsbCAKLSAgICAvLyBTY3Jv
bGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cygwLCAwKSB1bmNvbmRpdGlvbmFsbHkuCiAgICAgQVNT
RVJUKCFwYXJlbnQoKSB8fCAhaGFkaik7CiAgICAgaWYgKHBhcmVudCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50ID0gaGFkajsKLSAgICBtX3ZlcnRpY2Fs
QWRqdXN0bWVudCA9IHZhZGo7CiAKICAgICBpZiAoIW1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsK
ICAgICAgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiBoU2Nyb2xsYmFyID0gcmVpbnRlcnByZXRf
Y2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPihob3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAg
ICAgICBpZiAoaFNjcm9sbGJhcikKICAgICAgICAgICAgIGhTY3JvbGxiYXItPmRldGFjaEFkanVz
dG1lbnQoKTsKLQotICAgICAgICBNYWluRnJhbWVTY3JvbGxiYXJHdGsqIHZTY3JvbGxiYXIgPSBy
ZWludGVycHJldF9jYXN0PE1haW5GcmFtZVNjcm9sbGJhckd0ayo+KHZlcnRpY2FsU2Nyb2xsYmFy
KCkpOwotICAgICAgICBpZiAodlNjcm9sbGJhcikKLSAgICAgICAgICAgIHZTY3JvbGxiYXItPmRl
dGFjaEFkanVzdG1lbnQoKTsKLQotICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gV2Ug
bWF5IGJlIGxhY2tpbmcgc2Nyb2xsYmFycyB3aGVuIHJldHVybmluZyB0byBhIGNhY2hlZAogICAg
IC8vIHBhZ2UsIHRoaXMga2lja3MgdGhlIHBhZ2UgdG8gcmVjcmVhdGUgdGhlIHNjcm9sbGJhcnMu
Ci0gICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7CiAgICAgc2V0SGFzSG9yaXpvbnRh
bFNjcm9sbGJhcih0cnVlKTsKIAogICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayogaFNjcm9sbGJh
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4oaG9yaXpvbnRhbFNj
cm9sbGJhcigpKTsKICAgICBoU2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50KG1faG9yaXpvbnRh
bEFkanVzdG1lbnQuZ2V0KCkpOwogCi0gICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiB2U2Nyb2xs
YmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPih2ZXJ0aWNhbFNj
cm9sbGJhcigpKTsKLSAgICB2U2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50KG1fdmVydGljYWxB
ZGp1c3RtZW50LmdldCgpKTsKKyAgICBpZiAoIW1faG9yaXpvbnRhbEFkanVzdG1lbnQpCisgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFdlIHVzZWQgdG8gcmVzZXQgZXZlcnl0aGluZyB0byAwIGhl
cmUsIGJ1dCB3aGVuIHBhZ2UgY2FjaGUKICAgICAvLyBpcyBlbmFibGVkIHdlIHJldXNlIEZyYW1l
Vmlld3MgdGhhdCBhcmUgY2FjaGVkLiBTaW5jZSB0aGVpcgpAQCAtMTI3LDcgKzEwOSw2IEBAIHZv
aWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3Rr
QWRqdXN0bWVudCogdmFkaiwgYm9vCiAgICAgLy8gc2V0IGluIHRoZSBub3JtYWwgY2FzZSksIHdl
IG1ha2Ugc3VyZSB0aGV5IGFyZSB1cC10by1kYXRlCiAgICAgLy8gaGVyZS4gVGhpcyBpcyBuZWVk
ZWQgZm9yIHRoZSBwYXJlbnQgc2Nyb2xsaW5nIHdpZGdldCB0byBiZQogICAgIC8vIGFibGUgdG8g
cmVwb3J0IGNvcnJlY3QgdmFsdWVzLgotCiAgICAgaW50IGhvcml6b250YWxQYWdlU3RlcCA9IG1h
eChtYXg8aW50PihmcmFtZVJlY3QoKS53aWR0aCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRv
U3RlcFdoZW5QYWdpbmcoKSwgZnJhbWVSZWN0KCkud2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4T3Zl
cmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY29uZmlndXJlKG1f
aG9yaXpvbnRhbEFkanVzdG1lbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCksIDAsCkBAIC0xMzUsMTQg
KzExNiw1MiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKEd0a0FkanVzdG1l
bnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGosIGJvbwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IGhvcml6b250
YWxQYWdlU3RlcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAw
IDogZnJhbWVSZWN0KCkud2lkdGgoKSk7Cit9CiAKLSAgICBpbnQgdmVydGljYWxQYWdlU3RlcCA9
IG1heChtYXg8aW50PihmcmFtZVJlY3QoKS5oZWlnaHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rp
b25Ub1N0ZXBXaGVuUGFnaW5nKCksIGZyYW1lUmVjdCgpLmhlaWdodCgpIC0gU2Nyb2xsYmFyOjpt
YXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0VmVydGlj
YWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIHZhZGosIGJvb2wgcmVzZXRWYWx1ZXMpCit7Cisg
ICAgQVNTRVJUKCFwYXJlbnQoKSB8fCAhdmFkaik7CisgICAgaWYgKHBhcmVudCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7CisKKyAgICBpZiAo
IW1fdmVydGljYWxBZGp1c3RtZW50KSB7CisgICAgICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayog
dlNjcm9sbGJhciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4odmVy
dGljYWxTY3JvbGxiYXIoKSk7CisgICAgICAgIGlmICh2U2Nyb2xsYmFyKQorICAgICAgICAgICAg
dlNjcm9sbGJhci0+ZGV0YWNoQWRqdXN0bWVudCgpOworICAgIH0KKworICAgIC8vIFdlIG1heSBi
ZSBsYWNraW5nIHNjcm9sbGJhcnMgd2hlbiByZXR1cm5pbmcgdG8gYSBjYWNoZWQKKyAgICAvLyBw
YWdlLCB0aGlzIGtpY2tzIHRoZSBwYWdlIHRvIHJlY3JlYXRlIHRoZSBzY3JvbGxiYXJzLgorICAg
IHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOworCisgICAgTWFpbkZyYW1lU2Nyb2xsYmFy
R3RrKiB2U2Nyb2xsYmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsq
Pih2ZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICB2U2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50
KG1fdmVydGljYWxBZGp1c3RtZW50LmdldCgpKTsKKworICAgIGlmICghbV92ZXJ0aWNhbEFkanVz
dG1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHVzZWQgdG8gcmVzZXQgZXZlcnl0
aGluZyB0byAwIGhlcmUsIGJ1dCB3aGVuIHBhZ2UgY2FjaGUKKyAgICAvLyBpcyBlbmFibGVkIHdl
IHJldXNlIEZyYW1lVmlld3MgdGhhdCBhcmUgY2FjaGVkLiBTaW5jZSB0aGVpcgorICAgIC8vIHNp
emUgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSB3aGVuIGJlaW5nIHJlc3RvcmVkLCAod2hpY2ggaXMK
KyAgICAvLyB3aGF0IHdvdWxkIGNhdXNlIHRoZSB1cHBlciBsaW1pdCBpbiB0aGUgYWRqdXNtZW50
cyB0byBiZQorICAgIC8vIHNldCBpbiB0aGUgbm9ybWFsIGNhc2UpLCB3ZSBtYWtlIHN1cmUgdGhl
eSBhcmUgdXAtdG8tZGF0ZQorICAgIC8vIGhlcmUuIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgcGFy
ZW50IHNjcm9sbGluZyB3aWRnZXQgdG8gYmUKKyAgICAvLyBhYmxlIHRvIHJlcG9ydCBjb3JyZWN0
IHZhbHVlcy4KKyAgICBpbnQgdmVydGljYWxQYWdlU3RlcCA9IG1heChtYXg8aW50PihmcmFtZVJl
Y3QoKS53aWR0aCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwg
ZnJhbWVSZWN0KCkud2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygp
KSwgMSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY29uZmlndXJlKG1fdmVydGljYWxBZGp1c3RtZW50
LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBz
Y3JvbGxPZmZzZXQoKS5oZWlnaHQoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXRWYWx1ZXMgPyAwIDogY29udGVudHNTaXplKCkuaGVpZ2h0KCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCks
IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IGNvbnRl
bnRzU2l6ZSgpLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFs
dWVzID8gMCA6IFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogdmVydGljYWxQYWdlU3RlcCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkuaGVp
Z2h0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBm
cmFtZVJlY3QoKS53aWR0aCgpKTsKK30KKwordm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqLCBib29sIHJlc2V0
VmFsdWVzKQoreworICAgIHNldEhvcml6b250YWxBZGp1c3RtZW50KGhhZGosIHJlc2V0VmFsdWVz
KTsKKyAgICBzZXRWZXJ0aWNhbEFkanVzdG1lbnQodmFkaiwgcmVzZXRWYWx1ZXMpOwogfQogCiB2
b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtQWRkQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDEz
MDc2Ni4uMWFmNDUyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0yNCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2Ug
aW4gR1RLKyAzLngKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ4MjAyCisKKyAgICAgICAgVXNlIHRoZSBuZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2Ug
d2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCisgICAgICAgIDMueC4KKworICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfaGFk
anVzdG1lbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF92YWRqdXN0bWVudCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hhZGp1c3RtZW50KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19nZXRfdmFkanVzdG1lbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dl
dF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKwogMjAxMC0xMC0yMiAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJs
c3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggZjVkMGVmNi4uYjFjYzI0
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE5NiwxMiArMTk2LDIzIEBA
IGVudW0gewogICAgIFBST1BfQ1VTVE9NX0VOQ09ESU5HLAogICAgIFBST1BfSUNPTl9VUkksCiAg
ICAgUFJPUF9JTV9DT05URVhULAorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAgUFJPUF9W
SUVXX01PREUKKyNlbHNlCisgICAgUFJPUF9WSUVXX01PREUsCisgICAgUFJPUF9IQURKVVNUTUVO
VCwKKyAgICBQUk9QX1ZBREpVU1RNRU5UCisjZW5kaWYKIH07CiAKIHN0YXRpYyBndWludCB3ZWJr
aXRfd2ViX3ZpZXdfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKKyNpZmRlZiBHVEtf
QVBJX1ZFUlNJT05fMgogR19ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3LCB3ZWJraXRfd2ViX3Zp
ZXcsIEdUS19UWVBFX0NPTlRBSU5FUikKKyNlbHNlCitHX0RFRklORV9UWVBFX1dJVEhfQ09ERShX
ZWJLaXRXZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXcsIEdUS19UWVBFX0NPTlRBSU5FUiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShHVEtfVFlQRV9TQ1JPTExB
QkxFLCBOVUxMKSkKKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGlu
Z3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1BhcmFtU3BlYyogcHNw
ZWMsIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOwogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViV2lu
ZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKQEAgLTM4NSw2ICszOTYsNDIgQEAgc3Rh
dGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIoR3RrV2lkZ2V0
KiB3aWRnZXQpCiAgICAgcmV0dXJuIHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVu
dV9ldmVudChXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSwgZXZlbnQpOwogfQogCisjaWZuZGVmIEdU
S19BUElfVkVSU0lPTl8yCitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2hhZGp1c3Rt
ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a0FkanVzdG1lbnQqIGhhZGopCit7CisgICAg
aWYgKCFjb3JlKHdlYlZpZXcpKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJWaWV3LT5wcml2
LT5ob3Jpem9udGFsQWRqdXN0bWVudCA9IGhhZGo7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29y
ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpLT52aWV3KCk7CisgICAg
aWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAgdmlldy0+c2V0SG9yaXpvbnRhbEFkanVz
dG1lbnQoaGFkaik7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfdmFkanVz
dG1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogdmFkaikKK3sKKyAg
IGlmICghY29yZSh3ZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuOworCisgICB3ZWJWaWV3LT5wcml2
LT52ZXJ0aWNhbEFkanVzdG1lbnQgPSB2YWRqOworICAgRnJhbWVWaWV3KiB2aWV3ID0gY29yZSh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpLT52aWV3KCk7CisgICBpZiAo
IXZpZXcpCisgICAgICAgcmV0dXJuOworICAgdmlldy0+c2V0VmVydGljYWxBZGp1c3RtZW50KHZh
ZGopOworfQorCitzdGF0aWMgR3RrQWRqdXN0bWVudCogd2Via2l0X3dlYl92aWV3X2dldF9oYWRq
dXN0bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIHJldHVybiB3ZWJWaWV3LT5w
cml2LT5ob3Jpem9udGFsQWRqdXN0bWVudC5nZXQoKTsKK30KKworc3RhdGljIEd0a0FkanVzdG1l
bnQqIHdlYmtpdF93ZWJfdmlld19nZXRfdmFkanVzdG1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKK3sKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dmVydGljYWxBZGp1c3RtZW50LmdldCgp
OworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVX
KG9iamVjdCk7CkBAIC00NDQsNiArNDkxLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqCiAg
ICAgY2FzZSBQUk9QX1ZJRVdfTU9ERToKICAgICAgICAgZ192YWx1ZV9zZXRfZW51bSh2YWx1ZSwg
d2Via2l0X3dlYl92aWV3X2dldF92aWV3X21vZGUod2ViVmlldykpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIFBST1BfSEFESlVTVE1FTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2
YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9oYWRqdXN0bWVudCh3ZWJWaWV3KSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUFJPUF9WQURKVVNUTUVOVDoKKyAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZhZGp1c3RtZW50KHdlYlZpZXcpKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZB
TElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgIH0KQEAgLTQ3OCw2
ICs1MzEsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9wcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEcKICAgICBjYXNlIFBST1BfVklFV19N
T0RFOgogICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfbW9kZSh3ZWJWaWV3LCBzdGF0
aWNfY2FzdDxXZWJLaXRXZWJWaWV3Vmlld01vZGU+KGdfdmFsdWVfZ2V0X2VudW0odmFsdWUpKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9IQURKVVNUTUVOVDoKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X3NldF9oYWRqdXN0bWVudCh3ZWJWaWV3LCBzdGF0aWNfY2FzdDxHdGtBZGp1
c3RtZW50Kj4oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBST1BfVkFESlVTVE1FTlQ6CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfdmFk
anVzdG1lbnQod2ViVmlldywgc3RhdGljX2Nhc3Q8R3RrQWRqdXN0bWVudCo+KGdfdmFsdWVfZ2V0
X29iamVjdCh2YWx1ZSkpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMp
OwogICAgIH0KQEAgLTkwOCw2ICs5NjcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
cmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBndGtfaW1fY29udGV4dF9zZXRfY2xpZW50
X3dpbmRvdyhwcml2LT5pbUNvbnRleHQuZ2V0KCksIHdpbmRvdyk7CiB9CiAKKyNpZmRlZiBHVEtf
QVBJX1ZFUlNJT05fMgogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3JvbGxfYWRq
dXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogaGFkaiwgR3Rr
QWRqdXN0bWVudCogdmFkaikKIHsKICAgICBpZiAoIWNvcmUod2ViVmlldykpCkBAIC05MjEsNiAr
OTgxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3JvbGxfYWRqdXN0bWVu
dHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWQKICAgICAgICAgcmV0dXJuOwogICAgIHZp
ZXctPnNldEd0a0FkanVzdG1lbnRzKGhhZGosIHZhZGopOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfdmlld19jb250YWluZXJfYWRkKEd0a0NvbnRhaW5lciogY29udGFpbmVy
LCBHdGtXaWRnZXQqIHdpZGdldCkKIHsKQEAgLTI1MjUsNiArMjU4Niw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogICAgIC8qCiAgICAgICogbWFrZSB1cyBzY3JvbGxhYmxlIChlLmcuIGFkZGFibGUgdG8g
YSBHdGtTY3JvbGxlZFdpbmRvdykKICAgICAgKi8KKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgog
ICAgIHdlYlZpZXdDbGFzcy0+c2V0X3Njcm9sbF9hZGp1c3RtZW50cyA9IHdlYmtpdF93ZWJfdmll
d19zZXRfc2Nyb2xsX2FkanVzdG1lbnRzOwogICAgIEdUS19XSURHRVRfQ0xBU1Mod2ViVmlld0Ns
YXNzKS0+c2V0X3Njcm9sbF9hZGp1c3RtZW50c19zaWduYWwgPSBnX3NpZ25hbF9uZXcoInNldC1z
Y3JvbGwtYWRqdXN0bWVudHMiLAogICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmll
d0NsYXNzKSwKQEAgLTI1MzQsNiArMjU5NiwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAg
ICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCiAgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdUS19UWVBFX0FESlVTVE1FTlQsIEdUS19UWVBFX0FE
SlVTVE1FTlQpOworI2Vsc2UKKyAgICBnX29iamVjdF9jbGFzc19vdmVycmlkZV9wcm9wZXJ0eShv
YmplY3RDbGFzcywgUFJPUF9IQURKVVNUTUVOVCwgImhhZGp1c3RtZW50Iik7CisgICAgZ19vYmpl
Y3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVkFESlVTVE1FTlQs
ICJ2YWRqdXN0bWVudCIpOworI2VuZGlmCiAKICAgICAvKgogICAgICAqIEtleSBiaW5kaW5ncwot
LSAKMS43LjIuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71673</attachid>
            <date>2010-10-24 01:27:08 -0700</date>
            <delta_ts>2010-10-24 01:29:21 -0700</delta_ts>
            <desc>scrollable.diff</desc>
            <filename>scrollable.diff</filename>
            <type>text/plain</type>
            <size>14895</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAyMWY4YjdlZTQ5NmYwOTVhNjcwMDQxZTEzMzAxODY1NTI1NzZjMmY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBT
dW4sIDI0IE9jdCAyMDEwIDE3OjE3OjU2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Ny
b2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVGhlIG5ldyBHdGtTY3JvbGxhYmxl
IEFQSSBzZXRzIHRoZSBhZGp1c3RtZW50cyBpbmRpdmlkdWFsbHksIHNvCiAgICAgICAgYWRqdXN0
IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCgogICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5o
OgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgogICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8g
c2V0IHRoZSBob3Jpem9udGFsIGFkanVzdG1lbnQuCiAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnNldFZlcnRpY2FsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8gc2V0IHRoZSB2ZXJ0aWNh
bCBhZGp1c3RtZW50LgogICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRob2RzLgoKV2ViS2l0
L2d0azoKCjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcg
R3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVXNlIHRoZSBuZXcgR3Rr
U2Nyb2xsYWJsZSBpbnRlcmZhY2Ugd2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCiAgICAgICAg
My54LgoKICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKICAgICAgICAod2Via2l0
X3dlYl92aWV3X3NldF9oYWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRf
dmFkanVzdG1lbnQpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hhZGp1c3RtZW50KToK
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF92YWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3By
b3BlcnR5KToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotLS0KIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaCAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgfCAgIDcxICsrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysr
KysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgIHwgICA2NiArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9u
cygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYzRkMDY1Li43MGQxZDUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEwLTEwLTI0ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBQb3J0IHRvIG5ldyBHdGtT
Y3JvbGxhYmxlIGludGVyZmFjZSBpbiBHVEsrIDMueAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKKworICAgICAgICBUaGUgbmV3IEd0a1Njcm9s
bGFibGUgQVBJIHNldHMgdGhlIGFkanVzdG1lbnRzIGluZGl2aWR1YWxseSwgc28KKyAgICAgICAg
YWRqdXN0IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SG9yaXpvbnRhbEFkanVzdG1lbnQpOiBuZXcg
bWV0aG9kIHRvIHNldCB0aGUgaG9yaXpvbnRhbCBhZGp1c3RtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6c2V0VmVydGljYWxBZGp1c3RtZW50KTogbmV3IG1ldGhvZCB0byBzZXQg
dGhlIHZlcnRpY2FsIGFkanVzdG1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpz
ZXRHdGtBZGp1c3RtZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRo
b2RzLgorCiAyMDEwLTEwLTIzICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmggYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCAyM2Y0
OGNhLi4xZDgzNTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMzM5LDYgKzMzOSw4IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogcHVibGljOgogICAgIHZvaWQgc2V0R3RrQWRqdXN0
bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNl
dFZhbHVlcyA9IHRydWUpOworICAgIHZvaWQgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRq
dXN0bWVudCogaGFkaiwgYm9vbCByZXNldFZhbHVlcyA9IHRydWUpOworICAgIHZvaWQgc2V0VmVy
dGljYWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIHZhZGosIGJvb2wgcmVzZXRWYWx1ZXMgPSB0
cnVlKTsKICAgICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBvZmZzZXQpIHsg
bV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggZWJjZGFhMS4uODkxZWVlMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTc4LDQ3ICs3OCwyOSBAQCBQYXNzUmVmUHRyPFNj
cm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9u
IG9yaWVudGF0aQogICAgIHJldHVybiBNYWluRnJhbWVTY3JvbGxiYXJHdGs6OmNyZWF0ZSh0aGlz
LCBvcmllbnRhdGlvbiwgbV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCkpOwogfQogCi0vKgotICog
VGhlIGZvbGxvd2luZyBpcyBhc3N1bWVkOgotICogICAoaGFkaiAmJiB2YWRqKSB8fCAoIWhhZGog
JiYgIXZhZGopCi0gKi8KLXZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRq
dXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNldFZhbHVlcykKK3Zv
aWQgU2Nyb2xsVmlldzo6c2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudCogaGFk
aiwgYm9vbCByZXNldFZhbHVlcykKIHsKLSAgICBBU1NFUlQoIWhhZGogPT0gIXZhZGopOwotCi0g
ICAgLy8gSWYgdGhpcyBpcyBhIG5vbi1tYWluIGZyYW1lIFNjcm9sbFZpZXcsIHdlIGRvIG5vdCB3
YW50IHRvIHNldCB0aGUKLSAgICAvLyBtX2hvcml6b250YWxBZGp1c3RtZW50cyAmIG1fdmVydGlj
YWxBZGp1c3RtZW50cyBtZW1iZXJzLiBBdCB0aGUgc2FtZQotICAgIC8vIHRpbWUgd2Ugd2FudCB0
byB0byBhbGxvdyBGcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgdG8gY2FsbCAKLSAgICAvLyBTY3Jv
bGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cygwLCAwKSB1bmNvbmRpdGlvbmFsbHkuCiAgICAgQVNT
RVJUKCFwYXJlbnQoKSB8fCAhaGFkaik7CiAgICAgaWYgKHBhcmVudCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50ID0gaGFkajsKLSAgICBtX3ZlcnRpY2Fs
QWRqdXN0bWVudCA9IHZhZGo7CiAKICAgICBpZiAoIW1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsK
ICAgICAgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiBoU2Nyb2xsYmFyID0gcmVpbnRlcnByZXRf
Y2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPihob3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAg
ICAgICBpZiAoaFNjcm9sbGJhcikKICAgICAgICAgICAgIGhTY3JvbGxiYXItPmRldGFjaEFkanVz
dG1lbnQoKTsKLQotICAgICAgICBNYWluRnJhbWVTY3JvbGxiYXJHdGsqIHZTY3JvbGxiYXIgPSBy
ZWludGVycHJldF9jYXN0PE1haW5GcmFtZVNjcm9sbGJhckd0ayo+KHZlcnRpY2FsU2Nyb2xsYmFy
KCkpOwotICAgICAgICBpZiAodlNjcm9sbGJhcikKLSAgICAgICAgICAgIHZTY3JvbGxiYXItPmRl
dGFjaEFkanVzdG1lbnQoKTsKLQotICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gV2Ug
bWF5IGJlIGxhY2tpbmcgc2Nyb2xsYmFycyB3aGVuIHJldHVybmluZyB0byBhIGNhY2hlZAogICAg
IC8vIHBhZ2UsIHRoaXMga2lja3MgdGhlIHBhZ2UgdG8gcmVjcmVhdGUgdGhlIHNjcm9sbGJhcnMu
Ci0gICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7CiAgICAgc2V0SGFzSG9yaXpvbnRh
bFNjcm9sbGJhcih0cnVlKTsKIAogICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayogaFNjcm9sbGJh
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4oaG9yaXpvbnRhbFNj
cm9sbGJhcigpKTsKICAgICBoU2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50KG1faG9yaXpvbnRh
bEFkanVzdG1lbnQuZ2V0KCkpOwogCi0gICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiB2U2Nyb2xs
YmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPih2ZXJ0aWNhbFNj
cm9sbGJhcigpKTsKLSAgICB2U2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50KG1fdmVydGljYWxB
ZGp1c3RtZW50LmdldCgpKTsKKyAgICBpZiAoIW1faG9yaXpvbnRhbEFkanVzdG1lbnQpCisgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFdlIHVzZWQgdG8gcmVzZXQgZXZlcnl0aGluZyB0byAwIGhl
cmUsIGJ1dCB3aGVuIHBhZ2UgY2FjaGUKICAgICAvLyBpcyBlbmFibGVkIHdlIHJldXNlIEZyYW1l
Vmlld3MgdGhhdCBhcmUgY2FjaGVkLiBTaW5jZSB0aGVpcgpAQCAtMTI3LDcgKzEwOSw2IEBAIHZv
aWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3Rr
QWRqdXN0bWVudCogdmFkaiwgYm9vCiAgICAgLy8gc2V0IGluIHRoZSBub3JtYWwgY2FzZSksIHdl
IG1ha2Ugc3VyZSB0aGV5IGFyZSB1cC10by1kYXRlCiAgICAgLy8gaGVyZS4gVGhpcyBpcyBuZWVk
ZWQgZm9yIHRoZSBwYXJlbnQgc2Nyb2xsaW5nIHdpZGdldCB0byBiZQogICAgIC8vIGFibGUgdG8g
cmVwb3J0IGNvcnJlY3QgdmFsdWVzLgotCiAgICAgaW50IGhvcml6b250YWxQYWdlU3RlcCA9IG1h
eChtYXg8aW50PihmcmFtZVJlY3QoKS53aWR0aCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRv
U3RlcFdoZW5QYWdpbmcoKSwgZnJhbWVSZWN0KCkud2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4T3Zl
cmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY29uZmlndXJlKG1f
aG9yaXpvbnRhbEFkanVzdG1lbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCksIDAsCkBAIC0xMzUsMTQg
KzExNiw1MiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKEd0a0FkanVzdG1l
bnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGosIGJvbwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IGhvcml6b250
YWxQYWdlU3RlcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAw
IDogZnJhbWVSZWN0KCkud2lkdGgoKSk7Cit9CiAKLSAgICBpbnQgdmVydGljYWxQYWdlU3RlcCA9
IG1heChtYXg8aW50PihmcmFtZVJlY3QoKS5oZWlnaHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rp
b25Ub1N0ZXBXaGVuUGFnaW5nKCksIGZyYW1lUmVjdCgpLmhlaWdodCgpIC0gU2Nyb2xsYmFyOjpt
YXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0VmVydGlj
YWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIHZhZGosIGJvb2wgcmVzZXRWYWx1ZXMpCit7Cisg
ICAgQVNTRVJUKCFwYXJlbnQoKSB8fCAhdmFkaik7CisgICAgaWYgKHBhcmVudCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7CisKKyAgICBpZiAo
IW1fdmVydGljYWxBZGp1c3RtZW50KSB7CisgICAgICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayog
dlNjcm9sbGJhciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4odmVy
dGljYWxTY3JvbGxiYXIoKSk7CisgICAgICAgIGlmICh2U2Nyb2xsYmFyKQorICAgICAgICAgICAg
dlNjcm9sbGJhci0+ZGV0YWNoQWRqdXN0bWVudCgpOworICAgIH0KKworICAgIC8vIFdlIG1heSBi
ZSBsYWNraW5nIHNjcm9sbGJhcnMgd2hlbiByZXR1cm5pbmcgdG8gYSBjYWNoZWQKKyAgICAvLyBw
YWdlLCB0aGlzIGtpY2tzIHRoZSBwYWdlIHRvIHJlY3JlYXRlIHRoZSBzY3JvbGxiYXJzLgorICAg
IHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOworCisgICAgTWFpbkZyYW1lU2Nyb2xsYmFy
R3RrKiB2U2Nyb2xsYmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsq
Pih2ZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICB2U2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50
KG1fdmVydGljYWxBZGp1c3RtZW50LmdldCgpKTsKKworICAgIGlmICghbV92ZXJ0aWNhbEFkanVz
dG1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHVzZWQgdG8gcmVzZXQgZXZlcnl0
aGluZyB0byAwIGhlcmUsIGJ1dCB3aGVuIHBhZ2UgY2FjaGUKKyAgICAvLyBpcyBlbmFibGVkIHdl
IHJldXNlIEZyYW1lVmlld3MgdGhhdCBhcmUgY2FjaGVkLiBTaW5jZSB0aGVpcgorICAgIC8vIHNp
emUgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSB3aGVuIGJlaW5nIHJlc3RvcmVkLCAod2hpY2ggaXMK
KyAgICAvLyB3aGF0IHdvdWxkIGNhdXNlIHRoZSB1cHBlciBsaW1pdCBpbiB0aGUgYWRqdXNtZW50
cyB0byBiZQorICAgIC8vIHNldCBpbiB0aGUgbm9ybWFsIGNhc2UpLCB3ZSBtYWtlIHN1cmUgdGhl
eSBhcmUgdXAtdG8tZGF0ZQorICAgIC8vIGhlcmUuIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgcGFy
ZW50IHNjcm9sbGluZyB3aWRnZXQgdG8gYmUKKyAgICAvLyBhYmxlIHRvIHJlcG9ydCBjb3JyZWN0
IHZhbHVlcy4KKyAgICBpbnQgdmVydGljYWxQYWdlU3RlcCA9IG1heChtYXg8aW50PihmcmFtZVJl
Y3QoKS53aWR0aCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwg
ZnJhbWVSZWN0KCkud2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygp
KSwgMSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY29uZmlndXJlKG1fdmVydGljYWxBZGp1c3RtZW50
LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBz
Y3JvbGxPZmZzZXQoKS5oZWlnaHQoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzZXRWYWx1ZXMgPyAwIDogY29udGVudHNTaXplKCkuaGVpZ2h0KCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCks
IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IGNvbnRl
bnRzU2l6ZSgpLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFs
dWVzID8gMCA6IFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogdmVydGljYWxQYWdlU3RlcCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkuaGVp
Z2h0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBm
cmFtZVJlY3QoKS53aWR0aCgpKTsKK30KKwordm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqLCBib29sIHJlc2V0
VmFsdWVzKQoreworICAgIHNldEhvcml6b250YWxBZGp1c3RtZW50KGhhZGosIHJlc2V0VmFsdWVz
KTsKKyAgICBzZXRWZXJ0aWNhbEFkanVzdG1lbnQodmFkaiwgcmVzZXRWYWx1ZXMpOwogfQogCiB2
b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtQWRkQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDEz
MDc2Ni4uMWFmNDUyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0yNCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2Ug
aW4gR1RLKyAzLngKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ4MjAyCisKKyAgICAgICAgVXNlIHRoZSBuZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2Ug
d2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCisgICAgICAgIDMueC4KKworICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfaGFk
anVzdG1lbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF92YWRqdXN0bWVudCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hhZGp1c3RtZW50KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19nZXRfdmFkanVzdG1lbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dl
dF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKwogMjAxMC0xMC0yMiAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJs
c3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggZjVkMGVmNi4uYWI5M2Iw
OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE5NiwxMiArMTk2LDIzIEBA
IGVudW0gewogICAgIFBST1BfQ1VTVE9NX0VOQ09ESU5HLAogICAgIFBST1BfSUNPTl9VUkksCiAg
ICAgUFJPUF9JTV9DT05URVhULAorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAgUFJPUF9W
SUVXX01PREUKKyNlbHNlCisgICAgUFJPUF9WSUVXX01PREUsCisgICAgUFJPUF9IQURKVVNUTUVO
VCwKKyAgICBQUk9QX1ZBREpVU1RNRU5UCisjZW5kaWYKIH07CiAKIHN0YXRpYyBndWludCB3ZWJr
aXRfd2ViX3ZpZXdfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKKyNpZmRlZiBHVEtf
QVBJX1ZFUlNJT05fMgogR19ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3LCB3ZWJraXRfd2ViX3Zp
ZXcsIEdUS19UWVBFX0NPTlRBSU5FUikKKyNlbHNlCitHX0RFRklORV9UWVBFX1dJVEhfQ09ERShX
ZWJLaXRXZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXcsIEdUS19UWVBFX0NPTlRBSU5FUiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShHVEtfVFlQRV9TQ1JPTExB
QkxFLCBOVUxMKSkKKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGlu
Z3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1BhcmFtU3BlYyogcHNw
ZWMsIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOwogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViV2lu
ZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKQEAgLTM4NSw2ICszOTYsNDIgQEAgc3Rh
dGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIoR3RrV2lkZ2V0
KiB3aWRnZXQpCiAgICAgcmV0dXJuIHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVu
dV9ldmVudChXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSwgZXZlbnQpOwogfQogCisjaWZuZGVmIEdU
S19BUElfVkVSU0lPTl8yCitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2hhZGp1c3Rt
ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a0FkanVzdG1lbnQqIGhhZGopCit7CisgICAg
aWYgKCFjb3JlKHdlYlZpZXcpKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJWaWV3LT5wcml2
LT5ob3Jpem9udGFsQWRqdXN0bWVudCA9IGhhZGo7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29y
ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpLT52aWV3KCk7CisgICAg
aWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAgdmlldy0+c2V0SG9yaXpvbnRhbEFkanVz
dG1lbnQoaGFkaik7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfdmFkanVz
dG1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogdmFkaikKK3sKKyAg
ICBpZiAoIWNvcmUod2ViVmlldykpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlZpZXctPnBy
aXYtPnZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29y
ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpLT52aWV3KCk7CisgICAg
aWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisgICAgdmlldy0+c2V0VmVydGljYWxBZGp1c3Rt
ZW50KHZhZGopOworfQorCitzdGF0aWMgR3RrQWRqdXN0bWVudCogd2Via2l0X3dlYl92aWV3X2dl
dF9oYWRqdXN0bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIHJldHVybiB3ZWJW
aWV3LT5wcml2LT5ob3Jpem9udGFsQWRqdXN0bWVudC5nZXQoKTsKK30KKworc3RhdGljIEd0a0Fk
anVzdG1lbnQqIHdlYmtpdF93ZWJfdmlld19nZXRfdmFkanVzdG1lbnQoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKK3sKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dmVydGljYWxBZGp1c3RtZW50
LmdldCgpOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFy
YW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKG9iamVjdCk7CkBAIC00NDQsNiArNDkxLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfdmlld19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFs
dWUqCiAgICAgY2FzZSBQUk9QX1ZJRVdfTU9ERToKICAgICAgICAgZ192YWx1ZV9zZXRfZW51bSh2
YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF92aWV3X21vZGUod2ViVmlldykpOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBST1BfSEFESlVTVE1FTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9oYWRqdXN0bWVudCh3ZWJWaWV3KSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9WQURKVVNUTUVOVDoKKyAgICAgICAgZ192YWx1
ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZhZGp1c3RtZW50KHdlYlZp
ZXcpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FS
Tl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgIH0KQEAg
LTQ3OCw2ICs1MzEsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9wcm9wZXJ0
eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEcKICAgICBjYXNlIFBST1Bf
VklFV19NT0RFOgogICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfbW9kZSh3ZWJWaWV3
LCBzdGF0aWNfY2FzdDxXZWJLaXRXZWJWaWV3Vmlld01vZGU+KGdfdmFsdWVfZ2V0X2VudW0odmFs
dWUpKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9IQURKVVNUTUVOVDoKKyAgICAg
ICAgd2Via2l0X3dlYl92aWV3X3NldF9oYWRqdXN0bWVudCh3ZWJWaWV3LCBzdGF0aWNfY2FzdDxH
dGtBZGp1c3RtZW50Kj4oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBST1BfVkFESlVTVE1FTlQ6CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19z
ZXRfdmFkanVzdG1lbnQod2ViVmlldywgc3RhdGljX2Nhc3Q8R3RrQWRqdXN0bWVudCo+KGdfdmFs
dWVfZ2V0X29iamVjdCh2YWx1ZSkpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOwogICAgIH0KQEAgLTkwOCw2ICs5NjcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfcmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBndGtfaW1fY29udGV4dF9zZXRf
Y2xpZW50X3dpbmRvdyhwcml2LT5pbUNvbnRleHQuZ2V0KCksIHdpbmRvdyk7CiB9CiAKKyNpZmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3Jv
bGxfYWRqdXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogaGFk
aiwgR3RrQWRqdXN0bWVudCogdmFkaikKIHsKICAgICBpZiAoIWNvcmUod2ViVmlldykpCkBAIC05
MjEsNiArOTgxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3JvbGxfYWRq
dXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWQKICAgICAgICAgcmV0dXJuOwog
ICAgIHZpZXctPnNldEd0a0FkanVzdG1lbnRzKGhhZGosIHZhZGopOwogfQorI2VuZGlmCiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jb250YWluZXJfYWRkKEd0a0NvbnRhaW5lciogY29u
dGFpbmVyLCBHdGtXaWRnZXQqIHdpZGdldCkKIHsKQEAgLTI1MjUsNiArMjU4Niw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2Vi
Vmlld0NsYXNzKQogICAgIC8qCiAgICAgICogbWFrZSB1cyBzY3JvbGxhYmxlIChlLmcuIGFkZGFi
bGUgdG8gYSBHdGtTY3JvbGxlZFdpbmRvdykKICAgICAgKi8KKyNpZmRlZiBHVEtfQVBJX1ZFUlNJ
T05fMgogICAgIHdlYlZpZXdDbGFzcy0+c2V0X3Njcm9sbF9hZGp1c3RtZW50cyA9IHdlYmtpdF93
ZWJfdmlld19zZXRfc2Nyb2xsX2FkanVzdG1lbnRzOwogICAgIEdUS19XSURHRVRfQ0xBU1Mod2Vi
Vmlld0NsYXNzKS0+c2V0X3Njcm9sbF9hZGp1c3RtZW50c19zaWduYWwgPSBnX3NpZ25hbF9uZXco
InNldC1zY3JvbGwtYWRqdXN0bWVudHMiLAogICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
d2ViVmlld0NsYXNzKSwKQEAgLTI1MzQsNiArMjU5NiwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAg
ICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCiAgICAgICAgICAg
ICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdUS19UWVBFX0FESlVTVE1FTlQsIEdUS19U
WVBFX0FESlVTVE1FTlQpOworI2Vsc2UKKyAgICBnX29iamVjdF9jbGFzc19vdmVycmlkZV9wcm9w
ZXJ0eShvYmplY3RDbGFzcywgUFJPUF9IQURKVVNUTUVOVCwgImhhZGp1c3RtZW50Iik7CisgICAg
Z19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVkFESlVT
VE1FTlQsICJ2YWRqdXN0bWVudCIpOworI2VuZGlmCiAKICAgICAvKgogICAgICAqIEtleSBiaW5k
aW5ncwotLSAKMS43LjIuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71674</attachid>
            <date>2010-10-24 01:29:21 -0700</date>
            <delta_ts>2010-10-26 00:05:49 -0700</delta_ts>
            <desc>scrollable.diff</desc>
            <filename>scrollable.diff</filename>
            <type>text/plain</type>
            <size>14967</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmMmYzNjc3ZmJhNjc5YWUwZjhlOWIzMDJlOGI3YTg0NTcxNzM0ZWYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBT
dW4sIDI0IE9jdCAyMDEwIDE3OjE3OjU2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Ny
b2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVGhlIG5ldyBHdGtTY3JvbGxhYmxl
IEFQSSBzZXRzIHRoZSBhZGp1c3RtZW50cyBpbmRpdmlkdWFsbHksIHNvCiAgICAgICAgYWRqdXN0
IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCgogICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5o
OgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgogICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8g
c2V0IHRoZSBob3Jpem9udGFsIGFkanVzdG1lbnQuCiAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnNldFZlcnRpY2FsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8gc2V0IHRoZSB2ZXJ0aWNh
bCBhZGp1c3RtZW50LgogICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRob2RzLgoKV2ViS2l0
L2d0azoKCjIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcg
R3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVXNlIHRoZSBuZXcgR3Rr
U2Nyb2xsYWJsZSBpbnRlcmZhY2Ugd2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCiAgICAgICAg
My54LgoKICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKICAgICAgICAod2Via2l0
X3dlYl92aWV3X3NldF9oYWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRf
dmFkanVzdG1lbnQpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hhZGp1c3RtZW50KToK
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF92YWRqdXN0bWVudCk6CiAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgogICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3By
b3BlcnR5KToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotLS0KIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaCAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgfCAgIDcxICsrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysr
KysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgIHwgICA3MCArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRp
b25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjNGQwNjUuLjcwZDFkNTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTAtMTAtMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFBvcnQgdG8gbmV3IEd0
a1Njcm9sbGFibGUgaW50ZXJmYWNlIGluIEdUSysgMy54CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODIwMgorCisgICAgICAgIFRoZSBuZXcgR3RrU2Ny
b2xsYWJsZSBBUEkgc2V0cyB0aGUgYWRqdXN0bWVudHMgaW5kaXZpZHVhbGx5LCBzbworICAgICAg
ICBhZGp1c3QgdGhlIGNvZGUgZm9yIHRoaXMgZmFjdC4KKworICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6IG5l
dyBtZXRob2QgdG8gc2V0IHRoZSBob3Jpem9udGFsIGFkanVzdG1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRWZXJ0aWNhbEFkanVzdG1lbnQpOiBuZXcgbWV0aG9kIHRvIHNl
dCB0aGUgdmVydGljYWwgYWRqdXN0bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnNldEd0a0FkanVzdG1lbnRzKTogbWFrZSB0aGlzIGp1c3QgY2FsbCB0aGUgb3RoZXIgdHdvIG1l
dGhvZHMuCisKIDIwMTAtMTAtMjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDIz
ZjQ4Y2EuLjFkODM1MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0zMzksNiArMzM5LDggQEAg
cHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspCiBwdWJsaWM6CiAgICAgdm9pZCBzZXRHdGtBZGp1
c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqLCBib29sIHJl
c2V0VmFsdWVzID0gdHJ1ZSk7CisgICAgdm9pZCBzZXRIb3Jpem9udGFsQWRqdXN0bWVudChHdGtB
ZGp1c3RtZW50KiBoYWRqLCBib29sIHJlc2V0VmFsdWVzID0gdHJ1ZSk7CisgICAgdm9pZCBzZXRW
ZXJ0aWNhbEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNldFZhbHVlcyA9
IHRydWUpOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUmIG9mZnNldCkg
eyBtX3Njcm9sbE9mZnNldCA9IG9mZnNldDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCBlYmNkYWExLi44OTFlZWUwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtNzgsNDcgKzc4LDI5IEBAIFBhc3NSZWZQdHI8
U2Nyb2xsYmFyPiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpCiAgICAgcmV0dXJuIE1haW5GcmFtZVNjcm9sbGJhckd0azo6Y3JlYXRlKHRo
aXMsIG9yaWVudGF0aW9uLCBtX3ZlcnRpY2FsQWRqdXN0bWVudC5nZXQoKSk7CiB9CiAKLS8qCi0g
KiBUaGUgZm9sbG93aW5nIGlzIGFzc3VtZWQ6Ci0gKiAgIChoYWRqICYmIHZhZGopIHx8ICghaGFk
aiAmJiAhdmFkaikKLSAqLwotdm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtB
ZGp1c3RtZW50KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqLCBib29sIHJlc2V0VmFsdWVzKQor
dm9pZCBTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudChHdGtBZGp1c3RtZW50KiBo
YWRqLCBib29sIHJlc2V0VmFsdWVzKQogewotICAgIEFTU0VSVCghaGFkaiA9PSAhdmFkaik7Ci0K
LSAgICAvLyBJZiB0aGlzIGlzIGEgbm9uLW1haW4gZnJhbWUgU2Nyb2xsVmlldywgd2UgZG8gbm90
IHdhbnQgdG8gc2V0IHRoZQotICAgIC8vIG1faG9yaXpvbnRhbEFkanVzdG1lbnRzICYgbV92ZXJ0
aWNhbEFkanVzdG1lbnRzIG1lbWJlcnMuIEF0IHRoZSBzYW1lCi0gICAgLy8gdGltZSB3ZSB3YW50
IHRvIHRvIGFsbG93IEZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB0byBjYWxsIAotICAgIC8vIFNj
cm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKDAsIDApIHVuY29uZGl0aW9uYWxseS4KICAgICBB
U1NFUlQoIXBhcmVudCgpIHx8ICFoYWRqKTsKICAgICBpZiAocGFyZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQgPSBoYWRqOwotICAgIG1fdmVydGlj
YWxBZGp1c3RtZW50ID0gdmFkajsKIAogICAgIGlmICghbV9ob3Jpem9udGFsQWRqdXN0bWVudCkg
ewogICAgICAgICBNYWluRnJhbWVTY3JvbGxiYXJHdGsqIGhTY3JvbGxiYXIgPSByZWludGVycHJl
dF9jYXN0PE1haW5GcmFtZVNjcm9sbGJhckd0ayo+KGhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAg
ICAgICAgIGlmIChoU2Nyb2xsYmFyKQogICAgICAgICAgICAgaFNjcm9sbGJhci0+ZGV0YWNoQWRq
dXN0bWVudCgpOwotCi0gICAgICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayogdlNjcm9sbGJhciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4odmVydGljYWxTY3JvbGxi
YXIoKSk7Ci0gICAgICAgIGlmICh2U2Nyb2xsYmFyKQotICAgICAgICAgICAgdlNjcm9sbGJhci0+
ZGV0YWNoQWRqdXN0bWVudCgpOwotCi0gICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBX
ZSBtYXkgYmUgbGFja2luZyBzY3JvbGxiYXJzIHdoZW4gcmV0dXJuaW5nIHRvIGEgY2FjaGVkCiAg
ICAgLy8gcGFnZSwgdGhpcyBraWNrcyB0aGUgcGFnZSB0byByZWNyZWF0ZSB0aGUgc2Nyb2xsYmFy
cy4KLSAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcih0cnVlKTsKICAgICBzZXRIYXNIb3Jpem9u
dGFsU2Nyb2xsYmFyKHRydWUpOwogCiAgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiBoU2Nyb2xs
YmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPihob3Jpem9udGFs
U2Nyb2xsYmFyKCkpOwogICAgIGhTY3JvbGxiYXItPmF0dGFjaEFkanVzdG1lbnQobV9ob3Jpem9u
dGFsQWRqdXN0bWVudC5nZXQoKSk7CiAKLSAgICBNYWluRnJhbWVTY3JvbGxiYXJHdGsqIHZTY3Jv
bGxiYXIgPSByZWludGVycHJldF9jYXN0PE1haW5GcmFtZVNjcm9sbGJhckd0ayo+KHZlcnRpY2Fs
U2Nyb2xsYmFyKCkpOwotICAgIHZTY3JvbGxiYXItPmF0dGFjaEFkanVzdG1lbnQobV92ZXJ0aWNh
bEFkanVzdG1lbnQuZ2V0KCkpOworICAgIGlmICghbV9ob3Jpem9udGFsQWRqdXN0bWVudCkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2UgdXNlZCB0byByZXNldCBldmVyeXRoaW5nIHRvIDAg
aGVyZSwgYnV0IHdoZW4gcGFnZSBjYWNoZQogICAgIC8vIGlzIGVuYWJsZWQgd2UgcmV1c2UgRnJh
bWVWaWV3cyB0aGF0IGFyZSBjYWNoZWQuIFNpbmNlIHRoZWlyCkBAIC0xMjcsNyArMTA5LDYgQEAg
dm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBH
dGtBZGp1c3RtZW50KiB2YWRqLCBib28KICAgICAvLyBzZXQgaW4gdGhlIG5vcm1hbCBjYXNlKSwg
d2UgbWFrZSBzdXJlIHRoZXkgYXJlIHVwLXRvLWRhdGUKICAgICAvLyBoZXJlLiBUaGlzIGlzIG5l
ZWRlZCBmb3IgdGhlIHBhcmVudCBzY3JvbGxpbmcgd2lkZ2V0IHRvIGJlCiAgICAgLy8gYWJsZSB0
byByZXBvcnQgY29ycmVjdCB2YWx1ZXMuCi0KICAgICBpbnQgaG9yaXpvbnRhbFBhZ2VTdGVwID0g
bWF4KG1heDxpbnQ+KGZyYW1lUmVjdCgpLndpZHRoKCkgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9u
VG9TdGVwV2hlblBhZ2luZygpLCBmcmFtZVJlY3QoKS53aWR0aCgpIC0gU2Nyb2xsYmFyOjptYXhP
dmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKICAgICBndGtfYWRqdXN0bWVudF9jb25maWd1cmUo
bV9ob3Jpem9udGFsQWRqdXN0bWVudC5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzZXRWYWx1ZXMgPyAwIDogc2Nyb2xsT2Zmc2V0KCkud2lkdGgoKSwgMCwKQEAgLTEzNSwx
NCArMTE2LDUyIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0
bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAo
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogaG9yaXpv
bnRhbFBhZ2VTdGVwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/
IDAgOiBmcmFtZVJlY3QoKS53aWR0aCgpKTsKK30KIAotICAgIGludCB2ZXJ0aWNhbFBhZ2VTdGVw
ID0gbWF4KG1heDxpbnQ+KGZyYW1lUmVjdCgpLmhlaWdodCgpICogU2Nyb2xsYmFyOjptaW5GcmFj
dGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgZnJhbWVSZWN0KCkuaGVpZ2h0KCkgLSBTY3JvbGxiYXI6
Om1heE92ZXJsYXBCZXR3ZWVuUGFnZXMoKSksIDEpOwordm9pZCBTY3JvbGxWaWV3OjpzZXRWZXJ0
aWNhbEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNldFZhbHVlcykKK3sK
KyAgICBBU1NFUlQoIXBhcmVudCgpIHx8ICF2YWRqKTsKKyAgICBpZiAocGFyZW50KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fdmVydGljYWxBZGp1c3RtZW50ID0gdmFkajsKKworICAgIGlm
ICghbV92ZXJ0aWNhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3Rr
KiB2U2Nyb2xsYmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPih2
ZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICAgICAgaWYgKHZTY3JvbGxiYXIpCisgICAgICAgICAg
ICB2U2Nyb2xsYmFyLT5kZXRhY2hBZGp1c3RtZW50KCk7CisgICAgfQorCisgICAgLy8gV2UgbWF5
IGJlIGxhY2tpbmcgc2Nyb2xsYmFycyB3aGVuIHJldHVybmluZyB0byBhIGNhY2hlZAorICAgIC8v
IHBhZ2UsIHRoaXMga2lja3MgdGhlIHBhZ2UgdG8gcmVjcmVhdGUgdGhlIHNjcm9sbGJhcnMuCisg
ICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7CisKKyAgICBNYWluRnJhbWVTY3JvbGxi
YXJHdGsqIHZTY3JvbGxiYXIgPSByZWludGVycHJldF9jYXN0PE1haW5GcmFtZVNjcm9sbGJhckd0
ayo+KHZlcnRpY2FsU2Nyb2xsYmFyKCkpOworICAgIHZTY3JvbGxiYXItPmF0dGFjaEFkanVzdG1l
bnQobV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCkpOworCisgICAgaWYgKCFtX3ZlcnRpY2FsQWRq
dXN0bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgdXNlZCB0byByZXNldCBldmVy
eXRoaW5nIHRvIDAgaGVyZSwgYnV0IHdoZW4gcGFnZSBjYWNoZQorICAgIC8vIGlzIGVuYWJsZWQg
d2UgcmV1c2UgRnJhbWVWaWV3cyB0aGF0IGFyZSBjYWNoZWQuIFNpbmNlIHRoZWlyCisgICAgLy8g
c2l6ZSBpcyBub3QgZ29pbmcgdG8gY2hhbmdlIHdoZW4gYmVpbmcgcmVzdG9yZWQsICh3aGljaCBp
cworICAgIC8vIHdoYXQgd291bGQgY2F1c2UgdGhlIHVwcGVyIGxpbWl0IGluIHRoZSBhZGp1c21l
bnRzIHRvIGJlCisgICAgLy8gc2V0IGluIHRoZSBub3JtYWwgY2FzZSksIHdlIG1ha2Ugc3VyZSB0
aGV5IGFyZSB1cC10by1kYXRlCisgICAgLy8gaGVyZS4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBw
YXJlbnQgc2Nyb2xsaW5nIHdpZGdldCB0byBiZQorICAgIC8vIGFibGUgdG8gcmVwb3J0IGNvcnJl
Y3QgdmFsdWVzLgorICAgIGludCB2ZXJ0aWNhbFBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGZyYW1l
UmVjdCgpLndpZHRoKCkgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygp
LCBmcmFtZVJlY3QoKS53aWR0aCgpIC0gU2Nyb2xsYmFyOjptYXhPdmVybGFwQmV0d2VlblBhZ2Vz
KCkpLCAxKTsKICAgICBndGtfYWRqdXN0bWVudF9jb25maWd1cmUobV92ZXJ0aWNhbEFkanVzdG1l
bnQuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6
IHNjcm9sbE9mZnNldCgpLmhlaWdodCgpLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNldFZhbHVlcyA/IDAgOiBjb250ZW50c1NpemUoKS5oZWlnaHQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogc2Nyb2xsT2Zmc2V0KCkud2lkdGgo
KSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogY29u
dGVudHNTaXplKCkud2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRW
YWx1ZXMgPyAwIDogU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiB2ZXJ0aWNhbFBhZ2VTdGVwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBmcmFtZVJlY3QoKS5o
ZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6
IGZyYW1lUmVjdCgpLndpZHRoKCkpOworfQorCit2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVz
dG1lbnRzKEd0a0FkanVzdG1lbnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGosIGJvb2wgcmVz
ZXRWYWx1ZXMpCit7CisgICAgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoaGFkaiwgcmVzZXRWYWx1
ZXMpOworICAgIHNldFZlcnRpY2FsQWRqdXN0bWVudCh2YWRqLCByZXNldFZhbHVlcyk7CiB9CiAK
IHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1BZGRDaGlsZChXaWRnZXQqIGNoaWxkKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBk
MTMwNzY2Li4xYWY0NTI5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTEwLTI0ICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbR1RLXSBQb3J0IHRvIG5ldyBHdGtTY3JvbGxhYmxlIGludGVyZmFj
ZSBpbiBHVEsrIDMueAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDgyMDIKKworICAgICAgICBVc2UgdGhlIG5ldyBHdGtTY3JvbGxhYmxlIGludGVyZmFj
ZSB3aGVuIGNvbXBpbGluZyBhZ2FpbnN0IEdUSysKKyAgICAgICAgMy54LgorCisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9o
YWRqdXN0bWVudCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZhZGp1c3RtZW50KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfaGFkanVzdG1lbnQpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2dldF92YWRqdXN0bWVudCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfcHJvcGVydHkpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorCiAyMDEwLTEwLTIyICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCBmNWQwZWY2Li5iZDQz
OTcyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTk2LDEyICsxOTYsMjMg
QEAgZW51bSB7CiAgICAgUFJPUF9DVVNUT01fRU5DT0RJTkcsCiAgICAgUFJPUF9JQ09OX1VSSSwK
ICAgICBQUk9QX0lNX0NPTlRFWFQsCisjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAgICBQUk9Q
X1ZJRVdfTU9ERQorI2Vsc2UKKyAgICBQUk9QX1ZJRVdfTU9ERSwKKyAgICBQUk9QX0hBREpVU1RN
RU5ULAorICAgIFBST1BfVkFESlVTVE1FTlQKKyNlbmRpZgogfTsKIAogc3RhdGljIGd1aW50IHdl
YmtpdF93ZWJfdmlld19zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAorI2lmZGVmIEdU
S19BUElfVkVSU0lPTl8yCiBHX0RFRklORV9UWVBFKFdlYktpdFdlYlZpZXcsIHdlYmtpdF93ZWJf
dmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQorI2Vsc2UKK0dfREVGSU5FX1RZUEVfV0lUSF9DT0RF
KFdlYktpdFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSLAorICAg
ICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKEdUS19UWVBFX1NDUk9M
TEFCTEUsIE5VTEwpKQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXR0
aW5nc19ub3RpZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzLCBHUGFyYW1TcGVjKiBw
c3BlYywgV2ViS2l0V2ViVmlldyogd2ViVmlldyk7CiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfc2V0X3dpbmRvd19mZWF0dXJlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJX
aW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVyZXMpOwpAQCAtMzg1LDYgKzM5Niw0MiBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3BvcHVwX21lbnVfaGFuZGxlcihHdGtXaWRn
ZXQqIHdpZGdldCkKICAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9t
ZW51X2V2ZW50KFdFQktJVF9XRUJfVklFVyh3aWRnZXQpLCBldmVudCk7CiB9CiAKKyNpZm5kZWYg
R1RLX0FQSV9WRVJTSU9OXzIKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfaGFkanVz
dG1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogaGFkaikKK3sKKyAg
ICBpZiAoIWNvcmUod2ViVmlldykpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlZpZXctPnBy
aXYtPmhvcml6b250YWxBZGp1c3RtZW50ID0gaGFkajsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBj
b3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSktPnZpZXcoKTsKKyAg
ICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICB2aWV3LT5zZXRIb3Jpem9udGFsQWRq
dXN0bWVudChoYWRqKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF92YWRq
dXN0bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtBZGp1c3RtZW50KiB2YWRqKQorewor
ICAgIGlmICghY29yZSh3ZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2ViVmlldy0+
cHJpdi0+dmVydGljYWxBZGp1c3RtZW50ID0gdmFkajsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBj
b3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSktPnZpZXcoKTsKKyAg
ICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICB2aWV3LT5zZXRWZXJ0aWNhbEFkanVz
dG1lbnQodmFkaik7Cit9CisKK3N0YXRpYyBHdGtBZGp1c3RtZW50KiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2hhZGp1c3RtZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgcmV0dXJuIHdl
YlZpZXctPnByaXYtPmhvcml6b250YWxBZGp1c3RtZW50LmdldCgpOworfQorCitzdGF0aWMgR3Rr
QWRqdXN0bWVudCogd2Via2l0X3dlYl92aWV3X2dldF92YWRqdXN0bWVudChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT52ZXJ0aWNhbEFkanVzdG1l
bnQuZ2V0KCk7Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQ
YXJhbVNwZWMqIHBzcGVjKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRf
V0VCX1ZJRVcob2JqZWN0KTsKQEAgLTQ0NCw2ICs0OTEsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdW
YWx1ZSoKICAgICBjYXNlIFBST1BfVklFV19NT0RFOgogICAgICAgICBnX3ZhbHVlX3NldF9lbnVt
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfbW9kZSh3ZWJWaWV3KSk7CiAgICAgICAg
IGJyZWFrOworI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgorICAgIGNhc2UgUFJPUF9IQURKVVNU
TUVOVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2hhZGp1c3RtZW50KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9Q
X1ZBREpVU1RNRU5UOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF93
ZWJfdmlld19nZXRfdmFkanVzdG1lbnQod2ViVmlldykpOworICAgICAgICBicmVhazsKKyNlbmRp
ZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9J
RChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICB9CkBAIC00NzgsNiArNTMzLDE0IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wX2lkLCBjb25zdCBHCiAgICAgY2FzZSBQUk9QX1ZJRVdfTU9ERToKICAgICAgICAg
d2Via2l0X3dlYl92aWV3X3NldF92aWV3X21vZGUod2ViVmlldywgc3RhdGljX2Nhc3Q8V2ViS2l0
V2ViVmlld1ZpZXdNb2RlPihnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKSkpOwogICAgICAgICBicmVh
azsKKyNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKKyAgICBjYXNlIFBST1BfSEFESlVTVE1FTlQ6
CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfaGFkanVzdG1lbnQod2ViVmlldywgc3RhdGlj
X2Nhc3Q8R3RrQWRqdXN0bWVudCo+KGdfdmFsdWVfZ2V0X29iamVjdCh2YWx1ZSkpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1ZBREpVU1RNRU5UOgorICAgICAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3ZhZGp1c3RtZW50KHdlYlZpZXcsIHN0YXRpY19jYXN0PEd0a0FkanVzdG1lbnQq
PihnX3ZhbHVlX2dldF9vYmplY3QodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgIH0KQEAgLTkwOCw2ICs5NzEsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBndGtf
aW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyhwcml2LT5pbUNvbnRleHQuZ2V0KCksIHdpbmRv
dyk7CiB9CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9zY3JvbGxfYWRqdXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3Rr
QWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaikKIHsKICAgICBpZiAoIWNvcmUo
d2ViVmlldykpCkBAIC05MjEsNiArOTg1LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X3NldF9zY3JvbGxfYWRqdXN0bWVudHMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWQKICAg
ICAgICAgcmV0dXJuOwogICAgIHZpZXctPnNldEd0a0FkanVzdG1lbnRzKGhhZGosIHZhZGopOwog
fQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jb250YWluZXJfYWRkKEd0
a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQqIHdpZGdldCkKIHsKQEAgLTI1MjUsNiAr
MjU5MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgIC8qCiAgICAgICogbWFrZSB1cyBzY3JvbGxh
YmxlIChlLmcuIGFkZGFibGUgdG8gYSBHdGtTY3JvbGxlZFdpbmRvdykKICAgICAgKi8KKyNpZmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIHdlYlZpZXdDbGFzcy0+c2V0X3Njcm9sbF9hZGp1c3Rt
ZW50cyA9IHdlYmtpdF93ZWJfdmlld19zZXRfc2Nyb2xsX2FkanVzdG1lbnRzOwogICAgIEdUS19X
SURHRVRfQ0xBU1Mod2ViVmlld0NsYXNzKS0+c2V0X3Njcm9sbF9hZGp1c3RtZW50c19zaWduYWwg
PSBnX3NpZ25hbF9uZXcoInNldC1zY3JvbGwtYWRqdXN0bWVudHMiLAogICAgICAgICAgICAgR19U
WVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKQEAgLTI1MzQsNiArMjYwMCwxMCBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdl
YlZpZXdDbGFzcykKICAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpF
Q1QsCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdUS19UWVBFX0FE
SlVTVE1FTlQsIEdUS19UWVBFX0FESlVTVE1FTlQpOworI2Vsc2UKKyAgICBnX29iamVjdF9jbGFz
c19vdmVycmlkZV9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9IQURKVVNUTUVOVCwgImhhZGp1
c3RtZW50Iik7CisgICAgZ19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHkob2JqZWN0Q2xh
c3MsIFBST1BfVkFESlVTVE1FTlQsICJ2YWRqdXN0bWVudCIpOworI2VuZGlmCiAKICAgICAvKgog
ICAgICAqIEtleSBiaW5kaW5ncwotLSAKMS43LjIuMwoK
</data>
<flag name="review"
          id="61777"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71842</attachid>
            <date>2010-10-26 00:05:49 -0700</date>
            <delta_ts>2010-10-26 01:40:36 -0700</delta_ts>
            <desc>scrollable.diff</desc>
            <filename>scrollable.diff</filename>
            <type>text/plain</type>
            <size>14773</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2NjNmYTg0YzZkNzc1Y2VmMzlkZTcxNmNkZDRjYWFhZWYwNTUxMGYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBT
dW4sIDI0IE9jdCAyMDEwIDE3OjE3OjU2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMTAtMTAtMjUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcgR3RrU2Ny
b2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVGhlIG5ldyBHdGtTY3JvbGxhYmxl
IEFQSSBzZXRzIHRoZSBhZGp1c3RtZW50cyBpbmRpdmlkdWFsbHksIHNvCiAgICAgICAgYWRqdXN0
IHRoZSBjb2RlIGZvciB0aGlzIGZhY3QuCgogICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5o
OgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgogICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8g
c2V0IHRoZSBob3Jpem9udGFsIGFkanVzdG1lbnQuCiAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnNldFZlcnRpY2FsQWRqdXN0bWVudCk6IG5ldyBtZXRob2QgdG8gc2V0IHRoZSB2ZXJ0aWNh
bCBhZGp1c3RtZW50LgogICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6IG1ha2UgdGhpcyBqdXN0IGNhbGwgdGhlIG90aGVyIHR3byBtZXRob2RzLgoKV2ViS2l0
L2d0azoKCjIwMTAtMTAtMjUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gUG9ydCB0byBuZXcg
R3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyMDIKCiAgICAgICAgVXNlIHRoZSBuZXcgR3Rr
U2Nyb2xsYWJsZSBpbnRlcmZhY2Ugd2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCiAgICAgICAg
My54LgoKICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKICAgICAgICAoc2V0SG9y
aXpvbnRhbEFkanVzdG1lbnQpOgogICAgICAgIChzZXRWZXJ0aWNhbEFkanVzdG1lbnQpOgogICAg
ICAgIChnZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6CiAgICAgICAgKGdldFZlcnRpY2FsQWRqdXN0
bWVudCk6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgogICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KToKICAgICAgICAod2Via2l0X3dlYl92aWV3X2Ns
YXNzX2luaXQpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxNiArKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCAgICAgICAgICB8ICAg
IDIgKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgfCAgIDcxICsrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICB8ICAgMTkgKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwICAgIHwgICA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMg
Y2hhbmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU0YmZlOC4uZmEw
MWEyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMC0yNSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W0dUS10gUG9ydCB0byBuZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MjAyCisKKyAg
ICAgICAgVGhlIG5ldyBHdGtTY3JvbGxhYmxlIEFQSSBzZXRzIHRoZSBhZGp1c3RtZW50cyBpbmRp
dmlkdWFsbHksIHNvCisgICAgICAgIGFkanVzdCB0aGUgY29kZSBmb3IgdGhpcyBmYWN0LgorCisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
Y3JvbGxWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldEhvcml6
b250YWxBZGp1c3RtZW50KTogbmV3IG1ldGhvZCB0byBzZXQgdGhlIGhvcml6b250YWwgYWRqdXN0
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFZlcnRpY2FsQWRqdXN0bWVu
dCk6IG5ldyBtZXRob2QgdG8gc2V0IHRoZSB2ZXJ0aWNhbCBhZGp1c3RtZW50LgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMpOiBtYWtlIHRoaXMganVzdCBj
YWxsIHRoZSBvdGhlciB0d28gbWV0aG9kcy4KKwogMjAxMC0xMC0yNCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaAppbmRleCBlZWY2ZDBiLi44OWYwMzdmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaApAQCAtMzQxLDYgKzM0MSw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogcHVi
bGljOgogICAgIHZvaWQgc2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3Rr
QWRqdXN0bWVudCogdmFkaiwgYm9vbCByZXNldFZhbHVlcyA9IHRydWUpOworICAgIHZvaWQgc2V0
SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudCogaGFkaiwgYm9vbCByZXNldFZhbHVl
cyA9IHRydWUpOworICAgIHZvaWQgc2V0VmVydGljYWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQq
IHZhZGosIGJvb2wgcmVzZXRWYWx1ZXMgPSB0cnVlKTsKICAgICB2b2lkIHNldFNjcm9sbE9mZnNl
dChjb25zdCBJbnRTaXplJiBvZmZzZXQpIHsgbV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggZWJjZGFh
MS4uODkxZWVlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0
ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTc4
LDQ3ICs3OCwyOSBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Ny
b2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aQogICAgIHJldHVybiBNYWluRnJh
bWVTY3JvbGxiYXJHdGs6OmNyZWF0ZSh0aGlzLCBvcmllbnRhdGlvbiwgbV92ZXJ0aWNhbEFkanVz
dG1lbnQuZ2V0KCkpOwogfQogCi0vKgotICogVGhlIGZvbGxvd2luZyBpcyBhc3N1bWVkOgotICog
ICAoaGFkaiAmJiB2YWRqKSB8fCAoIWhhZGogJiYgIXZhZGopCi0gKi8KLXZvaWQgU2Nyb2xsVmll
dzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCog
dmFkaiwgYm9vbCByZXNldFZhbHVlcykKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0SG9yaXpvbnRhbEFk
anVzdG1lbnQoR3RrQWRqdXN0bWVudCogaGFkaiwgYm9vbCByZXNldFZhbHVlcykKIHsKLSAgICBB
U1NFUlQoIWhhZGogPT0gIXZhZGopOwotCi0gICAgLy8gSWYgdGhpcyBpcyBhIG5vbi1tYWluIGZy
YW1lIFNjcm9sbFZpZXcsIHdlIGRvIG5vdCB3YW50IHRvIHNldCB0aGUKLSAgICAvLyBtX2hvcml6
b250YWxBZGp1c3RtZW50cyAmIG1fdmVydGljYWxBZGp1c3RtZW50cyBtZW1iZXJzLiBBdCB0aGUg
c2FtZQotICAgIC8vIHRpbWUgd2Ugd2FudCB0byB0byBhbGxvdyBGcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAgdG8gY2FsbCAKLSAgICAvLyBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cygwLCAw
KSB1bmNvbmRpdGlvbmFsbHkuCiAgICAgQVNTRVJUKCFwYXJlbnQoKSB8fCAhaGFkaik7CiAgICAg
aWYgKHBhcmVudCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2hvcml6b250YWxBZGp1c3Rt
ZW50ID0gaGFkajsKLSAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7CiAKICAgICBpZiAo
IW1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKICAgICAgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3Rr
KiBoU2Nyb2xsYmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPiho
b3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgICAgICBpZiAoaFNjcm9sbGJhcikKICAgICAgICAg
ICAgIGhTY3JvbGxiYXItPmRldGFjaEFkanVzdG1lbnQoKTsKLQotICAgICAgICBNYWluRnJhbWVT
Y3JvbGxiYXJHdGsqIHZTY3JvbGxiYXIgPSByZWludGVycHJldF9jYXN0PE1haW5GcmFtZVNjcm9s
bGJhckd0ayo+KHZlcnRpY2FsU2Nyb2xsYmFyKCkpOwotICAgICAgICBpZiAodlNjcm9sbGJhcikK
LSAgICAgICAgICAgIHZTY3JvbGxiYXItPmRldGFjaEFkanVzdG1lbnQoKTsKLQotICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgLy8gV2UgbWF5IGJlIGxhY2tpbmcgc2Nyb2xsYmFycyB3aGVu
IHJldHVybmluZyB0byBhIGNhY2hlZAogICAgIC8vIHBhZ2UsIHRoaXMga2lja3MgdGhlIHBhZ2Ug
dG8gcmVjcmVhdGUgdGhlIHNjcm9sbGJhcnMuCi0gICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIo
dHJ1ZSk7CiAgICAgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcih0cnVlKTsKIAogICAgIE1haW5G
cmFtZVNjcm9sbGJhckd0ayogaFNjcm9sbGJhciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFpbkZyYW1l
U2Nyb2xsYmFyR3RrKj4oaG9yaXpvbnRhbFNjcm9sbGJhcigpKTsKICAgICBoU2Nyb2xsYmFyLT5h
dHRhY2hBZGp1c3RtZW50KG1faG9yaXpvbnRhbEFkanVzdG1lbnQuZ2V0KCkpOwogCi0gICAgTWFp
bkZyYW1lU2Nyb2xsYmFyR3RrKiB2U2Nyb2xsYmFyID0gcmVpbnRlcnByZXRfY2FzdDxNYWluRnJh
bWVTY3JvbGxiYXJHdGsqPih2ZXJ0aWNhbFNjcm9sbGJhcigpKTsKLSAgICB2U2Nyb2xsYmFyLT5h
dHRhY2hBZGp1c3RtZW50KG1fdmVydGljYWxBZGp1c3RtZW50LmdldCgpKTsKKyAgICBpZiAoIW1f
aG9yaXpvbnRhbEFkanVzdG1lbnQpCisgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdlIHVzZWQg
dG8gcmVzZXQgZXZlcnl0aGluZyB0byAwIGhlcmUsIGJ1dCB3aGVuIHBhZ2UgY2FjaGUKICAgICAv
LyBpcyBlbmFibGVkIHdlIHJldXNlIEZyYW1lVmlld3MgdGhhdCBhcmUgY2FjaGVkLiBTaW5jZSB0
aGVpcgpAQCAtMTI3LDcgKzEwOSw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVu
dHMoR3RrQWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaiwgYm9vCiAgICAgLy8g
c2V0IGluIHRoZSBub3JtYWwgY2FzZSksIHdlIG1ha2Ugc3VyZSB0aGV5IGFyZSB1cC10by1kYXRl
CiAgICAgLy8gaGVyZS4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBwYXJlbnQgc2Nyb2xsaW5nIHdp
ZGdldCB0byBiZQogICAgIC8vIGFibGUgdG8gcmVwb3J0IGNvcnJlY3QgdmFsdWVzLgotCiAgICAg
aW50IGhvcml6b250YWxQYWdlU3RlcCA9IG1heChtYXg8aW50PihmcmFtZVJlY3QoKS53aWR0aCgp
ICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgZnJhbWVSZWN0KCku
d2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CiAgICAg
Z3RrX2FkanVzdG1lbnRfY29uZmlndXJlKG1faG9yaXpvbnRhbEFkanVzdG1lbnQuZ2V0KCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IHNjcm9sbE9mZnNl
dCgpLndpZHRoKCksIDAsCkBAIC0xMzUsMTQgKzExNiw1MiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dEd0a0FkanVzdG1lbnRzKEd0a0FkanVzdG1lbnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGos
IGJvbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBTY3Jv
bGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc2V0VmFsdWVzID8gMCA6IGhvcml6b250YWxQYWdlU3RlcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkud2lkdGgoKSk7Cit9CiAK
LSAgICBpbnQgdmVydGljYWxQYWdlU3RlcCA9IG1heChtYXg8aW50PihmcmFtZVJlY3QoKS5oZWln
aHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCksIGZyYW1lUmVj
dCgpLmhlaWdodCgpIC0gU2Nyb2xsYmFyOjptYXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsK
K3ZvaWQgU2Nyb2xsVmlldzo6c2V0VmVydGljYWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIHZh
ZGosIGJvb2wgcmVzZXRWYWx1ZXMpCit7CisgICAgQVNTRVJUKCFwYXJlbnQoKSB8fCAhdmFkaik7
CisgICAgaWYgKHBhcmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsQWRq
dXN0bWVudCA9IHZhZGo7CisKKyAgICBpZiAoIW1fdmVydGljYWxBZGp1c3RtZW50KSB7CisgICAg
ICAgIE1haW5GcmFtZVNjcm9sbGJhckd0ayogdlNjcm9sbGJhciA9IHJlaW50ZXJwcmV0X2Nhc3Q8
TWFpbkZyYW1lU2Nyb2xsYmFyR3RrKj4odmVydGljYWxTY3JvbGxiYXIoKSk7CisgICAgICAgIGlm
ICh2U2Nyb2xsYmFyKQorICAgICAgICAgICAgdlNjcm9sbGJhci0+ZGV0YWNoQWRqdXN0bWVudCgp
OworICAgIH0KKworICAgIC8vIFdlIG1heSBiZSBsYWNraW5nIHNjcm9sbGJhcnMgd2hlbiByZXR1
cm5pbmcgdG8gYSBjYWNoZWQKKyAgICAvLyBwYWdlLCB0aGlzIGtpY2tzIHRoZSBwYWdlIHRvIHJl
Y3JlYXRlIHRoZSBzY3JvbGxiYXJzLgorICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUp
OworCisgICAgTWFpbkZyYW1lU2Nyb2xsYmFyR3RrKiB2U2Nyb2xsYmFyID0gcmVpbnRlcnByZXRf
Y2FzdDxNYWluRnJhbWVTY3JvbGxiYXJHdGsqPih2ZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICB2
U2Nyb2xsYmFyLT5hdHRhY2hBZGp1c3RtZW50KG1fdmVydGljYWxBZGp1c3RtZW50LmdldCgpKTsK
KworICAgIGlmICghbV92ZXJ0aWNhbEFkanVzdG1lbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFdlIHVzZWQgdG8gcmVzZXQgZXZlcnl0aGluZyB0byAwIGhlcmUsIGJ1dCB3aGVuIHBhZ2Ug
Y2FjaGUKKyAgICAvLyBpcyBlbmFibGVkIHdlIHJldXNlIEZyYW1lVmlld3MgdGhhdCBhcmUgY2Fj
aGVkLiBTaW5jZSB0aGVpcgorICAgIC8vIHNpemUgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSB3aGVu
IGJlaW5nIHJlc3RvcmVkLCAod2hpY2ggaXMKKyAgICAvLyB3aGF0IHdvdWxkIGNhdXNlIHRoZSB1
cHBlciBsaW1pdCBpbiB0aGUgYWRqdXNtZW50cyB0byBiZQorICAgIC8vIHNldCBpbiB0aGUgbm9y
bWFsIGNhc2UpLCB3ZSBtYWtlIHN1cmUgdGhleSBhcmUgdXAtdG8tZGF0ZQorICAgIC8vIGhlcmUu
IFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgcGFyZW50IHNjcm9sbGluZyB3aWRnZXQgdG8gYmUKKyAg
ICAvLyBhYmxlIHRvIHJlcG9ydCBjb3JyZWN0IHZhbHVlcy4KKyAgICBpbnQgdmVydGljYWxQYWdl
U3RlcCA9IG1heChtYXg8aW50PihmcmFtZVJlY3QoKS53aWR0aCgpICogU2Nyb2xsYmFyOjptaW5G
cmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgZnJhbWVSZWN0KCkud2lkdGgoKSAtIFNjcm9sbGJh
cjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CiAgICAgZ3RrX2FkanVzdG1lbnRfY29u
ZmlndXJlKG1fdmVydGljYWxBZGp1c3RtZW50LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBzY3JvbGxPZmZzZXQoKS5oZWlnaHQoKSwgMCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAwIDogY29udGVudHNTaXpl
KCkuaGVpZ2h0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8g
MCA6IHNjcm9sbE9mZnNldCgpLndpZHRoKCksIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc2V0VmFsdWVzID8gMCA6IGNvbnRlbnRzU2l6ZSgpLndpZHRoKCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWVzID8gMCA6IFNjcm9sbGJhcjo6cGl4ZWxzUGVy
TGluZVN0ZXAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZXMgPyAw
IDogdmVydGljYWxQYWdlU3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRW
YWx1ZXMgPyAwIDogZnJhbWVSZWN0KCkuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNldFZhbHVlcyA/IDAgOiBmcmFtZVJlY3QoKS53aWR0aCgpKTsKK30KKwordm9p
ZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtB
ZGp1c3RtZW50KiB2YWRqLCBib29sIHJlc2V0VmFsdWVzKQoreworICAgIHNldEhvcml6b250YWxB
ZGp1c3RtZW50KGhhZGosIHJlc2V0VmFsdWVzKTsKKyAgICBzZXRWZXJ0aWNhbEFkanVzdG1lbnQo
dmFkaiwgcmVzZXRWYWx1ZXMpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtQWRkQ2hp
bGQoV2lkZ2V0KiBjaGlsZCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDEzMDc2Ni4uZjcxMmM0ZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxMC0xMC0yNSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUG9ydCB0byBu
ZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2UgaW4gR1RLKyAzLngKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MjAyCisKKyAgICAgICAgVXNlIHRoZSBu
ZXcgR3RrU2Nyb2xsYWJsZSBpbnRlcmZhY2Ugd2hlbiBjb21waWxpbmcgYWdhaW5zdCBHVEsrCisg
ICAgICAgIDMueC4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKHNldEhvcml6b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKHNldFZlcnRpY2FsQWRqdXN0
bWVudCk6CisgICAgICAgIChnZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6CisgICAgICAgIChnZXRW
ZXJ0aWNhbEFkanVzdG1lbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0
eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKwogMjAxMC0xMC0yMiAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggZjVkMGVmNi4uNzMyOWJjNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE5NywxMSArMTk3LDIwIEBAIGVudW0gewog
ICAgIFBST1BfSUNPTl9VUkksCiAgICAgUFJPUF9JTV9DT05URVhULAogICAgIFBST1BfVklFV19N
T0RFCisjaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCisgICAgLCBQUk9QX0hBREpVU1RNRU5UCisg
ICAgLCBQUk9QX1ZBREpVU1RNRU5UCisjZW5kaWYKIH07CiAKIHN0YXRpYyBndWludCB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKKyNpZmRlZiBHVEtfQVBJ
X1ZFUlNJT05fMgogR19ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXcs
IEdUS19UWVBFX0NPTlRBSU5FUikKKyNlbHNlCitHX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJL
aXRXZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXcsIEdUS19UWVBFX0NPTlRBSU5FUiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShHVEtfVFlQRV9TQ1JPTExBQkxF
LCAwKSkKKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90
aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1BhcmFtU3BlYyogcHNwZWMsIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpOwogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93
aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVh
dHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKQEAgLTM4NSw2ICszOTQsNDIgQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIoR3RrV2lkZ2V0KiB3aWRn
ZXQpCiAgICAgcmV0dXJuIHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVu
dChXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSwgZXZlbnQpOwogfQogCisjaWZuZGVmIEdUS19BUElf
VkVSU0lPTl8yCitzdGF0aWMgdm9pZCBzZXRIb3Jpem9udGFsQWRqdXN0bWVudChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBHdGtBZGp1c3RtZW50KiBoYWRqKQoreworICAgIGlmICghY29yZSh3ZWJW
aWV3KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2ViVmlldy0+cHJpdi0+aG9yaXpvbnRhbEFk
anVzdG1lbnQgPSBoYWRqOworICAgIEZyYW1lVmlldyogdmlldyA9IGNvcmUod2Via2l0X3dlYl92
aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKS0+dmlldygpOworICAgIGlmICghdmlldykKKyAg
ICAgICAgcmV0dXJuOworICAgIHZpZXctPnNldEhvcml6b250YWxBZGp1c3RtZW50KGhhZGopOwor
fQorCitzdGF0aWMgdm9pZCBzZXRWZXJ0aWNhbEFkanVzdG1lbnQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgR3RrQWRqdXN0bWVudCogdmFkaikKK3sKKyAgICBpZiAoIWNvcmUod2ViVmlldykpCisg
ICAgICAgIHJldHVybjsKKworICAgIHdlYlZpZXctPnByaXYtPnZlcnRpY2FsQWRqdXN0bWVudCA9
IHZhZGo7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29yZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21h
aW5fZnJhbWUod2ViVmlldykpLT52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1
cm47CisgICAgdmlldy0+c2V0VmVydGljYWxBZGp1c3RtZW50KHZhZGopOworfQorCitzdGF0aWMg
R3RrQWRqdXN0bWVudCogZ2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKK3sKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+aG9yaXpvbnRhbEFkanVzdG1lbnQu
Z2V0KCk7Cit9CisKK3N0YXRpYyBHdGtBZGp1c3RtZW50KiBnZXRWZXJ0aWNhbEFkanVzdG1lbnQo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dmVy
dGljYWxBZGp1c3RtZW50LmdldCgpOworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfdmlld19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFs
dWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7CkBAIC00NDQsNiArNDg5LDE0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLCBHVmFsdWUqCiAgICAgY2FzZSBQUk9QX1ZJRVdfTU9ERToKICAgICAgICAgZ192
YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF92aWV3X21vZGUod2ViVmll
dykpOwogICAgICAgICBicmVhazsKKyNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKKyAgICBjYXNl
IFBST1BfSEFESlVTVE1FTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgZ2V0
SG9yaXpvbnRhbEFkanVzdG1lbnQod2ViVmlldykpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfVkFESlVTVE1FTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgZ2V0
VmVydGljYWxBZGp1c3RtZW50KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAg
ICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2Jq
ZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgfQpAQCAtNDc4LDYgKzUzMSwxNCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgY29uc3QgRwogICAgIGNhc2UgUFJPUF9WSUVXX01PREU6CiAgICAgICAgIHdlYmtp
dF93ZWJfdmlld19zZXRfdmlld19tb2RlKHdlYlZpZXcsIHN0YXRpY19jYXN0PFdlYktpdFdlYlZp
ZXdWaWV3TW9kZT4oZ192YWx1ZV9nZXRfZW51bSh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7Cisj
aWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCisgICAgY2FzZSBQUk9QX0hBREpVU1RNRU5UOgorICAg
ICAgICBzZXRIb3Jpem9udGFsQWRqdXN0bWVudCh3ZWJWaWV3LCBzdGF0aWNfY2FzdDxHdGtBZGp1
c3RtZW50Kj4oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBST1BfVkFESlVTVE1FTlQ6CisgICAgICAgIHNldFZlcnRpY2FsQWRqdXN0bWVudCh3
ZWJWaWV3LCBzdGF0aWNfY2FzdDxHdGtBZGp1c3RtZW50Kj4oZ192YWx1ZV9nZXRfb2JqZWN0KHZh
bHVlKSkpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdf
T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsK
ICAgICB9CkBAIC05MDgsNiArOTY5LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3Jl
YWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgZ3RrX2ltX2NvbnRleHRfc2V0X2NsaWVudF93
aW5kb3cocHJpdi0+aW1Db250ZXh0LmdldCgpLCB3aW5kb3cpOwogfQogCisjaWZkZWYgR1RLX0FQ
SV9WRVJTSU9OXzIKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfc2Nyb2xsX2FkanVz
dG1lbnRzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a0FkanVzdG1lbnQqIGhhZGosIEd0a0Fk
anVzdG1lbnQqIHZhZGopCiB7CiAgICAgaWYgKCFjb3JlKHdlYlZpZXcpKQpAQCAtOTIxLDYgKzk4
Myw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfc2Nyb2xsX2FkanVzdG1lbnRz
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a0FkCiAgICAgICAgIHJldHVybjsKICAgICB2aWV3
LT5zZXRHdGtBZGp1c3RtZW50cyhoYWRqLCB2YWRqKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfY29udGFpbmVyX2FkZChHdGtDb250YWluZXIqIGNvbnRhaW5lciwg
R3RrV2lkZ2V0KiB3aWRnZXQpCiB7CkBAIC0yNTI1LDYgKzI1ODgsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFz
cykKICAgICAvKgogICAgICAqIG1ha2UgdXMgc2Nyb2xsYWJsZSAoZS5nLiBhZGRhYmxlIHRvIGEg
R3RrU2Nyb2xsZWRXaW5kb3cpCiAgICAgICovCisjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKICAg
ICB3ZWJWaWV3Q2xhc3MtPnNldF9zY3JvbGxfYWRqdXN0bWVudHMgPSB3ZWJraXRfd2ViX3ZpZXdf
c2V0X3Njcm9sbF9hZGp1c3RtZW50czsKICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYlZpZXdDbGFz
cyktPnNldF9zY3JvbGxfYWRqdXN0bWVudHNfc2lnbmFsID0gZ19zaWduYWxfbmV3KCJzZXQtc2Ny
b2xsLWFkanVzdG1lbnRzIiwKICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdD
bGFzcyksCkBAIC0yNTM0LDYgKzI1OTgsMTAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAg
ICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAogICAgICAgICAgICAgR19UWVBF
X05PTkUsIDIsCiAgICAgICAgICAgICBHVEtfVFlQRV9BREpVU1RNRU5ULCBHVEtfVFlQRV9BREpV
U1RNRU5UKTsKKyNlbHNlCisgICAgZ19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHkob2Jq
ZWN0Q2xhc3MsIFBST1BfSEFESlVTVE1FTlQsICJoYWRqdXN0bWVudCIpOworICAgIGdfb2JqZWN0
X2NsYXNzX292ZXJyaWRlX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1ZBREpVU1RNRU5ULCAi
dmFkanVzdG1lbnQiKTsKKyNlbmRpZgogCiAgICAgLyoKICAgICAgKiBLZXkgYmluZGluZ3MKLS0g
CjEuNy4yLjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>