<?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>174660</bug_id>
          
          <creation_ts>2017-07-19 13:43:20 -0700</creation_ts>
          <short_desc>Replace calls to Vector::resize() with calls to more efficient shrink() / grow() when applicable</short_desc>
          <delta_ts>2017-07-20 14:06:18 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1330498</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-19 13:43:20 -0700</bug_when>
    <thetext>Replace calls to Vector::resize() with calls to more efficient shrink() / grow() when applicable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330499</commentid>
    <comment_count>1</comment_count>
      <attachid>315954</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-19 13:48:03 -0700</bug_when>
    <thetext>Created attachment 315954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330500</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-19 13:49:49 -0700</bug_when>
    <thetext>Attachment 315954 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/RegExpInlines.h:217:  Wrong number of spaces before statement. (expected: 16)  [whitespace/indent] [4]
Total errors found: 1 in 77 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330746</commentid>
    <comment_count>3</comment_count>
      <attachid>315954</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-07-20 13:41:50 -0700</bug_when>
    <thetext>Comment on attachment 315954
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330764</commentid>
    <comment_count>4</comment_count>
      <attachid>315954</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-20 14:06:16 -0700</bug_when>
    <thetext>Comment on attachment 315954
Patch

Clearing flags on attachment: 315954

Committed r219702: &lt;http://trac.webkit.org/changeset/219702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330765</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-20 14:06:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315954</attachid>
            <date>2017-07-19 13:48:03 -0700</date>
            <delta_ts>2017-07-20 14:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174660-20170719134802.patch</filename>
            <type>text/plain</type>
            <size>64914</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZThjY2EyMGMxNjZkMDA5YWMzNzA0MzEyOWMyZmIwMzdlZWM0ODA1Li5lZWEzMzIwZGIzODcwMGNh
NWRkOTQ0ZTAzYTgzYWM2NDNiYzg5NTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAxNy0wNy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgY2FsbHMgdG8gVmVjdG9yOjpyZXNpemUoKSB3aXRoIGNhbGxzIHRv
IG1vcmUgZWZmaWNpZW50IHNocmluaygpIC8gZ3JvdygpIHdoZW4gYXBwbGljYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NjYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBjYWxscyB0
byBWZWN0b3I6OnJlc2l6ZSgpIHdpdGggY2FsbHMgdG8gbW9yZSBlZmZpY2llbnQgc2hyaW5rKCkg
LyBncm93KCkgd2hlbiBhcHBsaWNhYmxlLgorICAgICAgICBUaGlzIGVzc2VudGlhbGx5IHJlcGxh
Y2VzIGEgYnJhbmNoIHRvIGZpZ3VyZSBvdXQgaWYgdGhlIG5ldyBzaXplIGlzIGxlc3Mgb3IgZ3Jl
YXRlciB0aGFuIHRoZQorICAgICAgICBjdXJyZW50IHNpemUgYnkgYW4gYXNzZXJ0aW9uLgorCisg
ICAgICAgICogYjMvQjNCYXNpY0Jsb2NrVXRpbHMuaDoKKyAgICAgICAgKEpTQzo6QjM6OmNsZWFy
UHJlZGVjZXNzb3JzKToKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuY3BwOgorICAgICAg
ICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9B
aXI6OmZpbmlzaEFwcGVuZGluZ0luc3RydWN0aW9ucyk6CisgICAgICAgICogYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNTcGFyc2VDb2xsZWN0aW9uLmg6CisgICAgICAg
IChKU0M6OkIzOjpTcGFyc2VDb2xsZWN0aW9uOjpwYWNrSW5kaWNlcyk6CisgICAgICAgICogYjMv
QjNVc2VDb3VudHMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VXNlQ291bnRzOjpVc2VDb3VudHMp
OgorICAgICAgICAqIGIzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQnlMaW5lYXJT
Y2FuLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyRW1pdFNodWZmbGUuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6QWlyOjplbWl0U2h1ZmZsZSk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2VyQWZ0
ZXJSZWdBbGxvYy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Omxvd2VyQWZ0ZXJSZWdBbGxv
Yyk6CisgICAgICAgICogYjMvYWlyL0Fpck9wdGltaXplQmxvY2tPcmRlci5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6Om9wdGltaXplQmxvY2tPcmRlcik6CisgICAgICAgICogYnl0ZWNvZGUv
T3BlcmFuZHMuaDoKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmVuc3VyZUxvY2Fscyk6CisgICAg
ICAgICogYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcDoKKyAgICAgICAgKEpTQzo6Y29t
cHV0ZVByZWNpc2VKdW1wVGFyZ2V0c0ludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHQmxvY2tJ
bnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJsb2NrSW5zZXJ0aW9uU2V0Ojpl
eGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHQmxvY2tNYXBJbmxpbmVzLmg6CisgICAgICAgIChK
U0M6OkRGRzo6QmxvY2tNYXA8VD46OkJsb2NrTWFwKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwcm9jZXNz
U2V0TG9jYWxRdWV1ZSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmNsZWFy
Q2FjaGVzKToKKyAgICAgICAgKiBkZmcvREZHRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpEaXNhc3NlbWJsZXI6OkRpc2Fzc2VtYmxlcik6CisgICAgICAgICogZGZnL0RGR0Zs
b3dJbmRleGluZy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rmxvd0luZGV4aW5nOjpyZWNvbXB1
dGUpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3Jh
cGg6OnJlZ2lzdGVyRnJvemVuVmFsdWVzKToKKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3Ry
YWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnNldExpdmVWYWx1ZXMpOgorICAgICAg
ICAqIGRmZy9ERkdMSUNNUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkxJQ01QaGFzZTo6
cnVuKToKKyAgICAgICAgKiBkZmcvREZHTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHTmF0dXJhbExvb3BzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpOYXR1cmFs
TG9vcHM6Ok5hdHVyYWxMb29wcyk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckNsdXN0
ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAg
KiBoZWFwL0NvZGVCbG9ja1NldC5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9ja1NldDo6ZGVs
ZXRlVW5tYXJrZWRBbmRVbnJlZmVyZW5jZWQpOgorICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2Uu
Y3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6c3dlZXBMYXJnZUFsbG9jYXRpb25zKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkNvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OmZpbmRNYWdpY0NvbW1lbnQpOgor
ICAgICAgICAqIGludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwOgorICAgICAgICAoSlNDOjpT
aGFkb3dDaGlja2VuOjp1cGRhdGUpOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6Cisg
ICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OnNocmlua09wZXJhbmRTdGFja0J5KToKKyAgICAgICAg
KiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKEpTQzo6TGV4ZXI6OnNldE9mZnNldCk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0
Y2hJbmxpbmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6Z2VuZXJpY1NwbGl0KToKKyAgICAgICAgKiB5YXJyL1JlZ3VsYXJFeHByZXNzaW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb246Om1hdGNoKToKKwog
MjAxNy0wNy0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbV1RGXSBJbXBsZW1lbnQgV1RGOjpUaHJlYWRHcm91cApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2NWZmM2QwYzliMDRl
MmYwMjBjYmVkNGM2ZTg0YTQ1ZmRkZTdlMjk2Li4xYWVhZGQ4MGQ1MDUxNTNmNmUxMjQyNTQ4Njg1
M2Y3YzMwMDljNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA3LTE5ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBjYWxscyB0byBWZWN0b3I6
OnJlc2l6ZSgpIHdpdGggY2FsbHMgdG8gbW9yZSBlZmZpY2llbnQgc2hyaW5rKCkgLyBncm93KCkg
d2hlbiBhcHBsaWNhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzQ2NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXBsYWNlIGNhbGxzIHRvIFZlY3Rvcjo6cmVzaXplKCkgd2l0aCBjYWxscyB0byBt
b3JlIGVmZmljaWVudCBzaHJpbmsoKSAvIGdyb3coKSB3aGVuIGFwcGxpY2FibGUuCisgICAgICAg
IFRoaXMgZXNzZW50aWFsbHkgcmVwbGFjZXMgYSBicmFuY2ggdG8gZmlndXJlIG91dCBpZiB0aGUg
bmV3IHNpemUgaXMgbGVzcyBvciBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgIGN1cnJlbnQgc2l6
ZSBieSBhbiBhc3NlcnRpb24uCisKKyAgICAgICAgKiB3dGYvSW5kZXhTcGFyc2VTZXQuaDoKKyAg
ICAgICAgKFdURjo6T3ZlcmZsb3dIYW5kbGVyPjo6SW5kZXhTcGFyc2VTZXQpOgorICAgICAgICAo
V1RGOjpPdmVyZmxvd0hhbmRsZXI+OjpjbGVhcik6CisgICAgICAgICogd3RmL0luc2VydGlvbi5o
OgorICAgICAgICAoV1RGOjpleGVjdXRlSW5zZXJ0aW9ucyk6CisgICAgICAgICogd3RmL1Jhbmdl
U2V0Lmg6CisgICAgICAgIChXVEY6OlJhbmdlU2V0Ojpjb21wYWN0KToKKyAgICAgICAgKiB3dGYv
VmVjdG9yLmg6CisgICAgICAgIChXVEY6OnJlbW92ZVJlcGVhdGVkRWxlbWVudHMpOgorICAgICAg
ICAqIHd0Zi9wZXJzaXN0ZW5jZS9Db2RlcnMuaDoKKwogMjAxNy0wNy0xOSAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBSZW1vdmUgdW5uZWNl
c3NhcnkgaW5kaXJlY3Rpb24gb2YgV1RGOjpUaHJlYWQgZW50cnkgcG9pbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwYWY5MWQ5NTYyY2M4ZGM3ODBjNGRkMGU3MDYwNjBlNDRiZmU0MzFiLi5kYWI5OTQ3OWQzMzMy
ODEwNGY5MmNiMjM5NDFlZGYzN2Y5ZTEzN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAK
KzIwMTctMDctMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXBsYWNlIGNhbGxzIHRvIFZlY3Rvcjo6cmVzaXplKCkgd2l0aCBjYWxscyB0byBtb3JlIGVmZmlj
aWVudCBzaHJpbmsoKSAvIGdyb3coKSB3aGVuIGFwcGxpY2FibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDY2MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgY2FsbHMgdG8gVmVjdG9yOjpy
ZXNpemUoKSB3aXRoIGNhbGxzIHRvIG1vcmUgZWZmaWNpZW50IHNocmluaygpIC8gZ3JvdygpIHdo
ZW4gYXBwbGljYWJsZS4KKyAgICAgICAgVGhpcyBlc3NlbnRpYWxseSByZXBsYWNlcyBhIGJyYW5j
aCB0byBmaWd1cmUgb3V0IGlmIHRoZSBuZXcgc2l6ZSBpcyBsZXNzIG9yIGdyZWF0ZXIgdGhhbiB0
aGUKKyAgICAgICAgY3VycmVudCBzaXplIGJ5IGFuIGFzc2VydGlvbi4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWQ6Okdh
bWVwYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6YWRkUmVhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWw6OnNraXBCdWZmZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRE
ZWZsYXRlcjo6ZmluaXNoKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OnNlcmlhbGl6ZVNlbGVjdG9yKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRl
Y29kZUNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjph
cHBlbmQpOgorICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dD
cnlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnY3J5cHRFbmNyeXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OmdjcnlwdERlY3J5cHQpOgorICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxn
b3JpdGhtRUNESEdDcnlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnY3J5cHREZXJpdmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJv
dmlkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRl
cjo6Y29udHJvbGxlckRpZENvbm5lY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJv
dmlkZXI6OmRldmljZUFkZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJh
Y2tpbmdTdG9yZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCYWNraW5nU3RvcmU6OnNldFNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3Vl
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6cmVhZE5hdGl2ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGOjpyZWFkTmF0
aXZlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNmRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCTVBJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleCk6CisgICAgICAgICogcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJQ09JbWFnZURlY29kZXI6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpQRUdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleCk6CisgICAgICAgICogcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQTkdJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleCk6CisgICAgICAgIChXZWJD
b3JlOjpQTkdJbWFnZURlY29kZXI6OnJlYWRDaHVua3MpOgorICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXRUJQSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1ZmZlckF0SW5kZXgpOgorICAgICAgICAqIHBsYXRm
b3JtL2ltYWdlLWVuY29kZXJzL0pQRUdJbWFnZUVuY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHJlc3NSR0JBQmlnRW5kaWFuVG9KUEVHKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oOgorICAgICAgICAoV2ViQ29yZTo6VVJMRXNjYXBlU2Vx
dWVuY2U6OmRlY29kZVJ1bik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TdWZmaXhUcmVlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTdWZmaXhUcmVlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpzZXROZWVkc0l0ZW1z
UGxhY2VtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmludmFsaWRhdGVDYWNoZWRDb2x1bW5zKToKKwogMjAx
Ny0wNy0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAg
ICBbV1RGXSBJbXBsZW1lbnQgV1RGOjpUaHJlYWRHcm91cApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MGM3ODk0MDcw
ZjMxNmRmMGJiZjg4MGY5YjA4YWQwYWJiZGFiMzhkLi4wYzFlOTc4ZmI0ZmE4MDMyN2Q5ZGNkMzQ1
NDU3MmRhMWU2YjkyMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA3LTE5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBjYWxscyB0
byBWZWN0b3I6OnJlc2l6ZSgpIHdpdGggY2FsbHMgdG8gbW9yZSBlZmZpY2llbnQgc2hyaW5rKCkg
LyBncm93KCkgd2hlbiBhcHBsaWNhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQ2NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXBsYWNlIGNhbGxzIHRvIFZlY3Rvcjo6cmVzaXplKCkgd2l0aCBj
YWxscyB0byBtb3JlIGVmZmljaWVudCBzaHJpbmsoKSAvIGdyb3coKSB3aGVuIGFwcGxpY2FibGUu
CisgICAgICAgIFRoaXMgZXNzZW50aWFsbHkgcmVwbGFjZXMgYSBicmFuY2ggdG8gZmlndXJlIG91
dCBpZiB0aGUgbmV3IHNpemUgaXMgbGVzcyBvciBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgIGN1
cnJlbnQgc2l6ZSBieSBhbiBhc3NlcnRpb24uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJn
dW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92
aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdh
bWVwYWRDb25uZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRJbml0aWFsQ29ubmVjdGVkR2Ft
ZXBhZHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBhc3Rl
Ym9hcmRPdmVycmlkZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkT3ZlcnJp
ZGVzOjpnZXREYXRhRm9yT3ZlcnJpZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEF1dG9j
b3JyZWN0aW9uRGF0YSk6CisKIDIwMTctMDctMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CiAKICAgICAgICAgW1dURl0gSW1wbGVtZW50IFdURjo6VGhyZWFkR3JvdXAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmYjllYTQwNjI1NWMwMzdiNDcxZTczY2Uw
MTg0M2QyNmFhYzNmZjFkLi45Y2E3ZGM3ODQ5MjgwMzEwODZlODVkNTljMDgyZWQzZWY4MzJjZWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDct
MTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGNh
bGxzIHRvIFZlY3Rvcjo6cmVzaXplKCkgd2l0aCBjYWxscyB0byBtb3JlIGVmZmljaWVudCBzaHJp
bmsoKSAvIGdyb3coKSB3aGVuIGFwcGxpY2FibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgY2FsbHMgdG8gVmVjdG9yOjpyZXNpemUoKSB3
aXRoIGNhbGxzIHRvIG1vcmUgZWZmaWNpZW50IHNocmluaygpIC8gZ3JvdygpIHdoZW4gYXBwbGlj
YWJsZS4KKyAgICAgICAgVGhpcyBlc3NlbnRpYWxseSByZXBsYWNlcyBhIGJyYW5jaCB0byBmaWd1
cmUgb3V0IGlmIHRoZSBuZXcgc2l6ZSBpcyBsZXNzIG9yIGdyZWF0ZXIgdGhhbiB0aGUKKyAgICAg
ICAgY3VycmVudCBzaXplIGJ5IGFuIGFzc2VydGlvbi4KKworICAgICAgICAqIFBsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcg
c2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKToKKwogMjAxNy0wNy0xOCAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBFbmFibGUgQ0xBTkdf
V0FSTl9SQU5HRV9MT09QX0FOQUxZU0lTCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggNWRlZDQ0YjM1ODQyM2I5Mzlh
MzQ0NjEzOTQxMDVkZGJhNTlhOTk1MC4uZWM4ZjM1OGVjNjRjMjY5ZTM1N2YxY2FmNDgwNzY4MTQy
ZTc5ZTIzNCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA3LTE5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBjYWxscyB0byBWZWN0
b3I6OnJlc2l6ZSgpIHdpdGggY2FsbHMgdG8gbW9yZSBlZmZpY2llbnQgc2hyaW5rKCkgLyBncm93
KCkgd2hlbiBhcHBsaWNhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzQ2NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZXBsYWNlIGNhbGxzIHRvIFZlY3Rvcjo6cmVzaXplKCkgd2l0aCBjYWxscyB0
byBtb3JlIGVmZmljaWVudCBzaHJpbmsoKSAvIGdyb3coKSB3aGVuIGFwcGxpY2FibGUuCisgICAg
ICAgIFRoaXMgZXNzZW50aWFsbHkgcmVwbGFjZXMgYSBicmFuY2ggdG8gZmlndXJlIG91dCBpZiB0
aGUgbmV3IHNpemUgaXMgbGVzcyBvciBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgIGN1cnJlbnQg
c2l6ZSBieSBhbiBhc3NlcnRpb24uCisKKyAgICAgICAgKiBibWFsbG9jL01hcC5oOgorICAgICAg
ICAoYm1hbGxvYzo6SGFzaD46OnJlaGFzaCk6CisKIDIwMTctMDctMTggIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gRW5hYmxlIENMQU5HX1dBUk5fUkFO
R0VfTE9PUF9BTkFMWVNJUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
QmFzaWNCbG9ja1V0aWxzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2Nr
VXRpbHMuaAppbmRleCAyNDU5MTc4ZWZkZmU1NTEwYWIxMDM0Y2JkMGJmOWI5YjU2ZjlkMjhmLi40
MDBlNmJlZjRhNGE4Y2QzMjBiYTRiYjk1N2RiNGU1MzgwM2QwZDZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrVXRpbHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrVXRpbHMuaApAQCAtODksNyArODksNyBAQCB2b2lk
IGNsZWFyUHJlZGVjZXNzb3JzKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8QmFzaWNCbG9jaz4+JiBi
bG9ja3MpCiB7CiAgICAgZm9yIChhdXRvJiBibG9jayA6IGJsb2NrcykgewogICAgICAgICBpZiAo
YmxvY2spCi0gICAgICAgICAgICBibG9jay0+cHJlZGVjZXNzb3JzKCkucmVzaXplKDApOworICAg
ICAgICAgICAgYmxvY2stPnByZWRlY2Vzc29ycygpLnNocmluaygwKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5jcHAKaW5kZXggMmYxNzgx
MjQxNTZmZjk0MWI1N2VjMmVkODZkNzcyMDZmYTZkMmRiOC4uZjI5ZjRmMDk1NGIyYWU3MjAwNWEx
MzAyZWZmY2NkNGUzNGRmYjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzSW5mZXJTd2l0Y2hlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5m
ZXJTd2l0Y2hlcy5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydFZhbHVlKHByZWRlY2Vzc29yLT5zaXplKCkgLSAxLCB2
YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShwcmVkZWNl
c3Nvcik7Ci0gICAgICAgIGJsb2NrLT52YWx1ZXMoKS5yZXNpemUoMCk7CisgICAgICAgIGJsb2Nr
LT52YWx1ZXMoKS5zaHJpbmsoMCk7CiAgICAgICAgIGJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1f
cHJvYywgT29wcywgZGVzY3JpcHRpb24uYnJhbmNoLT5vcmlnaW4oKSk7CiAgICAgICAgIGJsb2Nr
LT5yZW1vdmVQcmVkZWNlc3NvcihwcmVkZWNlc3Nvcik7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCBlNmQxODJmMjBiNGYwN2JlYTY2MjJj
NTQ1ZTJjNWVlM2ZlYmQ4MWE0Li4yOTA5Nzc1NDg5OTNkNjUxZTQxZjM0NjIxYmJhNjI3MmJjY2E2
Mzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAtMTE4
NCw3ICsxMTg0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6IG1f
aW5zdHNbaV0pCiAgICAgICAgICAgICAgICAgdGFyZ2V0LT5hcHBlbmRJbnN0KFdURk1vdmUoaW5z
dCkpOwogICAgICAgICB9Ci0gICAgICAgIG1faW5zdHMucmVzaXplKDApOworICAgICAgICBtX2lu
c3RzLnNocmluaygwKTsKICAgICB9CiAgICAgCiAgICAgQWlyOjpCYXNpY0Jsb2NrKiBuZXdCbG9j
aygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKaW5k
ZXggZDk1MjI0NzgzODVlNmQyMWUzY2YxZDkxYzE4ZmQ0ZjI1YjhkZTUzZS4uMGFjNGQwNzQxMmY5
ZDM3M2FkMzU0OTA0MTBmNjgzNjc3NGQ3NWY1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtMjM3MCw3ICsyMzcwLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQg
dGhlIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQg
bm9ib2R5IGNob2tlcyB3aGVuIHRoZXkgbG9vayBhdCBpdC4KLSAgICAgICAgICAgICAgICAgICAg
c3VjY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nl
c3Nvci0+dmFsdWVzKCkuc2hyaW5rKDApOwogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3It
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKICAgICAgICAgICAg
ICAgICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTcGFyc2VDb2xsZWN0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTcGFyc2VDb2xsZWN0aW9uLmgKaW5k
ZXggZWI5MWQ0OGJkZjkwYjY2NWQzYTZmMWVkYTIyNGIyOTYxZmU1NzIyZC4uMDlhMzY0NzUyNTU2
MTUxMWJiYTIyNzkzMzg3ZWQzYjEwMTlmZTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3BhcnNlQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1NwYXJzZUNvbGxlY3Rpb24uaApAQCAtMTA3LDggKzEwNyw4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICsraG9sZUluZGV4OwogICAgICAgICB9CiAKLSAgICAgICAgbV9pbmRleEZyZWVM
aXN0LnJlc2l6ZSgwKTsKLSAgICAgICAgbV92ZWN0b3IucmVzaXplKGVuZEluZGV4KTsKKyAgICAg
ICAgbV9pbmRleEZyZWVMaXN0LnNocmluaygwKTsKKyAgICAgICAgbV92ZWN0b3Iuc2hyaW5rKGVu
ZEluZGV4KTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92
ZWN0b3Iuc2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNV
c2VDb3VudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVXNlQ291bnRzLmNwcApp
bmRleCA1ZmUxOGQ0ZmY4NjQxNmJhZmJkNmMxNGU0NzU3YzM5MzM3MzA0OTViLi43MDY2M2M4MGI0
MGJlMTIzMWIyMzM3MjAzNjczMTEwMzkyMjliY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNVc2VDb3VudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1VzZUNvdW50cy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgVXNlQ291bnRzOjpVc2VDb3VudHMo
UHJvY2VkdXJlJiBwcm9jZWR1cmUpCiB7CiAgICAgVmVjdG9yPFZhbHVlKiwgNjQ+IGNoaWxkcmVu
OwogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogcHJvY2VkdXJlLnZhbHVlcygpKSB7Ci0gICAgICAg
IGNoaWxkcmVuLnJlc2l6ZSgwKTsKKyAgICAgICAgY2hpbGRyZW4uc2hyaW5rKDApOwogICAgICAg
ICBmb3IgKFZhbHVlKiBjaGlsZCA6IHZhbHVlLT5jaGlsZHJlbigpKSB7CiAgICAgICAgICAgICBt
X2NvdW50c1tjaGlsZF0ubnVtVXNlcysrOwogICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNo
aWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2Nh
dGVSZWdpc3RlcnNBbmRTdGFja0J5TGluZWFyU2Nhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tCeUxpbmVhclNjYW4uY3BwCmlu
ZGV4IGQzOWRlYmZkZjNjOGMwMjgzY2I1OTA2NjQyYzVlYzFmYzg4MDljYTEuLjYwNDU3MTQxZjIz
MzI1YTViYWNjYTVmM2JhYTExYjkzMzk5Y2Q4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0J5TGluZWFyU2Nhbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVy
c0FuZFN0YWNrQnlMaW5lYXJTY2FuLmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VsZWN0RnVuYz4KICAgICB2b2lkIHByZXBhcmVJbnRlcnZh
bHMoY29uc3QgU2VsZWN0RnVuYyYgc2VsZWN0RnVuYykKICAgICB7Ci0gICAgICAgIG1fdG1wcy5y
ZXNpemUoMCk7CisgICAgICAgIG1fdG1wcy5zaHJpbmsoMCk7CiAgICAgICAgIAogICAgICAgICBt
X2NvZGUuZm9yRWFjaFRtcCgKICAgICAgICAgICAgIFsmXSAoVG1wIHRtcCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAppbmRleCA4ODNkYzcx
YmU2YzBmMDcwNGQzY2IyM2U5ZTdhMWYyOTIwM2E2MjlmLi43M2Q3MTBmZjY5ZTcxOGViNGJlMzA2
OWMxYzFkODBhZmI5YzY0OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckVtaXRTaHVmZmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckVtaXRTaHVmZmxlLmNwcApAQCAtMjc1LDcgKzI3NSw3IEBAIFZlY3RvcjxJbnN0PiBlbWl0
U2h1ZmZsZSgKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSByb3RhdGUubG9vcC5z
aXplKCkgLSAxOyBpLS07KQogICAgICAgICAgICAgICAgICAgICBBU1NFUlQocm90YXRlLmxvb3Bb
aV0uZHN0KCkgPT0gcm90YXRlLmxvb3BbaSArIDFdLnNyYygpKTsKICAgICAgICAgICAgICAgICBy
b3RhdGVzLmFwcGVuZChXVEZNb3ZlKHJvdGF0ZSkpOwotICAgICAgICAgICAgICAgIGN1cnJlbnRQ
YWlycy5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgY3VycmVudFBhaXJzLnNocmluaygwKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgICAgIGRhdGFMb2coIkl0J3MgYSBzaGlmdC5cbiIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwCmlu
ZGV4IGFkNDU3OTUxNjQ5ZGJjYzcwNmZiYTVlNjVkYzAwNTIzOGEyMDNiZWQuLjFmYTA1M2RiOWNh
N2ZjNGMzODZmYjE5MzcxNTIyNTViZWVkNzEzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHAKQEAgLTIzMiw3ICsy
MzIsNyBAQCB2b2lkIGxvd2VyQWZ0ZXJSZWdBbGxvYyhDb2RlJiBjb2RlKQogICAgICAgICAgICAg
ICAgICAgICBpbnN0LmtpbmQuZWZmZWN0cyA9IHRydWU7CiAKICAgICAgICAgICAgICAgICAvLyBO
b3cgd2UgbmVlZCB0byBlbWl0IGNvZGUgdG8gcmVzdG9yZSByZWdpc3RlcnMuCi0gICAgICAgICAg
ICAgICAgcGFpcnMucmVzaXplKDApOworICAgICAgICAgICAgICAgIHBhaXJzLnNocmluaygwKTsK
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFja1Nsb3RJbmRleCA9IDA7CiAgICAgICAgICAg
ICAgICAgcmVnc1RvU2F2ZS5mb3JFYWNoKAogICAgICAgICAgICAgICAgICAgICBbJl0gKFJlZyBy
ZWcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3B0aW1p
emVCbG9ja09yZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3B0aW1p
emVCbG9ja09yZGVyLmNwcAppbmRleCAwNDdjMDNjOTM2ZTQ2OGMxNzU2ZTRmMTYzODhhMWYxMzgz
Zjg5M2E2Li41MTI0MTlkZTI4ZDYyYzI2NzkyOTRhYTIxNDA0MWYwMDhjNTY4NmQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wdGltaXplQmxvY2tPcmRlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcHRpbWl6ZUJsb2NrT3Jk
ZXIuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fc3VjY2Vzc29ycy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIHdvcmtsaXN0
LnB1c2gobV9zdWNjZXNzb3JzW2ldKTsKICAgICAgICAgCi0gICAgICAgIG1fc3VjY2Vzc29ycy5y
ZXNpemUoMCk7CisgICAgICAgIG1fc3VjY2Vzc29ycy5zaHJpbmsoMCk7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgb3B0aW1pemVCbG9ja09yZGVyKENvZGUmIGNv
ZGUpCiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGNvZGUuYmxvY2tMaXN0KCkpCiAgICAgICAgIGVu
dHJ5LnJlbGVhc2UoKTsKIAotICAgIGNvZGUuYmxvY2tMaXN0KCkucmVzaXplKDApOworICAgIGNv
ZGUuYmxvY2tMaXN0KCkuc2hyaW5rKDApOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGJsb2Nrc0luT3JkZXIuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sg
PSBibG9ja3NJbk9yZGVyW2ldOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL09wZXJhbmRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3BlcmFu
ZHMuaAppbmRleCA2ZTVlNzc1OGJhZTRmYWFiNTUzMDNlZjc5NjAzNmIxNjgwYTUyOTI0Li4yNmJm
NTkzODU4ZTg1ZjA1MGNiMDM4ZjVkYzkyODNmZjkyZmUxYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3BlcmFuZHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvT3BlcmFuZHMuaApAQCAtMTAxLDExICsxMDEsMTEgQEAgcHVibGljOgog
ICAgIAogICAgIHZvaWQgZW5zdXJlTG9jYWxzKHNpemVfdCBzaXplKQogICAgIHsKLSAgICAgICAg
aWYgKHNpemUgPD0gbV9sb2NhbHMuc2l6ZSgpKQorICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1f
bG9jYWxzLnNpemUoKTsKKyAgICAgICAgaWYgKHNpemUgPD0gb2xkU2l6ZSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1fbG9jYWxzLnNpemUoKTsKLSAg
ICAgICAgbV9sb2NhbHMucmVzaXplKHNpemUpOworICAgICAgICBtX2xvY2Fscy5ncm93KHNpemUp
OwogICAgICAgICBpZiAoIVdURjo6VmVjdG9yVHJhaXRzPFQ+OjpuZWVkc0luaXRpYWxpemF0aW9u
KSB7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1fbG9jYWxzLnNp
emUoKTsgKytpKQogICAgICAgICAgICAgICAgIG1fbG9jYWxzW2ldID0gVCgpOwpAQCAtMTE0LDEx
ICsxMTQsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbnN1cmVMb2NhbHMoc2l6ZV90IHNpemUs
IGNvbnN0IFQmIGVuc3VyZWRWYWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChzaXplIDw9IG1fbG9j
YWxzLnNpemUoKSkKKyAgICAgICAgc2l6ZV90IG9sZFNpemUgPSBtX2xvY2Fscy5zaXplKCk7Cisg
ICAgICAgIGlmIChzaXplIDw9IG9sZFNpemUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgc2l6ZV90IG9sZFNpemUgPSBtX2xvY2Fscy5zaXplKCk7Ci0gICAgICAgIG1fbG9jYWxzLnJl
c2l6ZShzaXplKTsKKyAgICAgICAgbV9sb2NhbHMuZ3JvdyhzaXplKTsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IG9sZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkKICAgICAgICAgICAg
IG1fbG9jYWxzW2ldID0gZW5zdXJlZFZhbHVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKaW5kZXggYmVhMTM3
YTNhNTZiYTFlYmMwNTM2OWNiMWZhM2MzZjE0ZjcwOTcwMS4uNjM2ZjBhODM5MzVkYzhkOGVhOTBj
YTBhMDVmYTRmOWQ1Njc0NTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKQEAgLTg0LDggKzg0LDcgQEAgdm9pZCBj
b21wdXRlUHJlY2lzZUp1bXBUYXJnZXRzSW50ZXJuYWwoQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1
Y3Rpb24qIGluc3RydWN0aW8KICAgICAgICAgb3V0W3RvSW5kZXgrK10gPSB2YWx1ZTsKICAgICAg
ICAgbGFzdFZhbHVlID0gdmFsdWU7CiAgICAgfQotICAgIG91dC5yZXNpemUodG9JbmRleCk7Ci0g
ICAgb3V0LnNocmlua1RvRml0KCk7CisgICAgb3V0LnNocmlua0NhcGFjaXR5KHRvSW5kZXgpOwog
fQogCiB2b2lkIGNvbXB1dGVQcmVjaXNlSnVtcFRhcmdldHMoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFZlY3Rvcjx1bnNpZ25lZCwgMzI+JiBvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwCmluZGV4IDRjOTM5NzVjNTE2YzI1N2FiYTVm
NDk1MWNlZDE1N2NhMDVjZDM2YjkuLmZiYzJkYjQ2NTljMzliMTRkYjRhMGU4NDQxM2E5NTU0N2E1
YWRhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmxvY2tJbnNl
cnRpb25TZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmxvY2tJbnNl
cnRpb25TZXQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIGJvb2wgQmxvY2tJbnNlcnRpb25TZXQ6OmV4
ZWN1dGUoKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG1fZ3JhcGgubV9ibG9ja3Nb
dGFyZ2V0SW5kZXgrK10gPSBibG9jazsKICAgICB9Ci0gICAgbV9ncmFwaC5tX2Jsb2Nrcy5yZXNp
emUodGFyZ2V0SW5kZXgpOworICAgIG1fZ3JhcGgubV9ibG9ja3Muc2hyaW5rKHRhcmdldEluZGV4
KTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2tzIGtub3cgdGhlaXIgbmV3
IGluZGljZXMuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JhcGgubV9ibG9ja3Mu
c2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Js
b2NrTWFwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCbG9ja01hcElu
bGluZXMuaAppbmRleCA5YjU3N2M2Y2I0OWU0MDNjMTNjYjRkYTQ3NjM0ZjUwNDY2YmZhMzFlLi4y
N2Q1ZjgyZDMwMTFkOTg2ZThmMzA0ZWE5ZDI0YmFmNzU4YTBlODRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jsb2NrTWFwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQmxvY2tNYXBJbmxpbmVzLmgKQEAgLTM1LDcgKzM1LDcgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIEJs
b2NrTWFwPFQ+OjpCbG9ja01hcChHcmFwaCYgZ3JhcGgpCiB7Ci0gICAgbV92ZWN0b3IucmVzaXpl
KGdyYXBoLm51bUJsb2NrcygpKTsKKyAgICBtX3ZlY3Rvci5ncm93KGdyYXBoLm51bUJsb2Nrcygp
KTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAwODEzYTFhZjRhMmRjYjRmOGU5
ODEzYzA0ZTc3NzM3NThhNDEwYjA3Li5hYjFhNzZjZjRlMmI4YjBjMTFhZDUxYmI0YWIxMTE3ZTgz
MjFhN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcApAQCAtNDE0LDcgKzQxNCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZXRMb2NhbFF1ZXVlLnNpemUoKTsgKytpKQogICAgICAg
ICAgICAgbV9zZXRMb2NhbFF1ZXVlW2ldLmV4ZWN1dGUodGhpcyk7Ci0gICAgICAgIG1fc2V0TG9j
YWxRdWV1ZS5yZXNpemUoMCk7CisgICAgICAgIG1fc2V0TG9jYWxRdWV1ZS5zaHJpbmsoMCk7CiAg
ICAgfQogCiAgICAgTm9kZSogc2V0KFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBOb2RlKiB2YWx1
ZSwgU2V0TW9kZSBzZXRNb2RlID0gTm9ybWFsU2V0KQpAQCAtNDA1NSw3ICs0MDU1LDcgQEAgdm9p
ZCBCeXRlQ29kZVBhcnNlcjo6cHJlcGFyZVRvUGFyc2VCbG9jaygpCiAKIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OmNsZWFyQ2FjaGVzKCkKIHsKLSAgICBtX2NvbnN0YW50cy5yZXNpemUoMCk7CisgICAg
bV9jb25zdGFudHMuc2hyaW5rKDApOwogfQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKHVuc2lnbmVkIGxpbWl0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNh
c3NlbWJsZXIuY3BwCmluZGV4IDA0OGZjMGJiNTk0MWE2NzVhMTc0OTI4OGYwZDg1MDQxN2FmY2Zi
NDEuLjA2ZDFkYWNkMTA4MTVlZGE3NmI4MWMzMmI5MGM0ZTkzNTQzMWFhODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rpc2Fzc2VtYmxlci5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgRGlzYXNzZW1ibGVyOjpEaXNhc3NlbWJsZXIoR3JhcGgmIGdyYXBoKQogICAgIDogbV9ncmFw
aChncmFwaCkKIHsKICAgICBtX2R1bXBDb250ZXh0LmdyYXBoID0gJm1fZ3JhcGg7Ci0gICAgbV9s
YWJlbEZvckJsb2NrSW5kZXgucmVzaXplKGdyYXBoLm51bUJsb2NrcygpKTsKKyAgICBtX2xhYmVs
Rm9yQmxvY2tJbmRleC5ncm93KGdyYXBoLm51bUJsb2NrcygpKTsKIH0KIAogdm9pZCBEaXNhc3Nl
bWJsZXI6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCwgTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmxvd0luZGV4aW5nLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmxvd0luZGV4aW5nLmNwcAppbmRleCA3M2Mx
ODY5ZTg5MjNiOGYwYjQ2MTliM2FmMzFjMjljOTUwODQxY2M1Li42MzRhYWI1MTUwMjM2MzE2MTBl
YzY4MzMxNjUxYjc2NmFiMmU1YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Zsb3dJbmRleGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGbG93SW5kZXhpbmcuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgRmxvd0luZGV4aW5nOjpy
ZWNvbXB1dGUoKQogICAgIG1fbm9kZUluZGV4VG9TaGFkb3dJbmRleC5yZXNpemUobnVtTm9kZUlu
ZGljZXMpOwogICAgIG1fbm9kZUluZGV4VG9TaGFkb3dJbmRleC5maWxsKFVJTlRfTUFYKTsKICAg
ICAKLSAgICBtX3NoYWRvd0luZGV4VG9Ob2RlSW5kZXgucmVzaXplKDApOworICAgIG1fc2hhZG93
SW5kZXhUb05vZGVJbmRleC5zaHJpbmsoMCk7CiAKICAgICBtX251bUluZGljZXMgPSBudW1Ob2Rl
SW5kaWNlczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCBkYjA2
YjAxNjk3MWFiZDU4NmZjOTExZWZjNmRjMTZiOWM2OTI1NDhiLi41YjhlNzEyY2MwZGY4MDc4YjIz
MGJkNzJiYTAyMzQ3NDMxMjBmMGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmNwcApAQCAtMTMzMCw3ICsxMzMwLDcgQEAgSlNBcnJheUJ1ZmZlclZpZXcqIEdyYXBoOjp0cnlH
ZXRGb2xkYWJsZVZpZXcoSlNWYWx1ZSB2YWx1ZSwgQXJyYXlNb2RlIGFycmF5TW9kZSkKIAogdm9p
ZCBHcmFwaDo6cmVnaXN0ZXJGcm96ZW5WYWx1ZXMoKQogewotICAgIG1fY29kZUJsb2NrLT5jb25z
dGFudHMoKS5yZXNpemUoMCk7CisgICAgbV9jb2RlQmxvY2stPmNvbnN0YW50cygpLnNocmluaygw
KTsKICAgICBtX2NvZGVCbG9jay0+Y29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKCku
cmVzaXplKDApOwogICAgIGZvciAoRnJvemVuVmFsdWUqIHZhbHVlIDogbV9mcm96ZW5WYWx1ZXMp
IHsKICAgICAgICAgaWYgKCF2YWx1ZS0+cG9pbnRzVG9IZWFwKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCmluZGV4IDFk
MjBkMWQ0Y2E1MDI3MmJjNjZhZDQ0NGFhZmE5NjA4MDIxMzMxYTMuLjI1YjRhNmI1OTZjMjQ3MDAx
NzgzNzlhNzI4NTYxOWQ1ODkxZmExYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZv
aWQgSW5QbGFjZUFic3RyYWN0U3RhdGU6OmJlZ2luQmFzaWNCbG9jayhCYXNpY0Jsb2NrKiBiYXNp
Y0Jsb2NrKQogCiBzdGF0aWMgdm9pZCBzZXRMaXZlVmFsdWVzKFZlY3RvcjxOb2RlQWJzdHJhY3RW
YWx1ZVBhaXI+JiB2YWx1ZXMsIGNvbnN0IFZlY3RvcjxOb2RlRmxvd1Byb2plY3Rpb24+JiBsaXZl
KQogewotICAgIHZhbHVlcy5yZXNpemUoMCk7CisgICAgdmFsdWVzLnNocmluaygwKTsKICAgICB2
YWx1ZXMucmVzZXJ2ZUNhcGFjaXR5KGxpdmUuc2l6ZSgpKTsKICAgICBmb3IgKE5vZGVGbG93UHJv
amVjdGlvbiBub2RlIDogbGl2ZSkKICAgICAgICAgdmFsdWVzLnVuY2hlY2tlZEFwcGVuZChOb2Rl
QWJzdHJhY3RWYWx1ZVBhaXIgeyBub2RlLCBBYnN0cmFjdFZhbHVlKCkgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xJQ01QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0xJQ01QaGFzZS5jcHAKaW5kZXggNzVlZWZhOWU3MDdmNGQyYWVm
OGYyYzBjNTYzZTI1NmVlNTM0ZGIyMC4uZjQ0MDQ5MTM5ZDA5YjRlN2I5MjMwOGIxMmE1NTFhYTZm
ZjExZjliYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNlLmNwcApA
QCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghbG9vcCkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgbG9vcFN0YWNr
LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIGxvb3BTdGFjay5zaHJpbmsoMCk7CiAgICAgICAgICAg
ICBmb3IgKAogICAgICAgICAgICAgICAgIGNvbnN0IE5hdHVyYWxMb29wKiBjdXJyZW50ID0gbG9v
cDsKICAgICAgICAgICAgICAgICBjdXJyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdMaXZlbmVzc0FuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdMaXZlbmVzc0FuYWx5c2lzUGhhc2UuY3BwCmluZGV4IDZmY2Y4MzExZmNi
OGI2Njc4MzkzOWRlNjUxMGJlMTZkN2FmM2FlMTEuLmJiODAwMjc0ZGRjYjYzMDM0NzgzNzM3ZTM4
YWQxZTYxZTljNWVhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
TGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0xpdmVuZXNzQW5hbHlzaXNQaGFzZS5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCwgMCwg
VW5zYWZlVmVjdG9yT3ZlcmZsb3csIDE+JiBsaXZlQXRIZWFkSW5kaWNlcyA9IG1fbGl2ZUF0SGVh
ZFtibG9ja0luZGV4XTsKICAgICAgICAgICAgICAgICBWZWN0b3I8Tm9kZUZsb3dQcm9qZWN0aW9u
PiYgbGl2ZUF0SGVhZCA9IGJsb2NrLT5zc2EtPmxpdmVBdEhlYWQ7Ci0gICAgICAgICAgICAgICAg
bGl2ZUF0SGVhZC5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgbGl2ZUF0SGVhZC5zaHJpbmso
MCk7CiAgICAgICAgICAgICAgICAgbGl2ZUF0SGVhZC5yZXNlcnZlQ2FwYWNpdHkobGl2ZUF0SGVh
ZEluZGljZXMuc2l6ZSgpKTsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4IDog
bGl2ZUF0SGVhZEluZGljZXMpCiAgICAgICAgICAgICAgICAgICAgIGxpdmVBdEhlYWQudW5jaGVj
a2VkQXBwZW5kKG1faW5kZXhpbmcubm9kZVByb2plY3Rpb24oaW5kZXgpKTsKQEAgLTEwNCw3ICsx
MDQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc3QgTGl2
ZVNldCYgbGl2ZUF0VGFpbEluZGljZXMgPSBtX2xpdmVBdFRhaWxbYmxvY2tJbmRleF07CiAgICAg
ICAgICAgICAgICAgVmVjdG9yPE5vZGVGbG93UHJvamVjdGlvbj4mIGxpdmVBdFRhaWwgPSBibG9j
ay0+c3NhLT5saXZlQXRUYWlsOwotICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwucmVzaXplKDAp
OworICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwuc2hyaW5rKDApOwogICAgICAgICAgICAgICAg
IGxpdmVBdFRhaWwucmVzZXJ2ZUNhcGFjaXR5KGxpdmVBdFRhaWxJbmRpY2VzLnNpemUoKSk7CiAg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA6IG1fbGl2ZUF0VGFpbFtibG9ja0lu
ZGV4XSkKICAgICAgICAgICAgICAgICAgICAgbGl2ZUF0VGFpbC51bmNoZWNrZWRBcHBlbmQobV9p
bmRleGluZy5ub2RlUHJvamVjdGlvbihpbmRleCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOYXR1cmFsTG9vcHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOYXR1cmFsTG9vcHMuY3BwCmluZGV4IDQ4MGNmMGVkODgzODc2N2YzMDliNDM1YWZh
ZDA2MjAyYmM2NzYxY2EuLjM1MWU2NjUwMDljZjk1ZjE3YTZhOWY1N2FlZjgwODU2NmYwNjFlMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTmF0dXJhbExvb3BzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05hdHVyYWxMb29wcy5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgTmF0dXJhbExvb3BzOjpOYXR1cmFsTG9vcHMoR3JhcGgmIGdyYXBoKQog
ICAgICAgICBncmFwaC5tX2RvbWluYXRvcnMtPmR1bXAoV1RGOjpkYXRhRmlsZSgpKTsKICAgICB9
CiAgICAgCi0gICAgbV9sb29wcy5yZXNpemUoMCk7CisgICAgbV9sb29wcy5zaHJpbmsoMCk7CiAg
ICAgCiAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBncmFwaC5udW1CbG9ja3MoKTsg
YmxvY2tJbmRleC0tOykgewogICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IGdyYXBoLmJsb2Nr
KGJsb2NrSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuY3BwCmluZGV4IDkzOTgxNjQyZTQ2NTQx
MDJlYjU0NmRkZTQ3YmJhODliOWNjZjY3MzQuLjQ2Zjk3Yzk2YWMyOTJiODM5ZDQxMjNiOGJkYjU1
NDM2M2QwODZiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Rv
cmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5jcHAKQEAgLTE0OSw3ICsxNDksNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25lLCB0eXBl
LCBvcmlnaW4ud2l0aFNlbWFudGljKHNlbWFudGljT3JpZ2luKSwKICAgICAgICAgICAgICAgICAg
ICAgRWRnZShjaGlsZCwgS25vd25DZWxsVXNlKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBtX25lZWRlZEJhcnJpZXJzLnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIG1fbmVlZGVkQmFycmll
cnMuc2hyaW5rKDApOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX2luc2VydGlvblNl
dC5leGVjdXRlKGJsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAppbmRleCBkMmNjMjNhMjgyYzVjM2FlZTkwZDA2NjAxOTk0NzVhMzQ1NmE0ZTQx
Li4yYzcyNjIzYmFjOWJkNmM2ODkyMWRhZjM3OWE3ODBlMGNkNDQwNDJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NjQsNyArNDY0LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkxvd2VyaW5nICIsIG1fbm9kZSwgIlxuIik7CiAgICAgICAgIAot
ICAgICAgICBtX2F2YWlsYWJsZVJlY292ZXJpZXMucmVzaXplKDApOworICAgICAgICBtX2F2YWls
YWJsZVJlY292ZXJpZXMuc2hyaW5rKDApOwogICAgICAgICAKICAgICAgICAgbV9pbnRlcnByZXRl
ci5zdGFydEV4ZWN1dGluZygpOwogICAgICAgICBtX2ludGVycHJldGVyLmV4ZWN1dGVLbm93bkVk
Z2VUeXBlcyhtX25vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
Q29kZUJsb2NrU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1Nl
dC5jcHAKaW5kZXggODY2ZGM4YWEzN2VhZTQ1YzhiNTIxNTJjNmE0NDlhNzNmOGE2ODg5NS4uMTM3
YzU5MzM0YjNiYTUzYTUzNDI1NjA5ZmU3ZTcwMjdjNmM4Nzk5MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29kZUJsb2NrU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgQ29k
ZUJsb2NrU2V0OjpkZWxldGVVbm1hcmtlZEFuZFVucmVmZXJlbmNlZChWTSYgdm0sIENvbGxlY3Rp
b25TY29wZSBzY29wZSkKICAgICAgICAgICAgIGNvZGVCbG9jay0+c3RydWN0dXJlKHZtKS0+Y2xh
c3NJbmZvKCktPm1ldGhvZFRhYmxlLmRlc3Ryb3koY29kZUJsb2NrKTsKICAgICAgICAgICAgIHNl
dC5yZW1vdmUoY29kZUJsb2NrKTsKICAgICAgICAgfQotICAgICAgICB1bm1hcmtlZC5yZXNpemUo
MCk7CisgICAgICAgIHVubWFya2VkLnNocmluaygwKTsKICAgICB9OwogCiAgICAgc3dpdGNoIChz
Y29wZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3Bh
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCmluZGV4
IGEzNmMyZjBkOGQ5ZWU2N2UyOWMxYWIyYTRlYjM0YmI3YTQ2YzEyNzAuLjBmOWNiNjcyYjQ3NWM1
YjY5NDRmNGQ2OGZkY2RhNTQ4ZWI0ZTk5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRTcGFjZS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIE1hcmtlZFNwYWNlOjpz
d2VlcExhcmdlQWxsb2NhdGlvbnMoKQogICAgICAgICB9CiAgICAgICAgIG1fbGFyZ2VBbGxvY2F0
aW9uc1tkc3RJbmRleCsrXSA9IGFsbG9jYXRpb247CiAgICAgfQotICAgIG1fbGFyZ2VBbGxvY2F0
aW9ucy5yZXNpemUoZHN0SW5kZXgpOworICAgIG1fbGFyZ2VBbGxvY2F0aW9ucy5zaHJpbmsoZHN0
SW5kZXgpOwogICAgIG1fbGFyZ2VBbGxvY2F0aW9uc051cnNlcnlPZmZzZXQgPSBtX2xhcmdlQWxs
b2NhdGlvbnMuc2l6ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAppbmRleCA3ZjQ1MDQyMzU2
YmQ0ZGM1M2ZkOGQwZDc5NDgxZDgwZDQ5ZGNjZmNlLi4wMTIxYzM5ZjM0N2YwY2EyYjJkYjU1MWM3
N2MzMWFkMjQ4ODM0M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAKQEAgLTE4Niw3ICsxODYsNyBA
QCBzdGF0aWMgU3RyaW5nIGZpbmRNYWdpY0NvbW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50LCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbgogCiAgICAgQVNTRVJUKHBhdHRlcm4ubV9udW1TdWJw
YXR0ZXJucyA9PSAxKTsKICAgICBWZWN0b3I8aW50LCA0PiBtYXRjaGVzOwotICAgIG1hdGNoZXMu
cmVzaXplKDQpOworICAgIG1hdGNoZXMuZ3Jvdyg0KTsKICAgICB1bnNpZ25lZCByZXN1bHQgPSBK
U0M6OllhcnI6OmludGVycHJldChieXRlY29kZVBhdHRlcm4uZ2V0KCksIGNvbnRlbnQsIDAsIHJl
aW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihtYXRjaGVzLmRhdGEoKSkpOwogICAgIGlmIChyZXN1
bHQgPT0gSlNDOjpZYXJyOjpvZmZzZXROb01hdGNoKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hp
Y2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tl
bi5jcHAKaW5kZXggMGY3ZTljYjBjMDU2MGRjMTlmYjIzOWUxYzQ2ZjE0YjNhOGZmMjA2Yy4uYWU2
ZTE4MzVlMmUyZTdhNDMwMGY3ZGZhMGExMWIyODZkM2YxZmMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcApAQCAtMzk1LDcg
KzM5NSw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBtX3N0YWNrW2RzdEluZGV4
KytdID0gZnJhbWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX3N0YWNrLnJlc2l6ZShk
c3RJbmRleCk7CisgICAgICAgICAgICBtX3N0YWNrLnNocmluayhkc3RJbmRleCk7CiAgICAgICAg
IH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNU
QnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5k
ZXggMmFiYTFlYjJlNDU5M2ZkZDdhYTdjNTc1OWJhYTA0YThjNmZlM2FiMS4uMjgwYzcyN2QyNTA1
MDU2ODk2ZDdhYmU3ZjgwNTcwNjEwNzMxNjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9BU1RCdWlsZGVyLmgKQEAgLTg1NCw3ICs4NTQsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBvcGVyYW5kU3RhY2tEZXB0aCAtPSBhbW91bnQ7CiAgICAgICAgIEFTU0VSVChvcGVyYW5k
U3RhY2tEZXB0aCA+PSAwKTsKLSAgICAgICAgbV9iaW5hcnlPcGVyYW5kU3RhY2sucmVzaXplKG1f
YmluYXJ5T3BlcmFuZFN0YWNrLnNpemUoKSAtIGFtb3VudCk7CisgICAgICAgIG1fYmluYXJ5T3Bl
cmFuZFN0YWNrLnNocmluayhtX2JpbmFyeU9wZXJhbmRTdGFjay5zaXplKCkgLSBhbW91bnQpOwog
ICAgIH0KICAgICB2b2lkIGFwcGVuZEJpbmFyeU9wZXJhdGlvbihjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCBpbnQmIG9wZXJhbmRTdGFja0RlcHRoLCBpbnQmLCBjb25zdCBCaW5hcnlP
cGVyYW5kJiBsaHMsIGNvbnN0IEJpbmFyeU9wZXJhbmQmIHJocykKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmgKaW5kZXggZDkyNmNmZGZhZjg3YmVjMjhkYTBlNTdiZDRiM2Mx
NGYwMWQzYzVmYi4uZDg0NWUyZTE0ZjU2OWE0ZDM4ZTJjM2Q5OWVmNmM0NjcyMzI0MzIyMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaApAQCAtOTksOCArOTksOCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fbGluZVN0YXJ0ID0gc291cmNlUHRyRnJvbU9mZnNldChsaW5lU3RhcnRPZmZz
ZXQpOwogICAgICAgICBBU1NFUlQoY3VycmVudE9mZnNldCgpID49IGN1cnJlbnRMaW5lU3RhcnRP
ZmZzZXQoKSk7CiAKLSAgICAgICAgbV9idWZmZXI4LnJlc2l6ZSgwKTsKLSAgICAgICAgbV9idWZm
ZXIxNi5yZXNpemUoMCk7CisgICAgICAgIG1fYnVmZmVyOC5zaHJpbmsoMCk7CisgICAgICAgIG1f
YnVmZmVyMTYuc2hyaW5rKDApOwogICAgICAgICBpZiAoTElLRUxZKG1fY29kZSA8IG1fY29kZUVu
ZCkpCiAgICAgICAgICAgICBtX2N1cnJlbnQgPSAqbV9jb2RlOwogICAgICAgICBlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggZjgwNTlk
NzI5M2UyODNkZjNkMDljNmRhNmRjZjZiODc0NzNjYTUxYi4uM2QxNDEwYzE1ZTQwMTEzYjVmYzQx
MmM5M2FlODk1NzQ0ODg3YWFlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cElubGluZXMuaApAQCAtMjE0LDcgKzIxNCw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShWTSYgdm0sIGNvbnN0IFN0cmluZyYgcywgdW5zaWdu
ZWQKICAgICBpbnQgb2Zmc2V0VmVjdG9yU2l6ZSA9IChtX251bVN1YnBhdHRlcm5zICsgMSkgKiAy
OwogICAgIGludCogb2Zmc2V0VmVjdG9yOwogICAgIFZlY3RvcjxpbnQsIDMyPiBub25SZXR1cm5l
ZE92ZWN0b3I7Ci0gICAgbm9uUmV0dXJuZWRPdmVjdG9yLnJlc2l6ZShvZmZzZXRWZWN0b3JTaXpl
KTsKKyAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBv
ZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwogICAgIGludCByID0gWWFy
cjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAjaWYgUkVHRVhQX0ZVTkNf
VEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5jcHAKaW5kZXggNWE4ZjBhMWViMGEzNjU2NTJhNTM0OTdhN2QyMThiYzRmNzkz
MWU0ZC4uMTAxODJhYTJjMjE0OTE5OWE5Mjc3YWE3MWViNDg5NDhkZDZkMDhkYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC01
MTUsNyArNTE1LDcgQEAgdm9pZCBnZW5lcmljU3BsaXQoCiAgICAgICAgIGlmIChjb250cm9sKCkg
PT0gQWJvcnRTcGxpdCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgICAgIG92
ZWN0b3IucmVzaXplKDApOworICAgICAgICBvdmVjdG9yLnNocmluaygwKTsKICAgICAgICAgCiAg
ICAgICAgIC8vIGEuIFBlcmZvcm0gPyBTZXQoc3BsaXR0ZXIsICJsYXN0SW5kZXgiLCBxLCB0cnVl
KS4KICAgICAgICAgLy8gYi4gTGV0IHogYmUgPyBSZWdFeHBFeGVjKHNwbGl0dGVyLCBTKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAppbmRl
eCBkODdkNjAzMWYzODk1MjRmODZiNTBjOTdjYmUzZmQxNWNlNmYxZWMxLi4xYjFiMjI0MTVhYTgz
MDkwMzIzZmQ3OGYxYjIzZjQ0YzY1NThmOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgaW50IFJl
Z3VsYXJFeHByZXNzaW9uOjptYXRjaChjb25zdCBTdHJpbmcmIHN0ciwgaW50IHN0YXJ0RnJvbSwg
aW50KiBtYXRjaExlbmd0aCkKICAgICB1bnNpZ25lZCogb2Zmc2V0VmVjdG9yOwogICAgIFZlY3Rv
cjx1bnNpZ25lZCwgMzI+IG5vblJldHVybmVkT3ZlY3RvcjsKIAotICAgIG5vblJldHVybmVkT3Zl
Y3Rvci5yZXNpemUob2Zmc2V0VmVjdG9yU2l6ZSk7CisgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdy
b3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVj
dG9yLmRhdGEoKTsKIAogICAgIEFTU0VSVChvZmZzZXRWZWN0b3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSW5kZXhTcGFyc2VTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0luZGV4U3BhcnNl
U2V0LmgKaW5kZXggMjZhYmIyYzkwZGU4Y2U4OGUwYmE1ZWYxMWEzZGUwYTg5MTc5MGQwYS4uYmNl
NDU4OGMxNWNmM2RmZmUyNDQwNTgzODE1NzlhOTllMWQwM2U4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvSW5kZXhTcGFyc2VTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbmRleFNwYXJz
ZVNldC5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPHR5cGVuYW1lIEVu
dHJ5VHlwZSwgdHlwZW5hbWUgRW50cnlUeXBlVHJhaXRzLCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXI+CiBpbmxpbmUgSW5kZXhTcGFyc2VTZXQ8RW50cnlUeXBlLCBFbnRyeVR5cGVUcmFpdHMsIE92
ZXJmbG93SGFuZGxlcj46OkluZGV4U3BhcnNlU2V0KHVuc2lnbmVkIHNpemUpCiB7Ci0gICAgbV9t
YXAucmVzaXplKHNpemUpOworICAgIG1fbWFwLmdyb3coc2l6ZSk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIEVudHJ5VHlwZSwgdHlwZW5hbWUgRW50cnlUeXBlVHJhaXRzLCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXI+CkBAIC0xNjAsNyArMTYwLDcgQEAgaW5saW5lIGJvb2wgSW5kZXhTcGFyc2VT
ZXQ8RW50cnlUeXBlLCBFbnRyeVR5cGVUcmFpdHMsIE92ZXJmbG93SGFuZGxlcj46OnJlbW92ZSgK
IHRlbXBsYXRlPHR5cGVuYW1lIEVudHJ5VHlwZSwgdHlwZW5hbWUgRW50cnlUeXBlVHJhaXRzLCB0
eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+CiB2b2lkIEluZGV4U3BhcnNlU2V0PEVudHJ5VHlwZSwg
RW50cnlUeXBlVHJhaXRzLCBPdmVyZmxvd0hhbmRsZXI+OjpjbGVhcigpCiB7Ci0gICAgbV92YWx1
ZXMucmVzaXplKDApOworICAgIG1fdmFsdWVzLnNocmluaygwKTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgRW50cnlUeXBlLCB0eXBlbmFtZSBFbnRyeVR5cGVUcmFpdHMsIHR5cGVuYW1lIE92ZXJm
bG93SGFuZGxlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0luc2VydGlvbi5oIGIvU291
cmNlL1dURi93dGYvSW5zZXJ0aW9uLmgKaW5kZXggOGEyODdhMGMwZDIwNjVjMmNhYWZmNWFkZjdj
YzJhNmU2MDBjNmQzYy4uZGM1MjZlNGRiM2M2OTU5NWZiMzA3MDg4NTZhNjdiZTBiYTdmNDdlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSW5zZXJ0aW9uLmgKKysrIGIvU291cmNlL1dURi93
dGYvSW5zZXJ0aW9uLmgKQEAgLTczLDcgKzczLDcgQEAgc2l6ZV90IGV4ZWN1dGVJbnNlcnRpb25z
KFRhcmdldFZlY3RvclR5cGUmIHRhcmdldCwgSW5zZXJ0aW9uVmVjdG9yVHlwZSYgaW5zZXJ0aW8K
ICAgICAgICAgdGFyZ2V0W2ZpcnN0SW5kZXhdID0gV1RGTW92ZShpbnNlcnRpb25zW2luZGV4SW5J
bnNlcnRpb25zXS5lbGVtZW50KCkpOwogICAgICAgICBsYXN0SW5kZXggPSBmaXJzdEluZGV4Owog
ICAgIH0KLSAgICBpbnNlcnRpb25zLnJlc2l6ZSgwKTsKKyAgICBpbnNlcnRpb25zLnNocmluaygw
KTsKICAgICByZXR1cm4gbnVtSW5zZXJ0aW9uczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUmFuZ2VTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL1JhbmdlU2V0LmgKaW5kZXggZWQzYjRh
ZGQ4ZGI1MGFiZDE5OTRhMjYzMDg1ZjZkOTc1NGMzMTgxYy4uNTIxMjVkZmZjMTAwOGM5YjZhNjU5
NTg0OTk5MDk5OWQ4MWZjMjk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmFuZ2VTZXQu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SYW5nZVNldC5oCkBAIC0xNTksNyArMTU5LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGxhc3RSYW5nZSA9ICZtX3Jhbmdlc1tkc3RJbmRleCsrXTsKICAg
ICAgICAgICAgICpsYXN0UmFuZ2UgPSByYW5nZTsKICAgICAgICAgfQotICAgICAgICBtX3Jhbmdl
cy5yZXNpemUoZHN0SW5kZXgpOworICAgICAgICBtX3Jhbmdlcy5zaHJpbmsoZHN0SW5kZXgpOwog
CiAgICAgICAgIG1faXNDb21wYWN0ID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGUxNWY2NWM1
N2JjYTlmNGVhYjkzYTMyY2RiMjgyNWY0NTgzYTAxY2IuLmJhMmE1NzAxMjFiYjNhOTg0NzU1OTk4
NWQwNDVhNTBlMDdhNTllMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC0xNTM2LDcgKzE1MzYsNyBAQCBzaXplX3Qg
cmVtb3ZlUmVwZWF0ZWRFbGVtZW50cyhWZWN0b3JUeXBlJiB2ZWN0b3IsIGNvbnN0IEZ1bmMmIGZ1
bmMpCiB7CiAgICAgYXV0byBlbmQgPSBzdGQ6OnVuaXF1ZSh2ZWN0b3IuYmVnaW4oKSwgdmVjdG9y
LmVuZCgpLCBmdW5jKTsKICAgICBzaXplX3QgbmV3U2l6ZSA9IGVuZCAtIHZlY3Rvci5iZWdpbigp
OwotICAgIHZlY3Rvci5yZXNpemUobmV3U2l6ZSk7CisgICAgdmVjdG9yLnNocmluayhuZXdTaXpl
KTsKICAgICByZXR1cm4gbmV3U2l6ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
cGVyc2lzdGVuY2UvQ29kZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9Db2RlcnMu
aAppbmRleCA0MDUwNjc0MTM1MzQ0NWQyNTgyMzRhMzBjNmI1NmY1ZjRhZDExMzYwLi41YjM2Y2Iw
OGVkZTI5ZWY0NDkxY2NlNmYyYTNhM2MwYjFjMzI0MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9wZXJzaXN0ZW5jZS9Db2RlcnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5j
ZS9Db2RlcnMuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4gc3RydWN0IFZlY3RvckNvZGVyPHRydWUsIFQsIGlubGluZUNhCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5PiB0ZW1wOwotICAgICAgICB0ZW1wLnJlc2l6ZShzaXplKTsKKyAgICAgICAgdGVtcC5ncm93
KHNpemUpOwogCiAgICAgICAgIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDhfdCo+KHRlbXAuZGF0YSgpKSwgc2l6ZSAqIHNpemVvZihUKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmNwcAppbmRleCBkMTFjNTUwOGQ0
MjFjZTJmMjRkODYxZTQwZWYzMmQwMmU1YTJhYjczLi5lNjlhMzU5OWYwYzEyMTVlNDgxMjlhZjVh
MWVjYjFjZWQwMTkzNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVw
YWQvR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVw
YWQuY3BwCkBAIC0zOSw5ICszOSw4IEBAIEdhbWVwYWQ6OkdhbWVwYWQoY29uc3QgUGxhdGZvcm1H
YW1lcGFkJiBwbGF0Zm9ybUdhbWVwYWQpCiAgICAgLCBtX2luZGV4KHBsYXRmb3JtR2FtZXBhZC5p
bmRleCgpKQogICAgICwgbV9jb25uZWN0ZWQodHJ1ZSkKICAgICAsIG1fdGltZXN0YW1wKHBsYXRm
b3JtR2FtZXBhZC5sYXN0VXBkYXRlVGltZSgpKQorICAgICwgbV9heGVzKHBsYXRmb3JtR2FtZXBh
ZC5heGlzVmFsdWVzKCkuc2l6ZSgpLCAwLjApCiB7Ci0gICAgbV9heGVzLnJlc2l6ZShwbGF0Zm9y
bUdhbWVwYWQuYXhpc1ZhbHVlcygpLnNpemUoKSk7Ci0gICAgbV9heGVzLmZpbGwoMC4wKTsKICAg
ICB1bnNpZ25lZCBidXR0b25Db3VudCA9IHBsYXRmb3JtR2FtZXBhZC5idXR0b25WYWx1ZXMoKS5z
aXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1dHRvbkNvdW50OyArK2kpCiAg
ICAgICAgIG1fYnV0dG9ucy5hcHBlbmQoR2FtZXBhZEJ1dHRvbjo6Y3JlYXRlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGVi
NWFmOTRkYjAzYjNiMGNmMzFkMWE5NGRjM2Q3NTg3MGZlZDNlMjcuLjg0N2IwNDc1NTgwZjFlMmM0
MjMzNjI1NDI4MTdlN2EyNjVhMzczMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEF1ZGlv
Q29udGV4dDo6YWRkUmVhY3Rpb24oU3RhdGUgc3RhdGUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCiB7CiAgICAgc2l6ZV90IHN0YXRlSW5kZXggPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KHN0YXRlKTsKICAgICBpZiAoc3RhdGVJbmRleCA+PSBtX3N0YXRlUmVhY3Rpb25zLnNpemUo
KSkKLSAgICAgICAgbV9zdGF0ZVJlYWN0aW9ucy5yZXNpemUoc3RhdGVJbmRleCArIDEpOworICAg
ICAgICBtX3N0YXRlUmVhY3Rpb25zLmdyb3coc3RhdGVJbmRleCArIDEpOwogCiAgICAgbV9zdGF0
ZVJlYWN0aW9uc1tzdGF0ZUluZGV4XS5hcHBlbmQoV1RGTW92ZShwcm9taXNlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggM2U3NzhjMzgwMjUwZDYzNjA3MGJhYmVhYTU0OGY5YWZiMGNmNWUzOS4uODQ0
NWM2YTRhYjA0NTU1OGE0Nzk4MGU2ZjI3YmFkNWVlNmQxNTA2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAt
NDE4LDcgKzQxOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6c2tpcEJ1ZmZlcihzaXplX3Qg
bGVuKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGxlbiA8PSBtX2J1
ZmZlci5zaXplKCkpOwogICAgIG1lbW1vdmUobV9idWZmZXIuZGF0YSgpLCBtX2J1ZmZlci5kYXRh
KCkgKyBsZW4sIG1fYnVmZmVyLnNpemUoKSAtIGxlbik7Ci0gICAgbV9idWZmZXIucmVzaXplKG1f
YnVmZmVyLnNpemUoKSAtIGxlbik7CisgICAgbV9idWZmZXIuc2hyaW5rKG1fYnVmZmVyLnNpemUo
KSAtIGxlbik7CiB9CiAKIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVm
bGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERl
ZmxhdGVyLmNwcAppbmRleCA0OTdiMjkzYTY3MzAyMzYxOWJhOTc2NjAwNDFlMmMxODI3ZjlmZjA4
Li41ODkzMDA0NTZiY2I3OGUxYmM0MGM1MTNkMmU0MTkxOWFjMmM1MjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5j
cHAKQEAgLTExMSw3ICsxMTEsNyBAQCBib29sIFdlYlNvY2tldERlZmxhdGVyOjpmaW5pc2goKQog
ICAgIC8vIFJlbW92ZSA0IG9jdGV0cyBmcm9tIHRoZSB0YWlsIGFzIHRoZSBzcGVjaWZpY2F0aW9u
IHJlcXVpcmVzLgogICAgIGlmIChtX2J1ZmZlci5zaXplKCkgPD0gNCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIG1fYnVmZmVyLnJlc2l6ZShtX2J1ZmZlci5zaXplKCkgLSA0KTsKKyAgICBt
X2J1ZmZlci5zaHJpbmsobV9idWZmZXIuc2l6ZSgpIC0gNCk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IDNmYzc5Mzc3YzJmMTFiZDRlZTIwZDIz
YjNmMTUyZmU1OGY0YWZhYjYuLjk3Y2NkMmJiMmRmY2MwMmZiOWE0N2NjMGZkNjFmYmNmYzljODgw
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtNTQsMTQgKzU0LDE0IEBAIHN0YXRp
YyB2b2lkIHNlcmlhbGl6ZVNlbGVjdG9yKFZlY3RvcjxTZXJpYWxpemVkQWN0aW9uQnl0ZT4mIGFj
dGlvbnMsIGNvbnN0IFN0cmluCiAgICAgYWN0aW9ucy5hcHBlbmQoc3RhdGljX2Nhc3Q8U2VyaWFs
aXplZEFjdGlvbkJ5dGU+KEFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IpKTsKICAg
ICAvLyBBcHBlbmQgU2VsZWN0b3IgbGVuZ3RoICg0IGJ5dGVzKS4KICAgICB1bnNpZ25lZCBzZWxl
Y3Rvckxlbmd0aCA9IHNlbGVjdG9yLmxlbmd0aCgpOwotICAgIGFjdGlvbnMucmVzaXplKGFjdGlv
bnMuc2l6ZSgpICsgc2l6ZW9mKHVuc2lnbmVkKSk7CisgICAgYWN0aW9ucy5ncm93KGFjdGlvbnMu
c2l6ZSgpICsgc2l6ZW9mKHVuc2lnbmVkKSk7CiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWdu
ZWQqPigmYWN0aW9uc1thY3Rpb25zLnNpemUoKSAtIHNpemVvZih1bnNpZ25lZCldKSA9IHNlbGVj
dG9yTGVuZ3RoOwogICAgIGJvb2wgd2lkZUNoYXJhY3RlcnMgPSAhc2VsZWN0b3IuaXM4Qml0KCk7
CiAgICAgYWN0aW9ucy5hcHBlbmQod2lkZUNoYXJhY3RlcnMpOwogICAgIC8vIEFwcGVuZCBTZWxl
Y3Rvci4KICAgICBpZiAod2lkZUNoYXJhY3RlcnMpIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnRJ
bmRleCA9IGFjdGlvbnMuc2l6ZSgpOwotICAgICAgICBhY3Rpb25zLnJlc2l6ZShhY3Rpb25zLnNp
emUoKSArIHNpemVvZihVQ2hhcikgKiBzZWxlY3Rvckxlbmd0aCk7CisgICAgICAgIGFjdGlvbnMu
Z3JvdyhhY3Rpb25zLnNpemUoKSArIHNpemVvZihVQ2hhcikgKiBzZWxlY3Rvckxlbmd0aCk7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3Rvckxlbmd0aDsgKytpKQogICAg
ICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPigmYWN0aW9uc1tzdGFydEluZGV4ICsg
aSAqIHNpemVvZihVQ2hhcildKSA9IHNlbGVjdG9yW2ldOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGls
ZXIuY3BwCmluZGV4IDMwMGFhNjQ2Y2YzYzc0MWFhYWQ1M2FiZWZjMjFiMjc5NzU2ZWNmNzguLmM5
NjEwNTFjMDkyYzU1YmQxMzYzMmE0YzlkY2NhNGFmNmQ1ZmI2YTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGlsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGlsZXIuY3Bw
CkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgSW50VHlwZT4KIGlubGluZSB2b2lkIGFwcGVuZChWZWN0b3I8REZBQnl0ZWNv
ZGU+JiBieXRlY29kZSwgSW50VHlwZSB2YWx1ZSkKIHsKLSAgICBieXRlY29kZS5yZXNpemUoYnl0
ZWNvZGUuc2l6ZSgpICsgc2l6ZW9mKEludFR5cGUpKTsKKyAgICBieXRlY29kZS5ncm93KGJ5dGVj
b2RlLnNpemUoKSArIHNpemVvZihJbnRUeXBlKSk7CiAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8SW50
VHlwZSo+KCZieXRlY29kZVtieXRlY29kZS5zaXplKCkgLSBzaXplb2YoSW50VHlwZSldKSA9IHZh
bHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAppbmRleCA2NDUzNTk3ZTRmMjlkODNm
ZDhjMWFmNzJlNTdhMTZjYjg5ZjAwNWI1Li43NjNkZGVmZTc0ZjgyN2VlMzYxYmNiZDhjYTIwYmUy
NWMwMDRiNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBnY3J5cHRFbmNyeXB0KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYga2V5LAogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgdWludDhfdCBwYWRkaW5nVmFsdWUgPSBwYWRkZWRTaXplIC0gc2l6ZTsKIAotICAg
ICAgICBwbGFpblRleHQucmVzaXplKHBhZGRlZFNpemUpOworICAgICAgICBwbGFpblRleHQuZ3Jv
dyhwYWRkZWRTaXplKTsKICAgICAgICAgc3RkOjptZW1zZXQocGxhaW5UZXh0LmRhdGEoKSArIHNp
emUsIHBhZGRpbmdWYWx1ZSwgcGFkZGluZ1ZhbHVlKTsKICAgICB9CiAKQEAgLTE2Miw3ICsxNjIs
NyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGdjcnlwdERlY3J5cHQo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCiAgICAgICAgIC8vIFNocmluayB0aGUgb3V0cHV0IFZlY3RvciBvYmplY3QgdG8gZHJv
cCB0aGUgUEtDUyM3IHBhZGRpbmcuCi0gICAgICAgIG91dHB1dC5yZXNpemUoc2l6ZSAtIHBhZGRp
bmdWYWx1ZSk7CisgICAgICAgIG91dHB1dC5zaHJpbmsoc2l6ZSAtIHBhZGRpbmdWYWx1ZSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIG91dHB1dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUVDREhHQ3J5cHQuY3BwCmluZGV4IGM1ZTZk
NjY5NTE1NWViNGE5ZWMwNzU0ZGQxNjZhZTI2YmU4MDkzNGYuLjlkYjJiNDI1YmFkYzRhZTdmZmYz
YTNkMWMyNTdiOWYxMDYyNmEwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcApAQCAtMTA1LDcgKzEw
NSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gZ2NyeXB0RGVyaXZl
KGdjcnlfc2V4cF90IGJhc2VLZXlTZXhwLCBnY3J5CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAKLSAgICAgICAgb3V0cHV0LnJlc2l6ZShkYXRhTGVuZ3RoKTsK
KyAgICAgICAgb3V0cHV0Lmdyb3coZGF0YUxlbmd0aCk7CiAgICAgICAgIGVycm9yID0gZ2NyeV9t
cGlfcHJpbnQoR0NSWU1QSV9GTVRfVVNHLCBvdXRwdXQuZGF0YSgpLCBvdXRwdXQuc2l6ZSgpLCBu
dWxscHRyLCB4TVBJKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsK
ICAgICAgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBh
ZFByb3ZpZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbQppbmRleCBkY2NkNDM5ZGJkY2FmYmM4NmY5NmUz
YjI0MTIwN2Y4MWRjNDkyOTc2Li4xNzEwOWQyZDIxNDE2NzllMDI1NDM5M2NmZGVmNzE4NTUxN2Jl
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dh
bWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KQEAgLTY0
LDcgKzY0LDcgQEAgdm9pZCBHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6Y29udHJvbGxl
ckRpZENvbm5lY3QoR0NDb250cm9sbGVyICpjb250cm9sbGUKICAgICBhdXRvIGdhbWVwYWQgPSBz
dGQ6Om1ha2VfdW5pcXVlPEdhbWVDb250cm9sbGVyR2FtZXBhZD4oY29udHJvbGxlciwgaW5kZXgp
OwogCiAgICAgaWYgKG1fZ2FtZXBhZFZlY3Rvci5zaXplKCkgPD0gaW5kZXgpCi0gICAgICAgIG1f
Z2FtZXBhZFZlY3Rvci5yZXNpemUoaW5kZXggKyAxKTsKKyAgICAgICAgbV9nYW1lcGFkVmVjdG9y
Lmdyb3coaW5kZXggKyAxKTsKIAogICAgIG1fZ2FtZXBhZFZlY3RvcltpbmRleF0gPSBnYW1lcGFk
LmdldCgpOwogICAgIG1fZ2FtZXBhZE1hcC5zZXQoY29udHJvbGxlciwgV1RGTW92ZShnYW1lcGFk
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURH
YW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCAwN2MzZTk5YzYzMTJiNGIwOGIwNjgxMzVmZjZm
NDY5OWU2ODA2MmMxLi5iNmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1ZDg3MDFlMGY4M2VlNjJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFk
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJ
REdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIEhJREdhbWVwYWRQ
cm92aWRlcjo6ZGV2aWNlQWRkZWQoSU9ISUREZXZpY2VSZWYgZGV2aWNlKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxISURHYW1lcGFkPiBnYW1lcGFkID0gc3RkOjptYWtlX3VuaXF1ZTxISURHYW1lcGFk
PihkZXZpY2UsIGluZGV4KTsKIAogICAgIGlmIChtX2dhbWVwYWRWZWN0b3Iuc2l6ZSgpIDw9IGlu
ZGV4KQotICAgICAgICBtX2dhbWVwYWRWZWN0b3IucmVzaXplKGluZGV4ICsgMSk7CisgICAgICAg
IG1fZ2FtZXBhZFZlY3Rvci5ncm93KGluZGV4ICsgMSk7CiAKICAgICBtX2dhbWVwYWRWZWN0b3Jb
aW5kZXhdID0gZ2FtZXBhZC5nZXQoKTsKICAgICBtX2dhbWVwYWRNYXAuc2V0KGRldmljZSwgV1RG
TW92ZShnYW1lcGFkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCYWNraW5nU3RvcmUuaAppbmRleCBjOGRkZTU4MzgwZGEyYTNkNzhhMDEzMjJkZGMz
ODcyMGQyODYyOGE5Li41ODgyYmNjODY2OTExODEwYzAwYTI0ZjM5YzBhN2ZjM2I4NmZmZDQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQmFja2lu
Z1N0b3JlLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIWJ1ZmZlci50
cnlSZXNlcnZlQ2FwYWNpdHkoYnVmZmVyU2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICAgICAgYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgYnVmZmVyLmdy
b3coYnVmZmVyU2l6ZSk7CiAgICAgICAgIG1fcGl4ZWxzID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShidWZmZXIpKTsKICAgICAgICAgbV9waXhlbHNQdHIgPSByZWludGVycHJldF9jYXN0
PFJHQkEzMio+KGNvbnN0X2Nhc3Q8Y2hhcio+KG1fcGl4ZWxzLT5kYXRhKCkpKTsKICAgICAgICAg
bV9zaXplID0gc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1dPRkZGaWxlRm9ybWF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1dPRkZGaWxlRm9ybWF0LmNwcAppbmRleCBjMjMyM2NmMDQyMjIxNzRmOGIyNGMyYjQ2YjZjYjRj
ZmJlZGIxNmJmLi4xYjQwNzA4ZGJkMGMyZjIzYWM5YTE1OTZlNjRiM2JjOGZjYTNlN2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZvcm1hdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQu
Y3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIW1fdmVjdG9yLnRy
eVJlc2VydmVDYXBhY2l0eShvZmZzZXQgKyBuKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKG9mZnNldCArIG4gPiBtX3ZlY3Rvci5zaXplKCkpCi0gICAgICAgICAgICBt
X3ZlY3Rvci5yZXNpemUob2Zmc2V0ICsgbik7CisgICAgICAgICAgICBtX3ZlY3Rvci5ncm93KG9m
ZnNldCArIG4pOwogICAgICAgICBtX3ZlY3Rvci5yZW1vdmUob2Zmc2V0LCBuKTsKICAgICAgICAg
bV92ZWN0b3IuaW5zZXJ0KG9mZnNldCwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBu
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9J
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDJjOTM1MjA2MTFjYTUw
M2I5MGM2ZjMwYTViMGY5MmVmNzI5MThlM2EuLjhjZmYwOGRlYjNkODA2MDk1ZmQyOGFjZjczMjg2
MDdmNmNjMzJhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgSW5iYW5k
TWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoY29u
c3QgTWVkaWFUaW1lCiAgICAgfSBlbHNlCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzIG5lZ2F0aXZl
IGxlbmd0aCBjdWUocykgaWdub3JlZDogc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmcobV9j
dXJyZW50Q3VlU3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1lKS51dGY4KCku
ZGF0YSgpKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOworICAgIG1faW5jb21w
bGV0ZUN1ZXMuc2hyaW5rKDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKIH0KIApAQCAtOTksNyArOTksNyBAQCB2b2lkIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCiAgICAgICAgICAgICBjbGll
bnQoKS0+cmVtb3ZlRGF0YUN1ZShwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgTWVkaWFUaW1lOjpwb3Np
dGl2ZUluZmluaXRlVGltZSgpLCAqcGFydGlhbEN1ZS5jdWVEYXRhKTsKICAgICB9CiAKLSAgICBt
X2luY29tcGxldGVDdWVzLnJlc2l6ZSgwKTsKKyAgICBtX2luY29tcGxldGVDdWVzLnNocmluaygw
KTsKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApp
bmRleCBhN2NhYTZlYzk4MjNjYmNlMmJhMDM4NmQwZjNhZGVlYzMxYTY4MzIxLi40NWYyNjE3MzJj
MTg4MGQzNDAwNjA1ZjY3ODgzNDgwZTBjYWM1YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC00NDksNyArNDQ5LDcgQEAgdm9pZCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcygpCiAgICAgICAgICAgICBj
bGllbnQtPnJlbW92ZUdlbmVyaWNDdWUoKmN1ZSk7CiAgICAgfQogCi0gICAgbV9jdWVzLnJlc2l6
ZSgwKTsKKyAgICBtX2N1ZXMuc2hyaW5rKDApOwogICAgIG1fcGVuZGluZ0N1ZVN0YXR1cyA9IE5v
bmU7CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwog
ICAgIG1fY3VycmVudEN1ZUVuZFRpbWUgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CkBAIC01Njgs
NyArNTY4LDcgQEAgYm9vbCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZWFkTmF0aXZlU2Ft
cGxlQnVmZmVyKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAotICAgIG1fc2FtcGxlSW5wdXRCdWZmZXIucmVzaXplKG1fc2FtcGxlSW5wdXRC
dWZmZXIuc2l6ZSgpICsgYnVmZmVyTGVuZ3RoKTsKKyAgICBtX3NhbXBsZUlucHV0QnVmZmVyLmdy
b3cobV9zYW1wbGVJbnB1dEJ1ZmZlci5zaXplKCkgKyBidWZmZXJMZW5ndGgpOwogICAgIENNQmxv
Y2tCdWZmZXJDb3B5RGF0YUJ5dGVzKGJsb2NrQnVmZmVyLCAwLCBidWZmZXJMZW5ndGgsIG1fc2Ft
cGxlSW5wdXRCdWZmZXIuZGF0YSgpICsgbV9zYW1wbGVJbnB1dEJ1ZmZlci5zaXplKCkgLSBidWZm
ZXJMZW5ndGgpOwogCiAgICAgYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShtX3NhbXBsZUlu
cHV0QnVmZmVyLmRhdGEoKSwgbV9zYW1wbGVJbnB1dEJ1ZmZlci5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZDRi5jcHAKaW5kZXgg
ZTc1ZDFjMjY4MzYyNThmZmYxNTc0MDgzMjEwMjUxY2ZiMjQ3YTBhYS4uMDE2NmQyMTFiZDgxYmRh
NzkwYzA0ZGVkMDQzMzU3MjY2N2U5ODFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkNG
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWQ0YuY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgYm9v
bCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZDRjo6cmVhZE5hdGl2ZVNhbXBsZUJ1ZmZlcihDRkFy
cmF5UmVmIG5hdGl2ZVNhbXBsZXMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAg
IG1fc2FtcGxlSW5wdXRCdWZmZXIucmVzaXplKG1fc2FtcGxlSW5wdXRCdWZmZXIuc2l6ZSgpICsg
YnVmZmVyTGVuZ3RoKTsKKyAgICBtX3NhbXBsZUlucHV0QnVmZmVyLmdyb3cobV9zYW1wbGVJbnB1
dEJ1ZmZlci5zaXplKCkgKyBidWZmZXJMZW5ndGgpOwogICAgIENGRGF0YUdldEJ5dGVzKHNhbXBs
ZUJ1ZmZlci0+YnVmZmVyLCBDRlJhbmdlTWFrZSgwLCBidWZmZXJMZW5ndGgpLCByZWludGVycHJl
dF9jYXN0PFVJbnQ4Kj4obV9zYW1wbGVJbnB1dEJ1ZmZlci5kYXRhKCkpICsgbV9zYW1wbGVJbnB1
dEJ1ZmZlci5zaXplKCkgLSBidWZmZXJMZW5ndGgpOwogCiAgICAgYnVmZmVyID0gQXJyYXlCdWZm
ZXI6OmNyZWF0ZShtX3NhbXBsZUlucHV0QnVmZmVyLmRhdGEoKSwgbV9zYW1wbGVJbnB1dEJ1ZmZl
ci5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCBkZWFlMmJjMmQzOTlmYWE0ZmE3ODIxMWE3YTZhNzFm
ZjNjZmYwMmEwLi5jN2RkODE0NjAwMDkwMTM1ODcyMWRmZWJhNjY0MTZhYzE3NWFjZTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcApAQCAtNTg3LDcgKzU4Nyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBj
ZkRhdGEoY29uc3QgSW1hZ2VEYXRhJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgbWltZVR5CiAgICAg
ICAgIGlmICghcHJlbXVsdGlwbGllZERhdGEudHJ5UmVzZXJ2ZUNhcGFjaXR5KHNpemUpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcHJlbXVsdGlwbGllZERhdGEucmVz
aXplKHNpemUpOworICAgICAgICBwcmVtdWx0aXBsaWVkRGF0YS5ncm93KHNpemUpOwogICAgICAg
ICB1bnNpZ25lZCBjaGFyICpidWZmZXIgPSBwcmVtdWx0aXBsaWVkRGF0YS5kYXRhKCk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSArPSA0KSB7CiAgICAgICAgICAgICB1
bnNpZ25lZCBhbHBoYSA9IGRhdGFbaSArIDNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcApp
bmRleCAxM2I1YzA4MGNjN2JlYzFlN2ZjN2ViOGEzZmNmZTFkYTBiNWYwZjg0Li45YjdkMDRmYmFj
NTY5ZTBmNWVhN2IyMjU4YTgwYjBmMTk4ODZiM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVy
LmNwcApAQCAtNjIsNyArNjIsNyBAQCBJbWFnZUZyYW1lKiBCTVBJbWFnZURlY29kZXI6OmZyYW1l
QnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYg
KG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpCi0gICAgICAgIG1fZnJhbWVCdWZmZXJDYWNo
ZS5yZXNpemUoMSk7CisgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5ncm93KDEpOwogCiAgICAg
SW1hZ2VGcmFtZSogYnVmZmVyID0gJm1fZnJhbWVCdWZmZXJDYWNoZS5maXJzdCgpOwogICAgIGlm
ICghYnVmZmVyLT5pc0NvbXBsZXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28vSUNPSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwCmluZGV4
IDM2M2FlMjgzZDM0YWY3ZGNkNTQwYmU1ZDIxMWFhZGMyYmYwOGU4NjcuLjcwNDMxNTFjN2E0MjVi
MDU2ZWNlYTY1OTYyMmExNGY3NmQ5MjE2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3Bw
CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBJQ09JbWFnZURlY29kZXI6OmRlY29kZShzaXplX3Qg
aW5kZXgsIGJvb2wgb25seVNpemUsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIH0KICAgICAK
ICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9mcmFtZUJ1
ZmZlckNhY2hlLnJlc2l6ZShtX2RpckVudHJpZXMuc2l6ZSgpKTsKKyAgICAgICAgbV9mcmFtZUJ1
ZmZlckNhY2hlLmdyb3cobV9kaXJFbnRyaWVzLnNpemUoKSk7CiAgICAgLy8gQ0FVVElPTjogV2Ug
bXVzdCBub3QgcmVzaXplIG1fZnJhbWVCdWZmZXJDYWNoZSBhZ2FpbiBhZnRlciB0aGlzLCBhcwog
ICAgIC8vIGRlY29kZUF0SW5kZXgoKSBtYXkgZ2l2ZSBhIEJNUEltYWdlUmVhZGVyIGEgcG9pbnRl
ciB0byBvbmUgb2YgdGhlCiAgICAgLy8gZW50cmllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCmluZGV4IDg2YWUwNGNmNjBmNDhhOTYwZTQ2ODM0MDJkZTEzMWM0NDVjZWQ0ZmEuLjU1
MWFmNmU0NDMxM2UxMDZjZDZjNjExNmZmZmFiMDAxM2VkNGJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVH
SW1hZ2VEZWNvZGVyLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIEltYWdlRnJhbWUqIEpQRUdJbWFn
ZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpCi0gICAgICAgIG1f
ZnJhbWVCdWZmZXJDYWNoZS5yZXNpemUoMSk7CisgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZS5n
cm93KDEpOwogCiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07
CiAgICAgaWYgKCFmcmFtZS5pc0NvbXBsZXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3Bw
CmluZGV4IDgwNzBmNjQ5ZmY2YzRjYjIxYWJiYmMxM2E1ZjI3ZTk3MGIwOTcwZGMuLjJmYjZjNDQw
ZDQzNmRhYjk2MGRkOGEwMDBlOWEyY2VjZGFjOTM1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29k
ZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgSW1hZ2VGcmFtZSogUE5HSW1hZ2VEZWNvZGVyOjpm
cmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogI2VuZGlmCiAKICAgICBpZiAobV9mcmFt
ZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlLnJlc2l6
ZSgxKTsKKyAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlLmdyb3coMSk7CiAKICAgICBJbWFnZUZy
YW1lJiBmcmFtZSA9IG1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF07CiAgICAgaWYgKCFmcmFtZS5p
c0NvbXBsZXRlKCkpCkBAIC02NDQsNyArNjQ0LDcgQEAgdm9pZCBQTkdJbWFnZURlY29kZXI6OnJl
YWRDaHVua3MocG5nX3Vua25vd25fY2h1bmtwIGNodW5rKQogICAgICAgICB9CiAKICAgICAgICAg
aWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2ZyYW1lQnVm
ZmVyQ2FjaGUucmVzaXplKDEpOworICAgICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlLmdyb3co
MSk7CiAKICAgICAgICAgaWYgKG1fY3VycmVudEZyYW1lIDwgbV9mcmFtZUJ1ZmZlckNhY2hlLnNp
emUoKSkgewogICAgICAgICAgICAgSW1hZ2VGcmFtZSYgYnVmZmVyID0gbV9mcmFtZUJ1ZmZlckNh
Y2hlW21fY3VycmVudEZyYW1lXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCmluZGV4
IDQ4Y2Y1YWQzNmI0MzIxMWIxZmMzOWFhZjk2ZGExYWU0ZDRkOTc1OTguLjQ0NTUxZGNiMDBjNGU5
Y2Q1NzZhZDE1NzA4ZDhkNDIzNTRhN2RiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVy
LmNwcApAQCAtNzAsNyArNzAsNyBAQCBJbWFnZUZyYW1lKiBXRUJQSW1hZ2VEZWNvZGVyOjpmcmFt
ZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
IChtX2ZyYW1lQnVmZmVyQ2FjaGUuaXNFbXB0eSgpKQotICAgICAgICBtX2ZyYW1lQnVmZmVyQ2Fj
aGUucmVzaXplKDEpOworICAgICAgICBtX2ZyYW1lQnVmZmVyQ2FjaGUuZ3JvdygxKTsKIAogICAg
IEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZUJ1ZmZlckNhY2hlWzBdOwogICAgIGlmICghZnJh
bWUuaXNDb21wbGV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZW5jb2RlcnMvSlBFR0ltYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1lbmNvZGVycy9KUEVHSW1hZ2VFbmNvZGVyLmNwcAppbmRleCAwNTdlMDMzMWQ3ZjIy
Mjk4NjYxZjEzZjliOThmZGNmNDZhZWMwOTYyLi44YTgwNjYzZmQxZTJhNGVjYTcyZTZlMTJhOTQ4
ZDc2Y2E3NzBhY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1l
bmNvZGVycy9KUEVHSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1lbmNvZGVycy9KUEVHSW1hZ2VFbmNvZGVyLmNwcApAQCAtMTE5LDcgKzExOSw3IEBA
IGJvb2wgY29tcHJlc3NSR0JBQmlnRW5kaWFuVG9KUEVHKHVuc2lnbmVkIGNoYXIqIHJnYmFCaWdF
bmRpYW5EYXRhLCBjb25zdCBJbnRTaXplCiAgICAgfQogCiAgICAganBlZ19zdGFydF9jb21wcmVz
cygmY29tcHJlc3NEYXRhLCBUUlVFKTsKLSAgICByb3dCdWZmZXIucmVzaXplKGNvbXByZXNzRGF0
YS5pbWFnZV93aWR0aCAqIDMpOworICAgIHJvd0J1ZmZlci5ncm93KGNvbXByZXNzRGF0YS5pbWFn
ZV93aWR0aCAqIDMpOwogCiAgICAgLy8gYWRkIG9mZnNldCB0byBwcmV2ZW50IGNsb2JiZXJlZCBl
cnJvciBjYXVzZWQgYnkgc2V0am1wIGFuZCBsb25nam1wLgogICAgIHVuc2lnbmVkIG9mZnNldCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2Fw
ZVNlcXVlbmNlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVT
ZXF1ZW5jZXMuaAppbmRleCA5NTdkM2VmMWJhMGE5MDJhYzg2MDNmY2EwMzM1NDI0ZWI5NDBmZmU1
Li5iOGM4MzlkODAzYzRmOTczN2FhYzNmZmRjZGE5MTA5OTRhMDA0NzA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAg
LTEwMiw3ICsxMDIsNyBAQCBzdHJ1Y3QgVVJMRXNjYXBlU2VxdWVuY2UgewogICAgICAgICAvLyBG
b3IgVVJMIGVzY2FwZSBzZXF1ZW5jZXMsIHdlIGtub3cgdGhhdCBmaW5kRW5kT2ZSdW4oKSBoYXMg
Z2l2ZW4gdXMgYSBydW4gd2hlcmUgZXZlcnkgJS1zaWduIGludHJvZHVjZXMKICAgICAgICAgLy8g
YSB2YWxpZCBlc2NhcGUgc2VxdWVuY2UsIGJ1dCB0aGVyZSBtYXkgYmUgY2hhcmFjdGVycyBiZXR3
ZWVuIHRoZSBzZXF1ZW5jZXMuCiAgICAgICAgIFZlY3RvcjxjaGFyLCA1MTI+IGJ1ZmZlcjsKLSAg
ICAgICAgYnVmZmVyLnJlc2l6ZShydW4ubGVuZ3RoKCkpOyAvLyBVbmVzY2FwaW5nIGhleCBzZXF1
ZW5jZXMgb25seSBtYWtlcyB0aGUgbGVuZ3RoIHNtYWxsZXIuCisgICAgICAgIGJ1ZmZlci5ncm93
KHJ1bi5sZW5ndGgoKSk7IC8vIFVuZXNjYXBpbmcgaGV4IHNlcXVlbmNlcyBvbmx5IG1ha2VzIHRo
ZSBsZW5ndGggc21hbGxlci4KICAgICAgICAgY2hhciogcCA9IGJ1ZmZlci5kYXRhKCk7CiAgICAg
ICAgIHdoaWxlICghcnVuLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKHJ1blswXSA9PSAn
JScpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3VmZml4VHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdWZmaXhUcmVlLmgKaW5kZXggZjUx
ZjJjNzJmZDM4NzBhZjE3MTllNGU4NTcxY2E5YTA3NTk0ZWZhMS4uZmE2NGY5NzhjYzU0NmY1YjFi
OTA3MjFkNWVlZDVmNTc0Mjk4YTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9TdWZmaXhUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9T
dWZmaXhUcmVlLmgKQEAgLTY5LDEwICs2OSw5IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgTm9kZSB7
CiAgICAgcHVibGljOgogICAgICAgICBOb2RlKGJvb2wgaXNMZWFmID0gZmFsc2UpCisgICAgICAg
ICAgICA6IG1fY2hpbGRyZW4oQ29kZWJvb2s6OmNvZGVTaXplLCAwKQorICAgICAgICAgICAgLCBt
X2lzTGVhZihpc0xlYWYpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fY2hpbGRyZW4ucmVzaXpl
KENvZGVib29rOjpjb2RlU2l6ZSk7Ci0gICAgICAgICAgICBtX2NoaWxkcmVuLmZpbGwoMCk7Ci0g
ICAgICAgICAgICBtX2lzTGVhZiA9IGlzTGVhZjsKICAgICAgICAgfQogCiAgICAgICAgIH5Ob2Rl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcAppbmRleCBkNmVkMWQ4ODFiOTA0MmI3YWIyOTlj
MTBhYjhhMzc4YzM1NjZkMWQyLi5hNjljMmRjNWE2YjQ5NGQwZWQyNjFiZjU5MmZiMTc1ZjdmZTk5
YjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9p
ZCBHcmlkOjpzZXROZWVkc0l0ZW1zUGxhY2VtZW50KGJvb2wgbmVlZHNJdGVtc1BsYWNlbWVudCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZ3JpZC5yZXNpemUoMCk7CisgICAgbV9n
cmlkLnNocmluaygwKTsKICAgICBtX2dyaWRJdGVtQXJlYS5jbGVhcigpOwogICAgIG1faGFzQW55
T3J0aG9nb25hbEdyaWRJdGVtID0gZmFsc2U7CiAgICAgbV9zbWFsbGVzdFJvd1N0YXJ0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDE1MGI4YWM3NmI4
MGYyMjkyMWQ2Yjg5NzM4ZjQyM2M1ZjAxOTcyMzUuLjc2YzgwNTllN2YyOTIxODM5NjllYWQzMmJh
NjFhZjVmOTY2ZTc3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlbW92ZUNhcHRpb24oY29u
c3QgUmVuZGVyVGFibGVDYXB0aW9uKiBvbGRDYXB0aW9uKQogdm9pZCBSZW5kZXJUYWJsZTo6aW52
YWxpZGF0ZUNhY2hlZENvbHVtbnMoKQogewogICAgIG1fY29sdW1uUmVuZGVyZXJzVmFsaWQgPSBm
YWxzZTsKLSAgICBtX2NvbHVtblJlbmRlcmVycy5yZXNpemUoMCk7CisgICAgbV9jb2x1bW5SZW5k
ZXJlcnMuc2hyaW5rKDApOwogICAgIG1fZWZmZWN0aXZlQ29sdW1uSW5kZXhNYXAuY2xlYXIoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
ODYxNjZjODQzOGY1MzkwZmI0Y2ViY2MwNzM1YTY1OGVhYjNmYzVkYy4uNTU3MGQwODdlMDNmNWMz
MTU1ZjM0NjgzNGI3Yzk1N2VlZjZlNmZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5oCkBAIC0yNTcsNyArMjU3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBzdHJ1Y3QgVmVjdG9yQXJndW1lbnRDb2Rlcjx0cnVl
LCBULAogICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiB0ZW1w
OwotICAgICAgICB0ZW1wLnJlc2l6ZShzaXplKTsKKyAgICAgICAgdGVtcC5ncm93KHNpemUpOwog
CiAgICAgICAgIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDhfdCo+KHRlbXAuZGF0YSgpKSwgc2l6ZSAqIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92
aWRlci5jcHAKaW5kZXggMTQ4YjhkNjk3MjMwMTdiYjIwN2I2MDNjNDQ4MThlMTk1YzgwOGM5My4u
OTBhZTdkMzJiZTQxNWQ0YTIzYWMyOWM5MjQzYTk0NGQyOTg4OWFlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpzZXRJbml0aWFsQ29ubmVj
dGVkR2FtZXBhZHMoY29uc3QgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZAogdm9pZCBVSUdhbWVwYWRQ
cm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBh
ZCkKIHsKICAgICBpZiAobV9nYW1lcGFkcy5zaXplKCkgPD0gZ2FtZXBhZC5pbmRleCgpKQotICAg
ICAgICBtX2dhbWVwYWRzLnJlc2l6ZShnYW1lcGFkLmluZGV4KCkgKyAxKTsKKyAgICAgICAgbV9n
YW1lcGFkcy5ncm93KGdhbWVwYWQuaW5kZXgoKSArIDEpOwogCiAgICAgQVNTRVJUKCFtX2dhbWVw
YWRzW2dhbWVwYWQuaW5kZXgoKV0pOwogICAgIG1fZ2FtZXBhZHNbZ2FtZXBhZC5pbmRleCgpXSA9
IHN0ZDo6bWFrZV91bmlxdWU8VUlHYW1lcGFkPihnYW1lcGFkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBjZTgzNjA1YTY0NTE4M2I2NjgyM2MxMzM3
YWE3ZTgxMGQ2ZjRiZTQxLi5jYjZkOTcwZGRjMmZiMzQyZWVlYzIyYmNlYTA1NDU4MjhhZDU2MTM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNTQx
LDcgKzE1NDEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnYW1lcGFkRGlzY29ubmVjdGVkKGNv
bnN0IFVJR2FtZXBhZCYgZ2FtZXBhZCkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEluaXRpYWxD
b25uZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFVJR2FtZXBhZD4+
JiBnYW1lcGFkcykKIHsKICAgICBWZWN0b3I8R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhczsKLSAg
ICBnYW1lcGFkRGF0YXMucmVzaXplKGdhbWVwYWRzLnNpemUoKSk7CisgICAgZ2FtZXBhZERhdGFz
Lmdyb3coZ2FtZXBhZHMuc2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGdhbWVw
YWRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmICghZ2FtZXBhZHNbaV0pCiAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA2NjdiZGQxOTM0MDY2MDMwMTg2ZTg2MTg0NmVk
NmVkNjhiNTVhM2RiLi44OGVmYmMzZmRiZjZmOWRmMDJmODVjMGY5YTUyNGZmMjA4NDRhOTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC0zNjksNyArMzY5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4K
ICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID0gY2xpZW50Q3JlZGVu
dGlhbFBvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0ID0gY29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCgpOwogCi0gICAgZGF0YS5yZXNpemUoMCk7CisgICAgZGF0YS5zaHJpbmsoMCk7
CiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGFz
dGVib2FyZE92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAKaW5kZXggMDY1NzVkZmE2M2ZiODgxYzVk
ZDc0MWQ0ODE1NWEyNTAxNWUwYTJjMS4uNzkwMDg0Y2U0OGQyMjZiMTBlNjY1YjgyODQ0MzQ5ZmRh
YWZmZWU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBhc3RlYm9hcmRPdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmNwcApAQCAtMTAzLDcg
KzEwMyw2IEBAIGJvb2wgV2ViUGFzdGVib2FyZE92ZXJyaWRlczo6Z2V0RGF0YUZvck92ZXJyaWRl
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvCiAgICAgaWYgKCFnZXREYXRhRm9yT3Zl
cnJpZGUocGFzdGVib2FyZE5hbWUsIHR5cGUsIGZvdW5kQnVmZmVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgZGF0YS5jbGVhcigpOwogICAgIGRhdGEucmVzaXplKGZvdW5kQnVmZmVy
LnNpemUoKSk7CiAgICAgbWVtY3B5KGRhdGEuZGF0YSgpLCBmb3VuZEJ1ZmZlci5kYXRhKCksIGZv
dW5kQnVmZmVyLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYWYwOGFmOGZlNGYzZDhkYTFmMzMzN2U4YmYw
YjQ3YjEyZGE5NmY4NS4uNWNkYmM1NGZmMGYyY2QzNmY0MGYzOTI3NDc3MWY1MjAzOWFjYzRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTIyMjEsNyArMjIyMSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEF1dG9jb3Jy
ZWN0aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgQ2FsCiAgICAg
ICAgIHJhbmdlLT5jb2xsZWN0U2VsZWN0aW9uUmVjdHMoc2VsZWN0aW9uUmVjdHMpOwogCiAgICAg
VmVjdG9yPEZsb2F0UmVjdD4gcmVjdHNGb3JUZXh0OwotICAgIHJlY3RzRm9yVGV4dC5yZXNpemUo
c2VsZWN0aW9uUmVjdHMuc2l6ZSgpKTsKKyAgICByZWN0c0ZvclRleHQuZ3JvdyhzZWxlY3Rpb25S
ZWN0cy5zaXplKCkpOwogCiAgICAgY29udmVydFNlbGVjdGlvblJlY3RzVG9Sb290VmlldyhmcmFt
ZS52aWV3KCksIHNlbGVjdGlvblJlY3RzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNl
bGVjdGlvblJlY3RzLnNpemUoKTsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCAzMmYwZDgzNDhj
MjZlOGUyNjgzYzUyMTU3ODhmMGVhYmZiOWI0MTE0Li5mOTYxZWZlMWUyOGM0OGJiNjU0YzUxZjM2
Y2EwNzMyODNjYzQ1N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNTI5LDcgKzUyOSw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIp
CiAgICAgICAgICAgICAgICAgTlNJbnRlZ2VyIGNvdW50OwogICAgICAgICAgICAgICAgIFtvcGFx
dWVBbmNlc3RvciBnZXRSZWN0c0JlaW5nRHJhd246JmRpcnR5UmVjdHMgY291bnQ6JmNvdW50XTsK
ICAgICAgICAgICAgICAgICBWZWN0b3I8Q0dSZWN0LCAxNj4gY29udmVydGVkRGlydHlSZWN0czsK
LSAgICAgICAgICAgICAgICBjb252ZXJ0ZWREaXJ0eVJlY3RzLnJlc2l6ZShjb3VudCk7CisgICAg
ICAgICAgICAgICAgY29udmVydGVkRGlydHlSZWN0cy5ncm93KGNvdW50KTsKICAgICAgICAgICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgICAgICAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8TlNSZWN0Jj4oY29udmVydGVkRGlydHlSZWN0c1tpXSkgPSBbc2Vs
ZiBjb252ZXJ0UmVjdDpkaXJ0eVJlY3RzW2ldIGZyb21WaWV3Om9wYXF1ZUFuY2VzdG9yXTsKICAg
ICAgICAgICAgICAgICBDR0NvbnRleHRDbGlwVG9SZWN0cyhjb250ZXh0LCBjb252ZXJ0ZWREaXJ0
eVJlY3RzLmRhdGEoKSwgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9NYXAuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTWFwLmgKaW5kZXggMTEyNGE4YzVkYjMz
MGMzZmZiNTQ4MTI3ODgxZjdhYjA0MDk3Njk5Mi4uNzRlZDhjYTA0OWY4OTM4ZjEzMGMyMzAwOWZj
NWRkOWY1ZGM5MmQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NYXAuaAor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL01hcC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9p
ZCBNYXA8S2V5LCBWYWx1ZSwgSGFzaD46OnJlaGFzaCgpCiAgICAgYXV0byBvbGRUYWJsZSA9IHN0
ZDo6bW92ZShtX3RhYmxlKTsKIAogICAgIHNpemVfdCBuZXdDYXBhY2l0eSA9IHN0ZDo6bWF4KG1p
bkNhcGFjaXR5LCBtX2tleUNvdW50ICogcmVoYXNoTG9hZCk7Ci0gICAgbV90YWJsZS5yZXNpemUo
bmV3Q2FwYWNpdHkpOworICAgIG1fdGFibGUuZ3JvdyhuZXdDYXBhY2l0eSk7CiAKICAgICBtX2tl
eUNvdW50ID0gMDsKICAgICBtX3RhYmxlTWFzayA9IG5ld0NhcGFjaXR5IC0gMTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>