<?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>199668</bug_id>
          
          <creation_ts>2019-07-10 05:59:12 -0700</creation_ts>
          <short_desc>Remove TouchActionData</short_desc>
          <delta_ts>2019-07-10 10:04:39 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551648</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-07-10 05:59:12 -0700</bug_when>
    <thetext>TouchActionData structure has been superseded by touch-action regions in EventRegion and is unused. Remove it and the supporting code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551650</commentid>
    <comment_count>1</comment_count>
      <attachid>373832</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-07-10 06:17:50 -0700</bug_when>
    <thetext>Created attachment 373832
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551651</commentid>
    <comment_count>2</comment_count>
      <attachid>373833</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-07-10 06:22:25 -0700</bug_when>
    <thetext>Created attachment 373833
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551705</commentid>
    <comment_count>3</comment_count>
      <attachid>373833</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 10:03:10 -0700</bug_when>
    <thetext>Comment on attachment 373833
patch

Clearing flags on attachment: 373833

Committed r247306: &lt;https://trac.webkit.org/changeset/247306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551706</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 10:03:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551707</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-10 10:04:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/52897740&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373832</attachid>
            <date>2019-07-10 06:17:50 -0700</date>
            <delta_ts>2019-07-10 06:22:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>touchactiondata-remove-2.patch</filename>
            <type>text/plain</type>
            <size>18464</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTA3LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVG91Y2hBY3Rpb25E
YXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk2
NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUb3Vj
aEFjdGlvbkRhdGEgc3RydWN0dXJlIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkgdG91Y2gtYWN0aW9u
IHJlZ2lvbnMgaW4gRXZlbnRSZWdpb24gYW5kIGlzIHVudXNlZC4KKyAgICAgICAgUmVtb3ZlIGl0
IGFuZCB0aGUgc3VwcG9ydGluZyBjb2RlLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdl
cy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVw
ZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1heUhhdmVFbGVtZW50c1dpdGhOb25B
dXRvVG91Y2hBY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldE1h
eUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24pOgorCisgICAgICAgIFJlcGxhY2Ug
dG91Y2hBY3Rpb25FbGVtZW50cyBzZXQgd2l0aCBhIGJpdCB0aGF0IGNvdmVycyB0aGUgb25seSBy
ZW1haW5pbmcgY2xpZW50cyAob3B0aW1pemF0aW9ucykuCisgICAgICAgIE5vdCB0aGF0IHRvdWNo
QWN0aW9uRWxlbWVudHMgd2FzIG5vdCBkZWxldGVkIHdoZW4gZW10aWVkLCBpdCBoYWQgdGhlIHNh
bWUgIm1heSBoYXZlIiBiZWhhdmlvci4KKworICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRv
dWNoQWN0aW9uRWxlbWVudHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUg
Y29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdp
b25zLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29s
dmVFbGVtZW50KToKKwogMjAxOS0wNy0wOSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlcGxhY2Ugb2xkLCBicm9rZW4gV2ViR1BVIElETCBzcGVjIGxpbmsg
d2l0aCB0aGUgbmV3IG9uZSBpbiBJREwgY29tbWVudHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDI0NzI5MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NTgsMTEgKzQ0NTgsNiBAQCB2b2lkIERvY3VtZW50Ojpu
b2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBuCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAg
ICAgIG1fbWFya2Vycy0+cmVtb3ZlTWFya2Vycyhub2RlKTsKLQotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICBpZiAobV90b3VjaEFjdGlvbkVs
ZW1lbnRzICYmIGlzPEVsZW1lbnQ+KG5vZGUpKQotICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVu
dHMtPnJlbW92ZSgmZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOwotI2VuZGlmCiB9CiAKIHN0YXRp
YyBOb2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZUFmdGVyUmVtb3ZhbChO
b2RlJiBub2RlKQpAQCAtODE5MCwzMiArODE4NSw2IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50
V29ya2xldEdsb2JhbFNjb3AKIH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQotdm9pZCBEb2N1bWVudDo6dXBkYXRlVG91Y2hBY3Rp
b25FbGVtZW50cyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCi17
Ci0gICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICBpZiAoc3R5bGUudG91Y2hBY3Rpb25z
KCkgIT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKLSAgICAgICAgaWYgKCFtX3RvdWNoQWN0aW9uRWxl
bWVudHMpCi0gICAgICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMgPSBzdGQ6Om1ha2VfdW5p
cXVlPEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+Pj4oKTsKLSAgICAgICAgY2hhbmdlZCB8PSBtX3Rv
dWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmZWxlbWVudCkuaXNOZXdFbnRyeTsKLSAgICB9IGVsc2Ug
aWYgKG1fdG91Y2hBY3Rpb25FbGVtZW50cykKLSAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0
aW9uRWxlbWVudHMtPnJlbW92ZSgmZWxlbWVudCk7Ci0KLSAgICBpZiAoIWNoYW5nZWQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFw
YWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2
aWV3KCkpIHsKLSAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpm
cmFtZVZpZXcpOwotICAgIH0KLX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IENvbnRlbnRDaGFuZ2VPYnNlcnZlciYgRG9jdW1lbnQ6OmNvbnRlbnRDaGFuZ2VPYnNlcnZlcigp
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMzMsOCArMTIzMyw4
IEBAIHB1YmxpYzoKICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVu
dHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJik7Ci0gICAgY29uc3QgSGFzaFNldDxSZWZQ
dHI8RWxlbWVudD4+KiB0b3VjaEFjdGlvbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3Vj
aEFjdGlvbkVsZW1lbnRzLmdldCgpOyB9CisgICAgYm9vbCBtYXlIYXZlRWxlbWVudHNXaXRoTm9u
QXV0b1RvdWNoQWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXlIYXZlRWxlbWVudHNXaXRoTm9u
QXV0b1RvdWNoQWN0aW9uOyB9CisgICAgdm9pZCBzZXRNYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0
b1RvdWNoQWN0aW9uKCkgeyBtX21heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24g
PSB0cnVlOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9k
ZSYpOwpAQCAtMTgxOSw3ICsxODE5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hFdmVudFRhcmdldHM7CiAjZW5kaWYKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0gICAgc3RkOjp1bmlxdWVf
cHRyPEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+Pj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOworICAg
IGJvb2wgbV9tYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uIHsgZmFsc2UgfTsK
ICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4gbV93aGVlbEV2ZW50
VGFyZ2V0czsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMjQ3MjkzKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzI2
LDE0ICs0MzI2LDYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1hcChSZWY8Uwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi1PcHRpb25TZXQ8VG91Y2hBY3Rp
b24+IEVsZW1lbnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0
byogc3R5bGUgPSByZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCkpCi0gICAgICAgIHJldHVy
biBzdHlsZS0+ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCk7Ci0KLSAgICByZXR1cm4gVG91Y2hBY3Rp
b246OkF1dG87Ci19Ci0KICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQogU2Ny
b2xsaW5nTm9kZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3Zl
cmZsb3dTY3JvbGxpbmcoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lv
biAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MywxMCArNzMsNiBAQCBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CiAgICAg
U3BlbGxjaGVja0F0dHJpYnV0ZURlZmF1bHQKIH07CiAKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCi1lbnVtIGNsYXNzIFRvdWNoQWN0aW9uIDogdWludDhfdDsKLSNlbmRpZgotCiBjbGFzcyBF
bGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoRWxlbWVudCk7CiBwdWJsaWM6CkBAIC02MDYsNyArNjAyLDYgQEAgcHVibGljOgogICAgIEVs
ZW1lbnRJZGVudGlmaWVyIGNyZWF0ZUVsZW1lbnRJZGVudGlmaWVyKCk7CiAKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCi0gICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNo
QWN0aW9ucygpIGNvbnN0OwogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCiAg
ICAgU2Nyb2xsaW5nTm9kZUlEIG5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcoKSBjb25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAkocmV2aXNpb24g
MjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsMjUgKzEwOCw3IEBAIEV2ZW50VHJhY2tp
bmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG8KICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1l
LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV2ZW50VHJh
Y2tpbmdSZWdpb25zKCk7Ci0gICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3VtZW50
LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOwotCi0jaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQot
ICAgIGlmICghZG9jdW1lbnQtPnF1aXJrcygpLnNob3VsZERpc2FibGVQb2ludGVyRXZlbnRzUXVp
cmsoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJF
dmVudHNFbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHRvdWNoQWN0aW9uRWxlbWVudHMg
PSBmcmFtZS5kb2N1bWVudCgpLT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpIHsKLSAgICAgICAgICAg
IGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA9IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9u
RGF0YTsKLSAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZWxlbWVudCA6ICp0b3VjaEFjdGlv
bkVsZW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGVsZW1lbnQpOwotICAgICAgICAg
ICAgICAgIHRvdWNoQWN0aW9uRGF0YS5hcHBlbmQoewotICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50LT5jb21wdXRlZFRvdWNoQWN0aW9ucygpLAotICAgICAgICAgICAgICAgICAgICBlbGVtZW50
LT5uZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCksCi0g
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuYWJzb2x1dGVFdmVudFJlZ2lv
bkZvck5vZGUoKmVsZW1lbnQpLmZpcnN0Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiBldmVudFRyYWNraW5n
UmVnaW9uczsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CiAj
ZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1l
VmlldykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkxLDE5ICs0OTEsNiBA
QCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZUFzVGV4CiAgICAgcmV0dXJuIHRz
LnJlbGVhc2UoKTsKIH0KIAotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLU9wdGlvbmFsPFRv
dWNoQWN0aW9uRGF0YT4gU2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQ
b2ludCBwKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSB0aGUg
Y2FzZSB3aGVyZSB0aGVyZSBhcmUgbXVsdGlwbGUgcmVnaW9ucyBtYXRjaGluZyB0aGlzIHBvaW50
LgotICAgIGZvciAoYXV0byYgdG91Y2hBY3Rpb25EYXRhIDogbV90cmVlU3RhdGUuZXZlbnRUcmFj
a2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhKSB7Ci0gICAgICAgIGlmICh0b3VjaEFjdGlvbkRh
dGEucmVnaW9uLmNvbnRhaW5zKHApKQotICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0
YTsKLSAgICB9Ci0KLSAgICByZXR1cm4geyB9OwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCShyZXZpc2lvbiAy
NDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGlu
YXRvci5oIgotI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRl
c3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgpAQCAtMTAzLDkgKzEwMiw2IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9F
WFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0
cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCk7Ci0jaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQot
ICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25E
YXRhQXRQb2ludChJbnRQb2ludCkgY29uc3Q7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5n
UmVnaW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRU
cmFja2luZ1JlZ2lvbnMuY3BwCShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDE5
ICs3Myw3IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEUKIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMmIGIpCiB7CiAgICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24gPT0gYi5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbgotI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKLSAgICAgICAgJiYgYS50b3VjaEFjdGlvbkRhdGEgPT0gYi50b3VjaEFjdGlvbkRhdGEK
LSNlbmRpZgogICAgICAgICAmJiBhLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9ucyA9PSBiLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKIH0KIAot
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLWJvb2wgb3BlcmF0b3I9PShjb25zdCBUb3VjaEFj
dGlvbkRhdGEmIGEsIGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYikKLXsKLSAgICByZXR1cm4gYS50
b3VjaEFjdGlvbnMgPT0gYi50b3VjaEFjdGlvbnMKLSAgICAgICAgJiYgYS5zY3JvbGxpbmdOb2Rl
SUQgPT0gYi5zY3JvbGxpbmdOb2RlSUQKLSAgICAgICAgJiYgYS5yZWdpb24gPT0gYi5yZWdpb247
Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCShyZXZpc2lvbiAyNDcyOTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKLSNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgiCi0jaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIgotI2luY2x1ZGUgIlRvdWNoQWN0aW9u
LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFRyYWNraW5n
VHlwZSA6IHVpbnQ4X3QgewpAQCAtNDQsMTggKzM4LDYgQEAgZW51bSBjbGFzcyBUcmFja2luZ1R5
cGUgOiB1aW50OF90IHsKICAgICBTeW5jaHJvbm91cyA9IDIKIH07CiAKLSNpZiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCi10eXBlZGVmIHVpbnQ2NF90IFNjcm9sbGluZ05vZGVJRDsKLXN0cnVjdCBU
b3VjaEFjdGlvbkRhdGEgewotICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25z
IHsgVG91Y2hBY3Rpb246OkF1dG8gfTsKLSAgICBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9k
ZUlEIHsgMCB9OwotICAgIFJlZ2lvbiByZWdpb247Ci19OwotCi1ib29sIG9wZXJhdG9yPT0oY29u
c3QgVG91Y2hBY3Rpb25EYXRhJiwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJik7Ci1pbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYSwgY29uc3QgVG91Y2hBY3Rpb25E
YXRhJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KLSNlbmRpZgotCiBzdHJ1Y3QgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMgewogICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIGNhbiBiZSBkaXNw
YXRjaGVkIHdpdGhvdXQgYmxvY2tpbmcgc2Nyb2xsaW5nLgogICAgIFJlZ2lvbiBhc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbjsKQEAgLTY0LDEwICs0Niw2IEBAIHN0cnVjdCBFdmVudFRyYWNraW5n
UmVnaW9ucyB7CiAgICAgLy8gVGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRoIGFuIGFjdGl2
ZSBoYW5kbGVyLgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKIAotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAg
ICBWZWN0b3I8VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGE7Ci0jZW5kaWYKLQogICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiAgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6ZSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDI0
NzI5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KFBhaW50SW5mbyYKICAgICAgICAgLy8gTm8gbmVlZCB0byBjaGVjayBkZXNjZW5kYW50cyBp
ZiB3ZSBkb24ndCBoYXZlIG92ZXJmbG93IGFuZCB0aGUgYXJlYSBpcyBhbHJlYWR5IGNvdmVyZWQu
CiAgICAgICAgIGJvb2wgbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzID0gaGFzVmlzdWFsT3ZlcmZs
b3coKSB8fCAhcGFpbnRJbmZvLmV2ZW50UmVnaW9uQ29udGV4dC0+Y29udGFpbnMoZW5jbG9zaW5n
SW50UmVjdChib3JkZXJSZWN0KSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQotICAgICAgICBuZWVkc1RyYXZlcnNlRGVzY2VuZGFudHMgPSBuZWVk
c1RyYXZlcnNlRGVzY2VuZGFudHMgfHwgZG9jdW1lbnQoKS50b3VjaEFjdGlvbkVsZW1lbnRzKCk7
CisgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyA9IG5lZWRzVHJhdmVyc2VEZXNjZW5k
YW50cyB8fCBkb2N1bWVudCgpLm1heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24o
KTsKICNlbmRpZgogICAgICAgICBpZiAoIW5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cykKICAgICAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgyMyw3ICs2ODIzLDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uKAogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAgICAgICAvLyBVSSBzaWRlIHRvdWNoLWFj
dGlvbiByZXNvbHV0aW9uLgotICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLnRvdWNo
QWN0aW9uRWxlbWVudHMoKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlI
YXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICNlbmRpZgogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gMjQ3Mjkz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1MzQsNyArMTUzNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVFdmVudFJlZ2kKIAogICAgIGJvb2wgaGFzVG91Y2hBY3Rpb25FbGVtZW50cyA9IGZh
bHNlOwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICBoYXNUb3VjaEFjdGlvbkVsZW1l
bnRzID0gISFyZW5kZXJlcigpLmRvY3VtZW50KCkudG91Y2hBY3Rpb25FbGVtZW50cygpOworICAg
IGhhc1RvdWNoQWN0aW9uRWxlbWVudHMgPSByZW5kZXJlcigpLmRvY3VtZW50KCkubWF5SGF2ZUVs
ZW1lbnRzV2l0aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlmCiAgICAgaWYgKG1fb3duaW5n
TGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSAmJiAhaGFzVG91Y2hBY3Rpb25FbGVtZW50cykKICAg
ICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29s
dmVyLmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVU
cmVlUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksOCArMjM5LDkgQEAgRWxlbWVu
dFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbQogICAgIGF1dG8gYWZ0ZXJVcGRhdGUg
PSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwog
CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IGlmICghbV9kb2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlUG9pbnRlckV2ZW50c1F1aXJr
KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wb2ludGVyRXZl
bnRzRW5hYmxlZCgpKQotICAgICAgICBtX2RvY3VtZW50LnVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVu
dHMoZWxlbWVudCwgKnVwZGF0ZS5zdHlsZS5nZXQoKSk7CisgICAgLy8gRklYTUU6IFRyYWNrIHRo
aXMgZXhhY3RseS4KKyAgICBpZiAodXBkYXRlLnN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3Vj
aEFjdGlvbjo6QXV0byAmJiAhbV9kb2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlUG9pbnRl
ckV2ZW50c1F1aXJrKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5wb2ludGVyRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICBtX2RvY3VtZW50LnNldE1heUhhdmVF
bGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24oKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHsg
V1RGTW92ZSh1cGRhdGUpLCBkZXNjZW5kYW50c1RvUmVzb2x2ZSwgV1RGTW92ZShiZWZvcmVVcGRh
dGUpLCBXVEZNb3ZlKGFmdGVyVXBkYXRlKSB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5
NykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTktMDctMTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbW92ZSBUb3VjaEFjdGlvbkRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTY2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9u
RGF0YT46OmRlY29kZSk6IERlbGV0ZWQuCisKIDIwMTktMDctMDkgIE1pY2hhZWwgQ2F0YW56YXJv
ICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0dUS10gR1VuaXF1ZU91
dFB0cjo6cmVsZWFzZSBzaG91bGQgcmV0dXJuIGEgcmF3IHBvaW50ZXIKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMjQ3
MjkzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMwLDQwICszMzAsMTAgQEAgT3B0aW9uYWw8RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZD4gQXJndW1lbgogICAgIHJldHVybiB7eyBXVEZNb3ZlKGlkZW50aWZpZXIpLCBX
VEZNb3ZlKHVwZGF0ZVJlc3BvbnNlQ291bnRlciksIFdURk1vdmUocmVxdWVzdEhlYWRlcnNHdWFy
ZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucy52YWx1ZSgpKSwgV1RGTW92ZShy
ZWZlcnJlciksIFdURk1vdmUocmVzcG9uc2VIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlc3BvbnNl
KSwgV1RGTW92ZShyZXNwb25zZUJvZHkpLCByZXNwb25zZUJvZHlTaXplIH19OwogfQogCi0jaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQotdm9pZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0
YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIHRvdWNo
QWN0aW9uRGF0YSkKLXsKLSAgICBlbmNvZGVyIDw8IHRvdWNoQWN0aW9uRGF0YS50b3VjaEFjdGlv
bnMgPDwgdG91Y2hBY3Rpb25EYXRhLnNjcm9sbGluZ05vZGVJRCA8PCB0b3VjaEFjdGlvbkRhdGEu
cmVnaW9uOwotfQotCi1PcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29kZXI8VG91
Y2hBY3Rpb25EYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8
T3B0aW9uU2V0PFRvdWNoQWN0aW9uPj4gdG91Y2hBY3Rpb25zOwotICAgIGRlY29kZXIgPj4gdG91
Y2hBY3Rpb25zOwotICAgIGlmICghdG91Y2hBY3Rpb25zKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotCi0gICAgT3B0aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdOb2RlSUQ7
Ci0gICAgZGVjb2RlciA+PiBzY3JvbGxpbmdOb2RlSUQ7Ci0gICAgaWYgKCFzY3JvbGxpbmdOb2Rl
SUQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxSZWdpb24+
IHJlZ2lvbjsKLSAgICBkZWNvZGVyID4+IHJlZ2lvbjsKLSAgICBpZiAoIXJlZ2lvbikKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0b3VjaEFj
dGlvbnMpLCBXVEZNb3ZlKCpzY3JvbGxpbmdOb2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24pIH19Owot
fQotI2VuZGlmCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRU
cmFja2luZ1JlZ2lvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5h
c3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKLSNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCi0gICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy50
b3VjaEFjdGlvbkRhdGE7Ci0jZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJh
Y2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdp
b25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKQEAgLTM3NSwxNiArMzQ1LDggQEAgYm9vbCBBcmd1
bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdp
b24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0gICAgVmVj
dG9yPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodG91Y2hBY3Rpb25EYXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAg
ICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBXVEZN
b3ZlKCphc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRUcmFja2luZ1JlZ2lv
bnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOwotI2lmIEVOQUJMRShQT0lOVEVS
X0VWRU5UUykKLSAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGEgPSBXVEZN
b3ZlKHRvdWNoQWN0aW9uRGF0YSk7Ci0jZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373833</attachid>
            <date>2019-07-10 06:22:25 -0700</date>
            <delta_ts>2019-07-10 10:03:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>touchactiondata-remove-3.patch</filename>
            <type>text/plain</type>
            <size>18503</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA3LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVG91Y2hBY3Rpb25E
YXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk2
NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUb3Vj
aEFjdGlvbkRhdGEgc3RydWN0dXJlIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkgdG91Y2gtYWN0aW9u
IHJlZ2lvbnMgaW4gRXZlbnRSZWdpb24gYW5kIGlzIHVudXNlZC4KKyAgICAgICAgUmVtb3ZlIGl0
IGFuZCB0aGUgc3VwcG9ydGluZyBjb2RlLgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdl
cy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVw
ZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1heUhhdmVFbGVtZW50c1dpdGhOb25B
dXRvVG91Y2hBY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldE1h
eUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24pOgorCisgICAgICAgIFJlcGxhY2Ug
dG91Y2hBY3Rpb25FbGVtZW50cyBzZXQgd2l0aCBhIGJpdCB0aGF0IGNvdmVycyB0aGUgb25seSBy
ZW1haW5pbmcgY2xpZW50cyAob3B0aW1pemF0aW9ucykuCisgICAgICAgIE5vdGUgdGhhdCB0b3Vj
aEFjdGlvbkVsZW1lbnRzIHdhcyBub3QgZGVsZXRlZCB3aGVuIGVtcHRpZWQsIGl0IGhhZCB0aGUg
c2FtZSAibWF5IGhhdmUiIGJlaGF2aW9yICh3aGljaAorICAgICAgICBpcyBjdXJyZW50bHkgbmVl
ZGVkKS4KKworICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRvdWNoQWN0aW9uRWxlbWVudHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0p
OgorICAgICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmg6CisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3Vs
YXRlQ2xpcFJlY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZl
bnRSZWdpb24pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKwogMjAx
OS0wNy0wOSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
cGxhY2Ugb2xkLCBicm9rZW4gV2ViR1BVIElETCBzcGVjIGxpbmsgd2l0aCB0aGUgbmV3IG9uZSBp
biBJREwgY29tbWVudHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI0
NzI5MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ0NTgsMTEgKzQ0NTgsNiBAQCB2b2lkIERvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZChO
b2RlJiBuCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAgICAgIG1fbWFya2Vycy0+cmVt
b3ZlTWFya2Vycyhub2RlKTsKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKLSAgICBpZiAobV90b3VjaEFjdGlvbkVsZW1lbnRzICYmIGlzPEVsZW1l
bnQ+KG5vZGUpKQotICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPnJlbW92ZSgmZG93bmNh
c3Q8RWxlbWVudD4obm9kZSkpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyBOb2RlKiBmYWxsYmFja0Zv
Y3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZUFmdGVyUmVtb3ZhbChOb2RlJiBub2RlKQpAQCAtODE5
MCwzMiArODE4NSw2IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3AK
IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQotdm9pZCBEb2N1bWVudDo6dXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCi17Ci0gICAgYm9vbCBjaGFuZ2Vk
ID0gZmFsc2U7Ci0KLSAgICBpZiAoc3R5bGUudG91Y2hBY3Rpb25zKCkgIT0gVG91Y2hBY3Rpb246
OkF1dG8pIHsKLSAgICAgICAgaWYgKCFtX3RvdWNoQWN0aW9uRWxlbWVudHMpCi0gICAgICAgICAg
ICBtX3RvdWNoQWN0aW9uRWxlbWVudHMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hTZXQ8UmVmUHRy
PEVsZW1lbnQ+Pj4oKTsKLSAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMt
PmFkZCgmZWxlbWVudCkuaXNOZXdFbnRyeTsKLSAgICB9IGVsc2UgaWYgKG1fdG91Y2hBY3Rpb25F
bGVtZW50cykKLSAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPnJlbW92
ZSgmZWxlbWVudCk7Ci0KLSAgICBpZiAoIWNoYW5nZWQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKLSAgICAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+
ZnJhbWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOwotICAgIH0K
LX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIENvbnRlbnRDaGFuZ2VPYnNl
cnZlciYgRG9jdW1lbnQ6OmNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpCiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMzMsOCArMTIzMyw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKLSAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoRWxlbWVudCYsIGNvbnN0
IFJlbmRlclN0eWxlJik7Ci0gICAgY29uc3QgSGFzaFNldDxSZWZQdHI8RWxlbWVudD4+KiB0b3Vj
aEFjdGlvbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbkVsZW1lbnRzLmdl
dCgpOyB9CisgICAgYm9vbCBtYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uOyB9
CisgICAgdm9pZCBzZXRNYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uKCkgeyBt
X21heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24gPSB0cnVlOyB9CiAjZW5kaWYK
IAogICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwpAQCAtMTgxOSw3ICsx
ODE5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1f
dG91Y2hFdmVudFRhcmdldHM7CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0gICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8UmVmUHRy
PEVsZW1lbnQ+Pj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOworICAgIGJvb2wgbV9tYXlIYXZlRWxl
bWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzI2LDE0ICs0MzI2LDYgQEAgdm9p
ZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1hcChSZWY8UwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCi1PcHRpb25TZXQ8VG91Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1
dGVkVG91Y2hBY3Rpb25zKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byogc3R5bGUgPSByZW5kZXJP
ckRpc3BsYXlDb250ZW50c1N0eWxlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZS0+ZWZmZWN0aXZl
VG91Y2hBY3Rpb25zKCk7Ci0KLSAgICByZXR1cm4gVG91Y2hBY3Rpb246OkF1dG87Ci19Ci0KICNp
ZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQogU2Nyb2xsaW5nTm9kZUlEIEVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBj
b25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMCArNzMsNiBA
QCBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CiAgICAgU3BlbGxjaGVja0F0dHJpYnV0
ZURlZmF1bHQKIH07CiAKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi1lbnVtIGNsYXNzIFRv
dWNoQWN0aW9uIDogdWludDhfdDsKLSNlbmRpZgotCiBjbGFzcyBFbGVtZW50IDogcHVibGljIENv
bnRhaW5lck5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVudCk7CiBwdWJs
aWM6CkBAIC02MDYsNyArNjAyLDYgQEAgcHVibGljOgogICAgIEVsZW1lbnRJZGVudGlmaWVyIGNy
ZWF0ZUVsZW1lbnRJZGVudGlmaWVyKCk7CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0g
ICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNoQWN0aW9ucygpIGNvbnN0Owog
I2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCiAgICAgU2Nyb2xsaW5nTm9kZUlE
IG5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25z
dDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsMjUgKzEwOCw3IEBAIEV2ZW50VHJhY2tpbmdSZWdpb25zIFNjcm9sbGlu
Z0Nvb3JkaW5hdG8KICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCk7CiAgICAg
aWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV2ZW50VHJhY2tpbmdSZWdpb25zKCk7Ci0g
ICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3VtZW50LT5ldmVudFRyYWNraW5nUmVn
aW9ucygpOwotCi0jaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQotICAgIGlmICghZG9jdW1lbnQt
PnF1aXJrcygpLnNob3VsZERpc2FibGVQb2ludGVyRXZlbnRzUXVpcmsoKSAmJiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJFdmVudHNFbmFibGVkKCkpIHsK
LSAgICAgICAgaWYgKGF1dG8qIHRvdWNoQWN0aW9uRWxlbWVudHMgPSBmcmFtZS5kb2N1bWVudCgp
LT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRvdWNoQWN0aW9u
RGF0YSA9IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uRGF0YTsKLSAgICAgICAgICAg
IGZvciAoY29uc3QgYXV0byYgZWxlbWVudCA6ICp0b3VjaEFjdGlvbkVsZW1lbnRzKSB7Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKGVsZW1lbnQpOwotICAgICAgICAgICAgICAgIHRvdWNoQWN0aW9u
RGF0YS5hcHBlbmQoewotICAgICAgICAgICAgICAgICAgICBlbGVtZW50LT5jb21wdXRlZFRvdWNo
QWN0aW9ucygpLAotICAgICAgICAgICAgICAgICAgICBlbGVtZW50LT5uZWFyZXN0U2Nyb2xsaW5n
Tm9kZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCksCi0gICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQtPmRvY3VtZW50KCkuYWJzb2x1dGVFdmVudFJlZ2lvbkZvck5vZGUoKmVsZW1lbnQp
LmZpcnN0Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiBldmVudFRyYWNraW5nUmVnaW9uczsKKyAgICByZXR1
cm4gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CiAjZWxzZQogICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1lVmlldykKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCShyZXZpc2lv
biAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkxLDE5ICs0OTEsNiBAQCBTdHJpbmcgU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nVHJlZUFzVGV4CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAot
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLU9wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gU2Ny
b2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQb2ludCBwKSBjb25zdAotewot
ICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGVyZSBh
cmUgbXVsdGlwbGUgcmVnaW9ucyBtYXRjaGluZyB0aGlzIHBvaW50LgotICAgIGZvciAoYXV0byYg
dG91Y2hBY3Rpb25EYXRhIDogbV90cmVlU3RhdGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hB
Y3Rpb25EYXRhKSB7Ci0gICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5z
KHApKQotICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0YTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4geyB9OwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRl
ICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgotI2luY2x1ZGUg
IlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtMTAzLDkgKzEw
Miw2IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBl
IGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJ
bnRQb2ludCk7Ci0jaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQotICAgIFdFQkNPUkVfRVhQT1JU
IE9wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQb2lu
dCkgY29uc3Q7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSA9IDA7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3Bw
CShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDE5ICs3Myw3IEBAIHZvaWQgRXZl
bnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEUKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGIpCiB7
CiAgICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPT0gYi5hc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbgotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICAgICAgJiYg
YS50b3VjaEFjdGlvbkRhdGEgPT0gYi50b3VjaEFjdGlvbkRhdGEKLSNlbmRpZgogICAgICAgICAm
JiBhLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKIH0KIAotI2lmIEVOQUJMRShQT0lOVEVS
X0VWRU5UUykKLWJvb2wgb3BlcmF0b3I9PShjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGEsIGNvbnN0
IFRvdWNoQWN0aW9uRGF0YSYgYikKLXsKLSAgICByZXR1cm4gYS50b3VjaEFjdGlvbnMgPT0gYi50
b3VjaEFjdGlvbnMKLSAgICAgICAgJiYgYS5zY3JvbGxpbmdOb2RlSUQgPT0gYi5zY3JvbGxpbmdO
b2RlSUQKLSAgICAgICAgJiYgYS5yZWdpb24gPT0gYi5yZWdpb247Ci19Ci0jZW5kaWYKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRU
cmFja2luZ1JlZ2lvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
dmVudFRyYWNraW5nUmVnaW9ucy5oCShyZXZpc2lvbiAyNDcyOTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwx
MiArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSNpbmNs
dWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUeXBlcy5oIgotI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFRyYWNraW5nVHlwZSA6IHVpbnQ4X3QgewpA
QCAtNDQsMTggKzM4LDYgQEAgZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90IHsKICAg
ICBTeW5jaHJvbm91cyA9IDIKIH07CiAKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi10eXBl
ZGVmIHVpbnQ2NF90IFNjcm9sbGluZ05vZGVJRDsKLXN0cnVjdCBUb3VjaEFjdGlvbkRhdGEgewot
ICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zIHsgVG91Y2hBY3Rpb246OkF1
dG8gfTsKLSAgICBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEIHsgMCB9OwotICAgIFJl
Z2lvbiByZWdpb247Ci19OwotCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRh
JiwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJik7Ci1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFRvdWNoQWN0aW9uRGF0YSYgYSwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBiKSB7IHJldHVybiAh
KGEgPT0gYik7IH0KLSNlbmRpZgotCiBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAg
IC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIGNhbiBiZSBkaXNwYXRjaGVkIHdpdGhvdXQgYmxv
Y2tpbmcgc2Nyb2xsaW5nLgogICAgIFJlZ2lvbiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsK
QEAgLTY0LDEwICs0Niw2IEBAIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9ucyB7CiAgICAgLy8g
VGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRoIGFuIGFjdGl2ZSBoYW5kbGVyLgogICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uczsKIAotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICBWZWN0b3I8VG91Y2hBY3Rp
b25EYXRhPiB0b3VjaEFjdGlvbkRhdGE7Ci0jZW5kaWYKLQogICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0OwogCiAgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDI0NzI5MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNTIs
NyArMTI1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYKICAg
ICAgICAgLy8gTm8gbmVlZCB0byBjaGVjayBkZXNjZW5kYW50cyBpZiB3ZSBkb24ndCBoYXZlIG92
ZXJmbG93IGFuZCB0aGUgYXJlYSBpcyBhbHJlYWR5IGNvdmVyZWQuCiAgICAgICAgIGJvb2wgbmVl
ZHNUcmF2ZXJzZURlc2NlbmRhbnRzID0gaGFzVmlzdWFsT3ZlcmZsb3coKSB8fCAhcGFpbnRJbmZv
LmV2ZW50UmVnaW9uQ29udGV4dC0+Y29udGFpbnMoZW5jbG9zaW5nSW50UmVjdChib3JkZXJSZWN0
KSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQot
ICAgICAgICBuZWVkc1RyYXZlcnNlRGVzY2VuZGFudHMgPSBuZWVkc1RyYXZlcnNlRGVzY2VuZGFu
dHMgfHwgZG9jdW1lbnQoKS50b3VjaEFjdGlvbkVsZW1lbnRzKCk7CisgICAgICAgIG5lZWRzVHJh
dmVyc2VEZXNjZW5kYW50cyA9IG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8fCBkb2N1bWVudCgp
Lm1heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rpb24oKTsKICNlbmRpZgogICAgICAg
ICBpZiAoIW5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cykKICAgICAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMjQ3
MjkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjgyMyw3ICs2ODIzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0
ZUV2ZW50UmVnaW9uKAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQogICAgICAgICAvLyBVSSBzaWRlIHRvdWNoLWFjdGlvbiByZXNvbHV0aW9uLgot
ICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLnRvdWNoQWN0aW9uRWxlbWVudHMoKSkK
KyAgICAgICAgaWYgKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWxlbWVudHNXaXRoTm9u
QXV0b1RvdWNoQWN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAg
ICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
MzQsNyArMTUzNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2kK
IAogICAgIGJvb2wgaGFzVG91Y2hBY3Rpb25FbGVtZW50cyA9IGZhbHNlOwogI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKLSAgICBoYXNUb3VjaEFjdGlvbkVsZW1lbnRzID0gISFyZW5kZXJlcigp
LmRvY3VtZW50KCkudG91Y2hBY3Rpb25FbGVtZW50cygpOworICAgIGhhc1RvdWNoQWN0aW9uRWxl
bWVudHMgPSByZW5kZXJlcigpLmRvY3VtZW50KCkubWF5SGF2ZUVsZW1lbnRzV2l0aE5vbkF1dG9U
b3VjaEFjdGlvbigpOwogI2VuZGlmCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaXNSZW5kZXJWaWV3
TGF5ZXIoKSAmJiAhaGFzVG91Y2hBY3Rpb25FbGVtZW50cykKICAgICAgICAgcmV0dXJuOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAkocmV2aXNpb24g
MjQ3MjkzKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzksOCArMjM5LDkgQEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29s
dmVyOjpyZXNvbHZlRWxlbQogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5
bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwogCiAjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICghbV9kb2N1bWVudC5x
dWlya3MoKS5zaG91bGREaXNhYmxlUG9pbnRlckV2ZW50c1F1aXJrKCkgJiYgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wb2ludGVyRXZlbnRzRW5hYmxlZCgpKQotICAg
ICAgICBtX2RvY3VtZW50LnVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoZWxlbWVudCwgKnVwZGF0
ZS5zdHlsZS5nZXQoKSk7CisgICAgLy8gRklYTUU6IFRyYWNrIHRoaXMgZXhhY3RseS4KKyAgICBp
ZiAodXBkYXRlLnN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0byAmJiAh
bV9kb2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlUG9pbnRlckV2ZW50c1F1aXJrKCkgJiYg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wb2ludGVyRXZlbnRzRW5h
YmxlZCgpKQorICAgICAgICBtX2RvY3VtZW50LnNldE1heUhhdmVFbGVtZW50c1dpdGhOb25BdXRv
VG91Y2hBY3Rpb24oKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHsgV1RGTW92ZSh1cGRhdGUpLCBk
ZXNjZW5kYW50c1RvUmVzb2x2ZSwgV1RGTW92ZShiZWZvcmVVcGRhdGUpLCBXVEZNb3ZlKGFmdGVy
VXBkYXRlKSB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMTAg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBUb3Vj
aEFjdGlvbkRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTY2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZSk6IERl
bGV0ZWQuCisKIDIwMTktMDctMDkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXUEVdW0dUS10gR1VuaXF1ZU91dFB0cjo6cmVsZWFzZSBzaG91
bGQgcmV0dXJuIGEgcmF3IHBvaW50ZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMjQ3MjkzKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMwLDQwICszMzAsMTAgQEAgT3B0aW9uYWw8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gQXJndW1l
bgogICAgIHJldHVybiB7eyBXVEZNb3ZlKGlkZW50aWZpZXIpLCBXVEZNb3ZlKHVwZGF0ZVJlc3Bv
bnNlQ291bnRlciksIFdURk1vdmUocmVxdWVzdEhlYWRlcnNHdWFyZCksIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUob3B0aW9ucy52YWx1ZSgpKSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUo
cmVzcG9uc2VIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlc3BvbnNlKSwgV1RGTW92ZShyZXNwb25z
ZUJvZHkpLCByZXNwb25zZUJvZHlTaXplIH19OwogfQogCi0jaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQotdm9pZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIHRvdWNoQWN0aW9uRGF0YSkKLXsKLSAg
ICBlbmNvZGVyIDw8IHRvdWNoQWN0aW9uRGF0YS50b3VjaEFjdGlvbnMgPDwgdG91Y2hBY3Rpb25E
YXRhLnNjcm9sbGluZ05vZGVJRCA8PCB0b3VjaEFjdGlvbkRhdGEucmVnaW9uOwotfQotCi1PcHRp
b25hbDxUb3VjaEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8T3B0aW9uU2V0PFRvdWNoQWN0
aW9uPj4gdG91Y2hBY3Rpb25zOwotICAgIGRlY29kZXIgPj4gdG91Y2hBY3Rpb25zOwotICAgIGlm
ICghdG91Y2hBY3Rpb25zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0
aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdOb2RlSUQ7Ci0gICAgZGVjb2RlciA+PiBz
Y3JvbGxpbmdOb2RlSUQ7Ci0gICAgaWYgKCFzY3JvbGxpbmdOb2RlSUQpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxSZWdpb24+IHJlZ2lvbjsKLSAgICBkZWNv
ZGVyID4+IHJlZ2lvbjsKLSAgICBpZiAoIXJlZ2lvbikKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0b3VjaEFjdGlvbnMpLCBXVEZNb3ZlKCpz
Y3JvbGxpbmdOb2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24pIH19OwotfQotI2VuZGlmCi0KIHZvaWQg
QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7
CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lm
aWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
Ci0gICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGE7Ci0j
ZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5n
UmVnaW9ucykKQEAgLTM3NSwxNiArMzQ1LDggQEAgYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJh
Y2tpbmdSZWdpb25zPgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0gICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0
YT4gdG91Y2hBY3Rpb25EYXRhOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodG91Y2hBY3Rpb25E
YXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgZXZlbnRUcmFja2luZ1Jl
Z2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBXVEZNb3ZlKCphc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnMpOwotI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKLSAgICBldmVu
dFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGEgPSBXVEZNb3ZlKHRvdWNoQWN0aW9uRGF0
YSk7Ci0jZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>