<?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>163158</bug_id>
          
          <creation_ts>2016-10-07 16:32:41 -0700</creation_ts>
          <short_desc>Share more code between iOS and macOS ViewGestureController</short_desc>
          <delta_ts>2016-10-10 00:16:11 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163169</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1237859</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-07 16:32:41 -0700</bug_when>
    <thetext>Share more code between iOS and macOS ViewGestureController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237862</commentid>
    <comment_count>1</comment_count>
      <attachid>290984</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-07 16:33:05 -0700</bug_when>
    <thetext>Created attachment 290984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237881</commentid>
    <comment_count>2</comment_count>
      <attachid>290991</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-07 17:51:47 -0700</bug_when>
    <thetext>Created attachment 290991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237944</commentid>
    <comment_count>3</comment_count>
      <attachid>291010</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-08 00:36:54 -0700</bug_when>
    <thetext>Created attachment 291010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237946</commentid>
    <comment_count>4</comment_count>
      <attachid>291011</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-08 00:56:29 -0700</bug_when>
    <thetext>Created attachment 291011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237947</commentid>
    <comment_count>5</comment_count>
      <attachid>291011</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-08 01:33:32 -0700</bug_when>
    <thetext>Comment on attachment 291011
Patch

Clearing flags on attachment: 291011

Committed r206950: &lt;http://trac.webkit.org/changeset/206950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237948</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-08 01:33:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238007</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-08 13:42:26 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 163169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238195</commentid>
    <comment_count>8</comment_count>
      <attachid>291065</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-09 23:38:57 -0700</bug_when>
    <thetext>Created attachment 291065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238205</commentid>
    <comment_count>9</comment_count>
      <attachid>291065</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 00:16:06 -0700</bug_when>
    <thetext>Comment on attachment 291065
Patch

Clearing flags on attachment: 291065

Committed r206986: &lt;http://trac.webkit.org/changeset/206986&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238206</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 00:16:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290984</attachid>
            <date>2016-10-07 16:33:05 -0700</date>
            <delta_ts>2016-10-07 17:51:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163158-20161007162949.patch</filename>
            <type>text/plain</type>
            <size>15647</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwYzMxYjI1OWZlODVm
M2Q1MTU3NWEyOThiYmMxYzhlMDA3ZDU5MS4uNWU3ZGFkODM1N2JlNTk3Mjk5NjNhZGMyNzM1Yjhk
NzM0OWIxYzA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTA3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MgVmlld0dlc3R1cmVDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZSBjYW5Td2lwZUlu
RGlyZWN0aW9uKCkgYW5kIHRoZSAodW51c2VkIG9uIE1hYykgYWx0ZXJuYXRlIGJhY2stZm9yd2Fy
ZCBsaXN0IG1lY2hhbmlzbS4KKyAgICAgICAgTWFrZSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgb3Bl
cmF0ZSBpbiB0ZXJtcyBvZiBXZWJQYWdlUHJveHksIG5vdCBXS1dlYlZpZXcsCisgICAgICAgIGJl
Y2F1c2UgaXQgc2hvdWxkbid0IGtub3cgYW55dGhpbmcgYWJvdXQgV0tXZWJWaWV3LgorICAgICAg
ICBSZWZhY3RvciBzY3JvbGxFdmVudENhbkJlY29tZVN3aXBlIGEgYml0IHRvIGJlIGxlc3MgcmVw
ZXRpdGl2ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgc2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRB
bHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlKToKKyAgICAgICAgKFdlYktpdDo6Vmll
d0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFj
a0ZvcndhcmRMaXN0U291cmNlVmlldyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVuZGlu
Z1N3aXBlVHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6dHJ5
VG9TdGFydFN3aXBlKToKKwogMjAxNi0xMC0wNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQgb2YgQVBJOjpTZXNzaW9uIGFuZCBXS1Nlc3Np
b25SZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggN2RmMGFiYzgzNjkzOWUzZGI3NjhhZjk3MjQ0YmI2MjgxZWJiMjJmMS4uNDM3ZDhm
MDZiMjg4NTc4ZjVhYjZiZDMwZTRhYzE0ODQ0YTlmNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxOTgsNyArMjE5OCw3IEBA
IHN0YXRpYyBib29sIHNjcm9sbFZpZXdDYW5TY3JvbGwoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3
KQogICAgICAgICBpZiAoIV9nZXN0dXJlQ29udHJvbGxlcikgewogICAgICAgICAgICAgX2dlc3R1
cmVDb250cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcj4oKl9wYWdlKTsKICAgICAgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+aW5zdGFsbFN3
aXBlSGFuZGxlcihzZWxmLCBbc2VsZiBzY3JvbGxWaWV3XSk7Ci0gICAgICAgICAgICBfZ2VzdHVy
ZUNvbnRyb2xsZXItPnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcoW19jb25m
aWd1cmF0aW9uIF9hbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzXSk7CisgICAg
ICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNv
dXJjZVBhZ2UoW1tfY29uZmlndXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25H
ZXN0dXJlc10gX3BhZ2VdKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBfZ2VzdHVy
ZUNvbnRyb2xsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4NTZjY2E3YTNlYjdj
NzA1NGZjODgyNjc4ZjRhZjcwNDc0MTYyN2Q2Li40OWYxOGUzNzhhNTI5ZDA1NjViMGQ3ZWU5ZTYx
ODgyMTJjZmRkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
Vmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
IgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldl
YkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC01OSw3ICs2
MCw3IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVDb250cm9sbGVyKFdlYlBh
Z2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5
KQogICAgICwgbV9zd2lwZUFjdGl2ZUxvYWRNb25pdG9yaW5nVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpjaGVja0ZvckFjdGl2ZUxvYWRzKQogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICAsIG1fcGVuZGluZ1N3aXBlVHJhY2tlcih3ZWJQYWdlUHJveHks
IHN0ZDo6YmluZCgmVmlld0dlc3R1cmVDb250cm9sbGVyOjp0cmFja1N3aXBlR2VzdHVyZSwgdGhp
cywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpKQorICAgICwg
bV9wZW5kaW5nU3dpcGVUcmFja2VyKHdlYlBhZ2VQcm94eSwgKnRoaXMpCiAjZW5kaWYKIHsKICAg
ICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlUHJv
eHkucGFnZUlEKCksICp0aGlzKTsKQEAgLTgzLDYgKzg0LDI0IEBAIFZpZXdHZXN0dXJlQ29udHJv
bGxlciogVmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2UodWlu
dDY0X3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGdlc3R1cmVDb250cm9s
bGVySXRlci0+dmFsdWU7CiB9CisgICAgCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0
QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7
CisgICAgaWYgKHBhZ2UpCisgICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
UGFnZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYWx0ZXJu
YXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5jbGVhcigpOworfQorICAgIAorYm9vbCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IGFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBh
Z2UuZ2V0KCk7CisgICAgYXV0byYgYmFja0ZvcndhcmRMaXN0ID0gYWx0ZXJuYXRlQmFja0Zvcndh
cmRMaXN0U291cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UtPmJh
Y2tGb3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCk7CisgICAg
aWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFjaykKKyAgICAgICAgcmV0dXJuICEh
YmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7CisgICAgcmV0dXJuICEhYmFja0ZvcndhcmRMaXN0
LmZvcndhcmRJdGVtKCk7Cit9CisKIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5k
ZXggMTY1N2IxZTExN2JiYTY4OWQ0NDg5MzdlNmVkMzBkM2UxNzZmNzFjOS4uZWE1ZDA2NmFlNjg3
ZTE1Y2JhYmJkMDY1ZWFiOWQxODA2ODI2NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjgsMjIgKzI4
LDE5IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2luY2x1ZGUgIldlYWtPYmpDUHRyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5j
bHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0vLyBGSVhNRTogTW92ZSB0
aGlzIGZpbGUgb3V0IG9mIHRoZSBtYWMvIHN1YmRpcmVjdG9yeS4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKICNpZiBQTEFURk9STShJT1MpCiBPQkpD
X0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgV0tTd2lwZVRyYW5zaXRpb25Db250cm9sbGVyOwot
T0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9VSU5hdmlnYXRpb25JbnRlcmFjdGl2
ZVRyYW5zaXRpb25CYXNlOwogT0JKQ19DTEFTUyBfVUlWaWV3Q29udHJvbGxlck9uZVRvT25lVHJh
bnNpdGlvbkNvbnRleHQ7CiBPQkpDX0NMQVNTIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNv
bnRleHQ7CkBAIC0xMDksMTMgKzEwNiwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BoeXNpY2Fs
bHlTd2lwaW5nTGVmdChTd2lwZURpcmVjdGlvbikgY29uc3Q7CiAjZWxzZQogICAgIHZvaWQgaW5z
dGFsbFN3aXBlSGFuZGxlcihVSVZpZXcgKmdlc3R1cmVSZWNvZ25pemVyVmlldywgVUlWaWV3ICpz
d2lwaW5nVmlldyk7Ci0gICAgdm9pZCBzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VW
aWV3KFdLV2ViVmlldyAqKTsKLSAgICBib29sIGNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJl
Y3Rpb24pOworICAgIHZvaWQgc2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShX
ZWJQYWdlUHJveHkqKTsKICAgICB2b2lkIGJlZ2luU3dpcGVHZXN0dXJlKF9VSU5hdmlnYXRpb25J
bnRlcmFjdGl2ZVRyYW5zaXRpb25CYXNlICosIFN3aXBlRGlyZWN0aW9uKTsKICAgICB2b2lkIGVu
ZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBfVUlWaWV3
Q29udHJvbGxlclRyYW5zaXRpb25Db250ZXh0ICosIGJvb2wgY2FuY2VsbGVkKTsKICAgICB2b2lk
IHdpbGxDb21taXRQb3N0U3dpcGVUcmFuc2l0aW9uTGF5ZXJUcmVlKGJvb2wpOwogICAgIHZvaWQg
c2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QpOwogI2VuZGlmCisgICAgCisgICAgYm9vbCBjYW5T
d2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIFdlYkNvcmU6OkNv
bG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKQEAgLTIwMiw3ICsyMDAsNyBA
QCBwcml2YXRlOgogCiAgICAgY2xhc3MgUGVuZGluZ1N3aXBlVHJhY2tlciB7CiAgICAgcHVibGlj
OgotICAgICAgICBQZW5kaW5nU3dpcGVUcmFja2VyKFdlYlBhZ2VQcm94eSYsIHN0ZDo6ZnVuY3Rp
b248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gdHJhY2tTd2lwZUNhbGxiYWNrKTsK
KyAgICAgICAgUGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmLCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXImKTsKICAgICAgICAgYm9vbCBoYW5kbGVFdmVudChOU0V2ZW50ICopOwogICAgICAg
ICB2b2lkIGV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICopOwogCkBAIC0yMjcs
NyArMjI1LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG1fc2hvdWxkSWdub3JlUGlubmVk
U3RhdGUgeyBmYWxzZSB9OwogCi0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChOU0V2ZW50ICos
IFN3aXBlRGlyZWN0aW9uKT4gbV90cmFja1N3aXBlQ2FsbGJhY2s7CisgICAgICAgIFZpZXdHZXN0
dXJlQ29udHJvbGxlciYgbV92aWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgICAgIFdlYlBhZ2VQ
cm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgfTsKICNlbmRpZgpAQCAtMjM4LDYgKzIzNiw5IEBA
IHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBtX3N3
aXBlQWN0aXZlTG9hZE1vbml0b3JpbmdUaW1lcjsKIAogICAgIFdlYkNvcmU6OkNvbG9yIG1fYmFj
a2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OworICAgIAorICAgIFdlYWtQdHI8V2ViUGFn
ZVByb3h5PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CisgICAgUmVmUHRy
PFdlYlBhZ2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50
U3dpcGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVmUHRyPFZpZXdTbmFwc2hvdD4gbV9j
dXJyZW50U3dpcGVTbmFwc2hvdDsKQEAgLTI3Nyw4ICsyNzgsNiBAQCBwcml2YXRlOgogICAgIFJl
dGFpblB0cjxXS1N3aXBlVHJhbnNpdGlvbkNvbnRyb2xsZXI+IG1fc3dpcGVJbnRlcmFjdGl2ZVRy
YW5zaXRpb25EZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8X1VJVmlld0NvbnRyb2xsZXJPbmVUb09u
ZVRyYW5zaXRpb25Db250ZXh0PiBtX3N3aXBlVHJhbnNpdGlvbkNvbnRleHQ7CiAgICAgdWludDY0
X3QgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSB7IDAgfTsKLSAgICBXZWFr
T2JqQ1B0cjxXS1dlYlZpZXc+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldzsK
LSAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlz
dEZvckN1cnJlbnRTd2lwZTsKICAgICB1aW50NjRfdCBtX2dlc3R1cmVQZW5kaW5nU25hcHNob3RS
ZW1vdmFsIHsgMCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggMjc5OTMxNTc0MTdlZmY1NDNjMWIyMGNjMGI5MWYwZDBjYzY3M2Q3ZS4u
NzY0YzZkMzYxNmRjYTgyZWY1ZmQxZjcwY2I1ZTdiYjFlMjUzMDgzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9jb25maWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVlcyht
X2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkKICAgICAsIG1fcG90ZW50aWFsbHlD
aGFuZ2VkVmlld1N0YXRlRmxhZ3MoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV92aWV3U3Rh
dGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkoZmFsc2UpCisgICAgLCBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2VydmVy
KG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFk
ZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggM2Q1YWRlZWFhMzFlNWIwOGEwMDNhNjk0ZDViZjA2YTgwY2Q2MjM0
MS4uNTIwM2VkOGMwOTc5NTZiYTllNjU1NjgzZTI0NjhhNmU4NWJlMGJjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEyOSw2ICsxMTI5LDggQEAgcHVibGlj
OgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZl
Y3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgICAgICAKKyAgICBXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25m
aWd1cmF0aW9uPiYmKTsKQEAgLTE4ODksNiArMTg5MSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3luY05hdmlnYXRpb25BY3Rpb25IYXNE
b3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAgICAgCisgICAgV2Vha1B0
ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
Vmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDNkOGY3MzZhMDUyMmFjY2ExN2Q4NGQ4
YWU0MWVmZmJkNDRhYzIzMDMuLjdmMjk3NzhiYjc0MWQ2ODVmZGI1ZTY5OWU1NTk5ZjQ4NWFlNWY1
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVD
b250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dl
c3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0xNDAsMTEgKzE0MCw2IEBAIHZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjpwbGF0Zm9ybVRlYXJkb3duKCkKICAgICBbbV9zd2lwZUludGVyYWN0aXZl
VHJhbnNpdGlvbkRlbGVnYXRlIGludmFsaWRhdGVdOwogfQogCi12b2lkIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldyhXS1dlYlZpZXcg
KnZpZXcpCi17Ci0gICAgbV9hbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VWaWV3ID0gdmll
dzsKLX0KLQogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6Omluc3RhbGxTd2lwZUhhbmRsZXIo
VUlWaWV3ICpnZXN0dXJlUmVjb2duaXplclZpZXcsIFVJVmlldyAqc3dpcGluZ1ZpZXcpCiB7CiAg
ICAgQVNTRVJUKCFtX3N3aXBlSW50ZXJhY3RpdmVUcmFuc2l0aW9uRGVsZWdhdGUpOwpAQCAtMTU5
LDcgKzE1NCw5IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVy
ZShfVUlOYXZpZ2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0aW9uCiAKICAgICBtX3dlYlBhZ2VQcm94
eS5yZWNvcmRBdXRvbWF0aWNOYXZpZ2F0aW9uU25hcHNob3QoKTsKIAotICAgIG1fd2ViUGFnZVBy
b3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlID0gbV9hbHRlcm5hdGVCYWNrRm9y
d2FyZExpc3RTb3VyY2VWaWV3LmdldCgpID8gbV9hbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3Vy
Y2VWaWV3LmdldCgpLT5fcGFnZSA6ICZtX3dlYlBhZ2VQcm94eTsKKyAgICBSZWZQdHI8V2ViUGFn
ZVByb3h5PiBhbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlID0gbV9hbHRlcm5hdGVC
YWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlLmdldCgpOworICAgIG1fd2ViUGFnZVByb3h5Rm9yQmFj
a0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlID0gYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291
cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UuZ2V0KCkgOiAmbV93
ZWJQYWdlUHJveHk7CisKICAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1
cnJlbnRTd2lwZS0+bmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpOwogICAgIGlmICgmbV93ZWJQ
YWdlUHJveHkgIT0gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dp
cGUpCiAgICAgICAgIG1fd2ViUGFnZVByb3h5Lm5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKTsK
QEAgLTIzOSwxNCArMjM2LDYgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dp
cGVHZXN0dXJlKF9VSU5hdmlnYXRpb25JbnRlcmFjdGl2ZVRyYW5zaXRpb24KICAgICBtX2FjdGl2
ZUdlc3R1cmVUeXBlID0gVmlld0dlc3R1cmVUeXBlOjpTd2lwZTsKIH0KIAotYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24gZGlyZWN0
aW9uKQotewotICAgIGF1dG8mIGJhY2tGb3J3YXJkTGlzdCA9IG1fYWx0ZXJuYXRlQmFja0Zvcndh
cmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
Vmlldy5nZXQoKS0+X3BhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFj
a0ZvcndhcmRMaXN0KCk7Ci0gICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFj
aykKLSAgICAgICAgcmV0dXJuICEhYmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7Ci0gICAgcmV0
dXJuICEhYmFja0ZvcndhcmRMaXN0LmZvcndhcmRJdGVtKCk7Ci19Ci0KIHZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFy
Z2V0SXRlbSwgX1VJVmlld0NvbnRyb2xsZXJUcmFuc2l0aW9uQ29udGV4dCAqY29udGV4dCwgYm9v
bCBjYW5jZWxsZWQpCiB7CiAgICAgW2NvbnRleHQgX3NldFRyYW5zaXRpb25Jc0luRmxpZ2h0Ok5P
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXJNYWMubW0KaW5kZXggYzQwZmJiNzU4NWU2YzM3MDk2ZDE3NGI1NGU2MGRjOWJk
MGYxMWI0Yy4uODY0ZTJkYTM5OTMxMmYxYmNjOTYyZmJhYzc5NzhlYmVjM2Q4MGZlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJNYWMubW0KQEAgLTI3Miw4ICsyNzIsOCBAQCBzdGF0aWMgYm9vbCBkZWx0YVNob3VsZENh
bmNlbFN3aXBlKGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgcmV0dXJuIHN0ZDo6YWJzKHkpID49IHN0
ZDo6YWJzKHgpICogbWluaW11bVNjcm9sbEV2ZW50UmF0aW9Gb3JTd2lwZTsKIH0KIAotVmlld0dl
c3R1cmVDb250cm9sbGVyOjpQZW5kaW5nU3dpcGVUcmFja2VyOjpQZW5kaW5nU3dpcGVUcmFja2Vy
KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoTlNFdmVudCAq
LCBTd2lwZURpcmVjdGlvbik+IHRyYWNrU3dpcGVDYWxsYmFjaykKLSAgICA6IG1fdHJhY2tTd2lw
ZUNhbGxiYWNrKFdURk1vdmUodHJhY2tTd2lwZUNhbGxiYWNrKSkKK1ZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJv
eHkmIHdlYlBhZ2VQcm94eSwgVmlld0dlc3R1cmVDb250cm9sbGVyJiB2aWV3R2VzdHVyZUNvbnRy
b2xsZXIpCisgICAgOiBtX3ZpZXdHZXN0dXJlQ29udHJvbGxlcih2aWV3R2VzdHVyZUNvbnRyb2xs
ZXIpCiAgICAgLCBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCiB7CiB9CkBAIC0yOTIsMjEg
KzI5MiwxNiBAQCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tl
cjo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZShOU0V2ZQogICAgIGJvb2wgaXNQaW5uZWRUb0xl
ZnQgPSBtX3Nob3VsZElnbm9yZVBpbm5lZFN0YXRlIHx8IG1fd2ViUGFnZVByb3h5LmlzUGlubmVk
VG9MZWZ0U2lkZSgpOwogICAgIGJvb2wgaXNQaW5uZWRUb1JpZ2h0ID0gbV9zaG91bGRJZ25vcmVQ
aW5uZWRTdGF0ZSB8fCBtX3dlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmlnaHRTaWRlKCk7CiAKLSAg
ICBib29sIHdpbGxTd2lwZUJhY2sgPSBmYWxzZTsKLSAgICBib29sIHdpbGxTd2lwZUZvcndhcmQg
PSBmYWxzZTsKLSAgICBpZiAobV93ZWJQYWdlUHJveHkudXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbigpID09IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246OkxUUikgewot
ICAgICAgICB3aWxsU3dpcGVCYWNrID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBpc1Bp
bm5lZFRvTGVmdCAmJiBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5iYWNrSXRlbSgp
OwotICAgICAgICB3aWxsU3dpcGVGb3J3YXJkID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYIDwgMCAm
JiBpc1Bpbm5lZFRvUmlnaHQgJiYgbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuZm9y
d2FyZEl0ZW0oKTsKLSAgICB9IGVsc2UgewotICAgICAgICB3aWxsU3dpcGVCYWNrID0gZXZlbnQu
c2Nyb2xsaW5nRGVsdGFYIDwgMCAmJiBpc1Bpbm5lZFRvUmlnaHQgJiYgbV93ZWJQYWdlUHJveHku
YmFja0ZvcndhcmRMaXN0KCkuYmFja0l0ZW0oKTsKLSAgICAgICAgd2lsbFN3aXBlRm9yd2FyZCA9
IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA+IDAgJiYgaXNQaW5uZWRUb0xlZnQgJiYgbV93ZWJQYWdl
UHJveHkuYmFja0ZvcndhcmRMaXN0KCkuZm9yd2FyZEl0ZW0oKTsKLSAgICB9Ci0gICAgaWYgKCF3
aWxsU3dpcGVCYWNrICYmICF3aWxsU3dpcGVGb3J3YXJkKQorICAgIGJvb2wgdHJ5aW5nVG9Td2lw
ZUJhY2sgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPiAwICYmIGlzUGlubmVkVG9MZWZ0OworICAg
IGJvb2wgdHJ5aW5nVG9Td2lwZUZvcndhcmQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPCAwICYm
IGlzUGlubmVkVG9SaWdodDsKKyAgICBpZiAobV93ZWJQYWdlUHJveHkudXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbigpICE9IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246
OkxUUikKKyAgICAgICAgc3RkOjpzd2FwKHRyeWluZ1RvU3dpcGVCYWNrLCB0cnlpbmdUb1N3aXBl
Rm9yd2FyZCk7CisgICAgCisgICAgaWYgKCF0cnlpbmdUb1N3aXBlQmFjayAmJiAhdHJ5aW5nVG9T
d2lwZUZvcndhcmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHBvdGVudGlhbFN3aXBl
RGlyZWN0aW9uID0gd2lsbFN3aXBlQmFjayA/IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U3dpcGVE
aXJlY3Rpb246OkJhY2sgOiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpG
b3J3YXJkOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcG90ZW50aWFsU3dpcGVEaXJlY3Rpb24g
PSB0cnlpbmdUb1N3aXBlQmFjayA/IFN3aXBlRGlyZWN0aW9uOjpCYWNrIDogU3dpcGVEaXJlY3Rp
b246OkZvcndhcmQ7CisgICAgcmV0dXJuIG1fdmlld0dlc3R1cmVDb250cm9sbGVyLmNhblN3aXBl
SW5EaXJlY3Rpb24ocG90ZW50aWFsU3dpcGVEaXJlY3Rpb24pOwogfQogCiBib29sIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCkKQEAg
LTM3Miw3ICszNjcsNyBAQCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBl
VHJhY2tlcjo6dHJ5VG9TdGFydFN3aXBlKE5TRXZlbnQgKmV2ZW50KQogICAgIH0KIAogICAgIGlm
IChzdGQ6OmFicyhtX2N1bXVsYXRpdmVEZWx0YS53aWR0aCgpKSA+PSBtaW5pbXVtSG9yaXpvbnRh
bFN3aXBlRGlzdGFuY2UpCi0gICAgICAgIG1fdHJhY2tTd2lwZUNhbGxiYWNrKGV2ZW50LCBtX2Rp
cmVjdGlvbik7CisgICAgICAgIG1fdmlld0dlc3R1cmVDb250cm9sbGVyLnRyYWNrU3dpcGVHZXN0
dXJlKGV2ZW50LCBtX2RpcmVjdGlvbik7CiAgICAgZWxzZQogICAgICAgICBtX3N0YXRlID0gU3Rh
dGU6Okluc3VmZmljaWVudE1hZ25pdHVkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290991</attachid>
            <date>2016-10-07 17:51:47 -0700</date>
            <delta_ts>2016-10-08 00:36:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163158-20161007174831.patch</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwYzMxYjI1OWZlODVm
M2Q1MTU3NWEyOThiYmMxYzhlMDA3ZDU5MS4uNWU3ZGFkODM1N2JlNTk3Mjk5NjNhZGMyNzM1Yjhk
NzM0OWIxYzA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTA3ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MgVmlld0dlc3R1cmVDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyZSBjYW5Td2lwZUlu
RGlyZWN0aW9uKCkgYW5kIHRoZSAodW51c2VkIG9uIE1hYykgYWx0ZXJuYXRlIGJhY2stZm9yd2Fy
ZCBsaXN0IG1lY2hhbmlzbS4KKyAgICAgICAgTWFrZSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgb3Bl
cmF0ZSBpbiB0ZXJtcyBvZiBXZWJQYWdlUHJveHksIG5vdCBXS1dlYlZpZXcsCisgICAgICAgIGJl
Y2F1c2UgaXQgc2hvdWxkbid0IGtub3cgYW55dGhpbmcgYWJvdXQgV0tXZWJWaWV3LgorICAgICAg
ICBSZWZhY3RvciBzY3JvbGxFdmVudENhbkJlY29tZVN3aXBlIGEgYml0IHRvIGJlIGxlc3MgcmVw
ZXRpdGl2ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgc2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRB
bHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlKToKKyAgICAgICAgKFdlYktpdDo6Vmll
d0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFj
a0ZvcndhcmRMaXN0U291cmNlVmlldyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVuZGlu
Z1N3aXBlVHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6dHJ5
VG9TdGFydFN3aXBlKToKKwogMjAxNi0xMC0wNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQgb2YgQVBJOjpTZXNzaW9uIGFuZCBXS1Nlc3Np
b25SZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggN2RmMGFiYzgzNjkzOWUzZGI3NjhhZjk3MjQ0YmI2MjgxZWJiMjJmMS4uNDM3ZDhm
MDZiMjg4NTc4ZjVhYjZiZDMwZTRhYzE0ODQ0YTlmNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxOTgsNyArMjE5OCw3IEBA
IHN0YXRpYyBib29sIHNjcm9sbFZpZXdDYW5TY3JvbGwoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3
KQogICAgICAgICBpZiAoIV9nZXN0dXJlQ29udHJvbGxlcikgewogICAgICAgICAgICAgX2dlc3R1
cmVDb250cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcj4oKl9wYWdlKTsKICAgICAgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+aW5zdGFsbFN3
aXBlSGFuZGxlcihzZWxmLCBbc2VsZiBzY3JvbGxWaWV3XSk7Ci0gICAgICAgICAgICBfZ2VzdHVy
ZUNvbnRyb2xsZXItPnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcoW19jb25m
aWd1cmF0aW9uIF9hbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzXSk7CisgICAg
ICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNv
dXJjZVBhZ2UoW1tfY29uZmlndXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25H
ZXN0dXJlc10gX3BhZ2VdKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBfZ2VzdHVy
ZUNvbnRyb2xsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4NTZjY2E3YTNlYjdj
NzA1NGZjODgyNjc4ZjRhZjcwNDc0MTYyN2Q2Li40OWYxOGUzNzhhNTI5ZDA1NjViMGQ3ZWU5ZTYx
ODgyMTJjZmRkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
Vmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
IgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldl
YkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC01OSw3ICs2
MCw3IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVDb250cm9sbGVyKFdlYlBh
Z2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5
KQogICAgICwgbV9zd2lwZUFjdGl2ZUxvYWRNb25pdG9yaW5nVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpjaGVja0ZvckFjdGl2ZUxvYWRzKQogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICAsIG1fcGVuZGluZ1N3aXBlVHJhY2tlcih3ZWJQYWdlUHJveHks
IHN0ZDo6YmluZCgmVmlld0dlc3R1cmVDb250cm9sbGVyOjp0cmFja1N3aXBlR2VzdHVyZSwgdGhp
cywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpKQorICAgICwg
bV9wZW5kaW5nU3dpcGVUcmFja2VyKHdlYlBhZ2VQcm94eSwgKnRoaXMpCiAjZW5kaWYKIHsKICAg
ICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlUHJv
eHkucGFnZUlEKCksICp0aGlzKTsKQEAgLTgzLDYgKzg0LDI0IEBAIFZpZXdHZXN0dXJlQ29udHJv
bGxlciogVmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2UodWlu
dDY0X3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGdlc3R1cmVDb250cm9s
bGVySXRlci0+dmFsdWU7CiB9CisgICAgCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0
QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7
CisgICAgaWYgKHBhZ2UpCisgICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
UGFnZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYWx0ZXJu
YXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5jbGVhcigpOworfQorICAgIAorYm9vbCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IGFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBh
Z2UuZ2V0KCk7CisgICAgYXV0byYgYmFja0ZvcndhcmRMaXN0ID0gYWx0ZXJuYXRlQmFja0Zvcndh
cmRMaXN0U291cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UtPmJh
Y2tGb3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCk7CisgICAg
aWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFjaykKKyAgICAgICAgcmV0dXJuICEh
YmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7CisgICAgcmV0dXJuICEhYmFja0ZvcndhcmRMaXN0
LmZvcndhcmRJdGVtKCk7Cit9CisKIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5k
ZXggMTY1N2IxZTExN2JiYTY4OWQ0NDg5MzdlNmVkMzBkM2UxNzZmNzFjOS4uNzU4ZDczNTBkYmQ4
NDc1NzQ2NmNjZGJhODQzNmI2ZTQ5ZDYyYmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjgsMjIgKzI4
LDE5IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2luY2x1ZGUgIldlYWtPYmpDUHRyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5j
bHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0vLyBGSVhNRTogTW92ZSB0
aGlzIGZpbGUgb3V0IG9mIHRoZSBtYWMvIHN1YmRpcmVjdG9yeS4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKICNpZiBQTEFURk9STShJT1MpCiBPQkpD
X0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgV0tTd2lwZVRyYW5zaXRpb25Db250cm9sbGVyOwot
T0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9VSU5hdmlnYXRpb25JbnRlcmFjdGl2
ZVRyYW5zaXRpb25CYXNlOwogT0JKQ19DTEFTUyBfVUlWaWV3Q29udHJvbGxlck9uZVRvT25lVHJh
bnNpdGlvbkNvbnRleHQ7CiBPQkpDX0NMQVNTIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNv
bnRleHQ7CkBAIC0xMDksMTMgKzEwNiwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BoeXNpY2Fs
bHlTd2lwaW5nTGVmdChTd2lwZURpcmVjdGlvbikgY29uc3Q7CiAjZWxzZQogICAgIHZvaWQgaW5z
dGFsbFN3aXBlSGFuZGxlcihVSVZpZXcgKmdlc3R1cmVSZWNvZ25pemVyVmlldywgVUlWaWV3ICpz
d2lwaW5nVmlldyk7Ci0gICAgdm9pZCBzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VW
aWV3KFdLV2ViVmlldyAqKTsKLSAgICBib29sIGNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJl
Y3Rpb24pOwogICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0
aXZlVHJhbnNpdGlvbkJhc2UgKiwgU3dpcGVEaXJlY3Rpb24pOwogICAgIHZvaWQgZW5kU3dpcGVH
ZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9s
bGVyVHJhbnNpdGlvbkNvbnRleHQgKiwgYm9vbCBjYW5jZWxsZWQpOwogICAgIHZvaWQgd2lsbENv
bW1pdFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoYm9vbCk7CiAgICAgdm9pZCBzZXRSZW5k
ZXJUcmVlU2l6ZSh1aW50NjRfdCk7CiAjZW5kaWYKKyAgICAKKyAgICB2b2lkIHNldEFsdGVybmF0
ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UoV2ViUGFnZVByb3h5Kik7CisgICAgCisgICAgYm9v
bCBjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIFdlYkNv
cmU6OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKQEAgLTIwMiw3ICsy
MDEsNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgUGVuZGluZ1N3aXBlVHJhY2tlciB7CiAgICAg
cHVibGljOgotICAgICAgICBQZW5kaW5nU3dpcGVUcmFja2VyKFdlYlBhZ2VQcm94eSYsIHN0ZDo6
ZnVuY3Rpb248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gdHJhY2tTd2lwZUNhbGxi
YWNrKTsKKyAgICAgICAgUGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmLCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXImKTsKICAgICAgICAgYm9vbCBoYW5kbGVFdmVudChOU0V2ZW50ICopOwog
ICAgICAgICB2b2lkIGV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICopOwogCkBA
IC0yMjcsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG1fc2hvdWxkSWdub3Jl
UGlubmVkU3RhdGUgeyBmYWxzZSB9OwogCi0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChOU0V2
ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gbV90cmFja1N3aXBlQ2FsbGJhY2s7CisgICAgICAgIFZp
ZXdHZXN0dXJlQ29udHJvbGxlciYgbV92aWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgICAgIFdl
YlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgfTsKICNlbmRpZgpAQCAtMjM4LDYgKzIz
Nyw5IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9sbGVy
PiBtX3N3aXBlQWN0aXZlTG9hZE1vbml0b3JpbmdUaW1lcjsKIAogICAgIFdlYkNvcmU6OkNvbG9y
IG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OworICAgIAorICAgIFdlYWtQdHI8
V2ViUGFnZVByb3h5PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CisgICAg
UmVmUHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JD
dXJyZW50U3dpcGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVmUHRyPFZpZXdTbmFwc2hv
dD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdDsKQEAgLTI3Nyw4ICsyNzksNiBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxXS1N3aXBlVHJhbnNpdGlvbkNvbnRyb2xsZXI+IG1fc3dpcGVJbnRlcmFj
dGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8X1VJVmlld0NvbnRyb2xsZXJP
bmVUb09uZVRyYW5zaXRpb25Db250ZXh0PiBtX3N3aXBlVHJhbnNpdGlvbkNvbnRleHQ7CiAgICAg
dWludDY0X3QgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSB7IDAgfTsKLSAg
ICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
VmlldzsKLSAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3
YXJkTGlzdEZvckN1cnJlbnRTd2lwZTsKICAgICB1aW50NjRfdCBtX2dlc3R1cmVQZW5kaW5nU25h
cHNob3RSZW1vdmFsIHsgMCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggMjc5OTMxNTc0MTdlZmY1NDNjMWIyMGNjMGI5MWYwZDBjYzY3
M2Q3ZS4uNzY0YzZkMzYxNmRjYTgyZWY1ZmQxZjcwY2I1ZTdiYjFlMjUzMDgzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1MCw2ICs0NTAsNyBAQCBX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9jb25maWd1cmF0aW9uUHJlZmVyZW5jZVZh
bHVlcyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkKICAgICAsIG1fcG90ZW50
aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV92
aWV3U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkoZmFsc2UpCisgICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9i
c2VydmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFj
a2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2Q1YWRlZWFhMzFlNWIwOGEwMDNhNjk0ZDViZjA2YTgw
Y2Q2MjM0MS4uNTIwM2VkOGMwOTc5NTZiYTllNjU1NjgzZTI0NjhhNmU4NWJlMGJjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEyOSw2ICsxMTI5LDggQEAg
cHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNv
bnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgICAgICAKKyAgICBXZWFrUHRy
PFdlYlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBh
Z2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYmKTsKQEAgLTE4ODksNiArMTg5MSw4IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3luY05hdmlnYXRpb25BY3Rp
b25IYXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAgICAgCisgICAg
V2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDNkOGY3MzZhMDUyMmFjY2Ex
N2Q4NGQ4YWU0MWVmZmJkNDRhYzIzMDMuLjgxY2ZkMzZhY2NlNDUyZDg2ZGUzNjY2ZjYxNTMwYmZj
ZTIyMzk3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dl
c3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
Vmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJW
aWV3U25hcHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJXZWFrT2JqQ1B0
ci5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1wb3J0ICJXZWJQYWdlR3Jv
dXAuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtMTQwLDExICsxNDEsNiBAQCB2
b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cGxhdGZvcm1UZWFyZG93bigpCiAgICAgW21fc3dp
cGVJbnRlcmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKIH0KIAotdm9pZCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZp
ZXcoV0tXZWJWaWV3ICp2aWV3KQotewotICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291
cmNlVmlldyA9IHZpZXc7Ci19Ci0KIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjppbnN0YWxs
U3dpcGVIYW5kbGVyKFVJVmlldyAqZ2VzdHVyZVJlY29nbml6ZXJWaWV3LCBVSVZpZXcgKnN3aXBp
bmdWaWV3KQogewogICAgIEFTU0VSVCghbV9zd2lwZUludGVyYWN0aXZlVHJhbnNpdGlvbkRlbGVn
YXRlKTsKQEAgLTE1OSw3ICsxNTUsOSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVn
aW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlvbgogCiAgICAg
bV93ZWJQYWdlUHJveHkucmVjb3JkQXV0b21hdGljTmF2aWdhdGlvblNuYXBzaG90KCk7CiAKLSAg
ICBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IG1fYWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFja0Zv
cndhcmRMaXN0U291cmNlVmlldy5nZXQoKS0+X3BhZ2UgOiAmbV93ZWJQYWdlUHJveHk7CisgICAg
UmVmUHRyPFdlYlBhZ2VQcm94eT4gYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSA9
IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5nZXQoKTsKKyAgICBtX3dlYlBh
Z2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IGFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVBhZ2UgPyBhbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdl
LmdldCgpIDogJm1fd2ViUGFnZVByb3h5OworCiAgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9y
d2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKTsKICAg
ICBpZiAoJm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0
Rm9yQ3VycmVudFN3aXBlKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVy
ZURpZEJlZ2luKCk7CkBAIC0yMzksMTQgKzIzNyw2IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9s
bGVyOjpiZWdpblN3aXBlR2VzdHVyZShfVUlOYXZpZ2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0aW9u
CiAgICAgbV9hY3RpdmVHZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGU7CiB9CiAK
LWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGly
ZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICBhdXRvJiBiYWNrRm9yd2FyZExpc3QgPSBtX2FsdGVy
bmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCkgPyBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCktPl9wYWdlLT5iYWNrRm9yd2FyZExpc3QoKSA6IG1fd2Vi
UGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGlmIChkaXJlY3Rpb24gPT0gU3dpcGVE
aXJlY3Rpb246OkJhY2spCi0gICAgICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5iYWNrSXRl
bSgpOwotICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5mb3J3YXJkSXRlbSgpOwotfQotCiB2
b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvbnRleHQg
KmNvbnRleHQsIGJvb2wgY2FuY2VsbGVkKQogewogICAgIFtjb250ZXh0IF9zZXRUcmFuc2l0aW9u
SXNJbkZsaWdodDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IGM0MGZiYjc1ODVlNmMzNzA5NmQx
NzRiNTRlNjBkYzliZDBmMTFiNGMuLjg2NGUyZGEzOTkzMTJmMWJjYzk2MmZiYWM3OTc4ZWJlYzNk
ODBmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1
cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC0yNzIsOCArMjcyLDggQEAgc3RhdGljIGJvb2wg
ZGVsdGFTaG91bGRDYW5jZWxTd2lwZShmbG9hdCB4LCBmbG9hdCB5KQogICAgIHJldHVybiBzdGQ6
OmFicyh5KSA+PSBzdGQ6OmFicyh4KSAqIG1pbmltdW1TY3JvbGxFdmVudFJhdGlvRm9yU3dpcGU7
CiB9CiAKLVZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVuZGlu
Z1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgc3RkOjpmdW5jdGlvbjx2
b2lkKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24pPiB0cmFja1N3aXBlQ2FsbGJhY2spCi0gICAg
OiBtX3RyYWNrU3dpcGVDYWxsYmFjayhXVEZNb3ZlKHRyYWNrU3dpcGVDYWxsYmFjaykpCitWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdTd2lwZVRyYWNr
ZXIoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgdmll
d0dlc3R1cmVDb250cm9sbGVyKQorICAgIDogbV92aWV3R2VzdHVyZUNvbnRyb2xsZXIodmlld0dl
c3R1cmVDb250cm9sbGVyKQogICAgICwgbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogewog
fQpAQCAtMjkyLDIxICsyOTIsMTYgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRp
bmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoTlNFdmUKICAgICBib29s
IGlzUGlubmVkVG9MZWZ0ID0gbV9zaG91bGRJZ25vcmVQaW5uZWRTdGF0ZSB8fCBtX3dlYlBhZ2VQ
cm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKTsKICAgICBib29sIGlzUGlubmVkVG9SaWdodCA9IG1f
c2hvdWxkSWdub3JlUGlubmVkU3RhdGUgfHwgbV93ZWJQYWdlUHJveHkuaXNQaW5uZWRUb1JpZ2h0
U2lkZSgpOwogCi0gICAgYm9vbCB3aWxsU3dpcGVCYWNrID0gZmFsc2U7Ci0gICAgYm9vbCB3aWxs
U3dpcGVGb3J3YXJkID0gZmFsc2U7Ci0gICAgaWYgKG1fd2ViUGFnZVByb3h5LnVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24oKSA9PSBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uOjpMVFIpIHsKLSAgICAgICAgd2lsbFN3aXBlQmFjayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRh
WCA+IDAgJiYgaXNQaW5uZWRUb0xlZnQgJiYgbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0
KCkuYmFja0l0ZW0oKTsKLSAgICAgICAgd2lsbFN3aXBlRm9yd2FyZCA9IGV2ZW50LnNjcm9sbGlu
Z0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3
YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2lsbFN3aXBl
QmFjayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1f
d2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCk7Ci0gICAgICAgIHdpbGxT
d2lwZUZvcndhcmQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPiAwICYmIGlzUGlubmVkVG9MZWZ0
ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAg
fQotICAgIGlmICghd2lsbFN3aXBlQmFjayAmJiAhd2lsbFN3aXBlRm9yd2FyZCkKKyAgICBib29s
IHRyeWluZ1RvU3dpcGVCYWNrID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBpc1Bpbm5l
ZFRvTGVmdDsKKyAgICBib29sIHRyeWluZ1RvU3dpcGVGb3J3YXJkID0gZXZlbnQuc2Nyb2xsaW5n
RGVsdGFYIDwgMCAmJiBpc1Bpbm5lZFRvUmlnaHQ7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LnVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSAhPSBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uOjpMVFIpCisgICAgICAgIHN0ZDo6c3dhcCh0cnlpbmdUb1N3aXBlQmFjaywg
dHJ5aW5nVG9Td2lwZUZvcndhcmQpOworICAgIAorICAgIGlmICghdHJ5aW5nVG9Td2lwZUJhY2sg
JiYgIXRyeWluZ1RvU3dpcGVGb3J3YXJkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBw
b3RlbnRpYWxTd2lwZURpcmVjdGlvbiA9IHdpbGxTd2lwZUJhY2sgPyBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrIDogVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lw
ZURpcmVjdGlvbjo6Rm9yd2FyZDsKLQotICAgIHJldHVybiB0cnVlOworICAgIHBvdGVudGlhbFN3
aXBlRGlyZWN0aW9uID0gdHJ5aW5nVG9Td2lwZUJhY2sgPyBTd2lwZURpcmVjdGlvbjo6QmFjayA6
IFN3aXBlRGlyZWN0aW9uOjpGb3J3YXJkOworICAgIHJldHVybiBtX3ZpZXdHZXN0dXJlQ29udHJv
bGxlci5jYW5Td2lwZUluRGlyZWN0aW9uKHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uKTsKIH0KIAog
Ym9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCkBAIC0zNzIsNyArMzY3LDcgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRvU3RhcnRTd2lwZShOU0V2ZW50ICpldmVudCkKICAg
ICB9CiAKICAgICBpZiAoc3RkOjphYnMobV9jdW11bGF0aXZlRGVsdGEud2lkdGgoKSkgPj0gbWlu
aW11bUhvcml6b250YWxTd2lwZURpc3RhbmNlKQotICAgICAgICBtX3RyYWNrU3dpcGVDYWxsYmFj
ayhldmVudCwgbV9kaXJlY3Rpb24pOworICAgICAgICBtX3ZpZXdHZXN0dXJlQ29udHJvbGxlci50
cmFja1N3aXBlR2VzdHVyZShldmVudCwgbV9kaXJlY3Rpb24pOwogICAgIGVsc2UKICAgICAgICAg
bV9zdGF0ZSA9IFN0YXRlOjpJbnN1ZmZpY2llbnRNYWduaXR1ZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291010</attachid>
            <date>2016-10-08 00:36:54 -0700</date>
            <delta_ts>2016-10-08 00:56:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163158-20161008003337.patch</filename>
            <type>text/plain</type>
            <size>15885</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwYzMxYjI1OWZlODVm
M2Q1MTU3NWEyOThiYmMxYzhlMDA3ZDU5MS4uZWFmYmFlMmY1YTVhMjRmNzMzZGIzYjZhM2ZhZTk2
OTk3ODY1MTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTA4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MgVmlld0dlc3R1cmVDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgU2hhcmUgY2FuU3dpcGVJbkRp
cmVjdGlvbigpIGFuZCB0aGUgKHVudXNlZCBvbiBNYWMpIGFsdGVybmF0ZSBiYWNrLWZvcndhcmQg
bGlzdCBtZWNoYW5pc20uCisgICAgICAgIE1ha2UgVmlld0dlc3R1cmVDb250cm9sbGVyIG9wZXJh
dGUgaW4gdGVybXMgb2YgV2ViUGFnZVByb3h5LCBub3QgV0tXZWJWaWV3LAorICAgICAgICBiZWNh
dXNlIGl0IHNob3VsZG4ndCBrbm93IGFueXRoaW5nIGFib3V0IFdLV2ViVmlldy4KKyAgICAgICAg
UmVmYWN0b3Igc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSBhIGJpdCB0byBiZSBsZXNzIHJlcGV0
aXRpdmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Z2VzdHVyZUNvbnRyb2xsZXJGb3JQYWdlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0cik6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdT
d2lwZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUpOgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRv
U3RhcnRTd2lwZSk6CisKIDIwMTYtMTAtMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIEFQSTo6U2Vzc2lvbiBhbmQgV0tTZXNzaW9u
UmVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDdkZjBhYmM4MzY5MzllM2RiNzY4YWY5NzI0NGJiNjI4MWViYjIyZjEuLmY2M2RlZDcz
ODUwYTdhZWRiYWY3ZDY1NTcxZjBlYWMzODhlZmY2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yMTk4LDcgKzIxOTgsNyBAQCBz
dGF0aWMgYm9vbCBzY3JvbGxWaWV3Q2FuU2Nyb2xsKFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldykK
ICAgICAgICAgaWYgKCFfZ2VzdHVyZUNvbnRyb2xsZXIpIHsKICAgICAgICAgICAgIF9nZXN0dXJl
Q29udHJvbGxlciA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI+KCpfcGFnZSk7CiAgICAgICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmluc3RhbGxTd2lw
ZUhhbmRsZXIoc2VsZiwgW3NlbGYgc2Nyb2xsVmlld10pOwotICAgICAgICAgICAgX2dlc3R1cmVD
b250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VWaWV3KFtfY29uZmln
dXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlc10pOworICAgICAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3Vy
Y2VQYWdlKFtfY29uZmlndXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0
dXJlc10tPl9wYWdlKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBfZ2VzdHVyZUNv
bnRyb2xsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4NTZjY2E3YTNlYjdjNzA1
NGZjODgyNjc4ZjRhZjcwNDc0MTYyN2Q2Li40OWYxOGUzNzhhNTI5ZDA1NjViMGQ3ZWU5ZTYxODgy
MTJjZmRkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmll
d0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgog
I2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYkJh
Y2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQ
cm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC01OSw3ICs2MCw3
IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVDb250cm9sbGVyKFdlYlBhZ2VQ
cm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQog
ICAgICwgbV9zd2lwZUFjdGl2ZUxvYWRNb25pdG9yaW5nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0
aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpjaGVja0ZvckFjdGl2ZUxvYWRzKQogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICAsIG1fcGVuZGluZ1N3aXBlVHJhY2tlcih3ZWJQYWdlUHJveHksIHN0
ZDo6YmluZCgmVmlld0dlc3R1cmVDb250cm9sbGVyOjp0cmFja1N3aXBlR2VzdHVyZSwgdGhpcywg
c3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpKQorICAgICwgbV9w
ZW5kaW5nU3dpcGVUcmFja2VyKHdlYlBhZ2VQcm94eSwgKnRoaXMpCiAjZW5kaWYKIHsKICAgICBt
X3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlUHJveHku
cGFnZUlEKCksICp0aGlzKTsKQEAgLTgzLDYgKzg0LDI0IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxl
ciogVmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2UodWludDY0
X3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGdlc3R1cmVDb250cm9sbGVy
SXRlci0+dmFsdWU7CiB9CisgICAgCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7Cisg
ICAgaWYgKHBhZ2UpCisgICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFn
ZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYWx0ZXJuYXRl
QmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5jbGVhcigpOworfQorICAgIAorYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24gZGlyZWN0
aW9uKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IGFsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPSBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2Uu
Z2V0KCk7CisgICAgYXV0byYgYmFja0ZvcndhcmRMaXN0ID0gYWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UtPmJhY2tG
b3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCk7CisgICAgaWYg
KGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFjaykKKyAgICAgICAgcmV0dXJuICEhYmFj
a0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7CisgICAgcmV0dXJuICEhYmFja0ZvcndhcmRMaXN0LmZv
cndhcmRJdGVtKCk7Cit9CisKIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXgg
MTY1N2IxZTExN2JiYTY4OWQ0NDg5MzdlNmVkMzBkM2UxNzZmNzFjOS4uNzU4ZDczNTBkYmQ4NDc1
NzQ2NmNjZGJhODQzNmI2ZTQ5ZDYyYmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjgsMjIgKzI4LDE5
IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZS5oIgotI2luY2x1ZGUgIldlYWtPYmpDUHRyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVk
ZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0vLyBGSVhNRTogTW92ZSB0aGlz
IGZpbGUgb3V0IG9mIHRoZSBtYWMvIHN1YmRpcmVjdG9yeS4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKICNpZiBQTEFURk9STShJT1MpCiBPQkpDX0NM
QVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgV0tTd2lwZVRyYW5zaXRpb25Db250cm9sbGVyOwotT0JK
Q19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9VSU5hdmlnYXRpb25JbnRlcmFjdGl2ZVRy
YW5zaXRpb25CYXNlOwogT0JKQ19DTEFTUyBfVUlWaWV3Q29udHJvbGxlck9uZVRvT25lVHJhbnNp
dGlvbkNvbnRleHQ7CiBPQkpDX0NMQVNTIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvbnRl
eHQ7CkBAIC0xMDksMTMgKzEwNiwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BoeXNpY2FsbHlT
d2lwaW5nTGVmdChTd2lwZURpcmVjdGlvbikgY29uc3Q7CiAjZWxzZQogICAgIHZvaWQgaW5zdGFs
bFN3aXBlSGFuZGxlcihVSVZpZXcgKmdlc3R1cmVSZWNvZ25pemVyVmlldywgVUlWaWV3ICpzd2lw
aW5nVmlldyk7Ci0gICAgdm9pZCBzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VWaWV3
KFdLV2ViVmlldyAqKTsKLSAgICBib29sIGNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rp
b24pOwogICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0aXZl
VHJhbnNpdGlvbkJhc2UgKiwgU3dpcGVEaXJlY3Rpb24pOwogICAgIHZvaWQgZW5kU3dpcGVHZXN0
dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9sbGVy
VHJhbnNpdGlvbkNvbnRleHQgKiwgYm9vbCBjYW5jZWxsZWQpOwogICAgIHZvaWQgd2lsbENvbW1p
dFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoYm9vbCk7CiAgICAgdm9pZCBzZXRSZW5kZXJU
cmVlU2l6ZSh1aW50NjRfdCk7CiAjZW5kaWYKKyAgICAKKyAgICB2b2lkIHNldEFsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UoV2ViUGFnZVByb3h5Kik7CisgICAgCisgICAgYm9vbCBj
YW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIFdlYkNvcmU6
OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKQEAgLTIwMiw3ICsyMDEs
NyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgUGVuZGluZ1N3aXBlVHJhY2tlciB7CiAgICAgcHVi
bGljOgotICAgICAgICBQZW5kaW5nU3dpcGVUcmFja2VyKFdlYlBhZ2VQcm94eSYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gdHJhY2tTd2lwZUNhbGxiYWNr
KTsKKyAgICAgICAgUGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmLCBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXImKTsKICAgICAgICAgYm9vbCBoYW5kbGVFdmVudChOU0V2ZW50ICopOwogICAg
ICAgICB2b2lkIGV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICopOwogCkBAIC0y
MjcsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG1fc2hvdWxkSWdub3JlUGlu
bmVkU3RhdGUgeyBmYWxzZSB9OwogCi0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChOU0V2ZW50
ICosIFN3aXBlRGlyZWN0aW9uKT4gbV90cmFja1N3aXBlQ2FsbGJhY2s7CisgICAgICAgIFZpZXdH
ZXN0dXJlQ29udHJvbGxlciYgbV92aWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgICAgIFdlYlBh
Z2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgfTsKICNlbmRpZgpAQCAtMjM4LDYgKzIzNyw5
IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBt
X3N3aXBlQWN0aXZlTG9hZE1vbml0b3JpbmdUaW1lcjsKIAogICAgIFdlYkNvcmU6OkNvbG9yIG1f
YmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OworICAgIAorICAgIFdlYWtQdHI8V2Vi
UGFnZVByb3h5PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CisgICAgUmVm
UHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJy
ZW50U3dpcGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVmUHRyPFZpZXdTbmFwc2hvdD4g
bV9jdXJyZW50U3dpcGVTbmFwc2hvdDsKQEAgLTI3Nyw4ICsyNzksNiBAQCBwcml2YXRlOgogICAg
IFJldGFpblB0cjxXS1N3aXBlVHJhbnNpdGlvbkNvbnRyb2xsZXI+IG1fc3dpcGVJbnRlcmFjdGl2
ZVRyYW5zaXRpb25EZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8X1VJVmlld0NvbnRyb2xsZXJPbmVU
b09uZVRyYW5zaXRpb25Db250ZXh0PiBtX3N3aXBlVHJhbnNpdGlvbkNvbnRleHQ7CiAgICAgdWlu
dDY0X3QgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSB7IDAgfTsKLSAgICBX
ZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmll
dzsKLSAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJk
TGlzdEZvckN1cnJlbnRTd2lwZTsKICAgICB1aW50NjRfdCBtX2dlc3R1cmVQZW5kaW5nU25hcHNo
b3RSZW1vdmFsIHsgMCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggMjc5OTMxNTc0MTdlZmY1NDNjMWIyMGNjMGI5MWYwZDBjYzY3M2Q3
ZS4uNzY0YzZkMzYxNmRjYTgyZWY1ZmQxZjcwY2I1ZTdiYjFlMjUzMDgzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQ
YWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9jb25maWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVl
cyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkKICAgICAsIG1fcG90ZW50aWFs
bHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwgbV92aWV3
U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkoZmFsc2UpCisgICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2Vy
dmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2Vy
LmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggM2Q1YWRlZWFhMzFlNWIwOGEwMDNhNjk0ZDViZjA2YTgwY2Q2
MjM0MS4uNTIwM2VkOGMwOTc5NTZiYTllNjU1NjgzZTI0NjhhNmU4NWJlMGJjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEyOSw2ICsxMTI5LDggQEAgcHVi
bGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0
IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgICAgICAKKyAgICBXZWFrUHRyPFdl
YlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VD
b25maWd1cmF0aW9uPiYmKTsKQEAgLTE4ODksNiArMTg5MSw4IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3luY05hdmlnYXRpb25BY3Rpb25I
YXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAgICAgCisgICAgV2Vh
a1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDNkOGY3MzZhMDUyMmFjY2ExN2Q4
NGQ4YWU0MWVmZmJkNDRhYzIzMDMuLjgxY2ZkMzZhY2NlNDUyZDg2ZGUzNjY2ZjYxNTMwYmZjZTIy
Mzk3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1
cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmll
d0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJWaWV3
U25hcHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJXZWFrT2JqQ1B0ci5o
IgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAu
aCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtMTQwLDExICsxNDEsNiBAQCB2b2lk
IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cGxhdGZvcm1UZWFyZG93bigpCiAgICAgW21fc3dpcGVJ
bnRlcmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKIH0KIAotdm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXco
V0tXZWJWaWV3ICp2aWV3KQotewotICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
VmlldyA9IHZpZXc7Ci19Ci0KIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjppbnN0YWxsU3dp
cGVIYW5kbGVyKFVJVmlldyAqZ2VzdHVyZVJlY29nbml6ZXJWaWV3LCBVSVZpZXcgKnN3aXBpbmdW
aWV3KQogewogICAgIEFTU0VSVCghbV9zd2lwZUludGVyYWN0aXZlVHJhbnNpdGlvbkRlbGVnYXRl
KTsKQEAgLTE1OSw3ICsxNTUsOSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5T
d2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlvbgogCiAgICAgbV93
ZWJQYWdlUHJveHkucmVjb3JkQXV0b21hdGljTmF2aWdhdGlvblNuYXBzaG90KCk7CiAKLSAgICBt
X3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IG1fYWx0ZXJu
YXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFja0Zvcndh
cmRMaXN0U291cmNlVmlldy5nZXQoKS0+X3BhZ2UgOiAmbV93ZWJQYWdlUHJveHk7CisgICAgUmVm
UHRyPFdlYlBhZ2VQcm94eT4gYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSA9IG1f
YWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5nZXQoKTsKKyAgICBtX3dlYlBhZ2VQ
cm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IGFsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPyBhbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlLmdl
dCgpIDogJm1fd2ViUGFnZVByb3h5OworCiAgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2Fy
ZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKTsKICAgICBp
ZiAoJm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9y
Q3VycmVudFN3aXBlKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVyZURp
ZEJlZ2luKCk7CkBAIC0yMzksMTQgKzIzNyw2IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpiZWdpblN3aXBlR2VzdHVyZShfVUlOYXZpZ2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0aW9uCiAg
ICAgbV9hY3RpdmVHZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGU7CiB9CiAKLWJv
b2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0
aW9uIGRpcmVjdGlvbikKLXsKLSAgICBhdXRvJiBiYWNrRm9yd2FyZExpc3QgPSBtX2FsdGVybmF0
ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCkgPyBtX2FsdGVybmF0ZUJhY2tGb3J3YXJk
TGlzdFNvdXJjZVZpZXcuZ2V0KCktPl9wYWdlLT5iYWNrRm9yd2FyZExpc3QoKSA6IG1fd2ViUGFn
ZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGlmIChkaXJlY3Rpb24gPT0gU3dpcGVEaXJl
Y3Rpb246OkJhY2spCi0gICAgICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5iYWNrSXRlbSgp
OwotICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5mb3J3YXJkSXRlbSgpOwotfQotCiB2b2lk
IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvbnRleHQgKmNv
bnRleHQsIGJvb2wgY2FuY2VsbGVkKQogewogICAgIFtjb250ZXh0IF9zZXRUcmFuc2l0aW9uSXNJ
bkZsaWdodDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IGM0MGZiYjc1ODVlNmMzNzA5NmQxNzRi
NTRlNjBkYzliZDBmMTFiNGMuLjg2NGUyZGEzOTkzMTJmMWJjYzk2MmZiYWM3OTc4ZWJlYzNkODBm
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC0yNzIsOCArMjcyLDggQEAgc3RhdGljIGJvb2wgZGVs
dGFTaG91bGRDYW5jZWxTd2lwZShmbG9hdCB4LCBmbG9hdCB5KQogICAgIHJldHVybiBzdGQ6OmFi
cyh5KSA+PSBzdGQ6OmFicyh4KSAqIG1pbmltdW1TY3JvbGxFdmVudFJhdGlvRm9yU3dpcGU7CiB9
CiAKLVZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVuZGluZ1N3
aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgc3RkOjpmdW5jdGlvbjx2b2lk
KE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24pPiB0cmFja1N3aXBlQ2FsbGJhY2spCi0gICAgOiBt
X3RyYWNrU3dpcGVDYWxsYmFjayhXVEZNb3ZlKHRyYWNrU3dpcGVDYWxsYmFjaykpCitWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXIo
V2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgdmlld0dl
c3R1cmVDb250cm9sbGVyKQorICAgIDogbV92aWV3R2VzdHVyZUNvbnRyb2xsZXIodmlld0dlc3R1
cmVDb250cm9sbGVyKQogICAgICwgbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogewogfQpA
QCAtMjkyLDIxICsyOTIsMTYgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdT
d2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoTlNFdmUKICAgICBib29sIGlz
UGlubmVkVG9MZWZ0ID0gbV9zaG91bGRJZ25vcmVQaW5uZWRTdGF0ZSB8fCBtX3dlYlBhZ2VQcm94
eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKTsKICAgICBib29sIGlzUGlubmVkVG9SaWdodCA9IG1fc2hv
dWxkSWdub3JlUGlubmVkU3RhdGUgfHwgbV93ZWJQYWdlUHJveHkuaXNQaW5uZWRUb1JpZ2h0U2lk
ZSgpOwogCi0gICAgYm9vbCB3aWxsU3dpcGVCYWNrID0gZmFsc2U7Ci0gICAgYm9vbCB3aWxsU3dp
cGVGb3J3YXJkID0gZmFsc2U7Ci0gICAgaWYgKG1fd2ViUGFnZVByb3h5LnVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oKSA9PSBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
OjpMVFIpIHsKLSAgICAgICAgd2lsbFN3aXBlQmFjayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA+
IDAgJiYgaXNQaW5uZWRUb0xlZnQgJiYgbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCku
YmFja0l0ZW0oKTsKLSAgICAgICAgd2lsbFN3aXBlRm9yd2FyZCA9IGV2ZW50LnNjcm9sbGluZ0Rl
bHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJk
TGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2lsbFN3aXBlQmFj
ayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1fd2Vi
UGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCk7Ci0gICAgICAgIHdpbGxTd2lw
ZUZvcndhcmQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPiAwICYmIGlzUGlubmVkVG9MZWZ0ICYm
IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAgfQot
ICAgIGlmICghd2lsbFN3aXBlQmFjayAmJiAhd2lsbFN3aXBlRm9yd2FyZCkKKyAgICBib29sIHRy
eWluZ1RvU3dpcGVCYWNrID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBpc1Bpbm5lZFRv
TGVmdDsKKyAgICBib29sIHRyeWluZ1RvU3dpcGVGb3J3YXJkID0gZXZlbnQuc2Nyb2xsaW5nRGVs
dGFYIDwgMCAmJiBpc1Bpbm5lZFRvUmlnaHQ7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LnVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSAhPSBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uOjpMVFIpCisgICAgICAgIHN0ZDo6c3dhcCh0cnlpbmdUb1N3aXBlQmFjaywgdHJ5
aW5nVG9Td2lwZUZvcndhcmQpOworICAgIAorICAgIGlmICghdHJ5aW5nVG9Td2lwZUJhY2sgJiYg
IXRyeWluZ1RvU3dpcGVGb3J3YXJkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBwb3Rl
bnRpYWxTd2lwZURpcmVjdGlvbiA9IHdpbGxTd2lwZUJhY2sgPyBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrIDogVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURp
cmVjdGlvbjo6Rm9yd2FyZDsKLQotICAgIHJldHVybiB0cnVlOworICAgIHBvdGVudGlhbFN3aXBl
RGlyZWN0aW9uID0gdHJ5aW5nVG9Td2lwZUJhY2sgPyBTd2lwZURpcmVjdGlvbjo6QmFjayA6IFN3
aXBlRGlyZWN0aW9uOjpGb3J3YXJkOworICAgIHJldHVybiBtX3ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5jYW5Td2lwZUluRGlyZWN0aW9uKHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uKTsKIH0KIAogYm9v
bCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCkBAIC0zNzIsNyArMzY3LDcgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRvU3RhcnRTd2lwZShOU0V2ZW50ICpldmVudCkKICAgICB9
CiAKICAgICBpZiAoc3RkOjphYnMobV9jdW11bGF0aXZlRGVsdGEud2lkdGgoKSkgPj0gbWluaW11
bUhvcml6b250YWxTd2lwZURpc3RhbmNlKQotICAgICAgICBtX3RyYWNrU3dpcGVDYWxsYmFjayhl
dmVudCwgbV9kaXJlY3Rpb24pOworICAgICAgICBtX3ZpZXdHZXN0dXJlQ29udHJvbGxlci50cmFj
a1N3aXBlR2VzdHVyZShldmVudCwgbV9kaXJlY3Rpb24pOwogICAgIGVsc2UKICAgICAgICAgbV9z
dGF0ZSA9IFN0YXRlOjpJbnN1ZmZpY2llbnRNYWduaXR1ZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291011</attachid>
            <date>2016-10-08 00:56:29 -0700</date>
            <delta_ts>2016-10-09 23:38:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163158-20161008005312.patch</filename>
            <type>text/plain</type>
            <size>15891</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwYzMxYjI1OWZlODVm
M2Q1MTU3NWEyOThiYmMxYzhlMDA3ZDU5MS4uZWFmYmFlMmY1YTVhMjRmNzMzZGIzYjZhM2ZhZTk2
OTk3ODY1MTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTA4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MgVmlld0dlc3R1cmVDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgU2hhcmUgY2FuU3dpcGVJbkRp
cmVjdGlvbigpIGFuZCB0aGUgKHVudXNlZCBvbiBNYWMpIGFsdGVybmF0ZSBiYWNrLWZvcndhcmQg
bGlzdCBtZWNoYW5pc20uCisgICAgICAgIE1ha2UgVmlld0dlc3R1cmVDb250cm9sbGVyIG9wZXJh
dGUgaW4gdGVybXMgb2YgV2ViUGFnZVByb3h5LCBub3QgV0tXZWJWaWV3LAorICAgICAgICBiZWNh
dXNlIGl0IHNob3VsZG4ndCBrbm93IGFueXRoaW5nIGFib3V0IFdLV2ViVmlldy4KKyAgICAgICAg
UmVmYWN0b3Igc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSBhIGJpdCB0byBiZSBsZXNzIHJlcGV0
aXRpdmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Z2VzdHVyZUNvbnRyb2xsZXJGb3JQYWdlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0cik6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdT
d2lwZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUpOgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRv
U3RhcnRTd2lwZSk6CisKIDIwMTYtMTAtMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIEFQSTo6U2Vzc2lvbiBhbmQgV0tTZXNzaW9u
UmVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDdkZjBhYmM4MzY5MzllM2RiNzY4YWY5NzI0NGJiNjI4MWViYjIyZjEuLjI2NWIyOTc4
OGI1NTQ5YTdmMGNlM2U3ZjAzMzljZTNmNTE1NjNmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yMTk4LDcgKzIxOTgsNyBAQCBz
dGF0aWMgYm9vbCBzY3JvbGxWaWV3Q2FuU2Nyb2xsKFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldykK
ICAgICAgICAgaWYgKCFfZ2VzdHVyZUNvbnRyb2xsZXIpIHsKICAgICAgICAgICAgIF9nZXN0dXJl
Q29udHJvbGxlciA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI+KCpfcGFnZSk7CiAgICAgICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmluc3RhbGxTd2lw
ZUhhbmRsZXIoc2VsZiwgW3NlbGYgc2Nyb2xsVmlld10pOwotICAgICAgICAgICAgX2dlc3R1cmVD
b250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VWaWV3KFtfY29uZmln
dXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlc10pOworICAgICAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3Vy
Y2VQYWdlKFtfY29uZmlndXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0
dXJlc10tPl9wYWdlLmdldCgpKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBfZ2Vz
dHVyZUNvbnRyb2xsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4NTZjY2E3YTNl
YjdjNzA1NGZjODgyNjc4ZjRhZjcwNDc0MTYyN2Q2Li40OWYxOGUzNzhhNTI5ZDA1NjViMGQ3ZWU5
ZTYxODgyMTJjZmRkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKKyNpbXBvcnQg
IldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC01OSw3
ICs2MCw3IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVDb250cm9sbGVyKFdl
YlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFnZVBy
b3h5KQogICAgICwgbV9zd2lwZUFjdGl2ZUxvYWRNb25pdG9yaW5nVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpjaGVja0ZvckFjdGl2ZUxvYWRzKQog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICAsIG1fcGVuZGluZ1N3aXBlVHJhY2tlcih3ZWJQYWdlUHJv
eHksIHN0ZDo6YmluZCgmVmlld0dlc3R1cmVDb250cm9sbGVyOjp0cmFja1N3aXBlR2VzdHVyZSwg
dGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpKQorICAg
ICwgbV9wZW5kaW5nU3dpcGVUcmFja2VyKHdlYlBhZ2VQcm94eSwgKnRoaXMpCiAjZW5kaWYKIHsK
ICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdl
UHJveHkucGFnZUlEKCksICp0aGlzKTsKQEAgLTgzLDYgKzg0LDI0IEBAIFZpZXdHZXN0dXJlQ29u
dHJvbGxlciogVmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJvbGxlckZvclBhZ2Uo
dWludDY0X3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGdlc3R1cmVDb250
cm9sbGVySXRlci0+dmFsdWU7CiB9CisgICAgCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2Up
Cit7CisgICAgaWYgKHBhZ2UpCisgICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291
cmNlUGFnZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5jbGVhcigpOworfQorICAgIAorYm9vbCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24g
ZGlyZWN0aW9uKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IGFsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJj
ZVBhZ2UuZ2V0KCk7CisgICAgYXV0byYgYmFja0ZvcndhcmRMaXN0ID0gYWx0ZXJuYXRlQmFja0Zv
cndhcmRMaXN0U291cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2Ut
PmJhY2tGb3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCk7Cisg
ICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFjaykKKyAgICAgICAgcmV0dXJu
ICEhYmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7CisgICAgcmV0dXJuICEhYmFja0ZvcndhcmRM
aXN0LmZvcndhcmRJdGVtKCk7Cit9CisKIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmgK
aW5kZXggMTY1N2IxZTExN2JiYTY4OWQ0NDg5MzdlNmVkMzBkM2UxNzZmNzFjOS4uNzU4ZDczNTBk
YmQ4NDc1NzQ2NmNjZGJhODQzNmI2ZTQ5ZDYyYmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjgsMjIg
KzI4LDE5IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2luY2x1ZGUgIldlYWtPYmpDUHRyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAj
aW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0vLyBGSVhNRTogTW92
ZSB0aGlzIGZpbGUgb3V0IG9mIHRoZSBtYWMvIHN1YmRpcmVjdG9yeS4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKICNpZiBQTEFURk9STShJT1MpCiBP
QkpDX0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgV0tTd2lwZVRyYW5zaXRpb25Db250cm9sbGVy
OwotT0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9VSU5hdmlnYXRpb25JbnRlcmFj
dGl2ZVRyYW5zaXRpb25CYXNlOwogT0JKQ19DTEFTUyBfVUlWaWV3Q29udHJvbGxlck9uZVRvT25l
VHJhbnNpdGlvbkNvbnRleHQ7CiBPQkpDX0NMQVNTIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlv
bkNvbnRleHQ7CkBAIC0xMDksMTMgKzEwNiwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BoeXNp
Y2FsbHlTd2lwaW5nTGVmdChTd2lwZURpcmVjdGlvbikgY29uc3Q7CiAjZWxzZQogICAgIHZvaWQg
aW5zdGFsbFN3aXBlSGFuZGxlcihVSVZpZXcgKmdlc3R1cmVSZWNvZ25pemVyVmlldywgVUlWaWV3
ICpzd2lwaW5nVmlldyk7Ci0gICAgdm9pZCBzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3Vy
Y2VWaWV3KFdLV2ViVmlldyAqKTsKLSAgICBib29sIGNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVE
aXJlY3Rpb24pOwogICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVy
YWN0aXZlVHJhbnNpdGlvbkJhc2UgKiwgU3dpcGVEaXJlY3Rpb24pOwogICAgIHZvaWQgZW5kU3dp
cGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250
cm9sbGVyVHJhbnNpdGlvbkNvbnRleHQgKiwgYm9vbCBjYW5jZWxsZWQpOwogICAgIHZvaWQgd2ls
bENvbW1pdFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoYm9vbCk7CiAgICAgdm9pZCBzZXRS
ZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCk7CiAjZW5kaWYKKyAgICAKKyAgICB2b2lkIHNldEFsdGVy
bmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UoV2ViUGFnZVByb3h5Kik7CisgICAgCisgICAg
Ym9vbCBjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIFdl
YkNvcmU6OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKQEAgLTIwMiw3
ICsyMDEsNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgUGVuZGluZ1N3aXBlVHJhY2tlciB7CiAg
ICAgcHVibGljOgotICAgICAgICBQZW5kaW5nU3dpcGVUcmFja2VyKFdlYlBhZ2VQcm94eSYsIHN0
ZDo6ZnVuY3Rpb248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gdHJhY2tTd2lwZUNh
bGxiYWNrKTsKKyAgICAgICAgUGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmLCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXImKTsKICAgICAgICAgYm9vbCBoYW5kbGVFdmVudChOU0V2ZW50ICop
OwogICAgICAgICB2b2lkIGV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICopOwog
CkBAIC0yMjcsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIG1fc2hvdWxkSWdu
b3JlUGlubmVkU3RhdGUgeyBmYWxzZSB9OwogCi0gICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChO
U0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gbV90cmFja1N3aXBlQ2FsbGJhY2s7CisgICAgICAg
IFZpZXdHZXN0dXJlQ29udHJvbGxlciYgbV92aWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgICAg
IFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgfTsKICNlbmRpZgpAQCAtMjM4LDYg
KzIzNyw5IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9s
bGVyPiBtX3N3aXBlQWN0aXZlTG9hZE1vbml0b3JpbmdUaW1lcjsKIAogICAgIFdlYkNvcmU6OkNv
bG9yIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OworICAgIAorICAgIFdlYWtQ
dHI8V2ViUGFnZVByb3h5PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7Cisg
ICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RG
b3JDdXJyZW50U3dpcGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVmUHRyPFZpZXdTbmFw
c2hvdD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdDsKQEAgLTI3Nyw4ICsyNzksNiBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxXS1N3aXBlVHJhbnNpdGlvbkNvbnRyb2xsZXI+IG1fc3dpcGVJbnRl
cmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8X1VJVmlld0NvbnRyb2xs
ZXJPbmVUb09uZVRyYW5zaXRpb25Db250ZXh0PiBtX3N3aXBlVHJhbnNpdGlvbkNvbnRleHQ7CiAg
ICAgdWludDY0X3QgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSB7IDAgfTsK
LSAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291
cmNlVmlldzsKLSAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tG
b3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZTsKICAgICB1aW50NjRfdCBtX2dlc3R1cmVQZW5kaW5n
U25hcHNob3RSZW1vdmFsIHsgMCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjc5OTMxNTc0MTdlZmY1NDNjMWIyMGNjMGI5MWYwZDBj
YzY3M2Q3ZS4uNzY0YzZkMzYxNmRjYTgyZWY1ZmQxZjcwY2I1ZTdiYjFlMjUzMDgzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1MCw2ICs0NTAsNyBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9jb25maWd1cmF0aW9uUHJlZmVyZW5j
ZVZhbHVlcyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkKICAgICAsIG1fcG90
ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MoVmlld1N0YXRlOjpOb0ZsYWdzKQogICAgICwg
bV92aWV3U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkoZmFsc2UpCisgICAgLCBtX3dl
YWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFk
ZE9ic2VydmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2Q1YWRlZWFhMzFlNWIwOGEwMDNhNjk0ZDViZjA2
YTgwY2Q2MjM0MS4uNTIwM2VkOGMwOTc5NTZiYTllNjU1NjgzZTI0NjhhNmU4NWJlMGJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEyOSw2ICsxMTI5LDgg
QEAgcHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5
KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgICAgICAKKyAgICBXZWFr
UHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6
OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKQEAgLTE4ODksNiArMTg5MSw4IEBAIHByaXZhdGU6CiAj
aWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3luY05hdmlnYXRpb25B
Y3Rpb25IYXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAgICAgCisg
ICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDNkOGY3MzZhMDUyMmFj
Y2ExN2Q4NGQ4YWU0MWVmZmJkNDRhYzIzMDMuLjgxY2ZkMzZhY2NlNDUyZDg2ZGUzNjY2ZjYxNTMw
YmZjZTIyMzk3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmll
d0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0
ICJWaWV3U25hcHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJXZWFrT2Jq
Q1B0ci5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1wb3J0ICJXZWJQYWdl
R3JvdXAuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtMTQwLDExICsxNDEsNiBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cGxhdGZvcm1UZWFyZG93bigpCiAgICAgW21f
c3dpcGVJbnRlcmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKIH0KIAotdm9p
ZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJj
ZVZpZXcoV0tXZWJWaWV3ICp2aWV3KQotewotICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0
U291cmNlVmlldyA9IHZpZXc7Ci19Ci0KIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjppbnN0
YWxsU3dpcGVIYW5kbGVyKFVJVmlldyAqZ2VzdHVyZVJlY29nbml6ZXJWaWV3LCBVSVZpZXcgKnN3
aXBpbmdWaWV3KQogewogICAgIEFTU0VSVCghbV9zd2lwZUludGVyYWN0aXZlVHJhbnNpdGlvbkRl
bGVnYXRlKTsKQEAgLTE1OSw3ICsxNTUsOSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
YmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlvbgogCiAg
ICAgbV93ZWJQYWdlUHJveHkucmVjb3JkQXV0b21hdGljTmF2aWdhdGlvblNuYXBzaG90KCk7CiAK
LSAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IG1f
YWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFj
a0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKS0+X3BhZ2UgOiAmbV93ZWJQYWdlUHJveHk7Cisg
ICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFn
ZSA9IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5nZXQoKTsKKyAgICBtX3dl
YlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IGFsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPyBhbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQ
YWdlLmdldCgpIDogJm1fd2ViUGFnZVByb3h5OworCiAgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNr
Rm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKTsK
ICAgICBpZiAoJm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRM
aXN0Rm9yQ3VycmVudFN3aXBlKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2Vz
dHVyZURpZEJlZ2luKCk7CkBAIC0yMzksMTQgKzIzNyw2IEBAIHZvaWQgVmlld0dlc3R1cmVDb250
cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShfVUlOYXZpZ2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0
aW9uCiAgICAgbV9hY3RpdmVHZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGU7CiB9
CiAKLWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBl
RGlyZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICBhdXRvJiBiYWNrRm9yd2FyZExpc3QgPSBtX2Fs
dGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCkgPyBtX2FsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCktPl9wYWdlLT5iYWNrRm9yd2FyZExpc3QoKSA6IG1f
d2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGlmIChkaXJlY3Rpb24gPT0gU3dp
cGVEaXJlY3Rpb246OkJhY2spCi0gICAgICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5iYWNr
SXRlbSgpOwotICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5mb3J3YXJkSXRlbSgpOwotfQot
CiB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvbnRl
eHQgKmNvbnRleHQsIGJvb2wgY2FuY2VsbGVkKQogewogICAgIFtjb250ZXh0IF9zZXRUcmFuc2l0
aW9uSXNJbkZsaWdodDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IGM0MGZiYjc1ODVlNmMzNzA5
NmQxNzRiNTRlNjBkYzliZDBmMTFiNGMuLjg2NGUyZGEzOTkzMTJmMWJjYzk2MmZiYWM3OTc4ZWJl
YzNkODBmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC0yNzIsOCArMjcyLDggQEAgc3RhdGljIGJv
b2wgZGVsdGFTaG91bGRDYW5jZWxTd2lwZShmbG9hdCB4LCBmbG9hdCB5KQogICAgIHJldHVybiBz
dGQ6OmFicyh5KSA+PSBzdGQ6OmFicyh4KSAqIG1pbmltdW1TY3JvbGxFdmVudFJhdGlvRm9yU3dp
cGU7CiB9CiAKLVZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6UGVu
ZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgc3RkOjpmdW5jdGlv
bjx2b2lkKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24pPiB0cmFja1N3aXBlQ2FsbGJhY2spCi0g
ICAgOiBtX3RyYWNrU3dpcGVDYWxsYmFjayhXVEZNb3ZlKHRyYWNrU3dpcGVDYWxsYmFjaykpCitW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdTd2lwZVRy
YWNrZXIoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJlQ29udHJvbGxlciYg
dmlld0dlc3R1cmVDb250cm9sbGVyKQorICAgIDogbV92aWV3R2VzdHVyZUNvbnRyb2xsZXIodmll
d0dlc3R1cmVDb250cm9sbGVyKQogICAgICwgbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQog
ewogfQpAQCAtMjkyLDIxICsyOTIsMTYgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoTlNFdmUKICAgICBi
b29sIGlzUGlubmVkVG9MZWZ0ID0gbV9zaG91bGRJZ25vcmVQaW5uZWRTdGF0ZSB8fCBtX3dlYlBh
Z2VQcm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKTsKICAgICBib29sIGlzUGlubmVkVG9SaWdodCA9
IG1fc2hvdWxkSWdub3JlUGlubmVkU3RhdGUgfHwgbV93ZWJQYWdlUHJveHkuaXNQaW5uZWRUb1Jp
Z2h0U2lkZSgpOwogCi0gICAgYm9vbCB3aWxsU3dpcGVCYWNrID0gZmFsc2U7Ci0gICAgYm9vbCB3
aWxsU3dpcGVGb3J3YXJkID0gZmFsc2U7Ci0gICAgaWYgKG1fd2ViUGFnZVByb3h5LnVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24oKSA9PSBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uOjpMVFIpIHsKLSAgICAgICAgd2lsbFN3aXBlQmFjayA9IGV2ZW50LnNjcm9sbGluZ0Rl
bHRhWCA+IDAgJiYgaXNQaW5uZWRUb0xlZnQgJiYgbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRM
aXN0KCkuYmFja0l0ZW0oKTsKLSAgICAgICAgd2lsbFN3aXBlRm9yd2FyZCA9IGV2ZW50LnNjcm9s
bGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tG
b3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2lsbFN3
aXBlQmFjayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYm
IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCk7Ci0gICAgICAgIHdp
bGxTd2lwZUZvcndhcmQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPiAwICYmIGlzUGlubmVkVG9M
ZWZ0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0g
ICAgfQotICAgIGlmICghd2lsbFN3aXBlQmFjayAmJiAhd2lsbFN3aXBlRm9yd2FyZCkKKyAgICBi
b29sIHRyeWluZ1RvU3dpcGVCYWNrID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBpc1Bp
bm5lZFRvTGVmdDsKKyAgICBib29sIHRyeWluZ1RvU3dpcGVGb3J3YXJkID0gZXZlbnQuc2Nyb2xs
aW5nRGVsdGFYIDwgMCAmJiBpc1Bpbm5lZFRvUmlnaHQ7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5
LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSAhPSBXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uOjpMVFIpCisgICAgICAgIHN0ZDo6c3dhcCh0cnlpbmdUb1N3aXBlQmFj
aywgdHJ5aW5nVG9Td2lwZUZvcndhcmQpOworICAgIAorICAgIGlmICghdHJ5aW5nVG9Td2lwZUJh
Y2sgJiYgIXRyeWluZ1RvU3dpcGVGb3J3YXJkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBwb3RlbnRpYWxTd2lwZURpcmVjdGlvbiA9IHdpbGxTd2lwZUJhY2sgPyBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrIDogVmlld0dlc3R1cmVDb250cm9sbGVyOjpT
d2lwZURpcmVjdGlvbjo6Rm9yd2FyZDsKLQotICAgIHJldHVybiB0cnVlOworICAgIHBvdGVudGlh
bFN3aXBlRGlyZWN0aW9uID0gdHJ5aW5nVG9Td2lwZUJhY2sgPyBTd2lwZURpcmVjdGlvbjo6QmFj
ayA6IFN3aXBlRGlyZWN0aW9uOjpGb3J3YXJkOworICAgIHJldHVybiBtX3ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5jYW5Td2lwZUluRGlyZWN0aW9uKHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uKTsKIH0K
IAogYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoTlNF
dmVudCAqZXZlbnQpCkBAIC0zNzIsNyArMzY3LDcgQEAgYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRvU3RhcnRTd2lwZShOU0V2ZW50ICpldmVudCkK
ICAgICB9CiAKICAgICBpZiAoc3RkOjphYnMobV9jdW11bGF0aXZlRGVsdGEud2lkdGgoKSkgPj0g
bWluaW11bUhvcml6b250YWxTd2lwZURpc3RhbmNlKQotICAgICAgICBtX3RyYWNrU3dpcGVDYWxs
YmFjayhldmVudCwgbV9kaXJlY3Rpb24pOworICAgICAgICBtX3ZpZXdHZXN0dXJlQ29udHJvbGxl
ci50cmFja1N3aXBlR2VzdHVyZShldmVudCwgbV9kaXJlY3Rpb24pOwogICAgIGVsc2UKICAgICAg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpJbnN1ZmZpY2llbnRNYWduaXR1ZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291065</attachid>
            <date>2016-10-09 23:38:57 -0700</date>
            <delta_ts>2016-10-10 00:16:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163158-20161009233537.patch</filename>
            <type>text/plain</type>
            <size>15960</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwYzMxYjI1OWZlODVm
M2Q1MTU3NWEyOThiYmMxYzhlMDA3ZDU5MS4uZWFmYmFlMmY1YTVhMjRmNzMzZGIzYjZhM2ZhZTk2
OTk3ODY1MTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTA4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUg
Y29kZSBiZXR3ZWVuIGlPUyBhbmQgbWFjT1MgVmlld0dlc3R1cmVDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgU2hhcmUgY2FuU3dpcGVJbkRp
cmVjdGlvbigpIGFuZCB0aGUgKHVudXNlZCBvbiBNYWMpIGFsdGVybmF0ZSBiYWNrLWZvcndhcmQg
bGlzdCBtZWNoYW5pc20uCisgICAgICAgIE1ha2UgVmlld0dlc3R1cmVDb250cm9sbGVyIG9wZXJh
dGUgaW4gdGVybXMgb2YgV2ViUGFnZVByb3h5LCBub3QgV0tXZWJWaWV3LAorICAgICAgICBiZWNh
dXNlIGl0IHNob3VsZG4ndCBrbm93IGFueXRoaW5nIGFib3V0IFdLV2ViVmlldy4KKyAgICAgICAg
UmVmYWN0b3Igc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSBhIGJpdCB0byBiZSBsZXNzIHJlcGV0
aXRpdmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Z2VzdHVyZUNvbnRyb2xsZXJGb3JQYWdlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0cik6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tG
b3J3YXJkTGlzdFNvdXJjZVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBlbmRpbmdT
d2lwZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUpOgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRv
U3RhcnRTd2lwZSk6CisKIDIwMTYtMTAtMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIEFQSTo6U2Vzc2lvbiBhbmQgV0tTZXNzaW9u
UmVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDdkZjBhYmM4MzY5MzllM2RiNzY4YWY5NzI0NGJiNjI4MWViYjIyZjEuLjM1MTEyMDNm
YTVhNDlkNGQ1ZGRiOTYzYTJkYWNjNTlmOGI1MTc3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yMTk4LDcgKzIxOTgsOCBAQCBz
dGF0aWMgYm9vbCBzY3JvbGxWaWV3Q2FuU2Nyb2xsKFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldykK
ICAgICAgICAgaWYgKCFfZ2VzdHVyZUNvbnRyb2xsZXIpIHsKICAgICAgICAgICAgIF9nZXN0dXJl
Q29udHJvbGxlciA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI+KCpfcGFnZSk7CiAgICAgICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmluc3RhbGxTd2lw
ZUhhbmRsZXIoc2VsZiwgW3NlbGYgc2Nyb2xsVmlld10pOwotICAgICAgICAgICAgX2dlc3R1cmVD
b250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VWaWV3KFtfY29uZmln
dXJhdGlvbiBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlc10pOworICAgICAg
ICAgICAgaWYgKFdLV2ViVmlldyAqYWx0ZXJuYXRlV2ViVmlldyA9IFtfY29uZmlndXJhdGlvbiBf
YWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlc10pCisgICAgICAgICAgICAgICAg
X2dlc3R1cmVDb250cm9sbGVyLT5zZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdl
KGFsdGVybmF0ZVdlYlZpZXctPl9wYWdlLmdldCgpKTsKICAgICAgICAgfQogICAgIH0gZWxzZQog
ICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRl
eCA4NTZjY2E3YTNlYjdjNzA1NGZjODgyNjc4ZjRhZjcwNDc0MTYyN2Q2Li40OWYxOGUzNzhhNTI5
ZDA1NjViMGQ3ZWU5ZTYxODgyMTJjZmRkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMu
aCIKKyNpbXBvcnQgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFz
Lmg+CkBAIC01OSw3ICs2MCw3IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1cmVD
b250cm9sbGVyKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJv
eHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zd2lwZUFjdGl2ZUxvYWRNb25pdG9yaW5nVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpjaGVja0ZvckFj
dGl2ZUxvYWRzKQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAsIG1fcGVuZGluZ1N3aXBlVHJhY2tl
cih3ZWJQYWdlUHJveHksIHN0ZDo6YmluZCgmVmlld0dlc3R1cmVDb250cm9sbGVyOjp0cmFja1N3
aXBlR2VzdHVyZSwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVy
czo6XzIpKQorICAgICwgbV9wZW5kaW5nU3dpcGVUcmFja2VyKHdlYlBhZ2VQcm94eSwgKnRoaXMp
CiAjZW5kaWYKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCksICp0aGlzKTsKQEAgLTgzLDYgKzg0LDI0IEBAIFZp
ZXdHZXN0dXJlQ29udHJvbGxlciogVmlld0dlc3R1cmVDb250cm9sbGVyOjpnZXN0dXJlQ29udHJv
bGxlckZvclBhZ2UodWludDY0X3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGdlc3R1cmVDb250cm9sbGVySXRlci0+dmFsdWU7CiB9CisgICAgCit2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZShXZWJQYWdl
UHJveHkqIHBhZ2UpCit7CisgICAgaWYgKHBhZ2UpCisgICAgICAgIG1fYWx0ZXJuYXRlQmFja0Zv
cndhcmRMaXN0U291cmNlUGFnZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBlbHNlCisg
ICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5jbGVhcigpOworfQor
ICAgIAorYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dp
cGVEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+
IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UuZ2V0KCk7CisgICAgYXV0byYgYmFja0ZvcndhcmRMaXN0ID0gYWx0
ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSA/IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlz
dFNvdXJjZVBhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpIDogbV93ZWJQYWdlUHJveHkuYmFja0Zvcndh
cmRMaXN0KCk7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6QmFjaykKKyAg
ICAgICAgcmV0dXJuICEhYmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtKCk7CisgICAgcmV0dXJuICEh
YmFja0ZvcndhcmRMaXN0LmZvcndhcmRJdGVtKCk7Cit9CisKIAogdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVD
b250cm9sbGVyLmgKaW5kZXggMTY1N2IxZTExN2JiYTY4OWQ0NDg5MzdlNmVkMzBkM2UxNzZmNzFj
OS4uNzU4ZDczNTBkYmQ4NDc1NzQ2NmNjZGJhODQzNmI2ZTQ5ZDYyYmMyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aApAQCAtMjgsMjIgKzI4LDE5IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2luY2x1ZGUgIldlYWtPYmpD
UHRyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRSZWN0Lmg+CiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0v
LyBGSVhNRTogTW92ZSB0aGlzIGZpbGUgb3V0IG9mIHRoZSBtYWMvIHN1YmRpcmVjdG9yeS4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKICNpZiBQTEFU
Rk9STShJT1MpCiBPQkpDX0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgV0tTd2lwZVRyYW5zaXRp
b25Db250cm9sbGVyOwotT0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9VSU5hdmln
YXRpb25JbnRlcmFjdGl2ZVRyYW5zaXRpb25CYXNlOwogT0JKQ19DTEFTUyBfVUlWaWV3Q29udHJv
bGxlck9uZVRvT25lVHJhbnNpdGlvbkNvbnRleHQ7CiBPQkpDX0NMQVNTIF9VSVZpZXdDb250cm9s
bGVyVHJhbnNpdGlvbkNvbnRleHQ7CkBAIC0xMDksMTMgKzEwNiwxNSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1BoeXNpY2FsbHlTd2lwaW5nTGVmdChTd2lwZURpcmVjdGlvbikgY29uc3Q7CiAjZWxz
ZQogICAgIHZvaWQgaW5zdGFsbFN3aXBlSGFuZGxlcihVSVZpZXcgKmdlc3R1cmVSZWNvZ25pemVy
VmlldywgVUlWaWV3ICpzd2lwaW5nVmlldyk7Ci0gICAgdm9pZCBzZXRBbHRlcm5hdGVCYWNrRm9y
d2FyZExpc3RTb3VyY2VWaWV3KFdLV2ViVmlldyAqKTsKLSAgICBib29sIGNhblN3aXBlSW5EaXJl
Y3Rpb24oU3dpcGVEaXJlY3Rpb24pOwogICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2
aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlvbkJhc2UgKiwgU3dpcGVEaXJlY3Rpb24pOwogICAg
IHZvaWQgZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0s
IF9VSVZpZXdDb250cm9sbGVyVHJhbnNpdGlvbkNvbnRleHQgKiwgYm9vbCBjYW5jZWxsZWQpOwog
ICAgIHZvaWQgd2lsbENvbW1pdFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoYm9vbCk7CiAg
ICAgdm9pZCBzZXRSZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCk7CiAjZW5kaWYKKyAgICAKKyAgICB2
b2lkIHNldEFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UoV2ViUGFnZVByb3h5Kik7
CisgICAgCisgICAgYm9vbCBjYW5Td2lwZUluRGlyZWN0aW9uKFN3aXBlRGlyZWN0aW9uKSBjb25z
dDsKIAogICAgIFdlYkNvcmU6OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hv
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9
CiAKQEAgLTIwMiw3ICsyMDEsNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgUGVuZGluZ1N3aXBl
VHJhY2tlciB7CiAgICAgcHVibGljOgotICAgICAgICBQZW5kaW5nU3dpcGVUcmFja2VyKFdlYlBh
Z2VQcm94eSYsIHN0ZDo6ZnVuY3Rpb248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4g
dHJhY2tTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAgUGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdl
UHJveHkmLCBWaWV3R2VzdHVyZUNvbnRyb2xsZXImKTsKICAgICAgICAgYm9vbCBoYW5kbGVFdmVu
dChOU0V2ZW50ICopOwogICAgICAgICB2b2lkIGV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShO
U0V2ZW50ICopOwogCkBAIC0yMjcsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29s
IG1fc2hvdWxkSWdub3JlUGlubmVkU3RhdGUgeyBmYWxzZSB9OwogCi0gICAgICAgIHN0ZDo6ZnVu
Y3Rpb248dm9pZChOU0V2ZW50ICosIFN3aXBlRGlyZWN0aW9uKT4gbV90cmFja1N3aXBlQ2FsbGJh
Y2s7CisgICAgICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgbV92aWV3R2VzdHVyZUNvbnRyb2xs
ZXI7CiAgICAgICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgfTsKICNlbmRp
ZgpAQCAtMjM4LDYgKzIzNyw5IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dl
c3R1cmVDb250cm9sbGVyPiBtX3N3aXBlQWN0aXZlTG9hZE1vbml0b3JpbmdUaW1lcjsKIAogICAg
IFdlYkNvcmU6OkNvbG9yIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OworICAg
IAorICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNv
dXJjZVBhZ2U7CisgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNr
Rm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVm
UHRyPFZpZXdTbmFwc2hvdD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdDsKQEAgLTI3Nyw4ICsyNzks
NiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxXS1N3aXBlVHJhbnNpdGlvbkNvbnRyb2xsZXI+
IG1fc3dpcGVJbnRlcmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8X1VJ
Vmlld0NvbnRyb2xsZXJPbmVUb09uZVRyYW5zaXRpb25Db250ZXh0PiBtX3N3aXBlVHJhbnNpdGlv
bkNvbnRleHQ7CiAgICAgdWludDY0X3QgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVl
U2l6ZSB7IDAgfTsKLSAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IG1fYWx0ZXJuYXRlQmFja0Zv
cndhcmRMaXN0U291cmNlVmlldzsKLSAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQ
cm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZTsKICAgICB1aW50NjRfdCBtX2dl
c3R1cmVQZW5kaW5nU25hcHNob3RSZW1vdmFsIHsgMCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjc5OTMxNTc0MTdlZmY1NDNjMWIy
MGNjMGI5MWYwZDBjYzY3M2Q3ZS4uNzY0YzZkMzYxNmRjYTgyZWY1ZmQxZjcwY2I1ZTdiYjFlMjUz
MDgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1
MCw2ICs0NTAsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdl
Q2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9jb25maWd1cmF0
aW9uUHJlZmVyZW5jZVZhbHVlcyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkK
ICAgICAsIG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MoVmlld1N0YXRlOjpOb0Zs
YWdzKQogICAgICwgbV92aWV3U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkoZmFsc2Up
CisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyLmFkZE9ic2VydmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9j
ZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2Q1YWRlZWFhMzFlNWIwOGEw
MDNhNjk0ZDViZjA2YTgwY2Q2MjM0MS4uNTIwM2VkOGMwOTc5NTZiYTllNjU1NjgzZTI0NjhhNmU4
NWJlMGJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEy
OSw2ICsxMTI5LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2Ft
ZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgICAg
ICAKKyAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAg
V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdl
SUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKQEAgLTE4ODksNiArMTg5MSw4IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3lu
Y05hdmlnYXRpb25BY3Rpb25IYXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYK
KyAgICAgICAgCisgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0
b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDNk
OGY3MzZhMDUyMmFjY2ExN2Q4NGQ4YWU0MWVmZmJkNDRhYzIzMDMuLjgxY2ZkMzZhY2NlNDUyZDg2
ZGUzNjY2ZjYxNTMwYmZjZTIyMzk3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0ICJWaWV3U25hcHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisjaW1w
b3J0ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1w
b3J0ICJXZWJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtMTQw
LDExICsxNDEsNiBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cGxhdGZvcm1UZWFyZG93
bigpCiAgICAgW21fc3dpcGVJbnRlcmFjdGl2ZVRyYW5zaXRpb25EZWxlZ2F0ZSBpbnZhbGlkYXRl
XTsKIH0KIAotdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNldEFsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVZpZXcoV0tXZWJWaWV3ICp2aWV3KQotewotICAgIG1fYWx0ZXJuYXRlQmFj
a0ZvcndhcmRMaXN0U291cmNlVmlldyA9IHZpZXc7Ci19Ci0KIHZvaWQgVmlld0dlc3R1cmVDb250
cm9sbGVyOjppbnN0YWxsU3dpcGVIYW5kbGVyKFVJVmlldyAqZ2VzdHVyZVJlY29nbml6ZXJWaWV3
LCBVSVZpZXcgKnN3aXBpbmdWaWV3KQogewogICAgIEFTU0VSVCghbV9zd2lwZUludGVyYWN0aXZl
VHJhbnNpdGlvbkRlbGVnYXRlKTsKQEAgLTE1OSw3ICsxNTUsOSBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJh
bnNpdGlvbgogCiAgICAgbV93ZWJQYWdlUHJveHkucmVjb3JkQXV0b21hdGljTmF2aWdhdGlvblNu
YXBzaG90KCk7CiAKLSAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJl
bnRTd2lwZSA9IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1f
YWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQoKS0+X3BhZ2UgOiAmbV93ZWJQ
YWdlUHJveHk7CisgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gYWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSA9IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZS5nZXQo
KTsKKyAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9
IGFsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPyBhbHRlcm5hdGVCYWNrRm9yd2Fy
ZExpc3RTb3VyY2VQYWdlLmdldCgpIDogJm1fd2ViUGFnZVByb3h5OworCiAgICAgbV93ZWJQYWdl
UHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0dXJl
RGlkQmVnaW4oKTsKICAgICBpZiAoJm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFnZVByb3h5Rm9y
QmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5u
YXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCk7CkBAIC0yMzksMTQgKzIzNyw2IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShfVUlOYXZpZ2F0aW9uSW50ZXJh
Y3RpdmVUcmFuc2l0aW9uCiAgICAgbV9hY3RpdmVHZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlw
ZTo6U3dpcGU7CiB9CiAKLWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpjYW5Td2lwZUluRGly
ZWN0aW9uKFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICBhdXRvJiBiYWNrRm9yd2Fy
ZExpc3QgPSBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCkgPyBtX2Fs
dGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVZpZXcuZ2V0KCktPl9wYWdlLT5iYWNrRm9yd2Fy
ZExpc3QoKSA6IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGlmIChkaXJl
Y3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkJhY2spCi0gICAgICAgIHJldHVybiAhIWJhY2tGb3J3
YXJkTGlzdC5iYWNrSXRlbSgpOwotICAgIHJldHVybiAhIWJhY2tGb3J3YXJkTGlzdC5mb3J3YXJk
SXRlbSgpOwotfQotCiB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJl
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIF9VSVZpZXdDb250cm9sbGVyVHJh
bnNpdGlvbkNvbnRleHQgKmNvbnRleHQsIGJvb2wgY2FuY2VsbGVkKQogewogICAgIFtjb250ZXh0
IF9zZXRUcmFuc2l0aW9uSXNJbkZsaWdodDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IGM0MGZi
Yjc1ODVlNmMzNzA5NmQxNzRiNTRlNjBkYzliZDBmMTFiNGMuLjg2NGUyZGEzOTkzMTJmMWJjYzk2
MmZiYWM3OTc4ZWJlYzNkODBmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC0yNzIsOCArMjcyLDgg
QEAgc3RhdGljIGJvb2wgZGVsdGFTaG91bGRDYW5jZWxTd2lwZShmbG9hdCB4LCBmbG9hdCB5KQog
ICAgIHJldHVybiBzdGQ6OmFicyh5KSA+PSBzdGQ6OmFicyh4KSAqIG1pbmltdW1TY3JvbGxFdmVu
dFJhdGlvRm9yU3dpcGU7CiB9CiAKLVZpZXdHZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBl
VHJhY2tlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwg
c3RkOjpmdW5jdGlvbjx2b2lkKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24pPiB0cmFja1N3aXBl
Q2FsbGJhY2spCi0gICAgOiBtX3RyYWNrU3dpcGVDYWxsYmFjayhXVEZNb3ZlKHRyYWNrU3dpcGVD
YWxsYmFjaykpCitWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OlBl
bmRpbmdTd2lwZVRyYWNrZXIoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJl
Q29udHJvbGxlciYgdmlld0dlc3R1cmVDb250cm9sbGVyKQorICAgIDogbV92aWV3R2VzdHVyZUNv
bnRyb2xsZXIodmlld0dlc3R1cmVDb250cm9sbGVyKQogICAgICwgbV93ZWJQYWdlUHJveHkod2Vi
UGFnZVByb3h5KQogewogfQpAQCAtMjkyLDIxICsyOTIsMTYgQEAgYm9vbCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUo
TlNFdmUKICAgICBib29sIGlzUGlubmVkVG9MZWZ0ID0gbV9zaG91bGRJZ25vcmVQaW5uZWRTdGF0
ZSB8fCBtX3dlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKTsKICAgICBib29sIGlzUGlu
bmVkVG9SaWdodCA9IG1fc2hvdWxkSWdub3JlUGlubmVkU3RhdGUgfHwgbV93ZWJQYWdlUHJveHku
aXNQaW5uZWRUb1JpZ2h0U2lkZSgpOwogCi0gICAgYm9vbCB3aWxsU3dpcGVCYWNrID0gZmFsc2U7
Ci0gICAgYm9vbCB3aWxsU3dpcGVGb3J3YXJkID0gZmFsc2U7Ci0gICAgaWYgKG1fd2ViUGFnZVBy
b3h5LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSA9PSBXZWJDb3JlOjpVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIpIHsKLSAgICAgICAgd2lsbFN3aXBlQmFjayA9IGV2ZW50
LnNjcm9sbGluZ0RlbHRhWCA+IDAgJiYgaXNQaW5uZWRUb0xlZnQgJiYgbV93ZWJQYWdlUHJveHku
YmFja0ZvcndhcmRMaXN0KCkuYmFja0l0ZW0oKTsKLSAgICAgICAgd2lsbFN3aXBlRm9yd2FyZCA9
IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5uZWRUb1JpZ2h0ICYmIG1fd2ViUGFn
ZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgd2lsbFN3aXBlQmFjayA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA8IDAgJiYgaXNQaW5u
ZWRUb1JpZ2h0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCk7
Ci0gICAgICAgIHdpbGxTd2lwZUZvcndhcmQgPSBldmVudC5zY3JvbGxpbmdEZWx0YVggPiAwICYm
IGlzUGlubmVkVG9MZWZ0ICYmIG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndh
cmRJdGVtKCk7Ci0gICAgfQotICAgIGlmICghd2lsbFN3aXBlQmFjayAmJiAhd2lsbFN3aXBlRm9y
d2FyZCkKKyAgICBib29sIHRyeWluZ1RvU3dpcGVCYWNrID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFY
ID4gMCAmJiBpc1Bpbm5lZFRvTGVmdDsKKyAgICBib29sIHRyeWluZ1RvU3dpcGVGb3J3YXJkID0g
ZXZlbnQuc2Nyb2xsaW5nRGVsdGFYIDwgMCAmJiBpc1Bpbm5lZFRvUmlnaHQ7CisgICAgaWYgKG1f
d2ViUGFnZVByb3h5LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSAhPSBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIpCisgICAgICAgIHN0ZDo6c3dhcCh0cnlp
bmdUb1N3aXBlQmFjaywgdHJ5aW5nVG9Td2lwZUZvcndhcmQpOworICAgIAorICAgIGlmICghdHJ5
aW5nVG9Td2lwZUJhY2sgJiYgIXRyeWluZ1RvU3dpcGVGb3J3YXJkKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBwb3RlbnRpYWxTd2lwZURpcmVjdGlvbiA9IHdpbGxTd2lwZUJhY2sgPyBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrIDogVmlld0dlc3R1cmVD
b250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6Rm9yd2FyZDsKLQotICAgIHJldHVybiB0cnVlOwor
ICAgIHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uID0gdHJ5aW5nVG9Td2lwZUJhY2sgPyBTd2lwZURp
cmVjdGlvbjo6QmFjayA6IFN3aXBlRGlyZWN0aW9uOjpGb3J3YXJkOworICAgIHJldHVybiBtX3Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5jYW5Td2lwZUluRGlyZWN0aW9uKHBvdGVudGlhbFN3aXBlRGly
ZWN0aW9uKTsKIH0KIAogYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdo
ZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0zNzIsNyArMzY3LDcgQEAgYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnRyeVRvU3RhcnRTd2lwZShOU0V2
ZW50ICpldmVudCkKICAgICB9CiAKICAgICBpZiAoc3RkOjphYnMobV9jdW11bGF0aXZlRGVsdGEu
d2lkdGgoKSkgPj0gbWluaW11bUhvcml6b250YWxTd2lwZURpc3RhbmNlKQotICAgICAgICBtX3Ry
YWNrU3dpcGVDYWxsYmFjayhldmVudCwgbV9kaXJlY3Rpb24pOworICAgICAgICBtX3ZpZXdHZXN0
dXJlQ29udHJvbGxlci50cmFja1N3aXBlR2VzdHVyZShldmVudCwgbV9kaXJlY3Rpb24pOwogICAg
IGVsc2UKICAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbnN1ZmZpY2llbnRNYWduaXR1ZGU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>