<?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>43448</bug_id>
          
          <creation_ts>2010-08-03 15:02:57 -0700</creation_ts>
          <short_desc>[Qt] [QtTestBrowser] Clean up static and global menu state controls</short_desc>
          <delta_ts>2010-08-04 13:32:27 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>jesus</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>259714</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-03 15:02:57 -0700</bug_when>
    <thetext>The main idea is to have a LauncherData class (as a POD) to suply LauncherWindow class with the data it needs.

All static and global related classes would go away in favor of that.

Patch coming ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260050</commentid>
    <comment_count>1</comment_count>
      <attachid>63457</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-04 09:13:35 -0700</bug_when>
    <thetext>Created attachment 63457
(committed with r64673, r=hausmann|kenneth) patch v1

After LauncherWindow class was refactored out of from main.cpp, all global variables that were anging in main.cpp became temporarily public static class members of newly added LauncherWindow class. This design was not properly handling the initial purpose of the global variables: newly created launcher windows should inherit the settings of the originating one.
    
In order to properly fix the problem, this patch introduces a LauncherData class, as a POD. It comprises all data needed to handling the goal described above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260061</commentid>
    <comment_count>2</comment_count>
      <attachid>63457</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-04 09:47:45 -0700</bug_when>
    <thetext>Comment on attachment 63457
(committed with r64673, r=hausmann|kenneth) patch v1

Why not just make a settings object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260158</commentid>
    <comment_count>3</comment_count>
      <attachid>63457</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-04 12:47:09 -0700</bug_when>
    <thetext>Comment on attachment 63457
(committed with r64673, r=hausmann|kenneth) patch v1

Looks like a nice cleanup :)

You could also call it LauncherConfiguration or *Config instead of the generic &quot;Data&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260174</commentid>
    <comment_count>4</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-04 13:05:54 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 63457 [details])
&gt; Looks like a nice cleanup :)
&gt; 
&gt; You could also call it LauncherConfiguration or *Config instead of the generic &quot;Data&quot; :)

Kenneth also suggested WindowOptions. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260190</commentid>
    <comment_count>5</comment_count>
      <attachid>63457</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-04 13:31:52 -0700</bug_when>
    <thetext>Comment on attachment 63457
(committed with r64673, r=hausmann|kenneth) patch v1

Clearing flags on attachment: 63457

Committed r64673: &lt;http://trac.webkit.org/changeset/r64673&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63457</attachid>
            <date>2010-08-04 09:13:35 -0700</date>
            <delta_ts>2010-08-04 13:31:52 -0700</delta_ts>
            <desc>(committed with r64673, r=hausmann|kenneth) patch v1</desc>
            <filename>0001-2010-08-04-Antonio-Gomes-tonikitoo-webkit.org.patch</filename>
            <type>text/plain</type>
            <size>24630</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA1YzBjOWQzYTA2N2IyMGM3MzFkNTQyYmQ4NTYzOGRkYTA3ZWFiNzkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVHVlLCAzIEF1ZyAyMDEwIDE4OjM1OjU0IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAx
MC0wOC0wNCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgoKICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW1F0XSBbUXRUZXN0QnJvd3Nlcl0g
Q2xlYW4gdXAgc3RhdGljIGFuZCBnbG9iYWwgbWVudSBzdGF0ZSBjb250cm9scwogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzQ0OAoKICAgICAgICBBZnRl
ciBMYXVuY2hlcldpbmRvdyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBvdXQgb2YgZnJvbSBtYWluLmNw
cCwgYWxsIGdsb2JhbCB2YXJpYWJsZXMgdGhhdAogICAgICAgIHdlcmUgYW5naW5nIGluIG1haW4u
Y3BwIGJlY2FtZSB0ZW1wb3JhcmlseSBwdWJsaWMgc3RhdGljIGNsYXNzIG1lbWJlcnMgb2YgbmV3
bHkgYWRkZWQKICAgICAgICBMYXVuY2hlcldpbmRvdyBjbGFzcy4gVGhpcyBkZXNpZ24gd2FzIG5v
dCBwcm9wZXJseSBoYW5kbGluZyB0aGUgaW5pdGlhbCBwdXJwb3NlIG9mIHRoZQogICAgICAgIGds
b2JhbCB2YXJpYWJsZXM6IG5ld2x5IGNyZWF0ZWQgbGF1bmNoZXIgd2luZG93cyBzaG91bGQgaW5o
ZXJpdCB0aGUgc2V0dGluZ3Mgb2YgdGhlIG9yaWdpbmF0aW5nCiAgICAgICAgb25lLgoKICAgICAg
ICBJbiBvcmRlciB0byBwcm9wZXJseSBmaXggdGhlIHByb2JsZW0sIHRoaXMgcGF0Y2ggaW50cm9k
dWNlcyBhIExhdW5jaGVyRGF0YSBjbGFzcywgYXMgYSBQT0QuIEl0CiAgICAgICAgY29tcHJpc2Vz
IGFsbCBkYXRhIG5lZWRlZCB0byBoYW5kbGluZyB0aGUgZ29hbCBkZXNjcmliZWQgYWJvdmUuCgog
ICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHA6CiAgICAgICAgKExhdW5j
aGVyV2luZG93OjpMYXVuY2hlcldpbmRvdyk6IFRoZSBjbGFzcyBub3cgcmVjZWl2ZXMgYW4gb3B0
aW9uYWwgTGF1bmNoZXJEYXRhIHBvaW50ZXIgb2JqZWN0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvbGRpbmcgYWxsIHVzZXIgc2V0dGluZ3MgY29uZmlndXJlZCBp
biB0aGUgbWVudXMgYW5kIGNvbW1hbmQgbGluZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSXQgYWxzbyByZWNlaWNlcyBhbiBvcHRpb25hbCBRR3JhcGhpY3NTY2Vu
ZSBwb2ludHMgaW4gY2FzZSB3ZSBhcmUgZG9pbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYSAiQ2xvbmUgV2luZG93Ii4KICAgICAgICAoTGF1bmNoZXJXaW5kb3c6
OmluaXQpOiBSZW1vdmVkIHRoZSB1c2VzR3JhcGhpY3MgcGFyYW1ldGVyIGJlY2F1c2UgdGhlIGNs
YXNzIG1lbWJlciBtX3VzZXJEYXRhIGhvbGRzIGl0cwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlLgogICAgICAgIChMYXVuY2hlcldpbmRvdzo6aW5pdGlhbGl6ZVZpZXcpOiBE
aXR0by4KICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OmNyZWF0ZUNocm9tZSk6IENoYW5nZWQgYWxs
IHJlZmVyZW5jZXMgdG8gZ1hYWCB0byBtX3VzZXJEYXRhLlhYWAogICAgICAgIChMYXVuY2hlcldp
bmRvdzo6YXBwbHlQcmVmcyk6IFJlbW92ZWQgdGhlICJMYXVuY2hlcldpbmRvdyogc291cmNlIiBw
YXJhbWV0ZXIuIEFsbCBkYXRhIG5lZWRlZCB0byBwcm9wZXJseQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFwcGx5IHRoZSBwcmVmZXJlbmNlcyBpcyBwcm92aWRlZCBieSBt
X3VzZXJEYXRhLgogICAgICAgIChMYXVuY2hlcldpbmRvdzo6dG9nZ2xlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyk6IENoYW5nZSBnWFhYIGJ5IG1fdXNlckRhdGEuWFhYCiAgICAgICAgKExhdW5jaGVy
V2luZG93Ojp0b2dnbGVSZXNpemVzVG9Db250ZW50cyk6IERpdHRvLgogICAgICAgIChMYXVuY2hl
cldpbmRvdzo6dG9nZ2xlV2ViR0wpOiBEaXR0by4KICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OnRv
Z2dsZUZyYW1lRmxhdHRlbmluZyk6IERpdHRvLgogICAgICAgIChMYXVuY2hlcldpbmRvdzo6dG9n
Z2xlUUdMV2lkZ2V0Vmlld3BvcnQpOiBEaXR0by4KICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OmNo
YW5nZVZpZXdwb3J0VXBkYXRlTW9kZSk6IERpdHRvLgogICAgICAgIChMYXVuY2hlcldpbmRvdzo6
c2hvd0ZQUyk6IERpdHRvLgogICAgICAgIChMYXVuY2hlcldpbmRvdzo6bmV3V2luZG93KTogQ2hh
bmdlZCB0byBwYXNzIHRoZSB1c2VyRGF0YS4KICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OmNsb25l
V2luZG93KTogRGl0dG8uCiAgICAgICAgKiBRdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93Lmg6
CiAgICAgICAgKExhdW5jaGVyRGF0YTo6TGF1bmNoZXJEYXRhKToKICAgICAgICAqIFF0VGVzdEJy
b3dzZXIvbWFpbi5jcHA6CiAgICAgICAgKHJlcXVpcmVzR3JhcGhpY3NWaWV3KToKICAgICAgICAo
TGF1bmNoZXJBcHBsaWNhdGlvbjo6aGFuZGxlVXNlck9wdGlvbnMpOgogICAgICAgIChtYWluKToK
LS0tCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMg
KysrKysrKysrCiBXZWJLaXRUb29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcCB8
ICAxMjIgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIFdlYktpdFRvb2xzL1F0VGVzdEJyb3dz
ZXIvbGF1bmNoZXJ3aW5kb3cuaCAgIHwgICA2NCArKysrKysrKystLS0tCiBXZWJLaXRUb29scy9R
dFRlc3RCcm93c2VyL21haW4uY3BwICAgICAgICAgICB8ICAgMjIgKysrLS0KIDQgZmlsZXMgY2hh
bmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggZWJiZjA4
Yi4uNTNjMGFhNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEwLTA4LTA0ICBBbnRvbmlvIEdv
bWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1F0XSBbUXRUZXN0QnJvd3Nlcl0gQ2xlYW4gdXAgc3RhdGlj
IGFuZCBnbG9iYWwgbWVudSBzdGF0ZSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0NDgKKworICAgICAgICBBZnRlciBMYXVuY2hlcldp
bmRvdyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBvdXQgb2YgZnJvbSBtYWluLmNwcCwgYWxsIGdsb2Jh
bCB2YXJpYWJsZXMgdGhhdAorICAgICAgICB3ZXJlIGFuZ2luZyBpbiBtYWluLmNwcCBiZWNhbWUg
dGVtcG9yYXJpbHkgcHVibGljIHN0YXRpYyBjbGFzcyBtZW1iZXJzIG9mIG5ld2x5IGFkZGVkCisg
ICAgICAgIExhdW5jaGVyV2luZG93IGNsYXNzLiBUaGlzIGRlc2lnbiB3YXMgbm90IHByb3Blcmx5
IGhhbmRsaW5nIHRoZSBpbml0aWFsIHB1cnBvc2Ugb2YgdGhlCisgICAgICAgIGdsb2JhbCB2YXJp
YWJsZXM6IG5ld2x5IGNyZWF0ZWQgbGF1bmNoZXIgd2luZG93cyBzaG91bGQgaW5oZXJpdCB0aGUg
c2V0dGluZ3Mgb2YgdGhlIG9yaWdpbmF0aW5nCisgICAgICAgIG9uZS4KKworICAgICAgICBJbiBv
cmRlciB0byBwcm9wZXJseSBmaXggdGhlIHByb2JsZW0sIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh
IExhdW5jaGVyRGF0YSBjbGFzcywgYXMgYSBQT0QuIEl0CisgICAgICAgIGNvbXByaXNlcyBhbGwg
ZGF0YSBuZWVkZWQgdG8gaGFuZGxpbmcgdGhlIGdvYWwgZGVzY3JpYmVkIGFib3ZlLgorCisgICAg
ICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgIChMYXVuY2hl
cldpbmRvdzo6TGF1bmNoZXJXaW5kb3cpOiBUaGUgY2xhc3Mgbm93IHJlY2VpdmVzIGFuIG9wdGlv
bmFsIExhdW5jaGVyRGF0YSBwb2ludGVyIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG9sZGluZyBhbGwgdXNlciBzZXR0aW5ncyBjb25maWd1cmVkIGlu
IHRoZSBtZW51cyBhbmQgY29tbWFuZCBsaW5lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSXQgYWxzbyByZWNlaWNlcyBhbiBvcHRpb25hbCBRR3JhcGhpY3NTY2Vu
ZSBwb2ludHMgaW4gY2FzZSB3ZSBhcmUgZG9pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGEgIkNsb25lIFdpbmRvdyIuCisgICAgICAgIChMYXVuY2hlcldpbmRv
dzo6aW5pdCk6IFJlbW92ZWQgdGhlIHVzZXNHcmFwaGljcyBwYXJhbWV0ZXIgYmVjYXVzZSB0aGUg
Y2xhc3MgbWVtYmVyIG1fdXNlckRhdGEgaG9sZHMgaXRzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlLgorICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OmluaXRpYWxpemVWaWV3
KTogRGl0dG8uCisgICAgICAgIChMYXVuY2hlcldpbmRvdzo6Y3JlYXRlQ2hyb21lKTogQ2hhbmdl
ZCBhbGwgcmVmZXJlbmNlcyB0byBnWFhYIHRvIG1fdXNlckRhdGEuWFhYCisgICAgICAgIChMYXVu
Y2hlcldpbmRvdzo6YXBwbHlQcmVmcyk6IFJlbW92ZWQgdGhlICJMYXVuY2hlcldpbmRvdyogc291
cmNlIiBwYXJhbWV0ZXIuIEFsbCBkYXRhIG5lZWRlZCB0byBwcm9wZXJseQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseSB0aGUgcHJlZmVyZW5jZXMgaXMgcHJvdmlk
ZWQgYnkgbV91c2VyRGF0YS4KKyAgICAgICAgKExhdW5jaGVyV2luZG93Ojp0b2dnbGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKTogQ2hhbmdlIGdYWFggYnkgbV91c2VyRGF0YS5YWFgKKyAgICAgICAg
KExhdW5jaGVyV2luZG93Ojp0b2dnbGVSZXNpemVzVG9Db250ZW50cyk6IERpdHRvLgorICAgICAg
ICAoTGF1bmNoZXJXaW5kb3c6OnRvZ2dsZVdlYkdMKTogRGl0dG8uCisgICAgICAgIChMYXVuY2hl
cldpbmRvdzo6dG9nZ2xlRnJhbWVGbGF0dGVuaW5nKTogRGl0dG8uCisgICAgICAgIChMYXVuY2hl
cldpbmRvdzo6dG9nZ2xlUUdMV2lkZ2V0Vmlld3BvcnQpOiBEaXR0by4KKyAgICAgICAgKExhdW5j
aGVyV2luZG93OjpjaGFuZ2VWaWV3cG9ydFVwZGF0ZU1vZGUpOiBEaXR0by4KKyAgICAgICAgKExh
dW5jaGVyV2luZG93OjpzaG93RlBTKTogRGl0dG8uCisgICAgICAgIChMYXVuY2hlcldpbmRvdzo6
bmV3V2luZG93KTogQ2hhbmdlZCB0byBwYXNzIHRoZSB1c2VyRGF0YS4KKyAgICAgICAgKExhdW5j
aGVyV2luZG93OjpjbG9uZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIv
bGF1bmNoZXJ3aW5kb3cuaDoKKyAgICAgICAgKExhdW5jaGVyRGF0YTo6TGF1bmNoZXJEYXRhKToK
KyAgICAgICAgKiBRdFRlc3RCcm93c2VyL21haW4uY3BwOgorICAgICAgICAocmVxdWlyZXNHcmFw
aGljc1ZpZXcpOgorICAgICAgICAoTGF1bmNoZXJBcHBsaWNhdGlvbjo6aGFuZGxlVXNlck9wdGlv
bnMpOgorICAgICAgICAobWFpbik6CisKIDIwMTAtMDgtMDMgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwIGIvV2Vi
S2l0VG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAKaW5kZXggM2ViYzZjOS4u
ZDdiOWQ1OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndp
bmRvdy5jcHAKKysrIGIvV2ViS2l0VG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5j
cHAKQEAgLTMyLDI2ICszMiw5IEBACiAKICNpbmNsdWRlICJsYXVuY2hlcndpbmRvdy5oIgogCi1i
b29sIExhdW5jaGVyV2luZG93OjpnVXNlR3JhcGhpY3NWaWV3ID0gZmFsc2U7Ci1ib29sIExhdW5j
aGVyV2luZG93OjpnVXNlQ29tcG9zaXRpbmcgPSB0cnVlOwotYm9vbCBMYXVuY2hlcldpbmRvdzo6
Z0NhY2hlV2ViVmlldyA9IGZhbHNlOwotYm9vbCBMYXVuY2hlcldpbmRvdzo6Z1Nob3dGcmFtZVJh
dGUgPSBmYWxzZTsKLWJvb2wgTGF1bmNoZXJXaW5kb3c6OmdSZXNpemVzVG9Db250ZW50cyA9IGZh
bHNlOwotYm9vbCBMYXVuY2hlcldpbmRvdzo6Z1VzZVRpbGVkQmFja2luZ1N0b3JlID0gZmFsc2U7
Ci1RR3JhcGhpY3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGUgTGF1bmNoZXJXaW5kb3c6OmdWaWV3
cG9ydFVwZGF0ZU1vZGUgPSBRR3JhcGhpY3NWaWV3OjpNaW5pbWFsVmlld3BvcnRVcGRhdGU7Ci1R
VXJsIExhdW5jaGVyV2luZG93OjpnSW5zcGVjdG9yVXJsOwotCi0jaWYgZGVmaW5lZChRX1dTX01B
RU1PXzUpIHx8IGRlZmluZWQoUV9XU19TNjApCi1ib29sIExhdW5jaGVyV2luZG93OjpnVXNlRnJh
bWVGbGF0dGVuaW5nID0gdHJ1ZTsKLSNlbHNlCi1ib29sIExhdW5jaGVyV2luZG93OjpnVXNlRnJh
bWVGbGF0dGVuaW5nID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoUVRfQ09ORklHVVJF
RF9XSVRIX09QRU5HTCkKLWJvb2wgTGF1bmNoZXJXaW5kb3c6OmdVc2VRR0xXaWRnZXRWaWV3cG9y
dCA9IGZhbHNlOwotI2VuZGlmCitjb25zdCBpbnQgZ0V4aXRDbGlja0FyZWEgPSA4MDsKIAotTGF1
bmNoZXJXaW5kb3c6OkxhdW5jaGVyV2luZG93KExhdW5jaGVyV2luZG93KiBvdGhlciwgYm9vbCBz
aGFyZVNjZW5lKQorTGF1bmNoZXJXaW5kb3c6OkxhdW5jaGVyV2luZG93KExhdW5jaGVyRGF0YSog
ZGF0YSwgUUdyYXBoaWNzU2NlbmUqIHNoYXJlZFNjZW5lKQogICAgIDogTWFpbldpbmRvdygpCiAg
ICAgLCBtX2N1cnJlbnRab29tKDEwMCkKICAgICAsIG1fdmlldygwKQpAQCAtNjMsMTcgKzQ2LDEz
IEBAIExhdW5jaGVyV2luZG93OjpMYXVuY2hlcldpbmRvdyhMYXVuY2hlcldpbmRvdyogb3RoZXIs
IGJvb2wgc2hhcmVTY2VuZSkKICAgICAsIG1fem9vbUFuaW1hdGlvbigwKQogI2VuZGlmCiB7Ci0g
ICAgaWYgKG90aGVyKSB7Ci0gICAgICAgIGluaXQob3RoZXItPmlzR3JhcGhpY3NCYXNlZCgpKTsK
LSAgICAgICAgYXBwbHlQcmVmcyhvdGhlcik7Ci0gICAgICAgIGlmIChzaGFyZVNjZW5lICYmIG90
aGVyLT5pc0dyYXBoaWNzQmFzZWQoKSkgewotICAgICAgICAgICAgUUdyYXBoaWNzVmlldyogb3Ro
ZXJWaWV3ID0gc3RhdGljX2Nhc3Q8UUdyYXBoaWNzVmlldyo+KG90aGVyLT5tX3ZpZXcpOwotICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8UUdyYXBoaWNzVmlldyo+KG1fdmlldyktPnNldFNjZW5lKG90
aGVyVmlldy0+c2NlbmUoKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpbml0
KGdVc2VHcmFwaGljc1ZpZXcpOwotICAgICAgICBhcHBseVByZWZzKCk7Ci0gICAgfQorICAgIGlm
IChkYXRhKQorICAgICAgICBtX3VzZXJEYXRhID0gKmRhdGE7CisKKyAgICBpbml0KCk7CisgICAg
YXBwbHlQcmVmcygpOworICAgIGlmIChzaGFyZWRTY2VuZSAmJiBkYXRhLT51c2VHcmFwaGljc1Zp
ZXcpCisgICAgICAgIHN0YXRpY19jYXN0PFFHcmFwaGljc1ZpZXcqPihtX3ZpZXcpLT5zZXRTY2Vu
ZShzaGFyZWRTY2VuZSk7CiAKICAgICBjcmVhdGVDaHJvbWUoKTsKIH0KQEAgLTgzLDcgKzYyLDcg
QEAgTGF1bmNoZXJXaW5kb3c6On5MYXVuY2hlcldpbmRvdygpCiAgICAgZ3JhYlpvb21LZXlzKGZh
bHNlKTsKIH0KIAotdm9pZCBMYXVuY2hlcldpbmRvdzo6aW5pdChib29sIHVzZUdyYXBoaWNzVmll
dykKK3ZvaWQgTGF1bmNoZXJXaW5kb3c6OmluaXQoKQogewogICAgIFFTcGxpdHRlciogc3BsaXR0
ZXIgPSBuZXcgUVNwbGl0dGVyKFF0OjpWZXJ0aWNhbCwgdGhpcyk7CiAgICAgc2V0Q2VudHJhbFdp
ZGdldChzcGxpdHRlcik7CkBAIC05NSw3ICs3NCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6Omlu
aXQoYm9vbCB1c2VHcmFwaGljc1ZpZXcpCiAgICAgcmVzaXplKDgwMCwgNjAwKTsKICNlbmRpZgog
Ci0gICAgaW5pdGlhbGl6ZVZpZXcodXNlR3JhcGhpY3NWaWV3KTsKKyAgICBpbml0aWFsaXplVmll
dygpOwogCiAgICAgY29ubmVjdChwYWdlKCksIFNJR05BTChsb2FkU3RhcnRlZCgpKSwgdGhpcywg
U0xPVChsb2FkU3RhcnRlZCgpKSk7CiAgICAgY29ubmVjdChwYWdlKCksIFNJR05BTChsb2FkRmlu
aXNoZWQoYm9vbCkpLCB0aGlzLCBTTE9UKGxvYWRGaW5pc2hlZCgpKSk7CkBAIC0xMDUsOCArODQs
OCBAQCB2b2lkIExhdW5jaGVyV2luZG93Ojppbml0KGJvb2wgdXNlR3JhcGhpY3NWaWV3KQogCiAg
ICAgbV9pbnNwZWN0b3IgPSBuZXcgV2ViSW5zcGVjdG9yKHNwbGl0dGVyKTsKICNpZm5kZWYgUVRf
Tk9fUFJPUEVSVElFUwotICAgIGlmICghZ0luc3BlY3RvclVybC5pc0VtcHR5KCkpCi0gICAgICAg
IG1faW5zcGVjdG9yLT5zZXRQcm9wZXJ0eSgiX3FfaW5zcGVjdG9yVXJsIiwgZ0luc3BlY3RvclVy
bCk7CisgICAgaWYgKCFtX3VzZXJEYXRhLmluc3BlY3RvclVybC5pc0VtcHR5KCkpCisgICAgICAg
IG1faW5zcGVjdG9yLT5zZXRQcm9wZXJ0eSgiX3FfaW5zcGVjdG9yVXJsIiwgbV91c2VyRGF0YS5p
bnNwZWN0b3JVcmwpOwogI2VuZGlmCiAgICAgbV9pbnNwZWN0b3ItPnNldFBhZ2UocGFnZSgpKTsK
ICAgICBtX2luc3BlY3Rvci0+aGlkZSgpOwpAQCAtMTIwLDEzICs5OSwxMyBAQCB2b2lkIExhdW5j
aGVyV2luZG93Ojppbml0KGJvb2wgdXNlR3JhcGhpY3NWaWV3KQogICAgIGdyYWJab29tS2V5cyh0
cnVlKTsKIH0KIAotdm9pZCBMYXVuY2hlcldpbmRvdzo6aW5pdGlhbGl6ZVZpZXcoYm9vbCB1c2VH
cmFwaGljc1ZpZXcpCit2b2lkIExhdW5jaGVyV2luZG93Ojppbml0aWFsaXplVmlldygpCiB7CiAg
ICAgZGVsZXRlIG1fdmlldzsKIAogICAgIFFTcGxpdHRlciogc3BsaXR0ZXIgPSBzdGF0aWNfY2Fz
dDxRU3BsaXR0ZXIqPihjZW50cmFsV2lkZ2V0KCkpOwogCi0gICAgaWYgKCF1c2VHcmFwaGljc1Zp
ZXcpIHsKKyAgICBpZiAoIW1fdXNlckRhdGEudXNlR3JhcGhpY3NWaWV3KSB7CiAgICAgICAgIFdl
YlZpZXdUcmFkaXRpb25hbCogdmlldyA9IG5ldyBXZWJWaWV3VHJhZGl0aW9uYWwoc3BsaXR0ZXIp
OwogICAgICAgICB2aWV3LT5zZXRQYWdlKHBhZ2UoKSk7CiAKQEAgLTI3NywyMCArMjU2LDIwIEBA
IHZvaWQgTGF1bmNoZXJXaW5kb3c6OmNyZWF0ZUNocm9tZSgpCiAKICAgICBRQWN0aW9uKiB0b2dn
bGVSZXNpemVzVG9Db250ZW50cyA9IGdyYXBoaWNzVmlld01lbnUtPmFkZEFjdGlvbigiVG9nZ2xl
IFJlc2l6ZXMgVG8gQ29udGVudHMgTW9kZSIsIHRoaXMsIFNMT1QodG9nZ2xlUmVzaXplc1RvQ29u
dGVudHMoYm9vbCkpKTsKICAgICB0b2dnbGVSZXNpemVzVG9Db250ZW50cy0+c2V0Q2hlY2thYmxl
KHRydWUpOwotICAgIHRvZ2dsZVJlc2l6ZXNUb0NvbnRlbnRzLT5zZXRDaGVja2VkKGdSZXNpemVz
VG9Db250ZW50cyk7CisgICAgdG9nZ2xlUmVzaXplc1RvQ29udGVudHMtPnNldENoZWNrZWQobV91
c2VyRGF0YS5yZXNpemVzVG9Db250ZW50cyk7CiAgICAgdG9nZ2xlUmVzaXplc1RvQ29udGVudHMt
PnNldEVuYWJsZWQoaXNHcmFwaGljc0Jhc2VkKCkpOwogICAgIHRvZ2dsZVJlc2l6ZXNUb0NvbnRl
bnRzLT5jb25uZWN0KHRvZ2dsZUdyYXBoaWNzVmlldywgU0lHTkFMKHRvZ2dsZWQoYm9vbCkpLCBT
TE9UKHNldEVuYWJsZWQoYm9vbCkpKTsKIAogICAgIFFBY3Rpb24qIHRvZ2dsZVRpbGVkQmFja2lu
Z1N0b3JlID0gZ3JhcGhpY3NWaWV3TWVudS0+YWRkQWN0aW9uKCJUb2dnbGUgVGlsZWQgQmFja2lu
ZyBTdG9yZSIsIHRoaXMsIFNMT1QodG9nZ2xlVGlsZWRCYWNraW5nU3RvcmUoYm9vbCkpKTsKICAg
ICB0b2dnbGVUaWxlZEJhY2tpbmdTdG9yZS0+c2V0Q2hlY2thYmxlKHRydWUpOwotICAgIHRvZ2ds
ZVRpbGVkQmFja2luZ1N0b3JlLT5zZXRDaGVja2VkKGZhbHNlKTsKKyAgICB0b2dnbGVSZXNpemVz
VG9Db250ZW50cy0+c2V0Q2hlY2tlZChtX3VzZXJEYXRhLnVzZVRpbGVkQmFja2luZ1N0b3JlKTsK
ICAgICB0b2dnbGVUaWxlZEJhY2tpbmdTdG9yZS0+c2V0RW5hYmxlZChpc0dyYXBoaWNzQmFzZWQo
KSk7CiAgICAgdG9nZ2xlVGlsZWRCYWNraW5nU3RvcmUtPmNvbm5lY3QodG9nZ2xlR3JhcGhpY3NW
aWV3LCBTSUdOQUwodG9nZ2xlZChib29sKSksIFNMT1Qoc2V0RW5hYmxlZChib29sKSkpOwogCiAj
aWYgZGVmaW5lZChRVF9DT05GSUdVUkVEX1dJVEhfT1BFTkdMKQogICAgIFFBY3Rpb24qIHRvZ2ds
ZVFHTFdpZGdldFZpZXdwb3J0ID0gZ3JhcGhpY3NWaWV3TWVudS0+YWRkQWN0aW9uKCJUb2dnbGUg
dXNlIG9mIFFHTFdpZGdldCBWaWV3cG9ydCIsIHRoaXMsIFNMT1QodG9nZ2xlUUdMV2lkZ2V0Vmll
d3BvcnQoYm9vbCkpKTsKICAgICB0b2dnbGVRR0xXaWRnZXRWaWV3cG9ydC0+c2V0Q2hlY2thYmxl
KHRydWUpOwotICAgIHRvZ2dsZVFHTFdpZGdldFZpZXdwb3J0LT5zZXRDaGVja2VkKGdVc2VRR0xX
aWRnZXRWaWV3cG9ydCk7CisgICAgdG9nZ2xlUUdMV2lkZ2V0Vmlld3BvcnQtPnNldENoZWNrZWQo
bV91c2VyRGF0YS51c2VRR0xXaWRnZXRWaWV3cG9ydCk7CiAgICAgdG9nZ2xlUUdMV2lkZ2V0Vmll
d3BvcnQtPnNldEVuYWJsZWQoaXNHcmFwaGljc0Jhc2VkKCkpOwogICAgIHRvZ2dsZVFHTFdpZGdl
dFZpZXdwb3J0LT5jb25uZWN0KHRvZ2dsZUdyYXBoaWNzVmlldywgU0lHTkFMKHRvZ2dsZWQoYm9v
bCkpLCBTTE9UKHNldEVuYWJsZWQoYm9vbCkpKTsKICNlbmRpZgpAQCAtMzAxLDIzICsyODAsMjMg
QEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6Y3JlYXRlQ2hyb21lKCkKIAogICAgIFFBY3Rpb24qIGZ1
bGxVcGRhdGUgPSB2aWV3cG9ydFVwZGF0ZU1lbnUtPmFkZEFjdGlvbigiRnVsbFZpZXdwb3J0VXBk
YXRlIik7CiAgICAgZnVsbFVwZGF0ZS0+c2V0Q2hlY2thYmxlKHRydWUpOwotICAgIGZ1bGxVcGRh
dGUtPnNldENoZWNrZWQoKGdWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gUUdyYXBoaWNzVmlldzo6RnVs
bFZpZXdwb3J0VXBkYXRlKSA/IHRydWUgOiBmYWxzZSk7CisgICAgZnVsbFVwZGF0ZS0+c2V0Q2hl
Y2tlZCgobV91c2VyRGF0YS52aWV3cG9ydFVwZGF0ZU1vZGUgPT0gUUdyYXBoaWNzVmlldzo6RnVs
bFZpZXdwb3J0VXBkYXRlKSA/IHRydWUgOiBmYWxzZSk7CiAKICAgICBRQWN0aW9uKiBtaW5pbWFs
VXBkYXRlID0gdmlld3BvcnRVcGRhdGVNZW51LT5hZGRBY3Rpb24oIk1pbmltYWxWaWV3cG9ydFVw
ZGF0ZSIpOwogICAgIG1pbmltYWxVcGRhdGUtPnNldENoZWNrYWJsZSh0cnVlKTsKLSAgICBtaW5p
bWFsVXBkYXRlLT5zZXRDaGVja2VkKChnVmlld3BvcnRVcGRhdGVNb2RlID09IFFHcmFwaGljc1Zp
ZXc6Ok1pbmltYWxWaWV3cG9ydFVwZGF0ZSkgPyB0cnVlIDogZmFsc2UpOworICAgIG1pbmltYWxV
cGRhdGUtPnNldENoZWNrZWQoKG1fdXNlckRhdGEudmlld3BvcnRVcGRhdGVNb2RlID09IFFHcmFw
aGljc1ZpZXc6Ok1pbmltYWxWaWV3cG9ydFVwZGF0ZSkgPyB0cnVlIDogZmFsc2UpOwogCiAgICAg
UUFjdGlvbiogc21hcnRVcGRhdGUgPSB2aWV3cG9ydFVwZGF0ZU1lbnUtPmFkZEFjdGlvbigiU21h
cnRWaWV3cG9ydFVwZGF0ZSIpOwogICAgIHNtYXJ0VXBkYXRlLT5zZXRDaGVja2FibGUodHJ1ZSk7
Ci0gICAgc21hcnRVcGRhdGUtPnNldENoZWNrZWQoKGdWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gUUdy
YXBoaWNzVmlldzo6U21hcnRWaWV3cG9ydFVwZGF0ZSkgPyB0cnVlIDogZmFsc2UpOworICAgIHNt
YXJ0VXBkYXRlLT5zZXRDaGVja2VkKChtX3VzZXJEYXRhLnZpZXdwb3J0VXBkYXRlTW9kZSA9PSBR
R3JhcGhpY3NWaWV3OjpTbWFydFZpZXdwb3J0VXBkYXRlKSA/IHRydWUgOiBmYWxzZSk7CiAKICAg
ICBRQWN0aW9uKiBib3VuZGluZ1JlY3RVcGRhdGUgPSB2aWV3cG9ydFVwZGF0ZU1lbnUtPmFkZEFj
dGlvbigiQm91bmRpbmdSZWN0Vmlld3BvcnRVcGRhdGUiKTsKICAgICBib3VuZGluZ1JlY3RVcGRh
dGUtPnNldENoZWNrYWJsZSh0cnVlKTsKLSAgICBib3VuZGluZ1JlY3RVcGRhdGUtPnNldENoZWNr
ZWQoKGdWaWV3cG9ydFVwZGF0ZU1vZGUgPT0gUUdyYXBoaWNzVmlldzo6Qm91bmRpbmdSZWN0Vmll
d3BvcnRVcGRhdGUpID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICBib3VuZGluZ1JlY3RVcGRhdGUtPnNl
dENoZWNrZWQoKG1fdXNlckRhdGEudmlld3BvcnRVcGRhdGVNb2RlID09IFFHcmFwaGljc1ZpZXc6
OkJvdW5kaW5nUmVjdFZpZXdwb3J0VXBkYXRlKSA/IHRydWUgOiBmYWxzZSk7CiAKICAgICBRQWN0
aW9uKiBub1VwZGF0ZSA9IHZpZXdwb3J0VXBkYXRlTWVudS0+YWRkQWN0aW9uKCJOb1ZpZXdwb3J0
VXBkYXRlIik7CiAgICAgbm9VcGRhdGUtPnNldENoZWNrYWJsZSh0cnVlKTsKLSAgICBub1VwZGF0
ZS0+c2V0Q2hlY2tlZCgoZ1ZpZXdwb3J0VXBkYXRlTW9kZSA9PSBRR3JhcGhpY3NWaWV3OjpOb1Zp
ZXdwb3J0VXBkYXRlKSA/IHRydWUgOiBmYWxzZSk7CisgICAgbm9VcGRhdGUtPnNldENoZWNrZWQo
KG1fdXNlckRhdGEudmlld3BvcnRVcGRhdGVNb2RlID09IFFHcmFwaGljc1ZpZXc6Ok5vVmlld3Bv
cnRVcGRhdGUpID8gdHJ1ZSA6IGZhbHNlKTsKIAogICAgIFFTaWduYWxNYXBwZXIqIHNpZ25hbE1h
cHBlciA9IG5ldyBRU2lnbmFsTWFwcGVyKHZpZXdwb3J0VXBkYXRlTWVudSk7CiAgICAgc2lnbmFs
TWFwcGVyLT5zZXRNYXBwaW5nKGZ1bGxVcGRhdGUsIFFHcmFwaGljc1ZpZXc6OkZ1bGxWaWV3cG9y
dFVwZGF0ZSk7CkBAIC0zNjcsNyArMzQ2LDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6Y3JlYXRl
Q2hyb21lKCkKICAgICBzaG93RlBTLT5zZXRDaGVja2FibGUodHJ1ZSk7CiAgICAgc2hvd0ZQUy0+
c2V0RW5hYmxlZChpc0dyYXBoaWNzQmFzZWQoKSk7CiAgICAgc2hvd0ZQUy0+Y29ubmVjdCh0b2dn
bGVHcmFwaGljc1ZpZXcsIFNJR05BTCh0b2dnbGVkKGJvb2wpKSwgU0xPVChzZXRFbmFibGVkKGJv
b2wpKSk7Ci0gICAgc2hvd0ZQUy0+c2V0Q2hlY2tlZChnU2hvd0ZyYW1lUmF0ZSk7CisgICAgc2hv
d0ZQUy0+c2V0Q2hlY2tlZChtX3VzZXJEYXRhLnNob3dGcmFtZVJhdGUpOwogfQogCiBib29sIExh
dW5jaGVyV2luZG93Ojppc0dyYXBoaWNzQmFzZWQoKSBjb25zdApAQCAtMzc1LDM3ICszNTQsMjUg
QEAgYm9vbCBMYXVuY2hlcldpbmRvdzo6aXNHcmFwaGljc0Jhc2VkKCkgY29uc3QKICAgICByZXR1
cm4gYm9vbChxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzVmlldyo+KG1fdmlldykpOwogfQogCi1pbmxp
bmUgdm9pZCBhcHBseVNldHRpbmcoUVdlYlNldHRpbmdzOjpXZWJBdHRyaWJ1dGUgdHlwZSwgUVdl
YlNldHRpbmdzKiBzZXR0aW5ncywgUVdlYlNldHRpbmdzKiBvdGhlciwgYm9vbCBkZWZhdWx0VmFs
dWUpCi17Ci0gICAgc2V0dGluZ3MtPnNldEF0dHJpYnV0ZSh0eXBlLCBvdGhlciA/IG90aGVyLT50
ZXN0QXR0cmlidXRlKHR5cGUpIDogZGVmYXVsdFZhbHVlKTsKLX0KLQotdm9pZCBMYXVuY2hlcldp
bmRvdzo6YXBwbHlQcmVmcyhMYXVuY2hlcldpbmRvdyogc291cmNlKQordm9pZCBMYXVuY2hlcldp
bmRvdzo6YXBwbHlQcmVmcygpCiB7Ci0gICAgUVdlYlNldHRpbmdzKiBvdGhlciA9IHNvdXJjZSA/
IHNvdXJjZS0+cGFnZSgpLT5zZXR0aW5ncygpIDogMDsKICAgICBRV2ViU2V0dGluZ3MqIHNldHRp
bmdzID0gcGFnZSgpLT5zZXR0aW5ncygpOwotCi0gICAgYXBwbHlTZXR0aW5nKFFXZWJTZXR0aW5n
czo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIHNldHRpbmdzLCBvdGhlciwgZ1VzZUNv
bXBvc2l0aW5nKTsKLSAgICBhcHBseVNldHRpbmcoUVdlYlNldHRpbmdzOjpUaWxlZEJhY2tpbmdT
dG9yZUVuYWJsZWQsIHNldHRpbmdzLCBvdGhlciwgZ1VzZVRpbGVkQmFja2luZ1N0b3JlKTsKLSAg
ICBhcHBseVNldHRpbmcoUVdlYlNldHRpbmdzOjpXZWJHTEVuYWJsZWQsIHNldHRpbmdzLCBvdGhl
ciwgZmFsc2UpOwotICAgIGFwcGx5U2V0dGluZyhRV2ViU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQsIHNldHRpbmdzLCBvdGhlciwgZ1VzZUZyYW1lRmxhdHRlbmluZyk7CisgICAgc2V0
dGluZ3MtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkLCBtX3VzZXJEYXRhLnVzZUNvbXBvc2l0aW5nKTsKKyAgICBzZXR0aW5ncy0+c2V0QXR0
cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkLCBtX3VzZXJEYXRh
LnVzZVRpbGVkQmFja2luZ1N0b3JlKTsKKyAgICBzZXR0aW5ncy0+c2V0QXR0cmlidXRlKFFXZWJT
ZXR0aW5nczo6RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgbV91c2VyRGF0YS51c2VGcmFtZUZsYXR0
ZW5pbmcpOworICAgIHNldHRpbmdzLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpXZWJHTEVu
YWJsZWQsIG1fdXNlckRhdGEudXNlV2ViR0wpOwogCiAgICAgaWYgKCFpc0dyYXBoaWNzQmFzZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViVmlld0dyYXBoaWNzQmFzZWQqIHZpZXcgPSBz
dGF0aWNfY2FzdDxXZWJWaWV3R3JhcGhpY3NCYXNlZCo+KG1fdmlldyk7Ci0gICAgV2ViVmlld0dy
YXBoaWNzQmFzZWQqIG90aGVyVmlldyA9IHNvdXJjZSA/IHFvYmplY3RfY2FzdDxXZWJWaWV3R3Jh
cGhpY3NCYXNlZCo+KHNvdXJjZS0+bV92aWV3KSA6IDA7Ci0KLSAgICB2aWV3LT5zZXRWaWV3cG9y
dFVwZGF0ZU1vZGUob3RoZXJWaWV3ID8gb3RoZXJWaWV3LT52aWV3cG9ydFVwZGF0ZU1vZGUoKSA6
IGdWaWV3cG9ydFVwZGF0ZU1vZGUpOwotICAgIHZpZXctPnNldEZyYW1lUmF0ZU1lYXN1cmVtZW50
RW5hYmxlZChvdGhlclZpZXcgPyBvdGhlclZpZXctPmZyYW1lUmF0ZU1lYXN1cmVtZW50RW5hYmxl
ZCgpIDogZ1Nob3dGcmFtZVJhdGUpOworICAgIHZpZXctPnNldFZpZXdwb3J0VXBkYXRlTW9kZSht
X3VzZXJEYXRhLnZpZXdwb3J0VXBkYXRlTW9kZSk7CisgICAgdmlldy0+c2V0RnJhbWVSYXRlTWVh
c3VyZW1lbnRFbmFibGVkKG1fdXNlckRhdGEuc2hvd0ZyYW1lUmF0ZSk7CisgICAgdmlldy0+c2V0
SXRlbUNhY2hlTW9kZShtX3VzZXJEYXRhLmNhY2hlV2ViVmlldyA/IFFHcmFwaGljc0l0ZW06OkRl
dmljZUNvb3JkaW5hdGVDYWNoZSA6IFFHcmFwaGljc0l0ZW06Ok5vQ2FjaGUpOwogCi0gICAgaWYg
KG90aGVyVmlldykgewotICAgICAgICB2aWV3LT5zZXRJdGVtQ2FjaGVNb2RlKG90aGVyVmlldy0+
aXRlbUNhY2hlTW9kZSgpKTsKLSAgICAgICAgdmlldy0+c2V0UmVzaXplc1RvQ29udGVudHMob3Ro
ZXJWaWV3LT5yZXNpemVzVG9Db250ZW50cygpKTsKLSAgICAgICAgdmlldy0+c2V0Q3VzdG9tTGF5
b3V0U2l6ZShvdGhlclZpZXctPmN1c3RvbUxheW91dFNpemUoKSk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgdmlldy0+c2V0SXRlbUNhY2hlTW9kZShnQ2FjaGVXZWJWaWV3ID8gUUdyYXBoaWNzSXRl
bTo6RGV2aWNlQ29vcmRpbmF0ZUNhY2hlIDogUUdyYXBoaWNzSXRlbTo6Tm9DYWNoZSk7Ci0gICAg
ICAgIHRvZ2dsZVJlc2l6ZXNUb0NvbnRlbnRzKGdSZXNpemVzVG9Db250ZW50cyk7CisgICAgaWYg
KG1fdXNlckRhdGEucmVzaXplc1RvQ29udGVudHMpIHsKKyAgICAgICAgdmlldy0+c2V0Q3VzdG9t
TGF5b3V0U2l6ZShzaXplKCkpOworICAgICAgICB0b2dnbGVSZXNpemVzVG9Db250ZW50cyhtX3Vz
ZXJEYXRhLnJlc2l6ZXNUb0NvbnRlbnRzKTsKICAgICB9CiB9CiAKQEAgLTcxMiw3ICs2NzksNyBA
QCB2b2lkIExhdW5jaGVyV2luZG93OjpzZXRUb3VjaE1vY2tpbmcoYm9vbCBvbikKIAogdm9pZCBM
YXVuY2hlcldpbmRvdzo6dG9nZ2xlQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29sIHRvZ2dsZSkK
IHsKLSAgICBnVXNlQ29tcG9zaXRpbmcgPSB0b2dnbGU7CisgICAgbV91c2VyRGF0YS51c2VDb21w
b3NpdGluZyA9IHRvZ2dsZTsKICAgICBwYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLCB0b2dnbGUpOwogfQog
CkBAIC03MjMsMTIgKzY5MCwxMyBAQCB2b2lkIExhdW5jaGVyV2luZG93Ojp0b2dnbGVUaWxlZEJh
Y2tpbmdTdG9yZShib29sIHRvZ2dsZSkKIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6dG9nZ2xlUmVz
aXplc1RvQ29udGVudHMoYm9vbCB0b2dnbGUpCiB7Ci0gICAgZ1Jlc2l6ZXNUb0NvbnRlbnRzID0g
dG9nZ2xlOworICAgIG1fdXNlckRhdGEucmVzaXplc1RvQ29udGVudHMgPSB0b2dnbGU7CiAgICAg
c3RhdGljX2Nhc3Q8V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3ZpZXcpLT5zZXRSZXNpemVzVG9D
b250ZW50cyh0b2dnbGUpOwogfQogCiB2b2lkIExhdW5jaGVyV2luZG93Ojp0b2dnbGVXZWJHTChi
b29sIHRvZ2dsZSkKIHsKKyAgICBtX3VzZXJEYXRhLnVzZVdlYkdMID0gdG9nZ2xlOwogICAgIHBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6V2ViR0xFbmFibGVk
LCB0b2dnbGUpOwogfQogCkBAIC03NTIsNyArNzIwLDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6
dG9nZ2xlRnVsbFNjcmVlbk1vZGUoYm9vbCBlbmFibGUpCiAKIHZvaWQgTGF1bmNoZXJXaW5kb3c6
OnRvZ2dsZUZyYW1lRmxhdHRlbmluZyhib29sIHRvZ2dsZSkKIHsKLSAgICBnVXNlRnJhbWVGbGF0
dGVuaW5nID0gdG9nZ2xlOworICAgIG1fdXNlckRhdGEudXNlRnJhbWVGbGF0dGVuaW5nID0gdG9n
Z2xlOwogICAgIHBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgdG9nZ2xlKTsKIH0KIApAQCAtNzcyLDcgKzc0MCw3IEBA
IHZvaWQgTGF1bmNoZXJXaW5kb3c6OnRvZ2dsZVFHTFdpZGdldFZpZXdwb3J0KGJvb2wgZW5hYmxl
KQogICAgIGlmICghaXNHcmFwaGljc0Jhc2VkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdV
c2VRR0xXaWRnZXRWaWV3cG9ydCA9IGVuYWJsZTsKKyAgICBtX3VzZXJEYXRhLnVzZVFHTFdpZGdl
dFZpZXdwb3J0ID0gZW5hYmxlOwogICAgIFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3ID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3ZpZXcpOwogCiAgICAgdmlldy0+c2V0
Vmlld3BvcnQoZW5hYmxlID8gbmV3IFFHTFdpZGdldCgpIDogMCk7CkBAIC03ODEsMTMgKzc0OSwx
MyBAQCB2b2lkIExhdW5jaGVyV2luZG93Ojp0b2dnbGVRR0xXaWRnZXRWaWV3cG9ydChib29sIGVu
YWJsZSkKIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6Y2hhbmdlVmlld3BvcnRVcGRhdGVNb2RlKGlu
dCBtb2RlKQogewotICAgIGdWaWV3cG9ydFVwZGF0ZU1vZGUgPSBRR3JhcGhpY3NWaWV3OjpWaWV3
cG9ydFVwZGF0ZU1vZGUobW9kZSk7CisgICAgbV91c2VyRGF0YS52aWV3cG9ydFVwZGF0ZU1vZGUg
PSBRR3JhcGhpY3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGUobW9kZSk7CiAKICAgICBpZiAoIWlz
R3JhcGhpY3NCYXNlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJWaWV3R3JhcGhpY3NC
YXNlZCogdmlldyA9IHN0YXRpY19jYXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4obV92aWV3KTsK
LSAgICB2aWV3LT5zZXRWaWV3cG9ydFVwZGF0ZU1vZGUoZ1ZpZXdwb3J0VXBkYXRlTW9kZSk7Cisg
ICAgdmlldy0+c2V0Vmlld3BvcnRVcGRhdGVNb2RlKG1fdXNlckRhdGEudmlld3BvcnRVcGRhdGVN
b2RlKTsKIH0KIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6c2hvd0ZQUyhib29sIGVuYWJsZSkKQEAg
LTc5NSw3ICs3NjMsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpzaG93RlBTKGJvb2wgZW5hYmxl
KQogICAgIGlmICghaXNHcmFwaGljc0Jhc2VkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdT
aG93RnJhbWVSYXRlID0gZW5hYmxlOworICAgIG1fdXNlckRhdGEuc2hvd0ZyYW1lUmF0ZSA9IGVu
YWJsZTsKICAgICBXZWJWaWV3R3JhcGhpY3NCYXNlZCogdmlldyA9IHN0YXRpY19jYXN0PFdlYlZp
ZXdHcmFwaGljc0Jhc2VkKj4obV92aWV3KTsKICAgICB2aWV3LT5zZXRGcmFtZVJhdGVNZWFzdXJl
bWVudEVuYWJsZWQoZW5hYmxlKTsKIApAQCAtODY4LDE0ICs4MzYsMTQgQEAgdm9pZCBMYXVuY2hl
cldpbmRvdzo6dXBkYXRlRlBTKGludCBmcHMpCiAKIExhdW5jaGVyV2luZG93KiBMYXVuY2hlcldp
bmRvdzo6bmV3V2luZG93KCkKIHsKLSAgICBMYXVuY2hlcldpbmRvdyogbXcgPSBuZXcgTGF1bmNo
ZXJXaW5kb3codGhpcywgZmFsc2UpOworICAgIExhdW5jaGVyV2luZG93KiBtdyA9IG5ldyBMYXVu
Y2hlcldpbmRvdygmbV91c2VyRGF0YSk7CiAgICAgbXctPnNob3coKTsKICAgICByZXR1cm4gbXc7
CiB9CiAKIExhdW5jaGVyV2luZG93KiBMYXVuY2hlcldpbmRvdzo6Y2xvbmVXaW5kb3coKQogewot
ICAgIExhdW5jaGVyV2luZG93KiBtdyA9IG5ldyBMYXVuY2hlcldpbmRvdyh0aGlzLCB0cnVlKTsK
KyAgICBMYXVuY2hlcldpbmRvdyogbXcgPSBuZXcgTGF1bmNoZXJXaW5kb3coJm1fdXNlckRhdGEs
IHFvYmplY3RfY2FzdDxRR3JhcGhpY3NWaWV3Kj4obV92aWV3KS0+c2NlbmUoKSk7CiAgICAgbXct
PnNob3coKTsKICAgICByZXR1cm4gbXc7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9RdFRl
c3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmggYi9XZWJLaXRUb29scy9RdFRlc3RCcm93c2VyL2xh
dW5jaGVyd2luZG93LmgKaW5kZXggZjlmMTU3ZC4uNTdjZDNjYiAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCisrKyBiL1dlYktpdFRvb2xzL1F0
VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaApAQCAtNzUsMTEgKzc1LDQ5IEBACiAjdW5kZWYg
S2V5UHJlc3MKICNlbmRpZgogCitjbGFzcyBMYXVuY2hlckRhdGEgeworcHVibGljOgorICAgIExh
dW5jaGVyRGF0YSgpCisgICAgICAgIDogdXNlR3JhcGhpY3NWaWV3KGZhbHNlKQorICAgICAgICAs
IHVzZUNvbXBvc2l0aW5nKHRydWUpCisgICAgICAgICwgdXNlVGlsZWRCYWNraW5nU3RvcmUoZmFs
c2UpCisgICAgICAgICwgdXNlV2ViR0woZmFsc2UpCisjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUp
IHx8IGRlZmluZWQoUV9XU19TNjApCisgICAgICAgICwgdXNlRnJhbWVGbGF0dGVuaW5nKHRydWUp
CisjZWxzZQorICAgICAgICAsIHVzZUZyYW1lRmxhdHRlbmluZyhmYWxzZSkKKyNlbmRpZgorICAg
ICAgICAsIGNhY2hlV2ViVmlldyhmYWxzZSkKKyAgICAgICAgLCBzaG93RnJhbWVSYXRlKGZhbHNl
KQorICAgICAgICAsIHJlc2l6ZXNUb0NvbnRlbnRzKGZhbHNlKQorICAgICAgICAsIHZpZXdwb3J0
VXBkYXRlTW9kZShRR3JhcGhpY3NWaWV3OjpNaW5pbWFsVmlld3BvcnRVcGRhdGUpCisgICAgICAg
ICwgaW5zcGVjdG9yVXJsKFFVcmwoKSkKKyNpZiBkZWZpbmVkKFFUX0NPTkZJR1VSRURfV0lUSF9P
UEVOR0wpCisgICAgICAgICwgdXNlUUdMV2lkZ2V0Vmlld3BvcnQoZmFsc2UpCisjZW5kaWYKKyAg
ICB7CisgICAgfQorCisgICAgYm9vbCB1c2VHcmFwaGljc1ZpZXc7CisgICAgYm9vbCB1c2VDb21w
b3NpdGluZzsKKyAgICBib29sIHVzZVRpbGVkQmFja2luZ1N0b3JlOworICAgIGJvb2wgdXNlV2Vi
R0w7CisgICAgYm9vbCB1c2VGcmFtZUZsYXR0ZW5pbmc7CisgICAgYm9vbCBjYWNoZVdlYlZpZXc7
CisgICAgYm9vbCBzaG93RnJhbWVSYXRlOworICAgIGJvb2wgcmVzaXplc1RvQ29udGVudHM7Cisg
ICAgUUdyYXBoaWNzVmlldzo6Vmlld3BvcnRVcGRhdGVNb2RlIHZpZXdwb3J0VXBkYXRlTW9kZTsK
KyAgICBRVXJsIGluc3BlY3RvclVybDsKKyNpZiBkZWZpbmVkKFFUX0NPTkZJR1VSRURfV0lUSF9P
UEVOR0wpCisgICAgYm9vbCB1c2VRR0xXaWRnZXRWaWV3cG9ydDsKKyNlbmRpZgorfTsKKwogY2xh
c3MgTGF1bmNoZXJXaW5kb3cgOiBwdWJsaWMgTWFpbldpbmRvdyB7CiAgICAgUV9PQkpFQ1QKIAog
cHVibGljOgotICAgIExhdW5jaGVyV2luZG93KExhdW5jaGVyV2luZG93KiBvdGhlciA9IDAsIGJv
b2wgc2hhcmVTY2VuZSA9IGZhbHNlKTsKKyAgICBMYXVuY2hlcldpbmRvdyhMYXVuY2hlckRhdGEq
IGRhdGEgPSAwLCBRR3JhcGhpY3NTY2VuZSogc2hhcmVkU2NlbmUgPSAwKTsKICAgICB2aXJ0dWFs
IH5MYXVuY2hlcldpbmRvdygpOwogCiAgICAgdmlydHVhbCB2b2lkIGtleVByZXNzRXZlbnQoUUtl
eUV2ZW50KiBldmVudCk7CkBAIC05MSwyMiArMTI5LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBl
dmVudEZpbHRlcihRT2JqZWN0KiBvYmosIFFFdmVudCogZXZlbnQpOwogCi1wdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IGludCBnRXhpdENsaWNrQXJlYSA9IDgwOwotICAgIHN0YXRpYyBib29sIGdV
c2VHcmFwaGljc1ZpZXc7Ci0gICAgc3RhdGljIGJvb2wgZ1VzZUNvbXBvc2l0aW5nOwotICAgIHN0
YXRpYyBib29sIGdDYWNoZVdlYlZpZXc7Ci0gICAgc3RhdGljIGJvb2wgZ1Nob3dGcmFtZVJhdGU7
Ci0gICAgc3RhdGljIGJvb2wgZ1Jlc2l6ZXNUb0NvbnRlbnRzOwotICAgIHN0YXRpYyBib29sIGdV
c2VUaWxlZEJhY2tpbmdTdG9yZTsKLSAgICBzdGF0aWMgYm9vbCBnVXNlRnJhbWVGbGF0dGVuaW5n
OwotICAgIHN0YXRpYyBRR3JhcGhpY3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGUgZ1ZpZXdwb3J0
VXBkYXRlTW9kZTsKLSAgICBzdGF0aWMgUVVybCBnSW5zcGVjdG9yVXJsOwotCi0jaWYgZGVmaW5l
ZChRVF9DT05GSUdVUkVEX1dJVEhfT1BFTkdMKQotICAgIHN0YXRpYyBib29sIGdVc2VRR0xXaWRn
ZXRWaWV3cG9ydDsKLSNlbmRpZgotCiBwcm90ZWN0ZWQgc2xvdHM6CiAgICAgdm9pZCBsb2FkU3Rh
cnRlZCgpOwogICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CkBAIC0xMjcsNyArMTQ5LDcgQEAgcHJv
dGVjdGVkIHNsb3RzOgogICAgIC8qIHZvaWQgZHVtcFBsdWdpbnMoKSAqLwogICAgIHZvaWQgZHVt
cEh0bWwoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZVZpZXcoYm9vbCB1c2VHcmFwaGljc1ZpZXcg
PSBmYWxzZSk7CisgICAgdm9pZCBpbml0aWFsaXplVmlldygpOwogCiAgICAgdm9pZCBzZXRUb3Vj
aE1vY2tpbmcoYm9vbCBvbik7CiAgICAgdm9pZCB0b2dnbGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
KGJvb2wgdG9nZ2xlKTsKQEAgLTE1OCwxMCArMTgwLDEwIEBAIHNpZ25hbHM6CiAgICAgdm9pZCBl
bnRlcmVkRnVsbFNjcmVlbk1vZGUoYm9vbCBvbik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0
KGJvb2wgdXNlR3JhcGhpY3NWaWV3ID0gZmFsc2UpOworICAgIHZvaWQgaW5pdCgpOwogICAgIGJv
b2wgaXNHcmFwaGljc0Jhc2VkKCkgY29uc3Q7CiAgICAgdm9pZCBjcmVhdGVDaHJvbWUoKTsKLSAg
ICB2b2lkIGFwcGx5UHJlZnMoTGF1bmNoZXJXaW5kb3cqIG90aGVyID0gMCk7CisgICAgdm9pZCBh
cHBseVByZWZzKCk7CiAgICAgdm9pZCBhcHBseVpvb20oKTsKIAogcHJpdmF0ZToKQEAgLTE3MSw2
ICsxOTMsOCBAQCBwcml2YXRlOgogICAgIFFXaWRnZXQqIG1fdmlldzsKICAgICBXZWJJbnNwZWN0
b3IqIG1faW5zcGVjdG9yOwogCisgICAgTGF1bmNoZXJEYXRhIG1fdXNlckRhdGE7CisKICAgICBR
QWN0aW9uKiBtX2Zvcm1hdE1lbnVBY3Rpb247CiAgICAgUUFjdGlvbiogbV9mbGlwQW5pbWF0ZWQ7
CiAgICAgUUFjdGlvbiogbV9mbGlwWUFuaW1hdGVkOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
UXRUZXN0QnJvd3Nlci9tYWluLmNwcCBiL1dlYktpdFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbi5j
cHAKaW5kZXggMzNhNjQxNi4uNDY0NGUwYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvUXRUZXN0
QnJvd3Nlci9tYWluLmNwcAorKysgYi9XZWJLaXRUb29scy9RdFRlc3RCcm93c2VyL21haW4uY3Bw
CkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAibGF1bmNoZXJ3aW5kb3cuaCIKICNpbmNsdWRl
ICJ1cmxsb2FkZXIuaCIKIAorTGF1bmNoZXJEYXRhIGxhdW5jaGVyRGF0YTsKKwogaW50IGxhdW5j
aGVyTWFpbihjb25zdCBRQXBwbGljYXRpb24mIGFwcCkKIHsKICNpZm5kZWYgTkRFQlVHCkBAIC04
OSw3ICs5MSw3IEBAIExhdW5jaGVyQXBwbGljYXRpb246OkxhdW5jaGVyQXBwbGljYXRpb24oaW50
JiBhcmdjLCBjaGFyKiogYXJndikKIAogc3RhdGljIHZvaWQgcmVxdWlyZXNHcmFwaGljc1ZpZXco
Y29uc3QgUVN0cmluZyYgb3B0aW9uKQogewotICAgIGlmIChMYXVuY2hlcldpbmRvdzo6Z1VzZUdy
YXBoaWNzVmlldykKKyAgICBpZiAobGF1bmNoZXJEYXRhLnVzZUdyYXBoaWNzVmlldykKICAgICAg
ICAgcmV0dXJuOwogICAgIGFwcFF1aXQoMSwgUVN0cmluZygiJTEgb25seSB3b3JrcyBpbiBjb21i
aW5hdGlvbiB3aXRoIHRoZSAtZ3JhcGhpY3NiYXNlZCBvcHRpb24iKS5hcmcob3B0aW9uKSk7CiB9
CkBAIC0xMjEsMzEgKzEyMywzMSBAQCB2b2lkIExhdW5jaGVyQXBwbGljYXRpb246OmhhbmRsZVVz
ZXJPcHRpb25zKCkKICAgICB9CiAKICAgICBpZiAoYXJncy5jb250YWlucygiLWdyYXBoaWNzYmFz
ZWQiKSkKLSAgICAgICAgTGF1bmNoZXJXaW5kb3c6OmdVc2VHcmFwaGljc1ZpZXcgPSB0cnVlOwor
ICAgICAgICBsYXVuY2hlckRhdGEudXNlR3JhcGhpY3NWaWV3ID0gdHJ1ZTsKIAogICAgIGlmIChh
cmdzLmNvbnRhaW5zKCItbm8tY29tcG9zaXRpbmciKSkgewogICAgICAgICByZXF1aXJlc0dyYXBo
aWNzVmlldygiLW5vLWNvbXBvc2l0aW5nIik7Ci0gICAgICAgIExhdW5jaGVyV2luZG93OjpnVXNl
Q29tcG9zaXRpbmcgPSBmYWxzZTsKKyAgICAgICAgbGF1bmNoZXJEYXRhLnVzZUNvbXBvc2l0aW5n
ID0gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKGFyZ3MuY29udGFpbnMoIi1zaG93LWZwcyIpKSB7
CiAgICAgICAgIHJlcXVpcmVzR3JhcGhpY3NWaWV3KCItc2hvdy1mcHMiKTsKLSAgICAgICAgTGF1
bmNoZXJXaW5kb3c6OmdTaG93RnJhbWVSYXRlID0gdHJ1ZTsKKyAgICAgICAgbGF1bmNoZXJEYXRh
LnNob3dGcmFtZVJhdGUgPSB0cnVlOwogICAgIH0KIAogICAgIGlmIChhcmdzLmNvbnRhaW5zKCIt
Y2FjaGUtd2VidmlldyIpKSB7CiAgICAgICAgIHJlcXVpcmVzR3JhcGhpY3NWaWV3KCItY2FjaGUt
d2VidmlldyIpOwotICAgICAgICBMYXVuY2hlcldpbmRvdzo6Z0NhY2hlV2ViVmlldyA9IHRydWU7
CisgICAgICAgIGxhdW5jaGVyRGF0YS5jYWNoZVdlYlZpZXcgPSB0cnVlOwogICAgIH0KIAogICAg
IGlmIChhcmdzLmNvbnRhaW5zKCItdGlsZWQtYmFja2luZy1zdG9yZSIpKSB7CiAgICAgICAgIHJl
cXVpcmVzR3JhcGhpY3NWaWV3KCItdGlsZWQtYmFja2luZy1zdG9yZSIpOwotICAgICAgICBMYXVu
Y2hlcldpbmRvdzo6Z1VzZVRpbGVkQmFja2luZ1N0b3JlID0gdHJ1ZTsKKyAgICAgICAgbGF1bmNo
ZXJEYXRhLnVzZVRpbGVkQmFja2luZ1N0b3JlID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoYXJn
cy5jb250YWlucygiLXJlc2l6ZXMtdG8tY29udGVudHMiKSkgewogICAgICAgICByZXF1aXJlc0dy
YXBoaWNzVmlldygiLXJlc2l6ZXMtdG8tY29udGVudHMiKTsKLSAgICAgICAgTGF1bmNoZXJXaW5k
b3c6OmdSZXNpemVzVG9Db250ZW50cyA9IHRydWU7CisgICAgICAgIGxhdW5jaGVyRGF0YS5yZXNp
emVzVG9Db250ZW50cyA9IHRydWU7CiAgICAgfQogCiAgICAgUVN0cmluZyBhcmcxKCItdmlld3Bv
cnQtdXBkYXRlLW1vZGUiKTsKQEAgLTE2MCwxMyArMTYyLDEzIEBAIHZvaWQgTGF1bmNoZXJBcHBs
aWNhdGlvbjo6aGFuZGxlVXNlck9wdGlvbnMoKQogICAgICAgICBpZiAoaWR4ID09IC0xKQogICAg
ICAgICAgICAgYXBwUXVpdCgxLCBRU3RyaW5nKCIlMSB2YWx1ZSBoYXMgdG8gYmUgb25lIG9mIFsl
Ml0iKS5hcmcoYXJnMSkuYXJnKGZvcm1hdEtleXModXBkYXRlTW9kZXMpKSk7CiAKLSAgICAgICAg
TGF1bmNoZXJXaW5kb3c6OmdWaWV3cG9ydFVwZGF0ZU1vZGUgPSBzdGF0aWNfY2FzdDxRR3JhcGhp
Y3NWaWV3OjpWaWV3cG9ydFVwZGF0ZU1vZGU+KGlkeCk7CisgICAgICAgIGxhdW5jaGVyRGF0YS52
aWV3cG9ydFVwZGF0ZU1vZGUgPSBzdGF0aWNfY2FzdDxRR3JhcGhpY3NWaWV3OjpWaWV3cG9ydFVw
ZGF0ZU1vZGU+KGlkeCk7CiAgICAgfQogCiAgICAgUVN0cmluZyBpbnNwZWN0b3JVcmxBcmcoIi1p
bnNwZWN0b3ItdXJsIik7CiAgICAgaW50IGluc3BlY3RvclVybEluZGV4ID0gYXJncy5pbmRleE9m
KGluc3BlY3RvclVybEFyZyk7CiAgICAgaWYgKGluc3BlY3RvclVybEluZGV4ICE9IC0xKQotICAg
ICAgIExhdW5jaGVyV2luZG93OjpnSW5zcGVjdG9yVXJsID0gdGFrZU9wdGlvblZhbHVlKCZhcmdz
LCBpbnNwZWN0b3JVcmxJbmRleCk7CisgICAgICAgbGF1bmNoZXJEYXRhLmluc3BlY3RvclVybCA9
IHRha2VPcHRpb25WYWx1ZSgmYXJncywgaW5zcGVjdG9yVXJsSW5kZXgpOwogCiAgICAgaW50IHJv
Ym90SW5kZXggPSBhcmdzLmluZGV4T2YoIi1yIik7CiAgICAgaWYgKHJvYm90SW5kZXggIT0gLTEp
IHsKQEAgLTIxMyw3ICsyMTUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg
ICAgZm9yZWFjaCAoUVN0cmluZyB1cmwsIHVybHMpIHsKICAgICAgICAgTGF1bmNoZXJXaW5kb3cq
IG5ld1dpbmRvdzsKICAgICAgICAgaWYgKCF3aW5kb3cpCi0gICAgICAgICAgICBuZXdXaW5kb3cg
PSB3aW5kb3cgPSBuZXcgTGF1bmNoZXJXaW5kb3coKTsKKyAgICAgICAgICAgIG5ld1dpbmRvdyA9
IHdpbmRvdyA9IG5ldyBMYXVuY2hlcldpbmRvdygmbGF1bmNoZXJEYXRhKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93LT5uZXdXaW5kb3coKTsKIAotLSAKMS43
LjAuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>