<?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>176093</bug_id>
          
          <creation_ts>2017-08-30 00:02:32 -0700</creation_ts>
          <short_desc>[Mac] Upstream Accessibility-related WebKitSystemInterface functions</short_desc>
          <delta_ts>2017-08-30 10:38:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343474</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 00:02:32 -0700</bug_when>
    <thetext>[Mac] Upstream Accessibility-related WebKitSystemInterface functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343475</commentid>
    <comment_count>1</comment_count>
      <attachid>319347</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 00:03:33 -0700</bug_when>
    <thetext>Created attachment 319347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343480</commentid>
    <comment_count>2</comment_count>
      <attachid>319349</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 00:32:34 -0700</bug_when>
    <thetext>Created attachment 319349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343485</commentid>
    <comment_count>3</comment_count>
      <attachid>319351</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 01:08:16 -0700</bug_when>
    <thetext>Created attachment 319351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343559</commentid>
    <comment_count>4</comment_count>
      <attachid>319351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 09:16:44 -0700</bug_when>
    <thetext>Comment on attachment 319351
Patch

Rejecting attachment 319351 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 319351, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
WebKit/UIProcess/Cocoa/WebViewImpl.mm
patching file Source/WebKit/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm
patching file Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm
patching file Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm
patching file Source/WebKitLegacy/mac/WebCoreSupport/WebSystemInterface.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Eric Carlson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/4410744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343578</commentid>
    <comment_count>5</comment_count>
      <attachid>319377</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 10:12:07 -0700</bug_when>
    <thetext>Created attachment 319377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343596</commentid>
    <comment_count>6</comment_count>
      <attachid>319377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 10:37:47 -0700</bug_when>
    <thetext>Comment on attachment 319377
Patch

Clearing flags on attachment: 319377

Committed r221381: &lt;http://trac.webkit.org/changeset/221381&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343597</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 10:37:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343598</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-30 10:38:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/34165625&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319347</attachid>
            <date>2017-08-30 00:03:33 -0700</date>
            <delta_ts>2017-08-30 00:32:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176093-20170830000332.patch</filename>
            <type>text/plain</type>
            <size>33460</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uNDhmMmJhYWFhYzQzZDM3OTQwYWJjMmIzZDA4MzQw
ZmY5NDBhYzExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA4LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nl
c3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAg
ICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHVucmVnaXN0ZXJVbmlxdWVJZEZv
clVJRWxlbWVudF0pOgorICAgICAgICAoQVhPYmplY3RJc1RleHRNYXJrZXIpOgorICAgICAgICAo
QVhPYmplY3RJc1RleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZSk6
CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZVN0YXJ0KToKKyAgICAgICAgKEFYVGV4dE1hcmtl
clJhbmdlRW5kKToKKyAgICAgICAgKGdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik6CisgICAgICAg
IChpc1RleHRNYXJrZXJJZ25vcmVkKToKKyAgICAgICAgKGFjY2Vzc2liaWxpdHlPYmplY3RGb3JU
ZXh0TWFya2VyKToKKyAgICAgICAgKHN0YXJ0T3JFbmRUZXh0bWFya2VyRm9yUmFuZ2UpOgorICAg
ICAgICAobmV4dFRleHRNYXJrZXJGb3JDaGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAocHJldmlv
dXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKHRleHRNYXJrZXJGb3JD
aGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAoY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcik6
CisgICAgICAgICh0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlckZvckZpcnN0UG9zaXRpb25JblRl
eHRDb250cm9sOl0pOgorICAgICAgICAodmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcik6Cisg
ICAgICAgIChBWEF0dHJpYnV0ZVN0cmluZ1NldEVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisKIDIwMTctMDgtMjkgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjEwMjg3KSBPbiBk
cm9wLCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dCIpIHJldHVybnMgYW4gZW1wdHkg
c3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDAxNGEx
OWVhZTRmY2FhMDNjOTY0NjBiZGMyOWI0NjFiNmFiNTBhMTYuLjI1YTJhM2Y1NTg2Zjg1YTRmYjgz
OThlYTI1MDkyZjFkMGQyNzQ2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBb
TWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNl
IGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL21h
Yy9ISVNlcnZpY2VzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQWNjZXNz
aWJpbGl0eVNQSS5oOgorCiAyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwu
eGNvZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMzI1ZTU5NTcyYjhlMTk5M2I3YmYxMDU0MTVmZjZmZjhi
ZDQyNWUuLjgyODcxNTc3OTg2MWZmZTkwZjk1M2Y1ZGZmMGFkMGUwMmM3MDlmMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIEFjY2Vzc2liaWxpdHktcmVsYXRlZCBXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJV
SVByb2Nlc3NUb2tlbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxp
dHlUb2tlbnMpOgorCiAyMDE3LTA4LTI5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgbG9naWMgZG9lcyBub3QgdW5k
ZXJzdGFuZCBjdXN0b20gV2Vic2l0ZURhdGEgc3RvcmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0YTI0ZjhiOTk4NDJjZi4uNmU4ZjQ1
MWMwM2VlODI2MzAxODA3Y2E0ZTFiMmUzNmIzMGRkYTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTct
MDgtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVw
c3RyZWFtIFdLU2V0TWV0YWRhdGFVUkwoKSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVmZGU3MGJhZjA1ODc0MzNmNDcwYTMzZWZmOGFlZmY4YWFmNTM1ZTYuLmY2ZjkyNzBjOGVlNmRh
ODkxYzZiZjdhMmM0Nzc2ZmNlOTQ3NTZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk3LDYgKzk3LDcgQEAKIAkJMUMwOUQw
NTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTIxRTMxQzQ0MTAwNzI1RjE4IC8qIENy
eXB0b0RpZ2VzdC5oICovOyB9OwogCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRv
RGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMDlEMDU1MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21t
b25DcnlwdG8uY3BwICovOyB9OwogCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmln
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1
NzFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmggKi87IH07CisJCUExMDI2NThFMUY1NjdFOUQw
MEI0Qzg0NCAvKiBISVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTAyNjU4RDFGNTY3RTlEMDBCNEM4NDQgLyogSElTZXJ2aWNlc1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEw
MEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMCw3IEBACiAJ
CTFDMDlEMDYzMUUzMUVDMzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDNjdDRUExMUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJF
IC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVy
c2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1OEQxRjU2
N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElTZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBF
REI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBL
aWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2ls
bFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMSw2ICszMzMs
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oICovLAogCQkJCTBDNzc4NTcxMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggKi8sCisJCQkJQTEwMjY1OEQxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1NzMxRjQ1MTMwRjAwRjRFQkI2IC8qIE1lZGlhUmVtb3RlU1BJLmgg
Ki8sCiAJCQkJQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCkBA
IC01MDAsNiArNTAzLDcgQEAKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURl
dGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMz
MTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3
MDAyRUFDMDIgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEw
MjY1OEUxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlPU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8qIElPUFNMaWJTUEkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJ
U2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzcwMDZlZDE4NzczZjI1OTJiOTQzMjNiNTAyNTIzYTc0ODBlZmE5
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNl
cnZpY2VzU1BJLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPEhJU2VydmljZXMvQVhU
ZXh0TWFya2VyLmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKworQ0ZUeXBlSUQg
QVhUZXh0TWFya2VyR2V0VHlwZUlEKCk7CitDRlR5cGVJRCBBWFRleHRNYXJrZXJSYW5nZUdldFR5
cGVJRCgpOworQVhUZXh0TWFya2VyUmVmIEFYVGV4dE1hcmtlckNyZWF0ZShDRkFsbG9jYXRvclJl
ZiwgY29uc3QgVUludDgqIGJ5dGVzLCBDRkluZGV4IGxlbmd0aCk7CitDRkluZGV4IEFYVGV4dE1h
cmtlckdldExlbmd0aChBWFRleHRNYXJrZXJSZWYpOworY29uc3QgVUludDgqIEFYVGV4dE1hcmtl
ckdldEJ5dGVQdHIoQVhUZXh0TWFya2VyUmVmKTsKK0FYVGV4dE1hcmtlclJhbmdlUmVmIEFYVGV4
dE1hcmtlclJhbmdlQ3JlYXRlKENGQWxsb2NhdG9yUmVmLCBBWFRleHRNYXJrZXJSZWYgc3RhcnRN
YXJrZXIsIEFYVGV4dE1hcmtlclJlZiBlbmRNYXJrZXIpOworQVhUZXh0TWFya2VyUmVmIEFYVGV4
dE1hcmtlclJhbmdlQ29weVN0YXJ0TWFya2VyKEFYVGV4dE1hcmtlclJhbmdlUmVmKTsKK0FYVGV4
dE1hcmtlclJlZiBBWFRleHRNYXJrZXJSYW5nZUNvcHlFbmRNYXJrZXIoQVhUZXh0TWFya2VyUmFu
Z2VSZWYpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmgKaW5kZXggYzY4MDc5ODQ2NjVjMThjYzYy
ZTU3YjNjNWY2ZmE4NmQ5MTU5NjY1Zi4uMGU4NzAwZmY3YTY4N2VhNDE0NzdiZTlmN2ViMGM1N2I2
ZmYxNTBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TQWNj
ZXNzaWJpbGl0eVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0Fj
Y2Vzc2liaWxpdHlTUEkuaApAQCAtMzQsOSArMzQsMjYgQEAKIEBpbnRlcmZhY2UgTlNBY2Nlc3Np
YmlsaXR5UmVtb3RlVUlFbGVtZW50IDogTlNPYmplY3QKIAogKyAodm9pZClzZXRSZW1vdGVVSUFw
cDooQk9PTClmbGFnOworKyAoTlNEYXRhICopcmVtb3RlVG9rZW5Gb3JMb2NhbFVJRWxlbWVudDoo
aWQpbG9jYWxVSUVsZW1lbnQ7CisrICh2b2lkKXJlZ2lzdGVyUmVtb3RlVUlQcm9jZXNzSWRlbnRp
ZmllcjoocGlkX3QpcGlkOworKyAodm9pZCl1bnJlZ2lzdGVyUmVtb3RlVUlQcm9jZXNzSWRlbnRp
ZmllcjoocGlkX3QpcGlkOworCistIChpZClpbml0V2l0aFJlbW90ZVRva2VuOihOU0RhdGEgKily
ZW1vdGVUb2tlbjsKKy0gKHBpZF90KXByb2Nlc3NJZGVudGlmaWVyOworLSAodm9pZClhY2Nlc3Np
YmlsaXR5U2V0UHJlc2VudGVyUHJvY2Vzc0lkZW50aWZpZXI6KHBpZF90KXByZXNlbnRlclBJRDsK
KworQHByb3BlcnR5IChyZXRhaW4pIGlkIHdpbmRvd1VJRWxlbWVudDsKK0Bwcm9wZXJ0eSAocmV0
YWluKSBpZCB0b3BMZXZlbFVJRWxlbWVudDsKIAogQGVuZAogCiAjZW5kaWYgLy8gVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKIAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK3ZvaWQgTlNBY2Nlc3NpYmls
aXR5SGFuZGxlRm9jdXNDaGFuZ2VkKCk7Cit2b2lkIE5TQWNjZXNzaWJpbGl0eVVucmVnaXN0ZXJV
bmlxdWVJZEZvclVJRWxlbWVudChpZCBlbGVtZW50KTsKKworV1RGX0VYVEVSTl9DX0VORAorCiAj
ZW5kaWYgLy8gVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDIzNzk3NTFiOGRhOGYyMTBmODFlMDAw
MjExODZhYjQ0NGIwZGQ0MjQuLmZjYTMwNDA5MDAwOTY1Nzk4ZjM2ODEwNTJmMDA3NDQyMTlmOTI0
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW1wb3J0ICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIgogI2ltcG9ydCAi
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBY2Nlc3Np
YmlsaXR5U1BJLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPEhJ
U2VydmljZXMvQWNjZXNzaWJpbGl0eVByaXYuaD4KQEAgLTUwOSw3ICs1MTAsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogYQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtSGFuZGxlRm9j
dXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQogewotICAgIHdrQWNjZXNzaWJpbGl0
eUhhbmRsZUZvY3VzQ2hhbmdlZCgpOworICAgIE5TQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3VzQ2hh
bmdlZCgpOwogICAgIC8vIEFYRm9jdXNDaGFuZ2VkIGlzIGEgdGVzdCBzcGVjaWZpYyBub3RpZmlj
YXRpb24gbmFtZSBhbmQgbm90IHNvbWV0aGluZyBhIHJlYWwgQVQgd2lsbCBiZSBsaXN0ZW5pbmcg
Zm9yCiAgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
KSkKICAgICAgICAgW3Jvb3RXZWJBcmVhKCktPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOkAiQVhGb2N1c0NoYW5nZWQiIHVzZXJJbmZvOm5pbF07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGVlYzE3ZDhkOTEyNjJkYjM2YWRkZTEz
ZTlkZjk5MjJhMDk5ZGZiMzkuLmRjZjc0N2VkNmNhMTZiY2UyZDFmNTVmN2ZiOWM1M2IyNTAxNzEx
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC03OCw2ICs3
OCw4IEBACiAjaW1wb3J0ICJXZWJDb3JlRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2Jq
Q0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBY2Nl
c3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpZiBF
TkFCTEUoVFJFRV9ERUJVR0dJTkcpIHx8IEVOQUJMRShNRVRFUl9FTEVNRU5UKQogI2ltcG9ydCA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNDA0LDExICs0MDYsMTMgQEAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5SGlnaGVzdEVkaXRhYmxl
QW5jZXN0b3JBdHRyaWJ1dGUgQCJBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yIgogI2VuZGlmCiAK
K2V4dGVybiAiQyIgQVhVSUVsZW1lbnRSZWYgTlNBY2Nlc3NpYmlsaXR5Q3JlYXRlQVhVSUVsZW1l
bnRSZWYoaWQgZWxlbWVudCk7CisKIEBpbXBsZW1lbnRhdGlvbiBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcgogCiAtICh2b2lkKXVucmVnaXN0ZXJVbmlxdWVJZEZvclVJRWxlbWVudAogewot
ICAgIHdrVW5yZWdpc3RlclVuaXF1ZUlkRm9yRWxlbWVudChzZWxmKTsKKyAgICBOU0FjY2Vzc2li
aWxpdHlVbnJlZ2lzdGVyVW5pcXVlSWRGb3JVSUVsZW1lbnQoc2VsZik7CiB9CiAKIC0gKHZvaWQp
ZGV0YWNoCkBAIC00MzQsMzUgKzQzOCwzNSBAQCAtIChpZClhdHRhY2htZW50VmlldwogCiBzdGF0
aWMgaW5saW5lIEJPT0wgQVhPYmplY3RJc1RleHRNYXJrZXIoaWQgb2JqKQogewotICAgIHJldHVy
biBvYmogIT0gbmlsICYmIENGR2V0VHlwZUlEKG9iaikgPT0gd2tHZXRBWFRleHRNYXJrZXJUeXBl
SUQoKTsKKyAgICByZXR1cm4gb2JqICE9IG5pbCAmJiBDRkdldFR5cGVJRChvYmopID09IEFYVGV4
dE1hcmtlckdldFR5cGVJRCgpOwogfQogCiBzdGF0aWMgaW5saW5lIEJPT0wgQVhPYmplY3RJc1Rl
eHRNYXJrZXJSYW5nZShpZCBvYmopCiB7Ci0gICAgcmV0dXJuIG9iaiAhPSBuaWwgJiYgQ0ZHZXRU
eXBlSUQob2JqKSA9PSB3a0dldEFYVGV4dE1hcmtlclJhbmdlVHlwZUlEKCk7CisgICAgcmV0dXJu
IG9iaiAhPSBuaWwgJiYgQ0ZHZXRUeXBlSUQob2JqKSA9PSBBWFRleHRNYXJrZXJSYW5nZUdldFR5
cGVJRCgpOwogfQogCiBzdGF0aWMgaWQgQVhUZXh0TWFya2VyUmFuZ2UoaWQgc3RhcnRNYXJrZXIs
IGlkIGVuZE1hcmtlcikKIHsKICAgICBBU1NFUlQoc3RhcnRNYXJrZXIgIT0gbmlsKTsKICAgICBB
U1NFUlQoZW5kTWFya2VyICE9IG5pbCk7Ci0gICAgQVNTRVJUKENGR2V0VHlwZUlEKHN0YXJ0TWFy
a2VyKSA9PSB3a0dldEFYVGV4dE1hcmtlclR5cGVJRCgpKTsKLSAgICBBU1NFUlQoQ0ZHZXRUeXBl
SUQoZW5kTWFya2VyKSA9PSB3a0dldEFYVGV4dE1hcmtlclR5cGVJRCgpKTsKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXJSYW5nZSgoQ0ZUeXBlUmVmKXN0
YXJ0TWFya2VyLCAoQ0ZUeXBlUmVmKWVuZE1hcmtlcikpOworICAgIEFTU0VSVChDRkdldFR5cGVJ
RChzdGFydE1hcmtlcikgPT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpOworICAgIEFTU0VSVChD
RkdldFR5cGVJRChlbmRNYXJrZXIpID09IEFYVGV4dE1hcmtlckdldFR5cGVJRCgpKTsKKyAgICBy
ZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoQVhUZXh0TWFya2VyUmFuZ2VDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgKEFYVGV4dE1hcmtlclJlZilzdGFydE1hcmtlciwgKEFYVGV4dE1hcmtlclJl
ZillbmRNYXJrZXIpKTsKIH0KIAogc3RhdGljIGlkIEFYVGV4dE1hcmtlclJhbmdlU3RhcnQoaWQg
cmFuZ2UpCiB7CiAgICAgQVNTRVJUKHJhbmdlICE9IG5pbCk7Ci0gICAgQVNTRVJUKENGR2V0VHlw
ZUlEKHJhbmdlKSA9PSB3a0dldEFYVGV4dE1hcmtlclJhbmdlVHlwZUlEKCkpOwotICAgIHJldHVy
biBDRkJyaWRnaW5nUmVsZWFzZSh3a0NvcHlBWFRleHRNYXJrZXJSYW5nZVN0YXJ0KHJhbmdlKSk7
CisgICAgQVNTRVJUKENGR2V0VHlwZUlEKHJhbmdlKSA9PSBBWFRleHRNYXJrZXJSYW5nZUdldFR5
cGVJRCgpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoQVhUZXh0TWFya2VyUmFuZ2VD
b3B5U3RhcnRNYXJrZXIoKEFYVGV4dE1hcmtlclJhbmdlUmVmKXJhbmdlKSk7CiB9CiAKIHN0YXRp
YyBpZCBBWFRleHRNYXJrZXJSYW5nZUVuZChpZCByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2Ug
IT0gbmlsKTsKLSAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocmFuZ2UpID09IHdrR2V0QVhUZXh0TWFy
a2VyUmFuZ2VUeXBlSUQoKSk7Ci0gICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ29weUFY
VGV4dE1hcmtlclJhbmdlRW5kKHJhbmdlKSk7CisgICAgQVNTRVJUKENGR2V0VHlwZUlEKHJhbmdl
KSA9PSBBWFRleHRNYXJrZXJSYW5nZUdldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2lu
Z1JlbGVhc2UoQVhUZXh0TWFya2VyUmFuZ2VDb3B5RW5kTWFya2VyKChBWFRleHRNYXJrZXJSYW5n
ZVJlZilyYW5nZSkpOwogfQogCiAjcHJhZ21hIG1hcmsgT3RoZXIgaGVscGVycwpAQCAtNTMxLDEz
ICs1MzUsMzEgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlTZWxlY3RUZXh0Q3JpdGVyaWEgYWNjZXNz
aWJpbGl0eVNlbGVjdFRleHRDcml0ZXJpYUZvckNyaXRlcmkKIAogI3ByYWdtYSBtYXJrIFRleHQg
TWFya2VyIGhlbHBlcnMKIAorc3RhdGljIEJPT0wgZ2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKENG
VHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkKiBieXRlcywgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBp
ZiAoIXRleHRNYXJrZXIpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIEFYVGV4dE1hcmtlclJl
ZiByZWYgPSAoQVhUZXh0TWFya2VyUmVmKXRleHRNYXJrZXI7CisgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKHJlZikgPT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpOworICAgIGlmIChDRkdldFR5cGVJ
RChyZWYpICE9IEFYVGV4dE1hcmtlckdldFR5cGVJRCgpKQorICAgICAgICByZXR1cm4gTk87CisK
KyAgICBDRkluZGV4IGV4cGVjdGVkTGVuZ3RoID0gbGVuZ3RoOworICAgIGlmIChBWFRleHRNYXJr
ZXJHZXRMZW5ndGgocmVmKSAhPSBleHBlY3RlZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIE5POwor
CisgICAgbWVtY3B5KGJ5dGVzLCBBWFRleHRNYXJrZXJHZXRCeXRlUHRyKHJlZiksIGxlbmd0aCk7
CisgICAgcmV0dXJuIFlFUzsKK30KKwogc3RhdGljIGJvb2wgaXNUZXh0TWFya2VySWdub3JlZChp
ZCB0ZXh0TWFya2VyKQogewogICAgIGlmICghdGV4dE1hcmtlcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIAogICAgIFRleHRNYXJrZXJEYXRhIHRleHRNYXJrZXJEYXRhOwotICAgIGlmICgh
d2tHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSkKKyAgICBpZiAoIWdldEJ5dGVzRnJvbUFYVGV4dE1hcmtl
cih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIHRleHRNYXJrZXJEYXRhLmln
bm9yZWQ7CkBAIC01NTQsNyArNTc2LDcgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFj
Y2Vzc2liaWxpdHlPYmplY3RGb3JUZXh0TWFya2VyKEFYT2JqZWN0Q2FjaGUqIGNhY2gKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRh
dGE7Ci0gICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4
dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNG
cm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRN
YXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjYWNoZS0+
YWNjZXNzaWJpbGl0eU9iamVjdEZvclRleHRNYXJrZXJEYXRhKHRleHRNYXJrZXJEYXRhKTsKIH0K
QEAgLTU4Niw3ICs2MDgsNyBAQCBzdGF0aWMgaWQgc3RhcnRPckVuZFRleHRtYXJrZXJGb3JSYW5n
ZShBWE9iamVjdENhY2hlKiBjYWNoZSwgUmVmUHRyPFJhbmdlPiByYW5nZQogICAgIGlmICghdGV4
dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFY
VGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiBzdGF0aWMgaWQgbmV4
dFRleHRNYXJrZXJGb3JDaGFyYWN0ZXJPZmZzZXQoQVhPYmplY3RDYWNoZSogY2FjaGUsIENoYXJh
Y3Rlck9mZnNldCYgY2hhcmFjdGVyT2Zmc2V0KQpAQCAtNTk4LDcgKzYyMCw3IEBAIHN0YXRpYyBp
ZCBuZXh0VGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwg
Q2hhcmFjdGVyT2Zmc2V0CiAgICAgY2FjaGUtPnRleHRNYXJrZXJEYXRhRm9yTmV4dENoYXJhY3Rl
ck9mZnNldCh0ZXh0TWFya2VyRGF0YSwgY2hhcmFjdGVyT2Zmc2V0KTsKICAgICBpZiAoIXRleHRN
YXJrZXJEYXRhLmF4SUQpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgcmV0dXJuIENGQnJpZGdp
bmdSZWxlYXNlKHdrQ3JlYXRlQVhUZXh0TWFya2VyKCZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRl
eHRNYXJrZXJEYXRhKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJr
ZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRh
dGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKTsKIH0KIAogc3RhdGljIGlkIHByZXZpb3VzVGV4
dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwgQ2hhcmFjdGVy
T2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQpCkBAIC02MTAsNyArNjMyLDcgQEAgc3RhdGljIGlkIHBy
ZXZpb3VzVGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwg
Q2hhcmFjdGVyT2YKICAgICBjYWNoZS0+dGV4dE1hcmtlckRhdGFGb3JQcmV2aW91c0NoYXJhY3Rl
ck9mZnNldCh0ZXh0TWFya2VyRGF0YSwgY2hhcmFjdGVyT2Zmc2V0KTsKICAgICBpZiAoIXRleHRN
YXJrZXJEYXRhLmF4SUQpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgcmV0dXJuIENGQnJpZGdp
bmdSZWxlYXNlKHdrQ3JlYXRlQVhUZXh0TWFya2VyKCZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRl
eHRNYXJrZXJEYXRhKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJr
ZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRh
dGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKTsKIH0KIAogLSAoaWQpbmV4dFRleHRNYXJrZXJG
b3JDaGFyYWN0ZXJPZmZzZXQ6KENoYXJhY3Rlck9mZnNldCYpY2hhcmFjdGVyT2Zmc2V0CkBAIC02
MzgsNyArNjYwLDcgQEAgc3RhdGljIGlkIHRleHRNYXJrZXJGb3JDaGFyYWN0ZXJPZmZzZXQoQVhP
YmplY3RDYWNoZSogY2FjaGUsIGNvbnN0IENoYXJhY3Rlck9mZnMKICAgICBpZiAoIXRleHRNYXJr
ZXJEYXRhLmF4SUQgJiYgIXRleHRNYXJrZXJEYXRhLmlnbm9yZWQpCiAgICAgICAgIHJldHVybiBu
aWw7CiAgICAgCi0gICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ3JlYXRlQVhUZXh0TWFy
a2VyKCZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOworICAgIHJldHVy
biBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkp
KTsKIH0KIAogLSAoUmVmUHRyPFJhbmdlPilyYW5nZUZvclRleHRNYXJrZXJSYW5nZTooaWQpdGV4
dE1hcmtlclJhbmdlCkBAIC02NjcsNyArNjg5LDcgQEAgc3RhdGljIENoYXJhY3Rlck9mZnNldCBj
aGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBDRlR5cGUK
ICAgICAgICAgcmV0dXJuIENoYXJhY3Rlck9mZnNldCgpOwogICAgIAogICAgIFRleHRNYXJrZXJE
YXRhIHRleHRNYXJrZXJEYXRhOwotICAgIGlmICghd2tHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIo
dGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSkKKyAg
ICBpZiAoIWdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRh
dGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zm
c2V0KCk7CiAgICAgCiAgICAgcmV0dXJuIGNhY2hlLT5jaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFy
a2VyRGF0YSh0ZXh0TWFya2VyRGF0YSk7CkBAIC02ODYsNyArNzA4LDcgQEAgc3RhdGljIGlkIHRl
eHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb24oQVhPYmplY3RDYWNoZSogY2FjaGUsIGNvbnN0IFZp
c2libGVQb3NpdGkKICAgICBpZiAoIXRleHRNYXJrZXJEYXRhKQogICAgICAgICByZXR1cm4gbmls
OwogCi0gICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ3JlYXRlQVhUZXh0TWFya2VyKCZ0
ZXh0TWFya2VyRGF0YS52YWx1ZSgpLCBzaXplb2YodGV4dE1hcmtlckRhdGEudmFsdWUoKSkpKTsK
KyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoQVhUZXh0TWFya2VyQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIChjb25zdCBVSW50OCopJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNpemVv
Zih0ZXh0TWFya2VyRGF0YS52YWx1ZSgpKSkpOwogfQogCiAtIChpZCl0ZXh0TWFya2VyRm9yVmlz
aWJsZVBvc2l0aW9uOihjb25zdCBWaXNpYmxlUG9zaXRpb24gJil2aXNpYmxlUG9zCkBAIC03MDQs
NyArNzI2LDcgQEAgLSAoaWQpdGV4dE1hcmtlckZvckZpcnN0UG9zaXRpb25JblRleHRDb250cm9s
OihIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCAmKXRleHQKICAgICBpZiAoIXRleHRNYXJrZXJE
YXRhKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNl
KHdrQ3JlYXRlQVhUZXh0TWFya2VyKCZ0ZXh0TWFya2VyRGF0YS52YWx1ZSgpLCBzaXplb2YodGV4
dE1hcmtlckRhdGEudmFsdWUoKSkpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoQVhU
ZXh0TWFya2VyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50OCopJnRleHRN
YXJrZXJEYXRhLnZhbHVlKCksIHNpemVvZih0ZXh0TWFya2VyRGF0YS52YWx1ZSgpKSkpOwogfQog
CiBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXIoQVhP
YmplY3RDYWNoZSogY2FjaGUsIENGVHlwZVJlZiB0ZXh0TWFya2VyKQpAQCAtNzE0LDcgKzczNiw3
IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcihB
WE9iamVjdENhY2hlKiBjYWNoZSwgQ0ZUeXBlCiAgICAgaWYgKCF0ZXh0TWFya2VyKQogICAgICAg
ICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtl
ckRhdGE7Ci0gICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAm
dGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQorICAgIGlmICghZ2V0Qnl0
ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRl
eHRNYXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICAK
ICAgICByZXR1cm4gY2FjaGUtPnZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRhKHRleHRN
YXJrZXJEYXRhKTsKQEAgLTk4Miw3ICsxMDA0LDcgQEAgc3RhdGljIHZvaWQgQVhBdHRyaWJ1dGVT
dHJpbmdTZXRFbGVtZW50KE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcqIGF0dHJTdHJpbmcsIE4K
ICAgICAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAg
ICAgIEFYVUlFbGVtZW50UmVmIGF4RWxlbWVudCA9IHdrQ3JlYXRlQVhVSUVsZW1lbnRSZWYob2Jq
ZWN0LT53cmFwcGVyKCkpOworICAgICAgICBBWFVJRWxlbWVudFJlZiBheEVsZW1lbnQgPSBOU0Fj
Y2Vzc2liaWxpdHlDcmVhdGVBWFVJRWxlbWVudFJlZihvYmplY3QtPndyYXBwZXIoKSk7CiAgICAg
ICAgIGlmIChheEVsZW1lbnQpIHsKICAgICAgICAgICAgIFthdHRyU3RyaW5nIGFkZEF0dHJpYnV0
ZTphdHRyaWJ1dGUgdmFsdWU6KGlkKWF4RWxlbWVudCByYW5nZTpyYW5nZV07CiAgICAgICAgICAg
ICBDRlJlbGVhc2UoYXhFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCmluZGV4IDBhMjUxZmFkMDFlNWJkMWJjMjA3
ZDQxMWY0ZmZkZTI1YTRlOTEwNzkuLjkzY2RmZDBjN2FiMWU5NjgwMTA2Y2E2NDg1NDQ4NTY2Yjc0
NDRlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaApAQCAtMTk1LDE3ICsxOTUsNiBAQCBleHRlcm4gTlNDdXJzb3IgKigq
d2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKICNpZiAhUExBVEZPUk0oSU9TKQogZXh0ZXJuIE5TQXJy
YXkgKigqd2tTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKSh2b2lkKTsKIGV4dGVy
biBOU1N0cmluZyAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJG
b3JMb2NhbGUpKE5TTG9jYWxlICopOwotCi1leHRlcm4gdm9pZCAoKndrVW5yZWdpc3RlclVuaXF1
ZUlkRm9yRWxlbWVudCkoaWQgZWxlbWVudCk7Ci1leHRlcm4gdm9pZCAoKndrQWNjZXNzaWJpbGl0
eUhhbmRsZUZvY3VzQ2hhbmdlZCkodm9pZCk7ICAgIAotZXh0ZXJuIENGVHlwZUlEICgqd2tHZXRB
WFRleHRNYXJrZXJUeXBlSUQpKHZvaWQpOwotZXh0ZXJuIENGVHlwZUlEICgqd2tHZXRBWFRleHRN
YXJrZXJSYW5nZVR5cGVJRCkodm9pZCk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRl
eHRNYXJrZXJSYW5nZSkoQ0ZUeXBlUmVmIHN0YXJ0LCBDRlR5cGVSZWYgZW5kKTsKLWV4dGVybiBD
RlR5cGVSZWYgKCp3a0NvcHlBWFRleHRNYXJrZXJSYW5nZVN0YXJ0KShDRlR5cGVSZWYgcmFuZ2Up
OwotZXh0ZXJuIENGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlRW5kKShDRlR5cGVS
ZWYgcmFuZ2UpOwotZXh0ZXJuIENGVHlwZVJlZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25z
dCB2b2lkICpieXRlcywgc2l6ZV90IGxlbik7Ci1leHRlcm4gQk9PTCAoKndrR2V0Qnl0ZXNGcm9t
QVhUZXh0TWFya2VyKShDRlR5cGVSZWYgdGV4dE1hcmtlciwgdm9pZCAqYnl0ZXMsIHNpemVfdCBs
ZW5ndGgpOwotZXh0ZXJuIEFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZiko
aWQgZWxlbWVudCk7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAogI2lmIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UubW0KaW5kZXggZmUzNDFhZGVmYWUzODFmYWZkYTI1MzUyYjI5NTAxOGE2MDQwNDQy
Yi4uNjQ5ZDdhNjdjZDY3NjU0YTJhM2UzOTRlOTM1ZjhjNTI2ZmEzOTI1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0K
QEAgLTgxLDE2ICs4MSw2IEBAIE5TQ3Vyc29yICooKndrQ3Vyc29yKShjb25zdCBjaGFyKik7CiBO
U0FycmF5ICooKndrU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycykodm9pZCk7CiBO
U1N0cmluZyAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JM
b2NhbGUpKE5TTG9jYWxlICopOwogCi12b2lkICgqd2tVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVt
ZW50KShpZCBlbGVtZW50KTsKLXZvaWQgKCp3a0FjY2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5n
ZWQpKHZvaWQpOwotQ0ZUeXBlSUQgKCp3a0dldEFYVGV4dE1hcmtlclR5cGVJRCkodm9pZCk7Ci1D
RlR5cGVJRCAoKndrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQpKHZvaWQpOwotQ0ZUeXBlUmVm
ICgqd2tDcmVhdGVBWFRleHRNYXJrZXJSYW5nZSkoQ0ZUeXBlUmVmIHN0YXJ0LCBDRlR5cGVSZWYg
ZW5kKTsKLUNGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQpKENGVHlwZVJl
ZiByYW5nZSk7Ci1DRlR5cGVSZWYgKCp3a0NvcHlBWFRleHRNYXJrZXJSYW5nZUVuZCkoQ0ZUeXBl
UmVmIHJhbmdlKTsKLUNGVHlwZVJlZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25zdCB2b2lk
ICpieXRlcywgc2l6ZV90IGxlbik7Ci1CT09MICgqd2tHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIp
KENGVHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkICpieXRlcywgc2l6ZV90IGxlbmd0aCk7Ci1BWFVJ
RWxlbWVudFJlZiAoKndrQ3JlYXRlQVhVSUVsZW1lbnRSZWYpKGlkIGVsZW1lbnQpOwogCiAjaWYg
IVBMQVRGT1JNKElPUykKIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKShD
R0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENHRmxvYXQg
ZWxhcHNlZFRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
LmgKaW5kZXggMjY2NWQyNDBlZDNjYTg0MmQ1MTUzMzA5MDJhZGNkZjZkMzEzNDNlZC4uYzJjY2Fm
ZjFmMTg4OWYwZTZkMGUxZDg5MmVjYjQyYjBmYzQzNzU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorT0JKQ19D
TEFTUyBOU0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQ7CiBPQkpDX0NMQVNTIE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4
dDsKIE9CSkNfQ0xBU1MgTlNWaWV3OwpAQCAtNjk0LDcgKzY5NSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fYWxsb3dzTWFnbmlmaWNhdGlvbiB7IGZhbHNlIH07CiAKLSAgICBSZXRhaW5QdHI8
aWQ+IG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkOworICAgIFJldGFpblB0cjxOU0FjY2Vzc2li
aWxpdHlSZW1vdGVVSUVsZW1lbnQ+IG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkOwogCiAgICAg
UmVmUHRyPFdlYkNvcmU6OkltYWdlPiBtX3Byb21pc2VkSW1hZ2U7CiAgICAgU3RyaW5nIG1fcHJv
bWlzZWRGaWxlbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggN2RhOTkyMmUzMWRhNDRlZTBmYWQ0NzQ4NzE0YzZlZTg4MDdkYzNjNC4uZTIw
ZWRiZTBmZTNmMWM3NjA1YjBkNmMwMGNhODdkZDE3NTJjMzhlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkxLDYgKzkxLDcgQEAKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
RGF0YURldGVjdG9yc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTG9va3VwU1BJLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TQXBwbGljYXRpb25TUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05T
U3BlbGxDaGVja2VyU1BJLmg+CkBAIC0zMjgyLDcgKzMyODMsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRJZ25vcmVzTW91c2VEcmFnZ2VkRXZlbnRzKGJvb2wgaWdub3Jlc01vdXNlRHJhZ2dlZEV2
ZW50cykKIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tl
bihOU0RhdGEgKmRhdGEpCiB7Ci0gICAgbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBXS0FY
UmVtb3RlRWxlbWVudEZvclRva2VuKGRhdGEpOworICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNo
aWxkID0gZGF0YS5sZW5ndGggPyBhZG9wdE5TKFtbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVt
ZW50IGFsbG9jXSBpbml0V2l0aFJlbW90ZVRva2VuOmRhdGFdKSA6IG5pbDsKICAgICB1cGRhdGVS
ZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKHRydWUpOwogfQogCkBAIC0zMjk1LDE4ICsz
Mjk2LDIzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdp
c3RyYXRpb24oYm9vbCByZWdpc3RlclByb2Nlc3MpCiAgICAgaWYgKHJlZ2lzdGVyUHJvY2VzcykK
ICAgICAgICAgcGlkID0gbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKTsKICAg
ICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7Ci0gICAgICAgIHBpZCA9IFdLQVhSZW1vdGVQ
cm9jZXNzSWRlbnRpZmllcihtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQoKSk7CisgICAg
ICAgIHBpZCA9IFttX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZCBwcm9jZXNzSWRlbnRpZmllcl07
CiAgICAgICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gbmlsOwogICAgIH0KLSAgICBp
ZiAocGlkKQotICAgICAgICBXS0FYUmVnaXN0ZXJSZW1vdGVQcm9jZXNzKHJlZ2lzdGVyUHJvY2Vz
cywgcGlkKTsKKyAgICBpZiAoIXBpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHJlZ2lz
dGVyUHJvY2VzcykKKyAgICAgICAgW05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCByZWdp
c3RlclJlbW90ZVVJUHJvY2Vzc0lkZW50aWZpZXI6cGlkXTsKKyAgICBlbHNlCisgICAgICAgIFtO
U0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgdW5yZWdpc3RlclJlbW90ZVVJUHJvY2Vzc0lk
ZW50aWZpZXI6cGlkXTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lz
dGVyVUlQcm9jZXNzVG9rZW5zKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3Np
YmlsaXR5IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgot
ICAgIE5TRGF0YSAqcmVtb3RlRWxlbWVudFRva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVu
dChtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkpOwotICAgIE5TRGF0YSAqcmVtb3RlV2luZG93VG9r
ZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KFttX3ZpZXcgd2luZG93XSk7CisgICAgTlNE
YXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVtZW50
IHJlbW90ZVRva2VuRm9yTG9jYWxVSUVsZW1lbnQ6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpXTsK
KyAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0gW05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJ
RWxlbWVudCByZW1vdGVUb2tlbkZvckxvY2FsVUlFbGVtZW50OlttX3ZpZXcgd2luZG93XV07CiAg
ICAgSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lbnRUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlRWxlbWVudFRva2VuIGJ5dGVz
XSksIFtyZW1vdGVFbGVtZW50VG9rZW4gbGVuZ3RoXSk7CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNl
IHdpbmRvd1Rva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KFtyZW1vdGVXaW5kb3dUb2tlbiBieXRlc10pLCBbcmVtb3RlV2luZG93VG9rZW4g
bGVuZ3RoXSk7CiAgICAgbV9wYWdlLT5yZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tl
bnMoZWxlbWVudFRva2VuLCB3aW5kb3dUb2tlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmluZGV4IDFlOTYyMzA3YTdmOTk5OGU1NzI3YTMxYzA5MmZiOTRkMDRmYWVlMWQuLjQ0
ZGM3ZWNiMzYyMGU4ZjQ1MTQyZWIzN2M3ODc1YWRjYjNiOTQxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCkBAIC04MywxNiArODMsNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoV2luZG93U2V0QWxwaGEpOwogICAgICAg
ICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpOwogICAgICAgICBJTklU
KFNwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUpOwotICAg
ICAgICBJTklUKEdldEFYVGV4dE1hcmtlclR5cGVJRCk7Ci0gICAgICAgIElOSVQoR2V0QVhUZXh0
TWFya2VyUmFuZ2VUeXBlSUQpOwotICAgICAgICBJTklUKENyZWF0ZUFYVGV4dE1hcmtlcik7Ci0g
ICAgICAgIElOSVQoR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKTsKLSAgICAgICAgSU5JVChDcmVh
dGVBWFRleHRNYXJrZXJSYW5nZSk7Ci0gICAgICAgIElOSVQoQ29weUFYVGV4dE1hcmtlclJhbmdl
U3RhcnQpOwotICAgICAgICBJTklUKENvcHlBWFRleHRNYXJrZXJSYW5nZUVuZCk7Ci0gICAgICAg
IElOSVQoQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3VzQ2hhbmdlZCk7Ci0gICAgICAgIElOSVQoQ3Jl
YXRlQVhVSUVsZW1lbnRSZWYpOwotICAgICAgICBJTklUKFVucmVnaXN0ZXJVbmlxdWVJZEZvckVs
ZW1lbnQpOwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKICAgICAg
ICAgSU5JVChOU0VsYXN0aWNEZWx0YUZvclJlYm91bmREZWx0YSk7CiAgICAgICAgIElOSVQoTlNS
ZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbQppbmRleCA3OGYxOGY2ZDFmODE4MDEzMWQ5MTIwZGIwOTAyMzMwYWNk
NTY2YjQ4Li44ZjQ3ZTJhNmUwOTQwZTg5ZmU3YzYwMTBiNDUwN2IzOTExNmVhOTJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAtNDUsNiArNDUsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9s
bGJhci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwv
c3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4
dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTU0LDcgKzU1LDcgQEAgQGlt
cGxlbWVudGF0aW9uIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QKIAogLSAodm9pZClkZWFs
bG9jCiB7Ci0gICAgV0tVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KHNlbGYpOworICAgIE5T
QWNjZXNzaWJpbGl0eVVucmVnaXN0ZXJVbmlxdWVJZEZvclVJRWxlbWVudChzZWxmKTsKICAgICBb
bV9wYXJlbnQgcmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBkNzBj
OTVhZTg3ZDU0OWM3MTc2YzFmMmZmMzU3MDNjZDM0MDhlMmJhLi5lOGEwOGZiNjE4ZDdlZmU1NGI5
OGRmNDZhOTg3MTA2ZDA4OTM4ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtOTEsNiArOTEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2luZG93c0tleWJvYXJk
Q29kZXMuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUu
aD4KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC0xMDgsMTEgKzEw
OSwxMiBAQCB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKICAgICAvLyBHZXQg
dGhlIHBpZCBmb3IgdGhlIHN0YXJ0aW5nIHByb2Nlc3MuCiAgICAgcGlkX3QgcGlkID0gV2ViQ29y
ZTo6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7Ci0gICAgV0tBWEluaXRpYWxpemVFbGVtZW50
V2l0aFByZXNlbnRlclBpZChtb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQsIHBpZCk7CisgICAgaWYg
KFttb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihh
Y2Nlc3NpYmlsaXR5U2V0UHJlc2VudGVyUHJvY2Vzc0lkZW50aWZpZXI6KV0pCisgICAgICAgIFtt
b2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgYWNjZXNzaWJpbGl0eVNldFByZXNlbnRlclByb2Nlc3NJ
ZGVudGlmaWVyOnBpZF07CiAgICAgW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCBzZXRXZWJQYWdl
OnRoaXNdOwogICAgIAogICAgIC8vIHNlbmQgZGF0YSBiYWNrIG92ZXIKLSAgICBOU0RhdGEqIHJl
bW90ZVRva2VuID0gKE5TRGF0YSAqKVdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobW9ja0FjY2Vz
c2liaWxpdHlFbGVtZW50KTsgCisgICAgTlNEYXRhKiByZW1vdGVUb2tlbiA9IFtOU0FjY2Vzc2li
aWxpdHlSZW1vdGVVSUVsZW1lbnQgcmVtb3RlVG9rZW5Gb3JMb2NhbFVJRWxlbWVudDptb2NrQWNj
ZXNzaWJpbGl0eUVsZW1lbnRdOwogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhVG9rZW4gPSBJ
UEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90
ZVRva2VuIGJ5dGVzXSksIFtyZW1vdGVUb2tlbiBsZW5ndGhdKTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihkYXRh
VG9rZW4pKTsKICAgICBtX21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCA9IG1vY2tBY2Nlc3NpYmls
aXR5RWxlbWVudDsKQEAgLTYxOCwxMyArNjIwLDE0IEBAIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKQogCiB2b2lk
IFdlYlBhZ2U6OnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGVsZW1lbnRUb2tlbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiB3
aW5kb3dUb2tlbikKIHsKLSAgICBOU0RhdGEqIGVsZW1lbnRUb2tlbkRhdGEgPSBbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6ZWxlbWVudFRva2VuLmRhdGEoKSBsZW5ndGg6ZWxlbWVudFRva2VuLnNpemUo
KV07Ci0gICAgTlNEYXRhKiB3aW5kb3dUb2tlbkRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6
d2luZG93VG9rZW4uZGF0YSgpIGxlbmd0aDp3aW5kb3dUb2tlbi5zaXplKCldOwotICAgIGlkIHJl
bW90ZUVsZW1lbnQgPSBXS0FYUmVtb3RlRWxlbWVudEZvclRva2VuKGVsZW1lbnRUb2tlbkRhdGEp
OwotICAgIGlkIHJlbW90ZVdpbmRvdyA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4od2luZG93
VG9rZW5EYXRhKTsKLSAgICBXS0FYU2V0V2luZG93Rm9yUmVtb3RlRWxlbWVudChyZW1vdGVXaW5k
b3csIHJlbW90ZUVsZW1lbnQpOwotICAgIAotICAgIFthY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0
KCkgc2V0UmVtb3RlUGFyZW50OnJlbW90ZUVsZW1lbnRdOworICAgIE5TRGF0YSAqZWxlbWVudFRv
a2VuRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczplbGVtZW50VG9rZW4uZGF0YSgpIGxlbmd0
aDplbGVtZW50VG9rZW4uc2l6ZSgpXTsKKyAgICBOU0RhdGEgKndpbmRvd1Rva2VuRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczp3aW5kb3dUb2tlbi5kYXRhKCkgbGVuZ3RoOndpbmRvd1Rva2Vu
LnNpemUoKV07CisgICAgYXV0byByZW1vdGVFbGVtZW50ID0gZWxlbWVudFRva2VuRGF0YS5sZW5n
dGggPyBhZG9wdE5TKFtbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVtZW50IGFsbG9jXSBpbml0
V2l0aFJlbW90ZVRva2VuOmVsZW1lbnRUb2tlbkRhdGFdKSA6IG5pbDsKKyAgICBhdXRvIHJlbW90
ZVdpbmRvdyA9IHdpbmRvd1Rva2VuRGF0YS5sZW5ndGggPyBhZG9wdE5TKFtbTlNBY2Nlc3NpYmls
aXR5UmVtb3RlVUlFbGVtZW50IGFsbG9jXSBpbml0V2l0aFJlbW90ZVRva2VuOndpbmRvd1Rva2Vu
RGF0YV0pIDogbmlsOworICAgIFtyZW1vdGVFbGVtZW50IHNldFdpbmRvd1VJRWxlbWVudDpyZW1v
dGVXaW5kb3cuZ2V0KCldOworICAgIFtyZW1vdGVFbGVtZW50IHNldFRvcExldmVsVUlFbGVtZW50
OnJlbW90ZVdpbmRvdy5nZXQoKV07CisKKyAgICBbYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgp
IHNldFJlbW90ZVBhcmVudDpyZW1vdGVFbGVtZW50LmdldCgpXTsKIH0KIAogdm9pZCBXZWJQYWdl
OjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgYm9vbCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IGVjMjc0ZGRmZTc5
NzEzZGU5M2E1NGE1ZWM4YjRmOTgwMDhiNGQxYmEuLmQ0NTUxNmY1ZWVlMWMwODJjOTgyOGQ5ZTc0
NzRlYzk2ODljNDdiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTkxLDE2ICs5MSw2
IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICBJTklUKEN1cnNv
cik7CiAgICAgSU5JVChTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKTsKICAgICBJ
TklUKFNwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUpOwot
ICAgIElOSVQoR2V0QVhUZXh0TWFya2VyVHlwZUlEKTsKLSAgICBJTklUKEdldEFYVGV4dE1hcmtl
clJhbmdlVHlwZUlEKTsKLSAgICBJTklUKENyZWF0ZUFYVGV4dE1hcmtlcik7Ci0gICAgSU5JVChH
ZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpOwotICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFya2VyUmFu
Z2UpOwotICAgIElOSVQoQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQpOwotICAgIElOSVQoQ29w
eUFYVGV4dE1hcmtlclJhbmdlRW5kKTsKLSAgICBJTklUKEFjY2Vzc2liaWxpdHlIYW5kbGVGb2N1
c0NoYW5nZWQpOwotICAgIElOSVQoQ3JlYXRlQVhVSUVsZW1lbnRSZWYpOwotICAgIElOSVQoVW5y
ZWdpc3RlclVuaXF1ZUlkRm9yRWxlbWVudCk7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319349</attachid>
            <date>2017-08-30 00:32:34 -0700</date>
            <delta_ts>2017-08-30 01:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176093-20170830003233.patch</filename>
            <type>text/plain</type>
            <size>33582</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uNDhmMmJhYWFhYzQzZDM3OTQwYWJjMmIzZDA4MzQw
ZmY5NDBhYzExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA4LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nl
c3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAg
ICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHVucmVnaXN0ZXJVbmlxdWVJZEZv
clVJRWxlbWVudF0pOgorICAgICAgICAoQVhPYmplY3RJc1RleHRNYXJrZXIpOgorICAgICAgICAo
QVhPYmplY3RJc1RleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZSk6
CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZVN0YXJ0KToKKyAgICAgICAgKEFYVGV4dE1hcmtl
clJhbmdlRW5kKToKKyAgICAgICAgKGdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik6CisgICAgICAg
IChpc1RleHRNYXJrZXJJZ25vcmVkKToKKyAgICAgICAgKGFjY2Vzc2liaWxpdHlPYmplY3RGb3JU
ZXh0TWFya2VyKToKKyAgICAgICAgKHN0YXJ0T3JFbmRUZXh0bWFya2VyRm9yUmFuZ2UpOgorICAg
ICAgICAobmV4dFRleHRNYXJrZXJGb3JDaGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAocHJldmlv
dXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKHRleHRNYXJrZXJGb3JD
aGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAoY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcik6
CisgICAgICAgICh0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlckZvckZpcnN0UG9zaXRpb25JblRl
eHRDb250cm9sOl0pOgorICAgICAgICAodmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcik6Cisg
ICAgICAgIChBWEF0dHJpYnV0ZVN0cmluZ1NldEVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisKIDIwMTctMDgtMjkgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjEwMjg3KSBPbiBk
cm9wLCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dCIpIHJldHVybnMgYW4gZW1wdHkg
c3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDAxNGEx
OWVhZTRmY2FhMDNjOTY0NjBiZGMyOWI0NjFiNmFiNTBhMTYuLjI1YTJhM2Y1NTg2Zjg1YTRmYjgz
OThlYTI1MDkyZjFkMGQyNzQ2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBb
TWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNl
IGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL21h
Yy9ISVNlcnZpY2VzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQWNjZXNz
aWJpbGl0eVNQSS5oOgorCiAyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwu
eGNvZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMzI1ZTU5NTcyYjhlMTk5M2I3YmYxMDU0MTVmZjZmZjhi
ZDQyNWUuLjgyODcxNTc3OTg2MWZmZTkwZjk1M2Y1ZGZmMGFkMGUwMmM3MDlmMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIEFjY2Vzc2liaWxpdHktcmVsYXRlZCBXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJV
SVByb2Nlc3NUb2tlbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxp
dHlUb2tlbnMpOgorCiAyMDE3LTA4LTI5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgbG9naWMgZG9lcyBub3QgdW5k
ZXJzdGFuZCBjdXN0b20gV2Vic2l0ZURhdGEgc3RvcmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0YTI0ZjhiOTk4NDJjZi4uNmU4ZjQ1
MWMwM2VlODI2MzAxODA3Y2E0ZTFiMmUzNmIzMGRkYTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTct
MDgtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVw
c3RyZWFtIFdLU2V0TWV0YWRhdGFVUkwoKSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVmZGU3MGJhZjA1ODc0MzNmNDcwYTMzZWZmOGFlZmY4YWFmNTM1ZTYuLmY2ZjkyNzBjOGVlNmRh
ODkxYzZiZjdhMmM0Nzc2ZmNlOTQ3NTZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk3LDYgKzk3LDcgQEAKIAkJMUMwOUQw
NTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTIxRTMxQzQ0MTAwNzI1RjE4IC8qIENy
eXB0b0RpZ2VzdC5oICovOyB9OwogCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRv
RGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMDlEMDU1MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21t
b25DcnlwdG8uY3BwICovOyB9OwogCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmln
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1
NzFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmggKi87IH07CisJCUExMDI2NThFMUY1NjdFOUQw
MEI0Qzg0NCAvKiBISVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTAyNjU4RDFGNTY3RTlEMDBCNEM4NDQgLyogSElTZXJ2aWNlc1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEw
MEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMCw3IEBACiAJ
CTFDMDlEMDYzMUUzMUVDMzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDNjdDRUExMUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJF
IC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVy
c2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1OEQxRjU2
N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElTZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBF
REI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBL
aWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2ls
bFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMSw2ICszMzMs
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oICovLAogCQkJCTBDNzc4NTcxMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggKi8sCisJCQkJQTEwMjY1OEQxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1NzMxRjQ1MTMwRjAwRjRFQkI2IC8qIE1lZGlhUmVtb3RlU1BJLmgg
Ki8sCiAJCQkJQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCkBA
IC01MDAsNiArNTAzLDcgQEAKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURl
dGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMz
MTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3
MDAyRUFDMDIgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEw
MjY1OEUxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlPU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8qIElPUFNMaWJTUEkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJ
U2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWYzNWRjZDRkMDNhNTdhMDg2YjBhMzY1ZGZiMzlkZGZmY2M4MTk4
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNl
cnZpY2VzU1BJLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPEhJU2VydmljZXMvQVhU
ZXh0TWFya2VyLmg+CisKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0FYVGV4dE1h
cmtlciAqQVhUZXh0TWFya2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19BWFRleHRNYXJr
ZXJSYW5nZSAqQVhUZXh0TWFya2VyUmFuZ2VSZWY7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitD
RlR5cGVJRCBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKTsKK0NGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CitBWFRleHRNYXJrZXJSZWYgQVhUZXh0TWFya2VyQ3JlYXRlKENGQWxs
b2NhdG9yUmVmLCBjb25zdCBVSW50OCogYnl0ZXMsIENGSW5kZXggbGVuZ3RoKTsKK0NGSW5kZXgg
QVhUZXh0TWFya2VyR2V0TGVuZ3RoKEFYVGV4dE1hcmtlclJlZik7Citjb25zdCBVSW50OCogQVhU
ZXh0TWFya2VyR2V0Qnl0ZVB0cihBWFRleHRNYXJrZXJSZWYpOworQVhUZXh0TWFya2VyUmFuZ2VS
ZWYgQVhUZXh0TWFya2VyUmFuZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIEFYVGV4dE1hcmtlclJl
ZiBzdGFydE1hcmtlciwgQVhUZXh0TWFya2VyUmVmIGVuZE1hcmtlcik7CitBWFRleHRNYXJrZXJS
ZWYgQVhUZXh0TWFya2VyUmFuZ2VDb3B5U3RhcnRNYXJrZXIoQVhUZXh0TWFya2VyUmFuZ2VSZWYp
OworQVhUZXh0TWFya2VyUmVmIEFYVGV4dE1hcmtlclJhbmdlQ29weUVuZE1hcmtlcihBWFRleHRN
YXJrZXJSYW5nZVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaAppbmRleCBjNjgwNzk4NDY2
NWMxOGNjNjJlNTdiM2M1ZjZmYTg2ZDkxNTk2NjVmLi4wZTg3MDBmZjdhNjg3ZWE0MTQ3N2JlOWY3
ZWIwYzU3YjZmZjE1MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
bWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oCkBAIC0zNCw5ICszNCwyNiBAQAogQGludGVyZmFjZSBO
U0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgOiBOU09iamVjdAogCiArICh2b2lkKXNldFJl
bW90ZVVJQXBwOihCT09MKWZsYWc7CisrIChOU0RhdGEgKilyZW1vdGVUb2tlbkZvckxvY2FsVUlF
bGVtZW50OihpZClsb2NhbFVJRWxlbWVudDsKKysgKHZvaWQpcmVnaXN0ZXJSZW1vdGVVSVByb2Nl
c3NJZGVudGlmaWVyOihwaWRfdClwaWQ7CisrICh2b2lkKXVucmVnaXN0ZXJSZW1vdGVVSVByb2Nl
c3NJZGVudGlmaWVyOihwaWRfdClwaWQ7CisKKy0gKGlkKWluaXRXaXRoUmVtb3RlVG9rZW46KE5T
RGF0YSAqKXJlbW90ZVRva2VuOworLSAocGlkX3QpcHJvY2Vzc0lkZW50aWZpZXI7CistICh2b2lk
KWFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjoocGlkX3QpcHJlc2Vu
dGVyUElEOworCitAcHJvcGVydHkgKHJldGFpbikgaWQgd2luZG93VUlFbGVtZW50OworQHByb3Bl
cnR5IChyZXRhaW4pIGlkIHRvcExldmVsVUlFbGVtZW50OwogCiBAZW5kCiAKICNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBOU0Fj
Y2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKTsKK3ZvaWQgTlNBY2Nlc3NpYmlsaXR5VW5y
ZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KGlkIGVsZW1lbnQpOworCitXVEZfRVhURVJOX0Nf
RU5ECisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMjM3OTc1MWI4ZGE4ZjIx
MGY4MWUwMDAyMTE4NmFiNDQ0YjBkZDQyNC4uZmNhMzA0MDkwMDA5NjU3OThmMzY4MTA1MmYwMDc0
NDIxOWY5MjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJSZW5kZXJP
YmplY3QuaCIKICNpbXBvcnQgIldlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgiCiAj
aW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0FjY2Vzc2liaWxpdHlTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5j
bHVkZSA8SElTZXJ2aWNlcy9BY2Nlc3NpYmlsaXR5UHJpdi5oPgpAQCAtNTA5LDcgKzUxMCw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1I
YW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiwgTm9kZSopCiB7Ci0gICAgd2tBY2Nl
c3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5SGFuZGxl
Rm9jdXNDaGFuZ2VkKCk7CiAgICAgLy8gQVhGb2N1c0NoYW5nZWQgaXMgYSB0ZXN0IHNwZWNpZmlj
IG5vdGlmaWNhdGlvbiBuYW1lIGFuZCBub3Qgc29tZXRoaW5nIGEgcmVhbCBBVCB3aWxsIGJlIGxp
c3RlbmluZyBmb3IKICAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25z
Rm9yVGVzdHMpKQogICAgICAgICBbcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246QCJBWEZvY3VzQ2hhbmdlZCIgdXNlckluZm86bmlsXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggZWVjMTdkOGQ5MTI2MmRi
MzZhZGRlMTNlOWRmOTkyMmEwOTlkZmIzOS4uZGNmNzQ3ZWQ2Y2ExNmJjZTJkMWY1NWY3ZmI5YzUz
YjI1MDE3MTFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTc4LDYgKzc4LDggQEAKICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldl
YkNvcmVPYmpDRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisj
aW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5o
PgogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykgfHwgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAj
aW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC00MDQsMTEgKzQwNiwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlIaWdoZXN0
RWRpdGFibGVBbmNlc3RvckF0dHJpYnV0ZSBAIkFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IiCiAj
ZW5kaWYKIAorZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlDcmVhdGVB
WFVJRWxlbWVudFJlZihpZCBlbGVtZW50KTsKKwogQGltcGxlbWVudGF0aW9uIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyCiAKIC0gKHZvaWQpdW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVt
ZW50CiB7Ci0gICAgd2tVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KHNlbGYpOworICAgIE5T
QWNjZXNzaWJpbGl0eVVucmVnaXN0ZXJVbmlxdWVJZEZvclVJRWxlbWVudChzZWxmKTsKIH0KIAog
LSAodm9pZClkZXRhY2gKQEAgLTQzNCwzNSArNDM4LDM1IEBAIC0gKGlkKWF0dGFjaG1lbnRWaWV3
CiAKIHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9iamVjdElzVGV4dE1hcmtlcihpZCBvYmopCiB7Ci0g
ICAgcmV0dXJuIG9iaiAhPSBuaWwgJiYgQ0ZHZXRUeXBlSUQob2JqKSA9PSB3a0dldEFYVGV4dE1h
cmtlclR5cGVJRCgpOworICAgIHJldHVybiBvYmogIT0gbmlsICYmIENGR2V0VHlwZUlEKG9iaikg
PT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9i
amVjdElzVGV4dE1hcmtlclJhbmdlKGlkIG9iaikKIHsKLSAgICByZXR1cm4gb2JqICE9IG5pbCAm
JiBDRkdldFR5cGVJRChvYmopID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKTsKKyAg
ICByZXR1cm4gb2JqICE9IG5pbCAmJiBDRkdldFR5cGVJRChvYmopID09IEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpZCBBWFRleHRNYXJrZXJSYW5nZShpZCBzdGFy
dE1hcmtlciwgaWQgZW5kTWFya2VyKQogewogICAgIEFTU0VSVChzdGFydE1hcmtlciAhPSBuaWwp
OwogICAgIEFTU0VSVChlbmRNYXJrZXIgIT0gbmlsKTsKLSAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQo
c3RhcnRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAgIEFTU0VSVChD
RkdldFR5cGVJRChlbmRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAg
IHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKChDRlR5
cGVSZWYpc3RhcnRNYXJrZXIsIChDRlR5cGVSZWYpZW5kTWFya2VyKSk7CisgICAgQVNTRVJUKENG
R2V0VHlwZUlEKHN0YXJ0TWFya2VyKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAg
QVNTRVJUKENGR2V0VHlwZUlEKGVuZE1hcmtlcikgPT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkp
OworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQVhUZXh0TWFya2VyUmVmKXN0YXJ0TWFya2VyLCAoQVhUZXh0
TWFya2VyUmVmKWVuZE1hcmtlcikpOwogfQogCiBzdGF0aWMgaWQgQVhUZXh0TWFya2VyUmFuZ2VT
dGFydChpZCByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UgIT0gbmlsKTsKLSAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQocmFuZ2UpID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKSk7Ci0g
ICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQo
cmFuZ2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocmFuZ2UpID09IEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJr
ZXJSYW5nZUNvcHlTdGFydE1hcmtlcigoQVhUZXh0TWFya2VyUmFuZ2VSZWYpcmFuZ2UpKTsKIH0K
IAogc3RhdGljIGlkIEFYVGV4dE1hcmtlclJhbmdlRW5kKGlkIHJhbmdlKQogewogICAgIEFTU0VS
VChyYW5nZSAhPSBuaWwpOwotICAgIEFTU0VSVChDRkdldFR5cGVJRChyYW5nZSkgPT0gd2tHZXRB
WFRleHRNYXJrZXJSYW5nZVR5cGVJRCgpKTsKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uo
d2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQocmFuZ2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBl
SUQocmFuZ2UpID09IEFYVGV4dE1hcmtlclJhbmdlR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBD
RkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNvcHlFbmRNYXJrZXIoKEFYVGV4dE1h
cmtlclJhbmdlUmVmKXJhbmdlKSk7CiB9CiAKICNwcmFnbWEgbWFyayBPdGhlciBoZWxwZXJzCkBA
IC01MzEsMTMgKzUzNSwzMSBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRDcml0ZXJp
YSBhY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dENyaXRlcmlhRm9yQ3JpdGVyaQogCiAjcHJhZ21hIG1h
cmsgVGV4dCBNYXJrZXIgaGVscGVycwogCitzdGF0aWMgQk9PTCBnZXRCeXRlc0Zyb21BWFRleHRN
YXJrZXIoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoKQor
eworICAgIGlmICghdGV4dE1hcmtlcikKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgQVhUZXh0
TWFya2VyUmVmIHJlZiA9IChBWFRleHRNYXJrZXJSZWYpdGV4dE1hcmtlcjsKKyAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQocmVmKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAgaWYgKENG
R2V0VHlwZUlEKHJlZikgIT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpCisgICAgICAgIHJldHVy
biBOTzsKKworICAgIENGSW5kZXggZXhwZWN0ZWRMZW5ndGggPSBsZW5ndGg7CisgICAgaWYgKEFY
VGV4dE1hcmtlckdldExlbmd0aChyZWYpICE9IGV4cGVjdGVkTGVuZ3RoKQorICAgICAgICByZXR1
cm4gTk87CisKKyAgICBtZW1jcHkoYnl0ZXMsIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIocmVmKSwg
bGVuZ3RoKTsKKyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgYm9vbCBpc1RleHRNYXJrZXJJ
Z25vcmVkKGlkIHRleHRNYXJrZXIpCiB7CiAgICAgaWYgKCF0ZXh0TWFya2VyKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0g
ICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtl
ckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhU
ZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJE
YXRhKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gdGV4dE1hcmtl
ckRhdGEuaWdub3JlZDsKQEAgLTU1NCw3ICs1NzYsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9i
amVjdCogYWNjZXNzaWJpbGl0eU9iamVjdEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2Fj
aAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBUZXh0TWFya2VyRGF0YSB0ZXh0
TWFya2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJr
ZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYgKCFn
ZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBzaXpl
b2YodGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGNhY2hlLT5hY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4dE1hcmtlckRhdGEodGV4dE1hcmtlckRh
dGEpOwogfQpAQCAtNTg2LDcgKzYwOCw3IEBAIHN0YXRpYyBpZCBzdGFydE9yRW5kVGV4dG1hcmtl
ckZvclJhbmdlKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBSZWZQdHI8UmFuZ2U+IHJhbmdlCiAgICAg
aWYgKCF0ZXh0TWFya2VyRGF0YS5heElEKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAg
IHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlcigmdGV4dE1hcmtl
ckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1Jl
bGVhc2UoQVhUZXh0TWFya2VyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50
OCopJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7CiB9CiAKIHN0YXRp
YyBpZCBuZXh0VGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNo
ZSwgQ2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQpCkBAIC01OTgsNyArNjIwLDcgQEAg
c3RhdGljIGlkIG5leHRUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDaGFyYWN0ZXJPZmZzZXQKICAgICBjYWNoZS0+dGV4dE1hcmtlckRhdGFGb3JOZXh0
Q2hhcmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlm
ICghdGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFY
VGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiBzdGF0aWMgaWQgcHJl
dmlvdXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBD
aGFyYWN0ZXJPZmZzZXQmIGNoYXJhY3Rlck9mZnNldCkKQEAgLTYxMCw3ICs2MzIsNyBAQCBzdGF0
aWMgaWQgcHJldmlvdXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDaGFyYWN0ZXJPZgogICAgIGNhY2hlLT50ZXh0TWFya2VyRGF0YUZvclByZXZpb3Vz
Q2hhcmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlm
ICghdGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFY
VGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiAtIChpZCluZXh0VGV4
dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldDooQ2hhcmFjdGVyT2Zmc2V0JiljaGFyYWN0ZXJPZmZz
ZXQKQEAgLTYzOCw3ICs2NjAsNyBAQCBzdGF0aWMgaWQgdGV4dE1hcmtlckZvckNoYXJhY3Rlck9m
ZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgQ2hhcmFjdGVyT2ZmcwogICAgIGlmICgh
dGV4dE1hcmtlckRhdGEuYXhJRCAmJiAhdGV4dE1hcmtlckRhdGEuaWdub3JlZCkKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVB
WFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7Cisg
ICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFYVGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJr
ZXJEYXRhKSkpOwogfQogCiAtIChSZWZQdHI8UmFuZ2U+KXJhbmdlRm9yVGV4dE1hcmtlclJhbmdl
OihpZCl0ZXh0TWFya2VyUmFuZ2UKQEAgLTY2Nyw3ICs2ODksNyBAQCBzdGF0aWMgQ2hhcmFjdGVy
T2Zmc2V0IGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2FjaGUs
IENGVHlwZQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCiAgICAgVGV4
dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0gICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0
YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBDaGFy
YWN0ZXJPZmZzZXQoKTsKICAgICAKICAgICByZXR1cm4gY2FjaGUtPmNoYXJhY3Rlck9mZnNldEZv
clRleHRNYXJrZXJEYXRhKHRleHRNYXJrZXJEYXRhKTsKQEAgLTY4Niw3ICs3MDgsNyBAQCBzdGF0
aWMgaWQgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihBWE9iamVjdENhY2hlKiBjYWNoZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aQogICAgIGlmICghdGV4dE1hcmtlckRhdGEpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRN
YXJrZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNpemVvZih0ZXh0TWFya2VyRGF0YS52YWx1
ZSgpKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRhdGEudmFsdWUo
KSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkpKSk7CiB9CiAKIC0gKGlkKXRleHRNYXJr
ZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKXZpc2libGVQb3MK
QEAgLTcwNCw3ICs3MjYsNyBAQCAtIChpZCl0ZXh0TWFya2VyRm9yRmlyc3RQb3NpdGlvbkluVGV4
dENvbnRyb2w6KEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50ICYpdGV4dAogICAgIGlmICghdGV4
dE1hcmtlckRhdGEpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2lu
Z1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNp
emVvZih0ZXh0TWFya2VyRGF0YS52YWx1ZSgpKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVs
ZWFzZShBWFRleHRNYXJrZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4
KikmdGV4dE1hcmtlckRhdGEudmFsdWUoKSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkp
KSk7CiB9CiAKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1h
cmtlcihBWE9iamVjdENhY2hlKiBjYWNoZSwgQ0ZUeXBlUmVmIHRleHRNYXJrZXIpCkBAIC03MTQs
NyArNzM2LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JUZXh0
TWFya2VyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBDRlR5cGUKICAgICBpZiAoIXRleHRNYXJrZXIp
CiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICBUZXh0TWFya2VyRGF0YSB0
ZXh0TWFya2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRN
YXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYg
KCFnZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigp
OwogICAgIAogICAgIHJldHVybiBjYWNoZS0+dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRh
dGEodGV4dE1hcmtlckRhdGEpOwpAQCAtOTgyLDcgKzEwMDQsNyBAQCBzdGF0aWMgdm9pZCBBWEF0
dHJpYnV0ZVN0cmluZ1NldEVsZW1lbnQoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyogYXR0clN0
cmluZywgTgogICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICAgICAgQVhVSUVsZW1lbnRSZWYgYXhFbGVtZW50ID0gd2tDcmVhdGVBWFVJRWxlbWVu
dFJlZihvYmplY3QtPndyYXBwZXIoKSk7CisgICAgICAgIEFYVUlFbGVtZW50UmVmIGF4RWxlbWVu
dCA9IE5TQWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKG9iamVjdC0+d3JhcHBlcigp
KTsKICAgICAgICAgaWYgKGF4RWxlbWVudCkgewogICAgICAgICAgICAgW2F0dHJTdHJpbmcgYWRk
QXR0cmlidXRlOmF0dHJpYnV0ZSB2YWx1ZTooaWQpYXhFbGVtZW50IHJhbmdlOnJhbmdlXTsKICAg
ICAgICAgICAgIENGUmVsZWFzZShheEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggMGEyNTFmYWQwMWU1
YmQxYmMyMDdkNDExZjRmZmRlMjVhNGU5MTA3OS4uOTNjZGZkMGM3YWIxZTk2ODAxMDZjYTY0ODU0
NDg1NjZiNzQ0NGU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xOTUsMTcgKzE5NSw2IEBAIGV4dGVybiBOU0N1
cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwogI2lmICFQTEFURk9STShJT1MpCiBleHRl
cm4gTlNBcnJheSAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpKHZvaWQp
OwogZXh0ZXJuIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRl
bnRpZmllckZvckxvY2FsZSkoTlNMb2NhbGUgKik7Ci0KLWV4dGVybiB2b2lkICgqd2tVbnJlZ2lz
dGVyVW5pcXVlSWRGb3JFbGVtZW50KShpZCBlbGVtZW50KTsKLWV4dGVybiB2b2lkICgqd2tBY2Nl
c3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKSh2b2lkKTsgICAgCi1leHRlcm4gQ0ZUeXBlSUQg
KCp3a0dldEFYVGV4dE1hcmtlclR5cGVJRCkodm9pZCk7Ci1leHRlcm4gQ0ZUeXBlSUQgKCp3a0dl
dEFYVGV4dE1hcmtlclJhbmdlVHlwZUlEKSh2b2lkKTsKLWV4dGVybiBDRlR5cGVSZWYgKCp3a0Ny
ZWF0ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENGVHlwZVJlZiBlbmQpOwot
ZXh0ZXJuIENGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQpKENGVHlwZVJl
ZiByYW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQp
KENGVHlwZVJlZiByYW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJr
ZXIpKGNvbnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLWV4dGVybiBCT09MICgqd2tHZXRC
eXRlc0Zyb21BWFRleHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkICpieXRlcywg
c2l6ZV90IGxlbmd0aCk7Ci1leHRlcm4gQVhVSUVsZW1lbnRSZWYgKCp3a0NyZWF0ZUFYVUlFbGVt
ZW50UmVmKShpZCBlbGVtZW50KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCiAjaWYgUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCBmZTM0MWFkZWZhZTM4MWZhZmRhMjUzNTJiMjk1MDE4
YTYwNDA0NDJiLi42NDlkN2E2N2NkNjc2NTRhMmEzZTM5NGU5MzVmOGM1MjZmYTM5MjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQpAQCAtODEsMTYgKzgxLDYgQEAgTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNo
YXIqKTsKIE5TQXJyYXkgKigqd2tTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKSh2
b2lkKTsKIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRp
ZmllckZvckxvY2FsZSkoTlNMb2NhbGUgKik7CiAKLXZvaWQgKCp3a1VucmVnaXN0ZXJVbmlxdWVJ
ZEZvckVsZW1lbnQpKGlkIGVsZW1lbnQpOwotdm9pZCAoKndrQWNjZXNzaWJpbGl0eUhhbmRsZUZv
Y3VzQ2hhbmdlZCkodm9pZCk7Ci1DRlR5cGVJRCAoKndrR2V0QVhUZXh0TWFya2VyVHlwZUlEKSh2
b2lkKTsKLUNGVHlwZUlEICgqd2tHZXRBWFRleHRNYXJrZXJSYW5nZVR5cGVJRCkodm9pZCk7Ci1D
RlR5cGVSZWYgKCp3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENG
VHlwZVJlZiBlbmQpOwotQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCko
Q0ZUeXBlUmVmIHJhbmdlKTsKLUNGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlRW5k
KShDRlR5cGVSZWYgcmFuZ2UpOwotQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJrZXIpKGNv
bnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLUJPT0wgKCp3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcikoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuZ3Ro
KTsKLUFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQogQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1l
RGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwg
Q0dGbG9hdCBlbGFwc2VkVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAppbmRleCAyNjY1ZDI0MGVkM2NhODQyZDUxNTMzMDkwMmFkY2RmNmQzMTM0M2Vk
Li5jMmNjYWZmMWYxODg5ZjBlNmQwZTFkODkyZWNiNDJiMGZjNDM3NTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CitPQkpDX0NMQVNTIE5TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudDsKIE9CSkNfQ0xBU1Mg
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5w
dXRDb250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CkBAIC02OTQsNyArNjk1LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9hbGxvd3NNYWduaWZpY2F0aW9uIHsgZmFsc2UgfTsKIAotICAgIFJl
dGFpblB0cjxpZD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7CisgICAgUmV0YWluUHRyPE5T
QWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7
CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1fcHJvbWlzZWRJbWFnZTsKICAgICBTdHJp
bmcgbV9wcm9taXNlZEZpbGVuYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCA3ZGE5OTIyZTMxZGE0NGVlMGZhZDQ3NDg3MTRjNmVlODgwN2Rj
M2M0Li5lMjBlZGJlMGZlM2YxYzc2MDViMGQ2YzAwY2E4N2RkMTc1MmMzOGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTEsNiArOTEsNyBA
QAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KQEAgLTMyODIsNyArMzI4Myw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VE
cmFnZ2VkRXZlbnRzKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBY2Nlc3NpYmlsaXR5V2ViUHJv
Y2Vzc1Rva2VuKE5TRGF0YSAqZGF0YSkKIHsKLSAgICBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGls
ZCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CisgICAgbV9yZW1vdGVBY2Nlc3Np
YmlsaXR5Q2hpbGQgPSBkYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1v
dGVVSUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZGF0YV0pIDogbmlsOwogICAg
IHVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb24odHJ1ZSk7CiB9CiAKQEAgLTMy
OTUsMTggKzMyOTYsMjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJp
bGl0eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2VzcykKICAgICBpZiAocmVnaXN0ZXJQ
cm9jZXNzKQogICAgICAgICBwaWQgPSBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRpZmll
cigpOwogICAgIGVsc2UgaWYgKCFyZWdpc3RlclByb2Nlc3MpIHsKLSAgICAgICAgcGlkID0gV0tB
WFJlbW90ZVByb2Nlc3NJZGVudGlmaWVyKG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgp
KTsKKyAgICAgICAgcGlkID0gW21fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkIHByb2Nlc3NJZGVu
dGlmaWVyXTsKICAgICAgICAgbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBuaWw7CiAgICAg
fQotICAgIGlmIChwaWQpCi0gICAgICAgIFdLQVhSZWdpc3RlclJlbW90ZVByb2Nlc3MocmVnaXN0
ZXJQcm9jZXNzLCBwaWQpOworICAgIGlmICghcGlkKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAocmVnaXN0ZXJQcm9jZXNzKQorICAgICAgICBbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVt
ZW50IHJlZ2lzdGVyUmVtb3RlVUlQcm9jZXNzSWRlbnRpZmllcjpwaWRdOworICAgIGVsc2UKKyAg
ICAgICAgW05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCB1bnJlZ2lzdGVyUmVtb3RlVUlQ
cm9jZXNzSWRlbnRpZmllcjpwaWRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmls
aXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKQogewogICAgIC8vIEluaXRpYWxpemUgcmVtb3Rl
IGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUgd2luZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJs
aXNoZWQuCi0gICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5G
b3JFbGVtZW50KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7Ci0gICAgTlNEYXRhICpyZW1vdGVX
aW5kb3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQoW21fdmlldyB3aW5kb3ddKTsK
KyAgICBOU0RhdGEgKnJlbW90ZUVsZW1lbnRUb2tlbiA9IFtOU0FjY2Vzc2liaWxpdHlSZW1vdGVV
SUVsZW1lbnQgcmVtb3RlVG9rZW5Gb3JMb2NhbFVJRWxlbWVudDptX3ZpZXcuZ2V0QXV0b3JlbGVh
c2VkKCldOworICAgIE5TRGF0YSAqcmVtb3RlV2luZG93VG9rZW4gPSBbTlNBY2Nlc3NpYmlsaXR5
UmVtb3RlVUlFbGVtZW50IHJlbW90ZVRva2VuRm9yTG9jYWxVSUVsZW1lbnQ6W21fdmlldyB3aW5k
b3ddXTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBDOjpEYXRhUmVm
ZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVFbGVtZW50VG9r
ZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsKICAgICBJUEM6OkRhdGFS
ZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5k
b3dUb2tlbiBsZW5ndGhdKTsKICAgICBtX3BhZ2UtPnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJp
bGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KaW5kZXggMWU5NjIzMDdhN2Y5OTk4ZTU3MjdhMzFjMDkyZmI5NGQwNGZh
ZWUxZC4uNDRkYzdlY2IzNjIwZThmNDUxNDJlYjM3Yzc4NzVhZGNiM2I5NDEyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTgzLDE2ICs4Myw2IEBAIHZvaWQgSW5pdFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7
CiAgICAgICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7CiAgICAg
ICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2Fs
ZSk7Ci0gICAgICAgIElOSVQoR2V0QVhUZXh0TWFya2VyVHlwZUlEKTsKLSAgICAgICAgSU5JVChH
ZXRBWFRleHRNYXJrZXJSYW5nZVR5cGVJRCk7Ci0gICAgICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFy
a2VyKTsKLSAgICAgICAgSU5JVChHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpOwotICAgICAgICBJ
TklUKENyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKTsKLSAgICAgICAgSU5JVChDb3B5QVhUZXh0TWFy
a2VyUmFuZ2VTdGFydCk7Ci0gICAgICAgIElOSVQoQ29weUFYVGV4dE1hcmtlclJhbmdlRW5kKTsK
LSAgICAgICAgSU5JVChBY2Nlc3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKTsKLSAgICAgICAg
SU5JVChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0gICAgICAgIElOSVQoVW5yZWdpc3RlclVuaXF1
ZUlkRm9yRWxlbWVudCk7CiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEp
OwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKICAgICAgICAg
SU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDc4ZjE4ZjZkMWY4MTgwMTMxZDkxMjBkYjA5
MDIzMzBhY2Q1NjZiNDguLjhmNDdlMmE2ZTA5NDBlODlmZTdjNjAxMGI0NTA3YjM5MTE2ZWE5MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCkBAIC00NSw2
ICs0NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2Nyb2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8d3RmL09iamNS
dW50aW1lRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTQsNyArNTUs
NyBAQCBAaW1wbGVtZW50YXRpb24gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdAogCiAtICh2
b2lkKWRlYWxsb2MKIHsKLSAgICBXS1VucmVnaXN0ZXJVbmlxdWVJZEZvckVsZW1lbnQoc2VsZik7
CisgICAgTlNBY2Nlc3NpYmlsaXR5VW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KHNlbGYp
OwogICAgIFttX3BhcmVudCByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmlu
ZGV4IGQ3MGM5NWFlODdkNTQ5YzcxNzZjMWYyZmYzNTcwM2NkMzQwOGUyYmEuLmU4YTA4ZmI2MThk
N2VmZTU0Yjk4ZGY0NmE5ODcxMDZkMDg5MzhmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC05MSw2ICs5MSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9TZXRG
b3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTEw
OCwxMSArMTA5LDEyIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogICAg
IC8vIEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KICAgICBwaWRfdCBwaWQg
PSBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBXS0FYSW5pdGlhbGl6
ZUVsZW1lbnRXaXRoUHJlc2VudGVyUGlkKG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCwgcGlkKTsK
KyAgICBpZiAoW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjopXSkKKyAg
ICAgICAgW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0UHJlc2VudGVy
UHJvY2Vzc0lkZW50aWZpZXI6cGlkXTsKICAgICBbbW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50IHNl
dFdlYlBhZ2U6dGhpc107CiAgICAgCiAgICAgLy8gc2VuZCBkYXRhIGJhY2sgb3ZlcgotICAgIE5T
RGF0YSogcmVtb3RlVG9rZW4gPSAoTlNEYXRhICopV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudCht
b2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQpOyAKKyAgICBOU0RhdGEqIHJlbW90ZVRva2VuID0gW05T
QWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCByZW1vdGVUb2tlbkZvckxvY2FsVUlFbGVtZW50
Om1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudF07CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFU
b2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihbcmVtb3RlVG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVRva2VuIGxlbmd0aF0pOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRv
a2VuKGRhdGFUb2tlbikpOwogICAgIG1fbW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50ID0gbW9ja0Fj
Y2Vzc2liaWxpdHlFbGVtZW50OwpAQCAtNjE4LDEzICs2MjAsMTQgQEAgYm9vbCBXZWJQYWdlOjpw
ZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYp
CiAKIHZvaWQgV2ViUGFnZTo6cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZWxlbWVudFRva2VuLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHdpbmRvd1Rva2VuKQogewotICAgIE5TRGF0YSogZWxlbWVudFRva2VuRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczplbGVtZW50VG9rZW4uZGF0YSgpIGxlbmd0aDplbGVtZW50VG9r
ZW4uc2l6ZSgpXTsKLSAgICBOU0RhdGEqIHdpbmRvd1Rva2VuRGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhCeXRlczp3aW5kb3dUb2tlbi5kYXRhKCkgbGVuZ3RoOndpbmRvd1Rva2VuLnNpemUoKV07Ci0g
ICAgaWQgcmVtb3RlRWxlbWVudCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZWxlbWVudFRv
a2VuRGF0YSk7Ci0gICAgaWQgcmVtb3RlV2luZG93ID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tl
bih3aW5kb3dUb2tlbkRhdGEpOwotICAgIFdLQVhTZXRXaW5kb3dGb3JSZW1vdGVFbGVtZW50KHJl
bW90ZVdpbmRvdywgcmVtb3RlRWxlbWVudCk7Ci0gICAgCi0gICAgW2FjY2Vzc2liaWxpdHlSZW1v
dGVPYmplY3QoKSBzZXRSZW1vdGVQYXJlbnQ6cmVtb3RlRWxlbWVudF07CisgICAgTlNEYXRhICpl
bGVtZW50VG9rZW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmVsZW1lbnRUb2tlbi5kYXRh
KCkgbGVuZ3RoOmVsZW1lbnRUb2tlbi5zaXplKCldOworICAgIE5TRGF0YSAqd2luZG93VG9rZW5E
YXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndpbmRvd1Rva2VuLmRhdGEoKSBsZW5ndGg6d2lu
ZG93VG9rZW4uc2l6ZSgpXTsKKyAgICBhdXRvIHJlbW90ZUVsZW1lbnQgPSBlbGVtZW50VG9rZW5E
YXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgYWxs
b2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZWxlbWVudFRva2VuRGF0YV0pIDogbmlsOworICAgIGF1
dG8gcmVtb3RlV2luZG93ID0gd2luZG93VG9rZW5EYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0Fj
Y2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46d2lu
ZG93VG9rZW5EYXRhXSkgOiBuaWw7CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0V2luZG93VUlFbGVt
ZW50OnJlbW90ZVdpbmRvdy5nZXQoKV07CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0VG9wTGV2ZWxV
SUVsZW1lbnQ6cmVtb3RlV2luZG93LmdldCgpXTsKKworICAgIFthY2Nlc3NpYmlsaXR5UmVtb3Rl
T2JqZWN0KCkgc2V0UmVtb3RlUGFyZW50OnJlbW90ZUVsZW1lbnQuZ2V0KCldOwogfQogCiB2b2lk
IFdlYlBhZ2U6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lLCBib29sJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZWMy
NzRkZGZlNzk3MTNkZTkzYTU0YTVlYzhiNGY5ODAwOGI0ZDFiYS4uZDQ1NTE2ZjVlZWUxYzA4MmM5
ODI4ZDllNzQ3NGVjOTY4OWM0N2I1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtOTEs
MTYgKzkxLDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoQ3Vyc29yKTsKICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMp
OwogICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxv
Y2FsZSk7Ci0gICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwotICAgIElOSVQoR2V0QVhU
ZXh0TWFya2VyUmFuZ2VUeXBlSUQpOwotICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFya2VyKTsKLSAg
ICBJTklUKEdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik7Ci0gICAgSU5JVChDcmVhdGVBWFRleHRN
YXJrZXJSYW5nZSk7Ci0gICAgSU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCk7Ci0gICAg
SU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQpOwotICAgIElOSVQoQWNjZXNzaWJpbGl0eUhh
bmRsZUZvY3VzQ2hhbmdlZCk7Ci0gICAgSU5JVChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0gICAg
SU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KTsKICNlbmRpZgogCiAjaWYgIVBMQVRG
T1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319351</attachid>
            <date>2017-08-30 01:08:16 -0700</date>
            <delta_ts>2017-08-30 10:12:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176093-20170830010816.patch</filename>
            <type>text/plain</type>
            <size>33756</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uNDhmMmJhYWFhYzQzZDM3OTQwYWJjMmIzZDA4MzQw
ZmY5NDBhYzExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA4LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nl
c3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAg
ICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHVucmVnaXN0ZXJVbmlxdWVJZEZv
clVJRWxlbWVudF0pOgorICAgICAgICAoQVhPYmplY3RJc1RleHRNYXJrZXIpOgorICAgICAgICAo
QVhPYmplY3RJc1RleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZSk6
CisgICAgICAgIChBWFRleHRNYXJrZXJSYW5nZVN0YXJ0KToKKyAgICAgICAgKEFYVGV4dE1hcmtl
clJhbmdlRW5kKToKKyAgICAgICAgKGdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik6CisgICAgICAg
IChpc1RleHRNYXJrZXJJZ25vcmVkKToKKyAgICAgICAgKGFjY2Vzc2liaWxpdHlPYmplY3RGb3JU
ZXh0TWFya2VyKToKKyAgICAgICAgKHN0YXJ0T3JFbmRUZXh0bWFya2VyRm9yUmFuZ2UpOgorICAg
ICAgICAobmV4dFRleHRNYXJrZXJGb3JDaGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAocHJldmlv
dXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKHRleHRNYXJrZXJGb3JD
aGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAoY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcik6
CisgICAgICAgICh0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlckZvckZpcnN0UG9zaXRpb25JblRl
eHRDb250cm9sOl0pOgorICAgICAgICAodmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcik6Cisg
ICAgICAgIChBWEF0dHJpYnV0ZVN0cmluZ1NldEVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisKIDIwMTctMDgtMjkgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjEwMjg3KSBPbiBk
cm9wLCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dCIpIHJldHVybnMgYW4gZW1wdHkg
c3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDAxNGEx
OWVhZTRmY2FhMDNjOTY0NjBiZGMyOWI0NjFiNmFiNTBhMTYuLjI1YTJhM2Y1NTg2Zjg1YTRmYjgz
OThlYTI1MDkyZjFkMGQyNzQ2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBb
TWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNl
IGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL21h
Yy9ISVNlcnZpY2VzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9zcGkvbWFjL05TQWNjZXNz
aWJpbGl0eVNQSS5oOgorCiAyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwu
eGNvZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkMzI1ZTU5NTcyYjhlMTk5M2I3YmYxMDU0MTVmZjZmZjhi
ZDQyNWUuLjgyODcxNTc3OTg2MWZmZTkwZjk1M2Y1ZGZmMGFkMGUwMmM3MDlmMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIEFjY2Vzc2liaWxpdHktcmVsYXRlZCBXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJV
SVByb2Nlc3NUb2tlbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxp
dHlUb2tlbnMpOgorCiAyMDE3LTA4LTI5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgbG9naWMgZG9lcyBub3QgdW5k
ZXJzdGFuZCBjdXN0b20gV2Vic2l0ZURhdGEgc3RvcmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0YTI0ZjhiOTk4NDJjZi4uNmU4ZjQ1
MWMwM2VlODI2MzAxODA3Y2E0ZTFiMmUzNmIzMGRkYTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA4LTMwICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nlc3NpYmlsaXR5LXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRl
cmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6CisKIDIwMTct
MDgtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVw
c3RyZWFtIFdLU2V0TWV0YWRhdGFVUkwoKSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVmZGU3MGJhZjA1ODc0MzNmNDcwYTMzZWZmOGFlZmY4YWFmNTM1ZTYuLmY2ZjkyNzBjOGVlNmRh
ODkxYzZiZjdhMmM0Nzc2ZmNlOTQ3NTZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk3LDYgKzk3LDcgQEAKIAkJMUMwOUQw
NTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTIxRTMxQzQ0MTAwNzI1RjE4IC8qIENy
eXB0b0RpZ2VzdC5oICovOyB9OwogCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRv
RGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMDlEMDU1MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21t
b25DcnlwdG8uY3BwICovOyB9OwogCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmln
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1
NzFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmggKi87IH07CisJCUExMDI2NThFMUY1NjdFOUQw
MEI0Qzg0NCAvKiBISVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTAyNjU4RDFGNTY3RTlEMDBCNEM4NDQgLyogSElTZXJ2aWNlc1NQ
SS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1
NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVB
MDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9
OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEw
MEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMCw3IEBACiAJ
CTFDMDlEMDYzMUUzMUVDMzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDNjdDRUExMUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJF
IC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVy
c2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1OEQxRjU2
N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElTZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURDRTFGNTUyOEVDMDBF
REI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0YWRhdGFTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBL
aWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2ls
bFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMSw2ICszMzMs
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oICovLAogCQkJCTBDNzc4NTcxMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggKi8sCisJCQkJQTEwMjY1OEQxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8sCiAJCQkJMEM3Nzg1NzMxRjQ1MTMwRjAwRjRFQkI2IC8qIE1lZGlhUmVtb3RlU1BJLmgg
Ki8sCiAJCQkJQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCkBA
IC01MDAsNiArNTAzLDcgQEAKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURl
dGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMz
MTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3
MDAyRUFDMDIgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEw
MjY1OEUxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlPU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8qIElPUFNMaWJTUEkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJ
U2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2Vz
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWYzNWRjZDRkMDNhNTdhMDg2YjBhMzY1ZGZiMzlkZGZmY2M4MTk4
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNl
cnZpY2VzU1BJLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPEhJU2VydmljZXMvQVhU
ZXh0TWFya2VyLmg+CisKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0FYVGV4dE1h
cmtlciAqQVhUZXh0TWFya2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19BWFRleHRNYXJr
ZXJSYW5nZSAqQVhUZXh0TWFya2VyUmFuZ2VSZWY7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitD
RlR5cGVJRCBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKTsKK0NGVHlwZUlEIEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CitBWFRleHRNYXJrZXJSZWYgQVhUZXh0TWFya2VyQ3JlYXRlKENGQWxs
b2NhdG9yUmVmLCBjb25zdCBVSW50OCogYnl0ZXMsIENGSW5kZXggbGVuZ3RoKTsKK0NGSW5kZXgg
QVhUZXh0TWFya2VyR2V0TGVuZ3RoKEFYVGV4dE1hcmtlclJlZik7Citjb25zdCBVSW50OCogQVhU
ZXh0TWFya2VyR2V0Qnl0ZVB0cihBWFRleHRNYXJrZXJSZWYpOworQVhUZXh0TWFya2VyUmFuZ2VS
ZWYgQVhUZXh0TWFya2VyUmFuZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIEFYVGV4dE1hcmtlclJl
ZiBzdGFydE1hcmtlciwgQVhUZXh0TWFya2VyUmVmIGVuZE1hcmtlcik7CitBWFRleHRNYXJrZXJS
ZWYgQVhUZXh0TWFya2VyUmFuZ2VDb3B5U3RhcnRNYXJrZXIoQVhUZXh0TWFya2VyUmFuZ2VSZWYp
OworQVhUZXh0TWFya2VyUmVmIEFYVGV4dE1hcmtlclJhbmdlQ29weUVuZE1hcmtlcihBWFRleHRN
YXJrZXJSYW5nZVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaAppbmRleCBjNjgwNzk4NDY2
NWMxOGNjNjJlNTdiM2M1ZjZmYTg2ZDkxNTk2NjVmLi4wZTg3MDBmZjdhNjg3ZWE0MTQ3N2JlOWY3
ZWIwYzU3YjZmZjE1MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
bWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oCkBAIC0zNCw5ICszNCwyNiBAQAogQGludGVyZmFjZSBO
U0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgOiBOU09iamVjdAogCiArICh2b2lkKXNldFJl
bW90ZVVJQXBwOihCT09MKWZsYWc7CisrIChOU0RhdGEgKilyZW1vdGVUb2tlbkZvckxvY2FsVUlF
bGVtZW50OihpZClsb2NhbFVJRWxlbWVudDsKKysgKHZvaWQpcmVnaXN0ZXJSZW1vdGVVSVByb2Nl
c3NJZGVudGlmaWVyOihwaWRfdClwaWQ7CisrICh2b2lkKXVucmVnaXN0ZXJSZW1vdGVVSVByb2Nl
c3NJZGVudGlmaWVyOihwaWRfdClwaWQ7CisKKy0gKGlkKWluaXRXaXRoUmVtb3RlVG9rZW46KE5T
RGF0YSAqKXJlbW90ZVRva2VuOworLSAocGlkX3QpcHJvY2Vzc0lkZW50aWZpZXI7CistICh2b2lk
KWFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjoocGlkX3QpcHJlc2Vu
dGVyUElEOworCitAcHJvcGVydHkgKHJldGFpbikgaWQgd2luZG93VUlFbGVtZW50OworQHByb3Bl
cnR5IChyZXRhaW4pIGlkIHRvcExldmVsVUlFbGVtZW50OwogCiBAZW5kCiAKICNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBOU0Fj
Y2Vzc2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKTsKK3ZvaWQgTlNBY2Nlc3NpYmlsaXR5VW5y
ZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KGlkIGVsZW1lbnQpOworCitXVEZfRVhURVJOX0Nf
RU5ECisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMjM3OTc1MWI4ZGE4ZjIx
MGY4MWUwMDAyMTE4NmFiNDQ0YjBkZDQyNC4uZmNhMzA0MDkwMDA5NjU3OThmMzY4MTA1MmYwMDc0
NDIxOWY5MjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJSZW5kZXJP
YmplY3QuaCIKICNpbXBvcnQgIldlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgiCiAj
aW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0FjY2Vzc2liaWxpdHlTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5j
bHVkZSA8SElTZXJ2aWNlcy9BY2Nlc3NpYmlsaXR5UHJpdi5oPgpAQCAtNTA5LDcgKzUxMCw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1I
YW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiwgTm9kZSopCiB7Ci0gICAgd2tBY2Nl
c3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5SGFuZGxl
Rm9jdXNDaGFuZ2VkKCk7CiAgICAgLy8gQVhGb2N1c0NoYW5nZWQgaXMgYSB0ZXN0IHNwZWNpZmlj
IG5vdGlmaWNhdGlvbiBuYW1lIGFuZCBub3Qgc29tZXRoaW5nIGEgcmVhbCBBVCB3aWxsIGJlIGxp
c3RlbmluZyBmb3IKICAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25z
Rm9yVGVzdHMpKQogICAgICAgICBbcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246QCJBWEZvY3VzQ2hhbmdlZCIgdXNlckluZm86bmlsXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggZWVjMTdkOGQ5MTI2MmRi
MzZhZGRlMTNlOWRmOTkyMmEwOTlkZmIzOS4uZGNmNzQ3ZWQ2Y2ExNmJjZTJkMWY1NWY3ZmI5YzUz
YjI1MDE3MTFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTc4LDYgKzc4LDggQEAKICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldl
YkNvcmVPYmpDRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisj
aW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5o
PgogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykgfHwgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAj
aW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC00MDQsMTEgKzQwNiwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlIaWdoZXN0
RWRpdGFibGVBbmNlc3RvckF0dHJpYnV0ZSBAIkFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IiCiAj
ZW5kaWYKIAorZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlDcmVhdGVB
WFVJRWxlbWVudFJlZihpZCBlbGVtZW50KTsKKwogQGltcGxlbWVudGF0aW9uIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyCiAKIC0gKHZvaWQpdW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVt
ZW50CiB7Ci0gICAgd2tVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KHNlbGYpOworICAgIE5T
QWNjZXNzaWJpbGl0eVVucmVnaXN0ZXJVbmlxdWVJZEZvclVJRWxlbWVudChzZWxmKTsKIH0KIAog
LSAodm9pZClkZXRhY2gKQEAgLTQzNCwzNSArNDM4LDM1IEBAIC0gKGlkKWF0dGFjaG1lbnRWaWV3
CiAKIHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9iamVjdElzVGV4dE1hcmtlcihpZCBvYmopCiB7Ci0g
ICAgcmV0dXJuIG9iaiAhPSBuaWwgJiYgQ0ZHZXRUeXBlSUQob2JqKSA9PSB3a0dldEFYVGV4dE1h
cmtlclR5cGVJRCgpOworICAgIHJldHVybiBvYmogIT0gbmlsICYmIENGR2V0VHlwZUlEKG9iaikg
PT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9i
amVjdElzVGV4dE1hcmtlclJhbmdlKGlkIG9iaikKIHsKLSAgICByZXR1cm4gb2JqICE9IG5pbCAm
JiBDRkdldFR5cGVJRChvYmopID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKTsKKyAg
ICByZXR1cm4gb2JqICE9IG5pbCAmJiBDRkdldFR5cGVJRChvYmopID09IEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpZCBBWFRleHRNYXJrZXJSYW5nZShpZCBzdGFy
dE1hcmtlciwgaWQgZW5kTWFya2VyKQogewogICAgIEFTU0VSVChzdGFydE1hcmtlciAhPSBuaWwp
OwogICAgIEFTU0VSVChlbmRNYXJrZXIgIT0gbmlsKTsKLSAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQo
c3RhcnRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAgIEFTU0VSVChD
RkdldFR5cGVJRChlbmRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAg
IHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKChDRlR5
cGVSZWYpc3RhcnRNYXJrZXIsIChDRlR5cGVSZWYpZW5kTWFya2VyKSk7CisgICAgQVNTRVJUKENG
R2V0VHlwZUlEKHN0YXJ0TWFya2VyKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAg
QVNTRVJUKENGR2V0VHlwZUlEKGVuZE1hcmtlcikgPT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkp
OworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQVhUZXh0TWFya2VyUmVmKXN0YXJ0TWFya2VyLCAoQVhUZXh0
TWFya2VyUmVmKWVuZE1hcmtlcikpOwogfQogCiBzdGF0aWMgaWQgQVhUZXh0TWFya2VyUmFuZ2VT
dGFydChpZCByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UgIT0gbmlsKTsKLSAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQocmFuZ2UpID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKSk7Ci0g
ICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQo
cmFuZ2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocmFuZ2UpID09IEFYVGV4dE1hcmtlclJh
bmdlR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJr
ZXJSYW5nZUNvcHlTdGFydE1hcmtlcigoQVhUZXh0TWFya2VyUmFuZ2VSZWYpcmFuZ2UpKTsKIH0K
IAogc3RhdGljIGlkIEFYVGV4dE1hcmtlclJhbmdlRW5kKGlkIHJhbmdlKQogewogICAgIEFTU0VS
VChyYW5nZSAhPSBuaWwpOwotICAgIEFTU0VSVChDRkdldFR5cGVJRChyYW5nZSkgPT0gd2tHZXRB
WFRleHRNYXJrZXJSYW5nZVR5cGVJRCgpKTsKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uo
d2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQocmFuZ2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBl
SUQocmFuZ2UpID09IEFYVGV4dE1hcmtlclJhbmdlR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBD
RkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNvcHlFbmRNYXJrZXIoKEFYVGV4dE1h
cmtlclJhbmdlUmVmKXJhbmdlKSk7CiB9CiAKICNwcmFnbWEgbWFyayBPdGhlciBoZWxwZXJzCkBA
IC01MzEsMTMgKzUzNSwzMSBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRDcml0ZXJp
YSBhY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dENyaXRlcmlhRm9yQ3JpdGVyaQogCiAjcHJhZ21hIG1h
cmsgVGV4dCBNYXJrZXIgaGVscGVycwogCitzdGF0aWMgQk9PTCBnZXRCeXRlc0Zyb21BWFRleHRN
YXJrZXIoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoKQor
eworICAgIGlmICghdGV4dE1hcmtlcikKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgQVhUZXh0
TWFya2VyUmVmIHJlZiA9IChBWFRleHRNYXJrZXJSZWYpdGV4dE1hcmtlcjsKKyAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQocmVmKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAgaWYgKENG
R2V0VHlwZUlEKHJlZikgIT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpCisgICAgICAgIHJldHVy
biBOTzsKKworICAgIENGSW5kZXggZXhwZWN0ZWRMZW5ndGggPSBsZW5ndGg7CisgICAgaWYgKEFY
VGV4dE1hcmtlckdldExlbmd0aChyZWYpICE9IGV4cGVjdGVkTGVuZ3RoKQorICAgICAgICByZXR1
cm4gTk87CisKKyAgICBtZW1jcHkoYnl0ZXMsIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIocmVmKSwg
bGVuZ3RoKTsKKyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgYm9vbCBpc1RleHRNYXJrZXJJ
Z25vcmVkKGlkIHRleHRNYXJrZXIpCiB7CiAgICAgaWYgKCF0ZXh0TWFya2VyKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0g
ICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtl
ckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhU
ZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJE
YXRhKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gdGV4dE1hcmtl
ckRhdGEuaWdub3JlZDsKQEAgLTU1NCw3ICs1NzYsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9i
amVjdCogYWNjZXNzaWJpbGl0eU9iamVjdEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2Fj
aAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBUZXh0TWFya2VyRGF0YSB0ZXh0
TWFya2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJr
ZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYgKCFn
ZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBzaXpl
b2YodGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGNhY2hlLT5hY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4dE1hcmtlckRhdGEodGV4dE1hcmtlckRh
dGEpOwogfQpAQCAtNTg2LDcgKzYwOCw3IEBAIHN0YXRpYyBpZCBzdGFydE9yRW5kVGV4dG1hcmtl
ckZvclJhbmdlKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBSZWZQdHI8UmFuZ2U+IHJhbmdlCiAgICAg
aWYgKCF0ZXh0TWFya2VyRGF0YS5heElEKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAg
IHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlcigmdGV4dE1hcmtl
ckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1Jl
bGVhc2UoQVhUZXh0TWFya2VyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50
OCopJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7CiB9CiAKIHN0YXRp
YyBpZCBuZXh0VGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNo
ZSwgQ2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQpCkBAIC01OTgsNyArNjIwLDcgQEAg
c3RhdGljIGlkIG5leHRUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDaGFyYWN0ZXJPZmZzZXQKICAgICBjYWNoZS0+dGV4dE1hcmtlckRhdGFGb3JOZXh0
Q2hhcmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlm
ICghdGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFY
VGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiBzdGF0aWMgaWQgcHJl
dmlvdXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBD
aGFyYWN0ZXJPZmZzZXQmIGNoYXJhY3Rlck9mZnNldCkKQEAgLTYxMCw3ICs2MzIsNyBAQCBzdGF0
aWMgaWQgcHJldmlvdXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDaGFyYWN0ZXJPZgogICAgIGNhY2hlLT50ZXh0TWFya2VyRGF0YUZvclByZXZpb3Vz
Q2hhcmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlm
ICghdGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
Q0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFY
VGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiAtIChpZCluZXh0VGV4
dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldDooQ2hhcmFjdGVyT2Zmc2V0JiljaGFyYWN0ZXJPZmZz
ZXQKQEAgLTYzOCw3ICs2NjAsNyBAQCBzdGF0aWMgaWQgdGV4dE1hcmtlckZvckNoYXJhY3Rlck9m
ZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgQ2hhcmFjdGVyT2ZmcwogICAgIGlmICgh
dGV4dE1hcmtlckRhdGEuYXhJRCAmJiAhdGV4dE1hcmtlckRhdGEuaWdub3JlZCkKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVB
WFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7Cisg
ICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFYVGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJr
ZXJEYXRhKSkpOwogfQogCiAtIChSZWZQdHI8UmFuZ2U+KXJhbmdlRm9yVGV4dE1hcmtlclJhbmdl
OihpZCl0ZXh0TWFya2VyUmFuZ2UKQEAgLTY2Nyw3ICs2ODksNyBAQCBzdGF0aWMgQ2hhcmFjdGVy
T2Zmc2V0IGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2FjaGUs
IENGVHlwZQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCiAgICAgVGV4
dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0gICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0
YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0
TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBDaGFy
YWN0ZXJPZmZzZXQoKTsKICAgICAKICAgICByZXR1cm4gY2FjaGUtPmNoYXJhY3Rlck9mZnNldEZv
clRleHRNYXJrZXJEYXRhKHRleHRNYXJrZXJEYXRhKTsKQEAgLTY4Niw3ICs3MDgsNyBAQCBzdGF0
aWMgaWQgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihBWE9iamVjdENhY2hlKiBjYWNoZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aQogICAgIGlmICghdGV4dE1hcmtlckRhdGEpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRN
YXJrZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNpemVvZih0ZXh0TWFya2VyRGF0YS52YWx1
ZSgpKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRhdGEudmFsdWUo
KSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkpKSk7CiB9CiAKIC0gKGlkKXRleHRNYXJr
ZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKXZpc2libGVQb3MK
QEAgLTcwNCw3ICs3MjYsNyBAQCAtIChpZCl0ZXh0TWFya2VyRm9yRmlyc3RQb3NpdGlvbkluVGV4
dENvbnRyb2w6KEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50ICYpdGV4dAogICAgIGlmICghdGV4
dE1hcmtlckRhdGEpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2lu
Z1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNp
emVvZih0ZXh0TWFya2VyRGF0YS52YWx1ZSgpKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVs
ZWFzZShBWFRleHRNYXJrZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4
KikmdGV4dE1hcmtlckRhdGEudmFsdWUoKSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkp
KSk7CiB9CiAKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1h
cmtlcihBWE9iamVjdENhY2hlKiBjYWNoZSwgQ0ZUeXBlUmVmIHRleHRNYXJrZXIpCkBAIC03MTQs
NyArNzM2LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JUZXh0
TWFya2VyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBDRlR5cGUKICAgICBpZiAoIXRleHRNYXJrZXIp
CiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICBUZXh0TWFya2VyRGF0YSB0
ZXh0TWFya2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRN
YXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYg
KCFnZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBz
aXplb2YodGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigp
OwogICAgIAogICAgIHJldHVybiBjYWNoZS0+dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRh
dGEodGV4dE1hcmtlckRhdGEpOwpAQCAtOTgyLDcgKzEwMDQsNyBAQCBzdGF0aWMgdm9pZCBBWEF0
dHJpYnV0ZVN0cmluZ1NldEVsZW1lbnQoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyogYXR0clN0
cmluZywgTgogICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICAgICAgQVhVSUVsZW1lbnRSZWYgYXhFbGVtZW50ID0gd2tDcmVhdGVBWFVJRWxlbWVu
dFJlZihvYmplY3QtPndyYXBwZXIoKSk7CisgICAgICAgIEFYVUlFbGVtZW50UmVmIGF4RWxlbWVu
dCA9IE5TQWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKG9iamVjdC0+d3JhcHBlcigp
KTsKICAgICAgICAgaWYgKGF4RWxlbWVudCkgewogICAgICAgICAgICAgW2F0dHJTdHJpbmcgYWRk
QXR0cmlidXRlOmF0dHJpYnV0ZSB2YWx1ZTooaWQpYXhFbGVtZW50IHJhbmdlOnJhbmdlXTsKICAg
ICAgICAgICAgIENGUmVsZWFzZShheEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggMGEyNTFmYWQwMWU1
YmQxYmMyMDdkNDExZjRmZmRlMjVhNGU5MTA3OS4uOTNjZGZkMGM3YWIxZTk2ODAxMDZjYTY0ODU0
NDg1NjZiNzQ0NGU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xOTUsMTcgKzE5NSw2IEBAIGV4dGVybiBOU0N1
cnNvciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwogI2lmICFQTEFURk9STShJT1MpCiBleHRl
cm4gTlNBcnJheSAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpKHZvaWQp
OwogZXh0ZXJuIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRl
bnRpZmllckZvckxvY2FsZSkoTlNMb2NhbGUgKik7Ci0KLWV4dGVybiB2b2lkICgqd2tVbnJlZ2lz
dGVyVW5pcXVlSWRGb3JFbGVtZW50KShpZCBlbGVtZW50KTsKLWV4dGVybiB2b2lkICgqd2tBY2Nl
c3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKSh2b2lkKTsgICAgCi1leHRlcm4gQ0ZUeXBlSUQg
KCp3a0dldEFYVGV4dE1hcmtlclR5cGVJRCkodm9pZCk7Ci1leHRlcm4gQ0ZUeXBlSUQgKCp3a0dl
dEFYVGV4dE1hcmtlclJhbmdlVHlwZUlEKSh2b2lkKTsKLWV4dGVybiBDRlR5cGVSZWYgKCp3a0Ny
ZWF0ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENGVHlwZVJlZiBlbmQpOwot
ZXh0ZXJuIENGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQpKENGVHlwZVJl
ZiByYW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQp
KENGVHlwZVJlZiByYW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJr
ZXIpKGNvbnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLWV4dGVybiBCT09MICgqd2tHZXRC
eXRlc0Zyb21BWFRleHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkICpieXRlcywg
c2l6ZV90IGxlbmd0aCk7Ci1leHRlcm4gQVhVSUVsZW1lbnRSZWYgKCp3a0NyZWF0ZUFYVUlFbGVt
ZW50UmVmKShpZCBlbGVtZW50KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCiAjaWYgUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQppbmRleCBmZTM0MWFkZWZhZTM4MWZhZmRhMjUzNTJiMjk1MDE4
YTYwNDA0NDJiLi42NDlkN2E2N2NkNjc2NTRhMmEzZTM5NGU5MzVmOGM1MjZmYTM5MjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5tbQpAQCAtODEsMTYgKzgxLDYgQEAgTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNo
YXIqKTsKIE5TQXJyYXkgKigqd2tTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKSh2
b2lkKTsKIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRp
ZmllckZvckxvY2FsZSkoTlNMb2NhbGUgKik7CiAKLXZvaWQgKCp3a1VucmVnaXN0ZXJVbmlxdWVJ
ZEZvckVsZW1lbnQpKGlkIGVsZW1lbnQpOwotdm9pZCAoKndrQWNjZXNzaWJpbGl0eUhhbmRsZUZv
Y3VzQ2hhbmdlZCkodm9pZCk7Ci1DRlR5cGVJRCAoKndrR2V0QVhUZXh0TWFya2VyVHlwZUlEKSh2
b2lkKTsKLUNGVHlwZUlEICgqd2tHZXRBWFRleHRNYXJrZXJSYW5nZVR5cGVJRCkodm9pZCk7Ci1D
RlR5cGVSZWYgKCp3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENG
VHlwZVJlZiBlbmQpOwotQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCko
Q0ZUeXBlUmVmIHJhbmdlKTsKLUNGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlRW5k
KShDRlR5cGVSZWYgcmFuZ2UpOwotQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJrZXIpKGNv
bnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLUJPT0wgKCp3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcikoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuZ3Ro
KTsKLUFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQogQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1l
RGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwg
Q0dGbG9hdCBlbGFwc2VkVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAppbmRleCAyNjY1ZDI0MGVkM2NhODQyZDUxNTMzMDkwMmFkY2RmNmQzMTM0M2Vk
Li5jMmNjYWZmMWYxODg5ZjBlNmQwZTFkODkyZWNiNDJiMGZjNDM3NTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CitPQkpDX0NMQVNTIE5TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudDsKIE9CSkNfQ0xBU1Mg
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5w
dXRDb250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CkBAIC02OTQsNyArNjk1LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9hbGxvd3NNYWduaWZpY2F0aW9uIHsgZmFsc2UgfTsKIAotICAgIFJl
dGFpblB0cjxpZD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7CisgICAgUmV0YWluUHRyPE5T
QWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7
CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1fcHJvbWlzZWRJbWFnZTsKICAgICBTdHJp
bmcgbV9wcm9taXNlZEZpbGVuYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCA3ZGE5OTIyZTMxZGE0NGVlMGZhZDQ3NDg3MTRjNmVlODgwN2Rj
M2M0Li5lMjBlZGJlMGZlM2YxYzc2MDViMGQ2YzAwY2E4N2RkMTc1MmMzOGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTEsNiArOTEsNyBA
QAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KQEAgLTMyODIsNyArMzI4Myw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VE
cmFnZ2VkRXZlbnRzKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBY2Nlc3NpYmlsaXR5V2ViUHJv
Y2Vzc1Rva2VuKE5TRGF0YSAqZGF0YSkKIHsKLSAgICBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGls
ZCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CisgICAgbV9yZW1vdGVBY2Nlc3Np
YmlsaXR5Q2hpbGQgPSBkYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1v
dGVVSUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZGF0YV0pIDogbmlsOwogICAg
IHVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb24odHJ1ZSk7CiB9CiAKQEAgLTMy
OTUsMTggKzMyOTYsMjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJp
bGl0eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2VzcykKICAgICBpZiAocmVnaXN0ZXJQ
cm9jZXNzKQogICAgICAgICBwaWQgPSBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRpZmll
cigpOwogICAgIGVsc2UgaWYgKCFyZWdpc3RlclByb2Nlc3MpIHsKLSAgICAgICAgcGlkID0gV0tB
WFJlbW90ZVByb2Nlc3NJZGVudGlmaWVyKG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgp
KTsKKyAgICAgICAgcGlkID0gW21fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkIHByb2Nlc3NJZGVu
dGlmaWVyXTsKICAgICAgICAgbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBuaWw7CiAgICAg
fQotICAgIGlmIChwaWQpCi0gICAgICAgIFdLQVhSZWdpc3RlclJlbW90ZVByb2Nlc3MocmVnaXN0
ZXJQcm9jZXNzLCBwaWQpOworICAgIGlmICghcGlkKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAocmVnaXN0ZXJQcm9jZXNzKQorICAgICAgICBbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVt
ZW50IHJlZ2lzdGVyUmVtb3RlVUlQcm9jZXNzSWRlbnRpZmllcjpwaWRdOworICAgIGVsc2UKKyAg
ICAgICAgW05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCB1bnJlZ2lzdGVyUmVtb3RlVUlQ
cm9jZXNzSWRlbnRpZmllcjpwaWRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmls
aXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKQogewogICAgIC8vIEluaXRpYWxpemUgcmVtb3Rl
IGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUgd2luZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJs
aXNoZWQuCi0gICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5G
b3JFbGVtZW50KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7Ci0gICAgTlNEYXRhICpyZW1vdGVX
aW5kb3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQoW21fdmlldyB3aW5kb3ddKTsK
KyAgICBOU0RhdGEgKnJlbW90ZUVsZW1lbnRUb2tlbiA9IFtOU0FjY2Vzc2liaWxpdHlSZW1vdGVV
SUVsZW1lbnQgcmVtb3RlVG9rZW5Gb3JMb2NhbFVJRWxlbWVudDptX3ZpZXcuZ2V0QXV0b3JlbGVh
c2VkKCldOworICAgIE5TRGF0YSAqcmVtb3RlV2luZG93VG9rZW4gPSBbTlNBY2Nlc3NpYmlsaXR5
UmVtb3RlVUlFbGVtZW50IHJlbW90ZVRva2VuRm9yTG9jYWxVSUVsZW1lbnQ6W21fdmlldyB3aW5k
b3ddXTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBDOjpEYXRhUmVm
ZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVFbGVtZW50VG9r
ZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsKICAgICBJUEM6OkRhdGFS
ZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5k
b3dUb2tlbiBsZW5ndGhdKTsKICAgICBtX3BhZ2UtPnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJp
bGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KaW5kZXggMWU5NjIzMDdhN2Y5OTk4ZTU3MjdhMzFjMDkyZmI5NGQwNGZh
ZWUxZC4uNDRkYzdlY2IzNjIwZThmNDUxNDJlYjM3Yzc4NzVhZGNiM2I5NDEyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTgzLDE2ICs4Myw2IEBAIHZvaWQgSW5pdFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7
CiAgICAgICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7CiAgICAg
ICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2Fs
ZSk7Ci0gICAgICAgIElOSVQoR2V0QVhUZXh0TWFya2VyVHlwZUlEKTsKLSAgICAgICAgSU5JVChH
ZXRBWFRleHRNYXJrZXJSYW5nZVR5cGVJRCk7Ci0gICAgICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFy
a2VyKTsKLSAgICAgICAgSU5JVChHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpOwotICAgICAgICBJ
TklUKENyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKTsKLSAgICAgICAgSU5JVChDb3B5QVhUZXh0TWFy
a2VyUmFuZ2VTdGFydCk7Ci0gICAgICAgIElOSVQoQ29weUFYVGV4dE1hcmtlclJhbmdlRW5kKTsK
LSAgICAgICAgSU5JVChBY2Nlc3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKTsKLSAgICAgICAg
SU5JVChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0gICAgICAgIElOSVQoVW5yZWdpc3RlclVuaXF1
ZUlkRm9yRWxlbWVudCk7CiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEp
OwogICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKICAgICAgICAg
SU5JVChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDc4ZjE4ZjZkMWY4MTgwMTMxZDkxMjBkYjA5
MDIzMzBhY2Q1NjZiNDguLjhmNDdlMmE2ZTA5NDBlODlmZTdjNjAxMGI0NTA3YjM5MTE2ZWE5MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCkBAIC00NSw2
ICs0NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2Nyb2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8d3RmL09iamNS
dW50aW1lRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTQsNyArNTUs
NyBAQCBAaW1wbGVtZW50YXRpb24gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdAogCiAtICh2
b2lkKWRlYWxsb2MKIHsKLSAgICBXS1VucmVnaXN0ZXJVbmlxdWVJZEZvckVsZW1lbnQoc2VsZik7
CisgICAgTlNBY2Nlc3NpYmlsaXR5VW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KHNlbGYp
OwogICAgIFttX3BhcmVudCByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmlu
ZGV4IGQ3MGM5NWFlODdkNTQ5YzcxNzZjMWYyZmYzNTcwM2NkMzQwOGUyYmEuLjJmZjBiMzkxNDkz
N2M2NTM5ZTk3MmJlMzM0MDc1ZjE5YWI3OGRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC05MSw2ICs5MSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9TZXRG
b3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTEw
OCwxMSArMTA5LDE0IEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogICAg
IC8vIEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KICAgICBwaWRfdCBwaWQg
PSBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBXS0FYSW5pdGlhbGl6
ZUVsZW1lbnRXaXRoUHJlc2VudGVyUGlkKG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCwgcGlkKTsK
KyAgICAvLyBGSVhNRTogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBkb2Vzbid0IHJlc3Bv
bmQgdG8gLWFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjouCisgICAg
Ly8gRWl0aGVyIGl0IG5lZWRzIHRvIG9yIHRoaXMgY2FsbCBzaG91bGQgYmUgcmVtb3ZlZC4KKyAg
ICBpZiAoW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjopXSkKKyAgICAg
ICAgWyhpZCltb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgYWNjZXNzaWJpbGl0eVNldFByZXNlbnRl
clByb2Nlc3NJZGVudGlmaWVyOnBpZF07CiAgICAgW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCBz
ZXRXZWJQYWdlOnRoaXNdOwotICAgIAorCiAgICAgLy8gc2VuZCBkYXRhIGJhY2sgb3ZlcgotICAg
IE5TRGF0YSogcmVtb3RlVG9rZW4gPSAoTlNEYXRhICopV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVu
dChtb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQpOyAKKyAgICBOU0RhdGEqIHJlbW90ZVRva2VuID0g
W05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCByZW1vdGVUb2tlbkZvckxvY2FsVUlFbGVt
ZW50Om1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudF07CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGFUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPihbcmVtb3RlVG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVRva2VuIGxlbmd0aF0pOwogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VuKGRhdGFUb2tlbikpOwogICAgIG1fbW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50ID0gbW9j
a0FjY2Vzc2liaWxpdHlFbGVtZW50OwpAQCAtNjE4LDEzICs2MjIsMTQgQEAgYm9vbCBXZWJQYWdl
OjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYpCiAKIHZvaWQgV2ViUGFnZTo6cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5z
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZWxlbWVudFRva2VuLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIHdpbmRvd1Rva2VuKQogewotICAgIE5TRGF0YSogZWxlbWVudFRva2VuRGF0YSA9
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczplbGVtZW50VG9rZW4uZGF0YSgpIGxlbmd0aDplbGVtZW50
VG9rZW4uc2l6ZSgpXTsKLSAgICBOU0RhdGEqIHdpbmRvd1Rva2VuRGF0YSA9IFtOU0RhdGEgZGF0
YVdpdGhCeXRlczp3aW5kb3dUb2tlbi5kYXRhKCkgbGVuZ3RoOndpbmRvd1Rva2VuLnNpemUoKV07
Ci0gICAgaWQgcmVtb3RlRWxlbWVudCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZWxlbWVu
dFRva2VuRGF0YSk7Ci0gICAgaWQgcmVtb3RlV2luZG93ID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JU
b2tlbih3aW5kb3dUb2tlbkRhdGEpOwotICAgIFdLQVhTZXRXaW5kb3dGb3JSZW1vdGVFbGVtZW50
KHJlbW90ZVdpbmRvdywgcmVtb3RlRWxlbWVudCk7Ci0gICAgCi0gICAgW2FjY2Vzc2liaWxpdHlS
ZW1vdGVPYmplY3QoKSBzZXRSZW1vdGVQYXJlbnQ6cmVtb3RlRWxlbWVudF07CisgICAgTlNEYXRh
ICplbGVtZW50VG9rZW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmVsZW1lbnRUb2tlbi5k
YXRhKCkgbGVuZ3RoOmVsZW1lbnRUb2tlbi5zaXplKCldOworICAgIE5TRGF0YSAqd2luZG93VG9r
ZW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndpbmRvd1Rva2VuLmRhdGEoKSBsZW5ndGg6
d2luZG93VG9rZW4uc2l6ZSgpXTsKKyAgICBhdXRvIHJlbW90ZUVsZW1lbnQgPSBlbGVtZW50VG9r
ZW5EYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQg
YWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZWxlbWVudFRva2VuRGF0YV0pIDogbmlsOworICAg
IGF1dG8gcmVtb3RlV2luZG93ID0gd2luZG93VG9rZW5EYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tO
U0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46
d2luZG93VG9rZW5EYXRhXSkgOiBuaWw7CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0V2luZG93VUlF
bGVtZW50OnJlbW90ZVdpbmRvdy5nZXQoKV07CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0VG9wTGV2
ZWxVSUVsZW1lbnQ6cmVtb3RlV2luZG93LmdldCgpXTsKKworICAgIFthY2Nlc3NpYmlsaXR5UmVt
b3RlT2JqZWN0KCkgc2V0UmVtb3RlUGFyZW50OnJlbW90ZUVsZW1lbnQuZ2V0KCldOwogfQogCiB2
b2lkIFdlYlBhZ2U6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBib29sJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXgg
ZWMyNzRkZGZlNzk3MTNkZTkzYTU0YTVlYzhiNGY5ODAwOGI0ZDFiYS4uZDQ1NTE2ZjVlZWUxYzA4
MmM5ODI4ZDllNzQ3NGVjOTY4OWM0N2I1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAt
OTEsMTYgKzkxLDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAg
IElOSVQoQ3Vyc29yKTsKICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmll
cnMpOwogICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZv
ckxvY2FsZSk7Ci0gICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwotICAgIElOSVQoR2V0
QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQpOwotICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFya2VyKTsK
LSAgICBJTklUKEdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik7Ci0gICAgSU5JVChDcmVhdGVBWFRl
eHRNYXJrZXJSYW5nZSk7Ci0gICAgSU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCk7Ci0g
ICAgSU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQpOwotICAgIElOSVQoQWNjZXNzaWJpbGl0
eUhhbmRsZUZvY3VzQ2hhbmdlZCk7Ci0gICAgSU5JVChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0g
ICAgSU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KTsKICNlbmRpZgogCiAjaWYgIVBM
QVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319377</attachid>
            <date>2017-08-30 10:12:07 -0700</date>
            <delta_ts>2017-08-30 10:37:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176093-20170830101206.patch</filename>
            <type>text/plain</type>
            <size>33810</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uZWJhN2VjMTliMzc4YWFkOTA4OWU1NWQzNzk2YjMy
YTUzNDQ1YTkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA4LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBBY2Nl
c3NpYmlsaXR5LXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDkzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAg
ICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciB1bnJlZ2lzdGVyVW5pcXVlSWRGb3JV
SUVsZW1lbnRdKToKKyAgICAgICAgKEFYT2JqZWN0SXNUZXh0TWFya2VyKToKKyAgICAgICAgKEFY
T2JqZWN0SXNUZXh0TWFya2VyUmFuZ2UpOgorICAgICAgICAoQVhUZXh0TWFya2VyUmFuZ2UpOgor
ICAgICAgICAoQVhUZXh0TWFya2VyUmFuZ2VTdGFydCk6CisgICAgICAgIChBWFRleHRNYXJrZXJS
YW5nZUVuZCk6CisgICAgICAgIChnZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpOgorICAgICAgICAo
aXNUZXh0TWFya2VySWdub3JlZCk6CisgICAgICAgIChhY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4
dE1hcmtlcik6CisgICAgICAgIChzdGFydE9yRW5kVGV4dG1hcmtlckZvclJhbmdlKToKKyAgICAg
ICAgKG5leHRUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKHByZXZpb3Vz
VGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldCk6CisgICAgICAgICh0ZXh0TWFya2VyRm9yQ2hh
cmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIpOgor
ICAgICAgICAodGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbik6CisgICAgICAgICgtW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHRleHRNYXJrZXJGb3JGaXJzdFBvc2l0aW9uSW5UZXh0
Q29udHJvbDpdKToKKyAgICAgICAgKHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXIpOgorICAg
ICAgICAoQVhBdHRyaWJ1dGVTdHJpbmdTZXRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tOgorCiAyMDE3LTA4LTI5ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxMDI4NykgT24gZHJv
cCwgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQiKSByZXR1cm5zIGFuIGVtcHR5IHN0
cmluZyB3aGVuIGRyYWdnaW5nIGFuIGltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAzNDIzMjQ1
YzJiODhkYzg1MjliZmQ4NTllMTk0YjFjODM5ZThlZGU2Li43YjRiNjAxZmU0ZTVlMTUwZjgxODk3
NDQ1N2M2OWVlYjliNjAxMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAog
MjAxNy0wOC0zMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQWNjZXNzaWJpbGl0eS1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBm
dW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjA5MworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAq
IFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvbWFjL0hJ
U2VydmljZXNTUEkuaDogQWRkZWQuCisgICAgICAgICogcGFsL3NwaS9tYWMvTlNBY2Nlc3NpYmls
aXR5U1BJLmg6CisKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgor
CiAgICAgICAgIFtNYWNdIFVwc3RyZWFtIENhcmJvbi1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVy
ZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NjA4NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzYTQyMzY3ZTllNjdhZmE2MmI2NmE5ZDE5Nzg4
MjFjYjk1MjMyNDYuLmE4NjY2ZjMzODUzNDFkMzU2ZDdhMGM3MTMxZWEyYWZmNjgxNGE2OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIEFjY2Vzc2liaWxpdHktcmVsYXRl
ZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTMKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3Ry
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lz
dGVyVUlQcm9jZXNzVG9rZW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0TWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1Jbml0aWFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3Np
YmlsaXR5VG9rZW5zKToKKwogMjAxNy0wOC0zMCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXog
IDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBFbmFibGUgTUVNT1JZX1NBTVBM
RVIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmZmQyMjhjNjA5MTIyOGQ5YjhmYWEw
MmJlNGM5YzUxNWRjMjk5MGY5Li5iZGY1ZDM4YWU3ZTViNzYxNDA5YjNkMTA1NGQ4NDM4Mzg2ODlm
YmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTct
MDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVw
c3RyZWFtIEFjY2Vzc2liaWxpdHktcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYw
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5
c3RlbUludGVyZmFjZSk6CisKKzIwMTctMDgtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCiAgICAgICAgIFtNYWNdIFVwc3RyZWFtIENhcmJvbi1yZWxhdGVkIFdlYktpdFN5c3Rl
bUludGVyZmFjZSBmdW5jdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NjA4NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmQzZWJjNmMxYWVjNDYyMzNiMjI3OWFhODNlYjMz
Yjg3NmRhMjEwMy4uZDk4NThmOWVlMmI0MWYwMDU5MzcxYWU5MGNiMmJmZGRkYTNkMGI4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTAwLDYgKzEwMCw3IEBACiAJCUExMDI2NTg3MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0
aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTAyNjU4NjFGNTY3NDYxMDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5oICovOyB9OwogCQlBMTAy
NjU4OTFGNTY3NDdBMDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTAyNjU4ODFGNTY3NDdBMDBCNEM4NDQgLyog
SElUb29sYm94U1BJLmggKi87IH07CiAJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlj
a0RyYXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDI2NThBMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCAqLzsgfTsKKwkJQTEw
MjY1OEUxRjU2N0U5RDAwQjRDODQ0IC8qIEhJU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NThEMUY1NjdFOUQwMEI0Qzg0NCAv
KiBISVNlcnZpY2VzU1BJLmggKi87IH07CiAJCUExRjU1RENGMUY1NTI4RUMwMEVEQjc1RiAvKiBN
ZXRhZGF0YVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi87IH07CiAJCUEz
MEQ0MTIxMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nLmggKi87IH07CiAJCUEzMEQ0MTIyMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05v
bmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMw
RDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nTm9uZS5jcHAgKi87IH07CkBAIC0yMTUs
NiArMjE2LDcgQEAKIAkJQTEwMjY1ODYxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm91bmRhdGlvblNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTAyNjU4ODFGNTY3NDdBMDBCNEM4NDQgLyogSElU
b29sYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJVG9vbGJveFNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTAyNjU4QTFGNTY3NDhDMDBCNEM4
NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1
aWNrRHJhd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4RDFGNTY3
RTlEMDBCNEM4NDQgLyogSElTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISVNlcnZpY2Vz
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRjU1RENFMUY1NTI4RUMwMEVE
Qjc1RiAvKiBNZXRhZGF0YVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXRhZGF0YVNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzBENDExRTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtp
bGxSaW5nTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLaWxs
UmluZ05vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzM4LDYgKzM0MCw3
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwQzc3ODU3MDFGNDUxMzBGMDBGNEVCQjYgLyogQVZG
b3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFE
ZXRlY3RvcnNTUEkuaCAqLywKKwkJCQlBMTAyNjU4RDFGNTY3RTlEMDBCNEM4NDQgLyogSElTZXJ2
aWNlc1NQSS5oICovLAogCQkJCUExMDI2NTg4MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hT
UEkuaCAqLywKIAkJCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJLmggKi8s
CiAJCQkJMEM3Nzg1NzMxRjQ1MTMwRjAwRjRFQkI2IC8qIE1lZGlhUmVtb3RlU1BJLmggKi8sCkBA
IC01MTAsNiArNTEzLDcgQEAKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0
TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTAyNjU4NzFGNTY3NDYxMDBCNEM4NDQgLyog
Rm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVB
QzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMDI2NThF
MUY1NjdFOUQwMEI0Qzg0NCAvKiBISVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTAyNjU4OTFGNTY3NDdBMDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwQzJEQTExRjFGM0JFOUUwMDBEQkMzMTcgLyogSW1hZ2VJT1NQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEMyREExNDIxRjNCRUI0OTAwREJDMzE3IC8qIElPUE1MaWJTUEkuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJU2Vy
dmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJ
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWYzNWRjZDRkMDNhNTdhMDg2YjBhMzY1ZGZiMzlkZGZmY2M4MTk4NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVNlcnZp
Y2VzU1BJLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPEhJU2VydmljZXMvQVhUZXh0
TWFya2VyLmg+CisKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0FYVGV4dE1hcmtl
ciAqQVhUZXh0TWFya2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19BWFRleHRNYXJrZXJS
YW5nZSAqQVhUZXh0TWFya2VyUmFuZ2VSZWY7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitDRlR5
cGVJRCBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKTsKK0NGVHlwZUlEIEFYVGV4dE1hcmtlclJhbmdl
R2V0VHlwZUlEKCk7CitBWFRleHRNYXJrZXJSZWYgQVhUZXh0TWFya2VyQ3JlYXRlKENGQWxsb2Nh
dG9yUmVmLCBjb25zdCBVSW50OCogYnl0ZXMsIENGSW5kZXggbGVuZ3RoKTsKK0NGSW5kZXggQVhU
ZXh0TWFya2VyR2V0TGVuZ3RoKEFYVGV4dE1hcmtlclJlZik7Citjb25zdCBVSW50OCogQVhUZXh0
TWFya2VyR2V0Qnl0ZVB0cihBWFRleHRNYXJrZXJSZWYpOworQVhUZXh0TWFya2VyUmFuZ2VSZWYg
QVhUZXh0TWFya2VyUmFuZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIEFYVGV4dE1hcmtlclJlZiBz
dGFydE1hcmtlciwgQVhUZXh0TWFya2VyUmVmIGVuZE1hcmtlcik7CitBWFRleHRNYXJrZXJSZWYg
QVhUZXh0TWFya2VyUmFuZ2VDb3B5U3RhcnRNYXJrZXIoQVhUZXh0TWFya2VyUmFuZ2VSZWYpOwor
QVhUZXh0TWFya2VyUmVmIEFYVGV4dE1hcmtlclJhbmdlQ29weUVuZE1hcmtlcihBWFRleHRNYXJr
ZXJSYW5nZVJlZik7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaAppbmRleCBjNjgwNzk4NDY2NWMx
OGNjNjJlNTdiM2M1ZjZmYTg2ZDkxNTk2NjVmLi4wZTg3MDBmZjdhNjg3ZWE0MTQ3N2JlOWY3ZWIw
YzU3YjZmZjE1MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNBY2Nlc3NpYmlsaXR5U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TQWNjZXNzaWJpbGl0eVNQSS5oCkBAIC0zNCw5ICszNCwyNiBAQAogQGludGVyZmFjZSBOU0Fj
Y2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgOiBOU09iamVjdAogCiArICh2b2lkKXNldFJlbW90
ZVVJQXBwOihCT09MKWZsYWc7CisrIChOU0RhdGEgKilyZW1vdGVUb2tlbkZvckxvY2FsVUlFbGVt
ZW50OihpZClsb2NhbFVJRWxlbWVudDsKKysgKHZvaWQpcmVnaXN0ZXJSZW1vdGVVSVByb2Nlc3NJ
ZGVudGlmaWVyOihwaWRfdClwaWQ7CisrICh2b2lkKXVucmVnaXN0ZXJSZW1vdGVVSVByb2Nlc3NJ
ZGVudGlmaWVyOihwaWRfdClwaWQ7CisKKy0gKGlkKWluaXRXaXRoUmVtb3RlVG9rZW46KE5TRGF0
YSAqKXJlbW90ZVRva2VuOworLSAocGlkX3QpcHJvY2Vzc0lkZW50aWZpZXI7CistICh2b2lkKWFj
Y2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjoocGlkX3QpcHJlc2VudGVy
UElEOworCitAcHJvcGVydHkgKHJldGFpbikgaWQgd2luZG93VUlFbGVtZW50OworQHByb3BlcnR5
IChyZXRhaW4pIGlkIHRvcExldmVsVUlFbGVtZW50OwogCiBAZW5kCiAKICNlbmRpZiAvLyBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCitXVEZfRVhURVJOX0NfQkVHSU4KKwordm9pZCBOU0FjY2Vz
c2liaWxpdHlIYW5kbGVGb2N1c0NoYW5nZWQoKTsKK3ZvaWQgTlNBY2Nlc3NpYmlsaXR5VW5yZWdp
c3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KGlkIGVsZW1lbnQpOworCitXVEZfRVhURVJOX0NfRU5E
CisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMjM3OTc1MWI4ZGE4ZjIxMGY4
MWUwMDAyMTE4NmFiNDQ0YjBkZDQyNC4uZmNhMzA0MDkwMDA5NjU3OThmMzY4MTA1MmYwMDc0NDIx
OWY5MjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJSZW5kZXJPYmpl
Y3QuaCIKICNpbXBvcnQgIldlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgiCiAjaW1w
b3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0Fj
Y2Vzc2liaWxpdHlTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVk
ZSA8SElTZXJ2aWNlcy9BY2Nlc3NpYmlsaXR5UHJpdi5oPgpAQCAtNTA5LDcgKzUxMCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBhCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiwgTm9kZSopCiB7Ci0gICAgd2tBY2Nlc3Np
YmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5SGFuZGxlRm9j
dXNDaGFuZ2VkKCk7CiAgICAgLy8gQVhGb2N1c0NoYW5nZWQgaXMgYSB0ZXN0IHNwZWNpZmljIG5v
dGlmaWNhdGlvbiBuYW1lIGFuZCBub3Qgc29tZXRoaW5nIGEgcmVhbCBBVCB3aWxsIGJlIGxpc3Rl
bmluZyBmb3IKICAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpKQogICAgICAgICBbcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246QCJBWEZvY3VzQ2hhbmdlZCIgdXNlckluZm86bmlsXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggZWVjMTdkOGQ5MTI2MmRiMzZh
ZGRlMTNlOWRmOTkyMmEwOTlkZmIzOS4uZGNmNzQ3ZWQ2Y2ExNmJjZTJkMWY1NWY3ZmI5YzUzYjI1
MDE3MTFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTc4
LDYgKzc4LDggQEAKICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNv
cmVPYmpDRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1w
b3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgog
I2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykgfHwgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAjaW1w
b3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC00MDQsMTEgKzQwNiwxMyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlIaWdoZXN0RWRp
dGFibGVBbmNlc3RvckF0dHJpYnV0ZSBAIkFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IiCiAjZW5k
aWYKIAorZXh0ZXJuICJDIiBBWFVJRWxlbWVudFJlZiBOU0FjY2Vzc2liaWxpdHlDcmVhdGVBWFVJ
RWxlbWVudFJlZihpZCBlbGVtZW50KTsKKwogQGltcGxlbWVudGF0aW9uIFdlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyCiAKIC0gKHZvaWQpdW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50
CiB7Ci0gICAgd2tVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KHNlbGYpOworICAgIE5TQWNj
ZXNzaWJpbGl0eVVucmVnaXN0ZXJVbmlxdWVJZEZvclVJRWxlbWVudChzZWxmKTsKIH0KIAogLSAo
dm9pZClkZXRhY2gKQEAgLTQzNCwzNSArNDM4LDM1IEBAIC0gKGlkKWF0dGFjaG1lbnRWaWV3CiAK
IHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9iamVjdElzVGV4dE1hcmtlcihpZCBvYmopCiB7Ci0gICAg
cmV0dXJuIG9iaiAhPSBuaWwgJiYgQ0ZHZXRUeXBlSUQob2JqKSA9PSB3a0dldEFYVGV4dE1hcmtl
clR5cGVJRCgpOworICAgIHJldHVybiBvYmogIT0gbmlsICYmIENGR2V0VHlwZUlEKG9iaikgPT0g
QVhUZXh0TWFya2VyR2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgQk9PTCBBWE9iamVj
dElzVGV4dE1hcmtlclJhbmdlKGlkIG9iaikKIHsKLSAgICByZXR1cm4gb2JqICE9IG5pbCAmJiBD
RkdldFR5cGVJRChvYmopID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKTsKKyAgICBy
ZXR1cm4gb2JqICE9IG5pbCAmJiBDRkdldFR5cGVJRChvYmopID09IEFYVGV4dE1hcmtlclJhbmdl
R2V0VHlwZUlEKCk7CiB9CiAKIHN0YXRpYyBpZCBBWFRleHRNYXJrZXJSYW5nZShpZCBzdGFydE1h
cmtlciwgaWQgZW5kTWFya2VyKQogewogICAgIEFTU0VSVChzdGFydE1hcmtlciAhPSBuaWwpOwog
ICAgIEFTU0VSVChlbmRNYXJrZXIgIT0gbmlsKTsKLSAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoc3Rh
cnRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAgIEFTU0VSVChDRkdl
dFR5cGVJRChlbmRNYXJrZXIpID09IHdrR2V0QVhUZXh0TWFya2VyVHlwZUlEKCkpOwotICAgIHJl
dHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKChDRlR5cGVS
ZWYpc3RhcnRNYXJrZXIsIChDRlR5cGVSZWYpZW5kTWFya2VyKSk7CisgICAgQVNTRVJUKENGR2V0
VHlwZUlEKHN0YXJ0TWFya2VyKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAgQVNT
RVJUKENGR2V0VHlwZUlEKGVuZE1hcmtlcikgPT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpOwor
ICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQVhUZXh0TWFya2VyUmVmKXN0YXJ0TWFya2VyLCAoQVhUZXh0TWFy
a2VyUmVmKWVuZE1hcmtlcikpOwogfQogCiBzdGF0aWMgaWQgQVhUZXh0TWFya2VyUmFuZ2VTdGFy
dChpZCByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UgIT0gbmlsKTsKLSAgICBBU1NFUlQoQ0ZH
ZXRUeXBlSUQocmFuZ2UpID09IHdrR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQoKSk7Ci0gICAg
cmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKHdrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQocmFu
Z2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQocmFuZ2UpID09IEFYVGV4dE1hcmtlclJhbmdl
R2V0VHlwZUlEKCkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJS
YW5nZUNvcHlTdGFydE1hcmtlcigoQVhUZXh0TWFya2VyUmFuZ2VSZWYpcmFuZ2UpKTsKIH0KIAog
c3RhdGljIGlkIEFYVGV4dE1hcmtlclJhbmdlRW5kKGlkIHJhbmdlKQogewogICAgIEFTU0VSVChy
YW5nZSAhPSBuaWwpOwotICAgIEFTU0VSVChDRkdldFR5cGVJRChyYW5nZSkgPT0gd2tHZXRBWFRl
eHRNYXJrZXJSYW5nZVR5cGVJRCgpKTsKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tD
b3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQocmFuZ2UpKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQo
cmFuZ2UpID09IEFYVGV4dE1hcmtlclJhbmdlR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBDRkJy
aWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJSYW5nZUNvcHlFbmRNYXJrZXIoKEFYVGV4dE1hcmtl
clJhbmdlUmVmKXJhbmdlKSk7CiB9CiAKICNwcmFnbWEgbWFyayBPdGhlciBoZWxwZXJzCkBAIC01
MzEsMTMgKzUzNSwzMSBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVNlbGVjdFRleHRDcml0ZXJpYSBh
Y2Nlc3NpYmlsaXR5U2VsZWN0VGV4dENyaXRlcmlhRm9yQ3JpdGVyaQogCiAjcHJhZ21hIG1hcmsg
VGV4dCBNYXJrZXIgaGVscGVycwogCitzdGF0aWMgQk9PTCBnZXRCeXRlc0Zyb21BWFRleHRNYXJr
ZXIoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoKQorewor
ICAgIGlmICghdGV4dE1hcmtlcikKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgQVhUZXh0TWFy
a2VyUmVmIHJlZiA9IChBWFRleHRNYXJrZXJSZWYpdGV4dE1hcmtlcjsKKyAgICBBU1NFUlQoQ0ZH
ZXRUeXBlSUQocmVmKSA9PSBBWFRleHRNYXJrZXJHZXRUeXBlSUQoKSk7CisgICAgaWYgKENGR2V0
VHlwZUlEKHJlZikgIT0gQVhUZXh0TWFya2VyR2V0VHlwZUlEKCkpCisgICAgICAgIHJldHVybiBO
TzsKKworICAgIENGSW5kZXggZXhwZWN0ZWRMZW5ndGggPSBsZW5ndGg7CisgICAgaWYgKEFYVGV4
dE1hcmtlckdldExlbmd0aChyZWYpICE9IGV4cGVjdGVkTGVuZ3RoKQorICAgICAgICByZXR1cm4g
Tk87CisKKyAgICBtZW1jcHkoYnl0ZXMsIEFYVGV4dE1hcmtlckdldEJ5dGVQdHIocmVmKSwgbGVu
Z3RoKTsKKyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgYm9vbCBpc1RleHRNYXJrZXJJZ25v
cmVkKGlkIHRleHRNYXJrZXIpCiB7CiAgICAgaWYgKCF0ZXh0TWFya2VyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0gICAg
aWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRh
dGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhUZXh0
TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRh
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gdGV4dE1hcmtlckRh
dGEuaWdub3JlZDsKQEAgLTU1NCw3ICs1NzYsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVj
dCogYWNjZXNzaWJpbGl0eU9iamVjdEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2FjaAog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBUZXh0TWFya2VyRGF0YSB0ZXh0TWFy
a2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIs
ICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYgKCFnZXRC
eXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBzaXplb2Yo
dGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGNh
Y2hlLT5hY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4dE1hcmtlckRhdGEodGV4dE1hcmtlckRhdGEp
OwogfQpAQCAtNTg2LDcgKzYwOCw3IEBAIHN0YXRpYyBpZCBzdGFydE9yRW5kVGV4dG1hcmtlckZv
clJhbmdlKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBSZWZQdHI8UmFuZ2U+IHJhbmdlCiAgICAgaWYg
KCF0ZXh0TWFya2VyRGF0YS5heElEKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAgIHJl
dHVybiBDRkJyaWRnaW5nUmVsZWFzZSh3a0NyZWF0ZUFYVGV4dE1hcmtlcigmdGV4dE1hcmtlckRh
dGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkpKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVh
c2UoQVhUZXh0TWFya2VyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCBVSW50OCop
JnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7CiB9CiAKIHN0YXRpYyBp
ZCBuZXh0VGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNldChBWE9iamVjdENhY2hlKiBjYWNoZSwg
Q2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQpCkBAIC01OTgsNyArNjIwLDcgQEAgc3Rh
dGljIGlkIG5leHRUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlLCBDaGFyYWN0ZXJPZmZzZXQKICAgICBjYWNoZS0+dGV4dE1hcmtlckRhdGFGb3JOZXh0Q2hh
cmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlmICgh
dGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4gQ0ZC
cmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBzaXpl
b2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFYVGV4
dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0TWFy
a2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiBzdGF0aWMgaWQgcHJldmlv
dXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBDaGFy
YWN0ZXJPZmZzZXQmIGNoYXJhY3Rlck9mZnNldCkKQEAgLTYxMCw3ICs2MzIsNyBAQCBzdGF0aWMg
aWQgcHJldmlvdXNUZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlLCBDaGFyYWN0ZXJPZgogICAgIGNhY2hlLT50ZXh0TWFya2VyRGF0YUZvclByZXZpb3VzQ2hh
cmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLCBjaGFyYWN0ZXJPZmZzZXQpOwogICAgIGlmICgh
dGV4dE1hcmtlckRhdGEuYXhJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4gQ0ZC
cmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBzaXpl
b2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFYVGV4
dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0TWFy
a2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpOwogfQogCiAtIChpZCluZXh0VGV4dE1h
cmtlckZvckNoYXJhY3Rlck9mZnNldDooQ2hhcmFjdGVyT2Zmc2V0JiljaGFyYWN0ZXJPZmZzZXQK
QEAgLTYzOCw3ICs2NjAsNyBAQCBzdGF0aWMgaWQgdGV4dE1hcmtlckZvckNoYXJhY3Rlck9mZnNl
dChBWE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgQ2hhcmFjdGVyT2ZmcwogICAgIGlmICghdGV4
dE1hcmtlckRhdGEuYXhJRCAmJiAhdGV4dE1hcmtlckRhdGEuaWdub3JlZCkKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRl
eHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLCBzaXplb2YodGV4dE1hcmtlckRhdGEpKSk7CisgICAg
cmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEFYVGV4dE1hcmtlckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAoY29uc3QgVUludDgqKSZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJE
YXRhKSkpOwogfQogCiAtIChSZWZQdHI8UmFuZ2U+KXJhbmdlRm9yVGV4dE1hcmtlclJhbmdlOihp
ZCl0ZXh0TWFya2VyUmFuZ2UKQEAgLTY2Nyw3ICs2ODksNyBAQCBzdGF0aWMgQ2hhcmFjdGVyT2Zm
c2V0IGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2FjaGUsIENG
VHlwZQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCiAgICAgVGV4dE1h
cmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0gICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4dE1h
cmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0YSkp
KQorICAgIGlmICghZ2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0ZXh0TWFy
a2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBDaGFyYWN0
ZXJPZmZzZXQoKTsKICAgICAKICAgICByZXR1cm4gY2FjaGUtPmNoYXJhY3Rlck9mZnNldEZvclRl
eHRNYXJrZXJEYXRhKHRleHRNYXJrZXJEYXRhKTsKQEAgLTY4Niw3ICs3MDgsNyBAQCBzdGF0aWMg
aWQgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihBWE9iamVjdENhY2hlKiBjYWNoZSwgY29u
c3QgVmlzaWJsZVBvc2l0aQogICAgIGlmICghdGV4dE1hcmtlckRhdGEpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2Uod2tDcmVhdGVBWFRleHRNYXJr
ZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNpemVvZih0ZXh0TWFya2VyRGF0YS52YWx1ZSgp
KSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShBWFRleHRNYXJrZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4KikmdGV4dE1hcmtlckRhdGEudmFsdWUoKSwg
c2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkpKSk7CiB9CiAKIC0gKGlkKXRleHRNYXJrZXJG
b3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKXZpc2libGVQb3MKQEAg
LTcwNCw3ICs3MjYsNyBAQCAtIChpZCl0ZXh0TWFya2VyRm9yRmlyc3RQb3NpdGlvbkluVGV4dENv
bnRyb2w6KEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50ICYpdGV4dAogICAgIGlmICghdGV4dE1h
cmtlckRhdGEpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICByZXR1cm4gQ0ZCcmlkZ2luZ1Jl
bGVhc2Uod2tDcmVhdGVBWFRleHRNYXJrZXIoJnRleHRNYXJrZXJEYXRhLnZhbHVlKCksIHNpemVv
Zih0ZXh0TWFya2VyRGF0YS52YWx1ZSgpKSkpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFz
ZShBWFRleHRNYXJrZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IFVJbnQ4Kikm
dGV4dE1hcmtlckRhdGEudmFsdWUoKSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhLnZhbHVlKCkpKSk7
CiB9CiAKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtl
cihBWE9iamVjdENhY2hlKiBjYWNoZSwgQ0ZUeXBlUmVmIHRleHRNYXJrZXIpCkBAIC03MTQsNyAr
NzM2LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JUZXh0TWFy
a2VyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBDRlR5cGUKICAgICBpZiAoIXRleHRNYXJrZXIpCiAg
ICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICBUZXh0TWFya2VyRGF0YSB0ZXh0
TWFya2VyRGF0YTsKLSAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJr
ZXIsICZ0ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCisgICAgaWYgKCFn
ZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIodGV4dE1hcmtlciwgJnRleHRNYXJrZXJEYXRhLCBzaXpl
b2YodGV4dE1hcmtlckRhdGEpKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwog
ICAgIAogICAgIHJldHVybiBjYWNoZS0+dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEo
dGV4dE1hcmtlckRhdGEpOwpAQCAtOTgyLDcgKzEwMDQsNyBAQCBzdGF0aWMgdm9pZCBBWEF0dHJp
YnV0ZVN0cmluZ1NldEVsZW1lbnQoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyogYXR0clN0cmlu
ZywgTgogICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAK
LSAgICAgICAgQVhVSUVsZW1lbnRSZWYgYXhFbGVtZW50ID0gd2tDcmVhdGVBWFVJRWxlbWVudFJl
ZihvYmplY3QtPndyYXBwZXIoKSk7CisgICAgICAgIEFYVUlFbGVtZW50UmVmIGF4RWxlbWVudCA9
IE5TQWNjZXNzaWJpbGl0eUNyZWF0ZUFYVUlFbGVtZW50UmVmKG9iamVjdC0+d3JhcHBlcigpKTsK
ICAgICAgICAgaWYgKGF4RWxlbWVudCkgewogICAgICAgICAgICAgW2F0dHJTdHJpbmcgYWRkQXR0
cmlidXRlOmF0dHJpYnV0ZSB2YWx1ZTooaWQpYXhFbGVtZW50IHJhbmdlOnJhbmdlXTsKICAgICAg
ICAgICAgIENGUmVsZWFzZShheEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKaW5kZXggMGEyNTFmYWQwMWU1YmQx
YmMyMDdkNDExZjRmZmRlMjVhNGU5MTA3OS4uOTNjZGZkMGM3YWIxZTk2ODAxMDZjYTY0ODU0NDg1
NjZiNzQ0NGU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0xOTUsMTcgKzE5NSw2IEBAIGV4dGVybiBOU0N1cnNv
ciAqKCp3a0N1cnNvcikoY29uc3QgY2hhciopOwogI2lmICFQTEFURk9STShJT1MpCiBleHRlcm4g
TlNBcnJheSAqKCp3a1NwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMpKHZvaWQpOwog
ZXh0ZXJuIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRp
ZmllckZvckxvY2FsZSkoTlNMb2NhbGUgKik7Ci0KLWV4dGVybiB2b2lkICgqd2tVbnJlZ2lzdGVy
VW5pcXVlSWRGb3JFbGVtZW50KShpZCBlbGVtZW50KTsKLWV4dGVybiB2b2lkICgqd2tBY2Nlc3Np
YmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKSh2b2lkKTsgICAgCi1leHRlcm4gQ0ZUeXBlSUQgKCp3
a0dldEFYVGV4dE1hcmtlclR5cGVJRCkodm9pZCk7Ci1leHRlcm4gQ0ZUeXBlSUQgKCp3a0dldEFY
VGV4dE1hcmtlclJhbmdlVHlwZUlEKSh2b2lkKTsKLWV4dGVybiBDRlR5cGVSZWYgKCp3a0NyZWF0
ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENGVHlwZVJlZiBlbmQpOwotZXh0
ZXJuIENGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlU3RhcnQpKENGVHlwZVJlZiBy
YW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQpKENG
VHlwZVJlZiByYW5nZSk7Ci1leHRlcm4gQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJrZXIp
KGNvbnN0IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLWV4dGVybiBCT09MICgqd2tHZXRCeXRl
c0Zyb21BWFRleHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0TWFya2VyLCB2b2lkICpieXRlcywgc2l6
ZV90IGxlbmd0aCk7Ci1leHRlcm4gQVhVSUVsZW1lbnRSZWYgKCp3a0NyZWF0ZUFYVUlFbGVtZW50
UmVmKShpZCBlbGVtZW50KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCiAjaWYgUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbQppbmRleCBmZTM0MWFkZWZhZTM4MWZhZmRhMjUzNTJiMjk1MDE4YTYw
NDA0NDJiLi42NDlkN2E2N2NkNjc2NTRhMmEzZTM5NGU5MzVmOGM1MjZmYTM5MjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5tbQpAQCAtODEsMTYgKzgxLDYgQEAgTlNDdXJzb3IgKigqd2tDdXJzb3IpKGNvbnN0IGNoYXIq
KTsKIE5TQXJyYXkgKigqd2tTcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKSh2b2lk
KTsKIE5TU3RyaW5nICooKndrU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmll
ckZvckxvY2FsZSkoTlNMb2NhbGUgKik7CiAKLXZvaWQgKCp3a1VucmVnaXN0ZXJVbmlxdWVJZEZv
ckVsZW1lbnQpKGlkIGVsZW1lbnQpOwotdm9pZCAoKndrQWNjZXNzaWJpbGl0eUhhbmRsZUZvY3Vz
Q2hhbmdlZCkodm9pZCk7Ci1DRlR5cGVJRCAoKndrR2V0QVhUZXh0TWFya2VyVHlwZUlEKSh2b2lk
KTsKLUNGVHlwZUlEICgqd2tHZXRBWFRleHRNYXJrZXJSYW5nZVR5cGVJRCkodm9pZCk7Ci1DRlR5
cGVSZWYgKCp3a0NyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKShDRlR5cGVSZWYgc3RhcnQsIENGVHlw
ZVJlZiBlbmQpOwotQ0ZUeXBlUmVmICgqd2tDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCkoQ0ZU
eXBlUmVmIHJhbmdlKTsKLUNGVHlwZVJlZiAoKndrQ29weUFYVGV4dE1hcmtlclJhbmdlRW5kKShD
RlR5cGVSZWYgcmFuZ2UpOwotQ0ZUeXBlUmVmICgqd2tDcmVhdGVBWFRleHRNYXJrZXIpKGNvbnN0
IHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuKTsKLUJPT0wgKCp3a0dldEJ5dGVzRnJvbUFYVGV4dE1h
cmtlcikoQ0ZUeXBlUmVmIHRleHRNYXJrZXIsIHZvaWQgKmJ5dGVzLCBzaXplX3QgbGVuZ3RoKTsK
LUFYVUlFbGVtZW50UmVmICgqd2tDcmVhdGVBWFVJRWxlbWVudFJlZikoaWQgZWxlbWVudCk7CiAK
ICNpZiAhUExBVEZPUk0oSU9TKQogQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVs
dGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxvY2l0eSwgQ0dG
bG9hdCBlbGFwc2VkVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAppbmRleCAyNjY1ZDI0MGVkM2NhODQyZDUxNTMzMDkwMmFkY2RmNmQzMTM0M2VkLi5j
MmNjYWZmMWYxODg5ZjBlNmQwZTFkODkyZWNiNDJiMGZjNDM3NTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCitP
QkpDX0NMQVNTIE5TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudDsKIE9CSkNfQ0xBU1MgTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRD
b250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CkBAIC02OTQsNyArNjk1LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9hbGxvd3NNYWduaWZpY2F0aW9uIHsgZmFsc2UgfTsKIAotICAgIFJldGFp
blB0cjxpZD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7CisgICAgUmV0YWluUHRyPE5TQWNj
ZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudD4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7CiAK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1fcHJvbWlzZWRJbWFnZTsKICAgICBTdHJpbmcg
bV9wcm9taXNlZEZpbGVuYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCA3ZGE5OTIyZTMxZGE0NGVlMGZhZDQ3NDg3MTRjNmVlODgwN2RjM2M0
Li5lMjBlZGJlMGZlM2YxYzc2MDViMGQ2YzAwY2E4N2RkMTc1MmMzOGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTEsNiArOTEsNyBAQAog
I2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNTcGVsbENoZWNrZXJTUEkuaD4KQEAgLTMyODIsNyArMzI4Myw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VEcmFn
Z2VkRXZlbnRzKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuKE5TRGF0YSAqZGF0YSkKIHsKLSAgICBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZCA9
IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CisgICAgbV9yZW1vdGVBY2Nlc3NpYmls
aXR5Q2hpbGQgPSBkYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1vdGVV
SUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZGF0YV0pIDogbmlsOwogICAgIHVw
ZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb24odHJ1ZSk7CiB9CiAKQEAgLTMyOTUs
MTggKzMyOTYsMjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0
eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2VzcykKICAgICBpZiAocmVnaXN0ZXJQcm9j
ZXNzKQogICAgICAgICBwaWQgPSBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRpZmllcigp
OwogICAgIGVsc2UgaWYgKCFyZWdpc3RlclByb2Nlc3MpIHsKLSAgICAgICAgcGlkID0gV0tBWFJl
bW90ZVByb2Nlc3NJZGVudGlmaWVyKG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgpKTsK
KyAgICAgICAgcGlkID0gW21fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkIHByb2Nlc3NJZGVudGlm
aWVyXTsKICAgICAgICAgbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBuaWw7CiAgICAgfQot
ICAgIGlmIChwaWQpCi0gICAgICAgIFdLQVhSZWdpc3RlclJlbW90ZVByb2Nlc3MocmVnaXN0ZXJQ
cm9jZXNzLCBwaWQpOworICAgIGlmICghcGlkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
cmVnaXN0ZXJQcm9jZXNzKQorICAgICAgICBbTlNBY2Nlc3NpYmlsaXR5UmVtb3RlVUlFbGVtZW50
IHJlZ2lzdGVyUmVtb3RlVUlQcm9jZXNzSWRlbnRpZmllcjpwaWRdOworICAgIGVsc2UKKyAgICAg
ICAgW05TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCB1bnJlZ2lzdGVyUmVtb3RlVUlQcm9j
ZXNzSWRlbnRpZmllcjpwaWRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5
UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKQogewogICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGFj
Y2Vzc2liaWxpdHkgd2hlbiB0aGUgd2luZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNo
ZWQuCi0gICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JF
bGVtZW50KG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSk7Ci0gICAgTlNEYXRhICpyZW1vdGVXaW5k
b3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQoW21fdmlldyB3aW5kb3ddKTsKKyAg
ICBOU0RhdGEgKnJlbW90ZUVsZW1lbnRUb2tlbiA9IFtOU0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVs
ZW1lbnQgcmVtb3RlVG9rZW5Gb3JMb2NhbFVJRWxlbWVudDptX3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCldOworICAgIE5TRGF0YSAqcmVtb3RlV2luZG93VG9rZW4gPSBbTlNBY2Nlc3NpYmlsaXR5UmVt
b3RlVUlFbGVtZW50IHJlbW90ZVRva2VuRm9yTG9jYWxVSUVsZW1lbnQ6W21fdmlldyB3aW5kb3dd
XTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBDOjpEYXRhUmVmZXJl
bmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVFbGVtZW50VG9rZW4g
Ynl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsKICAgICBJUEM6OkRhdGFSZWZl
cmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5kb3dU
b2tlbiBsZW5ndGhdKTsKICAgICBtX3BhZ2UtPnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KaW5kZXggMWU5NjIzMDdhN2Y5OTk4ZTU3MjdhMzFjMDkyZmI5NGQwNGZhZWUx
ZC4uNDRkYzdlY2IzNjIwZThmNDUxNDJlYjM3Yzc4NzVhZGNiM2I5NDEyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTgzLDE2ICs4Myw2IEBAIHZvaWQgSW5pdFdlYkNv
cmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChXaW5kb3dTZXRBbHBoYSk7CiAg
ICAgICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycyk7CiAgICAgICAg
IElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZSk7
Ci0gICAgICAgIElOSVQoR2V0QVhUZXh0TWFya2VyVHlwZUlEKTsKLSAgICAgICAgSU5JVChHZXRB
WFRleHRNYXJrZXJSYW5nZVR5cGVJRCk7Ci0gICAgICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFya2Vy
KTsKLSAgICAgICAgSU5JVChHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpOwotICAgICAgICBJTklU
KENyZWF0ZUFYVGV4dE1hcmtlclJhbmdlKTsKLSAgICAgICAgSU5JVChDb3B5QVhUZXh0TWFya2Vy
UmFuZ2VTdGFydCk7Ci0gICAgICAgIElOSVQoQ29weUFYVGV4dE1hcmtlclJhbmdlRW5kKTsKLSAg
ICAgICAgSU5JVChBY2Nlc3NpYmlsaXR5SGFuZGxlRm9jdXNDaGFuZ2VkKTsKLSAgICAgICAgSU5J
VChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0gICAgICAgIElOSVQoVW5yZWdpc3RlclVuaXF1ZUlk
Rm9yRWxlbWVudCk7CiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JUaW1lRGVsdGEpOwog
ICAgICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKICAgICAgICAgSU5J
VChOU1JlYm91bmREZWx0YUZvckVsYXN0aWNEZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDc4ZjE4ZjZkMWY4MTgwMTMxZDkxMjBkYjA5MDIz
MzBhY2Q1NjZiNDguLjhmNDdlMmE2ZTA5NDBlODlmZTdjNjAxMGI0NTA3YjM5MTE2ZWE5MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCkBAIC00NSw2ICs0
NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2Nyb2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50
aW1lRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTQsNyArNTUsNyBA
QCBAaW1wbGVtZW50YXRpb24gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdAogCiAtICh2b2lk
KWRlYWxsb2MKIHsKLSAgICBXS1VucmVnaXN0ZXJVbmlxdWVJZEZvckVsZW1lbnQoc2VsZik7Cisg
ICAgTlNBY2Nlc3NpYmlsaXR5VW5yZWdpc3RlclVuaXF1ZUlkRm9yVUlFbGVtZW50KHNlbGYpOwog
ICAgIFttX3BhcmVudCByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4
IGQ3MGM5NWFlODdkNTQ5YzcxNzZjMWYyZmYzNTcwM2NkMzQwOGUyYmEuLjJmZjBiMzkxNDkzN2M2
NTM5ZTk3MmJlMzM0MDc1ZjE5YWI3OGRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC05MSw2ICs5MSw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5
Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0
IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTEwOCwx
MSArMTA5LDE0IEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogICAgIC8v
IEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KICAgICBwaWRfdCBwaWQgPSBX
ZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBXS0FYSW5pdGlhbGl6ZUVs
ZW1lbnRXaXRoUHJlc2VudGVyUGlkKG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCwgcGlkKTsKKyAg
ICAvLyBGSVhNRTogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBkb2Vzbid0IHJlc3BvbmQg
dG8gLWFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjouCisgICAgLy8g
RWl0aGVyIGl0IG5lZWRzIHRvIG9yIHRoaXMgY2FsbCBzaG91bGQgYmUgcmVtb3ZlZC4KKyAgICBp
ZiAoW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KGFjY2Vzc2liaWxpdHlTZXRQcmVzZW50ZXJQcm9jZXNzSWRlbnRpZmllcjopXSkKKyAgICAgICAg
WyhpZCltb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgYWNjZXNzaWJpbGl0eVNldFByZXNlbnRlclBy
b2Nlc3NJZGVudGlmaWVyOnBpZF07CiAgICAgW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCBzZXRX
ZWJQYWdlOnRoaXNdOwotICAgIAorCiAgICAgLy8gc2VuZCBkYXRhIGJhY2sgb3ZlcgotICAgIE5T
RGF0YSogcmVtb3RlVG9rZW4gPSAoTlNEYXRhICopV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudCht
b2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQpOyAKKyAgICBOU0RhdGEqIHJlbW90ZVRva2VuID0gW05T
QWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudCByZW1vdGVUb2tlbkZvckxvY2FsVUlFbGVtZW50
Om1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudF07CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFU
b2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihbcmVtb3RlVG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVRva2VuIGxlbmd0aF0pOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRv
a2VuKGRhdGFUb2tlbikpOwogICAgIG1fbW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50ID0gbW9ja0Fj
Y2Vzc2liaWxpdHlFbGVtZW50OwpAQCAtNjE4LDEzICs2MjIsMTQgQEAgYm9vbCBXZWJQYWdlOjpw
ZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYp
CiAKIHZvaWQgV2ViUGFnZTo6cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZWxlbWVudFRva2VuLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHdpbmRvd1Rva2VuKQogewotICAgIE5TRGF0YSogZWxlbWVudFRva2VuRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczplbGVtZW50VG9rZW4uZGF0YSgpIGxlbmd0aDplbGVtZW50VG9r
ZW4uc2l6ZSgpXTsKLSAgICBOU0RhdGEqIHdpbmRvd1Rva2VuRGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhCeXRlczp3aW5kb3dUb2tlbi5kYXRhKCkgbGVuZ3RoOndpbmRvd1Rva2VuLnNpemUoKV07Ci0g
ICAgaWQgcmVtb3RlRWxlbWVudCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZWxlbWVudFRv
a2VuRGF0YSk7Ci0gICAgaWQgcmVtb3RlV2luZG93ID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tl
bih3aW5kb3dUb2tlbkRhdGEpOwotICAgIFdLQVhTZXRXaW5kb3dGb3JSZW1vdGVFbGVtZW50KHJl
bW90ZVdpbmRvdywgcmVtb3RlRWxlbWVudCk7Ci0gICAgCi0gICAgW2FjY2Vzc2liaWxpdHlSZW1v
dGVPYmplY3QoKSBzZXRSZW1vdGVQYXJlbnQ6cmVtb3RlRWxlbWVudF07CisgICAgTlNEYXRhICpl
bGVtZW50VG9rZW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmVsZW1lbnRUb2tlbi5kYXRh
KCkgbGVuZ3RoOmVsZW1lbnRUb2tlbi5zaXplKCldOworICAgIE5TRGF0YSAqd2luZG93VG9rZW5E
YXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndpbmRvd1Rva2VuLmRhdGEoKSBsZW5ndGg6d2lu
ZG93VG9rZW4uc2l6ZSgpXTsKKyAgICBhdXRvIHJlbW90ZUVsZW1lbnQgPSBlbGVtZW50VG9rZW5E
YXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0FjY2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgYWxs
b2NdIGluaXRXaXRoUmVtb3RlVG9rZW46ZWxlbWVudFRva2VuRGF0YV0pIDogbmlsOworICAgIGF1
dG8gcmVtb3RlV2luZG93ID0gd2luZG93VG9rZW5EYXRhLmxlbmd0aCA/IGFkb3B0TlMoW1tOU0Fj
Y2Vzc2liaWxpdHlSZW1vdGVVSUVsZW1lbnQgYWxsb2NdIGluaXRXaXRoUmVtb3RlVG9rZW46d2lu
ZG93VG9rZW5EYXRhXSkgOiBuaWw7CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0V2luZG93VUlFbGVt
ZW50OnJlbW90ZVdpbmRvdy5nZXQoKV07CisgICAgW3JlbW90ZUVsZW1lbnQgc2V0VG9wTGV2ZWxV
SUVsZW1lbnQ6cmVtb3RlV2luZG93LmdldCgpXTsKKworICAgIFthY2Nlc3NpYmlsaXR5UmVtb3Rl
T2JqZWN0KCkgc2V0UmVtb3RlUGFyZW50OnJlbW90ZUVsZW1lbnQuZ2V0KCldOwogfQogCiB2b2lk
IFdlYlBhZ2U6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lLCBib29sJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZWMy
NzRkZGZlNzk3MTNkZTkzYTU0YTVlYzhiNGY5ODAwOGI0ZDFiYS4uZDQ1NTE2ZjVlZWUxYzA4MmM5
ODI4ZDllNzQ3NGVjOTY4OWM0N2I1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtOTEs
MTYgKzkxLDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoQ3Vyc29yKTsKICAgICBJTklUKFNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMp
OwogICAgIElOSVQoU3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxv
Y2FsZSk7Ci0gICAgSU5JVChHZXRBWFRleHRNYXJrZXJUeXBlSUQpOwotICAgIElOSVQoR2V0QVhU
ZXh0TWFya2VyUmFuZ2VUeXBlSUQpOwotICAgIElOSVQoQ3JlYXRlQVhUZXh0TWFya2VyKTsKLSAg
ICBJTklUKEdldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcik7Ci0gICAgSU5JVChDcmVhdGVBWFRleHRN
YXJrZXJSYW5nZSk7Ci0gICAgSU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VTdGFydCk7Ci0gICAg
SU5JVChDb3B5QVhUZXh0TWFya2VyUmFuZ2VFbmQpOwotICAgIElOSVQoQWNjZXNzaWJpbGl0eUhh
bmRsZUZvY3VzQ2hhbmdlZCk7Ci0gICAgSU5JVChDcmVhdGVBWFVJRWxlbWVudFJlZik7Ci0gICAg
SU5JVChVbnJlZ2lzdGVyVW5pcXVlSWRGb3JFbGVtZW50KTsKICNlbmRpZgogCiAjaWYgIVBMQVRG
T1JNKElPUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>