<?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>83728</bug_id>
          
          <creation_ts>2012-04-11 16:06:20 -0700</creation_ts>
          <short_desc>Reduce the use of RenderLayer outside of the rendering code</short_desc>
          <delta_ts>2012-04-12 13:17:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>83811</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pnormand</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600669</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-11 16:06:20 -0700</bug_when>
    <thetext>A lot of the code outside rendering/ is talking directly to a RenderLayer where they shouldn&apos;t have such a deep knowledge of the rendering objects. This unfortunately propagates some rendering knowledge and assumptions outside the scope of rendering. It also ties our code to relying on RenderLayer for certain operations that reduces the abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600694</commentid>
    <comment_count>1</comment_count>
      <attachid>136784</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-11 16:26:24 -0700</bug_when>
    <thetext>Created attachment 136784
Proposed refactoring 1: Add 2 helpers functions, remove a third of the use, happily welcome comments on the naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600737</commentid>
    <comment_count>2</comment_count>
      <attachid>136784</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-11 17:12:15 -0700</bug_when>
    <thetext>Comment on attachment 136784
Proposed refactoring 1: Add 2 helpers functions, remove a third of the use, happily welcome comments on the naming.

Attachment 136784 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12390125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600754</commentid>
    <comment_count>3</comment_count>
      <attachid>136784</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-11 17:35:13 -0700</bug_when>
    <thetext>Comment on attachment 136784
Proposed refactoring 1: Add 2 helpers functions, remove a third of the use, happily welcome comments on the naming.

Attachment 136784 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12389211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600761</commentid>
    <comment_count>4</comment_count>
      <attachid>136799</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-11 17:43:50 -0700</bug_when>
    <thetext>Created attachment 136799
Fixed Gtk / Qt by adding RenderObject.h include. One more round for the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601273</commentid>
    <comment_count>5</comment_count>
      <attachid>136799</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 09:02:42 -0700</bug_when>
    <thetext>Comment on attachment 136799
Fixed Gtk / Qt by adding RenderObject.h include. One more round for the EWS.

Clearing flags on attachment: 136799

Committed r113990: &lt;http://trac.webkit.org/changeset/113990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601274</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 09:02:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136784</attachid>
            <date>2012-04-11 16:26:24 -0700</date>
            <delta_ts>2012-04-11 17:43:46 -0700</delta_ts>
            <desc>Proposed refactoring 1: Add 2 helpers functions, remove a third of the use, happily welcome comments on the naming.</desc>
            <filename>bug-83728-20120411162623.patch</filename>
            <type>text/plain</type>
            <size>26128</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlODY4Zjg1YTg1NDI3
OGVlZDRkNGVlZjI3NGNhMzNmZTUwOWYxNi4uM2NiYjAxZmZiYzdlMmY2ZjYxYjc4ZGNmNjBiZmNh
YzgwNzYxMjYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTA0LTExICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0
aGUgdXNlIG9mIFJlbmRlckxheWVyIG91dHNpZGUgb2YgdGhlIHJlbmRlcmluZyBjb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzcyOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbGF5
ZXJzL3Njcm9sbEJ5TGluZXMtb3ZlcmZsb3ctbm8tbGF5ZXIuaHRtbAorCisgICAgICAgIFRoaXMg
aXMgbW9zdGx5IGEgbGF5ZXJpbmcgdmlvbGF0aW9uIGNoYW5nZS4gVGhpcyBjaGFuZ2VzIHJlZHVj
ZXMgdGhlIG51bWJlciBvZgorICAgICAgICBSZW5kZXJMYXllciB1c2Ugb3V0c2lkZSByZW5kZXJp
bmcvIGJ5IGEgdGhpcmQgYnV0IHRoZXJlIGFyZSBzdGlsbCBudW1lcm91cyB1c2VzLgorCisgICAg
ICAgIFdoaWxlIGF1ZGl0aW5nIHRoZSBkaWZmZXJlbnQgdXNlcyBvZiBSZW5kZXJMYXllciwgSSBm
b3VuZCBhIHBvdGVudGlhbCBjcmFzaGVyCisgICAgICAgIGFuZCBmaXhlZCBpdCB3aGljaCBpcyB3
aHkgd2UgaGF2ZSBhIHRlc3QgY2FzZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpub2Rlc0Zyb21SZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYW5kbGVaZXJvUGFkZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpub2RlRnJvbVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpw
cmVwYXJlTW91c2VFdmVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6Y29udGFpbnMpOgorICAgICAgICAq
IHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudFVuZGVy
TW91c2UpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpldmVudE1heVN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmhhbmRsZURyYWcpOgorICAgICAgICBVcGRhdGVkIHRoZXNlIGNhbGwgc2l0ZXMg
dG8gdXNlIFJlbmRlclZpZXc6OmhpdFRlc3QuCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRl
ZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0
UGF0aCk6CisgICAgICAgIFVwZGF0ZWQgdGhlc2UgY2FsbCBzaXRlcyB0byB1c2UgUmVuZGVyT2Jq
ZWN0Ojppc0NvbXBvc2l0ZWQoKS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMpOgorICAgICAgICBDYWxsIGRpcmVj
dGx5IFJlbmRlckJveDo6c2Nyb2xsIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgbGF5ZXIuCisgICAg
ICAgIFRoaXMgYWN0dWFsbHkgZml4ZXMgYSBjcmFzaGVyIHRoYXQgc2xpcHBlZCB0aHJvdWdoIHRo
ZSBjcmFja3MuCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgICog
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKiBwYWdlL0dl
c3R1cmVUYXBIaWdobGlnaHRlci5jcHA6CisgICAgICAgICogcGFnZS9QcmludENvbnRleHQuY3Bw
OgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAqIHBs
dWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW06CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5W
aWV3UXQuY3BwOgorICAgICAgICBSZW1vdmVkIHVubmVlZGVkICNpbmNsdWRlLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OmlzQ29tcG9zaXRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclZpZXc6OmhpdFRlc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6
CisgICAgICAgIEFkZGVkIDIgbmV3IGZ1bmN0aW9ucyB0aGF0IHBpcGUgdGhyb3VnaCB0aGUgUmVu
ZGVyTGF5ZXIuCisKIDIwMTItMDQtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFY4IGJpbmRpbmdzIGFyZSBwb2xsdXRpbmcgV2ViQ29yZSBuYW1lc3BhY2Ug
d2l0aCBvdmVybHkgZ2VuZXJpYyBGb29JbnRlcm5hbCBuYW1lc3BhY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCBiOWE1YTVkNzJkZmZjOGU2NWM2M2ExNjE0NTA5ODAzODA0OGQ4MTQ0Li45YmQ0
NzhmYzgzYTBjZjRmYWQ3MDRmM2QzMWRjNWMwMjRmODkwMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTI3MTIsNyArMjcxMiw3IEBAIFZpc2libGVQb3NpdGlvbiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2luCiAgICAgICAg
IEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKICAgICAg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQob3VycG9pbnQpOwotICAgICAgICByZW5kZXJWaWV3LT5s
YXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgICAgIHJlbmRlclZpZXctPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKICAgICAgICAgaW5uZXJOb2RlID0gcmVzdWx0LmlubmVy
Tm9kZSgpOwogICAgICAgICBpZiAoIWlubmVyTm9kZSkKICAgICAgICAgICAgIHJldHVybiBWaXNp
YmxlUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZGRlMmFjNzk4ODQ5YWM3YzNiN2ZkZDNhMTMwMDZjNjQ3
NTYxYWNiNS4uNzBkM2Y5YzczM2EyMjUwYzdkODk5Y2VlYTBjOTU1Y2MzYTA2Nzk4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUmVjdC5oIgog
I2luY2x1ZGUgIlJlbmRlckJveC5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hh
ZG93VmFsdWUuaCIKQEAgLTY3MiwxMSArNjcxLDYgQEAgc3RhdGljIExheW91dFJlY3Qgc2l6aW5n
Qm94KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGJveC0+c3R5bGUoKS0+Ym94
U2l6aW5nKCkgPT0gQk9SREVSX0JPWCA/IGJveC0+Ym9yZGVyQm94UmVjdCgpIDogYm94LT5jb21w
dXRlZENTU0NvbnRlbnRCb3hSZWN0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNDb21w
b3NpdGVkTGF5ZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICByZXR1cm4gcmVuZGVy
ZXIgJiYgcmVuZGVyZXItPmhhc0xheWVyKCkgJiYgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5k
ZXJlciktPmxheWVyKCktPmlzQ29tcG9zaXRlZCgpOwotfQotCiBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gY29tcHV0ZWRUcmFuc2Zvcm0oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIGlmICghcmVuZGVyZXIgfHwgc3R5bGUtPnRyYW5z
Zm9ybSgpLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCkBAIC0xMzI4LDcgKzEzMjIsNyBAQCBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLT5y
ZW5kZXJlcigpOwogCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZTsKLSAgICBpZiAocmVu
ZGVyZXIgJiYgaGFzQ29tcG9zaXRlZExheWVyKHJlbmRlcmVyKSAmJiBBbmltYXRpb25Db250cm9s
bGVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShwcm9wZXJ0eUlEKSkg
eworICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNDb21wb3NpdGVkKCkgJiYgQW5pbWF0
aW9uQ29udHJvbGxlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJvcGVydHkocHJv
cGVydHlJRCkpIHsKICAgICAgICAgc3R5bGUgPSByZW5kZXJlci0+YW5pbWF0aW9uKCktPmdldEFu
aW1hdGVkU3R5bGVGb3JSZW5kZXJlcihyZW5kZXJlcik7CiAgICAgICAgIGlmIChtX3BzZXVkb0Vs
ZW1lbnRTcGVjaWZpZXIpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNhY2hlZCBwc2V1
ZG8gc3R5bGUgd2lsbCBvbmx5IGV4aXN0IGlmIHRoZSBhbmltYXRpb24gaGFzIGJlZW4gcnVuIGF0
IGxlYXN0IG9uY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiYmU5NDQzN2Y3Y2YxZGI3
YWJlODE1OTMxYWM1NjFkNTVjN2FkMTg2Li4zNmFiOTMwZmIwODY4YjljY2IxN2U4ODg1MzY0YWMz
NWNiMTU5ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEyMyw4ICsxMjMsNiBAQAog
I2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIKLSNpbmNsdWRlICJSZW5k
ZXJMYXllci5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJl
bmRlck5hbWVkRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMTI3NCwxNCArMTI3MiwxNCBAQCBQYXNzUmVmUHRy
PE5vZGVMaXN0PiBEb2N1bWVudDo6bm9kZXNGcm9tUmVjdChpbnQgY2VudGVyWCwgaW50IGNlbnRl
clksIHVuc2lnbmVkCiAKICAgICBlbnVtIFNoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgc2hhZG93
Q29udGVudEZpbHRlclBvbGljeSA9IGFsbG93U2hhZG93Q29udGVudCA/IEFsbG93U2hhZG93Q29u
dGVudCA6IERvTm90QWxsb3dTaGFkb3dDb250ZW50OwogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0
KHBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRk
aW5nLCBzaGFkb3dDb250ZW50RmlsdGVyUG9saWN5KTsKLSAgICByZW5kZXJWaWV3KCktPmxheWVy
KCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICByZW5kZXJWaWV3KCktPmhpdFRlc3Qo
cmVxdWVzdCwgcmVzdWx0KTsKIAogICAgIHJldHVybiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3Q6OmFk
b3B0KHJlc3VsdC5yZWN0QmFzZWRUZXN0UmVzdWx0KCkpOwogfQogCiBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBEb2N1bWVudDo6aGFuZGxlWmVyb1BhZGRpbmcoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJl
cXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkgY29uc3QKIHsKLSAgICByZW5kZXJWaWV3KCkt
PmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICByZW5kZXJWaWV3KCktPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAogICAgIE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJO
b2RlKCk7CiAgICAgaWYgKCFub2RlKQpAQCAtMTMwOSw3ICsxMzA3LDcgQEAgc3RhdGljIE5vZGUq
IG5vZGVGcm9tUG9pbnQoRnJhbWUqIGZyYW1lLCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3LCBpbnQg
eCwgaW50IHksIEwKIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6
OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQocG9pbnQpOwotICAgIHJlbmRlclZpZXctPmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwg
cmVzdWx0KTsKKyAgICByZW5kZXJWaWV3LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKICAg
ICBpZiAobG9jYWxQb2ludCkKICAgICAgICAgKmxvY2FsUG9pbnQgPSByZXN1bHQubG9jYWxQb2lu
dCgpOwpAQCAtMjk1Nyw3ICsyOTU1LDcgQEAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBE
b2N1bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHIKICAgICAg
ICAgcmV0dXJuIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMoZXZlbnQsIEhpdFRlc3RSZXN1
bHQoTGF5b3V0UG9pbnQoKSkpOwogCiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQoZG9jdW1lbnRQ
b2ludCk7Ci0gICAgcmVuZGVyVmlldygpLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3Vs
dCk7CisgICAgcmVuZGVyVmlldygpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKICAgICBp
ZiAoIXJlcXVlc3QucmVhZE9ubHkoKSkKICAgICAgICAgdXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDlkNjZjMDExOGViMjNiNTc2ZjMwYWM2ZTIyNDBkNjNk
ZThhY2I0YjUuLjJkNDdmNDZhZTIxY2I0YjEwYTNlMTRiOTFiNWM4M2U5NjNhY2YwZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTI4Miw3ICsyODIsOCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKICAgICAg
ICAgZGlyZWN0aW9uID0gU2Nyb2xsVXA7CiAgICAgICAgIHVuaXRzID0gLXVuaXRzOwogICAgIH0K
LSAgICB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+bGF5ZXIoKS0+c2Nyb2xsKGRpcmVjdGlvbiwg
Z3JhbnVsYXJpdHksIHVuaXRzKTsKKyAgICBOb2RlKiBzdG9wTm9kZSA9IHRoaXM7CisgICAgdG9S
ZW5kZXJCb3gocmVuZGVyZXIoKSktPnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCB1bml0
cywgJnN0b3BOb2RlKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeUxpbmVzKGludCBsaW5l
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYTIwYWVm
YzRmMDMzZTIxZGYzYzM2OTkzYjM3MWQzZmQzYTkxYWQyYy4uOTZlODYxODRlZmRiMjQ2NWY4NjQ0
ZGQzZDdmZWY5ZjZkODNhYTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKQEAgLTE0NzcsNyArMTQ3Nyw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OmNvbnRh
aW5zKGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0
KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBI
aXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChwb2ludCk7
Ci0gICAgZG9jdW1lbnQtPnJlbmRlclZpZXcoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCBy
ZXN1bHQpOworICAgIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPmhpdFRlc3QocmVxdWVzdCwgcmVz
dWx0KTsKICAgICBOb2RlKiBpbm5lck5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgaWYg
KCFpbm5lck5vZGUgfHwgIWlubmVyTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKaW5kZXggNWVjYmVl
OGYzN2QyM2E3Yzc2MjljMTQ1N2NhYmJmMGEwNWVkMmEzOS4uNWVjY2I5YmJkNzNjNWNlNDY0NTEx
NmViM2IwMzU1M2NiZmFjODgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRl
cmVkUG9zaXRpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCBjOWZi
NzMyZTY5ZWUyNGI4MGYzNWUxN2M2NzczNGYyOWI1ZTA5OTI5Li43YmVlMWU2N2Q1ZmE4NDNjMGY0
YzkyOTZlM2Q2YTFmMzFiODE3OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAK
ICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggMjYyN2Y2ZTNiYjRiNDZhN2E4ZmUwNzBhNGQw
ZjUzODRjYjdjNGZhNS4uNDg1YjBhOGJiOTgzNGMyM2E3OGI4YTY3ZTljYTYxOWM4ODhlMTQ3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAt
NTksNyArNTksNiBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1FdmVudC5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggM2QyZTMzNzM2OGE4MWRjOGE0NzUxMDRlNDU3Mjk1NjM4NzFhMmY0OS4u
ZTU4Mzc2ZTZiNzg3YzQ2M2I1M2FkZTZjYTk2OTJjNTdkNjI3ZTJiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTU4LDcgKzU4LDYgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5o
IgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTI4Niw3ICsyODUsNyBAQCBzdGF0
aWMgRWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UoRG9jdW1lbnQqIGRvY3VtZW50VW5kZXJNb3Vz
ZSwgY29uc3QgSW50UG9pbnQmCiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KHBvaW50KTsKLSAgICBkb2N1bWVudFVuZGVyTW91c2UtPnJlbmRlclZpZXco
KS0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAgIGRvY3VtZW50VW5kZXJN
b3VzZS0+cmVuZGVyVmlldygpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKICAgICBOb2Rl
KiBuID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAgIHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnRO
b2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZWE4ZjBlNjAxZTQz
MGIzODlhYmUyOTFmYTcwNmRmNzQ4MGM4ZmVmMC4uNTAzMTMxNWIxN2NiZGNhMGJhYzU2MjVhNmQ4
NjE3ZDRiYmIxOTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNjk5
LDcgKzY5OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgaWYgKG1fc2VsZWN0aW9u
SW5pdGlhdGlvblN0YXRlICE9IEV4dGVuZGVkU2VsZWN0aW9uKSB7CiAgICAgICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6
OkFjdGl2ZSk7CiAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1fbW91c2VEb3duUG9zKTsK
LSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5sYXllcigpLT5oaXRU
ZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlbmRl
clZpZXcoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCiAgICAgICAgIHVwZGF0ZVNlbGVj
dGlvbkZvck1vdXNlRHJhZyhyZXN1bHQpOwogICAgIH0KQEAgLTczMCw3ICs3MzAsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6ZXZlbnRNYXlTdGFydERyYWcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBldmVudCkgY29uc3QKICAgICB1cGRhdGVEcmFnU291cmNlQWN0aW9uc0FsbG93ZWQoKTsKICAg
ICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSk7CiAgICAg
SGl0VGVzdFJlc3VsdCByZXN1bHQodmlldy0+d2luZG93VG9Db250ZW50cyhldmVudC5wb3NpdGlv
bigpKSk7Ci0gICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3Qo
cmVxdWVzdCwgcmVzdWx0KTsKKyAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+aGl0VGVz
dChyZXF1ZXN0LCByZXN1bHQpOwogICAgIERyYWdTdGF0ZSBzdGF0ZTsKICAgICByZXR1cm4gcmVz
dWx0LmlubmVyTm9kZSgpICYmIHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdnYWJsZU5vZGUo
bV9mcmFtZSwgcmVzdWx0LmlubmVyTm9kZSgpLCByb3VuZGVkSW50UG9pbnQocmVzdWx0LnBvaW50
KCkpLCBzdGF0ZSk7CiB9CkBAIC03NDMsMTUgKzc0MywxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKCkKICAgICBSZW5kZXJWaWV3KiByZW5kZXJlciA9
IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAg
IHJldHVybjsKLSAgICBSZW5kZXJMYXllciogbGF5ZXIgPSByZW5kZXJlci0+bGF5ZXIoKTsKLSAg
ICBpZiAoIWxheWVyKQotICAgICAgICByZXR1cm47CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1
ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhp
dFRlc3RSZXF1ZXN0OjpNb3ZlKTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53aW5k
b3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24pKTsKLSAgICBsYXllci0+aGl0VGVz
dChyZXF1ZXN0LCByZXN1bHQpOworICAgIHJlbmRlcmVyLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3Vs
dCk7CiAgICAgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKHJlc3VsdCk7CiB9CiAKQEAgLTEw
NDcsNyArMTA0NCw3IEBAIEhpdFRlc3RSZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0
QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGJvb2wKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICBpZiAoaWdub3JlQ2xpcHBpbmcpCiAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVz
dFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nOwotICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigp
LT5sYXllcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCByZXN1bHQpOworICAg
IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5
cGUpLCByZXN1bHQpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgTm9kZSogbiA9IHJl
c3VsdC5pbm5lck5vZGUoKTsKQEAgLTEwNjQsNyArMTA2MSw3IEBAIEhpdFRlc3RSZXN1bHQgRXZl
bnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQs
IGJvb2wKICAgICAgICAgTGF5b3V0UG9pbnQgd2lkZ2V0UG9pbnQocmVzdWx0LmxvY2FsUG9pbnQo
KS54KCkgKyB2aWV3LT5zY3JvbGxYKCkgLSByZW5kZXJXaWRnZXQtPmJvcmRlckxlZnQoKSAtIHJl
bmRlcldpZGdldC0+cGFkZGluZ0xlZnQoKSwgCiAgICAgICAgICAgICByZXN1bHQubG9jYWxQb2lu
dCgpLnkoKSArIHZpZXctPnNjcm9sbFkoKSAtIHJlbmRlcldpZGdldC0+Ym9yZGVyVG9wKCkgLSBy
ZW5kZXJXaWRnZXQtPnBhZGRpbmdUb3AoKSk7CiAgICAgICAgIEhpdFRlc3RSZXN1bHQgd2lkZ2V0
SGl0VGVzdFJlc3VsdCh3aWRnZXRQb2ludCwgcGFkZGluZy5oZWlnaHQoKSwgcGFkZGluZy53aWR0
aCgpLCBwYWRkaW5nLmhlaWdodCgpLCBwYWRkaW5nLndpZHRoKCksIHNoYWRvd0NvbnRlbnRGaWx0
ZXJQb2xpY3kpOwotICAgICAgICBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCktPmhp
dFRlc3QoSGl0VGVzdFJlcXVlc3QoaGl0VHlwZSksIHdpZGdldEhpdFRlc3RSZXN1bHQpOworICAg
ICAgICBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QoSGl0VGVzdFJlcXVlc3QoaGl0
VHlwZSksIHdpZGdldEhpdFRlc3RSZXN1bHQpOwogICAgICAgICByZXN1bHQgPSB3aWRnZXRIaXRU
ZXN0UmVzdWx0OwogCiAgICAgICAgIGlmICh0ZXN0U2Nyb2xsYmFycyA9PSBTaG91bGRIaXRUZXN0
U2Nyb2xsYmFycykgewpAQCAtMjMwMCw3ICsyMjk3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogCiAgICAgSGl0VGVz
dFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkpOwogICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KHZQb2ludCk7Ci0gICAgZG9jLT5yZW5kZXJWaWV3KCktPmxheWVyKCktPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICBkb2MtPnJlbmRlclZpZXcoKS0+aGl0VGVzdChy
ZXF1ZXN0LCByZXN1bHQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIG1fdXNlTGF0Y2hlZFdo
ZWVsRXZlbnROb2RlID0gZS5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VCZWdhbiB8fCBlLm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNo
YW5nZWQ7CkBAIC0yNjc1LDcgKzI2NzIsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1l
ckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKQogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3
ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0
KEhpdFRlc3RSZXF1ZXN0OjpNb3ZlKTsKICAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0
KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9jdXJyZW50TW91c2VQb3NpdGlvbikpOwotICAgICAg
ICAgICAgcmVuZGVyZXItPmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICAg
ICAgICAgIHJlbmRlcmVyLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAgICAgICAgICAgICBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0zMDQ1LDcgKzMwNDIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKICAgICAgICAgLy8gdHJ5
IHRvIGZpbmQgYW4gZWxlbWVudCB0aGF0IHdhbnRzIHRvIGJlIGRyYWdnZWQKICAgICAgICAgSGl0
VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkpOwogICAgICAgICBI
aXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBvcyk7Ci0gICAgICAgIG1fZnJhbWUtPmNv
bnRlbnRSZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAg
ICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7
CiAgICAgICAgIE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgICAgIGlmIChu
b2RlICYmIG1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgICAgIGRyYWdTdGF0ZSgpLm1fZHJhZ1Ny
YyA9IG1fZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ2dhYmxlTm9kZShtX2Zy
YW1lLCBub2RlLCBtX21vdXNlRG93blBvcywgZHJhZ1N0YXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDNmYTE0YmM4YTZjZTYzM2JlMDlmZDVlNjYwNDg2
OTNiZGI5ODc5Y2YuLjUxMWJjMzM5MjhlYjdmMzkwNzEzOTBkZWYxM2FhN2FjYmY2YWMyZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJhbmdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRv
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA1NmNkOTcyYTBhY2VmYjdhN2MyYmU4MzNiYzYy
MmJmMzEzNDFkMDllLi41OTA0YzYyZmNjZThmNTU2NzUyYjM3NWRmNmIyNGEyOGMwMWI5NGY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgot
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1
ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzFiNzAwNWQ1N2E0NDdmNjQ1YzFkMjdkNzYx
ZGI4MGMyOTNmNWEwZi4uNjhmYjFmMDc2NzI0NjI3MTRiNDYxMTM0ZTkxMzBmZmI3Zjk0M2NiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTI5MCw3ICsxMjkwLDcgQEAgYm9vbCBG
cmFtZVZpZXc6OmNvbnRlbnRzSW5Db21wb3NpdGVkTGF5ZXIoKSBjb25zdAogewogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRl
cmVyKHRoaXMpOwotICAgIGlmIChyb290ICYmIHJvb3QtPmxheWVyKCktPmlzQ29tcG9zaXRlZCgp
KSB7CisgICAgaWYgKHJvb3QgJiYgcm9vdC0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgR3Jh
cGhpY3NMYXllciogbGF5ZXIgPSByb290LT5sYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5
ZXIoKTsKICAgICAgICAgaWYgKGxheWVyICYmIGxheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTQ2OSw3ICsxNDY5LDcgQEAgYm9vbCBGcmFtZVZpZXc6
OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QKICAgICAgICAgaWYgKHJlbmRlckJveC0+c3R5bGUoKS0+cG9zaXRpb24oKSAhPSBG
aXhlZFBvc2l0aW9uKQogICAgICAgICAgICAgY29udGludWU7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotICAgICAgICBpZiAocmVuZGVyQm94LT5sYXllcigpLT5pc0NvbXBvc2l0
ZWQoKSkKKyAgICAgICAgaWYgKHJlbmRlckJveC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICNlbmRpZgogICAgICAgICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSBwaXhlbFNu
YXBwZWRJbnRSZWN0KHJlbmRlckJveC0+bGF5ZXIoKS0+cmVwYWludFJlY3RJbmNsdWRpbmdEZXNj
ZW5kYW50cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VzdHVyZVRhcEhp
Z2hsaWdodGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VzdHVyZVRhcEhpZ2hsaWdodGVy
LmNwcAppbmRleCA5N2Y1OTQ3ZDU3NmY4NzhkZWJmNzJhNWUyOTJiNjEwZjA4NDdkMDUzLi5iYmYx
OWJkMTNmNWUxM2RmMzIxNDU2Y2U2MDQ4NTg3YWM1ZTg1ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0dlc3R1cmVUYXBIaWdobGlnaHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9HZXN0dXJlVGFwSGlnaGxpZ2h0ZXIuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1vZGVsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW5saW5lLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qcmlu
dENvbnRleHQuY3BwCmluZGV4IDBhZjBiYjU3NmM0YjYzNjEzZmI3ZGI5ZWFmMjM2YjgyMzRmNjgw
ZTUuLmEyZWE3OGM3NjQ4ZTA2YjZmMGJlZDIzMjkwMmQ1ODFiOTNhYWUwNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IGM1NjhhNGI5MmM2MmEzYjJkZWVhMDg0Y2Y1YWY5
YzM3ZjIwOGI2YjUuLjMzOGRlOGNlNzhmY2RjZjFkOTM2YmUyOWE0MTRjODY5ZDA5YjJhNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC01Niw3
ICs1Niw2IEBACiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRlICJQbHVnaW5NYWlu
VGhyZWFkU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgotI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTcGF0aWFs
TmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KaW5kZXggOTAxYTM1OWI1YzVlOGM5YTEyMWNk
ODFiYTM4MzY1MGMzNzEwMTY5NC4uM2FiZjYyYTgwZDFjOTkxNmZlYTFlOTZjNzllMjA1OTQ1NDYx
ZDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tCkBA
IC01NSw3ICs1NSw2IEBACiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRlICJQbHVn
aW5QYWNrYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oIgotI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCBmZjkxMmRiNTY1MmE4YzA1
ZTBlNzNlODI1ZDA4NGU0ZDE2MTQ5M2U5Li5jOGQ5OTJiNjA2YjJiZjE3ODUyYTFiY2VkMTM5MWI2
MzkyNDY0ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3Bw
CkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgogI2luY2x1ZGUg
IlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5o
IgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2lmIFVTRShKU0MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGYxZTAwYmFlMDhkMGU4ZDg4ZDI1MzBiZmE5NDA3
MjM3Mjc3MmM2NzAuLjNiZWEzNTM1YWNjZGE3MDk0ZGE3N2E0M2EyN2JkNDVhNTJhMmFlM2EgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yMzk4LDYgKzIz
OTgsMTEgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnVwZGF0ZURyYWdTdGF0ZShib29sIGRyYWdPbikK
ICAgICAgICAgY3Vyci0+dXBkYXRlRHJhZ1N0YXRlKGRyYWdPbik7CiB9CiAKK2Jvb2wgUmVuZGVy
T2JqZWN0Ojppc0NvbXBvc2l0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBoYXNMYXllcigpICYm
IHRvUmVuZGVyQm94TW9kZWxPYmplY3QodGhpcyktPmxheWVyKCktPmlzQ29tcG9zaXRlZCgpOwor
fQorCiBib29sIFJlbmRlck9iamVjdDo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0Rmls
dGVyIGhpdFRlc3RGaWx0ZXIpCiB7CiAgICAgYm9vbCBpbnNpZGUgPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBlNzMxMDk1ZTQwYTM3MzY5MmJlNTBi
ZWJiMTJiMGFlM2I0YzRlMmFiLi5mYjNkZWE5Yjc3YmJjMjVhMDRlOTM4ZDY1NDM4MTk1MmViMmVj
MmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02MTEsNiAr
NjExLDggQEAgcHVibGljOgogICAgIHZvaWQgY29sbGVjdERhc2hib2FyZFJlZ2lvbnMoVmVjdG9y
PERhc2hib2FyZFJlZ2lvblZhbHVlPiYpOwogI2VuZGlmCiAKKyAgICBib29sIGlzQ29tcG9zaXRl
ZCgpIGNvbnN0OworCiAgICAgYm9vbCBoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RGaWx0ZXIgPSBIaXRUZXN0QWxs
KTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91
dFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNGJh
MmFmYTc0OWMzNTYzNDM3NmM3ZjZkNWM4NmM5NTI0NzM3ZTdhOS4uN2NmMmVhZGYyM2Y0MTA0ZTMw
ZTljNDMzOWIxMzIwNmVhN2Q5YzgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcApAQCAtNzcsNiArNzcsMTEgQEAgUmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQogewog
fQogCitib29sIFJlbmRlclZpZXc6OmhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVl
c3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gbGF5ZXIoKS0+aGl0VGVz
dChyZXF1ZXN0LCByZXN1bHQpOworfQorCiB2b2lkIFJlbmRlclZpZXc6OmNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KCkKIHsKICAgICBpZiAoIXByaW50aW5nKCkgJiYgbV9mcmFtZVZpZXcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBiYjgyYzE4OWJiNzcxNjBjN2EyYzQxNjQ2
Nzk1NWVhOWRjYmE0MjdiLi5hMGEzZTU1ZjUwYzA3MTA5MGU3ZjU3YjY3NjdiMTA1MGE2MmI3YTQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTQyLDYgKzQyLDggQEAg
cHVibGljOgogICAgIFJlbmRlclZpZXcoTm9kZSosIEZyYW1lVmlldyopOwogICAgIHZpcnR1YWwg
flJlbmRlclZpZXcoKTsKIAorICAgIGJvb2wgaGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmKTsKKwogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJSZW5kZXJWaWV3IjsgfQogCiAgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZTgzOGRlMzJlYWRhYWNm
ZWJkMWVlOTY0N2M2NjJkMGQzMmZmNzc5Li4yYjllOWM2ZmFhYjZjMmQyNTVjZDdhNGY0ZDExMGZh
NjMzMDRlYzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMTEgIEp1bGllbiBDaGFm
ZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIHRoZSB1c2Ug
b2YgUmVuZGVyTGF5ZXIgb3V0c2lkZSBvZiB0aGUgcmVuZGVyaW5nIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNzI4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgY2hlY2tzIHRoYXQg
Y2FsbGluZyBzY3JvbGxCeVVuaXQgd2l0aG91dCBhIFJlbmRlckxheWVyIGRvZXNuJ3QgY3Jhc2gu
CisKKyAgICAgICAgKiBmYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbGF5ZXJzL3Njcm9sbEJ5TGluZXMtb3ZlcmZs
b3ctbm8tbGF5ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wNC0xMSAgRGF2ZSBUaGFy
cCAgPGR0aGFycEBjb2RlYXVyb3JhLm9yZz4KIAogICAgICAgICBFeHBlY3RhdGlvbnMgdXBkYXRl
IGFmdGVyIDgxOTM2IGFuZCA4MjczNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvc2Nyb2xsQnlMaW5lcy1vdmVyZmxvdy1uby1sYXllci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NjlmZWU0MzM3ZWE1ZjczMDBmMzViOWQxY2JkYjYxM2YyY2Q2MTY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvc2Nyb2xsQnlMaW5l
cy1vdmVyZmxvdy1uby1sYXllci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitidWcgODM3
Mjg6IFJlZHVjZSB0aGUgdXNlIG9mIFJlbmRlckxheWVyIG91dHNpZGUgb2YgdGhlIHJlbmRlcmlu
ZyBjb2RlCitUaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgUEFTU0VEIGJlbG93LgorUEFTU0VE
OiBUaGUgdGVzdCBkaWQgbm90IGNyYXNoIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvc2Nyb2xsQnlMaW5lcy1vdmVyZmxvdy1uby1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9sYXllcnMvc2Nyb2xsQnlMaW5lcy1vdmVyZmxvdy1uby1sYXllci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmYjQ2NjU4Y2VkMTdlNTc4ZjFjMDM1MTVmODUwMDBhMThiNDRjNjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5v
LWxheWVyLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgICAjb3ZlcmZsb3cgeworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gdGVz
dFNjcm9sbEJ5TGluZSgpCisgICAgeworICAgICAgICB2YXIgb3ZlcmZsb3dEaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3ZlcmZsb3ciKTsKKyAgICAgICAgb3ZlcmZsb3dEaXYuc2Nyb2xs
QnlMaW5lcygxMCk7CisgICAgICAgIG92ZXJmbG93RGl2LnNjcm9sbEJ5UGFnZXMoMTApOworICAg
ICAgICBvdmVyZmxvd0Rpdi5pbm5lckhUTUwgPSAiUEFTU0VEOiBUaGUgdGVzdCBkaWQgbm90IGNy
YXNoISI7CisgICAgfQorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdFNj
cm9sbEJ5TGluZSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
PjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzcyOCI+
YnVnIDgzNzI4PC9hPjogUmVkdWNlIHRoZSB1c2Ugb2YgUmVuZGVyTGF5ZXIgb3V0c2lkZSBvZiB0
aGUgcmVuZGVyaW5nIGNvZGU8L2Rpdj4KKyAgICA8ZGl2PlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91
IHNlZSBQQVNTRUQgYmVsb3cuPC9kaXY+CisgICAgPGRpdiBpZD0ib3ZlcmZsb3ciPkZBSUxFRDwv
ZGl2PgorPGJvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136799</attachid>
            <date>2012-04-11 17:43:50 -0700</date>
            <delta_ts>2012-04-12 09:02:42 -0700</delta_ts>
            <desc>Fixed Gtk / Qt by adding RenderObject.h include. One more round for the EWS.</desc>
            <filename>bug-83728-20120411174349.patch</filename>
            <type>text/plain</type>
            <size>26259</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNkOGYyZGI1YzBhYzhl
ZjM1MmZmZGUxMTA5NmE0ZGRmNDExZTlmZC4uYzQ3M2RjM2U4NzQ5MjRjZDAyNjhlYTQ3ODlkMGFm
MWVkZThlZjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA0LTExICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0
aGUgdXNlIG9mIFJlbmRlckxheWVyIG91dHNpZGUgb2YgdGhlIHJlbmRlcmluZyBjb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzcyOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUZXN0OiBmYXN0L2xheWVy
cy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVyLmh0bWwKKworICAgICAgICBUaGlzIGlz
IG1vc3RseSBhIGxheWVyaW5nIHZpb2xhdGlvbiBjaGFuZ2UuIFRoaXMgY2hhbmdlcyByZWR1Y2Vz
IHRoZSBudW1iZXIgb2YKKyAgICAgICAgUmVuZGVyTGF5ZXIgdXNlIG91dHNpZGUgcmVuZGVyaW5n
LyBieSBhIHRoaXJkIGJ1dCB0aGVyZSBhcmUgc3RpbGwgbnVtZXJvdXMgdXNlcy4KKworICAgICAg
ICBXaGlsZSBhdWRpdGluZyB0aGUgZGlmZmVyZW50IHVzZXMgb2YgUmVuZGVyTGF5ZXIsIEkgZm91
bmQgYSBwb3RlbnRpYWwgY3Jhc2hlcgorICAgICAgICBhbmQgZml4ZWQgaXQgd2hpY2ggaXMgd2h5
IHdlIGhhdmUgYSB0ZXN0IGNhc2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZXNGcm9tUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFuZGxlWmVyb1BhZGRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6bm9kZUZyb21Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJl
cGFyZU1vdXNlRXZlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmNvbnRhaW5zKToKKyAgICAgICAgKiBw
YWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVsZW1lbnRVbmRlck1v
dXNlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRNYXlTdGFydERyYWcpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpob3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVEcmFnKToKKyAgICAgICAgVXBkYXRlZCB0aGVzZSBjYWxsIHNpdGVzIHRv
IHVzZSBSZW5kZXJWaWV3OjpoaXRUZXN0LgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udGVudHNJbkNvbXBvc2l0ZWRM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBh
dGgpOgorICAgICAgICBVcGRhdGVkIHRoZXNlIGNhbGwgc2l0ZXMgdG8gdXNlIFJlbmRlck9iamVj
dDo6aXNDb21wb3NpdGVkKCkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxCeVVuaXRzKToKKyAgICAgICAgQ2FsbCBkaXJlY3Rs
eSBSZW5kZXJCb3g6OnNjcm9sbCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIGxheWVyLgorICAgICAg
ICBUaGlzIGFjdHVhbGx5IGZpeGVzIGEgY3Jhc2hlciB0aGF0IHNsaXBwZWQgdGhyb3VnaCB0aGUg
Y3JhY2tzLgorCisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAqIHBh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHA6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgICogcGFnZS9HZXN0
dXJlVGFwSGlnaGxpZ2h0ZXIuY3BwOgorICAgICAgICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tOgorICAgICAgICBSZW1vdmVk
IHVubmVlZGVkICNpbmNsdWRlLgorCisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0
ay5jcHA6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICBS
ZXBsYWNlZCBSZW5kZXJMYXllci5oICNpbmNsdWRlIHdpdGggUmVuZGVyT2JqZWN0LmggYXMKKyAg
ICAgICAgd2UgdXNlIFJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmlzQ29tcG9zaXRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZXc6OmhpdFRlc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6Cisg
ICAgICAgIEFkZGVkIDIgbmV3IGZ1bmN0aW9ucyB0aGF0IHBpcGUgdGhyb3VnaCB0aGUgUmVuZGVy
TGF5ZXIuCisKIDIwMTItMDQtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFRyeSB0byBmaXggYnVpbGQgd2l0aCBYU0xUIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggYjlhNWE1ZDcyZGZmYzhlNjVjNjNhMTYxNDUwOTgwMzgwNDhkODE0NC4u
OWJkNDc4ZmM4M2EwY2Y0ZmFkNzA0ZjNkMzFkYzVjMDI0Zjg5MDE1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yNzEyLDcgKzI3MTIsNyBAQCBWaXNpYmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbgogICAg
ICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAg
ICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG91cnBvaW50KTsKLSAgICAgICAgcmVuZGVyVmll
dy0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAgICAgICByZW5kZXJWaWV3
LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAgICAgICAgIGlubmVyTm9kZSA9IHJlc3VsdC5p
bm5lck5vZGUoKTsKICAgICAgICAgaWYgKCFpbm5lck5vZGUpCiAgICAgICAgICAgICByZXR1cm4g
VmlzaWJsZVBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGRkZTJhYzc5ODg0OWFjN2MzYjdmZGQzYTEzMDA2
YzY0NzU2MWFjYjUuLjcwZDNmOWM3MzNhMjI1MGM3ZDg5OWNlZWEwYzk1NWNjM2EwNjc5ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlJlY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlNoYWRvd1ZhbHVlLmgiCkBAIC02NzIsMTEgKzY3MSw2IEBAIHN0YXRpYyBMYXlvdXRSZWN0IHNp
emluZ0JveChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBib3gtPnN0eWxlKCkt
PmJveFNpemluZygpID09IEJPUkRFUl9CT1ggPyBib3gtPmJvcmRlckJveFJlY3QoKSA6IGJveC0+
Y29tcHV0ZWRDU1NDb250ZW50Qm94UmVjdCgpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFz
Q29tcG9zaXRlZExheWVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCi17Ci0gICAgcmV0dXJuIHJl
bmRlcmVyICYmIHJlbmRlcmVyLT5oYXNMYXllcigpICYmIHRvUmVuZGVyQm94TW9kZWxPYmplY3Qo
cmVuZGVyZXIpLT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKTsKLX0KLQogc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGNvbXB1dGVkVHJhbnNmb3JtKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICBpZiAoIXJlbmRlcmVyIHx8IHN0eWxlLT50
cmFuc2Zvcm0oKS5vcGVyYXRpb25zKCkuaXNFbXB0eSgpKQpAQCAtMTMyOCw3ICsxMzIyLDcgQEAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9k
ZS0+cmVuZGVyZXIoKTsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGU7Ci0gICAgaWYg
KHJlbmRlcmVyICYmIGhhc0NvbXBvc2l0ZWRMYXllcihyZW5kZXJlcikgJiYgQW5pbWF0aW9uQ29u
dHJvbGxlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJvcGVydHkocHJvcGVydHlJ
RCkpIHsKKyAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzQ29tcG9zaXRlZCgpICYmIEFu
aW1hdGlvbkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5
KHByb3BlcnR5SUQpKSB7CiAgICAgICAgIHN0eWxlID0gcmVuZGVyZXItPmFuaW1hdGlvbigpLT5n
ZXRBbmltYXRlZFN0eWxlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogICAgICAgICBpZiAobV9wc2V1
ZG9FbGVtZW50U3BlY2lmaWVyKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjYWNoZWQg
cHNldWRvIHN0eWxlIHdpbGwgb25seSBleGlzdCBpZiB0aGUgYW5pbWF0aW9uIGhhcyBiZWVuIHJ1
biBhdCBsZWFzdCBvbmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWVlMDRlMGY2YWZm
N2M4YzI2MzBmY2Q2YzMwNTViNGMwZTg4ZDZkYS4uZDFkODI1MjYxY2YyMjI1Y2VjMDUyMzUzMjZj
NzA3YzU5MDI4NGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMjMsOCArMTIzLDYg
QEAKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3Rl
cmVkRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckFyZW5hLmgiCi0jaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRl
ICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTEyNzQsMTQgKzEyNzIsMTQgQEAgUGFzc1Jl
ZlB0cjxOb2RlTGlzdD4gRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QoaW50IGNlbnRlclgsIGludCBj
ZW50ZXJZLCB1bnNpZ25lZAogCiAgICAgZW51bSBTaGFkb3dDb250ZW50RmlsdGVyUG9saWN5IHNo
YWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgPSBhbGxvd1NoYWRvd0NvbnRlbnQgPyBBbGxvd1NoYWRv
d0NvbnRlbnQgOiBEb05vdEFsbG93U2hhZG93Q29udGVudDsKICAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdChwb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0
UGFkZGluZywgc2hhZG93Q29udGVudEZpbHRlclBvbGljeSk7Ci0gICAgcmVuZGVyVmlldygpLT5s
YXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgcmVuZGVyVmlldygpLT5oaXRU
ZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKICAgICByZXR1cm4gU3RhdGljSGFzaFNldE5vZGVMaXN0
OjphZG9wdChyZXN1bHQucmVjdEJhc2VkVGVzdFJlc3VsdCgpKTsKIH0KIAogUGFzc1JlZlB0cjxO
b2RlTGlzdD4gRG9jdW1lbnQ6OmhhbmRsZVplcm9QYWRkaW5nKGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgcmVuZGVyVmll
dygpLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgcmVuZGVyVmlldygp
LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKICAgICBOb2RlKiBub2RlID0gcmVzdWx0Lmlu
bmVyTm9kZSgpOwogICAgIGlmICghbm9kZSkKQEAgLTEzMDksNyArMTMwNyw3IEBAIHN0YXRpYyBO
b2RlKiBub2RlRnJvbVBvaW50KEZyYW1lKiBmcmFtZSwgUmVuZGVyVmlldyogcmVuZGVyVmlldywg
aW50IHgsIGludCB5LCBMCiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1
ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgIEhpdFRlc3RSZXN1
bHQgcmVzdWx0KHBvaW50KTsKLSAgICByZW5kZXJWaWV3LT5sYXllcigpLT5oaXRUZXN0KHJlcXVl
c3QsIHJlc3VsdCk7CisgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwog
CiAgICAgaWYgKGxvY2FsUG9pbnQpCiAgICAgICAgICpsb2NhbFBvaW50ID0gcmVzdWx0LmxvY2Fs
UG9pbnQoKTsKQEAgLTI5NTcsNyArMjk1NSw3IEBAIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMgRG9jdW1lbnQ6OnByZXBhcmVNb3VzZUV2ZW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByCiAg
ICAgICAgIHJldHVybiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzKGV2ZW50LCBIaXRUZXN0
UmVzdWx0KExheW91dFBvaW50KCkpKTsKIAogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KGRvY3Vt
ZW50UG9pbnQpOwotICAgIHJlbmRlclZpZXcoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCBy
ZXN1bHQpOworICAgIHJlbmRlclZpZXcoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCiAg
ICAgaWYgKCFyZXF1ZXN0LnJlYWRPbmx5KCkpCiAgICAgICAgIHVwZGF0ZVN0eWxlSWZOZWVkZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5ZDY2YzAxMThlYjIzYjU3NmYzMGFjNmUyMjQw
ZDYzZGU4YWNiNGI1Li4yZDQ3ZjQ2YWUyMWNiNGIxMGEzZTE0YjkxYjVjODNlOTYzYWNmMGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yODIsNyArMjgyLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxCeVVuaXRzKGludCB1bml0cywgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiAg
ICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFVwOwogICAgICAgICB1bml0cyA9IC11bml0czsKICAg
ICB9Ci0gICAgdG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPmxheWVyKCktPnNjcm9sbChkaXJlY3Rp
b24sIGdyYW51bGFyaXR5LCB1bml0cyk7CisgICAgTm9kZSogc3RvcE5vZGUgPSB0aGlzOworICAg
IHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwg
dW5pdHMsICZzdG9wTm9kZSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlMaW5lcyhpbnQg
bGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGEy
MGFlZmM0ZjAzM2UyMWRmM2MzNjk5M2IzNzFkM2ZkM2E5MWFkMmMuLjk2ZTg2MTg0ZWZkYjI0NjVm
ODY0NGRkM2Q3ZmVmOWY2ZDgzYWE5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCkBAIC0xNDc3LDcgKzE0NzcsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpj
b250YWlucyhjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVx
dWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9p
bnQpOwotICAgIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPmxheWVyKCktPmhpdFRlc3QocmVxdWVz
dCwgcmVzdWx0KTsKKyAgICBkb2N1bWVudC0+cmVuZGVyVmlldygpLT5oaXRUZXN0KHJlcXVlc3Qs
IHJlc3VsdCk7CiAgICAgTm9kZSogaW5uZXJOb2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAg
IGlmICghaW5uZXJOb2RlIHx8ICFpbm5lck5vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCmluZGV4IDVl
Y2JlZThmMzdkMjNhN2M3NjI5YzE0NTdjYWJiZjBhMDVlZDJhMzkuLjVlY2NiOWJiZDczYzVjZTQ2
NDUxMTZlYjNiMDM1NTNjYmZhYzg4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxl
X3VuaXRzLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIK
ICNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXgg
YzlmYjczMmU2OWVlMjRiODBmMzVlMTdjNjc3MzRmMjliNWUwOTkyOS4uN2JlZTFlNjdkNWZhODQz
YzBmNGM5Mjk2ZTNkNmExZjMxYjgxNzhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0zNyw3ICszNyw2
IEBACiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDI2MjdmNmUzYmI0YjQ2YTdhOGZlMDcw
YTRkMGY1Mzg0Y2I3YzRmYTUuLjQ4NWIwYThiYjk4MzRjMjNhNzhiOGE2N2U5Y2E2MTljODg4ZTE0
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
QEAgLTU5LDcgKzU5LDYgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDNkMmUzMzczNjhhODFkYzhhNDc1MTA0ZTQ1NzI5NTYzODcxYTJm
NDkuLmU1ODM3NmU2Yjc4N2M0NjNiNTNhZGU2Y2E5NjkyYzU3ZDYyN2UyYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC0yODYsNyArMjg1LDcgQEAg
c3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1bWVudFVuZGVy
TW91c2UsIGNvbnN0IEludFBvaW50JgogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRU
ZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKICAgICBIaXRU
ZXN0UmVzdWx0IHJlc3VsdChwb2ludCk7Ci0gICAgZG9jdW1lbnRVbmRlck1vdXNlLT5yZW5kZXJW
aWV3KCktPmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICBkb2N1bWVudFVu
ZGVyTW91c2UtPnJlbmRlclZpZXcoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCiAgICAg
Tm9kZSogbiA9IHJlc3VsdC5pbm5lck5vZGUoKTsKICAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVt
ZW50Tm9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGVhOGYwZTYw
MWU0MzBiMzg5YWJlMjkxZmE3MDZkZjc0ODBjOGZlZjAuLjUwMzEzMTViMTdjYmRjYTBiYWM1NjI1
YTZkODYxN2Q0YmJiMTk0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTY5OSw3ICs2OTksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZl
bnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQogICAgIGlmIChtX3NlbGVj
dGlvbkluaXRpYXRpb25TdGF0ZSAhPSBFeHRlbmRlZFNlbGVjdGlvbikgewogICAgICAgICBIaXRU
ZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1
ZXN0OjpBY3RpdmUpOwogICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBv
cyk7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKS0+bGF5ZXIoKS0+
aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5y
ZW5kZXJWaWV3KCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAogICAgICAgICB1cGRhdGVT
ZWxlY3Rpb25Gb3JNb3VzZURyYWcocmVzdWx0KTsKICAgICB9CkBAIC03MzAsNyArNzMwLDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgZXZlbnQpIGNvbnN0CiAgICAgdXBkYXRlRHJhZ1NvdXJjZUFjdGlvbnNBbGxvd2VkKCk7
CiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkpOwog
ICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMoZXZlbnQucG9z
aXRpb24oKSkpOwotICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5sYXllcigpLT5oaXRU
ZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKICAgICBEcmFnU3RhdGUgc3RhdGU7CiAgICAgcmV0dXJu
IHJlc3VsdC5pbm5lck5vZGUoKSAmJiBwYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnZ2FibGVO
b2RlKG1fZnJhbWUsIHJlc3VsdC5pbm5lck5vZGUoKSwgcm91bmRlZEludFBvaW50KHJlc3VsdC5w
b2ludCgpKSwgc3RhdGUpOwogfQpAQCAtNzQzLDE1ICs3NDMsMTIgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZygpCiAgICAgUmVuZGVyVmlldyogcmVuZGVy
ZXIgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm47Ci0gICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gcmVuZGVyZXItPmxheWVyKCk7
Ci0gICAgaWYgKCFsYXllcikKLSAgICAgICAgcmV0dXJuOwogCiAgICAgSGl0VGVzdFJlcXVlc3Qg
cmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIaXRUZXN0UmVxdWVzdDo6TW92ZSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQodmlldy0+
d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSk7Ci0gICAgbGF5ZXItPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICByZW5kZXJlci0+aGl0VGVzdChyZXF1ZXN0LCBy
ZXN1bHQpOwogICAgIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhyZXN1bHQpOwogfQogCkBA
IC0xMDQ3LDcgKzEwNDQsNyBAQCBIaXRUZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJl
c3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBib29sCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgaWYgKGlnbm9yZUNsaXBwaW5nKQogICAgICAgICBoaXRUeXBlIHw9IEhp
dFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZzsKLSAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdChoaXRUeXBlKSwgcmVzdWx0KTsK
KyAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdCho
aXRUeXBlKSwgcmVzdWx0KTsKIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIE5vZGUqIG4g
PSByZXN1bHQuaW5uZXJOb2RlKCk7CkBAIC0xMDY0LDcgKzEwNjEsNyBAQCBIaXRUZXN0UmVzdWx0
IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50LCBib29sCiAgICAgICAgIExheW91dFBvaW50IHdpZGdldFBvaW50KHJlc3VsdC5sb2NhbFBv
aW50KCkueCgpICsgdmlldy0+c2Nyb2xsWCgpIC0gcmVuZGVyV2lkZ2V0LT5ib3JkZXJMZWZ0KCkg
LSByZW5kZXJXaWRnZXQtPnBhZGRpbmdMZWZ0KCksIAogICAgICAgICAgICAgcmVzdWx0LmxvY2Fs
UG9pbnQoKS55KCkgKyB2aWV3LT5zY3JvbGxZKCkgLSByZW5kZXJXaWRnZXQtPmJvcmRlclRvcCgp
IC0gcmVuZGVyV2lkZ2V0LT5wYWRkaW5nVG9wKCkpOwogICAgICAgICBIaXRUZXN0UmVzdWx0IHdp
ZGdldEhpdFRlc3RSZXN1bHQod2lkZ2V0UG9pbnQsIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcu
d2lkdGgoKSwgcGFkZGluZy5oZWlnaHQoKSwgcGFkZGluZy53aWR0aCgpLCBzaGFkb3dDb250ZW50
RmlsdGVyUG9saWN5KTsKLSAgICAgICAgZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5sYXllcigp
LT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCB3aWRnZXRIaXRUZXN0UmVzdWx0KTsK
KyAgICAgICAgZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0
KGhpdFR5cGUpLCB3aWRnZXRIaXRUZXN0UmVzdWx0KTsKICAgICAgICAgcmVzdWx0ID0gd2lkZ2V0
SGl0VGVzdFJlc3VsdDsKIAogICAgICAgICBpZiAodGVzdFNjcm9sbGJhcnMgPT0gU2hvdWxkSGl0
VGVzdFNjcm9sbGJhcnMpIHsKQEAgLTIzMDAsNyArMjI5Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIAogICAgIEhp
dFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5KTsKICAgICBIaXRU
ZXN0UmVzdWx0IHJlc3VsdCh2UG9pbnQpOwotICAgIGRvYy0+cmVuZGVyVmlldygpLT5sYXllcigp
LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgZG9jLT5yZW5kZXJWaWV3KCktPmhpdFRl
c3QocmVxdWVzdCwgcmVzdWx0KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX3VzZUxhdGNo
ZWRXaGVlbEV2ZW50Tm9kZSA9IGUubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlQmVnYW4gfHwgZS5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VDaGFuZ2VkOwpAQCAtMjY3NSw3ICsyNjcyLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmhvdmVy
VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KikKICAgICAgICAgaWYgKEZyYW1lVmlldyog
dmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVx
dWVzdChIaXRUZXN0UmVxdWVzdDo6TW92ZSk7CiAgICAgICAgICAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdCh2aWV3LT53aW5kb3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24pKTsKLSAg
ICAgICAgICAgIHJlbmRlcmVyLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7Cisg
ICAgICAgICAgICByZW5kZXJlci0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogICAgICAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgICAgICB9
CiAgICAgfQpAQCAtMzA0NSw3ICszMDQyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURy
YWcoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCiAgICAgICAgIC8v
IHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgdGhhdCB3YW50cyB0byBiZSBkcmFnZ2VkCiAgICAgICAg
IEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5KTsKICAgICAg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQobV9tb3VzZURvd25Qb3MpOwotICAgICAgICBtX2ZyYW1l
LT5jb250ZW50UmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwor
ICAgICAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1
bHQpOwogICAgICAgICBOb2RlKiBub2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAgICAgICBp
ZiAobm9kZSAmJiBtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAgICBkcmFnU3RhdGUoKS5tX2Ry
YWdTcmMgPSBtX2ZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9sbGVyKCktPmRyYWdnYWJsZU5vZGUo
bV9mcmFtZSwgbm9kZSwgbV9tb3VzZURvd25Qb3MsIGRyYWdTdGF0ZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCAzZmExNGJjOGE2Y2U2MzNiZTA5ZmQ1ZTY2
MDQ4NjkzYmRiOTg3OWNmLi41MTFiYzMzOTI4ZWI3ZjM5MDcxMzkwZGVmMTNhYTdhY2JmNmFjMmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC00OSw3ICs0OSw2
IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSYW5nZS5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5p
bWF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNTZjZDk3MmEwYWNlZmI3YTdjMmJlODMz
YmM2MjJiZjMxMzQxZDA5ZS4uNTkwNGM2MmZjY2U4ZjU1Njc1MmIzNzVkZjZiMjRhMjhjMDFiOTRm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY4LDcgKzY4LDYgQEAKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24u
aCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNp
bmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGMxYjcwMDVkNTdhNDQ3ZjY0NWMxZDI3
ZDc2MWRiODBjMjkzZjVhMGYuLjY4ZmIxZjA3NjcyNDYyNzE0YjQ2MTEzNGU5MTMwZmZiN2Y5NDNj
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEyOTAsNyArMTI5MCw3IEBAIGJv
b2wgRnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRlZExheWVyKCkgY29uc3QKIHsKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RS
ZW5kZXJlcih0aGlzKTsKLSAgICBpZiAocm9vdCAmJiByb290LT5sYXllcigpLT5pc0NvbXBvc2l0
ZWQoKSkgeworICAgIGlmIChyb290ICYmIHJvb3QtPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gcm9vdC0+bGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGlj
c0xheWVyKCk7CiAgICAgICAgIGlmIChsYXllciAmJiBsYXllci0+ZHJhd3NDb250ZW50KCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0NjksNyArMTQ2OSw3IEBAIGJvb2wgRnJhbWVW
aWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0CiAgICAgICAgIGlmIChyZW5kZXJCb3gtPnN0eWxlKCktPnBvc2l0aW9uKCkg
IT0gRml4ZWRQb3NpdGlvbikKICAgICAgICAgICAgIGNvbnRpbnVlOwogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSAgICAgICAgaWYgKHJlbmRlckJveC0+bGF5ZXIoKS0+aXNDb21w
b3NpdGVkKCkpCisgICAgICAgIGlmIChyZW5kZXJCb3gtPmlzQ29tcG9zaXRlZCgpKQogICAgICAg
ICAgICAgY29udGludWU7CiAjZW5kaWYKICAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gcGl4
ZWxTbmFwcGVkSW50UmVjdChyZW5kZXJCb3gtPmxheWVyKCktPnJlcGFpbnRSZWN0SW5jbHVkaW5n
RGVzY2VuZGFudHMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlc3R1cmVU
YXBIaWdobGlnaHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlc3R1cmVUYXBIaWdobGln
aHRlci5jcHAKaW5kZXggOTdmNTk0N2Q1NzZmODc4ZGViZjcyYTVlMjkyYjYxMGYwODQ3ZDA1My4u
YmJmMTliZDEzZjVlMTNkZjMyMTQ1NmNlNjA0ODU4N2FjNWU4NWRmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9HZXN0dXJlVGFwSGlnaGxpZ2h0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2VzdHVyZVRhcEhpZ2hsaWdodGVyLmNwcApAQCAtMzksNyArMzksNiBAQAog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcklubGluZS5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAppbmRleCAwYWYwYmI1NzZjNGI2MzYxM2ZiN2RiOWVhZjIzNmI4MjM0
ZjY4MGU1Li5hMmVhNzhjNzY0OGUwNmI2ZjBiZWQyMzI5MDJkNTgxYjkzYWFlMDZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCBjNTY4YTRiOTJjNjJhM2IyZGVlYTA4NGNm
NWFmOWMzN2YyMDhiNmI1Li5kOGM3NDI5MTQ4OWJmNDM0OGYwNDUyYjk3NDE0NjMzNDlkZGI5YTU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAt
NTYsNyArNTYsNyBAQAogI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLSNpbmNs
dWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFj
Lm1tCmluZGV4IDkwMWEzNTliNWM1ZThjOWExMjFjZDgxYmEzODM2NTBjMzcxMDE2OTQuLjNhYmY2
MmE4MGQxYzk5MTZmZWExZTk2Yzc5ZTIwNTk0NTQ2MWQ5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQpAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUg
IlBsdWdpbkRlYnVnLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIlBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIm5wcnVudGltZV9pbXBsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHAKaW5kZXggZmY5MTJkYjU2NTJhOGMwNWUwZTczZTgyNWQwODRlNGQxNjE0OTNlOS4u
YWMzMWNmMDAyNmVkNDgyYjUzYjdjZjNiN2RlY2ZlMTIyNzMxZTA2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtNjMsNyArNjMsNyBAQAogI2luY2x1
ZGUgIlBsdWdpblBhY2thZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpZiBVU0UoSlNDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBmMWUwMGJhZTA4ZDBlOGQ4OGQyNTMwYmZhOTQw
NzIzNzI3NzJjNjcwLi4zYmVhMzUzNWFjY2RhNzA5NGRhNzdhNDNhMjdiZDQ1YTUyYTJhZTNhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjM5OCw2ICsy
Mzk4LDExIEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojp1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24p
CiAgICAgICAgIGN1cnItPnVwZGF0ZURyYWdTdGF0ZShkcmFnT24pOwogfQogCitib29sIFJlbmRl
ck9iamVjdDo6aXNDb21wb3NpdGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzTGF5ZXIoKSAm
JiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KHRoaXMpLT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKTsK
K30KKwogYm9vbCBSZW5kZXJPYmplY3Q6OmhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJl
cXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEZp
bHRlciBoaXRUZXN0RmlsdGVyKQogewogICAgIGJvb2wgaW5zaWRlID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggZTczMTA5NWU0MGEzNzM2OTJiZTUw
YmViYjEyYjBhZTNiNGM0ZTJhYi4uZmIzZGVhOWI3N2JiYzI1YTA0ZTkzOGQ2NTQzODE5NTJlYjJl
YzJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjExLDYg
KzYxMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbGxlY3REYXNoYm9hcmRSZWdpb25zKFZlY3Rv
cjxEYXNoYm9hcmRSZWdpb25WYWx1ZT4mKTsKICNlbmRpZgogCisgICAgYm9vbCBpc0NvbXBvc2l0
ZWQoKSBjb25zdDsKKwogICAgIGJvb2wgaGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhp
dFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0RmlsdGVyID0gSGl0VGVzdEFs
bCk7CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jiwg
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlv
dXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRi
YTJhZmE3NDljMzU2MzQzNzZjN2Y2ZDVjODZjOTUyNDczN2U3YTkuLjdjZjJlYWRmMjNmNDEwNGUz
MGU5YzQzMzliMTMyMDZlYTdkOWM4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKQEAgLTc3LDYgKzc3LDExIEBAIFJlbmRlclZpZXc6On5SZW5kZXJWaWV3KCkKIHsK
IH0KIAorYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1
ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCit7CisgICAgcmV0dXJuIGxheWVyKCktPmhpdFRl
c3QocmVxdWVzdCwgcmVzdWx0KTsKK30KKwogdm9pZCBSZW5kZXJWaWV3Ojpjb21wdXRlTG9naWNh
bEhlaWdodCgpCiB7CiAgICAgaWYgKCFwcmludGluZygpICYmIG1fZnJhbWVWaWV3KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggYmI4MmMxODliYjc3MTYwYzdhMmM0MTY0
Njc5NTVlYTlkY2JhNDI3Yi4uYTBhM2U1NWY1MGMwNzEwOTBlN2Y1N2I2NzY3YjEwNTBhNjJiN2E0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC00Miw2ICs0Miw4IEBA
IHB1YmxpYzoKICAgICBSZW5kZXJWaWV3KE5vZGUqLCBGcmFtZVZpZXcqKTsKICAgICB2aXJ0dWFs
IH5SZW5kZXJWaWV3KCk7CiAKKyAgICBib29sIGhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0Jik7CisKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyVmlldyI7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlclZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODU1ZWVhOTg4MzkzZjUw
N2I1NmYyYTk3ODk2NjJlNTk3NTE0NTgzMC4uOWViZmU1ODYzOTI0OWZkZTE1NmIzMTY5NDNkOGJj
MTE0ZmJlMWUyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTExICBKdWxpZW4gQ2hh
ZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgdXNl
IG9mIFJlbmRlckxheWVyIG91dHNpZGUgb2YgdGhlIHJlbmRlcmluZyBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzcyOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGUgdGVzdCBjaGVja3MgdGhhdCBj
YWxsaW5nIHNjcm9sbEJ5VW5pdCB3aXRob3V0IGEgUmVuZGVyTGF5ZXIgZG9lc24ndCBjcmFzaC4K
KworICAgICAgICAqIGZhc3QvbGF5ZXJzL3Njcm9sbEJ5TGluZXMtb3ZlcmZsb3ctbm8tbGF5ZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXllcnMvc2Nyb2xsQnlMaW5lcy1vdmVyZmxv
dy1uby1sYXllci1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTA0LTExICBFcmlrIEFydmlk
c3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRmlsZSBBUEkgZG9lcyBub3Qgc3Vw
cG9ydCBET00gZXZlbnRzIChsaWtlIGFkZEV2ZW50TGlzdGVuZXIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3Njcm9sbEJ5TGluZXMtb3ZlcmZsb3ct
bm8tbGF5ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2OWZlZTQzMzdlYTVmNzMwMGYzNWI5
ZDFjYmRiNjEzZjJjZDYxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xh
eWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK2J1ZyA4MzcyODogUmVkdWNlIHRoZSB1c2Ugb2YgUmVuZGVyTGF5ZXIgb3V0c2lk
ZSBvZiB0aGUgcmVuZGVyaW5nIGNvZGUKK1RoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSBQQVNT
RUQgYmVsb3cuCitQQVNTRUQ6IFRoZSB0ZXN0IGRpZCBub3QgY3Jhc2ghCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxheWVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xheWVycy9zY3JvbGxCeUxpbmVzLW92ZXJmbG93LW5vLWxh
eWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZiNDY2NThjZWQxN2U1NzhmMWMwMzUxNWY4NTAwMGExOGI0
NGM2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3Njcm9sbEJ5
TGluZXMtb3ZlcmZsb3ctbm8tbGF5ZXIuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEU+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNvdmVyZmxvdyB7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRl
bjsKKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
KyAgICBmdW5jdGlvbiB0ZXN0U2Nyb2xsQnlMaW5lKCkKKyAgICB7CisgICAgICAgIHZhciBvdmVy
Zmxvd0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdmVyZmxvdyIpOworICAgICAgICBv
dmVyZmxvd0Rpdi5zY3JvbGxCeUxpbmVzKDEwKTsKKyAgICAgICAgb3ZlcmZsb3dEaXYuc2Nyb2xs
QnlQYWdlcygxMCk7CisgICAgICAgIG92ZXJmbG93RGl2LmlubmVySFRNTCA9ICJQQVNTRUQ6IFRo
ZSB0ZXN0IGRpZCBub3QgY3Jhc2ghIjsKKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCB0ZXN0U2Nyb2xsQnlMaW5lLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgzNzI4Ij5idWcgODM3Mjg8L2E+OiBSZWR1Y2UgdGhlIHVzZSBvZiBSZW5kZXJM
YXllciBvdXRzaWRlIG9mIHRoZSByZW5kZXJpbmcgY29kZTwvZGl2PgorICAgIDxkaXY+VGhpcyB0
ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIFBBU1NFRCBiZWxvdy48L2Rpdj4KKyAgICA8ZGl2IGlkPSJv
dmVyZmxvdyI+RkFJTEVEPC9kaXY+Cis8Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>