<?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>111478</bug_id>
          
          <creation_ts>2013-03-05 13:38:21 -0800</creation_ts>
          <short_desc>REGRESSION(r144798): &quot;broke chromium windows build&quot; (Requested by dpranke on #webkit).</short_desc>
          <delta_ts>2013-03-05 13:41:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110653</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848015</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 13:38:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/144798 broke the build:
&quot;broke chromium windows build&quot; (Requested by dpranke on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848017</commentid>
    <comment_count>1</comment_count>
      <attachid>191554</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 13:38:51 -0800</bug_when>
    <thetext>Created attachment 191554
ROLLOUT of r144798

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848022</commentid>
    <comment_count>2</comment_count>
      <attachid>191554</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-03-05 13:40:25 -0800</bug_when>
    <thetext>Comment on attachment 191554
ROLLOUT of r144798

Clearing flags on attachment: 191554

Committed r144810: &lt;http://trac.webkit.org/changeset/144810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848023</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-03-05 13:40:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848024</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-03-05 13:41:26 -0800</bug_when>
    <thetext>Looks like this breaks the windows build, so I&apos;m rolling it out per dglazkov (since alec didn&apos;t appear to be around on #irc). Sorry!

http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20Builder/builds/36731/steps/compile/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191554</attachid>
            <date>2013-03-05 13:38:51 -0800</date>
            <delta_ts>2013-03-05 13:40:25 -0800</delta_ts>
            <desc>ROLLOUT of r144798</desc>
            <filename>bug-111478-20130305213457.patch</filename>
            <type>text/plain</type>
            <size>95760</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3OGMxOTUwNGE1MDQy
ODAwMzY3OGRlZDU4ODgzZDRhNTZhNTQ5MC4uZmE0ZGY1ODdlOWQ2OTM1MTQxMDBjNzY3NGFhNGMx
ZWI1ODFjMzkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNyBAQAorMjAxMy0wMy0wNSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE0NDc5OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTQ0Nzk4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE0NzgKKworICAgICAgICAiYnJva2UgY2hyb21pdW0gd2luZG93cyBidWls
ZCIgKFJlcXVlc3RlZCBieSBkcHJhbmtlIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpDdXJz
b3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6b2JqZWN0U3RvcmVDdXJz
b3JPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmluZGV4Q3Vyc29yT3B0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUN1cnNvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNv
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEtleUN1cnNv
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEN1cnNvcik6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAg
IChJREJCYWNraW5nU3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OklEQkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpzdHJp
bmdUb0RpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvblRv
U3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAg
ICAgKElEQkN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OklE
QkN1cnNvckJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJ
bXBsOjpkZWxldGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5k
SW1wbDo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkN1cnNvckJhY2tlbmRJbXBsOjp2YWx1ZSk6CisgICAgICAgIChJREJDdXJzb3JCYWNrZW5k
SW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yV2l0aFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcldpdGhW
YWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZTo6SURC
Q3Vyc29yV2l0aFZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JX
aXRoVmFsdWUuaDoKKyAgICAgICAgKElEQkN1cnNvcldpdGhWYWx1ZSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2U6OnRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpHZXRPcGVyYXRpb24pOgorICAgICAgICAoR2V0T3Bl
cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uOjpPcGVuQ3Vyc29yT3BlcmF0
aW9uKToKKyAgICAgICAgKE9wZW5DdXJzb3JPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlSW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Z2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdldE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6UHV0T3BlcmF0aW9uOjpwZXJm
b3JtKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEluZGV4
S2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb246OnBlcmZvcm0pOgor
ICAgICAgICAoV2ViQ29yZTo6Q291bnRPcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlUmFuZ2VPcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFi
b3J0RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJh
bnNhY3Rpb25GaW5pc2hlZEFuZENvbXBsZXRlRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6
CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXguY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRl
eDo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNv
cik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6b3BlbkN1
cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlJlcXVlc3Q6OnNldEN1cnNvckRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVx
dWVzdDo6c2V0UmVzdWx0Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9u
U3VjY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAg
ICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnN0cmluZ1RvTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVRvU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b246OmlzUmVhZE9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmlzVmVy
c2lvbkNoYW5nZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjptb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnByb2Nlc3NTdGFydGVkVHJhbnNhY3Rpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OmNhblJ1blRyYW5z
YWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKwogMjAx
My0wMy0wNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBNZWRpYVN0cmVhbSBBUEk6IEFsbG93IGxvY2FsIGFuZCByZW1vdGUgZGVzY3JpcHRpb25zIHRv
IGJlIGFjY2Vzc2VkIGFmdGVyIGNsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFl
MzIyOTJhN2E0M2IwM2ZmY2ZlNmY3NDg3NDVmYjZiODU2MDc2ZTMuLjgzZTJhMTgyZDMxYzNmNDJk
ODhjYTYxOWVlMjEzZTYxZDAxMmQzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDQ3OTguCisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0NDc5OAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNDc4CisKKyAgICAgICAg
ImJyb2tlIGNocm9taXVtIHdpbmRvd3MgYnVpbGQiIChSZXF1ZXN0ZWQgYnkgZHByYW5rZSBvbgor
ICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cDoKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6b3BlbkN1cnNvcik6CisgICAgICAgICog
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tl
bmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJE
YXRhYmFzZUltcGw6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHA6
CisgICAgICAgICogdGVzdHMvSURCRmFrZUJhY2tpbmdTdG9yZS5oOgorCiAyMDEzLTAzLTA1ICBD
aGFybGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDlkMGZhZjAxOGMwMjRkZmExNzczODU5MTU3YjY1Yzk1NTBkZmFkZGIuLjI3
Y2Q5OGZjN2YzNGNlNTEzNmU2NDJlOGFkZWFjMGE4ZDdhNWJhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMTkyNiw3ICsxOTI2LDYgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VF
dmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25D
aGFuZ2VFdmVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVk
REIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhl
ZERhdGFiYXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdy
b3VwSW5kZXhlZERhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDU5M2E5NzA0
MGE5ZWE4ZmVjOWRhYmRiZDNlYmQ3NjJhZTIzZjVmMTIuLjkwOWVlYWU2NjdhMGY3NmY0NDk1NmM1
ZTIzMzFmOGJiOTFmM2EyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMTMwNyw3ICsxMzA3LDcgQEAgYm9vbCBJ
REJCYWNraW5nU3RvcmU6OkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqIGtl
eSwgSXRlcmF0b3JTdGF0ZQogewogICAgIFJlZlB0cjxJREJLZXk+IHByZXZpb3VzS2V5ID0gbV9j
dXJyZW50S2V5OwogCi0gICAgLy8gV2hlbiBpdGVyYXRpbmcgd2l0aCBQcmV2Tm9EdXBsaWNhdGUs
IHNwZWMgcmVxdWlyZXMgdGhhdCB0aGUKKyAgICAvLyBXaGVuIGl0ZXJhdGluZyB3aXRoIFBSRVZf
Tk9fRFVQTElDQVRFLCBzcGVjIHJlcXVpcmVzIHRoYXQgdGhlCiAgICAgLy8gdmFsdWUgd2UgeWll
bGQgZm9yIGVhY2gga2V5IGlzIHRoZSBmaXJzdCBkdXBsaWNhdGUgaW4gZm9yd2FyZHMKICAgICAv
LyBvcmRlci4KICAgICBSZWZQdHI8SURCS2V5PiBsYXN0RHVwbGljYXRlS2V5OwpAQCAtMTcxNywx
MiArMTcxNywxMiBAQCBib29sIEluZGV4Q3Vyc29ySW1wbDo6bG9hZEN1cnJlbnRSb3coKQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIG9iamVjdFN0b3JlQ3Vyc29yT3B0aW9ucyhMZXZlbERC
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbiBkaXJlY3Rpb24sIElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yOjpDdXJzb3JPcHRpb25z
JiBjdXJzb3JPcHRpb25zKQorYm9vbCBvYmplY3RTdG9yZUN1cnNvck9wdGlvbnMoTGV2ZWxEQlRy
YW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBJREJCYWNraW5nU3RvcmU6OkN1cnNvcjo6Q3Vyc29yT3B0aW9ucyYgY3Vyc29y
T3B0aW9ucykKIHsKICAgICBib29sIGxvd2VyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+bG93ZXIo
KTsKICAgICBib29sIHVwcGVyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+dXBwZXIoKTsKLSAgICBj
dXJzb3JPcHRpb25zLmZvcndhcmQgPSAoZGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yTmV4
dE5vRHVwbGljYXRlIHx8IGRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvck5leHQpOwotICAg
IGN1cnNvck9wdGlvbnMudW5pcXVlID0gKGRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvck5l
eHROb0R1cGxpY2F0ZSB8fCBkaXJlY3Rpb24gPT0gSW5kZXhlZERCOjpDdXJzb3JQcmV2Tm9EdXBs
aWNhdGUpOworICAgIGN1cnNvck9wdGlvbnMuZm9yd2FyZCA9IChkaXJlY3Rpb24gPT0gSURCQ3Vy
c29yOjpORVhUX05PX0RVUExJQ0FURSB8fCBkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUKTsK
KyAgICBjdXJzb3JPcHRpb25zLnVuaXF1ZSA9IChkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhU
X05PX0RVUExJQ0FURSB8fCBkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FU
RSk7CiAKICAgICBpZiAoIWxvd2VyQm91bmQpIHsKICAgICAgICAgY3Vyc29yT3B0aW9ucy5sb3dL
ZXkgPSBPYmplY3RTdG9yZURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
LCBtaW5JREJLZXkoKSk7CkBAIC0xNzY0LDEzICsxNzY0LDEzIEBAIGJvb2wgb2JqZWN0U3RvcmVD
dXJzb3JPcHRpb25zKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgaW5kZXhDdXJzb3JPcHRpb25zKExl
dmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5n
ZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJCYWNraW5nU3RvcmU6
OkN1cnNvcjo6Q3Vyc29yT3B0aW9ucyYgY3Vyc29yT3B0aW9ucykKK2Jvb2wgaW5kZXhDdXJzb3JP
cHRpb25zKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJh
bmdlKiByYW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJCYWNraW5nU3Rv
cmU6OkN1cnNvcjo6Q3Vyc29yT3B0aW9ucyYgY3Vyc29yT3B0aW9ucykKIHsKICAgICBBU1NFUlQo
dHJhbnNhY3Rpb24pOwogICAgIGJvb2wgbG93ZXJCb3VuZCA9IHJhbmdlICYmIHJhbmdlLT5sb3dl
cigpOwogICAgIGJvb2wgdXBwZXJCb3VuZCA9IHJhbmdlICYmIHJhbmdlLT51cHBlcigpOwotICAg
IGN1cnNvck9wdGlvbnMuZm9yd2FyZCA9IChkaXJlY3Rpb24gPT0gSW5kZXhlZERCOjpDdXJzb3JO
ZXh0Tm9EdXBsaWNhdGUgfHwgZGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yTmV4dCk7Ci0g
ICAgY3Vyc29yT3B0aW9ucy51bmlxdWUgPSAoZGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vyc29y
TmV4dE5vRHVwbGljYXRlIHx8IGRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvclByZXZOb0R1
cGxpY2F0ZSk7CisgICAgY3Vyc29yT3B0aW9ucy5mb3J3YXJkID0gKGRpcmVjdGlvbiA9PSBJREJD
dXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5FWFQp
OworICAgIGN1cnNvck9wdGlvbnMudW5pcXVlID0gKGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5F
WFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6OlBSRVZfTk9fRFVQTElD
QVRFKTsKIAogICAgIGlmICghbG93ZXJCb3VuZCkgewogICAgICAgICBjdXJzb3JPcHRpb25zLmxv
d0tleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlTWluS2V5KGRhdGFiYXNlSWQsIG9iamVjdFN0b3Jl
SWQsIGluZGV4SWQpOwpAQCAtMTgwNyw3ICsxODA3LDcgQEAgYm9vbCBpbmRleEN1cnNvck9wdGlv
bnMoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1
cnNvcj4gSURCQmFja2luZ1N0b3JlOjpvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0
b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJz
b3I+IElEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJREJDdXJzb3I6OkRpcmVj
dGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6Om9wZW5P
YmplY3RTdG9yZUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5z
YWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9u
RnJvbSh0cmFuc2FjdGlvbik7CkBAIC0xODIxLDcgKzE4MjEsNyBAQCBQYXNzUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUN1cnNv
cihJREJCYQogICAgIHJldHVybiBjdXJzb3IucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmU6Om9wZW5PYmplY3RTdG9yZUtl
eUN1cnNvcihJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiBy
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmU6OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlOjpvcGVuT2JqZWN0U3RvcmVL
ZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSog
cmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBJREJfVFJBQ0Uo
IklEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yIik7CiAgICAgTGV2ZWxE
QlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5z
YWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE4MzUsNyAr
MTgzNSw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdT
dG9yZTo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElECiAgICAgcmV0dXJuIGN1cnNvci5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tp
bmdTdG9yZTo6b3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
IHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJz
b3I+IElEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIElE
QkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBJREJfVFJBQ0UoIklEQkJhY2tp
bmdTdG9yZTo6b3BlbkluZGV4S2V5Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBs
ZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERC
VHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTE4NDksNyArMTg0OSw3IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4
S2V5Q3Vyc29yKElEQkJhY2tpCiAgICAgcmV0dXJuIGN1cnNvci5yZWxlYXNlKCk7CiB9CiAKLVBh
c3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZTo6b3Blbklu
ZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBj
b25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVj
dGlvbikKK1Bhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9y
ZTo6b3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBp
bmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRp
cmVjdGlvbikKIHsKICAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4Q3Vy
c29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJC
YWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJh
Y2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2lu
Z1N0b3JlLmgKaW5kZXggZmNmZTJkYWU5MGMwYzRhZjBiNTAyMzVlNWExMTgyYTI3OTE5NmQ2MC4u
OTIzZDdkY2E2ODA1MGI1NDE3Nzc5ZTZiOGQxODVjOTRjODAwNjgwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTI4LDkg
KzI4LDggQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0jaW5jbHVkZSAiSURC
S2V5LmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlICJJbmRleGVkREIuaCIKICNpbmNsdWRlICJMZXZlbERCVHJhbnNhY3Rpb24uaCIK
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAg
LTE0NiwxMCArMTQ1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgSURCQmFja2luZ1N0b3JlOjpSZWNv
cmRJZGVudGlmaWVyIG1fcmVjb3JkSWRlbnRpZmllcjsKICAgICB9OwogCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tp
bmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbik7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4S2V5Q3Vyc29yKElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWRE
Qjo6Q3Vyc29yRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29yPiBvcGVu
SW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktl
eVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1cnNvcihJREJCYWNraW5nU3RvcmU6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJlY3Rpb24pOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmU6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJlY3Rpb24pOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmU6OlRyYW5z
YWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJREJDdXJzb3I6OkRpcmVjdGlvbik7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIElEQkN1cnNvcjo6RGly
ZWN0aW9uKTsKIAogICAgIGNsYXNzIFRyYW5zYWN0aW9uIHsKICAgICBwdWJsaWM6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCA3YmIwZjUw
MGU0N2I0MjYxMzQwYTkzMjgxNThhZGU5M2UzNDg1NmM2Li40NjhlZGJlYmE5MTExNjlhMDkzYTJl
N2QyMzQ5MDg4ZmNjMjgzNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1QYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29yOjpjcmVhdGUoUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNlLCBJREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29y
OjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBE
aXJlY3Rpb24gZGlyZWN0aW9uLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwg
SURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SURCQ3Vyc29yKGJhY2tlbmQsIGRpcmVjdGlvbiwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlv
bikpOwogfQpAQCAtNzMsNyArNzMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6
ZGlyZWN0aW9uUHJldlVuaXF1ZSgpCiB9CiAKIAotSURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNl
LCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitJREJDdXJzb3I6OklEQkN1cnNvcihQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIERpcmVjdGlvbiBkaXJl
Y3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24pCiAgICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fcmVxdWVz
dChyZXF1ZXN0KQogICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0aW9uKQpAQCAtMjA2LDcgKzIwNiw3
IEBAIHZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgaWYgKGtleSkgewogICAgICAgICBBU1NFUlQo
bV9jdXJyZW50S2V5KTsKLSAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IEluZGV4ZWREQjo6Q3Vy
c29yTmV4dCB8fCBtX2RpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvck5leHROb0R1cGxpY2F0
ZSkgeworICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUIHx8IG1fZGly
ZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUpIHsKICAgICAgICAgICAgIGlm
ICghbV9jdXJyZW50S2V5LT5pc0xlc3NUaGFuKGtleS5nZXQoKSkpIHsKICAgICAgICAgICAgICAg
ICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMjk4LDM0ICsyOTgsMzQgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4g
SURCQ3Vyc29yOjplZmZlY3RpdmVPYmplY3RTdG9yZSgpCiAgICAgcmV0dXJuIGluZGV4LT5vYmpl
Y3RTdG9yZSgpOwogfQogCi1JbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBJREJDdXJzb3I6OnN0
cmluZ1RvRGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK0lEQkN1cnNvcjo6RGly
ZWN0aW9uIElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b25TdHJpbmcsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gSURCQ3Vyc29yOjpkaXJlY3Rpb25O
ZXh0KCkpCi0gICAgICAgIHJldHVybiBJbmRleGVkREI6OkN1cnNvck5leHQ7CisgICAgICAgIHJl
dHVybiBJREJDdXJzb3I6Ok5FWFQ7CiAgICAgaWYgKGRpcmVjdGlvblN0cmluZyA9PSBJREJDdXJz
b3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKSkKLSAgICAgICAgcmV0dXJuIEluZGV4ZWREQjo6Q3Vy
c29yTmV4dE5vRHVwbGljYXRlOworICAgICAgICByZXR1cm4gSURCQ3Vyc29yOjpORVhUX05PX0RV
UExJQ0FURTsKICAgICBpZiAoZGlyZWN0aW9uU3RyaW5nID09IElEQkN1cnNvcjo6ZGlyZWN0aW9u
UHJldigpKQotICAgICAgICByZXR1cm4gSW5kZXhlZERCOjpDdXJzb3JQcmV2OworICAgICAgICBy
ZXR1cm4gSURCQ3Vyc29yOjpQUkVWOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gSURCQ3Vy
c29yOjpkaXJlY3Rpb25QcmV2VW5pcXVlKCkpCi0gICAgICAgIHJldHVybiBJbmRleGVkREI6OkN1
cnNvclByZXZOb0R1cGxpY2F0ZTsKKyAgICAgICAgcmV0dXJuIElEQkN1cnNvcjo6UFJFVl9OT19E
VVBMSUNBVEU7CiAKICAgICBlYyA9IFR5cGVFcnJvcjsKLSAgICByZXR1cm4gSW5kZXhlZERCOjpD
dXJzb3JOZXh0OworICAgIHJldHVybiBJREJDdXJzb3I6Ok5FWFQ7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25Ub1N0cmluZyh1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24pCiB7CiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKLSAgICBjYXNlIEluZGV4ZWREQjo6
Q3Vyc29yTmV4dDoKKyAgICBjYXNlIElEQkN1cnNvcjo6TkVYVDoKICAgICAgICAgcmV0dXJuIElE
QkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpOwogCi0gICAgY2FzZSBJbmRleGVkREI6OkN1cnNvck5l
eHROb0R1cGxpY2F0ZToKKyAgICBjYXNlIElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEU6CiAg
ICAgICAgIHJldHVybiBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKTsKIAotICAgIGNh
c2UgSW5kZXhlZERCOjpDdXJzb3JQcmV2OgorICAgIGNhc2UgSURCQ3Vyc29yOjpQUkVWOgogICAg
ICAgICByZXR1cm4gSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KCk7CiAKLSAgICBjYXNlIEluZGV4
ZWREQjo6Q3Vyc29yUHJldk5vRHVwbGljYXRlOgorICAgIGNhc2UgSURCQ3Vyc29yOjpQUkVWX05P
X0RVUExJQ0FURToKICAgICAgICAgcmV0dXJuIElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1
ZSgpOwogCiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmgKaW5kZXggMThkMjAwZWE2MTA2Nzc5N2VhNGM5ZWRjNTE2MWQxNWRiNGIzZGFl
Ny4uMWM4MzE2NDAyNmRhNDRiM2YwOGVmOTNmZjQyZTNhYjQ1ZmZmNTkyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTMwLDcgKzMwLDYgQEAK
IAogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5j
bHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNTAsMTUg
KzQ5LDIyIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIElEQkN1cnNvciA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvcj4gewog
cHVibGljOgorICAgIGVudW0gRGlyZWN0aW9uIHsKKyAgICAgICAgTkVYVCA9IDAsCisgICAgICAg
IE5FWFRfTk9fRFVQTElDQVRFID0gMSwKKyAgICAgICAgUFJFViA9IDIsCisgICAgICAgIFBSRVZf
Tk9fRFVQTElDQVRFID0gMywKKyAgICB9OworCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZGlyZWN0aW9uTmV4dCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVj
dGlvbk5leHRVbmlxdWUoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJlY3Rp
b25QcmV2KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uUHJldlVu
aXF1ZSgpOwogCi0gICAgc3RhdGljIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIHN0cmluZ1Rv
RGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgSURCQ3Vyc29yOjpEaXJlY3Rpb24gc3Ry
aW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBtb2RlU3RyaW5nLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGRpcmVjdGlvblRvU3RyaW5nKHVuc2lnbmVkIHNob3J0IG1vZGUpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkq
IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJz
b3I+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rp
b24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICB2
aXJ0dWFsIH5JREJDdXJzb3IoKTsKIAogICAgIC8vIEltcGxlbWVudCB0aGUgSURMCkBAIC04Myw3
ICs4OSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQktleT4gaWRiUHJpbWFyeUtleSgp
IHsgcmV0dXJuIG1fY3VycmVudFByaW1hcnlLZXk7IH0KIAogcHJvdGVjdGVkOgotICAgIElEQkN1
cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbiwgSURCUmVxdWVzdCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlv
biopOworICAgIElEQkN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+
LCBEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24q
KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKIHByaXZhdGU6CkBAIC05MSw3ICs5Nyw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJSZXF1ZXN0
PiBtX3JlcXVlc3Q7Ci0gICAgY29uc3QgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gbV9kaXJl
Y3Rpb247CisgICAgY29uc3QgRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwogICAgIFJlZlB0cjxJREJB
bnk+IG1fc291cmNlOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsK
ICAgICBJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlmaWVyIG1fdHJhbnNhY3Rpb25Ob3Rp
ZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRleCAxMzYwZmI5MDIwNWVhMTk4Zjc4YzAzMDdmOTZj
NjI5ZTk4MmZlMzU4Li4zMzJkOTAxNDI1YWIxYmFhNGE0NGQ4ODljMWQ1ZDIxMmQ2MjgwZWQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNr
ZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZEltcGwuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSURCRGF0YWJh
c2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAi
SURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCVHJh
Y2luZy5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCIKICNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTEwMCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwogfTsKIAotSURCQ3Vyc29yQmFja2VuZEltcGw6
OklEQkN1cnNvckJhY2tlbmRJbXBsKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+
IGN1cnNvciwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCitJREJDdXJzb3JCYWNrZW5k
SW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1
cnNvcj4gY3Vyc29yLCBDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiAgICAgOiBtX3Rhc2tUeXBlKHRhc2tU
eXBlKQogICAgICwgbV9jdXJzb3JUeXBlKGN1cnNvclR5cGUpCiAgICAgLCBtX2RhdGFiYXNlKHRy
YW5zYWN0aW9uLT5kYXRhYmFzZSgpKQpAQCAtMTU5LDcgKzE2MCw3IEBAIHZvaWQgSURCQ3Vyc29y
QmFja2VuZEltcGw6OkN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2Fj
dGlvbkJhY2tlCiB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpkZWxldGVGdW5jdGlvbihQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJikKIHsKICAg
ICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpkZWxldGUiKTsKLSAgICBBU1NFUlQo
bV90cmFuc2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7
CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJREJUcmFuc2FjdGlvbjo6UkVB
RF9PTkxZKTsKICAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6
OmNyZWF0ZShtX2N1cnNvci0+cHJpbWFyeUtleSgpKTsKICAgICBtX2RhdGFiYXNlLT5kZWxldGVS
YW5nZShtX3RyYW5zYWN0aW9uLT5pZCgpLCBtX29iamVjdFN0b3JlSWQsIGtleVJhbmdlLnJlbGVh
c2UoKSwgcHJwQ2FsbGJhY2tzKTsKIH0KQEAgLTE5NSwxMCArMTk2LDEwIEBAIHZvaWQgSURCQ3Vy
c29yQmFja2VuZEltcGw6OkN1cnNvclByZWZldGNoSXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3Jt
KElEQlRyYW5zYWN0CiAgICAgICAgIGZvdW5kUHJpbWFyeUtleXMuYXBwZW5kKG1fY3Vyc29yLT5t
X2N1cnNvci0+cHJpbWFyeUtleSgpKTsKIAogICAgICAgICBzd2l0Y2ggKG1fY3Vyc29yLT5tX2N1
cnNvclR5cGUpIHsKLSAgICAgICAgY2FzZSBJbmRleGVkREI6OkN1cnNvcktleU9ubHk6CisgICAg
ICAgIGNhc2UgS2V5T25seToKICAgICAgICAgICAgIGZvdW5kVmFsdWVzLmFwcGVuZChTaGFyZWRC
dWZmZXI6OmNyZWF0ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEluZGV4
ZWREQjo6Q3Vyc29yS2V5QW5kVmFsdWU6CisgICAgICAgIGNhc2UgS2V5QW5kVmFsdWU6CiAgICAg
ICAgICAgICBzaXplRXN0aW1hdGUgKz0gbV9jdXJzb3ItPm1fY3Vyc29yLT52YWx1ZSgpLT5zaXpl
KCk7CiAgICAgICAgICAgICBmb3VuZFZhbHVlcy5hcHBlbmQobV9jdXJzb3ItPm1fY3Vyc29yLT52
YWx1ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKaW5kZXggNTVlMjZiYjdk
NDQ4ZmQ0YjFlMTY1YTVjYmQzNmU4MzhjYTJlMzU0Ni4uNjk5ZTJmNThkNmQxNzYyMWY0Y2ExMjRm
ZDJlYzhiMGIxMzMxMmE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIK
KyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgpAQCAtNDQsMTEgKzQ1LDExIEBAIGNsYXNzIElEQktleVJhbmdlOwog
CiBjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5k
SW1wbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGN1cnNvciwg
SW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SURCQ3Vyc29yQmFja2VuZEltcGw+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZTo6Q3Vyc29yPiBjdXJzb3IsIEN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yQmFja2VuZEltcGwoY3Vyc29y
LCBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRhc2ssIHRy
YW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRJbXBsPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6
OkN1cnNvcj4gY3Vyc29yLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbCogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlOjpDdXJzb3I+IGN1cnNvciwgQ3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JCYWNrZW5kSW1wbChjdXJzb3Is
IGN1cnNvclR5cGUsIHRhc2tUeXBlLCB0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZCkpOwogICAg
IH0KQEAgLTY0LDE4ICs2NSwxOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPElEQktleT4g
a2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJzb3ItPmtleSgpOyB9CiAgICAgUGFzc1JlZlB0cjxJ
REJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX2N1cnNvci0+cHJpbWFyeUtleSgp
OyB9Ci0gICAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4g
KG1fY3Vyc29yVHlwZSA9PSBJbmRleGVkREI6OkN1cnNvcktleU9ubHkpID8gMCA6IG1fY3Vyc29y
LT52YWx1ZSgpOyB9CisgICAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gKG1fY3Vyc29yVHlwZSA9PSBLZXlPbmx5KSA/IDAgOiBtX2N1cnNvci0+dmFsdWUo
KTsgfQogICAgIHZvaWQgY2xvc2UoKTsKIAogcHJpdmF0ZToKLSAgICBJREJDdXJzb3JCYWNrZW5k
SW1wbChQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiwgSW5kZXhlZERCOjpDdXJz
b3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlLCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsKiwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKKyAgICBJREJDdXJzb3JC
YWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiwgQ3Vyc29yVHlw
ZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbCosIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAKICAgICBjbGFzcyBDdXJzb3JJ
dGVyYXRpb25PcGVyYXRpb247CiAgICAgY2xhc3MgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbjsKICAg
ICBjbGFzcyBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbjsKIAogICAgIElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgbV90YXNrVHlwZTsKLSAgICBJbmRleGVkREI6
OkN1cnNvclR5cGUgbV9jdXJzb3JUeXBlOworICAgIEN1cnNvclR5cGUgbV9jdXJzb3JUeXBlOwog
ICAgIGNvbnN0IFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBtX2RhdGFiYXNlOwogICAg
IGNvbnN0IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiBtX3RyYW5zYWN0aW9uOwog
ICAgIGNvbnN0IGludDY0X3QgbV9vYmplY3RTdG9yZUlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5o
CmluZGV4IDk2M2YzMmIwMGFiMzA5M2E5Y2ZiOGJlY2FhMmVjODUxYmVjODhhYzYuLmFlYjI5NzZi
MDg2MmE3OWFkNDQzODEzZTllNzZjZmEyNmUzOTBmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJREJB
bnk7CiBjbGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJSZXF1ZXN0
OwpAQCAtNDMsNiArNDQsMTEgQEAgY2xhc3MgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZSA6IHB1
YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlKCkge30KIAorICAgIGVudW0gQ3Vy
c29yVHlwZSB7CisgICAgICAgIEtleUFuZFZhbHVlID0gMCwKKyAgICAgICAgS2V5T25seQorICAg
IH07CisKICAgICB2aXJ0dWFsIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBsb25nIGNvdW50LCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JX
aXRoVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmNwcAppbmRleCA0MDM2MTExMDQ5ZWI1ZDkyOWFkYjIyN2M2ZmUzYTNjYmVjMzZm
MTg4Li5iOTBiYTNkOWI1MjY1MzE3MDkyYmJlNTU4MTc1MGRjMDI3ODVkYWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1
ZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVm
UHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNl
LCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitQYXNzUmVmUHRyPElEQkN1cnNvcldpdGhW
YWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJSZXF1ZXN0KiBy
ZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yV2l0aFZhbHVlKGJhY2tlbmQsIGRpcmVj
dGlvbiwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikpOwogfQpAQCAtNDQsNyArNDQsNyBA
QCBQYXNzUmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9t
Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3VycwogICAgIHJldHVybiBjdXJzb3JXaXRoVmFsdWUucmVs
ZWFzZSgpOwogfQogCi1JREJDdXJzb3JXaXRoVmFsdWU6OklEQkN1cnNvcldpdGhWYWx1ZShQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBzb3Vy
Y2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKK0lEQkN1cnNvcldpdGhWYWx1ZTo6SURC
Q3Vyc29yV2l0aFZhbHVlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFj
a2VuZCwgRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBz
b3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKICAgICA6IElEQkN1cnNvcihiYWNr
ZW5kLCBkaXJlY3Rpb24sIHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1
ZS5oCmluZGV4IDE1ODIzYTA2MjRhMzFkZTlmMmMyZGQ0M2RjMGM5MzNmNGM3YzYwNGUuLmNiYjg1
MGExY2QwMmYwYWEyMDk1MmYyY2ZkYjg4OGZjOGMwMjg2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5oCkBAIC0zNCw3
ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQ3Vyc29yV2l0aFZhbHVl
IDogcHVibGljIElEQkN1cnNvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
Q3Vyc29yV2l0aFZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlPiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNv
dXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JX
aXRoVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBE
aXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IGZyb21DdXJzb3IoUGFz
c1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JXaXRoVmFsdWUoKTsK
IApAQCAtNDUsNyArNDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vy
c29yKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKLSAgICBJ
REJDdXJzb3JXaXRoVmFsdWUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwg
SURCVHJhbnNhY3Rpb24qKTsKKyAgICBJREJDdXJzb3JXaXRoVmFsdWUoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgRGlyZWN0aW9uLCBJREJSZXF1ZXN0KiwgSURCQW55KiBz
b3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5k
ZXggOWNlNjY1YmI3YTdjNmRkN2FmOTg0Yjc0NjgxNWIxODBiNDQ2NGY5YS4uYzk5YThkNWM4NGZl
MTUyMThmYjA3ZTg4MjMyNDEwYjAxZTkzNzFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEluZGV4
ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSBJREJUcmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2Rl
KG1vZGVTdHJpbmcsIGNvbnRleHQsIGVjKTsKKyAgICBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2Rl
ID0gSURCVHJhbnNhY3Rpb246OnN0cmluZ1RvTW9kZShtb2RlU3RyaW5nLCBjb250ZXh0LCBlYyk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggOGRkNTJjOTYwMDVmMmMwMWYzMGNl
NzdlMTUwOTkwODI0OTI4NTNlMy4uZGUxM2I2N2ZiZThmMGQ4NmNhOTU0NmEyYjAzMjMwMDEyYTIy
MjllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5oCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIklEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgi
CiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgog
I2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAyYzMw
MzIwYTU0ZjM0Y2MyMzI4NzFjZGNmN2IzY2RhYjFjNDdjYzY2Li45ODBkMTRmNGZlNjU5NjZlMjA1
ZjE2NDcyMDc2ZGI1ODg3MDBkYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzIsNyAr
MzIsNiBAQAogI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURC
RGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEltcGwuaCIK
LSNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbC5oIgpAQCAtMjM5LDEzICsyMzgsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
R2V0T3BlcmF0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Ok9wZXJhdGlv
biB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbDo6T3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IGJhY2tp
bmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbDo6T3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+
IGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JU
eXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBHZXRPcGVyYXRpb24oYmFja2luZ1N0b3JlLCBtZXRhZGF0YSwg
b2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGN1cnNvclR5cGUsIGNhbGxiYWNrcykp
OwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsKik7CiBwcml2YXRlOgotICAgIEdldE9wZXJhdGlvbihQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZT4gYmFja2luZ1N0b3JlLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBHZXRPcGVyYXRpb24oUGFzc1JlZlB0
cjxJREJCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0
YSYgbWV0YWRhdGEsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6
Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQogICAgICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2Rh
dGFiYXNlSWQobWV0YWRhdGEuaWQpCiAgICAgICAgICwgbV9vYmplY3RTdG9yZUlkKG9iamVjdFN0
b3JlSWQpCkBAIC0yNjcsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJREJLZXlQYXRo
IG1fa2V5UGF0aDsKICAgICBjb25zdCBib29sIG1fYXV0b0luY3JlbWVudDsKICAgICBjb25zdCBS
ZWZQdHI8SURCS2V5UmFuZ2U+IG1fa2V5UmFuZ2U7Ci0gICAgY29uc3QgSW5kZXhlZERCOjpDdXJz
b3JUeXBlIG1fY3Vyc29yVHlwZTsKKyAgICBjb25zdCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
OjpDdXJzb3JUeXBlIG1fY3Vyc29yVHlwZTsKICAgICBjb25zdCBSZWZQdHI8SURCQ2FsbGJhY2tz
PiBtX2NhbGxiYWNrczsKIH07CiAKQEAgLTMyMSwxMyArMzIwLDEzIEBAIHByaXZhdGU6CiAKIGNs
YXNzIE9wZW5DdXJzb3JPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bDo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsOjpPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwg
SW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNvclR5
cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNr
VHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFz
c093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpPcGVyYXRpb24+IGNyZWF0ZShQYXNz
UmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE9wZW5DdXJzb3JPcGVy
YXRpb24oYmFja2luZ1N0b3JlLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCBr
ZXlSYW5nZSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0YXNrVHlwZSwgY2FsbGJhY2tzKSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwq
KTsKIHByaXZhdGU6Ci0gICAgT3BlbkN1cnNvck9wZXJhdGlvbihQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5n
ZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbmRleGVkREI6OkN1cnNv
clR5cGUgY3Vyc29yVHlwZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0
YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBPcGVuQ3Vy
c29yT3BlcmF0aW9uKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUsIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQs
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rp
b24sIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICAgICAgOiBtX2JhY2tpbmdTdG9yZShiYWNraW5n
U3RvcmUpCiAgICAgICAgICwgbV9kYXRhYmFzZUlkKGRhdGFiYXNlSWQpCiAgICAgICAgICwgbV9v
YmplY3RTdG9yZUlkKG9iamVjdFN0b3JlSWQpCkBAIC0zNDUsOCArMzQ0LDggQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBpbnQ2NF90IG1fb2JqZWN0U3RvcmVJZDsKICAgICBjb25zdCBpbnQ2NF90IG1f
aW5kZXhJZDsKICAgICBjb25zdCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBtX2tleVJhbmdlOwot
ICAgIGNvbnN0IEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwotICAgIGNv
bnN0IEluZGV4ZWREQjo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7CisgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgbV9kaXJlY3Rpb247CisgICAgY29uc3QgSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZTo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7CiAgICAgY29uc3QgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpUYXNrVHlwZSBtX3Rhc2tUeXBlOwogICAgIGNvbnN0IFJlZlB0cjxJREJDYWxs
YmFja3M+IG1fY2FsbGJhY2tzOwogfTsKQEAgLTU1Niw3ICs1NTUsNyBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYgogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uID0g
bV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24p
CiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9u
LT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKTsKIAogICAgIEFTU0VS
VCghbV9tZXRhZGF0YS5vYmplY3RTdG9yZXMuY29udGFpbnMob2JqZWN0U3RvcmVJZCkpOwogICAg
IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0U3RvcmVNZXRhZGF0YShuYW1lLCBvYmplY3RT
dG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6Ok1pbmltdW1JbmRleElkKTsKQEAgLTU4Miw3ICs1ODEsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYgogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uID0gbV90
cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCiAg
ICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRleGVk
REI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5t
b2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKTsKIAogICAgIEFTU0VSVCht
X21ldGFkYXRhLm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZUlkKSk7CiAgICAgY29u
c3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRhZGF0YSA9IG1fbWV0YWRh
dGEub2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKQEAgLTU5Nyw3ICs1OTYsNyBAQCB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdAogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRy
YW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogICAgIGlmICgh
dHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1v
ZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CisgICAgQVNTRVJU
KHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKTsK
IAogICAgIEFTU0VSVChtX21ldGFkYXRhLm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9y
ZUlkKSk7CiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBvYmplY3RTdG9yZSA9IG1f
bWV0YWRhdGEub2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKQEAgLTYzMiw3ICs2MzEs
NyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmRlbGV0ZUluZGV4KGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdAogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogICAg
IGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQodHJhbnNhY3Rp
b24tPm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZSk7CisgICAg
QVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hB
TkdFKTsKIAogICAgIEFTU0VSVChtX21ldGFkYXRhLm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmpl
Y3RTdG9yZUlkKSk7CiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBvYmplY3RTdG9y
ZSA9IG1fbWV0YWRhdGEub2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlkKTsKQEAgLTY4Niw3
ICs2ODUsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmdldChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaQogICAgIGlmICghdHJhbnNhY3Rpb24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIHRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soR2V0T3Bl
cmF0aW9uOjpjcmVhdGUobV9iYWNraW5nU3RvcmUsIG1fbWV0YWRhdGEsIG9iamVjdFN0b3JlSWQs
IGluZGV4SWQsIGtleVJhbmdlLCBrZXlPbmx5ID8gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5IDog
SW5kZXhlZERCOjpDdXJzb3JLZXlBbmRWYWx1ZSwgY2FsbGJhY2tzKSk7CisgICAgdHJhbnNhY3Rp
b24tPnNjaGVkdWxlVGFzayhHZXRPcGVyYXRpb246OmNyZWF0ZShtX2JhY2tpbmdTdG9yZSwgbV9t
ZXRhZGF0YSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGtleU9ubHkgPyBJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpLZXlPbmx5IDogSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZTo6S2V5QW5kVmFsdWUsIGNhbGxiYWNrcykpOwogfQogCiB2b2lkIEdldE9wZXJhdGlvbjo6cGVy
Zm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbikKQEAgLTcwMCwxNiAr
Njk5LDE2IEBAIHZvaWQgR2V0T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwqIHRyYW5zYWN0aW9uKQogICAgIGVsc2UgewogICAgICAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKICAgICAgICAgaWYgKG1faW5kZXhJ
ZCA9PSBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpIHsKLSAgICAgICAgICAgIEFTU0VSVCht
X2N1cnNvclR5cGUgIT0gSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5KTsKKyAgICAgICAgICAgIEFT
U0VSVChtX2N1cnNvclR5cGUgIT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6S2V5T25seSk7
CiAgICAgICAgICAgICAvLyBPYmplY3RTdG9yZSBSZXRyaWV2YWwgT3BlcmF0aW9uCi0gICAgICAg
ICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3Jl
Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNl
SWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgSW5kZXhlZERCOjpDdXJzb3JO
ZXh0KTsKKyAgICAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5v
cGVuT2JqZWN0U3RvcmVDdXJzb3IodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
KCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBtX2tleVJhbmdlLmdldCgpLCBJREJD
dXJzb3I6Ok5FWFQpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fY3Vyc29y
VHlwZSA9PSBJbmRleGVkREI6OkN1cnNvcktleU9ubHkpCisgICAgICAgICAgICBpZiAobV9jdXJz
b3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleU9ubHkpCiAgICAgICAgICAg
ICAgICAgLy8gSW5kZXggVmFsdWUgUmV0cmlldmFsIE9wZXJhdGlvbgotICAgICAgICAgICAgICAg
IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuSW5kZXhLZXlDdXJzb3Io
dHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9v
YmplY3RTdG9yZUlkLCBtX2luZGV4SWQsIG1fa2V5UmFuZ2UuZ2V0KCksIEluZGV4ZWREQjo6Q3Vy
c29yTmV4dCk7CisgICAgICAgICAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yID0gbV9iYWNraW5n
U3RvcmUtPm9wZW5JbmRleEtleUN1cnNvcih0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1faW5kZXhJZCwgbV9rZXlS
YW5nZS5nZXQoKSwgSURCQ3Vyc29yOjpORVhUKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAvLyBJbmRleCBSZWZlcmVuY2VkIFZhbHVlIFJldHJpZXZhbCBPcGVyYXRpb24KLSAg
ICAgICAgICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Blbklu
ZGV4Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFi
YXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleElkLCBtX2tleVJhbmdlLmdldCgpLCBJbmRl
eGVkREI6OkN1cnNvck5leHQpOworICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9
IG1fYmFja2luZ1N0b3JlLT5vcGVuSW5kZXhDdXJzb3IodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBtX2luZGV4SWQs
IG1fa2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIWJhY2tpbmdTdG9yZUN1cnNvcikgewpAQCAtNzU2LDcgKzc1NSw3IEBAIHZvaWQgR2V0
T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9u
KQogICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJbmRleGVkREI6OkN1cnNvcktleU9ubHkpIHsK
KyAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleU9u
bHkpIHsKICAgICAgICAgLy8gSW5kZXggVmFsdWUgUmV0cmlldmFsIE9wZXJhdGlvbgogICAgICAg
ICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHByaW1hcnlLZXkuZ2V0KCkpOwogICAgICAgICByZXR1
cm47CkBAIC03ODcsNyArNzg2LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQo
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFAKICAgICBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0
cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47Ci0g
ICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblJl
YWRPbmx5KTsKKyAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJREJUcmFuc2FjdGlv
bjo6UkVBRF9PTkxZKTsKIAogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0
U3RvcmVNZXRhZGF0YSA9IG1fbWV0YWRhdGEub2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlk
KTsKIApAQCAtNzk5LDcgKzc5OCw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHV0
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQCiB2b2lkIFB1
dE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlv
bikKIHsKICAgICBJREJfVFJBQ0UoIlB1dE9wZXJhdGlvbiIpOwotICAgIEFTU0VSVCh0cmFuc2Fj
dGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CisgICAgQVNT
RVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSURCVHJhbnNhY3Rpb246OlJFQURfT05MWSk7CiAg
ICAgQVNTRVJUKG1faW5kZXhJZHMuc2l6ZSgpID09IG1faW5kZXhLZXlzLnNpemUoKSk7CiAgICAg
Ym9vbCBrZXlXYXNHZW5lcmF0ZWQgPSBmYWxzZTsKIApAQCAtODczLDcgKzg3Miw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTCiAgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNh
Y3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFu
c2FjdGlvbikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgp
ID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKKyAgICBBU1NFUlQodHJh
bnNhY3Rpb24tPm1vZGUoKSA9PSBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UpOwogCiAg
ICAgUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSA9IHBycFByaW1hcnlLZXk7CiAgICAgUmVmUHRy
PElEQkJhY2tpbmdTdG9yZT4gc3RvcmUgPSBiYWNraW5nU3RvcmUoKTsKQEAgLTkzMCwxNCArOTI5
LDE0IEBAIHZvaWQgU2V0SW5kZXhlc1JlYWR5T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uKQogICAgICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29t
cGxldGVQcmVlbXB0aXZlRXZlbnQoKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRl
eGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUg
dGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2b2lkIElEQkRh
dGFiYXNlQmFja2VuZEltcGw6Om9wZW5DdXJzb3IoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgYm9vbCBrZXlPbmx5LCBUYXNr
VHlwZSB0YXNrVHlwZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAg
ICBJREJfVFJBQ0UoIklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5DdXJzb3IiKTsKICAgICBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdl
dCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47
CiAKLSAgICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKE9wZW5DdXJzb3JPcGVyYXRpb246OmNy
ZWF0ZShtX2JhY2tpbmdTdG9yZSwgaWQoKSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFu
Z2UsIGRpcmVjdGlvbiwga2V5T25seSA/IEluZGV4ZWREQjo6Q3Vyc29yS2V5T25seSA6IEluZGV4
ZWREQjo6Q3Vyc29yS2V5QW5kVmFsdWUsIHRhc2tUeXBlLCBjYWxsYmFja3MpKTsKKyAgICB0cmFu
c2FjdGlvbi0+c2NoZWR1bGVUYXNrKE9wZW5DdXJzb3JPcGVyYXRpb246OmNyZWF0ZShtX2JhY2tp
bmdTdG9yZSwgaWQoKSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGRpcmVjdGlv
biwga2V5T25seSA/IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleU9ubHkgOiBJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlOjpLZXlBbmRWYWx1ZSwgdGFza1R5cGUsIGNhbGxiYWNrcykpOwog
fQogCiB2b2lkIE9wZW5DdXJzb3JPcGVyYXRpb246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbCogdHJhbnNhY3Rpb24pCkBAIC05NTEsMTYgKzk1MCwxNyBAQCB2b2lkIE9wZW5DdXJz
b3JPcGVyYXRpb246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rp
b24pCiAgICAgaWYgKG1fdGFza1R5cGUgPT0gSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQ
cmVlbXB0aXZlVGFzaykKICAgICAgICAgdHJhbnNhY3Rpb24tPmFkZFByZWVtcHRpdmVFdmVudCgp
OwogCisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gc3RhdGljX2Nhc3Q8SURC
Q3Vyc29yOjpEaXJlY3Rpb24+KG1fZGlyZWN0aW9uKTsKICAgICBSZWZQdHI8SURCQmFja2luZ1N0
b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKICAgICBpZiAobV9pbmRleElkID09IElE
QkluZGV4TWV0YWRhdGE6OkludmFsaWRJZCkgewotICAgICAgICBBU1NFUlQobV9jdXJzb3JUeXBl
ICE9IEluZGV4ZWREQjo6Q3Vyc29yS2V5T25seSk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNv
ciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IodHJhbnNhY3Rpb24tPmJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBt
X2tleVJhbmdlLmdldCgpLCBtX2RpcmVjdGlvbik7CisgICAgICAgIEFTU0VSVChtX2N1cnNvclR5
cGUgIT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6S2V5T25seSk7CisgICAgICAgIGJhY2tp
bmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IodHJh
bnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmpl
Y3RTdG9yZUlkLCBtX2tleVJhbmdlLmdldCgpLCBkaXJlY3Rpb24pOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChtX3Rhc2tUeXBlID09IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6
Tm9ybWFsVGFzayk7Ci0gICAgICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSW5kZXhlZERCOjpDdXJz
b3JLZXlPbmx5KQotICAgICAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yID0gbV9iYWNraW5nU3Rv
cmUtPm9wZW5JbmRleEtleUN1cnNvcih0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1faW5kZXhJZCwgbV9rZXlSYW5n
ZS5nZXQoKSwgbV9kaXJlY3Rpb24pOworICAgICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleU9ubHkpCisgICAgICAgICAgICBiYWNraW5nU3RvcmVD
dXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkluZGV4S2V5Q3Vyc29yKHRyYW5zYWN0aW9uLT5i
YWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwg
bV9pbmRleElkLCBtX2tleVJhbmdlLmdldCgpLCBkaXJlY3Rpb24pOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkluZGV4
Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNl
SWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleElkLCBtX2tleVJhbmdlLmdldCgpLCBtX2RpcmVj
dGlvbik7CisgICAgICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+
b3BlbkluZGV4Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBt
X2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleElkLCBtX2tleVJhbmdlLmdldCgp
LCBkaXJlY3Rpb24pOwogICAgIH0KIAogICAgIGlmICghYmFja2luZ1N0b3JlQ3Vyc29yKSB7CkBA
IC05OTEsOSArOTkxLDkgQEAgdm9pZCBDb3VudE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbikKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3Jl
OjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvcjsKIAogICAgIGlmIChtX2luZGV4SWQgPT0gSURC
SW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKQotICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBt
X2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9r
ZXlSYW5nZS5nZXQoKSwgSW5kZXhlZERCOjpDdXJzb3JOZXh0KTsKKyAgICAgICAgYmFja2luZ1N0
b3JlQ3Vyc29yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5PYmplY3RTdG9yZUtleUN1cnNvcih0cmFu
c2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVj
dFN0b3JlSWQsIG1fa2V5UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7CiAgICAgZWxzZQot
ICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkluZGV4S2V5
Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNl
SWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleElkLCBtX2tleVJhbmdlLmdldCgpLCBJbmRleGVk
REI6OkN1cnNvck5leHQpOworICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdT
dG9yZS0+b3BlbkluZGV4S2V5Q3Vyc29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleElkLCBtX2tleVJh
bmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOwogICAgIGlmICghYmFja2luZ1N0b3JlQ3Vyc29y
KSB7CiAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY291bnQpOwogICAgICAgICByZXR1
cm47CkBAIC0xMDEyLDcgKzEwMTIsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmRl
bGV0ZVJhbmdlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdAogICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0
KHRyYW5zYWN0aW9uSWQpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybjsK
LSAgICBBU1NFUlQodHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9u
UmVhZE9ubHkpOworICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IElEQlRyYW5zYWN0
aW9uOjpSRUFEX09OTFkpOwogCiAgICAgdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhEZWxldGVS
YW5nZU9wZXJhdGlvbjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBpZCgpLCBvYmplY3RTdG9yZUlk
LCBrZXlSYW5nZSwgY2FsbGJhY2tzKSk7CiB9CkBAIC0xMDIwLDcgKzEwMjAsNyBAQCB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZEltcGw6OmRlbGV0ZVJhbmdlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdAogdm9pZCBEZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybShJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbikKIHsKICAgICBJREJfVFJBQ0UoIkRl
bGV0ZVJhbmdlT3BlcmF0aW9uIik7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29y
PiBiYWNraW5nU3RvcmVDdXJzb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3JlQ3Vy
c29yKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQs
IG1fb2JqZWN0U3RvcmVJZCwgbV9rZXlSYW5nZS5nZXQoKSwgSW5kZXhlZERCOjpDdXJzb3JOZXh0
KTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNv
ciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3IodHJhbnNhY3Rpb24tPmJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBt
X2tleVJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOwogICAgIGlmIChiYWNraW5nU3RvcmVD
dXJzb3IpIHsKICAgICAgICAgZG8gewogICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0
ZVJlY29yZCh0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgbV9kYXRhYmFz
ZUlkLCBtX29iamVjdFN0b3JlSWQsIGJhY2tpbmdTdG9yZUN1cnNvci0+cmVjb3JkSWRlbnRpZmll
cigpKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
Y2xlYXIoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsCiAgICAg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5n
ZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJu
OwotICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rp
b25SZWFkT25seSk7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSURCVHJhbnNh
Y3Rpb246OlJFQURfT05MWSk7CiAKICAgICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKENsZWFy
T3BlcmF0aW9uOjpjcmVhdGUobV9iYWNraW5nU3RvcmUsIGlkKCksIG9iamVjdFN0b3JlSWQsIGNh
bGxiYWNrcykpOwogfQpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFj
a2UKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25TdGFydGVkKFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24pCiB7CiAgICAg
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uID0gcHJwVHJhbnNh
Y3Rpb247Ci0gICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2Fj
dGlvblZlcnNpb25DaGFuZ2UpIHsKKyAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJREJU
cmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UpIHsKICAgICAgICAgQVNTRVJUKCFtX3J1bm5pbmdW
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOwogICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjsKICAgICB9CkBAIC0xMDkxLDcgKzEwOTEsNyBAQCB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWQoUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbgogICAgIEFTU0VSVChtX3RyYW5zYWN0aW9ucy5jb250YWlu
cyh0cmFuc2FjdGlvbi0+aWQoKSkpOwogICAgIEFTU0VSVChtX3RyYW5zYWN0aW9ucy5nZXQodHJh
bnNhY3Rpb24tPmlkKCkpID09IHRyYW5zYWN0aW9uLmdldCgpKTsKICAgICBtX3RyYW5zYWN0aW9u
cy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwotICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgp
ID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7CisgICAgaWYgKHRyYW5z
YWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAg
ICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24uZ2V0KCkpOwogICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24uY2xlYXIoKTsKICAgICB9CkBAIC0xMTAwLDcgKzExMDAsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbgogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZpbmlzaGVk
QW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHBycFRy
YW5zYWN0aW9uKQogewogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFu
c2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOwotICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7CisgICAgaWYgKHRyYW5zYWN0
aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAgICAg
IC8vIElmIHRoaXMgd2FzIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUg
YSAic2Vjb25kCiAgICAgICAgIC8vIGhhbGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBw
cm9jZXNzUGVuZGluZ0NhbGxzLgogICAgICAgICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIg
c3VwcG9ydCBzZXRWZXJzaW9uLCBhc3NlcnQgc3VjaCBhIHRoaW5nLgpAQCAtMTExNSw3ICsxMTE1
LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZpbmlzaGVkQW5k
QWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRyYW4KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBsZXRlRmlyZWQoUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsPiBwcnBUcmFuc2FjdGlvbikKIHsKICAgICBSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBwcnBUcmFuc2FjdGlvbjsKLSAgICBp
ZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lvbkNo
YW5nZSkKKyAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJREJUcmFuc2FjdGlvbjo6VkVS
U0lPTl9DSEFOR0UpCiAgICAgICAgIHByb2Nlc3NQZW5kaW5nQ2FsbHMoKTsKIH0KIApAQCAtMTE2
NSw3ICsxMTY1LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGlu
Z0NhbGxzKCkKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlv
bihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWdu
ZWQgc2hvcnQgbW9kZSkKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4g
dHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNhY3Rp
b25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGU+KG1vZGUpLCB0aGlzKTsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVh
dGUodHJhbnNhY3Rpb25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8
SURCVHJhbnNhY3Rpb246Ok1vZGU+KG1vZGUpLCB0aGlzKTsKICAgICBBU1NFUlQoIW1fdHJhbnNh
Y3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWQpKTsKICAgICBtX3RyYW5zYWN0aW9ucy5hZGQo
dHJhbnNhY3Rpb25JZCwgdHJhbnNhY3Rpb24uZ2V0KCkpOwogfQpAQCAtMTI1Nyw3ICsxMjU3LDcg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmEKICAgICB9CiAKICAgICBWZWN0b3I8aW50NjRfdD4g
b2JqZWN0U3RvcmVJZHM7Ci0gICAgY3JlYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZCwgZGF0
YWJhc2VDYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVy
c2lvbkNoYW5nZSk7CisgICAgY3JlYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZCwgZGF0YWJh
c2VDYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFO
R0UpOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9
IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKIAogICAgIHRyYW5zYWN0aW9uLT5z
Y2hlZHVsZVRhc2soVmVyc2lvbkNoYW5nZU9wZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIHRyYW5zYWN0
aW9uSWQsIHJlcXVlc3RlZFZlcnNpb24sIGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MpLCBW
ZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRpb246OmNyZWF0ZSh0aGlzLCBtX21ldGFkYXRhLnZlcnNp
b24sIG1fbWV0YWRhdGEuaW50VmVyc2lvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDM1M2Jm
YTA5MzE4OWQxZDg0YmRmYTA2OTE5OTc3NWQ1ODAxNWNiOTIuLjFlYmM4NzgxMmU1YWU5NmRmZGI1
ODc3ZDFkZjNiOTVhYjliMzAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTI3LDcgKzI3LDcg
QEAKICNkZWZpbmUgSURCRGF0YWJhc2VCYWNrZW5kSW1wbF9oCiAKICNpbmNsdWRlICJJREJDYWxs
YmFja3MuaCIKLSNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2Rl
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJ
ZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcykgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvcGVu
Q3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVSYW5nZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCAzZTUxY2MwNmEyMjM5YWNlOGU3OThj
NGE4MzYwMzY0YWYwYTI5NDA2Li5lMDAxNGViM2UyZGNjMmEzZjQzNDI1MDc0NDU3OTMwNWI3MTY3
YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtMjYsOCArMjYsNyBAQAogI2lm
bmRlZiBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2VfaAogI2RlZmluZSBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2VfaAogCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1
ZGUgIkluZGV4ZWREQi5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODYsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgb3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5
T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjb3VudChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJhbmdlKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnkuaAppbmRleCBjYzYxY2Q3YzZmYmQxMmU0ZTA5YTc3ZWM5ZGQwZGEyMGNm
ZTc3MGI5Li5jYjFiN2IwYjM3NmI3YWE2ZDg0OWM2ODQ4YjMwZTNlMWNlNjAyZWY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaWZuZGVmIElEQkZhY3RvcnlfaAogI2RlZmluZSBJREJGYWN0b3J5X2gKIAorI2lu
Y2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRC
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eC5jcHAKaW5kZXggZmY1ZDQzNjdiODNiOTA4NWI4MzlhNzQ2Yjg2Y2I4NjA2M2FmYjE4My4uYmVi
OTgzNmE1NGVhYTg5YTVjODdiMmE1OTE3Njg5MjM3ZWMyNDIwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRl
ICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgpAQCAtMzksNyArNDAsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBkZWZh
dWx0RGlyZWN0aW9uID0gSW5kZXhlZERCOjpDdXJzb3JOZXh0Oworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHNob3J0IGRlZmF1bHREaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQ7CiAKIElEQkluZGV4
OjpJREJJbmRleChjb25zdCBJREJJbmRleE1ldGFkYXRhJiBtZXRhZGF0YSwgSURCT2JqZWN0U3Rv
cmUqIG9iamVjdFN0b3JlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiAgICAgOiBtX21l
dGFkYXRhKG1ldGFkYXRhKQpAQCAtNjcsMTIgKzY4LDEyIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIEluZGV4ZWREQjo6Q3Vyc29y
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0
aW9uU3RyaW5nLCBjb250ZXh0LCBlYyk7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGNvbnRl
eHQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPElE
QlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55Ojpj
cmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIHJlcXVlc3QtPnNldEN1cnNv
ckRldGFpbHMoSW5kZXhlZERCOjpDdXJzb3JLZXlBbmRWYWx1ZSwgZGlyZWN0aW9uKTsKKyAgICBy
ZXF1ZXN0LT5zZXRDdXJzb3JEZXRhaWxzKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleUFu
ZFZhbHVlLCBkaXJlY3Rpb24pOwogICAgIGJhY2tlbmREQigpLT5vcGVuQ3Vyc29yKG1fdHJhbnNh
Y3Rpb24tPmlkKCksIG1fb2JqZWN0U3RvcmUtPmlkKCksIG1fbWV0YWRhdGEuaWQsIGtleVJhbmdl
LCBkaXJlY3Rpb24sIGZhbHNlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRh
c2ssIHJlcXVlc3QpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTIyLDEyICsxMjMsMTIg
QEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbktleUN1cnNvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
LSAgICBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0
cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgY29udGV4dCwgZWMpOworICAgIElEQkN1
cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24o
ZGlyZWN0aW9uU3RyaW5nLCBjb250ZXh0LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsK
LSAgICByZXF1ZXN0LT5zZXRDdXJzb3JEZXRhaWxzKEluZGV4ZWREQjo6Q3Vyc29yS2V5T25seSwg
ZGlyZWN0aW9uKTsKKyAgICByZXF1ZXN0LT5zZXRDdXJzb3JEZXRhaWxzKElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U6OktleU9ubHksIGRpcmVjdGlvbik7CiAgICAgYmFja2VuZERCKCktPm9wZW5D
dXJzb3IobV90cmFuc2FjdGlvbi0+aWQoKSwgbV9vYmplY3RTdG9yZS0+aWQoKSwgbV9tZXRhZGF0
YS5pZCwga2V5UmFuZ2UsIGRpcmVjdGlvbiwgdHJ1ZSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpOb3JtYWxUYXNrLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApp
bmRleCA1ODkwZWMzN2ZjMWMyNTdkZWFkMmZmZTVmZWU4NjEzN2UwN2JlNTIzLi5mYWE1Y2JlMjYx
Y2NiMDRkNGM4OTM5N2Q2Y2ZjM2IyZmUyN2E4YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkFueS5oIgogI2luY2x1
ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCQ3Vyc29yV2l0aFZhbHVlLmgiCiAjaW5jbHVkZSAiSURC
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgpAQCAtNDcsNyAr
NDgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBz
aG9ydCBkZWZhdWx0RGlyZWN0aW9uID0gSW5kZXhlZERCOjpDdXJzb3JOZXh0Oworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNob3J0IGRlZmF1bHREaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQ7CiAK
IElEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZShjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBtZXRhZGF0YSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDogbV9tZXRh
ZGF0YShtZXRhZGF0YSkKQEAgLTUwNCwxMiArNTA1LDEyIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIEluZGV4ZWREQjo6Q3Vyc29y
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0
aW9uU3RyaW5nLCBjb250ZXh0LCBlYyk7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGNvbnRl
eHQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPElE
QlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55Ojpj
cmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIHJlcXVlc3QtPnNldEN1cnNv
ckRldGFpbHMoSW5kZXhlZERCOjpDdXJzb3JLZXlBbmRWYWx1ZSwgZGlyZWN0aW9uKTsKKyAgICBy
ZXF1ZXN0LT5zZXRDdXJzb3JEZXRhaWxzKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleUFu
ZFZhbHVlLCBkaXJlY3Rpb24pOwogCiAgICAgYmFja2VuZERCKCktPm9wZW5DdXJzb3IobV90cmFu
c2FjdGlvbi0+aWQoKSwgaWQoKSwgSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkLCByYW5nZSwg
ZGlyZWN0aW9uLCBmYWxzZSwgc3RhdGljX2Nhc3Q8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpUYXNrVHlwZT4odGFza1R5cGUpLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdC5yZWxl
YXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwCmluZGV4IDY2NWUzZmZhZWI3ZjJiNDMzZDc1YTdmOGQ0NmU3ZmFiYTA4NjZjMmYuLjJiMTM0
MzkxMTg0MzQzYWU5Y2ZhMDQ4NTM4MDNmMDcxNTlhODYzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAj
aW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIgogI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCQ3Vyc29yV2l0aFZhbHVlLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIK
QEAgLTc4LDggKzc3LDggQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmMKICAgICAsIG1fc291cmNl
KHNvdXJjZSkKICAgICAsIG1fdGFza1R5cGUodGFza1R5cGUpCiAgICAgLCBtX2hhc1BlbmRpbmdB
Y3Rpdml0eSh0cnVlKQotICAgICwgbV9jdXJzb3JUeXBlKEluZGV4ZWREQjo6Q3Vyc29yS2V5QW5k
VmFsdWUpCi0gICAgLCBtX2N1cnNvckRpcmVjdGlvbihJbmRleGVkREI6OkN1cnNvck5leHQpCisg
ICAgLCBtX2N1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6S2V5QW5kVmFsdWUp
CisgICAgLCBtX2N1cnNvckRpcmVjdGlvbihJREJDdXJzb3I6Ok5FWFQpCiAgICAgLCBtX2N1cnNv
ckZpbmlzaGVkKGZhbHNlKQogICAgICwgbV9wZW5kaW5nQ3Vyc29yKDApCiAgICAgLCBtX2RpZEZp
cmVVcGdyYWRlTmVlZGVkRXZlbnQoZmFsc2UpCkBAIC0xODYsNyArMTg1LDcgQEAgdm9pZCBJREJS
ZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9yZXF1ZXN0QWJvcnRlZCA9IHRydWU7CiB9CiAKLXZvaWQg
SURCUmVxdWVzdDo6c2V0Q3Vyc29yRGV0YWlscyhJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29y
VHlwZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKQordm9pZCBJREJSZXF1
ZXN0OjpzZXRDdXJzb3JEZXRhaWxzKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5
cGUgY3Vyc29yVHlwZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFT
U0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDdXJz
b3IpOwpAQCAtMjI5LDcgKzIyOCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UmVzdWx0Q3Vyc29y
KFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5CiAgICAgbV9j
dXJzb3JQcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsKICAgICBtX2N1cnNvclZhbHVlID0gdmFsdWU7
CiAKLSAgICBpZiAobV9jdXJzb3JUeXBlID09IEluZGV4ZWREQjo6Q3Vyc29yS2V5T25seSkgewor
ICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6S2V5T25s
eSkgewogICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGN1cnNvcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0yOTUsMTAgKzI5NCwxMCBAQCB2b2lkIElEQlJlcXVlc3Q6Om9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIFBh
c3NSZQogICAgIEFTU0VSVCghbV9wZW5kaW5nQ3Vyc29yKTsKICAgICBSZWZQdHI8SURCQ3Vyc29y
PiBjdXJzb3I7CiAgICAgc3dpdGNoIChtX2N1cnNvclR5cGUpIHsKLSAgICBjYXNlIEluZGV4ZWRE
Qjo6Q3Vyc29yS2V5T25seToKKyAgICBjYXNlIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6Oktl
eU9ubHk6CiAgICAgICAgIGN1cnNvciA9IElEQkN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQsIG1fY3Vy
c29yRGlyZWN0aW9uLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5kZXhlZERCOjpDdXJzb3JLZXlBbmRWYWx1ZToK
KyAgICBjYXNlIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OktleUFuZFZhbHVlOgogICAgICAg
ICBjdXJzb3IgPSBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShiYWNrZW5kLCBtX2N1cnNvckRp
cmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGI4MzA2NDA3MDAzYzEyMGJiYTE3NjM4MjRiOGQyYTkz
OTZjZmEyNzguLmQwNjdlYjI5YTg4NTU3OTJjMGMxMjU1Nzc1Y2QwMjQ4ODhjOTUxYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTQyLDYg
KzQyLDcgQEAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIK
ICNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZXJyb3IpOwogCiAgICAgdm9pZCBtYXJrRWFybHlEZWF0aCgpOwotICAgIHZvaWQg
c2V0Q3Vyc29yRGV0YWlscyhJbmRleGVkREI6OkN1cnNvclR5cGUsIEluZGV4ZWREQjo6Q3Vyc29y
RGlyZWN0aW9uKTsKKyAgICB2b2lkIHNldEN1cnNvckRldGFpbHMoSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZTo6Q3Vyc29yVHlwZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24pOwogICAgIHZvaWQgc2V0
UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4pOwogICAgIHZvaWQgZmluaXNoQ3Vy
c29yKCk7CiAgICAgdm9pZCBhYm9ydCgpOwpAQCAtMTQ4LDggKzE0OSw4IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBtX2VucXVldWVkRXZlbnRzOwogCiAgICAgLy8gT25s
eSB1c2VkIGlmIHRoZSByZXN1bHQgdHlwZSB3aWxsIGJlIGEgY3Vyc29yLgotICAgIEluZGV4ZWRE
Qjo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7Ci0gICAgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rp
b24gbV9jdXJzb3JEaXJlY3Rpb247CisgICAgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vy
c29yVHlwZSBtX2N1cnNvclR5cGU7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gbV9jdXJzb3JE
aXJlY3Rpb247CiAgICAgYm9vbCBtX2N1cnNvckZpbmlzaGVkOwogICAgIFJlZlB0cjxJREJDdXJz
b3I+IG1fcGVuZGluZ0N1cnNvcjsKICAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvcktleTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNw
cAppbmRleCBmNTU1OTQzZDgwMzNkODgwOTU4MzU2MzgyNWFkZjBhNTE2NGJkMjQyLi5iYzBlZGRk
Zjg0MTAzZmNjZTJkZmVkMTNiMmRhMjNiNDIzNDk2N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC00NCw3ICs0NCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4g
SURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBp
bnQ2NF90IGlkLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVOYW1lcywgSW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQorUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBpbnQ2NF90IGlkLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3Rv
cmVOYW1lcywgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQogewog
ICAgIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QgPSAwOwogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRl
eHQsIGlkLCBvYmplY3RTdG9yZU5hbWVzLCBtb2RlLCBkYiwgb3BlbkRCUmVxdWVzdCwgSURCRGF0
YWJhc2VNZXRhZGF0YSgpKSkpOwpAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleAogCiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGludDY0X3QgaWQsIElEQkRhdGFiYXNl
KiBkYiwgSURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCwgY29uc3QgSURCRGF0YWJhc2VN
ZXRhZGF0YSYgcHJldmlvdXNNZXRhZGF0YSkKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBpZCwgVmVj
dG9yPFN0cmluZz4oKSwgSW5kZXhlZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2UsIGRiLCBv
cGVuREJSZXF1ZXN0LCBwcmV2aW91c01ldGFkYXRhKSkpOworICAgIFJlZlB0cjxJREJUcmFuc2Fj
dGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRleHQsIGlk
LCBWZWN0b3I8U3RyaW5nPigpLCBWRVJTSU9OX0NIQU5HRSwgZGIsIG9wZW5EQlJlcXVlc3QsIHBy
ZXZpb3VzTWV0YWRhdGEpKSk7CiAgICAgdHJhbnNhY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwog
ICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CkBAIC05MCw3ICs5MCw3IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQog
fQogCiAKLUlEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBpbnQ2NF90IGlkLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3Rv
cmVOYW1lcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRi
LCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0LCBjb25zdCBJREJEYXRhYmFzZU1ldGFk
YXRhJiBwcmV2aW91c01ldGFkYXRhKQorSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBvYmplY3RTdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJE
YXRhYmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QsIGNvbnN0IElEQkRh
dGFiYXNlTWV0YWRhdGEmIHByZXZpb3VzTWV0YWRhdGEpCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCwgdGhpcykKICAgICAsIG1faWQoaWQpCiAgICAgLCBtX2RhdGFiYXNlKGRiKQpAQCAt
MTAyLDcgKzEwMiw3IEBAIElEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBpbnQ2NF90IGlkLCBjb25zCiAgICAgLCBtX2NvbnRleHRT
dG9wcGVkKGZhbHNlKQogICAgICwgbV9wcmV2aW91c01ldGFkYXRhKHByZXZpb3VzTWV0YWRhdGEp
CiB7Ci0gICAgaWYgKG1vZGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2Up
IHsKKyAgICBpZiAobW9kZSA9PSBWRVJTSU9OX0NIQU5HRSkgewogICAgICAgICAvLyBOb3QgYWN0
aXZlIHVudGlsIHRoZSBjYWxsYmFjay4KICAgICAgICAgbV9zdGF0ZSA9IEluYWN0aXZlOwogICAg
IH0KQEAgLTMzNiwzMCArMzM2LDMwIEBAIGJvb2wgSURCVHJhbnNhY3Rpb246Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5OwogfQogCi1J
bmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBJREJUcmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2RlKGNv
bnN0IFN0cmluZyYgbW9kZVN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpCitJREJUcmFuc2FjdGlvbjo6TW9kZSBJREJUcmFuc2FjdGlvbjo6
c3RyaW5nVG9Nb2RlKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1vZGVTdHJpbmcu
aXNOdWxsKCkKICAgICAgICAgfHwgbW9kZVN0cmluZyA9PSBJREJUcmFuc2FjdGlvbjo6bW9kZVJl
YWRPbmx5KCkpCi0gICAgICAgIHJldHVybiBJbmRleGVkREI6OlRyYW5zYWN0aW9uUmVhZE9ubHk7
CisgICAgICAgIHJldHVybiBJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZOwogICAgIGlmIChtb2Rl
U3RyaW5nID09IElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKCkpCi0gICAgICAgIHJldHVy
biBJbmRleGVkREI6OlRyYW5zYWN0aW9uUmVhZFdyaXRlOworICAgICAgICByZXR1cm4gSURCVHJh
bnNhY3Rpb246OlJFQURfV1JJVEU7CiAKICAgICBlYyA9IFR5cGVFcnJvcjsKLSAgICByZXR1cm4g
SW5kZXhlZERCOjpUcmFuc2FjdGlvblJlYWRPbmx5OworICAgIHJldHVybiBJREJUcmFuc2FjdGlv
bjo6UkVBRF9PTkxZOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjpt
b2RlVG9TdHJpbmcoSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkKK2NvbnN0IEF0b21p
Y1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVUb1N0cmluZyhJREJUcmFuc2FjdGlvbjo6TW9k
ZSBtb2RlKQogewogICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgSW5kZXhlZERCOjpUcmFu
c2FjdGlvblJlYWRPbmx5OgorICAgIGNhc2UgSURCVHJhbnNhY3Rpb246OlJFQURfT05MWToKICAg
ICAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKTsKICAgICAgICAgYnJl
YWs7CiAKLSAgICBjYXNlIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkV3JpdGU6CisgICAgY2Fz
ZSBJREJUcmFuc2FjdGlvbjo6UkVBRF9XUklURToKICAgICAgICAgcmV0dXJuIElEQlRyYW5zYWN0
aW9uOjptb2RlUmVhZFdyaXRlKCk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBJbmRleGVk
REI6OlRyYW5zYWN0aW9uVmVyc2lvbkNoYW5nZToKKyAgICBjYXNlIElEQlRyYW5zYWN0aW9uOjpW
RVJTSU9OX0NIQU5HRToKICAgICAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lv
bkNoYW5nZSgpOwogICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggZjRkNjRjYjdkMTNmZTM1MzI1NmM2
ZTE1ZTcyOTc5ZTUyNTU3NTk3OS4uNjk3NTBlYjczOWU2ODA3ZGIxMTg3ZGMwZTZjODQ0ZmM4NTAx
MmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRl
ICJJbmRleGVkREIuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01Miw3ICs1MSwx
MyBAQCBzdHJ1Y3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YTsKIAogY2xhc3MgSURCVHJhbnNhY3Rp
b24gOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2Fj
dGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgaW50NjRfdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0
b3JlTmFtZXMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZSopOworICAg
IGVudW0gTW9kZSB7CisgICAgICAgIFJFQURfT05MWSA9IDAsCisgICAgICAgIFJFQURfV1JJVEUg
PSAxLAorICAgICAgICBWRVJTSU9OX0NIQU5HRSA9IDIKKyAgICB9OworCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
aW50NjRfdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlTmFtZXMsIE1vZGUsIElE
QkRhdGFiYXNlKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50NjRfdCwgSURCRGF0YWJhc2UqLCBJREJPcGVu
REJSZXF1ZXN0KiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgcHJldmlvdXNNZXRhZGF0YSk7
CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIApAQCAtNjIsMTYgKzY3LDE2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2RlUmVhZE9ubHlMZWdhY3ko
KTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2RlUmVhZFdyaXRlTGVnYWN5KCk7
CiAKLSAgICBzdGF0aWMgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgc3RyaW5nVG9Nb2RlKGNv
bnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZVRvU3RyaW5nKEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlKTsKKyAgICBzdGF0aWMgTW9kZSBzdHJpbmdUb01vZGUoY29uc3QgU3RyaW5n
JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBtb2RlVG9TdHJpbmcoTW9kZSk7CiAKICAgICBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2UqIGJhY2tlbmREQigpIGNvbnN0OwogCiAgICAgaW50NjRfdCBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZSA9PSBBY3RpdmU7IH0KICAgICBib29sIGlzRmluaXNoZWQoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRlID09IEZpbmlzaGVkOyB9Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qg
eyByZXR1cm4gbV9tb2RlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seTsgfQotICAg
IGJvb2wgaXNWZXJzaW9uQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlID09IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlOyB9CisgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RlID09IFJFQURfT05MWTsgfQorICAgIGJvb2wgaXNWZXJzaW9uQ2hh
bmdlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlID09IFZFUlNJT05fQ0hBTkdFOyB9CiAKICAgICAv
LyBJbXBsZW1lbnQgdGhlIElEQlRyYW5zYWN0aW9uIElETAogICAgIGNvbnN0IFN0cmluZyYgbW9k
ZSgpIGNvbnN0OwpAQCAtMTIxLDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3Vu
dGVkPElEQlRyYW5zYWN0aW9uPjo6ZGVyZWY7CiAKIHByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludDY0X3QsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVx
dWVzdCosIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKTsKKyAgICBJREJUcmFuc2FjdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50NjRfdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBN
b2RlLCBJREJEYXRhYmFzZSosIElEQk9wZW5EQlJlcXVlc3QqLCBjb25zdCBJREJEYXRhYmFzZU1l
dGFkYXRhJik7CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAg
ICAgdm9pZCBjbG9zZU9wZW5DdXJzb3JzKCk7CkBAIC0xNDYsNyArMTUxLDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7CiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4gbV9vYmplY3RTdG9yZU5hbWVzOwogICAgIElEQk9wZW5EQlJlcXVlc3QqIG1fb3BlbkRC
UmVxdWVzdDsKLSAgICBjb25zdCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtX21vZGU7Cisg
ICAgY29uc3QgTW9kZSBtX21vZGU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBib29sIG1faGFz
UGVuZGluZ0FjdGl2aXR5OwogICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbC5jcHAKaW5kZXggNjU2MjU1NzcwNjExMmYzOTE2MDJjZjUwZjY5MjdlYmRlNDg5
YzhjOS4uN2ZlODNiMjNkMmVjYmZmNzYwMmUzMmI0ZWIxOWVkMWJhYzg2YWU2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbC5jcHAKQEAgLTMxLDE0ICszMSwxMyBAQAogI2luY2x1ZGUgIklEQkJh
Y2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJbXBsLmgiCiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIgotI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJU
cmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4g
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRlKGludDY0X3QgaWQsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbCogZGF0YWJhc2UpCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZShpbnQ2NF90IGlkLCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFi
YXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQogewogICAgIEhhc2hTZXQ8aW50NjRfdD4gb2JqZWN0
U3RvcmVIYXNoU2V0OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMu
c2l6ZSgpOyArK2kpCkBAIC00Nyw3ICs0Niw3IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6Y3JlYXRlKGludDY0X3QKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwoaWQsIGNhbGxi
YWNrcywgb2JqZWN0U3RvcmVIYXNoU2V0LCBtb2RlLCBkYXRhYmFzZSkpOwogfQogCi1JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKGludDY0X3QgaWQs
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgSGFzaFNl
dDxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1v
ZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKQorSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbDo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbChpbnQ2NF90IGlkLCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IEhhc2hTZXQ8aW50NjRfdD4m
IG9iamVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsKiBkYXRhYmFzZSkKICAgICA6IG1faWQoaWQpCiAgICAgLCBtX29iamVjdFN0b3Jl
SWRzKG9iamVjdFN0b3JlSWRzKQogICAgICwgbV9tb2RlKG1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsLmgKaW5kZXggZTYxOGZhMDY4OGE5YzBkZGM5ZjlhMWE3OGNkZDkyYmZmMjgxMWViMy4uM2Nl
Zjk3NjJhZTEwMjdlODg4NGU5ODI2ZjQ3OTFmNjM2NGEzNGIwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRh
dGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3M7CiAKIGNsYXNzIElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGwgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYsIElEQlRyYW5zYWN0aW9uOjpNb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
Kik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIGFib3J0KCk7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
YWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdm9pZCBydW4oKTsKLSAg
ICBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2Rl
OyB9CisgICAgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9k
ZTsgfQogICAgIGNvbnN0IEhhc2hTZXQ8aW50NjRfdD4mIHNjb3BlKCkgY29uc3QgeyByZXR1cm4g
bV9vYmplY3RTdG9yZUlkczsgfQogICAgIHZvaWQgc2NoZWR1bGVUYXNrKFBhc3NPd25QdHI8T3Bl
cmF0aW9uPiB0YXNrLCBQYXNzT3duUHRyPE9wZXJhdGlvbj4gYWJvcnRUYXNrID0gbnVsbHB0cikg
eyBzY2hlZHVsZVRhc2soSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNrLCB0
YXNrLCBhYm9ydFRhc2spOyB9CiAgICAgdm9pZCBzY2hlZHVsZVRhc2soSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgUGFzc093blB0cjxPcGVyYXRpb24+LCBQYXNzT3duUHRy
PE9wZXJhdGlvbj4gYWJvcnRUYXNrID0gbnVsbHB0cik7CkBAIC03Miw3ICs3Myw3IEBAIHB1Ymxp
YzoKICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YWJhc2UuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGludDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25z
dCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlv
bk1vZGUsIElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKKyAgICBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsKGludDY0X3QgaWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25z
dCBIYXNoU2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUs
IElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKIAogICAgIGVudW0gU3RhdGUgewogICAgICAgICBV
bnVzZWQsIC8vIENyZWF0ZWQsIGJ1dCBubyB0YXNrcyB5ZXQuCkBAIC05MSw3ICs5Miw3IEBAIHBy
aXZhdGU6CiAKICAgICBjb25zdCBpbnQ2NF90IG1faWQ7CiAgICAgY29uc3QgSGFzaFNldDxpbnQ2
NF90PiBtX29iamVjdFN0b3JlSWRzOwotICAgIGNvbnN0IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlIG1fbW9kZTsKKyAgICBjb25zdCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtX21vZGU7CiAKICAg
ICBTdGF0ZSBtX3N0YXRlOwogICAgIGJvb2wgbV9jb21taXRQZW5kaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmNwcAppbmRleCBhNmZjZDhlYTNlNmUxZDgyZTFiOTI4OTBhZGU1NGZkNzVlZWU4
NzFlLi4wYmI1YWNhOTVhMDhjNWM1MTZhMzY1MTMyNTQ1YjhlNDY5N2Q1MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkNvb3JkaW5hdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIgorI2luY2x1
ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Niw3ICs5Nyw3IEBAIHZvaWQgSURCVHJh
bnNhY3Rpb25Db29yZGluYXRvcjo6cHJvY2Vzc1N0YXJ0ZWRUcmFuc2FjdGlvbnMoKQogICAgIGlm
IChtX3F1ZXVlZFRyYW5zYWN0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEFTU0VSVChtX3N0YXJ0ZWRUcmFuc2FjdGlvbnMuaXNFbXB0eSgpIHx8ICgqbV9zdGFydGVkVHJh
bnNhY3Rpb25zLmJlZ2luKCkpLT5tb2RlKCkgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblZlcnNp
b25DaGFuZ2UpOworICAgIEFTU0VSVChtX3N0YXJ0ZWRUcmFuc2FjdGlvbnMuaXNFbXB0eSgpIHx8
ICgqbV9zdGFydGVkVHJhbnNhY3Rpb25zLmJlZ2luKCkpLT5tb2RlKCkgIT0gSURCVHJhbnNhY3Rp
b246OlZFUlNJT05fQ0hBTkdFKTsKIAogICAgIExpc3RIYXNoU2V0PElEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGwqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3F1ZXVlZFRyYW5zYWN0aW9ucy5iZWdp
bigpOwogICAgIHdoaWxlIChpdCAhPSBtX3F1ZXVlZFRyYW5zYWN0aW9ucy5lbmQoKSkgewpAQCAt
MTIzLDIyICsxMjQsMjIgQEAgYm9vbCBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yOjpjYW5SdW5U
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmEKIHsKICAgICBBU1NFUlQo
bV9xdWV1ZWRUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24pKTsKICAgICBzd2l0Y2gg
KHRyYW5zYWN0aW9uLT5tb2RlKCkpIHsKLSAgICBjYXNlIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25W
ZXJzaW9uQ2hhbmdlOgorICAgIGNhc2UgSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFOgog
ICAgICAgICBBU1NFUlQobV9xdWV1ZWRUcmFuc2FjdGlvbnMuc2l6ZSgpID09IDEpOwogICAgICAg
ICBBU1NFUlQobV9zdGFydGVkVHJhbnNhY3Rpb25zLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgY2FzZSBJbmRleGVkREI6OlRyYW5zYWN0aW9uUmVhZE9ubHk6CisgICAg
Y2FzZSBJREJUcmFuc2FjdGlvbjo6UkVBRF9PTkxZOgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGNhc2UgSW5kZXhlZERCOjpUcmFuc2FjdGlvblJlYWRXcml0ZToKKyAgICBjYXNlIElEQlRy
YW5zYWN0aW9uOjpSRUFEX1dSSVRFOgogICAgICAgICBmb3IgKEhhc2hTZXQ8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbCo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fc3RhcnRlZFRyYW5zYWN0aW9u
cy5iZWdpbigpOyBpdCAhPSBtX3N0YXJ0ZWRUcmFuc2FjdGlvbnMuZW5kKCk7ICsraXQpIHsKLSAg
ICAgICAgICAgIGlmICgoKml0KS0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFk
V3JpdGUgJiYgZG9TY29wZXNPdmVybGFwKHRyYW5zYWN0aW9uLT5zY29wZSgpLCAoKml0KS0+c2Nv
cGUoKSkpCisgICAgICAgICAgICBpZiAoKCppdCktPm1vZGUoKSA9PSBJREJUcmFuc2FjdGlvbjo6
UkVBRF9XUklURSAmJiBkb1Njb3Blc092ZXJsYXAodHJhbnNhY3Rpb24tPnNjb3BlKCksICgqaXQp
LT5zY29wZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgZm9yIChMaXN0SGFzaFNldDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKj46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9xdWV1ZWRUcmFuc2FjdGlvbnMuYmVnaW4oKTsgKml0ICE9IHRyYW5z
YWN0aW9uOyArK2l0KSB7CiAgICAgICAgICAgICBBU1NFUlQoaXQgIT0gbV9xdWV1ZWRUcmFuc2Fj
dGlvbnMuZW5kKCkpOwotICAgICAgICAgICAgaWYgKCgqaXQpLT5tb2RlKCkgPT0gSW5kZXhlZERC
OjpUcmFuc2FjdGlvblJlYWRXcml0ZSAmJiBkb1Njb3Blc092ZXJsYXAodHJhbnNhY3Rpb24tPnNj
b3BlKCksICgqaXQpLT5zY29wZSgpKSkKKyAgICAgICAgICAgIGlmICgoKml0KS0+bW9kZSgpID09
IElEQlRyYW5zYWN0aW9uOjpSRUFEX1dSSVRFICYmIGRvU2NvcGVzT3ZlcmxhcCh0cmFuc2FjdGlv
bi0+c2NvcGUoKSwgKCppdCktPnNjb3BlKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJlODRmYzcyMWE1YzMyMzY0MmE2ODNiMTE0OTJkMDM4NDRiNGZlYzguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSW5kZXhlZERCLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBJbmRleGVkREJfaAotI2RlZmluZSBJbmRleGVkREJfaAotCi0jaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIElu
ZGV4ZWREQiB7Ci0KLWVudW0gVHJhbnNhY3Rpb25Nb2RlIHsKLSAgICBUcmFuc2FjdGlvblJlYWRP
bmx5ID0gMCwKLSAgICBUcmFuc2FjdGlvblJlYWRXcml0ZSA9IDEsCi0gICAgVHJhbnNhY3Rpb25W
ZXJzaW9uQ2hhbmdlID0gMgotfTsKLQotZW51bSBDdXJzb3JEaXJlY3Rpb24gewotICAgIEN1cnNv
ck5leHQgPSAwLAotICAgIEN1cnNvck5leHROb0R1cGxpY2F0ZSA9IDEsCi0gICAgQ3Vyc29yUHJl
diA9IDIsCi0gICAgQ3Vyc29yUHJldk5vRHVwbGljYXRlID0gMywKLX07Ci0KLWVudW0gQ3Vyc29y
VHlwZSB7Ci0gICAgQ3Vyc29yS2V5QW5kVmFsdWUgPSAwLAotICAgIEN1cnNvcktleU9ubHkKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIEluZGV4ZWREQgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEVEKElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRpZiAvLyBJbmRleGVk
REJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggNWUwNDZhMGZhZDQ0YTk2YjI0YTMwMjM5NmI5ZDRmMWVjYjc3
YWQxNy4uMTE4OGE4OWMxMWRkYWM1YzUzNjdmZjIzZjUzY2MwNGNiMTVjNjUyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0zMTExLDggKzMxMTEsOCBAQCBlbmFibGU/KElOREVYRURfREFUQUJBU0UpIHsKICAg
ICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaCBcCiAgICAgICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkV2ZW50RGlzcGF0Y2hlci5oIFwKICAgICAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIFwKLSAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5oIFwKKyAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJIaXN0b2dy
YW1zLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oIFwKICAgICAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggXApAQCAtMzEyMCw4ICszMTIwLDcgQEAgZW5hYmxl
PyhJTkRFWEVEX0RBVEFCQVNFKSB7CiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggXAotICAg
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIFwKLSAgICAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSW5kZXhlZERCLmgKKyAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaAogCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhNDFkOTgwZjEwZTNlMzA0
Y2Q1NzhjNGI1OTkwMTNjYmNmYzVkM2RjLi5mMGVmOWZhNjUyNjFmZGE1YWRjNDAxY2U5MTA4ZWY1
ZDM3YjZjNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC04MDEsNyArODAxLDYgQEAKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9pbmRleGVkZGIvSURCQW55LmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQkJhY2tpbmdTdG9yZS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QkJhY2tpbmdTdG9yZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxs
YmFja3MuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCcs
CkBAIC04NDIsNiArODQxLDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlSYW5nZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29k
aW5nLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGlu
Zy5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3Bw
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJNZXRhZGF0YS5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgnLApAQCAtODYyLDcgKzg2Miw2
IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdl
RXZlbnQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hh
bmdlRXZlbnQuaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFz
ZS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWRE
YXRhYmFzZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0
SW5kZXhlZERhdGFiYXNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDZhMzNjZjhjZGUxYjg0MWRjZDNiNTNhNzI3
MGYzYTc0YjRjMDJhZTMuLjNiMDM3OTkzNzFkMTA5NDIzNzZmNjg0MzQ0MzE5NDk4ODlmZjFmZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCkBAIC01MDQsMTAgKzUwNCwxMCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYklEQktleVBhdGg6OkFycmF5VHlwZSwgSURCS2V5UGF0aDo6QXJyYXlUeXBlKTsKIAogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBJ
REJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pOwogCi1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdlYklEQkN1cnNvcjo6TmV4dCwgSW5kZXhlZERCOjpDdXJzb3JOZXh0KTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCQ3Vyc29yOjpOZXh0Tm9EdXBsaWNhdGUs
IEluZGV4ZWREQjo6Q3Vyc29yTmV4dE5vRHVwbGljYXRlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViSURCQ3Vyc29yOjpQcmV2LCBJbmRleGVkREI6OkN1cnNvclByZXYpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJDdXJzb3I6OlByZXZOb0R1cGxpY2F0ZSwg
SW5kZXhlZERCOjpDdXJzb3JQcmV2Tm9EdXBsaWNhdGUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJJREJDdXJzb3I6Ok5leHQsIElEQkN1cnNvcjo6TkVYVCk7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkN1cnNvcjo6TmV4dE5vRHVwbGljYXRlLCBJREJDdXJz
b3I6Ok5FWFRfTk9fRFVQTElDQVRFKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SURCQ3Vyc29yOjpQcmV2LCBJREJDdXJzb3I6OlBSRVYpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJJREJDdXJzb3I6OlByZXZOb0R1cGxpY2F0ZSwgSURCQ3Vyc29yOjpQUkVWX05P
X0RVUExJQ0FURSk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJh
c2U6OlByZWVtcHRpdmVUYXNrLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlByZWVtcHRp
dmVUYXNrKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2U6Ok5v
cm1hbFRhc2ssIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFzayk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAKaW5kZXggMmMyYTVlN2U5ZmQ1NjQyYTU5NzIwNDhiMjlhNmMwMmE3YmUwZGJiMS4uMzU1
ZDgwODllZWNjNmQzYzQ0YmQ4Y2JhMDQxMTFmMjZlZmYxOTM0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcApAQCAt
OTMsNyArOTMsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjphYm9ydChpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhcwogICAgIG1fd2ViSURCRGF0YWJh
c2UtPmFib3J0KHRyYW5zYWN0aW9uSWQsIGVycm9yKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eTo6b3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGtleU9ubHks
IFRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQor
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6b3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtl
eU9ubHksIFRhc2tUeXBlIHRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKQogewogICAgIG1fd2ViSURCRGF0YWJhc2UtPm9wZW5DdXJzb3IodHJhbnNhY3Rpb25JZCwg
b2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIHN0YXRpY19jYXN0PFdlYklEQkN1cnNv
cjo6RGlyZWN0aW9uPihkaXJlY3Rpb24pLCBrZXlPbmx5LCBzdGF0aWNfY2FzdDxXZWJJREJEYXRh
YmFzZTo6VGFza1R5cGU+KHRhc2tUeXBlKSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJh
Y2tzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuaAppbmRleCA1ZDVkOTA4Zjk4YmUzYWE4NWMyNWQ2MzRjNWZiMTA0MmVl
YjJmNzhiLi5kYmQ5NjQyZjExMjBkOTk4ZGFmOTdjYjVmYTlhNTIwYmJkNWQ2ZDUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5
LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQdXRN
b2RlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHBycFByaW1hcnlLZXks
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBpbmRleElkcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkNhbGxiYWNrcz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNr
cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSYW5nZShpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJL
ZXlSYW5nZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cAppbmRleCAzMzkwNThlZGRmMzRjN2JmNDJiNjQwNGM4OTZjNWZlMzNmNmE4ZmIyLi4wNWZjODhm
NWJjYjM1M2Q4M2FkNGU0NGVjMGIxYjljZDc2Yzg0NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgotI2luY2x1ZGUgIklEQk1ldGFkYXRh
LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxi
YWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCBlNGRhN2VlMjMxMjlm
NmY2OWM4MzBkNjBhMDA5Y2U1ZGYxOTQzMmZkLi5hMTgwNTE1MGQyY2E2ZGM3N2RmODYxYjYyZDBh
YWIzYTllNWRiMmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6Y29tbWl0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKQogdm9pZCBXZWJJREJEYXRhYmFz
ZUltcGw6Om9wZW5DdXJzb3IobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBsb25nIGxvbmcgaW5kZXhJZCwgY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJh
bmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUgdGFz
a1R5cGUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKQogewogICAgIGlmIChtX2RhdGFiYXNl
QmFja2VuZCkKLSAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPm9wZW5DdXJzb3IodHJhbnNhY3Rp
b25JZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIHN0YXRpY19jYXN0PEluZGV4
ZWREQjo6Q3Vyc29yRGlyZWN0aW9uPihkaXJlY3Rpb24pLCBrZXlPbmx5LCBzdGF0aWNfY2FzdDxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlPih0YXNrVHlwZSksIElEQkNhbGxi
YWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkpOworICAgICAgICBtX2RhdGFi
YXNlQmFja2VuZC0+b3BlbkN1cnNvcih0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCBpbmRl
eElkLCBrZXlSYW5nZSwgc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpEaXJlY3Rpb24+KGRpcmVjdGlv
biksIGtleU9ubHksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6VGFz
a1R5cGU+KHRhc2tUeXBlKSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxs
YmFja3MpKSk7CiB9CiAKIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpjb3VudChsb25nIGxvbmcg
dHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGxvbmcgbG9uZyBpbmRleElk
LCBjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwCmluZGV4IDg3MWM2YjgwYzBiY2U1ZDk5MjcwNTBmMWQxMzllY2Y4OGI0
ODQyMGQuLmU2M2NlMmE4NmIyYTkzZDZiMjJlNmY4MDQzOGJmZDc4MmJkOTExYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVz
dC5jcHAKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrcy5o
IgogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQkZha2VC
YWNraW5nU3RvcmUuaCIKLSNpbmNsdWRlICJJREJLZXkuaCIKLSNpbmNsdWRlICJJbmRleGVkREIu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggOTc0MzJiMjBkMDM2
MjA3ZWE1ZjRmYjQzOWNkMDdiOGRhYWY4NGJiMi4uNDViOWUyYmIyYmZhY2ExZjBhYzExOWI3ZjU1
ZTJhNWM0MWIxNDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0yNCwxNiArMjQsMTMgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgotCiAjaW5j
bHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZEltcGwuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJ
bXBsLmgiCiAjaW5jbHVkZSAiSURCRmFrZUJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwuaCIKLSNpbmNsdWRlICJJbmRleGVkREIuaCIKICNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKQEAgLTE1NCw3ICsxNTEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGNvbW1pdChpbnQ2NF90IHRyYW5zYWN0aW9uSWQpIE9WRVJSSURFIHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG9wZW5DdXJzb3IoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEluZGV4ZWRE
Qjo6Q3Vyc29yRGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJv
b2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBnZXQoaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHV0KGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8
SW5kZXhLZXlzPiYpIE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJGYWtlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaAppbmRleCBlZWZjNjQ4YWQyM2E0NWMyY2M4N2My
NGNiY2IzNDIxNjIxZDc0ZTY5Li4zZWQ3MjRiYjRlYjBhMmJiZjg4YjY0NjFhNTJmZjQyN2I2OGVi
YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkZha2VCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkZha2VCYWNr
aW5nU3RvcmUuaApAQCAtNTEsMTAgKzUxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5Jiwg
Y29uc3QgUmVjb3JkSWRlbnRpZmllciYpIE9WRVJSSURFIHsgfQogCi0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29yKFRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdl
KiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NSZWZQ
dHI8Q3Vyc29yPigpOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVj
dFN0b3JlQ3Vyc29yKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rp
b24pIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NSZWZQdHI8Q3Vyc29yPigpOyB9Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4S2V5Q3Vyc29yKFRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgT1ZFUlJJREUg
eyByZXR1cm4gUGFzc1JlZlB0cjxDdXJzb3I+KCk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Q3Vyc29yPiBvcGVuSW5kZXhDdXJzb3IoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5n
ZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERSB7IHJldHVybiBQYXNzUmVm
UHRyPEN1cnNvcj4oKTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5PYmpl
Y3RTdG9yZUtleUN1cnNvcihUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSosIElEQkN1cnNvcjo6RGlyZWN0aW9u
KSBPVkVSUklERSB7IHJldHVybiBQYXNzUmVmUHRyPEN1cnNvcj4oKTsgfQorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1cnNvcihUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXlSYW5n
ZSosIElEQkN1cnNvcjo6RGlyZWN0aW9uKSBPVkVSUklERSB7IHJldHVybiBQYXNzUmVmUHRyPEN1
cnNvcj4oKTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5JbmRleEtleUN1
cnNvcihUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJl
Y3Rpb24pIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NSZWZQdHI8Q3Vyc29yPigpOyB9CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKFRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgSURCS2V5UmFuZ2UqLCBJREJDdXJzb3I6OkRpcmVjdGlvbikgT1ZFUlJJREUgeyByZXR1
cm4gUGFzc1JlZlB0cjxDdXJzb3I+KCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>