<?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>66179</bug_id>
          
          <creation_ts>2011-08-12 17:24:11 -0700</creation_ts>
          <short_desc>Switch mouse events to to new layout types</short_desc>
          <delta_ts>2011-08-15 12:31:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (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>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>450767</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-08-12 17:24:11 -0700</bug_when>
    <thetext>Convert mouse events to new layout abstraction as a part of the ongoing conversion work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450773</commentid>
    <comment_count>1</comment_count>
      <attachid>103848</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-08-12 17:46:54 -0700</bug_when>
    <thetext>Created attachment 103848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451218</commentid>
    <comment_count>2</comment_count>
      <attachid>103848</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 12:31:23 -0700</bug_when>
    <thetext>Comment on attachment 103848
Patch

Clearing flags on attachment: 103848

Committed r93053: &lt;http://trac.webkit.org/changeset/93053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451219</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 12:31:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103848</attachid>
            <date>2011-08-12 17:46:54 -0700</date>
            <delta_ts>2011-08-15 12:31:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66179-20110812174653.patch</filename>
            <type>text/plain</type>
            <size>28758</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDgtMTIgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBtb3VzZSBldmVudHMg
dG8gdG8gbmV3IGxheW91dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjYxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb252ZXJ0IG1vdXNlIGV2ZW50cyB0byBuZXcgbGF5b3V0IGFic3RyYWN0
aW9uIGFzIGEgcGFydCBvZiB0aGUgb25nb2luZworICAgICAgICBjb252ZXJzaW9uIHdvcmsuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAq
IGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50c1Nj
cm9sbE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VS
ZWxhdGVkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6OmluaXRD
b29yZGluYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6Y29tcHV0
ZVBhZ2VMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6Y29t
cHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZl
bnQ6OnBhZ2VMb2NhdGlvbik6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6c2NyZWVuTG9jYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6OmNsaWVudExvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjphYnNvbHV0ZUxvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpzZXRBYnNvbHV0ZUxvY2F0aW9uKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6c2VsZWN0aW9uRXh0
ZW50UmVzcGVjdGluZ0VkaXRpbmdCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6Y3VycmVudE1vdXNlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZG9jdW1lbnRQ
b2ludEZvcldpbmRvd1BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91
c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50
Rm9yS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdIeXN0
ZXJlc2lzRXhjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVE
cmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybU1vdXNlRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6
UGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVu
dDo6cG9zKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6eCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OnkpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1Nb3VzZUV2ZW50OjpnbG9iYWxYKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TW91c2VFdmVudDo6Z2xvYmFsWSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtTW91
c2VFdmVudE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Omdsb2JhbFBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2xvYmFsUG9pbnRG
b3JFdmVudCk6CisKIDIwMTEtMDgtMTIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmVmYWN0b3Jpbmcgb2YgUG9wdXBNZW51Q2hyb21pdW0gRm9yIFJlYWRh
YmlsaXR5IGFuZCBNYWludGFpbmFiaWxpdHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcAkocmV2aXNpb24gOTMwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
TW91c2VSZWxhdGVkRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwyOSArMzgsMjkgQEAg
TW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KCkKIHsKIH0KIAotc3RhdGljIElu
dFNpemUgY29udGVudHNTY3JvbGxPZmZzZXQoQWJzdHJhY3RWaWV3KiBhYnN0cmFjdFZpZXcpCitz
dGF0aWMgTGF5b3V0U2l6ZSBjb250ZW50c1Njcm9sbE9mZnNldChBYnN0cmFjdFZpZXcqIGFic3Ry
YWN0VmlldykKIHsKICAgICBpZiAoIWFic3RyYWN0VmlldykKLSAgICAgICAgcmV0dXJuIEludFNp
emUoKTsKKyAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKICAgICBGcmFtZSogZnJhbWUgPSBh
YnN0cmFjdFZpZXctPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIElu
dFNpemUoKTsKKyAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJl
dHVybiBJbnRTaXplKCk7Ci0gICAgcmV0dXJuIEludFNpemUoZnJhbWVWaWV3LT5zY3JvbGxYKCkg
LyBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSwKKyAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsK
KyAgICByZXR1cm4gTGF5b3V0U2l6ZShmcmFtZVZpZXctPnNjcm9sbFgoKSAvIGZyYW1lLT5wYWdl
Wm9vbUZhY3RvcigpLAogICAgICAgICBmcmFtZVZpZXctPnNjcm9sbFkoKSAvIGZyYW1lLT5wYWdl
Wm9vbUZhY3RvcigpKTsKIH0KIAogTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gYWJzdHJhY3RWaWV3LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBz
Y3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IExheW91dFBvaW50
JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgTGF5b3V0UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBpc1NpbXVsYXRlZCkKICAgICA6
IFVJRXZlbnRXaXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGFi
c3RyYWN0VmlldywgZGV0YWlsLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQog
ICAgICwgbV9zY3JlZW5Mb2NhdGlvbihzY3JlZW5Mb2NhdGlvbikKICAgICAsIG1faXNTaW11bGF0
ZWQoaXNTaW11bGF0ZWQpCiB7Ci0gICAgSW50UG9pbnQgYWRqdXN0ZWRQYWdlTG9jYXRpb247Ci0g
ICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb247CisgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQYWdl
TG9jYXRpb247CisgICAgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb247CiAKICAgICBGcmFtZSog
ZnJhbWUgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lKCkgOiAwOwogICAgIGlmIChmcmFtZSAmJiAh
aXNTaW11bGF0ZWQpIHsKQEAgLTczLDcgKzczLDcgQEAgTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNl
UmVsYXRlZEV2ZW50KGNvbgogICAgICAgICAgICAgICAgIGFkanVzdGVkUGFnZUxvY2F0aW9uLnNj
YWxlKDEgLyBwYWdlWm9vbSwgMSAvIHBhZ2Vab29tKTsKIAogICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBDaGFuZ2UgdGhpcyB0byB1c2UgZmxvYXQgbWF0aCBhbmQgcHJvcGVyIHJvdW5kaW5nIChv
cgotICAgICAgICAgICAgICAgIC8vIGJldHRlciB5ZXQsIHVzZSBJbnRQb2ludDo6c2NhbGUpLgor
ICAgICAgICAgICAgICAgIC8vIGJldHRlciB5ZXQsIHVzZSBMYXlvdXRQb2ludDo6c2NhbGUpLgog
ICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uLnNldFgoc2Nyb2xsUG9zaXRpb24ueCgpIC8g
cGFnZVpvb20pOwogICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uLnNldFkoc2Nyb2xsUG9z
aXRpb24ueSgpIC8gcGFnZVpvb20pOwogICAgICAgICAgICAgfQpAQCAtOTcsNyArOTcsNyBAQCB2
b2lkIE1vdXNlUmVsYXRlZEV2ZW50Ojppbml0Q29vcmRpbmF0ZXMoCiAgICAgbV9oYXNDYWNoZWRS
ZWxhdGl2ZVBvc2l0aW9uID0gZmFsc2U7CiB9CiAKLXZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6Omlu
aXRDb29yZGluYXRlcyhjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24pCit2b2lkIE1vdXNl
UmVsYXRlZEV2ZW50Ojppbml0Q29vcmRpbmF0ZXMoY29uc3QgTGF5b3V0UG9pbnQmIGNsaWVudExv
Y2F0aW9uKQogewogICAgIC8vIFNldCB1cCBpbml0aWFsIHZhbHVlcyBmb3IgY29vcmRpbmF0ZXMu
CiAgICAgLy8gQ29ycmVjdCB2YWx1ZXMgYXJlIGNvbXB1dGVkIGxhemlseSwgc2VlIGNvbXB1dGVS
ZWxhdGl2ZVBvc2l0aW9uLgpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBmbG9hdCBwYWdlWm9v
bUZhY3Rvcihjb25zdCBVSUV2ZW4KIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6OmNvbXB1dGVQYWdl
TG9jYXRpb24oKQogewogICAgIGZsb2F0IHpvb21GYWN0b3IgPSBwYWdlWm9vbUZhY3Rvcih0aGlz
KTsKLSAgICBzZXRBYnNvbHV0ZUxvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChGbG9hdFBvaW50KHBh
Z2VYKCkgKiB6b29tRmFjdG9yLCBwYWdlWSgpICogem9vbUZhY3RvcikpKTsKKyAgICBzZXRBYnNv
bHV0ZUxvY2F0aW9uKHJvdW5kZWRMYXlvdXRQb2ludChGbG9hdFBvaW50KHBhZ2VYKCkgKiB6b29t
RmFjdG9yLCBwYWdlWSgpICogem9vbUZhY3RvcikpKTsKIH0KIAogdm9pZCBNb3VzZVJlbGF0ZWRF
dmVudDo6cmVjZWl2ZWRUYXJnZXQoKQpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgTW91c2VSZWxh
dGVkRXZlbnQ6OmNvbXB1dGVSZWxhdGl2ZVAKICAgICBpZiAoIWlzU2ltdWxhdGVkKCkpIHsKICAg
ICAgICAgaWYgKFJlbmRlck9iamVjdCogciA9IHRhcmdldE5vZGUtPnJlbmRlcmVyKCkpIHsKICAg
ICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSByLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1
dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBtX29mZnNldExvY2F0aW9u
ID0gcm91bmRlZEludFBvaW50KGxvY2FsUG9zKTsKKyAgICAgICAgICAgIG1fb2Zmc2V0TG9jYXRp
b24gPSByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb3MpOwogICAgICAgICAgICAgZmxvYXQgc2Nh
bGVGYWN0b3IgPSAxIC8gcGFnZVpvb21GYWN0b3IodGhpcyk7CiAgICAgICAgICAgICBpZiAoc2Nh
bGVGYWN0b3IgIT0gMS4wZikKICAgICAgICAgICAgICAgICBtX29mZnNldExvY2F0aW9uLnNjYWxl
KHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7CkBAIC0yMTUsNyArMjE1LDcgQEAgaW50IE1vdXNl
UmVsYXRlZEV2ZW50OjpwYWdlWSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZUxvY2F0aW9uLnko
KTsKIH0KIAotY29uc3QgSW50UG9pbnQmIE1vdXNlUmVsYXRlZEV2ZW50OjpwYWdlTG9jYXRpb24o
KSBjb25zdAorY29uc3QgTGF5b3V0UG9pbnQmIE1vdXNlUmVsYXRlZEV2ZW50OjpwYWdlTG9jYXRp
b24oKSBjb25zdAogewogICAgIHJldHVybiBtX3BhZ2VMb2NhdGlvbjsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCShyZXZpc2lvbiA5MzAwNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWZuZGVmIE1vdXNlUmVsYXRlZEV2ZW50X2gKICNkZWZpbmUgTW91c2VSZWxh
dGVkRXZlbnRfaAogCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBl
cy5oIgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzYsMTAgKzM2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
ZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJlIGludmFyaWFudCB1bmRlciB6b29taW5nLgogICAgICAg
ICBpbnQgc2NyZWVuWCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuTG9jYXRpb24ueCgpOyB9CiAg
ICAgICAgIGludCBzY3JlZW5ZKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Mb2NhdGlvbi55KCk7
IH0KLSAgICAgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JlZW5Mb2NhdGlvbjsgfQorICAgICAgICBjb25zdCBMYXlvdXRQb2ludCYgc2NyZWVu
TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NjcmVlbkxvY2F0aW9uOyB9CiAgICAgICAgIGlu
dCBjbGllbnRYKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRMb2NhdGlvbi54KCk7IH0KICAgICAg
ICAgaW50IGNsaWVudFkoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudExvY2F0aW9uLnkoKTsgfQot
ICAgICAgICBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBt
X2NsaWVudExvY2F0aW9uOyB9CisgICAgICAgIGNvbnN0IExheW91dFBvaW50JiBjbGllbnRMb2Nh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50TG9jYXRpb247IH0KICAgICAgICAgaW50IGxh
eWVyWCgpOwogICAgICAgICBpbnQgbGF5ZXJZKCk7CiAgICAgICAgIGludCBvZmZzZXRYKCk7CkBA
IC00NywzNyArNDcsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlzU2lt
dWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NpbXVsYXRlZDsgfQogICAgICAgICB2aXJ0dWFs
IGludCBwYWdlWCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGludCBwYWdlWSgpIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIGNvbnN0IEludFBvaW50JiBwYWdlTG9jYXRpb24oKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBjb25zdCBMYXlvdXRQb2ludCYgcGFnZUxvY2F0aW9uKCkgY29uc3Q7CiAg
ICAgICAgIGludCB4KCkgY29uc3Q7CiAgICAgICAgIGludCB5KCkgY29uc3Q7CiAKICAgICAgICAg
Ly8gUGFnZSBwb2ludCBpbiAiYWJzb2x1dGUiIGNvb3JkaW5hdGVzIChpLmUuIHBvc3Qtem9vbWVk
LCBwYWdlLXJlbGF0aXZlIGNvb3JkcywKICAgICAgICAgLy8gdXNhYmxlIHdpdGggUmVuZGVyT2Jq
ZWN0OjphYnNvbHV0ZVRvTG9jYWwpLgotICAgICAgICBjb25zdCBJbnRQb2ludCYgYWJzb2x1dGVM
b2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVMb2NhdGlvbjsgfQotICAgICAgICB2
b2lkIHNldEFic29sdXRlTG9jYXRpb24oY29uc3QgSW50UG9pbnQmIHApIHsgbV9hYnNvbHV0ZUxv
Y2F0aW9uID0gcDsgfQorICAgICAgICBjb25zdCBMYXlvdXRQb2ludCYgYWJzb2x1dGVMb2NhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVMb2NhdGlvbjsgfQorICAgICAgICB2b2lkIHNl
dEFic29sdXRlTG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIHApIHsgbV9hYnNvbHV0ZUxvY2F0
aW9uID0gcDsgfQogICAgIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgTW91c2VSZWxhdGVkRXZl
bnQoKTsKICAgICAgICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmll
dz4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50
JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBMYXlvdXRQb2ludCYgc2NyZWVu
TG9jYXRpb24sIGNvbnN0IExheW91dFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCBib29sIGlzU2ltdWxhdGVkID0gZmFsc2UpOwogCiAgICAgICAgIHZvaWQg
aW5pdENvb3JkaW5hdGVzKCk7Ci0gICAgICAgIHZvaWQgaW5pdENvb3JkaW5hdGVzKGNvbnN0IElu
dFBvaW50JiBjbGllbnRMb2NhdGlvbik7CisgICAgICAgIHZvaWQgaW5pdENvb3JkaW5hdGVzKGNv
bnN0IExheW91dFBvaW50JiBjbGllbnRMb2NhdGlvbik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWNlaXZlZFRhcmdldCgpOwogCiAgICAgICAgIHZvaWQgY29tcHV0ZVBhZ2VMb2NhdGlvbigpOwog
ICAgICAgICB2b2lkIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKCk7CiAgICAgICAgIAogICAgICAg
ICAvLyBFeHBvc2UgdGhlc2Ugc28gTW91c2VFdmVudDo6aW5pdE1vdXNlRXZlbnQgY2FuIHNldCB0
aGVtLgotICAgICAgICBJbnRQb2ludCBtX3NjcmVlbkxvY2F0aW9uOwotICAgICAgICBJbnRQb2lu
dCBtX2NsaWVudExvY2F0aW9uOworICAgICAgICBMYXlvdXRQb2ludCBtX3NjcmVlbkxvY2F0aW9u
OworICAgICAgICBMYXlvdXRQb2ludCBtX2NsaWVudExvY2F0aW9uOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgSW50UG9pbnQgbV9wYWdlTG9jYXRpb247Ci0gICAgICAgIEludFBvaW50IG1fbGF5
ZXJMb2NhdGlvbjsKLSAgICAgICAgSW50UG9pbnQgbV9vZmZzZXRMb2NhdGlvbjsKLSAgICAgICAg
SW50UG9pbnQgbV9hYnNvbHV0ZUxvY2F0aW9uOworICAgICAgICBMYXlvdXRQb2ludCBtX3BhZ2VM
b2NhdGlvbjsKKyAgICAgICAgTGF5b3V0UG9pbnQgbV9sYXllckxvY2F0aW9uOworICAgICAgICBM
YXlvdXRQb2ludCBtX29mZnNldExvY2F0aW9uOworICAgICAgICBMYXlvdXRQb2ludCBtX2Fic29s
dXRlTG9jYXRpb247CiAgICAgICAgIGJvb2wgbV9pc1NpbXVsYXRlZDsKICAgICAgICAgYm9vbCBt
X2hhc0NhY2hlZFJlbGF0aXZlUG9zaXRpb247CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDkzMDA0KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICAgICBtX2RyYWdUYXJnZXQgPSAwOwogICAgIG1fc2hv
dWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFsc2U7CiAjZW5kaWYKLSAgICBtX2N1cnJlbnRN
b3VzZVBvc2l0aW9uID0gSW50UG9pbnQoKTsKKyAgICBtX2N1cnJlbnRNb3VzZVBvc2l0aW9uID0g
TGF5b3V0UG9pbnQoKTsKICAgICBtX21vdXNlUHJlc3NOb2RlID0gMDsKICAgICBtX21vdXNlUHJl
c3NlZCA9IGZhbHNlOwogICAgIG1fY2FwdHVyZXNEcmFnZ2luZyA9IGZhbHNlOwpAQCAtMzk2LDcg
KzM5Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQKICAgICAv
LyBEb24ndCByZXN0YXJ0IHRoZSBzZWxlY3Rpb24gd2hlbiB0aGUgbW91c2UgaXMgcHJlc3NlZCBv
biBhbgogICAgIC8vIGV4aXN0aW5nIHNlbGVjdGlvbiBzbyB3ZSBjYW4gYWxsb3cgZm9yIHRleHQg
ZHJhZ2dpbmcuCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewot
ICAgICAgICBJbnRQb2ludCB2UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LmV2
ZW50KCkucG9zKCkpOworICAgICAgICBMYXlvdXRQb2ludCB2UG9pbnQgPSB2aWV3LT53aW5kb3dU
b0NvbnRlbnRzKGV2ZW50LmV2ZW50KCkucG9zKCkpOwogICAgICAgICBpZiAoIWV4dGVuZFNlbGVj
dGlvbiAmJiBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Y29udGFpbnModlBvaW50KSkgewogICAgICAg
ICAgICAgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uID0gdHJ1ZTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY0MCw5ICs2NDAsOSBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91CiAgICAgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFn
KHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uRXh0ZW50UmVz
cGVjdGluZ0VkaXRpbmdCb3VuZGFyeShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50LCBOb2RlKiB0YXJnZXROb2RlKQorc3RhdGljIFZp
c2libGVQb3NpdGlvbiBzZWxlY3Rpb25FeHRlbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJ5KGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgTGF5b3V0UG9pbnQmIGxvY2Fs
UG9pbnQsIE5vZGUqIHRhcmdldE5vZGUpCiB7Ci0gICAgSW50UG9pbnQgc2VsZWN0aW9uRW5kUG9p
bnQgPSBsb2NhbFBvaW50OworICAgIExheW91dFBvaW50IHNlbGVjdGlvbkVuZFBvaW50ID0gbG9j
YWxQb2ludDsKICAgICBFbGVtZW50KiBlZGl0YWJsZUVsZW1lbnQgPSBzZWxlY3Rpb24ucm9vdEVk
aXRhYmxlRWxlbWVudCgpOwogCiAgICAgaWYgKCF0YXJnZXROb2RlLT5yZW5kZXJlcigpKQpAQCAt
NjUzLDcgKzY1Myw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uRXh0ZW50UmUK
ICAgICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKIAogICAgICAgICBGbG9hdFBv
aW50IGFic29sdXRlUG9pbnQgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1
dGUoRmxvYXRQb2ludChzZWxlY3Rpb25FbmRQb2ludCkpOwotICAgICAgICBzZWxlY3Rpb25FbmRQ
b2ludCA9IHJvdW5kZWRJbnRQb2ludChlZGl0YWJsZUVsZW1lbnQtPnJlbmRlcmVyKCktPmFic29s
dXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50KSk7CisgICAgICAgIHNlbGVjdGlvbkVuZFBvaW50ID0g
cm91bmRlZExheW91dFBvaW50KGVkaXRhYmxlRWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVU
b0xvY2FsKGFic29sdXRlUG9pbnQpKTsKICAgICAgICAgdGFyZ2V0Tm9kZSA9IGVkaXRhYmxlRWxl
bWVudDsKICAgICB9CiAKQEAgLTkyMiw3ICs5MjIsNyBAQCBEcmFnU291cmNlQWN0aW9uIEV2ZW50
SGFuZGxlcjo6dXBkYXRlRHJhCiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKICAg
ICAKLUhpdFRlc3RSZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25z
dCBJbnRQb2ludCYgcG9pbnQsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNs
aXBwaW5nLCBIaXRUZXN0U2Nyb2xsYmFycyB0ZXN0U2Nyb2xsYmFycywgSGl0VGVzdFJlcXVlc3Q6
OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlLCBjb25zdCBJbnRTaXplJiBwYWRkaW5nKQorSGl0
VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IExheW91
dFBvaW50JiBwb2ludCwgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBp
bmcsIEhpdFRlc3RTY3JvbGxiYXJzIHRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6SGl0
VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUsIGNvbnN0IExheW91dFNpemUmIHBhZGRpbmcpCiB7CiAg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9pbnQsIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcu
d2lkdGgoKSwgcGFkZGluZy5oZWlnaHQoKSwgcGFkZGluZy53aWR0aCgpKTsKICAgICBpZiAoIW1f
ZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQpAQCAtOTQzLDcgKzk0Myw3IEBAIEhpdFRlc3RSZXN1
bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWwKICAgICAgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIEZyYW1l
VmlldyogdmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCk7Ci0gICAgICAgIElu
dFBvaW50IHdpZGdldFBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkueCgpICsgdmlldy0+c2Nyb2xs
WCgpIC0gcmVuZGVyV2lkZ2V0LT5ib3JkZXJMZWZ0KCkgLSByZW5kZXJXaWRnZXQtPnBhZGRpbmdM
ZWZ0KCksIAorICAgICAgICBMYXlvdXRQb2ludCB3aWRnZXRQb2ludChyZXN1bHQubG9jYWxQb2lu
dCgpLngoKSArIHZpZXctPnNjcm9sbFgoKSAtIHJlbmRlcldpZGdldC0+Ym9yZGVyTGVmdCgpIC0g
cmVuZGVyV2lkZ2V0LT5wYWRkaW5nTGVmdCgpLCAKICAgICAgICAgICAgIHJlc3VsdC5sb2NhbFBv
aW50KCkueSgpICsgdmlldy0+c2Nyb2xsWSgpIC0gcmVuZGVyV2lkZ2V0LT5ib3JkZXJUb3AoKSAt
IHJlbmRlcldpZGdldC0+cGFkZGluZ1RvcCgpKTsKICAgICAgICAgSGl0VGVzdFJlc3VsdCB3aWRn
ZXRIaXRUZXN0UmVzdWx0KHdpZGdldFBvaW50LCBwYWRkaW5nLmhlaWdodCgpLCBwYWRkaW5nLndp
ZHRoKCksIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcud2lkdGgoKSk7CiAgICAgICAgIGZyYW1l
LT5jb250ZW50UmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdChoaXRU
eXBlKSwgd2lkZ2V0SGl0VGVzdFJlc3VsdCk7CkBAIC05NjUsOCArOTY1LDggQEAgSGl0VGVzdFJl
c3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bAogICAgICAgICAgICAgRnJhbWVWaWV3KiBy
ZXN1bHRWaWV3ID0gcmVzdWx0RnJhbWUtPnZpZXcoKTsKICAgICAgICAgICAgIEZyYW1lVmlldyog
bWFpblZpZXcgPSBtYWluRnJhbWUtPnZpZXcoKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRWaWV3
ICYmIG1haW5WaWV3KSB7Ci0gICAgICAgICAgICAgICAgSW50UG9pbnQgd2luZG93UG9pbnQgPSBy
ZXN1bHRWaWV3LT5jb250ZW50c1RvV2luZG93KHJlc3VsdC5wb2ludCgpKTsKLSAgICAgICAgICAg
ICAgICBJbnRQb2ludCBtYWluRnJhbWVQb2ludCA9IG1haW5WaWV3LT53aW5kb3dUb0NvbnRlbnRz
KHdpbmRvd1BvaW50KTsKKyAgICAgICAgICAgICAgICBMYXlvdXRQb2ludCB3aW5kb3dQb2ludCA9
IHJlc3VsdFZpZXctPmNvbnRlbnRzVG9XaW5kb3cocmVzdWx0LnBvaW50KCkpOworICAgICAgICAg
ICAgICAgIExheW91dFBvaW50IG1haW5GcmFtZVBvaW50ID0gbWFpblZpZXctPndpbmRvd1RvQ29u
dGVudHMod2luZG93UG9pbnQpOwogICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1haW5GcmFtZS0+
ZXZlbnRIYW5kbGVyKCktPmhpdFRlc3RSZXN1bHRBdFBvaW50KG1haW5GcmFtZVBvaW50LCBhbGxv
d1NoYWRvd0NvbnRlbnQsIGlnbm9yZUNsaXBwaW5nLCB0ZXN0U2Nyb2xsYmFycywgaGl0VHlwZSwg
cGFkZGluZyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTExMjIsNyArMTEyMiw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpsb2dpY2FsU2Nyb2xsUmVjdXJzaXYKICAgICByZXR1cm4gZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBn
cmFudWxhcml0eSwgbV9mcmFtZS0+b3duZXJFbGVtZW50KCkpOwogfQogCi1JbnRQb2ludCBFdmVu
dEhhbmRsZXI6OmN1cnJlbnRNb3VzZVBvc2l0aW9uKCkgY29uc3QKK0xheW91dFBvaW50IEV2ZW50
SGFuZGxlcjo6Y3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBtX2N1
cnJlbnRNb3VzZVBvc2l0aW9uOwogfQpAQCAtMTMxOCw3ICsxMzE4LDcgQEAgQ3Vyc29yIEV2ZW50
SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IAogICAgIHJldHVybiBwb2ludGVyQ3Vyc29yKCk7
CiB9CiAgICAgCi1zdGF0aWMgSW50UG9pbnQgZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KEZy
YW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQorc3RhdGljIExheW91dFBv
aW50IGRvY3VtZW50UG9pbnRGb3JXaW5kb3dQb2ludChGcmFtZSogZnJhbWUsIGNvbnN0IExheW91
dFBvaW50JiB3aW5kb3dQb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmll
dygpOwogICAgIC8vIEZJWE1FOiBJcyBpdCByZWFsbHkgT0sgdG8gdXNlIHRoZSB3cm9uZyBjb29y
ZGluYXRlcyBoZXJlIHdoZW4gdmlldyBpcyAwPwpAQCAtMTM3NCw3ICsxMzc0LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgIEhpdFRlc3RSZXF1ZXN0IHJl
cXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAgICAgLy8gU2F2ZSB0aGUgZG9jdW1lbnQg
cG9pbnQgd2UgZ2VuZXJhdGUgaW4gY2FzZSB0aGUgd2luZG93IGNvb3JkaW5hdGUgaXMgaW52YWxp
ZGF0ZWQgYnkgd2hhdCBoYXBwZW5zIAogICAgIC8vIHdoZW4gd2UgZGlzcGF0Y2ggdGhlIGV2ZW50
LgotICAgIEludFBvaW50IGRvY3VtZW50UG9pbnQgPSBkb2N1bWVudFBvaW50Rm9yV2luZG93UG9p
bnQobV9mcmFtZSwgbW91c2VFdmVudC5wb3MoKSk7CisgICAgTGF5b3V0UG9pbnQgZG9jdW1lbnRQ
b2ludCA9IGRvY3VtZW50UG9pbnRGb3JXaW5kb3dQb2ludChtX2ZyYW1lLCBtb3VzZUV2ZW50LnBv
cygpKTsKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPnByZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIGRvY3VtZW50UG9pbnQsIG1vdXNl
RXZlbnQpOwogCiAgICAgaWYgKCF0YXJnZXROb2RlKG1ldikpIHsKQEAgLTE0MjEsNyArMTQyMSw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQKIAogICAgIGlmIChG
cmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgUmVuZGVyTGF5ZXIq
IGxheWVyID0gbV9jbGlja05vZGUtPnJlbmRlcmVyKCkgPyBtX2NsaWNrTm9kZS0+cmVuZGVyZXIo
KS0+ZW5jbG9zaW5nTGF5ZXIoKSA6IDA7Ci0gICAgICAgIEludFBvaW50IHAgPSB2aWV3LT53aW5k
b3dUb0NvbnRlbnRzKG1vdXNlRXZlbnQucG9zKCkpOworICAgICAgICBMYXlvdXRQb2ludCBwID0g
dmlldy0+d2luZG93VG9Db250ZW50cyhtb3VzZUV2ZW50LnBvcygpKTsKICAgICAgICAgaWYgKGxh
eWVyICYmIGxheWVyLT5pc1BvaW50SW5SZXNpemVDb250cm9sKHApKSB7CiAgICAgICAgICAgICBs
YXllci0+c2V0SW5SZXNpemVNb2RlKHRydWUpOwogICAgICAgICAgICAgbV9yZXNpemVMYXllciA9
IGxheWVyOwpAQCAtMTUzMiw3ICsxNTMyLDcgQEAgc3RhdGljIFJlbmRlckxheWVyKiBsYXllckZv
ck5vZGUoTm9kZSogbgogCiBib29sIEV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogewotICAgIEhpdFRlc3RSZXN1bHQgaG92ZXJlZE5vZGUg
PSBIaXRUZXN0UmVzdWx0KEludFBvaW50KCkpOworICAgIEhpdFRlc3RSZXN1bHQgaG92ZXJlZE5v
ZGUgPSBIaXRUZXN0UmVzdWx0KExheW91dFBvaW50KCkpOwogICAgIGJvb2wgcmVzdWx0ID0gaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoZXZlbnQsICZob3ZlcmVkTm9kZSk7CiAKICAgICBQYWdlKiBwYWdl
ID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAtMjEyOCw3ICsyMTI4LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdAogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHNldEZyYW1lV2FzU2Nyb2xsZWRCeVVzZXIoKTsKLSAgICBJbnRQb2ludCB2
UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKGUucG9zKCkpOworICAgIExheW91dFBvaW50
IHZQb2ludCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMoZS5wb3MoKSk7CiAKICAgICBOb2RlKiBu
b2RlOwogICAgIGJvb2wgaXNPdmVyV2lkZ2V0OwpAQCAtMjI2MCw3ICsyMjYwLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50KAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCiAgICAgYm9vbCBzd2FsbG93RXZlbnQ7Ci0gICAgSW50UG9pbnQgdmlld3BvcnRQb3Mg
PSB2LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LnBvcygpKTsKKyAgICBMYXlvdXRQb2ludCB2aWV3
cG9ydFBvcyA9IHYtPndpbmRvd1RvQ29udGVudHMoZXZlbnQucG9zKCkpOwogICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAgICAgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBkb2MtPnByZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIHZp
ZXdwb3J0UG9zLCBldmVudCk7CiAKQEAgLTIyOTYsNyArMjI5Niw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEYKICNlbHNlCiAgICAgaW50IHJpZ2h0QWxpZ25lZCA9
IDA7CiAjZW5kaWYKLSAgICBJbnRQb2ludCBsb2NhdGlvbjsKKyAgICBMYXlvdXRQb2ludCBsb2Nh
dGlvbjsKIAogICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZG9jLT5mb2N1c2VkTm9kZSgpOwogICAg
IEZyYW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKTsKQEAgLTIz
MDQsMjYgKzIzMDQsMjYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50
RgogCiAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWROb2RlKCkgJiYgKHNlbGVjdGlvbi0+cm9vdEVk
aXRhYmxlRWxlbWVudCgpIHx8IHNlbGVjdGlvbi0+aXNSYW5nZSgpKSkgewogICAgICAgICBSZWZQ
dHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc2VsZWN0aW9uLT50b05vcm1hbGl6ZWRSYW5nZSgp
OwotICAgICAgICBJbnRSZWN0IGZpcnN0UmVjdCA9IG1fZnJhbWUtPmVkaXRvcigpLT5maXJzdFJl
Y3RGb3JSYW5nZShzZWxlY3Rpb25SYW5nZS5nZXQoKSk7CisgICAgICAgIExheW91dFJlY3QgZmly
c3RSZWN0ID0gbV9mcmFtZS0+ZWRpdG9yKCktPmZpcnN0UmVjdEZvclJhbmdlKHNlbGVjdGlvblJh
bmdlLmdldCgpKTsKIAotICAgICAgICBpbnQgeCA9IHJpZ2h0QWxpZ25lZCA/IGZpcnN0UmVjdC5t
YXhYKCkgOiBmaXJzdFJlY3QueCgpOwotICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50KHgsIGZp
cnN0UmVjdC5tYXhZKCkpOworICAgICAgICBMYXlvdXRVbml0IHggPSByaWdodEFsaWduZWQgPyBm
aXJzdFJlY3QubWF4WCgpIDogZmlyc3RSZWN0LngoKTsKKyAgICAgICAgbG9jYXRpb24gPSBMYXlv
dXRQb2ludCh4LCBmaXJzdFJlY3QubWF4WSgpKTsKICAgICB9IGVsc2UgaWYgKGZvY3VzZWROb2Rl
KSB7CiAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBib3ggPSBmb2N1c2VkTm9kZS0+cmVu
ZGVyQm94TW9kZWxPYmplY3QoKTsKICAgICAgICAgaWYgKCFib3gpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIEludFJlY3QgY2xpcHBlZFJlY3QgPSBib3gtPmFic29sdXRlQ2xp
cHBlZE92ZXJmbG93UmVjdCgpOwotICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50KGNsaXBwZWRS
ZWN0LngoKSwgY2xpcHBlZFJlY3QubWF4WSgpIC0gMSk7CisgICAgICAgIExheW91dFJlY3QgY2xp
cHBlZFJlY3QgPSBib3gtPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpOworICAgICAgICBs
b2NhdGlvbiA9IExheW91dFBvaW50KGNsaXBwZWRSZWN0LngoKSwgY2xpcHBlZFJlY3QubWF4WSgp
IC0gMSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbG9jYXRpb24gPSBJbnRQb2ludCgKKyAgICAg
ICAgbG9jYXRpb24gPSBMYXlvdXRQb2ludCgKICAgICAgICAgICAgIHJpZ2h0QWxpZ25lZCA/IHZp
ZXctPmNvbnRlbnRzV2lkdGgoKSAtIGtDb250ZXh0TWVudU1hcmdpbiA6IGtDb250ZXh0TWVudU1h
cmdpbiwKICAgICAgICAgICAgIGtDb250ZXh0TWVudU1hcmdpbik7CiAgICAgfQogCiAgICAgbV9m
cmFtZS0+dmlldygpLT5zZXRDdXJzb3IocG9pbnRlckN1cnNvcigpKTsKIAotICAgIEludFBvaW50
IHBvc2l0aW9uID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhsb2NhdGlvbik7Ci0gICAgSW50UG9p
bnQgZ2xvYmFsUG9zaXRpb24gPSB2aWV3LT5jb250ZW50c1RvU2NyZWVuKEludFJlY3QobG9jYXRp
b24sIEludFNpemUoKSkpLmxvY2F0aW9uKCk7CisgICAgTGF5b3V0UG9pbnQgcG9zaXRpb24gPSB2
aWV3LT5jb250ZW50c1RvV2luZG93KGxvY2F0aW9uKTsKKyAgICBMYXlvdXRQb2ludCBnbG9iYWxQ
b3NpdGlvbiA9IHZpZXctPmNvbnRlbnRzVG9TY3JlZW4oTGF5b3V0UmVjdChsb2NhdGlvbiwgTGF5
b3V0U2l6ZSgpKSkubG9jYXRpb24oKTsKIAogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBkb2MtPmZv
Y3VzZWROb2RlKCk7CiAgICAgaWYgKCF0YXJnZXROb2RlKQpAQCAtMjM5OSw3ICsyMzk5LDcgQEAg
dm9pZCBFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbQogICAgIGJvb2wgYWx0S2V5
OwogICAgIGJvb2wgbWV0YUtleTsKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOwotICAg
IEludFBvaW50IGdsb2JhbFBvaW50ID0gdmlldy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KHZp
ZXctPndpbmRvd1RvQ29udGVudHMobV9jdXJyZW50TW91c2VQb3NpdGlvbiksIEludFNpemUoKSkp
LmxvY2F0aW9uKCk7CisgICAgTGF5b3V0UG9pbnQgZ2xvYmFsUG9pbnQgPSB2aWV3LT5jb250ZW50
c1RvU2NyZWVuKExheW91dFJlY3Qodmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3Vz
ZVBvc2l0aW9uKSwgTGF5b3V0U2l6ZSgpKSkubG9jYXRpb24oKTsKICAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fY3VycmVudE1vdXNlUG9zaXRpb24sIGdsb2JhbFBv
aW50LCBOb0J1dHRvbiwgTW91c2VFdmVudE1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKICAgICBtb3VzZU1vdmVkKGZha2VNb3VzZU1v
dmVFdmVudCk7CiB9CkBAIC0yNjk3LDE5ICsyNjk3LDE5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpk
ZWZhdWx0S2V5Ym9hcmRFdmVudEgKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1ib29s
IEV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JiBm
bG9hdERyYWdWaWV3cG9ydExvY2F0aW9uKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdI
eXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmIGZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRp
b24pIGNvbnN0CiB7Ci0gICAgSW50UG9pbnQgZHJhZ1ZpZXdwb3J0TG9jYXRpb24oKGludClmbG9h
dERyYWdWaWV3cG9ydExvY2F0aW9uLngoKSwgKGludClmbG9hdERyYWdWaWV3cG9ydExvY2F0aW9u
LnkoKSk7CisgICAgRmxvYXRQb2ludCBkcmFnVmlld3BvcnRMb2NhdGlvbihmbG9hdERyYWdWaWV3
cG9ydExvY2F0aW9uLngoKSwgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbi55KCkpOwogICAgIHJl
dHVybiBkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGRyYWdWaWV3cG9ydExvY2F0aW9uKTsKIH0KLSAg
ICAKLWJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEludFBv
aW50JiBkcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKKworYm9vbCBFdmVudEhhbmRsZXI6OmRy
YWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZHJhZ1ZpZXdwb3J0TG9jYXRp
b24pIGNvbnN0CiB7CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAg
IGlmICghdmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEludFBvaW50IGRyYWdMb2Nh
dGlvbiA9IHZpZXctPndpbmRvd1RvQ29udGVudHMoZHJhZ1ZpZXdwb3J0TG9jYXRpb24pOwotICAg
IEludFNpemUgZGVsdGEgPSBkcmFnTG9jYXRpb24gLSBtX21vdXNlRG93blBvczsKKyAgICBMYXlv
dXRQb2ludCBkcmFnTG9jYXRpb24gPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKGZsb29yZWRMYXlv
dXRQb2ludChkcmFnVmlld3BvcnRMb2NhdGlvbikpOworICAgIExheW91dFNpemUgZGVsdGEgPSBk
cmFnTG9jYXRpb24gLSBtX21vdXNlRG93blBvczsKICAgICAKICAgICBpbnQgdGhyZXNob2xkID0g
R2VuZXJhbERyYWdIeXN0ZXJlc2lzOwogICAgIHN3aXRjaCAoZHJhZ1N0YXRlKCkubV9kcmFnVHlw
ZSkgewpAQCAtMjg2MSw3ICsyODYxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURyYWco
Y29uc3QgTW91cwogICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBkcmFn
U3RhdGUoKS5tX2RyYWdTcmMtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jtcy4KICAgICAgICAg
ICAgICAgICBGbG9hdFBvaW50IGFic1BvcyA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUoKTsK
LSAgICAgICAgICAgICAgICBJbnRTaXplIGRlbHRhID0gbV9tb3VzZURvd25Qb3MgLSByb3VuZGVk
SW50UG9pbnQoYWJzUG9zKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRTaXplIGRlbHRhID0gbV9t
b3VzZURvd25Qb3MgLSByb3VuZGVkTGF5b3V0UG9pbnQoYWJzUG9zKTsKICAgICAgICAgICAgICAg
ICBkcmFnU3RhdGUoKS5tX2RyYWdDbGlwYm9hcmQtPnNldERyYWdJbWFnZUVsZW1lbnQoZHJhZ1N0
YXRlKCkubV9kcmFnU3JjLmdldCgpLCB0b1BvaW50KGRlbHRhKSk7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIC8vIFRoZSByZW5kZXJlciBoYXMgZGlzYXBwZWFyZWQsIHRo
aXMgY2FuIGhhcHBlbiBpZiB0aGUgb25TdGFydERyYWcgaGFuZGxlciBoYXMgaGlkZGVuCkBAIC0z
MTc5LDcgKzMxNzksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25z
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBvaW50cy5zaXplKCk7ICsraSkgewogICAg
ICAgICBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50ID0gcG9pbnRzW2ldOwogICAgICAg
ICBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHBvaW50U3RhdGUgPSBwb2ludC5zdGF0ZSgpOwot
ICAgICAgICBJbnRQb2ludCBwYWdlUG9pbnQgPSBkb2N1bWVudFBvaW50Rm9yV2luZG93UG9pbnQo
bV9mcmFtZSwgcG9pbnQucG9zKCkpOworICAgICAgICBMYXlvdXRQb2ludCBwYWdlUG9pbnQgPSBk
b2N1bWVudFBvaW50Rm9yV2luZG93UG9pbnQobV9mcmFtZSwgcG9pbnQucG9zKCkpOwogCiAgICAg
ICAgIEhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RS
ZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CiAgICAgICAgIC8vIFRo
ZSBIaXRUZXN0UmVxdWVzdCB0eXBlcyB1c2VkIGZvciBtb3VzZSBldmVudHMgbWFwIHF1aXRlIGFk
ZXF1YXRlbHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gOTMw
MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTQsMTAgKzExNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaEZha2VNb3Vz
ZU1vdmVFdmVudFNvb24oKTsKICAgICB2b2lkIGRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29v
bkluUXVhZChjb25zdCBGbG9hdFF1YWQmKTsKIAotICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJl
c3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9v
bCBpZ25vcmVDbGlwcGluZyA9IGZhbHNlLAorICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJlc3Vs
dEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9v
bCBpZ25vcmVDbGlwcGluZyA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSGl0VGVzdFNjcm9sbGJhcnMgc2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xs
YmFycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhpdFRlc3RSZXF1
ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBJbnRTaXplJiBwYWRkaW5nID0gSW50U2l6ZSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91dFNpemUmIHBhZGRpbmcg
PSBMYXlvdXRTaXplKCkpOwogCiAgICAgYm9vbCBtb3VzZVByZXNzZWQoKSBjb25zdCB7IHJldHVy
biBtX21vdXNlUHJlc3NlZDsgfQogICAgIHZvaWQgc2V0TW91c2VQcmVzc2VkKGJvb2wgcHJlc3Nl
ZCkgeyBtX21vdXNlUHJlc3NlZCA9IHByZXNzZWQ7IH0KQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHJlc2l6ZUxheWVyRGVzdHJveWVkKCk7CiAKLSAgICBJbnRQb2ludCBj
dXJyZW50TW91c2VQb3NpdGlvbigpIGNvbnN0OworICAgIExheW91dFBvaW50IGN1cnJlbnRNb3Vz
ZVBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgRnJhbWUqIHN1YmZyYW1lRm9yVGFyZ2V0
Tm9kZShOb2RlKik7CiAgICAgc3RhdGljIEZyYW1lKiBzdWJmcmFtZUZvckhpdFRlc3RSZXN1bHQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwpAQCAtMzUzLDcgKzM1Myw3IEBA
IHByaXZhdGU6CiAgICAgU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIG1fc2VsZWN0aW9uSW5pdGlh
dGlvblN0YXRlOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBJbnRQb2ludCBtX2Ry
YWdTdGFydFBvczsKKyAgICBMYXlvdXRQb2ludCBtX2RyYWdTdGFydFBvczsKICNlbmRpZgogCiAg
ICAgSW50UG9pbnQgbV9wYW5TY3JvbGxTdGFydFBvczsKQEAgLTM5OCwxMCArMzk4LDEwIEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgUmVmUHRyPEhUTUxGcmFtZVNldEVsZW1lbnQ+IG1fZnJhbWVTZXRC
ZWluZ1Jlc2l6ZWQ7CiAKLSAgICBJbnRTaXplIG1fb2Zmc2V0RnJvbVJlc2l6ZUNvcm5lcjsgICAv
LyBpbiB0aGUgY29vcmRzIG9mIG1fcmVzaXplTGF5ZXIKKyAgICBMYXlvdXRTaXplIG1fb2Zmc2V0
RnJvbVJlc2l6ZUNvcm5lcjsgLy8gSW4gdGhlIGNvb3JkcyBvZiBtX3Jlc2l6ZUxheWVyLgogICAg
IAotICAgIEludFBvaW50IG1fY3VycmVudE1vdXNlUG9zaXRpb247Ci0gICAgSW50UG9pbnQgbV9t
b3VzZURvd25Qb3M7IC8vIGluIG91ciB2aWV3J3MgY29vcmRzCisgICAgTGF5b3V0UG9pbnQgbV9j
dXJyZW50TW91c2VQb3NpdGlvbjsKKyAgICBMYXlvdXRQb2ludCBtX21vdXNlRG93blBvczsgLy8g
SW4gb3VyIHZpZXcncyBjb29yZHMuCiAgICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wOwog
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgJKHJldmlzaW9uIDkzMDA0KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUGxhdGZvcm1Nb3VzZUV2ZW50X2gKICNkZWZp
bmUgUGxhdGZvcm1Nb3VzZUV2ZW50X2gKIAotI2luY2x1ZGUgIkludFBvaW50LmgiCisjaW5jbHVk
ZSAiTGF5b3V0VHlwZXMuaCIKIAogI2lmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9H
ZGtFdmVudEJ1dHRvbiBHZGtFdmVudEJ1dHRvbjsKQEAgLTkzLDcgKzkzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgTW91c2VFdmVudFR5cGUgZXZlbnRUeXBlLAorICAg
ICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBMYXlvdXRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgTW91c2VF
dmVudFR5cGUgZXZlbnRUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnQsIGJvb2wgY3RybCwgYm9vbCBhbHQsIGJvb2wgbWV0YSwgZG91Ymxl
IHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAgICAg
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTExNCwxMSArMTE0LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
Y29uc3QgSW50UG9pbnQmIHBvcygpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KLSAgICAg
ICAgaW50IHgoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLngoKTsgfQotICAgICAgICBpbnQg
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24ueSgpOyB9Ci0gICAgICAgIGludCBnbG9iYWxY
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbi54KCk7IH0KLSAgICAgICAgaW50IGds
b2JhbFkoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFBvc2l0aW9uLnkoKTsgfQorICAgICAgICBj
b25zdCBMYXlvdXRQb2ludCYgcG9zKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQorICAg
ICAgICBMYXlvdXRVbml0IHgoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLngoKTsgfQorICAg
ICAgICBMYXlvdXRVbml0IHkoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLnkoKTsgfQorICAg
ICAgICBMYXlvdXRVbml0IGdsb2JhbFgoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFBvc2l0aW9u
LngoKTsgfQorICAgICAgICBMYXlvdXRVbml0IGdsb2JhbFkoKSBjb25zdCB7IHJldHVybiBtX2ds
b2JhbFBvc2l0aW9uLnkoKTsgfQogICAgICAgICBNb3VzZUJ1dHRvbiBidXR0b24oKSBjb25zdCB7
IHJldHVybiBtX2J1dHRvbjsgfQogICAgICAgICBNb3VzZUV2ZW50VHlwZSBldmVudFR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2V2ZW50VHlwZTsgfQogICAgICAgICBpbnQgY2xpY2tDb3VudCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpY2tDb3VudDsgfQpAQCAtMTc4LDggKzE3OCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBJbnRQb2ludCBt
X3Bvc2l0aW9uOwotICAgICAgICBJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9uOworICAgICAgICBM
YXlvdXRQb2ludCBtX3Bvc2l0aW9uOworICAgICAgICBMYXlvdXRQb2ludCBtX2dsb2JhbFBvc2l0
aW9uOwogICAgICAgICBNb3VzZUJ1dHRvbiBtX2J1dHRvbjsKICAgICAgICAgTW91c2VFdmVudFR5
cGUgbV9ldmVudFR5cGU7CiAgICAgICAgIGludCBtX2NsaWNrQ291bnQ7CkBAIC0xOTgsOSArMTk4
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICNpZiBQTEFURk9STShNQUMpICYm
IGRlZmluZWQoX19PQkpDX18pCi0gICAgSW50UG9pbnQgZ2xvYmFsUG9pbnQoY29uc3QgTlNQb2lu
dCYgd2luZG93UG9pbnQsIE5TV2luZG93ICopOwotICAgIEludFBvaW50IHBvaW50Rm9yRXZlbnQo
TlNFdmVudCAqLCBOU1ZpZXcgKndpbmRvd1ZpZXcpOwotICAgIEludFBvaW50IGdsb2JhbFBvaW50
Rm9yRXZlbnQoTlNFdmVudCAqKTsKKyAgICBMYXlvdXRQb2ludCBnbG9iYWxQb2ludChjb25zdCBO
U1BvaW50JiB3aW5kb3dQb2ludCwgTlNXaW5kb3cgKik7CisgICAgTGF5b3V0UG9pbnQgcG9pbnRG
b3JFdmVudChOU0V2ZW50ICosIE5TVmlldyAqd2luZG93Vmlldyk7CisgICAgTGF5b3V0UG9pbnQg
Z2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICopOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybU1vdXNl
RXZlbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtTW91c2VFdmVudE1hYy5tbQkocmV2aXNpb24gOTMwMDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1Nb3VzZUV2ZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02OCwxMiArNjgsMTIgQEAgc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAq
ZQogICAgIH0KIH0KIAotSW50UG9pbnQgZ2xvYmFsUG9pbnQoY29uc3QgTlNQb2ludCYgd2luZG93
UG9pbnQsIE5TV2luZG93ICp3aW5kb3cpCitMYXlvdXRQb2ludCBnbG9iYWxQb2ludChjb25zdCBO
U1BvaW50JiB3aW5kb3dQb2ludCwgTlNXaW5kb3cgKndpbmRvdykKIHsKLSAgICByZXR1cm4gSW50
UG9pbnQoZmxpcFNjcmVlblBvaW50KFt3aW5kb3cgY29udmVydEJhc2VUb1NjcmVlbjp3aW5kb3dQ
b2ludF0sIHNjcmVlbkZvcldpbmRvdyh3aW5kb3cpKSk7CisgICAgcmV0dXJuIExheW91dFBvaW50
KGZsaXBTY3JlZW5Qb2ludChbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46d2luZG93UG9pbnRd
LCBzY3JlZW5Gb3JXaW5kb3cod2luZG93KSkpOwogfQogCi1JbnRQb2ludCBwb2ludEZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCitMYXlvdXRQb2ludCBwb2ludEZv
ckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNo
IChbZXZlbnQgdHlwZV0pIHsKICAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246CkBAIC05Miwx
NCArOTIsMTQgQEAgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTgogICAg
ICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKICAg
ICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQogICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dp
bmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAg
ICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExheW91dFBv
aW50KGxvY2F0aW9uKTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
cmV0dXJuIEludFBvaW50KCk7CisgICAgICAgICAgICByZXR1cm4gTGF5b3V0UG9pbnQoKTsKICAg
ICB9CiB9CiAKLUludFBvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCitM
YXlvdXRQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAgICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgpAQCAt
MTE1LDcgKzExNSw3IEBAIEludFBvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXYK
ICAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgogICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBv
aW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwogICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisgICAgICAgICAgICByZXR1
cm4gTGF5b3V0UG9pbnQoKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>