<?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>134794</bug_id>
          
          <creation_ts>2014-07-09 20:49:14 -0700</creation_ts>
          <short_desc>Migrate the usage of DEPRECATED_DEFINE_STATIC_LOCAL(T, name, args) to &quot;static NeverDestroyed&lt;T&gt; name(args)&quot;</short_desc>
          <delta_ts>2017-07-21 20:22:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>130185</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vivek Galatage">vivekg</reporter>
          <assigned_to name="Vivek Galatage">vivekg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021543</commentid>
    <comment_count>0</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-09 20:49:14 -0700</bug_when>
    <thetext>Splitting DEFINE_STATIC_LOCAL into two for better readability of the code. In this, one is without 
any arguments whereas the other macro takes argument as macro param. This CL makes these calls 
more explicit. 

The macros DEFINE_STATIC_LOCAL and DEFINE_STATIC_LOCAL_WITH_ARG are defined in Source/wtf/StdLibExtras.h 

The following commands are executed in order to change this: 
git ls-files | xargs sed -i &apos;s/DEFINE_STATIC_LOCAL\((.*\)\(, ()\)/DEFINE_STATIC_LOCAL_WITHOUT_ARG\1/g&apos; 
git ls-files | xargs sed -i &apos;s/DEFINE_STATIC_LOCAL(/DEFINE_STATIC_LOCAL_WITH_ARG(/g&apos; 
git ls-files | xargs sed -i &apos;s/DEFINE_STATIC_LOCAL_WITHOUT_ARG(/DEFINE_STATIC_LOCAL(/g&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021544</commentid>
    <comment_count>1</comment_count>
      <attachid>234686</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-09 20:57:09 -0700</bug_when>
    <thetext>Created attachment 234686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021545</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-09 20:59:08 -0700</bug_when>
    <thetext>Attachment 234686 did not pass style-queue:


ERROR: Source/WTF/wtf/StdLibExtras.h:57:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 295 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021546</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-07-09 21:08:45 -0700</bug_when>
    <thetext>Instead of doing this, we should probably be moving code over to WTF::NeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021547</commentid>
    <comment_count>4</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-09 21:13:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Instead of doing this, we should probably be moving code over to WTF::NeverDestroyed.

Yeah sure, would give it a try. Thanks for reviewing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021576</commentid>
    <comment_count>5</comment_count>
      <attachid>234692</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-10 00:02:54 -0700</bug_when>
    <thetext>Created attachment 234692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021578</commentid>
    <comment_count>6</comment_count>
      <attachid>234693</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-10 00:15:40 -0700</bug_when>
    <thetext>Created attachment 234693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021580</commentid>
    <comment_count>7</comment_count>
      <attachid>234694</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-10 00:29:26 -0700</bug_when>
    <thetext>Created attachment 234694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021581</commentid>
    <comment_count>8</comment_count>
      <attachid>234695</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-07-10 01:35:25 -0700</bug_when>
    <thetext>Created attachment 234695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030035</commentid>
    <comment_count>9</comment_count>
      <attachid>234695</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-19 09:13:13 -0700</bug_when>
    <thetext>Comment on attachment 234695
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=234695&amp;action=review

Great idea, but this giant patch doesn’t build. How about a sequence of smaller patches to achieve the same thing? I’d like to carefully review each one to spot mistakes.

For String and AtomicString, it might be better to get rid of some of these rather than converting to NeverDestroyed; I think we’re overdoing the global AtomicString pattern.

A good idea for as first patch is something that only deals with clearly-correct cases such as maps and mutexes, and sticks to a manageable smaller list. Then we can tackle the trickier cases like strings. Also need a patch that successfully applies and compiles.

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h:86
&gt; +    static NeverDestroyed&lt;JSTestActiveDOMObjectOwner&gt; jsTestActiveDOMObjectOwner;

These are generated files, so they should not be changed manually. Instead we need to change the script and regenerate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331260</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-07-21 20:22:22 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 130185 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234686</attachid>
            <date>2014-07-09 20:57:09 -0700</date>
            <delta_ts>2014-07-10 00:02:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134794-20140710092655.patch</filename>
            <type>text/plain</type>
            <size>381485</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NzQ2NTc3OTJjZmIxZjBhYzhiNzM1ZWE5MjM1NjU4OGI4MmIzNDc2Li4zYjI1YjQyNmI0OWU4Y2Q0
ZjMzNDViYzA0Mzk2YTBiZjNhMmU2YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBTcGxpdCBERUZJTkVfU1RBVElDX0xPQ0FMIGludG8gdHdvOiBvbmUg
d2l0aG91dCBhbnkgYXJndW1lbnQgYW5kIHRoZSBvdGhlciB3aXRoIGFyZ3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSVdyYXBw
ZXJPYmplY3QubW06CisgICAgICAgIChqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcik6Cisg
ICAgICAgICogQVBJL0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAobWFuYWdlZFZhbHVlSGFu
ZGxlT3duZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Om9iamVjdEdyb3VwRm9yQnJlYWtwb2ludEFj
dGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3Rv
clN0cmluZ3MucHk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHA6CisgICAgICAg
IChKU0M6OnN0YWNrU3RhdGlzdGljc011dGV4KToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFs
bG9jYXRvcnMpOgorCiAyMDE0LTA3LTA5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXaW5dIFJlbW92ZSB1c2VzIG9mICdiYXNoJyBpbiBidWlsZCBzeXN0
ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZjBhZTk3N2FlNjBjOWFmZjI2ZjljZjdlOGYwMWRjMzE2Y2IzNzJjYS4uY2MyZTJi
MGNiN2MxN2EzZTQxNzVhYWMxZGRjODRkNWRlZjdhZWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5nLmNvbT4KKworICAg
ICAgICBTcGxpdCBERUZJTkVfU1RBVElDX0xPQ0FMIGludG8gdHdvOiBvbmUgd2l0aG91dCBhbnkg
YXJndW1lbnQgYW5kIHRoZSBvdGhlciB3aXRoIGFyZ3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9SdW5Mb29wLmNwcDoKKyAgICAgICAg
KFdURjo6UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOgor
ICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OnRocmVh
ZE1hcE11dGV4KToKKyAgICAgICAgKFdURjo6dGhyZWFkTWFwKToKKyAgICAgICAgKiB3dGYvZWZs
L01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjpwaXBlT2JqZWN0KToKKwogMjAxNC0w
Ny0wOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2lu
XSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMTcwOTMwLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM1OWFi
N2ZjNzU4MTk3ZmIwMmRiZDExNmE4MTUyMzdkNDc3Y2Q0MTEuLjBkZmQzZTY1NDIxMGZjOTRkOWY3
YWFkOGMzYzM5MmQxYjBlMWU4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NTYgQEAKKzIwMTQt
MDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
U3BsaXQgREVGSU5FX1NUQVRJQ19MT0NBTCBpbnRvIHR3bzogb25lIHdpdGhvdXQgYW55IGFyZ3Vt
ZW50IGFuZCB0aGUgb3RoZXIgd2l0aCBhcmd1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZSByZWZhY3RvcmluZywgbm8gdGVzdHMgcmVxdWly
ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdGb3JQbGF5YmFja1Rh
cmdldEF2YWlsYWJpbGl0eSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpyZWFkeVN0
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5KToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlwZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNv
dXJjZTo6b3BlbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmNsb3Nl
ZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmVuZGVkS2V5d29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IpOgor
ICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRV
dGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRVdGlsczo6aXNQcm90b2NvbEhhbmRs
ZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpxdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dDo6c3VwcG9ydHNNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6c3VwcG9ydHNGaWxlRXh0ZW5zaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhl
c2lzOjpib3VuZGFyeUV2ZW50T2NjdXJyZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnY0NvbnRyb2xsZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjc3NQcm9wZXJ0eUlERm9ySlNDU1NQcm9wZXJ0eU5hbWUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpwbGF0Zm9ybSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cG9ydCk6CisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01JbnRlcm5hbC5tbToKKyAgICAgICAgKHdyYXBwZXJDYWNoZUxvY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjp3
cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBw
ZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRl
dGVybWluaXN0aWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAoV2ViQ29y
ZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93
bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25l
cik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0
YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpnbG9iYWxFeGNlcHRpb25TdHJpbmcp
OgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udFNlbGVjdG9yOjpyZXNvbHZlc0ZhbWlseUZvcik6CisgICAgICAgICogY3NzL01lZGlh
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRSZXNvbHV0aW9uV2FybmluZ01lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZUF1dGhvclN0eWxlU2hlZXQpOgor
ICAgICAgICAqIGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmFjY3VtdWxhdG9yTWFwKToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRTVkcxMEZlYXR1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6aXNTdXBwb3J0ZWRTVkcxMUZlYXR1cmUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVhZHlTdGF0ZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6d2Via2l0UmVn
aW9uT3ZlcnNldCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2spOgorICAg
ICAgICAqIGRvbS9FdmVudExpc3RlbmVyTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2
ZUl0ZXJhdG9yQ291bnRNdXRleCk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAg
ICogZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1Zh
bGlkQ1NTQ29udGVudFR5cGUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OnN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTXV0YXRp
b25SZWNvcmQuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmV2ZW50VGFyZ2V0RGF0YU1hcCk6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cHNldWRvRWxlbWVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMpOgorICAgICAgICAq
IGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1YWxpZmllZE5hbWVD
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpudWxsUU5hbWUpOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTGVnYWN5U3VwcG9ydGVkSmF2YVNj
cmlwdExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVz
ZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTcGFuQ2xhc3NTdHJpbmcp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW50
ZXJjaGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4pOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQnJlYWtpbmdTcGFjZVN0cmluZyk6CisgICAg
ICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3Vw
QWNjdW11bGF0b3I6OnN0eWxlTm9kZUNsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZU1hcmt1cEludGVybmFsKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSk6CisgICAgICAgICogaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZSk6CisgICAgICAgICogaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdl
KToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRFbWFpbEFkZHJlc3MpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpVcGxvYWRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1TdGF0ZVNp
Z25hdHVyZSk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyb290RWRpdGFibGVFbGVtZW50TWFwKToKKyAgICAgICAgKiBodG1sL0hUTUxC
dXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCdXR0b25FbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnN1bW1hcnlRdWVyeVNlbGVjdG9yKToKKyAgICAgICAgKiBodG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0
RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZU93bmVy
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkaW5nRGlzYWJsZXI6OmRp
c2FibGVkU3VidHJlZVJvb3RzKToKKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxpbmtMb2FkRXZlbnRTZW5kZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkb2N1bWVudFRvRWxlbWVudFNldE1hcCk6CisgICAgICAg
ICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlY29n
bml6ZWRUYWdOYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToK
KyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAqIGh0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJlZFBsdWdpblJl
cGxhY2VtZW50cyk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRpdGxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzdWJ0aXRs
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFydE9m
U25hcHNob3RPdmVybGF5KToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
dHlsZUxvYWRFdmVudFNlbmRlcik6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9s
VHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpkaXJlY3Rpb25TdHJpbmcpOgorICAgICAgICAqIGh0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OmFwcGVuZEZv
cm1EYXRhKToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZU5hbWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZU5hbWVzOjpidXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmNoZWNrYm94KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpj
b2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmVtYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpmaWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpoaWRkZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZU5hbWVzOjptb250aCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpwYXNzd29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmFkaW8pOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OnJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6c2VhcmNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpzdWJtaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6dGltZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6dXJsKToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZU5hbWVzOjp3ZWVrKToKKyAgICAgICAgKiBodG1sL01lZGlhQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChwbGF5YmFja1N0YXRlV2FpdGluZyk6CisgICAgICAgIChwbGF5YmFj
a1N0YXRlUGxheWluZyk6CisgICAgICAgIChwbGF5YmFja1N0YXRlRW5kZWQpOgorICAgICAgICAq
IGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1dFR5
cGU6OmNyZWF0ZVN0ZXBSYW5nZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UpOgor
ICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFu
Z2VJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZSk6CisgICAgICAgICogaHRtbC9TdGVwUmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RlcFJhbmdlOjphY2NlcHRhYmxlRXJyb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RlcFJhbmdlOjphbGlnblZhbHVlRm9yU3RlcCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdGVwUmFuZ2U6OnN0ZXBNaXNtYXRjaCk6CisgICAgICAgICogaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBS
YW5nZSk6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlZWtJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZSk6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0
b3I6OmVyYXNlRGFuZ2Vyb3VzQXR0cmlidXRlc0lmSW5qZWN0ZWQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldGFp
bHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRv
SWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRv
SWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xp
c3RFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnRTaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRNZWRpYUNvbnRyb2xDdXJyZW50VGlt
ZURpc3BsYXlFbGVtZW50U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6OnNoYWRvd1BzZXVkb0lkKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6Ok1ldGVySW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1ldGVyVmFsdWVFbGVtZW50Ojp2YWx1ZVBzZXVkb0lkKToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRv
SWQpOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Zb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrOjptYWluRGVzY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFjazo6dHJhbnNsYXRpb25LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2s6OmNvbW1lbnRhcnlLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrOjpkZXNjcmlwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFjazo6Y2hhcHRlcnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
azo6bWV0YWRhdGFLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Zm9yY2Vk
S2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmRpc2FibGVkS2V5d29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmhpZGRlbktleXdvcmQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrOjpzaG93aW5nS2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlU2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnN0YXJ0S2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjptaWRkbGVLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6bGVm
dEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6cmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdl
YkNvcmU6OnZlcnRpY2FsR3Jvd2luZ0xlZnRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OnZl
cnRpY2FsR3Jvd2luZ1JpZ2h0S2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWVCb3g6
OnZ0dEN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6ZGV0
ZXJtaW5lVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6Om1hcmtGdXR1
cmVBbmRQYXN0Tm9kZXMpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUUmVnaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlZU
VFJlZ2lvbjo6c2V0U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6cGFyc2VT
ZXR0aW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTY3JvbGxpbmdDbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRl
eHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlZU
VFJlZ2lvbjo6dGV4dFRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjphbHRl
cm5hdGl2ZUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6Y2FwdGlvbnNL
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNpZ25LZXl3b3JkKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRU
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub2RlVHlwZVRvVGFnTmFtZSk6CisgICAg
ICAgICogaHRtbC90cmFjay9XZWJWVFRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC90cmFjay9X
ZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb2xsZWN0
TWV0YWRhdGFIZWFkZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlUHNldWRvQ2xhc3NNYXNrKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50Ojpzb3VyY2VNYXBVUkxGb3JSZXNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5
bGU6OnNldFByb3BlcnR5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6
bmV3TGluZUFuZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVj
dG9yc0Zyb21Tb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9y
U2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBsb2FkZXIvVGV4
dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6Y29y
c1BvbGljeVByZXZlbnRlZExvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Ojppbml0aWF0b3JOYW1lKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUpOgor
ICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJY29uRGF0YWJhc2U6OmRlZmF1bHREYXRhYmFzZUZpbGVuYW1lKToKKyAgICAgICAgKiBwYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6dXBkYXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKToKKyAgICAgICAg
KiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0JhY2tncm91bmRDU1Mp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRp
b25zVGV4dEVkZ2VDU1MpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVS
THMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVFdmVu
dEhhbmRsZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U2NyaXB0Tm9uY2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRVbnN1cHBv
cnRlZERpcmVjdGl2ZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6d2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJD
b3JlOjp3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRy
YWdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnQpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvckJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6cGxhdGZvcm0pOgorICAgICAgICAqIHBhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlVmlzaWJpbGl0
eVN0YXRlU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHA6
CisgICAgICAgICogcGFnZS9TZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
cmlnaW5BY2Nlc3NNYXApOgorICAgICAgICAqIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UpOgorICAg
ICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNoYWRvd0ZvckJsZW5kaW5nKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0
aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL0N1cnNv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludGVyQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyb3NzQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bW92ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0aWNhbFRleHRD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y2VsbEN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjphbGlhc0N1cnNvcik6Cisg
ICAgICAgIChXZWJDb3JlOjp6b29tSW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6em9vbU91
dEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5Q3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vbmVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJvZ3Jlc3NDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6bm9Ecm9wQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdEFsbG93
ZWRDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6aUJlYW1DdXJzb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6d2FpdEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpoZWxwQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmVhc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhS
ZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhFYXN0UmVzaXplQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6Om5vcnRoV2VzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJD
b3JlOjpzb3V0aFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpzb3V0aEVhc3RSZXNp
emVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhXZXN0UmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6Ondlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9y
dGhTb3V0aFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjplYXN0V2VzdFJlc2l6ZUN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3J0aEVhc3RTb3V0aFdlc3RSZXNpemVDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhXZXN0U291dGhFYXN0UmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbHVtblJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpy
b3dSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bWlkZGxlUGFubmluZ0N1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjplYXN0UGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpub3J0aFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhFYXN0UGFubmlu
Z0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3J0aFdlc3RQYW5uaW5nQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNvdXRoUGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpz
b3V0aEVhc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OnNvdXRoV2VzdFBhbm5p
bmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6d2VzdFBhbm5pbmdDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Z3JhYkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpncmFiYmluZ0N1cnNv
cik6CisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b2JzZXJ2ZXJNYXApOgorICAgICAgICAoV2ViQ29yZTo6cHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFNSU1F
VHlwZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0TUlNRVR5cGUpOgorICAgICAgICAq
IHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwbGF5SXNvbGF0ZWRVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnNlY3Vy
ZVNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RG9jdW1lbnRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OnNjaGVtZXNGb3JiaWRkZW5Gcm9tRG9tYWluUmVsYXhhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
c2NoZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDT1JTRW5hYmxlZFNjaGVtZXMpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcyk6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWU6OnRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YmxhbmtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9ydEZvclBy
b3RvY29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hS
VEZFbGV2YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F0ZW5hdGVkSW1wdWxz
ZVJlc3BvbnNlc0ZvclN1YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGlu
YXRpb25JT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXVkaW9EZXN0aW5hdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRFY29yZUN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpmb250R2x5cGhzQ2FjaGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHQ6
OnNoYXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZUNvbnRleHRMaXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcGFpbnRSZWN0TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6dHJhbnNmb3Jt
Q29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aW5zdGFsbGVkTWVkaWFFbmdpbmVzKToKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBs
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OmNvZGVjcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpz
aGFyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDTVRp
bWVSYW5nZVN0YXJ0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNNVGltZVJhbmdlRHVyYXRpb25L
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q0FDRkNvbnRleHROZWVkc0ZsdXNoTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpwbGF5ZXJUb1ByaXZhdGVNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6bWltZVR5cGVDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJDaGFuZ2VzRmx1c2hlcjo6c2hhcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZVNvdXJjZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnJl
ZEV4dGVuc2lvbkZvckltYWdlU291cmNlVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBo
YTo6ZWZmZWN0TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmVmZmVjdE5h
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVDYWNoZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmhhcmZCdXp6RmFjZUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hl
OjpzaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVD
b21tb25UeXBlc0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVNb2Rlcm5UeXBlc0NhY2hl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaXhlZFNpemVGb250RGF0YUtleVRyYWl0czo6ZW1wdHlWYWx1ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNhbXBsZUdhbWVwYWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1Ry
YW5zbGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0b3I6Omdl
dEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmRIZWxwZXI6OmRl
ZmF1bHRQYXN0ZWJvYXJkSGVscGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVkaXJlY3Rl
ZFhDb21wb3NpdGVXaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0V2luZG93SGFzaE1h
cCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzdHlsZUNvbnRleHRNYXApOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9XaWRn
ZXRSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVkdWxlU2NyYXRj
aEJ1ZmZlclB1cmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1RpbGVDb250
cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aWxlQ29udHJv
bGxlck1lbW9yeUhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5tbToKKyAgICAgICAgKCtbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdl
cl0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Ojp1cGRhdGVGb3JFdmVudE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0tDb250
ZW50T2JzZXJ2YXRpb24uY3BwOgorICAgICAgICAoV2ViVGhyZWFkR2V0T2JzZXJ2ZWRDb250ZW50
TW9kaWZpZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9udEZyb21OU0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpu
YXRpdmVUaGVtZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6cGxhdGZvcm1UaGVtZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RocmVh
ZENoZWNrLm1tOgorICAgICAgICAoV2ViQ29yZVJlcG9ydFRocmVhZFZpb2xhdGlvbik6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnN0YXRlcyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyOjpwbGF0Zm9y
bUNlbnRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURl
dmljZU1hbmFnZXIubW06CisgICAgICAgIChXZWJDb3JlOjpjYXB0dXJlRGV2aWNlTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaGFyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6dmFsaWRDb25zdHJhaW50TmFtZXMp
OgorICAgICAgICAoV2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6dmFsaWRGYWNpbmdN
b2Rlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2Vu
dGVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyOjpwbGF0Zm9y
bUNlbnRlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bW9ja1NvdXJjZU1hcCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OnJlZ2lzdGVyTW9ja01lZGlhU3RyZWFtQ2VudGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1RyYWNrQm94Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tJ
bml0aWFsaXphdGlvbkJveDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrU2FtcGxlQm94
Ojp0eXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBs
YXllck1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6Om9yaWdpbnNXaXRoQ3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6cGF0aFRv
RGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVhTU1Byb3RlY3Rpb25IZWFk
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1
Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rv
ck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91
c0xvYWRlck1hcCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVI
b3N0cyk6CisgICAgICAgIChXZWJDb3JlOjpjbGllbnRDZXJ0cyk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2d0
ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWRlbnRp
YWxCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVK
YXJTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRDb29raWVKYXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNsaWVudENlcnRpZmljYXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93
aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG93bmxvYWRCdW5k
bGU6OmZpbGVFeHRlbnNpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5n
S2V5ZWRNUlVDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXRvbWljU3RyaW5nS2V5ZWRNUlVD
YWNoZTo6Z2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGlu
Z0RlZmF1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TmFtZVRvQ29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpsb2NhbGVUb1NjcmlwdENvZGVGb3JGb250U2VsZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXBhcmVBbmRTd2FwTm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvcik6CisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNmTG9jYWxlQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJy
ZWFrSXRlcmF0b3JXY2hhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3b3JkQnJlYWtJdGVyYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZW50ZW5jZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC93aW4vTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRMb2NhbGVOYW1l
VG9MQ0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXds
aW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVuZGxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9yYWdlRGlyZWN0
b3J5KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBlcnNpc3RlbnRQbHVnaW5NZXRhZGF0YUNhY2hlUGF0aCk6CisgICAgICAgICogcGx1
Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRpbnVhdGlvbk91dGxpbmVU
YWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JUZXh0T3ZlcmZs
b3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvdW50ZXJNYXBz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5l
Q2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbnB1dFNwZWVjaDo6cGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0
dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1c3RvbUZvY3VzUmlu
Z0NvbG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRIaWVyYXJjaHlV
cGRhdGVzU3VzcGVuc2lvblNjb3BlOjp3aWRnZXROZXdQYXJlbnRNYXApOgorICAgICAgICAqIHJl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1JbnB1dFRh
Z3MpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVz
L1NoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNr
U2l6ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6bWluVHJhY2tCcmVhZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1heFRyYWNrQnJlYWR0aCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpoeXBoZW5TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1BhdGg6Onplcm9MZW5ndGhMaW5lY2FwUGF0
aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6bm9uU2NhbGluZ1N0cm9rZVBhdGgpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjdXJyZW50Q29udGVudFRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1Jlc291cmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGlwcGVyRmlsdGVyTWFz
a2VyVGFncyk6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJUYWdzKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxBbmRTdHJva2VUYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYWluYWJsZVJlc291
cmNlVGFncyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDaHVua0J1aWxkZXI6OnRyYW5zZm9ybWF0aW9u
Rm9yVGV4dEJveCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXApOgorICAgICAgICAq
IHN0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVTdG9y
YWdlVGhyZWFkcyk6CisgICAgICAgICogc3ZnL1NWR0FuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuZ2xlOjp2YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphdHRyaWJ1dGVWYWx1ZUlzQ3VycmVu
dENvbG9yKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUpOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0aW9uRWxlbWVudDo6aXNBZGRpdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OmluaGVyaXRz
RnJvbVByb3BlcnR5KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5l
bFVuaXRMZW5ndGhYSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlclhJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlm
aWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExl
bmd0aFhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZH
RkVEcm9wU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFk
b3dFbGVtZW50OjpzdGREZXZpYXRpb25YSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAg
ICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50
aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1hJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1lJZGVudGlm
aWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0
TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5WElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVlJZGVudGlmaWVyKToKKyAg
ICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNYSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NW
R0dseXBoTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaE1hcDo6c3ZnR2x5cGhGb3JH
bHlwaCk6CisgICAgICAgICogc3ZnL1NWR0xhbmdTcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMYW5nU3BhY2U6OnhtbHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFj
ZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3JpZW50VHlwZUlk
ZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3JpZW50QW5n
bGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNo
cm9uaXplT3JpZW50VHlwZSk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFN0eWxlVHlwZSk6CisgICAgICAgICog
c3ZnL1NWR1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1l
bnQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSk6Cisg
ICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OnRyYW5zZm9ybVR5cGVQcmVmaXhGb3JQYXJzaW5nKToKKyAgICAgICAg
KiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnZp
ZXdCb3hJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwcmVzZXJ2
ZUFzcGVjdFJhdGlvSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6
dHJhbnNmb3JtSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1Zh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6ZmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTTUlMRWxlbWVudDo6cmVwZWF0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVs
ZW1lbnQ6Om5vdGlmeURlcGVuZGVudHNJbnRlcnZhbENoYW5nZWQpOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaDoKKwogMjAxNC0wNy0wOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBy
MTcwNDEzIGFuZCByMTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmNjNmM4NWQwZjc0NDNlN2E3
YThhNDE4ZjIwMGIyMzhmZTU3ZDFhYS4uMjAzMjI3NzQwZjk3YThiYzQzODQzZDkxZGViNzMwZTU3
NDZjMmI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTA5ICBW
aXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwbGl0IERF
RklORV9TVEFUSUNfTE9DQUwgaW50byB0d286IG9uZSB3aXRob3V0IGFueSBhcmd1bWVudCBhbmQg
dGhlIG90aGVyIHdpdGggYXJndW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKEVtb2ppRmFsbGJhY2tGb250U2VsZWN0b3I6OmdldEZhbGxiYWNrRm9udERhdGEpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tOgorICAg
ICAgICAoV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jayk6CisKIDIwMTQtMDctMDMgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXVEY6Om1vdmUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGRlOTY2NjFhZDQxZTBlZTNiYjljMDQ3OTQwMzhlZGM5OGY1
NDk4MDUuLjg3MmU1OTZjYmE2Nzc0MDE2YmI3NGQ0MjM5OTczMTQ5YWMzYTYwM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2
aXZlay52Z0BzYW1zdW5nLmNvbT4KKworICAgICAgICBTcGxpdCBERUZJTkVfU1RBVElDX0xPQ0FM
IGludG8gdHdvOiBvbmUgd2l0aG91dCBhbnkgYXJndW1lbnQgYW5kIHRoZSBvdGhlciB3aXRoIGFy
Z3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tOgorICAgICAgICAoYmFja0ZvcndhcmRMaXN0
cyk6CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKGhpc3Rv
cnlJdGVtV3JhcHBlcnMpOgorICAgICAgICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1t
OgorICAgICAgICAoK1tOU1Bhc3RlYm9hcmQgX3dlYl93cml0YWJsZVR5cGVzRm9yVVJMXSk6Cisg
ICAgICAgIChfd3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aG91dEFyY2hpdmUpOgorICAgICAgICAo
X3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZlKToKKyAgICAgICAgKiBQbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRz
Y2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5Qcm94
eU1hcCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxFeGNlcHRpb25TdHJpbmcpOgorICAgICAg
ICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OnBy
b3h5Q2xhc3MpOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW06
CisgICAgICAgIChzdHJlYW1zKToKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdl
ci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jayk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tOgorICAgICAg
ICAodXNlck1lZGlhUmVxdWVzdHNNYXApOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tOgorICAgICAgICAocmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgIChhZURlc2NGcm9tSlNWYWx1ZSk6CisKIDIwMTQtMDct
MDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTY3NzcwKTogQ2Fubm90IGxvZ2luIGluIEV2ZXJub3RlIFNhZmFyaSBleHRlbnNpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCAxODhiZjA5MTM0ODQyY2QyMTE0ZmE4NWE5MmM1ZTgwZTY5MDk2ZDlh
Li40MzIwNWRmMDQ2MGNjZmQxMmVlMTY4YjM5NjdkN2YwYjIyN2ZlNmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsu
dmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BsaXQgREVGSU5FX1NUQVRJQ19MT0NBTCBpbnRv
IHR3bzogb25lIHdpdGhvdXQgYW55IGFyZ3VtZW50IGFuZCB0aGUgb3RoZXIgd2l0aCBhcmd1bWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0Nzk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJIaXN0b3J5LmNwcDoKKyAg
ICAgICAgKHNoYXJlZEhpc3RvcnlTdG9yYWdlKToKKyAgICAgICAgKiBXZWJMb2NhbGl6YWJsZVN0
cmluZ3MuY3BwOgorICAgICAgICAobWFpbkJ1bmRsZUxvY1N0cmluZ3MpOgorICAgICAgICAoZnJh
bWV3b3JrTG9jU3RyaW5nc011dGV4KToKKyAgICAgICAgKGZyYW1ld29ya0xvY1N0cmluZ3MpOgor
ICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdl
bnRXaXRoQXBwbGljYXRpb25OYW1lKToKKwogMjAxNC0wNy0wMyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdURjo6bW92ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCmluZGV4IDBlZDhlMWRkN2JhOWJiNDExZjk4YjEyNTZkOTAyNDVhYzkzOWI3NzMuLjkzZjFh
NmE4ZDk1ODA1NTI0NDg2M2UwMjU4ZTgxODMwYzU3ZDdkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BsaXQgREVGSU5FX1NUQVRJQ19MT0NBTCBpbnRvIHR3
bzogb25lIHdpdGhvdXQgYW55IGFyZ3VtZW50IGFuZCB0aGUgb3RoZXIgd2l0aCBhcmd1bWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0Nzk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnRXaW5DRTo6dXNlckFnZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHA6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRTo6aW5pdGlhbGl6ZSk6CisKIDIwMTQtMDMtMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVuYW1lIERFRklORV9TVEFUSUNfTE9D
QUwgdG8gREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjcwNjFl
ZDgwYjI4MDk5YmQwNDI3YWE2ZTc0ZGZjZjEzMDkwOGRmOC4uYTNkY2YzNGU5NmExYmYzYTAzMjM3
OTMzZWM0MmEzMmI5ZWFkYzIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA3
LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNw
bGl0IERFRklORV9TVEFUSUNfTE9DQUwgaW50byB0d286IG9uZSB3aXRob3V0IGFueSBhcmd1bWVu
dCBhbmQgdGhlIG90aGVyIHdpdGggYXJndW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
U1FMaXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0SW5kZXhTdGF0ZW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpnZXRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICog
U2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1
ZXN0KToKKwogMjAxNC0wNy0wOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjE3MDg1OCk6IFNhZmFyaSBmcmVlemVzIHVwb24gbWFraW5n
IGEgc2VhcmNoIG9uIGEgd2Vic2l0ZSAoeWVscC5jb20pLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQppbmRleCA4OTdlOTZmNDRlMGY0MWMzOTFi
YjhkNjYwZWY3MzA3NDBlZmNjMWVkLi4yZGY2ZGI2ZWRmOWVhNjlhOGM4MzNkYjUwYTRhNjM1NmY3
OThiY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBl
ck9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbQpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJP
YmplY3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsIGpzV3JhcHBl
ck9iamVjdEhhbmRsZU93bmVyKTsKICAgICByZXR1cm4gJmpzV3JhcHBlck9iamVjdEhhbmRsZU93
bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdl
ZFZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQpp
bmRleCA5NTNjYjVmYmRhYWMxMzZlNjUxYjI5Y2NmNThlN2Q3NDM5OGZjOTBlLi42MWE2ZTQ1YmZh
MjBhNmRjNDBhMzFhOGI4ZGIwNmRjNDAxYzMxYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiBzdGF0
aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciogbWFuYWdlZFZhbHVlSGFuZGxlT3duZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU01hbmFnZWRWYWx1ZUhhbmRs
ZU93bmVyLCBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIsIGpzTWFuYWdlZFZh
bHVlSGFuZGxlT3duZXIpOwogICAgIHJldHVybiAmanNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAyMzEzMmZjMjBlYWNk
MWJlZTEwZDM0ZTczZjZjMDhhYjljYzgyYWY4Li43NDlhZDYzZGNjOTBmZjE0ZGIyMjBlYmQ5MDYz
NTBlYzIzNzI1NTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNTIs
NyArNTIsNyBAQCBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VP
YmplY3RHcm91cCA9ICJiYWNrdHJhY2UiOwogLy8gY3JlYXRlIG9iamVjdHMgaW4gdGhlIHNhbWUg
Z3JvdXAuCiBzdGF0aWMgU3RyaW5nIG9iamVjdEdyb3VwRm9yQnJlYWtwb2ludEFjdGlvbihjb25z
dCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiBhY3Rpb24pCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb2JqZWN0R3JvdXAsICgiYnJlYWtw
b2ludC1hY3Rpb24tIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJp
bmcsIG9iamVjdEdyb3VwLCAoImJyZWFrcG9pbnQtYWN0aW9uLSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhvYmplY3RHcm91cCwg
U3RyaW5nOjpudW1iZXIoYWN0aW9uLmlkZW50aWZpZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0
b3JTdHJpbmdzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5CmluZGV4IDI3NjM3NDQxNjBiODRmZmQyYzM3
NzU5YTQzZGJkMzNkZjAxNDVhNDQuLmVjZDhhYmQ0MzMwM2IyMTFjN2RjMGJmNDFkNjE3M2FlMmI5
MWUwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkK
QEAgLTcyLDcgKzcyLDcgQEAgYmFja2VuZF9kaXNwYXRjaGVyX2Rpc3BhdGNoX21ldGhvZCA9ICgK
IAogICAgIHR5cGVkZWYgdm9pZCAoJHtkaXNwYXRjaGVyTmFtZX06OipDYWxsSGFuZGxlcikobG9u
ZyBjYWxsSWQsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKTsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4gRGlzcGF0Y2hNYXA7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERpc3BhdGNoTWFwLCBkaXNwYXRjaE1hcCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChEaXNwYXRjaE1hcCwgZGlz
cGF0Y2hNYXApOwogICAgIGlmIChkaXNwYXRjaE1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBNZXRob2RUYWJsZSB7CiAgICAgICAgICAgICBjb25zdCBjaGFyKiBu
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCmlu
ZGV4IGM2YTcwM2NiYzYwMzA3NDQzMmMwYjI4MWVjMjA5MTllZTNiZWM4MTIuLmQ3M2E5MTE2MDVi
ZTI2ZjcwMzE1MTliMTY3NmZhMDAwOTdkZGVlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIHNpemVf
dCBjb21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAogc3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3Rp
Y3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBz
dGF0aWNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgc3RhdGljTXV0ZXgpOwogICAgIHJldHVybiBzdGF0aWNNdXRleDsKIH0gICAgCiAjZW5kaWYg
Ly8gIUVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcAppbmRleCBhY2NmNWZjZjYwYWE3ZTA0NWMxNWI1OTk3YzQ3YTMyYjEw
MTZhYzRiLi41MDQxZTIyZWE2NmM2YmU5OTA4OTdmZGEwZDAxMmE0NzFiZTdmMzZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAg
LTEzNyw3ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxQYWdlUmVzZXJ2YXRpb24sIDE2
PiByZXNlcnZhdGlvbnM7CiAgICAgc3RhdGljIEhhc2hTZXQ8RGVtYW5kRXhlY3V0YWJsZUFsbG9j
YXRvcio+JiBhbGxvY2F0b3JzKCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqPiwgc0FsbG9jYXRv
cnMsICgpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcio+LCBzQWxsb2NhdG9ycyk7CiAgICAgICAgIHJldHVy
biBzQWxsb2NhdG9yczsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxv
b3AuY3BwIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKaW5kZXggODVhZDZkODU4YjQzYmE3
Njk0YzQ4ZWJkNDIxMzQ5NzY2MzBiOTY3Zi4uOTRlYTBhMDEwOWZlNjJmYTY1NWJmODVjMzM1NzJi
NGExZTcwNDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKQogCiBSdW5Mb29wJiBSdW5Mb29wOjpjdXJyZW50KCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZp
YzxSdW5Mb29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwg
cnVuTG9vcEhvbGRlcik7CiAgICAgcmV0dXJuIHJ1bkxvb3BIb2xkZXItPnJ1bkxvb3AoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RG
L3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRleCBjMWY0NWUwNzcxY2M4MTFkNzM1NTMzZGQ1YzFmYWEz
NzQwMDkzNjY0Li4xYmIxOTQ3MjM2NmZmMzRiNGM3YjRmNDZmN2M1YjAxOTJjYjA2MWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9TdGRMaWJFeHRyYXMuaApAQCAtMzksMTEgKzM5LDI3IEBACiAvLyBOZXdseSB3cml0dGVuIGNv
ZGUgc2hvdWxkIHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KICNpZm5kZWYg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBkZWZp
bmVkKF9fQVBQTEVfQ0NfXykgJiYgX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA9PSAw
ICYmIF9fR05VQ19QQVRDSExFVkVMX18gPT0gMQotI2RlZmluZSBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCisjZGVmaW5lIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTCh0eXBlLCBuYW1lKSBcCisgICAgc3RhdGljIHR5cGUqIG5hbWUj
I1B0ciA9IG5ldyB0eXBlKCk7IFwKKyAgICB0eXBlJiBuYW1lID0gKm5hbWUjI1B0cgorI2Vsc2UK
KyNkZWZpbmUgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKHR5cGUsIG5hbWUpIFwKKyAg
ICBzdGF0aWMgdHlwZSYgbmFtZSA9ICpuZXcgdHlwZSgpCisjZW5kaWYKKyNlbmRpZgorCisvLyBU
aGlzIHdhcyB1c2VkIHRvIGRlY2xhcmUgYW5kIGRlZmluZSBhIHN0YXRpYyBsb2NhbCB2YXJpYWJs
ZSAoc3RhdGljIFQ7KSBzbyB0aGF0CisvLyAgaXQgd2FzIGxlYWtlZCBzbyB0aGF0IGl0cyBkZXN0
cnVjdG9ycyB3ZXJlIG5vdCBjYWxsZWQgYXQgZXhpdC4gVXNpbmcgdGhpcworLy8gIG1hY3JvIGFs
c28gYWxsb3dlZCB0byB3b3JrYXJvdW5kIGEgY29tcGlsZXIgYnVnIHByZXNlbnQgaW4gQXBwbGUn
cyB2ZXJzaW9uIG9mIEdDQyA0LjAuMS4KKy8vCisvLyBOZXdseSB3cml0dGVuIGNvZGUgc2hvdWxk
IHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKyNpZm5kZWYgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMCisjaWYgQ09NUElMRVIoR0NDKSAmJiBkZWZpbmVkKF9fQVBQ
TEVfQ0NfXykgJiYgX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA9PSAwICYmIF9fR05V
Q19QQVRDSExFVkVMX18gPT0gMQorI2RlZmluZSBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCiAgICAgc3RhdGljIHR5cGUqIG5h
bWUjI1B0ciA9IG5ldyB0eXBlIGFyZ3VtZW50czsgXAogICAgIHR5cGUmIG5hbWUgPSAqbmFtZSMj
UHRyCiAjZWxzZQotI2RlZmluZSBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwodHlwZSwg
bmFtZSwgYXJndW1lbnRzKSBcCisjZGVmaW5lIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyh0eXBlLCBuYW1lLCBhcmd1bWVudHMpIFwKICAgICBzdGF0aWMgdHlwZSYgbmFt
ZSA9ICpuZXcgdHlwZSBhcmd1bWVudHMKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQdGhyZWFkcy5jcHAKaW5kZXggNjE5MjkxNWNiMWJkMzIzM2IxMjRjMDdiNDM2ZThmMTIzOWQw
OWU5Yy4uMGI2ZTg4OTU3ZDUwZWVhYWU1ODIyNGZhOTIxYThhMjYzNTQ2N2ExZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgdGhyZWFk
V2FzSm9pbmVkKFRocmVhZElkZW50aWZpZXIpOwogCiBzdGF0aWMgTXV0ZXgmIHRocmVhZE1hcE11
dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nKCkKIAogc3RhdGljIFRocmVhZE1hcCYgdGhyZWFkTWFwKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGhyZWFkTWFwLCBtYXAsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGhyZWFkTWFwLCBtYXApOwogICAgIHJldHVy
biBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZs
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCBiZjlkZWI0
N2I2OTVlNmNjMTIwOTBlOGNhODg1N2MyODNmMTU2OGExLi43NzExNDUwMzkyYjNlYzZiNzNkNTlm
ZGM3N2FjMzdhYmM1MjM5MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRo
cmVhZEVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCkBA
IC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgRWZsVW5pcXVlUHRyPEVj
b3JlX1BpcGU+JiBwaXBlT2JqZWN0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+LCBwaXBlT2JqZWN0LCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiwgcGlw
ZU9iamVjdCk7CiAgICAgcmV0dXJuIHBpcGVPYmplY3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAppbmRleCA1MjcwZjJiMTQxNWE2NGYxZmRhM2M1
ZjIzZDNjMWNlYTJjYzRkYTAwLi5mNjk5MGJiZjZiNWY3ZDU5Mzk1YTU5MWEzOTczNmM5NTM1ZDEw
MjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCkBA
IC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgc3RyaW5nRm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFi
bGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
YXZhaWxhYmxlU3RyaW5nLCAoImF2YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBub3RBdmFpbGFibGVTdHJpbmcsICgibm90LWF2YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBhdmFpbGFibGVTdHJpbmcsICgiYXZhaWxhYmxlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIG5vdEF2YWlsYWJsZVN0cmlu
ZywgKCJub3QtYXZhaWxhYmxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogCiAgICAgcmV0dXJuIGF2YWlsYWJsZSA/IGF2YWlsYWJsZVN0cmluZyA6IG5vdEF2YWlsYWJs
ZVN0cmluZzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCmluZGV4IDJlODQ2ZGQ3ZmM4OWNhY2I1NDE2OTg5Y2U3NzBhY2NjMGI0N2FmNWYuLjc0
M2NlZjZhNjZiOGE1ZGY2OGU3MjYwOGZlNTI2NjFjM2RkMzU1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtNTAsMjUgKzUwLDI1IEBA
IFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmQ+IGJhY2tlbmQsIEluCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29y
OjpkaXJlY3Rpb25OZXh0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuZXh0LCAoIm5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0
b21pY1N0cmluZywgbmV4dCwgKCJuZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBuZXh0OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQkN1
cnNvcjo6ZGlyZWN0aW9uTmV4dFVuaXF1ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dHVuaXF1ZSwgKCJuZXh0dW5pcXVlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIG5leHR1bmlxdWUsICgibmV4dHVuaXF1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmV4
dHVuaXF1ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvblBy
ZXYoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHByZXYsICgicHJldiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBw
cmV2LCAoInByZXYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIHByZXY7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rp
b25QcmV2VW5pcXVlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBwcmV2dW5pcXVlLCAoInByZXZ1bmlxdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJwcmV2dW5pcXVlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwcmV2dW5pcXVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmlu
ZGV4IDk2YjBjNmFkNzNhNTYwODEzMGI4ZWZmMmNlMGJlYWU1OTNhODdjMTMuLjUwNDEzZDJjNmM3
NmZmMjBhYzIzMmVjNmNmMzcxZGEwN2QzODA0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xMzIsOCArMTMyLDggQEAgUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCUmVxdWVzdDo6dHJhbnNhY3Rpb24oKSBjb25zdAogY29u
c3QgU3RyaW5nJiBJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBlbmRpbmcsICgicGVu
ZGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkb25lLCAoImRvbmUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgcGVuZGluZywgKCJwZW5kaW5nIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGRvbmUsICgiZG9uZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmIChtX3JlYWR5U3Rh
dGUgPT0gUEVORElORykKICAgICAgICAgcmV0dXJuIHBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0
NWM0MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OC4uYWFiZmUwYzdmZWEwNzRjN2I0ZTBl
NjRhYWExNjU1YzhkYjYwMDg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNjAsMzEgKzYwLDMxIEBAIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1v
ZGVSZWFkT25seSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgcmVhZG9ubHksICgicmVhZG9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KEF0b21pY1N0cmluZywgcmVhZG9ubHksICgicmVhZG9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWRvbmx5OwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgicmVhZHdy
aXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwg
KCJyZWFkd3JpdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIHJlYWR3cml0ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlv
bjo6bW9kZVZlcnNpb25DaGFuZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHZlcnNpb25jaGFuZ2UsICgidmVyc2lvbmNoYW5nZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCB2ZXJzaW9uY2hhbmdlLCAoInZlcnNp
b25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIHZlcnNpb25jaGFuZ2U7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rp
b246Om1vZGVSZWFkT25seUxlZ2FjeSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZG9ubHksICgiMCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lU
SF9BUkcoQXRvbWljU3RyaW5nLCByZWFkb25seSwgKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiByZWFkb25seTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZUxlZ2FjeSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWR3
cml0ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggYTY4OGM1ODZhYjU5MmYyMjI1MTBi
NjFjMmFhZTQ2ODBmZDEyNmI1Yy4uMWRlYTNiMTAzNjk0Y2YzZmU1NTVjMDQ5ZDNkNjY0ZDhkMWE3
ODBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC00NCwxOSArNDQsMTkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjphdXRv
bWF0aWNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBhdXRvbWF0aWMsICgiYXV0b21hdGljIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9tYXRpYywgKCJhdXRvbWF0aWMiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGF1dG9tYXRp
YzsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25s
eUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGZvcmNlZE9uLCAoImZvcmNlZC1vbmx5IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGZvcmNlZE9uLCAoImZvcmNlZC1vbmx5IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBmb3JjZWRPbjsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6YWx3YXlzT25LZXl3
b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBhbHdheXNPbiwgKCJhbHdheXMtb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IEF0b21pY1N0cmluZywgYWx3YXlzT24sICgiYWx3YXlzLW9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBhbHdheXNPbjsKIH0KIApAQCAt
MjAzLDEyICsyMDMsMTIgQEAgU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpleHRlcm5hbERldmlj
ZURpc3BsYXlOYW1lKCkgY29uc3QKIAogU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpleHRlcm5h
bERldmljZVR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIG5vbmUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIG5vbmUsIChBU0NJSUxpdGVyYWwo
Im5vbmUiKSkpOwogICAgIFN0cmluZyB0eXBlID0gbm9uZTsKICAgICAKICNpZiBFTkFCTEUoSU9T
X0FJUlBMQVkpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYWly
cGxheSwgKEFTQ0lJTGl0ZXJhbCgiYWlycGxheSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgdHZvdXQsIChBU0NJSUxpdGVyYWwoInR2b3V0IikpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBhaXJwbGF5
LCAoQVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCB0dm91dCwgKEFTQ0lJTGl0ZXJhbCgidHZvdXQiKSkp
OwogICAgIAogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBtX21lZGlhRWxlbWVudC0+cGxheWVy
KCk7CiAgICAgaWYgKCFwbGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggM2YwMjY1YmMwZTQ4M2E4NTc4ZjE1ODE2
ODQ3ODhjODgxMWJkYjU3ZS4uY2U4YWFmNTAzYTBjYTc0MzEyYTM2ODQ4YjgzOWMzYmY0MGM0NWM3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKQEAgLTkyLDE5ICs5MiwxOSBAQCBNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlKCkK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4s
ICgib3BlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBv
cGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIG9wZW47CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6OmNsb3Nl
ZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IEF0b21pY1N0cmluZywgY2xvc2VkLCAoImNsb3NlZCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2xvc2VkOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhU291cmNlOjplbmRlZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVu
ZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBl
bmRlZDsKIH0KIApAQCAtMzQwLDggKzM0MCw4IEBAIHZvaWQgTWVkaWFTb3VyY2U6OmVuZE9mU3Ry
ZWFtKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiB2b2lk
IE1lZGlhU291cmNlOjpzdHJlYW1FbmRlZFdpdGhFcnJvcihjb25zdCBBdG9taWNTdHJpbmcmIGVy
cm9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXR3b3JrLCAoIm5ldHdvcmsiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVjb2RlLCAoImRlY29kZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBuZXR3b3JrLCAoIm5ldHdvcmsiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgZGVjb2RlLCAoImRl
Y29kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIC8vIDIu
NC43IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS5odG1sI2VuZC1vZi1zdHJlYW0tYWxnb3JpdGhtCiAgICAgLy8g
MS4gQ2hhbmdlIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2
aWdhdG9yQ29udGVudFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9y
Y29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKaW5kZXggMGNmMzRlNzdkNTkz
YjVjMjg3YTE0M2VmZWFhMDIwNzFhZjcwMGJmMS4uNGI5OTc3YWI1Mjg4YjBjNTk4NDBiOTJiNGJm
M2JkY2U4ZWU1YzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0
b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMu
Y3BwCkBAIC0xNDQsOSArMTQ0LDkgQEAgdm9pZCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnJlZ2lz
dGVyUHJvdG9jb2xIYW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdAogI2lmIEVOQUJM
RShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCiBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3Rh
dGVTdHJpbmcoY29uc3QgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVy
c1N0YXRlIHN0YXRlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG5ld0hhbmRsZXIsIChBU0NJSUxpdGVyYWwoIm5ldyIpKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJlZEhhbmRsZXIs
IChBU0NJSUxpdGVyYWwoInJlZ2lzdGVyZWQiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgi
ZGVjbGluZWQiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBTdHJpbmcsIG5ld0hhbmRsZXIsIChBU0NJSUxpdGVyYWwoIm5ldyIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgcmVn
aXN0ZXJlZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoInJlZ2lzdGVyZWQiKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIGRlY2xpbmVk
SGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgiZGVjbGluZWQiKSkpOwogCiAgICAgc3dpdGNoIChzdGF0
ZSkgewogICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVy
c05ldzoKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3Rh
dGVTdHJpbmcoY29uc3QgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0bwogCiBTdHJp
bmcgTmF2aWdhdG9yQ29udGVudFV0aWxzOjppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoTmF2
aWdhdG9yKiBuYXZpZ2F0b3IsIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIHVy
bCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgZGVjbGluZWQsICgiZGVjbGluZWQiKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgZGVjbGluZWQsICgi
ZGVjbGluZWQiKSk7CiAKICAgICBpZiAoIW5hdmlnYXRvci0+ZnJhbWUoKSkKICAgICAgICAgcmV0
dXJuIGRlY2xpbmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
bHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IGViM2MyNzU2MjkzMWRk
NWFlMDI3YmQ5NDM5ZmI4YzIxODZhZmExMmUuLjc0NTBmMDQ4MTljZGQxYWEyNzI1YmYyOGE2ZTM1
MDJhMWE3NTRjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTY5LDcgKzY5LDcgQEAg
c3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRh
ZGF0YUl0ZW1UeXBlICosIEpTQ29udGUKIAogc3RhdGljIFN0cmluZyBxdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudFNjcmlwdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgc2NyaXB0LCAoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0LCBz
aXplb2YoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0KSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIHNjcmlwdCwgKFF1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlwdCwgc2l6ZW9mKFF1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50SmF2YVNjcmlwdCkpKTsKICAgICByZXR1cm4gc2NyaXB0OwogfQogCkBAIC05Miw3
ICs5Miw3IEBAIGJvb2wgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6OnN1cHBvcnRzTWltZVR5
cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICAgICAgImF1ZGlvL3gtbTRyIiwgImF1ZGlv
L3gtbXAzIiwgImF1ZGlvL3gtbXBlZyIsICJhdWRpby94LW1wZWczIiwgImF1ZGlvL3gtbXBlZ3Vy
bCIsICJhdWRpby94LXNjcGxzIiwgImF1ZGlvL3gtd2F2IiwKICAgICAgICAgInZpZGVvLzNncHAi
LCAidmlkZW8vM2dwcDIiLCAidmlkZW8vbXA0IiwgInZpZGVvL3F1aWNrdGltZSIsICJ2aWRlby94
LW00diIKICAgICB9OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFN0cmluZz4sIHR5cGVIYXNoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8U3RyaW5nPiwgdHlwZUhhc2gpOwogICAgIGlmICghdHlwZUhhc2guc2l6ZSgp
KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSCh0eXBl
cyk7ICsraSkKICAgICAgICAgICAgIHR5cGVIYXNoLmFkZCh0eXBlc1tpXSk7CkBAIC0xMDgsNyAr
MTA4LDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6c3VwcG9ydHNGaWxlRXh0
ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQogICAgICAgICAibTN1OCIsICJtNGEiLCAi
bTRiIiwgIm00cCIsICJtNHIiLCAibTR2IiwgIm1vdiIsICJtcDMiLCAibXAzIiwgIm1wNCIsICJt
cGVnIiwgIm1wZyIsICJtcXYiLCAicGxzIiwgInF0IiwKICAgICAgICAgInNuZCIsICJzd2EiLCAi
dHMiLCAidWx3IiwgIndhdiIKICAgICB9OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFN0cmluZz4sIGV4dGVuc2lvbkhhc2gsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBleHRlbnNpb25IYXNoKTsKICAg
ICBpZiAoIWV4dGVuc2lvbkhhc2guc2l6ZSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgV1RGX0FSUkFZX0xFTkdUSChleHRlbnNpb25zKTsgKytpKQogICAgICAgICAgICAgZXh0
ZW5zaW9uSGFzaC5hZGQoZXh0ZW5zaW9uc1tpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAppbmRleCBiNmJiM2NmNzFhOGVkOWRmY2Y4
MDkyYTgwMTE3YjBiMmZkZTk4MDEwLi5hNjA1MWNjZWRjMDUxZDZiODY4MGUzMzY5MmZjMGNiNGNh
YWU1MDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpcy5jcHAKQEAgLTE5NCw4ICsxOTQsOCBAQCB2b2lkIFNwZWVjaFN5bnRoZXNpczo6aGFu
ZGxlU3BlYWtpbmdDb21wbGV0ZWQoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuYwog
ICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZChQYXNzUmVm
UHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiB1dHRlcmFuY2UsIFNwZWVjaEJv
dW5kYXJ5IGJvdW5kYXJ5LCB1bnNpZ25lZCBjaGFySW5kZXgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgd29yZEJvdW5kYXJ5U3RyaW5nLCAoQVND
SUlMaXRlcmFsKCJ3b3JkIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzZW50
ZW5jZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNv
bnN0IFN0cmluZywgd29yZEJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ3b3JkIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RyaW5n
LCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzZW50ZW5jZSIpKSk7CiAK
ICAgICBzd2l0Y2ggKGJvdW5kYXJ5KSB7CiAgICAgY2FzZSBTcGVlY2hXb3JkQm91bmRhcnk6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRleCBlYjhiYzBj
MTk3ODlhMzg4MTg2ZDc1NjVjZTFiNWFiOTcyZWVjZDNhLi4yOGJjMGY0MzdiYjA1ZDMyYjNmOWY4
YjFkNzNhMmEzZjEwMzE3ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdCh2b2lkKikK
IAogR0NDb250cm9sbGVyJiBnY0NvbnRyb2xsZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChHQ0NvbnRyb2xsZXIsIHN0YXRpY0dDQ29udHJvbGxlciwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChHQ0NvbnRyb2xsZXIsIHN0YXRpY0dDQ29u
dHJvbGxlcik7CiAgICAgcmV0dXJuIHN0YXRpY0dDQ29udHJvbGxlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAKaW5kZXggMTFkZTVkM2Y5NjgzNDIxNjlmODdkN2E3MTg1MWJiODM1MGEyODVjYy4u
MDRhZDFiOTVjOTAyMjU4MWJmZmQwZTZjNDJiZTM4NTljYWFkMzAzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBjc3NQcm9w
ZXJ0eUlERm9ySlNDU1NQcm9wZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmEKIAogICAg
IFN0cmluZyBzdHJpbmdGb3JDYWNoZSA9IFN0cmluZyhwcm9wZXJ0eU5hbWVTdHJpbmcpOwogICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SW5mbz4gQ1NTUHJvcGVydHlJbmZv
TWFwOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDU1NQcm9wZXJ0eUluZm9N
YXAsIHByb3BlcnR5SW5mb0NhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKENTU1Byb3BlcnR5SW5mb01hcCwgcHJvcGVydHlJbmZvQ2FjaGUpOwogICAgIHByb3Bl
cnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hlLmdldChzdHJpbmdGb3JDYWNoZSk7CiAgICAgaWYg
KHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQogICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY4MDE4Yzc0OGIzZWQ3OTgxMzQxNmM3OThhYzMx
OTBjNjUwYTc3MWEuLmU5ODJlNjVlN2ZkMmM5MGZhNTQ2NDg5NGRiNGMxODUwNmEwOGU0NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTU1LDE5ICs1NSwxOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3Rh
dGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwg
KEFTQ0lJTGl0ZXJhbCgibWFjIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgibWFjIikp
KTsKICNlbGlmIE9TKFdJTkRPV1MpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIndpbmRvd3MiKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHBs
YXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJ3aW5kb3dzIikpKTsKICNlbGlmIE9TKExJTlVYKQotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAo
QVNDSUlMaXRlcmFsKCJsaW51eCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImxpbnV4
IikpKTsKICNlbGlmIE9TKEZSRUVCU0QpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImZyZWVic2QiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcs
IHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJmcmVlYnNkIikpKTsKICNlbGlmIE9TKE9QRU5CU0Qp
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZv
cm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2QiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFs
KCJvcGVuYnNkIikpKTsKICNlbGlmIE9TKFNPTEFSSVMpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFy
aXMiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25z
dCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJzb2xhcmlzIikpKTsKICNlbHNlCi0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0s
IChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJ1
bmtub3duIikpKTsKICNlbmRpZgogICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjU3Rh
dGUsIHBsYXRmb3JtKTsKIH0KQEAgLTc1LDExICs3NSwxMSBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIEpTVmFsdWUgSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQoRXhlY1N0YXRlKiBleGVjU3RhdGUpCiB7CiAjaWYg
UExBVEZPUk0oR1RLKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImd0ayIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJh
bCgiZ3RrIikpKTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJlZmwiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcs
IHBvcnQsIChBU0NJSUxpdGVyYWwoImVmbCIpKSk7CiAjZWxzZQotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25v
d24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25z
dCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOwogI2VuZGlmCiAgICAg
cmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWNTdGF0ZSwgcG9ydCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQppbmRleCBiYjNmYzY5YTJkN2ZkNmEz
Y2I3ZjM3OWU1MmY4Nzc3NDc2OGM4NzY3Li4yNTY0MjRhNTY0MzEyNzVmYTY2NTNjNzljZWEzNzM5
NGYyNjBiNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUlu
dGVybmFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwu
bW0KQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIE5TTWFwVGFibGUqIERPTVdyYXBwZXJDYWNoZTsK
ICNpZmRlZiBORUVEU19XUkFQUEVSX0NBQ0hFX0xPQ0sKIHN0YXRpYyBNdXRleCYgd3JhcHBlckNh
Y2hlTG9jaygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCB3
cmFwcGVyQ2FjaGVNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChNdXRleCwgd3JhcHBlckNhY2hlTXV0ZXgpOwogICAgIHJldHVybiB3cmFwcGVyQ2FjaGVNdXRl
eDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCA0OTVhNDdhNTg0NDVkN2RkMDlhOTBiNTJhMDFhY2EyODZh
YWJlMzQ0Li45YWZiOTEzZjMyNWMwM2FiMWM1N2ExMjMwYTBjNmZjMmUwZjliZTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtMTE3Miw3ICsxMTcyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiaW5saW5l
IEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgJGlt
cGxUeXBlKilcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7Ci0gICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEpTJHtpbnRlcmZhY2VOYW1lfU93bmVyLCBqcyR7aW50ZXJmYWNlTmFtZX1Pd25lciwgKCkp
O1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEpTJHtpbnRlcmZhY2VOYW1lfU93bmVyLCBqcyR7aW50ZXJmYWNlTmFt
ZX1Pd25lcik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICByZXR1cm4g
JmpzJHtpbnRlcmZhY2VOYW1lfU93bmVyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJ9XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggZTY4MDJmZmVkMzU5NDc1MDQ0NDZlMjdkZTI5ZWJk
MWQyNjMzZjQ1Mi4uYzc4YjRmNDg3YWQ5OTEyMGM0ZjNiYjBkYzMyMTc2Y2IwOWQ2Mjc3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAK
IGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3Js
ZCYsIFRlc3RBY3RpdmVET01PYmplY3QqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lciwganNUZXN0QWN0aXZlRE9NT2JqZWN0
T3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0QWN0
aXZlRE9NT2JqZWN0T3duZXIsIGpzVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyKTsKICAgICByZXR1
cm4gJmpzVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5oCmluZGV4IDgxMzFkMzFkYThkY2YwYWJhNzMyZTQzM2Q5YzMwMGY0NmE3OWFm
YTAuLjliZjI4YTI1YWM1YWE0YWVkOTIwMzk0ODc5NzQyMWQ0YTNjMWEzNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogaW5s
aW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwg
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciwganNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RD
dXN0b21OYW1lZEdldHRlck93bmVyLCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyKTsKICAg
ICByZXR1cm4gJmpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGYyMGU1YmUwOTFjMmFlOWNiZDdkMmUyOGY2YWFmNTI5
ZThlNGQwNmMuLjk4ZDkyMTE0NGI0YjcxYjY3NWYxOGNmZDgyNjg0ODRkZTIzMjA5NjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAK
IGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3Js
ZCYsIFRlc3RFdmVudENvbnN0cnVjdG9yKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyLCBqc1Rlc3RFdmVudENvbnN0cnVj
dG9yT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvck93bmVyLCBqc1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIpOwogICAg
IHJldHVybiAmanNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5oCmluZGV4IDgyYWE1YzY5ZDkxZWIwODkxZDJkNDJlNThjMjkxNWQwMDE4YmI1OWIuLjIz
ZGNmMWY0ZWFjYjQyOTU5ZTdmMTdiZjJlMzgwMzkxNmNjMzQxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEV2ZW50VGFyZ2V0KikK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0RXZlbnRUYXJnZXRP
d25lciwganNUZXN0RXZlbnRUYXJnZXRPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChKU1Rlc3RFdmVudFRhcmdldE93bmVyLCBqc1Rlc3RFdmVudFRhcmdldE93
bmVyKTsKICAgICByZXR1cm4gJmpzVGVzdEV2ZW50VGFyZ2V0T3duZXI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaAppbmRleCBjMGE4MzNkOWExOWM2NzdjMWVkNTExOGYwMGVjYzc5Nzg0YjkwZWNhLi5m
NWU3OWRhM2MzNjhkY2NhYmRmYzYxNDQzMDEwZDc0YTBlOGRhOWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlv
bi5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93
bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEV4Y2VwdGlvbiopCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV4Y2VwdGlvbk93bmVyLCBq
c1Rlc3RFeGNlcHRpb25Pd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3RFeGNlcHRpb25Pd25lciwganNUZXN0RXhjZXB0aW9uT3duZXIpOwogICAgIHJl
dHVybiAmanNUZXN0RXhjZXB0aW9uT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5oCmluZGV4IDUzYWVkZDZmMjBiODJlYjdmNDc4ZTc2MzQ5YWQxOTQzYjc3ZTk5
OGIuLjQyNjI0ZTJiYjIwYzliNTY5NzRjODM1YWQ3NDM4OTZhMjU1NTkzOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAK
IGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3Js
ZCYsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyLCBqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyLCBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlT3duZXIpOwogICAgIHJldHVybiAmanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggZTc4OWZlNGJlOTFjZDcwNDFkNzliNzkyYjJhYjI0
ZTgxOGIyNjI4YS4uYmM2ZTNhODk0YWFlNjJkNWRkNzlmNWNhM2RiMWI2NjQ2NWE1MWQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpT
Qzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdElu
dGVyZmFjZSopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdElu
dGVyZmFjZU93bmVyLCBqc1Rlc3RJbnRlcmZhY2VPd25lciwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RJbnRlcmZhY2VPd25lciwganNUZXN0SW50ZXJmYWNl
T3duZXIpOwogICAgIHJldHVybiAmanNUZXN0SW50ZXJmYWNlT3duZXI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDIxNmRhODlkYWRjMzhhZWIz
OTBlNGNlZDFlNDkzMTViNDlmNjQzOGQuLjA2Y2Y2ZDBiMjYyNDI0YzFmN2U2OGVlYmE0ODEyNzAx
YzIzYWNiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciog
d3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lck93bmVyLCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lck93bmVyLCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIpOwogICAg
IHJldHVybiAmanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCBhZjcyMzVhMzYwYzI3NmFlYWNhZTZjNjFkN2Vj
NzU1MzI1ZDU0MWY5Li41ZDIzOWIxMzhmNjI3MWQxN2Q3ZWE5NzRhOGQxMDg3Zjk5NzI3OTJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGlj
OgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciwganNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpT
VGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciwganNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyKTsK
ICAgICByZXR1cm4gJmpzVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXggMzU2ZWJjM2NlYTZiY2IzYjE0NmI0ZGJiN2UyYTk0
Y2VlMDU0ZjA2OC4uODAzNTczYTBhOTk5NWFhMGVlNWMzYTYwYzQ5NTkxODc1OTYwYjg5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoK
IAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldv
cmxkJiwgVGVzdE5vbmRldGVybWluaXN0aWMqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXIsIGpzVGVzdE5vbmRldGVybWlu
aXN0aWNPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rl
c3ROb25kZXRlcm1pbmlzdGljT3duZXIsIGpzVGVzdE5vbmRldGVybWluaXN0aWNPd25lcik7CiAg
ICAgcmV0dXJuICZqc1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA3
MWZlY2JiOGI2M2IwM2I5MDc2NjUyN2Y2NmQyMWQ5ZTVhNzRmMjI4Li43ZTY2ZGM5MTk4OTMyMzFl
MDMxYTAzYzEyZmVkNjQ1ZWQ0M2I5MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC05Niw3ICs5Niw3IEBAIHB1Ymxp
YzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgVGVzdE9iaiopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEpTVGVzdE9iak93bmVyLCBqc1Rlc3RPYmpPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPYmpPd25lciwganNUZXN0T2JqT3duZXIpOwogICAgIHJl
dHVybiAmanNUZXN0T2JqT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5oCmluZGV4IGQ2ODYxYjc5NDYyNzk0YzdmMjY1NDllOTFhNjViMTE4YTFiYWQz
MDIuLmQ1Y2VkNTI5MTQ3ZmNhMjZmYmU4NmJkY2FjNGExNGVlNTRhZjM4YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaApAQCAtODEsNyArODEsNyBAQCBwdWJs
aWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBw
ZXJXb3JsZCYsIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKikKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyLCBq
c1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyLCBqc1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXIpOwogICAgIHJldHVybiAmanNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc093bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggMTFhZjY0MGJhOTRiNjg3NjhlY2U2
MmE0YWVkMTk3Y2RhZmVkNDE4Ny4uZWY2ZmYzMjVjMzEwMGEyZDU2ZTMzN2U0ZDU1ZjY5MTY0ZDdi
MDQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtI
YW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25lciwganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3du
ZXIsIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyKTsKICAgICByZXR1
cm4gJmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5oCmluZGV4IDZjYTY2M2MyYjVmOWQxOTYzY2M3ZWUxNjAzYmUwYjljNmQyNjIzOWYu
LjY2NDBmMzU5ZjA5NTU1OTU1YTY0ZDViYWU4OTQyN2NiYWIwNTM3MzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93
bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdFR5cGVkZWZzKikKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0VHlwZWRlZnNPd25lciwganNU
ZXN0VHlwZWRlZnNPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChKU1Rlc3RUeXBlZGVmc093bmVyLCBqc1Rlc3RUeXBlZGVmc093bmVyKTsKICAgICByZXR1cm4g
JmpzVGVzdFR5cGVkZWZzT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKaW5kZXggNjM1MDI3N2RiOWFlMjc2
YTA2ZWU0NGM4ZThmODAxYzEyMWVlZDhjYS4uNzExMmM1ZWIxNzMyZTY4ZGZlYzMzYzZhNDljZmRm
ZThhOGE0ZGY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogCiBpbmxp
bmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBh
dHRyaWJ1dGUqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU2F0dHJp
YnV0ZU93bmVyLCBqc2F0dHJpYnV0ZU93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEpTYXR0cmlidXRlT3duZXIsIGpzYXR0cmlidXRlT3duZXIpOwogICAgIHJl
dHVybiAmanNhdHRyaWJ1dGVPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggM2UyZDhhNmVhZTFiNWZl
ZTk3ZDY0MWE0YjVjMTQ1MTBjZTY1MDkwNC4uMWZkNGM5ZTA2MGFjMjA0YzMwODBiNDYwYzJjMTY5
MjdjOGYxZjE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogaW5saW5l
IEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgcmVh
ZG9ubHkqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU3JlYWRvbmx5
T3duZXIsIGpzcmVhZG9ubHlPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChKU3JlYWRvbmx5T3duZXIsIGpzcmVhZG9ubHlPd25lcik7CiAgICAgcmV0dXJuICZq
c3JlYWRvbmx5T3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAK
aW5kZXggNmViMWVmZmIyYmFlZGFhMjg4ZWE1YmNjMmZlYTBiNWI4YTZhY2MwZS4uMzIwY2UxZmU0
YjJjMDAyMzkwYjViOGIwNWUyNWZkN2JkMmJhZmNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAog
c3RhdGljIFN0cmluZyYgZ2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25TdHIsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25TdHIpOwogICAgIHJl
dHVybiBleGNlcHRpb25TdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5j
cHAKaW5kZXggZjc4MTVlZjVjZTBkZDM0OTY1YTJjYjY2ODg5ODgxNzRjZjY0ZGI5OC4uOWQzZDhi
ZTU3ODg4MGFlMDBmYjZmODZmNGQxNWIyZGYzNDQ2NGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTYxOSw3ICs2MTksNyBAQCBib29sIENTU0ZvbnRTZWxlY3Rv
cjo6cmVzb2x2ZXNGYW1pbHlGb3IoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikg
Y29ucwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChtX2ZvbnRGYWNlcy5jb250
YWlucyhmYW1pbHlOYW1lKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJraXRQcmVmaXgsICgiLXdlYmtp
dC0iKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhT
dHJpbmcsIHdlYmtpdFByZWZpeCwgKCItd2Via2l0LSIpKTsKICAgICAgICAgaWYgKGZhbWlseU5h
bWUuc3RhcnRzV2l0aCh3ZWJraXRQcmVmaXgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggOTQ0NTA4NjNmMWI5M2Fj
NmE3MzU4OTZiMmNhOTJiMWZmYmRlYTRhZi4uOTJjNTkxYTQ3MDUwMDFhMGYwY2I2ZGI3NDU1MjZm
MzdhOGM2NGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTI5MywxMSArMjkzLDEx
IEBAIHN0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJuaW5nTWVzc2FnZVRvQ29uc29sZShEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluCiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICBB
U1NFUlQodmFsdWUpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgbWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4
JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBs
YWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMt
cGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUg
YWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBl
eHByZXNzaW9uOiAiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVyYWwoImRwaSIpKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQQ00sIChBU0NJSUxpdGVy
YWwoImRwY20iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGxlbmd0aFVuaXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBsZW5ndGhVbml0Q2VudGltZXRlciwgKEFTQ0lJ
TGl0ZXJhbCgiY2VudGltZXRlciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKFN0cmluZywgbWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNv
bnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUn
LCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5n
dGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3Qg
Y29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVu
LiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVy
YWwoImRwaSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KFN0cmluZywgbWVkaWFWYWx1ZURQQ00sIChBU0NJSUxpdGVyYWwoImRwY20iKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGxlbmd0aFVuaXRJ
bmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBsZW5ndGhVbml0Q2VudGltZXRlciwgKEFTQ0lJTGl0
ZXJhbCgiY2VudGltZXRlciIpKSk7CiAKICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICBpZiAodmFs
dWUtPmlzRG90c1BlckluY2goKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHAKaW5kZXggZDA1OGU2ZGVhNDA3YjdjOTdkNGMzZWM3ODJiMDM0MzFlM2Q2ZjM2YS4uOTc0
NGE1ZGQ1MDVkNmRiOGVmZjNhNDAzZTAzYjIxMmQzMDc4OTNlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0eWxl
U2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxl
U2hlZXQqIGNhY2hlZAogICAgIH0KICAgICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzICYmIGlzU3RyaWN0UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkp
IHsKICAgICAgICAgLy8gV29yayBhcm91bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yODM1MD4uCi0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoQVNDSUlMaXRl
cmFsKCIvKiBLSFRNTCBmaXggc3R5bGVzaGVldCAqL1xuLyogd29yayBhcm91bmQgdGhlIGhvcml6
b250YWwgc2Nyb2xsYmFycyAqL1xuI2NvbHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6IDA7IH1c
blxuIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IFN0cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsIChBU0NJSUxpdGVy
YWwoIi8qIEtIVE1MIGZpeCBzdHlsZXNoZWV0ICovXG4vKiB3b3JrIGFyb3VuZCB0aGUgaG9yaXpv
bnRhbCBzY3JvbGxiYXJzICovXG4jY29sdW1uLWNvbnRlbnQgeyBtYXJnaW4tbGVmdDogMDsgfVxu
XG4iKSkpOwogICAgICAgICAvLyBUaGVyZSBhcmUgdHdvIHZhcmlhbnRzIG9mIEtIVE1MRml4ZXMu
Y3NzLiBPbmUgaXMgZXF1YWwgdG8gbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsCiAgICAg
ICAgIC8vIHdoaWxlIHRoZSBvdGhlciBsYWNrcyB0aGUgc2Vjb25kIHRyYWlsaW5nIG5ld2xpbmUu
CiAgICAgICAgIGlmIChiYXNlVVJMKCkuc3RyaW5nKCkuZW5kc1dpdGgoIi9LSFRNTEZpeGVzLmNz
cyIpICYmICFzaGVldFRleHQuaXNOdWxsKCkgJiYgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hl
ZXQuc3RhcnRzV2l0aChzaGVldFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0
TXV0YXRpb25TY29wZS5jcHAKaW5kZXggOWIxNmM2YmFjOGFiMmE5ZjMwMDE5MTYwZThjOTgwMGFh
OTg0MTYzZS4uOTA1YmM2NmU3YjNhZWIyNGMxNDFkZjkyNGEzZDUwYjlkNWIxOWFmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcApAQCAtNDMsNyAr
NDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8Q29udGFpbmVyTm9k
ZSosIENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IqPiBBY2N1bXVsYXRvck1hcDsKIHN0YXRp
YyBBY2N1bXVsYXRvck1hcCYgYWNjdW11bGF0b3JNYXAoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBY2N1bXVsYXRvck1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFjY3VtdWxhdG9yTWFwLCBtYXApOwogICAgIHJldHVybiBt
YXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGQ5
MjI2MThlOWU1NWRjMjJlZTM0Njg3NmFhM2E0MjhlYTQ5YzZlMWQuLjA0NTY3ZTJmOGNhZWM4YjYx
NjY0NzhlZDNlOGI1OTg4YTRkMDRhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFNWRzEw
RmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNl
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0LCBzdmdGZWF0
dXJlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0
LCBzdmdGZWF0dXJlcyk7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewogI2lmIEVOQUJMRShGSUxU
RVJTKSAmJiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMs
ICJzdmciKTsKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFNWRzEx
RmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNl
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0LCBzdmdGZWF0
dXJlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0
LCBzdmdGZWF0dXJlcyk7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewogICAgICAgICAvLyBTYWRs
eSwgd2UgY2Fubm90IGNsYWltIHRvIGltcGxlbWVudCBhbnkgb2YgdGhlIFNWRyAxLjEgZ2VuZXJp
YyBmZWF0dXJlIHNldHMKICAgICAgICAgLy8gbGFjayBvZiBGb250IGFuZCBGaWx0ZXIgc3VwcG9y
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViNTNhYTM4YWM5OTk1Njc4ODBmMzNlNjRh
ZjM3N2M4MjcxZTVkMTcuLjM4NzliYWExYjNiMDI4ZWNjNWM0YjQxNzY2MTFjZGFiMmRkYjJlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE1MCw5ICsxMTUwLDkgQEAgUGFzc1JlZlB0
cjxFbGVtZW50PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IFN0cmluZyYgbmFtZXNw
YWNlVVJJLCBjb25zdAogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxvYWRpbmcs
IChBU0NJSUxpdGVyYWwoImxvYWRpbmciKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFj
dGl2ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgY29tcGxldGUsIChBU0NJSUxpdGVyYWwoImNvbXBsZXRlIikpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBsb2FkaW5nLCAoQVND
SUlMaXRlcmFsKCJsb2FkaW5nIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBpbnRlcmFjdGl2ZSwgKEFTQ0lJTGl0ZXJhbCgiaW50
ZXJhY3RpdmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBTdHJpbmcsIGNvbXBsZXRlLCAoQVNDSUlMaXRlcmFsKCJjb21wbGV0ZSIpKSk7CiAK
ICAgICBzd2l0Y2ggKG1fcmVhZHlTdGF0ZSkgewogICAgIGNhc2UgTG9hZGluZzoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4NzE3ZWMxZmU5ZDRhY2Y0MzZjZjE1MzMzNjdhMWYzMzk5YWE1YTdm
Li5mMjA5NjlmNDQ1MTc5YjUxOTI4MWIzMjJjZjZlYTBhMjlkMGU3ZGE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0yNTQ2LDIxICsyNTQ2LDIxIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxl
bWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCgpIGNvbnN0CiB7CiAgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHVuZGVmaW5lZFN0YXRlLCAoInVuZGVmaW5l
ZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCB1bmRlZmluZWRTdGF0
ZSwgKCJ1bmRlZmluZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgaWYgKCFkb2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50KCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAogICAgIHN3aXRj
aCAocmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsKICAgICBjYXNlIFJlZ2lvbkZpdDogewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRTdGF0ZSwg
KCJmaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGZpdFN0
YXRlLCAoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAg
ICAgcmV0dXJuIGZpdFN0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvbkVtcHR5OiB7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3Rh
dGUsICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcs
IGVtcHR5U3RhdGUsICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgICAgIHJldHVybiBlbXB0eVN0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvbk92
ZXJzZXQ6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lU
SF9BUkcoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAoIm92ZXJzZXQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBvdmVyZmxvd1N0YXRl
OwogICAgIH0KICAgICBjYXNlIFJlZ2lvblVuZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
RGlzcGF0Y2hlci5jcHAKaW5kZXggMjc0OTkyOGM2MGIyODdkYmU4MTQ4NjU5YjUxYmNiY2I1YmRk
NTNhZi4uY2EwNGNkYWU3M2EyZDFlNzZmYzUxZmU0YjMyNzMxNDQ1NzVjYTJhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhFbGVtZW50KiBlbGVtZW50LCBF
dmVudCogdW5kZXJseWluZwogICAgIGlmIChlbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2wo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8RWxlbWVudCo+LCBlbGVtZW50c0Rpc3BhdGNoaW5nU2ltdWxhdGVkQ2xpY2tzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8RWxlbWVudCo+
LCBlbGVtZW50c0Rpc3BhdGNoaW5nU2ltdWxhdGVkQ2xpY2tzKTsKICAgICBpZiAoIWVsZW1lbnRz
RGlzcGF0Y2hpbmdTaW11bGF0ZWRDbGlja3MuYWRkKGVsZW1lbnQpLmlzTmV3RW50cnkpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVu
ZXJNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCmluZGV4
IDA4NTQxYjBiZDdiYTEyOTZhZjVhYjgzMzkyMGFjMjg1NWYxM2I0YWYuLjQ1MDU3ZDMxMzU2M2I4
ODk2MzNiMTYwZWE5ZDBlN2JlNzE1MDFiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudExpc3RlbmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0
ZW5lck1hcC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmbmRl
ZiBOREVCVUcKIHN0YXRpYyBNdXRleCYgYWN0aXZlSXRlcmF0b3JDb3VudE11dGV4KCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCk7CiAgICAgcmV0dXJu
IG11dGV4OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAyNjUxNzhjZjZl
M2UzZjEwOTcxYTA0ZjllOGY2NTQxMDU2MzFkN2JkLi5iM2IzYjE5Mzg1YWFkYWU5YjhjM2YzYzky
MGRmM2I1YTIyY2M4MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTI1OCw3
ICsyNTgsNyBAQCB2b2lkIEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2
ZW50LCBFdmVudFRhcmdldERhdGEqIGQsIEV2ZW50TGlzdAogCiBjb25zdCBFdmVudExpc3RlbmVy
VmVjdG9yJiBFdmVudFRhcmdldDo6Z2V0RXZlbnRMaXN0ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEV2ZW50
TGlzdGVuZXJWZWN0b3IsIGVtcHR5VmVjdG9yLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEV2ZW50TGlzdGVuZXJWZWN0b3IsIGVtcHR5VmVjdG9yKTsKIAogICAgIEV2
ZW50VGFyZ2V0RGF0YSogZCA9IGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIGlmICghZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKaW5kZXggNWMzNjM4NDJi
NjkxNDY1OWUxMzQwYTM4MTY3YWU3Y2NjYzZjZmYyYS4uYzA3NjAwMjY0OWJjMDE4YjFmZWYxNzk0
ODU3NmI0YjRlYjFmYjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0
eWxlU2hlZXRPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hl
ZXRPd25lci5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIElubGluZVN0eWxlU2hlZXRPd25l
cjo6Y2xlYXJTaGVldCgpCiAKIGlubGluZSBib29sIGlzVmFsaWRDU1NDb250ZW50VHlwZShFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3NzQ29udGVudFR5cGUs
ICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmlu
ZywgY3NzQ29udGVudFR5cGUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICByZXR1cm4gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkgPyBlcXVhbElnbm9yaW5nQ2Fz
ZSh0eXBlLCBjc3NDb250ZW50VHlwZSkgOiB0eXBlID09IGNzc0NvbnRlbnRUeXBlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDc3NDU4ZjhlNjk2NTM1NDc2ZWJi
ZDg0NzgxNWU3N2FjZjM0NDA1MTUuLmI5NjViMmRlOTI2ODJhNTBkYjQxYzNiM2M3ODkyMDY2MzVl
ZmIwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTEzOCwx
MyArMTM4LDEzIEBAIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4+IE11
dGF0aW9uT2JzZXJ2ZXJTZXQ7CiAKIHN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVN
dXRhdGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KE11dGF0aW9uT2JzZXJ2ZXJTZXQsIGFjdGl2ZU9ic2VydmVycywgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZl
cnMpOwogICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnM7CiB9CiAKIHN0YXRpYyBNdXRhdGlvbk9i
c2VydmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIHN1c3BlbmRlZE9ic2Vy
dmVycywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9i
c2VydmVyU2V0LCBzdXNwZW5kZWRPYnNlcnZlcnMpOwogICAgIHJldHVybiBzdXNwZW5kZWRPYnNl
cnZlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29y
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCmluZGV4IDVhNDdm
YzAwMWMxNWEyOGU5NThkZTZmMjQ1Y2IxZTkzYTcyMzgwNzEuLjNiMDg5NGU2MjI4ZDBkZTBiYjgy
MGUxMzRkM2NiNmM0OTlkZmM3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvblJlY29yZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNw
cApAQCAtMTQ1LDE5ICsxNDUsMTkgQEAgcHJpdmF0ZToKIAogY29uc3QgQXRvbWljU3RyaW5nJiBD
aGlsZExpc3RSZWNvcmQ6OnR5cGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGNoaWxkTGlzdCwgKCJjaGlsZExpc3QiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgY2hpbGRMaXN0LCAoImNoaWxkTGlzdCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2hpbGRMaXN0Owog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGF0dHJpYnV0ZXMs
ICgiYXR0cmlidXRlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBh
dHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
Q2hhcmFjdGVyRGF0YVJlY29yZDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hhcmFjdGVyRGF0YSwgKCJjaGFyYWN0ZXJEYXRhIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGNoYXJhY3RlckRhdGEsICgi
Y2hhcmFjdGVyRGF0YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gY2hhcmFjdGVyRGF0YTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYxNzc3Nzli
MTA3ZGViNjRmNDkwNzlhMzhkMzM1ODA2NTc4ZmFmZTMuLjg3ZGU3OTkwMTg0NTZkZDdlZDFhMGMx
MTBjNTkwZmFhODMwYzBjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE4NTIsNyArMTg1Miw3IEBA
IHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgT3duUHRyPEV2ZW50VGFyZ2V0RGF0YT4+IEV2ZW50VGFy
Z2V0RGF0YU1hcDsKIAogc3RhdGljIEV2ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRh
TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRUYXJnZXRE
YXRhTWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRXZl
bnRUYXJnZXREYXRhTWFwLCBtYXApOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCAzYjRhOTc5ZGZiZmExY2Q3MGZkMDAyODE1MmYzNTVm
NDYxNTZlNGUwLi4wMjZkMWM5NzY3ZWU2NTI1NGEwOWIyYzdmNTkzZDQwYjJiZjQ1MzYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC0zNywxNCArMzcsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjb25zdCBRdWFsaWZpZWROYW1lJiBwc2V1ZG9FbGVtZW50VGFnTmFt
ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUs
IG5hbWUsIChudWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVsbEF0b20pKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUXVhbGlmaWVkTmFtZSwgbmFtZSwgKG51bGxB
dG9tLCAiPHBzZXVkbz4iLCBudWxsQXRvbSkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBTdHJp
bmcgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoUHNldWRvSWQgcHNl
dWRvSWQpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgYWZ0ZXIsIChBU0NJSUxpdGVyYWwoIjo6YWZ0ZXIiKSkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJlZm9yZSwgKEFTQ0lJTGl0ZXJhbCgiOjpi
ZWZvcmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhj
b25zdCBTdHJpbmcsIGFmdGVyLCAoQVNDSUlMaXRlcmFsKCI6OmFmdGVyIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBiZWZvcmUs
IChBU0NJSUxpdGVyYWwoIjo6YmVmb3JlIikpKTsKICAgICBzd2l0Y2ggKHBzZXVkb0lkKSB7CiAg
ICAgY2FzZSBBRlRFUjoKICAgICAgICAgcmV0dXJuIGFmdGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwCmluZGV4IGZkNzliZGFhZGEzODI1MTczYjg3OGMwODk4NDI0ODhjNTM5MjI4
Y2YuLjA5ZTNkY2MwNTZmMGE4YTI1ZTljZTBhMWM2MDA4MmNiODU5YmZhYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFFOYW1lQ29t
cG9uZW50c1RyYW5zbGF0b3IgewogCiBzdGF0aWMgaW5saW5lIFFOYW1lU2V0JiBxdWFsaWZpZWRO
YW1lQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRTmFtZVNl
dCwgbmFtZUNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFFO
YW1lU2V0LCBuYW1lQ2FjaGUpOwogICAgIHJldHVybiBuYW1lQ2FjaGU7CiB9CiAKQEAgLTExNSw3
ICsxMTUsNyBAQCB2b2lkIFF1YWxpZmllZE5hbWU6OmluaXQoKQogCiBjb25zdCBRdWFsaWZpZWRO
YW1lJiBudWxsUU5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChR
dWFsaWZpZWROYW1lLCBudWxsTmFtZSwgKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUXVhbGlmaWVkTmFt
ZSwgbnVsbE5hbWUsIChudWxsQXRvbSwgbnVsbEF0b20sIG51bGxBdG9tKSk7CiAgICAgcmV0dXJu
IG51bGxOYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMjA0
N2FlMzg5OWM0YWU5ODYyNDE1YzQ5NmU3MzYxNjhkY2UzOTc2Yi4uYzEyZGIyNzk1YTM0MTVkMjJi
YTA3YTIyOGM0YTBjN2FjZmViZWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cApAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyBib29sIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNj
cmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAKICAgICAvLyBGSVhNRTogVGhp
cyBmdW5jdGlvbiBpcyBub3QgSFRNTDUgY29tcGxpYW50LiBUaGVzZSBiZWxvbmcgaW4gdGhlIE1J
TUUgcmVnaXN0cnkgYXMgInRleHQvamF2YXNjcmlwdDx2ZXJzaW9uPiIgZW50cmllcy4KICAgICB0
eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IExhbmd1YWdlU2V0OwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMYW5ndWFnZVNldCwgbGFuZ3VhZ2VzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExhbmd1YWdlU2V0LCBsYW5n
dWFnZXMpOwogICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGxhbmd1YWdl
cy5hZGQoImphdmFzY3JpcHQiKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiamF2YXNjcmlwdCIp
OwpAQCAtMzQ2LDcgKzM0Niw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICAmJiAhbV9jYWNoZWRTY3JpcHQtPnBh
c3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhtX2VsZW1lbnQuZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdp
bigpKSkgewogCiAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0
ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVz
b3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwo
IkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNl
IFNoYXJpbmcgcG9saWN5LiIpKSk7CiAgICAgICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25z
b2xlTWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5jcHAKaW5kZXggZTM1N2E1M2Q5NGQwOGEyMTZmYTFhMDc1OGJkOWJhZmU0YmJiZjAz
NS4uNzk4N2E2NTYwY2M3ZDdlYWE2MDFhZDY0NDJmMjNkZTExMWQ5MDY0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5JiBhLCBjb25zdCBQcmVz
ZW50YXRpbwogCiBzdGF0aWMgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUmIHByZXNlbnRhdGlv
bkF0dHJpYnV0ZUNhY2hlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUsIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlLCBjYWNoZSk7CiAg
ICAgcmV0dXJuIGNhY2hlOwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKIAogc3Rh
dGljIFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lciYgcHJlc2VudGF0aW9uQXR0cmli
dXRlQ2FjaGVDbGVhbmVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyLCBjbGVhbmVyLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xl
YW5lciwgY2xlYW5lcik7CiAgICAgcmV0dXJuIGNsZWFuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggZjA3ZDU0MWUwMzQ5NTZhMzk4
ZjI2ZGYzOWZlMzkyOWJhY2U4OTIzYS4uZTg5MjE5ZWZiMTNhZjI4OTRjMGZjMzFlODk1MzcxZjBl
YTY1ZTIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGludCB0b0lkZW50aWZpZXIoUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gdmFsdWUpCiAKIHN0YXRpYyBTdHJpbmcmIHN0eWxlU3BhbkNsYXNzU3RyaW5nKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzdHlsZVNwYW5D
bGFzc1N0cmluZywgKChBcHBsZVN0eWxlU3BhbkNsYXNzKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIHN0eWxlU3BhbkNsYXNzU3RyaW5nLCAo
KEFwcGxlU3R5bGVTcGFuQ2xhc3MpKSk7CiAgICAgcmV0dXJuIHN0eWxlU3BhbkNsYXNzU3RyaW5n
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmlu
ZGV4IDE3MmI4NWMzYzc2MTZjZjQ3MmMxNTEyMzc5NTQyYjVkMWI3YTcxMWUuLmZjYjMxOGQwNjI3
YjI5OTFjOGYzNmZiNzFlZmRkM2Q1MmY5YmY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgYm9vbCBNYXJrdXBB
Y2N1bXVsYXRvcjo6c2hvdWxkQWRkTmFtZXNwYWNlRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQogICAgIGlmIChwcmVmaXguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gIWVsZW1lbnQu
aGFzQXR0cmlidXRlKHhtbG5zQXRvbSk7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCB4bWxuc1dpdGhDb2xvbiwgKEFTQ0lJTGl0ZXJhbCgieG1sbnM6IikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCB4bWxu
c1dpdGhDb2xvbiwgKEFTQ0lJTGl0ZXJhbCgieG1sbnM6IikpKTsKICAgICByZXR1cm4gIWVsZW1l
bnQuaGFzQXR0cmlidXRlKHhtbG5zV2l0aENvbG9uICsgcHJlZml4KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCA2
YzA2MmI1NWE2MzY3ZmM5OTBkMDM4NTRhYjY5OTliODk4ZjMwODgxLi44ZTdkNGM4OWVjOTEzOGVm
MjllNWZjYjg5NWYxOGQ0OTkzMjcyZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMTAyLDE0ICsxMDIsMTQgQEAgcHJp
dmF0ZToKIAogc3RhdGljIGJvb2wgaXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKGNvbnN0IE5vZGUg
Km5vZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW50
ZXJjaGFuZ2VOZXdsaW5lQ2xhc3NTdHJpbmcsIChBcHBsZUludGVyY2hhbmdlTmV3bGluZSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGludGVy
Y2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nLCAoQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpKTsKICAg
ICByZXR1cm4gbm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGJyVGFnKSAmJiAKICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCAqPihub2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0
cikgPT0gaW50ZXJjaGFuZ2VOZXdsaW5lQ2xhc3NTdHJpbmc7CiB9CiAKIHN0YXRpYyBib29sIGlz
SW50ZXJjaGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4oY29uc3QgTm9kZSAqbm9kZSkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb252ZXJ0ZWRTcGFjZVNwYW5D
bGFzc1N0cmluZywgKEFwcGxlQ29udmVydGVkU3BhY2UpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBjb252ZXJ0ZWRTcGFjZVNwYW5DbGFzc1N0
cmluZywgKEFwcGxlQ29udmVydGVkU3BhY2UpKTsKICAgICByZXR1cm4gbm9kZS0+aXNIVE1MRWxl
bWVudCgpICYmIAogICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudCAqPihu
b2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gY29udmVydGVkU3BhY2VTcGFuQ2xhc3NT
dHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCmluZGV4IDU1NWQ3
ZWVjMDcxOWJmZTAzODQxM2I5MWIxNDExMDFhYmEwN2E0ZWMuLjcyZTQ2MGRhNjk1NjBiNWRlOTEw
YTFkZjQ2NzE2NmNmMWNlNzg1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwCkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBpc1RhYmxlU3RydWN0dXJlTm9kZShjb25zdCBO
b2RlICpub2RlKQogCiBjb25zdCBTdHJpbmcmIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbkJyZWFraW5nU3Bh
Y2VTdHJpbmcsICgmbm9CcmVha1NwYWNlLCAxKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgbm9uQnJlYWtpbmdTcGFjZVN0cmluZywgKCZub0Jy
ZWFrU3BhY2UsIDEpKTsKICAgICByZXR1cm4gbm9uQnJlYWtpbmdTcGFjZVN0cmluZzsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDdkNmE3ZjZiZGJlMGFlNTU1Y2E5NDViZDUy
NTExYzJhMjc4NzIwZmIuLjVlM2FiNTQ0NWRiZjU4ZjBlMjZjOThlYTIxZmFkYjQ5MTc5ZjI1MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTIxMiw4ICsyMTIsOCBAQCB2b2lkIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKFN0cmluZ0J1aWxk
ZXImIG91dCwgU3R5bGVQcgogCiBjb25zdCBTdHJpbmcmIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9y
OjpzdHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2spCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2Q2xvc2UsIChBU0NJSUxpdGVyYWwoIjwv
ZGl2PiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc3R5bGVTcGFuQ2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIGRpdkNsb3Nl
LCAoQVNDSUlMaXRlcmFsKCI8L2Rpdj4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHN0eWxlU3BhbkNsb3NlLCAoQVNDSUlMaXRl
cmFsKCI8L3NwYW4+IikpKTsKICAgICByZXR1cm4gaXNCbG9jayA/IGRpdkNsb3NlIDogc3R5bGVT
cGFuQ2xvc2U7CiB9CiAKQEAgLTU1OCw3ICs1NTgsNyBAQCBzdGF0aWMgTm9kZSogaGlnaGVzdEFu
Y2VzdG9yVG9XcmFwTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgRUFubm90YXRlRm9ySW50ZXJj
aAogc3RhdGljIFN0cmluZyBjcmVhdGVNYXJrdXBJbnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgUmFuZ2UmIHVwZGF0ZWRSYW5nZSwgVmVjdG9yPE5v
ZGUqPiogbm9kZXMsCiAgICAgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUs
IGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZl
VVJMcykKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBpbnRlcmNoYW5nZU5ld2xpbmVTdHJpbmcsIChBU0NJSUxpdGVyYWwoIjxiciBjbGFzcz1cIiIg
QXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUgIlwiPiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCI8YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5l
ICJcIj4iKSkpOwogCiAgICAgYm9vbCBjb2xsYXBzZWQgPSB1cGRhdGVkUmFuZ2UuY29sbGFwc2Vk
KEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGlmIChjb2xsYXBzZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmNwcAppbmRleCAwMWQzMzBlYjYwNjk0NmY5ZWUxYmUyZWE1NWMyMGVlNTQ0NjU4NmQzLi5m
OGQ4MjQ0ZmFkYTBmZGFiNTNiNWU2OTU2NTAzOTZhMjk2ZWEwYTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCbG9iVVJMUmVnaXN0cnk6OnVucmVnaXN0
ZXJVUkwoY29uc3QgVVJMJiB1cmwpCiAKIFVSTFJlZ2lzdHJ5JiBCbG9iVVJMUmVnaXN0cnk6OnJl
Z2lzdHJ5KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQmxvYlVSTFJl
Z2lzdHJ5LCBpbnN0YW5jZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChCbG9iVVJMUmVnaXN0cnksIGluc3RhbmNlKTsKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggYzczZDliMDQ2MWNiNmY3ODg4YjQ4NzEyZTRlNDYy
YTQwN2IwYmUyMy4uMTYwNjkyOWVkNWRiMWI3MWE2NzJlMDk0ZDgxMjlkYmM0OWI4M2U4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopCiAK
IHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHZhbHVlQ29udGFpbmVyUHNldWRvLCAoIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBz
ZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVlQ29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CiAg
ICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBiMWU4MjlkZmNjYjBiMGIwMjVkMmM5
NTgzZGRkZDBkN2EyZTQ0NmMxLi5mYjRmM2Q3MGI1YTQ5NjgwMmIyNDJhOTE3NzI1OWE1ZjUyYzU5
MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgRGF0ZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAog
CiBTdGVwUmFuZ2UgRGF0ZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGlu
ZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24s
IChkYXRlRGVmYXVsdFN0ZXAsIGRhdGVEZWZhdWx0U3RlcEJhc2UsIGRhdGVTdGVwU2NhbGVGYWN0
b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0ZXBSYW5nZTo6U3Rl
cERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChkYXRlRGVmYXVsdFN0ZXAsIGRhdGVEZWZh
dWx0U3RlcEJhc2UsIGRhdGVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZh
bHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIHN0ZXBCYXNlID0gcGFy
c2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7CiAgICAg
Y29uc3QgRGVjaW1hbCBtaW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0
dHJpYnV0ZShtaW5BdHRyKSwgRGVjaW1hbDo6ZnJvbURvdWJsZShEYXRlQ29tcG9uZW50czo6bWlu
aW11bURhdGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApp
bmRleCBiMmVmZTg1Nzg0NDZmN2Y5MTFlZTk4OTVhMDRlOTMzYTRjNTc3NjM5Li43MzFhNmRlMDg3
NmVkZTllNjliYTMyMmFmYmE1OWE4MTcxNGE3MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBEZWNpbWFsIERhdGVUaW1lSW5w
dXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogCiBTdGVwUmFuZ2UgRGF0ZVRp
bWVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRs
aW5nKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRpbWVEZWZh
dWx0U3RlcCwgZGF0ZVRpbWVEZWZhdWx0U3RlcEJhc2UsIGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9y
LCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdGVwUmFuZ2U6OlN0ZXBE
ZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRpbWVEZWZhdWx0U3RlcCwgZGF0ZVRp
bWVEZWZhdWx0U3RlcEJhc2UsIGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNj
YWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBzdGVw
QmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciks
IDApOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgp
LmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBv
bmVudHM6Om1pbmltdW1EYXRlVGltZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA0YTQzOGYzN2QyZWUzOWUwYmQ4ODU5NDU1NGI0
MjA0ZGJlYWE2OGU4Li41MTg0NmExMmMyYmEwNGNjZjEyOTliMmYyMTc5ZjZlMDk0MmRkNDk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb24KIAogU3RlcFJhbmdlIERhdGVU
aW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3Rl
cEhhbmRsaW5nKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRp
bWVMb2NhbERlZmF1bHRTdGVwLCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlLCBkYXRlVGlt
ZUxvY2FsU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJl
SW50ZWdlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhj
b25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRp
bWVMb2NhbERlZmF1bHRTdGVwLCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlLCBkYXRlVGlt
ZUxvY2FsU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJl
SW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIo
ZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIDApOwogICAgIGNvbnN0IERlY2lt
YWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWlu
QXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGlt
ZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IGIwMTIwOWFl
ZmNmMzg3NTg2NTQ3NTgwM2I0MmIwMGZkZTQwMmMxY2MuLjBmZjkyNzM5OWEyZTYxYzk1NGJmNjA4
YzAyYmFjNDE0YjliOTRlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFbWFpbEFkZHJlc3MoY29uc3Qg
U3RyaW5nJiBhZGRyZXNzKQogICAgIGlmICghYWRkcmVzc0xlbmd0aCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEpTQzo6
WWFycjo6UmVndWxhckV4cHJlc3Npb24sIHJlZ0V4cCwgKGVtYWlsUGF0dGVybiwgVGV4dENhc2VJ
bnNlbnNpdGl2ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uLCByZWdFeHAsIChlbWFpbFBhdHRl
cm4sIFRleHRDYXNlSW5zZW5zaXRpdmUpKTsKIAogICAgIGludCBtYXRjaExlbmd0aDsKICAgICBp
bnQgbWF0Y2hPZmZzZXQgPSByZWdFeHAubWF0Y2goYWRkcmVzcywgMCwgJm1hdGNoTGVuZ3RoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGRhMDdiZTA0NDdlNTgzOWU5
YzU5YzBlZjNkNWNmOWI4MmEwZWE0ZDAuLjg0OWUyNjVjZWU2ZmMwYzIzY2E0ZTJkMmY1ZjljNGQ2
NWM3M2ZlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNzksNyAr
NzksNyBAQCBVcGxvYWRCdXR0b25FbGVtZW50OjpVcGxvYWRCdXR0b25FbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdl
YmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNv
bnRyb2xsZXIuY3BwCmluZGV4IDQ1MTAwZDFlMDc2NGVkNjU1MmYyMTdlMGZhOThhNzRlZjIzMDky
MGUuLjgyMzhlMGE4NGZhYWYwNWE3ZjdmNzcxZWY5ZjQ1MTU0NDhiYTBmZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgQXRvbWljU3Ry
aW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSYgY28KIHsKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBvd25lckZvcm1G
b3JTdGF0ZShjb250cm9sKTsKICAgICBpZiAoIWZvcm0pIHsKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZm9ybUtleUZvck5vT3duZXIsICgiTm8g
b3duZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGZvcm1L
ZXlGb3JOb093bmVyLCAoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogICAgIEZv
cm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1Ub0tleU1hcC5maW5kKGZvcm0p
OwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybVN0YXRlU2lnbmF0dXJlKCkK
ICAgICAvLyBJbiB0aGUgbGVnYWN5IHZlcnNpb24gb2Ygc2VyaWFsaXplZCBzdGF0ZSwgdGhlIGZp
cnN0IGl0ZW0gd2FzIGEgbmFtZQogICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBvZiBhIGZvcm0gY29u
dHJvbC4gVGhlIGZvbGxvd2luZyBzdHJpbmcgbGl0ZXJhbCBzaG91bGQKICAgICAvLyBjb250YWlu
IHNvbWUgY2hhcmFjdGVycyB3aGljaCBhcmUgcmFyZWx5IHVzZWQgZm9yIG5hbWUgYXR0cmlidXRl
IHZhbHVlcy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzaWdu
YXR1cmUsIChBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQgc2VyaWFsaXplZCBmb3JtIHN0YXRl
IHZlcnNpb24gOCBcblxyPSYiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhTdHJpbmcsIHNpZ25hdHVyZSwgKEFTQ0lJTGl0ZXJhbCgiXG5ccj8lIFdlYktp
dCBzZXJpYWxpemVkIGZvcm0gc3RhdGUgdmVyc2lvbiA4IFxuXHI9JiIpKSk7CiAgICAgcmV0dXJu
IHNpZ25hdHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAppbmRleCBjMjk0OWEyMDhmMDVlNWEzZDVkYjc2ZmRhNjY2ZmFkOGU2YTA3MjAwLi41YTE5ZDNm
OGQ2ZTkxY2YxN2EyOTYyOGJiZjZhMzM1NTc4YjdjMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIHR5cGVkZWYgSGFzaE1h
cDxjb25zdCBIVE1MQW5jaG9yRWxlbWVudCosIFJlZlB0cjxFbGVtZW50Pj4gUm9vdEVkaXRhYmxl
RWxlbWVudE1hCiAKIHN0YXRpYyBSb290RWRpdGFibGVFbGVtZW50TWFwJiByb290RWRpdGFibGVF
bGVtZW50TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUm9vdEVk
aXRhYmxlRWxlbWVudE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFJvb3RFZGl0YWJsZUVsZW1lbnRNYXAsIG1hcCk7CiAgICAgcmV0dXJuIG1hcDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCA5NDdlNzFl
OTA3OGY4YjI1OThkNGU5YzQyYWNjNjg4ZGIyYTMxYmZiLi42ODNhMWEyOTJmN2RlZDFmYmY5MmNh
YmVlNmM2NTM3N2U1ODI0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
dXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcApAQCAtNjYsMTUgKzY2LDE1IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEJ1dHRv
bkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3R5cGUp
IHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1Ym1pdCwgKCJzdWJtaXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgICAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJtaXQs
ICgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAg
ICAgICAgcmV0dXJuIHN1Ym1pdDsKICAgICAgICAgfQogICAgICAgICBjYXNlIEJVVFRPTjogewot
ICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgYnV0dG9uLCAoImJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBBdG9taWNTdHJpbmcsIGJ1dHRvbiwgKCJidXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAgICByZXR1cm4gYnV0dG9uOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgUkVTRVQ6IHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHJlc2V0LCAoInJlc2V0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgi
cmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAg
ICByZXR1cm4gcmVzZXQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggMjNkMjE5Mzk4MGJjZTZkNTk1YjM0YmE5ZjY2MDQ0
OTUxNjc3NjUzOC4uNWQ2ZGNkMjYxZjc4ODg3Y2Y2MWM1YjljMTNhN2YxNGUzZWE1Y2M2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzYsNyArMzYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgic3VtbWFyeTpmaXJzdC1vZi10eXBl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNlbGVjdG9yLCAoInN1
bW1hcnk6Zmlyc3Qtb2YtdHlwZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gc2VsZWN0b3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmNwcAppbmRleCA2ODFlNTUzMDQzMjZjYTY4Nzk2MGY0ZWEwYTNjMTAz
YzQxNTk3ZmRhLi45Y2FlYTU2YmU3ODc4MzBiMDU3YTRlZmFhYjliZjUzNWU3MWFmZWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTEzNSw3ICsx
MzUsNyBAQCBib29sIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAog
CiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgZmllbGRzZXQsICgiZmllbGRzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKGNvbnN0IEF0b21pY1N0cmluZywgZmllbGRzZXQsICgiZmllbGRzZXQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaAppbmRleCBkZGJmNGRm
OWIwMGY1OWY4OTYyOTNkOTkwYmI3NjI4NmJhODdkZjk1Li43ZGU5MWYwZDRjZGVlY2YwZTg3YWVj
NTFkMzE3MGNjMDEzYmMxYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZU93bmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3du
ZXJFbGVtZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0
aWMgSGFzaENvdW50ZWRTZXQ8Q29udGFpbmVyTm9kZSo+JiBkaXNhYmxlZFN1YnRyZWVSb290cygp
CiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaENvdW50
ZWRTZXQ8Q29udGFpbmVyTm9kZSo+LCBub2RlcywgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaENvdW50ZWRTZXQ8Q29udGFpbmVyTm9kZSo+LCBub2Rlcyk7
CiAgICAgICAgIHJldHVybiBub2RlczsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggNzE0YmRiMmUxYmQ4Y2FiM2E4ZjViZTFiY2M3MWNkMTQz
MjQ3YmQ4NC4uZmM2ZmM1MWRkZjcyYTJmYWI4ZjMwNzRjY2MwZTUyYjQ2N2ZhNWJjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
cHJvdGVjdGVkOgogICAgIEtleWdlblNlbGVjdEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgICAgICA6IEhUTUxTZWxlY3RFbGVtZW50KHNlbGVjdFRhZywgZG9jdW1lbnQsIDApCiAgICAg
ewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBw
c2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQta2V5Z2VuLXNlbGVjdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgc2V0UHNldWRv
KHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIEhUTUxLZXlnZW5F
bGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29s
KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5
cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGtleWdlbiwgKCJrZXlnZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IEF0b21pY1N0cmluZywga2V5Z2VuLCAoImtleWdlbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggYjg1MTE0NWYwOGY3MTgyMjg0NWEzOGI1
NDE2MDM2YTlkMzY3YTU1NC4uOTg4MTUwMDIwOTc5MWVlYzJlY2M0OWU2ZjUwNWM4ODlkOWNjZmE0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNTksNyArNTks
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgTGlua0V2ZW50U2VuZGVy
JiBsaW5rTG9hZEV2ZW50U2VuZGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTGlua0V2ZW50U2VuZGVyLCBzaGFyZWRMb2FkRXZlbnRTZW5kZXIsIChldmVudE5hbWVz
KCkubG9hZEV2ZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKExpbmtFdmVudFNlbmRlciwgc2hhcmVkTG9hZEV2ZW50U2VuZGVyLCAoZXZlbnROYW1lcygp
LmxvYWRFdmVudCkpOwogICAgIHJldHVybiBzaGFyZWRMb2FkRXZlbnRTZW5kZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGNiMTE3NWE5MDFkZDc0
MjE3ZDM3ZDMxMmM0Zjk3YTQ2MDcyY2NkNjAuLjllODczOGQ4ZGEzZGY1YmQyMDFhNmEzOGJjMjFl
OWM5YjE5ZTZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMTkyLDcgKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB0eXBlZGVmIEhh
c2hNYXA8RG9jdW1lbnQqLCBIYXNoU2V0PEhUTUxNZWRpYUVsZW1lbnQqPj4gRG9jdW1lbnRFbGVt
ZW50U2V0TWFwOwogc3RhdGljIERvY3VtZW50RWxlbWVudFNldE1hcCYgZG9jdW1lbnRUb0VsZW1l
bnRTZXRNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChEb2N1bWVu
dEVsZW1lbnRTZXRNYXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChEb2N1bWVudEVsZW1lbnRTZXRNYXAsIG1hcCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBhYjkxYmJjODRi
OGU4MGVlNWY3ODdjNDQ3ZjRhZjJmZWQ0NTc3OTgyLi4yZWM5ODRjNTJjMzk2MTdjYmQyY2M3ZTEw
OTY0MDlkMzkyZWE5ZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcApAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZh
bGxiYWNrQ29udGVudCgpCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCwgYWxsIGNh
bGxlcnMgYXJlIGFsbW9zdCBjZXJ0YWlubHkgd3JvbmcuCiBzdGF0aWMgYm9vbCBpc1JlY29nbml6
ZWRUYWdOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+LCB0YWdMaXN0
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8QXRvbWlj
U3RyaW5nSW1wbCo+LCB0YWdMaXN0KTsKICAgICBpZiAodGFnTGlzdC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgYXV0byogdGFncyA9IEhUTUxOYW1lczo6Z2V0SFRNTFRhZ3MoKTsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBIVE1MTmFtZXM6OkhUTUxUYWdzQ291bnQ7IGkrKykgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKaW5kZXggZjJiZmI0Y2Ux
M2M0MTYwZTI1ODEwNjIxY2RjMGQ5NTY2ZDA1NDU2My4uMjU1ZjhmZTdhODVhNzljNWMwNWJmYTcz
ODc0NjJiMDlkNjUyZDRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVs
ZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGJvb2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6aXNG
b2N1c2FibGUoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3B0Z3JvdXAsICgib3B0Z3JvdXAiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgb3B0Z3JvdXAsICgib3B0
Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRw
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3Bw
CmluZGV4IGNlMzgxYjYwODQzNWFiZGE5M2ZlZmViZmIwMjIzOWQ2NjE5MjJjY2EuLjIwMDRlOWQ3
NWVmY2I2MGU0NzE1MTRhY2Y5NWQ5MjJiM2IzOTAyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFBhc3NSZWZQdHI8SFRNTE91
dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91dHB1dEVsZW1lbnQ6OmZvcm1Db250
cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgb3V0cHV0LCAoIm91dHB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lU
SF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBvdXRwdXQsICgib3V0cHV0IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBvdXRwdXQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggNGZkOWQ1NzdmNDg5ZmIy
OTA2NGUxYzVhZDJkMDA4MWIzNzQ4M2Q3MC4uYThhOTBjZDk3NmQyNmE3NjI0YzMwYjUzYTk5OWYx
NmE1NzgyZjJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAK
QEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCByZWdpc3RyYXIoY29uc3QgUmVwbGFjZW1l
bnRQbHVnaW4mKTsKIAogc3RhdGljIFZlY3RvcjxSZXBsYWNlbWVudFBsdWdpbio+JiByZWdpc3Rl
cmVkUGx1Z2luUmVwbGFjZW1lbnRzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoVmVjdG9yPFJlcGxhY2VtZW50UGx1Z2luKj4sIHJlZ2lzdGVyZWRSZXBsYWNlbWVudHMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFJlcGxhY2Vt
ZW50UGx1Z2luKj4sIHJlZ2lzdGVyZWRSZXBsYWNlbWVudHMpOwogICAgIHN0YXRpYyBib29sIGVu
Z2luZXNRdWVyaWVkID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKGVuZ2luZXNRdWVyaWVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZTYz
MWFlMmIxODMxOWQzOGRiOGMwYmYxNjc1ZTU3NjM0NjBjNjZiNi4uNWM0ZDIzNjRlMGQ0ODRjMjgz
ZjY3YmRjZTI5ZjRlYjJlY2QzM2Q4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBjb25zdCBhdXRv
IHJlbW92ZVNuYXBzaG90VGltZXJEZWxheSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgeyAx
NTAwIH07CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgdGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmlu
ZyBtaW1lVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWltZVR5
cGVUb0xvY2FsaXplZFN0cmluZ01hcCwgbWltZVR5cGVUb0xhYmVsVGl0bGVNYXAsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWltZVR5cGVUb0xvY2FsaXplZFN0cmlu
Z01hcCwgbWltZVR5cGVUb0xhYmVsVGl0bGVNYXApOwogICAgIFN0cmluZyB0aXRsZVRleHQgPSBt
aW1lVHlwZVRvTGFiZWxUaXRsZU1hcC5nZXQobWltZVR5cGUpOwogICAgIGlmICghdGl0bGVUZXh0
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRpdGxlVGV4dDsKQEAgLTg2LDcgKzg2LDcgQEAg
c3RhdGljIGNvbnN0IFN0cmluZyB0aXRsZVRleHQoUGFnZSogcGFnZSwgU3RyaW5nIG1pbWVUeXBl
KQogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHN1YnRpdGxlVGV4dChQYWdlKiBwYWdlLCBTdHJpbmcg
bWltZVR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1pbWVUeXBl
VG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9MYWJlbFN1YnRpdGxlTWFwLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJp
bmdNYXAsIG1pbWVUeXBlVG9MYWJlbFN1YnRpdGxlTWFwKTsKICAgICBTdHJpbmcgc3VidGl0bGVU
ZXh0ID0gbWltZVR5cGVUb0xhYmVsU3VidGl0bGVNYXAuZ2V0KG1pbWVUeXBlKTsKICAgICBpZiAo
IXN1YnRpdGxlVGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBzdWJ0aXRsZVRleHQ7CkBA
IC0zOTIsNyArMzkyLDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRBZGRVc2Vy
QWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAKIGJvb2wgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6cGFydE9mU25hcHNob3RPdmVybGF5KE5vZGUqIG5vZGUpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgiLnNuYXBz
aG90LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc2Vs
ZWN0b3IsICgiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IHNuYXBzaG90TGFiZWwgPSBlbnN1cmVVc2Vy
QWdlbnRTaGFkb3dSb290KCkucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CiAgICAgcmV0dXJuIG5vZGUgJiYgc25hcHNob3RMYWJlbCAmJiAobm9kZSA9PSBzbmFw
c2hvdExhYmVsLmdldCgpIHx8IG5vZGUtPmlzRGVzY2VuZGFudE9mKHNuYXBzaG90TGFiZWwuZ2V0
KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXgg
ODY3ZGQyNmZkY2NkNGMyYzU2YmU4MWQ5ZjY1MjExMmZkMDk0ZDYwYi4uY2NjNTIxOTg3ZDRjODhh
MDdkZGNhMjNhMzJjMGVmMzEzYWI1MWRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
ZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxl
Y3RNdWx0aXBsZSwgKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc2VsZWN0T25lLCAoInNlbGVjdC1vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgc2VsZWN0TXVsdGlwbGUsICgic2VsZWN0LW11bHRp
cGxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHNlbGVj
dE9uZSwgKCJzZWxlY3Qtb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBtX211bHRpcGxlID8gc2VsZWN0TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IGM1OWVmMTY4
NWQ2YmJjNmU1Yzk3ZWI3Y2IxYTc4NTFlMjc3MTdhNjkuLmZkMGVhYWJkYWRlZTA1OGIyMDgyOWMz
MGQ1NDg0YWI4MzMxYzY0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0
eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmNwcApAQCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0
aWMgU3R5bGVFdmVudFNlbmRlciYgc3R5bGVMb2FkRXZlbnRTZW5kZXIoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUV2ZW50U2VuZGVyLCBzaGFyZWRMb2FkRXZl
bnRTZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0eWxlRXZlbnRTZW5kZXIsIHNoYXJlZExvYWRFdmVu
dFNlbmRlciwgKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsKICAgICByZXR1cm4gc2hhcmVkTG9h
ZEV2ZW50U2VuZGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcAppbmRleCBmNDZiOWNkZWY3NjhkYTFjMTAzYWY2YzZkNTQ1MzI0Zjk1ODMyZTQyLi44
NmQ3NGJmY2U1ZGRlNTMzNjIyY2YwOTVkZTEzYTc0MGE4ZDNmZjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9v
dCogcm9vdCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0ZXh0YXJl
YTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCA1ZWVhMjFkYWU5N2Q5MGJmNjUwYjVhZDYxYzIwZTg3MjgyNDZiM2Yw
Li45MTI5YzdmYjc4ODcyMjQ5OWU3MmJkZTZjZDkzYzFmMGNjZjdjNTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzc1
LDkgKzM3NSw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVj
dGlvbkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblN0
cmluZyhUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9u
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3J3YXJkLCAoImZvcndh
cmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dhcmQsICgiYmFj
a3dhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgbm9u
ZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcs
IGZvcndhcmQsICgiZm9yd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRv
bWljU3RyaW5nLCBiYWNrd2FyZCwgKCJiYWNrd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBTZWxl
Y3Rpb25IYXNOb0RpcmVjdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAK
aW5kZXggZDBlMjViZTE5MDdlM2M5MmVhZmUzNjgzNmQ4ODFkNjJiZjhjYjUwOC4uMzM1MTMzMDBh
OGUzOGIzNjRiYTBlZDQ1YTE2YzczZTJmMmVlMWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHAKQEAgLTY0LDggKzY0LDggQEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6YXBw
ZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCkgY29uc3QKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZG90WFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiLngiKSkpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvdFlTdHJpbmcsIChBU0NJSUxpdGVyYWwo
Ii55IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3Ry
aW5nLCBkb3RYU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCIueCIpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgZG90WVN0cmluZywgKEFTQ0lJTGl0
ZXJhbCgiLnkiKSkpOwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRvdFhTdHJpbmcs
IG1fY2xpY2tMb2NhdGlvbi54KCkpOwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRv
dFlTdHJpbmcsIG1fY2xpY2tMb2NhdGlvbi55KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlTmFtZXMuY3BwCmluZGV4IGFjMDg5NmEwNmE0N2UxYTg4MDhjZDg5ZmRmNmEzYzQzMzYwMDNk
MzIuLjVmMzI5MjViM2UwMzIxNGM4NGNhYWYwMjNjMGQ5M2JkZTY1NTZlMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCkBAIC0zMSwxMzkgKzMxLDEzOSBAQCBuYW1lc3Bh
Y2UgSW5wdXRUeXBlTmFtZXMgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIGJ1dHRvbigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJi
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJi
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgY2hlY2tib3goKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiY2hlY2tib3gi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJjaGVja2Jv
eCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJjb2xvciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBuYW1lLCAoImNvbG9yIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIGRhdGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
ZGF0ZXRpbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJkYXRldGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBkYXRl
dGltZWxvY2FsKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoImRhdGV0aW1lLWxvY2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgZW1haWwoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWUsICgiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0
b21pY1N0cmluZywgbmFtZSwgKCJlbWFpbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBmaWxl
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoImZpbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFt
ZSwgKCJmaWxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJoaWRkZW4i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJoaWRkZW4i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgaW1hZ2UoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiaW1hZ2UiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJpbWFnZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBtb250aCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJtb250aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoQXRvbWljU3RyaW5nLCBuYW1lLCAoIm1vbnRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IG51bWJlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbmFtZSwgKCJudW1iZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0
cmluZywgbmFtZSwgKCJudW1iZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgcGFzc3dvcmQo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgicGFzc3dvcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywg
bmFtZSwgKCJwYXNzd29yZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiByYWRpbygpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJy
YWRpbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJh
ZGlvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJhbmdlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIG5hbWUsICgicmFuZ2UiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgcmVzZXQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJyZXNldCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBzZWFyY2goKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgic2VhcmNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9t
aWNTdHJpbmcsIG5hbWUsICgic2VhcmNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHN1Ym1p
dCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywg
bmFtZSwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGVsZXBob25lKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
InRlbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRl
bCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRleHQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJ0ZXh0IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIHRpbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgidGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
QXRvbWljU3RyaW5nLCBuYW1lLCAoInRpbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdXJs
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBuYW1l
LCAoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB3ZWVrKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIndlZWsiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgbmFtZSwgKCJ3ZWVrIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKaW5kZXggYjNkMjI4YzNiOTg4MDc3
ODkwMjUwN2YzNTQ5NzEyOTMyNTI5NGVmNS4uMWEyMDgyNTJmMmM3MDY3NTliYzk2Y2M3MzZmOTlj
M2FkMWVkN2U4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcApAQCAt
Mjg5LDE5ICsyODksMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xsZXI6OnNldE11dGVkKGJvb2wgZmxh
ZykKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHdhaXRp
bmcsICgid2FpdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCB3
YWl0aW5nLCAoIndhaXRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBs
YXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwbGF5aW5nLCAoInBsYXlpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKEF0b21pY1N0cmluZywgcGxheWluZywgKCJwbGF5aW5nIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwbGF5aW5nOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBlbmRlZDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA0NzI5ODcyNzRkMDA0
NDMyMzQxM2M0YzVjMzI2NTUyYmFlZjk5MWJiLi5iMGY5MDMzMDAyMzZiNDQ2MTg5MzFlZDVlNGQz
NjAzMGE1ZDg0MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAt
OTAsNyArOTAsNyBAQCBEZWNpbWFsIE1vbnRoSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVw
VXAoKSBjb25zdAogCiBTdGVwUmFuZ2UgTW9udGhJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShB
bnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3Rl
cERlc2NyaXB0aW9uLCAobW9udGhEZWZhdWx0U3RlcCwgbW9udGhEZWZhdWx0U3RlcEJhc2UsIG1v
bnRoU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50
ZWdlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25z
dCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAobW9udGhEZWZh
dWx0U3RlcCwgbW9udGhEZWZhdWx0U3RlcEJhc2UsIG1vbnRoU3RlcFNjYWxlRmFjdG9yLCBTdGVw
UmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVj
aW1hbCBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUo
bWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUobW9udGhEZWZhdWx0U3RlcEJhc2UpKTsKICAg
ICBjb25zdCBEZWNpbWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0
QXR0cmlidXRlKG1pbkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25lbnRzOjpt
aW5pbXVtTW9udGgoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmlu
ZGV4IDRmZmUzYjFiZjdkZTk4M2JlYWU5MGFmNTBjNTM1ZTNiNmQ0NjZjNjQuLjdlMmVjMjA0OTlh
MTM1NDQyMDcxYTZkZTdjOTVlOGViZWQ5MjZjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBib29sIE51bWJlcklucHV0VHlwZTo6
dHlwZU1pc21hdGNoKCkgY29uc3QKIAogU3RlcFJhbmdlIE51bWJlcklucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2Ny
aXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChudW1iZXJEZWZhdWx0U3RlcCwgbnVtYmVyRGVmYXVs
dFN0ZXBCYXNlLCBudW1iZXJTdGVwU2NhbGVGYWN0b3IpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24s
IHN0ZXBEZXNjcmlwdGlvbiwgKG51bWJlckRlZmF1bHRTdGVwLCBudW1iZXJEZWZhdWx0U3RlcEJh
c2UsIG51bWJlclN0ZXBTY2FsZUZhY3RvcikpOwogICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2Ug
PSBwYXJzZVRvRGVjaW1hbEZvck51bWJlclR5cGUoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUo
bWluQXR0ciksIG51bWJlckRlZmF1bHRTdGVwQmFzZSk7CiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCB1c2UgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4IGZvciBudW1iZXIgaW5wdXQgdHlwZS4K
ICAgICBjb25zdCBEZWNpbWFsIGZsb2F0TWF4ID0gRGVjaW1hbDo6ZnJvbURvdWJsZShzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAppbmRleCAwMDIzOTg0NWQzZWQ0NDNmMDUzYzI0YzcwODFlNzdkMzNjMTI4ODczLi44
ZmVmNmUwNjIxNGRkMzBhOGNhOTIyNjI0YTZmMzU5NzNhOGM1OTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIGJvb2wgUmFuZ2VJbnB1
dFR5cGU6OnN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdAogCiBTdGVwUmFuZ2UgUmFuZ2VJbnB1dFR5
cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25z
dAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6
OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAocmFuZ2VEZWZhdWx0U3RlcCwgcmFu
Z2VEZWZhdWx0U3RlcEJhc2UsIHJhbmdlU3RlcFNjYWxlRmFjdG9yKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2Ny
aXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChyYW5nZURlZmF1bHRTdGVwLCByYW5nZURlZmF1bHRT
dGVwQmFzZSwgcmFuZ2VTdGVwU2NhbGVGYWN0b3IpKTsKIAogICAgIGNvbnN0IERlY2ltYWwgbWlu
aW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciks
IHJhbmdlRGVmYXVsdE1pbmltdW0pOwogICAgIGNvbnN0IERlY2ltYWwgbWF4aW11bSA9IGVuc3Vy
ZU1heGltdW0ocGFyc2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRy
KSwgcmFuZ2VEZWZhdWx0TWF4aW11bSksIG1pbmltdW0sIHJhbmdlRGVmYXVsdE1heGltdW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCmluZGV4IGM0NzcxOGEwYzFmMzNiOTVlM2JmM2E2YjIz
NWI1MmNjYzQ3ODQ4ZDAuLjAxNWM1ZmY2MzYyNjNkNDM0MjEwYTAzMjBkMTNjMjk0YmI2NTkxMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKQEAgLTY1LDEzICs2NSwxMyBAQCBTdGVwUmFu
Z2U6OlN0ZXBSYW5nZShjb25zdCBEZWNpbWFsJiBzdGVwQmFzZSwgY29uc3QgRGVjaW1hbCYgbWlu
aW11bSwgY29uc3QgRGVjaQogRGVjaW1hbCBTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcigpIGNv
bnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgREJMX01BTlRfRElHIGluc3RlYWQg
b2YgRkxUX01BTlRfRElHIHJlZ2FyZGluZyB0byBIVE1MNSBzcGVjaWZpY2F0aW9uLgotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFsLCB0d29Qb3dlck9mRmxv
YXRNYW50aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgRkxU
X01BTlRfRElHKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZGbG9hdE1hbnRpc3NhQml0cywgKERlY2ltYWw6OlBv
c2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBGTFRfTUFOVF9ESUcpKTsKICAgICByZXR1cm4gbV9z
dGVwRGVzY3JpcHRpb24uc3RlcFZhbHVlU2hvdWxkQmUgPT0gU3RlcFZhbHVlU2hvdWxkQmVSZWFs
ID8gbV9zdGVwIC8gdHdvUG93ZXJPZkZsb2F0TWFudGlzc2FCaXRzIDogRGVjaW1hbCgwKTsKIH0K
IAogRGVjaW1hbCBTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKGNvbnN0IERlY2ltYWwmIGN1
cnJlbnRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbmV3VmFsdWUpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IERlY2ltYWwsIHRlblBvd2VyT2YyMSwgKERl
Y2ltYWw6OlBvc2l0aXZlLCAyMSwgMSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhjb25zdCBEZWNpbWFsLCB0ZW5Qb3dlck9mMjEsIChEZWNpbWFsOjpQb3Np
dGl2ZSwgMjEsIDEpKTsKICAgICBpZiAobmV3VmFsdWUgPj0gdGVuUG93ZXJPZjIxKQogICAgICAg
ICByZXR1cm4gbmV3VmFsdWU7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBib29sIFN0ZXBSYW5nZTo6
c3RlcE1pc21hdGNoKGNvbnN0IERlY2ltYWwmIHZhbHVlRm9yQ2hlY2spIGNvbnN0CiAgICAgLy8g
RGVjaW1hbCdzIGZyYWN0aW9uYWwgcGFydCBzaXplIGlzIERCTF9NQU5fRElHLWJpdC4gSWYgdGhl
IGN1cnJlbnQgdmFsdWUKICAgICAvLyBpcyBncmVhdGVyIHRoYW4gc3RlcCoyXkRCTF9NQU5UX0RJ
RywgdGhlIGZvbGxvd2luZyBjb21wdXRhdGlvbiBmb3IKICAgICAvLyByZW1haW5kZXIgbWFrZXMg
bm8gc2Vuc2UuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IERlY2lt
YWwsIHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwg
VUlOVDY0X0MoMSkgPDwgREJMX01BTlRfRElHKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNz
YUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgREJMX01BTlRfRElH
KSk7CiAgICAgaWYgKHZhbHVlIC8gdHdvUG93ZXJPZkRvdWJsZU1hbnRpc3NhQml0cyA+IG1fc3Rl
cCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIFRoZSBjb21wdXRhdGlvbiBmb2xsb3dz
IEhUTUw1IDQuMTAuNy4yLjEwIGBUaGUgc3RlcCBhdHRyaWJ1dGUnIDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGMwOTA0MTkwMTQ4YzQ2MzQyZmM4ZTdhMmU5YzFjOWQx
NjNlZTgzNTUuLjI5YzM4ZjNlZTc0ZGU2MzZlYTc0NjBhNGJjYTBhNjQ1YTU5ZDYyZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtNzcsNyArNzcsNyBAQCBEZWNpbWFs
IFRpbWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAKIFN0ZXBSYW5n
ZSBUaW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBI
YW5kbGluZykgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKHRpbWVEZWZh
dWx0U3RlcCwgdGltZURlZmF1bHRTdGVwQmFzZSwgdGltZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJh
bmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRp
b24sIHN0ZXBEZXNjcmlwdGlvbiwgKHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1bHRTdGVwQmFz
ZSwgdGltZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRC
ZUludGVnZXIpKTsKIAogICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVy
KGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKICAgICBjb25zdCBEZWNp
bWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1p
bkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25lbnRzOjptaW5pbXVtVGltZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCA4NGNhOTg4ZmJhYmI3
OGI2OTAyMjdmMTk2YzM5Nzc3MzJiZmZhNjY0Li5jOWU5NWRhNDE0NTNhMTA3NzBkNTdkNzAyMDk4
NmRmMjE0N2JiNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTU2
LDcgKzU2LDcgQEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgV2Vla0lucHV0VHlwZTo6ZGF0ZVR5cGUo
KSBjb25zdAogCiBTdGVwUmFuZ2UgV2Vla0lucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0
ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVz
Y3JpcHRpb24sICh3ZWVrRGVmYXVsdFN0ZXAsIHdlZWtEZWZhdWx0U3RlcEJhc2UsIHdlZWtTdGVw
U2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0ZXBS
YW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sICh3ZWVrRGVmYXVsdFN0ZXAs
IHdlZWtEZWZhdWx0U3RlcEJhc2UsIHdlZWtTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFy
c2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIHN0ZXBC
YXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
d2Vla0RlZmF1bHRTdGVwQmFzZSk7CiAgICAgY29uc3QgRGVjaW1hbCBtaW5pbXVtID0gcGFyc2VU
b051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGVjaW1hbDo6ZnJv
bURvdWJsZShEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWsoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5k
ZXggZGViYzgzMTAyNzk5YzE2NmM2NzdlN2M2NGQwYjRmYjBmYTI1MDVkMC4uNGUyNDI1MGU2NmRj
NmUxZDgxMjQ4MjViZmU0ZjY4YjQ4MGMzYmQ4ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xODk3LDcg
KzE4OTcsNyBAQCBQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Ojp3ZWJraXRHZXRJbWFnZURhdGFIRChmbG9hdCBzeCwgZgogUGFzc1JlZlB0cjxJbWFnZURhdGE+
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Z2V0SW1hZ2VEYXRhKEltYWdlQnVmZmVyOjpDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQg
c3csIGZsb2F0IHNoLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWNhbnZh
cygpLT5vcmlnaW5DbGVhbigpKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJVbmFibGUgdG8gZ2V0
IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUgY2FudmFzIGhhcyBiZWVuIHRhaW50
ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVy
YWwoIlVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNhbnZhcyBiZWNhdXNlIHRoZSBjYW52
YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4gZGF0YS4iKSkpOwogICAgICAgICBj
YW52YXMoKS0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1
cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgICAgICBlYyA9
IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGZmMWY5ODYyYzk1OTA2NDZiNWY0NmJkYTA2
ZmMzNjA0ZmM1NzEwY2MuLjBkNjZjMDkyOTIwOTQzYWU0M2RjZjEwOWQ0YzU3MzBiNjg0NDNhZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0x
MDUwLDkgKzEwNTAsOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogCiAgICAg
SFRNTF9CRUdJTl9TVEFURShNYXJrdXBEZWNsYXJhdGlvbk9wZW5TdGF0ZSkgewotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXNoRGFzaFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiLS0iKSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBkb2N0eXBlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJkb2N0eXBlIikpKTsKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY2RhdGFTdHJpbmcs
IChBU0NJSUxpdGVyYWwoIltDREFUQVsiKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBkYXNoRGFzaFN0cmluZywgKEFTQ0lJTGl0ZXJh
bCgiLS0iKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoU3RyaW5nLCBkb2N0eXBlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJkb2N0eXBlIikpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgY2Rh
dGFTdHJpbmcsIChBU0NJSUxpdGVyYWwoIltDREFUQVsiKSkpOwogICAgICAgICBpZiAoY2MgPT0g
Jy0nKSB7CiAgICAgICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVhZFJlc3VsdCByZXN1
bHQgPSBzb3VyY2UubG9va0FoZWFkKGRhc2hEYXNoU3RyaW5nKTsKICAgICAgICAgICAgIGlmIChy
ZXN1bHQgPT0gU2VnbWVudGVkU3RyaW5nOjpEaWRNYXRjaCkgewpAQCAtMTI1Myw4ICsxMjUzLDgg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygp
OwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwdWJsaWNTdHJpbmcsIChBU0NJSUxpdGVy
YWwoInB1YmxpYyIpKSk7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBzeXN0ZW1TdHJpbmcsIChBU0NJSUxpdGVyYWwoInN5c3RlbSIpKSk7CisgICAg
ICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBw
dWJsaWNTdHJpbmcsIChBU0NJSUxpdGVyYWwoInB1YmxpYyIpKSk7CisgICAgICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBzeXN0ZW1TdHJpbmcs
IChBU0NJSUxpdGVyYWwoInN5c3RlbSIpKSk7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJ1AnIHx8
IGNjID09ICdwJykgewogICAgICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6TG9va0FoZWFk
UmVzdWx0IHJlc3VsdCA9IHNvdXJjZS5sb29rQWhlYWRJZ25vcmluZ0Nhc2UocHVibGljU3RyaW5n
KTsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6RGlkTWF0
Y2gpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKaW5kZXggMjVk
NGJmZjM0MDA1MmYwZWMzZDNlNjdjN2Q2YzE0NjI3ZGE3NDc4OC4uNTJiMWJiYzY5ODY5ZTAxODNl
ZjgwMGIxMGE4MDJkYzJjN2E3MWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNT
QXVkaXRvci5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6OmluaXQoRG9j
dW1lbnQqIGRvY3VtZW50LCBYU1NBdWRpdG9yRGVsZWdhdGUqIGF1ZGl0b3JEZWxlZ2F0ZSkKIAog
ICAgIFN0cmluZyBodHRwQm9keUFzU3RyaW5nOwogICAgIGlmIChEb2N1bWVudExvYWRlciogZG9j
dW1lbnRMb2FkZXIgPSBkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBYU1NQ
cm90ZWN0aW9uSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJYLVhTUy1Qcm90ZWN0aW9uIikpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgWFNT
UHJvdGVjdGlvbkhlYWRlciwgKEFTQ0lJTGl0ZXJhbCgiWC1YU1MtUHJvdGVjdGlvbiIpKSk7CiAg
ICAgICAgIFN0cmluZyBoZWFkZXJWYWx1ZSA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKTsKICAgICAgICAgU3RyaW5nIGVycm9y
RGV0YWlsczsKICAgICAgICAgdW5zaWduZWQgZXJyb3JQb3NpdGlvbiA9IDA7CkBAIC01MjIsNyAr
NTIyLDcgQEAgYm9vbCBYU1NBdWRpdG9yOjpmaWx0ZXJCdXR0b25Ub2tlbihjb25zdCBGaWx0ZXJU
b2tlblJlcXVlc3QmIHJlcXVlc3QpCiAKIGJvb2wgWFNTQXVkaXRvcjo6ZXJhc2VEYW5nZXJvdXNB
dHRyaWJ1dGVzSWZJbmplY3RlZChjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2FmZUphdmFTY3Jp
cHRVUkwsIChBU0NJSUxpdGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgc2FmZUphdmFTY3JpcHRV
UkwsIChBU0NJSUxpdGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKSk7CiAKICAgICBib29sIGRp
ZEJsb2NrU2NyaXB0ID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1ZXN0
LnRva2VuLmF0dHJpYnV0ZXMoKS5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDY0NGZhYWU0Nzk2
NjRlOTBlMTJmM2Q5ZDM1MTFiODczZWRmZGNkMDEuLjQ5MTk4NDZlNzY3MmYwYWEzYmZkNGFlYjJi
YjEyZWE2NDJmMjRmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rl
dGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBEZXRhaWxzTWFy
a2VyQ29udHJvbDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgRGV0YWlsc01hcmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LWRldGFpbHMtbWFya2Vy
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1
ZElkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKaW5kZXggYWUzNmZmMzIwZTBmNTI3YWMzZjc2NWRkNGRhZDEzMjE2MzE3
NDFhZi4uNDMwOWQwODI3ZDc3NjgzNjdhYjMyOTIwMDZhMDg0YzNkZmZkMDc0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApA
QCAtODQsNyArODQsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gTWVk
aWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAt
MjcyLDcgKzI3Miw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVt
ZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1l
bmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIGlkOwogfQogCkBAIC0yOTEsNyArMjkxLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xP
dmVybGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zlcmxh
eS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTMxMiw3
ICszMTIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbAogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgTWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1
bWUtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50Ojp1cGRhdGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXN0
YXR1cy1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGFu
ZWxNdXRlQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQ5MCw3ICs0OTAsNyBAQCBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJNdQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcGxheS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01NzAsNyArNTcwLDcgQEAgdm9pZCBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxh
eS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNTkzLDcg
KzU5Myw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTYxNSw3ICs2MTUsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0Jh
Y2tCdXR0b25FbGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtC
YWNrQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwog
fQogCkBAIC02NDYsNyArNjQ2LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cmV3aW5kLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gaWQ7CiB9CiAKQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBl
dmVudAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJl
YWx0aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gaWQ7CiB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dn
bGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTc1OCw3ICs3NTgsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENsb3Nl
ZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC04MjIsMTQgKzgyMiwxNCBAQCB2b2lk
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkKIHsKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc2VsZWN0ZWRDbGFzc1ZhbHVlLCAoInNlbGVjdGVkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNlbGVjdGVkQ2xhc3NWYWx1ZSwgKCJzZWxlY3RlZCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmICghbWVkaWFD
b250cm9sbGVyKCktPmhhc0Nsb3NlZENhcHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEw
MDUsNyArMTAwNSw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzZXREdXJh
dGlvbihkb3VibGUgZHVyYXRpb24pCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTAyOSw3ICsx
MDI5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+
IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApAQCAtMTA1Myw3ICsxMDUzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
U2xpZGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12
b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApAQCAtMTA5OCw3ICsxMDk4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxz
Y3JlZW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTM1
LDcgKzExMzUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25F
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVt
ZS1taW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTExNjcsNyArMTE2Nyw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1heEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxz
Y3JlZW4tdm9sdW1lLW1heC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1t
YXgtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBpZDsKIH0KIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXMKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0TWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50U2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZS1yZW1haW5pbmctZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRp
c3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IGlkOwogfQogCkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1
cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheQog
CiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xDdXJyZW50VGltZURp
c3BsYXlFbGVtZW50U2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3Vy
cmVudC10aW1lLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTEyNDcsNyArMTI0Nyw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzYmM3YjhmMmRh
OGFkOGMwZDE3NGUwYjI1MWQwOTllYTk4MGI5Y2Y1Li5lYzBjOTFlMTNjZjY3ZjFlNDQ5MmU0ZjNl
ZDcxN2YzNGZiODg5NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sczo6c3RvcEhp
ZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sczo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMi
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scyIpKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQu
Y3BwCmluZGV4IGE1NzYzMzRkZTgzOTFhZjQxNjNlMDFjNjU2YWZhNGU4NWVmYjUyMTIuLmI3MGE4
N2FmMzYwNzRkOWFhNjQyMWNkZGI3MDE1YzVhZDNmNTk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBA
QCBib29sIE1ldGVyU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUpCiBNZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAo
Ii13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
QXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgc2V0UHNldWRvKHBzZXVk
b0lkKTsKIH0KIApAQCAtODAsOSArODAsOSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0
ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlcgogCiBj
b25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVFbGVtZW50Ojp2YWx1ZVBzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBv
cHRpbXVtUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVy
LXN1Ym9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZXZlbkxl
c3NHb29kUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBvcHRpbXVtUHNldWRvSWQsICgi
LXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhB
dG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLXN1Ym9wdGlt
dW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgZXZlbkxl
c3NHb29kUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIEhUTUxNZXRlckVsZW1l
bnQqIG1ldGVyID0gbWV0ZXJFbGVtZW50KCk7CiAgICAgaWYgKCFtZXRlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggZDFiMGU3OGQx
NTExOWRiZjJlYzY0YmFlYjUyNWQwNGI3OGIzZWUyMC4uYmIzYzRlMDBiZjBkYTdmN2YwZTc1OTY2
NDIzOTczZDJlMGU1ZjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0
ZXJTaGFkb3dFbGVtZW50LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBNZXRlckJh
ckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IE1ldGVyU2hhZG93RWxlbWVu
dChkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItYmFyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1l
dGVyLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAg
c2V0UHNldWRvKHBzZXVkb0lkKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggZmJjNjk0MGEwY2ZjNTMxNjg5
Yzg2NTAzZDI2NTdhMWFjYWQzNjFjMy4uOWFiNDBhZjI0NmI0ZTc1MWMzOTM5NjY4ODczZDRjNjRi
NTFiMzI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCkBAIC01NjcsMTMgKzU2NywxMyBAQCBIVE1MSW5wdXRFbGVtZW50KiBTbGlk
ZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJr
aXQtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNT
dHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0KIAog
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lk
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBtZWRpYVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIG1lZGlhU2xpZGVyVGh1
bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKQEAgLTYy
Myw4ICs2MjMsOCBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UgogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRp
YVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAoIi13ZWJr
aXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRv
bWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1j
b250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywg
c2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gc2hhZG93SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOwogICAgIGlmICghaW5wdXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXgg
MTk2ZGE2NWUyZWU5NTFhZjRjMDY4ODg3ZWMzMDdiYjVmMGZmNWVkNC4uY2NhZWYyYjgzZTUzYjUw
NjhmNzdhOTIzYzM1YjYzMDE5ZDQyMjcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAtNjEsNyArNjEsNyBAQCBQYXNzUmVmUHRy
PFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgU3BpbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNwaW5CdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaW5uZXJQc2V1ZG9JZCwgKCItd2Via2l0LWlubmVyLXNwaW4tYnV0
dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGlubmVyUHNldWRv
SWQsICgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaW5uZXJQc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKaW5kZXggNDAxMDMyYTViYjU0YmI5MjA1NjM5ODVhYmI0ZjA0NGM0NmE5ZGIzYS4uODY5NmQ3
OTBjOTQ4YzM4YzZkZjUzOWNmM2QyNGRiZmYwNmQ5MDBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0x
NDIsOSArMTQyLDkgQEAgUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmUKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cmVzdWx0c0lkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gt
cmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlY29y
YXRpb25JZCwgKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhBdG9taWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRz
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCByZXN1bHRz
RGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBkZWNvcmF0aW9uSWQsICgiLXdlYmtp
dC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICBFbGVtZW50KiBob3N0ID0gc2hhZG93SG9zdCgpOwogICAgIGlmICghaG9zdCkKICAg
ICAgICAgcmV0dXJuIHJlc3VsdHNJZDsKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50OjpjcmVhdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtc2VhcmNoLWNh
bmNlbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgcHNl
dWRvSWQsICgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKQEAgLTQ2MSw3
ICs0NjEsNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzdG9wU3BlZWNo
SW5wdXQoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1pbnB1dC1zcGVlY2gt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHBzZXVkb0lk
LCAoIi13ZWJraXQtaW5wdXQtc3BlZWNoLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAK
aW5kZXggMmQwYjQwNTI4ZDdjZWYwY2Y3MjY0MmQ5Y2QwOTM2ZjJhNTI0ZjQ0YS4uYWE4ZWYyMDU0
ZGI1NzUwZWU1YmFjY2RlZDNmNTEwNWJjZmExYWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKQEAgLTU3
LDcgKzU3LDcgQEAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6cGx1Z2luRWxlbWVudCgpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJr
aXQtcGx1Z2luLXJlcGxhY2VtZW50IikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtcGx1Z2luLXJl
cGxhY2VtZW50IikpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKaW5kZXggYmRiZWM2ZjQwNDNiYTY5ZmI5YmE4ZmMyY2Q5
M2MyOGU3ZjI4MmE4MC4uNThiZmM2ODMwYTU1OTVmYWZlOGQyZTgyOTdkYWQyY2E4ZmZlZmExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC00MywzNyArNDMs
MzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJh
Y2s6OmFsdGVybmF0aXZlS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUs
ICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJh
Y2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVzY3JpcHRpb24sICgiZGVzY3JpcHRpb24iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgZGVzY3JpcHRpb24s
ICgiZGVzY3JpcHRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJh
Y2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBtYWluLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKGNvbnN0IEF0b21pY1N0cmluZywgbWFpbiwgKCJtYWluIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBtYWluOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIEF1ZGlvVHJhY2s6Om1haW5EZXNjS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWFpbkRlc2MsICgibWFpbi1k
ZXNjIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIG1haW5E
ZXNjLCAoIm1haW4tZGVzYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gbWFpbkRlc2M7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFj
azo6dHJhbnNsYXRpb25LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFuc2xhdGlvbiwgKCJ0cmFuc2xhdGlvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFuc2xhdGlvbiwg
KCJ0cmFuc2xhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gdHJhbnNsYXRpb247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFj
azo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNvbW1lbnRhcnksICgiY29tbWVudGFyeSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNv
bW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNw
cAppbmRleCAyZGYzNTdjZTQ3MjUzNTdhY2M0NTY3OTI5ZDJmOGY5MDhjMjBhOWNhLi42YTI4YWFl
NGQzN2JiNzliYmQ4MTNiNjQxMDM1Y2Q0NDU1YzVmYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwCkBAIC00OSw1NSArNDksNTUgQEAgc3RhdGljIGNvbnN0IGludCBp
bnZhbGlkVHJhY2tJbmRleCA9IC0xOwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6
c3VidGl0bGVzS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoInN1YnRpdGxlcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVz
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzdWJ0
aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpjYXB0aW9uc0tleXdv
cmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGNhcHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhj
b25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlc2NyaXB0
aW9ucywgKCJkZXNjcmlwdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0
b21pY1N0cmluZywgZGVzY3JpcHRpb25zLCAoImRlc2NyaXB0aW9ucyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb25zOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6Y2hhcHRlcnNLZXl3b3JkKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjaGFwdGVy
cywgKCJjaGFwdGVycyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3Ry
aW5nLCBjaGFwdGVycywgKCJjaGFwdGVycyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gY2hhcHRlcnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
VGV4dFRyYWNrOjptZXRhZGF0YUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1ldGFkYXRhLCAoIm1ldGFkYXRhIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIG1ldGFkYXRhLCAoIm1l
dGFkYXRhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBtZXRhZGF0YTsKIH0KICAgICAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpmb3Jj
ZWRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBmb3JjZWQsICgiZm9yY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBBdG9taWNTdHJpbmcsIGZvcmNlZCwgKCJmb3JjZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGZvcmNlZDsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBUZXh0VHJhY2s6OmRpc2FibGVkS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3BlbiwgKCJkaXNhYmxl
ZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAo
ImRpc2FibGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBvcGVuOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6aGlkZGVuS2V5
d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgY2xvc2VkLCAoImhpZGRlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29u
c3QgQXRvbWljU3RyaW5nLCBjbG9zZWQsICgiaGlkZGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjbG9zZWQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgVGV4dFRyYWNrOjpzaG93aW5nS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZW5kZWQsICgic2hvd2luZyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJzaG93
aW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBl
bmRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXgg
YmMzOTlmYmIwMGM0NGFiNDkyMzY0MTMzYzVkYzA4YjBiMmUzYWMxNi4uNjBkZWU3ZTNhM2VlYjA5
Y2FhMzg0M2VjN2MxMTZmOWQ4NWNmOWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIGN1ZVNoYWRvd1BzZXVkb0lkKCkKICAgICB7Ci0gICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwg
KCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJl
dHVybiBjdWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXgg
ODY5ZWQ4MzAwZTEyZWYwOGRlZGM4ZjBiZTVmMTU2OTJhMWM0NTM2Yy4uMGM5MjczZjM4MWIzOTAy
YzIwZTNhZTNmMWU4YWJmZWQ1NWExZDE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmNwcApAQCAtNzIsMzEgKzcyLDMxIEBAIENPTVBJTEVfQVNTRVJUKFdURl9BUlJBWV9MRU5HVEgo
ZGlzcGxheUFsaWdubWVudE1hcCkgPT0gVlRUQ3VlOjpOdW1iZXJPZkFsaWdubWVuCiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcmIHN0YXJ0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhcnQsIChBU0NJSUxpdGVyYWwoInN0YXJ0Iikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3Ry
aW5nLCBzdGFydCwgKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSkpOwogICAgIHJldHVybiBzdGFydDsK
IH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgbWlkZGxlS2V5d29yZCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWlkZGxlLCAoQVNDSUlMaXRl
cmFsKCJtaWRkbGUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhjb25zdCBTdHJpbmcsIG1pZGRsZSwgKEFTQ0lJTGl0ZXJhbCgibWlkZGxlIikpKTsKICAg
ICByZXR1cm4gbWlkZGxlOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBlbmRLZXl3b3JkKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlbmQs
IChBU0NJSUxpdGVyYWwoImVuZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgZW5kLCAoQVNDSUlMaXRlcmFsKCJlbmQiKSkpOwog
ICAgIHJldHVybiBlbmQ7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIGxlZnRLZXl3b3JkKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsZWZ0
LCAoImxlZnQiKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IFN0cmluZywgbGVmdCwgKCJsZWZ0IikpOwogICAgIHJldHVybiBsZWZ0OwogfQogCiBz
dGF0aWMgY29uc3QgU3RyaW5nJiByaWdodEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJpZ2h0LCAoInJpZ2h0IikpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHJpZ2h0
LCAoInJpZ2h0IikpOwogICAgIHJldHVybiByaWdodDsKIH0KIApAQCAtMTA3LDEzICsxMDcsMTMg
QEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaG9yaXpvbnRhbEtleXdvcmQoKQogCiBzdGF0aWMgY29u
c3QgU3RyaW5nJiB2ZXJ0aWNhbEdyb3dpbmdMZWZ0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxybCwgKEFTQ0lJTGl0
ZXJhbCgicmwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBTdHJpbmcsIHZlcnRpY2FscmwsIChBU0NJSUxpdGVyYWwoInJsIikpKTsKICAgICBy
ZXR1cm4gdmVydGljYWxybDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdmVydGljYWxHcm93
aW5nUmlnaHRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCB2ZXJ0aWNhbGxyLCAoQVNDSUlMaXRlcmFsKCJsciIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgdmVydGlj
YWxsciwgKEFTQ0lJTGl0ZXJhbCgibHIiKSkpOwogICAgIHJldHVybiB2ZXJ0aWNhbGxyOwogfQog
CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBWVFRDdWVCb3g6OmFwcGx5Q1NTUHJvcGVydGllcyhj
b25zdCBJbnRTaXplJikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0dEN1ZUJv
eFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwgKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
Y29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwgKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7CiB9
CiAKQEAgLTU3Nyw3ICs1NzcsNyBAQCBzdGF0aWMgYm9vbCBpc0N1ZVBhcmFncmFwaFNlcGFyYXRv
cihVQ2hhciBjaGFyYWN0ZXIpCiAKIHZvaWQgVlRUQ3VlOjpkZXRlcm1pbmVUZXh0RGlyZWN0aW9u
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBy
dFRhZywgKEFTQ0lJTGl0ZXJhbCgicnQiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIHJ0VGFnLCAoQVNDSUlMaXRlcmFsKCJydCIp
KSk7CiAgICAgY3JlYXRlV2ViVlRUTm9kZVRyZWUoKTsKICAgICBpZiAoIW1fd2ViVlRUTm9kZVRy
ZWUpCiAgICAgICAgIHJldHVybjsKQEAgLTcyMSw3ICs3MjEsNyBAQCB2b2lkIFZUVEN1ZTo6Y2Fs
Y3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIAogdm9pZCBWVFRDdWU6Om1hcmtGdXR1cmVB
bmRQYXN0Tm9kZXMoQ29udGFpbmVyTm9kZSogcm9vdCwgZG91YmxlIHByZXZpb3VzVGltZXN0YW1w
LCBkb3VibGUgbW92aWVUaW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3Ry
aW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CiAgICAgCiAg
ICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFtcCA9
IHByZXZpb3VzVGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3Bw
CmluZGV4IDA3MjcwYzJiN2JiYTQ2Zjc0YjUzMzM4ZTEyZDgwNTZiODQyZDBjZDguLjQ4NmU0OTM5
ZjQ4NDMzYTQ3MzJmMDFlNDRkNmNiM2M0M2FhN2JkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFZUVFJlZ2lvbjo6c2V0
Vmlld3BvcnRBbmNob3JZKGRvdWJsZSB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyBWVFRSZWdpb246OnNjcm9sbCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdXBTY3JvbGxWYWx1ZUtl
eXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmlu
ZywgdXBTY3JvbGxWYWx1ZUtleXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAKICAgICBpZiAobV9zY3JvbGwpCiAgICAgICAgIHJldHVybiB1cFNjcm9s
bFZhbHVlS2V5d29yZDsKQEAgLTE5Niw3ICsxOTYsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcgVlRU
UmVnaW9uOjpzY3JvbGwoKSBjb25zdAogCiB2b2lkIFZUVFJlZ2lvbjo6c2V0U2Nyb2xsKGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHVwU2Nyb2xsVmFsdWVL
ZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJp
bmcsIHVwU2Nyb2xsVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogCiAgICAgaWYgKHZhbHVlICE9IGVtcHR5U3RyaW5nKCkgJiYgdmFsdWUg
IT0gdXBTY3JvbGxWYWx1ZUtleXdvcmQpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAt
MjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXJzZWRFbnRpcmVSdW4oY29uc3Qg
VlRUU2Nhbm5lciYgaW5wdXQsIGNvbnN0IFZUVFNjYW5uZXI6OlJ1CiAKIHZvaWQgVlRUUmVnaW9u
OjpwYXJzZVNldHRpbmdWYWx1ZShSZWdpb25TZXR0aW5nIHNldHRpbmcsIFZUVFNjYW5uZXImIGlu
cHV0KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHNjcm9sbFVwVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHNjcm9sbFVwVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgVlRUU2Nhbm5lcjo6UnVu
IHZhbHVlUnVuID0gaW5wdXQuY29sbGVjdFVudGlsPFdlYlZUVFBhcnNlcjo6aXNBU3BhY2U+KCk7
CiAKQEAgLTMyNCwxNCArMzI0LDE0IEBAIHZvaWQgVlRUUmVnaW9uOjpwYXJzZVNldHRpbmdWYWx1
ZShSZWdpb25TZXR0aW5nIHNldHRpbmcsIFZUVFNjYW5uZXImIGlucHV0KQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3Mo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MsICgic2Nyb2xsaW5nIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNrUmVnaW9u
Q3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MsICgic2Nyb2xsaW5nIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9uQ3VlQ29udGFp
bmVyU2Nyb2xsaW5nQ2xhc3M7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUUmVnaW9uOjp0
ZXh0VHJhY2tDdWVDb250YWluZXJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tSZWdpb25DdWVDb250
YWluZXJQc2V1ZG9JZCwKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkLAog
ICAgICAgICAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24tY29udGFpbmVyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVn
aW9uQ3VlQ29udGFpbmVyUHNldWRvSWQ7CkBAIC0zMzksNyArMzM5LDcgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja1JlZ2lvblNoYWRvd1Bz
ZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB0cmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkLAorICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNrUmVnaW9u
U2hhZG93UHNldWRvSWQsCiAgICAgICAgICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lv
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIHJldHVybiB0
cmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHAKaW5kZXggYmJkYzkwZGRmYmMxM2MxMmRkYjFiMzhkMTEyODk4YjkxYjExMzkzMy4u
MTkzYWRiNDk4YWVkMTNmZGJhYWE3N2E4YjY1ODAxYTBlZTI1Nzg4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC00NywzNyArNDcsMzcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZl
S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGFsdGVy
bmF0aXZlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNhcHRpb25zS2V5
d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgY2FwdGlvbnMsICgiY2FwdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IEF0b21pY1N0cmluZywgY2FwdGlvbnMsICgiY2FwdGlvbnMiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGNhcHRpb25zOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJt
YWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRp
b25zLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIGNhcHRpb25zOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OnNp
Z25LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBzaWduLCAoInNpZ24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNv
bnN0IEF0b21pY1N0cmluZywgc2lnbiwgKCJzaWduIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzaWduOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCJzdWJ0aXRsZXMi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVz
LCAoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc3VidGl0bGVzOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6
OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNvbW1lbnRhcnkiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgY29tbWVudGFyeSwgKCJjb21t
ZW50YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmNwcAppbmRleCBkNzRiODM4ZThmOTI1NzU1MDkyYTk5ZjNhN2RkOTU1NTE4ZGUyODFmLi5l
YjE5ZDU4YjBmNDgxMTMwYmI5ZWI0MjVhOTJlMzQwNDJmYzg2YjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBub2RlVHlwZVRv
VGFnTmFtZShXZWJWVFROb2RlVHlwZSBub2RlVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgY1RhZywgKG51bGxBdG9tLCAiYyIsIG51bGxB
dG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUs
IHZUYWcsIChudWxsQXRvbSwgInYiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBsYW5nVGFnLCAobnVsbEF0b20sICJsYW5nIiwg
bnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVk
TmFtZSwgYlRhZywgKG51bGxBdG9tLCAiYiIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHVUYWcsIChudWxsQXRvbSwgInUiLCBu
dWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWRO
YW1lLCBpVGFnLCAobnVsbEF0b20sICJpIiwgbnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgcnVieVRhZywgKG51bGxBdG9tLCAicnVi
eSIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxp
ZmllZE5hbWUsIHJ0VGFnLCAobnVsbEF0b20sICJydCIsIG51bGxBdG9tKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFF1YWxpZmllZE5hbWUsIGNUYWcsIChu
dWxsQXRvbSwgImMiLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhRdWFsaWZpZWROYW1lLCB2VGFnLCAobnVsbEF0b20sICJ2IiwgbnVsbEF0
b20pKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUXVhbGlm
aWVkTmFtZSwgbGFuZ1RhZywgKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFF1YWxpZmllZE5hbWUsIGJUYWcs
IChudWxsQXRvbSwgImIiLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhRdWFsaWZpZWROYW1lLCB1VGFnLCAobnVsbEF0b20sICJ1IiwgbnVs
bEF0b20pKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUXVh
bGlmaWVkTmFtZSwgaVRhZywgKG51bGxBdG9tLCAiaSIsIG51bGxBdG9tKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFF1YWxpZmllZE5hbWUsIHJ1YnlUYWcs
IChudWxsQXRvbSwgInJ1YnkiLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhRdWFsaWZpZWROYW1lLCBydFRhZywgKG51bGxBdG9tLCAicnQi
LCBudWxsQXRvbSkpOwogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIFdlYlZUVE5v
ZGVUeXBlQ2xhc3M6CiAgICAgICAgIHJldHVybiBjVGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCAzOTQwNmQ5YWY3ODRmNDcyYzQ2OTA2ODZlM2IyYzU1
MzAxYjQ3YWYzLi5iMzEwNDg5N2RmZGRhZjcxNjljMzMyMzJhOWIzNjZmMmNkNmRiYTAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaApAQCAtNTksMTMgKzU5LDEz
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiB2b2ljZUF0dHJp
YnV0ZU5hbWUoKQogICAgIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFF1YWxpZmllZE5hbWUsIHZvaWNlQXR0ciwgKG51bGxBdG9tLCAidm9pY2UiLCBudWxsQXRvbSkp
OworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUXVhbGlm
aWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20sICJ2b2ljZSIsIG51bGxBdG9tKSk7CiAgICAg
ICAgIHJldHVybiB2b2ljZUF0dHI7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBjb25zdCBRdWFs
aWZpZWROYW1lJiBsYW5nQXR0cmlidXRlTmFtZSgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20s
ICJsYW5nIiwgbnVsbEF0b20pKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKFF1YWxpZmllZE5hbWUsIHZvaWNlQXR0ciwgKG51bGxBdG9tLCAibGFuZyIs
IG51bGxBdG9tKSk7CiAgICAgICAgIHJldHVybiB2b2ljZUF0dHI7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggMjA2NTJlODQzODI2MTlk
M2EzZmEzNGIzODM1MTQ5MTE4ODIyNWY4Ny4uMGIwMWNjZDZhMTg3ZmRlMzE5MjM1OGNlMTNhYmVl
Y2QxZjBiOWYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNw
cApAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb2xsZWN0TWV0YWRhdGFI
ZWFkZXIoY29uc3QgU3RyaW5nJiBsaW5lKQogewogI2lmIEVOQUJMRShXRUJWVFRfUkVHSU9OUykK
ICAgICAvLyBXZWJWVFQgaGVhZGVyIHBhcnNpbmcgKFdlYlZUVCBwYXJzZXIgYWxnb3JpdGhtIHN0
ZXAgMTIpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgcmVnaW9uSGVhZGVyTmFtZSwgKCJSZWdpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKGNvbnN0IEF0b21pY1N0cmluZywgcmVnaW9uSGVhZGVyTmFtZSwgKCJSZWdpb24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICAvLyBTdGVwIDEyLjQgSWYg
bGluZSBjb250YWlucyB0aGUgY2hhcmFjdGVyICI6IiAoQSBVKzAwM0EgQ09MT04pLCB0aGVuIHNl
dCBtZXRhZGF0YSdzCiAgICAgLy8gbmFtZSB0byB0aGUgc3Vic3RyaW5nIG9mIGxpbmUgYmVmb3Jl
IHRoZSBmaXJzdCAiOiIgY2hhcmFjdGVyIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggMzA1YTk5NTRkZjFhOTdmMWMwYzA3MWQ4NGY3
NDkxMGFhMDBkNmY4Yy4uOWU4ZDdkZDU0NzZhMDllOTAzNTg3N2YzNDcwOTkzYmI0ZWQ5OWJmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBA
IC03OCwxMCArNzgsMTAgQEAgZW51bSBGb3JjZVBzZXVkb0NsYXNzRmxhZ3MgewogCiBzdGF0aWMg
dW5zaWduZWQgY29tcHV0ZVBzZXVkb0NsYXNzTWFzayhJbnNwZWN0b3JBcnJheSogcHNldWRvQ2xh
c3NBcnJheSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBh
Y3RpdmUsIChBU0NJSUxpdGVyYWwoImFjdGl2ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgaG92ZXIsIChBU0NJSUxpdGVyYWwoImhvdmVyIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmb2N1cywgKEFTQ0lJTGl0
ZXJhbCgiZm9jdXMiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIHZpc2l0ZWQsIChBU0NJSUxpdGVyYWwoInZpc2l0ZWQiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGFjdGl2ZSwgKEFTQ0lJTGl0ZXJh
bCgiYWN0aXZlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoU3RyaW5nLCBob3ZlciwgKEFTQ0lJTGl0ZXJhbCgiaG92ZXIiKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGZvY3VzLCAoQVNDSUlMaXRl
cmFsKCJmb2N1cyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKFN0cmluZywgdmlzaXRlZCwgKEFTQ0lJTGl0ZXJhbCgidmlzaXRlZCIpKSk7CiAgICAgaWYg
KCFwc2V1ZG9DbGFzc0FycmF5IHx8ICFwc2V1ZG9DbGFzc0FycmF5LT5sZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuIFBzZXVkb0NsYXNzTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggN2ZkNjI5MWM5MTA3ZjM4
ZWI0MTNhNjE5MWE3Njc3MGI1NzNjZTIzNy4uNmI4M2Y5MzNhY2FjMmJmNGNmMDc2MWZkYWY2NGQ5
NjcwNmJjM2UyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJLZXk+IGlkYktleUZyb21JbnNwZWN0b3JPYmplY3QoSW5zcGVjdG9yT2JqZWN0KiBr
ZXkpCiAgICAgaWYgKCFrZXktPmdldFN0cmluZygidHlwZSIsICZ0eXBlKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBudW1iZXIsIChBU0NJSUxpdGVyYWwoIm51bWJlciIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzdHJpbmciKSkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRhdGUsIChBU0NJ
SUxpdGVyYWwoImRhdGUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGFycmF5LCAoQVNDSUlMaXRlcmFsKCJhcnJheSIpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgbnVtYmVyLCAoQVNDSUlMaXRlcmFs
KCJudW1iZXIiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhTdHJpbmcsIHN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic3RyaW5nIikpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBkYXRlLCAoQVNDSUlMaXRl
cmFsKCJkYXRlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoU3RyaW5nLCBhcnJheSwgKEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSkpOwogCiAgICAgaWYgKHR5
cGUgPT0gbnVtYmVyKSB7CiAgICAgICAgIGRvdWJsZSBudW1iZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDQ1YmYwZWVlODQ2Zjc3
MDllZDQyZTI3NGZkMTE3Zjk2NDgyNDE4ZGUuLjU1OWZjNWIwYzA0NWE0ZmFkM2E3OWM5OTk3MmI4
MzRmZTZjYmVkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwCkBAIC0yNDcsOCArMjQ3LDggQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OnJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSwK
IC8vc3RhdGljCiBTdHJpbmcgSW5zcGVjdG9yUGFnZUFnZW50Ojpzb3VyY2VNYXBVUkxGb3JSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlciwgKEFTQ0lJTGl0
ZXJhbCgiU291cmNlTWFwIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCwgKEFTQ0lJTGl0ZXJhbCgiWC1T
b3VyY2VNYXAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywg
c291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFw
IikpKTsKIAogICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNw
cAppbmRleCA3Njg4MTAzZDYxMTExODRlMTRhMzA5YmZjOWNhN2UxYjZiY2YzNWFjLi4yOWFmNTUx
YzE1ZjJiNmRhMWQ2OWZlNDAwZTk3MWM4N2JmMjI5OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpDU1M6OkNTU0NvbXB1dGUKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5
VGV4dCh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIGJvb2wgb3Zl
cndyaXRlLCBTdHJpbmcqIG9sZFRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VS
VChtX3BhcmVudFN0eWxlU2hlZXQpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGJvZ3VzUHJvcGVydHlOYW1lLCAoQVNDSUlMaXRlcmFsKCItd2Via2l0LWJvZ3V6
LXByb3BlcnRlZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKFN0cmluZywgYm9ndXNQcm9wZXJ0eU5hbWUsIChBU0NJSUxpdGVyYWwoIi13ZWJraXQtYm9n
dXotcHJvcGVydGVlIikpKTsKIAogICAgIGlmICghbV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQ
YXJzZWREYXRhUmVhZHkoKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CkBAIC02ODYs
NyArNjg2LDcgQEAgVmVjdG9yPFN0cmluZz4gSW5zcGVjdG9yU3R5bGU6OmxvbmdoYW5kUHJvcGVy
dGllcyhjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnQKIAogTmV3TGluZUFuZFdoaXRlc3Bh
Y2UmIEluc3BlY3RvclN0eWxlOjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMoKSBjb25z
dAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRQ
cmVmaXgsIChBU0NJSUxpdGVyYWwoIiAgICAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGRlZmF1bHRQcmVmaXgsIChBU0NJSUxpdGVyYWwo
IiAgICAiKSkpOwogCiAgICAgaWYgKG1fZm9ybWF0QWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBt
X2Zvcm1hdDsKQEAgLTk5NCw3ICs5OTQsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4gSW5zcGVjdG9yU3R5bGVTaGVldAogCiBz
dGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+PiBz
ZWxlY3RvcnNGcm9tU291cmNlKGNvbnN0IENTU1J1bGVTb3VyY2VEYXRhKiBzb3VyY2VEYXRhLCBj
b25zdCBTdHJpbmcmIHNoZWV0VGV4dCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgY29tbWVudCwgKCIvXFwqW15dKj9c
XCovIiwgVGV4dENhc2VTZW5zaXRpdmUsIEpTQzo6WWFycjo6TXVsdGlsaW5lRW5hYmxlZCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhKU0M6OllhcnI6OlJl
Z3VsYXJFeHByZXNzaW9uLCBjb21tZW50LCAoIi9cXCpbXl0qP1xcKi8iLCBUZXh0Q2FzZVNlbnNp
dGl2ZSwgSlNDOjpZYXJyOjpNdWx0aWxpbmVFbmFibGVkKSk7CiAgICAgUmVmUHRyPEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4+IHJlc3VsdCA9IEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OkFycmF5PFN0cmluZz46OmNyZWF0ZSgpOwogICAgIGNvbnN0IFNlbGVjdG9yUmFuZ2VM
aXN0JiByYW5nZXMgPSBzb3VyY2VEYXRhLT5zZWxlY3RvclJhbmdlczsKICAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHJhbmdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDc2MDIzZTE5
ZGQwMmE2ZmNmMWQxM2IzYjY0ZjBkMTdmOWYxY2U1MzMuLjUwZmMzZDE2MDAxNjkxM2ZlYmVhNzQx
NGU0OTVjYTljNTU0OGQ5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50
OjpkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIAogU3RyaW5nIFBhZ2VEZWJ1Z2dlckFn
ZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0JiBzY3JpcHQpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRl
ciwgKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCwgKEFTQ0lJ
TGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwo
IlNvdXJjZU1hcCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwo
IlgtU291cmNlTWFwIikpKTsKIAogICAgIGlmICghc2NyaXB0LnVybC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9wYWdlQWdlbnQtPmNhY2hlZFJlc291
cmNlKG1fcGFnZUFnZW50LT5tYWluRnJhbWUoKSwgVVJMKFBhcnNlZFVSTFN0cmluZywgc2NyaXB0
LnVybCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggN2Q5NGZjODZm
NzZhOGVjNjg2NWE2NzBiNDA5ZDk5YjA2MjY2ZjE5OC4uYTliYTAzZDZlYjE2ZjNhMDM2ZmZjNTBm
Nzc0ZTVlMGRkNjlhNTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBA
IC0yOTMsNyArMjkzLDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICBtX2hhc1BlbmRpbmdFcnJvckV2ZW50ID0gdHJ1
ZTsKICAgICAgICAgZXJyb3JFdmVudFNlbmRlcigpLmRpc3BhdGNoRXZlbnRTb29uKHRoaXMpOwog
Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVN
ZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gaW1hZ2UgbG9hZCBkZW5pZWQgYnkg
Q3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7CisgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gaW1hZ2UgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7CiAgICAgICAgIGVsZW1lbnQoKS5k
b2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAKICAgICAgICAgQVNTRVJUKCFtX2hh
c1BlbmRpbmdMb2FkRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcAppbmRleCA0YjBmNjUxZjJkNzAxZDBlNTFiNmI3ZDdlZWFlYjliZDRkM2VhNDBjLi4yMzhk
MzdjMWIyMTZkNmI0NTczOGQxOTNmYmY5OGIyMzQ0NTUxMmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgVGV4dFRy
YWNrTG9hZGVyOjpkZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291
cmNlKiByZXNvdXJjCiAKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9saWN5UHJldmVudGVk
TG9hZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29u
c29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0IHRyYWNrIGxvYWQg
ZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGNvbnNvbGVN
ZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAg
ICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAgICAgbV9zdGF0ZSA9IEZhaWxl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKaW5kZXggMzg5ZTUzMTEyNWI2NWU3OGJkZmViYjBiYmY2MGQxZjQwYjkwYjNm
ZS4uMTc1OTVmMTc3NjcwMjgxNWEzMjAyZGIxNWYwZDk5OGEwOTc1NjAwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAK
QEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsKIAotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGRlZmF1bHROYW1lLCAo
InJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBkZWZhdWx0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHAKaW5kZXggOTA3MWVlZmRlY2Y4Y2FhYTQ3ZGM0ODUxZDU5MGI5MThjZjI3MWEz
NS4uYTVkZmI2ZjIyMDk5M2IwMjg1NWJlNzU0ZmZhOTIzNDIzODJhYWEwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC03MzIsNyArNzMyLDcgQEAg
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdp
biogb3JpZ2luKQogdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0
eU9yaWdpblNldCYgb3JpZ2lucykKIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGh0dHBTdHJpbmcsICgi
aHR0cCIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3Ry
aW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYKICAgICBmb3IgKGF1dG8mIHJlc291
cmNlcyA6IG1fc2Vzc2lvblJlc291cmNlcykgewogICAgICAgICBDYWNoZWRSZXNvdXJjZU1hcDo6
aXRlcmF0b3IgZSA9IHJlc291cmNlcy52YWx1ZS0+ZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCA2N2RjMGQ5YjRiMjM0MTgyMTcxNDYxODc3
ZmVkNzBiYjJhOWQ1ZGMyLi5jMDhjMzM0MzQ2ODdjNmY2MzY1ODZhNDRiMWQwNTQxZTI4ZTNiODBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKQEAgLTg4
Niw3ICs4ODYsNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgoKSBjb25zdAog
CiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdERhdGFiYXNlRmls
ZW5hbWUsIChBU0NJSUxpdGVyYWwoIldlYnBhZ2VJY29ucy5kYiIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgZGVmYXVsdERhdGFiYXNlRmls
ZW5hbWUsIChBU0NJSUxpdGVyYWwoIldlYnBhZ2VJY29ucy5kYiIpKSk7CiAgICAgcmV0dXJuIGRl
ZmF1bHREYXRhYmFzZUZpbGVuYW1lLmlzb2xhdGVkQ29weSgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRleCBmYjgwMTZiYmJkZmVk
ODkyYjk3MWYyN2Y3YjA3ZTIyZGU4Y2E3NWQ2Li4xOTdhNTkyNWM4YzA0MGMzMThiOGQxNWJlM2Qw
MWZmYTM0ZjJkODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlcy5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OnNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZAog
dm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJp
ZGUoKQogewogICAgIC8vIElkZW50aWZ5IG91ciBvdmVycmlkZSBzdHlsZSBzaGVldCB3aXRoIGEg
dW5pcXVlIFVSTCAtIGEgbmV3IHNjaGVtZSBhbmQgYSBVVUlELgotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChVUkwsIGNhcHRpb25zU3R5bGVTaGVldFVSTCwgKFBhcnNlZFVSTFN0
cmluZywgInVzZXItY2FwdGlvbnMtb3ZlcnJpZGU6MDFGNkFGMTItQzNCMC00RjcwLUFGNUUtQTNF
MDAyMzREQzIzIikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhVUkwsIGNhcHRpb25zU3R5bGVTaGVldFVSTCwgKFBhcnNlZFVSTFN0cmluZywgInVzZXItY2Fw
dGlvbnMtb3ZlcnJpZGU6MDFGNkFGMTItQzNCMC00RjcwLUFGNUUtQTNFMDAyMzREQzIzIikpOwog
CiAgICAgYXV0byYgcGFnZXMgPSBtX3BhZ2VHcm91cC5wYWdlcygpOwogICAgIGZvciAoYXV0byYg
cGFnZSA6IHBhZ2VzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGVmZTJlNTgzYWQxODA1YzhmNjZhNTc2NzQy
MDliOTE1NTBiZTEwOGIuLmExODZhNTJjNjUwMjA0MTkwOTFmZGQzNmJmOTMxODc1NTg2YTY2NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUYuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0JhY2tncm91bmRDU1MoKSBjb25zdAogewogICAgIC8vIFRo
aXMgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSBvbmUgc3BlY2lmaWVkIGlu
IG1lZGlhQ29udHJvbHMuY3NzIGZvciAtd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2Rl
cwogICAgIC8vIGFuZCB3ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMuCi0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBkZWZhdWx0QmFja2dyb3VuZENv
bG9yLCAoQ29sb3IoMCwgMCwgMCwgMC44ICogMjU1KSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDb2xvciwgZGVmYXVsdEJhY2tncm91bmRDb2xvciwgKENv
bG9yKDAsIDAsIDAsIDAuOCAqIDI1NSkpKTsKIAogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VCZWhh
dmlvciBiZWhhdmlvcjsKIApAQCAtMzc5LDEwICszNzksMTAgQEAgU3RyaW5nIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjb2xvclByb3BlcnR5Q1NTKENTU1Byb3BlcnR5SUQgaWQsIGNv
bnN0IEMKIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1Rl
eHRFZGdlQ1NTKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBlZGdlU3R5bGVSYWlzZWQsICgiIC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlRGVwcmVzc2VkLCAoIiAuMDVlbSAuMDVlbSAw
ICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEcm9wU2hhZG93LCAoIiAuMDc1
ZW0gLjA3NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZVVuaWZvcm0s
ICgiIC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVS
YWlzZWQsICgiIC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0
cmluZywgZWRnZVN0eWxlRGVwcmVzc2VkLCAoIiAuMDVlbSAuMDVlbSAwICIsIFN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxf
V0lUSF9BUkcoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEcm9wU2hhZG93LCAoIiAuMDc1ZW0gLjA3
NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZVVuaWZv
cm0sICgiIC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGJv
b2wgdW51c2VkOwogICAgIENvbG9yIGNvbG9yID0gY2FwdGlvbnNUZXh0Q29sb3IodW51c2VkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBm
MGE5Y2VhMWM3ZWQ0ZDdkYjcwMWM1OWI4MDgxMmRmM2NjMGI4MzI1Li4xMTUxMmU2ZWVkMGQ0Y2Yx
ZjBmNzQxYTI2NGVhZGJiM2QzYjA5YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0xMDYzLDcgKzEwNjMsNyBAQCBib29sIENTUERpcmVj
dGl2ZUxpc3Q6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJlY3Rp
dmUqIGRpcmVjdAogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMo
Y29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRl
eHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdT
dGF0dXMpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZh
U2NyaXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKICAgICBp
ZiAocmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJlcG9ydCkg
ewogICAgICAgICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2
ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJM
LCBjb250ZXh0TGluZSwgdHJ1ZSkKICAgICAgICAgICAgICAgICAmJiBjaGVja05vbmNlQW5kUmVw
b3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIFN0cmluZygpLCBjb25zb2xlTWVzc2Fn
ZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpKTsKQEAgLTEwNzUsNyArMTA3NSw3IEBAIGJvb2wg
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIGNvbnRl
eHRVUkwsIGNvbnN0IFdURjo6CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0
dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRv
IGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBjb25zb2xlTWVzc2Fn
ZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBldmVudCBoYW5kbGVy
IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgaWYgKHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQpIHsKICAgICAgICAgcmV0dXJuIChjaGVja0lubGluZUFu
ZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBj
b25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHRydWUpCiAgICAgICAgICAg
ICAgICAgJiYgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgp
LCBTdHJpbmcoKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CkBA
IC0xMDg3LDcgKzEwODcsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZl
bnRIYW5kbGVycyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0CiAKIGJvb2wgQ1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxp
dGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0
ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgY29u
c29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2Ny
aXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0YXR1cyA9PSBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAgICBjaGVja0lubGluZUFuZFJl
cG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25z
b2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHRydWUpIDoKICAgICAgICAgY2hl
Y2tJbmxpbmUob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSk7CkBAIC0xMDk1
LDcgKzEwOTUsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0KGNv
bnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcgogCiBib29sIENTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBX
VEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJl
cG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwo
IlJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxlIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZv
bGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxlIGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmU6ICIpKSk7CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAgICBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlv
bihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBj
b250ZXh0VVJMLCBjb250ZXh0TGluZSwgZmFsc2UpIDoKICAgICAgICAgY2hlY2tJbmxpbmUob3Bl
cmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpKTsKQEAgLTExMDMsNyArMTEwMyw3IEBA
IGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGNv
bnRleHRVUkwsIGNvbnN0IFdURjo6T3JkCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dF
dmFsKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRp
bmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1
c2VkIHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVND
SUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVz
IHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOwog
ICAgIHJldHVybiByZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5k
UmVwb3J0ID8KICAgICAgICAgY2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURp
cmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBTdHJpbmcoKSwgV1RG
OjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBzdGF0ZSkgOgogICAgICAgICBjaGVja0V2
YWwob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSk7CkBAIC0xMTExLDcgKzEx
MTEsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UgogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6
OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBVUkwm
IHVybCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlw
dCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRv
IGV4ZWN1dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50
IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgaWYgKHVybC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9u
Y2UuZ2V0KCksIG5vbmNlLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUp
OwogICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9uY2Uu
Z2V0KCksIG5vbmNlLCAiUmVmdXNlZCB0byBsb2FkICciICsgdXJsLnN0cmluZ0NlbnRlckVsbGlw
c2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIiwgY29udGV4dFVSTCwgY29udGV4dExp
bmUpOwpAQCAtMTc3OCwxMiArMTc3OCwxMiBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgUwogCiB2
b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VW5zdXBwb3J0ZWREaXJlY3RpdmUoY29u
c3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGFsbG93LCAoQVNDSUlMaXRlcmFsKCJhbGxvdyIpKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW9ucywgKEFTQ0lJTGl0ZXJhbCgi
b3B0aW9ucyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
cG9saWN5VVJJLCAoQVNDSUlMaXRlcmFsKCJwb2xpY3ktdXJpIikpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxvd01lc3NhZ2UsIChBU0NJSUxpdGVyYWwo
IlRoZSAnYWxsb3cnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICdkZWZhdWx0LXNy
YycuIFBsZWFzZSB1c2UgdGhhdCBkaXJlY3RpdmUgaW5zdGVhZCwgYXMgJ2FsbG93JyBoYXMgbm8g
ZWZmZWN0LiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
b3B0aW9uc01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnb3B0aW9ucycgZGlyZWN0aXZlIGhh
cyBiZWVuIHJlcGxhY2VkIHdpdGggJ3Vuc2FmZS1pbmxpbmUnIGFuZCAndW5zYWZlLWV2YWwnIHNv
dXJjZSBleHByZXNzaW9ucyBmb3IgdGhlICdzY3JpcHQtc3JjJyBhbmQgJ3N0eWxlLXNyYycgZGly
ZWN0aXZlcy4gUGxlYXNlIHVzZSB0aG9zZSBkaXJlY3RpdmVzIGluc3RlYWQsIGFzICdvcHRpb25z
JyBoYXMgbm8gZWZmZWN0LiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgcG9saWN5VVJJTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdwb2xpY3ktdXJp
JyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uLiBQbGVh
c2Ugc3BlY2lmeSBhIGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9s
aWN5IGhlYWRlci4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhTdHJpbmcsIGFsbG93LCAoQVNDSUlMaXRlcmFsKCJhbGxvdyIpKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgb3B0aW9ucywgKEFTQ0lJ
TGl0ZXJhbCgib3B0aW9ucyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKFN0cmluZywgcG9saWN5VVJJLCAoQVNDSUlMaXRlcmFsKCJwb2xpY3ktdXJpIikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBh
bGxvd01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnYWxsb3cnIGRpcmVjdGl2ZSBoYXMgYmVl
biByZXBsYWNlZCB3aXRoICdkZWZhdWx0LXNyYycuIFBsZWFzZSB1c2UgdGhhdCBkaXJlY3RpdmUg
aW5zdGVhZCwgYXMgJ2FsbG93JyBoYXMgbm8gZWZmZWN0LiIpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgb3B0aW9uc01lc3NhZ2UsIChBU0NJ
SUxpdGVyYWwoIlRoZSAnb3B0aW9ucycgZGlyZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGgg
J3Vuc2FmZS1pbmxpbmUnIGFuZCAndW5zYWZlLWV2YWwnIHNvdXJjZSBleHByZXNzaW9ucyBmb3Ig
dGhlICdzY3JpcHQtc3JjJyBhbmQgJ3N0eWxlLXNyYycgZGlyZWN0aXZlcy4gUGxlYXNlIHVzZSB0
aG9zZSBkaXJlY3RpdmVzIGluc3RlYWQsIGFzICdvcHRpb25zJyBoYXMgbm8gZWZmZWN0LiIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgcG9s
aWN5VVJJTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdwb2xpY3ktdXJpJyBkaXJlY3RpdmUg
aGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uLiBQbGVhc2Ugc3BlY2lmeSBh
IGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGhlYWRlci4i
KSkpOwogCiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbnJlY29nbml6ZWQgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOwogICAgIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBhbGxvdykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggN2YwN2JhZTM2NDIzOTFkYWMxYWM5OGYwZjllZjg0OWM1MDMyZTFjNS4uYzAxMzlj
YjFhZDIxMjdkM2I0MjFkOWQxZWQ1OTkwNGZkMDFmMDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtMTgxLDEzICsxODEsMTMgQEAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxET01X
aW5kb3cqPiBET01XaW5kb3dTZXQ7CiAKIHN0YXRpYyBET01XaW5kb3dTZXQmIHdpbmRvd3NXaXRo
VW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRE9NV2luZG93U2V0LCB3aW5kb3dz
V2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKTsKICAgICByZXR1cm4gd2luZG93c1dpdGhVbmxvYWRF
dmVudExpc3RlbmVyczsKIH0KIAogc3RhdGljIERPTVdpbmRvd1NldCYgd2luZG93c1dpdGhCZWZv
cmVVbmxvYWRFdmVudExpc3RlbmVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKERPTVdpbmRvd1NldCwgd2luZG93c1dpdGhCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVy
cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChET01XaW5kb3dTZXQs
IHdpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMpOwogICAgIHJldHVybiB3aW5k
b3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggMTUzNmYxYTlhOWZhMjEzMzI2MmMzNjNlMjZhZTg4NzkyYmRl
ZTA0Mi4uZjkxZWYzMWI3NGZmNTYyNjBjNjkyOTYyNzY4OGQ3ZDA0NTgwMDhiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzk1LDcgKzM5NSw3IEBAIEV2ZW50SGFuZGxl
cjo6fkV2ZW50SGFuZGxlcigpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIERyYWdTdGF0ZSYg
RXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChEcmFnU3RhdGUsIHN0YXRlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKERyYWdTdGF0ZSwgc3RhdGUpOwogICAgIHJldHVybiBzdGF0ZTsKIH0KICNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMzA0MCwxMCArMzA0MCwxMCBAQCBib29sIEV2
ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFs
S2V5RXZlbnQpCiAKIHN0YXRpYyBGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShj
b25zdCBBdG9taWNTdHJpbmcmIGtleUlkZW50aWZpZXIpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgRG93biwgKCJEb3duIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIFVwLCAoIlVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIExlZnQsICgiTGVmdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBSaWdodCwg
KCJSaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBEb3duLCAo
IkRvd24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgVXAsICgiVXAi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgTGVmdCwgKCJMZWZ0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJpZ2h0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgRm9jdXNEaXJlY3Rp
b24gcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Ob25lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4
IGUwOTI0NGQ0MmM2NWFhNWRiMjQ4MWMyYTBmNzY3MGY1YjA0YzQxN2UuLmUxZWRmM2E1YmFkZGU1
ZjMzNjQ2MGRjNmY0ZTIwNjQ3ODg5ZTRlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMTAs
NyArMzEwLDcgQEAgc3RhdGljIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24gY3JlYXRlUmVn
RXhwRm9yTGFiZWxzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogICAgIC8vIFJFVklFVy0gdmVyc2lv
biBvZiB0aGlzIGNhbGwgaW4gRnJhbWVNYWMubW0gY2FjaGVzIGJhc2VkIG9uIHRoZSBOU0FycmF5
IHB0cnMgYmVpbmcKICAgICAvLyB0aGUgc2FtZSBhY3Jvc3MgY2FsbHMuICBXZSBjYW4ndCBkbyB0
aGF0LgogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTQzo6WWFycjo6UmVn
dWxhckV4cHJlc3Npb24sIHdvcmRSZWdFeHAsICgiXFx3IiwgVGV4dENhc2VTZW5zaXRpdmUpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoSlNDOjpZYXJyOjpS
ZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJlZ0V4cCwgKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2ZSkp
OwogICAgIFN0cmluZ0J1aWxkZXIgcGF0dGVybjsKICAgICBwYXR0ZXJuLmFwcGVuZCgnKCcpOwog
ICAgIHVuc2lnbmVkIGludCBudW1MYWJlbHMgPSBsYWJlbHMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggZWQ5OWNmZjdmMDY4YTM0NDMzMGQ3OGY2MDhiYWQw
Mzk0NTgxOWMxMC4uNjZkZjFhN2UzODEwODRlYzdjNWQ1M2ZmZGZiOGY5NTk4NWE4YzM3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFN0cmlu
ZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNvbnN0CiAgICAgaWYgKCFTdHJpbmcoV0VCQ09S
RV9OQVZJR0FUT1JfUExBVEZPUk0pLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFdFQkNPUkVf
TkFWSUdBVE9SX1BMQVRGT1JNOwogICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgm
b3NuYW1lKSA+PSAwID8gU3RyaW5nKG9zbmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3Ry
aW5nKG9zbmFtZS5tYWNoaW5lKSA6IGVtcHR5U3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgm
b3NuYW1lKSA+PSAwID8gU3RyaW5nKG9zbmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3Ry
aW5nKG9zbmFtZS5tYWNoaW5lKSA6IGVtcHR5U3RyaW5nKCkpKTsKICAgICByZXR1cm4gcGxhdGZv
cm1OYW1lOwogI2Vsc2UKICAgICByZXR1cm4gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAppbmRleCBmNmNjYzE0
OTZkMmRhMjI1NGI3NmY1YTRlOTRlNzkxNWM2NjJlOTU2Li5jNTkyMDdjMGM4YmQ0NDA1M2U1MjNj
Y2Y1MGU1N2Y1ZGQzMzYzZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VW
aXNpYmlsaXR5U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJp
bmcgcGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2li
bGUsIChBU0NJSUxpdGVyYWwoInZpc2libGUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKEFTQ0lJTGl0ZXJhbCgiaGlkZGVuIikp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmVy
ZW5kZXIsIChBU0NJSUxpdGVyYWwoInByZXJlbmRlciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgdmlzaWJsZSwgKEFTQ0lJTGl0
ZXJhbCgidmlzaWJsZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoQVNDSUlMaXRlcmFsKCJoaWRkZW4iKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBTdHJpbmcs
IHByZXJlbmRlciwgKEFTQ0lJTGl0ZXJhbCgicHJlcmVuZGVyIikpKTsKIAogICAgIHN3aXRjaCAo
c3RhdGUpIHsKICAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGUwNzQzNGMyM2M2
OGM1NjU0MmYwMDEyN2Y1ZDljMzVlYTBlNDBlNzEuLmNhNTVlMmNjZWZiODdjMTk0MWNhYjJhMmNh
NjQ0MDFhMDdjZTk1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNl
clRpbWluZy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIHsKIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIE5hdmlnYXRpb25UaW1pbmdGdW5jdGlvbj4gUmVzdHJpY3RlZEtleU1hcDsKIHN0
YXRpYyBSZXN0cmljdGVkS2V5TWFwIHJlc3RyaWN0ZWRLZXlNYXAoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXN0cmljdGVkS2V5TWFwLCBtYXAsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVzdHJpY3RlZEtleU1hcCwgbWFwKTsKICAg
ICBpZiAobWFwLmlzRW1wdHkoKSkgewogICAgICAgICBtYXAuYWRkKCJuYXZpZ2F0aW9uU3RhcnQi
LCAmUGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCk7CiAgICAgICAgIG1hcC5hZGQo
InVubG9hZEV2ZW50U3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAppbmRleCA3MGQ2OWEwM2EwZjkx
OTc5Yjg5OTBjYzZiMmNmMTVjNDk2OWJjNjM5Li5hNmM1ZGM2YWE5NjM3NDNmMmMxY2NhYWFjMmI1
YzUxMTk4ZWE2NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9s
aWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAt
NDUsNyArNDUsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8T3Jp
Z2luQWNjZXNzV2hpdGVMaXN0Pj4gT3JpZ2luQWNjZXNzTWFwOwogCiBzdGF0aWMgT3JpZ2luQWNj
ZXNzTWFwJiBvcmlnaW5BY2Nlc3NNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChPcmlnaW5BY2Nlc3NNYXAsIG9yaWdpbkFjY2Vzc01hcCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPcmlnaW5BY2Nlc3NNYXAsIG9yaWdpbkFjY2Vzc01h
cCk7CiAgICAgcmV0dXJuIG9yaWdpbkFjY2Vzc01hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCmluZGV4IDFkNjc0YjliOGZiMGNmM2Q3M2Rm
NTVhYzg3MTZjNjllNGMzZTc2NGQuLmYyYzAyZGJjZjZlNThiZWU4MjI3MzU2OGJmZjcxMDQ2NmJj
YjgzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5j
cHAKQEAgLTY0LDcgKzY0LDcgQEAgYm9vbCBVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNQ
YXR0ZXJucyhjb25zdCBVUkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4KIAogYm9vbCBVc2Vy
Q29udGVudFVSTFBhdHRlcm46OnBhcnNlKGNvbnN0IFN0cmluZyYgcGF0dGVybikKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzY2hlbWVTZXBhcmF0
b3IsIChBU0NJSUxpdGVyYWwoIjovLyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgc2NoZW1lU2VwYXJhdG9yLCAoQVNDSUlMaXRl
cmFsKCI6Ly8iKSkpOwogCiAgICAgc2l6ZV90IHNjaGVtZUVuZFBvcyA9IHBhdHRlcm4uZmluZChz
Y2hlbWVTZXBhcmF0b3IpOwogICAgIGlmIChzY2hlbWVFbmRQb3MgPT0gbm90Rm91bmQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAKaW5kZXggNWU2ZWYyYWQ3NzcwMDQ3Yjg1YmNmMTVhMTcwZDc2Y2Q2OWY1M2E5My4uMGI5
Y2I5MjE5Y2M2N2IxZDVmYzQxODQ4NWM5MzJiZTZjOGE3ZTQxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
NTg0LDExICs1ODQsMTEgQEAgc3RhdGljIGlubGluZSBzaXplX3Qgc2hhZG93TGlzdExlbmd0aChj
b25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgU2hhZG93RGF0
YSogc2hhZG93Rm9yQmxlbmRpbmcoY29uc3QgU2hhZG93RGF0YSogc3JjU2hhZG93LCBjb25zdCBT
aGFkb3dEYXRhKiBvdGhlclNoYWRvdykKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBO
b3JtYWwsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdEluc2V0U2hhZG93RGF0YSwgKEludFBv
aW50KCksIDAsIDAsIEluc2V0LCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFNoYWRvd0RhdGEsIGRlZmF1bHRT
aGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCBmYWxzZSwgQ29sb3I6OnRyYW5z
cGFyZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFNo
YWRvd0RhdGEsIGRlZmF1bHRJbnNldFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBJbnNl
dCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1bHRXZWJLaXRCb3hTaGFkb3dEYXRhLCAoSW50
UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCB0cnVlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdEluc2V0V2Vi
S2l0Qm94U2hhZG93RGF0YSwgKEludFBvaW50KCksIDAsIDAsIEluc2V0LCB0cnVlLCBDb2xvcjo6
dHJhbnNwYXJlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoU2hhZG93RGF0YSwgZGVmYXVsdFdlYktpdEJveFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAw
LCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRXZWJL
aXRCb3hTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9yOjp0
cmFuc3BhcmVudCkpOwogCiAgICAgaWYgKHNyY1NoYWRvdykKICAgICAgICAgcmV0dXJuIHNyY1No
YWRvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uY3BwCmluZGV4IGRkNTVjMjg0YWM4ZDhjOTI2NDQyNzY3YmU1NmNhYjc5ZmZmYTIy
MWIuLjg0NDRkMDY0YTQyNGZkZmYzNjcwZjRiNmYxODBjNDI3YjJlMmE2ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApA
QCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFt
ZUFuaW1hdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJlbmRlCiAgICAgICAgIC8vIFRv
c3MgdGhlIGFuaW1hdGlvbiBvcmRlciBtYXAuCiAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25P
cmRlck1hcC5jbGVhcigpOwogCi0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgbm9uZSwgKCJub25lIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICAKICAgICAgICAgLy8gTm93IG1hcmsg
YW55IHN0aWxsIGFjdGl2ZSBhbmltYXRpb25zIGFzIGFjdGl2ZSBhbmQgYWRkIGFueSBuZXcgYW5p
bWF0aW9ucy4KICAgICAgICAgaWYgKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCmluZGV4IDkzNTkzYWQyN2Q5YTZkMDNlN2RiNDBlZDRjOGMy
YzhjOTFkZDBlN2IuLjllY2NjNmJmMTk4N2FjOTY2N2VhZGU1YmZmZTU3YzU5ZjQyYWZmYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcApAQCAtMTg5LDI1OSArMTg5LDI1OSBAQCBQbGF0
Zm9ybUN1cnNvciBDdXJzb3I6OnBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogY29uc3QgQ3Vyc29y
JiBwb2ludGVyQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpQb2ludGVyKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6UG9pbnRlcikpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNyb3NzQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDcm9zcykpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJz
b3I6OkNyb3NzKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgaGFuZEN1cnNv
cigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1
cnNvcjo6SGFuZCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhDdXJzb3IsIGMsIChDdXJzb3I6OkhhbmQpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiBtb3ZlQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpNb3ZlKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6TW92ZSkpOwogICAgIHJldHVy
biBjOwogfQogCiBjb25zdCBDdXJzb3ImIHZlcnRpY2FsVGV4dEN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6VmVydGljYWxU
ZXh0KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNv
ciwgYywgKEN1cnNvcjo6VmVydGljYWxUZXh0KSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0
IEN1cnNvciYgY2VsbEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q2VsbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6OkNlbGwpKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb250ZXh0TWVudUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29udGV4dE1l
bnUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpDb250ZXh0TWVudSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBD
dXJzb3ImIGFsaWFzQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpBbGlhcykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6OkFsaWFzKSk7CiAgICAgcmV0
dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgem9vbUluQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpab29tSW4pKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpab29tSW4pKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6b29tT3V0
Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBj
LCAoQ3Vyc29yOjpab29tT3V0KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6Wm9vbU91dCkpOwogICAgIHJldHVybiBjOwog
fQogCiBjb25zdCBDdXJzb3ImIGNvcHlDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNvcHkpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDb3B5KSk7
CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9uZUN1cnNvcigpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9uZSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMs
IChDdXJzb3I6Ok5vbmUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBwcm9n
cmVzc0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6UHJvZ3Jlc3MpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpQcm9ncmVzcykpOwogICAgIHJldHVy
biBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vRHJvcEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9Ecm9wKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNv
cjo6Tm9Ecm9wKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm90QWxsb3dl
ZEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6Tm90QWxsb3dlZCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vdEFsbG93ZWQpKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBpQmVhbUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6SUJlYW0pKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpJQmVhbSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHdhaXRDdXJzb3Io
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OldhaXQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpXYWl0KSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgaGVscEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6SGVscCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6OkhlbHApKTsKICAgICByZXR1cm4g
YzsKIH0KIAogY29uc3QgQ3Vyc29yJiBlYXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0UmVzaXplKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywg
KEN1cnNvcjo6RWFzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3Im
IG5vcnRoUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUmVzaXpl
KSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhFYXN0UmVzaXplQ3Vy
c29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAo
Q3Vyc29yOjpOb3J0aEVhc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RSZXNpemUpKTsKICAg
ICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RSZXNpemVDdXJzb3IoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
Ok5vcnRoV2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZSkpOwogICAgIHJldHVy
biBjOwogfQogCiBjb25zdCBDdXJzb3ImIHNvdXRoUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFJlc2l6
ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3Is
IGMsIChDdXJzb3I6OlNvdXRoUmVzaXplKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgc291dGhFYXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemUpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpTb3V0aEVhc3RSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBz
b3V0aFdlc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRo
V2VzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHdlc3RSZXNp
emVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Oldlc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpXZXN0UmVzaXplKSk7CiAgICAgcmV0
dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhTb3V0aFJlc2l6ZUN1cnNvcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9y
dGhTb3V0aFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoU291dGhSZXNpemUpKTsKICAgICByZXR1cm4g
YzsKIH0KIAogY29uc3QgQ3Vyc29yJiBlYXN0V2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFdlc3RS
ZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBj
b25zdCBDdXJzb3ImIG5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhFYXN0
U291dGhXZXN0UmVzaXplKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplKSk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhXZXN0U291dGhFYXN0UmVzaXpl
Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBj
LCAoQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RT
b3V0aEVhc3RSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb2x1
bW5SZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6OkNvbHVtblJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6OkNvbHVtblJlc2l6ZSkp
OwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHJvd1Jlc2l6ZUN1cnNvcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6
Um93UmVzaXplKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KEN1cnNvciwgYywgKEN1cnNvcjo6Um93UmVzaXplKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNv
bnN0IEN1cnNvciYgbWlkZGxlUGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6TWlkZGxlUGFubmluZykpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJz
b3I6Ok1pZGRsZVBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNv
ciYgZWFzdFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkVhc3RQYW5uaW5nKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFBhbm5p
bmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgbm9ydGhQYW5uaW5n
Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBj
LCAoQ3Vyc29yOjpOb3J0aFBhbm5pbmcpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUxfV0lUSF9BUkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFBhbm5pbmcpKTsKICAgICBy
ZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgbm9ydGhFYXN0UGFubmluZ0N1cnNvcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNv
cjo6Tm9ydGhFYXN0UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmcpKTsKICAgICBy
ZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgbm9ydGhXZXN0UGFubmluZ0N1cnNvcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNv
cjo6Tm9ydGhXZXN0UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmcpKTsKICAgICBy
ZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgc291dGhQYW5uaW5nQ3Vyc29yKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpT
b3V0aFBhbm5pbmcpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0K
ICAgICAKIGNvbnN0IEN1cnNvciYgc291dGhFYXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhFYXN0
UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhD
dXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoRWFzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0K
ICAgICAKIGNvbnN0IEN1cnNvciYgc291dGhXZXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhXZXN0
UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhD
dXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0K
ICAgICAKIGNvbnN0IEN1cnNvciYgd2VzdFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Oldlc3RQYW5uaW5nKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEN1cnNvciwgYywg
KEN1cnNvcjo6V2VzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiBncmFiQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpHcmFiKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKEN1cnNvciwgYywgKEN1cnNvcjo6R3JhYikpOwogICAgIHJldHVybiBjOwog
fQogCiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpHcmFiYmluZykpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhDdXJzb3IsIGMsIChDdXJzb3I6
OkdyYWJiaW5nKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1
YWdlLmNwcAppbmRleCBjMjg5MmU0NWZmZDk2NDM3MjVkYzg0YTdjYzBlMjY5YmU3MGYwNzZhLi4z
YzliM2VjNTQzMzRkZmFkMDc1MmM4ZWU1ZGIxMzQyYTZmYzZkNjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGFuZ3VhZ2UuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uPiBP
YnNlcnZlck1hcDsKIHN0YXRpYyBPYnNlcnZlck1hcCYgb2JzZXJ2ZXJNYXAoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPYnNlcnZlck1hcCwgbWFwLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE9ic2VydmVyTWFwLCBtYXApOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKQEAgLTcyLDcgKzcyLDcgQEAgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgp
CiAKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwgb3Zl
cnJpZGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0
cmluZz4sIG92ZXJyaWRlKTsKICAgICByZXR1cm4gb3ZlcnJpZGU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggZTBjYTUzNjZlNzI0YzRi
OTZmOTc2ZmU2N2EwZjAwMjJmNmM5MGMyMi4uMGVmM2NjNDIzOGRlNDhjNmM1MTg2NTk4YmUyNDAz
MTA5NjhlMTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JM
b29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQogCiAgICAgLy8gVHJ1bmNhdGUg
dGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGgg
QXBwS2l0LgogICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3Vw
TWVudUl0ZW0gPSAyNDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFs
RWxsaXBzaXMsIDEpKTsKIAogICAgIFN0cmluZyB0cmltbWVkID0gb3JpZ2luYWwuc3RyaXBXaGl0
ZVNwYWNlKCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtQ2hhcmFjdGVy
c0luR3JhcGhlbWVDbHVzdGVycyh0cmltbWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJ
bkxvb2t1cE1lbnVJdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdp
c3RyeS5jcHAKaW5kZXggYTQwMGRmM2FlM2E5MTZmMDY2OGY3NGM3MjVlMTczMzQxZjA0YTE4OC4u
MTdmNjFmMjg0NjgxMjdiMTdmMTFhYTYwMjZkODBiM2E3NDAyODAwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCBz
dGF0aWMgdm9pZCBpbml0aWFsaXplU3VwcG9ydGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogCiBzdGF0
aWMgTWVkaWFNSU1FVHlwZU1hcCYgbWVkaWFNSU1FVHlwZU1hcCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhTUlNRVR5cGVNYXAsIG1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb25NYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVk
aWFNSU1FVHlwZU1hcCwgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcCk7CiAKICAgICBpZiAo
IW1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcDsKQEAgLTY0MCw3ICs2NDAsNyBAQCBIYXNoU2V0
PFN0cmluZz4mIE1JTUVUeXBlUmVnaXN0cnk6OmdldFVuc3VwcG9ydGVkVGV4dE1JTUVUeXBlcygp
CiAKIGNvbnN0IFN0cmluZyYgZGVmYXVsdE1JTUVUeXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZhdWx0TUlNRVR5cGUsIChBU0NJSUxp
dGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgZGVmYXVsdE1JTUVUeXBlLCAo
QVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKSkpOwogICAgIHJldHVybiBk
ZWZhdWx0TUlNRVR5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IGQ1MjAyZGJjNTA0MTM1Njg3MmJjZDU1YTIwMTJm
M2RjNjA3MzExNjMuLmE4MDRhYzYxZGZmZDI5MWZiYTQ0YTcyYTExN2ViYjQ5YzFjYzEyMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cApAQCAtNDksNyArNDksNyBAQCBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9n
Z2VyOjpzX2xvZ2dpbmdFbmFibGVkID0gZmFsc2U7CiAKIE1lbW9yeVByZXNzdXJlSGFuZGxlciYg
bWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTWVtb3J5UHJlc3N1cmVIYW5kbGVyLCBzdGF0aWNNZW1vcnlQcmVzc3VyZUhhbmRsZXIs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLCBzdGF0aWNNZW1vcnlQcmVzc3VyZUhhbmRsZXIpOwogICAgIHJldHVybiBzdGF0aWNN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcAppbmRleCA3ZGMzYjJiNTA5NzVmN2FmNDNiYzIwOWEyMjMyODI5MzIwYzhi
NzQxLi44Zjg3MGJkNjYyZDE1Mjc2ZTQxODU0YTA2NTlmMWZlNWI5ZDQzZDJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGxvY2FsVVJMU2NoZW1l
cygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IGxvY2FsU2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChV
UkxTY2hlbWVzTWFwLCBsb2NhbFNjaGVtZXMpOwogCiAgICAgaWYgKGxvY2FsU2NoZW1lcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbG9jYWxTY2hlbWVzLmFkZCgiZmlsZSIpOwpAQCAtNDYsMTMgKzQ2
LDEzIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBsb2NhbFVSTFNjaGVtZXMoKQogCiBzdGF0aWMg
VVJMU2NoZW1lc01hcCYgZGlzcGxheUlzb2xhdGVkVVJMU2NoZW1lcygpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGRpc3BsYXlJc29sYXRlZFNj
aGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1l
c01hcCwgZGlzcGxheUlzb2xhdGVkU2NoZW1lcyk7CiAgICAgcmV0dXJuIGRpc3BsYXlJc29sYXRl
ZFNjaGVtZXM7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVTY2hlbWVzKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2VjdXJl
U2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hl
bWVzTWFwLCBzZWN1cmVTY2hlbWVzKTsKIAogICAgIGlmIChzZWN1cmVTY2hlbWVzLmlzRW1wdHko
KSkgewogICAgICAgICBzZWN1cmVTY2hlbWVzLmFkZCgiaHR0cHMiKTsKQEAgLTY1LDcgKzY1LDcg
QEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNlY3VyZVNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2No
ZW1lc01hcCYgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5z
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucyk7CiAKICAgICBpZiAoc2NoZW1lc1dpdGhVbmlxdWVP
cmlnaW5zLmlzRW1wdHkoKSkgewogICAgICAgICBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMuYWRk
KCJhYm91dCIpOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1l
c1dpdGhVbmlxdWVPcmlnaW5zKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGVtcHR5RG9jdW1l
bnRTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2No
ZW1lc01hcCwgZW1wdHlEb2N1bWVudFNjaGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgZW1wdHlEb2N1bWVudFNjaGVtZXMpOwogCiAg
ICAgaWYgKGVtcHR5RG9jdW1lbnRTY2hlbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZW1wdHlEb2N1
bWVudFNjaGVtZXMuYWRkKCJhYm91dCIpOwpAQCAtOTAsMTMgKzkwLDEzIEBAIHN0YXRpYyBVUkxT
Y2hlbWVzTWFwJiBlbXB0eURvY3VtZW50U2NoZW1lcygpCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmlu
Zz4mIHNjaGVtZXNGb3JiaWRkZW5Gcm9tRG9tYWluUmVsYXhhdGlvbigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgc2NoZW1lcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNjaGVt
ZXMpOwogICAgIHJldHVybiBzY2hlbWVzOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgY2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RT
Y2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVt
ZXNNYXAsIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcyk7CiAKICAgICBpZiAoY2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMuYWRkKCJibG9iIik7CkBAIC0xMDcsNyArMTA3
LDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2No
ZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxz
U2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVt
ZXNNYXAsIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIG5vdEFsbG93aW5nSmF2YXNj
cmlwdFVSTHNTY2hlbWVzKTsKICAgICByZXR1cm4gbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1Nj
aGVtZXM7CiB9CiAKQEAgLTEzNCwyMCArMTM0LDIwIEBAIGNvbnN0IFVSTFNjaGVtZXNNYXAmIFNj
aGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2No
ZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxs
b3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZywgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdM
b2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk7CiAgICAgcmV0dXJuIHNjaGVtZXNB
bGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMg
VVJMU2NoZW1lc01hcCYgc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNN
YXAsIHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1l
c0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk7CiAgICAgcmV0dXJuIHNj
aGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3Npbmc7CiB9CiAKIHN0YXRp
YyBVUkxTY2hlbWVzTWFwJiBDT1JTRW5hYmxlZFNjaGVtZXMoKQogewogICAgIC8vIEZJWE1FOiBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE2MAotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNjaGVtZXMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwg
Q09SU0VuYWJsZWRTY2hlbWVzKTsKIAogICAgIGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIENPUlNFbmFibGVkU2NoZW1lcy5hZGQoImh0dHAiKTsKQEAgLTE1OSw3
ICsxNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ09SU0VuYWJsZWRTY2hlbWVzKCkKIAog
c3RhdGljIFVSTFNjaGVtZXNNYXAmIENvbnRlbnRTZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVt
ZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFw
LCBzY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNj
aGVtZXNNYXAsIHNjaGVtZXMpOwogICAgIHJldHVybiBzY2hlbWVzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKaW5kZXggOGVkMmQ5NTk5N2I1NGMwMzlm
NzBiNDZiNWJiMjQ3OWRlNzBjZWY3MC4uYWQ2MjliOWM4ZjUyNGViZmU2MmY2Yzc5NDVlOGQ4NjAw
MDM1ZDE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhl
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNwcApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTY3JvbGxiYXJUaGVtZSogU2Ny
b2xsYmFyVGhlbWU6OnRoZW1lKCkKIHsKICAgICBpZiAoU2V0dGluZ3M6Om1vY2tTY3JvbGxiYXJz
RW5hYmxlZCgpKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3Jv
bGxiYXJUaGVtZU1vY2ssIG1vY2tUaGVtZSwgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNb2NrLCBtb2NrVGhlbWUpOwogICAgICAgICBy
ZXR1cm4gJm1vY2tUaGVtZTsKICAgICB9CiAgICAgcmV0dXJuIG5hdGl2ZVRoZW1lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVVJMLmNwcAppbmRleCAyNjNlNGQ0NmI2NjJjYmY4MzNlMmU2MmVkYmZiZTkwOWM5
MjYyZDlmLi5iYmJhMGMzMjAyZjA4ODY5MmQzZWI5YmE4MGU3YzE3NmEzZmU0NGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTC5jcHAKQEAgLTE4MDYsNyArMTgwNiw3IEBAIGJvb2wgcHJvdG9jb2xJc0lu
SFRUUEZhbWlseShjb25zdCBTdHJpbmcmIHVybCkKIAogY29uc3QgVVJMJiBibGFua1VSTCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwgc3RhdGljQmxhbmtVUkws
IChQYXJzZWRVUkxTdHJpbmcsICJhYm91dDpibGFuayIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoVVJMLCBzdGF0aWNCbGFua1VSTCwgKFBhcnNlZFVSTFN0
cmluZywgImFib3V0OmJsYW5rIikpOwogICAgIHJldHVybiBzdGF0aWNCbGFua1VSTDsKIH0KIApA
QCAtMTgyMSw3ICsxODIxLDcgQEAgYm9vbCBpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodW5zaWdu
ZWQgc2hvcnQgcG9ydCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgdW5zaWduZWQsIENhc2VGb2xkaW5n
SGFzaD4gRGVmYXVsdFBvcnRzTWFwOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChEZWZhdWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChEZWZhdWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cyk7CiAgICAgaWYg
KGRlZmF1bHRQb3J0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgZGVmYXVsdFBvcnRzLnNldCgiaHR0
cCIsIDgwKTsKICAgICAgICAgZGVmYXVsdFBvcnRzLnNldCgiaHR0cHMiLCA0NDMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAppbmRleCAzYjdj
YTM0NWRhNTNiYzQ5ZTQzYjVjY2QzNGMxOGE0NTYwYzUxZTJmLi5iMDM1MjRhNjcwY2JmMmUwOTky
OWM2ODk4OGYxZDI2YWE2OWQ0MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
bmltYXRpb24vQW5pbWF0aW9uLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGJvb2wgQW5pbWF0aW9u
OjphbmltYXRpb25zTWF0Y2goY29uc3QgQW5pbWF0aW9uKiBvLCBib29sIG1hdGNoUGxheVN0YXRl
cykgY29uc3QKIAogY29uc3QgU3RyaW5nJiBBbmltYXRpb246OmluaXRpYWxBbmltYXRpb25OYW1l
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0aWFs
VmFsdWUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGluaXRpYWxWYWx1ZSwgKEFTQ0lJTGl0ZXJhbCgi
bm9uZSIpKSk7CiAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggZTIwMjE0ODRjODMzYjJi
YzliNDFmNjQ2OGU0NTNmYjhmODczNzdkZC4uMzI3M2I4Nzg1M2Y3YTBiYWY3ZGE2OTgzMWZhZjQ1
YzkwMTU3YWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nl
c3Npb24uY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9T
ZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb1Nlc3Npb24sIHNlc3Npb24sICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9TZXNzaW9uLCBzZXNzaW9uKTsKICAgICBy
ZXR1cm4gc2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURkVsZXZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9I
UlRGRWxldmF0aW9uLmNwcAppbmRleCAzZTc3NDc4NWE1OGRmYTNmMDY5NDE1MGYzYzgzMWIwZTg2
NGY3ZDdjLi4yYzM3ODBmNzcyNzMwODExYjM2NzY0OWIwZjI0NDRkOTRlN2UxNWE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcApAQCAtNjgs
NyArNjgsNyBAQCBjb25zdCBmbG9hdCBSZXNwb25zZVNhbXBsZVJhdGUgPSA0NDEwMDsKIHN0YXRp
YyBBdWRpb0J1cyogZ2V0Q29uY2F0ZW5hdGVkSW1wdWxzZVJlc3BvbnNlc0ZvclN1YmplY3QoY29u
c3QgU3RyaW5nJiBzdWJqZWN0TmFtZSkKIHsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBB
dWRpb0J1cyo+IEF1ZGlvQnVzTWFwOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdWRpb0J1c01hcCwgYXVkaW9CdXNNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXVkaW9CdXNNYXAsIGF1ZGlvQnVzTWFwKTsKIAogICAgIEF1ZGlvQnVzKiBi
dXM7CiAgICAgQXVkaW9CdXNNYXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0gYXVkaW9CdXNNYXAuZmlu
ZChzdWJqZWN0TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDFjMGU3YWUzYTc3ZTAwZTZkYWNmMDUzMzA3
ZTk2OGIxOWEyY2ZlN2MuLjcwNzgwMTU3ODA3MWEwYzg1Y2Y1NmVmYzA5YmFjNTk4NjkyMjIxNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiAh
UExBVEZPUk0oSU9TKQogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1l
ZGlhU2Vzc2lvbk1hbmFnZXIsIG1hbmFnZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFuYWdlciwgbWFuYWdlcik7CiAgICAgcmV0dXJuIG1h
bmFnZXI7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcAppbmRleCAyNTM5NTE5ODVkZmUyNjVj
Y2ViN2QyMTRkY2ZjNTMxNDFhNDc1Nzk2Li4xN2I3OTczYTNjNTYwNGFhNjE5ZGQxZGI3MzNjNmE3
NmUzZDQ2NDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3Mv
QXVkaW9EZXN0aW5hdGlvbklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGNvbnN0IGlu
dCBrUHJlZmVycmVkQnVmZmVyU2l6ZSA9IDI1NjsKIHR5cGVkZWYgSGFzaFNldDxBdWRpb0Rlc3Rp
bmF0aW9uSU9TKj4gQXVkaW9EZXN0aW5hdGlvblNldDsKIHN0YXRpYyBBdWRpb0Rlc3RpbmF0aW9u
U2V0JiBhdWRpb0Rlc3RpbmF0aW9ucygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF1ZGlvRGVzdGluYXRpb25TZXQsIGF1ZGlvRGVzdGluYXRpb25TZXQsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9EZXN0aW5hdGlvblNldCwgYXVk
aW9EZXN0aW5hdGlvblNldCk7CiAgICAgcmV0dXJuIGF1ZGlvRGVzdGluYXRpb25TZXQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MubW0KaW5kZXggZTVlYjc3ZGIzOGYzOTdhN2EwZDkzYzAwYzliNGVh
NTNmYzFlN2FjMy4uNDY1ZDQ4MjQwZmI3MzZlOTM1ZjVhMmNkNDE1MzBlNTRkNzE4OWNhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MubW0KQEAgLTEwOCw3ICsxMDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIE1lZGlhU2Vzc2lvbk1hbmFnZXImIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNlc3Np
b25NYW5hZ2VyaU9TLCBtYW5hZ2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MsIG1hbmFnZXIpOwogICAgIHJldHVybiBtYW5h
Z2VyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2Ny
ZWVuVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5V
dGlsaXRpZXMuY3BwCmluZGV4IGNlZTE0Yjc0N2IyYTVjOTU5YmI3OTVmN2NlNGU1NjM0YWRjNzdj
MmEuLmZiMTI0ZDVkZTcwZDQ1ZGMzZjk0Y2I3NjM5MTFkODQxYmIwMmIzYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBAIC05
Nyw3ICs5Nyw3IEBAIEN1cnNvck1hcDo6Q3Vyc29yTWFwKCkKIAogaW50IGdldEVjb3JlQ3Vyc29y
KGNvbnN0IFN0cmluZyYgY3Vyc29yU3RyaW5nKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChDdXJzb3JNYXAsIGN1cnNvclN0cmluZ01hcCwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3JNYXAsIGN1cnNvclN0cmluZ01hcCk7CiAKICAg
ICByZXR1cm4gY3Vyc29yU3RyaW5nTWFwLmN1cnNvcihjdXJzb3JTdHJpbmcpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2YTkzN2E5ZTA0ZWFjMTZk
NGNjMTlhNzYyY2ZmNTIzZjQ0YjIxN2E2Li4zMzdlM2JjOTcxZDY0NTgxY2E2YmVlYjI3NGEyNDVi
ZTRjMjhhZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApA
QCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udEdseXBo
c0NhY2hlS2V5JiBhLCBjb25zdCBGb250R2x5cGhzQ2FjaGVLZXkmIGIpCiAKIHN0YXRpYyBGb250
R2x5cGhzQ2FjaGUmIGZvbnRHbHlwaHNDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEZvbnRHbHlwaHNDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoRm9udEdseXBoc0NhY2hlLCBjYWNoZSk7CiAgICAgcmV0dXJu
IGNhY2hlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAppbmRleCA4YTkzZjVmMTcwMGMyMTBmMTc4Zjk1OTMzZTFmNTAyZWFiNDhiYzRjLi42
YjY0ZDEzN2E1NjI4YTA0OWI2YzUwOWRlZTE0OWE3MWUzOTg1Y2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAg
aW5saW5lIFRocmVhZEdsb2JhbEdMQ29udGV4dCogY3VycmVudENvbnRleHQoKQogCiBHTENvbnRl
eHQqIEdMQ29udGV4dDo6c2hhcmluZ0NvbnRleHQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChPd25QdHI8R0xDb250ZXh0Piwgc2hhcmluZywgKGNyZWF0ZU9mZnNjcmVl
bkNvbnRleHQoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhPd25QdHI8R0xDb250ZXh0Piwgc2hhcmluZywgKGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKSkp
OwogICAgIHJldHVybiBzaGFyaW5nLmdldCgpOwogfQogCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9p
ZCBHTENvbnRleHQ6OmNsZWFudXBTaGFyZWRYMTFEaXNwbGF5KCkKIHR5cGVkZWYgVmVjdG9yPEdM
Q29udGV4dCo+IEFjdGl2ZUNvbnRleHRMaXN0Owogc3RhdGljIEFjdGl2ZUNvbnRleHRMaXN0JiBh
Y3RpdmVDb250ZXh0TGlzdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEFjdGl2ZUNvbnRleHRMaXN0LCBhY3RpdmVDb250ZXh0cywgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBY3RpdmVDb250ZXh0TGlzdCwgYWN0aXZlQ29udGV4dHMpOwog
ICAgIHJldHVybiBhY3RpdmVDb250ZXh0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBhNjQ0Yjc3YTA0ZTdlYzlm
NjNjZmIxMmY1YjM5ZmE0M2FiZmIzZjgzLi4wODNlYzRlMTRiOWNkMDc4ZGZjYThmOGYzZWEzYjdh
YzI2MDAxMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0
eXBlZGVmIEhhc2hNYXA8Y29uc3QgR3JhcGhpY3NMYXllciosIFZlY3RvcjxGbG9hdFJlY3Q+PiBS
ZXBhaW50TWFwOwogc3RhdGljIFJlcGFpbnRNYXAmIHJlcGFpbnRSZWN0TWFwKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVwYWludE1hcCwgbWFwLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlcGFpbnRNYXAsIG1hcCk7CiAgICAgcmV0
dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwCmluZGV4IGIzODQzNzJlZjNlMTE4NmRkNGU1ZmRkZDMyOWNiOGQ5NzkwNjg5
NzEuLjlmYTIyMmMxODIxZGYyMmE1ZGFhZTIzYmY2MzNiYjkwNGY5MDM5MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKQEAgLTM2LDgg
KzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmICFVU0UoQ0cpCiB2b2lkIEltYWdlQnVm
ZmVyOjp0cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JT
cGFjZSBkc3RDb2xvclNwYWNlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8aW50PiwgZGV2aWNlUmdiTFVULCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxpbnQ+LCBsaW5lYXJSZ2JMVVQsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPGludD4sIGRldmljZVJnYkxVVCk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxpbnQ+LCBsaW5lYXJSZ2JMVVQp
OwogCiAgICAgaWYgKHNyY0NvbG9yU3BhY2UgPT0gZHN0Q29sb3JTcGFjZSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCmluZGV4IGQwOGZmYjFiMDU2NzdlZmQxNzYwMDE3NzNmZWJhOGVlOTg1ZjdmMzUuLjMyOTNl
MzVkODU0MDYwNDVlZTQwZmViNDhjZmM3MzU1MzVmOGYxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE4OSw3ICsxODksNyBA
QCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJG
YWN0b3J5KiBjdXJyZW50KTsKIGVudW0gUmVxdWVyeUVuZ2luZU9wdGlvbnMgeyBEb05vdFJlc2V0
RW5naW5lcywgUmVzZXRFbmdpbmVzIH07CiBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9y
eSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVuZ2luZU9wdGlvbnMgcmVxdWVyeUZs
YWdzID0gRG9Ob3RSZXNldEVuZ2luZXMgKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4sIGluc3RhbGxlZEVuZ2luZXMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE1lZGlhUGxheWVy
RmFjdG9yeSo+LCBpbnN0YWxsZWRFbmdpbmVzKTsKICAgICBzdGF0aWMgYm9vbCBlbmdpbmVzUXVl
cmllZCA9IGZhbHNlOwogCiAgICAgaWYgKHJlcXVlcnlGbGFncyA9PSBSZXNldEVuZ2luZXMpIHsK
QEAgLTI0MCwxOSArMjQwLDE5IEBAIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1l
ZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBvCiAKIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFwcGxpY2F0aW9u
T2N0ZXRTdHJlYW0sICgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0sICgi
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0UGxhaW4oKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWlu
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHRleHRQbGFp
biwgKCJ0ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiB0ZXh0UGxhaW47CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNv
ZGVjcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgY29kZWNzLCAoImNvZGVjcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29u
c3QgQXRvbWljU3RyaW5nLCBjb2RlY3MsICgiY29kZWNzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKaW5kZXggOTE3Y2UwOTM4NzM1
OWRkNjg5M2FiMzhkMDE5OTUwNjI3N2M1MDJlYS4uZjU0MDExZjU3ZjM3MmM3OTk0Y2U4MTM0MWE4
YjU5MTlkY2RhMTFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2hhZG93Qmx1ci5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOgogCiBTY3JhdGNoQnVm
ZmVyJiBTY3JhdGNoQnVmZmVyOjpzaGFyZWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTY3JhdGNoQnVmZmVyLCBzY3JhdGNoQnVmZmVyLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmF0Y2hCdWZmZXIsIHNjcmF0Y2hCdWZmZXIpOwog
ICAgIHJldHVybiBzY3JhdGNoQnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBmZDI5
NTkwMzdhMTQ1YTY0Njc0MGI5OTcyMjRjNjgxZDc5YWY4YjIwLi42M2Y4OTkyOGY4Y2QxYjFlYTc4
NGY2NjZhMTExNDJmMzhiZDVhZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTI1NywyMSArMjU3
LDIxIEBAIHN0YXRpYyBDRkFycmF5UmVmIG1ldGFkYXRhS2V5TmFtZXMoKQogLy8gRklYTUU6IEl0
IHdvdWxkIGJlIGJldHRlciBpZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhp
cyBrZXkuCiBzdGF0aWMgQ0ZTdHJpbmdSZWYgQ01UaW1lUmFuZ2VTdGFydEtleSgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigi
c3RhcnQiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhD
RlN0cmluZ1JlZiwga2V5LCAoQ0ZTVFIoInN0YXJ0IikpKTsKICAgICByZXR1cm4ga2V5OwogfQog
CiAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIEFWQ0ZUaW1lZE1ldGFkYXRhR3JvdXAu
aCBleHBvcnRlZCB0aGlzIGtleS4KIHN0YXRpYyBDRlN0cmluZ1JlZiBDTVRpbWVSYW5nZUR1cmF0
aW9uS2V5KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJpbmdS
ZWYsIGtleSwgKENGU1RSKCJkdXJhdGlvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigiZHVyYXRpb24iKSkp
OwogICAgIHJldHVybiBrZXk7CiB9CiAKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYg
QVZDRiBleHBvcnRlZCB0aGlzIG5vdGlmaWNhdGlvbiBuYW1lLgogc3RhdGljIENGU3RyaW5nUmVm
IENBQ0ZDb250ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBuYW1lLCAoQ0ZTVFIoImtDQUNGQ29udGV4
dE5lZWRzRmx1c2hOb3RpZmljYXRpb24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhDRlN0cmluZ1JlZiwgbmFtZSwgKENGU1RSKCJrQ0FDRkNvbnRleHRO
ZWVkc0ZsdXNoTm90aWZpY2F0aW9uIikpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApAQCAtODY1
LDcgKzg2NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50CiAKIHN0YXRpYyBIYXNoU2V0PFN0
cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSk7CiAgICAgc3RhdGljIGJvb2wgdHlw
ZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwogCiAgICAgaWYgKHR5cGVMaXN0SW5pdGlhbGl6ZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5ODQ4ZDk5OGZhMjhiY2VjN2RlNmY4MDE1MWM2
MDI3YjE0YjdkNTRhLi43MjY2Mzk5OGEzYzdjMzYwZmUwMzE0Y2U4NjM2N2YwMzA0NmQ1ZWE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMyNCw3ICszMjQsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciAqYm9vbFN0cmluZyhib29sIHZhbCkKIHR5cGVkZWYgSGFzaE1hcDxNZWRpYVBsYXllcios
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqPiBQbGF5ZXJUb1ByaXZhdGVNYXBU
eXBlOwogc3RhdGljIFBsYXllclRvUHJpdmF0ZU1hcFR5cGUmIHBsYXllclRvUHJpdmF0ZU1hcCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXllclRvUHJpdmF0ZU1h
cFR5cGUsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbGF5
ZXJUb1ByaXZhdGVNYXBUeXBlLCBtYXApOwogICAgIHJldHVybiBtYXA7CiB9OwogI2VuZGlmCkBA
IC0xMzIxLDcgKzEzMjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNzQ29udGV4dAogCiBzdGF0aWMgSGFz
aFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUpOwogICAgIHN0YXRpYyBi
b29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIGlmICh0eXBlTGlzdEluaXRp
YWxpemVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGQ4YjY1ZjYwODYyYjBiZmU1
Y2YzODYyODE4ZTM0ZjMzNmFiNzQ3MTMuLjI0MDYzMjZlODQ5YTQ2MDZhNTRmYzQyMjUxNGI2Y2Nk
NjJkMGE2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTIwNSw3ICsyMDUsNyBA
QCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUo
KQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUp
OwogICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIGlm
ICh0eXBlTGlzdEluaXRpYWxpemVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCmluZGV4
IDRiMDM2Y2E0MGNmOGJkYTA2NTY4ZGUwZmE1MWI0ZjAzMWM4NWIyNjcuLjM3ODhhNmM1YmZiNmY4
MTBmYjI1NmIzM2YxODlmNzM2ZWE3MGQ3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMYXllckNoYW5nZXNG
bHVzaGVyJiBMYXllckNoYW5nZXNGbHVzaGVyOjpzaGFyZWQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChMYXllckNoYW5nZXNGbHVzaGVyLCBmbHVzaGVyLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExheWVyQ2hhbmdlc0ZsdXNoZXIsIGZs
dXNoZXIpOwogICAgIHJldHVybiBmbHVzaGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHV2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCmluZGV4IDgw
ODgzMGI4Yjg1N2JkMjg2YjgzZmU4ZDQ0YzQ2YTk0MTcwOTdhMzUuLmJhNWE5YjM3NWYxMzg4OWY1
MjA2NDVmNDRhNmFhMzJhZTUwZGZmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCkBAIC01MCw3ICs1MCw3
IEBAIFN0cmluZyBwcmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICB0eXBlZGVmIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IFN0cmluZ01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nTWFwLCBVVElNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nTWFwLCBVVElNYXApOwogICAgIGlmIChVVElNYXAuaXNFbXB0eSgp
KSB7CiAgICAgICAgIFVUSU1hcC5hZGQoInB1YmxpYy5odG1sIiwgImh0bWwiKTsKICAgICAgICAg
VVRJTWFwLmFkZCgicHVibGljLmpwZWciLCAianBlZyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCA4
ZDM0OWY0NWI4MTViZjEyYTQxYThkNzRjYzhjNjU0MWI4NDM2NTI5Li5lNGZmNjA5Y2JmNDA1NDE0
MjA1NmE2N2Q2NTA4YjBiZmZhM2Y4MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMzgsNyArMzgs
NyBAQCBQYXNzUmVmUHRyPFNvdXJjZUFscGhhPiBTb3VyY2VBbHBoYTo6Y3JlYXRlKEZpbHRlciog
ZmlsdGVyKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNvdXJjZUFscGhhOjplZmZlY3ROYW1lKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBzX2VmZmVjdE5hbWUsICgiU291cmNlQWxwaGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KGNvbnN0IEF0b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUFscGhhIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2VmZmVjdE5hbWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IGQwMDE5NjlhMGZjOWQ4MDZiODAzNDJhNjRm
MjYyMTRkNzhkNWZhOTIuLjUyZDRlOGI3MzJhOTlkMWU1N2ZkZDcwNTEzYzQyZGVhNWRlYjVkZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291
cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMzcsNyArMzcsNyBAQCBQYXNzUmVmUHRyPFNvdXJj
ZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUs
ICgiU291cmNlR3JhcGhpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWlj
U3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlR3JhcGhpYyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGU5MjQ1
MzU0N2ZiZjJiN2Y2MmZlYjRkOTE4YjUxNTM4Zjg1MTZiOWQuLmUwMmU3ZTVjOTkwMDMyNGY2OTZi
Yzg2YzA0NWU2N2IyZDhjMTlhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNjY0LDcgKzE2NjQsNyBAQCBzdGF0aWMgSGFzaFNldDxT
dHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdp
c3RlcldlYktpdEVsZW1lbnRzKCk7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlKTsKICAgICBzdGF0aWMgYm9vbCB0eXBl
TGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAodHlwZUxpc3RJbml0aWFsaXplZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hh
cmZCdXp6RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9IYXJmQnV6ekZhY2UuY3BwCmluZGV4IGI1YjMxZmMxOWNmMTU0ZmY5YjQ5ZTc0OGNmMjU1NGJh
OTUzNWI1YTMuLjM2MGM0ZTMzMzFiYTNhZjNiMzdjYmMxZjQwZTkzNDFhNjhiZmFjYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6
RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enov
SGFyZkJ1enpGYWNlLmNwcApAQCAtNzQsNyArNzQsNyBAQCB0eXBlZGVmIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxGYWNlQ2FjaGVFbnRyeT4sIFdURjo6SW50SGFzaDx1aW50NjRfdD4sIFdURjo6
VQogCiBzdGF0aWMgSGFyZkJ1enpGYWNlQ2FjaGUqIGhhcmZCdXp6RmFjZUNhY2hlKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFyZkJ1enpGYWNlQ2FjaGUsIHNfaGFy
ZkJ1enpGYWNlQ2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFyZkJ1enpGYWNlQ2FjaGUsIHNfaGFyZkJ1enpGYWNlQ2FjaGUpOwogICAgIHJldHVybiAmc19o
YXJmQnV6ekZhY2VDYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KaW5kZXggNjkwMjFhNTEyNWZkZjU5NjQ0YWMw
ZGM5NjM3ZTA2MTA2YjExNjcxYi4uYTRmMTU4ZmMwNWU4NzgwYjM1YmViMDRlZWJlMWQ2N2U0MzYy
YzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tCkBAIC0xNjYsNyArMTY2LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250
RGF0YT4gRm9udENhY2hlOjpzaW1pbGFyRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHQKICAgICAgICAgaWYgKGZhbWlseS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hXb3Jkc1szXSA9IHsgbmV3IFN0cmluZygiQXJh
YmljIiksIG5ldyBTdHJpbmcoIlBhc2h0byIpLCBuZXcgU3RyaW5nKCJVcmR1IikgfTsKLSAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZ2VlemFTdHIs
ICgiR2VlemEgUHJvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5n
LCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMyAmJiAhc2ltcGxlRm9udERhdGE7
ICsraikKICAgICAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnMoKm1hdGNoV29yZHNbal0sIGZh
bHNlKSkKICAgICAgICAgICAgICAgICBzaW1wbGVGb250RGF0YSA9IGdldENhY2hlZEZvbnREYXRh
KGRlc2NyaXB0aW9uLCBnZWV6YVN0cik7CkBAIC0xNzYsNyArMTc2LDcgQEAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpzaW1pbGFyRm9udFBsYXRmb3JtRGF0YShjb25zdCBG
b250RGVzY3JpcHQKIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRM
YXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHRpbWVzU3RyLCAoIlRpbWVzIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHRpbWVzU3RyLCAoIlRpbWVzIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgLy8gRklYTUU6IFdvdWxkIGJl
IGV2ZW4gYmV0dGVyIHRvIHNvbWVob3cgZ2V0IHRoZSB1c2VyJ3MgZGVmYXVsdCBmb250IGhlcmUu
ICBGb3Igbm93IHdlJ2xsIHBpY2sKICAgICAvLyB0aGUgZGVmYXVsdCB0aGF0IHRoZSB1c2VyIHdv
dWxkIGdldCB3aXRob3V0IGNoYW5naW5nIGFueSBwcmVmcy4KQEAgLTE4OCw3ICsxODgsNyBAQCBQ
YXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFj
a0ZvbnQoY29uc3QgRm9udERlc2NyaQogICAgIC8vIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBpdCwg
d2UgZmFsbCBiYWNrIG9uIEx1Y2lkYSBHcmFuZGUgYmVjYXVzZSB0aGF0J3MKICAgICAvLyBndWFy
YW50ZWVkIHRvIGJlIHRoZXJlLCBhY2NvcmRpbmcgdG8gTmF0aGFuIFRheWxvci4gVGhpcyBpcyBn
b29kIGVub3VnaAogICAgIC8vIHRvIGF2b2lkIGEgY3Jhc2ggYXQgbGVhc3QuCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHVjaWRhR3JhbmRlU3RyLCAo
Ikx1Y2lkYSBHcmFuZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywg
bHVjaWRhR3JhbmRlU3RyLCAoIkx1Y2lkYSBHcmFuZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbiwgbHVjaWRhR3JhbmRlU3RyLCBmYWxzZSwgc2hvdWxkUmV0YWluKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IGQxODA4MDE5ZjNmZjcxMzhmZTBiMTc4MDRmODNh
MWRiYjQxZTc3YWQuLmViMTYyYjhlZjBkMDk2ZmZhYmNkYmNmMzc1Y2I5NzA2NTMzNGE0YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTE0MDYsNyArMTQwNiw3IEBAIHN0YXRp
YyB2b2lkIGFkZEZpbGVUeXBlc1RvQ2FjaGUoTlNBcnJheSAqIGZpbGVUeXBlcywgSGFzaFNldDxT
dHJpbmc+ICZjYWNoZSkKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lQ29tbW9uVHlwZXND
YWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3Ry
aW5nPiwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxTdHJpbmc+LCBjYWNoZSk7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXpl
ZCA9IGZhbHNlOwogCiAgICAgaWYgKCF0eXBlTGlzdEluaXRpYWxpemVkKSB7CkBAIC0xNDIwLDcg
KzE0MjAsNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVDb21tb25UeXBlc0NhY2hlKCkK
IAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lTW9kZXJuVHlwZXNDYWNoZSgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBj
YWNoZSk7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwogICAg
IAogICAgIGlmICghdHlwZUxpc3RJbml0aWFsaXplZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAppbmRleCA4NDVjNzdm
NzJhNTlmZDBjMWI2OTdjYTRjOGY2OTg4ZjM4N2M1ZDlmLi40ZGM4Y2IwZGYwZGViMGJlMmZmYjY2
ZThmYTBlMjJlYzdmYzJmYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcApAQCAtMzA5LDcgKzMwOSw3IEBAIFBhc3NS
ZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Zm9udERhdGFGcm9tRGVzY3JpcHRpb25B
bmRMb2dGb250KGNvbnN0IEZvCiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNo
ZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmYWxsYmFja0ZvbnROYW1lLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmFsbGJh
Y2tGb250TmFtZSk7CiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1lLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFsbGJhY2tGb250
TmFtZSwgZmFsc2UsIHNob3VsZFJldGFpbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXgg
Y2E2Y2E1Zjg2ODAyMzk4MTBiNWEyNDIzMTQ4ZDU2NzFmMDE3YTU2OC4uZjJmZTNjOTU5MWQ4NjE3
Yzg2ZTRhMzY1MWUyMGNiMDczNGU3YjJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTE1
Nyw3ICsxNTcsNyBAQCBzdHJ1Y3QgRml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHMgOiBXVEY6Okdl
bmVyaWNIYXNoVHJhaXRzPEZpeGVkU2l6ZUZvbnREYXRhS2V5PgogICAgIHN0YXRpYyBjb25zdCBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdCBGaXhlZFNpemVG
b250RGF0YUtleSYgZW1wdHlWYWx1ZSgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoRml4ZWRTaXplRm9udERhdGFLZXksIGtleSwgKG51bGxBdG9tKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhGaXhlZFNpemVG
b250RGF0YUtleSwga2V5LCAobnVsbEF0b20pKTsKICAgICAgICAgcmV0dXJuIGtleTsKICAgICB9
CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEZpeGVkU2l6ZUZvbnREYXRh
S2V5JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVw
YWRzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAK
aW5kZXggYWI2M2RlYjY2ZjQ2MzVkNjEwZDZiNzBmY2JmZDQyOWQ2Njc2YmE1MC4uMzFiMjQ4ZTEw
Zjg0ZTE0YWJiN2Q1MDI1MmU2ZTAyODM0NzRkOGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgZ2Jvb2xlYW4gR2Ft
ZXBhZHNHdGs6OmlzR2FtZXBhZERldmljZShHVWRldkRldmljZSogZGV2aWNlKQogCiB2b2lkIHNh
bXBsZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRvKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChHYW1lcGFkc0d0aywgZ2FtZXBhZHNHdGssIChpbnRvLT5sZW5ndGgoKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhHYW1lcGFkc0d0
aywgZ2FtZXBhZHNHdGssIChpbnRvLT5sZW5ndGgoKSkpOwogICAgIGdhbWVwYWRzR3RrLnVwZGF0
ZUdhbWVwYWRMaXN0KGludG8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcAppbmRleCA3YTFjNDRlMTlkODQ0MjBiZGVm
MjJlMTM5N2I0Mzg2NWI3NzExZjg4Li5kYTliMjAyZTg1NTc4ZDIxNzM1ZDliYjU3NTRlNTA3ZjI3
NGY1MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGlu
Z1RyYW5zbGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5k
aW5nVHJhbnNsYXRvci5jcHAKQEAgLTIxMyw4ICsyMTMsOCBAQCB2b2lkIEtleUJpbmRpbmdUcmFu
c2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwg
RXZlbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleURvd25Db21tYW5kc01hcCwgKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbnRDb25zdENoYXJIYXNoTWFwLCBr
ZXlQcmVzc0NvbW1hbmRzTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleURvd25Db21tYW5kc01hcCk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleVByZXNzQ29t
bWFuZHNNYXApOwogCiAgICAgaWYgKGtleURvd25Db21tYW5kc01hcC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhrZXlEb3duRW50cmll
cyk7IGkrKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVs
cGVyLmNwcAppbmRleCA4ZjIzODFhMjRkZTQ1MjI4ZTk4ZjJiN2IwODAzNmQzMTI4NTZjMGI1Li43
NDAxZjkyYzY5YTk3NzkwOTViODM2MWE2MTY4OGY0NTdmMmQ2NjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCkBAIC03Myw3ICs3Myw3
IEBAIHN0YXRpYyB2b2lkIGluaXRHZGtBdG9tcygpCiAKIFBhc3RlYm9hcmRIZWxwZXIqIFBhc3Rl
Ym9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoUGFzdGVib2FyZEhlbHBlciwgZGVmYXVsdEhlbHBlciwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXN0ZWJvYXJkSGVscGVyLCBk
ZWZhdWx0SGVscGVyKTsKICAgICByZXR1cm4gJmRlZmF1bHRIZWxwZXI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVX
aW5kb3cuY3BwCmluZGV4IGRlMTU0NGY2ZjIyMGM5MzI5ZGRlNmJlZDc4YjU4NDIyMTMxMTUyYjgu
LjUxZTc5NTI5ODQyNDg3MDVlMWNiZjAxMmFjNTNkMjEwM2MyZDY3NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2lu
ZG93LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhh
c2hNYXA8V2luZG93LCBSZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdyo+IFdpbmRvd0hhc2hNYXA7
CiBzdGF0aWMgV2luZG93SGFzaE1hcCYgZ2V0V2luZG93SGFzaE1hcCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd0hhc2hNYXAsIHdpbmRvd0hhc2hNYXAsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoV2luZG93SGFzaE1hcCwgd2lu
ZG93SGFzaE1hcCk7CiAgICAgcmV0dXJuIHdpbmRvd0hhc2hNYXA7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKaW5kZXggMzYzMGM0M2Rm
ZmRlNTljNmVhODQzYzM1YTM3ZThlOTQ2MTFlNGFlNS4uZmFiZDc5YTZmNWEzNjBhMzkxZDNlMmMw
YTlhYzFhMWE5OGRjZDY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrMy5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQgZ3RrU3R5bGVD
aGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqKQogCiBzdGF0aWMgU3R5bGVDb250
ZXh0TWFwJiBzdHlsZUNvbnRleHRNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHlsZUNvbnRleHRNYXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHlsZUNvbnRleHRNYXAsIG1hcCk7CiAKICAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCBjNzMxYWY0ODkwNTAwY2VhYjhmMWNhYjk4ZGZkYTdhNDJiZGUwN2RmLi4xNzYzOTc1MTMz
ZDNmMTdiOGFjYmI5OTkxYTA2YzYwYjQ3ZjA3MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAKIHN0YXRpYyB2b2lkIHNjaGVkdWxlU2NyYXRjaEJ1ZmZlclB1cmdl
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHVyZ2VTY3JhdGNoQnVm
ZmVyVGltZXIsIHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLCBwdXJnZVNjcmF0Y2hC
dWZmZXJUaW1lcik7CiAgICAgaWYgKHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLmlzQWN0aXZlKCkp
CiAgICAgICAgIHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLnN0b3AoKTsKICAgICBwdXJnZVNjcmF0
Y2hCdWZmZXJUaW1lci5zdGFydE9uZVNob3QoMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9DdXJzb3JJT1MuY3BwCmluZGV4IGY5NmJmYWY3MTM2NGUyMmQwODI3MmMwZTVhZTVmZmRhNGVm
OGU5MDIuLjk1ZThhZWYxMDIzODhlZTgyN2I0YzNkYjRiNTc3OTNmZTdkZjQ4N2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwCkBAIC0zMCw3ICszMCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEN1cnNvciYgY3Vyc29yKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQ3Vyc29yLCBjdXJzb3IsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQ3Vyc29yLCBjdXJz
b3IpOwogICAgIHJldHVybiBjdXJzb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAK
aW5kZXggOWE0Y2ZmY2E4N2I2NjE0N2U4MjBkMGQ0ODY5MjFiMzVlM2MxZmRlZS4uMDcyMTBmZjJm
NzM4MjE1NzQyNTlmMjFiNTZmMjVhNzY4NmMxNDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklP
Uy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI6
OnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldChpbnQgdGFyZ2V0KQogCiBUaWxlQ29udHJvbGxl
ck1lbW9yeUhhbmRsZXImIHRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwg
c3RhdGljVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwgc3RhdGljVGls
ZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyKTsKICAgICByZXR1cm4gc3RhdGljVGlsZUNvbnRyb2xs
ZXJNZW1vcnlIYW5kbGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNDAyMDQ4NWQ3YmFmYTBlZGI4ZjI5Njkz
Nzk0Y2U3ZDU1NjlmNDVjNy4uZjg0ZjU2MGMwYmRiMTkyMzdlNDMyNzJjYWE2MDI2MDM2MWQ5MGM5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5tbQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIGtHcmF2aXR5
ID0gOS44MDY2NTsKIAogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0cjxXZWJDb3JlTW90
aW9uTWFuYWdlcj4sIHNoYXJlZE1vdGlvbk1hbmFnZXIsIChbW1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
IGFsbG9jXSBpbml0XSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhSZXRhaW5QdHI8V2ViQ29yZU1vdGlvbk1hbmFnZXI+LCBzaGFyZWRNb3Rpb25NYW5hZ2Vy
LCAoW1tXZWJDb3JlTW90aW9uTWFuYWdlciBhbGxvY10gaW5pdF0pKTsKICAgICByZXR1cm4gc2hh
cmVkTW90aW9uTWFuYWdlci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVt
ZW50Lm1tCmluZGV4IDkwNmY5ODg3NzYzYTM1YjJkNTc4YjBjODI5NjgwYTAxYWI2ODNmYjUuLmUw
MzY5OWJmZjVmYjBjMmZjNjBlMDFhYmJiMWNjMmQ4ODg5MTM0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTEzNCw4ICsxMzQsOCBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpB
dG9taWNTdAogICAgICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZTsKIAogICAgICAgICBp
ZiAobV9tZWRpYUVsZW1lbnQtPm1lZGlhQ29udHJvbHNIb3N0KCkpIHsKLSAgICAgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFpcnBsYXksIChBU0NJSUxpdGVy
YWwoImFpcnBsYXkiKSkpOwotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgdHZvdXQsIChBU0NJSUxpdGVyYWwoInR2b3V0IikpKTsKKyAgICAgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGFpcnBsYXks
IChBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgdHZvdXQsIChBU0NJSUxpdGVyYWwoInR2
b3V0IikpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBtX21lZGlh
RWxlbWVudC0+bWVkaWFDb250cm9sc0hvc3QoKS0+ZXh0ZXJuYWxEZXZpY2VUeXBlKCk7CiAgICAg
ICAgICAgICBpZiAodHlwZSA9PSBhaXJwbGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAppbmRleCAwZmI4YWU5
OTAwYjhjZDM3NTllZDU2ZDMzZmQ0YjgxYmI3ZmFmMWU3Li42YWNiODJlYTA4OTdkZjUwMTQwNmFh
YWQzZmM1YTBkOWQ0NmExZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcApAQCAtNzcsNyArNzcsNyBAQCBz
dGF0aWMgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gKiBXZWJUaHJlYWRHZXRPYnNlcnZlZENvbnRl
bnRNb2RpZmllcnMoKQogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQo
KSk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHZvaWQgKiwgdm9pZCAqPiBWb2lkVm9pZE1hcDsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVm9pZFZvaWRNYXAsIG9ic2VydmVkQ29u
dGVudE1vZGlmaWVycywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChW
b2lkVm9pZE1hcCwgb2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKTsKICAgICByZXR1cm4gJm9ic2Vy
dmVkQ29udGVudE1vZGlmaWVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KaW5kZXggOWQwMzAzZDM0YzNhMGMzYWIxZDRkNTAyNWEyYTBiMzY3ZTIz
ZGQxMi4uMDc4NTlkYzM4NjkwNDkyMTI2NWIwMmEwOWZmZDFmMWZjNjFiYTg5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0xNjAsNyArMTYwLDcg
QEAgY29uc3QgZmxvYXQgRHJhZ0xpbmtVcmxGb250U2l6ZSA9IDEwOwogc3RhdGljIEZvbnQmIGZv
bnRGcm9tTlNGb250KE5TRm9udCAqZm9udCkKIHsKICAgICBzdGF0aWMgTlNGb250ICpjdXJyZW50
Rm9udDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udCwgY3VycmVudFJl
bmRlcmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnQsIGN1
cnJlbnRSZW5kZXJlcik7CiAgICAgCiAgICAgaWYgKFtmb250IGlzRXF1YWw6Y3VycmVudEZvbnRd
KQogICAgICAgICByZXR1cm4gY3VycmVudFJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IGFjYWFkMDJhZTZhODRlNmZk
YTAxOGJiNTQ5YjY4MjUwYTJlZjIwYzAuLjNmMThmMWY0YTJjZGUyYzkyZWU0YTJjMDMxNzE3Mzkx
YTdiMTMyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMubW0KQEAgLTExNCw3ICsxMTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNj
cm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZU1hYywgdGhlbWUsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNYWMsIHRo
ZW1lKTsKICAgICByZXR1cm4gJnRoZW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VGhlbWVNYWMubW0KaW5kZXggNTZkMGEyYjM5ZjAwMGI1NmEzYzk5YTY5YjY5MzM5Y2Q1MGQyNzk4
ZS4uY2JiM2Q0YjRlN2QwM2QyMGFiN2JkZGE1NTgwNmQ1MjcyODFjYzI5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMTM4LDcgKzEzOCw3IEBAIGVudW0gewog
CiBUaGVtZSogcGxhdGZvcm1UaGVtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFRoZW1lTWFjLCB0aGVtZU1hYywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChUaGVtZU1hYywgdGhlbWVNYWMpOwogICAgIHJldHVybiAmdGhlbWVNYWM7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQppbmRleCAzNjg2
NDUyZjI0ZDk4NDIwNDE0MDVkZGJiNDkwYmRjYmI2OTAyZGRkLi4yN2UyZTUzZTY2MWY4NmMzMWMy
NGFmMTZjNDk4ODYwMzgwZWY0MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVGhyZWFkQ2hlY2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Ro
cmVhZENoZWNrLm1tCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2ViQ29yZVJlcG9ydFRocmVhZFZp
b2xhdGlvbihjb25zdCBjaGFyKiBmdW5jdGlvbiwgV2ViQ29yZTo6VGhyZWFkVmlvbGF0aW9uCiAg
ICAgaWYgKHJvdW5kID49IE1heGltdW1UaHJlYWRWaW9sYXRpb25Sb3VuZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5n
PiwgbG9nZ2VkRnVuY3Rpb25zLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8U3RyaW5nPiwgbG9nZ2VkRnVuY3Rpb25zKTsKICAgICBzd2l0Y2ggKHRocmVh
ZFZpb2xhdGlvbkJlaGF2aW9yW3JvdW5kXSkgewogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBj
ZTExNTAxZDc3YjY0YmI0N2UxOGQ0ZjEzZWRiZjFlY2JkNjg3NzRiLi4xZmY4NDBmYjI1MTkyZTcz
YmZkNDk1OGQ4Nzg3MGM2OGU5OGEyNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CkBAIC0yMjQsNyArMjI0LDcgQEAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpjb25zdHJhaW50cygpIGNvbnN0CiBjb25zdCBNZWRpYVN0cmVhbVNvdXJj
ZVN0YXRlcyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnN0YXRlcygpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX3NvdXJjZSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsKKyAgICAgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVz
LCBub1N0YXRlKTsKICAgICAgICAgcmV0dXJuIG5vU3RhdGU7CiAgICAgfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlh
U3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKaW5kZXggY2Vk
YjAzOTczNTkyMzAzMWI3YTk5Yjc3NjZmMDk4YzhkNDkwMjE1MS4uZGJjZmNmMGE2MWQ1MDdmM2My
MWFjNzgzYWM5NWMyNTNiY2Q4NzNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFT
dHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIE1lZGlhU3RyZWFtQ2VudGVyJiBNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50
ZXIoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLCBjZW50ZXIsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1DZW50ZXJHU3Ry
ZWFtZXIsIGNlbnRlcik7CiAgICAgcmV0dXJuIGNlbnRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFn
ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbQppbmRleCA3YmY3MDMzN2I0YmVlNmRmNzUyNjg2MmRmNzcxNmYyNWM5
NDgzNTI5Li4yYjQ3MjA5Mzc4ODVmOGFiY2ViMGQyNGJiMWRmNDY0ZWQxZjc1ZGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2
aWNlTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoK
IAogc3RhdGljIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgY2FwdHVyZURldmljZUxpc3QoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8Q2FwdHVyZURldmljZT4s
IGNhcHR1cmVEZXZpY2VMaXN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFZlY3RvcjxDYXB0dXJlRGV2aWNlPiwgY2FwdHVyZURldmljZUxpc3QpOwogICAgIHN0YXRp
YyBib29sIGZpcnN0VGltZSA9IHRydWU7CiAKICAgICBpZiAoZmlyc3RUaW1lICYmICFjYXB0dXJl
RGV2aWNlTGlzdC5zaXplKCkpIHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OmlzQXZhaWxhYmxlKCkKIAogQVZDYXB0dXJlRGV2aWNlTWFuYWdlciYgQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQVZDYXB0dXJlRGV2aWNlTWFuYWdlciwgbWFuYWdlciwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLCBtYW5h
Z2VyKTsKICAgICByZXR1cm4gbWFuYWdlcjsKIH0KIApAQCAtNDU1LDcgKzQ1NSw3IEBAIHZvaWQg
QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6ZGV2aWNlRGlzY29ubmVjdGVkKEFWQ2FwdHVyZURldmlj
ZVR5cGUqIGRldmljZSkKIAogY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnZhbGlkQ29uc3RyYWludE5hbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPEF0b21pY1N0cmluZz4sIGNvbnN0cmFpbnRzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9taWNTdHJpbmc+
LCBjb25zdHJhaW50cyk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aGVpZ2h0Q29uc3RyYWludCgiaGVpZ2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gd2lkdGhDb25z
dHJhaW50KCJ3aWR0aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZyYW1lUmF0ZUNvbnN0cmFpbnQo
ImZyYW1lUmF0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtNDc1
LDcgKzQ3NSw3IEBAIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBBVkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjp2YWxpZENvbnN0cmFpbnROYW1lcygpCiAKIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJp
bmc+JiBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjp2YWxpZEZhY2luZ01vZGVzKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPEF0b21pY1N0cmluZz4sIG1vZGVz
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9taWNT
dHJpbmc+LCBtb2Rlcyk7CiAgICAgCiAgICAgaWYgKCFtb2Rlcy5zaXplKCkpIHsKICAgICAgICAg
bW9kZXMuaW5zZXJ0KE1lZGlhU3RyZWFtU291cmNlU3RhdGVzOjpVc2VyLCBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlczo6ZmFjaW5nTW9kZShNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VXNlcikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlh
U3RyZWFtQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKaW5kZXggOGQ4ZDkwZGYxNGMyY2ZjYWIyZDBi
NTdlOGE5ZjVhODc2ZTRjNTRmZi4uMWUwMTBlYzVjYTQxZDJmNTI1OGQ0ZWRmYmI2ZDVhYWQyOThk
OWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCkBAIC00NSw3ICs0NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhU3RyZWFtQ2VudGVyJiBNZWRpYVN0cmVhbUNlbnRl
cjo6cGxhdGZvcm1DZW50ZXIoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFtQ2VudGVyTWFjLCBjZW50
ZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1D
ZW50ZXJNYWMsIGNlbnRlcik7CiAgICAgcmV0dXJuIGNlbnRlcjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmlu
ZGV4IDQ2ZDc1NTJhODNlNjIxOTYyYzM4ZDlkMzgwMDczODliM2I0MzRiZTcuLmJhMWQ2MGZlMGFm
YjBkZjIzMTdkMmQ5YzljYTI5YmUxYzQxOWE3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1vY2tTb3VyY2U+PiBNb2NrU291
cmNlTWFwOwogCiBzdGF0aWMgTW9ja1NvdXJjZU1hcCYgbW9ja1NvdXJjZU1hcCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1vY2tTb3VyY2VNYXAsIG1vY2tTb3VyY2VN
YXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTW9ja1NvdXJjZU1h
cCwgbW9ja1NvdXJjZU1hcCk7CiAgICAgcmV0dXJuIG1vY2tTb3VyY2VNYXA7CiB9CiAKQEAgLTEx
OSw3ICsxMTksNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTW9ja1NvdXJjZXMoKQogCiB2b2lk
IE1vY2tNZWRpYVN0cmVhbUNlbnRlcjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNb2NrTWVkaWFTdHJlYW1DZW50
ZXIsIGNlbnRlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNb2Nr
TWVkaWFTdHJlYW1DZW50ZXIsIGNlbnRlcik7CiAgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJlZCA9
IGZhbHNlOwogICAgIGlmICghcmVnaXN0ZXJlZCkgewogICAgICAgICByZWdpc3RlcmVkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tCb3guY3BwCmluZGV4IGFlYzA0NWMyNTdmYjczY2QwZGU4ZDY1ZGZhY2UyNDg2MTdjY2FiZTku
LmQwYmExNGQ0NGVjMzEyY2Q2ZWU5Y2JiZWI4ODFmMmRkODlmMTk5MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcApAQCAt
NzYsNyArNzYsNyBAQCBNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveChBcnJheUJ1ZmZlciogZGF0
YSkKIAogY29uc3QgU3RyaW5nJiBNb2NrVHJhY2tCb3g6OnR5cGUoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRyYWssIChBU0NJSUxpdGVyYWwoInRyYWsi
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcs
IHRyYWssIChBU0NJSUxpdGVyYWwoInRyYWsiKSkpOwogICAgIHJldHVybiB0cmFrOwogfQogCkBA
IC0xMDUsNyArMTA1LDcgQEAgTW9ja0luaXRpYWxpemF0aW9uQm94OjpNb2NrSW5pdGlhbGl6YXRp
b25Cb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYgTW9ja0luaXRpYWxpemF0
aW9uQm94Ojp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBpbml0LCAoQVNDSUlMaXRlcmFsKCJpbml0IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBpbml0LCAoQVNDSUlMaXRlcmFsKCJpbml0
IikpKTsKICAgICByZXR1cm4gaW5pdDsKIH0KIApAQCAtMTMzLDcgKzEzMyw3IEBAIE1vY2tTYW1w
bGVCb3g6Ok1vY2tTYW1wbGVCb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYg
TW9ja1NhbXBsZUJveDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgc21wbCwgKEFTQ0lJTGl0ZXJhbCgic21wbCIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgc21wbCwgKEFTQ0lJTGl0ZXJh
bCgic21wbCIpKSk7CiAgICAgcmV0dXJuIHNtcGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKaW5kZXggZTM3NWZjZTZiNGIyYTlhOTEyN2FiYWJjZjIy
MzQ2OTdiZTI4M2M3Yi4uOTI1NDkwYmU1OTc5NTJjMzg3Nzk3MGI3NzE2ZWI4MWZjOGUwZDhmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTUxLDcg
KzUxLDcgQEAgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1vY2tNZWRp
YVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWEKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5n
PiBtaW1lVHlwZUNhY2hlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxTdHJpbmc+LCBjYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlKTsKICAgICBzdGF0aWMgYm9vbCBpc0luaXRp
YWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKaW5k
ZXggNDEwMDVkMGFkZGFlMmMzYmY0ZTg5ZTIyMDRjZjYyYTg0NDAyZTBhYS4uNzVjNWU4NDUzMDcx
NGI5NTVmZTFmZjBmMjYxNDNiMGIyNTNlNzliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKQEAgLTQ2LDE0ICs0Niwx
NCBAQCB0eXBlZGVmIEhhc2hNYXA8UHJvdGVjdGlvblNwYWNlLCBDcmVkZW50aWFsPiBQcm90ZWN0
aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXA7CiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlVG9DcmVkZW50
aWFsTWFwJiBwcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByb3Rl
Y3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCwgbWFwKTsKICAg
ICByZXR1cm4gbWFwOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+JiBvcmlnaW5zV2l0aENy
ZWRlbnRpYWxzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNldCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNldCk7CiAgICAg
cmV0dXJuIHNldDsKIH0KIApAQCAtNjEsNyArNjEsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBQcm90ZWN0aW9uU3BhY2U+IFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXA7CiBzdGF0
aWMgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCYgcGF0aFRvRGVmYXVsdFByb3RlY3Rp
b25TcGFjZU1hcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCwg
bWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGhUb0RlZmF1
bHRQcm90ZWN0aW9uU3BhY2VNYXAsIG1hcCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCA2ZDFh
YWIyMGIyZmYyZTM0YmM5MDU0YjAzZGZlZjhmMjE2MDI3MjIyLi45NzJmZWU4YTRiNWZkMjMxYjRj
NzZiYjc0NDM3ZmEwYzFjZjI3ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtMzUxLDE0ICszNTEsMTQgQEAgdm9pZCBmaW5kQ2hh
cnNldEluTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBpbnQmIGNo
YXJzZXRQb3MsIHUKIAogQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWZsZWN0ZWRYU1NEaXNwb3Np
dGlvbiBwYXJzZVhTU1Byb3RlY3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIFN0cmlu
ZyYgZmFpbHVyZVJlYXNvbiwgdW5zaWduZWQmIGZhaWx1cmVQb3NpdGlvbiwgU3RyaW5nJiByZXBv
cnRVUkwpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFp
bHVyZVJlYXNvbkludmFsaWRUb2dnbGUsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIDAgb3IgMSIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJl
YXNvbkludmFsaWRTZXBhcmF0b3IsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIHNlbWljb2xvbiIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJl
YXNvbkludmFsaWRFcXVhbHMsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIGVxdWFscyBzaWduIikp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVh
c29uSW52YWxpZE1vZGUsIChBU0NJSUxpdGVyYWwoImludmFsaWQgbW9kZSBkaXJlY3RpdmUiKSkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFz
b25JbnZhbGlkUmVwb3J0LCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlkIHJlcG9ydCBkaXJlY3RpdmUi
KSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVS
ZWFzb25EdXBsaWNhdGVNb2RlLCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgbW9kZSBkaXJlY3Rp
dmUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1
cmVSZWFzb25EdXBsaWNhdGVSZXBvcnQsIChBU0NJSUxpdGVyYWwoImR1cGxpY2F0ZSByZXBvcnQg
ZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBmYWlsdXJlUmVhc29uSW52YWxpZERpcmVjdGl2ZSwgKEFTQ0lJTGl0ZXJhbCgidW5yZWNvZ25p
emVkIGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRUb2dnbGUsIChBU0NJSUxpdGVyYWwo
ImV4cGVjdGVkIDAgb3IgMSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRTZXBhcmF0b3IsIChBU0NJSUxp
dGVyYWwoImV4cGVjdGVkIHNlbWljb2xvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRFcXVhbHMsIChB
U0NJSUxpdGVyYWwoImV4cGVjdGVkIGVxdWFscyBzaWduIikpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZE1v
ZGUsIChBU0NJSUxpdGVyYWwoImludmFsaWQgbW9kZSBkaXJlY3RpdmUiKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGZhaWx1cmVSZWFzb25J
bnZhbGlkUmVwb3J0LCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlkIHJlcG9ydCBkaXJlY3RpdmUiKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIGZh
aWx1cmVSZWFzb25EdXBsaWNhdGVNb2RlLCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgbW9kZSBk
aXJlY3RpdmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhTdHJpbmcsIGZhaWx1cmVSZWFzb25EdXBsaWNhdGVSZXBvcnQsIChBU0NJSUxpdGVyYWwoImR1
cGxpY2F0ZSByZXBvcnQgZGlyZWN0aXZlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZERpcmVjdGl2ZSwg
KEFTQ0lJTGl0ZXJhbCgidW5yZWNvZ25pemVkIGRpcmVjdGl2ZSIpKSk7CiAKICAgICB1bnNpZ25l
ZCBwb3MgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRleCBjN2YwYjQzOThmMWEw
ZmI5ZWFiZjM4NmQwOTBkNzdhYzQ0OGMzMzg5Li42M2VkOTQxMWNhNmNiNGQwZjhiNzFlYjhkNGFl
MjIyNjM5MGE3NmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTU2LDcgKzU2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3MKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgc2Vzc2lvbiwg
KDApKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLCBzZXNzaW9uLCAoMCkpOwogICAgIHJldHVybiBzZXNzaW9uOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
Y3BwCmluZGV4IDFmNmU3M2Q0NzcxZGQ1YTQ0MzY5MTBlZWQ3ZDRjOGEyODczMmU5ODIuLjExMGIy
NWE0ZDk4ZTBiYTE0MTMzYTY4YTYxZTY3MTBkZDM0YzQ0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIHN0YXRpYyBCdWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCYgYnVpbHRpblJl
c291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoCiAjZWxzZQogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAjZW5kaWYKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQnVpbHRp
blJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChCdWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCwg
bWFwKTsKICAgICByZXR1cm4gbWFwOwogfQogCkBAIC02MSw3ICs2MSw3IEBAIHR5cGVkZWYgSGFz
aE1hcDxBdG9taWNTdHJpbmcsIFJlc291cmNlSGFuZGxlOjpCdWlsdGluU3luY2hyb25vdXNMb2Fk
ZXI+IEJ1aWx0aW5SCiBzdGF0aWMgQnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25vdXNMb2Fk
ZXJNYXAmIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwKCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChCdWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCwgbWFwLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRs
ZVN5bmNocm9ub3VzTG9hZGVyTWFwLCBtYXApOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IGRlZjAxY2ExMGExMWU5YzA3ZTU0OGVjOTI5MTgwNmIwNmZiZmRj
ZTQuLmRhMjg4Yjc3MDFlMTkzMGQ1MDRlNTc0N2NmZGJlNjJlYWExMWRkM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtODIsMTQgKzgyLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIEhhc2hTZXQ8U3RyaW5nPiYgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBob3N0
cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmlu
Zz4sIGhvc3RzKTsKICAgICByZXR1cm4gaG9zdHM7CiB9CiAKIHN0YXRpYyBIYXNoTWFwPFN0cmlu
ZywgUmV0YWluUHRyPENGRGF0YVJlZj4+JiBjbGllbnRDZXJ0cygpCiB7CiAgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgUmV0YWluUHRyPENGRGF0YVJlZj4+IENlcnRzTWFwOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDZXJ0c01hcCwgY2VydHMsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2VydHNNYXAsIGNlcnRzKTsKICAgICByZXR1cm4g
Y2VydHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggY2IyM2NiOWNiN2M1
MjlmMjEzZTMyMjM3NTIyMmUzMGJmYzAwZTgzYy4uOGZjOWIxMjAyMDBmMGU3NGNjMmQ2NzA0MjQ5
ZjU2YzJlYzI5MTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTEzNCw5ICsx
MzQsOSBAQCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0aCgpCiB9CiAKIHN0YXRpYyBNdXRleCog
c2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKSB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBjb29raWVNdXRleCwgKCkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgZG5zTXV0ZXgsICgpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHNoYXJlTXV0ZXgsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4KTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGRuc011dGV4KTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHNoYXJlTXV0ZXgpOwogCiAgICAgc3dp
dGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50
aWFsQmFja2luZ1N0b3JlLmNwcAppbmRleCA4NTEzN2YwNWQyYzQ0OGNkY2NkOGMyZDkzZTc5MDA0
OTk2NGRhNDdiLi41NDU0YTFmNmIyNTU0NGVkMDdiZjc1NDM0MjE2N2UxYTc3ODFlNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFj
a2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9D
cmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIENyZWRlbnRpYWxCYWNraW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDcmVkZW50aWFsQmFja2lu
Z1N0b3JlLCBiYWNraW5nU3RvcmUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSwgYmFja2luZ1N0b3JlKTsKICAgICByZXR1cm4g
YmFja2luZ1N0b3JlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggNjQ3YzkwY2JjZmE4MWJlNDcxMmNl
YjY4MGZhODEyMjM2ZmE1NWQzYy4uNzYzNzZjM2MwMTk5NmI0ODVmNDBkYzNkMmUwMzg1ODkzZmRl
MTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgU291cENvb2tpZUph
ciogY29va2llSmFyRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24pCiAKIHN0YXRpYyBHUmVmUHRyPFNvdXBDb29raWVKYXI+JiBkZWZhdWx0Q29va2llSmFyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR1JlZlB0cjxTb3VwQ29va2ll
SmFyPiwgY29va2llSmFyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEdSZWZQdHI8U291cENvb2tpZUphcj4sIGNvb2tpZUphcik7CiAgICAgcmV0dXJuIGNvb2tpZUph
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBkMTA4NTBkNjI1OWRlMTRmNjBlMzRl
YTM4ZWU3ZDQ4ZWM0ZWI2MmYxLi5jODZiM2UwZjRkMDliNzJiMTUzNmJkYTQ1ZTM4ZDc5NGZhYWNl
NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMjQxLDE0ICsyNDEsMTQgQEAgc3RhdGlj
IGJvb2wgZ0lnbm9yZVNTTEVycm9ycyA9IGZhbHNlOwogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+
JiBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGhvc3RzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgaG9zdHMpOwogICAgIHJl
dHVybiBob3N0czsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgSG9zdFRMU0NlcnRpZmlj
YXRlU2V0PiBDZXJ0aWZpY2F0ZXNNYXA7CiBzdGF0aWMgQ2VydGlmaWNhdGVzTWFwJiBjbGllbnRD
ZXJ0aWZpY2F0ZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDZXJ0
aWZpY2F0ZXNNYXAsIGNlcnRpZmljYXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChDZXJ0aWZpY2F0ZXNNYXAsIGNlcnRpZmljYXRlcyk7CiAgICAgcmV0dXJuIGNl
cnRpZmljYXRlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwCmluZGV4IGZmNTJiN2QzOTE2M2Q1ZDlm
ODQxNDY0MzBiYzNlODU2NjJmZDdkNjUuLjBiZDIwZDk0OTUwY2U0MjYzNzA2MWI1NWZlNGFkZGQx
ODg3YjQxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L0Rvd25sb2FkQnVuZGxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHVp
bnQzMl90IG1hZ2ljTnVtYmVyKCkKIAogY29uc3QgU3RyaW5nJiBmaWxlRXh0ZW5zaW9uKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNp
b24sIChBU0NJSUxpdGVyYWwoIi5kb3dubG9hZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IFN0cmluZywgZXh0ZW5zaW9uLCAoQVNDSUlMaXRl
cmFsKCIuZG93bmxvYWQiKSkpOwogICAgIHJldHVybiBleHRlbnNpb247CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNo
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNh
Y2hlLmgKaW5kZXggOWE1M2NhNjJmMTkyN2FlYjNmMGQyMTg2MjEwZjg4ZmU5NzgwODM0ZC4uNjZm
NDdjZDE0ZGViOTU2NjI3ZGQ5ODViYTM0NzY3MWMxZDgxYjkyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgK
QEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFQgZ2V0KGNvbnN0IEF0b21pY1N0cmluZyYg
a2V5KQogICAgIHsKICAgICAgICAgaWYgKGtleS5pc051bGwoKSkgewotICAgICAgICAgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQsIHZhbHVlRm9yTnVsbCwgKGNyZWF0ZVZhbHVl
Rm9yTnVsbEtleSgpKSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoVCwgdmFsdWVGb3JOdWxsLCAoY3JlYXRlVmFsdWVGb3JOdWxsS2V5KCkpKTsK
ICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvck51bGw7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZh
dWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBw
aW5nRGVmYXVsdC5jcHAKaW5kZXggZDY0OTU0NGJlOGNiYzIyMDk0ODRiOTFiYmM3ZDhlNjc4MmFm
OWUyOC4uNzFiYmZjNjA0MWMwNWVjYWQ4NjdlM2E5MzAyMDQ2OTE2YmMwZjI1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZh
dWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0
TWFwcGluZ0RlZmF1bHQuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgVVNjcmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIFNjcmlwdE5hbWVD
b2RlTWEKIAogVVNjcmlwdENvZGUgc2NyaXB0TmFtZVRvQ29kZShjb25zdCBTdHJpbmcmIHNjcmlw
dE5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmlwdE5hbWVD
b2RlTWFwLCBzY3JpcHROYW1lQ29kZU1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTY3JpcHROYW1lQ29kZU1hcCwgc2NyaXB0TmFtZUNvZGVNYXApOwogICAgIGlm
IChzY3JpcHROYW1lQ29kZU1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplb2Yoc2NyaXB0TmFtZUNvZGVMaXN0KSAvIHNpemVvZihTY3JpcHROYW1lQ29k
ZSk7ICsraSkKICAgICAgICAgICAgIHNjcmlwdE5hbWVDb2RlTWFwLnNldChBU0NJSUxpdGVyYWwo
c2NyaXB0TmFtZUNvZGVMaXN0W2ldLm5hbWUpLCBzY3JpcHROYW1lQ29kZUxpc3RbaV0uY29kZSk7
CkBAIC0zODksNyArMzg5LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVVNjcmlwdENvZGUs
IERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIExvY2FsZVNjcmlwdE1hcEgKIAogVVNjcmlwdENv
ZGUgbG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihjb25zdCBTdHJpbmcmIGxvY2Fs
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jYWxlU2NyaXB0TWFw
LCBsb2NhbGVTY3JpcHRNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTG9jYWxlU2NyaXB0TWFwLCBsb2NhbGVTY3JpcHRNYXApOwogICAgIGlmIChsb2NhbGVTY3Jp
cHRNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9m
KGxvY2FsZVNjcmlwdExpc3QpIC8gc2l6ZW9mKExvY2FsZVNjcmlwdCk7ICsraSkKICAgICAgICAg
ICAgIGxvY2FsZVNjcmlwdE1hcC5zZXQoQVNDSUlMaXRlcmFsKGxvY2FsZVNjcmlwdExpc3RbaV0u
bG9jYWxlKSwgbG9jYWxlU2NyaXB0TGlzdFtpXS5zY3JpcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAppbmRleCA0Nzg2MDgzNDNm
NGU3MDAzMzQ5MmYzYzA4NTllMTdjZDI3N2UxNTQ5Li4wNTA5NmYzY2VhMGE2OTBlNzcwODQ5ZGJk
OGRlYjkwNzQ5MjY1ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBjb21wYXJlQW5kU3dhcE5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3IoVGV4dEJy
ZWFrSXRlcmF0CiAjaWYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCiAgICAgcmV0dXJuIFdURjo6
d2Vha0NvbXBhcmVBbmRTd2FwKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmbm9uU2hhcmVkQ2hh
cmFjdGVyQnJlYWtJdGVyYXRvciksIGV4cGVjdGVkLCBuZXdWYWx1ZSk7CiAjZWxzZQotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChzdGQ6Om11dGV4LCBub25TaGFyZWRDaGFyYWN0
ZXJCcmVha0l0ZXJhdG9yTXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoc3RkOjptdXRleCwgbm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvck11dGV4KTsK
ICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9ja2VyKG5vblNoYXJlZENoYXJhY3Rl
ckJyZWFrSXRlcmF0b3JNdXRleCk7CiAgICAgaWYgKG5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRl
cmF0b3IgIT0gZXhwZWN0ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCmluZGV4IGEzNDRiZDg1
MzM2ZTQ5NDdlMzBmZjdlNDcyYmI1YTUyMTkyYjE2MjIuLmEzZjUwZDYwNDExMzlmMzMxNzIwZGNh
MzA5ZmIwNGMxMTA0NjE5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jZi9IeXBoZW5hdGlvbkNGLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXRhaW5QdHI8Q0ZMb2Nh
bGVSZWY+IEF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENGTG9jYWxlUmVmPj46
OmNyZWF0ZQogCiBzdGF0aWMgQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZTxSZXRhaW5QdHI8Q0ZM
b2NhbGVSZWY+PiYgY2ZMb2NhbGVDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENGTG9jYWxlUmVm
Pj4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENGTG9jYWxlUmVmPj4sIGNhY2hlKTsKICAg
ICByZXR1cm4gY2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3BwCmluZGV4IDdmNDUx
OTkzZTdjM2IzNjRhNjhkYzhkNTRjZWU3ODBiNzhkM2I5YjYuLjBmNmVlZWNmZjAyZjgxMGYyNjVl
YjZhNzUyYTg0NmMwZGU3MjRhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcApAQCAtMjMw
LDcgKzIzMCw3IEBAIGludCBTZW50ZW5jZUJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKCkKIAogVGV4
dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGlu
dCBsZW5ndGgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdvcmRCcmVh
a0l0ZXJhdG9yLCBpdGVyYXRvciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChXb3JkQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IpOwogICAgIGl0ZXJhdG9yLnJlc2V0KHN0
cmluZywgbGVuZ3RoKTsKICAgICByZXR1cm4gJml0ZXJhdG9yOwogfQpAQCAtMjg4LDcgKzI4OCw3
IEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVy
YXRvcikKIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNlbnRlbmNlQnJlYWtJdGVyYXRvciwgaXRlcmF0b3Ip
OwogICAgIGl0ZXJhdG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKICAgICByZXR1cm4gJml0ZXJh
dG9yOwogfQpAQCAtMzQwLDcgKzM0MCw3IEBAIGJvb2wgaXNXb3JkVGV4dEJyZWFrKFRleHRCcmVh
a0l0ZXJhdG9yKikKIAogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ2hhckJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENoYXJCcmVha0l0ZXJhdG9yLCBpdGVyYXRvcik7
CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwogICAgIHJldHVybiAmaXRlcmF0
b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2Nh
bGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNw
cAppbmRleCBhYjAzNmFhMGQxMDBlMDFhNDA5YzExYzcxYWExZjBkNzk0ZjQ1NDAzLi5jMDliODg2
ZGJhODc5OGYyNTIxZmI0YTk0Y2U0MDQ4Mzg2NGE2MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0
aWMgTENJRCBXSU5BUEkgY29udmVydExvY2FsZU5hbWVUb0xDSUQoTFBDV1NUUiBuYW1lLCBEV09S
RCkKIHsKICAgICBpZiAoIW5hbWUgfHwgIW5hbWVbMF0pCiAgICAgICAgIHJldHVybiBMT0NBTEVf
VVNFUl9ERUZBVUxUOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChOYW1lVG9M
Q0lETWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTmFt
ZVRvTENJRE1hcCwgbWFwKTsKICAgICBlbnN1cmVOYW1lVG9MQ0lETWFwKG1hcCk7CiAgICAgU3Ry
aW5nIGxvY2FsZU5hbWUgPSBTdHJpbmcobmFtZSkucmVwbGFjZSgnXycsICctJykubG93ZXIoKTsK
ICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJv
YXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDJiY2NmMWE1MGUyNzZlNjMyODM2NWMzNjA0NzViMjYw
MDdmNDllMjIuLjJhMDZjYzI4MTlkOTE3MjI1MTlhNzcyODJhYTE3YzdlYjg0ZDVkNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBtYXJrdXBUb0NGSFRNTChjb25zdCBTdHJp
bmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBzcmNVUkwsIFZlY3RvcjxjaGFyPiYgcmUKIAogdm9p
ZCByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxlTmV3bGluZXMoU3RyaW5nJiBzdHIpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgd2luZG93c05ld2xp
bmUsIChBU0NJSUxpdGVyYWwoIlxyXG4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIHdpbmRvd3NOZXdsaW5lLCAoQVNDSUlMaXRlcmFsKCJc
clxuIikpKTsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBzdHIubGVuZ3RoKCk7ICsraW5kZXgpIHsKICAgICAgICAgaWYgKHN0
cltpbmRleF0gIT0gJ1xuJyB8fCAoaW5kZXggPiAwICYmIHN0cltpbmRleCAtIDFdID09ICdccicp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4
IGM2NTI5M2QwMjA0OWRiYjJlYTlhYWI3ZjIwYjQyMGMyNjFlZDQyZTcuLmViOWU0NGQ4NmRhM2U0
M2U3ZTcyMzUzYTA5MWYzY2YzM2Y4ZTE0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCBTdHJpbmcgZGlyZWN0
b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAKIHN0YXRpYyBTdHJpbmcgYnVuZGxlTmFtZSgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbmFtZSwgKEFT
Q0lJTGl0ZXJhbCgiV2ViS2l0IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoU3RyaW5nLCBuYW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJLaXQiKSkpOwogCiAj
aWYgVVNFKENGKQogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOwpAQCAtMjg3LDcgKzI4Nyw3
IEBAIHN0YXRpYyBTdHJpbmcgc3RvcmFnZURpcmVjdG9yeShEV09SRCBwYXRoSWRlbnRpZmllcikK
ICAgICBidWZmZXIucmVzaXplKHdjc2xlbihidWZmZXIuZGF0YSgpKSk7CiAgICAgU3RyaW5nIGRp
cmVjdG9yeSA9IFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbXBhbnlOYW1lRGlyZWN0b3J5LCAoQVNDSUlMaXRlcmFs
KCJBcHBsZSBDb21wdXRlclxcIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUxfV0lUSF9BUkcoU3RyaW5nLCBjb21wYW55TmFtZURpcmVjdG9yeSwgKEFTQ0lJTGl0ZXJhbCgi
QXBwbGUgQ29tcHV0ZXJcXCIpKSk7CiAgICAgZGlyZWN0b3J5ID0gcGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGRpcmVjdG9yeSwgY29tcGFueU5hbWVEaXJlY3RvcnkgKyBidW5kbGVOYW1lKCkpOwog
ICAgIGlmICghbWFrZUFsbERpcmVjdG9yaWVzKGRpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKaW5kZXgg
OThkMGE5N2I3YjkzZDdjOGViYWI0OGJhNTQ4M2IzOWQyMzY0OGMyYy4uN2I3ZTg5NTY5ZjY0NTg5
NDQ0NmU1NDA3YWQ2NDU4YzJlOGJhMmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EYXRhYmFzZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGJvb2wgZ1BlcnNpc3RlbnRQ
bHVnaW5NZXRhZGF0YUNhY2hlSXNFbmFibGVkOwogCiBTdHJpbmcmIHBlcnNpc3RlbnRQbHVnaW5N
ZXRhZGF0YUNhY2hlUGF0aCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgY2FjaGVQYXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgY2FjaGVQYXRoKTsKICAgICByZXR1cm4gY2FjaGVQYXRoOwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyLmNwcAppbmRleCBjYTA1NzllNTg5OWNjMTU4OGY4ZDZlZDk5ZTRiMmQxODFlYjY3NmZhLi5j
MGYzNDQwNTBmMGQ2ZTA3YjBmNDMxNzc1YTViMDczNDZmZTY0YTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyJiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLCBzY2hl
ZHVsZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlciwgc2NoZWR1bGVyKTsKIAogICAgIHJldHVybiBzY2hlZHVsZXI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBiZGFhY2QwYjA0
NThhMmNhNGFhZjA1MGFiMWI1Njc1NTk2NmQ4NjA1Li4xNDhiODUxY2M1ZGZjNzE2Yjg3MDkxMmU3
M2M2ZGQyNTE3ZWZhMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKQEAgLTE3NDksNyArMTc0OSw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6YmxvY2tF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKICAgICAKIHN0YXRpYyBDb250aW51YXRpb25PdXRs
aW5lVGFibGVNYXAqIGNvbnRpbnVhdGlvbk91dGxpbmVUYWJsZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcCwgdGFibGUs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29udGludWF0aW9uT3V0
bGluZVRhYmxlTWFwLCB0YWJsZSk7CiAgICAgcmV0dXJuICZ0YWJsZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAx
MzkwNGU3MzA3YTE2YWY0ODYwYTU0NmIxMDMzNGIwNGIxZTMxOGVmLi4xMzY5ZDg3MjViNjcyNTlj
ZTBmN2NiYTBlZjEwMjljNDEwNTcwNDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTgxMiw3ICsxODEyLDcgQEAgdm9p
ZCBSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JUZXh0T3ZlcmZsb3coKQogICAgIC8vIERl
dGVybWluZSB0aGUgd2lkdGggb2YgdGhlIGVsbGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZvbnQu
CiAgICAgLy8gRklYTUU6IENTUzMgc2F5cyB0aGlzIGlzIGNvbmZpZ3VyYWJsZSwgYWxzbyBuZWVk
IHRvIHVzZSAweDAwMkUgKEZVTEwgU1RPUCkgaWYgaG9yaXpvbnRhbCBlbGxpcHNpcyBpcyAibm90
IHJlbmRlcmFibGUiCiAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCkuZm9udCgpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3Ry
LCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250YWxF
bGxpcHNpcywgMSkpOwogICAgIGNvbnN0IEZvbnQmIGZpcnN0TGluZUZvbnQgPSBmaXJzdExpbmVT
dHlsZSgpLmZvbnQoKTsKICAgICBmbG9hdCBmaXJzdExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RM
aW5lRm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHRoaXMsIGZpcnN0TGluZUZvbnQsICZob3Jp
em9udGFsRWxsaXBzaXMsIDEsIGZpcnN0TGluZVN0eWxlKCkpKTsKICAgICBmbG9hdCBlbGxpcHNp
c1dpZHRoID0gKGZvbnQgPT0gZmlyc3RMaW5lRm9udCkgPyBmaXJzdExpbmVFbGxpcHNpc1dpZHRo
IDogZm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHRoaXMsIGZvbnQsICZob3Jpem9udGFsRWxs
aXBzaXMsIDEsIHN0eWxlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb21iaW5lVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Q29tYmluZVRleHQuY3BwCmluZGV4IDNmMDEzZGI5MWQ3ZjVjODc1NWU1MmQ4YzQwZWM5OWQ2YTA2
YzgzYTguLjY2MmFmOWIxMmUzNDlkNjBmOTY3ZThhNDhkMGNjOGYyMjdiZDNlZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRleHQ6OmNvbWJpbmVUZXh0KCkKICAgICAgICAg
bV9jb21iaW5lRm9udFN0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcik7CiAKICAgICBp
ZiAobV9pc0NvbWJpbmVkKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCAoJm9iamVjdFJlcGxh
Y2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCAo
Jm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CiAgICAgICAgIFJlbmRlclRleHQ6OnNl
dFJlbmRlcmVkVGV4dChvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZy5pbXBsKCkpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRl
eCA4OTNkYzE4OGU2ZjY4YzQ0NmFkOGExYjhjNTMxMDY1OTVlYmJkMmM0Li5lZTNhZTMyMjNjODY0
OTg3ZWRkMTc2NmM1YTUxMzI4MDJhNjYxZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvdW50ZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBDb3VudGVyTm9kZSog
bWFrZUNvdW50ZXJOb2RlKFJlbmRlck9iamVjdCosIGNvbnN0IEF0b21pY1N0cmluZyYgaWRlbnRp
ZmllCiAKIHN0YXRpYyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDb3VudGVyTWFwcywgc3RhdGljQ291bnRlck1hcHMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ291bnRlck1hcHMsIHN0YXRp
Y0NvdW50ZXJNYXBzKTsKICAgICByZXR1cm4gc3RhdGljQ291bnRlck1hcHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKaW5kZXggNzYwNmFkOTA3ZGY2M2Q3YThmNTA5YTMzNGY4YjMxMGU5NzQ3MzBhNC4u
YmVhMjE1N2E4MjFiOTRkNjA4OTkwMGI1MTRjYTMzYjQ4OWI3OGY0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAKQEAgLTk5NCw4ICs5OTQsOCBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAogICAgICAgICAg
ICAgY29udGludWU7CiAKICAgICAgICAgY29uc3QgVUNoYXIgZWxsaXBzaXNBbmRTcGFjZVsyXSA9
IHsgaG9yaXpvbnRhbEVsbGlwc2lzLCAnICcgfTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZWxsaXBzaXNBbmRTcGFjZVN0ciwgKGVsbGlwc2lz
QW5kU3BhY2UsIDIpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZWxsaXBzaXNTdHIsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcs
IGVsbGlwc2lzQW5kU3BhY2VTdHIsIChlbGxpcHNpc0FuZFNwYWNlLCAyKSk7CisgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGVsbGlw
c2lzU3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOwogICAgICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgbGluZVN0eWxlID0gbnVtVmlzaWJsZUxpbmVzID09IDEgPyBmaXJzdExpbmVTdHlsZSgp
IDogc3R5bGUoKTsKICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IGxpbmVTdHlsZS5mb250KCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVj
aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCmlu
ZGV4IGQ4MTgzYzdmZTFmMDhlOWI1M2U4MWFmMjgzOGNjYjZiNjcyMmIyMDQuLmJiNTBhYzZjNTg2
MmYwNzQwNzQ1NDVmMzNhMGM1NjE3ODUzZWUyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcApAQCAtODMsOSArODMsOSBAQCBib29sIFJlbmRl
cklucHV0U3BlZWNoOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0CiAgICAgLy8gQWNjb3VudCBmb3IgdGhlIGxvY2FsIGRyYXdpbmcgb2Zmc2V0
LgogICAgIGJ1dHRvblJlY3QubW92ZUJ5KHJlY3QubG9jYXRpb24oKSk7CiAKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEltYWdlPiwgaW1hZ2VTdGF0ZU5vcm1hbCwg
KEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgiaW5wdXRTcGVlY2giKSkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlUmVjb3Jk
aW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaFJlY29yZGluZyIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxJbWFnZT4sIGlt
YWdlU3RhdGVXYWl0aW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVj
aFdhaXRpbmciKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlTm9ybWFsLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJl
c291cmNlKCJpbnB1dFNwZWVjaCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKFJlZlB0cjxJbWFnZT4sIGltYWdlU3RhdGVSZWNvcmRpbmcsIChJbWFnZTo6
bG9hZFBsYXRmb3JtUmVzb3VyY2UoImlucHV0U3BlZWNoUmVjb3JkaW5nIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUmVmUHRyPEltYWdlPiwgaW1hZ2VT
dGF0ZVdhaXRpbmcsIChJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoImlucHV0U3BlZWNoV2Fp
dGluZyIpKSk7CiAKICAgICBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudCogc3BlZWNoQnV0
dG9uID0gdG9JbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChlbGVtZW50KTsKICAgICBJbWFn
ZSogaW1hZ2UgPSBpbWFnZVN0YXRlTm9ybWFsLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggNWMwNDY5YmFlZWQ4YTc1NGM4ZGIyMGFhMGI4ZTU1ODBh
YTJhMjBmNC4uOWE4ZDc3OWE0MWRhMDhhNWY2ZjFhYzhjZGJiMzE4ZDJlMzUyYjU2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zMzg3LDEyICszMzg3LDEy
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZShHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91CiAgICAgUmVmUHRyPEltYWdlPiByZXNpemVDb3Ju
ZXJJbWFnZTsKICAgICBGbG9hdFNpemUgY29ybmVyUmVzaXplclNpemU7CiAgICAgaWYgKHJlbmRl
cmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpID49IDIpIHsKLSAgICAgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdlKiwgcmVzaXplQ29ybmVySW1hZ2VIaVJl
cywgKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgidGV4dEFyZWFSZXNpemVDb3JuZXJAMngi
KS5sZWFrUmVmKCkpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJ
VEhfQVJHKEltYWdlKiwgcmVzaXplQ29ybmVySW1hZ2VIaVJlcywgKEltYWdlOjpsb2FkUGxhdGZv
cm1SZXNvdXJjZSgidGV4dEFyZWFSZXNpemVDb3JuZXJAMngiKS5sZWFrUmVmKCkpKTsKICAgICAg
ICAgcmVzaXplQ29ybmVySW1hZ2UgPSByZXNpemVDb3JuZXJJbWFnZUhpUmVzOwogICAgICAgICBj
b3JuZXJSZXNpemVyU2l6ZSA9IHJlc2l6ZUNvcm5lckltYWdlLT5zaXplKCk7CiAgICAgICAgIGNv
cm5lclJlc2l6ZXJTaXplLnNjYWxlKDAuNWYpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZSosIHJlc2l6ZUNvcm5lckltYWdlTG9SZXMs
IChJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoInRleHRBcmVhUmVzaXplQ29ybmVyIikubGVh
a1JlZigpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
RyhJbWFnZSosIHJlc2l6ZUNvcm5lckltYWdlTG9SZXMsIChJbWFnZTo6bG9hZFBsYXRmb3JtUmVz
b3VyY2UoInRleHRBcmVhUmVzaXplQ29ybmVyIikubGVha1JlZigpKSk7CiAgICAgICAgIHJlc2l6
ZUNvcm5lckltYWdlID0gcmVzaXplQ29ybmVySW1hZ2VMb1JlczsKICAgICAgICAgY29ybmVyUmVz
aXplclNpemUgPSByZXNpemVDb3JuZXJJbWFnZS0+c2l6ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCmluZGV4IDc5YjVk
ODIwZjYxZGQ2ZjRkZmEyODI5YWU5ZWE0YWI1MmZlNTRhNjguLmMyMjRiYTgwZmM1NzYxZDRhMWNi
ODhlZGIyYmE0YzA5NWVmMTIzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlclNjcm9sbGJhclRoZW1lKiBSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVu
ZGVyU2Nyb2xsYmFyVGhlbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChSZW5kZXJTY3JvbGxiYXJUaGVtZSwgdGhlbWUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUmVuZGVyU2Nyb2xsYmFyVGhlbWUsIHRoZW1lKTsKICAgICByZXR1cm4g
JnRoZW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRl
eCA3Zjk4ZTEwNWU0OGEwMGU1ZDBhMDExYmFhMTYyYjM3MTRlYzVmOTlmLi5hM2FlMGVhMmI2OGRm
YzA1YzhlZDkxMTg1OGUyZTA5NzFmMWJiNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAogc3RhdGljIENvbG9yJiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBjb2xvciwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgY29sb3IpOwogICAgIHJldHVybiBjb2xvcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDE3
ZjZhOGRiNzgyZmFlOTY0MWU3ZjI5NGUwZWM3MTQzZDViMTRmYjYuLmVjYTFmMmUxMDE0OWU5NWM4
YzM0NjgzMTI4ZWU4MDg1NWQxZGJiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KQEAgLTM0MywxMyArMzQzLDEzIEBAIHN0YXRpYyBGb250V2VpZ2h0IHRv
Rm9udFdlaWdodChOU0ludGVnZXIgYXBwS2l0Rm9udFdlaWdodCkKIAogdm9pZCBSZW5kZXJUaGVt
ZU1hYzo6c3lzdGVtRm9udChDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChGb250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBzbWFsbFN5c3RlbUZvbnQsICgpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBtZW51
Rm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3Jp
cHRpb24sIGxhYmVsRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChGb250RGVzY3JpcHRpb24sIG1pbmlDb250cm9sRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsQ29udHJvbEZvbnQsICgp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBj
b250cm9sRm9udCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250
RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsU3lzdGVtRm9udCk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgbWVudUZvbnQpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxhYmVsRm9udCk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgbWluaUNv
bnRyb2xGb250KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2Ny
aXB0aW9uLCBzbWFsbENvbnRyb2xGb250KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9udCk7CiAKICAgICBGb250RGVzY3JpcHRp
b24qIGNhY2hlZERlc2M7CiAgICAgTlNGb250KiBmb250ID0gbmlsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCAxZmY4M2E4YTVlZTUzZTUzZTUyMjcxM2Rm
YWUwNDFjNThiMjA3NjUzLi5kZWQzNzZkMmE2YTU1MDRjMDlkYzVkOTAwNmNhMGJhOWJiZTllOTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtNDYsNyAr
NDYsNyBAQCB1bnNpZ25lZCBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3VzcGVuc2lvblNjb3BlOjpz
X3dpZGdldEhpZXJhcmNoeVVwZGF0ZVN1c3BlbmRDbwogCiBXaWRnZXRIaWVyYXJjaHlVcGRhdGVz
U3VzcGVuc2lvblNjb3BlOjpXaWRnZXRUb1BhcmVudE1hcCYgV2lkZ2V0SGllcmFyY2h5VXBkYXRl
c1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0TmV3UGFyZW50TWFwKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoV2lkZ2V0VG9QYXJlbnRNYXAsIG1hcCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXaWRnZXRUb1BhcmVudE1hcCwgbWFwKTsKICAg
ICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5jcHAKaW5kZXggYjJkOTVhOWVmMWNiYTA0OTg2MWM3NzBkY2ZjZWE4NmIwMDMwYmU4MC4uMWNl
NGFiYjU1OTlkYTRhZmU4MmIzMTVkOTQzZjQ5NDMyODg2Yzg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdHJ1Y3QgVGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbyB7CiBzdGF0aWMgY29uc3QgVmVjdG9yPFF1YWxpZmllZE5h
bWU+JiBmb3JtSW5wdXRUYWdzKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0YWdzIGZvciB0aGUg
Zm9ybSBpbnB1dCBlbGVtZW50cy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
VmVjdG9yPFF1YWxpZmllZE5hbWU+LCBmb3JtSW5wdXRUYWdzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxRdWFsaWZpZWROYW1lPiwgZm9ybUlucHV0VGFn
cyk7CiAgICAgaWYgKGZvcm1JbnB1dFRhZ3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvcm1JbnB1
dFRhZ3MuYXBwZW5kKGlucHV0VGFnKTsKICAgICAgICAgZm9ybUlucHV0VGFncy5hcHBlbmQoYnV0
dG9uVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGFm
MzQyNTdhZTBhMzFlZmZmOWM5MWUwN2ZjYzMxOTA3NjllYjYxOTIuLmRmOTUzMDUyOTRhOTkyZjE4
MDViZjM5OGNkOWY1YzFlNDUyNjg4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0UGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQ
YWludGVyLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgVGV4dFBhaW50ZXI6OnBhaW50VGV4
dCgpCiAgICAgICAgIGlmICghbV9lbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29u
dGV4dCwgKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUsIFVzZUVt
cGhhc2lzTWFya0NvbG9yKTsKIAotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFj
dGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOwogICAgICAgICAg
ICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogbV90ZXh0UnVuOwogICAgICAgICAgICAgRmxv
YXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gbV9jb21iaW5lZFRleHQgPyBGbG9hdFBv
aW50KGJveE9yaWdpbi54KCkgKyBtX2JveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkg
KyBtX2ZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiBtX3RleHRPcmlnaW47CiAgICAgICAg
ICAgICBpZiAobV9jb21iaW5lZFRleHQpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0UGFp
bnRlcjo6cGFpbnRUZXh0KCkKICAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0
ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rp
b25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CiAKLSAgICAgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJh
Y3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhUZXh0UnVuLCBvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0
ZXIsIDEpKTsKICAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBtX2Nv
bWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IG1fdGV4dFJ1
bjsKICAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IG1fY29t
YmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0LndpZHRoKCkg
LyAyLCBib3hPcmlnaW4ueSgpICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogbV90
ZXh0T3JpZ2luOwogICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAppbmRleCBkNmI2
OGRkMzU1YjczYzUyYWMzOTVmNmExMDI0NWEwOTUzNmUzNmY4Li45NGIxZTJjYmE2MzdiNDExOTM3
N2FjYjdiYzQ4NzhjODNkMzRlNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6
CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIHN0ZDo6dW5pcXVlX3B0cjxT
aGFwZU91dHNpZGVJbmZvPj4gSW5mb01hcDsKICAgICBzdGF0aWMgSW5mb01hcCYgaW5mb01hcCgp
CiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW5mb01hcCwg
c3RhdGljSW5mb01hcCwgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSW5mb01hcCwgc3RhdGljSW5mb01hcCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNJbmZvTWFw
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRUcmFja1NpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tT
aXplLmgKaW5kZXggYTAxYjUyOTRkNWFhY2M3NWFkMjFkM2E0YjY1NWIyYjlhNzY5MTYyYS4uNzU0
Njk2OTI3Zjc5MmU1ZDdhMjVhZDZlYzk2YWFjOWM4NzdmNDVjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9taW5UcmFja0JyZWFkdGguaXNMZW5ndGgo
KSB8fCAhbV9taW5UcmFja0JyZWFkdGgubGVuZ3RoKCkuaXNVbmRlZmluZWQoKSk7CiAgICAgICAg
IGlmIChtX21pblRyYWNrQnJlYWR0aC5pc0xlbmd0aCgpICYmIG1fbWluVHJhY2tCcmVhZHRoLmxl
bmd0aCgpLmlzQXV0bygpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoR3JpZExlbmd0aCwgbWluQ29udGVudCwgKE1pbkNvbnRlbnQpKTsKKyAgICAgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhHcmlkTGVuZ3RoLCBtaW5D
b250ZW50LCAoTWluQ29udGVudCkpOwogICAgICAgICAgICAgcmV0dXJuIG1pbkNvbnRlbnQ7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoOwpAQCAtODIsNyArODIs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbWF4VHJhY2tCcmVhZHRoLmlz
TGVuZ3RoKCkgfHwgIW1fbWF4VHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5kZWZpbmVkKCkpOwog
ICAgICAgICBpZiAobV9tYXhUcmFja0JyZWFkdGguaXNMZW5ndGgoKSAmJiBtX21heFRyYWNrQnJl
YWR0aC5sZW5ndGgoKS5pc0F1dG8oKSkgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEdyaWRMZW5ndGgsIG1heENvbnRlbnQsIChNYXhDb250ZW50KSk7CisgICAg
ICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoR3JpZExlbmd0
aCwgbWF4Q29udGVudCwgKE1heENvbnRlbnQpKTsKICAgICAgICAgICAgIHJldHVybiBtYXhDb250
ZW50OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX21heFRyYWNrQnJlYWR0aDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDMzMjBj
MDI4YjU4ZDQ5NjhlNzNkYzJkNmE5OTE5MjQxMDk0ZjE4NjMuLmJmZDMxZGVkM2ZiOTE1ZjhlYTg0
YmZiNWJlNGE0YWM0MDQ0ZjNmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE0NCw4ICsxMTQ0LDggQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGh5
cGhlbmF0aW9uU3RyaW5nOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBs
b2NhbGUuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aHlwaGVuTWludXNTdHJpbmcsICgmaHlwaGVuTWludXMsIDEpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBoeXBoZW5TdHJpbmcsICgmaHlwaGVuLCAx
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0
cmluZywgaHlwaGVuTWludXNTdHJpbmcsICgmaHlwaGVuTWludXMsIDEpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBoeXBoZW5TdHJp
bmcsICgmaHlwaGVuLCAxKSk7CiAgICAgcmV0dXJuIGZvbnQoKS5wcmltYXJ5Rm9udEhhc0dseXBo
Rm9yQ2hhcmFjdGVyKGh5cGhlbikgPyBoeXBoZW5TdHJpbmcgOiBoeXBoZW5NaW51c1N0cmluZzsK
IH0KIApAQCAtMTE1NywyOCArMTE1NywyOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0
eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKICAgICBjYXNlIFRleHRFbXBoYXNp
c01hcmtDdXN0b206CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCk7CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG90OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEp
KTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
b3BlbkRvdFN0cmluZywgKCZ3aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBmaWxsZWREb3RTdHJpbmcs
ICgmYnVsbGV0LCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxsZXQsIDEpKTsK
ICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmls
bGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrQ2lyY2xlOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0cmluZywgKCZibGFja0NpcmNsZSwg
MSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNs
ZVN0cmluZywgKCZibGFja0NpcmNsZSwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndo
aXRlQ2lyY2xlLCAxKSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4
dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJp
bmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdWJsZUNpcmNsZTogewotICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRE
b3VibGVDaXJjbGVTdHJpbmcsICgmZmlzaGV5ZSwgMSkpOwotICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nLCAo
JmJ1bGxzZXllLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9X
SVRIX0FSRyhBdG9taWNTdHJpbmcsIGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZywgKCZmaXNoZXll
LCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhB
dG9taWNTdHJpbmcsIG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcsICgmYnVsbHNleWUsIDEpKTsKICAg
ICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVk
ID8gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nIDogb3BlbkRvdWJsZUNpcmNsZVN0cmluZzsKICAg
ICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrVHJpYW5nbGU6IHsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5nbGVTdHJp
bmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblRyaWFuZ2xlU3RyaW5nLCAoJndo
aXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGZpbGxlZFRyaWFuZ2xlU3RyaW5nLCAo
JmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywg
KCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhh
c2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmlu
ZyA6IG9wZW5UcmlhbmdsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
U2VzYW1lOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGZpbGxlZFNlc2FtZVN0cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKLSAgICAgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmlu
ZywgKCZ3aGl0ZVNlc2FtZURvdCwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJpbmcsICgmc2Vz
YW1lRG90LCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhBdG9taWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgmd2hpdGVTZXNhbWVEb3QsIDEp
KTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxs
RmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKQEAgLTExOTMsMTMgKzExOTMsMTMgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNv
bnN0CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogY29uc3QgVmVjdG9yPFN0eWxlRGFz
aGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxlRGFzaGJvYXJk
UmVnaW9uPiwgZW1wdHlMaXN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4sIGVtcHR5TGlzdCk7CiAgICAgcmV0dXJu
IGVtcHR5TGlzdDsKIH0KIAogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiYgUmVu
ZGVyU3R5bGU6Om5vbmVEYXNoYm9hcmRSZWdpb25zKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiwgbm9uZUxpc3QsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxlRGFzaGJv
YXJkUmVnaW9uPiwgbm9uZUxpc3QpOwogICAgIHN0YXRpYyBib29sIG5vbmVMaXN0SW5pdGlhbGl6
ZWQgPSBmYWxzZTsKIAogICAgIGlmICghbm9uZUxpc3RJbml0aWFsaXplZCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA0MDExMjViMTJhMzgx
ZjUzYTY4ZjM5ZmQ3NjZjYmJlMjQ0OWFlNzI3Li42MmVkZDE2OWI0NDM1MmZkNWYwMDUwODRmYTE4
OTBkNGY1YmNlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtMTg1Myw3ICsxODUzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB1bnNpZ25l
ZCBzaG9ydCBpbml0aWFsQ29sdW1uQ291bnQoKSB7IHJldHVybiAxOyB9CiAgICAgc3RhdGljIENv
bHVtbkZpbGwgaW5pdGlhbENvbHVtbkZpbGwoKSB7IHJldHVybiBDb2x1bW5GaWxsQmFsYW5jZTsg
fQogICAgIHN0YXRpYyBDb2x1bW5TcGFuIGluaXRpYWxDb2x1bW5TcGFuKCkgeyByZXR1cm4gQ29s
dW1uU3Bhbk5vbmU7IH0KLSAgICBzdGF0aWMgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgaW5p
dGlhbFRyYW5zZm9ybSgpIHsgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRyYW5zZm9y
bU9wZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1cm4gb3BzOyB9CisgICAgc3RhdGljIGNvbnN0IFRy
YW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7IERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChUcmFuc2Zvcm1PcGVyYXRpb25zLCBvcHMpOyByZXR1cm4gb3BzOyB9CiAg
ICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNmb3JtT3JpZ2luWCgpIHsgcmV0dXJuIExlbmd0
aCg1MC4wZiwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1P
cmlnaW5ZKCkgeyByZXR1cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBF
UG9pbnRlckV2ZW50cyBpbml0aWFsUG9pbnRlckV2ZW50cygpIHsgcmV0dXJuIFBFX0FVVE87IH0K
QEAgLTE5MzcsNyArMTkzNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFN0
eWxlRGFzaGJvYXJkUmVnaW9uPiYgbm9uZURhc2hib2FyZFJlZ2lvbnMoKTsKICNlbmRpZgogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
aW5pdGlhbEZpbHRlcigpIHsgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZpbHRlck9w
ZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1cm4gb3BzOyB9CisgICAgc3RhdGljIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMpOyByZXR1cm4gb3BzOyB9CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHN0YXRpYyBCbGVuZE1vZGUgaW5pdGlhbEJsZW5k
TW9kZSgpIHsgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKaW5kZXggMGUxZjFhMGMwMDQ5NzQzYTVhNTQx
ZDNjMTIyNTgzNzIyMzFhYTc4Zi4uZDQ0ZWViNGRjNDA4MTg3ZTYxOTUxZjZhZDgxNmUxMTNmZjli
YTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQ
YXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGgu
Y3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgYm9vbCBSZW5kZXJTVkdQYXRoOjpzaG91bGRTdHJva2Va
ZXJvTGVuZ3RoU3VicGF0aCgpIGNvbnN0CiAKIFBhdGgqIFJlbmRlclNWR1BhdGg6Onplcm9MZW5n
dGhMaW5lY2FwUGF0aChjb25zdCBGbG9hdFBvaW50JiBsaW5lY2FwUG9zaXRpb24pIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoKTsKIAog
ICAgIHRlbXBQYXRoLmNsZWFyKCk7CiAgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5jYXBTdHls
ZSgpID09IFNxdWFyZUNhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAKaW5kZXggOTI5ZDA3MWE0M2FjNjIwZDcxYzk5MGU5YTE3ZDBmYTVhYTY1
ZGVmOS4uNmVjNmU3YjY1NjVlZTIxNjQ4NTgwZWUyY2ZjNGNkMGE0MzcxZjJmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTE4Nyw3
ICsxODcsNyBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpsYXlvdXQoKQogCiBQYXRoKiBSZW5kZXJT
VkdTaGFwZTo6bm9uU2NhbGluZ1N0cm9rZVBhdGgoY29uc3QgUGF0aCogcGF0aCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBzdHJva2VUcmFuc2Zvcm0pIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoKTsKIAogICAgIHRlbXBQYXRoID0gKnBh
dGg7CiAgICAgdGVtcFBhdGgudHJhbnNmb3JtKHN0cm9rZVRyYW5zZm9ybSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCBkZThmMTVmOGI0M2Y4NzMyMjNkY2JmYjRiMGIwMmZlN2RhNzdlMjg5Li44NzNkY2NjYWQ5ODhh
ZGUyZTE4MDVmZTI2YzhhMDBkNjlkNTIxZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTIwNSw3ICsyMDUsNyBA
QCB2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIFBhaQogCiBzdGF0aWMgQWZmaW5lVHJhbnNmb3JtJiBjdXJy
ZW50Q29udGVudFRyYW5zZm9ybWF0aW9uKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQWZmaW5lVHJhbnNmb3JtLCBzX2N1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24s
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQWZmaW5lVHJhbnNmb3Jt
LCBzX2N1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24pOwogICAgIHJldHVybiBzX2N1cnJlbnRD
b250ZW50VHJhbnNmb3JtYXRpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVzb3VyY2VzLmNwcAppbmRleCAzM2QzNzFkZjBhY2VhOTdiZDVhNGQ1ZWQwNmNjY2M1
NTU4Y2RjODI0Li42MjEzZThiMTc4OTU0MTMyOWM0NjE1ODRjZWYwY2M2MjE0NzYxOGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCkBAIC00NCw3
ICs0NCw3IEBAIFNWR1Jlc291cmNlczo6U1ZHUmVzb3VyY2VzKCkKIAogc3RhdGljIEhhc2hTZXQ8
QXRvbWljU3RyaW5nPiYgY2xpcHBlckZpbHRlck1hc2tlclRhZ3MoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNfdGFnTGlzdCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0
cmluZz4sIHNfdGFnTGlzdCk7CiAgICAgaWYgKHNfdGFnTGlzdC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgLy8gImNvbnRhaW5lciBlbGVtZW50cyI6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2lu
dHJvLmh0bWwjVGVybUNvbnRhaW5lckVsZW1lbnQKICAgICAgICAgLy8gImdyYXBoaWNzIGVsZW1l
bnRzIiA6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ludHJvLmh0bWwjVGVybUdyYXBoaWNz
RWxlbWVudApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBj
bGlwcGVyRmlsdGVyTWFza2VyVGFncygpCiAKIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZz4m
IG1hcmtlclRhZ3MoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PEF0b21pY1N0cmluZz4sIHNfdGFnTGlzdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNfdGFnTGlzdCk7CiAgICAgaWYg
KHNfdGFnTGlzdC5pc0VtcHR5KCkpIHsKICAgICAgICAgc190YWdMaXN0LmFkZChTVkdOYW1lczo6
bGluZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQoU1ZHTmFtZXM6OnBh
dGhUYWcubG9jYWxOYW1lKCkpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBIYXNoU2V0PEF0
b21pY1N0cmluZz4mIG1hcmtlclRhZ3MoKQogCiBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+
JiBmaWxsQW5kU3Ryb2tlVGFncygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8QXRvbWljU3RyaW5nPiwgc190YWdMaXN0LCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8QXRvbWljU3RyaW5nPiwgc190YWdMaXN0KTsK
ICAgICBpZiAoc190YWdMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNW
R05hbWVzOjphbHRHbHlwaFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQo
U1ZHTmFtZXM6OmNpcmNsZVRhZy5sb2NhbE5hbWUoKSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgc3Rh
dGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgZmlsbEFuZFN0cm9rZVRhZ3MoKQogCiBzdGF0aWMg
SGFzaFNldDxBdG9taWNTdHJpbmc+JiBjaGFpbmFibGVSZXNvdXJjZVRhZ3MoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNfdGFn
TGlzdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0
b21pY1N0cmluZz4sIHNfdGFnTGlzdCk7CiAgICAgaWYgKHNfdGFnTGlzdC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgc190YWdMaXN0LmFkZChTVkdOYW1lczo6bGluZWFyR3JhZGllbnRUYWcubG9jYWxO
YW1lKCkpOwogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNWR05hbWVzOjpmaWx0ZXJUYWcubG9jYWxO
YW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0
Q2h1bmtCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dENo
dW5rQnVpbGRlci5jcHAKaW5kZXggMmM0NzIwNDYwNThjNDU0MjdjNzkxZDI2NzIwOTRmZTdiZGMz
NTk2Yy4uNGRjZDhmZTU1ODY0YzlhYTcyMjA4ZDdlNDBkNWM4ODA5ZjQwOTY0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIuY3Bw
CkBAIC0zMiw3ICszMiw3IEBAIFNWR1RleHRDaHVua0J1aWxkZXI6OlNWR1RleHRDaHVua0J1aWxk
ZXIoKQogCiB2b2lkIFNWR1RleHRDaHVua0J1aWxkZXI6OnRyYW5zZm9ybWF0aW9uRm9yVGV4dEJv
eChTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQWZmaW5l
VHJhbnNmb3JtLCBzX2lkZW50aXR5VHJhbnNmb3JtLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEFmZmluZVRyYW5zZm9ybSwgc19pZGVudGl0eVRyYW5zZm9y
bSk7CiAgICAgaWYgKCFtX3RleHRCb3hUcmFuc2Zvcm1hdGlvbnMuY29udGFpbnModGV4dEJveCkp
IHsKICAgICAgICAgdHJhbnNmb3JtID0gc19pZGVudGl0eVRyYW5zZm9ybTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNw
cAppbmRleCBlN2QyODBlMjhiODc0ZWI1YjZlMTUyMGU0MTg4MWI0M2NlODkyN2JjLi45NmY5NDMz
ZjllMzYwZTI0ZTk5Yjc4ZTQ1M2Y5M2YzZGFjMjcwODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAtNDUsNyArNDUsNyBAQCB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBTdG9yYWdlTmFtZXNwYWNlKj4gTG9jYWxTdG9yYWdlTmFtZXNw
YWNlTWFwOwogCiBzdGF0aWMgTG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwJiBsb2NhbFN0b3JhZ2VO
YW1lc3BhY2VNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2Nh
bFN0b3JhZ2VOYW1lc3BhY2VNYXAsIGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXAs
IGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCk7CiAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZU5hbWVz
cGFjZU1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKaW5k
ZXggYmJhMTIwZmJmOTU1ZjEwNmJmMGVkNmQ4MjA5YjBiYjkwMDVkMGE2Yi4uNmY0YmEwMjVjMTg0
M2QzOWUxYjAyOTY3NmY3NGQwMjNhOGIxMDY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VUaHJlYWQuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
YXRpYyBIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiYgYWN0aXZlU3RvcmFnZVRocmVhZHMoKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8U3RvcmFnZVRocmVhZCo+LCB0aHJlYWRzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RvcmFnZVRocmVhZCo+LCB0aHJlYWRz
KTsKICAgICByZXR1cm4gdGhyZWFkczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAKaW5kZXgg
NTg4ZjI3N2JlNzVkZTdkNDFlZmVkMDVjYTQ5NThiZTYyNjE3ODU3ZC4uYTZmNmQwMzZiNzNiZTE3
YTZmYTQ3OGFjZGQ3NTNlZGJiZGY5NGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCkBAIC0x
MTIsMTUgKzExMiwxNSBAQCBTdHJpbmcgU1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV91bml0VHlwZSkgewogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6
IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVnU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCJkZWciKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBkZWdTdHJpbmcsIChBU0NJSUxpdGVyYWwoImRl
ZyIpKSk7CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX3ZhbHVlSW5TcGVjaWZpZWRV
bml0cykgKyBkZWdTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9SQUQ6IHsK
LSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcmFkU3RyaW5n
LCAoQVNDSUlMaXRlcmFsKCJyYWQiKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCByYWRTdHJpbmcsIChBU0NJSUxpdGVyYWwoInJhZCIp
KSk7CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX3ZhbHVlSW5TcGVjaWZpZWRVbml0
cykgKyByYWRTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOiB7Ci0g
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGdyYWRTdHJpbmcs
IChBU0NJSUxpdGVyYWwoImdyYWQiKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBncmFkU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJncmFk
IikpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVu
aXRzKSArIGdyYWRTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcApp
bmRleCA5ZTFkYjEzOThjYjUxNjJlYjFkNWIxYjE0MWI3ZWVmZTAyMGVmMDI4Li44NTFiNzA2ZWUz
YTY3ZmYxMzZjOWY1MmNkNzU0ZDUyYTI4NDM5ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFBhc3NSZWZQdHI8
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllCiAKIHN0YXRpYyBib29sIGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3Io
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjdXJyZW50Q29sb3IsICgiY3VycmVudENvbG9yIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGN1cnJlbnRDb2xvciwg
KCJjdXJyZW50Q29sb3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIHZhbHVlID09IGN1cnJlbnRDb2xvcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5kZXggMGE5ODNkZmQxYTNjYzU2ZDFm
OWJkY2RlNzBmYWIwYmMwMDExNjZiYy4uYWRkNzkwZjJhYjNiNDY1OTBhYjQ0NDM4YTg4Mjk4MzM3
MmNiOTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCkBAIC0xMjQsOCArMTI0LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAK
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvVmFsLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1JldmVyc2UsICgiYXV0by1yZXZlcnNlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9WYWwsICgiYXV0
byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvUmV2
ZXJzZSwgKCJhdXRvLXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByb3RhdGUgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OnJvdGF0ZUF0dHIpOwogICAgIGlmIChyb3RhdGUgPT0gYXV0b1ZhbCkKICAgICAgICAgcmV0
dXJuIFJvdGF0ZUF1dG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKaW5kZXggNDY2ZmNjNmI5MzRiNTg3YTAzMjZiZWRkOWU4MWYzNTkzNTkxMzhhOS4uN2Q5NTdm
ZmMxNDRlNDIxYmQyZDhkZmViZDVlMzQwNGVlNjZhMWUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApAQCAtMjk1LDEwICsyOTUsMTAgQEAgdm9pZCBTVkdB
bmltYXRpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKIAogdm9pZCBTVkdBbmltYXRp
b25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNhbGNNb2RlKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRp
c2NyZXRlLCAoImRpc2NyZXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGxpbmVhciwgKCJsaW5lYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
cGFjZWQsICgicGFjZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3Bs
aW5lLCAoInNwbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3Ry
aW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29u
c3QgQXRvbWljU3RyaW5nLCBsaW5lYXIsICgibGluZWFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRI
X0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHBhY2VkLCAoInBhY2VkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIHNwbGluZSwgKCJzcGxpbmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGNhbGNNb2RlID09IGRpc2Ny
ZXRlKQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZURpc2NyZXRlKTsKICAgICBlbHNlIGlm
IChjYWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0zMTMsOCArMzEzLDggQEAgdm9pZCBTVkdBbmltYXRp
b25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNhbGNNb2RlKQogCiB2
b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29uc3QgQXRvbWljU3Ry
aW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNzcywgKCJDU1MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgeG1sLCAoIlhNTCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29u
c3QgQXRvbWljU3RyaW5nLCBjc3MsICgiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhj
b25zdCBBdG9taWNTdHJpbmcsIHhtbCwgKCJYTUwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT0gY3NzKQogICAgICAgICBtX2F0
dHJpYnV0ZVR5cGUgPSBBdHRyaWJ1dGVUeXBlQ1NTOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0ZVR5
cGUgPT0geG1sKQpAQCAtMzQxLDE0ICszNDEsMTQgQEAgU3RyaW5nIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBZGRp
dGl2ZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29u
c3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmli
dXRlKFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwg
YW5pbWF0aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uOwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1bSwgKCJzdW0iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
ID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6YWNjdW11bGF0ZUF0dHIpOwogICAgIHJldHVy
biB2YWx1ZSA9PSBzdW0gJiYgYW5pbWF0aW9uTW9kZSgpICE9IFRvQW5pbWF0aW9uOwogfQpAQCAt
NjU3LDcgKzY1Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6YWRqdXN0Rm9ySW5oZXJp
dGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QKIAogc3RhdGljIGJvb2wgaW5o
ZXJpdHNGcm9tUHJvcGVydHkoU1ZHRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5oZXJpdCwgKCJpbmhlcml0IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGluaGVyaXQsICgiaW5o
ZXJpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICBp
ZiAodmFsdWUuaXNFbXB0eSgpIHx8IHZhbHVlICE9IGluaGVyaXQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwCmluZGV4IGMwMmVhNjgwZWM0Zjg2MzJmMWRlZjhlNTdlYzZjZGVlNDg0OTg0ZGEuLjEw
ZDMwM2FjMDM4ZWY4YzZlYjY5NjM5NTZmNDRiNzg2OWQ0ZGIwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtODAsMjUgKzgw
LDI1IEBAIFBhc3NSZWZQdHI8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpjcmVhdGUoY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJH
KEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZp
ZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRM
ZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlclhJZGVudGlmaWVyKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHT3JkZXJYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmRlclgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6b3JkZXJZSWRlbnRpZmllcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR09yZGVyWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JkZXJZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMmIx
NDEwYjQzNWEzOTJhNzMwMDA2ZGNiOGUxMzExY2Q5MDQyZDFiYi4uNjcxY2UyNzFjYWFiOWEwYmI4
ODUxM2JlYmU3M2FlMmI0ZjhhNjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTY4LDEzICs2OCwxMyBAQCBQYXNzUmVm
UHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50OjpjcmVhdGUoY29ucwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
S2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0
TGVuZ3RoWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
S2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDhhZTg1ZDNmZjI2NzdiNmY2YmQ3Y2NlZDNl
ZDEwYTkyMDliMTA4ZWUuLjEyNGJlYzg3YjVkYzJlYzM2ODA4ZjIwZjQ5YzE0MDExZjNiYjE3MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAg
LTY3LDEzICs2NywxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZF
RHJvcFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlh
dGlvbllJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUxfV0lUSF9BUkcoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2
aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDdkMGFhNWMxOTQ4M2VhZWVkZjU4YzE3Y2NhZTZkZTk2
MjI0YzZhYjguLjU5NGNjM2Y0ZGM4OTRmYjYyY2Y5ZDE5NjM2YjdhNGQzZGVlMzk1ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC02
MiwxMyArNjIsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWwKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkco
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2
aWF0aW9uWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGRE
ZXZpYXRpb25ZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LmNwcAppbmRleCA5ZGVjODM3ZTRlZmIxYTM1ODNlZDY4Njc5MGYzZTk4ODAz
NzFiNjk3Li4wOGM0NzBiOGIxZWE1NzAwNDY0Zjk0Zjc4ODM3NWRjODRmMGRkMWNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC02MSwxMyAr
NjEsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpyYWRpdXNYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNW
R1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpyYWRpdXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNW
R1JhZGl1c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR1JhZGl1c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGMxNGIyYmZkODdk
OWU1NmRmNWFjZDNlZGQ0YWMxZDA5ZWNkYTc3YjIuLjUwYTA3YzE4MGEzODMzMGI0YzI4ZjE2YWVh
Njk3YjkyYmUxYTNhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTcyLDEzICs3MiwxMyBAQCBQYXNzUmVmUHRyPFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OmNyZWF0ZShjbwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5l
bFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNf
aWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5n
dGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJu
ZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
dXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggMjQ4MDdhNjg3NTQyM2RhYzg3NjI2ODY3YmJkMmUy
Yzg4N2E3MjFhMi4uZTBlMmQyNGE1MTYxNGNiNGJhY2M3NTdiZDk0NDYzODQ4ZjZkZjA3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNjYs
MTMgKzY2LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0
b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VGcmVxdWVuY3lYIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1
ZW5jeVlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVkiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VG
cmVxdWVuY3lZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcAppbmRleCAyMjcyYzIxY2M5MTU3MmVlYTU3MmVlNGEyZDA3NTgwYjNlNTY3OTY5Li5kNGY3
MzUzMGJkYjFiMmQwYzQ2ZDNhNGExNWFjMzUyN2YzNGJhY2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuY3BwCkBAIC04NSwxMyArODUsMTMgQEAgUGFzc1JlZlB0cjxTVkdG
aWx0ZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmEKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJS
ZXNYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1gi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0
ZXJSZXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1kiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJl
c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNf
aWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBo
TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAppbmRleCAzNTE4Zjg4ZDhh
NjYxOTc0MDRhMjMwNDI5MmRkMTRiYjc3MjU0ZGFmLi4wODUxMzFlYTg1NDEzM2NlMTBkOGQzZDQz
OWRiZTNjZjNkY2ZlZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhN
YXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaApAQCAtMTQzLDcgKzE0
Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTVkdHbHlwaCYgc3ZnR2x5cGhGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICghZ2x5cGggfHwgZ2x5cGggPiBtX2ds
eXBoVGFibGUuc2l6ZSgpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU1ZHR2x5cGgsIGRlZmF1bHRHbHlwaCwgKCkpOworICAgICAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0dseXBoLCBkZWZhdWx0R2x5cGgpOwogICAgICAgICAg
ICAgcmV0dXJuIGRlZmF1bHRHbHlwaDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9nbHlw
aFRhYmxlW2dseXBoIC0gMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGFu
Z1NwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCmluZGV4IDBj
Nzk0NzgzODAzZjcyNmY4NzljY2IyYzY4ZjYwZGFmZGZlZjM0ZGEuLjM5OGE2OTVkNzk4NzYwOGJh
MzhkOTM5ZGRhYmMyZDdlODU1MjM2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMYW5nU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3Bw
CkBAIC0zNiw3ICszNiw3IEBAIHZvaWQgU1ZHTGFuZ1NwYWNlOjpzZXRYbWxsYW5nKGNvbnN0IEF0
b21pY1N0cmluZyYgeG1sTGFuZykKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTGFuZ1NwYWNlOjp4
bWxzcGFjZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NwYWNlKSB7Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcs
ICgiZGVmYXVsdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0
cmluZywgZGVmYXVsdFN0cmluZywgKCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFN0cmluZzsKICAgICB9CiAKQEAg
LTY5LDcgKzY5LDcgQEAgYm9vbCBTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgCiB2b2lkIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHhtbFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmlu
ZywgeG1sUHJlZml4LCAoInhtbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKIAogICAgIFF1YWxpZmllZE5hbWUgbGFuZ1dpdGhQcmVmaXggPSBYTUxOYW1lczo6bGFuZ0F0
dHI7CiAgICAgbGFuZ1dpdGhQcmVmaXguc2V0UHJlZml4KHhtbFByZWZpeCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKaW5kZXggNzNmNDllNDM0MGFiZTk4OGUzODRjM2Fk
YTc3N2QyZDg4NWRhZTlmMy4uZjcyYmM0NDQwZmYyN2NmNjU5MzQzZDJhZjgyMDhiYTk0NzI3NmU2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkz
LDEzIEBAIFBhc3NSZWZQdHI8U1ZHTWFya2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZH
TWFya2VyRWxlbWVudDo6b3JpZW50VHlwZUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmll
bnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHTWFya2VyRWxlbWVudDo6b3JpZW50QW5nbGVJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
T3JpZW50QW5nbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKEF0b21pY1N0cmluZywgc19p
ZGVudGlmaWVyLCAoIlNWR09yaWVudEFuZ2xlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKQEAgLTIzNyw3ICsyMzcs
NyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCkKICAgICBpZiAob3duZXJUeXBlLT5tX29yaWVudFR5cGUudmFs
dWUgIT0gU1ZHTWFya2VyT3JpZW50QXV0bykKICAgICAgICAgcmV0dXJuOwogCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXV0b1N0cmluZywgKCJhdXRv
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGF1dG9TdHJpbmcsICgi
YXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBvd25lclR5
cGUtPm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZShvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0
eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0cmluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAppbmRleCA2MjU2MTRjZDdkZjI3MmJhNjNlOTNlZWYyMmYyNzM0ODI0
OWMwOThmLi5kYTk4OGQwYWI1ZGQ2ZjBhNzI3OWFhNThhYmJhZDFlMmYzNjk0NTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTVkdT
VkdFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU1ZHRWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2VjbWFzY3JpcHQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
X1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNj
cmlwdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG4gPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpjb250ZW50U2NyaXB0
VHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0K
QEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldENvbnRlbnRTY3JpcHRU
eXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdT
VkdFbGVtZW50Ojpjb250ZW50U3R5bGVUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4
dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgZGVm
YXVsdFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OmNvbnRlbnRTdHlsZVR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1
bHRWYWx1ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4
IDRmYzQxZDMzMmJhZDBmMzMzY2U0YTc3NTVjZTQ4MmQyOWExMGZjZTEuLjBkZTM0YWI0YjFlNThi
OTU4NWIwNjgzYjk2ZDMyNTNlY2MxODFjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXREaXNh
YmxlZChib29sIHNldERpc2FibGVkKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxl
bWVudDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0
L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICBy
ZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CkBAIC03Niw3ICs3Niw3IEBA
IHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
RXhjZXB0aW9uQ29kZSYpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojpt
ZWRpYSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoImFsbCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lU
SF9BUkcoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgiYWxsIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9
IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAgICAgcmV0dXJuIG4uaXNO
dWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCAyMDdlNzFiYWZlOTU3YTA4M2Q2ODI2ODYxYzY1ZmRh
NzQzODY4YTc5Li4wNGU4MWYzMzRmMzgyYmQwNzY3NmM4YThjNzQ1NmU5ZTBkODJlZWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjMyLDcg
KzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkCiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0
dHJpYnV0ZShuYW1lKSkKICAgICAgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKICAgICBlbHNlIGlm
IChuYW1lLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpIHsKLSAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJpbmcs
ICgicHJlc2VydmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNT
dHJpbmcsIHByZXNlcnZlU3RyaW5nLCAoInByZXNlcnZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgICAgIGlmICh2YWx1ZSA9PSBwcmVzZXJ2ZVN0cmluZykK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm0uY3BwCmluZGV4IGY3NWI2N2UyZWYwOTI1MDFjNmQyODc4Mzk2NDQ2NmYzZTllMTJi
YjUuLjE1OTAzZjA5MjA5Y2Q3Njg1YTNlNDAyOGE4NzRmZWJkZWU4NGU4YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCkBAIC0xMzUsMjcgKzEzNSwyNyBAQCBjb25zdCBTdHJpbmcm
IFNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlwZVByZWZpeEZvclBhcnNpbmcoU1ZHVHJhbnNmb3Jt
VHlwZSB0eXBlKQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9VTktOT1dOOgogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fTUFUUklYOiB7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1hdHJpeFN0cmluZywg
KEFTQ0lJTGl0ZXJhbCgibWF0cml4KCIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIG1hdHJpeFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgi
bWF0cml4KCIpKSk7CiAgICAgICAgIHJldHVybiBtYXRyaXhTdHJpbmc7CiAgICAgfQogICAgIGNh
c2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFu
c2xhdGUoIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhf
QVJHKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikp
KTsKICAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdf
VFJBTlNGT1JNX1NDQUxFOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHNjYWxlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzY2FsZSgiKSkpOworICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBzY2FsZVN0
cmluZywgKEFTQ0lJTGl0ZXJhbCgic2NhbGUoIikpKTsKICAgICAgICAgcmV0dXJuIHNjYWxlU3Ry
aW5nOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOiB7Ci0gICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHJvdGF0ZVN0cmluZywgKEFTQ0lJ
TGl0ZXJhbCgicm90YXRlKCIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTF9XSVRIX0FSRyhTdHJpbmcsIHJvdGF0ZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgicm90YXRl
KCIpKSk7CiAgICAgICAgIHJldHVybiByb3RhdGVTdHJpbmc7CiAgICAgfSAgICAKICAgICBjYXNl
IFNWR19UUkFOU0ZPUk1fU0tFV1g6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgc2tld1hTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNrZXdYKCIpKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTdHJpbmcsIHNr
ZXdYU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJza2V3WCgiKSkpOwogICAgICAgICByZXR1cm4gc2tl
d1hTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBza2V3WVN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgic2tld1koIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMX1dJVEhfQVJHKFN0cmluZywgc2tld1lTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNrZXdZ
KCIpKSk7CiAgICAgICAgIHJldHVybiBza2V3WVN0cmluZzsKICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggOTgyMmJkMWRmYmE3NmNhNjg4MGE1MjI0YTViNjdh
NjBhNWFhMjQ3OC4uMjI2MDQ2NTZiNGRlYTY1MGQ1NDE4OGIyNDYwMzM0MWJmM2Q1NzZkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC04NSwxOSArODUsMTkgQEAgU1ZHVmlld1Nw
ZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR1ZpZXdTcGVjOjp2aWV3Qm94SWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNW
R1ZpZXdTcGVjVmlld0JveEF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoQXRv
bWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50
aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNw
ZWN0UmF0aW9JZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVj
dFJhdGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcs
IHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1ByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3BlYzo6dHJhbnNmb3Jt
SWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjVHJhbnNmb3JtQXR0cmlidXRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdWaWV3U3BlY1RyYW5zZm9ybUF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IDhmYTI5NGU3ZGQx
MmQ2ZmQ5MDNhZmVkYzQ2YzNhNWZiOGVmOThjNDAuLjM5ZDE0NjQ5YWQzZjRiNTAyYmEzZjA3MDNj
ZjNjZTEwYWQ4ODUwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24v
U1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZH
U01JTEVsZW1lbnQuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1l
bnQ6OnBhcnNlQ2xvY2tWYWx1ZShjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgCiAgICAgU3RyaW5n
IHBhcnNlID0gZGF0YS5zdHJpcFdoaXRlU3BhY2UoKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRl
ZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcsIGlu
ZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIGlmIChwYXJzZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJl
dHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogCkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBT
VkdTTUlMRWxlbWVudDo6cGFyc2VCZWdpbk9yRW5kKGNvbnN0IFN0cmluZyYgcGFyc2VTdHJpbmcs
IEJlZ2luT3JFbmQgYmVnaW4KIAogYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxR
dWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpiZWdpbkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6ZW5kQXR0cik7CkBAIC02MjksOCArNjI5LDggQEAgYm9vbCBTVkdTTUlMRWxlbWVudDo6
aXNGcm96ZW4oKSBjb25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVs
ZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogeyAgICAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZlciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB3aGVuTm90QWN0aXZlLCAoIndoZW5Ob3RBY3RpdmUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgbmV2ZXIsICgi
bmV2ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKGNvbnN0IEF0b21pY1N0cmluZywgd2hl
bk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmli
dXRlKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAg
ICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAtNjQxLDcgKzY0MSw3IEBAIFNWR1NNSUxFbGVt
ZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NN
SUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZnJl
ZXplLCAoImZyZWV6ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgQXRvbWljU3Ry
aW5nLCBmcmVlemUsICgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNW
R05hbWVzOjpmaWxsQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/IEZpbGxGcmVl
emUgOiBGaWxsUmVtb3ZlOwogfQpAQCAtNjc0LDcgKzY3NCw3IEBAIFNNSUxUaW1lIFNWR1NNSUxF
bGVtZW50OjpyZXBlYXRDb3VudCgpIGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gU01JTFRpbWU6OnVucmVzb2x2ZWQoKTsKIAotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJp
bmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhjb25zdCBBdG9taWNTdHJpbmcs
IGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIGlmICh2YWx1ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAg
IHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogICAgIGJvb2wgb2s7CkBAIC0xMTI0LDcg
KzExMjQsNyBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojpwcm9ncmVzcyhTTUlMVGltZSBlbGFwc2Vk
LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCwgYgogdm9pZCBTVkdTTUlMRWxlbWVudDo6
bm90aWZ5RGVwZW5kZW50c0ludGVydmFsQ2hhbmdlZChOZXdPckV4aXN0aW5nSW50ZXJ2YWwgbmV3
T3JFeGlzdGluZykKIHsKICAgICBBU1NFUlQobV9pbnRlcnZhbEJlZ2luLmlzRmluaXRlKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFNWR1NNSUxFbGVtZW50
Kj4sIGxvb3BCcmVha2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8U1ZHU01JTEVsZW1lbnQqPiwgbG9vcEJyZWFrZXIpOwogICAgIGlmIChsb29wQnJl
YWtlci5jb250YWlucyh0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGxvb3BCcmVha2VyLmFk
ZCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHlNYWNyb3MuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAppbmRleCA0ODQ1YTIwNjNlMTM0OTBkZDYzN2QyYjRm
YWMyZDZjYmExNzc2NmM3Li5hZDkzODFiNDg5N2Y2NzlmN2YxNjExY2U1YzYxZTJkOTYzYzk0MmQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5TWFjcm9zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCkBAIC03MCw3ICs3MCw3IEBAIHN0cnVjdCBTVkdTeW5jaHJv
bml6YWJsZUFuaW1hdGVkUHJvcGVydHkgewogI2RlZmluZSBCRUdJTl9SRUdJU1RFUl9BTklNQVRF
RF9QUk9QRVJUSUVTKE93bmVyVHlwZSkgXAogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCYgT3du
ZXJUeXBlOjphdHRyaWJ1dGVUb1Byb3BlcnR5TWFwKCkgXAogeyBcCi0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIHNfYXR0cmlidXRl
VG9Qcm9wZXJ0eU1hcCwgKCkpOyBcCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIHNfYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCk7IFwK
ICAgICByZXR1cm4gc19hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwOyBcCiB9IFwKIFwKQEAgLTkyLDcg
KzkyLDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3IjI093bmVy
VHlwZSgpIFwKIC8vIFByb3BlcnR5IGRlZmluaXRpb24gaGVscGVycyAodXNlZCBpbiBTVkcqLmNw
cCBmaWxlcykKICNkZWZpbmUgREVGSU5FX0FOSU1BVEVEX1BST1BFUlRZKEFuaW1hdGVkUHJvcGVy
dHlUeXBlRW51bSwgT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIFNWR0RPTUF0dHJpYnV0ZUlkZW50
aWZpZXIsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpIFwKIGNvbnN0IFNWR1Byb3BlcnR5
SW5mbyogT3duZXJUeXBlOjpMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKSB7IFwKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU1ZHUHJvcGVydHlJbmZvLCBzX3By
b3BlcnR5SW5mbywgXAorICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FS
Ryhjb25zdCBTVkdQcm9wZXJ0eUluZm8sIHNfcHJvcGVydHlJbmZvLCBcCiAgICAgICAgICAgICAg
ICAgICAgICAgICAoQW5pbWF0ZWRQcm9wZXJ0eVR5cGVFbnVtLCBcCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgUHJvcGVydHlJc1JlYWRXcml0ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAg
IERPTUF0dHJpYnV0ZSwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9q
aUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlG
YWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZTRiZTZhNjRmMjZiZTRkM2U0ODAyZTdkNTc2
OGVlNTFhNDdjMGJlMy4uNmRkNWJiYTQwYjJjNjEzNDk2MmUyNDJmYjFhOWRlOGI4OWJmYzVkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2Vs
ZWN0b3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBQ
YXNzUmVmUHRyPEZvbnREYXRhPiBFbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yOjpnZXRGYWxsYmFj
a0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBzaXplX3Qp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXBw
bGVDb2xvckVtb2ppLCAoIkFwcGxlIENvbG9yIEVtb2ppIikpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhBdG9taWNTdHJpbmcsIGFwcGxlQ29sb3JFbW9qaSwg
KCJBcHBsZSBDb2xvciBFbW9qaSIpKTsKICAgICBSZWZQdHI8Rm9udERhdGE+IGZvbnREYXRhID0g
Zm9udENhY2hlKCkuZ2V0Q2FjaGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBhcHBsZUNvbG9y
RW1vamkpOwogICAgIGlmICghZm9udERhdGEpIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gZ2V0IFwiQXBwbGUgQ29sb3IgRW1vamlcIiBmcm9tIHRoZSBmb250IGNhY2hlLiBVc2luZyB0
aGUgbGFzdCByZXNvcnQgZmFsbGJhY2sgZm9udCBpbnN0ZWFkLiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVu
dC5tbQppbmRleCBmYWI3MzA1NTI1MTUwM2Y5NGY3ZDYyMWI5OWQxMTNiMjVmOTBhZmIyLi45MjNm
N2U5ZDE5YWIzMDBlNGIwNzNjNDQzZjNhOGM0OWY1ZGJlODFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVu
dC5tbQpAQCAtNTAsNyArNTAsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBzdGF0aWMgTXV0
ZXgmIFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4KTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KaW5k
ZXggMDc3YzkwMzY2ZTBiYWNlNDU2NTk1YWE2YzhjOTdmYzcyNTg3NWQyZS4uNWU1Yjc1ZTlmYWZj
NDZiMTQxNmZhZWRkOTgxNjlmOTM0YTkzMWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBI
YXNoTWFwPEJhY2tGb3J3YXJkTGlzdCosIFdlYkJhY2tGb3J3YXJkTGlzdCo+IEJhY2tGb3J3YXJk
TGlzdE1hcDsKIC8vIHdpdGggYSBwb2ludGVyIHRvIGEgV2ViQmFja0ZvcndhcmRMaXN0IGluIGl0
Lgogc3RhdGljIEJhY2tGb3J3YXJkTGlzdE1hcCYgYmFja0ZvcndhcmRMaXN0cygpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJhY2tGb3J3YXJkTGlzdE1hcCwgc3RhdGlj
QmFja0ZvcndhcmRMaXN0cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChCYWNrRm9yd2FyZExpc3RNYXAsIHN0YXRpY0JhY2tGb3J3YXJkTGlzdHMpOwogICAgIHJldHVy
biBzdGF0aWNCYWNrRm9yd2FyZExpc3RzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCA1NGNlYmQ2NzgyNmM3NTk5OTg1MDIyYzY2NTg4ODFh
YzhiZGMzZjAxLi5jYmYzYTg5YWQwM2VmMzE2MzIwZGYyYjNhMjU5MzdjOWFhNjczYTYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTEwMyw3ICsx
MDMsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmVIaXN0b3J5SXRlbSogY29yZShXZWJIaXN0b3J5
SXRlbVByaXZhdGUqIGl0ZW1Qcml2YXRlKQogCiBzdGF0aWMgSGlzdG9yeUl0ZW1NYXAmIGhpc3Rv
cnlJdGVtV3JhcHBlcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChI
aXN0b3J5SXRlbU1hcCwgaGlzdG9yeUl0ZW1XcmFwcGVycywgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChIaXN0b3J5SXRlbU1hcCwgaGlzdG9yeUl0ZW1XcmFwcGVycyk7
CiAgICAgcmV0dXJuIGhpc3RvcnlJdGVtV3JhcHBlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZDQ0OTlhZmY0YzIwMThk
OWE5YjFjYWM4OGQzZjM3M2M2MGUyN2I0OS4uMTdmMDIxMTZlOWE2OGRiZTVjNDY1YWM0ZTM2YWZk
NTZiOWZlY2EzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3Rl
Ym9hcmRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KQEAgLTU5LDcgKzU5LDcgQEAgTlNTdHJpbmcgKldlYlVSTE5hbWVQYm9hcmRU
eXBlID0gQCJwdWJsaWMudXJsLW5hbWUiOwogCiArIChOU0FycmF5ICopX3dlYl93cml0YWJsZVR5
cGVzRm9yVVJMCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0
cjxOU0FycmF5PiwgdHlwZXMsIChbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUmV0YWluUHRyPE5TQXJy
YXk+LCB0eXBlcywgKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgogICAgICAgICBX
ZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUsCiAgICAgICAgIE5TVVJMUGJvYXJkVHlwZSwKICAg
ICAgICAgV2ViVVJMUGJvYXJkVHlwZSwKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGlubGluZSBO
U0FycmF5ICpfY3JlYXRlV3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aG91dEFyY2hpdmUoKQogCiBz
dGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhvdXRBcmNoaXZlICh2b2lk
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNBcnJh
eT4sIHR5cGVzLCAoX2NyZWF0ZVdyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhvdXRBcmNoaXZlKCkp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9BUkcoUmV0YWluUHRy
PE5TQXJyYXk+LCB0eXBlcywgKF9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRob3V0QXJj
aGl2ZSgpKSk7CiAgICAgcmV0dXJuIHR5cGVzLmdldCgpOwogfQogCkBAIC05Miw3ICs5Miw3IEBA
IHN0YXRpYyBpbmxpbmUgTlNBcnJheSAqX2NyZWF0ZVdyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhB
cmNoaXZlKCkKIAogc3RhdGljIE5TQXJyYXkgKl93cml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJj
aGl2ZSAodm9pZCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmV0YWlu
UHRyPE5TQXJyYXk+LCB0eXBlcywgKF9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJj
aGl2ZSgpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMX1dJVEhfQVJHKFJl
dGFpblB0cjxOU0FycmF5PiwgdHlwZXMsIChfY3JlYXRlV3JpdGFibGVUeXBlc0ZvckltYWdlV2l0
aEFyY2hpdmUoKSkpOwogICAgIHJldHVybiB0eXBlcy5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9z
dE1hbmFnZXIubW0KaW5kZXggZjE2OGE3YTcwMGY0M2FjNGNhZTAzZDE2MjlkMGE3YzE1MDJiMzgx
Yy4uYjcxMDNhZThmY2Y3MDk3NTg5YTQ5NDJiMDk2ZDAyMzA0MmE2ZjBkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkhvc3RNYW5hZ2VyLm1tCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBO
ZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyJiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFy
ZWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChOZXRzY2FwZVBsdWdp
bkhvc3RNYW5hZ2VyLCBwbHVnaW5Ib3N0TWFuYWdlciwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLCBwbHVnaW5Ib3N0TWFu
YWdlcik7CiAgICAgCiAgICAgcmV0dXJuIHBsdWdpbkhvc3RNYW5hZ2VyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhv
c3RQcm94eS5tbQppbmRleCA1NzA1Y2ZiM2IxN2VlOGEyNWM4NDc0NTcyZDMyZWIzMjZmNDRiOTFm
Li5kMzIxNzFhNDJmOTNlZGFlYTJmYWI1ZTZiN2VmYTExYzEzZTU0MDc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhv
c3RQcm94eS5tbQpAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogdHlwZWRlZiBIYXNoTWFwPG1h
Y2hfcG9ydF90LCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eSo+IFBsdWdpblByb3h5TWFwOwogc3Rh
dGljIFBsdWdpblByb3h5TWFwJiBwbHVnaW5Qcm94eU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFBsdWdpblByb3h5TWFwLCBwbHVnaW5Qcm94eU1hcCwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5Qcm94eU1hcCwgcGx1Z2lu
UHJveHlNYXApOwogICAgIAogICAgIHJldHVybiBwbHVnaW5Qcm94eU1hcDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCA1Mzg2MWQ1MTBkMjdmNTk1OTBlYzAxNGYzMGEyMTY1
YTNhYzIxNDM5Li5lZjE1Y2M5ZDBkM2Y5ZmZmMDFhMWNkYWU0YzQ3ZjVlMTkxNTUzMzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xNjYzLDcgKzE2NjMsNyBAQCB2b2lkIE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cHJpdmF0ZUJyb3dzaW5nTW9kZURpZENoYW5nZShi
b29sIGlzUHJpdmF0ZUJybwogCiBzdGF0aWMgU3RyaW5nJiBnbG9iYWxFeGNlcHRpb25TdHJpbmco
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGV4Y2VwdGlv
blN0cmluZywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGV4Y2VwdGlvblN0cmluZyk7CiAgICAgcmV0dXJuIGV4Y2VwdGlvblN0cmluZzsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KaW5k
ZXggNzgzMTYzZWEyYWY2NmFlYzUwZGU3ZGI2NGU2OTE2NmU0ZGNlYjc5MC4uZGIzYTNlYzI5ZWE0
Y2U3YzJkNjU2YzA5NDdiYzMyYjljMmFmZmZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC02NSw3ICs2NSw3IEBAIEZpZWxk
KiBQcm94eUNsYXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3Rh
bmNlKiBpbnN0YW5jZSkgY29uCiAKIHN0YXRpYyBQcm94eUNsYXNzKiBwcm94eUNsYXNzKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHJveHlDbGFzcywgcHJveHlDbGFz
cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQcm94eUNsYXNzLCBw
cm94eUNsYXNzKTsKICAgICByZXR1cm4gJnByb3h5Q2xhc3M7CiB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQppbmRl
eCA5MzVkNTVlYzE0Yzg4NWRiZjllODUxNmFmMjQ0NmUyOTdiZGU3M2YwLi4zZjY4ZTQ1MzFiYzM2
MWUxMGYwM2Y5OTY4MDU5ZTg1MTRiMmUyZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KQEAgLTgwLDcgKzgwLDcgQEAg
cHJpdmF0ZToKIHR5cGVkZWYgSGFzaE1hcDxOUFN0cmVhbSosIE5QUD4gU3RyZWFtTWFwOwogc3Rh
dGljIFN0cmVhbU1hcCYgc3RyZWFtcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmVhbU1hcCwgc3RhdGljU3RyZWFtcywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJlYW1NYXAsIHN0YXRpY1N0cmVhbXMpOwogICAgIHJldHVybiBz
dGF0aWNTdHJlYW1zOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdl
L1dlYkRhdGFiYXNlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0
YWJhc2VNYW5hZ2VyLm1tCmluZGV4IDM5MTJmNThlMmU4NTg3NjEzZWJjZDY0MDNmZDkxYTBmODUx
ODE2MjYuLmZjZTY2MjZlY2FmMDZkMzhmOTEyMmE0ODlhZDZjY2Q0ZDkzOTUyZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCkBAIC0yMzAs
NyArMjMwLDcgQEAgc3RhdGljIGJvb2wgaXNGaWxlSGlkZGVuKE5TU3RyaW5nICpmaWxlKQogCiBz
dGF0aWMgTXV0ZXgmIHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgpOwogICAgIHJl
dHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDFhNjQ0MGQ5NWZhM2FkYjRmMmQ5NTcw
MGQwYjkxZGFkZDdhOGFkYmEuLmYwNzAxODU0MjRhODllNGYyYTU5M2ViN2EzOWVlZTJlZjkyNTYx
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQubW0KQEAgLTU2LDcgKzU2LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0
cjxVc2VyTWVkaWFSZXF1ZXN0PiwgUmV0YWluUHRyPFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVy
Pj4KIAogc3RhdGljIFVzZXJNZWRpYVJlcXVlc3RzTWFwJiB1c2VyTWVkaWFSZXF1ZXN0c01hcCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVzZXJNZWRpYVJlcXVlc3Rz
TWFwLCByZXF1ZXN0cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChV
c2VyTWVkaWFSZXF1ZXN0c01hcCwgcmVxdWVzdHMpOwogICAgIHJldHVybiByZXF1ZXN0czsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlv
bi5tbQppbmRleCAwOWRkYzFkODVjMzNlZTkwOTBjYzU0NTgwYzQxNTYzNzI0NWI2ZDFhLi4xNWYy
MjlhNWEwNWNiMTM4MzQ2MGFhYTU5NTJiMDJiY2UwNTM5YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzY0LDggKzM2
NCw4IEBAIHN0YXRpYyBSZWd1bGFyRXhwcmVzc2lvbiogcmVnRXhwRm9yTGFiZWxzKE5TQXJyYXkg
KmxhYmVscykKICAgICAvLyB0aGF0IHRoZSBhcHAgd2lsbCB1c2UgaXMgZXF1YWwgdG8gdGhlIG51
bWJlciBvZiBsb2NhbGVzIGlzIHVzZWQgaW4gc2VhcmNoaW5nLgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbnQgcmVnRXhwQ2FjaGVTaXplID0gNDsKICAgICBzdGF0aWMgTlNNdXRhYmxlQXJy
YXkqIHJlZ0V4cExhYmVscyA9IG5pbDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoVmVjdG9yPFJlZ3VsYXJFeHByZXNzaW9uKj4sIHJlZ0V4cHMsICgpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVndWxhckV4cHJlc3Npb24sIHdvcmRSZWdFeHAsICgi
XFx3IiwgVGV4dENhc2VTZW5zaXRpdmUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoVmVjdG9yPFJlZ3VsYXJFeHByZXNzaW9uKj4sIHJlZ0V4cHMpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhSZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJl
Z0V4cCwgKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2ZSkpOwogCiAgICAgUmVndWxhckV4cHJlc3Np
b24qIHJlc3VsdDsKICAgICBpZiAoIXJlZ0V4cExhYmVscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCAxNGYwNzdiZjI3N2UyMzhjYzlmNTg1NzMwYTE2ZDVjMmQwM2YxMmMw
Li5jZjIxM2I5ZmYyM2FkNzliMGMxN2Q0Mzk4N2MxZTQ3NTA3ZmNhZTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02NzUwLDcgKzY3NTAsNyBAQCBzdGF0aWMgTlNBcHBs
ZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgagogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG9i
amVjdC0+aW5oZXJpdHMoSlNBcnJheTo6aW5mbygpKSkgewotICAgICAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8SlNPYmplY3QqPiwgdmlzaXRlZEVsZW1zLCAo
KSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxK
U09iamVjdCo+LCB2aXNpdGVkRWxlbXMpOwogICAgICAgICAgICAgaWYgKCF2aXNpdGVkRWxlbXMu
Y29udGFpbnMob2JqZWN0KSkgewogICAgICAgICAgICAgICAgIHZpc2l0ZWRFbGVtcy5hZGQob2Jq
ZWN0KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDliYTY1Mzc0
NjljODg4ZjcxNDVhMDU0YjQ5MDE3NzNmOGUxZDQyNDkuLjc0YzFlNTU1YzAwYjgzZmI4MjA3OGU4
OTVkMTgzZDM1NTg3YTBmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNDAsNyArNDAsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmluaXRpYWxpemUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3RyYXRlZ2llcywgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3Ry
YXRlZ2llcyk7CiB9CiAKIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuY3BwIGIvU291
cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKaW5kZXggYjlhNDZhY2ZkZWRmMDZiNzdhMGQz
ODFjYWZlNDcxOGI2ZWQ2NWYyNS4uNjQ3Y2YwMGJiZjBmZDdjNjNmYTRjOWM0ZDFmYTdiODgzMTFh
Y2FhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCBVTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5OjpSZWxlYXNlKHZvaWQpCiAKIHN0YXRpYyBp
bmxpbmUgQ09NUHRyPFdlYkhpc3Rvcnk+JiBzaGFyZWRIaXN0b3J5U3RvcmFnZSgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENPTVB0cjxXZWJIaXN0b3J5Piwgc2hhcmVk
SGlzdG9yeSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDT01QdHI8
V2ViSGlzdG9yeT4sIHNoYXJlZEhpc3RvcnkpOwogICAgIHJldHVybiBzaGFyZWRIaXN0b3J5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3Mu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAppbmRleCBm
ZGIxODFkYTViMWU2YzgyZjY5ZjJiNzgyNDA5NjM1OGE1Nzc1NDZiLi5kODg1YTg0ZmI1NWU4OTJi
MDczYWI1NDA4NmRjZmY2ZjVmMTQzNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2Fs
aXphYmxlU3RyaW5ncy5jcHAKQEAgLTQ3LDI1ICs0NywyNSBAQCB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBMb2NhbGl6ZWRTdHJpbmcqPiBMb2NhbGl6ZWRTdHJpbmdNYXA7CiAKIHN0YXRpYyBNdXRl
eCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChNdXRleCwgbXV0ZXgpOwogICAgIHJldHVybiBtdXRleDsKIH0KIAogc3RhdGlj
IExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbGl6ZWRTdHJpbmdNYXAsIG1hcCwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbGl6ZWRTdHJpbmdNYXAsIG1h
cCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIAogc3RhdGljIE11dGV4JiBmcmFtZXdvcmtMb2NTdHJp
bmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwg
bXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11
dGV4KTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAg
ZnJhbWV3b3JrTG9jU3RyaW5ncygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwKTsKICAgICByZXR1cm4gbWFwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdlMzYwOGY5YzBmNjZhZTU3NGFjYjI1MmZiZTU4
YzhiMDFlNjk3Y2MuLjg4ZmI0NTQwN2Q3MDIwZWFiYTM4NmQ1MzYwNWYxZTQyNzI0NGJlODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC0xMzIxLDggKzEzMjEsOCBAQCBib29sIFdlYlZpZXc6OmNh
bkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
CiBTdHJpbmcgV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNv
bnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIG9zVmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJpbmco
KSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZl
cnNpb24sICh3ZWJLaXRWZXJzaW9uU3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoU3RyaW5nLCBvc1ZlcnNpb24sICh3aW5kb3dzVmVyc2lvbkZv
clVBU3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUxfV0lUSF9B
UkcoU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCAod2ViS2l0VmVyc2lvblN0cmluZygpKSk7CiAKICAg
ICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKCIsIG9zVmVyc2lvbiwgIikgQXBwbGVX
ZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pIiwgYXBwbGljYXRp
b25OYW1lLmlzRW1wdHkoKSA/ICIiIDogIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggNGM2MWRiYjBmNGMxM2ZmZjM5Y2QwZDM4NTBhZmE1ZmFi
NGY1MDg2Zi4uYWRlZGI2NGI5NzNiMDcxYmUzOTRjY2JkYmQ3NWFjZTViMjZjYzZjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEZyYW1lTG9hZGVyQ2xpZW50
V2luQ0U6On5GcmFtZUxvYWRlckNsaWVudFdpbkNFKCkKIAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xp
ZW50V2luQ0U6OnVzZXJBZ2VudChjb25zdCBVUkwmKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIHVzZXJBZ2VudFN0cmluZywgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHVzZXJBZ2VudFN0cmluZyk7CiAKICAgICBp
ZiAodXNlckFnZW50U3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIFN0cmluZyB3ZWJLaXRWZXJz
aW9uID0gU3RyaW5nOjpmb3JtYXQoIiVkLiVkIiwgV0VCS0lUX01BSk9SX1ZFUlNJT04sIFdFQktJ
VF9NSU5PUl9WRVJTSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAKaW5kZXggYzY1MTkz
OGZkZTE3ODI4YTgwZjZkZTQ5ZjI3MzlkMjI1ZDQ1NmM0ZS4uMjg5YjI3MjI2YWRlMjhkN2Y4ZWVk
ZjliZGJkMjkyOTdkN2ZmOTk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHZvaWQgUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0U6OmluaXRpYWxpemUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRSwgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFLCBwbGF0Zm9ybVN0cmF0ZWdpZXMpOwogfQogCiBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6
UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNv
ci5jcHAKaW5kZXggOTMyYmY3MzhhZTAyZTA4NzhhMzA2MGQ5MGMzM2YwNDk0OWE1ZmNmZC4uMDll
MTJiNWMyZTIzYWVkMTRhNzhlNzRmZjkxNGQxZjkyYTc1YWEwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9TUUxpdGVJREJDdXJzb3IuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFNRTGl0ZUlEQkN1cnNvcjo6
U1FMaXRlSURCQ3Vyc29yKFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3Qg
SURCSWRlCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldEluZGV4U3RhdGVtZW50KGJvb2wgaGFz
TG93ZXJLZXksIGJvb2wgaXNMb3dlck9wZW4sIGJvb2wgaGFzVXBwZXJLZXksIGJvb2wgaXNVcHBl
ck9wZW4sIGJvb2wgZGVzY2VuZGluZywgYm9vbCB1bmlxdWUpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxTdHJpbmc+LCBpbmRleFN0YXRlbWVudHMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIGluZGV4
U3RhdGVtZW50cyk7CiAKICAgICBpZiAoaW5kZXhTdGF0ZW1lbnRzLmlzRW1wdHkoKSkgewogICAg
ICAgICBpbmRleFN0YXRlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxMik7CkBAIC0xMTUs
NyArMTE1LDcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgZ2V0SW5kZXhTdGF0ZW1lbnQoYm9vbCBo
YXNMb3dlcktleSwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbAogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiBnZXRPYmplY3RTdG9yZVN0YXRlbWVudChib29sIGhhc0xvd2VyS2V5LCBib29sIGlzTG93ZXJP
cGVuLCBib29sIGhhc1VwcGVyS2V5LCBib29sIGlzVXBwZXJPcGVuLCBib29sIGRlc2NlbmRpbmcp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxTdHJpbmc+LCBz
dGF0ZW1lbnRzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3Rv
cjxTdHJpbmc+LCBzdGF0ZW1lbnRzKTsKIAogICAgIGlmIChzdGF0ZW1lbnRzLmlzRW1wdHkoKSkg
ewogICAgICAgICBzdGF0ZW1lbnRzLnJlc2VydmVDYXBhY2l0eSg4KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJv
a2VyLmNwcAppbmRleCA1OGU3M2Y5MWY3Y2JiNDUxZjI0YjQ5MWY1ZWQ3ZjliZmVkZmE5ZDBmLi5k
MDBmZDgwMzNlYjdiNzM1YWZkZDkwNTE0ZDBiYmFkZjUyZTE3YjdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBC
cm9rZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJTSUdTWVNI
YW5kbGVyKCkKIAogU2VjY29tcEJyb2tlckNsaWVudCYgU2VjY29tcEJyb2tlckNsaWVudDo6c2hh
cmVkKGludCBzb2NrZXQpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNl
Y2NvbXBCcm9rZXJDbGllbnQsIGJyb2tlckNsaWVudCwgKHNvY2tldCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTF9XSVRIX0FSRyhTZWNjb21wQnJva2VyQ2xpZW50LCBicm9r
ZXJDbGllbnQsIChzb2NrZXQpKTsKIAogICAgIHJldHVybiBicm9rZXJDbGllbnQ7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3Bl
Y3RvclNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYkluc3BlY3RvclNlcnZlci5jcHAKaW5kZXggNWRmZjU0NjMwMzZjMzdkZjU1OTdjOWJlMmFk
OTlkMzg5ZDJlNThlMS4uY2I2ZDRlNjkzYTI3MWE1MjMxYTBkMWYxMjc0MDcwN2FiMDNlMWYyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJ
bnNwZWN0b3JTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wg
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KFdlYlNvY2tldFNlcnZlckNvCiAgICAgU3RyaW5nIHBhdGggPSByZXF1ZXN0LT51cmwoKTsKIAog
ICAgIC8vIE5PVEU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBpbnNwZWN0b3JXZWJTb2NrZXRDb25uZWN0aW9uUGF0aFByZWZpeCwgKEFT
Q0lJTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUxfV0lUSF9BUkcoY29uc3QgU3RyaW5nLCBpbnNwZWN0b3JXZWJTb2NrZXRDb25u
ZWN0aW9uUGF0aFByZWZpeCwgKEFTQ0lJTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIikpKTsKIAog
ICAgIC8vIFVua25vd24gcGF0aCByZXF1ZXN0ZWQuCiAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgo
aW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBhdGhQcmVmaXgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234692</attachid>
            <date>2014-07-10 00:02:54 -0700</date>
            <delta_ts>2014-07-10 00:15:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134794-20140710123234.patch</filename>
            <type>text/plain</type>
            <size>323049</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NzQ2NTc3OTJjZmIxZjBhYzhiNzM1ZWE5MjM1NjU4OGI4MmIzNDc2Li5lZjgzMzAxNmNhZjljYzJl
MGU5MGYyNzI1NGVhYzdiYWFmOTBiMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBNaWdyYXRlIHRoZSB1c2FnZSBvZiBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVCwgbmFtZSwgYXJncykgdG8gInN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBu
YW1lKGFyZ3MpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoanNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAg
ICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpvYmplY3RH
cm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAgICAqIGludGVycHJldGVyL0pT
U3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3RpY3NNdXRleCk6CisKIDIwMTQt
MDctMDkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dp
bl0gUmVtb3ZlIHVzZXMgb2YgJ2Jhc2gnIGluIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMGFlOTc3YWU2
MGM5YWZmMjZmOWNmN2U4ZjAxZGMzMTZjYjM3MmNhLi4zYmUxM2U2OGYyODE3MmI2ODA2OTFhNWQ3
Nzg1MmE2MzkxZGI0ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAoV1RGOjp0aHJlYWRNYXBN
dXRleCk6CisgICAgICAgIChXVEY6OnRocmVhZE1hcCk6CisKIDIwMTQtMDctMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBi
dWlsZCBmaXggYWZ0ZXIgcjE3MDkzMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTlhYjdmYzc1ODE5N2ZiMDJk
YmQxMTZhODE1MjM3ZDQ3N2NkNDExLi5kNmY5ODY5Y2Q3ZDAwYWVmODYyYWZlNzJjOTkyYWYxYTBi
MWNlMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjY5IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgcmVxdWlyZWQgYXMgdGhp
cyBpcyBhIGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdHJpbmdGb3JQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
ZGlyZWN0aW9uTmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5l
eHRVbmlxdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9k
ZVJlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlw
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OmVuZGVkS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3Ry
ZWFtRW5kZWRXaXRoRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21I
YW5kbGVyc1N0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRV
dGlsczo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpx
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudFNjcmlwdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6Ym91bmRhcnlFdmVudE9jY3VycmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2NDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSW50ZXJuYWwubW06CisgICAgICAgICh3cmFwcGVyQ2FjaGVMb2NrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJD
b3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ondy
YXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5Lmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFw
cGVyT3duZXIpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6cmVz
b2x2ZXNGYW1pbHlGb3IpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkUmVzb2x1dGlvbldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAg
KiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY2N1bXVsYXRvck1hcCk6
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzU3VwcG9ydGVkU1ZHMTBGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3VwcG9ydGVk
U1ZHMTFGZWF0dXJlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlYWR5U3RhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAg
ICAqIGRvbS9FdmVudExpc3RlbmVyTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZUl0
ZXJhdG9yQ291bnRNdXRleCk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAgICog
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlk
Q1NTQ29udGVudFR5cGUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OnN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25S
ZWNvcmQuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0RGF0YU1hcCk6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cHNldWRvRWxlbWVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMpOgorICAgICAgICAqIGRv
bS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1YWxpZmllZE5hbWVDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpudWxsUU5hbWUpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVzZW50
YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTcGFuQ2xhc3NTdHJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW50ZXJj
aGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4pOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQnJlYWtpbmdTcGFjZVN0cmluZyk6CisgICAgICAg
ICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OnN0eWxlTm9kZUNsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1h
cmt1cEludGVybmFsKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL0Zvcm1Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkp
OgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVN0YXRlU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3RFZGl0YWJsZUVs
ZW1lbnRNYXApOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3VtbWFy
eVF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlua0xvYWRFdmVudFNlbmRl
cik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmRvY3VtZW50VG9FbGVtZW50U2V0TWFwKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9y
bUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0aXRsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c3VidGl0bGVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSk6
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVMb2FkRXZlbnRTZW5k
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpk
YXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpy
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
Ojp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1l
czo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAocGxheWJhY2tTdGF0ZVBsYXlpbmcpOgor
ICAgICAgICAocGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAgICAgKiBodG1sL1N0ZXBSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6
ZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJbmplY3RlZCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01h
cmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWluZXJFbGVtZW50U2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6Om1haW5EZXNjS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp0cmFuc2xhdGlvbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6
Y29tbWVudGFyeUtleXdvcmQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpt
ZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpmb3JjZWRLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGlkZGVuS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5kS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0S2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpyaWdodEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGlj
YWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZUJveDo6dnR0
Q3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1p
bmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6bWFya0Z1dHVyZUFu
ZFBhc3ROb2Rlcyk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVn
aW9uOjpzZXRTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpwYXJzZVNldHRp
bmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRh
aW5lclNjcm9sbGluZ0NsYXNzKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm9kZVR5cGVUb1RhZ05hbWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVjdE1ldGFkYXRhSGVhZGVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHV0ZVBzZXVkb0NsYXNzTWFzayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c291cmNlTWFw
VVJMRm9yUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNl
RGVsaW1pdGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3Jp
cHQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9s
aWN5UHJldmVudGVkTG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAg
ICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUpOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUpOgorICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zQmFja2dyb3VuZENTUyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNU
ZXh0RWRnZUNTUyk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
Y3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVk
RGlyZWN0aXZlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OndpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZHJhZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwOgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luQWNjZXNzTWFwKToK
KyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dG
b3JCbGVuZGluZyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRlckN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpjcm9zc0N1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjpoYW5kQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdmVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGljYWxUZXh0Q3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OmNlbGxDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6YWxpYXNDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6
em9vbUluQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Onpvb21PdXRDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub25lQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByb2dyZXNzQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
RHJvcEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2VkQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlCZWFtQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OndhaXRDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6aGVscEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjplYXN0
UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoUmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpub3J0aFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhSZXNpemVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UmVzaXplQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNvdXRoV2VzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjp3
ZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoU291dGhSZXNpemVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZWFzdFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpj
b2x1bW5SZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6cm93UmVzaXplQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZVBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6ZWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhQYW5uaW5nQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bm9ydGhXZXN0UGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpz
b3V0aFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UGFubmluZ0N1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6Ondlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OmdyYWJD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Z3JhYmJpbmdDdXJzb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9ic2VydmVyTWFwKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhTUlNRVR5cGVNYXAp
OgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVtb3J5UHJl
c3N1cmVIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpsb2NhbFVSTFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGlz
cGxheUlzb2xhdGVkVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpzZWN1cmVTY2hlbWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjplbXB0eURvY3VtZW50U2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lc0Fs
bG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDT1JTRW5hYmxlZFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6
OnRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YmxhbmtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9ydEZvclByb3RvY29sKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F0ZW5hdGVkSW1wdWxzZVJlc3BvbnNl
c0ZvclN1YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXVkaW9EZXN0aW5hdGlvbnMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRF
Y29yZUN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmb250R2x5cGhzQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVDb250ZXh0TGlzdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZXBhaW50UmVjdE1hcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVh
bSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNNVGltZVJhbmdlU3RhcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q01UaW1lUmFuZ2VEdXJhdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpDQUNG
Q29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF5ZXJUb1ByaXZhdGVNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpl
ZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFyZkJ1enpGYWNlQ2FjaGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHM6OmVtcHR5VmFsdWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVHYW1lcGFk
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OktleUJpbmRpbmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0Zv
cktleUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhl
bHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFdpbmRvd0hhc2hNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVD
b250ZXh0TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY2hlZHVsZVNjcmF0Y2hCdWZmZXJQdXJnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
dXJzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXJJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVs
ZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6
dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVu
dE9ic2VydmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYlRocmVhZEdldE9ic2VydmVkQ29udGVudE1v
ZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnBsYXRmb3JtVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgorICAgICAgICAo
V2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojptb2NrU291cmNlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVN0cmVhbUNlbnRl
cjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tC
b3g6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0luaXRpYWxpemF0aW9uQm94Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTYW1wbGVCb3g6OnR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhU
b0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYU1NQcm90ZWN0aW9uSGVh
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0
dWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0
U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0
b3JNYXApOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25v
dXNMb2FkZXJNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGllbnRDZXJ0cyk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpZW50Q2VydGlmaWNh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlOjpnZXQpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzY3JpcHROYW1lVG9Db2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsZVRv
U2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2No
YXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3b3JkQnJl
YWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzZW50ZW5jZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRM
b2NhbGVOYW1lVG9MQ0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dz
U3R5bGVOZXdsaW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVuZGxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9y
YWdlRGlyZWN0b3J5KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBlcnNpc3RlbnRQbHVnaW5NZXRhZGF0YUNhY2hlUGF0aCk6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRpbnVhdGlv
bk91dGxpbmVUYWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JU
ZXh0T3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
dW50ZXJNYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Ny
b2xsYmFyVGhlbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjdXN0b21Gb2N1c1JpbmdDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5
c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0
TmV3UGFyZW50TWFwKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFBhaW50ZXI6OnBhaW50VGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0dyaWRUcmFja1NpemUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRy
YWNrQnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0Jy
ZWFkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
UGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q2h1bmtCdWlsZGVyOjp0cmFuc2Zvcm1hdGlvbkZvclRl
eHRCb3gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6cm90YXRlTW9kZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6aW5oZXJpdHNGcm9tUHJvcGVydHkpOgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVu
Z3RoWUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6Om9yZGVyWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlk
ZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERl
dmlhdGlvbllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3Rk
RGV2aWF0aW9uWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5
RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6cmFkaXVzWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojpi
YXNlRnJlcXVlbmN5WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhNYXAuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoTWFwOjpzdmdHbHlwaEZvckdseXBoKToKKyAgICAgICAgKiBzdmcvU1ZHTGFu
Z1NwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6eG1sc3BhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAg
KiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
Ojpjb250ZW50U2NyaXB0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpj
b250ZW50U3R5bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVHJh
bnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlw
ZVByZWZpeEZvclBhcnNpbmcpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmlld0JveElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U01JTEVsZW1lbnQ6OnJlc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KToK
KwogMjAxNC0wNy0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCByMTcwNDEzIGFuZCByMTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXgg
NmNjNmM4NWQwZjc0NDNlN2E3YThhNDE4ZjIwMGIyMzhmZTU3ZDFhYS4uNjc5ZjZjNGEzMzQ0NTFm
OGJhNGE3ZTdlNWI0ZTI2MzUyZDlhMzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgor
CisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJn
cykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
c2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChFbW9qaUZhbGxiYWNr
Rm9udFNlbGVjdG9yOjpnZXRGYWxsYmFja0ZvbnREYXRhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2spOgorCiAyMDE0LTA3LTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV1RGOjptb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkZTk2NjYxYWQ0MWUwZWUzYmI5YzA0Nzk0MDM4ZWRjOThmNTQ5ODA1Li44YTdmN2Y0N2VlZWRh
M2UxNzIwYTlkNjM5ZTAyZDYzNzBhYzBhODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShh
cmdzKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChiYWNrRm9yd2FyZExpc3Rz
KToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoaGlzdG9y
eUl0ZW1XcmFwcGVycyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
cjo6c2hhcmVkKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJveHlNYXApOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm94eUNsYXNzKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoc3RyZWFtcyk6
CisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW06CisgICAgICAgICh0cmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKHVzZXJNZWRpYVJlcXVlc3Rz
TWFwKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAg
ICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTQtMDctMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTY3NzcwKTogQ2Fubm90IGxvZ2lu
IGluIEV2ZXJub3RlIFNhZmFyaSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxODhiZjA5
MTM0ODQyY2QyMTE0ZmE4NWE5MmM1ZTgwZTY5MDk2ZDlhLi4wYjY0YmVmZGI0ZTUxNjlkNmM5MjUy
OGQ0NzY3ZmJhMWNhOTgyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQs
IG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdzKSIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cDoKKyAgICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKToKKyAgICAgICAgKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzKToKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZSk6CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCAwZWQ4ZTFkZDdiYTliYjQxMWY5OGIxMjU2ZDkwMjQ1YWM5MzliNzczLi5hMjBmYTg3YjQzYWNk
NTkyMjk3YmYxZTNkYTA0MGZiNzU3OTE2ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5h
bWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0xMiAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgREVGSU5F
X1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNzA2MWVkODBiMjgwOTliZDA0MjdhYTZlNzRkZmNmMTMwOTA4ZGY4Li44ZTgwZTBiM2Yy
YzFjZjcxZjUyMjg4ZGQ2NGQwYmM1ODNhNWE0MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdz
KSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KToKKwogMjAxNC0wNy0wOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjE3MDg1OCk6IFNhZmFyaSBmcmVlemVzIHVwb24gbWFraW5nIGEg
c2VhcmNoIG9uIGEgd2Vic2l0ZSAoeWVscC5jb20pLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQppbmRleCA4OTdlOTZmNDRlMGY0MWMzOTFiYjhk
NjYwZWY3MzA3NDBlZmNjMWVkLi41YWViNWJmMjE5ODJhMzBiOTVkNjg5MmE5NDIyMTFjZjg2MTZk
YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVj
dC5tbQpAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmpl
Y3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
ciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzV3JhcHBl
ck9iamVjdEhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcj4ganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKTsKKyAgICBy
ZXR1cm4gJmpzV3JhcHBlck9iamVjdEhhbmRsZU93bmVyLmdldCgpOwogfQogCiB2b2lkIEpTQVBJ
V3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRW
YWx1ZS5tbQppbmRleCA5NTNjYjVmYmRhYWMxMzZlNjUxYjI5Y2NmNThlN2Q3NDM5OGZjOTBlLi5m
NzgxODdkZDhlZjhkYjIzMzk3MGY3ZTJhMTk4M2Y4YTFmZDM5ZDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KQEAgLTQ2LDggKzQ2LDggQEAgcHVibGlj
OgogCiBzdGF0aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciogbWFuYWdlZFZhbHVlSGFuZGxl
T3duZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU01hbmFnZWRW
YWx1ZUhhbmRsZU93bmVyLCBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLCAoKSk7Ci0gICAgcmV0
dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyPiBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKCk7
CisgICAgcmV0dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLmdldCgpOwogfQogCiBjbGFz
cyBXZWFrVmFsdWVSZWYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAy
MzEzMmZjMjBlYWNkMWJlZTEwZDM0ZTczZjZjMDhhYjljYzgyYWY4Li5lNTBhMzkwOTA2NDA2YzUz
NzI2YzhhZGE5NWJlMmZjY2FkZWQyNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcApAQCAtNTIsNyArNTIsNyBAQCBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9ICJiYWNrdHJhY2UiOwogLy8gY3JlYXRlIG9iamVjdHMg
aW4gdGhlIHNhbWUgZ3JvdXAuCiBzdGF0aWMgU3RyaW5nIG9iamVjdEdyb3VwRm9yQnJlYWtwb2lu
dEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiBhY3Rpb24pCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb2JqZWN0R3Jv
dXAsICgiYnJlYWtwb2ludC1hY3Rpb24tIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG9i
amVjdEdyb3VwKCJicmVha3BvaW50LWFjdGlvbi0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhvYmplY3RHcm91cCwgU3RyaW5nOjpu
dW1iZXIoYWN0aW9uLmlkZW50aWZpZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdz
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3JTdHJpbmdzLnB5CmluZGV4IDI3NjM3NDQxNjBiODRmZmQyYzM3NzU5YTQzZGJk
MzNkZjAxNDVhNDQuLmVjMmMyNzE5YTdkMDJkMWVlNWJhMTQ1NDc4Zjg0ZGJmZTJkNjkyYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkKQEAgLTcyLDcg
KzcyLDcgQEAgYmFja2VuZF9kaXNwYXRjaGVyX2Rpc3BhdGNoX21ldGhvZCA9ICgKIAogICAgIHR5
cGVkZWYgdm9pZCAoJHtkaXNwYXRjaGVyTmFtZX06OipDYWxsSGFuZGxlcikobG9uZyBjYWxsSWQs
IGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKTsKICAgICB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4gRGlzcGF0Y2hNYXA7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKERpc3BhdGNoTWFwLCBkaXNwYXRjaE1hcCwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEaXNwYXRjaE1hcD4gZGlzcGF0Y2hNYXAoKTsKICAgICBp
ZiAoZGlzcGF0Y2hNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
TWV0aG9kVGFibGUgewogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAppbmRleCBjNmE3MDNjYmM2MDMw
NzQ0MzJjMGIyODFlYzIwOTE5ZWUzYmVjODEyLi5kOWMxN2Y3NTMwY2RkYjJhMWMwYzQ0M2E2Mjk3
MTJkMzE2ZTNlNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suY3BwCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZXND
b3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IHN0YXRpY011dGV4KCk7CiAgICAgcmV0
dXJuIHN0YXRpY011dGV4OwogfSAgICAKICNlbmRpZiAvLyAhRU5BQkxFKEpJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgKaW5kZXggYzFmNDVlMDc3MWNjODExZDczNTUzM2RkNWMxZmFhMzc0MDA5MzY2NC4u
Mjk2YjExM2YxZjhiYjM4MThiN2FmOTRiOWUzMjA2MDIyMzkzODQ4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0
cmFzLmgKQEAgLTM4LDYgKzM4LDcgQEAKIC8vCiAvLyBOZXdseSB3cml0dGVuIGNvZGUgc2hvdWxk
IHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KICNpZm5kZWYgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aWYgQ09NUElMRVIoR0NDKSAmJiBkZWZpbmVkKF9fQVBQTEVfQ0NfXykgJiYgX19HTlVDX18gPT0g
NCAmJiBfX0dOVUNfTUlOT1JfXyA9PSAwICYmIF9fR05VQ19QQVRDSExFVkVMX18gPT0gMQogI2Rl
ZmluZSBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwodHlwZSwgbmFtZSwgYXJndW1lbnRz
KSBcCiAgICAgc3RhdGljIHR5cGUqIG5hbWUjI1B0ciA9IG5ldyB0eXBlIGFyZ3VtZW50czsgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDYxOTI5MTVjYjFiZDMyMzNiMTI0
YzA3YjQzNmU4ZjEyMzlkMDllOWMuLjcwMDU0MWNkZjk0MDMwOTM5MDljNDcwZmIzM2IyNzVkYjNl
YzY4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCB2b2lkIHRocmVhZFdhc0pvaW5lZChUaHJlYWRJZGVudGlmaWVyKTsKIAogc3RhdGljIE11
dGV4JiB0aHJlYWRNYXBNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4g
bXV0ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lk
IGluaXRpYWxpemVUaHJlYWRpbmcoKQogCiBzdGF0aWMgVGhyZWFkTWFwJiB0aHJlYWRNYXAoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUaHJlYWRNYXAsIG1hcCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaHJlYWRNYXA+IG1hcCgpOwogICAgIHJldHVy
biBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9X
ZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNw
cAppbmRleCA1MjcwZjJiMTQxNWE2NGYxZmRhM2M1ZjIzZDNjMWNlYTJjYzRkYTAwLi5kZjQ2MTRh
MzYzYmE3MmVkNWQzNzk5ZmJmOGY2MTQ4YWU0MzE2MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCkBAIC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5nRm9yUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXZhaWxhYmxlU3RyaW5nLCAoImF2YWlsYWJs
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBub3RBdmFpbGFibGVTdHJpbmcsICgi
bm90LWF2YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2
YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5vdEF2YWlsYWJsZVN0cmluZygibm90LWF2
YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0
dXJuIGF2YWlsYWJsZSA/IGF2YWlsYWJsZVN0cmluZyA6IG5vdEF2YWlsYWJsZVN0cmluZzsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4
IDJlODQ2ZGQ3ZmM4OWNhY2I1NDE2OTg5Y2U3NzBhY2NjMGI0N2FmNWYuLmEzZTU1ZDdkMzYxZmY2
ZjUzZDljYjNlMGM0ZDU3OTljYmRjZDM1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtNTAsMjUgKzUwLDI1IEBAIFBhc3NSZWZQdHI8
SURCQ3Vyc29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+
IGJhY2tlbmQsIEluCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25O
ZXh0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuZXh0LCAoIm5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmV4dCgibmV4dCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuZXh0OwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dFVuaXF1ZSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dHVuaXF1
ZSwgKCJuZXh0dW5pcXVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5leHR1bmlxdWUoIm5leHR1
bmlxdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmV4dHVuaXF1ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlv
blByZXYoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHByZXYsICgicHJldiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwcmV2KCJwcmV2IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHByZXY7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2VW5pcXVlKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2dW5p
cXVlLCAoInByZXZ1bmlxdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHJldnVuaXF1ZSgicHJl
dnVuaXF1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBwcmV2dW5pcXVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuY3BwCmluZGV4IDk2YjBjNmFkNzNhNTYwODEzMGI4ZWZmMmNlMGJlYWU1OTNh
ODdjMTMuLmE3NTkxNmY5MjdlMmE2YmM4ZmZiZjZjMDg2Y2RmZWZjOGYzZTUxMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xMzIs
OCArMTMyLDggQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCUmVxdWVzdDo6dHJhbnNh
Y3Rpb24oKSBjb25zdAogY29uc3QgU3RyaW5nJiBJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKCkgY29u
c3QKIHsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRl
ID09IERPTkUpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHBlbmRpbmcsICgicGVuZGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBk
b25lLCAoImRvbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcGVuZGluZygicGVuZGluZyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGRvbmUoImRvbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUEVORElORykKICAgICAgICAg
cmV0dXJuIHBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0NWM0MTEzNDc5ZmU3MTgzZDEwODk4MWUw
YzEwZDY1Nzg0OC4uYmRmODM0NDU1OTNkNjQzYmE3M2Y0ODI5NmVlODczZjA5YTlhNTk3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcApAQCAtNjAsMzEgKzYwLDMxIEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRy
YW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZG9ubHksICgicmVh
ZG9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVhZG9ubHkoInJlYWRvbmx5IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHJlYWRvbmx5OwogfQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3Jp
dGUsICgicmVhZHdyaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlYWR3cml0ZSgicmVhZHdy
aXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHJl
YWR3cml0ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVZl
cnNpb25DaGFuZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHZlcnNpb25jaGFuZ2UsICgidmVyc2lvbmNoYW5nZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiB2ZXJzaW9uY2hhbmdlKCJ2ZXJzaW9uY2hhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHZlcnNpb25jaGFuZ2U7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seUxlZ2FjeSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZG9ubHks
ICgiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiByZWFkb25seSgiMCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkb25seTsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZUxlZ2FjeSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRl
LCAoIjEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVhZHdyaXRlKCIxIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHJlYWR3cml0ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKaW5kZXggYTY4OGM1ODZhYjU5MmYyMjI1MTBiNjFjMmFhZTQ2ODBmZDEy
NmI1Yy4uM2U0YWY3ZTZiMTliYTFkNjQxOGQ0ZTQ5YzZlMTZkODUzOGQxNjZkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCkBAIC00NCwxOSArNDQsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBhdXRvbWF0aWMsICgiYXV0b21hdGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGF1
dG9tYXRpYygiYXV0b21hdGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGF1dG9tYXRpYzsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xzSG9zdDo6Zm9yY2VkT25seUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZvcmNlZE9uLCAoImZvcmNlZC1vbmx5
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGZvcmNlZE9uKCJmb3JjZWQtb25seSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmb3JjZWRPbjsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6YWx3YXlzT25LZXl3
b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBhbHdheXNPbiwgKCJhbHdheXMtb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4gYWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBhbHdheXNPbjsKIH0KIApAQCAtMjAzLDEyICsyMDMsMTIgQEAgU3Ry
aW5nIE1lZGlhQ29udHJvbHNIb3N0OjpleHRlcm5hbERldmljZURpc3BsYXlOYW1lKCkgY29uc3QK
IAogU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpleHRlcm5hbERldmljZVR5cGUoKSBjb25zdAog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbmUsIChBU0NJ
SUxpdGVyYWwoIm5vbmUiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG5v
bmUoQVNDSUlMaXRlcmFsKCJub25lIikpOwogICAgIFN0cmluZyB0eXBlID0gbm9uZTsKICAgICAK
ICNpZiBFTkFCTEUoSU9TX0FJUlBMQVkpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgYWlycGxheSwgKEFTQ0lJTGl0ZXJhbCgiYWlycGxheSIpKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHZvdXQsIChBU0NJSUxpdGVyYWwo
InR2b3V0IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhaXJwbGF5KEFT
Q0lJTGl0ZXJhbCgiYWlycGxheSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB0dm91dChBU0NJSUxpdGVyYWwoInR2b3V0IikpOwogICAgIAogICAgIE1lZGlhUGxheWVyKiBw
bGF5ZXIgPSBtX21lZGlhRWxlbWVudC0+cGxheWVyKCk7CiAgICAgaWYgKCFwbGF5ZXIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAK
aW5kZXggM2YwMjY1YmMwZTQ4M2E4NTc4ZjE1ODE2ODQ3ODhjODgxMWJkYjU3ZS4uNTM1MDAxZDMy
MmU1YmM4MjM2NmQwNTJhOWNjZDFlMzFjODNmMDU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTkyLDE5ICs5MiwxOSBA
QCBNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YVNvdXJjZTo6b3BlbktleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4sICgib3BlbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBvcGVuKCJvcGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG9wZW47CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3Vy
Y2U6OmNsb3NlZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gY2xvc2VkKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY2xvc2VkOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhU291cmNlOjplbmRlZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IGVuZGVkKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBlbmRlZDsKIH0KIApAQCAtMzQwLDggKzM0MCw4IEBAIHZv
aWQgTWVkaWFTb3VyY2U6OmVuZE9mU3RyZWFtKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogCiB2b2lkIE1lZGlhU291cmNlOjpzdHJlYW1FbmRlZFdpdGhFcnJv
cihjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXR3b3Jr
LCAoIm5ldHdvcmsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVjb2Rl
LCAoImRlY29kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBuZXR3b3JrKCJuZXR3b3Jr
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVjb2RlKCJkZWNvZGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIC8vIDIuNC43IGh0dHBzOi8vZHZjcy53
My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS5odG1sI2VuZC1vZi1zdHJlYW0tYWxnb3JpdGhtCiAgICAgLy8gMS4gQ2hhbmdlIHRoZSByZWFk
eVN0YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmln
YXRvckNvbnRlbnRVdGlscy5jcHAKaW5kZXggMGNmMzRlNzdkNTkzYjVjMjg3YTE0M2VmZWFhMDIw
NzFhZjcwMGJmMS4uMmQxOTc4Njk2NGZkZDczY2JiNWFhMWYwMjY3MmI2NDgwNWZiMTk2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2
aWdhdG9yQ29udGVudFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmln
YXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCkBAIC0xNDQsOSArMTQ0
LDkgQEAgdm9pZCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVy
KE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdAogI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hB
TkRMRVIpCiBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29uc3QgTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHN0YXRlKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5ld0hhbmRs
ZXIsIChBU0NJSUxpdGVyYWwoIm5ldyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJlZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoInJl
Z2lzdGVyZWQiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgiZGVjbGluZWQiKSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG5ld0hhbmRsZXIoQVNDSUlMaXRl
cmFsKCJuZXciKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcmVn
aXN0ZXJlZEhhbmRsZXIoQVNDSUlMaXRlcmFsKCJyZWdpc3RlcmVkIikpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRlY2xpbmVkSGFuZGxlcihBU0NJSUxpdGVyYWwo
ImRlY2xpbmVkIikpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKQEAgLTE2Myw3ICsxNjMsNyBA
QCBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29uc3QgTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50OjpDdXN0bwogCiBTdHJpbmcgTmF2aWdhdG9yQ29udGVudFV0aWxz
Ojppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoTmF2aWdhdG9yKiBuYXZpZ2F0b3IsIGNvbnN0
IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGVjbGlu
ZWQsICgiZGVjbGluZWQiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gZGVjbGluZWQoImRlY2xpbmVkIik7CiAKICAgICBpZiAoIW5hdmlnYXRvci0+ZnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuIGRlY2xpbmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IGVi
M2MyNzU2MjkzMWRkNWFlMDI3YmQ5NDM5ZmI4YzIxODZhZmExMmUuLmMzNWZmMDdhYzY3MWE3ZGNk
NDg2MzI2Yjk0MWIwNTkwNWEyZmJhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTY5
LDcgKzY5LDcgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNv
bnRleHQoQVZNZXRhZGF0YUl0ZW1UeXBlICosIEpTQ29udGUKIAogc3RhdGljIFN0cmluZyBxdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudFNjcmlwdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgc2NyaXB0LCAoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRK
YXZhU2NyaXB0LCBzaXplb2YoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0KSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNjcmlwdChRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudEphdmFTY3JpcHQsIHNpemVvZihRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dEphdmFTY3JpcHQpKTsKICAgICByZXR1cm4gc2NyaXB0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAppbmRleCBiNmJiM2NmNzFh
OGVkOWRmY2Y4MDkyYTgwMTE3YjBiMmZkZTk4MDEwLi5mYmU1N2EwNjIxNDgzZTRjM2I2Yzg5NzRm
OWE5YjdmN2U3ODcyZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKQEAgLTE5NCw4ICsxOTQsOCBAQCB2b2lkIFNwZWVjaFN5bnRo
ZXNpczo6aGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1
dHRlcmFuYwogICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OmJvdW5kYXJ5RXZlbnRPY2N1cnJl
ZChQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiB1dHRlcmFuY2Us
IFNwZWVjaEJvdW5kYXJ5IGJvdW5kYXJ5LCB1bnNpZ25lZCBjaGFySW5kZXgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgd29yZEJvdW5kYXJ5U3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCJ3b3JkIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJzZW50ZW5jZSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gd29yZEJvdW5kYXJ5U3RyaW5nKEFTQ0lJTGl0ZXJhbCgid29yZCIpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgic2VudGVuY2UiKSk7CiAKICAgICBzd2l0Y2ggKGJvdW5kYXJ5KSB7CiAgICAgY2Fz
ZSBTcGVlY2hXb3JkQm91bmRhcnk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9HQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250
cm9sbGVyLmNwcAppbmRleCBlYjhiYzBjMTk3ODlhMzg4MTg2ZDc1NjVjZTFiNWFiOTcyZWVjZDNh
Li5jMjA5Y2MwNDE3ZTNiODIxZDIyYzgwM2VmOGYxMzQyMDYxZmJiOTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Rh
dGljIHZvaWQgY29sbGVjdCh2b2lkKikKIAogR0NDb250cm9sbGVyJiBnY0NvbnRyb2xsZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChHQ0NvbnRyb2xsZXIsIHN0YXRp
Y0dDQ29udHJvbGxlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHQ0NvbnRyb2xs
ZXI+IHN0YXRpY0dDQ29udHJvbGxlcigpOwogICAgIHJldHVybiBzdGF0aWNHQ0NvbnRyb2xsZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0
eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCmluZGV4IDExZGU1ZDNmOTY4MzQyMTY5Zjg3ZDdhNzE4
NTFiYjgzNTBhMjg1Y2MuLjFmN2NiNWYwODNhMGQwOTc3MGI4OGVmYWYxZDQzZTBmNTE5MWUzMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJh
dGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBDU1NQcm9w
ZXJ0eUluZm8gY3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVydHlOYW1lKFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hCiAKICAgICBTdHJpbmcgc3RyaW5nRm9yQ2FjaGUgPSBTdHJpbmcocHJvcGVydHlO
YW1lU3RyaW5nKTsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDU1NQcm9wZXJ0eUluZm8+
IENTU1Byb3BlcnR5SW5mb01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q1NTUHJvcGVydHlJbmZvTWFwLCBwcm9wZXJ0eUluZm9DYWNoZSwgKCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUluZm9NYXA+IHByb3BlcnR5SW5mb0NhY2hlKCk7CiAg
ICAgcHJvcGVydHlJbmZvID0gcHJvcGVydHlJbmZvQ2FjaGUuZ2V0KHN0cmluZ0ZvckNhY2hlKTsK
ICAgICBpZiAocHJvcGVydHlJbmZvLnByb3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBwcm9wZXJ0
eUluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lu
c3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXggZjgwMThjNzQ4YjNlZDc5ODEzNDE2
Yzc5OGFjMzE5MGM2NTBhNzcxYS4uN2NjNDMzOWZmODQxNDUyYjdhMDk0NjVkNjJiYjJhNjI0NDEz
YmZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAtNTUsMTkgKzU1LDE5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3Jt
KEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQogewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBs
YXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJtYWMiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgibWFjIikpOwogI2VsaWYgT1Mo
V0lORE9XUykKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgid2luZG93cyIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJ3aW5kb3dzIikp
OwogI2VsaWYgT1MoTElOVVgpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImxpbnV4IikpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBwbGF0Zm9ybShBU0NJSUxpdGVyYWwoImxp
bnV4IikpOwogI2VsaWYgT1MoRlJFRUJTRCkKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgiZnJlZWJzZCIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlM
aXRlcmFsKCJmcmVlYnNkIikpOwogI2VsaWYgT1MoT1BFTkJTRCkKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgi
b3BlbmJzZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxh
dGZvcm0oQVNDSUlMaXRlcmFsKCJvcGVuYnNkIikpOwogI2VsaWYgT1MoU09MQVJJUykKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFT
Q0lJTGl0ZXJhbCgic29sYXJpcyIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJzb2xhcmlzIikpOwogI2Vsc2UKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFT
Q0lJTGl0ZXJhbCgidW5rbm93biIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJ1bmtub3duIikpOwogI2VuZGlmCiAgICAg
cmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWNTdGF0ZSwgcGxhdGZvcm0pOwogfQpAQCAtNzUs
MTEgKzc1LDExIEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4
ZWNTdGF0ZSogZXhlY1N0YXRlKQogSlNWYWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cG9y
dChFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQTEFURk9STShHVEspCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJh
bCgiZ3RrIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBwb3J0
KEFTQ0lJTGl0ZXJhbCgiZ3RrIikpOwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwo
ImVmbCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcG9ydChB
U0NJSUxpdGVyYWwoImVmbCIpKTsKICNlbHNlCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJhbCgidW5rbm93biIpKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcG9ydChBU0NJSUxpdGVyYWwo
InVua25vd24iKSk7CiAjZW5kaWYKICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlY1N0
YXRlLCBwb3J0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSW50ZXJuYWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFs
Lm1tCmluZGV4IGJiM2ZjNjlhMmQ3ZmQ2YTNjYjdmMzc5ZTUyZjg3Nzc0NzY4Yzg3NjcuLmUxNTc4
YjAwN2IyNDM4MDY4NTdkZmU0YjdiODM0ZDQ2ZWZkMDcyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgTlNN
YXBUYWJsZSogRE9NV3JhcHBlckNhY2hlOwogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9D
Swogc3RhdGljIE11dGV4JiB3cmFwcGVyQ2FjaGVMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHdyYXBwZXJDYWNoZU11dGV4LCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiB3cmFwcGVyQ2FjaGVNdXRleCgpOwogICAgIHJldHVy
biB3cmFwcGVyQ2FjaGVNdXRleDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oCmluZGV4IGU2ODAyZmZlZDM1OTQ3NTA0NDQ2ZTI3ZGUyOWViZDFkMjYzM2Y0NTIuLjhiOTRi
YzRlZTVjZTZmN2Q3MDQyOTIxNDhkYTc1ZTE5ZDBlYWQxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmgKQEAgLTgzLDggKzgzLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0QWN0aXZlRE9N
T2JqZWN0KikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0QWN0
aXZlRE9NT2JqZWN0T3duZXIsIGpzVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCAoKSk7Ci0gICAg
cmV0dXJuICZqc1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI+IGpzVGVzdEFjdGl2ZURPTU9iamVjdE93
bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RBY3RpdmVET01PYmplY3RPd25lci5nZXQoKTsKIH0K
IAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRl
c3RBY3RpdmVET01PYmplY3QqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRl
eCA4MTMxZDMxZGE4ZGNmMGFiYTczMmU0MzNkOWMzMDBmNDZhNzlhZmEwLi5mYmE2YWM4N2Q0NTk5
YmNjYTgxNTkyMzEzYWJjYTc5MWI1NmIwNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuaApAQCAtODcsOCArODcsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5k
bGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RDdXN0b21OYW1lZEdl
dHRlciopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyT3duZXIsIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIsICgpKTsKLSAg
ICByZXR1cm4gJmpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI+IGpzVGVzdEN1c3RvbU5hbWVk
R2V0dGVyT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIu
Z2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVj
dG9yLmgKaW5kZXggZjIwZTViZTA5MWMyYWU5Y2JkN2QyZTI4ZjZhYWY1MjllOGU0ZDA2Yy4uYjNj
NmU5MTJjNzQ4YTRmZWRjYzdmMzM0YWNlY2U2MDk3ZTE4OWJhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oCkBAIC04Myw4ICs4Myw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEV2ZW50
Q29uc3RydWN0b3IqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rl
c3RFdmVudENvbnN0cnVjdG9yT3duZXIsIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lciwgKCkp
OwotICAgIHJldHVybiAmanNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXI+IGpzVGVzdEV2ZW50Q29u
c3RydWN0b3JPd25lcigpOworICAgIHJldHVybiAmanNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVy
LmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAppbmRl
eCA4MmFhNWM2OWQ5MWViMDg5MWQyZDQyZTU4YzI5MTVkMDAxOGJiNTliLi5mYjZhY2M4MDQ3MmRh
YzYyMTUyMmRhNjI4YWY3NWJiMzM4MmFkNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaApAQCAt
OTEsOCArOTEsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3Jh
cHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RFdmVudFRhcmdldCopCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV2ZW50VGFyZ2V0T3duZXIsIGpzVGVz
dEV2ZW50VGFyZ2V0T3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdEV2ZW50VGFyZ2V0T3du
ZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEV2ZW50VGFyZ2V0T3duZXI+IGpz
VGVzdEV2ZW50VGFyZ2V0T3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdEV2ZW50VGFyZ2V0T3du
ZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29y
bGQmIHdvcmxkLCBUZXN0RXZlbnRUYXJnZXQqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCmluZGV4IGMwYTgz
M2Q5YTE5YzY3N2MxZWQ1MTE4ZjAwZWNjNzk3ODRiOTBlY2EuLjYyNDE3NGMxM2ZjN2MyNDEwNzFj
NWQzOWI2NjdkMDVkYWRhMWJmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKQEAgLTg0LDggKzg0LDgg
QEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihE
T01XcmFwcGVyV29ybGQmLCBUZXN0RXhjZXB0aW9uKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoSlNUZXN0RXhjZXB0aW9uT3duZXIsIGpzVGVzdEV4Y2VwdGlvbk93bmVy
LCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RFeGNlcHRpb25Pd25lcjsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SlNUZXN0RXhjZXB0aW9uT3duZXI+IGpzVGVzdEV4Y2VwdGlvbk93bmVyKCk7
CisgICAgcmV0dXJuICZqc1Rlc3RFeGNlcHRpb25Pd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFeGNlcHRpb24q
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKaW5kZXggNTNhZWRkNmYyMGI4
MmViN2Y0NzhlNzYzNDlhZDE5NDNiNzdlOTk4Yi4uOTI2YzIyODk2ZTZiZGY3YTA3ZWMzYmI3OTQ1
ODY3ZjE5ODYwMmVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCkBA
IC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3
cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlT3duZXIsIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lciwgKCkpOwotICAgIHJl
dHVybiAmanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXI+IGpzVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVPd25lcigpOworICAgIHJldHVybiAmanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93
bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmlu
ZGV4IGU3ODlmZTRiZTkxY2Q3MDQxZDc5Yjc5MmIyYWIyNGU4MThiMjYyOGEuLmI5YzdiMmI4MWE4
ODQ0NWFjN2FkYjZkMzEwYWM4MTlhYWNjNzFmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTEx
MCw4ICsxMTAsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3Jh
cHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RJbnRlcmZhY2UqKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RJbnRlcmZhY2VPd25lciwganNUZXN0SW50
ZXJmYWNlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdEludGVyZmFjZU93bmVyOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RJbnRlcmZhY2VPd25lcj4ganNUZXN0SW50ZXJm
YWNlT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdEludGVyZmFjZU93bmVyLmdldCgpOwogfQog
CiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVz
dEludGVyZmFjZSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApp
bmRleCAyMTZkYTg5ZGFkYzM4YWViMzkwZTRjZWQxZTQ5MzE1YjQ5ZjY0MzhkLi4xNTNiNmZkZTc1
NWJiM2Q4NTI1OGEwNjg5MWVhOTMzMzdjZTAwMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogCiBpbmxpbmUg
SlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lciwganNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lck93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyT3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJPd25lcj4ganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyKCk7
CisgICAgcmV0dXJuICZqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIuZ2V0KCk7CiB9
CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aAppbmRleCBhZjcyMzVhMzYwYzI3NmFlYWNhZTZjNjFkN2VjNzU1MzI1ZDU0MWY5Li5mZWRjZTc2
NDEzMjczYTUyMmZlMTY0NWYwNTNkOTk0YmIzYTU4MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmgKQEAgLTgyLDggKzgyLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0TmFtZWRDb25z
dHJ1Y3RvciopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JPd25lciwganNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyLCAoKSk7Ci0g
ICAgcmV0dXJuICZqc1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lcj4ganNUZXN0TmFtZWRDb25zdHJ1
Y3Rvck93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIuZ2V0
KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdv
cmxkLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
aAppbmRleCAzNTZlYmMzY2VhNmJjYjNiMTQ2YjRkYmI3ZTJhOTRjZWUwNTRmMDY4Li5mMGNhYTA0
OWQzOThiY2UyZTg4ODYzOWFjYTE1OWRlOWY4ODZhZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmgKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdE5v
bmRldGVybWluaXN0aWNPd25lciwganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY093bmVyLCAoKSk7Ci0g
ICAgcmV0dXJuICZqc1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXI7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEpTVGVzdE5vbmRldGVybWluaXN0aWNPd25lcj4ganNUZXN0Tm9uZGV0ZXJtaW5p
c3RpY093bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXIuZ2V0
KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdv
cmxkLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggNzFmZWNiYjhiNjNiMDNiOTA3
NjY1MjdmNjZkMjFkOWU1YTc0ZjIyOC4uMTIxOWQ2MjFmNDRlZGM0MzAwMzYxYjVhYzNkOTVlNGU4
MWNiYTllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtOTYsOCArOTYsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6
OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RPYmoq
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPYmpPd25lciwg
anNUZXN0T2JqT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdE9iak93bmVyOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RPYmpPd25lcj4ganNUZXN0T2JqT3duZXIoKTsKKyAg
ICByZXR1cm4gJmpzVGVzdE9iak93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBl
ckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE9iaiopCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCBkNjg2MWI3OTQ2Mjc5NGM3ZjI2NTQ5
ZTkxYTY1YjExOGExYmFkMzAyLi44N2NiMGJiMjU2NWY4OGRiOTdmM2EwYjM2ZWQ4YjM1NzVjYzBm
ODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKQEAgLTgx
LDggKzgxLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBw
ZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNPd25lciwganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyLCAoKSk7Ci0g
ICAgcmV0dXJuICZqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lcj4ganNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29u
dGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyop
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKaW5kZXggMTFhZjY0MGJhOTRiNjg3NjhlY2U2MmE0YWVkMTk3Y2RhZmVkNDE4Ny4uYzVlOWEz
M2I3YjFkYWEwMTVlMTU3OGQ4MDYzOGU5NjFjYzZkZjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtODgsOCArODgsOCBA
QCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERP
TVdyYXBwZXJXb3JsZCYsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VPd25lciwganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
T3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VPd25lcj4ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZU93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSopCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5oCmluZGV4IDZjYTY2M2MyYjVmOWQxOTYzY2M3ZWUxNjAzYmUwYjljNmQyNjIz
OWYuLjk2YTA0ZDlmMDMzYzQzNjNmNmMwOGFiOGZlNGJlZDIyYzkwNTNiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5oCkBAIC04Myw4ICs4Myw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdFR5cGVkZWZzKikKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0VHlwZWRlZnNPd25lciwg
anNUZXN0VHlwZWRlZnNPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0VHlwZWRlZnNPd25l
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0VHlwZWRlZnNPd25lcj4ganNUZXN0
VHlwZWRlZnNPd25lcigpOworICAgIHJldHVybiAmanNUZXN0VHlwZWRlZnNPd25lci5nZXQoKTsK
IH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3RUeXBlZGVmcyopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmluZGV4IDYzNTAyNzdkYjlhZTI3NmEwNmVlNDRjOGU4
ZjgwMWMxMjFlZWQ4Y2EuLmMxNmUyMDVmNmZmMmE1Y2E5ZDFkNzVmZGU0MzEyZDAxNmM5ZDljZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0
dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U2F0dHJpYnV0ZS5oCkBAIC04Miw4ICs4Miw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgYXR0cmlidXRlKikK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNhdHRyaWJ1dGVPd25lciwg
anNhdHRyaWJ1dGVPd25lciwgKCkpOwotICAgIHJldHVybiAmanNhdHRyaWJ1dGVPd25lcjsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNhdHRyaWJ1dGVPd25lcj4ganNhdHRyaWJ1dGVPd25l
cigpOworICAgIHJldHVybiAmanNhdHRyaWJ1dGVPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGF0dHJpYnV0ZSopCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFk
b25seS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuaAppbmRleCAzZTJkOGE2ZWFlMWI1ZmVlOTdkNjQxYTRiNWMxNDUxMGNlNjUwOTA0Li4yYmQy
MjM2NTBhYzI3MmJhOGE4YmRkMWYxM2EwOGIwNDJhZjdlMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKQEAgLTgxLDgg
KzgxLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJP
d25lcihET01XcmFwcGVyV29ybGQmLCByZWFkb25seSopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEpTcmVhZG9ubHlPd25lciwganNyZWFkb25seU93bmVyLCAoKSk7Ci0g
ICAgcmV0dXJuICZqc3JlYWRvbmx5T3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpT
cmVhZG9ubHlPd25lcj4ganNyZWFkb25seU93bmVyKCk7CisgICAgcmV0dXJuICZqc3JlYWRvbmx5
T3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCByZWFkb25seSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
Y3BwCmluZGV4IDZlYjFlZmZiMmJhZWRhYTI4OGVhNWJjYzJmZWEwYjViOGE2YWNjMGUuLmUyMzZk
MzhiOGI5ZjBhYzRhOWUyNWI4MjI3MGY2NjMwZDU4OTJmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7
CiAKIHN0YXRpYyBTdHJpbmcmIGdsb2JhbEV4Y2VwdGlvblN0cmluZygpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3RyLCAoKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZXhjZXB0aW9uU3RyKCk7CiAgICAgcmV0dXJu
IGV4Y2VwdGlvblN0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApp
bmRleCBmNzgxNWVmNWNlMGRkMzQ5NjVhMmNiNjY4ODk4ODE3NGNmNjRkYjk4Li4xNDdhZWE5YzEz
YzA0MTkxMDBkNzg1ODAzZWVkMDU2YWVlZDIwY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcApAQCAtNjE5LDcgKzYxOSw3IEBAIGJvb2wgQ1NTRm9udFNlbGVjdG9yOjpy
ZXNvbHZlc0ZhbWlseUZvcihjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKSBjb25z
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKG1fZm9udEZhY2VzLmNvbnRhaW5z
KGZhbWlseU5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYmtpdFByZWZpeCwgKCItd2Via2l0LSIp
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd2Via2l0UHJlZml4KCIt
d2Via2l0LSIpOwogICAgICAgICBpZiAoZmFtaWx5TmFtZS5zdGFydHNXaXRoKHdlYmtpdFByZWZp
eCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcAppbmRleCA5NDQ1MDg2M2YxYjkzYWM2YTczNTg5NmIyY2E5MmIxZmZiZGVhNGFm
Li44MmQxMDgxM2NkNjQzYjRjZmJiMGI4ZmMyYzQ1MTE4ZGFjYzI0MTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmNwcApAQCAtMjkzLDExICsyOTMsMTEgQEAgc3RhdGljIHZvaWQgYWRkUmVzb2x1
dGlvbldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3Ry
aW4KICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVCh2YWx1ZSk7CiAKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVF1ZXJ5TWVzc2FnZSwgKEFT
Q0lJTGl0ZXJhbCgiQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJyVyZXBs
YWNlbWVudFVuaXRzJScsIGFzIGluIENTUyAnJXJlcGxhY2VtZW50VW5pdHMlJyBtZWFucyBkb3Rz
LXBlci1DU1MtJWxlbmd0aFVuaXQlLCBub3QgZG90cy1wZXItcGh5c2ljYWwtJWxlbmd0aFVuaXQl
LCBzbyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJyVyZXBsYWNlbWVudFVuaXRz
JScgb2YgYSBzY3JlZW4uIEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246ICIpKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQSSwgKEFTQ0lJ
TGl0ZXJhbCgiZHBpIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBtZWRpYVZhbHVlRFBDTSwgKEFTQ0lJTGl0ZXJhbCgiZHBjbSIpKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVuZ3RoVW5pdEluY2gsIChBU0NJSUxp
dGVyYWwoImluY2giKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGxlbmd0aFVuaXRDZW50aW1ldGVyLCAoQVNDSUlMaXRlcmFsKCJjZW50aW1ldGVyIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBtZWRpYVF1ZXJ5TWVzc2FnZShBU0NJ
SUxpdGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFj
ZW1lbnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1w
ZXItQ1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwg
c28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUn
IG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbWVkaWFWYWx1ZURQSShBU0NJSUxpdGVyYWwoImRwaSIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBtZWRpYVZhbHVlRFBDTShBU0NJ
SUxpdGVyYWwoImRwY20iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbGVu
Z3RoVW5pdEluY2goQVNDSUlMaXRlcmFsKCJpbmNoIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGxlbmd0aFVuaXRDZW50aW1ldGVyKEFTQ0lJTGl0ZXJhbCgiY2VudGltZXRl
ciIpKTsKIAogICAgIFN0cmluZyBtZXNzYWdlOwogICAgIGlmICh2YWx1ZS0+aXNEb3RzUGVySW5j
aCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCBkMDU4
ZTZkZWE0MDdiN2M5N2Q0YzNlYzc4MmIwMzQzMWUzZDZmMzZhLi5lNjNlNWM5ZmNlNTk2OGM2MTg1
MDE2MDZiMGIxMjlkMWVhMjk0NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpw
YXJzZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAg
ICAgfQogICAgIGlmIChtX3BhcnNlckNvbnRleHQubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgJiYg
aXNTdHJpY3RQYXJzZXJNb2RlKG1fcGFyc2VyQ29udGV4dC5tb2RlKSkgewogICAgICAgICAvLyBX
b3JrIGFyb3VuZCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MzUw
Pi4KLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsIChBU0NJSUxpdGVyYWwoIi8qIEtIVE1MIGZp
eCBzdHlsZXNoZWV0ICovXG4vKiB3b3JrIGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXJz
ICovXG4jY29sdW1uLWNvbnRlbnQgeyBtYXJnaW4tbGVmdDogMDsgfVxuXG4iKSkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZWRpYVdpa2lLSFRNTEZpeGVz
U3R5bGVTaGVldChBU0NJSUxpdGVyYWwoIi8qIEtIVE1MIGZpeCBzdHlsZXNoZWV0ICovXG4vKiB3
b3JrIGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXJzICovXG4jY29sdW1uLWNvbnRlbnQg
eyBtYXJnaW4tbGVmdDogMDsgfVxuXG4iKSk7CiAgICAgICAgIC8vIFRoZXJlIGFyZSB0d28gdmFy
aWFudHMgb2YgS0hUTUxGaXhlcy5jc3MuIE9uZSBpcyBlcXVhbCB0byBtZWRpYVdpa2lLSFRNTEZp
eGVzU3R5bGVTaGVldCwKICAgICAgICAgLy8gd2hpbGUgdGhlIG90aGVyIGxhY2tzIHRoZSBzZWNv
bmQgdHJhaWxpbmcgbmV3bGluZS4KICAgICAgICAgaWYgKGJhc2VVUkwoKS5zdHJpbmcoKS5lbmRz
V2l0aCgiL0tIVE1MRml4ZXMuY3NzIikgJiYgIXNoZWV0VGV4dC5pc051bGwoKSAmJiBtZWRpYVdp
a2lLSFRNTEZpeGVzU3R5bGVTaGVldC5zdGFydHNXaXRoKHNoZWV0VGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAppbmRleCA5YjE2YzZiYWM4YWIy
YTlmMzAwMTkxNjBlOGM5ODAwYWE5ODQxNjNlLi4yYTkwYjk4YzA4ZmRkYWRiODQ3MjdjNTNjYTkx
ZTBjMjhmOTkyMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYg
SGFzaE1hcDxDb250YWluZXJOb2RlKiwgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcio+IEFj
Y3VtdWxhdG9yTWFwOwogc3RhdGljIEFjY3VtdWxhdG9yTWFwJiBhY2N1bXVsYXRvck1hcCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFjY3VtdWxhdG9yTWFwLCBtYXAs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QWNjdW11bGF0b3JNYXA+IG1hcCgpOwog
ICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwCmluZGV4IGQ5MjI2MThlOWU1NWRjMjJlZTM0Njg3NmFhM2E0MjhlYTQ5YzZlMWQuLjE1NWY2
MjAxOGMzZTY0OGRhMjkxNjVmNmNkZjNiNTgwYzUwOTE5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgYm9vbCBpc1N1
cHBvcnRlZFNWRzEwRmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYg
dmVyc2lvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFs
aXplZCA9IGZhbHNlOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJl
U2V0LCBzdmdGZWF0dXJlcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGZWF0dXJl
U2V0PiBzdmdGZWF0dXJlcygpOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICNpZiBFTkFCTEUo
RklMVEVSUykgJiYgRU5BQkxFKFNWR19GT05UUykKICAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1
cmVzLCAic3ZnIik7CkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRT
VkcxMUZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24K
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBm
YWxzZTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3Zn
RmVhdHVyZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmVhdHVyZVNldD4gc3Zn
RmVhdHVyZXMoKTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CiAgICAgICAgIC8vIFNhZGx5LCB3
ZSBjYW5ub3QgY2xhaW0gdG8gaW1wbGVtZW50IGFueSBvZiB0aGUgU1ZHIDEuMSBnZW5lcmljIGZl
YXR1cmUgc2V0cwogICAgICAgICAvLyBsYWNrIG9mIEZvbnQgYW5kIEZpbHRlciBzdXBwb3J0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNWI1M2FhMzhhYzk5OTU2Nzg4MGYzM2U2NGFmMzc3
YzgyNzFlNWQxNy4uYTY2MjA1ZTQyYTk2MTAxZDgyODUzOTIzNGM3MmZiODFjZTM5OWE3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTUwLDkgKzExNTAsOSBAQCBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IERvY3VtZW50OjpjcmVhdGVFbGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VV
UkksIGNvbnN0CiAKIFN0cmluZyBEb2N1bWVudDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9hZGluZywgKEFT
Q0lJTGl0ZXJhbCgibG9hZGluZyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgaW50ZXJhY3RpdmUsIChBU0NJSUxpdGVyYWwoImludGVyYWN0aXZl
IikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBj
b21wbGV0ZSwgKEFTQ0lJTGl0ZXJhbCgiY29tcGxldGUiKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBTdHJpbmc+IGxvYWRpbmcoQVNDSUlMaXRlcmFsKCJsb2FkaW5nIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGludGVyYWN0aXZlKEFTQ0lJ
TGl0ZXJhbCgiaW50ZXJhY3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFN0cmluZz4gY29tcGxldGUoQVNDSUlMaXRlcmFsKCJjb21wbGV0ZSIpKTsKIAogICAgIHN3aXRj
aCAobV9yZWFkeVN0YXRlKSB7CiAgICAgY2FzZSBMb2FkaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDg3MTdlYzFmZTlkNGFjZjQzNmNmMTUzMzM2N2ExZjMzOTlhYTVhN2YuLmQ4YzVkYTIy
OTRmY2QyYmE0N2RiNTJkNjU3NzY1MzdjNjFmYWRiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTI1NDYsMjEgKzI1NDYsMjEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJr
aXRSZWdpb25PdmVyc2V0KCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgdW5kZWZpbmVkU3RhdGUsICgidW5kZWZpbmVkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHVuZGVmaW5lZFN0YXRlKCJ1bmRlZmluZWQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoIWRvY3VtZW50KCkuY3NzUmVnaW9uc0Vu
YWJsZWQoKSB8fCAhcmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkKICAgICAgICAgcmV0dXJuIHVu
ZGVmaW5lZFN0YXRlOwogCiAgICAgc3dpdGNoIChyZWdpb25PdmVyc2V0U3RhdGUoKSkgewogICAg
IGNhc2UgUmVnaW9uRml0OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGZpdFN0YXRlLCAoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gZml0U3RhdGUoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICByZXR1cm4gZml0U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uRW1wdHk6IHsK
LSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZW1w
dHlTdGF0ZSwgKCJlbXB0eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZW1wdHlTdGF0ZSgi
ZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0
YXRlLCAoIm92ZXJzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG92ZXJmbG93U3RhdGUo
Im92ZXJzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
cmV0dXJuIG92ZXJmbG93U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCmluZGV4IDA4NTQxYjBiZDdiYTEy
OTZhZjVhYjgzMzkyMGFjMjg1NWYxM2I0YWYuLjViYzQ1NDYxYjM2MmM3YWYyZTUwYTZiZTU5NGIz
ZWQ3ZWZhMWRiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVy
TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmbmRlZiBOREVCVUcKIHN0YXRp
YyBNdXRleCYgYWN0aXZlSXRlcmF0b3JDb3VudE11dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE11dGV4PiBtdXRleCgpOwogICAgIHJldHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5jcHAKaW5kZXggMjY1MTc4Y2Y2ZTNlM2YxMDk3MWEwNGY5ZThmNjU0MTA1
NjMxZDdiZC4uZDA1MjMyZTQzZWQ0NTMwYmZlNDQ2MGNhMDNmMDhlMGU3MjlmZThlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBFdmVudFRh
cmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBk
LCBFdmVudExpc3QKIAogY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciYgRXZlbnRUYXJnZXQ6Omdl
dEV2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChFdmVudExpc3RlbmVyVmVjdG9yLCBlbXB0eVZl
Y3RvciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFdmVudExpc3RlbmVyVmVjdG9y
PiBlbXB0eVZlY3RvcigpOwogCiAgICAgRXZlbnRUYXJnZXREYXRhKiBkID0gZXZlbnRUYXJnZXRE
YXRhKCk7CiAgICAgaWYgKCFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGlu
ZVN0eWxlU2hlZXRPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVl
dE93bmVyLmNwcAppbmRleCA1YzM2Mzg0MmI2OTE0NjU5ZTEzNDBhMzgxNjdhZTdjY2NjNmNmZjJh
Li4xMzNkOWQ1ZjYxODQ2YTgxNDMxM2Y5OWQ3NThiNjM5NGYwZmNhMTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBA
IHZvaWQgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVhclNoZWV0KCkKIAogaW5saW5lIGJvb2wg
aXNWYWxpZENTU0NvbnRlbnRUeXBlKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBjc3NDb250ZW50VHlwZSwgKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIHJldHVybiBlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSA/IGVxdWFsSWdub3Jp
bmdDYXNlKHR5cGUsIGNzc0NvbnRlbnRUeXBlKSA6IHR5cGUgPT0gY3NzQ29udGVudFR5cGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggNzc0NThmOGU2OTY1MzU0
NzZlYmJkODQ3ODE1ZTc3YWNmMzQ0MDUxNS4uYTQ4MmNhNGMyZWI3NmYwZTYwYTY0ZjllYzlhODAw
NmVhMmViNTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAt
MTM4LDEzICsxMzgsMTMgQEAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxNdXRhdGlvbk9ic2VydmVy
Pj4gTXV0YXRpb25PYnNlcnZlclNldDsKIAogc3RhdGljIE11dGF0aW9uT2JzZXJ2ZXJTZXQmIGFj
dGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTXV0YXRpb25PYnNlcnZlclNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE11dGF0aW9uT2JzZXJ2ZXJTZXQ+IGFjdGl2ZU9ic2VydmVycygp
OwogICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnM7CiB9CiAKIHN0YXRpYyBNdXRhdGlvbk9ic2Vy
dmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIHN1c3BlbmRlZE9ic2VydmVy
cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRhdGlvbk9ic2VydmVyU2V0PiBz
dXNwZW5kZWRPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gc3VzcGVuZGVkT2JzZXJ2ZXJzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAppbmRleCA1YTQ3ZmMwMDFjMTVhMjhl
OTU4ZGU2ZjI0NWNiMWU5M2E3MjM4MDcxLi5hOWRkYmY3NDU0Y2YzMWUyZTBkZDY0NjQxMzUyOTZi
OWM1MzFhZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTE0NSwx
OSArMTQ1LDE5IEBAIHByaXZhdGU6CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQ2hpbGRMaXN0UmVj
b3JkOjp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBjaGlsZExpc3QsICgiY2hpbGRMaXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNo
aWxkTGlzdCgiY2hpbGRMaXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdHRyaWJ1
dGVzUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBhdHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gYXR0cmlidXRlcygiYXR0cmlidXRlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBhdHRyaWJ1dGVzOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIENoYXJhY3RlckRhdGFSZWNvcmQ6OnR5cGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNoYXJhY3RlckRhdGEsICgiY2hhcmFjdGVyRGF0
YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBjaGFyYWN0ZXJEYXRhKCJjaGFyYWN0ZXJEYXRhIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXJhY3Rl
ckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBmMTc3Nzc5YjEwN2RlYjY0ZjQ5MDc5YTM4
ZDMzNTgwNjU3OGZhZmUzLi5lNWFlMjUzYzUxN2NlN2M5Njk1ZGQwOTMzMzdiNWJlZTNjMWUxODFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xODUyLDcgKzE4NTIsNyBAQCB0eXBlZGVmIEhhc2hNYXA8
Tm9kZSosIE93blB0cjxFdmVudFRhcmdldERhdGE+PiBFdmVudFRhcmdldERhdGFNYXA7CiAKIHN0
YXRpYyBFdmVudFRhcmdldERhdGFNYXAmIGV2ZW50VGFyZ2V0RGF0YU1hcCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEV2ZW50VGFyZ2V0RGF0YU1hcCwgbWFwLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEV2ZW50VGFyZ2V0RGF0YU1hcD4gbWFwKCk7CiAg
ICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVk
b0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCmluZGV4
IDNiNGE5NzlkZmJmYTFjZDcwZmQwMDI4MTUyZjM1NWY0NjE1NmU0ZTAuLmQ5MjZlNmQ3ZWI4OTIx
ZjM1NjA5MTc5Y2MwOWI4MjY0ZmZiNDk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qc2V1ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVu
dC5jcHAKQEAgLTM3LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IFF1
YWxpZmllZE5hbWUmIHBzZXVkb0VsZW1lbnRUYWdOYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbmFtZSwgKG51bGxBdG9tLCAiPHBzZXVk
bz4iLCBudWxsQXRvbSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1l
PiBuYW1lKG51bGxBdG9tLCAiPHBzZXVkbz4iLCBudWxsQXRvbSk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIFN0cmluZyBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhQ
c2V1ZG9JZCBwc2V1ZG9JZCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBhZnRlciwgKEFTQ0lJTGl0ZXJhbCgiOjphZnRlciIpKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYmVmb3JlLCAoQVNDSUlM
aXRlcmFsKCI6OmJlZm9yZSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gYWZ0ZXIoQVNDSUlMaXRlcmFsKCI6OmFmdGVyIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBTdHJpbmc+IGJlZm9yZShBU0NJSUxpdGVyYWwoIjo6YmVmb3JlIikpOwog
ICAgIHN3aXRjaCAocHNldWRvSWQpIHsKICAgICBjYXNlIEFGVEVSOgogICAgICAgICByZXR1cm4g
YWZ0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggZmQ3OWJkYWFkYTM4
MjUxNzNiODc4YzA4OTg0MjQ4OGM1MzkyMjhjZi4uMDQzN2JmYjU2ODZmZDBjOTYwOTk3MWFkMWI1
YjE5ZGNjNzE5OTg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5h
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtNzQs
NyArNzQsNyBAQCBzdHJ1Y3QgUU5hbWVDb21wb25lbnRzVHJhbnNsYXRvciB7CiAKIHN0YXRpYyBp
bmxpbmUgUU5hbWVTZXQmIHF1YWxpZmllZE5hbWVDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFFOYW1lU2V0LCBuYW1lQ2FjaGUsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UU5hbWVTZXQ+IG5hbWVDYWNoZSgpOwogICAgIHJldHVybiBuYW1lQ2Fj
aGU7CiB9CiAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFF1YWxpZmllZE5hbWU6OmluaXQoKQog
CiBjb25zdCBRdWFsaWZpZWROYW1lJiBudWxsUU5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBudWxsTmFtZSwgKG51bGxBdG9tLCBudWxs
QXRvbSwgbnVsbEF0b20pKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFt
ZT4gbnVsbE5hbWUobnVsbEF0b20sIG51bGxBdG9tLCBudWxsQXRvbSk7CiAgICAgcmV0dXJuIG51
bGxOYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMjA0N2Fl
Mzg5OWM0YWU5ODYyNDE1YzQ5NmU3MzYxNjhkY2UzOTc2Yi4uN2M2YzBiZjQ2YmZlZDI4NTc2ZWRi
ZWEyMTVkMTkxNTI0ZjFlMTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApA
QCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyBib29sIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAKICAgICAvLyBGSVhNRTogVGhpcyBm
dW5jdGlvbiBpcyBub3QgSFRNTDUgY29tcGxpYW50LiBUaGVzZSBiZWxvbmcgaW4gdGhlIE1JTUUg
cmVnaXN0cnkgYXMgInRleHQvamF2YXNjcmlwdDx2ZXJzaW9uPiIgZW50cmllcy4KICAgICB0eXBl
ZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IExhbmd1YWdlU2V0OwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMYW5ndWFnZVNldCwgbGFuZ3VhZ2VzLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExhbmd1YWdlU2V0PiBsYW5ndWFnZXMoKTsKICAg
ICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBsYW5ndWFnZXMuYWRkKCJqYXZh
c2NyaXB0Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQiKTsKQEAgLTM0Niw3
ICszNDYsNyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSkKICAgICAgICAgJiYgIW1fY2FjaGVkU2NyaXB0LT5wYXNzZXNBY2Nlc3ND
b250cm9sQ2hlY2sobV9lbGVtZW50LmRvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKSkpIHsKIAog
ICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3Nz
LW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNv
bnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpOwogICAgICAgICBt
X2VsZW1lbnQuZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGUzNTdhNTNkOTRkMDhh
MjE2ZmExYTA3NThiZDliYWZlNGJiYmYwMzUuLmVkMDdlZWQ2MzAwYzExZDU5ZjgzN2NiZjZjNzZh
ZDM4ZTg5ZTgxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTcwLDcg
KzcwLDcgQEAgc3RhdGljIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUtleSYgYSwgY29uc3QgUHJlc2VudGF0aW8KIAogc3RhdGljIFByZXNlbnRhdGlvbkF0
dHJpYnV0ZUNhY2hlJiBwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlLCBjYWNo
ZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQcmVzZW50YXRpb25BdHRyaWJ1dGVD
YWNoZT4gY2FjaGUoKTsKICAgICByZXR1cm4gY2FjaGU7CiB9CiAKQEAgLTExNSw3ICsxMTUsNyBA
QCBwcml2YXRlOgogCiBzdGF0aWMgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyJiBw
cmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIsIGNsZWFu
ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHJlc2VudGF0aW9uQXR0cmlidXRl
Q2FjaGVDbGVhbmVyPiBjbGVhbmVyKCk7CiAgICAgcmV0dXJuIGNsZWFuZXI7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggZjA3ZDU0MWUw
MzQ5NTZhMzk4ZjI2ZGYzOWZlMzkyOWJhY2U4OTIzYS4uOTIyNzIwYjA4MGRhOTI1ZjNkNTQ5Y2Fl
YmI1NmE0NDk2NjIzMjMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGludCB0b0lkZW50aWZpZXIoUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUpCiAKIHN0YXRpYyBTdHJpbmcmIHN0eWxlU3BhbkNsYXNz
U3RyaW5nKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBz
dHlsZVNwYW5DbGFzc1N0cmluZywgKChBcHBsZVN0eWxlU3BhbkNsYXNzKSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHN0eWxlU3BhbkNsYXNzU3RyaW5nKChBcHBsZVN0eWxl
U3BhbkNsYXNzKSk7CiAgICAgcmV0dXJuIHN0eWxlU3BhbkNsYXNzU3RyaW5nOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDE3MmI4NWMz
Yzc2MTZjZjQ3MmMxNTEyMzc5NTQyYjVkMWI3YTcxMWUuLjg2OTc5ZjhlNDc1NWVhODhhYjY2MDA3
ZDMzZTQ3YTU0MTU3MzZiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgYm9vbCBNYXJrdXBBY2N1bXVsYXRvcjo6
c2hvdWxkQWRkTmFtZXNwYWNlRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIGlm
IChwcmVmaXguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gIWVsZW1lbnQuaGFzQXR0cmlidXRl
KHhtbG5zQXRvbSk7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCB4bWxuc1dpdGhDb2xvbiwgKEFTQ0lJTGl0ZXJhbCgieG1sbnM6IikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB4bWxuc1dpdGhDb2xvbihBU0NJSUxpdGVyYWwoInhtbG5z
OiIpKTsKICAgICByZXR1cm4gIWVsZW1lbnQuaGFzQXR0cmlidXRlKHhtbG5zV2l0aENvbG9uICsg
cHJlZml4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcAppbmRleCA2YzA2MmI1NWE2MzY3ZmM5OTBkMDM4NTRhYjY5OTliODk4
ZjMwODgxLi5hOWUwYzgzMmQ0MTZiNWIzNGEzNmM3YjJjOWM1ODYxOTc2Mzg2MzU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApA
QCAtMTAyLDE0ICsxMDIsMTQgQEAgcHJpdmF0ZToKIAogc3RhdGljIGJvb2wgaXNJbnRlcmNoYW5n
ZU5ld2xpbmVOb2RlKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lQ2xhc3NTdHJpbmcsIChBcHBs
ZUludGVyY2hhbmdlTmV3bGluZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nKEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lKTsK
ICAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGJyVGFnKSAmJiAKICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCAqPihub2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNz
QXR0cikgPT0gaW50ZXJjaGFuZ2VOZXdsaW5lQ2xhc3NTdHJpbmc7CiB9CiAKIHN0YXRpYyBib29s
IGlzSW50ZXJjaGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4oY29uc3QgTm9kZSAqbm9kZSkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb252ZXJ0ZWRTcGFjZVNw
YW5DbGFzc1N0cmluZywgKEFwcGxlQ29udmVydGVkU3BhY2UpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBjb252ZXJ0ZWRTcGFjZVNwYW5DbGFzc1N0cmluZyhBcHBsZUNvbnZl
cnRlZFNwYWNlKTsKICAgICByZXR1cm4gbm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIAogICAgICAg
ICAgICBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudCAqPihub2RlKS0+Z2V0QXR0cmlidXRl
KGNsYXNzQXR0cikgPT0gY29udmVydGVkU3BhY2VTcGFuQ2xhc3NTdHJpbmc7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCmluZGV4IDU1NWQ3ZWVjMDcxOWJmZTAzODQxM2I5
MWIxNDExMDFhYmEwN2E0ZWMuLmQ1N2ViZTdiYWI4YzljYTkxYjY5YjViMDZkZThmMGYyNDRjOTA2
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCkBAIC0zODQsNyArMzg0
LDcgQEAgYm9vbCBpc1RhYmxlU3RydWN0dXJlTm9kZShjb25zdCBOb2RlICpub2RlKQogCiBjb25z
dCBTdHJpbmcmIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcsICgmbm9CcmVh
a1NwYWNlLCAxKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbm9uQnJlYWtp
bmdTcGFjZVN0cmluZygmbm9CcmVha1NwYWNlLCAxKTsKICAgICByZXR1cm4gbm9uQnJlYWtpbmdT
cGFjZVN0cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDdkNmE3ZjZi
ZGJlMGFlNTU1Y2E5NDViZDUyNTExYzJhMjc4NzIwZmIuLjcxNWUwZThlZGYyZTM5M2IzMjNlYzA5
YjE5MzllYjM2MTIwZTdjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTIxMiw4
ICsyMTIsOCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVP
cGVuVGFnKFN0cmluZ0J1aWxkZXImIG91dCwgU3R5bGVQcgogCiBjb25zdCBTdHJpbmcmIFN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yOjpzdHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2spCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2Q2xvc2Us
IChBU0NJSUxpdGVyYWwoIjwvZGl2PiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuQ2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bh
bj4iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRpdkNsb3Nl
KEFTQ0lJTGl0ZXJhbCgiPC9kaXY+IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBTdHJpbmc+IHN0eWxlU3BhbkNsb3NlKEFTQ0lJTGl0ZXJhbCgiPC9zcGFuPiIpKTsKICAgICBy
ZXR1cm4gaXNCbG9jayA/IGRpdkNsb3NlIDogc3R5bGVTcGFuQ2xvc2U7CiB9CiAKQEAgLTU1OCw3
ICs1NTgsNyBAQCBzdGF0aWMgTm9kZSogaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKGNvbnN0
IFJhbmdlKiByYW5nZSwgRUFubm90YXRlRm9ySW50ZXJjaAogc3RhdGljIFN0cmluZyBjcmVhdGVN
YXJrdXBJbnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29u
c3QgUmFuZ2UmIHVwZGF0ZWRSYW5nZSwgVmVjdG9yPE5vZGUqPiogbm9kZXMsCiAgICAgRUFubm90
YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5s
aW5lcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcykKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBpbnRlcmNoYW5nZU5ld2xpbmVTdHJp
bmcsIChBU0NJSUxpdGVyYWwoIjxiciBjbGFzcz1cIiIgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUg
IlwiPiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gaW50ZXJj
aGFuZ2VOZXdsaW5lU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiPGJyIGNsYXNzPVwiIiBBcHBsZUludGVy
Y2hhbmdlTmV3bGluZSAiXCI+IikpOwogCiAgICAgYm9vbCBjb2xsYXBzZWQgPSB1cGRhdGVkUmFu
Z2UuY29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGlmIChjb2xsYXBzZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCAwMWQzMzBlYjYwNjk0NmY5ZWUxYmUyZWE1NWMyMGVl
NTQ0NjU4NmQzLi5lOTg5ZGMwZTUwMWQwYWJiM2Q5M2U3NDYwMWI4MzkyNGVhZWMwYTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCbG9iVVJMUmVnaXN0
cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgVVJMJiB1cmwpCiAKIFVSTFJlZ2lzdHJ5JiBCbG9iVVJM
UmVnaXN0cnk6OnJlZ2lzdHJ5KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQmxvYlVSTFJlZ2lzdHJ5LCBpbnN0YW5jZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxCbG9iVVJMUmVnaXN0cnk+IGluc3RhbmNlKCk7CiAgICAgcmV0dXJuIGluc3RhbmNlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGM3M2Q5YjA0NjFjYjZmNzg4OGI0ODcxMmU0
ZTQ2MmE0MDdiMGJlMjMuLjBlM2QxZWQwNGM3ZWU0MDQzZjIwZDNiOTEyOWQxNTNjN2ZhOWI4Njgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQq
KQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFs
dWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQt
ZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogCiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVy
LT5zZXRQc2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZGEwN2JlMDQ0N2U1ODM5ZTljNTljMGVmM2Q1Y2Y5YjgyYTBlYTRk
MC4uMDhlNGZlMTFjMjQ5MmY5MjJhYWU5NzcxNTU4OWMwMmJhNzk4YmMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFVwbG9hZEJ1dHRvbkVs
ZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1
ZG9JZCwgKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBwc2V1ZG9JZCgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggNDUxMDBkMWUwNzY0ZWQ2NTUyZjIxN2Uw
ZmE5OGE3NGVmMjMwOTIwZS4uZDdkNDgwZDAwOTRhYjdlNDhlOTIwMTRhMDhjZGM3NzAyNjk2Yjli
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTMzNyw3ICszMzcs
NyBAQCBBdG9taWNTdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjbwogewogICAgIEhUTUxGb3JtRWxlbWVudCogZm9y
bSA9IG93bmVyRm9ybUZvclN0YXRlKGNvbnRyb2wpOwogICAgIGlmICghZm9ybSkgewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmb3JtS2V5Rm9y
Tm9Pd25lciwgKCJObyBvd25lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZm9ybUtleUZv
ck5vT3duZXIoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJldHVybiBmb3JtS2V5Rm9yTm9Pd25lcjsKICAgICB9CiAgICAgRm9ybVRvS2V5
TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fZm9ybVRvS2V5TWFwLmZpbmQoZm9ybSk7CkBAIC0z
OTAsNyArMzkwLDcgQEAgc3RhdGljIFN0cmluZyBmb3JtU3RhdGVTaWduYXR1cmUoKQogICAgIC8v
IEluIHRoZSBsZWdhY3kgdmVyc2lvbiBvZiBzZXJpYWxpemVkIHN0YXRlLCB0aGUgZmlyc3QgaXRl
bSB3YXMgYSBuYW1lCiAgICAgLy8gYXR0cmlidXRlIHZhbHVlIG9mIGEgZm9ybSBjb250cm9sLiBU
aGUgZm9sbG93aW5nIHN0cmluZyBsaXRlcmFsIHNob3VsZAogICAgIC8vIGNvbnRhaW4gc29tZSBj
aGFyYWN0ZXJzIHdoaWNoIGFyZSByYXJlbHkgdXNlZCBmb3IgbmFtZSBhdHRyaWJ1dGUgdmFsdWVz
LgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNpZ25hdHVyZSwg
KEFTQ0lJTGl0ZXJhbCgiXG5ccj8lIFdlYktpdCBzZXJpYWxpemVkIGZvcm0gc3RhdGUgdmVyc2lv
biA4IFxuXHI9JiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2lnbmF0
dXJlKEFTQ0lJTGl0ZXJhbCgiXG5ccj8lIFdlYktpdCBzZXJpYWxpemVkIGZvcm0gc3RhdGUgdmVy
c2lvbiA4IFxuXHI9JiIpKTsKICAgICByZXR1cm4gc2lnbmF0dXJlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGMyOTQ5YTIwOGYwNWU1YTNkNWRi
NzZmZGE2NjZmYWQ4ZTZhMDcyMDAuLmU5MDQ3OTAwODA1NTQ2ZjMzZTkyNTg5OTk1ZmViYjYxODAx
MjhmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC02
MTIsNyArNjEyLDcgQEAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEhUTUxBbmNob3JFbGVtZW50Kiwg
UmVmUHRyPEVsZW1lbnQ+PiBSb290RWRpdGFibGVFbGVtZW50TWEKIAogc3RhdGljIFJvb3RFZGl0
YWJsZUVsZW1lbnRNYXAmIHJvb3RFZGl0YWJsZUVsZW1lbnRNYXAoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChSb290RWRpdGFibGVFbGVtZW50TWFwLCBtYXAsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Um9vdEVkaXRhYmxlRWxlbWVudE1hcD4gbWFwKCk7
CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcAppbmRleCA5NDdlNzFlOTA3OGY4YjI1OThkNGU5YzQyYWNjNjg4ZGIyYTMxYmZiLi40
YTYzMDJiM2JmMjNjMmFlYTA0MzQzOTg3YzJjYjExNzdjNzBkMDc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAtNjYsMTUgKzY2LDE1IEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgSFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1
Ym1pdCwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzdWJt
aXQoInN1Ym1pdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICAgICAgcmV0dXJuIHN1Ym1pdDsKICAgICAgICAgfQogICAgICAgICBjYXNlIEJVVFRPTjogewot
ICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgYnV0dG9uLCAoImJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IGJ1dHRvbigiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgICAgICByZXR1cm4gYnV0dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVT
RVQ6IHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHJlc2V0LCAoInJlc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21p
Y1N0cmluZz4gcmVzZXQoInJlc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzZXQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggMjNkMjE5Mzk4MGJjZTZk
NTk1YjM0YmE5ZjY2MDQ0OTUxNjc3NjUzOC4uNzUwZGM5Njk0OTRlOTczMTdkYzk0NjdlYzgwYzhj
NGNmMDg0OWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgic3VtbWFy
eTpmaXJzdC1vZi10eXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNlbGVjdG9yKCJzdW1tYXJ5
OmZpcnN0LW9mLXR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gc2VsZWN0b3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcAppbmRleCA2ODFlNTUzMDQzMjZjYTY4Nzk2MGY0ZWEwYTNjMTAzYzQxNTk3
ZmRhLi41NzY1MWNhMzM1ZjAxMzdhNzM2M2IyNDg3ZDg1M2NkYzI2OTFhNWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBA
QCBib29sIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgZmllbGRzZXQsICgiZmllbGRzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
ZmllbGRzZXQoImZpZWxkc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdl
bkVsZW1lbnQuY3BwCmluZGV4IDcxNGJkYjJlMWJkOGNhYjNhOGY1YmUxYmNjNzFjZDE0MzI0N2Jk
ODQuLmUwOTRmNWU0YzBhY2U3YTU3ZjIzMTEzNTI4MzcyNWJkNTEyYjcwYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHByb3Rl
Y3RlZDoKICAgICBLZXlnZW5TZWxlY3RFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAg
ICAgOiBIVE1MU2VsZWN0RWxlbWVudChzZWxlY3RUYWcsIGRvY3VtZW50LCAwKQogICAgIHsKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRv
SWQsICgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBw
c2V1ZG9JZCgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogCkBAIC0x
MTIsNyArMTEyLDcgQEAgYm9vbCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9y
bURhdGFMaXN0JiBlbmNvZGVkX3ZhbHVlcywgYm9vbCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBI
VE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBrZXlnZW4sICgia2V5
Z2VuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGtleWdlbigia2V5Z2VuIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGtleWdlbjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGI4NTExNDVmMDhmNzE4
MjI4NDVhMzhiNTQxNjAzNmE5ZDM2N2E1NTQuLjllYzJlZDY2NmMwNTY3ZGYwYjE0MTM2NDc2ZDNi
NDE0YWNjMWU4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAg
LTU5LDcgKzU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIExpbmtF
dmVudFNlbmRlciYgbGlua0xvYWRFdmVudFNlbmRlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKExpbmtFdmVudFNlbmRlciwgc2hhcmVkTG9hZEV2ZW50U2VuZGVyLCAo
ZXZlbnROYW1lcygpLmxvYWRFdmVudCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMaW5r
RXZlbnRTZW5kZXI+IHNoYXJlZExvYWRFdmVudFNlbmRlcihldmVudE5hbWVzKCkubG9hZEV2ZW50
KTsKICAgICByZXR1cm4gc2hhcmVkTG9hZEV2ZW50U2VuZGVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjYjExNzVhOTAxZGQ3NDIxN2QzN2QzMTJj
NGY5N2E0NjA3MmNjZDYwLi5jZjZjY2Y1OTM1YTY3M2IzMzViNDE4NmE3YzAzNzU5MjJhYjdiNmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5Miw3ICsx
OTIsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdHlwZWRlZiBIYXNoTWFwPERvY3Vt
ZW50KiwgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4+IERvY3VtZW50RWxlbWVudFNldE1hcDsK
IHN0YXRpYyBEb2N1bWVudEVsZW1lbnRTZXRNYXAmIGRvY3VtZW50VG9FbGVtZW50U2V0TWFwKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRG9jdW1lbnRFbGVtZW50U2V0
TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RG9jdW1lbnRFbGVtZW50
U2V0TWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCBmMmJmYjRjZTEzYzQxNjBlMjU4MTA2MjFj
ZGMwZDk1NjZkMDU0NTYzLi4wZWE2OGU2OTFhNTliNjdhOWEwODBjN2E4OTViMDM3MDQ3Zjg5ZjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBvcHRncm91cCwgKCJvcHRncm91cCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gb3B0Z3JvdXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggY2UzODFiNjA4NDM1YWJkYTkzZmVmZWJmYjAyMjM5
ZDY2MTkyMmNjYS4uNzBmMWFhOTkzZjBlMjdkMTM2ZTJhYzU4OWFkMmZlODA2YzllOGMxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4gSFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MT3V0
cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvdXRwdXQsICgib3V0cHV0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG91dHB1dCgib3V0cHV0IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG91dHB1dDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZTYzMWFl
MmIxODMxOWQzOGRiOGMwYmYxNjc1ZTU3NjM0NjBjNjZiNi4uNmZhMzc0OGM0YjhlNjlkM2E0ZGVi
ZWViMDAyMjRmZDk3NDhkZmQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBjb25zdCBhdXRvIHJl
bW92ZVNuYXBzaG90VGltZXJEZWxheSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgeyAxNTAw
IH07CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgdGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBt
aW1lVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWltZVR5cGVU
b0xvY2FsaXplZFN0cmluZ01hcCwgbWltZVR5cGVUb0xhYmVsVGl0bGVNYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01hcD4gbWltZVR5
cGVUb0xhYmVsVGl0bGVNYXAoKTsKICAgICBTdHJpbmcgdGl0bGVUZXh0ID0gbWltZVR5cGVUb0xh
YmVsVGl0bGVNYXAuZ2V0KG1pbWVUeXBlKTsKICAgICBpZiAoIXRpdGxlVGV4dC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiB0aXRsZVRleHQ7CkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBjb25z
dCBTdHJpbmcgdGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBtaW1lVHlwZSkKIAogc3RhdGlj
IGNvbnN0IFN0cmluZyBzdWJ0aXRsZVRleHQoUGFnZSogcGFnZSwgU3RyaW5nIG1pbWVUeXBlKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNaW1lVHlwZVRvTG9jYWxpemVk
U3RyaW5nTWFwLCBtaW1lVHlwZVRvTGFiZWxTdWJ0aXRsZU1hcCwgKCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxNaW1lVHlwZVRvTG9jYWxpemVkU3RyaW5nTWFwPiBtaW1lVHlwZVRvTGFi
ZWxTdWJ0aXRsZU1hcCgpOwogICAgIFN0cmluZyBzdWJ0aXRsZVRleHQgPSBtaW1lVHlwZVRvTGFi
ZWxTdWJ0aXRsZU1hcC5nZXQobWltZVR5cGUpOwogICAgIGlmICghc3VidGl0bGVUZXh0LmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHN1YnRpdGxlVGV4dDsKQEAgLTM5Miw3ICszOTIsNyBAQCB2
b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hh
ZG93Um9vdCogcm9vdCkKIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFw
c2hvdE92ZXJsYXkoTm9kZSogbm9kZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzZWxlY3RvciwgKCIuc25hcHNob3Qtb3ZlcmxheSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBzZWxlY3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWZQdHI8RWxlbWVudD4gc25hcHNob3RM
YWJlbCA9IGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9y
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByZXR1cm4gbm9kZSAmJiBzbmFwc2hvdExhYmVs
ICYmIChub2RlID09IHNuYXBzaG90TGFiZWwuZ2V0KCkgfHwgbm9kZS0+aXNEZXNjZW5kYW50T2Yo
c25hcHNob3RMYWJlbC5nZXQoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCA4NjdkZDI2ZmRjY2Q0YzJjNTZiZTgxZDlmNjUyMTEyZmQwOTRkNjBi
Li5lNzliNzM3MmM4M2I4N2M2MDhjMDA1OTM1MWQzM2U1NTJmYTBmZmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtOTYsOCArOTYsOCBAQCB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdl
KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5
cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHNlbGVjdE11bHRpcGxlLCAoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RPbmUsICgic2VsZWN0LW9uZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzZWxlY3RNdWx0aXBsZSgic2VsZWN0LW11bHRpcGxl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc2VsZWN0T25lKCJzZWxlY3Qtb25lIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1fbXVsdGlwbGUg
PyBzZWxlY3RNdWx0aXBsZSA6IHNlbGVjdE9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN0eWxlRWxlbWVudC5jcHAKaW5kZXggYzU5ZWYxNjg1ZDZiYmM2ZTVjOTdlYjdjYjFhNzg1MWUy
NzcxN2E2OS4uZDNmZTAwODg0ZDAxYTBiOTNlYWMwM2E4YjI5Y2JiYTY1YTNlMzc5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBTdHlsZUV2ZW50U2VuZGVyJiBzdHls
ZUxvYWRFdmVudFNlbmRlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0eWxlRXZlbnRTZW5kZXIsIHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFtZXMoKS5s
b2FkRXZlbnQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3R5bGVFdmVudFNlbmRlcj4g
c2hhcmVkTG9hZEV2ZW50U2VuZGVyKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpOwogICAgIHJldHVy
biBzaGFyZWRMb2FkRXZlbnRTZW5kZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGY0NmI5Y2RlZjc2OGRhMWMxMDNhZjZjNmQ1NDUzMjRm
OTU4MzJlNDIuLjEyNmUxMjk0NjQ5YWU5MjhlYWIyOTQxOWE3ODc4ZmY5MjEwMDEzNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9v
dChTaGFkb3dSb290KiByb290KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdGV4dGFyZWEsICgidGV4dGFyZWEiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdGV4dGFyZWEoInRleHRhcmVhIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRleHRhcmVhOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CmluZGV4IDVlZWEyMWRhZTk3ZDkwYmY2NTBiNWFkNjFjMjBlODcyODI0NmIzZjAuLmQ2NGVlMjU0
ZDdmMTFmYjlmZDM2NDFjNWMzZDVmYmY0ZmE2Yzc2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zNzUsOSArMzc1LDkg
QEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uRW5kKCkg
Y29uc3QKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uU3RyaW5nKFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9uZSwgKCJub25lIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZvcndhcmQsICgiZm9yd2FyZCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBiYWNrd2FyZCwgKCJiYWNrd2FyZCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBub25lKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21p
Y1N0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGJh
Y2t3YXJkKCJiYWNrd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIFNlbGVjdGlvbkhhc05vRGlyZWN0
aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCBkMGUyNWJlMTkw
N2UzYzkyZWFmZTM2ODM2ZDg4MWQ2MmJmOGNiNTA4Li5lNDg4NDFiODJjMjU4OGE5YTIxZTU1OGRm
OWZkMzhiYjZlNDk5M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApA
QCAtNjQsOCArNjQsOCBAQCBib29sIEltYWdlSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShGb3Jt
RGF0YUxpc3QmIGVuY29kaW5nLCBib29sKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3RYU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCIueCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgZG90WVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiLnkiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRvdFhTdHJpbmcoQVNDSUlMaXRlcmFsKCIueCIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkb3RZU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiLnkiKSk7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lICsgZG90WFN0cmluZywg
bV9jbGlja0xvY2F0aW9uLngoKSk7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lICsgZG90
WVN0cmluZywgbV9jbGlja0xvY2F0aW9uLnkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGVOYW1lcy5jcHAKaW5kZXggYWMwODk2YTA2YTQ3ZTFhODgwOGNkODlmZGY2YTNjNDMzNjAwM2Qz
Mi4uNDg5MDNmY2MwYmQwNTM0YmNlZjEyZTE3MTAwNDNlZmU3ZDA5Njk0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKQEAgLTMxLDEzOSArMzEsMTM5IEBAIG5hbWVzcGFj
ZSBJbnB1dFR5cGVOYW1lcyB7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgYnV0dG9uKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJidXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBjaGVja2JveCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJjaGVja2JveCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBuYW1lKCJjaGVja2JveCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGNvbG9yKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImNv
bG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImNvbG9yIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgZGF0ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJkYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImRh
dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBkYXRldGltZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJkYXRldGltZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJkYXRldGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIGRhdGV0aW1lbG9jYWwoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBlbWFp
bCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJlbWFpbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJlbWFpbCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIGZpbGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBuYW1lKCJmaWxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgaGlkZGVuKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImhpZGRl
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBpbWFnZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJpbWFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJp
bWFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIG1vbnRoKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIm1vbnRoIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IG5hbWUoIm1vbnRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgbnVt
YmVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuYW1lLCAoIm51bWJlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJudW1iZXIiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzd29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJwYXNzd29yZCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBuYW1lKCJwYXNzd29yZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHJh
ZGlvKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuYW1lLCAoInJhZGlvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInJhZGlvIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgcmFuZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiByZXNldCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJy
ZXNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJyZXNldCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIHNlYXJjaCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJzZWFyY2giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFt
ZSgic2VhcmNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgc3VibWl0KCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInN1Ym1pdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiB0ZWxlcGhvbmUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWUsICgidGVsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInRl
bCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1l
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHRleHQoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgidGV4dCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBuYW1lKCJ0ZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGltZSgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJ0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInRpbWUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiB1cmwoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWUsICgidXJsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInVy
bCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1l
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHdlZWsoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgid2VlayIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBuYW1lKCJ3ZWVrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9s
bGVyLmNwcAppbmRleCBiM2QyMjhjM2I5ODgwNzc4OTAyNTA3ZjM1NDk3MTI5MzI1Mjk0ZWY1Li5j
MGQ4ZWYwNzFmZmEwMTkxMzFiYjA4MDlhZGQwMDNhMzAzZGIzYjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4OSwxOSBAQCB2b2lkIE1lZGlh
Q29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBwbGF5YmFja1N0YXRlV2FpdGluZygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgd2FpdGluZywgKCJ3YWl0aW5nIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IHdhaXRpbmcoIndhaXRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgcGxheWJhY2tTdGF0ZVBsYXlpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBsYXlpbmcsICgicGxheWluZyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBwbGF5aW5nKCJwbGF5aW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHBsYXliYWNrU3RhdGVFbmRlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gZW5kZWQoImVuZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1N0ZXBSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKaW5kZXgg
YzQ3NzE4YTBjMWYzM2I5NWUzYmYzYTZiMjM1YjUyY2NjNDc4NDhkMC4uMzc0MjliMDAyMmM4NTdj
ZTBkNjY5ZWQyNmZmNmY4MDJkMDBkZTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TdGVwUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcApA
QCAtNjUsMTMgKzY1LDEzIEBAIFN0ZXBSYW5nZTo6U3RlcFJhbmdlKGNvbnN0IERlY2ltYWwmIHN0
ZXBCYXNlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXVtLCBjb25zdCBEZWNpCiBEZWNpbWFsIFN0ZXBS
YW5nZTo6YWNjZXB0YWJsZUVycm9yKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHVzZSBEQkxfTUFOVF9ESUcgaW5zdGVhZCBvZiBGTFRfTUFOVF9ESUcgcmVnYXJkaW5nIHRvIEhU
TUw1IHNwZWNpZmljYXRpb24uCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZGbG9hdE1hbnRpc3NhQml0cywgKERlY2ltYWw6OlBvc2l0
aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBGTFRfTUFOVF9ESUcpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgRGVjaW1hbD4gdHdvUG93ZXJPZkZsb2F0TWFudGlzc2FCaXRzKERlY2lt
YWw6OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBGTFRfTUFOVF9ESUcpOwogICAgIHJldHVy
biBtX3N0ZXBEZXNjcmlwdGlvbi5zdGVwVmFsdWVTaG91bGRCZSA9PSBTdGVwVmFsdWVTaG91bGRC
ZVJlYWwgPyBtX3N0ZXAgLyB0d29Qb3dlck9mRmxvYXRNYW50aXNzYUJpdHMgOiBEZWNpbWFsKDAp
OwogfQogCiBEZWNpbWFsIFN0ZXBSYW5nZTo6YWxpZ25WYWx1ZUZvclN0ZXAoY29uc3QgRGVjaW1h
bCYgY3VycmVudFZhbHVlLCBjb25zdCBEZWNpbWFsJiBuZXdWYWx1ZSkgY29uc3QKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwgdGVuUG93ZXJPZjIx
LCAoRGVjaW1hbDo6UG9zaXRpdmUsIDIxLCAxKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IERlY2ltYWw+IHRlblBvd2VyT2YyMShEZWNpbWFsOjpQb3NpdGl2ZSwgMjEsIDEpOwog
ICAgIGlmIChuZXdWYWx1ZSA+PSB0ZW5Qb3dlck9mMjEpCiAgICAgICAgIHJldHVybiBuZXdWYWx1
ZTsKIApAQCAtMTUwLDcgKzE1MCw3IEBAIGJvb2wgU3RlcFJhbmdlOjpzdGVwTWlzbWF0Y2goY29u
c3QgRGVjaW1hbCYgdmFsdWVGb3JDaGVjaykgY29uc3QKICAgICAvLyBEZWNpbWFsJ3MgZnJhY3Rp
b25hbCBwYXJ0IHNpemUgaXMgREJMX01BTl9ESUctYml0LiBJZiB0aGUgY3VycmVudCB2YWx1ZQog
ICAgIC8vIGlzIGdyZWF0ZXIgdGhhbiBzdGVwKjJeREJMX01BTlRfRElHLCB0aGUgZm9sbG93aW5n
IGNvbXB1dGF0aW9uIGZvcgogICAgIC8vIHJlbWFpbmRlciBtYWtlcyBubyBzZW5zZS4KLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwgdHdvUG93ZXJPZkRv
dWJsZU1hbnRpc3NhQml0cywgKERlY2ltYWw6OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBE
QkxfTUFOVF9ESUcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgRGVjaW1hbD4g
dHdvUG93ZXJPZkRvdWJsZU1hbnRpc3NhQml0cyhEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0
X0MoMSkgPDwgREJMX01BTlRfRElHKTsKICAgICBpZiAodmFsdWUgLyB0d29Qb3dlck9mRG91Ymxl
TWFudGlzc2FCaXRzID4gbV9zdGVwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gVGhl
IGNvbXB1dGF0aW9uIGZvbGxvd3MgSFRNTDUgNC4xMC43LjIuMTAgYFRoZSBzdGVwIGF0dHJpYnV0
ZScgOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKaW5kZXggZGViYzgzMTAyNzk5YzE2NmM2NzdlN2M2NGQwYjRmYjBm
YTI1MDVkMC4uZjU3Y2IyNWRkMDlhYmFjY2E5YjM2NTAwMjE4ZTJiY2ZjYWYzMjU1MSAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCkBAIC0xODk3LDcgKzE4OTcsNyBAQCBQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjp3ZWJraXRHZXRJbWFnZURhdGFIRChmbG9hdCBzeCwgZgog
UGFzc1JlZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Z2V0SW1hZ2VE
YXRhKEltYWdlQnVmZmVyOjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIGZsb2F0
IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3csIGZsb2F0IHNoLCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKIHsKICAgICBpZiAoIWNhbnZhcygpLT5vcmlnaW5DbGVhbigpKSB7Ci0gICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlM
aXRlcmFsKCJVbmFibGUgdG8gZ2V0IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUg
Y2FudmFzIGhhcyBiZWVuIHRhaW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuIikpKTsKKyAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2UoQVNDSUlMaXRl
cmFsKCJVbmFibGUgdG8gZ2V0IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUgY2Fu
dmFzIGhhcyBiZWVuIHRhaW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuIikpOwogICAgICAgICBj
YW52YXMoKS0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1
cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgICAgICBlYyA9
IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGZmMWY5ODYyYzk1OTA2NDZiNWY0NmJkYTA2
ZmMzNjA0ZmM1NzEwY2MuLjc3MDlkNzY4NDkwMzhhMjFmY2EzNGNkN2M1ZThiMWJjMWJjNDEzY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0x
MDUwLDkgKzEwNTAsOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogCiAgICAg
SFRNTF9CRUdJTl9TVEFURShNYXJrdXBEZWNsYXJhdGlvbk9wZW5TdGF0ZSkgewotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXNoRGFzaFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiLS0iKSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBkb2N0eXBlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJkb2N0eXBlIikpKTsKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY2RhdGFTdHJpbmcs
IChBU0NJSUxpdGVyYWwoIltDREFUQVsiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBkYXNoRGFzaFN0cmluZyhBU0NJSUxpdGVyYWwoIi0tIikpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkb2N0eXBlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgi
ZG9jdHlwZSIpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY2RhdGFT
dHJpbmcoQVNDSUlMaXRlcmFsKCJbQ0RBVEFbIikpOwogICAgICAgICBpZiAoY2MgPT0gJy0nKSB7
CiAgICAgICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVhZFJlc3VsdCByZXN1bHQgPSBz
b3VyY2UubG9va0FoZWFkKGRhc2hEYXNoU3RyaW5nKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQg
PT0gU2VnbWVudGVkU3RyaW5nOjpEaWRNYXRjaCkgewpAQCAtMTI1Myw4ICsxMjUzLDggQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAg
ICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6
OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwdWJsaWNTdHJpbmcsIChBU0NJSUxpdGVyYWwoInB1
YmxpYyIpKSk7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBzeXN0ZW1TdHJpbmcsIChBU0NJSUxpdGVyYWwoInN5c3RlbSIpKSk7CisgICAgICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwdWJsaWNTdHJpbmcoQVNDSUlMaXRlcmFs
KCJwdWJsaWMiKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBz
eXN0ZW1TdHJpbmcoQVNDSUlMaXRlcmFsKCJzeXN0ZW0iKSk7CiAgICAgICAgICAgICBpZiAoY2Mg
PT0gJ1AnIHx8IGNjID09ICdwJykgewogICAgICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6
TG9va0FoZWFkUmVzdWx0IHJlc3VsdCA9IHNvdXJjZS5sb29rQWhlYWRJZ25vcmluZ0Nhc2UocHVi
bGljU3RyaW5nKTsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmlu
Zzo6RGlkTWF0Y2gpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAK
aW5kZXggMjVkNGJmZjM0MDA1MmYwZWMzZDNlNjdjN2Q2YzE0NjI3ZGE3NDc4OC4uMzcyNjk2YjQ0
NWYwYWM3ODdmMWNlMWNhNzcwNDQ0NmU2OTA0OTQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6
OmluaXQoRG9jdW1lbnQqIGRvY3VtZW50LCBYU1NBdWRpdG9yRGVsZWdhdGUqIGF1ZGl0b3JEZWxl
Z2F0ZSkKIAogICAgIFN0cmluZyBodHRwQm9keUFzU3RyaW5nOwogICAgIGlmIChEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIgPSBkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1l
bnRMb2FkZXIoKSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBYU1NQcm90ZWN0aW9uSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJYLVhTUy1Qcm90ZWN0aW9u
IikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gWFNTUHJvdGVjdGlv
bkhlYWRlcihBU0NJSUxpdGVyYWwoIlgtWFNTLVByb3RlY3Rpb24iKSk7CiAgICAgICAgIFN0cmlu
ZyBoZWFkZXJWYWx1ZSA9IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVs
ZChYU1NQcm90ZWN0aW9uSGVhZGVyKTsKICAgICAgICAgU3RyaW5nIGVycm9yRGV0YWlsczsKICAg
ICAgICAgdW5zaWduZWQgZXJyb3JQb3NpdGlvbiA9IDA7CkBAIC01MjIsNyArNTIyLDcgQEAgYm9v
bCBYU1NBdWRpdG9yOjpmaWx0ZXJCdXR0b25Ub2tlbihjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3Qm
IHJlcXVlc3QpCiAKIGJvb2wgWFNTQXVkaXRvcjo6ZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJ
bmplY3RlZChjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2FmZUphdmFTY3JpcHRVUkwsIChBU0NJ
SUxpdGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gc2FmZUphdmFTY3JpcHRVUkwoQVNDSUlMaXRlcmFsKCJqYXZhc2NyaXB0OnZv
aWQoMCkiKSk7CiAKICAgICBib29sIGRpZEJsb2NrU2NyaXB0ID0gZmFsc2U7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCByZXF1ZXN0LnRva2VuLmF0dHJpYnV0ZXMoKS5zaXplKCk7ICsraSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNv
bnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwCmluZGV4IDY0NGZhYWU0Nzk2NjRlOTBlMTJmM2Q5ZDM1MTFiODczZWRmZGNkMDEuLjZj
NTI5MWNkMzcwYTA3Yjc0NzBjOTkyOGU1YTAwY2VmODZjYWFhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgYm9vbCBEZXRhaWxzTWFya2VyQ29udHJvbDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgRGV0YWlsc01hcmtl
ckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtZGV0YWlscy1t
YXJrZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRJZCgiLXdlYmtpdC1kZXRhaWxzLW1h
cmtlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBw
c2V1ZElkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKaW5kZXggYWUzNmZmMzIwZTBmNTI3YWMzZjc2NWRkNGRhZDEzMjE2
MzE3NDFhZi4uNDNlMzRmOWEwN2M3YzVhN2ZhNmQ2MTQ2YzdlYTdhMDNmNjhhMzNmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtODQsNyArODQsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4g
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBp
ZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMjcyLDcgKzI3Miw3IEBAIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ6CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
UGFuZWxFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0yOTEsNyArMjkxLDcgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3Zl
cmxheUVuY2xvc3VyZUVsZW0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVy
bGF5RW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTMxMiw3ICsz
MTIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4g
TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5l
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsK
IH0KIApAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQzNCw3ICs0MzQsNyBAQCB2
b2lkIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50Ojp1cGRhdGUoKQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlz
cGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBp
ZDsKIH0KIApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0
dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTQ5MCw3ICs0OTAsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ck11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xp
ZGVyLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTUzMCw3ICs1MzAsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXkt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGlkOwogfQogCkBAIC01NzAsNyArNTcwLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xPdmVybGF5UGxh
eUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBpZDsKIH0KIApAQCAtNTkzLDcgKzU5Myw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZv
cndhcmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTYxNSw3ICs2MTUsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0Jh
Y2tCdXR0b25FbGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtC
YWNrQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02NDYsNyArNjQ2LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1yZXdpbmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGlt
ZS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTc1OCw3ICs3NTgsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbgogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNh
cHRpb25zLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC04MjIsMTQgKzgyMiwx
NCBAQCB2b2lkIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3Qi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2Vk
LWNhcHRpb25zLXRyYWNrLWxpc3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gaWQ7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNU
cmFja0xpc3RFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkKIHsKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2Vs
ZWN0ZWRDbGFzc1ZhbHVlLCAoInNlbGVjdGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNlbGVj
dGVkQ2xhc3NWYWx1ZSgic2VsZWN0ZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIGlmICghbWVkaWFDb250cm9sbGVyKCktPmhhc0Nsb3NlZENhcHRpb25zKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHZvaWQgTWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50OjpzZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTAyOSw3
ICsxMDI5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1l
bnQ+IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWwKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApA
QCAtMTA1Myw3ICsxMDUzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHUKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12
b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTA5OCw3ICsxMDk4LDcgQEAg
dm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVs
bHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlk
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTM1LDcg
KzExMzUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1t
aW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1pbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExNjcsNyArMTE2Nyw3IEBA
IHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1heC1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNj
cmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbFRp
bWVSZW1haW5pbmdEaXMKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0TWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50U2hhZG93UHNldWRvSWQoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQog
CkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheQogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50U2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1l
LWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY3VycmVudC10aW1lLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEyNDcsNyArMTI0Nyw3IEBAIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudFNoYWRvd1BzZXVk
b0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzYmM3
YjhmMmRhOGFkOGMwZDE3NGUwYjI1MWQwOTllYTk4MGI5Y2Y1Li5jNTgwODdiOGNiNjFlYzY1YzMy
MjJhNjg0MDIzMGY0YWE4Y2JkNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sczo6
c3RvcEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sczo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13
ZWJraXQtbWVkaWEtY29udHJvbHMiKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IGE1NzYz
MzRkZTgzOTFhZjQxNjNlMDFjNjU2YWZhNGU4NWVmYjUyMTIuLjk0OWM2MmMyMmQ1MTgyNDVhYjI3
YjY4Y2VhZDEzMzU1NDQxYzIzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIE1ldGVyU2hh
ZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiBN
ZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXIt
aW5uZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1t
ZXRlci1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKIH0KIApAQCAtODAsOSArODAsOSBAQCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlcgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVFbGVtZW50
Ojp2YWx1ZVBzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBvcHRpbXVtUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1vcHRp
bXVtLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1
ZG9JZCwgKCItd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1ldmVu
LWxlc3MtZ29vZC12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcHRpbXVtUHNldWRvSWQo
Ii13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHN1Ym9w
dGltdW1Qc2V1ZG9JZCgiLXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gZXZlbkxlc3NHb29kUHNldWRvSWQoIi13ZWJraXQtbWV0ZXItZXZlbi1sZXNz
LWdvb2QtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IEhUTUxNZXRlckVsZW1lbnQqIG1ldGVyID0gbWV0ZXJFbGVtZW50KCk7CiAgICAgaWYgKCFtZXRl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgK
aW5kZXggZDFiMGU3OGQxNTExOWRiZjJlYzY0YmFlYjUyNWQwNGI3OGIzZWUyMC4uNjdlYTNlY2Q5
OWVmYjNlMjQ3OTA3Y2U4YjI3NTJhOTJmMjExNjBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0
ZToKICAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IE1l
dGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXIt
YmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1tZXRlci1i
YXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgc2V0UHNl
dWRvKHBzZXVkb0lkKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggZmJjNjk0MGEwY2ZjNTMxNjg5Yzg2NTAz
ZDI2NTdhMWFjYWQzNjFjMy4uMDQ2YzUyZWYxZDVlOTVlODM0YTZkYWE4Zjg4ODY2MmUwZGZmYTNm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwCkBAIC01NjcsMTMgKzU2NywxMyBAQCBIVE1MSW5wdXRFbGVtZW50KiBTbGlkZXJUaHVt
YkVsZW1lbnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xp
ZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNsaWRlclRodW1iKCItd2Vi
a2l0LXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
bWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlclRodW1iLCAoIi13
ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG1l
ZGlhU2xpZGVyVGh1bWIoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9
CiAKQEAgLTYyMyw4ICs2MjMsOCBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UgogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWlu
ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVy
LCAoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBtZWRpYVNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Via2l0LXNsaWRl
ci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hhZG93SG9zdCgpLT50b0lucHV0RWxlbWVudCgp
OwogICAgIGlmICghaW5wdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGlu
QnV0dG9uRWxlbWVudC5jcHAKaW5kZXggMTk2ZGE2NWUyZWU5NTFhZjRjMDY4ODg3ZWMzMDdiYjVm
MGZmNWVkNC4uMTU1MDU0ODQyOTA3ZmFlNmYwYmQ4ZWY1MDVjYTZkM2Q3ZWNjZjEwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAt
NjEsNyArNjEsNyBAQCBQYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgU3BpbgogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNwaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5uZXJQc2V1ZG9JZCwg
KCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlubmVy
UHNldWRvSWQoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaW5uZXJQc2V1ZG9JZDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5jcHAKaW5kZXggNDAxMDMyYTViYjU0YmI5MjA1NjM5ODVhYmI0ZjA0NGM0NmE5ZGIzYS4uMWE5
NmQ4YTFhOWQzNmZkZjc5ZTZjNDg2MGY2MzcxZGVkNzFjOGUyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBA
IC0xNDIsOSArMTQyLDkgQEAgUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmUKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgcmVzdWx0c0lkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFy
Y2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRl
Y29yYXRpb25JZCwgKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHJlc3VsdHNJZCgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiByZXN1bHRzRGVjb3JhdGlvbklkKCItd2Via2l0LXNlYXJjaC1yZXN1bHRz
LWRlY29yYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBkZWNvcmF0aW9uSWQoIi13ZWJraXQt
c2VhcmNoLWRlY29yYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBFbGVtZW50KiBob3N0ID0gc2hhZG93SG9zdCgpOwogICAgIGlmICghaG9zdCkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdHNJZDsKQEAgLTIwMiw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50
OjpjcmVhdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtc2VhcmNoLWNhbmNl
bC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtc2VhcmNo
LWNhbmNlbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OjpzdG9wU3BlZWNoSW5wdXQoKQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWlucHV0LXNwZWVjaC1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93
RWxlbWVudC5jcHAKaW5kZXggMmQwYjQwNTI4ZDdjZWYwY2Y3MjY0MmQ5Y2QwOTM2ZjJhNTI0ZjQ0
YS4uODk2N2M4M2E3OTIzMzg2NzIwMzBiZTBjNWMzNGRkOTI2ODJhNzliNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVu
dC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogWW91VHViZUVt
YmVkU2hhZG93RWxlbWVudDo6cGx1Z2luRWxlbWVudCgpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVk
b0lkLCAoIi13ZWJraXQtcGx1Z2luLXJlcGxhY2VtZW50IikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVu
dCIpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFjay5jcHAKaW5kZXggYmRiZWM2ZjQwNDNiYTY5ZmI5YmE4ZmMyY2Q5M2MyOGU3ZjI4
MmE4MC4uNGY3NjlhM2M3ODVkMWU0ZmViMmRhMzM3ZWJiOGQ1ODM4ODk0ODcyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC00MywzNyArNDMsMzcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmFsdGVy
bmF0aXZlS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gYWx0ZXJuYXRpdmUoImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVz
Y3JpcHRpb24sICgiZGVzY3JpcHRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVz
Y3JpcHRpb24oImRlc2NyaXB0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1
ZGlvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtYWluLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gbWFpbigibWFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBtYWluOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJh
Y2s6Om1haW5EZXNjS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWFpbkRlc2MsICgibWFpbi1kZXNjIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IG1haW5EZXNjKCJtYWluLWRlc2MiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFpbkRlc2M7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgQXVkaW9UcmFjazo6dHJhbnNsYXRpb25LZXl3b3JkKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFuc2xhdGlv
biwgKCJ0cmFuc2xhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiB0cmFuc2xhdGlv
bigidHJhbnNsYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gdHJhbnNsYXRpb247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFj
azo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNvbW1lbnRhcnksICgiY29tbWVudGFyeSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRleCAyZGYzNTdjZTQ3MjUz
NTdhY2M0NTY3OTI5ZDJmOGY5MDhjMjBhOWNhLi44ZmQ0ZjBmOWM4MDQyMGY1N2Q5ODdhNDIxMmQz
OWY0MDgyMzY4NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBA
IC00OSw1NSArNDksNTUgQEAgc3RhdGljIGNvbnN0IGludCBpbnZhbGlkVHJhY2tJbmRleCA9IC0x
OwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
c3VidGl0bGVzLCAoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzdWJ0
aXRsZXMoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
OjpjYXB0aW9uc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlc2NyaXB0aW9ucywg
KCJkZXNjcmlwdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVzY3JpcHRpb25z
KCJkZXNjcmlwdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gZGVzY3JpcHRpb25zOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFj
azo6Y2hhcHRlcnNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjaGFwdGVycywgKCJjaGFwdGVycyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2hhcHRlcnM7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgVGV4dFRyYWNrOjptZXRhZGF0YUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1ldGFkYXRhLCAoIm1ldGFk
YXRhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG1ldGFkYXRhKCJtZXRhZGF0YSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsK
IH0KICAgICAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpmb3JjZWRLZXl3b3JkKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBmb3JjZWQsICgiZm9yY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGZvcmNlZCgi
Zm9yY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGZvcmNlZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmRpc2FibGVkS2V5
d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgb3BlbiwgKCJkaXNhYmxlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBv
cGVuKCJkaXNhYmxlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBvcGVuOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6aGlkZGVu
S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgY2xvc2VkLCAoImhpZGRlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBjbG9zZWQoImhpZGRlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBjbG9zZWQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpz
aG93aW5nS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgZW5kZWQsICgic2hvd2luZyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBlbmRlZCgic2hvd2luZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBlbmRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmgKaW5kZXggYmMzOTlmYmIwMGM0NGFiNDkyMzY0MTMzYzVkYzA4YjBiMmUzYWMx
Ni4uOTc5NThjZjY5YTJhZDBiNDkyNTQzODkwODFiNTllYzU0NWI2YmIwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGN1ZVNoYWRvd1BzZXVkb0lkKCkKICAg
ICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGN1ZSgi
Y3VlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVy
biBjdWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZU
VEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggODY5
ZWQ4MzAwZTEyZWYwOGRlZGM4ZjBiZTVmMTU2OTJhMWM0NTM2Yy4uMjhlZjM0MDU0M2E0ZTYwZDMx
NmVkOWZmYWVmMDMzZGU2ODAyOTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cApAQCAtNzIsMzEgKzcyLDMxIEBAIENPTVBJTEVfQVNTRVJUKFdURl9BUlJBWV9MRU5HVEgoZGlz
cGxheUFsaWdubWVudE1hcCkgPT0gVlRUQ3VlOjpOdW1iZXJPZkFsaWdubWVuCiAKIHN0YXRpYyBj
b25zdCBTdHJpbmcmIHN0YXJ0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhcnQsIChBU0NJSUxpdGVyYWwoInN0YXJ0IikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBzdGFydChBU0NJSUxpdGVy
YWwoInN0YXJ0IikpOwogICAgIHJldHVybiBzdGFydDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmlu
ZyYgbWlkZGxlS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgbWlkZGxlLCAoQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG1pZGRsZShBU0NJSUxpdGVyYWwoIm1p
ZGRsZSIpKTsKICAgICByZXR1cm4gbWlkZGxlOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBl
bmRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBlbmQsIChBU0NJSUxpdGVyYWwoImVuZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gZW5kKEFTQ0lJTGl0ZXJhbCgiZW5kIikpOwogICAgIHJldHVy
biBlbmQ7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIGxlZnRLZXl3b3JkKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsZWZ0LCAoImxlZnQi
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbGVmdCgibGVmdCIp
OwogICAgIHJldHVybiBsZWZ0OwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiByaWdodEtleXdv
cmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHJpZ2h0LCAoInJpZ2h0IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJp
bmc+IHJpZ2h0KCJyaWdodCIpOwogICAgIHJldHVybiByaWdodDsKIH0KIApAQCAtMTA3LDEzICsx
MDcsMTMgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaG9yaXpvbnRhbEtleXdvcmQoKQogCiBzdGF0
aWMgY29uc3QgU3RyaW5nJiB2ZXJ0aWNhbEdyb3dpbmdMZWZ0S2V5d29yZCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxybCwgKEFT
Q0lJTGl0ZXJhbCgicmwiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJp
bmc+IHZlcnRpY2FscmwoQVNDSUlMaXRlcmFsKCJybCIpKTsKICAgICByZXR1cm4gdmVydGljYWxy
bDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdmVydGljYWxHcm93aW5nUmlnaHRLZXl3b3Jk
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2
ZXJ0aWNhbGxyLCAoQVNDSUlMaXRlcmFsKCJsciIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IFN0cmluZz4gdmVydGljYWxscihBU0NJSUxpdGVyYWwoImxyIikpOwogICAgIHJl
dHVybiB2ZXJ0aWNhbGxyOwogfQogCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBWVFRDdWVCb3g6
OmFwcGx5Q1NTUHJvcGVydGllcyhjb25zdCBJbnRTaXplJikKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBWVFRDdWVCb3g6OnZ0dEN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlCb3hT
aGFkb3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7CiB9
CiAKQEAgLTU3Nyw3ICs1NzcsNyBAQCBzdGF0aWMgYm9vbCBpc0N1ZVBhcmFncmFwaFNlcGFyYXRv
cihVQ2hhciBjaGFyYWN0ZXIpCiAKIHZvaWQgVlRUQ3VlOjpkZXRlcm1pbmVUZXh0RGlyZWN0aW9u
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBy
dFRhZywgKEFTQ0lJTGl0ZXJhbCgicnQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBTdHJpbmc+IHJ0VGFnKEFTQ0lJTGl0ZXJhbCgicnQiKSk7CiAgICAgY3JlYXRlV2ViVlRU
Tm9kZVRyZWUoKTsKICAgICBpZiAoIW1fd2ViVlRUTm9kZVRyZWUpCiAgICAgICAgIHJldHVybjsK
QEAgLTcyMSw3ICs3MjEsNyBAQCB2b2lkIFZUVEN1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRl
cnMoKQogICAgIAogdm9pZCBWVFRDdWU6Om1hcmtGdXR1cmVBbmRQYXN0Tm9kZXMoQ29udGFpbmVy
Tm9kZSogcm9vdCwgZG91YmxlIHByZXZpb3VzVGltZXN0YW1wLCBkb3VibGUgbW92aWVUaW1lKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRpbWVz
dGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB0aW1lc3RhbXBUYWcoQVNDSUlMaXRlcmFsKCJ0aW1lc3Rh
bXAiKSk7CiAgICAgCiAgICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKICAgICBkb3VibGUgY3Vy
cmVudFRpbWVzdGFtcCA9IHByZXZpb3VzVGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRSZWdpb24uY3BwCmluZGV4IDA3MjcwYzJiN2JiYTQ2Zjc0YjUzMzM4ZTEyZDgwNTZiODQy
ZDBjZDguLmZiMzkyZjRlOWFhZWRiYjNmMjZkMGI0MDNlZTRiYWIyZTQ4MjA2ZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lk
IFZUVFJlZ2lvbjo6c2V0Vmlld3BvcnRBbmNob3JZKGRvdWJsZSB2YWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAKIGNvbnN0IEF0b21pY1N0cmluZyBWVFRSZWdpb246OnNjcm9sbCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
dXBTY3JvbGxWYWx1ZUtleXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
dXBTY3JvbGxWYWx1ZUtleXdvcmQoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBpZiAobV9zY3JvbGwpCiAgICAgICAgIHJldHVybiB1cFNjcm9sbFZhbHVl
S2V5d29yZDsKQEAgLTE5Niw3ICsxOTYsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcgVlRUUmVnaW9u
OjpzY3JvbGwoKSBjb25zdAogCiB2b2lkIFZUVFJlZ2lvbjo6c2V0U2Nyb2xsKGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHVwU2Nyb2xsVmFsdWVLZXl3b3Jk
LCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHVwU2Nyb2xsVmFsdWVLZXl3b3Jk
KCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKHZh
bHVlICE9IGVtcHR5U3RyaW5nKCkgJiYgdmFsdWUgIT0gdXBTY3JvbGxWYWx1ZUtleXdvcmQpIHsK
ICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBwYXJzZWRFbnRpcmVSdW4oY29uc3QgVlRUU2Nhbm5lciYgaW5wdXQsIGNvbnN0IFZU
VFNjYW5uZXI6OlJ1CiAKIHZvaWQgVlRUUmVnaW9uOjpwYXJzZVNldHRpbmdWYWx1ZShSZWdpb25T
ZXR0aW5nIHNldHRpbmcsIFZUVFNjYW5uZXImIGlucHV0KQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNjcm9sbFVwVmFsdWVLZXl3b3Jk
LCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNjcm9sbFVwVmFsdWVLZXl3b3Jk
KCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgVlRUU2Nh
bm5lcjo6UnVuIHZhbHVlUnVuID0gaW5wdXQuY29sbGVjdFVudGlsPFdlYlZUVFBhcnNlcjo6aXNB
U3BhY2U+KCk7CiAKQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0
aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5nLCBWVFRTY2FubmVyJiBpbnB1dCkKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNjcm9sbGlu
Z0NsYXNzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0NsYXNzLCAoInNjcm9s
bGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5l
clNjcm9sbGluZ0NsYXNzKCJzY3JvbGxpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0Ns
YXNzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggYmJk
YzkwZGRmYmMxM2MxMmRkYjFiMzhkMTEyODk4YjkxYjExMzkzMy4uZGZjZDFiYTBiNmQ5ODNiOTBi
NGZmYWQ4NjM4MGI3NWIwZDlhOTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwCkBAIC00NywzNyArNDcsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJu
YXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gYWx0ZXJu
YXRpdmUoImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVv
VHJhY2s6OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2FwdGlvbnMsICgiY2FwdGlvbnMiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21pY1N0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNhcHRpb25zOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJtYWlu
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNhcHRpb25zKCJtYWluIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNhcHRpb25zOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OnNpZ25LZXl3b3JkKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzaWduLCAoInNp
Z24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc2lnbigic2lnbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzaWduOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywg
KCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3VidGl0bGVzKCJzdWJ0
aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
c3VidGl0bGVzOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1lbnRh
cnlLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCBkNzRiODM4ZThmOTI1NzU1
MDkyYTk5ZjNhN2RkOTU1NTE4ZGUyODFmLi5lMzZjM2RhY2NmNThhZDM2NmIxMjY4ZjVkMTI1N2Vk
NWIyNWRkMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5j
cHAKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25z
dCBRdWFsaWZpZWROYW1lJiBub2RlVHlwZVRvVGFnTmFtZShXZWJWVFROb2RlVHlwZSBub2RlVHlw
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwg
Y1RhZywgKG51bGxBdG9tLCAiYyIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZUYWcsIChudWxsQXRvbSwgInYiLCBudWxsQXRv
bSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBs
YW5nVGFnLCAobnVsbEF0b20sICJsYW5nIiwgbnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgYlRhZywgKG51bGxBdG9tLCAiYiIsIG51
bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5h
bWUsIHVUYWcsIChudWxsQXRvbSwgInUiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBpVGFnLCAobnVsbEF0b20sICJpIiwgbnVs
bEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFt
ZSwgcnVieVRhZywgKG51bGxBdG9tLCAicnVieSIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHJ0VGFnLCAobnVsbEF0b20sICJy
dCIsIG51bGxBdG9tKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+
IGNUYWcobnVsbEF0b20sICJjIiwgbnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxRdWFsaWZpZWROYW1lPiB2VGFnKG51bGxBdG9tLCAidiIsIG51bGxBdG9tKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gbGFuZ1RhZyhudWxsQXRvbSwgImxhbmci
LCBudWxsQXRvbSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IGJU
YWcobnVsbEF0b20sICJiIiwgbnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxR
dWFsaWZpZWROYW1lPiB1VGFnKG51bGxBdG9tLCAidSIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gaVRhZyhudWxsQXRvbSwgImkiLCBudWxsQXRv
bSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IHJ1YnlUYWcobnVs
bEF0b20sICJydWJ5IiwgbnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFs
aWZpZWROYW1lPiBydFRhZyhudWxsQXRvbSwgInJ0IiwgbnVsbEF0b20pOwogICAgIHN3aXRjaCAo
bm9kZVR5cGUpIHsKICAgICBjYXNlIFdlYlZUVE5vZGVUeXBlQ2xhc3M6CiAgICAgICAgIHJldHVy
biBjVGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCAz
OTQwNmQ5YWY3ODRmNDcyYzQ2OTA2ODZlM2IyYzU1MzAxYjQ3YWYzLi4yYzEyYzQ0ZDNmNzFhNmQ2
Mjk2MWJlYjk1NTU5NzI3ODU4NTYzZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuaApAQCAtNTksMTMgKzU5LDEzIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBj
b25zdCBRdWFsaWZpZWROYW1lJiB2b2ljZUF0dHJpYnV0ZU5hbWUoKQogICAgIHsKLSAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZvaWNlQXR0ciwg
KG51bGxBdG9tLCAidm9pY2UiLCBudWxsQXRvbSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UXVhbGlmaWVkTmFtZT4gdm9pY2VBdHRyKG51bGxBdG9tLCAidm9pY2UiLCBudWxsQXRv
bSk7CiAgICAgICAgIHJldHVybiB2b2ljZUF0dHI7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBj
b25zdCBRdWFsaWZpZWROYW1lJiBsYW5nQXR0cmlidXRlTmFtZSgpCiAgICAgewotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdm9pY2VBdHRyLCAo
bnVsbEF0b20sICJsYW5nIiwgbnVsbEF0b20pKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFF1YWxpZmllZE5hbWU+IHZvaWNlQXR0cihudWxsQXRvbSwgImxhbmciLCBudWxsQXRvbSk7
CiAgICAgICAgIHJldHVybiB2b2ljZUF0dHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggMjA2NTJlODQzODI2MTlkM2EzZmEzNGIzODM1
MTQ5MTE4ODIyNWY4Ny4uZmE1NjQxMjk0NDkxZjc1NDcxMzhmMGZjMzc2MmVkNmU5OWRlNzgyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtMjY5LDcg
KzI2OSw3IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb2xsZWN0TWV0YWRhdGFIZWFkZXIoY29uc3Qg
U3RyaW5nJiBsaW5lKQogewogI2lmIEVOQUJMRShXRUJWVFRfUkVHSU9OUykKICAgICAvLyBXZWJW
VFQgaGVhZGVyIHBhcnNpbmcgKFdlYlZUVCBwYXJzZXIgYWxnb3JpdGhtIHN0ZXAgMTIpCi0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVnaW9u
SGVhZGVyTmFtZSwgKCJSZWdpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gcmVnaW9u
SGVhZGVyTmFtZSgiUmVnaW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAKICAgICAvLyBTdGVwIDEyLjQgSWYgbGluZSBjb250YWlucyB0aGUgY2hhcmFjdGVyICI6IiAo
QSBVKzAwM0EgQ09MT04pLCB0aGVuIHNldCBtZXRhZGF0YSdzCiAgICAgLy8gbmFtZSB0byB0aGUg
c3Vic3RyaW5nIG9mIGxpbmUgYmVmb3JlIHRoZSBmaXJzdCAiOiIgY2hhcmFjdGVyIGFuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggMzA1
YTk5NTRkZjFhOTdmMWMwYzA3MWQ4NGY3NDkxMGFhMDBkNmY4Yy4uN2RkNzQ2MDBlNmYzZjRlODNh
OWZmYjA2MTZhODlkNGIzMGE5MjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC03OCwxMCArNzgsMTAgQEAgZW51bSBGb3JjZVBzZXVk
b0NsYXNzRmxhZ3MgewogCiBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZVBzZXVkb0NsYXNzTWFzayhJ
bnNwZWN0b3JBcnJheSogcHNldWRvQ2xhc3NBcnJheSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhY3RpdmUsIChBU0NJSUxpdGVyYWwoImFjdGl2ZSIpKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaG92ZXIsIChBU0NJ
SUxpdGVyYWwoImhvdmVyIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBmb2N1cywgKEFTQ0lJTGl0ZXJhbCgiZm9jdXMiKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHZpc2l0ZWQsIChBU0NJSUxpdGVyYWwoInZpc2l0
ZWQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGFjdGl2ZShBU0NJSUxp
dGVyYWwoImFjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBob3Zl
cihBU0NJSUxpdGVyYWwoImhvdmVyIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGZvY3VzKEFTQ0lJTGl0ZXJhbCgiZm9jdXMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdmlzaXRlZChBU0NJSUxpdGVyYWwoInZpc2l0ZWQiKSk7CiAgICAgaWYgKCFw
c2V1ZG9DbGFzc0FycmF5IHx8ICFwc2V1ZG9DbGFzc0FycmF5LT5sZW5ndGgoKSkKICAgICAgICAg
cmV0dXJuIFBzZXVkb0NsYXNzTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggN2ZkNjI5MWM5MTA3ZjM4ZWI0
MTNhNjE5MWE3Njc3MGI1NzNjZTIzNy4uYTRhY2EzY2ZjNzljOGM0YzM4NzcyY2Y0YjBmMTIyNWE5
MmY2ZjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxJREJLZXk+IGlkYktleUZyb21JbnNwZWN0b3JPYmplY3QoSW5zcGVjdG9yT2JqZWN0KiBrZXkp
CiAgICAgaWYgKCFrZXktPmdldFN0cmluZygidHlwZSIsICZ0eXBlKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBu
dW1iZXIsIChBU0NJSUxpdGVyYWwoIm51bWJlciIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgc3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzdHJpbmciKSkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRhdGUsIChBU0NJSUxp
dGVyYWwoImRhdGUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGFycmF5LCAoQVNDSUlMaXRlcmFsKCJhcnJheSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gbnVtYmVyKEFTQ0lJTGl0ZXJhbCgibnVtYmVyIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHN0cmluZyhBU0NJSUxpdGVyYWwoInN0cmluZyIpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkYXRlKEFTQ0lJTGl0ZXJhbCgiZGF0
ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhcnJheShBU0NJSUxpdGVy
YWwoImFycmF5IikpOwogCiAgICAgaWYgKHR5cGUgPT0gbnVtYmVyKSB7CiAgICAgICAgIGRvdWJs
ZSBudW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDQ1YmYwZWVlODQ2Zjc3MDllZDQyZTI3NGZkMTE3Zjk2NDgyNDE4ZGUuLjI1
ZDVjNTVmOTIzOWVlZTY0ZmY0M2FiNzA4Yjk2NzM0YjI2NjQwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yNDcsOCArMjQ3LDgg
QEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlQ29udGVudChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSwKIC8vc3RhdGljCiBTdHJpbmcgSW5zcGVjdG9yUGFn
ZUFnZW50Ojpzb3VyY2VNYXBVUkxGb3JSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291
cmNlTWFwSFRUUEhlYWRlciwgKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVw
cmVjYXRlZCwgKEFTQ0lJTGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFkZXIoQVNDSUlMaXRlcmFsKCJTb3Vy
Y2VNYXAiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc291cmNlTWFwSFRU
UEhlYWRlckRlcHJlY2F0ZWQoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1hcCIpKTsKIAogICAgIGlm
ICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA3Njg4MTAz
ZDYxMTExODRlMTRhMzA5YmZjOWNhN2UxYjZiY2YzNWFjLi4zMDE1YTU5MGQ3MjdjNzFhYjY3YzA2
ODIzOGNjODNmYTQ3Mzk2NjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDU1M6OkNT
U0NvbXB1dGUKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIGJvb2wgb3ZlcndyaXRlLCBTdHJpbmcq
IG9sZFRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChtX3BhcmVudFN0eWxl
U2hlZXQpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGJvZ3Vz
UHJvcGVydHlOYW1lLCAoQVNDSUlMaXRlcmFsKCItd2Via2l0LWJvZ3V6LXByb3BlcnRlZSIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYm9ndXNQcm9wZXJ0eU5hbWUoQVND
SUlMaXRlcmFsKCItd2Via2l0LWJvZ3V6LXByb3BlcnRlZSIpKTsKIAogICAgIGlmICghbV9wYXJl
bnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkgewogICAgICAgICBlYyA9IE5P
VF9GT1VORF9FUlI7CkBAIC02ODYsNyArNjg2LDcgQEAgVmVjdG9yPFN0cmluZz4gSW5zcGVjdG9y
U3R5bGU6OmxvbmdoYW5kUHJvcGVydGllcyhjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnQK
IAogTmV3TGluZUFuZFdoaXRlc3BhY2UmIEluc3BlY3RvclN0eWxlOjpuZXdMaW5lQW5kV2hpdGVz
cGFjZURlbGltaXRlcnMoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGRlZmF1bHRQcmVmaXgsIChBU0NJSUxpdGVyYWwoIiAgICAiKSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRlZmF1bHRQcmVmaXgoQVNDSUlMaXRlcmFs
KCIgICAgIikpOwogCiAgICAgaWYgKG1fZm9ybWF0QWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBt
X2Zvcm1hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCmluZGV4IDc2MDIzZTE5ZGQwMmE2ZmNmMWQxM2IzYjY0ZjBkMTdmOWYxY2U1MzMuLjgzZTQ1
YWNiMmJlZjg2NDdhZDE1YjgyMjg3OTBiY2Q1NjUwOTY2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lk
IFBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIAogU3Ry
aW5nIFBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0
JiBzY3JpcHQpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
c291cmNlTWFwSFRUUEhlYWRlciwgKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVy
RGVwcmVjYXRlZCwgKEFTQ0lJTGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFkZXIoQVNDSUlMaXRlcmFsKCJT
b3VyY2VNYXAiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc291cmNlTWFw
SFRUUEhlYWRlckRlcHJlY2F0ZWQoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1hcCIpKTsKIAogICAg
IGlmICghc2NyaXB0LnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gbV9wYWdlQWdlbnQtPmNhY2hlZFJlc291cmNlKG1fcGFnZUFnZW50LT5tYWluRnJh
bWUoKSwgVVJMKFBhcnNlZFVSTFN0cmluZywgc2NyaXB0LnVybCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKaW5kZXggN2Q5NGZjODZmNzZhOGVjNjg2NWE2NzBiNDA5ZDk5YjA2
MjY2ZjE5OC4uMmQ1NTJkN2VmYTg0MmQ3OWY3MzVhMmU4ZmI0YTI0MDE2MDkxMWNkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBJ
bWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAg
ICAgICBtX2hhc1BlbmRpbmdFcnJvckV2ZW50ID0gdHJ1ZTsKICAgICAgICAgZXJyb3JFdmVudFNl
bmRlcigpLmRpc3BhdGNoRXZlbnRTb29uKHRoaXMpOwogCi0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJD
cm9zcy1vcmlnaW4gaW1hZ2UgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNo
YXJpbmcgcG9saWN5LiIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGNvbnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIGltYWdlIGxvYWQgZGVu
aWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSk7CiAgICAgICAg
IGVsZW1lbnQoKS5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNl
Y3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAKICAgICAgICAg
QVNTRVJUKCFtX2hhc1BlbmRpbmdMb2FkRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4
dFRyYWNrTG9hZGVyLmNwcAppbmRleCA0YjBmNjUxZjJkNzAxZDBlNTFiNmI3ZDdlZWFlYjliZDRk
M2VhNDBjLi40YmVmMGIzMmI5YTdjNTc4OGJiODIxMGNhNGRkODBkY2RkNGM2ZmJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBA
IHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNl
KENhY2hlZFJlc291cmNlKiByZXNvdXJjCiAKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9s
aWN5UHJldmVudGVkTG9hZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0
IHRyYWNrIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdl
KEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9hZCBkZW5pZWQgYnkgQ3Jv
c3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgZG9jdW1l
bnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAgICAgbV9zdGF0ZSA9IEZhaWxlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKaW5kZXggMzg5ZTUzMTEyNWI2NWU3OGJkZmViYjBiYmY2MGQxZjQwYjkwYjNmZS4uMmZmMTQx
NTgyYWU2ZThjZWZmYTAyOGIwNTQwNTM2NTdmZTRiMjQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTgzLDcg
KzgzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRp
YXRvck5hbWUoKSBjb25zdAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGRlZmF1bHROYW1lKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBkZWZhdWx0TmFtZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5kZXggOTA3MWVlZmRlY2Y4
Y2FhYTQ3ZGM0ODUxZDU5MGI5MThjZjI3MWEzNS4uZTNiNWJmOTc2ZThmNjc5YjJiNGQ3YWFjMzVk
ZWRhYjc0ZjU5M2MyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuY3BwCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3Vy
Y2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogdm9pZCBNZW1vcnlDYWNoZTo6
Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKIHsKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGh0dHBTdHJpbmcsICgiaHR0cCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBodHRwU3RyaW5nKCJodHRwIik7CiAjZW5kaWYKICAgICBmb3IgKGF1dG8m
IHJlc291cmNlcyA6IG1fc2Vzc2lvblJlc291cmNlcykgewogICAgICAgICBDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgZSA9IHJlc291cmNlcy52YWx1ZS0+ZW5kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCA2N2RjMGQ5YjRiMjM0MTgyMTcx
NDYxODc3ZmVkNzBiYjJhOWQ1ZGMyLi4wMWNhZGI4NWVkMzgwM2RjNGQ1ZGZmYTcxMmEwZDFjNTQ0
YmJhNmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
QEAgLTg4Niw3ICs4ODYsNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgoKSBj
b25zdAogCiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdERhdGFi
YXNlRmlsZW5hbWUsIChBU0NJSUxpdGVyYWwoIldlYnBhZ2VJY29ucy5kYiIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUoQVNDSUlM
aXRlcmFsKCJXZWJwYWdlSWNvbnMuZGIiKSk7CiAgICAgcmV0dXJuIGRlZmF1bHREYXRhYmFzZUZp
bGVuYW1lLmlzb2xhdGVkQ29weSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRleCBmYjgwMTZiYmJkZmVkODkyYjk3MWYyN2Y3YjA3
ZTIyZGU4Y2E3NWQ2Li4xYTlhNzIxYTc4ZDc3MTIwY2FhNzk0YzMxZmYxZTViYzZkODBiYzRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKQEAg
LTIzOCw3ICsyMzgsNyBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldENhcHRpb25z
U3R5bGVTaGVldE92ZXJyaWRlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZAogdm9pZCBDYXB0aW9uVXNl
clByZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUoKQogewogICAgIC8v
IElkZW50aWZ5IG91ciBvdmVycmlkZSBzdHlsZSBzaGVldCB3aXRoIGEgdW5pcXVlIFVSTCAtIGEg
bmV3IHNjaGVtZSBhbmQgYSBVVUlELgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChVUkwsIGNhcHRpb25zU3R5bGVTaGVldFVSTCwgKFBhcnNlZFVSTFN0cmluZywgInVzZXItY2Fw
dGlvbnMtb3ZlcnJpZGU6MDFGNkFGMTItQzNCMC00RjcwLUFGNUUtQTNFMDAyMzREQzIzIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVUkw+IGNhcHRpb25zU3R5bGVTaGVldFVSTChQYXJz
ZWRVUkxTdHJpbmcsICJ1c2VyLWNhcHRpb25zLW92ZXJyaWRlOjAxRjZBRjEyLUMzQjAtNEY3MC1B
RjVFLUEzRTAwMjM0REMyMyIpOwogCiAgICAgYXV0byYgcGFnZXMgPSBtX3BhZ2VHcm91cC5wYWdl
cygpOwogICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGVmZTJl
NTgzYWQxODA1YzhmNjZhNTc2NzQyMDliOTE1NTBiZTEwOGIuLjhlNGJmMjk1NDY0MGEwOWQwNzVm
YjNiMjY2N2YyODQ0ZTEwM2FjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAgU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0JhY2tncm91bmRDU1Mo
KSBjb25zdAogewogICAgIC8vIFRoaXMgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIHRoZSBzYW1lIGFz
IHRoZSBvbmUgc3BlY2lmaWVkIGluIG1lZGlhQ29udHJvbHMuY3NzIGZvciAtd2Via2l0LW1lZGlh
LXRleHQtdHJhY2stcGFzdC1ub2RlcwogICAgIC8vIGFuZCB3ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1mdXR1cmUtbm9kZXMuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9y
LCBkZWZhdWx0QmFja2dyb3VuZENvbG9yLCAoQ29sb3IoMCwgMCwgMCwgMC44ICogMjU1KSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb2xvcj4gZGVmYXVsdEJhY2tncm91bmRDb2xvcihD
b2xvcigwLCAwLCAwLCAwLjggKiAyNTUpKTsKIAogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VCZWhh
dmlvciBiZWhhdmlvcjsKIApAQCAtMzc5LDEwICszNzksMTAgQEAgU3RyaW5nIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjb2xvclByb3BlcnR5Q1NTKENTU1Byb3BlcnR5SUQgaWQsIGNv
bnN0IEMKIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1Rl
eHRFZGdlQ1NTKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBlZGdlU3R5bGVSYWlzZWQsICgiIC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlRGVwcmVzc2VkLCAoIiAuMDVlbSAuMDVlbSAw
ICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEcm9wU2hhZG93LCAoIiAuMDc1
ZW0gLjA3NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZVVuaWZvcm0s
ICgiIC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBlZGdlU3R5bGVSYWlzZWQoIiAtLjA1ZW0gLS4w
NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZWRnZVN0eWxlRGVwcmVzc2VkKCIgLjA1ZW0gLjA1ZW0g
MCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBlZGdlU3R5bGVEcm9wU2hhZG93KCIgLjA3NWVtIC4wNzVlbSAw
ICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBTdHJpbmc+IGVkZ2VTdHlsZVVuaWZvcm0oIiAuMDNlbSAiLCBTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGJvb2wgdW51c2VkOwogICAgIENvbG9yIGNvbG9y
ID0gY2FwdGlvbnNUZXh0Q29sb3IodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBmMGE5Y2VhMWM3ZWQ0ZDdkYjcwMWM1OWI4MDgx
MmRmM2NjMGI4MzI1Li5kMjBlYjdjYmNlNDQwNThiMzM1ZDRiOWE4OWZhN2U4OGNmMWI0ZmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0x
MDYzLDcgKzEwNjMsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrU291cmNlQW5kUmVw
b3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqIGRpcmVjdAogCiBib29sIENTUERpcmVj
dGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxp
dGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xh
dGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJ
TGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIEphdmFTY3JpcHQgVVJMIGJlY2F1c2UgaXQgdmlv
bGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIp
KTsKICAgICBpZiAocmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2Vu
ZFJlcG9ydCkgewogICAgICAgICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9u
KG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBj
b250ZXh0VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkKICAgICAgICAgICAgICAgICAmJiBjaGVja05v
bmNlQW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIFN0cmluZygpLCBjb25z
b2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpKTsKQEAgLTEwNzUsNyArMTA3NSw3
IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyhjb25zdCBTdHJp
bmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dJbmxpbmVFdmVudEhhbmRsZXJzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RG
OjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBv
cnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxp
dGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgZXZlbnQgaGFuZGxlciBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZl
OiAiKSk7CiAgICAgaWYgKHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlNlbmRSZXBvcnQpIHsKICAgICAgICAgcmV0dXJuIChjaGVja0lubGluZUFuZFJlcG9ydFZpb2xh
dGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2Fn
ZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHRydWUpCiAgICAgICAgICAgICAgICAgJiYgY2hl
Y2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgpLCBTdHJpbmcoKSwg
Y29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CkBAIC0xMDg3LDcgKzEw
ODcsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhj
b25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6
YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9y
ZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGlu
Z1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVz
ZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxv
d2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJSZWZ1
c2VkIHRvIGV4ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xs
b3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7CiAgICAgcmV0dXJu
IHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQgPwog
ICAgICAgICBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUo
bV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExp
bmUsIHRydWUpIDoKICAgICAgICAgY2hlY2tJbmxpbmUob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2Ny
aXB0U3JjLmdldCgpKSk7CkBAIC0xMDk1LDcgKzEwOTUsNyBAQCBib29sIENTUERpcmVjdGl2ZUxp
c3Q6OmFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RG
OjpPcgogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGUoY29uc3QgU3Ry
aW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxlIGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBk
aXJlY3RpdmU6ICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29s
ZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGFwcGx5IGlubGluZSBzdHlsZSBiZWNh
dXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGly
ZWN0aXZlOiAiKSk7CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAgICBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xh
dGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdl
LCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgZmFsc2UpIDoKICAgICAgICAgY2hlY2tJbmxpbmUo
b3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpKTsKQEAgLTExMDMsNyArMTEwMyw3
IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dFdmFsKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBv
cnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dp
bmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiUmVmdXNl
ZCB0byBldmFsdWF0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIHJldHVybiByZXBvcnRp
bmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0ID8KICAgICAgICAg
Y2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNy
Yy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBTdHJpbmcoKSwgV1RGOjpPcmRpbmFsTnVtYmVyOjpi
ZWZvcmVGaXJzdCgpLCBzdGF0ZSkgOgogICAgICAgICBjaGVja0V2YWwob3BlcmF0aXZlRGlyZWN0
aXZlKG1fc2NyaXB0U3JjLmdldCgpKSk7CkBAIC0xMTExLDcgKzExMTEsNyBAQCBib29sIENTUERp
cmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6UgogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U2NyaXB0Tm9uY2Uo
Y29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6
Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwg
KEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xh
dGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJ
TGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRo
ZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7CiAgICAg
aWYgKHVybC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0Vmlv
bGF0aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIG5vbmNlLCBjb25zb2xlTWVzc2FnZSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpOwogICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0
aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIG5vbmNlLCAiUmVmdXNlZCB0byBsb2FkICciICsgdXJs
LnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIiwgY29u
dGV4dFVSTCwgY29udGV4dExpbmUpOwpAQCAtMTc3OCwxMiArMTc3OCwxMiBAQCB2b2lkIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZl
VGV4dCwgY29uc3QgUwogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VW5zdXBw
b3J0ZWREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFsbG93LCAoQVNDSUlMaXRlcmFsKCJhbGxv
dyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW9u
cywgKEFTQ0lJTGl0ZXJhbCgib3B0aW9ucyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgcG9saWN5VVJJLCAoQVNDSUlMaXRlcmFsKCJwb2xpY3ktdXJpIikp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxvd01lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnYWxsb3cnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNl
ZCB3aXRoICdkZWZhdWx0LXNyYycuIFBsZWFzZSB1c2UgdGhhdCBkaXJlY3RpdmUgaW5zdGVhZCwg
YXMgJ2FsbG93JyBoYXMgbm8gZWZmZWN0LiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgb3B0aW9uc01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnb3B0
aW9ucycgZGlyZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJ3Vuc2FmZS1pbmxpbmUnIGFu
ZCAndW5zYWZlLWV2YWwnIHNvdXJjZSBleHByZXNzaW9ucyBmb3IgdGhlICdzY3JpcHQtc3JjJyBh
bmQgJ3N0eWxlLXNyYycgZGlyZWN0aXZlcy4gUGxlYXNlIHVzZSB0aG9zZSBkaXJlY3RpdmVzIGlu
c3RlYWQsIGFzICdvcHRpb25zJyBoYXMgbm8gZWZmZWN0LiIpKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcG9saWN5VVJJTWVzc2FnZSwgKEFTQ0lJTGl0ZXJh
bCgiVGhlICdwb2xpY3ktdXJpJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBz
cGVjaWZpY2F0aW9uLiBQbGVhc2Ugc3BlY2lmeSBhIGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENv
bnRlbnQtU2VjdXJpdHktUG9saWN5IGhlYWRlci4iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGFsbG93KEFTQ0lJTGl0ZXJhbCgiYWxsb3ciKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gb3B0aW9ucyhBU0NJSUxpdGVyYWwoIm9wdGlvbnMiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcG9saWN5VVJJKEFTQ0lJTGl0ZXJhbCgi
cG9saWN5LXVyaSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhbGxvd01l
c3NhZ2UoQVNDSUlMaXRlcmFsKCJUaGUgJ2FsbG93JyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFj
ZWQgd2l0aCAnZGVmYXVsdC1zcmMnLiBQbGVhc2UgdXNlIHRoYXQgZGlyZWN0aXZlIGluc3RlYWQs
IGFzICdhbGxvdycgaGFzIG5vIGVmZmVjdC4iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gb3B0aW9uc01lc3NhZ2UoQVNDSUlMaXRlcmFsKCJUaGUgJ29wdGlvbnMnIGRpcmVj
dGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICd1bnNhZmUtaW5saW5lJyBhbmQgJ3Vuc2FmZS1l
dmFsJyBzb3VyY2UgZXhwcmVzc2lvbnMgZm9yIHRoZSAnc2NyaXB0LXNyYycgYW5kICdzdHlsZS1z
cmMnIGRpcmVjdGl2ZXMuIFBsZWFzZSB1c2UgdGhvc2UgZGlyZWN0aXZlcyBpbnN0ZWFkLCBhcyAn
b3B0aW9ucycgaGFzIG5vIGVmZmVjdC4iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gcG9saWN5VVJJTWVzc2FnZShBU0NJSUxpdGVyYWwoIlRoZSAncG9saWN5LXVyaScgZGly
ZWN0aXZlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbi4gUGxlYXNlIHNw
ZWNpZnkgYSBjb21wbGV0ZSBwb2xpY3kgdmlhIHRoZSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBo
ZWFkZXIuIikpOwogCiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbnJlY29nbml6
ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOwog
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBhbGxvdykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggN2YwN2JhZTM2NDIzOTFkYWMxYWM5OGYwZjllZjg0OWM1MDMyZTFjNS4u
MWRlMTI3YTZkZTg3ZGE1ZDUxYjRiYjgyOWEzMWNhY2JmNjc1YWIyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtMTgxLDEzICsxODEsMTMgQEAgdHlwZWRlZiBIYXNoQ291bnRlZFNl
dDxET01XaW5kb3cqPiBET01XaW5kb3dTZXQ7CiAKIHN0YXRpYyBET01XaW5kb3dTZXQmIHdpbmRv
d3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnMs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NV2luZG93U2V0PiB3aW5kb3dzV2l0
aFVubG9hZEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgcmV0dXJuIHdpbmRvd3NXaXRoVW5sb2FkRXZl
bnRMaXN0ZW5lcnM7CiB9CiAKIHN0YXRpYyBET01XaW5kb3dTZXQmIHdpbmRvd3NXaXRoQmVmb3Jl
VW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NV2luZG93U2V0PiB3aW5kb3dzV2l0
aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgcmV0dXJuIHdpbmRvd3NXaXRoQmVm
b3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCAxNTM2ZjFhOWE5ZmEyMTMzMjYyYzM2M2UyNmFlODg3OTJiZGVlMDQyLi40NzJi
Yzg4OWUyMTE4MmY5NDhmZGI3YTY3ZGJkZTRlOGJjYzdmNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0zOTUsNyArMzk1LDcgQEAgRXZlbnRIYW5kbGVyOjp+RXZlbnRI
YW5kbGVyKCkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogRHJhZ1N0YXRlJiBFdmVudEhhbmRs
ZXI6OmRyYWdTdGF0ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERy
YWdTdGF0ZSwgc3RhdGUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RHJhZ1N0YXRl
PiBzdGF0ZSgpOwogICAgIHJldHVybiBzdGF0ZTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQpAQCAtMzA0MCwxMCArMzA0MCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAKIHN0YXRp
YyBGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShjb25zdCBBdG9taWNTdHJpbmcm
IGtleUlkZW50aWZpZXIpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgRG93biwgKCJEb3duIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IFVwLCAoIlVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIExlZnQsICgiTGVmdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBSaWdodCwgKCJSaWdodCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBEb3duKCJEb3duIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gVXAoIlVwIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gTGVmdCgiTGVmdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IFJp
Z2h0KCJSaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAg
Rm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Ob25lOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBlZDk5Y2ZmN2YwNjhhMzQ0MzMwZDc4ZjYwOGJh
ZDAzOTQ1ODE5YzEwLi42Mzk0YmMxZGJlMWIyNmE3ODk4NzA5ZTkxMGEwYTA1YjIwOGQxZWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgU3Ry
aW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkgY29uc3QKICAgICBpZiAoIVN0cmluZyhXRUJD
T1JFX05BVklHQVRPUl9QTEFURk9STSkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gV0VCQ09S
RV9OQVZJR0FUT1JfUExBVEZPUk07CiAgICAgc3RydWN0IHV0c25hbWUgb3NuYW1lOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHBsYXRmb3JtTmFtZSwgKHVuYW1l
KCZvc25hbWUpID49IDAgPyBTdHJpbmcob3NuYW1lLnN5c25hbWUpICsgU3RyaW5nKCIgIikgKyBT
dHJpbmcob3NuYW1lLm1hY2hpbmUpIDogZW1wdHlTdHJpbmcoKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHBsYXRmb3JtTmFtZSh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3Ry
aW5nKG9zbmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5l
KSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIHJldHVybiBwbGF0Zm9ybU5hbWU7CiAjZWxzZQogICAg
IHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCmluZGV4IGY2Y2NjMTQ5NmQyZGEyMjU0Yjc2ZjVhNGU5
NGU3OTE1YzY2MmU5NTYuLjUzN2RjNDU1ZGZlN2E4MjhmZTljZTY2NDYyYWRmNmFlNjhmNjYxMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApAQCAtMzYs
OSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBwYWdlVmlzaWJpbGl0eVN0
YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmlzaWJsZSwgKEFTQ0lJTGl0ZXJhbCgi
dmlzaWJsZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgaGlkZGVuLCAoQVNDSUlMaXRlcmFsKCJoaWRkZW4iKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHByZXJlbmRlciwgKEFTQ0lJTGl0ZXJh
bCgicHJlcmVuZGVyIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiB2aXNpYmxlKEFTQ0lJTGl0ZXJhbCgidmlzaWJsZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBoaWRkZW4oQVNDSUlMaXRlcmFsKCJoaWRkZW4iKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcHJlcmVuZGVyKEFTQ0lJTGl0ZXJh
bCgicHJlcmVuZGVyIikpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgUGFnZVZp
c2liaWxpdHlTdGF0ZVZpc2libGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
VXNlclRpbWluZy5jcHAKaW5kZXggZTA3NDM0YzIzYzY4YzU2NTQyZjAwMTI3ZjVkOWMzNWVhMGU0
MGU3MS4uNDE3NzY1ZWFjYjEzNDhlZTYxYTVkZmMzZDc3ZjlhNWVlZTJhNzRhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApAQCAtNDEsNyArNDEs
NyBAQCBuYW1lc3BhY2UgewogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTmF2aWdhdGlvblRpbWlu
Z0Z1bmN0aW9uPiBSZXN0cmljdGVkS2V5TWFwOwogc3RhdGljIFJlc3RyaWN0ZWRLZXlNYXAgcmVz
dHJpY3RlZEtleU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJl
c3RyaWN0ZWRLZXlNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXN0
cmljdGVkS2V5TWFwPiBtYXAoKTsKICAgICBpZiAobWFwLmlzRW1wdHkoKSkgewogICAgICAgICBt
YXAuYWRkKCJuYXZpZ2F0aW9uU3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25T
dGFydCk7CiAgICAgICAgIG1hcC5hZGQoInVubG9hZEV2ZW50U3RhcnQiLCAmUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50U3RhcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5
LmNwcAppbmRleCA3MGQ2OWEwM2EwZjkxOTc5Yjg5OTBjYzZiMmNmMTVjNDk2OWJjNjM5Li4zMzk2
NjI2NmQ1MWQ1ZTdhZmMxYzQyMjA4ZWZlZDk3MjE0YTIzODMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5UG9saWN5LmNwcApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8T3JpZ2luQWNjZXNzV2hpdGVMaXN0Pj4gT3JpZ2luQWNjZXNz
TWFwOwogCiBzdGF0aWMgT3JpZ2luQWNjZXNzTWFwJiBvcmlnaW5BY2Nlc3NNYXAoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPcmlnaW5BY2Nlc3NNYXAsIG9yaWdpbkFj
Y2Vzc01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPcmlnaW5BY2Nlc3NNYXA+
IG9yaWdpbkFjY2Vzc01hcCgpOwogICAgIHJldHVybiBvcmlnaW5BY2Nlc3NNYXA7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAppbmRleCAxZDY3
NGI5YjhmYjBjZjNkNzNkZjU1YWM4NzE2YzY5ZTRjM2U3NjRkLi4wZDk0ODc0YWFiNjY4ZjZkMWVk
OGQzYjgwMDRjZjI5Mjk5YjNlYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29u
dGVudFVSTFBhdHRlcm4uY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+CiAKIGJvb2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpwYXJzZShjb25zdCBTdHJpbmcmIHBh
dHRlcm4pCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc2NoZW1lU2VwYXJhdG9yLCAoQVNDSUlMaXRlcmFsKCI6Ly8iKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHNjaGVtZVNlcGFyYXRvcihBU0NJSUxpdGVyYWwo
IjovLyIpKTsKIAogICAgIHNpemVfdCBzY2hlbWVFbmRQb3MgPSBwYXR0ZXJuLmZpbmQoc2NoZW1l
U2VwYXJhdG9yKTsKICAgICBpZiAoc2NoZW1lRW5kUG9zID09IG5vdEZvdW5kKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3Bw
CmluZGV4IDVlNmVmMmFkNzc3MDA0N2I4NWJjZjE1YTE3MGQ3NmNkNjlmNTNhOTMuLjkyOTM3ZDYz
YzkxMjJmOGJhM2Q5Y2JjMGU5N2E0MDJlNDkwMWM2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTU4NCwx
MSArNTg0LDExIEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHNoYWRvd0xpc3RMZW5ndGgoY29uc3Qg
U2hhZG93RGF0YSogc2hhZG93KQogCiBzdGF0aWMgaW5saW5lIGNvbnN0IFNoYWRvd0RhdGEqIHNo
YWRvd0ZvckJsZW5kaW5nKGNvbnN0IFNoYWRvd0RhdGEqIHNyY1NoYWRvdywgY29uc3QgU2hhZG93
RGF0YSogb3RoZXJTaGFkb3cpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFNoYWRvd0RhdGEsIGRlZmF1bHRTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFs
LCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1bHRJbnNldFNoYWRvd0RhdGEsIChJbnRQb2ludCgp
LCAwLCAwLCBJbnNldCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTaGFkb3dEYXRhPiBkZWZhdWx0U2hhZG93RGF0YShJbnRQb2ludCgpLCAw
LCAwLCBOb3JtYWwsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTaGFkb3dEYXRhPiBkZWZhdWx0SW5zZXRTaGFkb3dEYXRhKEludFBvaW50KCks
IDAsIDAsIEluc2V0LCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KTsKIAotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0V2ViS2l0Qm94U2hhZG93
RGF0YSwgKEludFBvaW50KCksIDAsIDAsIE5vcm1hbCwgdHJ1ZSwgQ29sb3I6OnRyYW5zcGFyZW50
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1
bHRJbnNldFdlYktpdEJveFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBJbnNldCwgdHJ1
ZSwgQ29sb3I6OnRyYW5zcGFyZW50KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNoYWRv
d0RhdGE+IGRlZmF1bHRXZWJLaXRCb3hTaGFkb3dEYXRhKEludFBvaW50KCksIDAsIDAsIE5vcm1h
bCwgdHJ1ZSwgQ29sb3I6OnRyYW5zcGFyZW50KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U2hhZG93RGF0YT4gZGVmYXVsdEluc2V0V2ViS2l0Qm94U2hhZG93RGF0YShJbnRQb2ludCgpLCAw
LCAwLCBJbnNldCwgdHJ1ZSwgQ29sb3I6OnRyYW5zcGFyZW50KTsKIAogICAgIGlmIChzcmNTaGFk
b3cpCiAgICAgICAgIHJldHVybiBzcmNTaGFkb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCBkZDU1YzI4NGFjOGQ4
YzkyNjQ0Mjc2N2JlNTZjYWI3OWZmZmEyMjFiLi5iYTYzODM5NDQ0M2ViOTZhZWUzNjgyMjZkZjI2
ZDY1NDRhNzZlMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lkIENvbXBvc2l0
ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRl
cmVyLCBSZW5kZQogICAgICAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3JkZXIgbWFwLgogICAg
ICAgICBtX2tleWZyYW1lQW5pbWF0aW9uT3JkZXJNYXAuY2xlYXIoKTsKIAotICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub25lLCAoIm5v
bmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgCiAgICAgICAgIC8vIE5vdyBt
YXJrIGFueSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3
IGFuaW1hdGlvbnMuCiAgICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcAppbmRleCA5MzU5M2FkMjdkOWE2ZDAzZTdkYjQwZWQ0
YzhjMmM4YzkxZGQwZTdiLi42OWRmMGU3ZWJhYzJkMDI4YjI1ZGVkM2MwNjQ0OTQ0ODM5ZjliMzli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKQEAgLTE4OSwyNTkgKzE4OSwyNTkgQEAg
UGxhdGZvcm1DdXJzb3IgQ3Vyc29yOjpwbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAKIGNvbnN0IEN1
cnNvciYgcG9pbnRlckN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6UG9pbnRlcikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpQb2ludGVyKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29u
c3QgQ3Vyc29yJiBjcm9zc0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q3Jvc3MpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Q3Jvc3MpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIGhhbmRDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkhhbmQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6SGFuZCk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgbW92ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6TW92ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
dXJzb3I+IGMoQ3Vyc29yOjpNb3ZlKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiB2ZXJ0aWNhbFRleHRDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlZlcnRpY2FsVGV4dCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpWZXJ0aWNhbFRleHQpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIGNlbGxDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNlbGwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Q2VsbCk7CiAgICAgcmV0dXJuIGM7CiB9
CiAKIGNvbnN0IEN1cnNvciYgY29udGV4dE1lbnVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNvbnRleHRNZW51KSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNvbnRleHRNZW51KTsK
ICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBhbGlhc0N1cnNvcigpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6QWxpYXMp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6QWxpYXMpOwog
ICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHpvb21JbkN1cnNvcigpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Wm9vbUlu
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Olpvb21Jbik7
CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgem9vbU91dEN1cnNvcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Wm9v
bU91dCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpab29t
T3V0KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb3B5Q3Vyc29yKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpD
b3B5KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNvcHkp
OwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vbmVDdXJzb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vbmUp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9uZSk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgcHJvZ3Jlc3NDdXJzb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlByb2dy
ZXNzKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlByb2dy
ZXNzKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub0Ryb3BDdXJzb3IoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
Ok5vRHJvcCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpO
b0Ryb3ApOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vdEFsbG93ZWRDdXJz
b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6Ok5vdEFsbG93ZWQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBj
KEN1cnNvcjo6Tm90QWxsb3dlZCk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYg
aUJlYW1DdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OklCZWFtKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6OklCZWFtKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB3
YWl0Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpXYWl0KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4g
YyhDdXJzb3I6OldhaXQpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGhlbHBD
dXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMs
IChDdXJzb3I6OkhlbHApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1
cnNvcjo6SGVscCk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgZWFzdFJlc2l6
ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6RWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJz
b3I+IGMoQ3Vyc29yOjpFYXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vy
c29yJiBub3J0aFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9ydGhSZXNpemUpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoRWFzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhFYXN0
UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5v
cnRoRWFzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhX
ZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplKTsKICAgICByZXR1cm4g
YzsKIH0KIAogY29uc3QgQ3Vyc29yJiBzb3V0aFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhSZXNpemUp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6U291dGhSZXNp
emUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHNvdXRoRWFzdFJlc2l6ZUN1
cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywg
KEN1cnNvcjo6U291dGhFYXN0UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1
cnNvcj4gYyhDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNv
bnN0IEN1cnNvciYgc291dGhXZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFdlc3RSZXNpemUpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6U291dGhXZXN0UmVz
aXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB3ZXN0UmVzaXplQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpXZXN0UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhD
dXJzb3I6Oldlc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5v
cnRoU291dGhSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoU291dGhSZXNpemUpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6ZSk7CiAgICAg
cmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgZWFzdFdlc3RSZXNpemVDdXJzb3IoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkVh
c3RXZXN0UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJz
b3I6OkVhc3RXZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBu
b3J0aEVhc3RTb3V0aFdlc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6
ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpOb3J0aEVh
c3RTb3V0aFdlc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5v
cnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhXZXN0U291dGhFYXN0UmVzaXpl
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2Vz
dFNvdXRoRWFzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgY29s
dW1uUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpDb2x1bW5SZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Q29sdW1uUmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0K
IAogY29uc3QgQ3Vyc29yJiByb3dSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlJvd1Jlc2l6ZSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpSb3dSZXNpemUpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG1pZGRsZVBhbm5pbmdDdXJzb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok1pZGRs
ZVBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6
TWlkZGxlUGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIGVh
c3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0UGFubmluZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpFYXN0UGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9CiAg
ICAgCiBjb25zdCBDdXJzb3ImIG5vcnRoUGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhQYW5uaW5nKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoUGFubmlu
Zyk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIG5vcnRoRWFzdFBhbm5p
bmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9ydGhFYXN0UGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9
CiAgICAgCiBjb25zdCBDdXJzb3ImIG5vcnRoV2VzdFBhbm5pbmdDdXJzb3IoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2Vz
dFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6
Tm9ydGhXZXN0UGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3Im
IHNvdXRoUGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoUGFubmluZyk7CiAgICAgcmV0dXJuIGM7
CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIHNvdXRoRWFzdFBhbm5pbmdDdXJzb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRo
RWFzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNv
cjo6U291dGhFYXN0UGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJz
b3ImIHNvdXRoV2VzdFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmcpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6U291dGhXZXN0UGFubmluZyk7
CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIHdlc3RQYW5uaW5nQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpXZXN0UGFubmluZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMo
Q3Vyc29yOjpXZXN0UGFubmluZyk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYg
Z3JhYkN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6R3JhYikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+
IGMoQ3Vyc29yOjpHcmFiKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBncmFi
YmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6R3JhYmJpbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vy
c29yPiBjKEN1cnNvcjo6R3JhYmJpbmcpOwogICAgIHJldHVybiBjOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MYW5ndWFnZS5jcHAKaW5kZXggYzI4OTJlNDVmZmQ5NjQzNzI1ZGM4NGE3Y2MwZTI2
OWJlNzBmMDc2YS4uZmI4NDE0MDhkM2U0NmQyZjA2ZmY0ZTM1NGZiYjNhMjk0MDI5MGU2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2
ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7CiBzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFw
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoT2JzZXJ2ZXJNYXAsIG1h
cCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPYnNlcnZlck1hcD4gbWFwKCk7CiAg
ICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAppbmRleCBlMGNhNTM2NmU3MjRjNGI5NmY5NzZmZTY3YTBmMDAyMmY2YzkwYzIy
Li40YTUwZjg2NjFmY2M2NGFlNDE5YjBjMTViYjJkOTYxMjQ2NGMyNTE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNzksNyArNzksNyBAQCBz
dGF0aWMgU3RyaW5nIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luYWwpCiAKICAgICAvLyBUcnVuY2F0ZSB0aGUgc3RyaW5nIGlmIGl0J3MgdG9vIGxv
bmcuIFRoaXMgaXMgaW4gY29uc2lzdGVuY3kgd2l0aCBBcHBLaXQuCiAgICAgdW5zaWduZWQgbWF4
TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSA9IDI0OwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVsbGlwc2lzLCAoJmhvcml6b250YWxF
bGxpcHNpcywgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVsbGlwc2lz
KCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogCiAgICAgU3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5h
bC5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBu
dW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9mR3JhcGhl
bWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcAppbmRleCBhNDAwZGYzYWUzYTkxNmYwNjY4Zjc0YzcyNWUxNzMz
NDFmMDRhMTg4Li40NzYyYWNjYWJiYWI1YWM2Yjg0ODI2ZDY3MTRkODdjNTU3NTViZDJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMzUwLDcg
KzM1MCw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWROb25JbWFnZU1pbWVUeXBl
cygpCiAKIHN0YXRpYyBNZWRpYU1JTUVUeXBlTWFwJiBtZWRpYU1JTUVUeXBlTWFwKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFNSU1FVHlwZU1hcCwgbWVkaWFN
SU1FVHlwZUZvckV4dGVuc2lvbk1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxN
ZWRpYU1JTUVUeXBlTWFwPiBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwKCk7CiAKICAgICBp
ZiAoIW1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcDsKQEAgLTY0MCw3ICs2NDAsNyBAQCBIYXNo
U2V0PFN0cmluZz4mIE1JTUVUeXBlUmVnaXN0cnk6OmdldFVuc3VwcG9ydGVkVGV4dE1JTUVUeXBl
cygpCiAKIGNvbnN0IFN0cmluZyYgZGVmYXVsdE1JTUVUeXBlKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZhdWx0TUlNRVR5cGUsIChBU0NJ
SUxpdGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZGVmYXVsdE1JTUVUeXBlKEFTQ0lJTGl0ZXJhbCgiYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtIikpOwogICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCmluZGV4IGQ1MjAyZGJjNTA0MTM1Njg3MmJjZDU1YTIwMTJmM2RjNjA3MzExNjMuLjZlNThi
Y2I1Nzk5NDU0MDIzMTIwZmE5OTg2OWYzMjEzNDMwMjYxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNDksNyArNDksNyBA
QCBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzX2xvZ2dpbmdFbmFi
bGVkID0gZmFsc2U7CiAKIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgbWVtb3J5UHJlc3N1cmVIYW5k
bGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLCBzdGF0aWNNZW1vcnlQcmVzc3VyZUhhbmRsZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TWVtb3J5UHJlc3N1cmVIYW5kbGVyPiBzdGF0aWNNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIoKTsKICAgICByZXR1cm4gc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXggN2RjM2Iy
YjUwOTc1ZjdhZjQzYmMyMDlhMjIzMjgyOTMyMGM4Yjc0MS4uZmUyZGZlZDUxNjBjNDMzYjY2NDIw
NWQ0N2NhMDRlYWRkNmIwMWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJl
Z2lzdHJ5LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBVUkxTY2hlbWVzTWFwJiBsb2NhbFVSTFNjaGVtZXMoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBsb2NhbFNjaGVtZXMsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gbG9jYWxTY2hlbWVzKCk7CiAKICAg
ICBpZiAobG9jYWxTY2hlbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBsb2NhbFNjaGVtZXMuYWRk
KCJmaWxlIik7CkBAIC00NiwxMyArNDYsMTMgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIGxvY2Fs
VVJMU2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBkaXNwbGF5SXNvbGF0ZWRVUkxT
Y2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1l
c01hcCwgZGlzcGxheUlzb2xhdGVkU2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVUkxTY2hlbWVzTWFwPiBkaXNwbGF5SXNvbGF0ZWRTY2hlbWVzKCk7CiAgICAgcmV0dXJu
IGRpc3BsYXlJc29sYXRlZFNjaGVtZXM7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1
cmVTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2No
ZW1lc01hcCwgc2VjdXJlU2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
UkxTY2hlbWVzTWFwPiBzZWN1cmVTY2hlbWVzKCk7CiAKICAgICBpZiAoc2VjdXJlU2NoZW1lcy5p
c0VtcHR5KCkpIHsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5hZGQoImh0dHBzIik7CkBAIC02NSw3
ICs2NSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVTY2hlbWVzKCkKIAogc3RhdGlj
IFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucygpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNXaXRoVW5pcXVl
T3JpZ2lucywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFwPiBz
Y2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKTsKIAogICAgIGlmIChzY2hlbWVzV2l0aFVuaXF1ZU9y
aWdpbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucy5hZGQo
ImFib3V0Iik7CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVz
V2l0aFVuaXF1ZU9yaWdpbnMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgZW1wdHlEb2N1bWVu
dFNjaGVtZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hl
bWVzTWFwLCBlbXB0eURvY3VtZW50U2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVUkxTY2hlbWVzTWFwPiBlbXB0eURvY3VtZW50U2NoZW1lcygpOwogCiAgICAgaWYgKGVt
cHR5RG9jdW1lbnRTY2hlbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZW1wdHlEb2N1bWVudFNjaGVt
ZXMuYWRkKCJhYm91dCIpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+
JiBzY2hlbWVzRm9yYmlkZGVuRnJvbURvbWFpblJlbGF4YXRpb24oKQogCiBzdGF0aWMgVVJMU2No
ZW1lc01hcCYgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgY2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3RTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNj
aGVtZXNNYXA+IGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcygpOwogCiAgICAgaWYg
KGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
Y2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzLmFkZCgiYmxvYiIpOwpAQCAtMTA3LDcg
KzEwNyw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVz
dFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0
VVJMc1NjaGVtZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxT
Y2hlbWVzTWFwLCBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2NoZW1lcywgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFwPiBub3RBbGxvd2luZ0phdmFzY3JpcHRV
UkxzU2NoZW1lcygpOwogICAgIHJldHVybiBub3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzU2NoZW1l
czsKIH0KIApAQCAtMTM0LDIwICsxMzQsMjAgQEAgY29uc3QgVVJMU2NoZW1lc01hcCYgU2NoZW1l
UmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVz
QWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNBbGxvd2lu
Z0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFj
Y2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAgcmV0dXJuIHNjaGVtZXNBbGxvd2luZ0xvY2Fs
U3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01h
cCYgc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNB
bGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nl
c3NJblByaXZhdGVCcm93c2luZygpOwogICAgIHJldHVybiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFz
ZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ09S
U0VuYWJsZWRTY2hlbWVzKCkKIHsKICAgICAvLyBGSVhNRTogaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNjAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoVVJMU2NoZW1lc01hcCwgQ09SU0VuYWJsZWRTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IENPUlNFbmFibGVkU2NoZW1lcygpOwogCiAgICAg
aWYgKENPUlNFbmFibGVkU2NoZW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgQ09SU0VuYWJsZWRT
Y2hlbWVzLmFkZCgiaHR0cCIpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVz
TWFwJiBDT1JTRW5hYmxlZFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ29udGVu
dFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lcygpOwogICAgIHJldHVybiBzY2hl
bWVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJU
aGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKaW5k
ZXggOGVkMmQ5NTk5N2I1NGMwMzlmNzBiNDZiNWJiMjQ3OWRlNzBjZWY3MC4uZTIyOGMzNTY1MTUx
N2ZmYjQ4ZWNhZTY2YmYzMTZlYmY5ZjQ4OTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGJhclRoZW1lLmNwcApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkKIHsKICAgICBpZiAoU2V0
dGluZ3M6Om1vY2tTY3JvbGxiYXJzRW5hYmxlZCgpKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZU1vY2ssIG1vY2tUaGVtZSwgKCkpOwotICAg
ICAgICByZXR1cm4gJm1vY2tUaGVtZTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNj
cm9sbGJhclRoZW1lTW9jaz4gbW9ja1RoZW1lKCk7CisgICAgICAgIHJldHVybiAmbW9ja1RoZW1l
LmdldCgpOwogICAgIH0KICAgICByZXR1cm4gbmF0aXZlVGhlbWUoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9VUkwuY3BwCmluZGV4IDI2M2U0ZDQ2YjY2MmNiZjgzM2UyZTYyZWRiZmJlOTA5YzkyNjJkOWYu
LjEwZWNlNmQ4NTdlOTVjNTZmMDBkMzYzNGU5NGU3NWViNDVkZDg3MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVVJMLmNwcApAQCAtMTgwNiw3ICsxODA2LDcgQEAgYm9vbCBwcm90b2NvbElzSW5IVFRQRmFt
aWx5KGNvbnN0IFN0cmluZyYgdXJsKQogCiBjb25zdCBVUkwmIGJsYW5rVVJMKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMLCBzdGF0aWNCbGFua1VSTCwgKFBhcnNl
ZFVSTFN0cmluZywgImFib3V0OmJsYW5rIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
Ukw+IHN0YXRpY0JsYW5rVVJMKFBhcnNlZFVSTFN0cmluZywgImFib3V0OmJsYW5rIik7CiAgICAg
cmV0dXJuIHN0YXRpY0JsYW5rVVJMOwogfQogCkBAIC0xODIxLDcgKzE4MjEsNyBAQCBib29sIGlz
RGVmYXVsdFBvcnRGb3JQcm90b2NvbCh1bnNpZ25lZCBzaG9ydCBwb3J0LCBjb25zdCBTdHJpbmcm
IHByb3RvY29sKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCB1bnNpZ25lZCwgQ2FzZUZvbGRpbmdIYXNoPiBEZWZhdWx0UG9ydHNNYXA7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERlZmF1bHRQb3J0c01hcCwgZGVmYXVsdFBv
cnRzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERlZmF1bHRQb3J0c01hcD4gZGVm
YXVsdFBvcnRzKCk7CiAgICAgaWYgKGRlZmF1bHRQb3J0cy5pc0VtcHR5KCkpIHsKICAgICAgICAg
ZGVmYXVsdFBvcnRzLnNldCgiaHR0cCIsIDgwKTsKICAgICAgICAgZGVmYXVsdFBvcnRzLnNldCgi
aHR0cHMiLCA0NDMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmNwcAppbmRleCAzYjdjYTM0NWRhNTNiYzQ5ZTQzYjVjY2QzNGMxOGE0NTYwYzUxZTJm
Li5lMmNjN2I3ODY5OWQ5MmIxMjU3YmM5M2M5NDA2NTE5MTFhNzU2N2M4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcApAQCAtMTM2LDcgKzEz
Niw3IEBAIGJvb2wgQW5pbWF0aW9uOjphbmltYXRpb25zTWF0Y2goY29uc3QgQW5pbWF0aW9uKiBv
LCBib29sIG1hdGNoUGxheVN0YXRlcykgY29uc3QKIAogY29uc3QgU3RyaW5nJiBBbmltYXRpb246
OmluaXRpYWxBbmltYXRpb25OYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBpbml0aWFsVmFsdWUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGluaXRpYWxWYWx1ZShBU0NJSUxpdGVyYWwo
Im5vbmUiKSk7CiAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggZTIwMjE0ODRjODMzYjJi
YzliNDFmNjQ2OGU0NTNmYjhmODczNzdkZC4uODRhY2Y1ZDVlODEzZjg1MDRkZDhjMDE5NjAwYWM0
M2ExNmJiZDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nl
c3Npb24uY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9T
ZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb1Nlc3Npb24sIHNlc3Npb24sICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPiBzZXNzaW9uKCk7CiAgICAgcmV0dXJuIHNl
c3Npb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZFbGV2YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZh
dGlvbi5jcHAKaW5kZXggM2U3NzQ3ODVhNThkZmEzZjA2OTQxNTBmM2M4MzFiMGU4NjRmN2Q3Yy4u
ZGFlYTY3MGM4MmMyYTgxMDIyY2IxNGM1YmNhYmE2OTljOGVjZTdiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5jcHAKQEAgLTY4LDcgKzY4LDcg
QEAgY29uc3QgZmxvYXQgUmVzcG9uc2VTYW1wbGVSYXRlID0gNDQxMDA7CiBzdGF0aWMgQXVkaW9C
dXMqIGdldENvbmNhdGVuYXRlZEltcHVsc2VSZXNwb25zZXNGb3JTdWJqZWN0KGNvbnN0IFN0cmlu
ZyYgc3ViamVjdE5hbWUpCiB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQXVkaW9CdXMq
PiBBdWRpb0J1c01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9C
dXNNYXAsIGF1ZGlvQnVzTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlv
QnVzTWFwPiBhdWRpb0J1c01hcCgpOwogCiAgICAgQXVkaW9CdXMqIGJ1czsKICAgICBBdWRpb0J1
c01hcDo6aXRlcmF0b3IgaXRlcmF0b3IgPSBhdWRpb0J1c01hcC5maW5kKHN1YmplY3ROYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAKaW5kZXggMWMwZTdhZTNhNzdlMDBlNmRhY2YwNTMzMDdlOTY4YjE5YTJjZmU3Yy4u
ZGYyODNjMzM0Yjg1NmU2MDE1MjFjZjVlNTY1Nzc1OGM3ZDViOGRlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmICFQTEFURk9STShJT1MpCiBN
ZWRpYVNlc3Npb25NYW5hZ2VyJiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFuYWdl
ciwgbWFuYWdlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZWRpYVNlc3Npb25N
YW5hZ2VyPiBtYW5hZ2VyKCk7CiAgICAgcmV0dXJuIG1hbmFnZXI7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9u
SU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0
aW9uSU9TLmNwcAppbmRleCAyNTM5NTE5ODVkZmUyNjVjY2ViN2QyMTRkY2ZjNTMxNDFhNDc1Nzk2
Li41YjRkMTRlNDM2YjM1MDRmMTQ5OGRlYjQ1YTY3MThkYzJmMmZlYTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25J
T1MuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGNvbnN0IGludCBrUHJlZmVycmVkQnVmZmVyU2l6ZSA9
IDI1NjsKIHR5cGVkZWYgSGFzaFNldDxBdWRpb0Rlc3RpbmF0aW9uSU9TKj4gQXVkaW9EZXN0aW5h
dGlvblNldDsKIHN0YXRpYyBBdWRpb0Rlc3RpbmF0aW9uU2V0JiBhdWRpb0Rlc3RpbmF0aW9ucygp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF1ZGlvRGVzdGluYXRpb25T
ZXQsIGF1ZGlvRGVzdGluYXRpb25TZXQsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXVkaW9EZXN0aW5hdGlvblNldD4gYXVkaW9EZXN0aW5hdGlvblNldCgpOwogICAgIHJldHVybiBh
dWRpb0Rlc3RpbmF0aW9uU2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCmluZGV4IGU1ZWI3
N2RiMzhmMzk3YTdhMGQ5M2MwMGM5YjRlYTUzZmMxZTdhYzMuLjNkYmZlNmVkNTY4MTJlZTBhNjM4
YWY1N2RiYWViMThkYjA1ZGRmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBAIC0xMDgsNyAr
MTA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZWRpYVNlc3Npb25NYW5hZ2VyJiBNZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFuYWdlcmlPUywgbWFuYWdlciwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZWRpYVNlc3Npb25NYW5hZ2VyaU9TPiBtYW5hZ2VyKCk7
CiAgICAgcmV0dXJuIG1hbmFnZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAKaW5kZXggY2VlMTRiNzQ3YjJhNWM5NTliYjc5
NWY3Y2U0ZTU2MzRhZGM3N2MyYS4uYTJkYWRiZGIwNzY2NWQzOWFhODIxMDAxYzU5MWYxMDdkNTRi
ZGU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0
aWxpdGllcy5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgQ3Vyc29yTWFwOjpDdXJzb3JNYXAoKQogCiBp
bnQgZ2V0RWNvcmVDdXJzb3IoY29uc3QgU3RyaW5nJiBjdXJzb3JTdHJpbmcpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvck1hcCwgY3Vyc29yU3RyaW5nTWFwLCAo
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvck1hcD4gY3Vyc29yU3RyaW5nTWFw
KCk7CiAKICAgICByZXR1cm4gY3Vyc29yU3RyaW5nTWFwLmN1cnNvcihjdXJzb3JTdHJpbmcpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2YTkzN2E5
ZTA0ZWFjMTZkNGNjMTlhNzYyY2ZmNTIzZjQ0YjIxN2E2Li45MDEwNWFkMjJkZjllYjNiZjc3YTRk
NjQ2YzJkMThiMGIxYWE3Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Rm9udEdseXBoc0NhY2hlS2V5JiBhLCBjb25zdCBGb250R2x5cGhzQ2FjaGVLZXkmIGIpCiAKIHN0
YXRpYyBGb250R2x5cGhzQ2FjaGUmIGZvbnRHbHlwaHNDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRHbHlwaHNDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udEdseXBoc0NhY2hlPiBjYWNoZSgpOwogICAgIHJldHVy
biBjYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29u
dGV4dC5jcHAKaW5kZXggOGE5M2Y1ZjE3MDBjMjEwZjE3OGY5NTkzM2UxZjUwMmVhYjQ4YmM0Yy4u
YzlkY2M0NDYyODlkMWQzNTQwNDY3MzNmM2NjMTQwMDAyZjNhYzVlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xMDAsNyArMTAwLDcg
QEAgdm9pZCBHTENvbnRleHQ6OmNsZWFudXBTaGFyZWRYMTFEaXNwbGF5KCkKIHR5cGVkZWYgVmVj
dG9yPEdMQ29udGV4dCo+IEFjdGl2ZUNvbnRleHRMaXN0Owogc3RhdGljIEFjdGl2ZUNvbnRleHRM
aXN0JiBhY3RpdmVDb250ZXh0TGlzdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEFjdGl2ZUNvbnRleHRMaXN0LCBhY3RpdmVDb250ZXh0cywgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBY3RpdmVDb250ZXh0TGlzdD4gYWN0aXZlQ29udGV4dHMoKTsKICAg
ICByZXR1cm4gYWN0aXZlQ29udGV4dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYTY0NGI3N2EwNGU3ZWM5ZjYz
Y2ZiMTJmNWIzOWZhNDNhYmZiM2Y4My4uYjllNmI4ODk0OTdlNmE1NGMwMGQ5MmFkMWM1NDk4YjNm
NmRiODdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlw
ZWRlZiBIYXNoTWFwPGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBWZWN0b3I8RmxvYXRSZWN0Pj4gUmVw
YWludE1hcDsKIHN0YXRpYyBSZXBhaW50TWFwJiByZXBhaW50UmVjdE1hcCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlcGFpbnRNYXAsIG1hcCwgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZXBhaW50TWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKaW5kZXggZDA4ZmZiMWIwNTY3N2VmZDE3NjAwMTc3M2ZlYmE4ZWU5ODVmN2YzNS4uOTAwZTQ0
MmU1ZmZlMDI2Y2NlNTE4MzNlM2RmMDI4YTdiZDkwNGFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMjQwLDE5ICsyNDAsMTkg
QEAgc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29u
c3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG8KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
YXBwbGljYXRpb25PY3RldFN0cmVhbSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXBwbGljYXRpb25PY3RldFN0cmVhbSwgKCJhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gYXBwbGlj
YXRpb25PY3RldFN0cmVhbSgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFwcGxpY2F0aW9uT2N0ZXRTdHJl
YW07CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHRleHRQbGFpbigpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdGV4dFBs
YWluLCAoInRleHQvcGxhaW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdGV4dFBsYWlu
KCJ0ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIHRleHRQbGFpbjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29kZWNz
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBjb2RlY3MsICgiY29kZWNzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNvZGVj
cygiY29kZWNzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGNvZGVjczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcAppbmRleCA5MTdjZTA5Mzg3MzU5ZGQ2ODkzYWIzOGQwMTk5NTA2Mjc3YzUw
MmVhLi43ZTUyOTlmMzYyZDc4MWU4NzBiMTc1YjA5ZjYxZDY4MjZhYWZlYjBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTYxLDcg
KzE2MSw3IEBAIHByaXZhdGU6CiAKIFNjcmF0Y2hCdWZmZXImIFNjcmF0Y2hCdWZmZXI6OnNoYXJl
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmF0Y2hCdWZmZXIs
IHNjcmF0Y2hCdWZmZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2NyYXRjaEJ1
ZmZlcj4gc2NyYXRjaEJ1ZmZlcigpOwogICAgIHJldHVybiBzY3JhdGNoQnVmZmVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAppbmRleCBmZDI5NTkwMzdhMTQ1YTY0Njc0MGI5OTcyMjRjNjgxZDc5YWY4
YjIwLi43YTYwYWNmOTE3YWNlNmNlMjJlNzllYTAyYzA0NGFhM2NjNTBiMjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRi5jcHAKQEAgLTI1NywyMSArMjU3LDIxIEBAIHN0YXRpYyBDRkFycmF5UmVmIG1ldGFkYXRh
S2V5TmFtZXMoKQogLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBpZiBBVkNGVGltZWRNZXRh
ZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhpcyBrZXkuCiBzdGF0aWMgQ0ZTdHJpbmdSZWYgQ01UaW1l
UmFuZ2VTdGFydEtleSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENG
U3RyaW5nUmVmLCBrZXksIChDRlNUUigic3RhcnQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxDRlN0cmluZ1JlZj4ga2V5KENGU1RSKCJzdGFydCIpKTsKICAgICByZXR1cm4ga2V5Owog
fQogCiAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIEFWQ0ZUaW1lZE1ldGFkYXRhR3Jv
dXAuaCBleHBvcnRlZCB0aGlzIGtleS4KIHN0YXRpYyBDRlN0cmluZ1JlZiBDTVRpbWVSYW5nZUR1
cmF0aW9uS2V5KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJp
bmdSZWYsIGtleSwgKENGU1RSKCJkdXJhdGlvbiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPENGU3RyaW5nUmVmPiBrZXkoQ0ZTVFIoImR1cmF0aW9uIikpOwogICAgIHJldHVybiBrZXk7
CiB9CiAKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZDRiBleHBvcnRlZCB0aGlz
IG5vdGlmaWNhdGlvbiBuYW1lLgogc3RhdGljIENGU3RyaW5nUmVmIENBQ0ZDb250ZXh0TmVlZHNG
bHVzaE5vdGlmaWNhdGlvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KENGU3RyaW5nUmVmLCBuYW1lLCAoQ0ZTVFIoImtDQUNGQ29udGV4dE5lZWRzRmx1c2hOb3RpZmlj
YXRpb24iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRlN0cmluZ1JlZj4gbmFtZShD
RlNUUigia0NBQ0ZDb250ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbiIpKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTg0OGQ5OThmYTI4YmNlYzdk
ZTZmODAxNTFjNjAyN2IxNGI3ZDU0YS4uMDhiNWZjNTYyOTIyOTAwNWI2MTI0ZTFlNjA4MmVlMzdm
ZmZlYzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMjQsNyArMzI0LDcgQEAgc3Rh
dGljIGNvbnN0IGNoYXIgKmJvb2xTdHJpbmcoYm9vbCB2YWwpCiB0eXBlZGVmIEhhc2hNYXA8TWVk
aWFQbGF5ZXIqLCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKj4gUGxheWVyVG9Q
cml2YXRlTWFwVHlwZTsKIHN0YXRpYyBQbGF5ZXJUb1ByaXZhdGVNYXBUeXBlJiBwbGF5ZXJUb1By
aXZhdGVNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbGF5ZXJU
b1ByaXZhdGVNYXBUeXBlLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGxh
eWVyVG9Qcml2YXRlTWFwVHlwZT4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH07CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXll
ckNoYW5nZXNGbHVzaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcAppbmRleCA0YjAzNmNhNDBjZjhiZGEwNjU2OGRl
MGZhNTFiNGYwMzFjODViMjY3Li41ZDgyMjJkOTA2ZWRiMmU5NzlhZDE4MjI5MDQ2MzllMTZhNDQ3
NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
TGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogTGF5ZXJDaGFuZ2VzRmx1c2hlciYgTGF5ZXJDaGFuZ2VzRmx1
c2hlcjo6c2hhcmVkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGF5
ZXJDaGFuZ2VzRmx1c2hlciwgZmx1c2hlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxMYXllckNoYW5nZXNGbHVzaGVyPiBmbHVzaGVyKCk7CiAgICAgcmV0dXJuIGZsdXNoZXI7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
U291cmNlQ0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VTb3VyY2VDR1dpbi5jcHAKaW5kZXggODA4ODMwYjhiODU3YmQyODZiODNmZThkNDRjNDZhOTQx
NzA5N2EzNS4uYWIwMjc5ZjQ5MzRmZWE3MzY3NjY5NjQxMjM3ZjlhNWE3NzY1OGQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDR1dp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3Vy
Y2VDR1dpbi5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgU3RyaW5nIHByZWZlcnJlZEV4dGVuc2lvbkZv
ckltYWdlU291cmNlVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gU3RyaW5nTWFwOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdNYXAsIFVUSU1hcCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmdNYXA+IFVUSU1hcCgpOwogICAgIGlm
IChVVElNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIFVUSU1hcC5hZGQoInB1YmxpYy5odG1sIiwg
Imh0bWwiKTsKICAgICAgICAgVVRJTWFwLmFkZCgicHVibGljLmpwZWciLCAianBlZyIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUFscGhhLmNwcAppbmRleCA4ZDM0OWY0NWI4MTViZjEyYTQxYThkNzRjYzhjNjU0MWI4NDM2NTI5
Li42ZDJiZmI4ZDliNmZjY2U0YWMzY2E1ZWQ1MGE4ODY5MTkxMjE3OGYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPFNvdXJjZUFscGhhPiBTb3VyY2VBbHBo
YTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNvdXJjZUFs
cGhhOjplZmZlY3ROYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlQWxwaGEiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21pY1N0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2VmZmVjdE5hbWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IGQwMDE5NjlhMGZjOWQ4MDZiODAzNDJhNjRmMjYy
MTRkNzhkNWZhOTIuLjk5MWUyYzhmNmJhZDk2ZTBhZTJlNWEzZjAzMDYwZTg5ZGU3MzZjYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMzcsNyArMzcsNyBAQCBQYXNzUmVmUHRyPFNvdXJjZUdy
YXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgi
U291cmNlR3JhcGhpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzX2VmZmVjdE5hbWUo
IlNvdXJjZUdyYXBoaWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAppbmRleCBiNWIz
MWZjMTljZjE1NGZmOWI0OWU3NDhjZjI1NTRiYTk1MzViNWEzLi44MjQ4MGM2NWM0OTdiZTI2NjI0
NmJlMzkzOGVhYWQ5YWNlMjk3Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKQEAgLTc0LDggKzc0
LDggQEAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RmFjZUNhY2hlRW50cnk+LCBX
VEY6OkludEhhc2g8dWludDY0X3Q+LCBXVEY6OlUKIAogc3RhdGljIEhhcmZCdXp6RmFjZUNhY2hl
KiBoYXJmQnV6ekZhY2VDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhcmZCdXp6RmFjZUNhY2hlLCBzX2hhcmZCdXp6RmFjZUNhY2hlLCAoKSk7Ci0gICAgcmV0
dXJuICZzX2hhcmZCdXp6RmFjZUNhY2hlOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXJm
QnV6ekZhY2VDYWNoZT4gc19oYXJmQnV6ekZhY2VDYWNoZSgpOworICAgIHJldHVybiAmc19oYXJm
QnV6ekZhY2VDYWNoZS5nZXQoKTsKIH0KIAogSGFyZkJ1enpGYWNlOjpIYXJmQnV6ekZhY2UoRm9u
dFBsYXRmb3JtRGF0YSogcGxhdGZvcm1EYXRhLCB1aW50NjRfdCB1bmlxdWVJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmlu
ZGV4IDY5MDIxYTUxMjVmZGY1OTY0NGFjMGRjOTYzN2UwNjEwNmIxMTY3MWIuLjBkYjk2ZGFlZjQ2
OGI3MTJmOTlmZWUwOTg0MDVlNGRiZDk5NzQ1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMTY2LDcgKzE2Niw3
IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnRQbGF0
Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0CiAgICAgICAgIGlmIChmYW1pbHkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHN0YXRpYyBTdHJpbmcqIG1hdGNoV29y
ZHNbM10gPSB7IG5ldyBTdHJpbmcoIkFyYWJpYyIpLCBuZXcgU3RyaW5nKCJQYXNodG8iKSwgbmV3
IFN0cmluZygiVXJkdSIpIH07Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGdlZXphU3RyLCAoIkdlZXphIFBybyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gZ2VlemFTdHIoIkdlZXphIFBybyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDMgJiYgIXNpbXBsZUZvbnRE
YXRhOyArK2opCiAgICAgICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zKCptYXRjaFdvcmRzW2pd
LCBmYWxzZSkpCiAgICAgICAgICAgICAgICAgc2ltcGxlRm9udERhdGEgPSBnZXRDYWNoZWRGb250
RGF0YShkZXNjcmlwdGlvbiwgZ2VlemFTdHIpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NSZWZQ
dHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0CiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6
Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0aW1lc1N0ciwgKCJUaW1lcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiB0aW1lc1N0cigiVGltZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIC8vIEZJWE1FOiBXb3VsZCBiZSBldmVuIGJldHRlciB0byBz
b21laG93IGdldCB0aGUgdXNlcidzIGRlZmF1bHQgZm9udCBoZXJlLiAgRm9yIG5vdyB3ZSdsbCBw
aWNrCiAgICAgLy8gdGhlIGRlZmF1bHQgdGhhdCB0aGUgdXNlciB3b3VsZCBnZXQgd2l0aG91dCBj
aGFuZ2luZyBhbnkgcHJlZnMuCkBAIC0xODgsNyArMTg4LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnRE
ZXNjcmkKICAgICAvLyB0aGUgdXNlciBkb2Vzbid0IGhhdmUgaXQsIHdlIGZhbGwgYmFjayBvbiBM
dWNpZGEgR3JhbmRlIGJlY2F1c2UgdGhhdCdzCiAgICAgLy8gZ3VhcmFudGVlZCB0byBiZSB0aGVy
ZSwgYWNjb3JkaW5nIHRvIE5hdGhhbiBUYXlsb3IuIFRoaXMgaXMgZ29vZCBlbm91Z2gKICAgICAv
LyB0byBhdm9pZCBhIGNyYXNoIGF0IGxlYXN0LgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGx1Y2lkYUdyYW5kZVN0ciwgKCJMdWNpZGEgR3JhbmRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IGx1Y2lkYUdyYW5kZVN0cigiTHVjaWRhIEdyYW5kZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBnZXRDYWNoZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIGx1Y2lkYUdyYW5kZVN0ciwgZmFsc2UsIHNob3VsZFJl
dGFpbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggODQ1Yzc3ZjcyYTU5ZmQwYzFiNjk3Y2E0YzhmNjk4
OGYzODdjNWQ5Zi4uNDE0NzI5OTczYjMwZGM4MDMwZWM3Nzg2OWY3MmRiMWZlNDVhM2ZhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNo
ZVdpbi5jcHAKQEAgLTMwOSw3ICszMDksNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBG
b250Q2FjaGU6OmZvbnREYXRhRnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGbwogCiBQ
YXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFj
a0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIFNob3VsZFJldGFp
biBzaG91bGRSZXRhaW4pCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZmFsbGJhY2tGb250TmFtZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGZhbGxiYWNrRm9udE5hbWUoKTsKICAgICBpZiAoIWZhbGxiYWNr
Rm9udE5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEoZm9u
dERlc2NyaXB0aW9uLCBmYWxsYmFja0ZvbnROYW1lLCBmYWxzZSwgc2hvdWxkUmV0YWluKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBs
YXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250UGxhdGZvcm1EYXRhLmNwcAppbmRleCBjYTZjYTVmODY4MDIzOTgxMGI1YTI0MjMxNDhkNTY3
MWYwMTdhNTY4Li40NTJmYWQ5ZTBhZDI1OGQ4NzQyYzViNTIyMDRkYjMwNjRjZjNkNjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250UGxhdGZv
cm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250UGxhdGZvcm1EYXRhLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0cnVjdCBGaXhlZFNpemVG
b250RGF0YUtleVRyYWl0cyA6IFdURjo6R2VuZXJpY0hhc2hUcmFpdHM8Rml4ZWRTaXplRm9udERh
dGFLZXk+CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAg
ICAgc3RhdGljIGNvbnN0IEZpeGVkU2l6ZUZvbnREYXRhS2V5JiBlbXB0eVZhbHVlKCkKICAgICB7
Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGaXhlZFNpemVGb250RGF0
YUtleSwga2V5LCAobnVsbEF0b20pKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZp
eGVkU2l6ZUZvbnREYXRhS2V5PiBrZXkobnVsbEF0b20pOwogICAgICAgICByZXR1cm4ga2V5Owog
ICAgIH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRml4ZWRTaXplRm9u
dERhdGFLZXkmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R2FtZXBhZHNHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3Rr
LmNwcAppbmRleCBhYjYzZGViNjZmNDYzNWQ2MTBkNmI3MGZjYmZkNDI5ZDY2NzZiYTUwLi5hNmIx
OTRmZDc1ZDA4ZTMzZGRkNTJjMGQ4Nzg1Mjg2ZDc1ZDViYTNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCBnYm9vbGVh
biBHYW1lcGFkc0d0azo6aXNHYW1lcGFkRGV2aWNlKEdVZGV2RGV2aWNlKiBkZXZpY2UpCiAKIHZv
aWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExpc3QqIGludG8pCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEdhbWVwYWRzR3RrLCBnYW1lcGFkc0d0aywgKGludG8tPmxlbmd0
aCgpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdhbWVwYWRzR3RrPiBnYW1lcGFkc0d0
ayhpbnRvLT5sZW5ndGgoKSk7CiAgICAgZ2FtZXBhZHNHdGsudXBkYXRlR2FtZXBhZExpc3QoaW50
byk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5k
aW5nVHJhbnNsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGlu
Z1RyYW5zbGF0b3IuY3BwCmluZGV4IDdhMWM0NGUxOWQ4NDQyMGJkZWYyMmUxMzk3YjQzODY1Yjc3
MTFmODguLjllNWY1MWIzNTJlNDhlMjBhOTFkNmI2NzdjM2ZkMDllZGQzODhhYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNw
cApAQCAtMjEzLDggKzIxMyw4IEBAIHZvaWQgS2V5QmluZGluZ1RyYW5zbGF0b3I6OmdldEVkaXRv
ckNvbW1hbmRzRm9yS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50LCBFdmVuCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW50Q29u
c3RDaGFySGFzaE1hcCwga2V5RG93bkNvbW1hbmRzTWFwLCAoKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleVByZXNzQ29tbWFuZHNN
YXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW50Q29uc3RDaGFySGFzaE1hcD4g
a2V5RG93bkNvbW1hbmRzTWFwKCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEludENvbnN0
Q2hhckhhc2hNYXA+IGtleVByZXNzQ29tbWFuZHNNYXAoKTsKIAogICAgIGlmIChrZXlEb3duQ29t
bWFuZHNNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBH
X05fRUxFTUVOVFMoa2V5RG93bkVudHJpZXMpOyBpKyspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKaW5kZXggOGYyMzgxYTI0ZGU0NTIyOGU5
OGYyYjdiMDgwMzZkMzEyODU2YzBiNS4uNjAwNzk4NTEwODUxNWM0MjM3ZWMzN2U0Yjg1NjMyMzQz
NmQ4YzIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9h
cmRIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJk
SGVscGVyLmNwcApAQCAtNzMsOCArNzMsOCBAQCBzdGF0aWMgdm9pZCBpbml0R2RrQXRvbXMoKQog
CiBQYXN0ZWJvYXJkSGVscGVyKiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhl
bHBlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhc3RlYm9hcmRI
ZWxwZXIsIGRlZmF1bHRIZWxwZXIsICgpKTsKLSAgICByZXR1cm4gJmRlZmF1bHRIZWxwZXI7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBhc3RlYm9hcmRIZWxwZXI+IGRlZmF1bHRIZWxwZXIo
KTsKKyAgICByZXR1cm4gJmRlZmF1bHRIZWxwZXIuZ2V0KCk7CiB9CiAKIFBhc3RlYm9hcmRIZWxw
ZXI6OlBhc3RlYm9hcmRIZWxwZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAKaW5kZXggZGUxNTQ0ZjZm
MjIwYzkzMjlkZGU2YmVkNzhiNTg0MjIxMzExNTJiOC4uNTNiNjY2MmYyNjcyNWU1ZmY1YTA3ODUw
ZmY0ODYwYjVjYTc2MDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwCkBAIC00Miw3ICs0Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxXaW5kb3csIFJlZGlyZWN0ZWRY
Q29tcG9zaXRlV2luZG93Kj4gV2luZG93SGFzaE1hcDsKIHN0YXRpYyBXaW5kb3dIYXNoTWFwJiBn
ZXRXaW5kb3dIYXNoTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
V2luZG93SGFzaE1hcCwgd2luZG93SGFzaE1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXaW5kb3dIYXNoTWFwPiB3aW5kb3dIYXNoTWFwKCk7CiAgICAgcmV0dXJuIHdpbmRvd0hh
c2hNYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0azMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrMy5jcHAKaW5kZXggMzYzMGM0M2RmZmRlNTljNmVhODQzYzM1YTM3ZThlOTQ2MTFlNGFlNS4u
ZGEzNDE4NGZmZjg5YmJmZWE5YjAzZGU2NzZmOTVjNzlkYzRkMzc3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgc3RhdGljIHZvaWQgZ3RrU3R5bGVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNw
ZWMqKQogCiBzdGF0aWMgU3R5bGVDb250ZXh0TWFwJiBzdHlsZUNvbnRleHRNYXAoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUNvbnRleHRNYXAsIG1hcCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHlsZUNvbnRleHRNYXA+IG1hcCgpOwogCiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBpZiAoIWluaXRpYWxpemVk
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggYzczMWFmNDg5MDUwMGNlYWI4ZjFjYWI5OGRmZGE3YTQyYmRl
MDdkZi4uZWFhNWY3YWRhNzhmNjBiMWUzY2JmZTM5YTM3MGQ2OTcxYWZmNmY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiBzdGF0aWMgdm9pZCBzY2hlZHVsZVNj
cmF0Y2hCdWZmZXJQdXJnZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLCBwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lciwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQdXJnZVNjcmF0Y2hCdWZmZXJUaW1lcj4gcHVyZ2VT
Y3JhdGNoQnVmZmVyVGltZXIoKTsKICAgICBpZiAocHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIuaXNB
Y3RpdmUoKSkKICAgICAgICAgcHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIuc3RvcCgpOwogICAgIHB1
cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLnN0YXJ0T25lU2hvdCgyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0N1cnNvcklPUy5jcHAKaW5kZXggZjk2YmZhZjcxMzY0ZTIyZDA4MjcyYzBlNWFl
NWZmZGE0ZWY4ZTkwMi4uYzk3ZTc0MGRmZjAwNmYxMDM4MDA4ZWIyYjIyN2E4OTk1MDU5NmFjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgQ3Vyc29yJiBjdXJzb3Io
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBDdXJzb3IsIGN1
cnNvciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBDdXJzb3I+IGN1cnNv
cigpOwogICAgIHJldHVybiBjdXJzb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAK
aW5kZXggOWE0Y2ZmY2E4N2I2NjE0N2U4MjBkMGQ0ODY5MjFiMzVlM2MxZmRlZS4uMGUxMzgzNjdj
NjQ0MWQ0YzAyMDMwM2Q4MTE4Y2UyNmYzNDc5YjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklP
Uy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI6
OnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldChpbnQgdGFyZ2V0KQogCiBUaWxlQ29udHJvbGxl
ck1lbW9yeUhhbmRsZXImIHRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwg
c3RhdGljVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcj4gc3RhdGljVGlsZUNvbnRyb2xs
ZXJNZW1vcnlIYW5kbGVyKCk7CiAgICAgcmV0dXJuIHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5
SGFuZGxlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IDkw
NmY5ODg3NzYzYTM1YjJkNTc4YjBjODI5NjgwYTAxYWI2ODNmYjUuLjUwMTBmMWMwM2RmZTE5OGNh
NWE2ZTE0YWU3MWQ2YTdjZjVjZjVhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQubW0KQEAgLTEzNCw4ICsxMzQsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdAogICAgICAg
ICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZTsKIAogICAgICAgICBpZiAobV9tZWRpYUVsZW1l
bnQtPm1lZGlhQ29udHJvbHNIb3N0KCkpIHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGFpcnBsYXksIChBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSkp
OwotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHZv
dXQsIChBU0NJSUxpdGVyYWwoInR2b3V0IikpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGFpcnBsYXkoQVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpOworICAgICAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHZvdXQoQVNDSUlMaXRlcmFsKCJ0
dm91dCIpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBtX21lZGlh
RWxlbWVudC0+bWVkaWFDb250cm9sc0hvc3QoKS0+ZXh0ZXJuYWxEZXZpY2VUeXBlKCk7CiAgICAg
ICAgICAgICBpZiAodHlwZSA9PSBhaXJwbGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAppbmRleCAwZmI4YWU5
OTAwYjhjZDM3NTllZDU2ZDMzZmQ0YjgxYmI3ZmFmMWU3Li4yMjg3OWU1N2I2NzllOTk4OWJmODQz
MGQ0ZWRkYmI4YmFkOTY5MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcApAQCAtNzcsOCArNzcsOCBAQCBz
dGF0aWMgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gKiBXZWJUaHJlYWRHZXRPYnNlcnZlZENvbnRl
bnRNb2RpZmllcnMoKQogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQo
KSk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHZvaWQgKiwgdm9pZCAqPiBWb2lkVm9pZE1hcDsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVm9pZFZvaWRNYXAsIG9ic2VydmVkQ29u
dGVudE1vZGlmaWVycywgKCkpOwotICAgIHJldHVybiAmb2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJz
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWb2lkVm9pZE1hcD4gb2JzZXJ2ZWRDb250ZW50
TW9kaWZpZXJzKCk7CisgICAgcmV0dXJuICZvYnNlcnZlZENvbnRlbnRNb2RpZmllcnMuZ2V0KCk7
CiB9CiAKIGludCBXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKHZvaWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA5ZDAz
MDNkMzRjM2EwYzNhYjFkNGQ1MDI1YTJhMGIzNjdlMjNkZDEyLi5jNWI1M2ViYjA0NmY3OTlmNDU3
NDlkOTg4MDZmMDlmYTgwYzZjZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KQEAgLTE2MCw3ICsxNjAsNyBAQCBjb25zdCBmbG9hdCBEcmFnTGlua1Vy
bEZvbnRTaXplID0gMTA7CiBzdGF0aWMgRm9udCYgZm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250
KQogewogICAgIHN0YXRpYyBOU0ZvbnQgKmN1cnJlbnRGb250OwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChGb250LCBjdXJyZW50UmVuZGVyZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Rm9udD4gY3VycmVudFJlbmRlcmVyKCk7CiAgICAgCiAgICAgaWYgKFtm
b250IGlzRXF1YWw6Y3VycmVudEZvbnRdKQogICAgICAgICByZXR1cm4gY3VycmVudFJlbmRlcmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1t
CmluZGV4IGFjYWFkMDJhZTZhODRlNmZkYTAxOGJiNTQ5YjY4MjUwYTJlZjIwYzAuLmI1MmJmMzAy
MjA2M2NjNzllN2NhOTVmMWEzZjA1OTkxYTUyYmZiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTExNCw4ICsxMTQsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxi
YXJUaGVtZU1hYywgdGhlbWUsICgpKTsKLSAgICByZXR1cm4gJnRoZW1lOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJUaGVtZU1hYz4gdGhlbWUoKTsKKyAgICByZXR1cm4gJnRo
ZW1lLmdldCgpOwogfQogCiAvLyBGSVhNRTogR2V0IHRoZXNlIG51bWJlcnMgZnJvbSBDb3JlVUku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggNTZkMGEyYjM5ZjAw
MGI1NmEzYzk5YTY5YjY5MzM5Y2Q1MGQyNzk4ZS4uZDk1NzIzYTU4YTM3MmQ2OTc4OWUxNmVmMWYx
ZGJlNmNkNjZkMjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Ro
ZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpA
QCAtMTM4LDggKzEzOCw4IEBAIGVudW0gewogCiBUaGVtZSogcGxhdGZvcm1UaGVtZSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRoZW1lTWFjLCB0aGVtZU1hYywgKCkp
OwotICAgIHJldHVybiAmdGhlbWVNYWM7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRoZW1l
TWFjPiB0aGVtZU1hYygpOworICAgIHJldHVybiAmdGhlbWVNYWMuZ2V0KCk7CiB9CiAKIC8vIEhl
bHBlciBmdW5jdGlvbnMgdXNlZCBieSBhIGJ1bmNoIG9mIGRpZmZlcmVudCBjb250cm9sIHBhcnRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGNlMTE1MDFkNzdiNjRiYjQ3ZTE4
ZDRmMTNlZGJmMWVjYmQ2ODc3NGIuLjJkNDU4YmQ0Yjk4ZDc5ZDcyMjQwMjM2NGE5YjVkZjY3ZmQw
NmE1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBA
QCBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNvbnN0
cmFpbnRzKCkgY29uc3QKIGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzJiBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6c3RhdGVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc291cmNlKSB7Ci0g
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlcywgbm9TdGF0ZSwgKCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM+IG5vU3RhdGUoKTsKICAgICAgICAgcmV0dXJu
IG5vU3RhdGU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAKaW5kZXggY2VkYjAzOTczNTkyMzAzMWI3YTk5Yjc3NjZmMDk4
YzhkNDkwMjE1MS4uYWY5ZDM5MzNkODAzOWI1ZmYwOTQ3MWM3ZTQyZmE3MzViNzliODQ3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCkBA
IC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhU3RyZWFtQ2VudGVyJiBN
ZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLCBjZW50ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI+IGNlbnRlcigpOwogICAgIHJldHVybiBjZW50ZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KaW5kZXggN2JmNzAzMzdiNGJl
ZTZkZjc1MjY4NjJkZjc3MTZmMjVjOTQ4MzUyOS4uYzM4N2YxMDRlODY2Y2YzZTg2OTFjOWU0YTVi
M2I2MzA2MjhhZGMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KQEAgLTE3
Niw3ICsxNzYsNyBAQCBib29sIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OmlzQXZhaWxhYmxlKCkK
IAogQVZDYXB0dXJlRGV2aWNlTWFuYWdlciYgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVk
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQVZDYXB0dXJlRGV2aWNl
TWFuYWdlciwgbWFuYWdlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVkNhcHR1
cmVEZXZpY2VNYW5hZ2VyPiBtYW5hZ2VyKCk7CiAgICAgcmV0dXJuIG1hbmFnZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0
cmVhbUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCmluZGV4IDhkOGQ5MGRmMTRjMmNmY2FiMmQwYjU3
ZThhOWY1YTg3NmU0YzU0ZmYuLjIyM2Y1NDRmZTBkZjUyYThkNGJkNGEyMGNhMjI5YmM0NzE2ZDFj
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcApAQCAtNDUsNyArNDUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBNZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJlYW1DZW50ZXI6
OnBsYXRmb3JtQ2VudGVyKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlck1hYywgY2VudGVy
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lZGlhU3RyZWFtQ2VudGVyTWFjPiBj
ZW50ZXIoKTsKICAgICByZXR1cm4gY2VudGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKaW5kZXggNDZkNzU1
MmE4M2U2MjE5NjJjMzhkOWQzODAwNzM4OWIzYjQzNGJlNy4uY2MxMGZlZTRmMjkxMmIzOWNiYTQ2
ZGUzNDFjYjIyYzRlYjI2ODFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcApAQCAtNjMsNyArNjMsNyBAQCB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TW9ja1NvdXJjZT4+IE1vY2tTb3VyY2VNYXA7CiAK
IHN0YXRpYyBNb2NrU291cmNlTWFwJiBtb2NrU291cmNlTWFwKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTW9ja1NvdXJjZU1hcCwgbW9ja1NvdXJjZU1hcCwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrU291cmNlTWFwPiBtb2NrU291cmNlTWFwKCk7
CiAgICAgcmV0dXJuIG1vY2tTb3VyY2VNYXA7CiB9CiAKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0
aWMgdm9pZCBpbml0aWFsaXplTW9ja1NvdXJjZXMoKQogCiB2b2lkIE1vY2tNZWRpYVN0cmVhbUNl
bnRlcjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChNb2NrTWVkaWFTdHJlYW1DZW50ZXIsIGNlbnRlciwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrTWVkaWFTdHJlYW1DZW50ZXI+IGNlbnRlcigp
OwogICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyZWQgPSBmYWxzZTsKICAgICBpZiAoIXJlZ2lzdGVy
ZWQpIHsKICAgICAgICAgcmVnaXN0ZXJlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBhZWMwNDVjMjU3
ZmI3M2NkMGRlOGQ2NWRmYWNlMjQ4NjE3Y2NhYmU5Li5hMjg2NjhlNmEwOTgwMTMxNjEyNzFjZDE4
N2FkMjA5NGY4NTMxNTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgTW9ja1RyYWNrQm94
OjpNb2NrVHJhY2tCb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYgTW9ja1Ry
YWNrQm94Ojp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCB0cmFrLCAoQVNDSUlMaXRlcmFsKCJ0cmFrIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB0cmFrKEFTQ0lJTGl0ZXJhbCgidHJhayIpKTsKICAgICByZXR1cm4gdHJh
azsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIE1vY2tJbml0aWFsaXphdGlvbkJveDo6TW9ja0lu
aXRpYWxpemF0aW9uQm94KEFycmF5QnVmZmVyKiBkYXRhKQogCiBjb25zdCBTdHJpbmcmIE1vY2tJ
bml0aWFsaXphdGlvbkJveDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgaW5pdCwgKEFTQ0lJTGl0ZXJhbCgiaW5pdCIpKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaW5pdChBU0NJSUxpdGVyYWwoImluaXQiKSk7CiAgICAg
cmV0dXJuIGluaXQ7CiB9CiAKQEAgLTEzMyw3ICsxMzMsNyBAQCBNb2NrU2FtcGxlQm94OjpNb2Nr
U2FtcGxlQm94KEFycmF5QnVmZmVyKiBkYXRhKQogCiBjb25zdCBTdHJpbmcmIE1vY2tTYW1wbGVC
b3g6OnR5cGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHNtcGwsIChBU0NJSUxpdGVyYWwoInNtcGwiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHNtcGwoQVNDSUlMaXRlcmFsKCJzbXBsIikpOwogICAgIHJldHVybiBzbXBsOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRp
YWxTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bFN0b3JhZ2UuY3BwCmluZGV4IDQxMDA1ZDBhZGRhZTJjM2JmNGU4OWUyMjA0Y2Y2MmE4NDQwMmUw
YWEuLjYyM2Y4NzkzMDVjMDE2YzFiNTUzMjVjOWQyYWRmYWVmOTdmOTZjM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgSGFzaE1hcDxQcm90ZWN0aW9uU3BhY2UsIENyZWRl
bnRpYWw+IFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcDsKIHN0YXRpYyBQcm90ZWN0aW9u
U3BhY2VUb0NyZWRlbnRpYWxNYXAmIHByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCgpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwLCBtYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwPiBtYXAo
KTsKICAgICByZXR1cm4gbWFwOwogfQogCkBAIC02MSw3ICs2MSw3IEBAIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIFByb3RlY3Rpb25TcGFjZT4gUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1h
cDsKIHN0YXRpYyBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwJiBwYXRoVG9EZWZhdWx0
UHJvdGVjdGlvblNwYWNlTWFwKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNw
YWNlTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGF0aFRvRGVmYXVs
dFByb3RlY3Rpb25TcGFjZU1hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCA2ZDFh
YWIyMGIyZmYyZTM0YmM5MDU0YjAzZGZlZjhmMjE2MDI3MjIyLi40YWZkMzE4OTAzNzIwYjBmMDk2
NmQ2YTAxZTJjZjc0MTc3MjZhM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtMzUxLDE0ICszNTEsMTQgQEAgdm9pZCBmaW5kQ2hh
cnNldEluTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBpbnQmIGNo
YXJzZXRQb3MsIHUKIAogQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWZsZWN0ZWRYU1NEaXNwb3Np
dGlvbiBwYXJzZVhTU1Byb3RlY3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIFN0cmlu
ZyYgZmFpbHVyZVJlYXNvbiwgdW5zaWduZWQmIGZhaWx1cmVQb3NpdGlvbiwgU3RyaW5nJiByZXBv
cnRVUkwpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFp
bHVyZVJlYXNvbkludmFsaWRUb2dnbGUsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIDAgb3IgMSIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJl
YXNvbkludmFsaWRTZXBhcmF0b3IsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIHNlbWljb2xvbiIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJl
YXNvbkludmFsaWRFcXVhbHMsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIGVxdWFscyBzaWduIikp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVh
c29uSW52YWxpZE1vZGUsIChBU0NJSUxpdGVyYWwoImludmFsaWQgbW9kZSBkaXJlY3RpdmUiKSkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFz
b25JbnZhbGlkUmVwb3J0LCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlkIHJlcG9ydCBkaXJlY3RpdmUi
KSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVS
ZWFzb25EdXBsaWNhdGVNb2RlLCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgbW9kZSBkaXJlY3Rp
dmUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1
cmVSZWFzb25EdXBsaWNhdGVSZXBvcnQsIChBU0NJSUxpdGVyYWwoImR1cGxpY2F0ZSByZXBvcnQg
ZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBmYWlsdXJlUmVhc29uSW52YWxpZERpcmVjdGl2ZSwgKEFTQ0lJTGl0ZXJhbCgidW5yZWNvZ25p
emVkIGRpcmVjdGl2ZSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFp
bHVyZVJlYXNvbkludmFsaWRUb2dnbGUoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCAwIG9yIDEiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFpbHVyZVJlYXNvbkludmFsaWRT
ZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCBzZW1pY29sb24iKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFpbHVyZVJlYXNvbkludmFsaWRFcXVhbHMoQVNDSUlM
aXRlcmFsKCJleHBlY3RlZCBlcXVhbHMgc2lnbiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uSW52YWxpZE1vZGUoQVNDSUlMaXRlcmFsKCJpbnZhbGlk
IG1vZGUgZGlyZWN0aXZlIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZh
aWx1cmVSZWFzb25JbnZhbGlkUmVwb3J0KEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCByZXBvcnQgZGly
ZWN0aXZlIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFz
b25EdXBsaWNhdGVNb2RlKEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIG1vZGUgZGlyZWN0aXZlIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFzb25EdXBsaWNh
dGVSZXBvcnQoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2ZSIpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uSW52YWxpZERpcmVj
dGl2ZShBU0NJSUxpdGVyYWwoInVucmVjb2duaXplZCBkaXJlY3RpdmUiKSk7CiAKICAgICB1bnNp
Z25lZCBwb3MgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRleCBjN2YwYjQzOThm
MWEwZmI5ZWFiZjM4NmQwOTBkNzdhYzQ0OGMzMzg5Li41MjZkOGU1ODYzM2RiNzI1Yzc0OTdhNmNi
ZjUwZWQzMmY0MTMwNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTU2LDcgKzU2
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjcmVhdGVQcml2YXRlQnJvd3MKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgc2Vzc2lv
biwgKDApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
PiBzZXNzaW9uKDApOwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDFmNmU3M2Q0
NzcxZGQ1YTQ0MzY5MTBlZWQ3ZDRjOGEyODczMmU5ODIuLjg2NTZkNGU5YmFhZDJhZmM2MDUzMDAy
OTRjNTFkODRlZjhiMjYzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBCdWlsdGlu
UmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCYgYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3Ry
dWN0b3JNYXAoCiAjZWxzZQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAjZW5kaWYKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQnVpbHRpblJlc291cmNlSGFuZGxlQ29u
c3RydWN0b3JNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxCdWlsdGlu
UmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0K
IApAQCAtNjEsNyArNjEsNyBAQCB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBSZXNvdXJj
ZUhhbmRsZTo6QnVpbHRpblN5bmNocm9ub3VzTG9hZGVyPiBCdWlsdGluUgogc3RhdGljIEJ1aWx0
aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwJiBidWlsdGluUmVzb3VyY2VIYW5k
bGVTeW5jaHJvbm91c0xvYWRlck1hcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQnVpbHRpblJlc291cmNlSGFuZGxl
U3luY2hyb25vdXNMb2FkZXJNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxCdWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcD4gbWFwKCk7CiAgICAg
cmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggZGVmMDFjYTEwYTExZTlj
MDdlNTQ4ZWM5MjkxODA2YjA2ZmJmZGNlNC4uZjc5N2FlODQ5NWIwOTk2ZmI5MTExMmYwZjU1OTc5
ZWEwMTY1NjY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRp
YyBIYXNoU2V0PFN0cmluZz4mIGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygpCiBzdGF0
aWMgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxDRkRhdGFSZWY+PiYgY2xpZW50Q2VydHMoKQog
ewogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxDRkRhdGFSZWY+PiBDZXJ0
c01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2VydHNNYXAsIGNlcnRz
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENlcnRzTWFwPiBjZXJ0cygpOwogICAg
IHJldHVybiBjZXJ0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAppbmRleCBjYjIz
Y2I5Y2I3YzUyOWYyMTNlMzIyMzc1MjIyZTMwYmZjMDBlODNjLi5mYmVkNzQxM2UxZDliZWRjMGM3
YTQ0MDRlMmI5YmQ2MGU4ZmZiMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAt
MTM0LDkgKzEzNCw5IEBAIHN0YXRpYyBjaGFyKiBjb29raWVKYXJQYXRoKCkKIH0KIAogc3RhdGlj
IE11dGV4KiBzaGFyZWRSZXNvdXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gY29va2llTXV0ZXgoKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IGRuc011dGV4KCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPE11dGV4PiBzaGFyZU11dGV4KCk7CiAKICAgICBzd2l0Y2ggKGRhdGEpIHsKICAg
ICAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ3RrL0NyZWRlbnRpYWxCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IDg1MTM3ZjA1ZDJjNDQ4Y2RjY2Q4YzJkOTNlNzkwMDQ5OTY0ZGE0N2IuLmFlYjZi
YTZiYWY2Nzk2NWE3OTRlY2RhOTk0ZmNlNTNkOTA3MWJkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ3RrL0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ3RrL0NyZWRlbnRpYWxCYWNraW5n
U3RvcmUuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3JlZGVu
dGlhbEJhY2tpbmdTdG9yZSYgY3JlZGVudGlhbEJhY2tpbmdTdG9yZSgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENyZWRlbnRpYWxCYWNraW5nU3RvcmUsIGJhY2tpbmdT
dG9yZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDcmVkZW50aWFsQmFja2luZ1N0
b3JlPiBiYWNraW5nU3RvcmUoKTsKICAgICByZXR1cm4gYmFja2luZ1N0b3JlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IGQxMDg1MGQ2MjU5ZGUxNGY2MGUzNGVhMzhlZTdkNDhlYzRl
YjYyZjEuLjU3ZWY4Yjc3ZDhlM2RjMGM4NDhjYTI2ZWMzZTE0MDJjNGViZDcwNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgc3RhdGljIEhhc2hTZXQ8U3RyaW5n
PiYgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKCkKIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIEhvc3RUTFNDZXJ0aWZpY2F0ZVNldD4gQ2VydGlmaWNhdGVzTWFwOwogc3RhdGljIENlcnRp
ZmljYXRlc01hcCYgY2xpZW50Q2VydGlmaWNhdGVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ2VydGlmaWNhdGVzTWFwLCBjZXJ0aWZpY2F0ZXMsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q2VydGlmaWNhdGVzTWFwPiBjZXJ0aWZpY2F0ZXMoKTsKICAg
ICByZXR1cm4gY2VydGlmaWNhdGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKaW5kZXggZmY1MmI3
ZDM5MTYzZDVkOWY4NDE0NjQzMGJjM2U4NTY2MmZkN2Q2NS4uOTQxZTJkY2YyYzdmNzY4MDcyM2U4
N2ZiZjhhODI0MmI1OWNlNGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcApAQCAtNDMsNyArNDMsNyBA
QCBzdGF0aWMgdWludDMyX3QgbWFnaWNOdW1iZXIoKQogCiBjb25zdCBTdHJpbmcmIGZpbGVFeHRl
bnNpb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGV4dGVuc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiLmRvd25sb2FkIikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBleHRlbnNpb24oQVNDSUlMaXRlcmFsKCIuZG93
bmxvYWQiKSk7CiAgICAgcmV0dXJuIGV4dGVuc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaAppbmRl
eCA5YTUzY2E2MmYxOTI3YWViM2YwZDIxODYyMTBmODhmZTk3ODA4MzRkLi5kZGY4NWIyYzVjMzMy
YjRiMjE3MGUzM2IxYWIwNGU2NGQwYzNjMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAgICAgVCBnZXQoY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCiAgICAg
ewogICAgICAgICBpZiAoa2V5LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVCwgdmFsdWVGb3JOdWxsLCAoY3JlYXRlVmFsdWVGb3JOdWxsS2V5
KCkpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiB2YWx1ZUZvck51bGwo
Y3JlYXRlVmFsdWVGb3JOdWxsS2V5KCkpOwogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTnVs
bDsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcAppbmRleCBkNjQ5NTQ0YmU4
Y2JjMjIwOTQ4NGI5MWJiYzdkOGU2NzgyYWY5ZTI4Li5iMzMwN2FmY2NlZTc2NGNiMDNhMTM1YjNi
YzUwYzJmMDEwMjNiNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAKQEAgLTE2Myw3ICsx
NjMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBVU2NyaXB0Q29kZSwgRGVmYXVsdEhhc2g8
U3RyaW5nPjo6SGFzaCwgU2NyaXB0TmFtZUNvZGVNYQogCiBVU2NyaXB0Q29kZSBzY3JpcHROYW1l
VG9Db2RlKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2NyaXB0TmFtZUNvZGVNYXAsIHNjcmlwdE5hbWVDb2RlTWFwLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNjcmlwdE5hbWVDb2RlTWFwPiBzY3JpcHROYW1l
Q29kZU1hcCgpOwogICAgIGlmIChzY3JpcHROYW1lQ29kZU1hcC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoc2NyaXB0TmFtZUNvZGVMaXN0KSAvIHNp
emVvZihTY3JpcHROYW1lQ29kZSk7ICsraSkKICAgICAgICAgICAgIHNjcmlwdE5hbWVDb2RlTWFw
LnNldChBU0NJSUxpdGVyYWwoc2NyaXB0TmFtZUNvZGVMaXN0W2ldLm5hbWUpLCBzY3JpcHROYW1l
Q29kZUxpc3RbaV0uY29kZSk7CkBAIC0zODksNyArMzg5LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgVVNjcmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIExvY2FsZVNjcmlw
dE1hcEgKIAogVVNjcmlwdENvZGUgbG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihj
b25zdCBTdHJpbmcmIGxvY2FsZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTG9jYWxlU2NyaXB0TWFwLCBsb2NhbGVTY3JpcHRNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TG9jYWxlU2NyaXB0TWFwPiBsb2NhbGVTY3JpcHRNYXAoKTsKICAgICBpZiAo
bG9jYWxlU2NyaXB0TWFwLmlzRW1wdHkoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemVvZihsb2NhbGVTY3JpcHRMaXN0KSAvIHNpemVvZihMb2NhbGVTY3JpcHQpOyArK2kp
CiAgICAgICAgICAgICBsb2NhbGVTY3JpcHRNYXAuc2V0KEFTQ0lJTGl0ZXJhbChsb2NhbGVTY3Jp
cHRMaXN0W2ldLmxvY2FsZSksIGxvY2FsZVNjcmlwdExpc3RbaV0uc2NyaXB0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JX
Y2hhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0
ZXJhdG9yV2NoYXIuY3BwCmluZGV4IDdmNDUxOTkzZTdjM2IzNjRhNjhkYzhkNTRjZWU3ODBiNzhk
M2I5YjYuLjZjMzU2NDc3Mjc4NjMzZDE1YTI1OTU4ODcwNWM2NDgyMmJlMzdkMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JX
Y2hhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJl
YWtJdGVyYXRvcldjaGFyLmNwcApAQCAtMjMwLDkgKzIzMCw5IEBAIGludCBTZW50ZW5jZUJyZWFr
SXRlcmF0b3I6OnByZXZpb3VzKCkKIAogVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJh
dG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFdvcmRCcmVha0l0ZXJhdG9yLCBpdGVyYXRvciwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXb3JkQnJlYWtJdGVyYXRvcj4gaXRlcmF0b3IoKTsKICAg
ICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJuICZpdGVyYXRvcjsK
KyAgICByZXR1cm4gJml0ZXJhdG9yLmdldCgpOwogfQogCiBzdGF0aWMgQ2hhckJyZWFrSXRlcmF0
b3IqIG5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3I7CkBAIC0yODgsOSArMjg4LDkgQEAg
dm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9y
KQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFNlbnRlbmNlQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U2VudGVuY2VCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcigpOwogICAgIGl0ZXJh
dG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKLSAgICByZXR1cm4gJml0ZXJhdG9yOworICAgIHJl
dHVybiAmaXRlcmF0b3IuZ2V0KCk7CiB9CiAKIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0QnJlYWtJ
dGVyYXRvciogYnJlYWtJdGVyYXRvcikKQEAgLTM0MCw5ICszNDAsOSBAQCBib29sIGlzV29yZFRl
eHRCcmVhayhUZXh0QnJlYWtJdGVyYXRvciopCiAKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENoYXJCcmVha0l0ZXJhdG9yLCBpdGVyYXRv
ciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDaGFyQnJlYWtJdGVyYXRvcj4gaXRl
cmF0b3IoKTsKICAgICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJu
ICZpdGVyYXRvcjsKKyAgICByZXR1cm4gJml0ZXJhdG9yLmdldCgpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxl
V2luLmNwcAppbmRleCBhYjAzNmFhMGQxMDBlMDFhNDA5YzExYzcxYWExZjBkNzk0ZjQ1NDAzLi4z
MjY1NjY2M2U1MGVlNGRmMDY3OTE5ZGNlMjVmMWJjMjRmZDFhY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdGF0aWMgTENJRCBXSU5BUEkgY29udmVydExvY2FsZU5hbWVUb0xDSUQoTFBDV1NUUiBuYW1l
LCBEV09SRCkKIHsKICAgICBpZiAoIW5hbWUgfHwgIW5hbWVbMF0pCiAgICAgICAgIHJldHVybiBM
T0NBTEVfVVNFUl9ERUZBVUxUOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChO
YW1lVG9MQ0lETWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TmFtZVRv
TENJRE1hcD4gbWFwKCk7CiAgICAgZW5zdXJlTmFtZVRvTENJRE1hcChtYXApOwogICAgIFN0cmlu
ZyBsb2NhbGVOYW1lID0gU3RyaW5nKG5hbWUpLnJlcGxhY2UoJ18nLCAnLScpLmxvd2VyKCk7CiAg
ICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcAppbmRleCAyYmNjZjFhNTBlMjc2ZTYzMjgzNjVjMzYwNDc1YjI2MDA3
ZjQ5ZTIyLi5hNjMzOTE0NWFjYTkwYzg4NWUxNmZiNzZlMWMyNWMwYjRjNDRmYTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2lu
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgbWFya3VwVG9DRkhUTUwoY29uc3QgU3RyaW5n
JiBtYXJrdXAsIGNvbnN0IFN0cmluZyYgc3JjVVJMLCBWZWN0b3I8Y2hhcj4mIHJlCiAKIHZvaWQg
cmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKFN0cmluZyYgc3RyKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdpbmRvd3NOZXdsaW5l
LCAoQVNDSUlMaXRlcmFsKCJcclxuIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB3aW5kb3dzTmV3bGluZShBU0NJSUxpdGVyYWwoIlxyXG4iKSk7CiAgICAgU3RyaW5nQnVp
bGRlciByZXN1bHQ7CiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3RyLmxl
bmd0aCgpOyArK2luZGV4KSB7CiAgICAgICAgIGlmIChzdHJbaW5kZXhdICE9ICdcbicgfHwgKGlu
ZGV4ID4gMCAmJiBzdHJbaW5kZXggLSAxXSA9PSAnXHInKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBjNjUyOTNkMDIwNDlkYmIyZWE5YWFi
N2YyMGI0MjBjMjYxZWQ0MmU3Li5kOThlNzgxN2YyODgyOWY5MzdiOWI3YzNjMjI5MTVlOWRiMTYy
NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
CkBAIC0yNTgsNyArMjU4LDcgQEAgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBw
YXRoKQogCiBzdGF0aWMgU3RyaW5nIGJ1bmRsZU5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5hbWUsIChBU0NJSUxpdGVyYWwoIldlYktpdCIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbmFtZShBU0NJSUxpdGVyYWwoIldl
YktpdCIpKTsKIAogI2lmIFVTRShDRikKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZDsKQEAg
LTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQgcGF0
aElkZW50aWZpZXIpCiAgICAgYnVmZmVyLnJlc2l6ZSh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOwog
ICAgIFN0cmluZyBkaXJlY3RvcnkgPSBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiAKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb21wYW55TmFtZURpcmVjdG9yeSwg
KEFTQ0lJTGl0ZXJhbCgiQXBwbGUgQ29tcHV0ZXJcXCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gY29tcGFueU5hbWVEaXJlY3RvcnkoQVNDSUlMaXRlcmFsKCJBcHBsZSBD
b21wdXRlclxcIikpOwogICAgIGRpcmVjdG9yeSA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChk
aXJlY3RvcnksIGNvbXBhbnlOYW1lRGlyZWN0b3J5ICsgYnVuZGxlTmFtZSgpKTsKICAgICBpZiAo
IW1ha2VBbGxEaXJlY3RvcmllcyhkaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCmluZGV4IDk4ZDBhOTdi
N2I5M2Q3YzhlYmFiNDhiYTU0ODNiMzlkMjM2NDhjMmMuLjczOTVjZmU1ZmQyNmU2OTY3NGI4MjYy
YmQyMTk3ODlhZmI2ZWYzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBib29sIGdQZXJzaXN0ZW50UGx1Z2luTWV0
YWRhdGFDYWNoZUlzRW5hYmxlZDsKIAogU3RyaW5nJiBwZXJzaXN0ZW50UGx1Z2luTWV0YWRhdGFD
YWNoZVBhdGgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGNhY2hlUGF0aCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNhY2hl
UGF0aCgpOwogICAgIHJldHVybiBjYWNoZVBhdGg7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCmluZGV4IGNh
MDU3OWU1ODk5Y2MxNTg4ZjhkNmVkOTllNGIyZDE4MWViNjc2ZmEuLjFkM2VjNTQ5OWY4OTExYWUz
MWZkY2I5YTJiNDYyZWQ0NWFjMjhhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcApAQCAtMzEsNyArMzEsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXImIFBsdWdpbk1haW5U
aHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIsIHNjaGVkdWxlciwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyPiBzY2hlZHVs
ZXIoKTsKIAogICAgIHJldHVybiBzY2hlZHVsZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAppbmRleCBiZGFhY2QwYjA0NThhMmNhNGFhZjA1MGFiMWI1Njc1NTk2
NmQ4NjA1Li4xZWQzMmYzOGQ5YjI1YjNkNWNiOWYzODQ5NDYwZjM3NmY0ODVlMGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE3NDksOCArMTc0OSw4IEBA
IFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6YmxvY2tFbGVtZW50Q29udGludWF0aW9uKCkgY29u
c3QKICAgICAKIHN0YXRpYyBDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXAqIGNvbnRpbnVhdGlv
bk91dGxpbmVUYWJsZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENv
bnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcCwgdGFibGUsICgpKTsKLSAgICByZXR1cm4gJnRhYmxl
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+
IHRhYmxlKCk7CisgICAgcmV0dXJuICZ0YWJsZS5nZXQoKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9j
azo6YWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKiBmbG93KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRl
eCAxMzkwNGU3MzA3YTE2YWY0ODYwYTU0NmIxMDMzNGIwNGIxZTMxOGVmLi5kMjg2ZjZkODU3NGQ4
YTFjMTdmZTQ5OWI3MTJkNTQ5MTcwNTVjMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTgxMiw3ICsxODEyLDcgQEAg
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JUZXh0T3ZlcmZsb3coKQogICAgIC8v
IERldGVybWluZSB0aGUgd2lkdGggb2YgdGhlIGVsbGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZv
bnQuCiAgICAgLy8gRklYTUU6IENTUzMgc2F5cyB0aGlzIGlzIGNvbmZpZ3VyYWJsZSwgYWxzbyBu
ZWVkIHRvIHVzZSAweDAwMkUgKEZVTEwgU1RPUCkgaWYgaG9yaXpvbnRhbCBlbGxpcHNpcyBpcyAi
bm90IHJlbmRlcmFibGUiCiAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCkuZm9udCgpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lz
U3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAg
IGNvbnN0IEZvbnQmIGZpcnN0TGluZUZvbnQgPSBmaXJzdExpbmVTdHlsZSgpLmZvbnQoKTsKICAg
ICBmbG9hdCBmaXJzdExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RMaW5lRm9udC53aWR0aChjb25z
dHJ1Y3RUZXh0UnVuKHRoaXMsIGZpcnN0TGluZUZvbnQsICZob3Jpem9udGFsRWxsaXBzaXMsIDEs
IGZpcnN0TGluZVN0eWxlKCkpKTsKICAgICBmbG9hdCBlbGxpcHNpc1dpZHRoID0gKGZvbnQgPT0g
Zmlyc3RMaW5lRm9udCkgPyBmaXJzdExpbmVFbGxpcHNpc1dpZHRoIDogZm9udC53aWR0aChjb25z
dHJ1Y3RUZXh0UnVuKHRoaXMsIGZvbnQsICZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCmlu
ZGV4IDNmMDEzZGI5MWQ3ZjVjODc1NWU1MmQ4YzQwZWM5OWQ2YTA2YzgzYTguLjU3YzU0NTRjOTJi
MDJiZmQzMjlkZTJiOTM3ZDRhNGE1ZmE5MGE0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgUmVu
ZGVyQ29tYmluZVRleHQ6OmNvbWJpbmVUZXh0KCkKICAgICAgICAgbV9jb21iaW5lRm9udFN0eWxl
LT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcik7CiAKICAgICBpZiAobV9pc0NvbWJpbmVkKSB7
Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9iamVjdFJl
cGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAx
KSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG9iamVjdFJlcGxhY2Vt
ZW50Q2hhcmFjdGVyU3RyaW5nKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSk7CiAgICAg
ICAgIFJlbmRlclRleHQ6OnNldFJlbmRlcmVkVGV4dChvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
clN0cmluZy5pbXBsKCkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJDb3VudGVyLmNwcAppbmRleCA4OTNkYzE4OGU2ZjY4YzQ0NmFkOGExYjhjNTMxMDY1OTVlYmJk
MmM0Li4xOWVmOWRiNmE0YzU2ODExN2Y0ODJkODYwMGMwZTlkOWM2Mjk5OWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0
YXRpYyBDb3VudGVyTm9kZSogbWFrZUNvdW50ZXJOb2RlKFJlbmRlck9iamVjdCosIGNvbnN0IEF0
b21pY1N0cmluZyYgaWRlbnRpZmllCiAKIHN0YXRpYyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDb3VudGVyTWFwcywgc3Rh
dGljQ291bnRlck1hcHMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q291bnRlck1h
cHM+IHN0YXRpY0NvdW50ZXJNYXBzKCk7CiAgICAgcmV0dXJuIHN0YXRpY0NvdW50ZXJNYXBzOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3guY3BwCmluZGV4IDc2MDZhZDkwN2RmNjNkN2E4ZjUwOWEzMzRmOGIzMTBl
OTc0NzMwYTQuLjA0Y2EwOGZhNWU4OTM1MDYzZjAzOWNhNWJhOTBiZjMzNzVjODI3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwCkBAIC05OTQsOCArOTk0LDggQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGNvbnN0IFVDaGFyIGVsbGlwc2lzQW5k
U3BhY2VbMl0gPSB7IGhvcml6b250YWxFbGxpcHNpcywgJyAnIH07Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzQW5kU3BhY2VTdHIs
IChlbGxpcHNpc0FuZFNwYWNlLCAyKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywg
MSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBlbGxpcHNp
c0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOworICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAx
KTsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5l
cyA9PSAxID8gZmlyc3RMaW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnQm
IGZvbnQgPSBsaW5lU3R5bGUuZm9udCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcAppbmRleCA3OWI1ZDgyMGY2MWRkNmY0ZGZhMjgy
OWFlOWVhNGFiNTJmZTU0YTY4Li5jOGM1NTI1OWRhNDBkMTA0ZWJjNjcwYzBmN2QyNTA4ODc4N2Fh
OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
VGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJU
aGVtZS5jcHAKQEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJT
Y3JvbGxiYXJUaGVtZSogUmVuZGVyU2Nyb2xsYmFyVGhlbWU6OnJlbmRlclNjcm9sbGJhclRoZW1l
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVuZGVyU2Nyb2xsYmFy
VGhlbWUsIHRoZW1lLCAoKSk7Ci0gICAgcmV0dXJuICZ0aGVtZTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UmVuZGVyU2Nyb2xsYmFyVGhlbWU+IHRoZW1lKCk7CisgICAgcmV0dXJuICZ0aGVt
ZS5nZXQoKTsKIH0KIAogdm9pZCBSZW5kZXJTY3JvbGxiYXJUaGVtZTo6YnV0dG9uU2l6ZXNBbG9u
Z1RyYWNrQXhpcyhTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyLCBpbnQmIGJlZm9yZVNp
emUsIGludCYgYWZ0ZXJTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAKaW5kZXggN2Y5OGUxMDVlNDhhMDBlNWQwYTAxMWJhYTE2MmIzNzE0ZWM1Zjk5Zi4uMWI0MTY4
NjY0NTg5M2Q3YTNmNzA4MWM1Mjg0MTBkMDZlMzNiMjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKIHN0YXRpYyBDb2xvciYgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgY29sb3IsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGNvbG9yKCk7CiAgICAgcmV0dXJuIGNvbG9yOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMTdm
NmE4ZGI3ODJmYWU5NjQxZTdmMjk0ZTBlYzcxNDNkNWIxNGZiNi4uNDgzYzg0YzY1OTQ0ZmI2N2Y5
ZTVmYWIyNTQ4NjdlZjJmYmU1NGE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQpAQCAtMzQzLDEzICszNDMsMTMgQEAgc3RhdGljIEZvbnRXZWlnaHQgdG9G
b250V2VpZ2h0KE5TSW50ZWdlciBhcHBLaXRGb250V2VpZ2h0KQogCiB2b2lkIFJlbmRlclRoZW1l
TWFjOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEZvbnREZXNjcmlwdGlvbiwgc3lzdGVtRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsU3lzdGVtRm9udCwgKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIG1lbnVG
b250LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlw
dGlvbiwgbGFiZWxGb250LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEZvbnREZXNjcmlwdGlvbiwgbWluaUNvbnRyb2xGb250LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21hbGxDb250cm9sRm9udCwgKCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGNv
bnRyb2xGb250LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNjcmlwdGlv
bj4gc3lzdGVtRm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRp
b24+IHNtYWxsU3lzdGVtRm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVz
Y3JpcHRpb24+IG1lbnVGb250KCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNj
cmlwdGlvbj4gbGFiZWxGb250KCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNj
cmlwdGlvbj4gbWluaUNvbnRyb2xGb250KCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZv
bnREZXNjcmlwdGlvbj4gc21hbGxDb250cm9sRm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxGb250RGVzY3JpcHRpb24+IGNvbnRyb2xGb250KCk7CiAKICAgICBGb250RGVzY3JpcHRp
b24qIGNhY2hlZERlc2M7CiAgICAgTlNGb250KiBmb250ID0gbmlsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCAxZmY4M2E4YTVlZTUzZTUzZTUyMjcxM2Rm
YWUwNDFjNThiMjA3NjUzLi4xNWU1MDNmYzUxNDA5MWM4MzMzMTkwM2M2OGQwMmIxZDZlODYxMTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtNDYsNyAr
NDYsNyBAQCB1bnNpZ25lZCBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3VzcGVuc2lvblNjb3BlOjpz
X3dpZGdldEhpZXJhcmNoeVVwZGF0ZVN1c3BlbmRDbwogCiBXaWRnZXRIaWVyYXJjaHlVcGRhdGVz
U3VzcGVuc2lvblNjb3BlOjpXaWRnZXRUb1BhcmVudE1hcCYgV2lkZ2V0SGllcmFyY2h5VXBkYXRl
c1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0TmV3UGFyZW50TWFwKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoV2lkZ2V0VG9QYXJlbnRNYXAsIG1hcCwgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxXaWRnZXRUb1BhcmVudE1hcD4gbWFwKCk7CiAgICAgcmV0dXJu
IG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWlu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKaW5kZXgg
YWYzNDI1N2FlMGEzMWVmZmY5YzkxZTA3ZmNjMzE5MDc2OWViNjE5Mi4uNmMzNmUxZGEzMTNkZTg3
YjIxYWNhMjI1OTBlMjNmZDY4MDJlZjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dFBhaW50ZXIuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRU
ZXh0KCkKICAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9j
b250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZSwgVXNl
RW1waGFzaXNNYXJrQ29sb3IpOwogCi0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9i
amVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VGV4dFJ1bj4gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuKCZvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSk7CiAgICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNp
c01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
clRleHRSdW4gOiBtX3RleHRSdW47CiAgICAgICAgICAgICBGbG9hdFBvaW50IGVtcGhhc2lzTWFy
a1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSAr
IG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIG1fZm9udC5mb250TWV0cmlj
cygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKICAgICAgICAgICAgIGlmIChtX2NvbWJpbmVk
VGV4dCkKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRQYWludGVyOjpwYWludFRleHQoKQog
ICAgICAgICBpZiAoIW1fZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgdXBk
YXRlR3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQs
ICptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUsIFVzZUVt
cGhhc2lzTWFya0NvbG9yKTsKIAotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFRleHRSdW4+IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1bigmb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpOwogICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNN
YXJrVGV4dFJ1biA9IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJU
ZXh0UnVuIDogbV90ZXh0UnVuOwogICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtU
ZXh0T3JpZ2luID0gbV9jb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBt
X2JveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBtX2ZvbnQuZm9udE1ldHJpY3Mo
KS5hc2NlbnQoKSkgOiBtX3RleHRPcmlnaW47CiAgICAgICAgICAgICBpZiAobV9jb21iaW5lZFRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0
c2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRl
SW5mby5oCmluZGV4IGQ2YjY4ZGQzNTViNzNjNTJhYzM5NWY2YTEwMjQ1YTA5NTM2ZTM2ZjguLjBl
MzE4OTYxMWUxMTdiZjA4NTM5MjljOWIyM2VkNWY4ZTIwOWNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCkBAIC0xMDQsNyAr
MTA0LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94Kiwg
c3RkOjp1bmlxdWVfcHRyPFNoYXBlT3V0c2lkZUluZm8+PiBJbmZvTWFwOwogICAgIHN0YXRpYyBJ
bmZvTWFwJiBpbmZvTWFwKCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChJbmZvTWFwLCBzdGF0aWNJbmZvTWFwLCAoKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxJbmZvTWFwPiBzdGF0aWNJbmZvTWFwKCk7CiAgICAgICAgIHJldHVybiBzdGF0
aWNJbmZvTWFwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkVHJhY2tTaXplLmgKaW5kZXggYTAxYjUyOTRkNWFhY2M3NWFkMjFkM2E0YjY1NWIyYjlhNzY5
MTYyYS4uZDZlYzM0YjNjY2JjZjQxYjQ5ZDQ5NmE1OWU5NDRlZDBiYThmMjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCkBAIC03Miw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9taW5UcmFja0JyZWFkdGgu
aXNMZW5ndGgoKSB8fCAhbV9taW5UcmFja0JyZWFkdGgubGVuZ3RoKCkuaXNVbmRlZmluZWQoKSk7
CiAgICAgICAgIGlmIChtX21pblRyYWNrQnJlYWR0aC5pc0xlbmd0aCgpICYmIG1fbWluVHJhY2tC
cmVhZHRoLmxlbmd0aCgpLmlzQXV0bygpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoR3JpZExlbmd0aCwgbWluQ29udGVudCwgKE1pbkNvbnRlbnQpKTsKKyAg
ICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHcmlkTGVuZ3RoPiBtaW5Db250ZW50KE1p
bkNvbnRlbnQpOwogICAgICAgICAgICAgcmV0dXJuIG1pbkNvbnRlbnQ7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoOwpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbWF4VHJhY2tCcmVhZHRoLmlzTGVuZ3RoKCkgfHwg
IW1fbWF4VHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5kZWZpbmVkKCkpOwogICAgICAgICBpZiAo
bV9tYXhUcmFja0JyZWFkdGguaXNMZW5ndGgoKSAmJiBtX21heFRyYWNrQnJlYWR0aC5sZW5ndGgo
KS5pc0F1dG8oKSkgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEdyaWRMZW5ndGgsIG1heENvbnRlbnQsIChNYXhDb250ZW50KSk7CisgICAgICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8R3JpZExlbmd0aD4gbWF4Q29udGVudChNYXhDb250ZW50KTsKICAg
ICAgICAgICAgIHJldHVybiBtYXhDb250ZW50OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X21heFRyYWNrQnJlYWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCmluZGV4IDMzMjBjMDI4YjU4ZDQ5NjhlNzNkYzJkNmE5OTE5MjQxMDk0ZjE4
NjMuLjQ3N2ZmZjZmZDk4OTZmZDM0NWY2YmE5MWZlNjVjZWEwNzkyZTRjZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE0NCw4ICsx
MTQ0LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0aW9uU3RyaW5nOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaHlwaGVuTWludXNTdHJpbmcsICgmaHlwaGVuTWludXMs
IDEpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBo
eXBoZW5TdHJpbmcsICgmaHlwaGVuLCAxKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gaHlwaGVuTWludXNTdHJpbmcoJmh5cGhlbk1pbnVzLCAxKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7
CiAgICAgcmV0dXJuIGZvbnQoKS5wcmltYXJ5Rm9udEhhc0dseXBoRm9yQ2hhcmFjdGVyKGh5cGhl
bikgPyBoeXBoZW5TdHJpbmcgOiBoeXBoZW5NaW51c1N0cmluZzsKIH0KIApAQCAtMTE1NywyOCAr
MTE1NywyOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNN
YXJrU3RyaW5nKCkgY29uc3QKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDdXN0b206CiAgICAg
ICAgIHJldHVybiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCk7CiAgICAgY2FzZSBUZXh0RW1waGFz
aXNNYXJrRG90OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdFN0cmluZywgKCZ3
aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxldCwgMSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5Eb3RTdHJpbmcoJndoaXRlQnVsbGV0LCAxKTsKICAg
ICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVk
ID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrQ2lyY2xlOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0cmluZywgKCZibGFja0NpcmNsZSwgMSkp
OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBv
cGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUs
IDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGVuQ2ly
Y2xlU3RyaW5nKCZ3aGl0ZUNpcmNsZSwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNG
aWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9w
ZW5DaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdWJsZUNp
cmNsZTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcsICgmZmlzaGV5ZSwgMSkpOwotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG91YmxlQ2ly
Y2xlU3RyaW5nLCAoJmJ1bGxzZXllLCAxKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZygmZmlzaGV5ZSwgMSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5Eb3VibGVDaXJj
bGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwo
KSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nIDog
b3BlbkRvdWJsZUNpcmNsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
VHJpYW5nbGU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZmlsbGVkVHJpYW5nbGVTdHJpbmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUs
IDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgb3BlblRyaWFuZ2xlU3RyaW5nLCAoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpbGxlZFRyaWFuZ2xl
U3RyaW5nKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5UcmlhbmdsZVN0cmluZygmd2hpdGVVcFBvaW50
aW5nVHJpYW5nbGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRl
eHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9wZW5Ucmlhbmds
ZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOiB7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZFNl
c2FtZVN0cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmluZywgKCZ3aGl0ZVNlc2Ft
ZURvdCwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBm
aWxsZWRTZXNhbWVTdHJpbmcoJnNlc2FtZURvdCwgMSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5TZXNhbWVTdHJpbmcoJndoaXRlU2VzYW1lRG90LCAx
KTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxs
RmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCmluZGV4IDBlMWYxYTBjMDA0OTc0M2E1YTU0MWQzYzEy
MjU4MzcyMjMxYWE3OGYuLjUzOTZlNjIwYjY4NTFmM2ZjNDc5NmE1OGJkNWQ2OWUwNDJlNjg3MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcApA
QCAtMTMxLDcgKzEzMSw3IEBAIGJvb2wgUmVuZGVyU1ZHUGF0aDo6c2hvdWxkU3Ryb2tlWmVyb0xl
bmd0aFN1YnBhdGgoKSBjb25zdAogCiBQYXRoKiBSZW5kZXJTVkdQYXRoOjp6ZXJvTGVuZ3RoTGlu
ZWNhcFBhdGgoY29uc3QgRmxvYXRQb2ludCYgbGluZWNhcFBvc2l0aW9uKSBjb25zdAogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0aCwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXRoPiB0ZW1wUGF0aCgpOwogCiAgICAgdGVtcFBhdGgu
Y2xlYXIoKTsKICAgICBpZiAoc3R5bGUoKS5zdmdTdHlsZSgpLmNhcFN0eWxlKCkgPT0gU3F1YXJl
Q2FwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdT
aGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNw
cAppbmRleCA5MjlkMDcxYTQzYWM2MjBkNzFjOTkwZTlhMTdkMGZhNWFhNjVkZWY5Li4yOGIyNjVm
ZTI3OGE4MDIwZGRjYjY5NjM4ZWYwMzFhODIwYzE1YzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZv
aWQgUmVuZGVyU1ZHU2hhcGU6OmxheW91dCgpCiAKIFBhdGgqIFJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aChjb25zdCBQYXRoKiBwYXRoLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHN0cm9rZVRyYW5zZm9ybSkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUGF0aCwgdGVtcFBhdGgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGF0
aD4gdGVtcFBhdGgoKTsKIAogICAgIHRlbXBQYXRoID0gKnBhdGg7CiAgICAgdGVtcFBhdGgudHJh
bnNmb3JtKHN0cm9rZVRyYW5zZm9ybSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBkZThmMTVmOGI0M2Y4NzMyMjNk
Y2JmYjRiMGIwMmZlN2RhNzdlMjg5Li5mNjJhNGI2YmRjMzUyYjg1MDBmNWFkYjRlNjE0ZjQzODhi
NDU4NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIs
IFBhaQogCiBzdGF0aWMgQWZmaW5lVHJhbnNmb3JtJiBjdXJyZW50Q29udGVudFRyYW5zZm9ybWF0
aW9uKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQWZmaW5lVHJhbnNm
b3JtLCBzX2N1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24sICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QWZmaW5lVHJhbnNmb3JtPiBzX2N1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRp
b24oKTsKICAgICByZXR1cm4gc19jdXJyZW50Q29udGVudFRyYW5zZm9ybWF0aW9uOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVy
LmNwcAppbmRleCAyYzQ3MjA0NjA1OGM0NTQyN2M3OTFkMjY3MjA5NGZlN2JkYzM1OTZjLi4yYzBj
YjAxN2UzMDYwMjhkMTk3ZDNlYjJiMmZkMzUwNjMxOTEwY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAgU1ZHVGV4dENodW5rQnVpbGRlcjo6U1ZHVGV4dENodW5rQnVpbGRlcigpCiAKIHZv
aWQgU1ZHVGV4dENodW5rQnVpbGRlcjo6dHJhbnNmb3JtYXRpb25Gb3JUZXh0Qm94KFNWR0lubGlu
ZVRleHRCb3gqIHRleHRCb3gsIEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBZmZpbmVUcmFuc2Zvcm0s
IHNfaWRlbnRpdHlUcmFuc2Zvcm0sICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQWZmaW5lVHJhbnNmb3JtPiBzX2lkZW50aXR5VHJhbnNmb3JtKCk7CiAgICAgaWYgKCFtX3Rl
eHRCb3hUcmFuc2Zvcm1hdGlvbnMuY29udGFpbnModGV4dEJveCkpIHsKICAgICAgICAgdHJhbnNm
b3JtID0gc19pZGVudGl0eVRyYW5zZm9ybTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCBlN2QyODBlMjhi
ODc0ZWI1YjZlMTUyMGU0MTg4MWI0M2NlODkyN2JjLi41YmM4Y2JjYzExY2EyNmJlODE3MDBjMWMw
MzYwN2JhOTE0ZDcyMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmNwcApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBTdG9yYWdlTmFtZXNwYWNlKj4gTG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwOwogCiBzdGF0aWMg
TG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwJiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXAoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbFN0b3JhZ2VOYW1lc3BhY2VN
YXAsIGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxMb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXA+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCgp
OwogICAgIHJldHVybiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXA7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5nbGUuY3BwCmluZGV4IDU4OGYyNzdiZTc1ZGU3ZDQxZWZlZDA1Y2E0OTU4YmU2MjYxNzg1N2Qu
LjQ5Y2UyMjc3Y2NlYWJkNDc5NDhiMWY4ZDk2YWM3M2M0ZTM2ZmQ1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuZ2xlLmNwcApAQCAtMTEyLDE1ICsxMTIsMTUgQEAgU3RyaW5nIFNWR0FuZ2xlOjp2YWx1ZUFz
U3RyaW5nKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fdW5pdFR5cGUpIHsKICAgICBjYXNlIFNW
R19BTkdMRVRZUEVfREVHOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGRlZ1N0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZGVnIikpKTsKKyAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZGVnU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZGVnIikp
OwogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMp
ICsgZGVnU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOiB7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHJhZFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgicmFkIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gcmFkU3RyaW5nKEFTQ0lJTGl0ZXJhbCgicmFkIikpOwogICAgICAgICByZXR1cm4gU3RyaW5n
OjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpICsgcmFkU3RyaW5nOwogICAgIH0KICAg
ICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBncmFkU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJncmFkIikpKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZ3JhZFN0cmluZyhBU0NJSUxp
dGVyYWwoImdyYWQiKSk7CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX3ZhbHVlSW5T
cGVjaWZpZWRVbml0cykgKyBncmFkU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19BTkdMRVRZ
UEVfVU5TUEVDSUZJRUQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5jcHAKaW5kZXggOWUxZGIxMzk4Y2I1MTYyZWIxZDViMWIxNDFiN2VlZmUwMjBlZjAyOC4u
ZGRiYTYxYTg2Njk1MjczMDU2MzE4NzY1MjgxZTVlNWQ0ODc3MmU4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBQ
YXNzUmVmUHRyPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZQogCiBzdGF0aWMgYm9vbCBhdHRyaWJ1dGVWYWx1ZUlzQ3Vy
cmVudENvbG9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VycmVudENvbG9yLCAoImN1cnJlbnRD
b2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjdXJyZW50Q29sb3IoImN1cnJlbnRD
b2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB2
YWx1ZSA9PSBjdXJyZW50Q29sb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IDBhOTgzZGZkMWEzY2M1NmQxZjliZGNkZTcwZmFi
MGJjMDAxMTY2YmMuLjg1NTE2OTM3ODdjZWUwYWM3NDk3YWFiNzM2NTkyMTU3MmUwYjZkNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAt
MTI0LDggKzEyNCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgCiBTVkdBbmltYXRl
TW90aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cm90YXRl
TW9kZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYXV0b1ZhbCwgKCJhdXRvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGF1dG9SZXZlcnNlLCAoImF1dG8tcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiBhdXRvVmFsKCJhdXRvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
YXV0b1JldmVyc2UoImF1dG8tcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcm90YXRlID0gZ2V0QXR0cmlidXRlKFNW
R05hbWVzOjpyb3RhdGVBdHRyKTsKICAgICBpZiAocm90YXRlID09IGF1dG9WYWwpCiAgICAgICAg
IHJldHVybiBSb3RhdGVBdXRvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDQ2NmZjYzZiOTM0YjU4N2EwMzI2YmVkZDllODFmMzU5MzU5MTM4YTkuLmI3
OTBjZjBjZjNkOTMxMWFhNTFkYTAwOWM5ZTVkOTA1ODNiNGUxMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTI5NSwxMCArMjk1LDEwIEBAIHZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6dXBkYXRlQW5pbWF0aW9uTW9kZSgpCiAKIHZvaWQgU1ZHQW5p
bWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbWljU3RyaW5nJiBjYWxjTW9kZSkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBsaW5lYXIsICgibGluZWFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHBhY2VkLCAoInBhY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHNwbGluZSwgKCJzcGxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGlzY3JldGUo
ImRpc2NyZXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbGluZWFyKCJsaW5lYXIiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBzcGxpbmUoInNwbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIGlmIChjYWxjTW9kZSA9PSBkaXNjcmV0ZSkKICAgICAgICAgc2V0Q2FsY01v
ZGUoQ2FsY01vZGVEaXNjcmV0ZSk7CiAgICAgZWxzZSBpZiAoY2FsY01vZGUgPT0gbGluZWFyKQpA
QCAtMzEzLDggKzMxMyw4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUo
Y29uc3QgQXRvbWljU3RyaW5nJiBjYWxjTW9kZSkKIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50
OjpzZXRBdHRyaWJ1dGVUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVHlwZSkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBj
c3MsICgiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHhtbCwgKCJY
TUwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3NzKCJDU1MiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiB4bWwoIlhNTCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykKICAgICAgICAgbV9hdHRyaWJ1dGVU
eXBlID0gQXR0cmlidXRlVHlwZUNTUzsKICAgICBlbHNlIGlmIChhdHRyaWJ1dGVUeXBlID09IHht
bCkKQEAgLTM0MSwxNCArMzQxLDE0IEBAIFN0cmluZyBTVkdBbmltYXRpb25FbGVtZW50Ojpmcm9t
VmFsdWUoKSBjb25zdAogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN1bSwgKCJzdW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3VtKCJzdW0i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6YWRkaXRpdmVBdHRyKTsK
ICAgICByZXR1cm4gdmFsdWUgPT0gc3VtIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBCeUFuaW1hdGlv
bjsKIH0KIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVkKCkgY29uc3QK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1bSgic3VtIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmFjY3VtdWxhdGVBdHRyKTsKICAg
ICByZXR1cm4gdmFsdWUgPT0gc3VtICYmIGFuaW1hdGlvbk1vZGUoKSAhPSBUb0FuaW1hdGlvbjsK
IH0KQEAgLTY1Nyw3ICs2NTcsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFkanVzdEZv
ckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0CiAKIHN0YXRpYyBi
b29sIGluaGVyaXRzRnJvbVByb3BlcnR5KFNWR0VsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluaGVyaXQsICgiaW5oZXJp
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgCiAgICAgaWYgKHZhbHVlLmlzRW1w
dHkoKSB8fCB2YWx1ZSAhPSBpbmhlcml0KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCBj
MDJlYTY4MGVjNGY4NjMyZjFkZWY4ZTU3ZWM2Y2RlZTQ4NDk4NGRhLi5hMGI2YWE3N2Q4NTU5Zjhi
OTA1ZWJjMjE3NzMyMDU3MzUwN2VhYWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKQEAgLTgwLDI1ICs4MCwyNSBAQCBQYXNzUmVm
UHRyPFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50PiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tl
cm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZH
S2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lk
ZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6b3JkZXJYSWRlbnRpZmllcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIo
IlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmRlclki
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdPcmRlclkiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwCmluZGV4IDJiMTQxMGI0MzVhMzkyYTczMDAwNmRjYjhlMTMxMWNkOTA0MmQxYmIuLmJl
YWNmNGQ5ZmYxYTE5OWZkYWVmZWI1OTFlOTE1YzFlMjgwM2M2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC02OCwxMyAr
NjgsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvbnMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19p
ZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IHNfaWRlbnRpZmllcigiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0
aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApp
bmRleCA4YWU4NWQzZmYyNjc3YjZmNmJkN2NjZWQzZWQxMGE5MjA5YjEwOGVlLi43ZGFjNDFmMWVm
ODhkYWEwMjg0MzE2Y2NmOWE3NmU5MDY3NzUyZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCkBAIC02NywxMyArNjcsMTMgQEAgUGFzc1JlZlB0
cjxTVkdGRURyb3BTaGFkb3dFbGVtZW50PiBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdGREZXZpYXRpb25YSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlv
blgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdTdGREZXZpYXRpb25Y
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURyb3BTaGFkb3dFbGVtZW50
OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblki
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdTdGREZXZpYXRpb25ZIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRp
ZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcAppbmRleCA3ZDBhYTVjMTk0ODNlYWVlZGY1OGMxN2NjYWU2ZGU5NjIyNGM2YWI4Li4z
ZGQ3OWIwODMxNTUwYWFiMjUyZTczYTEwM2M1MzhlODU2Zjk3ZjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcApAQCAtNjIsMTMgKzYyLDEz
IEBAIFBhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiBTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50OjpzdGREZXZpYXRpb25YSWRlbnRpZmllcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR1N0ZERldmlhdGlvblgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJT
VkdTdGREZXZpYXRpb25YIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvbllJZGVudGlmaWVyKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNW
R1N0ZERldmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5jcHAKaW5kZXggOWRlYzgzN2U0ZWZiMWEzNTgzZWQ2ODY3OTBmM2U5
ODgwMzcxYjY5Ny4uMDkxZGI3MzJkOGNjMzY1OGQ5YTQyMjNhYzFhM2NjZWI4NjQ1MjIwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcApAQCAtNjEs
MTMgKzYxLDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwg
KCJTVkdSYWRpdXNYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHUmFk
aXVzWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBz
X2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudDo6cmFkaXVzWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdSYWRpdXNZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHUmFkaXVzWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cAppbmRleCBjMTRiMmJmZDg3ZDllNTZkZjVhY2QzZWRkNGFjMWQwOWVjZGE3N2IyLi5mMzFlNjBm
NTRjZWM5NDU5NTFkN2MyY2JhYWNlNDg4NjA2OTkzMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC03MiwxMyArNzIs
MTMgQEAgUGFzc1JlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY28KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRl
bnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBz
X2lkZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCmlu
ZGV4IDI0ODA3YTY4NzU0MjNkYWM4NzYyNjg2N2JiZDJlMmM4ODdhNzIxYTIuLjQ1OTQ3NjZkNmI4
Zjg2Y2Y1MGEwMzNlMzFiYjUzMjBhMTY0YWZiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKQEAgLTY2LDEzICs2NiwxMyBAQCBQYXNzUmVmUHRy
PFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQ6OmJhc2VGcmVxdWVuY3lYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VGcmVxdWVu
Y3lYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHQmFzZUZyZXF1ZW5j
eVgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQ6OmJhc2VGcmVxdWVuY3lZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VGcmVxdWVu
Y3lZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHQmFzZUZyZXF1ZW5j
eVkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5k
ZXggMjI3MmMyMWNjOTE1NzJlZWE1NzJlZTRhMmQwNzU4MGIzZTU2Nzk2OS4uZjRmZTQ1OTBlMTU5
YThmNjAzNmEyMzAxNWI5N2FjMjEzZDA1YzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJFbGVtZW50LmNwcApAQCAtODUsMTMgKzg1LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRmlsdGVyRWxl
bWVudD4gU1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWElkZW50
aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdGaWx0ZXJSZXNYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IHNfaWRlbnRpZmllcigiU1ZHRmlsdGVyUmVzWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWUlkZW50aWZpZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwg
KCJTVkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZH
RmlsdGVyUmVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaE1hcC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgKaW5kZXggMzUx
OGY4OGQ4YTY2MTk3NDA0YTIzMDQyOTJkZDE0YmI3NzI1NGRhZi4uZjRhYjEzMjNjZTRhODM0N2Rm
M2MyN2IyZGFjMDU0YmUyMDUxNjQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dseXBoTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgKQEAgLTE0
Myw3ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU1ZHR2x5cGgmIHN2Z0dseXBoRm9yR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIWdseXBoIHx8IGdseXBo
ID4gbV9nbHlwaFRhYmxlLnNpemUoKSkgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFNWR0dseXBoLCBkZWZhdWx0R2x5cGgsICgpKTsKKyAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTVkdHbHlwaD4gZGVmYXVsdEdseXBoKCk7CiAgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdEdseXBoOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2dseXBo
VGFibGVbZ2x5cGggLSAxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5n
U3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKaW5kZXggMGM3
OTQ3ODM4MDNmNzI2Zjg3OWNjYjJjNjhmNjBkYWZkZmVmMzRkYS4uY2E4ZTdkNmFjNGQ4MmZhZWY1
OGMzMGNkOGEzMjk5YmI4ZWZjOTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xhbmdTcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgdm9pZCBTVkdMYW5nU3BhY2U6OnNldFhtbGxhbmcoY29uc3QgQXRv
bWljU3RyaW5nJiB4bWxMYW5nKQogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdMYW5nU3BhY2U6Onht
bHNwYWNlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3BhY2UpIHsKLSAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFN0cmluZywg
KCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0U3RyaW5n
KCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAg
IHJldHVybiBkZWZhdWx0U3RyaW5nOwogICAgIH0KIApAQCAtNjksNyArNjksNyBAQCBib29sIFNW
R0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICAKIHZvaWQgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4mIHN1cHBvcnRlZEF0dHJpYnV0ZXMpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeG1sUHJlZml4LCAoInhtbCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiB4bWxQcmVmaXgoInhtbCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogCiAgICAgUXVhbGlmaWVkTmFtZSBsYW5nV2l0aFByZWZpeCA9IFhN
TE5hbWVzOjpsYW5nQXR0cjsKICAgICBsYW5nV2l0aFByZWZpeC5zZXRQcmVmaXgoeG1sUHJlZml4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA3M2Y0OWU0MzQw
YWJlOTg4ZTM4NGMzYWRhNzc3ZDJkODg1ZGFlOWYzLi42MDBmNWRjNTk1NzM2NzU2NWZjNWQxMWJm
NjVmYjk2YzYyMzI0ZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3Bw
CkBAIC05MywxMyArOTMsMTMgQEAgUGFzc1JlZlB0cjxTVkdNYXJrZXJFbGVtZW50PiBTVkdNYXJr
ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmllcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlm
aWVyLCAoIlNWR09yaWVudFR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVy
KCJTVkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdNYXJr
ZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmllbnRB
bmdsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR09yaWVudEFuZ2xl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6
c3luY2hyb25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgIGlm
IChvd25lclR5cGUtPm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJPcmllbnRBdXRvKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBhdXRvU3RyaW5nLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gYXV0
b1N0cmluZygiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IG93bmVyVHlwZS0+bV9vcmllbnRUeXBlLnN5bmNocm9uaXplKG93bmVyVHlwZSwgb3JpZW50VHlw
ZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRvU3RyaW5nKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDYyNTYxNGNkN2RmMjcyYmE2M2U5M2VlZjIy
ZjI3MzQ4MjQ5YzA5OGYuLjU4MGZhNjhmNjMyOTY3MjdjOTg5YTY4OGM2MDdjYjM0YjQ4MmU0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2
b2lkIFNWR1NWR0VsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1
bWVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTVkdFbGVtZW50Ojpjb250ZW50U2NyaXB0
VHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlwdCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvZWNtYXNjcmlwdCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
biA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTY3JpcHRUeXBlQXR0cik7CiAg
ICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpAQCAtMTMxLDcgKzEz
MSw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q29udGVudFNjcmlwdFR5cGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6OmNv
bnRlbnRTdHlsZVR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2NzcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvY3NzIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0g
ZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6Y29udGVudFN0eWxlVHlwZUF0dHIpOwogICAgIHJl
dHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHAKaW5kZXggNGZjNDFkMzMyYmFkMGYzMzNjZTRhNzc1NWNlNDgyZDI5
YTEwZmNlMS4uZGNiOTVjMGRiYjIyZjUxZTY4ZmFmZmNkZDVlOTA1NWYxMGYxYzg3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBT
VkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUs
ICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVmYXVsdFZhbHVlKCJ0
ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAg
IHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBFeGNlcHRpb25Db2RlJikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6
Om1lZGlhKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgiYWxsIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZmFzdEdldEF0dHJpYnV0ZShT
VkdOYW1lczo6bWVkaWFBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1
ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IDIwN2U3MWJhZmU5NTdhMDgzZDY4MjY4NjFjNjVmZGE3NDM4NjhhNzkuLjJmYTYyZmVi
ZmJhNDEzNmRjYmQ1MGMyZjI5NDUzNjhkNmEwNzNkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWQKICAgICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKQogICAg
ICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogICAgIGVsc2UgaWYgKG5hbWUubWF0Y2hlcyhYTUxO
YW1lczo6c3BhY2VBdHRyKSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmVzZXJ2ZVN0cmluZywgKCJwcmVzZXJ2ZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gcHJlc2VydmVTdHJpbmcoInByZXNlcnZlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAgICAgaWYgKHZhbHVlID09
IHByZXNlcnZlU3RyaW5nKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKaW5kZXggZjc1YjY3ZTJlZjA5MjUwMWM2ZDI4
NzgzOTY0NDY2ZjNlOWUxMmJiNS4uNzJkYjE4ZmI0MGVmNTUzYjRlZjljOGY0M2Y5YzUwMGM2MmQ5
MDI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKQEAgLTEzNSwyNyArMTM1LDI3
IEBAIGNvbnN0IFN0cmluZyYgU1ZHVHJhbnNmb3JtOjp0cmFuc2Zvcm1UeXBlUHJlZml4Rm9yUGFy
c2luZyhTVkdUcmFuc2Zvcm1UeXBlIHR5cGUpCiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1VOS05P
V046CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIGNhc2UgU1ZHX1RSQU5TRk9S
TV9NQVRSSVg6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgbWF0cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJtYXRyaXgoIikpKTsKKyAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbWF0cml4U3RyaW5nKEFTQ0lJTGl0ZXJhbCgibWF0
cml4KCIpKTsKICAgICAgICAgcmV0dXJuIG1hdHJpeFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBT
VkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCB0cmFuc2xhdGVTdHJpbmcsIChBU0NJSUxpdGVyYWwoInRyYW5zbGF0
ZSgiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB0cmFuc2xhdGVT
dHJpbmcoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpOwogICAgICAgICByZXR1cm4gdHJhbnNs
YXRlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6IHsKLSAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2NhbGVTdHJpbmcsIChB
U0NJSUxpdGVyYWwoInNjYWxlKCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHNjYWxlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgic2NhbGUoIikpOwogICAgICAgICByZXR1
cm4gc2NhbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9ST1RBVEU6IHsK
LSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcm90YXRlU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUoIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gcm90YXRlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgicm90YXRlKCIpKTsKICAg
ICAgICAgcmV0dXJuIHJvdGF0ZVN0cmluZzsKICAgICB9ICAgIAogICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9TS0VXWDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBza2V3WFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2tld1goIikpKTsKKyAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2tld1hTdHJpbmcoQVNDSUlMaXRlcmFsKCJza2V3
WCgiKSk7CiAgICAgICAgIHJldHVybiBza2V3WFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdf
VFJBTlNGT1JNX1NLRVdZOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHNrZXdZU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJza2V3WSgiKSkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBza2V3WVN0cmluZyhBU0NJSUxpdGVyYWwo
InNrZXdZKCIpKTsKICAgICAgICAgcmV0dXJuIHNrZXdZU3RyaW5nOwogICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA5ODIyYmQxZGZiYTc2Y2E2ODgwYTUyMjRh
NWI2N2E2MGE1YWEyNDc4Li45ODU3MGYzMjY0OTU5MjdjYTYxMDZkZWQyZWExZmNjOTQxN2Y3Mzhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTg1LDE5ICs4NSwxOSBAQCBTVkdW
aWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnZpZXdCb3hJZGVudGlmaWVyKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNf
aWRlbnRpZmllcigiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3BlYzo6cHJlc2VydmVBc3BlY3RSYXRpb0lkZW50aWZp
ZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1ByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdWaWV3U3BlY1ByZXNlcnZl
QXNwZWN0UmF0aW9BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNU
cmFuc2Zvcm1BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJT
VkdWaWV3U3BlY1RyYW5zZm9ybUF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggOGZhMjk0ZTdkZDEy
ZDZmZDkwM2FmZWRjNDZjM2E1ZmI4ZWY5OGM0MC4uYzFlZmRlZGVjZGMzNDIzNmE0NzJkZmIyMmZi
ZGJmOTgwOWIwNjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9T
VkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdT
TUlMRWxlbWVudC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBTTUlMVGltZSBTVkdTTUlMRWxlbWVu
dDo6cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAgICBTdHJpbmcg
cGFyc2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVlLCAoImluZGVm
aW5pdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRl
ZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHBh
cnNlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmlu
aXRlKCk7CiAKQEAgLTYyOSw4ICs2MjksOCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc0Zyb3pl
bigpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6
cmVzdGFydCgpIGNvbnN0CiB7ICAgIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG5ldmVyLCAoIm5ldmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIHdoZW5Ob3RBY3RpdmUsICgid2hlbk5vdEFjdGl2ZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBuZXZlcigibmV2ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiB3aGVuTm90QWN0aXZlKCJ3aGVuTm90QWN0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RH
ZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnJlc3RhcnRBdHRyKTsKICAgICBpZiAodmFsdWUgPT0gbmV2
ZXIpCiAgICAgICAgIHJldHVybiBSZXN0YXJ0TmV2ZXI7CkBAIC02NDEsNyArNjQxLDcgQEAgU1ZH
U01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogICAg
IAogU1ZHU01JTEVsZW1lbnQ6OkZpbGxNb2RlIFNWR1NNSUxFbGVtZW50OjpmaWxsKCkgY29uc3QK
IHsgICAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBmcmVlemUsICgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGZyZWV6
ZSgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmZpbGxB
dHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1v
dmU7CiB9CkBAIC02NzQsNyArNjc0LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVh
dENvdW50KCkgY29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBT
TUlMVGltZTo6dW5yZXNvbHZlZCgpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVlLCAoImluZGVmaW5pdGUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRlZmluaXRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHZhbHVlID09IGlu
ZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7CiAg
ICAgYm9vbCBvazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlGYWxs
YmFja0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJh
Y2tGb250U2VsZWN0b3IuY3BwCmluZGV4IGU0YmU2YTY0ZjI2YmU0ZDNlNDgwMmU3ZDU3NjhlZTUx
YTQ3YzBiZTMuLmQ2MjYxYjE3MDc3NDQxNWIwNTNjY2U1MTkyN2ZlZGIyM2EyZTMwMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9y
LmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUGFzc1Jl
ZlB0cjxGb250RGF0YT4gRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvcjo6Z2V0RmFsbGJhY2tGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgc2l6ZV90KQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGFwcGxlQ29s
b3JFbW9qaSwgKCJBcHBsZSBDb2xvciBFbW9qaSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBhcHBsZUNvbG9yRW1vamkoIkFwcGxlIENvbG9yIEVtb2ppIik7CiAg
ICAgUmVmUHRyPEZvbnREYXRhPiBmb250RGF0YSA9IGZvbnRDYWNoZSgpLmdldENhY2hlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgYXBwbGVDb2xvckVtb2ppKTsKICAgICBpZiAoIWZvbnREYXRh
KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBcIkFwcGxlIENvbG9yIEVtb2pp
XCIgZnJvbSB0aGUgZm9udCBjYWNoZS4gVXNpbmcgdGhlIGxhc3QgcmVzb3J0IGZhbGxiYWNrIGZv
bnQgaW5zdGVhZC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KaW5kZXggZmFiNzMwNTUyNTE1MDNm
OTRmN2Q2MjFiOTlkMTEzYjI1ZjkwYWZiMi4uYTc5Y2FhOTQzYTg4MGEzZTQ5ZjFmMGVjOWNlMWEy
MTgwOTBiNGU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KQEAgLTUwLDcgKzUwLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleCgpOwog
ICAgIHJldHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
YkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCAwNzdjOTAzNjZlMGJhY2U0NTY1OTVhYTZjOGM5N2Zj
NzI1ODc1ZDJlLi4yYmUwNjhhYjNiNDFlOGU1NzYwZDQ1Nzg3NmVjNTM5NmFlNWY1YjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQpAQCAt
NjAsNyArNjAsNyBAQCB0eXBlZGVmIEhhc2hNYXA8QmFja0ZvcndhcmRMaXN0KiwgV2ViQmFja0Zv
cndhcmRMaXN0Kj4gQmFja0ZvcndhcmRMaXN0TWFwOwogLy8gd2l0aCBhIHBvaW50ZXIgdG8gYSBX
ZWJCYWNrRm9yd2FyZExpc3QgaW4gaXQuCiBzdGF0aWMgQmFja0ZvcndhcmRMaXN0TWFwJiBiYWNr
Rm9yd2FyZExpc3RzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQmFj
a0ZvcndhcmRMaXN0TWFwLCBzdGF0aWNCYWNrRm9yd2FyZExpc3RzLCAoKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkTGlzdE1hcD4gc3RhdGljQmFja0ZvcndhcmRMaXN0
cygpOwogICAgIHJldHVybiBzdGF0aWNCYWNrRm9yd2FyZExpc3RzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCA1NGNlYmQ2NzgyNmM3NTk5
OTg1MDIyYzY2NTg4ODFhYzhiZGMzZjAxLi40ZTJlYzJmMWE5Y2NlYjFjYTllMWQzYTBlNmI2ZDA2
ZmZlNjVlNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3Rv
cnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0u
bW0KQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmVIaXN0b3J5SXRlbSog
Y29yZShXZWJIaXN0b3J5SXRlbVByaXZhdGUqIGl0ZW1Qcml2YXRlKQogCiBzdGF0aWMgSGlzdG9y
eUl0ZW1NYXAmIGhpc3RvcnlJdGVtV3JhcHBlcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIaXN0b3J5SXRlbU1hcCwgaGlzdG9yeUl0ZW1XcmFwcGVycywgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIaXN0b3J5SXRlbU1hcD4gaGlzdG9yeUl0ZW1XcmFw
cGVycygpOwogICAgIHJldHVybiBoaXN0b3J5SXRlbVdyYXBwZXJzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbQppbmRleCBmMTY4YTdhNzAwZjQzYWM0Y2FlMDNkMTYyOWQwYTdjMTUwMmIz
ODFjLi4yMjg0ODAxMmRiNGJhZWY1ZDE2NGNiNjA1Y2I4ZTg5ZjM4ZmFkYWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5h
Z2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSG9zdE1hbmFnZXIubW0KQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnNo
YXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHNjYXBlUGx1
Z2luSG9zdE1hbmFnZXIsIHBsdWdpbkhvc3RNYW5hZ2VyLCAoKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI+IHBsdWdpbkhvc3RNYW5hZ2VyKCk7
CiAgICAgCiAgICAgcmV0dXJuIHBsdWdpbkhvc3RNYW5hZ2VyOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQppbmRleCA1NzA1Y2ZiM2IxN2VlOGEyNWM4NDc0NTcyZDMyZWIzMjZmNDRiOTFmLi40OWYw
MGZiZDI0OWQyMjhmOWExMTgyMGM5YzdhY2FjMjM1ZDIyMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQpAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogdHlwZWRlZiBIYXNoTWFwPG1hY2hfcG9y
dF90LCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eSo+IFBsdWdpblByb3h5TWFwOwogc3RhdGljIFBs
dWdpblByb3h5TWFwJiBwbHVnaW5Qcm94eU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFBsdWdpblByb3h5TWFwLCBwbHVnaW5Qcm94eU1hcCwgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxQbHVnaW5Qcm94eU1hcD4gcGx1Z2luUHJveHlNYXAoKTsKICAg
ICAKICAgICByZXR1cm4gcGx1Z2luUHJveHlNYXA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHkubW0KaW5kZXggNTM4NjFkNTEwZDI3ZjU5NTkwZWMwMTRmMzBhMjE2NWEzYWMyMTQzOS4uZDc2
OGY2OTFmM2RhYzBmNTJjZjdiYzdjMWMxNmNmMTYyYzEyZWIwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eS5tbQpAQCAtMTY2Myw3ICsxNjYzLDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OnByaXZhdGVCcm93c2luZ01vZGVEaWRDaGFuZ2UoYm9vbCBpc1ByaXZhdGVC
cm8KIAogc3RhdGljIFN0cmluZyYgZ2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25TdHJpbmcsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBleGNlcHRpb25TdHJpbmcoKTsKICAg
ICByZXR1cm4gZXhjZXB0aW9uU3RyaW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCA3ODMxNjNlYTJhZjY2YWVjNTBk
ZTdkYjY0ZTY5MTY2ZTRkY2ViNzkwLi45NGJjM2MyMDU4Y2I3ZjZlM2RmY2M1YmUzOGU4NjBkODY3
MmU5YjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0KQEAgLTY1LDggKzY1LDggQEAgRmllbGQqIFByb3h5Q2xhc3M6OmZpZWxkTmFt
ZWQoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlKSBjb24KIAog
c3RhdGljIFByb3h5Q2xhc3MqIHByb3h5Q2xhc3MoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChQcm94eUNsYXNzLCBwcm94eUNsYXNzLCAoKSk7Ci0gICAgcmV0dXJuICZw
cm94eUNsYXNzOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQcm94eUNsYXNzPiBwcm94eUNs
YXNzKCk7CisgICAgcmV0dXJuICZwcm94eUNsYXNzLmdldCgpOwogfQogICAgIAogY2xhc3MgUHJv
eHlGaWVsZCA6IHB1YmxpYyBKU0M6OkJpbmRpbmdzOjpGaWVsZCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQppbmRleCA5MzVk
NTVlYzE0Yzg4NWRiZjllODUxNmFmMjQ0NmUyOTdiZGU3M2YwLi4zOTgwYWU5NDczNmJmZDg1ZDQ2
MGQ0ODdiOWQ4ZDI3ZTg0MDJjOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0
ZToKIHR5cGVkZWYgSGFzaE1hcDxOUFN0cmVhbSosIE5QUD4gU3RyZWFtTWFwOwogc3RhdGljIFN0
cmVhbU1hcCYgc3RyZWFtcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmVhbU1hcCwgc3RhdGljU3RyZWFtcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJlYW1NYXA+IHN0YXRpY1N0cmVhbXMoKTsKICAgICByZXR1cm4gc3RhdGljU3RyZWFtczsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1h
bmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5t
bQppbmRleCAzOTEyZjU4ZTJlODU4NzYxM2ViY2Q2NDAzZmQ5MWEwZjg1MTgxNjI2Li4wMTNiNThl
NWY3Y2RlMTg1NDgzZjUzYWJlYTNmODVkYjc3MDkyZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0
YXRpYyBib29sIGlzRmlsZUhpZGRlbihOU1N0cmluZyAqZmlsZSkKIAogc3RhdGljIE11dGV4JiB0
cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4KCk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGll
bnQubW0KaW5kZXggMWE2NDQwZDk1ZmEzYWRiNGYyZDk1NzAwZDBiOTFkYWRkN2E4YWRiYS4uMjdk
MzI4MTQ5OTBmYjUxNzQ3ODhkZTQ5MDIzZjgxNWU1ZjNlNjliNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAt
NTYsNyArNTYsNyBAQCB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+LCBS
ZXRhaW5QdHI8V2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXI+PgogCiBzdGF0aWMgVXNlck1lZGlh
UmVxdWVzdHNNYXAmIHVzZXJNZWRpYVJlcXVlc3RzTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVXNlck1lZGlhUmVxdWVzdHNNYXAsIHJlcXVlc3RzLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVzZXJNZWRpYVJlcXVlc3RzTWFwPiByZXF1ZXN0cygp
OwogICAgIHJldHVybiByZXF1ZXN0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQppbmRleCAwOWRkYzFkODVjMzNlZTkwOTBj
YzU0NTgwYzQxNTYzNzI0NWI2ZDFhLi4wNDBmNGVjMzAyZWRiZTc4N2MzMjE5NDc5YTRmOTI4YWZj
NjA5MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQpAQCAtMzY1LDcgKzM2NSw3IEBAIHN0YXRpYyBSZWd1bGFyRXhwcmVzc2lv
biogcmVnRXhwRm9yTGFiZWxzKE5TQXJyYXkgKmxhYmVscykKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IHJlZ0V4cENhY2hlU2l6ZSA9IDQ7CiAgICAgc3RhdGljIE5TTXV0YWJsZUFycmF5
KiByZWdFeHBMYWJlbHMgPSBuaWw7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFZlY3RvcjxSZWd1bGFyRXhwcmVzc2lvbio+LCByZWdFeHBzLCAoKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZ3VsYXJFeHByZXNzaW9uLCB3b3JkUmVnRXhwLCAoIlxc
dyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3Vs
YXJFeHByZXNzaW9uPiB3b3JkUmVnRXhwKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2ZSk7CiAKICAg
ICBSZWd1bGFyRXhwcmVzc2lvbiogcmVzdWx0OwogICAgIGlmICghcmVnRXhwTGFiZWxzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKaW5kZXggOWJhNjUzNzQ2OWM4ODhmNzE0NWEwNTRiNDkwMTc3M2Y4ZTFk
NDI0OS4uZDIzOWEwNzlkM2U1MDgzZDNjYTIzYTBkNWMxNmI5ZjQ3NGZlZGQwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdlYlBsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1T
dHJhdGVnaWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYlBsYXRmb3JtU3Ry
YXRlZ2llcz4gcGxhdGZvcm1TdHJhdGVnaWVzKCk7CiB9CiAKIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6
YWJsZVN0cmluZ3MuY3BwCmluZGV4IGZkYjE4MWRhNWIxZTZjODJmNjlmMmI3ODI0MDk2MzU4YTU3
NzU0NmIuLmM4MjkwMGNkYzMzYWVmODQ3YmFlZWM2NWZjMzc4MDkwMzFiNDRlMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcApAQCAtNDcsMjUgKzQ3LDI1
IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0
cmluZ01hcDsKIAogc3RhdGljIE11dGV4JiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleCgpOwogICAgIHJldHVybiBtdXRl
eDsKIH0KIAogc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3Mo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbGl6ZWRTdHJpbmdN
YXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NhbGl6ZWRTdHJpbmdN
YXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKIHN0YXRpYyBNdXRleCYgZnJhbWV3b3Jr
TG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TXV0ZXgsIG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRl
eCgpOwogICAgIHJldHVybiBtdXRleDsKIH0KIAogc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCBm
cmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTG9jYWxpemVkU3RyaW5nTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8TG9jYWxpemVkU3RyaW5nTWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCmluZGV4IDdlMzYwOGY5YzBmNjZhZTU3NGFjYjI1MmZiZTU4YzhiMDFlNjk3
Y2MuLjE5YWU4MDM5YzgwMTA0MDE4YzMyYzNlZjgzNmM4MWJiMjBjNWRjYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCkBAIC0xMzIxLDggKzEzMjEsOCBAQCBib29sIFdlYlZpZXc6OmNhbkhhbmRsZVJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiBTdHJpbmcg
V2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmlu
ZyYgYXBwbGljYXRpb25OYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIG9zVmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJpbmcoKSkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZlcnNpb24sICh3
ZWJLaXRWZXJzaW9uU3RyaW5nKCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBvc1ZlcnNpb24od2luZG93c1ZlcnNpb25Gb3JVQVN0cmluZygpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiB3ZWJLaXRWZXJzaW9uKHdlYktpdFZlcnNpb25TdHJpbmcoKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKCIsIG9zVmVyc2lvbiwgIikg
QXBwbGVXZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pIiwgYXBw
bGljYXRpb25OYW1lLmlzRW1wdHkoKSA/ICIiIDogIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggNGM2MWRiYjBmNGMxM2ZmZjM5Y2QwZDM4NTBh
ZmE1ZmFiNGY1MDg2Zi4uZGUwMzUwMDJjYmQxMDdkNjhmMjJlNmE1MzI3NGEwYTkwMjQ5NGI4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEZyYW1lTG9hZGVy
Q2xpZW50V2luQ0U6On5GcmFtZUxvYWRlckNsaWVudFdpbkNFKCkKIAogU3RyaW5nIEZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0U6OnVzZXJBZ2VudChjb25zdCBVUkwmKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHVzZXJBZ2VudFN0cmluZywgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHVzZXJBZ2VudFN0cmluZygpOwogCiAgICAgaWYg
KHVzZXJBZ2VudFN0cmluZy5pc051bGwoKSkgewogICAgICAgICBTdHJpbmcgd2ViS2l0VmVyc2lv
biA9IFN0cmluZzo6Zm9ybWF0KCIlZC4lZCIsIFdFQktJVF9NQUpPUl9WRVJTSU9OLCBXRUJLSVRf
TUlOT1JfVkVSU0lPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCmluZGV4IGM2NTE5Mzhm
ZGUxNzgyOGE4MGY2ZGU0OWYyNzM5ZDIyNWQ0NTZjNGUuLjA5M2Q1ZDc3NjJmZTFmNjgxOGFlNGQ3
ZTU3YzgwNzJlMGFlOTY5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiB2b2lkIFBsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFOjppbml0aWFsaXplKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UsIHBsYXRmb3JtU3RyYXRlZ2llcywgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRT4gcGxhdGZv
cm1TdHJhdGVnaWVzKCk7CiB9CiAKIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpQbGF0Zm9ybVN0
cmF0ZWdpZXNXaW5DRSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgv
U2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAKaW5kZXggNThlNzNmOTFmN2Ni
YjQ1MWYyNGI0OTFmNWVkN2Y5YmZlZGZhOWQwZi4uOWI2ODFlMDUwOTBjZTA3M2E2ZjY0NjQ0Y2Jk
NmRlMmY0ZmM4YjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1Nl
Y2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcApAQCAtMTc2LDcgKzE3Niw3
IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyU0lHU1lTSGFuZGxlcigpCiAKIFNlY2NvbXBCcm9rZXJD
bGllbnQmIFNlY2NvbXBCcm9rZXJDbGllbnQ6OnNoYXJlZChpbnQgc29ja2V0KQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTZWNjb21wQnJva2VyQ2xpZW50LCBicm9rZXJD
bGllbnQsIChzb2NrZXQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2VjY29tcEJyb2tl
ckNsaWVudD4gYnJva2VyQ2xpZW50KHNvY2tldCk7CiAKICAgICByZXR1cm4gYnJva2VyQ2xpZW50
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZl
ci9XZWJJbnNwZWN0b3JTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3Bl
Y3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuY3BwCmluZGV4IDVkZmY1NDYzMDM2YzM3ZGY1
NTk3YzliZTJhZDk5ZDM4OWQyZTU4ZTEuLmE5MzA5OWNhNTlhMGMwNDQ5YzA3NDRlZmQ2NzdkY2Y4
OTE2MjgyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JT
ZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5jcHAKQEAgLTE0MSw3ICsxNDEs
NyBAQCBib29sIFdlYkluc3BlY3RvclNlcnZlcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldFVwZ3JhZGVI
VFRQUmVxdWVzdChXZWJTb2NrZXRTZXJ2ZXJDbwogICAgIFN0cmluZyBwYXRoID0gcmVxdWVzdC0+
dXJsKCk7CiAKICAgICAvLyBOT1RFOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIFdlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBhdGhQ
cmVmaXgsIChBU0NJSUxpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gaW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBh
dGhQcmVmaXgoQVNDSUlMaXRlcmFsKCIvZGV2dG9vbHMvcGFnZS8iKSk7CiAKICAgICAvLyBVbmtu
b3duIHBhdGggcmVxdWVzdGVkLgogICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGluc3BlY3Rvcldl
YlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4KSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234693</attachid>
            <date>2014-07-10 00:15:40 -0700</date>
            <delta_ts>2014-07-10 00:29:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134794-20140710124526.patch</filename>
            <type>text/plain</type>
            <size>322957</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NzQ2NTc3OTJjZmIxZjBhYzhiNzM1ZWE5MjM1NjU4OGI4MmIzNDc2Li5lZjgzMzAxNmNhZjljYzJl
MGU5MGYyNzI1NGVhYzdiYWFmOTBiMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBNaWdyYXRlIHRoZSB1c2FnZSBvZiBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVCwgbmFtZSwgYXJncykgdG8gInN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBu
YW1lKGFyZ3MpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoanNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAg
ICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpvYmplY3RH
cm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAgICAqIGludGVycHJldGVyL0pT
U3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3RpY3NNdXRleCk6CisKIDIwMTQt
MDctMDkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dp
bl0gUmVtb3ZlIHVzZXMgb2YgJ2Jhc2gnIGluIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMGFlOTc3YWU2
MGM5YWZmMjZmOWNmN2U4ZjAxZGMzMTZjYjM3MmNhLi4zYmUxM2U2OGYyODE3MmI2ODA2OTFhNWQ3
Nzg1MmE2MzkxZGI0ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAoV1RGOjp0aHJlYWRNYXBN
dXRleCk6CisgICAgICAgIChXVEY6OnRocmVhZE1hcCk6CisKIDIwMTQtMDctMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBi
dWlsZCBmaXggYWZ0ZXIgcjE3MDkzMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTlhYjdmYzc1ODE5N2ZiMDJk
YmQxMTZhODE1MjM3ZDQ3N2NkNDExLi5kNmY5ODY5Y2Q3ZDAwYWVmODYyYWZlNzJjOTkyYWYxYTBi
MWNlMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjY5IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgcmVxdWlyZWQgYXMgdGhp
cyBpcyBhIGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdHJpbmdGb3JQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
ZGlyZWN0aW9uTmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5l
eHRVbmlxdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9k
ZVJlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlw
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OmVuZGVkS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3Ry
ZWFtRW5kZWRXaXRoRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21I
YW5kbGVyc1N0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRV
dGlsczo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpx
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudFNjcmlwdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6Ym91bmRhcnlFdmVudE9jY3VycmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2NDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSW50ZXJuYWwubW06CisgICAgICAgICh3cmFwcGVyQ2FjaGVMb2NrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJD
b3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ondy
YXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5Lmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFw
cGVyT3duZXIpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6cmVz
b2x2ZXNGYW1pbHlGb3IpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkUmVzb2x1dGlvbldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAg
KiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY2N1bXVsYXRvck1hcCk6
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzU3VwcG9ydGVkU1ZHMTBGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3VwcG9ydGVk
U1ZHMTFGZWF0dXJlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlYWR5U3RhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAg
ICAqIGRvbS9FdmVudExpc3RlbmVyTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZUl0
ZXJhdG9yQ291bnRNdXRleCk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAgICog
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlk
Q1NTQ29udGVudFR5cGUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OnN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25S
ZWNvcmQuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0RGF0YU1hcCk6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cHNldWRvRWxlbWVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMpOgorICAgICAgICAqIGRv
bS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1YWxpZmllZE5hbWVDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpudWxsUU5hbWUpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVzZW50
YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTcGFuQ2xhc3NTdHJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW50ZXJj
aGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4pOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQnJlYWtpbmdTcGFjZVN0cmluZyk6CisgICAgICAg
ICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OnN0eWxlTm9kZUNsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1h
cmt1cEludGVybmFsKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL0Zvcm1Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkp
OgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVN0YXRlU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3RFZGl0YWJsZUVs
ZW1lbnRNYXApOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3VtbWFy
eVF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlua0xvYWRFdmVudFNlbmRl
cik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmRvY3VtZW50VG9FbGVtZW50U2V0TWFwKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9y
bUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0aXRsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c3VidGl0bGVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSk6
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVMb2FkRXZlbnRTZW5k
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpk
YXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpy
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
Ojp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1l
czo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAocGxheWJhY2tTdGF0ZVBsYXlpbmcpOgor
ICAgICAgICAocGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAgICAgKiBodG1sL1N0ZXBSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6
ZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJbmplY3RlZCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01h
cmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWluZXJFbGVtZW50U2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6Om1haW5EZXNjS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp0cmFuc2xhdGlvbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6
Y29tbWVudGFyeUtleXdvcmQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpt
ZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpmb3JjZWRLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGlkZGVuS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5kS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0S2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpyaWdodEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGlj
YWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZUJveDo6dnR0
Q3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1p
bmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6bWFya0Z1dHVyZUFu
ZFBhc3ROb2Rlcyk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVn
aW9uOjpzZXRTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpwYXJzZVNldHRp
bmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRh
aW5lclNjcm9sbGluZ0NsYXNzKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm9kZVR5cGVUb1RhZ05hbWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVjdE1ldGFkYXRhSGVhZGVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHV0ZVBzZXVkb0NsYXNzTWFzayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c291cmNlTWFw
VVJMRm9yUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNl
RGVsaW1pdGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3Jp
cHQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9s
aWN5UHJldmVudGVkTG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAg
ICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUpOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUpOgorICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zQmFja2dyb3VuZENTUyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNU
ZXh0RWRnZUNTUyk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
Y3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVk
RGlyZWN0aXZlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OndpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZHJhZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwOgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luQWNjZXNzTWFwKToK
KyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dG
b3JCbGVuZGluZyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRlckN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpjcm9zc0N1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjpoYW5kQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdmVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGljYWxUZXh0Q3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OmNlbGxDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6YWxpYXNDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6
em9vbUluQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Onpvb21PdXRDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub25lQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByb2dyZXNzQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
RHJvcEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2VkQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlCZWFtQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OndhaXRDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6aGVscEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjplYXN0
UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoUmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpub3J0aFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhSZXNpemVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UmVzaXplQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNvdXRoV2VzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjp3
ZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoU291dGhSZXNpemVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZWFzdFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpj
b2x1bW5SZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6cm93UmVzaXplQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZVBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6ZWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhQYW5uaW5nQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bm9ydGhXZXN0UGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpz
b3V0aFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UGFubmluZ0N1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6Ondlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OmdyYWJD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Z3JhYmJpbmdDdXJzb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9ic2VydmVyTWFwKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhTUlNRVR5cGVNYXAp
OgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVtb3J5UHJl
c3N1cmVIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpsb2NhbFVSTFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGlz
cGxheUlzb2xhdGVkVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpzZWN1cmVTY2hlbWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjplbXB0eURvY3VtZW50U2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lc0Fs
bG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDT1JTRW5hYmxlZFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6
OnRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YmxhbmtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9ydEZvclByb3RvY29sKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F0ZW5hdGVkSW1wdWxzZVJlc3BvbnNl
c0ZvclN1YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXVkaW9EZXN0aW5hdGlvbnMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRF
Y29yZUN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmb250R2x5cGhzQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVDb250ZXh0TGlzdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZXBhaW50UmVjdE1hcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVh
bSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNNVGltZVJhbmdlU3RhcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q01UaW1lUmFuZ2VEdXJhdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpDQUNG
Q29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF5ZXJUb1ByaXZhdGVNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpl
ZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFyZkJ1enpGYWNlQ2FjaGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHM6OmVtcHR5VmFsdWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVHYW1lcGFk
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OktleUJpbmRpbmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0Zv
cktleUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhl
bHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFdpbmRvd0hhc2hNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVD
b250ZXh0TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY2hlZHVsZVNjcmF0Y2hCdWZmZXJQdXJnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
dXJzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXJJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVs
ZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6
dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVu
dE9ic2VydmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYlRocmVhZEdldE9ic2VydmVkQ29udGVudE1v
ZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnBsYXRmb3JtVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgorICAgICAgICAo
V2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojptb2NrU291cmNlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVN0cmVhbUNlbnRl
cjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tC
b3g6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0luaXRpYWxpemF0aW9uQm94Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTYW1wbGVCb3g6OnR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhU
b0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYU1NQcm90ZWN0aW9uSGVh
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0
dWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0
U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0
b3JNYXApOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25v
dXNMb2FkZXJNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGllbnRDZXJ0cyk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpZW50Q2VydGlmaWNh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlOjpnZXQpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzY3JpcHROYW1lVG9Db2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsZVRv
U2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2No
YXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3b3JkQnJl
YWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzZW50ZW5jZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRM
b2NhbGVOYW1lVG9MQ0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dz
U3R5bGVOZXdsaW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVuZGxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9y
YWdlRGlyZWN0b3J5KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBlcnNpc3RlbnRQbHVnaW5NZXRhZGF0YUNhY2hlUGF0aCk6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRpbnVhdGlv
bk91dGxpbmVUYWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JU
ZXh0T3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
dW50ZXJNYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Ny
b2xsYmFyVGhlbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjdXN0b21Gb2N1c1JpbmdDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5
c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0
TmV3UGFyZW50TWFwKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFBhaW50ZXI6OnBhaW50VGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0dyaWRUcmFja1NpemUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRy
YWNrQnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0Jy
ZWFkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
UGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q2h1bmtCdWlsZGVyOjp0cmFuc2Zvcm1hdGlvbkZvclRl
eHRCb3gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6cm90YXRlTW9kZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6aW5oZXJpdHNGcm9tUHJvcGVydHkpOgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVu
Z3RoWUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6Om9yZGVyWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlk
ZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERl
dmlhdGlvbllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3Rk
RGV2aWF0aW9uWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5
RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6cmFkaXVzWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojpi
YXNlRnJlcXVlbmN5WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhNYXAuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoTWFwOjpzdmdHbHlwaEZvckdseXBoKToKKyAgICAgICAgKiBzdmcvU1ZHTGFu
Z1NwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6eG1sc3BhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAg
KiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
Ojpjb250ZW50U2NyaXB0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpj
b250ZW50U3R5bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVHJh
bnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlw
ZVByZWZpeEZvclBhcnNpbmcpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmlld0JveElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U01JTEVsZW1lbnQ6OnJlc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KToK
KwogMjAxNC0wNy0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCByMTcwNDEzIGFuZCByMTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXgg
NmNjNmM4NWQwZjc0NDNlN2E3YThhNDE4ZjIwMGIyMzhmZTU3ZDFhYS4uNjc5ZjZjNGEzMzQ0NTFm
OGJhNGE3ZTdlNWI0ZTI2MzUyZDlhMzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgor
CisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJn
cykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
c2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChFbW9qaUZhbGxiYWNr
Rm9udFNlbGVjdG9yOjpnZXRGYWxsYmFja0ZvbnREYXRhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2spOgorCiAyMDE0LTA3LTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV1RGOjptb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkZTk2NjYxYWQ0MWUwZWUzYmI5YzA0Nzk0MDM4ZWRjOThmNTQ5ODA1Li44YTdmN2Y0N2VlZWRh
M2UxNzIwYTlkNjM5ZTAyZDYzNzBhYzBhODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShh
cmdzKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChiYWNrRm9yd2FyZExpc3Rz
KToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoaGlzdG9y
eUl0ZW1XcmFwcGVycyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
cjo6c2hhcmVkKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJveHlNYXApOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm94eUNsYXNzKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoc3RyZWFtcyk6
CisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW06CisgICAgICAgICh0cmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKHVzZXJNZWRpYVJlcXVlc3Rz
TWFwKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAg
ICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTQtMDctMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTY3NzcwKTogQ2Fubm90IGxvZ2lu
IGluIEV2ZXJub3RlIFNhZmFyaSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxODhiZjA5
MTM0ODQyY2QyMTE0ZmE4NWE5MmM1ZTgwZTY5MDk2ZDlhLi4wYjY0YmVmZGI0ZTUxNjlkNmM5MjUy
OGQ0NzY3ZmJhMWNhOTgyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQs
IG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdzKSIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cDoKKyAgICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKToKKyAgICAgICAgKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzKToKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZSk6CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCAwZWQ4ZTFkZDdiYTliYjQxMWY5OGIxMjU2ZDkwMjQ1YWM5MzliNzczLi5hMjBmYTg3YjQzYWNk
NTkyMjk3YmYxZTNkYTA0MGZiNzU3OTE2ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5h
bWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0xMiAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgREVGSU5F
X1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNzA2MWVkODBiMjgwOTliZDA0MjdhYTZlNzRkZmNmMTMwOTA4ZGY4Li44ZTgwZTBiM2Yy
YzFjZjcxZjUyMjg4ZGQ2NGQwYmM1ODNhNWE0MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdz
KSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KToKKwogMjAxNC0wNy0wOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjE3MDg1OCk6IFNhZmFyaSBmcmVlemVzIHVwb24gbWFraW5nIGEg
c2VhcmNoIG9uIGEgd2Vic2l0ZSAoeWVscC5jb20pLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQppbmRleCA4OTdlOTZmNDRlMGY0MWMzOTFiYjhk
NjYwZWY3MzA3NDBlZmNjMWVkLi41YWViNWJmMjE5ODJhMzBiOTVkNjg5MmE5NDIyMTFjZjg2MTZk
YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVj
dC5tbQpAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmpl
Y3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
ciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzV3JhcHBl
ck9iamVjdEhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcj4ganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKTsKKyAgICBy
ZXR1cm4gJmpzV3JhcHBlck9iamVjdEhhbmRsZU93bmVyLmdldCgpOwogfQogCiB2b2lkIEpTQVBJ
V3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRW
YWx1ZS5tbQppbmRleCA5NTNjYjVmYmRhYWMxMzZlNjUxYjI5Y2NmNThlN2Q3NDM5OGZjOTBlLi5m
NzgxODdkZDhlZjhkYjIzMzk3MGY3ZTJhMTk4M2Y4YTFmZDM5ZDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KQEAgLTQ2LDggKzQ2LDggQEAgcHVibGlj
OgogCiBzdGF0aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciogbWFuYWdlZFZhbHVlSGFuZGxl
T3duZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU01hbmFnZWRW
YWx1ZUhhbmRsZU93bmVyLCBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLCAoKSk7Ci0gICAgcmV0
dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyPiBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKCk7
CisgICAgcmV0dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLmdldCgpOwogfQogCiBjbGFz
cyBXZWFrVmFsdWVSZWYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAy
MzEzMmZjMjBlYWNkMWJlZTEwZDM0ZTczZjZjMDhhYjljYzgyYWY4Li5lNTBhMzkwOTA2NDA2YzUz
NzI2YzhhZGE5NWJlMmZjY2FkZWQyNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcApAQCAtNTIsNyArNTIsNyBAQCBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9ICJiYWNrdHJhY2UiOwogLy8gY3JlYXRlIG9iamVjdHMg
aW4gdGhlIHNhbWUgZ3JvdXAuCiBzdGF0aWMgU3RyaW5nIG9iamVjdEdyb3VwRm9yQnJlYWtwb2lu
dEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiBhY3Rpb24pCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb2JqZWN0R3Jv
dXAsICgiYnJlYWtwb2ludC1hY3Rpb24tIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG9i
amVjdEdyb3VwKCJicmVha3BvaW50LWFjdGlvbi0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhvYmplY3RHcm91cCwgU3RyaW5nOjpu
dW1iZXIoYWN0aW9uLmlkZW50aWZpZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdz
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3JTdHJpbmdzLnB5CmluZGV4IDI3NjM3NDQxNjBiODRmZmQyYzM3NzU5YTQzZGJk
MzNkZjAxNDVhNDQuLmVjMmMyNzE5YTdkMDJkMWVlNWJhMTQ1NDc4Zjg0ZGJmZTJkNjkyYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkKQEAgLTcyLDcg
KzcyLDcgQEAgYmFja2VuZF9kaXNwYXRjaGVyX2Rpc3BhdGNoX21ldGhvZCA9ICgKIAogICAgIHR5
cGVkZWYgdm9pZCAoJHtkaXNwYXRjaGVyTmFtZX06OipDYWxsSGFuZGxlcikobG9uZyBjYWxsSWQs
IGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKTsKICAgICB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4gRGlzcGF0Y2hNYXA7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKERpc3BhdGNoTWFwLCBkaXNwYXRjaE1hcCwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEaXNwYXRjaE1hcD4gZGlzcGF0Y2hNYXAoKTsKICAgICBp
ZiAoZGlzcGF0Y2hNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
TWV0aG9kVGFibGUgewogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAppbmRleCBjNmE3MDNjYmM2MDMw
NzQ0MzJjMGIyODFlYzIwOTE5ZWUzYmVjODEyLi5kOWMxN2Y3NTMwY2RkYjJhMWMwYzQ0M2E2Mjk3
MTJkMzE2ZTNlNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suY3BwCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZXND
b3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IHN0YXRpY011dGV4KCk7CiAgICAgcmV0
dXJuIHN0YXRpY011dGV4OwogfSAgICAKICNlbmRpZiAvLyAhRU5BQkxFKEpJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgKaW5kZXggYzFmNDVlMDc3MWNjODExZDczNTUzM2RkNWMxZmFhMzc0MDA5MzY2NC4u
NjBkZmJlNThhMTU1MGVhZGYyNzE0NzhhOTk5YzMyNWMxODIyMTUyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0
cmFzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KKyNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogLy8gVGhpcyB3YXMgdXNlZCB0byBkZWNsYXJl
IGFuZCBkZWZpbmUgYSBzdGF0aWMgbG9jYWwgdmFyaWFibGUgKHN0YXRpYyBUOykgc28gdGhhdAog
Ly8gIGl0IHdhcyBsZWFrZWQgc28gdGhhdCBpdHMgZGVzdHJ1Y3RvcnMgd2VyZSBub3QgY2FsbGVk
IGF0IGV4aXQuIFVzaW5nIHRoaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRl
eCA2MTkyOTE1Y2IxYmQzMjMzYjEyNGMwN2I0MzZlOGYxMjM5ZDA5ZTljLi43MDA1NDFjZGY5NDAz
MDkzOTA5YzQ3MGZiMzNiMjc1ZGIzZWM2OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVh
ZHMuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCB0aHJlYWRXYXNKb2luZWQoVGhyZWFkSWRl
bnRpZmllcik7CiAKIHN0YXRpYyBNdXRleCYgdGhyZWFkTWFwTXV0ZXgoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4KCk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBA
IC0xMzIsNyArMTMyLDcgQEAgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKIAogc3RhdGljIFRo
cmVhZE1hcCYgdGhyZWFkTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoVGhyZWFkTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VGhyZWFk
TWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKaW5kZXggNTI3MGYyYjE0MTVhNjRmMWZkYTNjNWYyM2Qz
YzFjZWEyY2M0ZGEwMC4uZGY0NjE0YTM2M2JhNzJlZDVkMzc5OWZiZjhmNjE0OGFlNDMxNjM4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcApAQCAtMzIs
OCArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHN0cmluZ0ZvclBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGF2YWls
YWJsZVN0cmluZywgKCJhdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bm90QXZhaWxhYmxlU3RyaW5nLCAoIm5vdC1hdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBub3RB
dmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIHJldHVybiBhdmFpbGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBu
b3RBdmFpbGFibGVTdHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcAppbmRleCAyZTg0NmRkN2ZjODljYWNiNTQxNjk4OWNlNzcwYWNjYzBi
NDdhZjVmLi5hM2U1NWQ3ZDM2MWZmNmY1M2Q5Y2IzZTBjNGQ1Nzk5Y2JkY2QzNTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTUwLDI1
ICs1MCwyNSBAQCBQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29yOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBiYWNrZW5kLCBJbgogCiBjb25zdCBBdG9taWNTdHJpbmcm
IElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dCwgKCJuZXh0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IG5leHQoIm5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmV4dDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVj
dGlvbk5leHRVbmlxdWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5leHR1bmlxdWUsICgibmV4dHVuaXF1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBuZXh0dW5pcXVlKCJuZXh0dW5pcXVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5leHR1bmlxdWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2LCAoInByZXYiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gcHJldigicHJldiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBwcmV2OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGly
ZWN0aW9uUHJldlVuaXF1ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJwcmV2dW5pcXVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHByZXZ1bmlxdWUoInByZXZ1bmlxdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gcHJldnVuaXF1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCA5NmIwYzZhZDczYTU2
MDgxMzBiOGVmZjJjZTBiZWFlNTkzYTg3YzEzLi5hNzU5MTZmOTI3ZTJhNmJjOGZmYmY2YzA4NmNk
ZmVmYzhmM2U1MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcApAQCAtMTMyLDggKzEzMiw4IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkgY29uc3QKIGNvbnN0IFN0cmluZyYgSURCUmVx
dWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQ
RU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwZW5kaW5nLCAoInBlbmRpbmciLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZG9uZSwgKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IHBlbmRpbmcoInBlbmRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBkb25lKCJkb25lIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9yZWFkeVN0YXRl
ID09IFBFTkRJTkcpCiAgICAgICAgIHJldHVybiBwZW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGM0MmY5NDVj
NDExMzQ3OWZlNzE4M2QxMDg5ODFlMGMxMGQ2NTc4NDguLmJkZjgzNDQ1NTkzZDY0M2JhNzNmNDgy
OTZlZTg3M2YwOWE5YTU5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTYwLDMxICs2MCwzMSBAQCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleAogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2Rl
UmVhZE9ubHkoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHJlYWRvbmx5LCAoInJlYWRvbmx5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlYWRv
bmx5KCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiByZWFkb25seTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlv
bjo6bW9kZVJlYWRXcml0ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoInJlYWR3cml0ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiByZWFkd3JpdGUoInJlYWR3cml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiByZWFkd3JpdGU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
SURCVHJhbnNhY3Rpb246Om1vZGVWZXJzaW9uQ2hhbmdlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2ZXJzaW9uY2hhbmdlLCAoInZlcnNpb25j
aGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdmVyc2lvbmNoYW5nZSgidmVyc2lvbmNoYW5n
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB2ZXJz
aW9uY2hhbmdlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2Rl
UmVhZE9ubHlMZWdhY3koKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVhZG9u
bHkoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
cmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVS
ZWFkV3JpdGVMZWdhY3koKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCIxIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlYWR3
cml0ZSgiMSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biByZWFkd3JpdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGE2ODhjNTg2YWI1OTJm
MjIyNTEwYjYxYzJhYWU0NjgwZmQxMjZiNWMuLjNlNGFmN2U2YjE5YmExZDY0MThkNGU0OWM2ZTE2
ZDg1MzhkMTY2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtNDQsMTkgKzQ0LDE5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9z
dDo6YXV0b21hdGljS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b21hdGljLCAoImF1dG9tYXRpYyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdXRvbWF0aWM7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBm
b3JjZWRPbiwgKCJmb3JjZWQtb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmb3Jj
ZWRPbigiZm9yY2VkLW9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gZm9yY2VkT247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250
cm9sc0hvc3Q6OmFsd2F5c09uS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx3YXlzT24sICgiYWx3YXlzLW9uIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFsd2F5c09uKCJhbHdheXMtb24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYWx3YXlzT247CiB9CiAKQEAg
LTIwMywxMiArMjAzLDEyIEBAIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6ZXh0ZXJuYWxEZXZp
Y2VEaXNwbGF5TmFtZSgpIGNvbnN0CiAKIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6ZXh0ZXJu
YWxEZXZpY2VUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBub25lKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKTsKICAgICBTdHJp
bmcgdHlwZSA9IG5vbmU7CiAgICAgCiAjaWYgRU5BQkxFKElPU19BSVJQTEFZKQotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFpcnBsYXksIChBU0NJSUxpdGVyYWwo
ImFpcnBsYXkiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gYWlycGxheShBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHZvdXQoQVNDSUlMaXRlcmFsKCJ0dm91dCIpKTsKICAg
ICAKICAgICBNZWRpYVBsYXllciogcGxheWVyID0gbV9tZWRpYUVsZW1lbnQtPnBsYXllcigpOwog
ICAgIGlmICghcGxheWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDNmMDI2NWJjMGU0ODNhODU3OGYxNTgxNjg0Nzg4
Yzg4MTFiZGI1N2UuLjUzNTAwMWQzMjJlNWJjODIzNjZkMDUyYTljY2QxZTMxYzgzZjA1NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCkBAIC05MiwxOSArOTIsMTkgQEAgTWVkaWFTb3VyY2U6On5NZWRpYVNvdXJjZSgpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3JkKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoIm9w
ZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gb3Blbigib3BlbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvcGVuOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjbG9zZWQsICgiY2xv
c2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNsb3NlZCgiY2xvc2VkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNsb3NlZDsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBlbmRlZCwg
KCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZW5kZWQ7CiB9CiAK
QEAgLTM0MCw4ICszNDAsOCBAQCB2b2lkIE1lZGlhU291cmNlOjplbmRPZlN0cmVhbShjb25zdCBB
dG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKIAogdm9pZCBNZWRpYVNvdXJj
ZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IoY29uc3QgQXRvbWljU3RyaW5nJiBlcnJvciwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3b3JrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0
cmluZz4gbmV0d29yaygibmV0d29yayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGRlY29k
ZSgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAv
LyAyLjQuNyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNlbmQtb2Ytc3RyZWFtLWFsZ29yaXRobQogICAg
IC8vIDEuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgdG8gImVuZGVkIi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmln
YXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCmluZGV4IDBjZjM0ZTc3
ZDU5M2I1YzI4N2ExNDNlZmVhYTAyMDcxYWY3MDBiZjEuLjJkMTk3ODY5NjRmZGQ3M2NiYjVhYTFm
MDI2NzJiNjQ4MDVmYjE5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2
aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0
aWxzLmNwcApAQCAtMTQ0LDkgKzE0NCw5IEBAIHZvaWQgTmF2aWdhdG9yQ29udGVudFV0aWxzOjpy
ZWdpc3RlclByb3RvY29sSGFuZGxlcihOYXZpZ2F0b3IqIG5hdmlnYXRvciwgY29uc3QKICNpZiBF
TkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQogc3RhdGljIFN0cmluZyBjdXN0b21IYW5kbGVy
c1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNTdGF0ZSBzdGF0ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJuZXciKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJlZ2lzdGVyZWRIYW5k
bGVyLCAoQVNDSUlMaXRlcmFsKCJyZWdpc3RlcmVkIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZEhhbmRsZXIsIChBU0NJSUxpdGVy
YWwoImRlY2xpbmVkIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBuZXdIYW5kbGVyKEFTQ0lJTGl0ZXJhbCgibmV3IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBTdHJpbmc+IHJlZ2lzdGVyZWRIYW5kbGVyKEFTQ0lJTGl0ZXJhbCgicmVnaXN0
ZXJlZCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBkZWNsaW5l
ZEhhbmRsZXIoQVNDSUlMaXRlcmFsKCJkZWNsaW5lZCIpKTsKIAogICAgIHN3aXRjaCAoc3RhdGUp
IHsKICAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNO
ZXc6CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIFN0cmluZyBjdXN0b21IYW5kbGVyc1N0YXRl
U3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Q3VzdG8KIAogU3RyaW5n
IE5hdmlnYXRvckNvbnRlbnRVdGlsczo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKE5hdmln
YXRvciogbmF2aWdhdG9yLCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW5nJiB1cmws
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGRlY2xpbmVkLCAoImRlY2xpbmVkIikpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRlY2xpbmVkKCJkZWNsaW5lZCIpOwogCiAgICAgaWYg
KCFuYXZpZ2F0b3ItPmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBkZWNsaW5lZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbQppbmRleCBlYjNjMjc1NjI5MzFkZDVhZTAyN2JkOTQzOWZiOGMyMTg2YWZh
MTJlLi5jMzVmZjA3YWM2NzFhN2RjZDQ4NjMyNmI5NDFiMDU5MDVhMmZiYWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtVHlwZSAqLCBKU0NvbnRl
CiAKIHN0YXRpYyBTdHJpbmcgcXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRTY3JpcHQoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdCwgKFF1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlwdCwgc2l6ZW9mKFF1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50SmF2YVNjcmlwdCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBzY3JpcHQoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0LCBzaXplb2YoUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0KSk7CiAgICAgcmV0dXJuIHNjcmlwdDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
cy5jcHAKaW5kZXggYjZiYjNjZjcxYThlZDlkZmNmODA5MmE4MDExN2IwYjJmZGU5ODAxMC4uZmJl
NTdhMDYyMTQ4M2U0YzNiNmM4OTc0ZjlhOWI3ZjdlNzg3MmY3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCkBAIC0xOTQsOCArMTk0
LDggQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OmhhbmRsZVNwZWFraW5nQ29tcGxldGVkKFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmMKICAgICAKIHZvaWQgU3BlZWNoU3ludGhlc2lz
Ojpib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZT4gdXR0ZXJhbmNlLCBTcGVlY2hCb3VuZGFyeSBib3VuZGFyeSwgdW5zaWduZWQg
Y2hhckluZGV4KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHdvcmRCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgid29yZCIpKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2VudGVuY2VCb3Vu
ZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2VudGVuY2UiKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHdvcmRCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwo
IndvcmQiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc2VudGVu
Y2VCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwoInNlbnRlbmNlIikpOwogCiAgICAgc3dpdGNo
IChib3VuZGFyeSkgewogICAgIGNhc2UgU3BlZWNoV29yZEJvdW5kYXJ5OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXggZWI4YmMwYzE5Nzg5YTM4ODE4
NmQ3NTY1Y2UxYjVhYjk3MmVlY2QzYS4uYzIwOWNjMDQxN2UzYjgyMWQyMmM4MDNlZjhmMTM0MjA2
MWZiYjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3Bw
CkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3Qodm9pZCopCiAKIEdDQ29udHJv
bGxlciYgZ2NDb250cm9sbGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoR0NDb250cm9sbGVyLCBzdGF0aWNHQ0NvbnRyb2xsZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8R0NDb250cm9sbGVyPiBzdGF0aWNHQ0NvbnRyb2xsZXIoKTsKICAgICByZXR1
cm4gc3RhdGljR0NDb250cm9sbGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAppbmRleCAxMWRl
NWQzZjk2ODM0MjE2OWY4N2Q3YTcxODUxYmI4MzUwYTI4NWNjLi4xZjdjYjVmMDgzYTBkMDk3NzBi
ODhlZmFmMWQ0M2UwZjUxOTFlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKQEAgLTE4Myw3ICsx
ODMsNyBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIGNzc1Byb3BlcnR5SURGb3JKU0NTU1Byb3Bl
cnR5TmFtZShQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYQogCiAgICAgU3RyaW5nIHN0cmluZ0ZvckNh
Y2hlID0gU3RyaW5nKHByb3BlcnR5TmFtZVN0cmluZyk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgQ1NTUHJvcGVydHlJbmZvPiBDU1NQcm9wZXJ0eUluZm9NYXA7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Byb3BlcnR5SW5mb01hcCwgcHJvcGVydHlJbmZvQ2Fj
aGUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBw
cm9wZXJ0eUluZm9DYWNoZSgpOwogICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hl
LmdldChzdHJpbmdGb3JDYWNoZSk7CiAgICAgaWYgKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQog
ICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4
IGY4MDE4Yzc0OGIzZWQ3OTgxMzQxNmM3OThhYzMxOTBjNjUwYTc3MWEuLjdjYzQzMzlmZjg0MTQ1
MmI3YTA5NDY1ZDYyYmIyYTYyNDQxM2JmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAg
LTU1LDE5ICs1NSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU1ZhbHVlIEpTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQTEFU
Rk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgibWFjIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBwbGF0Zm9ybShBU0NJSUxpdGVy
YWwoIm1hYyIpKTsKICNlbGlmIE9TKFdJTkRPV1MpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIndpbmRvd3Mi
KSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFT
Q0lJTGl0ZXJhbCgid2luZG93cyIpKTsKICNlbGlmIE9TKExJTlVYKQotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFs
KCJsaW51eCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxh
dGZvcm0oQVNDSUlMaXRlcmFsKCJsaW51eCIpKTsKICNlbGlmIE9TKEZSRUVCU0QpCi0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJ
SUxpdGVyYWwoImZyZWVic2QiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBT
dHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgiZnJlZWJzZCIpKTsKICNlbGlmIE9TKE9QRU5C
U0QpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2QiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgib3BlbmJzZCIpKTsKICNl
bGlmIE9TKFNPTEFSSVMpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFyaXMiKSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgic29s
YXJpcyIpKTsKICNlbHNlCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgidW5r
bm93biIpKTsKICNlbmRpZgogICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjU3RhdGUs
IHBsYXRmb3JtKTsKIH0KQEAgLTc1LDExICs3NSwxMSBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIEpTVmFsdWUgSlNJbnNw
ZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQoRXhlY1N0YXRlKiBleGVjU3RhdGUpCiB7CiAjaWYgUExB
VEZPUk0oR1RLKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImd0ayIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IFN0cmluZz4gcG9ydChBU0NJSUxpdGVyYWwoImd0ayIpKTsKICNlbGlmIFBMQVRG
T1JNKEVGTCkKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJlZmwiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IHBvcnQoQVNDSUlMaXRlcmFsKCJlZmwiKSk7CiAjZWxzZQotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxp
dGVyYWwoInVua25vd24iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJp
bmc+IHBvcnQoQVNDSUlMaXRlcmFsKCJ1bmtub3duIikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpz
U3RyaW5nV2l0aENhY2hlKGV4ZWNTdGF0ZSwgcG9ydCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQppbmRleCBiYjNmYzY5YTJkN2ZkNmEzY2I3ZjM3OWU1
MmY4Nzc3NDc2OGM4NzY3Li5lMTU3OGIwMDdiMjQzODA2ODU3ZGZlNGI3YjgzNGQ0NmVmZDA3MjI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0KQEAgLTQ1
LDcgKzQ1LDcgQEAgc3RhdGljIE5TTWFwVGFibGUqIERPTVdyYXBwZXJDYWNoZTsKICNpZmRlZiBO
RUVEU19XUkFQUEVSX0NBQ0hFX0xPQ0sKIHN0YXRpYyBNdXRleCYgd3JhcHBlckNhY2hlTG9jaygp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCB3cmFwcGVyQ2Fj
aGVNdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gd3JhcHBlckNh
Y2hlTXV0ZXgoKTsKICAgICByZXR1cm4gd3JhcHBlckNhY2hlTXV0ZXg7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCBlNjgwMmZmZWQzNTk0NzUwNDQ0NmUyN2Rl
MjllYmQxZDI2MzNmNDUyLi44Yjk0YmM0ZWU1Y2U2ZjdkNzA0MjkyMTQ4ZGE3NWUxOWQwZWFkMTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC04Myw4ICs4Myw4IEBAIHB1Ymxp
YzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgVGVzdEFjdGl2ZURPTU9iamVjdCopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCBqc1Rlc3RBY3RpdmVET01P
YmplY3RPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyPiBq
c1Rlc3RBY3RpdmVET01PYmplY3RPd25lcigpOworICAgIHJldHVybiAmanNUZXN0QWN0aXZlRE9N
T2JqZWN0T3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01X
cmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0aXZlRE9NT2JqZWN0KikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggODEzMWQzMWRhOGRjZjBhYmE3MzJlNDMzZDljMzAwZjQ2
YTc5YWZhMC4uZmJhNmFjODdkNDU5OWJjY2E4MTU5MjMxM2FiY2E3OTFiNTZiMDVkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTg3LDggKzg3LDggQEAgcHVibGljOgog
CiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29y
bGQmLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyLCBqc1Rlc3RDdXN0b21OYW1l
ZEdldHRlck93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93
bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93
bmVyPiBqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RD
dXN0b21OYW1lZEdldHRlck93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGYyMGU1YmUwOTFjMmFlOWNiZDdkMmUy
OGY2YWFmNTI5ZThlNGQwNmMuLmIzYzZlOTEyYzc0OGE0ZmVkY2M3ZjMzNGFjZWNlNjA5N2UxODli
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtODMsOCArODMsOCBAQCBw
dWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdy
YXBwZXJXb3JsZCYsIFRlc3RFdmVudENvbnN0cnVjdG9yKikKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyLCBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdEV2ZW50Q29uc3RydWN0
b3JPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ck93bmVyPiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVz
dEV2ZW50Q29uc3RydWN0b3JPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJD
b250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudENvbnN0cnVjdG9yKikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggODJhYTVjNjlkOTFlYjA4OTFkMmQ0MmU1OGMyOTE1ZDAw
MThiYjU5Yi4uZmI2YWNjODA0NzJkYWM2MjE1MjJkYTYyOGFmNzViYjMzODJhZDY4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTkxLDggKzkxLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlND
OjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0RXZl
bnRUYXJnZXQqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RF
dmVudFRhcmdldE93bmVyLCBqc1Rlc3RFdmVudFRhcmdldE93bmVyLCAoKSk7Ci0gICAgcmV0dXJu
ICZqc1Rlc3RFdmVudFRhcmdldE93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rl
c3RFdmVudFRhcmdldE93bmVyPiBqc1Rlc3RFdmVudFRhcmdldE93bmVyKCk7CisgICAgcmV0dXJu
ICZqc1Rlc3RFdmVudFRhcmdldE93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBl
ckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV2ZW50VGFyZ2V0KikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
eGNlcHRpb24uaAppbmRleCBjMGE4MzNkOWExOWM2NzdjMWVkNTExOGYwMGVjYzc5Nzg0YjkwZWNh
Li42MjQxNzRjMTNmYzdjMjQxMDcxYzVkMzliNjY3ZDA1ZGFkYTFiZmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5oCkBAIC04NCw4ICs4NCw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEV4Y2VwdGlvbiopCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV4Y2VwdGlvbk93bmVy
LCBqc1Rlc3RFeGNlcHRpb25Pd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0RXhjZXB0aW9u
T3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEV4Y2VwdGlvbk93bmVyPiBq
c1Rlc3RFeGNlcHRpb25Pd25lcigpOworICAgIHJldHVybiAmanNUZXN0RXhjZXB0aW9uT3duZXIu
Z2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBUZXN0RXhjZXB0aW9uKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5oCmluZGV4IDUzYWVkZDZmMjBiODJlYjdmNDc4ZTc2MzQ5YWQxOTQzYjc3ZTk5OGIuLjkyNmMy
Mjg5NmU2YmRmN2EwN2VjM2JiNzk0NTg2N2YxOTg2MDJlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBK
U0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyLCBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25l
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93
bmVyPiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGVPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBlNzg5ZmU0YmU5MWNkNzA0MWQ3OWI3OTJiMmFiMjRl
ODE4YjI2MjhhLi5iOWM3YjJiODFhODg0NDVhYzdhZGI2ZDMxMGFjODE5YWFjYzcxZjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5oCkBAIC0xMTAsOCArMTEwLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlND
OjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0SW50
ZXJmYWNlKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0SW50
ZXJmYWNlT3duZXIsIGpzVGVzdEludGVyZmFjZU93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rl
c3RJbnRlcmZhY2VPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0SW50ZXJm
YWNlT3duZXI+IGpzVGVzdEludGVyZmFjZU93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RJbnRl
cmZhY2VPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdy
YXBwZXJXb3JsZCYgd29ybGQsIFRlc3RJbnRlcmZhY2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggMjE2ZGE4OWRhZGMzOGFlYjM5MGU0Y2VkMWU0OTMx
NWI0OWY2NDM4ZC4uMTUzYjZmZGU3NTViYjNkODUyNThhMDY4OTFlYTkzMzM3Y2UwMDMzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC04MSw4ICs4MSw4
IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkJiwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
T3duZXIsIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXI+IGpzVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJPd25lcigpOworICAgIHJldHVybiAmanNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lck93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggYWY3MjM1YTM2MGMyNzZhZWFjYWU2YzYxZDdl
Yzc1NTMyNWQ1NDFmOS4uZmVkY2U3NjQxMzI3M2E1MjJmZTE2NDVmMDUzZDk5NGJiM2E1ODA1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC04Miw4ICs4Miw4IEBAIHB1Ymxp
YzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIsIGpzVGVzdE5hbWVkQ29u
c3RydWN0b3JPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93
bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3du
ZXI+IGpzVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lcigpOworICAgIHJldHVybiAmanNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvck93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRl
eHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRl
dGVybWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXggMzU2ZWJjM2NlYTZiY2IzYjE0NmI0ZGJiN2Uy
YTk0Y2VlMDU0ZjA2OC4uZjBjYWEwNDlkMzk4YmNlMmU4ODg2MzlhY2ExNTlkZTlmODg2YWZjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vbmRldGVybWluaXN0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC04MSw4ICs4MSw4IEBAIHB1Ymxp
YzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgVGVzdE5vbmRldGVybWluaXN0aWMqKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXIsIGpzVGVzdE5vbmRldGVy
bWluaXN0aWNPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0Tm9uZGV0ZXJtaW5pc3RpY093
bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3du
ZXI+IGpzVGVzdE5vbmRldGVybWluaXN0aWNPd25lcigpOworICAgIHJldHVybiAmanNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY093bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRl
eHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5vbmRldGVybWluaXN0aWMqKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmlu
ZGV4IDcxZmVjYmI4YjYzYjAzYjkwNzY2NTI3ZjY2ZDIxZDllNWE3NGYyMjguLjEyMTlkNjIxZjQ0
ZWRjNDMwMDM2MWI1YWMzZDk1ZTRlODFjYmE5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTk2LDggKzk2LDggQEAg
cHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01X
cmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSlNUZXN0T2JqT3duZXIsIGpzVGVzdE9iak93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZq
c1Rlc3RPYmpPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0T2JqT3duZXI+
IGpzVGVzdE9iak93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RPYmpPd25lci5nZXQoKTsKIH0K
IAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRl
c3RPYmoqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXgg
ZDY4NjFiNzk0NjI3OTRjN2YyNjU0OWU5MWE2NWIxMThhMWJhZDMwMi4uODdjYjBiYjI1NjVmODhk
Yjk3ZjNhMGIzNmVkOGIzNTc1Y2MwZjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXIsIGpzVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc093bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzT3duZXI+IGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lcigpOworICAg
IHJldHVybiAmanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyLmdldCgpOwogfQogCiBp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDExYWY2NDBiYTk0YjY4NzY4ZWNlNjJhNGFl
ZDE5N2NkYWZlZDQxODcuLmM1ZTlhMzNiN2IxZGFhMDE1ZTE1NzhkODA2MzhlOTYxY2M2ZGY5M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgKQEAgLTg4LDggKzg4LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxl
T3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXIsIGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXI+IGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQq
IHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAppbmRleCA2Y2E2NjNjMmI1ZjlkMTk2
M2NjN2VlMTYwM2JlMGI5YzZkMjYyMzlmLi45NmEwNGQ5ZjAzM2M0MzYzZjZjMDhhYjhmZTRiZWQy
MmM5MDUzYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApAQCAtODMsOCArODMsOCBAQCBwdWJsaWM6CiAK
IGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3Js
ZCYsIFRlc3RUeXBlZGVmcyopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEpTVGVzdFR5cGVkZWZzT3duZXIsIGpzVGVzdFR5cGVkZWZzT3duZXIsICgpKTsKLSAgICByZXR1
cm4gJmpzVGVzdFR5cGVkZWZzT3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVz
dFR5cGVkZWZzT3duZXI+IGpzVGVzdFR5cGVkZWZzT3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVz
dFR5cGVkZWZzT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0VHlwZWRlZnMqKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAppbmRleCA2MzUw
Mjc3ZGI5YWUyNzZhMDZlZTQ0YzhlOGY4MDFjMTIxZWVkOGNhLi5jMTZlMjA1ZjZmZjJhNWNhOWQx
ZDc1ZmRlNDMxMmQwMTZjOWQ5Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaApAQCAtODIsOCArODIsOCBAQCBwdWJs
aWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBw
ZXJXb3JsZCYsIGF0dHJpYnV0ZSopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEpTYXR0cmlidXRlT3duZXIsIGpzYXR0cmlidXRlT3duZXIsICgpKTsKLSAgICByZXR1cm4g
JmpzYXR0cmlidXRlT3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTYXR0cmlidXRl
T3duZXI+IGpzYXR0cmlidXRlT3duZXIoKTsKKyAgICByZXR1cm4gJmpzYXR0cmlidXRlT3duZXIu
Z2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBhdHRyaWJ1dGUqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggM2UyZDhhNmVhZTFiNWZlZTk3ZDY0MWE0
YjVjMTQ1MTBjZTY1MDkwNC4uMmJkMjIzNjUwYWMyNzJiYThhOGJkZDFmMTNhMDhiMDQyYWY3ZTI0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
cmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNyZWFkb25seS5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgcmVhZG9ubHkqKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU3JlYWRvbmx5T3duZXIsIGpz
cmVhZG9ubHlPd25lciwgKCkpOwotICAgIHJldHVybiAmanNyZWFkb25seU93bmVyOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxKU3JlYWRvbmx5T3duZXI+IGpzcmVhZG9ubHlPd25lcigpOwor
ICAgIHJldHVybiAmanNyZWFkb25seU93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgcmVhZG9ubHkqKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCA2ZWIxZWZmYjJiYWVkYWEyODhlYTViY2My
ZmVhMGI1YjhhNmFjYzBlLi5lMjM2ZDM4YjhiOWYwYWM0YTllMjViODIyNzBmNjYzMGQ1ODkyZjUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcApAQCAtNTYsNyArNTYsNyBA
QCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBzdGF0aWMgU3RyaW5nJiBnbG9iYWxFeGNlcHRpb25T
dHJpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGV4
Y2VwdGlvblN0ciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGV4Y2Vw
dGlvblN0cigpOwogICAgIHJldHVybiBleGNlcHRpb25TdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZjc4MTVlZjVjZTBkZDM0OTY1YTJjYjY2ODg5ODgx
NzRjZjY0ZGI5OC4uMTQ3YWVhOWMxM2MwNDE5MTAwZDc4NTgwM2VlZDA1NmFlZWQyMGNjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTYxOSw3ICs2MTksNyBAQCBi
b29sIENTU0ZvbnRTZWxlY3Rvcjo6cmVzb2x2ZXNGYW1pbHlGb3IoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbikgY29ucwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlm
IChtX2ZvbnRGYWNlcy5jb250YWlucyhmYW1pbHlOYW1lKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJr
aXRQcmVmaXgsICgiLXdlYmtpdC0iKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHdlYmtpdFByZWZpeCgiLXdlYmtpdC0iKTsKICAgICAgICAgaWYgKGZhbWlseU5hbWUu
c3RhcnRzV2l0aCh3ZWJraXRQcmVmaXgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggOTQ0NTA4NjNmMWI5M2FjNmE3
MzU4OTZiMmNhOTJiMWZmYmRlYTRhZi4uODJkMTA4MTNjZDY0M2I0Y2ZiYjBiOGZjMmM0NTExOGRh
Y2MyNDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTI5MywxMSArMjkzLDExIEBA
IHN0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJuaW5nTWVzc2FnZVRvQ29uc29sZShEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluCiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICBBU1NF
UlQodmFsdWUpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
bWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1
bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNl
bWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVy
LXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0
dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHBy
ZXNzaW9uOiAiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVyYWwoImRwaSIpKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQQ00sIChBU0NJSUxpdGVyYWwo
ImRwY20iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxl
bmd0aFVuaXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBsZW5ndGhVbml0Q2VudGltZXRlciwgKEFTQ0lJTGl0
ZXJhbCgiY2VudGltZXRlciIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
bWVkaWFRdWVyeU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJDb25zaWRlciB1c2luZyAnZHBweCcgdW5p
dHMgaW5zdGVhZCBvZiAnJXJlcGxhY2VtZW50VW5pdHMlJywgYXMgaW4gQ1NTICclcmVwbGFjZW1l
bnRVbml0cyUnIG1lYW5zIGRvdHMtcGVyLUNTUy0lbGVuZ3RoVW5pdCUsIG5vdCBkb3RzLXBlci1w
aHlzaWNhbC0lbGVuZ3RoVW5pdCUsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVh
bCAnJXJlcGxhY2VtZW50VW5pdHMlJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVz
c2lvbjogIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG1lZGlhVmFsdWVE
UEkoQVNDSUlMaXRlcmFsKCJkcGkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gbWVkaWFWYWx1ZURQQ00oQVNDSUlMaXRlcmFsKCJkcGNtIikpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGxlbmd0aFVuaXRJbmNoKEFTQ0lJTGl0ZXJhbCgiaW5jaCIpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBsZW5ndGhVbml0Q2VudGltZXRlcihB
U0NJSUxpdGVyYWwoImNlbnRpbWV0ZXIiKSk7CiAKICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICBp
ZiAodmFsdWUtPmlzRG90c1BlckluY2goKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAKaW5kZXggZDA1OGU2ZGVhNDA3YjdjOTdkNGMzZWM3ODJiMDM0MzFlM2Q2ZjM2
YS4uZTYzZTVjOWZjZTU5NjhjNjE4NTAxNjA2YjBiMTI5ZDFlYTI5NDYxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lk
IFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENT
U1N0eWxlU2hlZXQqIGNhY2hlZAogICAgIH0KICAgICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzICYmIGlzU3RyaWN0UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQu
bW9kZSkpIHsKICAgICAgICAgLy8gV29yayBhcm91bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODM1MD4uCi0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoQVND
SUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5bGVzaGVldCAqL1xuLyogd29yayBhcm91bmQgdGhl
IGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xuI2NvbHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6
IDA7IH1cblxuIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBm
aXggc3R5bGVzaGVldCAqL1xuLyogd29yayBhcm91bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFy
cyAqL1xuI2NvbHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuIikpOwogICAgICAg
ICAvLyBUaGVyZSBhcmUgdHdvIHZhcmlhbnRzIG9mIEtIVE1MRml4ZXMuY3NzLiBPbmUgaXMgZXF1
YWwgdG8gbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsCiAgICAgICAgIC8vIHdoaWxlIHRo
ZSBvdGhlciBsYWNrcyB0aGUgc2Vjb25kIHRyYWlsaW5nIG5ld2xpbmUuCiAgICAgICAgIGlmIChi
YXNlVVJMKCkuc3RyaW5nKCkuZW5kc1dpdGgoIi9LSFRNTEZpeGVzLmNzcyIpICYmICFzaGVldFRl
eHQuaXNOdWxsKCkgJiYgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQuc3RhcnRzV2l0aChz
aGVldFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5j
cHAKaW5kZXggOWIxNmM2YmFjOGFiMmE5ZjMwMDE5MTYwZThjOTgwMGFhOTg0MTYzZS4uMmE5MGI5
OGMwOGZkZGFkYjg0NzI3YzUzY2E5MWUwYzI4Zjk5MjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8Q29udGFpbmVyTm9kZSosIENoaWxkTGlzdE11
dGF0aW9uQWNjdW11bGF0b3IqPiBBY2N1bXVsYXRvck1hcDsKIHN0YXRpYyBBY2N1bXVsYXRvck1h
cCYgYWNjdW11bGF0b3JNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBY2N1bXVsYXRvck1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFj
Y3VtdWxhdG9yTWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBkOTIyNjE4ZTllNTVkYzIyZWUzNDY4NzZh
YTNhNDI4ZWE0OWM2ZTFkLi4xNTVmNjIwMThjM2U2NDhkYTI5MTY1ZjZjZGYzYjU4MGM1MDkxOTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTg3LDcgKzg3
LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRTVkcxMEZlYXR1cmUoY29uc3QgU3RyaW5nJiBm
ZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3ZnRmVhdHVyZXMsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8RmVhdHVyZVNldD4gc3ZnRmVhdHVyZXMoKTsKICAgICBpZiAoIWluaXRp
YWxpemVkKSB7CiAjaWYgRU5BQkxFKEZJTFRFUlMpICYmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAg
ICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgInN2ZyIpOwpAQCAtMTE2LDcgKzExNiw3IEBAIHN0
YXRpYyBib29sIGlzU3VwcG9ydGVkU1ZHMTFGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0YXRp
YyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEZlYXR1cmVTZXQsIHN2Z0ZlYXR1cmVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEZlYXR1cmVTZXQ+IHN2Z0ZlYXR1cmVzKCk7CiAgICAgaWYgKCFpbml0aWFsaXplZCkg
ewogICAgICAgICAvLyBTYWRseSwgd2UgY2Fubm90IGNsYWltIHRvIGltcGxlbWVudCBhbnkgb2Yg
dGhlIFNWRyAxLjEgZ2VuZXJpYyBmZWF0dXJlIHNldHMKICAgICAgICAgLy8gbGFjayBvZiBGb250
IGFuZCBGaWx0ZXIgc3VwcG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViNTNhYTM4
YWM5OTk1Njc4ODBmMzNlNjRhZjM3N2M4MjcxZTVkMTcuLmE2NjIwNWU0MmE5NjEwMWQ4Mjg1Mzky
MzRjNzJmYjgxY2UzOTlhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE1MCw5ICsx
MTUwLDkgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNv
bnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdAogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5
U3RhdGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGxvYWRpbmcsIChBU0NJSUxpdGVyYWwoImxvYWRpbmciKSkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoQVND
SUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgY29tcGxldGUsIChBU0NJSUxpdGVyYWwoImNvbXBsZXRlIikp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBsb2FkaW5nKEFTQ0lJ
TGl0ZXJhbCgibG9hZGluZyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3Ry
aW5nPiBpbnRlcmFjdGl2ZShBU0NJSUxpdGVyYWwoImludGVyYWN0aXZlIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbXBsZXRlKEFTQ0lJTGl0ZXJhbCgiY29t
cGxldGUiKSk7CiAKICAgICBzd2l0Y2ggKG1fcmVhZHlTdGF0ZSkgewogICAgIGNhc2UgTG9hZGlu
ZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4NzE3ZWMxZmU5ZDRhY2Y0MzZjZjE1MzMzNjdh
MWYzMzk5YWE1YTdmLi5kOGM1ZGEyMjk0ZmNkMmJhNDdkYjUyZDY1Nzc2NTM3YzYxZmFkYjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNTQ2LDIxICsyNTQ2LDIxIEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgRWxlbWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCgpIGNvbnN0CiB7CiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHVuZGVmaW5lZFN0YXRl
LCAoInVuZGVmaW5lZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB1bmRlZmluZWRTdGF0ZSgidW5k
ZWZpbmVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKCFk
b2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAogICAgIHN3aXRjaCAocmVnaW9u
T3ZlcnNldFN0YXRlKCkpIHsKICAgICBjYXNlIFJlZ2lvbkZpdDogewotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRTdGF0ZSwgKCJmaXQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpdFN0YXRlKCJmaXQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZpdFN0YXRlOwogICAgIH0KICAg
ICBjYXNlIFJlZ2lvbkVtcHR5OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IGVtcHR5U3RhdGUoImVtcHR5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBlbXB0eVN0YXRlOwogICAgIH0KICAgICBjYXNlIFJl
Z2lvbk92ZXJzZXQ6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBvdmVyZmxvd1N0YXRlKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBvdmVyZmxvd1N0YXRlOwogICAgIH0KICAgICBj
YXNlIFJlZ2lvblVuZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dExpc3RlbmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNw
cAppbmRleCAwODU0MWIwYmQ3YmExMjk2YWY1YWI4MzM5MjBhYzI4NTVmMTNiNGFmLi41YmM0NTQ2
MWIzNjJjN2FmMmU1MGE2YmU1OTRiM2VkN2VmYTFkYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TGlzdGVuZXJNYXAuY3BwCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZm5kZWYgTkRFQlVHCiBzdGF0aWMgTXV0ZXgmIGFjdGl2ZUl0ZXJhdG9yQ291bnRNdXRleCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXgoKTsKICAgICByZXR1cm4g
bXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IDI2NTE3OGNmNmUz
ZTNmMTA5NzFhMDRmOWU4ZjY1NDEwNTYzMWQ3YmQuLmQwNTIzMmU0M2VkNDUzMGJmZTQ0NjBjYTAz
ZjA4ZTBlNzI5ZmU4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjU4LDcg
KzI1OCw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZl
bnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZlbnRMaXN0CiAKIGNvbnN0IEV2ZW50TGlzdGVuZXJW
ZWN0b3ImIEV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRM
aXN0ZW5lclZlY3RvciwgZW1wdHlWZWN0b3IsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8RXZlbnRMaXN0ZW5lclZlY3Rvcj4gZW1wdHlWZWN0b3IoKTsKIAogICAgIEV2ZW50VGFyZ2V0
RGF0YSogZCA9IGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIGlmICghZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKaW5kZXggNWMzNjM4NDJiNjkxNDY1OWUx
MzQwYTM4MTY3YWU3Y2NjYzZjZmYyYS4uMTMzZDlkNWY2MTg0NmE4MTQzMTNmOTlkNzU4YjYzOTRm
MGZjYTE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRP
d25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5j
cHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIElubGluZVN0eWxlU2hlZXRPd25lcjo6Y2xlYXJT
aGVldCgpCiAKIGlubGluZSBib29sIGlzVmFsaWRDU1NDb250ZW50VHlwZShFbGVtZW50JiBlbGVt
ZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3NzQ29udGVudFR5cGUsICgidGV4dC9j
c3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3NzQ29udGVudFR5cGUoInRleHQvY3Nz
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHR5cGUuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZWxlbWVudC5pc0hUTUxF
bGVtZW50KCkgPyBlcXVhbElnbm9yaW5nQ2FzZSh0eXBlLCBjc3NDb250ZW50VHlwZSkgOiB0eXBl
ID09IGNzc0NvbnRlbnRUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3Bw
CmluZGV4IDc3NDU4ZjhlNjk2NTM1NDc2ZWJiZDg0NzgxNWU3N2FjZjM0NDA1MTUuLmE0ODJjYTRj
MmViNzZmMGU2MGE2NGY5ZWM5YTgwMDZlYTJlYjUxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAKQEAgLTEzOCwxMyArMTM4LDEzIEBAIHR5cGVkZWYgSGFzaFNldDxS
ZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7CiAKIHN0YXRpYyBN
dXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIGFjdGl2ZU9i
c2VydmVycywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRhdGlvbk9ic2VydmVy
U2V0PiBhY3RpdmVPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwogfQog
CiBzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNldCYgc3VzcGVuZGVkTXV0YXRpb25PYnNlcnZlcnMo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVy
U2V0LCBzdXNwZW5kZWRPYnNlcnZlcnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
TXV0YXRpb25PYnNlcnZlclNldD4gc3VzcGVuZGVkT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIHN1
c3BlbmRlZE9ic2VydmVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAK
aW5kZXggNWE0N2ZjMDAxYzE1YTI4ZTk1OGRlNmYyNDVjYjFlOTNhNzIzODA3MS4uYTlkZGJmNzQ1
NGNmMzFlMmUwZGQ2NDY0MTM1Mjk2YjljNTMxYWZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25SZWNvcmQuY3BwCkBAIC0xNDUsMTkgKzE0NSwxOSBAQCBwcml2YXRlOgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRMaXN0LCAoImNoaWxkTGlzdCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBjaGlsZExpc3QoImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGlsZExpc3Q7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1
dGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJpYnV0ZXMiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXR0cmlidXRlczsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjaGFyYWN0
ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gY2hhcmFjdGVy
RGF0YSgiY2hhcmFjdGVyRGF0YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZjE3
Nzc3OWIxMDdkZWI2NGY0OTA3OWEzOGQzMzU4MDY1NzhmYWZlMy4uZTVhZTI1M2M1MTdjZTdjOTY5
NWRkMDkzMzM3YjViZWUzYzFlMTgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTg1Miw3ICsxODUy
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCBPd25QdHI8RXZlbnRUYXJnZXREYXRhPj4gRXZl
bnRUYXJnZXREYXRhTWFwOwogCiBzdGF0aWMgRXZlbnRUYXJnZXREYXRhTWFwJiBldmVudFRhcmdl
dERhdGFNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChFdmVudFRh
cmdldERhdGFNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFdmVudFRh
cmdldERhdGFNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
c2V1ZG9FbGVtZW50LmNwcAppbmRleCAzYjRhOTc5ZGZiZmExY2Q3MGZkMDAyODE1MmYzNTVmNDYx
NTZlNGUwLi5kOTI2ZTZkN2ViODkyMWYzNTYwOTE3OWNjMDliODI2NGZmYjQ5OGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC0zNywxNCArMzcsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBRdWFsaWZpZWROYW1lJiBwc2V1ZG9FbGVtZW50VGFnTmFtZSgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIG5h
bWUsIChudWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVsbEF0b20pKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gbmFtZShudWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVsbEF0
b20pOwogICAgIHJldHVybiBuYW1lOwogfQogCiBTdHJpbmcgUHNldWRvRWxlbWVudDo6cHNldWRv
RWxlbWVudE5hbWVGb3JFdmVudHMoUHNldWRvSWQgcHNldWRvSWQpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYWZ0ZXIsIChBU0NJSUxpdGVyYWwo
Ijo6YWZ0ZXIiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGJlZm9yZSwgKEFTQ0lJTGl0ZXJhbCgiOjpiZWZvcmUiKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGFmdGVyKEFTQ0lJTGl0ZXJhbCgiOjphZnRlciIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBiZWZvcmUoQVNDSUlM
aXRlcmFsKCI6OmJlZm9yZSIpKTsKICAgICBzd2l0Y2ggKHBzZXVkb0lkKSB7CiAgICAgY2FzZSBB
RlRFUjoKICAgICAgICAgcmV0dXJuIGFmdGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
Y3BwCmluZGV4IGZkNzliZGFhZGEzODI1MTczYjg3OGMwODk4NDI0ODhjNTM5MjI4Y2YuLjA0Mzdi
ZmI1Njg2ZmQwYzk2MDk5NzFhZDFiNWIxOWRjYzcxOTk4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVh
bGlmaWVkTmFtZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFFOYW1lQ29tcG9uZW50c1Ry
YW5zbGF0b3IgewogCiBzdGF0aWMgaW5saW5lIFFOYW1lU2V0JiBxdWFsaWZpZWROYW1lQ2FjaGUo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRTmFtZVNldCwgbmFtZUNh
Y2hlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFFOYW1lU2V0PiBuYW1lQ2FjaGUo
KTsKICAgICByZXR1cm4gbmFtZUNhY2hlOwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBR
dWFsaWZpZWROYW1lOjppbml0KCkKIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgbnVsbFFOYW1lKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbnVs
bE5hbWUsIChudWxsQXRvbSwgbnVsbEF0b20sIG51bGxBdG9tKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IG51bGxOYW1lKG51bGxBdG9tLCBudWxsQXRvbSwgbnVs
bEF0b20pOwogICAgIHJldHVybiBudWxsTmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwCmluZGV4IDIwNDdhZTM4OTljNGFlOTg2MjQxNWM0OTZlNzM2MTY4ZGNlMzk3NmIu
LjdjNmMwYmY0NmJmZWQyODU3NmVkYmVhMjE1ZDE5MTUyNGYxZTEwNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgYm9vbCBpc0xl
Z2FjeVN1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQog
CiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgbm90IEhUTUw1IGNvbXBsaWFudC4gVGhl
c2UgYmVsb25nIGluIHRoZSBNSU1FIHJlZ2lzdHJ5IGFzICJ0ZXh0L2phdmFzY3JpcHQ8dmVyc2lv
bj4iIGVudHJpZXMuCiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNo
PiBMYW5ndWFnZVNldDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGFuZ3Vh
Z2VTZXQsIGxhbmd1YWdlcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYW5ndWFn
ZVNldD4gbGFuZ3VhZ2VzKCk7CiAgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgbGFuZ3VhZ2VzLmFkZCgiamF2YXNjcmlwdCIpOwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJq
YXZhc2NyaXB0Iik7CkBAIC0zNDYsNyArMzQ2LDcgQEAgdm9pZCBTY3JpcHRFbGVtZW50Ojpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAgICYmICFtX2NhY2hl
ZFNjcmlwdC0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKG1fZWxlbWVudC5kb2N1bWVudCgpLnNl
Y3VyaXR5T3JpZ2luKCkpKSB7CiAKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50KCk7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3Nz
LU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIkNyb3NzLW9y
aWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiIpKTsKICAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNw
cAppbmRleCBlMzU3YTUzZDk0ZDA4YTIxNmZhMWEwNzU4YmQ5YmFmZTRiYmJmMDM1Li5lZDA3ZWVk
NjMwMGMxMWQ1OWY4MzdjYmY2Yzc2YWQzOGU4OWU4MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29u
c3QgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkmIGEsIGNvbnN0IFByZXNlbnRhdGlvCiAK
IHN0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSYgcHJlc2VudGF0aW9uQXR0cmlidXRl
Q2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQcmVzZW50YXRp
b25BdHRyaWJ1dGVDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGU+IGNhY2hlKCk7CiAgICAgcmV0dXJuIGNhY2hlOwog
fQogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIFByZXNlbnRhdGlvbkF0
dHJpYnV0ZUNhY2hlQ2xlYW5lciYgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHJlc2VudGF0aW9uQXR0cmli
dXRlQ2FjaGVDbGVhbmVyLCBjbGVhbmVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lcj4gY2xlYW5lcigpOwogICAgIHJldHVy
biBjbGVhbmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCmluZGV4IGYwN2Q1NDFlMDM0OTU2YTM5OGYyNmRmMzlmZTM5MjliYWNlODkyM2EuLjky
MjcyMGIwODBkYTkyNWYzZDU0OWNhZWJiNTZhNDQ5NjYyMzIzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRp
YyBpbnQgdG9JZGVudGlmaWVyKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlKQogCiBzdGF0aWMg
U3RyaW5nJiBzdHlsZVNwYW5DbGFzc1N0cmluZygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgc3R5bGVTcGFuQ2xhc3NTdHJpbmcsICgoQXBwbGVTdHlsZVNw
YW5DbGFzcykpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzdHlsZVNwYW5D
bGFzc1N0cmluZygoQXBwbGVTdHlsZVNwYW5DbGFzcykpOwogICAgIHJldHVybiBzdHlsZVNwYW5D
bGFzc1N0cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcAppbmRleCAxNzJiODVjM2M3NjE2Y2Y0NzJjMTUxMjM3OTU0MmI1ZDFiN2E3MTFlLi44
Njk3OWY4ZTQ3NTVlYTg4YWI2NjAwN2QzM2U0N2E1NDE1NzM2YjZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIGJv
b2wgTWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkKICAgICBpZiAocHJlZml4LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
ICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSh4bWxuc0F0b20pOwogCi0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgeG1sbnNXaXRoQ29sb24sIChBU0NJSUxpdGVyYWwoInht
bG5zOiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4geG1sbnNXaXRoQ29s
b24oQVNDSUlMaXRlcmFsKCJ4bWxuczoiKSk7CiAgICAgcmV0dXJuICFlbGVtZW50Lmhhc0F0dHJp
YnV0ZSh4bWxuc1dpdGhDb2xvbiArIHByZWZpeCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggNmMwNjJiNTVhNjM2
N2ZjOTkwZDAzODU0YWI2OTk5Yjg5OGYzMDg4MS4uYTllMGM4MzJkNDE2YjViMzRhMzZjN2IyYzlj
NTg2MTk3NjM4NjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTEwMiwxNCArMTAyLDE0IEBAIHByaXZhdGU6CiAKIHN0
YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VOZXdsaW5lTm9kZShjb25zdCBOb2RlICpub2RlKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGludGVyY2hhbmdlTmV3
bGluZUNsYXNzU3RyaW5nLCAoQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpbnRlcmNoYW5nZU5ld2xpbmVDbGFzc1N0cmluZyhBcHBs
ZUludGVyY2hhbmdlTmV3bGluZSk7CiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFt
ZShiclRhZykgJiYgCiAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQgKj4obm9k
ZSktPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpID09IGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3Ry
aW5nOwogfQogCiBzdGF0aWMgYm9vbCBpc0ludGVyY2hhbmdlQ29udmVydGVkU3BhY2VTcGFuKGNv
bnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29udmVydGVkU3BhY2VTcGFuQ2xhc3NTdHJpbmcsIChBcHBsZUNvbnZlcnRlZFNwYWNl
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29udmVydGVkU3BhY2VTcGFu
Q2xhc3NTdHJpbmcoQXBwbGVDb252ZXJ0ZWRTcGFjZSk7CiAgICAgcmV0dXJuIG5vZGUtPmlzSFRN
TEVsZW1lbnQoKSAmJiAKICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnQg
Kj4obm9kZSktPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpID09IGNvbnZlcnRlZFNwYWNlU3BhbkNs
YXNzU3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA1
NTVkN2VlYzA3MTliZmUwMzg0MTNiOTFiMTQxMTAxYWJhMDdhNGVjLi5kNTdlYmU3YmFiOGM5Y2E5
MWI2OWI1YjA2ZGU4ZjBmMjQ0YzkwNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgaXNUYWJsZVN0cnVjdHVyZU5vZGUoY29u
c3QgTm9kZSAqbm9kZSkKIAogY29uc3QgU3RyaW5nJiBub25CcmVha2luZ1NwYWNlU3RyaW5nKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25CcmVha2lu
Z1NwYWNlU3RyaW5nLCAoJm5vQnJlYWtTcGFjZSwgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoJm5vQnJlYWtTcGFjZSwgMSk7CiAg
ICAgcmV0dXJuIG5vbkJyZWFraW5nU3BhY2VTdHJpbmc7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcAppbmRleCA3ZDZhN2Y2YmRiZTBhZTU1NWNhOTQ1YmQ1MjUxMWMyYTI3ODcyMGZiLi43
MTVlMGU4ZWRmMmUzOTNiMzIzZWMwOWIxOTM5ZWIzNjEyMGU3YzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCkBAIC0yMTIsOCArMjEyLDggQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kU3R5bGVOb2RlT3BlblRhZyhTdHJpbmdCdWlsZGVyJiBvdXQsIFN0eWxlUHIK
IAogY29uc3QgU3RyaW5nJiBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6c3R5bGVOb2RlQ2xvc2VU
YWcoYm9vbCBpc0Jsb2NrKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGRpdkNsb3NlLCAoQVNDSUlMaXRlcmFsKCI8L2Rpdj4iKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlU3BhbkNsb3Nl
LCAoQVNDSUlMaXRlcmFsKCI8L3NwYW4+IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgU3RyaW5nPiBkaXZDbG9zZShBU0NJSUxpdGVyYWwoIjwvZGl2PiIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBzdHlsZVNwYW5DbG9zZShBU0NJSUxpdGVy
YWwoIjwvc3Bhbj4iKSk7CiAgICAgcmV0dXJuIGlzQmxvY2sgPyBkaXZDbG9zZSA6IHN0eWxlU3Bh
bkNsb3NlOwogfQogCkBAIC01NTgsNyArNTU4LDcgQEAgc3RhdGljIE5vZGUqIGhpZ2hlc3RBbmNl
c3RvclRvV3JhcE1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIEVBbm5vdGF0ZUZvckludGVyY2gK
IHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFJhbmdlJiB1cGRhdGVkUmFuZ2UsIFZlY3RvcjxOb2Rl
Kj4qIG5vZGVzLAogICAgIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIHNob3VsZEFubm90YXRlLCBi
b29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMsIEVBYnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVS
THMpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
aW50ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCI8YnIgY2xhc3M9XCIiIEFw
cGxlSW50ZXJjaGFuZ2VOZXdsaW5lICJcIj4iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IGludGVyY2hhbmdlTmV3bGluZVN0cmluZyhBU0NJSUxpdGVyYWwoIjxi
ciBjbGFzcz1cIiIgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUgIlwiPiIpKTsKIAogICAgIGJvb2wg
Y29sbGFwc2VkID0gdXBkYXRlZFJhbmdlLmNvbGxhcHNlZChBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICBpZiAoY29sbGFwc2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5kZXggMDFkMzMwZWI2
MDY5NDZmOWVlMWJlMmVhNTVjMjBlZTU0NDY1ODZkMy4uZTk4OWRjMGU1MDFkMGFiYjNkOTNlNzQ2
MDFiODM5MjRlYWVjMGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9i
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBAIC02MSw3ICs2MSw3
IEBAIHZvaWQgQmxvYlVSTFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IFVSTCYgdXJsKQog
CiBVUkxSZWdpc3RyeSYgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJsb2JVUkxSZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QmxvYlVSTFJlZ2lzdHJ5PiBpbnN0YW5jZSgpOwog
ICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzNk
OWIwNDYxY2I2Zjc4ODhiNDg3MTJlNGU0NjJhNDA3YjBiZTIzLi4wZTNkMWVkMDRjN2VlNDA0M2Yy
MGQzYjkxMjlkMTUzYzdmYTliODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjIsNyAr
NjIsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVE
T01BY3RpdmF0ZUV2ZW50KEV2ZW50KikKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFsdWVDb250YWluZXJQc2V1ZG8sICgiLXdl
YmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZhbHVlQ29u
dGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdmFs
dWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgp
KTsKICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGRhMDdiZTA0NDdlNTgzOWU5
YzU5YzBlZjNkNWNmOWI4MmEwZWE0ZDAuLjA4ZTRmZTExYzI0OTJmOTIyYWFlOTc3MTU1ODljMDJi
YTc5OGJjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNzksNyAr
NzksNyBAQCBVcGxvYWRCdXR0b25FbGVtZW50OjpVcGxvYWRCdXR0b25FbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0
dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBz
ZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDQ1
MTAwZDFlMDc2NGVkNjU1MmYyMTdlMGZhOThhNzRlZjIzMDkyMGUuLmQ3ZDQ4MGQwMDk0YWI3ZTQ4
ZTkyMDE0YTA4Y2RjNzcwMjY5NmI5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgQXRvbWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6
OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY28KIHsKICAg
ICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKTsKICAg
ICBpZiAoIWZvcm0pIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZm9ybUtleUZvck5vT3duZXIsICgiTm8gb3duZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGZvcm1LZXlGb3JOb093bmVyKCJObyBvd25lciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7
CiAgICAgfQogICAgIEZvcm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1Ub0tl
eU1hcC5maW5kKGZvcm0pOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybVN0
YXRlU2lnbmF0dXJlKCkKICAgICAvLyBJbiB0aGUgbGVnYWN5IHZlcnNpb24gb2Ygc2VyaWFsaXpl
ZCBzdGF0ZSwgdGhlIGZpcnN0IGl0ZW0gd2FzIGEgbmFtZQogICAgIC8vIGF0dHJpYnV0ZSB2YWx1
ZSBvZiBhIGZvcm0gY29udHJvbC4gVGhlIGZvbGxvd2luZyBzdHJpbmcgbGl0ZXJhbCBzaG91bGQK
ICAgICAvLyBjb250YWluIHNvbWUgY2hhcmFjdGVycyB3aGljaCBhcmUgcmFyZWx5IHVzZWQgZm9y
IG5hbWUgYXR0cmlidXRlIHZhbHVlcy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBzaWduYXR1cmUsIChBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQgc2VyaWFs
aXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxyPSYiKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHNpZ25hdHVyZShBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQgc2Vy
aWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxyPSYiKSk7CiAgICAgcmV0dXJuIHNpZ25h
dHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRl
eCBjMjk0OWEyMDhmMDVlNWEzZDVkYjc2ZmRhNjY2ZmFkOGU2YTA3MjAwLi5lOTA0NzkwMDgwNTU0
NmYzM2U5MjU4OTk5NWZlYmI2MTgwMTI4ZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIHR5cGVkZWYgSGFzaE1hcDxjb25z
dCBIVE1MQW5jaG9yRWxlbWVudCosIFJlZlB0cjxFbGVtZW50Pj4gUm9vdEVkaXRhYmxlRWxlbWVu
dE1hCiAKIHN0YXRpYyBSb290RWRpdGFibGVFbGVtZW50TWFwJiByb290RWRpdGFibGVFbGVtZW50
TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUm9vdEVkaXRhYmxl
RWxlbWVudE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJvb3RFZGl0
YWJsZUVsZW1lbnRNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggOTQ3ZTcxZTkwNzhmOGIyNTk4ZDRl
OWM0MmFjYzY4OGRiMmEzMWJmYi4uNGE2MzAyYjNiZjIzYzJhZWEwNDM0Mzk4N2MyY2IxMTc3Yzcw
ZDA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTY2
LDE1ICs2NiwxNSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxCdXR0b25FbGVtZW50Ojpmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgICAgIGNh
c2UgU1VCTUlUOiB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzdWJtaXQsICgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gc3VibWl0KCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiBzdWJtaXQ7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGJ1dHRvbiwgKCJidXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBidXR0b24oImJ1dHRvbiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbjsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIFJFU0VUOiB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCByZXNldCwgKCJyZXNldCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHJlc2V0KCJyZXNldCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJuIHJlc2V0OwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWls
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
CmluZGV4IDIzZDIxOTM5ODBiY2U2ZDU5NWIzNGJhOWY2NjA0NDk1MTY3NzY1MzguLjc1MGRjOTY5
NDk0ZTk3MzE3ZGM5NDY3ZWM4MGM4YzRjZjA4NDliMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VtbWFyeVF1ZXJ5U2Vs
ZWN0b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNlbGVjdG9yLCAoInN1bW1hcnk6Zmlyc3Qtb2YtdHlwZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBzZWxlY3Rvcigic3VtbWFyeTpmaXJzdC1vZi10eXBlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNlbGVjdG9yOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggNjgxZTU1MzA0MzI2Y2E2
ODc5NjBmNGVhMGEzYzEwM2M0MTU5N2ZkYS4uNTc2NTFjYTMzNWYwMTM3YTczNjNiMjQ4N2Q4NTNj
ZGMyNjkxYTVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
Y3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MRmllbGRTZXRFbGVtZW50OjpzdXBwb3J0
c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRmllbGRTZXRFbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZpZWxkc2V0LCAoImZpZWxkc2V0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IGZpZWxkc2V0KCJmaWVsZHNldCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmaWVsZHNldDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCA3MTRiZGIyZTFiZDhjYWIz
YThmNWJlMWJjYzcxY2QxNDMyNDdiZDg0Li5lMDk0ZjVlNGMwYWNlN2E1N2YyMzExMzUyODM3MjVi
ZDUxMmI3MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApA
QCAtNTMsNyArNTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgS2V5Z2VuU2VsZWN0RWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFnLCBk
b2N1bWVudCwgMCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBzZXRQc2V1ZG8ocHNl
dWRvSWQpOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgSFRNTEtleWdlbkVsZW1l
bnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RlZF92YWx1ZXMsIGJvb2wpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywga2V5Z2VuLCAoImtleWdlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBr
ZXlnZW4oImtleWdlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cAppbmRleCBiODUxMTQ1ZjA4ZjcxODIyODQ1YTM4YjU0MTYwMzZhOWQzNjdhNTU0Li45ZWMyZWQ2
NjZjMDU2N2RmMGIxNDEzNjQ3NmQzYjQxNGFjYzFlOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKIHN0YXRpYyBMaW5rRXZlbnRTZW5kZXImIGxpbmtMb2FkRXZlbnRTZW5kZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMaW5rRXZlbnRTZW5kZXIsIHNo
YXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TGlua0V2ZW50U2VuZGVyPiBzaGFyZWRMb2FkRXZlbnRTZW5kZXIo
ZXZlbnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAgcmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRl
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggY2Ix
MTc1YTkwMWRkNzQyMTdkMzdkMzEyYzRmOTdhNDYwNzJjY2Q2MC4uY2Y2Y2NmNTkzNWE2NzNiMzM1
YjQxODZhN2MwMzc1OTIyYWI3YjZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IHR5cGVkZWYgSGFzaE1hcDxEb2N1bWVudCosIEhhc2hTZXQ8SFRNTE1lZGlhRWxlbWVudCo+PiBE
b2N1bWVudEVsZW1lbnRTZXRNYXA7CiBzdGF0aWMgRG9jdW1lbnRFbGVtZW50U2V0TWFwJiBkb2N1
bWVudFRvRWxlbWVudFNldE1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKERvY3VtZW50RWxlbWVudFNldE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPERvY3VtZW50RWxlbWVudFNldE1hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKaW5kZXggZjJi
ZmI0Y2UxM2M0MTYwZTI1ODEwNjIxY2RjMGQ5NTY2ZDA1NDU2My4uMGVhNjhlNjkxYTU5YjY3YTlh
MDgwYzdhODk1YjAzNzA0N2Y4OWYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGJvb2wgSFRNTE9wdEdyb3VwRWxlbWVu
dDo6aXNGb2N1c2FibGUoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxPcHRHcm91
cEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3B0Z3JvdXAsICgib3B0Z3JvdXAi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gb3B0Z3JvdXAoIm9wdGdyb3VwIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9wdGdyb3VwOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IGNlMzgxYjYw
ODQzNWFiZGE5M2ZlZmViZmIwMjIzOWQ2NjE5MjJjY2EuLjcwZjFhYTk5M2YwZTI3ZDEzNmUyYWM1
ODlhZDJmZTgwNmM5ZThjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91
dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1l
bnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFBhc3NSZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IEhU
TUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgSFRNTE91dHB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
Zywgb3V0cHV0LCAoIm91dHB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBvdXRwdXQo
Im91dHB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBvdXRwdXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCmluZGV4IGU2MzFhZTJiMTgzMTlkMzhkYjhjMGJmMTY3NWU1NzYzNDYwYzY2YjYu
LjZmYTM3NDhjNGI4ZTY5ZDNhNGRlYmVlYjAwMjI0ZmQ5NzQ4ZGZkMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBA
QCBzdGF0aWMgY29uc3QgYXV0byByZW1vdmVTbmFwc2hvdFRpbWVyRGVsYXkgPSBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIHsgMTUwMCB9OwogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHRpdGxlVGV4
dChQYWdlKiBwYWdlLCBTdHJpbmcgbWltZVR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9MYWJl
bFRpdGxlTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1pbWVUeXBlVG9Mb2Nh
bGl6ZWRTdHJpbmdNYXA+IG1pbWVUeXBlVG9MYWJlbFRpdGxlTWFwKCk7CiAgICAgU3RyaW5nIHRp
dGxlVGV4dCA9IG1pbWVUeXBlVG9MYWJlbFRpdGxlTWFwLmdldChtaW1lVHlwZSk7CiAgICAgaWYg
KCF0aXRsZVRleHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdGl0bGVUZXh0OwpAQCAtODYs
NyArODYsNyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nIHRpdGxlVGV4dChQYWdlKiBwYWdlLCBTdHJp
bmcgbWltZVR5cGUpCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgc3VidGl0bGVUZXh0KFBhZ2UqIHBh
Z2UsIFN0cmluZyBtaW1lVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01hcCwgbWltZVR5cGVUb0xhYmVsU3VidGl0bGVN
YXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWltZVR5cGVUb0xvY2FsaXplZFN0
cmluZ01hcD4gbWltZVR5cGVUb0xhYmVsU3VidGl0bGVNYXAoKTsKICAgICBTdHJpbmcgc3VidGl0
bGVUZXh0ID0gbWltZVR5cGVUb0xhYmVsU3VidGl0bGVNYXAuZ2V0KG1pbWVUeXBlKTsKICAgICBp
ZiAoIXN1YnRpdGxlVGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBzdWJ0aXRsZVRleHQ7
CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRBZGRV
c2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAKIGJvb2wgSFRNTFBsdWdJbklt
YWdlRWxlbWVudDo6cGFydE9mU25hcHNob3RPdmVybGF5KE5vZGUqIG5vZGUpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgiLnNu
YXBzaG90LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc2VsZWN0b3IoIi5zbmFwc2hv
dC1vdmVybGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVm
UHRyPEVsZW1lbnQ+IHNuYXBzaG90TGFiZWwgPSBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCku
cXVlcnlTZWxlY3RvcihzZWxlY3RvciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcmV0dXJu
IG5vZGUgJiYgc25hcHNob3RMYWJlbCAmJiAobm9kZSA9PSBzbmFwc2hvdExhYmVsLmdldCgpIHx8
IG5vZGUtPmlzRGVzY2VuZGFudE9mKHNuYXBzaG90TGFiZWwuZ2V0KCkpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggODY3ZGQyNmZkY2NkNGMyYzU2
YmU4MWQ5ZjY1MjExMmZkMDk0ZDYwYi4uZTc5YjczNzJjODNiODdjNjA4YzAwNTkzNTFkMzNlNTUy
ZmEwZmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAg
LTk2LDggKzk2LDggQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5
bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MU2VsZWN0
RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RNdWx0aXBsZSwgKCJzZWxl
Y3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2VsZWN0
T25lLCAoInNlbGVjdC1vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc2VsZWN0TXVs
dGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNlbGVj
dE9uZSgic2VsZWN0LW9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtX211bHRpcGxlID8gc2VsZWN0TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IGM1OWVmMTY4NWQ2
YmJjNmU1Yzk3ZWI3Y2IxYTc4NTFlMjc3MTdhNjkuLmQzZmUwMDg4NGQwMWEwYjkzZWFjMDNhOGIy
OWNiYmE2NWEzZTM3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNw
cApAQCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMg
U3R5bGVFdmVudFNlbmRlciYgc3R5bGVMb2FkRXZlbnRTZW5kZXIoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUV2ZW50U2VuZGVyLCBzaGFyZWRMb2FkRXZlbnRT
ZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0eWxlRXZlbnRTZW5kZXI+IHNoYXJlZExvYWRFdmVudFNlbmRlcihldmVudE5hbWVzKCku
bG9hZEV2ZW50KTsKICAgICByZXR1cm4gc2hhcmVkTG9hZEV2ZW50U2VuZGVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBmNDZiOWNkZWY3
NjhkYTFjMTAzYWY2YzZkNTQ1MzI0Zjk1ODMyZTQyLi4xMjZlMTI5NDY0OWFlOTI4ZWFiMjk0MTlh
Nzg3OGZmOTIxMDAxMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRl
eHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHRleHRhcmVh
KCJ0ZXh0YXJlYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiB0ZXh0YXJlYTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1ZWVhMjFkYWU5N2Q5MGJmNjUwYjVhZDYxYzIw
ZTg3MjgyNDZiM2YwLi5kNjRlZTI1NGQ3ZjExZmI5ZmQzNjQxYzVjM2Q1ZmJmNGZhNmM3NjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMzc1LDkgKzM3NSw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
Y29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IG5vbmUsICgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3J3
YXJkLCAoImZvcndhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFj
a3dhcmQsICgiYmFja3dhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbm9uZSgibm9u
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGZvcndhcmQoImZvcndhcmQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dhcmQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2Fz
ZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5jcHAKaW5kZXggZDBlMjViZTE5MDdlM2M5MmVhZmUzNjgzNmQ4ODFkNjJiZjhjYjUwOC4uZTQ4
ODQxYjgyYzI1ODhhOWEyMWU1NThkZjlmZDM4YmI2ZTQ5OTNlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTY0LDggKzY0LDggQEAgYm9vbCBJbWFnZUlucHV0VHlw
ZTo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgZG90WFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiLngiKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvdFlTdHJpbmcsIChBU0NJSUxp
dGVyYWwoIi55IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkb3RYU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiLngiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gZG90WVN0cmluZyhBU0NJSUxpdGVyYWwoIi55IikpOwogICAgIGVuY29kaW5nLmFwcGVuZERh
dGEobmFtZSArIGRvdFhTdHJpbmcsIG1fY2xpY2tMb2NhdGlvbi54KCkpOwogICAgIGVuY29kaW5n
LmFwcGVuZERhdGEobmFtZSArIGRvdFlTdHJpbmcsIG1fY2xpY2tMb2NhdGlvbi55KCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCmluZGV4IGFjMDg5NmEwNmE0N2UxYTg4
MDhjZDg5ZmRmNmEzYzQzMzYwMDNkMzIuLjQ4OTAzZmNjMGJkMDUzNGJjZWYxMmUxNzEwMDQzZWZl
N2QwOTY5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCkBAIC0zMSwx
MzkgKzMxLDEzOSBAQCBuYW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewogCiBjb25zdCBBdG9taWNT
dHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJidXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgi
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgY2hlY2tib3goKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiY2hlY2tib3gi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiY2hlY2tib3giLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJjb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJj
b2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGUoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0ZXRp
bWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG5hbWUsICgiZGF0ZXRpbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiZGF0ZXRpbWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBkYXRldGltZWxvY2FsKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRhdGV0aW1lLWxv
Y2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImRhdGV0aW1lLWxvY2FsIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgZW1haWwoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbmFtZSgiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImZpbGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiZmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIGhpZGRlbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiaGlk
ZGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgaW1hZ2UoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiaW1hZ2UiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gbmFtZSgiaW1hZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBtb250
aCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJtb250aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJtb250aCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIG51bWJlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJudW1iZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gbmFtZSgibnVtYmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgcGFzc3dvcmQoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUs
ICgicGFzc3dvcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgicGFzc3dvcmQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiByYWRpbygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJyYWRpbyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBuYW1lKCJyYWRpbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHJhbmdlKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJh
bmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInJhbmdlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgcmVzZXQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWUsICgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgi
cmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBzZWFyY2goKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgic2VhcmNoIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInNlYXJjaCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IHN1Ym1pdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbmFtZSwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgic3VibWl0
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGVsZXBob25lKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRlbCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBuYW1lKCJ0ZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0KCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1l
LCAoInRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgidGV4dCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIHRpbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgidGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1l
KCJ0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdXJsKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInVybCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBuYW1lKCJ1cmwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB3ZWVrKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1l
LCAoIndlZWsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgid2VlayIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKaW5kZXggYjNkMjI4YzNiOTg4MDc3ODkwMjUw
N2YzNTQ5NzEyOTMyNTI5NGVmNS4uYzBkOGVmMDcxZmZhMDE5MTMxYmIwODA5YWRkMDAzYTMwM2Ri
M2I5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcApAQCAtMjg5LDE5
ICsyODksMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xsZXI6OnNldE11dGVkKGJvb2wgZmxhZykKIAog
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHdhaXRpbmcsICgi
d2FpdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAK
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwbGF5aW5nLCAo
InBsYXlpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcGxheWluZygicGxheWluZyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwbGF5aW5nOwogfQog
CiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVu
ZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGVuZGVkKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBlbmRlZDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9TdGVwUmFuZ2UuY3BwCmluZGV4IGM0NzcxOGEwYzFmMzNiOTVlM2JmM2E2YjIzNWI1MmNjYzQ3
ODQ4ZDAuLjM3NDI5YjAwMjJjODU3Y2UwZDY2OWVkMjZmZjZmODAyZDAwZGU3ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1N0ZXBSYW5nZS5jcHAKQEAgLTY1LDEzICs2NSwxMyBAQCBTdGVwUmFuZ2U6OlN0ZXBS
YW5nZShjb25zdCBEZWNpbWFsJiBzdGVwQmFzZSwgY29uc3QgRGVjaW1hbCYgbWluaW11bSwgY29u
c3QgRGVjaQogRGVjaW1hbCBTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcigpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgREJMX01BTlRfRElHIGluc3RlYWQgb2YgRkxUX01B
TlRfRElHIHJlZ2FyZGluZyB0byBIVE1MNSBzcGVjaWZpY2F0aW9uLgotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFsLCB0d29Qb3dlck9mRmxvYXRNYW50aXNz
YUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgRkxUX01BTlRfRElH
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IERlY2ltYWw+IHR3b1Bvd2VyT2ZG
bG9hdE1hbnRpc3NhQml0cyhEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgRkxU
X01BTlRfRElHKTsKICAgICByZXR1cm4gbV9zdGVwRGVzY3JpcHRpb24uc3RlcFZhbHVlU2hvdWxk
QmUgPT0gU3RlcFZhbHVlU2hvdWxkQmVSZWFsID8gbV9zdGVwIC8gdHdvUG93ZXJPZkZsb2F0TWFu
dGlzc2FCaXRzIDogRGVjaW1hbCgwKTsKIH0KIAogRGVjaW1hbCBTdGVwUmFuZ2U6OmFsaWduVmFs
dWVGb3JTdGVwKGNvbnN0IERlY2ltYWwmIGN1cnJlbnRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbmV3
VmFsdWUpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IERlY2ltYWwsIHRlblBvd2VyT2YyMSwgKERlY2ltYWw6OlBvc2l0aXZlLCAyMSwgMSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBEZWNpbWFsPiB0ZW5Qb3dlck9mMjEoRGVjaW1h
bDo6UG9zaXRpdmUsIDIxLCAxKTsKICAgICBpZiAobmV3VmFsdWUgPj0gdGVuUG93ZXJPZjIxKQog
ICAgICAgICByZXR1cm4gbmV3VmFsdWU7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBib29sIFN0ZXBS
YW5nZTo6c3RlcE1pc21hdGNoKGNvbnN0IERlY2ltYWwmIHZhbHVlRm9yQ2hlY2spIGNvbnN0CiAg
ICAgLy8gRGVjaW1hbCdzIGZyYWN0aW9uYWwgcGFydCBzaXplIGlzIERCTF9NQU5fRElHLWJpdC4g
SWYgdGhlIGN1cnJlbnQgdmFsdWUKICAgICAvLyBpcyBncmVhdGVyIHRoYW4gc3RlcCoyXkRCTF9N
QU5UX0RJRywgdGhlIGZvbGxvd2luZyBjb21wdXRhdGlvbiBmb3IKICAgICAvLyByZW1haW5kZXIg
bWFrZXMgbm8gc2Vuc2UuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IERlY2ltYWwsIHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2
ZSwgMCwgVUlOVDY0X0MoMSkgPDwgREJMX01BTlRfRElHKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IERlY2ltYWw+IHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNzYUJpdHMoRGVjaW1h
bDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8IERCTF9NQU5UX0RJRyk7CiAgICAgaWYgKHZh
bHVlIC8gdHdvUG93ZXJPZkRvdWJsZU1hbnRpc3NhQml0cyA+IG1fc3RlcCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIC8vIFRoZSBjb21wdXRhdGlvbiBmb2xsb3dzIEhUTUw1IDQuMTAuNy4y
LjEwIGBUaGUgc3RlcCBhdHRyaWJ1dGUnIDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IGRlYmM4MzEwMjc5
OWMxNjZjNjc3ZTdjNjRkMGI0ZmIwZmEyNTA1ZDAuLmY1N2NiMjVkZDA5YWJhY2NhOWIzNjUwMDIx
OGUyYmNmY2FmMzI1NTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTg5Nyw3ICsxODk3LDcgQEAgUGFz
c1JlZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6d2Via2l0R2V0SW1h
Z2VEYXRhSEQoZmxvYXQgc3gsIGYKIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmdldEltYWdlRGF0YShJbWFnZUJ1ZmZlcjo6Q29vcmRpbmF0ZVN5c3RlbSBj
b29yZGluYXRlU3lzdGVtLCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW52YXMoKS0+b3JpZ2luQ2xl
YW4oKSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBj
b25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVW5hYmxlIHRvIGdldCBpbWFnZSBkYXRhIGZy
b20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNyb3NzLW9y
aWdpbiBkYXRhLiIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNv
bnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiVW5hYmxlIHRvIGdldCBpbWFnZSBkYXRhIGZyb20g
Y2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNyb3NzLW9yaWdp
biBkYXRhLiIpKTsKICAgICAgICAgY2FudmFzKCktPmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVN
ZXNzYWdlKTsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAppbmRleCBmZjFm
OTg2MmM5NTkwNjQ2YjVmNDZiZGEwNmZjMzYwNGZjNTcxMGNjLi43NzA5ZDc2ODQ5MDM4YTIxZmNh
MzRjZDdjNWU4YjFiYzFiYzQxM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmNwcApAQCAtMTA1MCw5ICsxMDUwLDkgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVHSU5fU1RBVEUoTWFya3VwRGVjbGFyYXRpb25P
cGVuU3RhdGUpIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZGFzaERhc2hTdHJpbmcsIChBU0NJSUxpdGVyYWwoIi0tIikpKTsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZG9jdHlwZVN0cmluZywgKEFTQ0lJTGl0
ZXJhbCgiZG9jdHlwZSIpKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGNkYXRhU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJbQ0RBVEFbIikpKTsKKyAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZGFzaERhc2hTdHJpbmcoQVNDSUlMaXRl
cmFsKCItLSIpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZG9jdHlw
ZVN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3R5cGUiKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGNkYXRhU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiW0NEQVRBWyIpKTsKICAg
ICAgICAgaWYgKGNjID09ICctJykgewogICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nOjpMb29r
QWhlYWRSZXN1bHQgcmVzdWx0ID0gc291cmNlLmxvb2tBaGVhZChkYXNoRGFzaFN0cmluZyk7CiAg
ICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6RGlkTWF0Y2gpIHsKQEAg
LTEyNTMsOCArMTI1Myw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+
c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHVibGljU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCJwdWJsaWMiKSkpOwotICAgICAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3lzdGVtU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJz
eXN0ZW0iKSkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcHVi
bGljU3RyaW5nKEFTQ0lJTGl0ZXJhbCgicHVibGljIikpOworICAgICAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gc3lzdGVtU3RyaW5nKEFTQ0lJTGl0ZXJhbCgic3lzdGVtIikp
OwogICAgICAgICAgICAgaWYgKGNjID09ICdQJyB8fCBjYyA9PSAncCcpIHsKICAgICAgICAgICAg
ICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVhZFJlc3VsdCByZXN1bHQgPSBzb3VyY2UubG9v
a0FoZWFkSWdub3JpbmdDYXNlKHB1YmxpY1N0cmluZyk7CiAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdCA9PSBTZWdtZW50ZWRTdHJpbmc6OkRpZE1hdGNoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IDI1ZDRiZmYzNDAwNTJmMGVjM2QzZTY3YzdkNmMx
NDYyN2RhNzQ3ODguLjM3MjY5NmI0NDVmMGFjNzg3ZjFjZTFjYTc3MDQ0NDZlNjkwNDk0MzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCkBAIC0yNzMsNyArMjcz
LDcgQEAgdm9pZCBYU1NBdWRpdG9yOjppbml0KERvY3VtZW50KiBkb2N1bWVudCwgWFNTQXVkaXRv
ckRlbGVnYXRlKiBhdWRpdG9yRGVsZWdhdGUpCiAKICAgICBTdHJpbmcgaHR0cEJvZHlBc1N0cmlu
ZzsKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQtPmZy
YW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgWFNTUHJvdGVjdGlvbkhlYWRlciwgKEFTQ0lJTGl0
ZXJhbCgiWC1YU1MtUHJvdGVjdGlvbiIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IFhTU1Byb3RlY3Rpb25IZWFkZXIoQVNDSUlMaXRlcmFsKCJYLVhTUy1Qcm90ZWN0
aW9uIikpOwogICAgICAgICBTdHJpbmcgaGVhZGVyVmFsdWUgPSBkb2N1bWVudExvYWRlci0+cmVz
cG9uc2UoKS5odHRwSGVhZGVyRmllbGQoWFNTUHJvdGVjdGlvbkhlYWRlcik7CiAgICAgICAgIFN0
cmluZyBlcnJvckRldGFpbHM7CiAgICAgICAgIHVuc2lnbmVkIGVycm9yUG9zaXRpb24gPSAwOwpA
QCAtNTIyLDcgKzUyMiw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmlsdGVyQnV0dG9uVG9rZW4oY29u
c3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQogCiBib29sIFhTU0F1ZGl0b3I6OmVyYXNl
RGFuZ2Vyb3VzQXR0cmlidXRlc0lmSW5qZWN0ZWQoY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiBy
ZXF1ZXN0KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNh
ZmVKYXZhU2NyaXB0VVJMLCAoQVNDSUlMaXRlcmFsKCJqYXZhc2NyaXB0OnZvaWQoMCkiKSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNhZmVKYXZhU2NyaXB0VVJMKEFTQ0lJ
TGl0ZXJhbCgiamF2YXNjcmlwdDp2b2lkKDApIikpOwogCiAgICAgYm9vbCBkaWRCbG9ja1Njcmlw
dCA9IGZhbHNlOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVxdWVzdC50b2tlbi5hdHRy
aWJ1dGVzKCkuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCA2NDRmYWFlNDc5NjY0ZTkwZTEyZjNk
OWQzNTExYjg3M2VkZmRjZDAxLi42YzUyOTFjZDM3MGEwN2I3NDcwYzk5MjhlNWEwMGNlZjg2Y2Fh
YWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgRGV0YWlsc01hcmtlckNvbnRyb2w6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIERldGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJ
ZCwgKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVk
SWQoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IGFlMzZmZjMyMGUw
ZjUyN2FjM2Y3NjVkZDRkYWQxMzIxNjMxNzQxYWYuLjQzZTM0ZjlhMDdjN2M1YTdmYTZkNjE0NmM3
ZWE3YTAzZjY4YTMzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTI3Miw3ICsyNzIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJl
RWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAt
MjkxLDcgKzI5MSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVs
ZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5j
bG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGlkOwogfQogCkBAIC0zMTIsNyArMzEyLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWwKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5l
LWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy10aW1lbGluZS1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQog
CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVu
dDo6dXBkYXRlKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNw
bGF5RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtc3RhdHVzLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtc3RhdHVzLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC00OTAsNyArNDkwLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyTXUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJNdXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwog
fQogCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dDo6dXBkYXRlRGlzcGxheVR5cGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNTcwLDcgKzU3MCw3IEBAIHZvaWQg
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTU5Myw3ICs1OTMsNyBAQCBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02
MTUsNyArNjE1LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDoKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRv
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsK
IH0KIApAQCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBA
IC02NzgsNyArNjc4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0
aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC03MzYsNyArNzM2LDcgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1j
bG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC03NTgsNyArNzU4LDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb24KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0
aW9uc0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5l
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsK
IH0KIApAQCAtODIyLDE0ICs4MjIsMTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW4KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiB7
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdGVkQ2xhc3NWYWx1ZSwgKCJzZWxlY3RlZCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBzZWxlY3RlZENsYXNzVmFsdWUoInNlbGVjdGVkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoIW1lZGlhQ29udHJvbGxlcigp
LT5oYXNDbG9zZWRDYXB0aW9ucygpKQogICAgICAgICByZXR1cm47CkBAIC0xMDA1LDcgKzEwMDUs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6c2V0RHVyYXRpb24oZG91Ymxl
IGR1cmF0aW9uKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZWxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dGltZWxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKQEAgLTEwMjksNyArMTAyOSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVs
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1
bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwNTMsNyArMTA1Myw3IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTEwOTgsNyArMTA5OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVu
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBpZDsKIH0KIApAQCAtMTEzNSw3ICsxMTM1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXYK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBp
ZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1taW4tYnV0dG9uIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQog
CkBAIC0xMTY3LDcgKzExNjcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
YXhCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2Ny
ZWVuLXZvbHVtZS1tYXgtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1heC1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExODYs
NyArMTE4Niw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlF
bGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzCiAKIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIGdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRv
d1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3Bs
YXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTIxMCw3ICsxMjEwLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBNZWRpYUNvbnRyb2xDdXJyZW50
VGltZURpc3BsYXkKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0TWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlk
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMjQ3
LDcgKzEyNDcsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbgogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNv
bnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBpZDsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9scy5jcHAKaW5kZXggM2JjN2I4ZjJkYThhZDhjMGQxNzRlMGIyNTFkMDk5ZWE5ODBiOWNm
NS4uYzU4MDg3YjhjYjYxZWM2NWMzMjIyYTY4NDAyMzBmNGFhOGNiZDYyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAgLTM2NSw3ICszNjUsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbHM6OnN0b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbHM6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIik7CiAgICAgcmV0dXJu
IGlkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcAppbmRleCBhNTc2MzM0ZGU4MzkxYWY0MTYzZTAxYzY1NmFmYTRlODVlZmI1MjEy
Li45NDljNjJjMjJkNTE4MjQ1YWIyN2I2OGNlYWQxMzM1NTQ0MWMyM2M5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAgLTYzLDcg
KzYzLDcgQEAgYm9vbCBNZXRlclNoYWRvd0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQogTWV0ZXJJbm5lckVsZW1lbnQ6Ok1ldGVySW5uZXJFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1ldGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1
ZG9JZCwgKCItd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gcHNldWRvSWQoIi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiB9CiAKQEAg
LTgwLDkgKzgwLDkgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXIKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZXRlclZhbHVlRWxlbWVudDo6dmFsdWVQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3B0aW11bVBzZXVkb0lk
LCAoIi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzdWJvcHRpbXVtUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZh
bHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGV2ZW5MZXNzR29vZFBzZXVkb0lk
LCAoIi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdvb2QtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gb3B0aW11bVBzZXVkb0lkKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBzdWJvcHRpbXVtUHNldWRvSWQoIi13ZWJraXQtbWV0ZXItc3Vib3B0
aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGV2ZW5MZXNzR29vZFBzZXVkb0lkKCIt
d2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBIVE1MTWV0ZXJFbGVtZW50KiBtZXRlciA9IG1ldGVyRWxl
bWVudCgpOwogICAgIGlmICghbWV0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGQxYjBlNzhkMTUxMTlkYmYyZWM2NGJhZWI1MjVk
MDRiNzhiM2VlMjAuLjY3ZWEzZWNkOTllZmIzZTI0NzkwN2NlOGIyNzUyYTkyZjIxMTYwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCkBA
IC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgTWV0ZXJCYXJFbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCkKICAgICAgICAgOiBNZXRlclNoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiAgICAgewot
ICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1
ZG9JZCwgKCItd2Via2l0LW1ldGVyLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNl
dWRvSWQoIi13ZWJraXQtbWV0ZXItYmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IGZi
YzY5NDBhMGNmYzUzMTY4OWM4NjUwM2QyNjU3YTFhY2FkMzYxYzMuLjA0NmM1MmVmMWQ1ZTk1ZTgz
NGE2ZGFhOGY4ODg2NjJlMGRmZmEzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNTY3LDEzICs1NjcsMTMgQEAgSFRNTElu
cHV0RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAogCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlk
ZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3Ry
aW5nPiBzbGlkZXJUaHVtYigiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc2xpZGVyVGh1bWI7CiB9CiAKIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bWVkaWFTbGlkZXJUaHVtYiwgKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBtZWRpYVNsaWRlclRodW1iKCItd2Via2l0LW1lZGlhLXNsaWRl
ci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBtZWRpYVNsaWRlclRodW1iOwogfQogCkBAIC02MjMsOCArNjIzLDggQEAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFIKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtp
dC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbWVkaWFTbGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVk
aWEtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNsaWRlckNv
bnRhaW5lcigiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0hv
c3QoKS0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBpZiAoIWlucHV0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDE5NmRhNjVlMmVl
OTUxYWY0YzA2ODg4N2VjMzA3YmI1ZjBmZjVlZDQuLjE1NTA1NDg0MjkwN2ZhZTZmMGJkOGVmNTA1
Y2E2ZDNkN2VjY2YxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Nw
aW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGlu
QnV0dG9uRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgUGFzc1JlZlB0cjxTcGluQnV0dG9u
RWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFNw
aW4KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBpbm5lclBzZXVkb0lkKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlubmVy
UHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDQwMTAzMmE1YmI1NGJiOTIwNTYzOTg1
YWJiNGYwNDRjNDZhOWRiM2EuLjFhOTZkOGExYTlkMzZmZGY3OWU2YzQ4NjBmNjM3MWRlZDcxYzhl
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTQyLDkgKzE0Miw5IEBAIFBhc3NSZWZQdHI8U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVu
dDo6Y3JlCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1
bHRzLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3Jh
dGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBkZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtZGVjb3Jh
dGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiByZXN1bHRzSWQoIi13ZWJraXQtc2VhcmNoLXJl
c3VsdHMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVzdWx0c0RlY29yYXRpb25JZCgi
LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
ZGVjb3JhdGlvbklkKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgRWxlbWVudCogaG9zdCA9IHNoYWRvd0hvc3QoKTsK
ICAgICBpZiAoIWhvc3QpCiAgICAgICAgIHJldHVybiByZXN1bHRzSWQ7CkBAIC0yMDIsNyArMjAy
LDcgQEAgUGFzc1JlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwg
KCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBz
ZXVkb0lkKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCkBAIC00NjEsNyAr
NDYxLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RvcFNwZWVjaElu
cHV0KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtaW5wdXQtc3BlZWNoLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1pbnB1dC1zcGVl
Y2gtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDJkMGI0MDUyOGQ3Y2VmMGNm
NzI2NDJkOWNkMDkzNmYyYTUyNGY0NGEuLjg5NjdjODNhNzkyMzM4NjcyMDMwYmUwYzVjMzRkZDky
NjgyYTc5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVF
bWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OnBsdWdpbkVsZW1lbnQoKSBj
b25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVudCIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1ZG9JZCgiLXdl
YmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IGJkYmVjNmY0MDQzYmE2
OWZiOWJhOGZjMmNkOTNjMjhlN2YyODJhODAuLjRmNzY5YTNjNzg1ZDFlNGZlYjJkYTMzN2ViYjhk
NTgzODg5NDg3MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApA
QCAtNDMsMzcgKzQzLDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFsdGVybmF0aXZlLCAoImFs
dGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFsdGVybmF0aXZlKCJhbHRl
cm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjpkZXNj
cmlwdGlvbktleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGRlc2NyaXB0aW9uLCAoImRlc2NyaXB0aW9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluS2V5d29yZCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWFpbiwgKCJt
YWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG1haW4oIm1haW4iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFpbjsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluRGVzY0tleXdvcmQoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1haW5EZXNjLCAo
Im1haW4tZGVzYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBtYWluRGVzYygibWFpbi1k
ZXNjIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1h
aW5EZXNjOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OnRyYW5zbGF0aW9u
S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgdHJhbnNsYXRpb24sICgidHJhbnNsYXRpb24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRyYW5zbGF0aW9uOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb21tZW50YXJ5
LCAoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY29tbWVudGFyeSgi
Y29tbWVudGFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5j
cHAKaW5kZXggMmRmMzU3Y2U0NzI1MzU3YWNjNDU2NzkyOWQyZjhmOTA4YzIwYTljYS4uOGZkNGYw
ZjljODA0MjBmNTdkOTg3YTQyMTJkMzlmNDA4MjM2ODRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmNwcApAQCAtNDksNTUgKzQ5LDU1IEBAIHN0YXRpYyBjb25zdCBpbnQg
aW52YWxpZFRyYWNrSW5kZXggPSAtMTsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6
OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gc3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc3VidGl0bGVzOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJj
YXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjYXB0aW9ucygiY2FwdGlvbnMi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlv
bnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkZXNjcmlwdGlvbnNLZXl3
b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBkZXNjcmlwdGlvbnMsICgiZGVzY3JpcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uczsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmNoYXB0ZXJzS2V5d29yZCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2hhcHRlcnMsICgi
Y2hhcHRlcnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJz
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0
ZXJzOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6bWV0YWRhdGFLZXl3b3Jk
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBtZXRhZGF0YSwgKCJtZXRhZGF0YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBt
ZXRhZGF0YSgibWV0YWRhdGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAgICAgCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRU
cmFjazo6Zm9yY2VkS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yY2VkLCAoImZvcmNlZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBmb3JjZWQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
VGV4dFRyYWNrOjpkaXNhYmxlZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4sICgiZGlzYWJsZWQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21pY1N0cmluZz4gb3BlbigiZGlzYWJsZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb3BlbjsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBUZXh0VHJhY2s6OmhpZGRlbktleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJoaWRkZW4iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY2xvc2VkKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2xvc2VkOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoInNob3dpbmci
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZW5kZWQoInNob3dpbmciLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZW5kZWQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmluZGV4IGJjMzk5ZmJiMDBjNDRhYjQ5
MjM2NDEzM2M1ZGMwOGIwYjJlM2FjMTYuLjk3OTU4Y2Y2OWEyYWQwYjQ5MjU0Mzg5MDgxYjU5ZWM1
NDViNmJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBj
dWVTaGFkb3dQc2V1ZG9JZCgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjdWUsICgiY3VlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgICAgICByZXR1cm4gY3VlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCmluZGV4IDg2OWVkODMwMGUxMmVmMDhkZWRjOGYwYmU1ZjE1NjkyYTFjNDUz
NmMuLjI4ZWYzNDA1NDNhNGU2MGQzMTZlZDlmZmFlZjAzM2RlNjgwMjk0ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTcyLDMxICs3MiwzMSBAQCBDT01QSUxFX0FTU0VS
VChXVEZfQVJSQVlfTEVOR1RIKGRpc3BsYXlBbGlnbm1lbnRNYXApID09IFZUVEN1ZTo6TnVtYmVy
T2ZBbGlnbm1lbgogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBzdGFydEtleXdvcmQoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXJ0LCAoQVND
SUlMaXRlcmFsKCJzdGFydCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gc3RhcnQoQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKICAgICByZXR1cm4gc3RhcnQ7CiB9
CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIG1pZGRsZUtleXdvcmQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1pZGRsZSwgKEFTQ0lJTGl0ZXJh
bCgibWlkZGxlIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBt
aWRkbGUoQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7CiAgICAgcmV0dXJuIG1pZGRsZTsKIH0KIAog
c3RhdGljIGNvbnN0IFN0cmluZyYgZW5kS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kLCAoQVNDSUlMaXRlcmFsKCJlbmQiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGVuZChBU0NJSUxpdGVy
YWwoImVuZCIpKTsKICAgICByZXR1cm4gZW5kOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBs
ZWZ0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgbGVmdCwgKCJsZWZ0IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBTdHJpbmc+IGxlZnQoImxlZnQiKTsKICAgICByZXR1cm4gbGVmdDsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgcmlnaHRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCByaWdodCwgKCJyaWdodCIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiByaWdodCgicmlnaHQiKTsKICAgICByZXR1cm4gcmln
aHQ7CiB9CiAKQEAgLTEwNywxMyArMTA3LDEzIEBAIHN0YXRpYyBjb25zdCBTdHJpbmcmIGhvcml6
b250YWxLZXl3b3JkKCkKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdmVydGljYWxHcm93aW5nTGVm
dEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHZlcnRpY2FscmwsIChBU0NJSUxpdGVyYWwoInJsIikpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB2ZXJ0aWNhbHJsKEFTQ0lJTGl0ZXJhbCgicmwiKSk7
CiAgICAgcmV0dXJuIHZlcnRpY2Fscmw7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHZlcnRp
Y2FsR3Jvd2luZ1JpZ2h0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxsciwgKEFTQ0lJTGl0ZXJhbCgibHIiKSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHZlcnRpY2FsbHIoQVNDSUlM
aXRlcmFsKCJsciIpKTsKICAgICByZXR1cm4gdmVydGljYWxscjsKIH0KIApAQCAtMjA1LDcgKzIw
NSw3IEBAIHZvaWQgVlRUQ3VlQm94OjphcHBseUNTU1Byb3BlcnRpZXMoY29uc3QgSW50U2l6ZSYp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUQ3VlQm94Ojp2dHRDdWVCb3hTaGFkb3dQc2V1ZG9J
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0
LXRyYWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHJhY2tEaXNwbGF5
Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRyYWNrRGlzcGxh
eUJveFNoYWRvd1BzZXVkb0lkOwogfQogCkBAIC01NzcsNyArNTc3LDcgQEAgc3RhdGljIGJvb2wg
aXNDdWVQYXJhZ3JhcGhTZXBhcmF0b3IoVUNoYXIgY2hhcmFjdGVyKQogCiB2b2lkIFZUVEN1ZTo6
ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcnRUYWcsIChBU0NJSUxpdGVyYWwoInJ0IikpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBydFRhZyhBU0NJSUxpdGVyYWwoInJ0
IikpOwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVlKCk7CiAgICAgaWYgKCFtX3dlYlZUVE5vZGVU
cmVlKQogICAgICAgICByZXR1cm47CkBAIC03MjEsNyArNzIxLDcgQEAgdm9pZCBWVFRDdWU6OmNh
bGN1bGF0ZURpc3BsYXlQYXJhbWV0ZXJzKCkKICAgICAKIHZvaWQgVlRUQ3VlOjptYXJrRnV0dXJl
QW5kUGFzdE5vZGVzKENvbnRhaW5lck5vZGUqIHJvb3QsIGRvdWJsZSBwcmV2aW91c1RpbWVzdGFt
cCwgZG91YmxlIG1vdmllVGltZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIp
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdGltZXN0YW1wVGFn
KEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpOwogICAgIAogICAgIGJvb2wgaXNQYXN0Tm9kZSA9
IHRydWU7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAppbmRleCAwNzI3MGMyYjdiYmE0
NmY3NGI1MzMzOGUxMmQ4MDU2Yjg0MmQwY2Q4Li5mYjM5MmY0ZTlhYWVkYmIzZjI2ZDBiNDAzZWU0
YmFiMmU0ODIwNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBA
IC0xODYsNyArMTg2LDcgQEAgdm9pZCBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3Vi
bGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiBjb25zdCBBdG9taWNTdHJpbmcgVlRUUmVn
aW9uOjpzY3JvbGwoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHVwU2Nyb2xsVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IHVwU2Nyb2xsVmFsdWVLZXl3b3JkKCJ1cCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKG1fc2Nyb2xsKQogICAgICAg
ICByZXR1cm4gdXBTY3JvbGxWYWx1ZUtleXdvcmQ7CkBAIC0xOTYsNyArMTk2LDcgQEAgY29uc3Qg
QXRvbWljU3RyaW5nIFZUVFJlZ2lvbjo6c2Nyb2xsKCkgY29uc3QKIAogdm9pZCBWVFRSZWdpb246
OnNldFNjcm9sbChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiB1cFNjcm9sbFZhbHVlS2V5d29yZCgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKIAogICAgIGlmICh2YWx1ZSAhPSBlbXB0eVN0cmluZygpICYmIHZhbHVlICE9IHVw
U2Nyb2xsVmFsdWVLZXl3b3JkKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTI2Niw3
ICsyNjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFyc2VkRW50aXJlUnVuKGNvbnN0IFZUVFNj
YW5uZXImIGlucHV0LCBjb25zdCBWVFRTY2FubmVyOjpSdQogCiB2b2lkIFZUVFJlZ2lvbjo6cGFy
c2VTZXR0aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5nLCBWVFRTY2FubmVyJiBpbnB1dCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBzY3JvbGxVcFZhbHVlS2V5d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBzY3JvbGxVcFZhbHVlS2V5d29yZCgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKIAogICAgIFZUVFNjYW5uZXI6OlJ1biB2YWx1ZVJ1biA9IGlucHV0LmNvbGxlY3RV
bnRpbDxXZWJWVFRQYXJzZXI6OmlzQVNwYWNlPigpOwogCkBAIC0zMjQsNyArMzI0LDcgQEAgdm9p
ZCBWVFRSZWdpb246OnBhcnNlU2V0dGluZ1ZhbHVlKFJlZ2lvblNldHRpbmcgc2V0dGluZywgVlRU
U2Nhbm5lciYgaW5wdXQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJh
Y2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tSZWdpb25DdWVDb250YWluZXJT
Y3JvbGxpbmdDbGFzcywgKCJzY3JvbGxpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
dHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygic2Nyb2xsaW5nIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25D
dWVDb250YWluZXJTY3JvbGxpbmdDbGFzczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suY3BwCmluZGV4IGJiZGM5MGRkZmJjMTNjMTJkZGIxYjM4ZDExMjg5OGI5MWIxMTM5
MzMuLmRmY2QxYmEwYjZkOTgzYjkwYjRmZmFkODYzODBiNzViMGQ5YTk5NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtNDcsMzcgKzQ3LDM3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjphbHRlcm5h
dGl2ZUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGFsdGVybmF0aXZlLCAoImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IGFsdGVybmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25z
LCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNhcHRpb25zKCJjYXB0
aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBj
YXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjptYWluS2V5d29y
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgY2FwdGlvbnMsICgibWFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjYXB0
aW9ucygibWFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpzaWdu
S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc2lnbiwgKCJzaWduIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNp
Z24oInNpZ24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gc2lnbjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpzdWJ0aXRsZXNL
ZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNT
dHJpbmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29tbWVudGFyeSwgKCJjb21tZW50
YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnki
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVu
dGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAK
aW5kZXggZDc0YjgzOGU4ZjkyNTc1NTA5MmE5OWYzYTdkZDk1NTUxOGRlMjgxZi4uZTM2YzNkYWNj
ZjU4YWQzNjZiMTI2OGY1ZDEyNTdlZDViMjVkZDE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgbm9kZVR5cGVUb1RhZ05hbWUo
V2ViVlRUTm9kZVR5cGUgbm9kZVR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFF1YWxpZmllZE5hbWUsIGNUYWcsIChudWxsQXRvbSwgImMiLCBudWxsQXRvbSkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB2VGFnLCAo
bnVsbEF0b20sICJ2IiwgbnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUXVhbGlmaWVkTmFtZSwgbGFuZ1RhZywgKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9t
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGJU
YWcsIChudWxsQXRvbSwgImIiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB1VGFnLCAobnVsbEF0b20sICJ1IiwgbnVsbEF0b20p
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgaVRh
ZywgKG51bGxBdG9tLCAiaSIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHJ1YnlUYWcsIChudWxsQXRvbSwgInJ1YnkiLCBudWxs
QXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1l
LCBydFRhZywgKG51bGxBdG9tLCAicnQiLCBudWxsQXRvbSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxRdWFsaWZpZWROYW1lPiBjVGFnKG51bGxBdG9tLCAiYyIsIG51bGxBdG9tKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gdlRhZyhudWxsQXRvbSwgInYi
LCBudWxsQXRvbSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IGxh
bmdUYWcobnVsbEF0b20sICJsYW5nIiwgbnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxRdWFsaWZpZWROYW1lPiBiVGFnKG51bGxBdG9tLCAiYiIsIG51bGxBdG9tKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gdVRhZyhudWxsQXRvbSwgInUiLCBu
dWxsQXRvbSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IGlUYWco
bnVsbEF0b20sICJpIiwgbnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFs
aWZpZWROYW1lPiBydWJ5VGFnKG51bGxBdG9tLCAicnVieSIsIG51bGxBdG9tKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gcnRUYWcobnVsbEF0b20sICJydCIsIG51
bGxBdG9tKTsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBXZWJWVFROb2RlVHlw
ZUNsYXNzOgogICAgICAgICByZXR1cm4gY1RhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRFbGVtZW50LmgKaW5kZXggMzk0MDZkOWFmNzg0ZjQ3MmM0NjkwNjg2ZTNiMmM1NTMwMWI0
N2FmMy4uMmMxMmM0NGQzZjcxYTZkNjI5NjFiZWI5NTU1OTcyNzg1ODU2M2ZiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKQEAgLTU5LDEzICs1OSwxMyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgdm9pY2VBdHRyaWJ1dGVO
YW1lKCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFs
aWZpZWROYW1lLCB2b2ljZUF0dHIsIChudWxsQXRvbSwgInZvaWNlIiwgbnVsbEF0b20pKTsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IHZvaWNlQXR0cihudWxs
QXRvbSwgInZvaWNlIiwgbnVsbEF0b20pOwogICAgICAgICByZXR1cm4gdm9pY2VBdHRyOwogICAg
IH0KICAgICAKICAgICBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgbGFuZ0F0dHJpYnV0ZU5h
bWUoKQogICAgIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxp
ZmllZE5hbWUsIHZvaWNlQXR0ciwgKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKSk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiB2b2ljZUF0dHIobnVsbEF0
b20sICJsYW5nIiwgbnVsbEF0b20pOwogICAgICAgICByZXR1cm4gdm9pY2VBdHRyOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IDIwNjUy
ZTg0MzgyNjE5ZDNhM2ZhMzRiMzgzNTE0OTExODgyMjVmODcuLmZhNTY0MTI5NDQ5MWY3NTQ3MTM4
ZjBmYzM3NjJlZDZlOTlkZTc4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFBhcnNlci5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y29sbGVj
dE1ldGFkYXRhSGVhZGVyKGNvbnN0IFN0cmluZyYgbGluZSkKIHsKICNpZiBFTkFCTEUoV0VCVlRU
X1JFR0lPTlMpCiAgICAgLy8gV2ViVlRUIGhlYWRlciBwYXJzaW5nIChXZWJWVFQgcGFyc2VyIGFs
Z29yaXRobSBzdGVwIDEyKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHJlZ2lvbkhlYWRlck5hbWUsICgiUmVnaW9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IHJlZ2lvbkhlYWRlck5hbWUoIlJlZ2lvbiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gU3RlcCAxMi40IElmIGxpbmUgY29udGFp
bnMgdGhlIGNoYXJhY3RlciAiOiIgKEEgVSswMDNBIENPTE9OKSwgdGhlbiBzZXQgbWV0YWRhdGEn
cwogICAgIC8vIG5hbWUgdG8gdGhlIHN1YnN0cmluZyBvZiBsaW5lIGJlZm9yZSB0aGUgZmlyc3Qg
IjoiIGNoYXJhY3RlciBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCmluZGV4IDMwNWE5OTU0ZGYxYTk3ZjFjMGMwNzFkODRmNzQ5MTBhYTAwZDZm
OGMuLjdkZDc0NjAwZTZmM2Y0ZTgzYTlmZmIwNjE2YTg5ZDRiMzBhOTIzZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNzgsMTAgKzc4
LDEwIEBAIGVudW0gRm9yY2VQc2V1ZG9DbGFzc0ZsYWdzIHsKIAogc3RhdGljIHVuc2lnbmVkIGNv
bXB1dGVQc2V1ZG9DbGFzc01hc2soSW5zcGVjdG9yQXJyYXkqIHBzZXVkb0NsYXNzQXJyYXkpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYWN0aXZlLCAoQVND
SUlMaXRlcmFsKCJhY3RpdmUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGhvdmVyLCAoQVNDSUlMaXRlcmFsKCJob3ZlciIpKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZm9jdXMsIChBU0NJSUxpdGVyYWwoImZvY3Vz
IikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB2aXNpdGVk
LCAoQVNDSUlMaXRlcmFsKCJ2aXNpdGVkIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBhY3RpdmUoQVNDSUlMaXRlcmFsKCJhY3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gaG92ZXIoQVNDSUlMaXRlcmFsKCJob3ZlciIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmb2N1cyhBU0NJSUxpdGVyYWwoImZvY3VzIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZpc2l0ZWQoQVNDSUlMaXRlcmFsKCJ2
aXNpdGVkIikpOwogICAgIGlmICghcHNldWRvQ2xhc3NBcnJheSB8fCAhcHNldWRvQ2xhc3NBcnJh
eS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBQc2V1ZG9DbGFzc05vbmU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmlu
ZGV4IDdmZDYyOTFjOTEwN2YzOGViNDEzYTYxOTFhNzY3NzBiNTczY2UyMzcuLmE0YWNhM2NmYzc5
YzhjNGMzODc3MmNmNGIwZjEyMjVhOTJmNmYxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtMzI5LDEwICszMjks
MTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0
KEluc3BlY3Rvck9iamVjdCoga2V5KQogICAgIGlmICgha2V5LT5nZXRTdHJpbmcoInR5cGUiLCAm
dHlwZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgbnVtYmVyLCAoQVNDSUlMaXRlcmFsKCJudW1iZXIiKSkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHN0cmluZywgKEFTQ0lJ
TGl0ZXJhbCgic3RyaW5nIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBkYXRlLCAoQVNDSUlMaXRlcmFsKCJkYXRlIikpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhcnJheSwgKEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG51bWJlcihBU0NJSUxpdGVyYWwo
Im51bWJlciIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzdHJpbmcoQVND
SUlMaXRlcmFsKCJzdHJpbmciKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
ZGF0ZShBU0NJSUxpdGVyYWwoImRhdGUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gYXJyYXkoQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKIAogICAgIGlmICh0eXBlID09IG51
bWJlcikgewogICAgICAgICBkb3VibGUgbnVtYmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0NWJmMGVlZTg0NmY3NzA5ZWQ0MmUy
NzRmZDExN2Y5NjQ4MjQxOGRlLi4yNWQ1YzU1ZjkyMzllZWU2NGZmNDNhYjcwOGI5NjczNGIyNjY0
MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcApAQCAtMjQ3LDggKzI0Nyw4IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJj
ZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAvL3N0YXRp
YwogU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6c291cmNlTWFwVVJMRm9yUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNv
dXJjZU1hcCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
c291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFw
IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVh
ZGVyKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVkKEFTQ0lJTGl0ZXJhbCgiWC1T
b3VyY2VNYXAiKSk7CiAKICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQogICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAKaW5kZXggNzY4ODEwM2Q2MTExMTg0ZTE0YTMwOWJmYzljYTdlMWI2YmNmMzVhYy4u
MzAxNWE1OTBkNzI3YzcxYWI2N2MwNjgyMzhjYzgzZmE0NzM5NjY5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMzQ4LDcgKzM0
OCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6Q1NTOjpDU1NDb21wdXRlCiBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQ
cm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCBi
b29sIG92ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBBU1NFUlQobV9wYXJlbnRTdHlsZVNoZWV0KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBib2d1c1Byb3BlcnR5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiLXdlYmtp
dC1ib2d1ei1wcm9wZXJ0ZWUiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGJvZ3VzUHJvcGVydHlOYW1lKEFTQ0lJTGl0ZXJhbCgiLXdlYmtpdC1ib2d1ei1wcm9wZXJ0ZWUi
KSk7CiAKICAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5
KCkpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpAQCAtNjg2LDcgKzY4Niw3IEBAIFZl
Y3RvcjxTdHJpbmc+IEluc3BlY3RvclN0eWxlOjpsb25naGFuZFByb3BlcnRpZXMoY29uc3QgU3Ry
aW5nJiBzaG9ydGhhbmRQcm9wZXJ0CiAKIE5ld0xpbmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0b3JT
dHlsZTo6bmV3TGluZUFuZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkZWZhdWx0UHJlZml4LCAoQVNDSUlM
aXRlcmFsKCIgICAgIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkZWZh
dWx0UHJlZml4KEFTQ0lJTGl0ZXJhbCgiICAgICIpKTsKIAogICAgIGlmIChtX2Zvcm1hdEFjcXVp
cmVkKQogICAgICAgICByZXR1cm4gbV9mb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA3NjAyM2UxOWRkMDJhNmZjZjFkMTNiM2I2
NGYwZDE3ZjlmMWNlNTMzLi44M2U0NWFjYjJiZWY4NjQ3YWQxNWI4MjI4NzkwYmNkNTY1MDk2NjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAK
QEAgLTcyLDggKzcyLDggQEAgdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlz
QmVpbmdEZXN0cm95ZWQpCiAKIFN0cmluZyBQYWdlRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJM
Rm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYgc2NyaXB0KQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwo
IlNvdXJjZU1hcCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
Zywgc291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNl
TWFwIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzb3VyY2VNYXBIVFRQ
SGVhZGVyKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVkKEFTQ0lJTGl0ZXJhbCgi
WC1Tb3VyY2VNYXAiKSk7CiAKICAgICBpZiAoIXNjcmlwdC51cmwuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcGFnZUFnZW50LT5jYWNoZWRSZXNvdXJj
ZShtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCksIFVSTChQYXJzZWRVUkxTdHJpbmcsIHNjcmlwdC51
cmwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IDdkOTRmYzg2Zjc2
YThlYzY4NjVhNjcwYjQwOWQ5OWIwNjI2NmYxOTguLjJkNTUyZDdlZmE4NDJkNzlmNzM1YTJlOGZi
NGEyNDAxNjA5MTFjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAt
MjkzLDcgKzI5Myw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKICAgICAgICAgbV9oYXNQZW5kaW5nRXJyb3JFdmVudCA9IHRydWU7
CiAgICAgICAgIGVycm9yRXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbih0aGlzKTsKIAot
ICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIGltYWdlIGxvYWQgZGVuaWVkIGJ5IENy
b3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIkNyb3Nz
LW9yaWdpbiBpbWFnZSBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIikpOwogICAgICAgICBlbGVtZW50KCkuZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29s
ZU1lc3NhZ2UpOwogCiAgICAgICAgIEFTU0VSVCghbV9oYXNQZW5kaW5nTG9hZEV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggNGIwZjY1MWYyZDcw
MWQwZTUxYjZiN2Q3ZWVhZWI5YmQ0ZDNlYTQwYy4uNGJlZjBiMzJiOWE3YzU3ODhiYjgyMTBjYTRk
ZDgwZGNkZDRjNmZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6ZGVwcmVjYXRlZERp
ZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyYwogCiB2b2lkIFRl
eHRUcmFja0xvYWRlcjo6Y29yc1BvbGljeVByZXZlbnRlZExvYWQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRl
cmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0IHRy
YWNrIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4i
KSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwogICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgIG1f
c3RhdGUgPSBGYWlsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDM4OWU1MzExMjViNjVlNzhiZGZlYmIwYmJm
NjBkMWY0MGI5MGIzZmUuLjJmZjE0MTU4MmFlNmU4Y2VmZmEwMjhiMDU0MDUzNjU3ZmU0YjI0NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkgY29uc3QKICAgICBpZiAoIW1faW5pdGlh
dG9yTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX2luaXRpYXRvck5hbWU7CiAKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFt
ZSwgKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBkZWZhdWx0TmFtZSgicmVzb3Vy
Y2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVm
YXVsdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwCmluZGV4IDkwNzFlZWZkZWNmOGNhYWE0N2RjNDg1MWQ1OTBiOTE4Y2YyNzFhMzUuLmUzYjVi
Zjk3NmU4ZjY3OWIyYjRkN2FhYzM1ZGVkYWI3NGY1OTNjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtNzMyLDcgKzczMiw3IEBAIHZvaWQgTWVt
b3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdp
bikKIHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5T
ZXQmIG9yaWdpbnMpCiB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaHR0cFN0cmluZygiaHR0cCIpOwog
I2VuZGlmCiAgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsK
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUt
PmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5k
ZXggNjdkYzBkOWI0YjIzNDE4MjE3MTQ2MTg3N2ZlZDcwYmIyYTlkNWRjMi4uMDFjYWRiODVlZDM4
MDNkYzRkNWRmZmE3MTJhMGQxYzU0NGJiYTZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC04ODYsNyArODg2LDcgQEAgU3RyaW5nIEljb25EYXRh
YmFzZTo6ZGF0YWJhc2VQYXRoKCkgY29uc3QKIAogU3RyaW5nIEljb25EYXRhYmFzZTo6ZGVmYXVs
dERhdGFiYXNlRmlsZW5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGRlZmF1bHREYXRhYmFzZUZpbGVuYW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJwYWdl
SWNvbnMuZGIiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRlZmF1bHRE
YXRhYmFzZUZpbGVuYW1lKEFTQ0lJTGl0ZXJhbCgiV2VicGFnZUljb25zLmRiIikpOwogICAgIHJl
dHVybiBkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZS5pc29sYXRlZENvcHkoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZmI4MDE2
YmJiZGZlZDg5MmI5NzFmMjdmN2IwN2UyMmRlOGNhNzVkNi4uMWE5YTcyMWE3OGQ3NzEyMGNhYTc5
NGMzMWZmMWU1YmM2ZDgwYmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjpzZXRDYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZShjb25zdCBTdHJpbmcmIG92
ZXJyaWQKIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dXBkYXRlQ2FwdGlvblN0eWxlU2hl
ZXRPdmVyaWRlKCkKIHsKICAgICAvLyBJZGVudGlmeSBvdXIgb3ZlcnJpZGUgc3R5bGUgc2hlZXQg
d2l0aCBhIHVuaXF1ZSBVUkwgLSBhIG5ldyBzY2hlbWUgYW5kIGEgVVVJRC4KLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMLCBjYXB0aW9uc1N0eWxlU2hlZXRVUkwsIChQYXJz
ZWRVUkxTdHJpbmcsICJ1c2VyLWNhcHRpb25zLW92ZXJyaWRlOjAxRjZBRjEyLUMzQjAtNEY3MC1B
RjVFLUEzRTAwMjM0REMyMyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMPiBjYXB0
aW9uc1N0eWxlU2hlZXRVUkwoUGFyc2VkVVJMU3RyaW5nLCAidXNlci1jYXB0aW9ucy1vdmVycmlk
ZTowMUY2QUYxMi1DM0IwLTRGNzAtQUY1RS1BM0UwMDIzNERDMjMiKTsKIAogICAgIGF1dG8mIHBh
Z2VzID0gbV9wYWdlR3JvdXAucGFnZXMoKTsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlcykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGLmNwcAppbmRleCBlZmUyZTU4M2FkMTgwNWM4ZjY2YTU3Njc0MjA5YjkxNTUwYmUxMDhi
Li44ZTRiZjI5NTQ2NDBhMDlkMDc1ZmIzYjI2NjdmMjg0NGUxMDNhYzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApA
QCAtMjc2LDcgKzI3Niw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
Y2FwdGlvbnNCYWNrZ3JvdW5kQ1NTKCkgY29uc3QKIHsKICAgICAvLyBUaGlzIGRlZmF1bHQgdmFs
dWUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgb25lIHNwZWNpZmllZCBpbiBtZWRpYUNvbnRyb2xz
LmNzcyBmb3IgLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMKICAgICAvLyBhbmQg
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzLgotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDb2xvciwgZGVmYXVsdEJhY2tncm91bmRDb2xvciwgKENvbG9yKDAs
IDAsIDAsIDAuOCAqIDI1NSkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGRl
ZmF1bHRCYWNrZ3JvdW5kQ29sb3IoQ29sb3IoMCwgMCwgMCwgMC44ICogMjU1KSk7CiAKICAgICBN
QUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3IgYmVoYXZpb3I7CiAKQEAgLTM3OSwxMCArMzc5LDEw
IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNT
UyhDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDCiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNTUygpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlUmFpc2VkLCAoIiAt
LjA1ZW0gLS4wNWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZURlcHJl
c3NlZCwgKCIgLjA1ZW0gLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0
eWxlRHJvcFNoYWRvdywgKCIgLjA3NWVtIC4wNzVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBlZGdlU3R5bGVVbmlmb3JtLCAoIiAuMDNlbSAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZWRnZVN0
eWxlUmFpc2VkKCIgLS4wNWVtIC0uMDVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGVkZ2VTdHlsZURl
cHJlc3NlZCgiIC4wNWVtIC4wNWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZWRnZVN0eWxlRHJvcFNo
YWRvdygiIC4wNzVlbSAuMDc1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBlZGdlU3R5bGVVbmlmb3Jt
KCIgLjAzZW0gIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBib29sIHVu
dXNlZDsKICAgICBDb2xvciBjb2xvciA9IGNhcHRpb25zVGV4dENvbG9yKHVudXNlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggZjBhOWNl
YTFjN2VkNGQ3ZGI3MDFjNTliODA4MTJkZjNjYzBiODMyNS4uZDIwZWI3Y2JjZTQ0MDU4YjMzNWQ0
YjlhODlmYTdlODhjZjFiNGZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcApAQCAtMTA2Myw3ICsxMDYzLDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVM
aXN0OjpjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlvbihTb3VyY2VMaXN0RGlyZWN0aXZlKiBk
aXJlY3QKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0phdmFTY3JpcHRVUkxzKGNvbnN0
IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGlu
ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVz
KSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNv
bnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgSmF2YVNjcmlw
dCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2Ny
aXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7CiAgICAgaWYgKHJlcG9ydGluZ1N0YXR1cyA9PSBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQpIHsKICAgICAgICAgcmV0dXJuIChjaGVja0lu
bGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0
KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHRydWUpCiAgICAg
ICAgICAgICAgICAgJiYgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNl
LmdldCgpLCBTdHJpbmcoKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5l
KSk7CkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2
YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6OgogCiBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBldmVudCBoYW5k
bGVyIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
Y29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2
ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIGlmIChyZXBvcnRpbmdTdGF0dXMgPT0g
Q29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0KSB7CiAgICAgICAgIHJldHVybiAoY2hl
Y2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3Jj
LmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB0cnVlKQog
ICAgICAgICAgICAgICAgICYmIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHRO
b25jZS5nZXQoKSwgU3RyaW5nKCksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0
TGluZSkpOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxv
d0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdAogCiBi
b29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29u
dGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNl
IGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0
aXZlOiAiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNz
YWdlKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVz
ZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVj
dGl2ZTogIikpOwogICAgIHJldHVybiByZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5
UG9saWN5OjpTZW5kUmVwb3J0ID8KICAgICAgICAgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRp
b24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2Us
IGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB0cnVlKSA6CiAgICAgICAgIGNoZWNrSW5saW5lKG9w
ZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpOwpAQCAtMTA5NSw3ICsxMDk1LDcg
QEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVNjcmlwdChjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3IKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxv
d0lubGluZVN0eWxlKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0
dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRv
IGFwcGx5IGlubGluZSBzdHlsZSBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBh
cHBseSBpbmxpbmUgc3R5bGUgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIHJldHVybiByZXBvcnRpbmdT
dGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0ID8KICAgICAgICAgY2hl
Y2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMu
Z2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIGZhbHNlKSA6
CiAgICAgICAgIGNoZWNrSW5saW5lKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3N0eWxlU3JjLmdldCgp
KSk7CkBAIC0xMTAzLDcgKzExMDMsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZAogCiBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBldmFsdWF0ZSBzY3JpcHQgYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2
ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2Fn
ZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXZhbHVhdGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlv
bGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIp
KTsKICAgICByZXR1cm4gcmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
U2VuZFJlcG9ydCA/CiAgICAgICAgIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRp
dmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgU3RyaW5nKCks
IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgc3RhdGUpIDoKICAgICAgICAgY2hl
Y2tFdmFsKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpOwpAQCAtMTExMSw3
ICsxMTExLDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlIKIAogYm9vbCBDU1BEaXJlY3RpdmVM
aXN0OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYg
Y29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3Qg
VVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBz
Y3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQg
YmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5
IGRpcmVjdGl2ZTogIikpOwogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgpLCBub25jZSwg
Y29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKICAgICByZXR1cm4gY2hl
Y2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgpLCBub25jZSwgIlJl
ZnVzZWQgdG8gbG9hZCAnIiArIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSAr
ICInIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICIsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKQEAgLTE3NzgsMTIg
KzE3NzgsMTIgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihj
b25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFMKIAogdm9pZCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxv
dywgKEFTQ0lJTGl0ZXJhbCgiYWxsb3ciKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIG9wdGlvbnMsIChBU0NJSUxpdGVyYWwoIm9wdGlvbnMiKSkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHBvbGljeVVSSSwgKEFTQ0lJ
TGl0ZXJhbCgicG9saWN5LXVyaSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgYWxsb3dNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJUaGUgJ2FsbG93JyBkaXJl
Y3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAnZGVmYXVsdC1zcmMnLiBQbGVhc2UgdXNlIHRo
YXQgZGlyZWN0aXZlIGluc3RlYWQsIGFzICdhbGxvdycgaGFzIG5vIGVmZmVjdC4iKSkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wdGlvbnNNZXNzYWdlLCAo
QVNDSUlMaXRlcmFsKCJUaGUgJ29wdGlvbnMnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3
aXRoICd1bnNhZmUtaW5saW5lJyBhbmQgJ3Vuc2FmZS1ldmFsJyBzb3VyY2UgZXhwcmVzc2lvbnMg
Zm9yIHRoZSAnc2NyaXB0LXNyYycgYW5kICdzdHlsZS1zcmMnIGRpcmVjdGl2ZXMuIFBsZWFzZSB1
c2UgdGhvc2UgZGlyZWN0aXZlcyBpbnN0ZWFkLCBhcyAnb3B0aW9ucycgaGFzIG5vIGVmZmVjdC4i
KSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHBvbGljeVVS
SU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAncG9saWN5LXVyaScgZGlyZWN0aXZlIGhhcyBi
ZWVuIHJlbW92ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbi4gUGxlYXNlIHNwZWNpZnkgYSBjb21w
bGV0ZSBwb2xpY3kgdmlhIHRoZSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBoZWFkZXIuIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhbGxvdyhBU0NJSUxpdGVyYWwoImFs
bG93IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG9wdGlvbnMoQVNDSUlM
aXRlcmFsKCJvcHRpb25zIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBv
bGljeVVSSShBU0NJSUxpdGVyYWwoInBvbGljeS11cmkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gYWxsb3dNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiVGhlICdhbGxvdycgZGly
ZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJ2RlZmF1bHQtc3JjJy4gUGxlYXNlIHVzZSB0
aGF0IGRpcmVjdGl2ZSBpbnN0ZWFkLCBhcyAnYWxsb3cnIGhhcyBubyBlZmZlY3QuIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG9wdGlvbnNNZXNzYWdlKEFTQ0lJTGl0ZXJh
bCgiVGhlICdvcHRpb25zJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAndW5zYWZl
LWlubGluZScgYW5kICd1bnNhZmUtZXZhbCcgc291cmNlIGV4cHJlc3Npb25zIGZvciB0aGUgJ3Nj
cmlwdC1zcmMnIGFuZCAnc3R5bGUtc3JjJyBkaXJlY3RpdmVzLiBQbGVhc2UgdXNlIHRob3NlIGRp
cmVjdGl2ZXMgaW5zdGVhZCwgYXMgJ29wdGlvbnMnIGhhcyBubyBlZmZlY3QuIikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBvbGljeVVSSU1lc3NhZ2UoQVNDSUlMaXRlcmFs
KCJUaGUgJ3BvbGljeS11cmknIGRpcmVjdGl2ZSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNw
ZWNpZmljYXRpb24uIFBsZWFzZSBzcGVjaWZ5IGEgY29tcGxldGUgcG9saWN5IHZpYSB0aGUgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgaGVhZGVyLiIpKTsKIAogICAgIFN0cmluZyBtZXNzYWdlID0g
bWFrZVN0cmluZygiVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2
ZSAnIiwgbmFtZSwgIicuXG4iKTsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgYWxs
b3cpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDdmMDdiYWUzNjQyMzkxZGFjMWFj
OThmMGY5ZWY4NDljNTAzMmUxYzUuLjFkZTEyN2E2ZGU4N2RhNWQ1MWI0YmI4MjlhMzFjYWNiZjY3
NWFiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MSwxMyArMTgxLDEzIEBA
IHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gRE9NV2luZG93U2V0OwogCiBzdGF0
aWMgRE9NV2luZG93U2V0JiB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRE9NV2luZG93U2V0LCB3aW5kb3dzV2l0
aFVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERP
TVdpbmRvd1NldD4gd2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycygpOwogICAgIHJldHVy
biB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzOwogfQogCiBzdGF0aWMgRE9NV2luZG93
U2V0JiB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRE9NV2luZG93U2V0LCB3aW5kb3dzV2l0aEJlZm9y
ZVVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERP
TVdpbmRvd1NldD4gd2luZG93c1dpdGhCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycygpOwogICAg
IHJldHVybiB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMTUzNmYxYTlhOWZhMjEzMzI2MmMzNjNl
MjZhZTg4NzkyYmRlZTA0Mi4uNDcyYmM4ODllMjExODJmOTQ4ZmRiN2E2N2RiZGU0ZThiY2M3ZjVj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzk1LDcgKzM5NSw3IEBA
IEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
IERyYWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChEcmFnU3RhdGUsIHN0YXRlLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPERyYWdTdGF0ZT4gc3RhdGUoKTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAj
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTMwNDAsMTAgKzMwNDAsMTAgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5p
dGlhbEtleUV2ZW50KQogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JL
ZXkoY29uc3QgQXRvbWljU3RyaW5nJiBrZXlJZGVudGlmaWVyKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIERvd24sICgiRG93biIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBVcCwgKCJVcCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBMZWZ0LCAoIkxlZnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgUmln
aHQsICgiUmlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gRG93bigiRG93biIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IFVwKCJVcCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IExlZnQoIkxlZnQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIEZvY3VzRGlyZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0
aW9uTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggZWQ5OWNm
ZjdmMDY4YTM0NDMzMGQ3OGY2MDhiYWQwMzk0NTgxOWMxMC4uNjM5NGJjMWRiZTFiMjZhNzg5ODcw
OWU5MTBhMGEwNWIyMDhkMWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3Bw
CkBAIC05NCw3ICs5NCw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNvbnN0
CiAgICAgaWYgKCFTdHJpbmcoV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0pLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNOwogICAgIHN0cnVjdCB1
dHNuYW1lIG9zbmFtZTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9zbmFtZS5zeXNu
YW1lKSArIFN0cmluZygiICIpICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IGVtcHR5U3RyaW5n
KCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwbGF0Zm9ybU5hbWUodW5h
bWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25hbWUuc3lzbmFtZSkgKyBTdHJpbmcoIiAiKSAr
IFN0cmluZyhvc25hbWUubWFjaGluZSkgOiBlbXB0eVN0cmluZygpKTsKICAgICByZXR1cm4gcGxh
dGZvcm1OYW1lOwogI2Vsc2UKICAgICByZXR1cm4gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAppbmRleCBmNmNj
YzE0OTZkMmRhMjI1NGI3NmY1YTRlOTRlNzkxNWM2NjJlOTU2Li41MzdkYzQ1NWRmZTdhODI4ZmU5
Y2U2NjQ2MmFkZjZhZTY4ZjY2MTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VWaXNpYmlsaXR5U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2li
aWxpdHlTdGF0ZS5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBT
dHJpbmcgcGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRl
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZp
c2libGUsIChBU0NJSUxpdGVyYWwoInZpc2libGUiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKEFTQ0lJTGl0ZXJhbCgiaGlkZGVu
IikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBw
cmVyZW5kZXIsIChBU0NJSUxpdGVyYWwoInByZXJlbmRlciIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdmlzaWJsZShBU0NJSUxpdGVyYWwoInZpc2libGUiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gaGlkZGVuKEFTQ0lJTGl0
ZXJhbCgiaGlkZGVuIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IHByZXJlbmRlcihBU0NJSUxpdGVyYWwoInByZXJlbmRlciIpKTsKIAogICAgIHN3aXRjaCAoc3Rh
dGUpIHsKICAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGUwNzQzNGMyM2M2OGM1
NjU0MmYwMDEyN2Y1ZDljMzVlYTBlNDBlNzEuLjQxNzc2NWVhY2IxMzQ4ZWU2MWE1ZGZjM2Q3N2Y5
YTVlZWUyYTc0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRp
bWluZy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIHsKIHR5cGVkZWYgSGFzaE1hcDxT
dHJpbmcsIE5hdmlnYXRpb25UaW1pbmdGdW5jdGlvbj4gUmVzdHJpY3RlZEtleU1hcDsKIHN0YXRp
YyBSZXN0cmljdGVkS2V5TWFwIHJlc3RyaWN0ZWRLZXlNYXAoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChSZXN0cmljdGVkS2V5TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVzdHJpY3RlZEtleU1hcD4gbWFwKCk7CiAgICAgaWYgKG1hcC5p
c0VtcHR5KCkpIHsKICAgICAgICAgbWFwLmFkZCgibmF2aWdhdGlvblN0YXJ0IiwgJlBlcmZvcm1h
bmNlVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQpOwogICAgICAgICBtYXAuYWRkKCJ1bmxvYWRFdmVu
dFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKaW5kZXggNzBkNjlhMDNhMGY5MTk3OWI4OTkwY2M2
YjJjZjE1YzQ5NjliYzYzOS4uMzM5NjYyNjZkNTFkNWU3YWZjMWM0MjIwOGVmZWQ5NzIxNGEyMzgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPE9yaWdpbkFjY2Vzc1do
aXRlTGlzdD4+IE9yaWdpbkFjY2Vzc01hcDsKIAogc3RhdGljIE9yaWdpbkFjY2Vzc01hcCYgb3Jp
Z2luQWNjZXNzTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoT3Jp
Z2luQWNjZXNzTWFwLCBvcmlnaW5BY2Nlc3NNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8T3JpZ2luQWNjZXNzTWFwPiBvcmlnaW5BY2Nlc3NNYXAoKTsKICAgICByZXR1cm4gb3Jp
Z2luQWNjZXNzTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJD
b250ZW50VVJMUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHAKaW5kZXggMWQ2NzRiOWI4ZmIwY2YzZDczZGY1NWFjODcxNmM2OWU0YzNlNzY0
ZC4uMGQ5NDg3NGFhYjY2OGY2ZDFlZDhkM2I4MDA0Y2YyOTI5OWIzZWM3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcApAQCAtNjQsNyArNjQsNyBA
QCBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPgogCiBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6
cGFyc2UoY29uc3QgU3RyaW5nJiBwYXR0ZXJuKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHNjaGVtZVNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgi
Oi8vIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBzY2hlbWVT
ZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCI6Ly8iKSk7CiAKICAgICBzaXplX3Qgc2NoZW1lRW5kUG9z
ID0gcGF0dGVybi5maW5kKHNjaGVtZVNlcGFyYXRvcik7CiAgICAgaWYgKHNjaGVtZUVuZFBvcyA9
PSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA1ZTZlZjJhZDc3NzAwNDdiODViY2YxNWExNzBk
NzZjZDY5ZjUzYTkzLi45MjkzN2Q2M2M5MTIyZjhiYTNkOWNiYzBlOTdhNDAyZTQ5MDFjNjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlB
bmltYXRpb24uY3BwCkBAIC01ODQsMTEgKzU4NCwxMSBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBz
aGFkb3dMaXN0TGVuZ3RoKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKIAogc3RhdGljIGlubGlu
ZSBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3dGb3JCbGVuZGluZyhjb25zdCBTaGFkb3dEYXRhKiBz
cmNTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIG90aGVyU2hhZG93KQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0U2hhZG93RGF0YSwgKElu
dFBvaW50KCksIDAsIDAsIE5vcm1hbCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRT
aGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIGZhbHNlLCBDb2xvcjo6dHJhbnNw
YXJlbnQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdFNo
YWRvd0RhdGEoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFy
ZW50KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdEluc2V0
U2hhZG93RGF0YShJbnRQb2ludCgpLCAwLCAwLCBJbnNldCwgZmFsc2UsIENvbG9yOjp0cmFuc3Bh
cmVudCk7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwg
ZGVmYXVsdFdlYktpdEJveFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRy
dWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRXZWJLaXRCb3hTaGFkb3dEYXRhLCAoSW50UG9p
bnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTaGFkb3dEYXRhPiBkZWZhdWx0V2ViS2l0Qm94U2hhZG93RGF0YShJ
bnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFNoYWRvd0RhdGE+IGRlZmF1bHRJbnNldFdlYktpdEJveFNo
YWRvd0RhdGEoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVu
dCk7CiAKICAgICBpZiAoc3JjU2hhZG93KQogICAgICAgICByZXR1cm4gc3JjU2hhZG93OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKaW5kZXggZGQ1NWMyODRhYzhkOGM5MjY0NDI3NjdiZTU2Y2FiNzlmZmZhMjIxYi4uYmE2Mzgz
OTQ0NDNlYjk2YWVlMzY4MjI2ZGYyNmQ2NTQ0YTc2ZTIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0yMjYsNyAr
MjI2LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9u
cyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVuZGUKICAgICAgICAgLy8gVG9zcyB0aGUgYW5p
bWF0aW9uIG9yZGVyIG1hcC4KICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNs
ZWFyKCk7CiAKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgbm9uZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBub25lKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIAogICAgICAgICAvLyBOb3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMg
YWN0aXZlIGFuZCBhZGQgYW55IG5ldyBhbmltYXRpb25zLgogICAgICAgICBpZiAodGFyZ2V0U3R5
bGUtPmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKaW5kZXggOTM1
OTNhZDI3ZDlhNmQwM2U3ZGI0MGVkNGM4YzJjOGM5MWRkMGU3Yi4uNjlkZjBlN2ViYWMyZDAyOGIy
NWRlZDNjMDY0NDk0NDgzOWY5YjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCkBA
IC0xODksMjU5ICsxODksMjU5IEBAIFBsYXRmb3JtQ3Vyc29yIEN1cnNvcjo6cGxhdGZvcm1DdXJz
b3IoKSBjb25zdAogCiBjb25zdCBDdXJzb3ImIHBvaW50ZXJDdXJzb3IoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlBvaW50ZXIpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6UG9pbnRlcik7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgY3Jvc3NDdXJzb3IoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNyb3NzKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNyb3NzKTsKICAg
ICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBoYW5kQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpIYW5kKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkhhbmQpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG1vdmVDdXJzb3IoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok1vdmUpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6TW92ZSk7CiAgICAgcmV0dXJu
IGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgdmVydGljYWxUZXh0Q3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpWZXJ0aWNhbFRl
eHQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6VmVydGlj
YWxUZXh0KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjZWxsQ3Vyc29yKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpDZWxsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNl
bGwpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNvbnRleHRNZW51Q3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpDb250ZXh0TWVudSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMo
Q3Vyc29yOjpDb250ZXh0TWVudSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYg
YWxpYXNDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OkFsaWFzKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6OkFsaWFzKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6
b29tSW5DdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6Olpvb21JbikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJz
b3I+IGMoQ3Vyc29yOjpab29tSW4pOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3Im
IHpvb21PdXRDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6Olpvb21PdXQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Q3Vyc29yPiBjKEN1cnNvcjo6Wm9vbU91dCk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgY29weUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6Q29weSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
dXJzb3I+IGMoQ3Vyc29yOjpDb3B5KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiBub25lQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpOb25lKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6Ok5vbmUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHBy
b2dyZXNzQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpQcm9ncmVzcykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
dXJzb3I+IGMoQ3Vyc29yOjpQcm9ncmVzcyk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgbm9Ecm9wQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb0Ryb3ApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9Ecm9wKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiBub3RBbGxvd2VkQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3RBbGxvd2VkKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vdEFsbG93ZWQpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIGlCZWFtQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpJQmVhbSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpJQmVhbSk7CiAgICAgcmV0dXJuIGM7
CiB9CiAKIGNvbnN0IEN1cnNvciYgd2FpdEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2FpdCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpXYWl0KTsKICAgICByZXR1cm4gYzsKIH0K
IAogY29uc3QgQ3Vyc29yJiBoZWxwQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpIZWxwKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkhlbHApOwogICAgIHJldHVybiBjOwogfQogCiBj
b25zdCBDdXJzb3ImIGVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkVhc3RSZXNpemUpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6RWFzdFJlc2l6ZSk7CiAgICAgcmV0
dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhSZXNpemVDdXJzb3IoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUmVz
aXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRo
UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RSZXNp
emVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Ok5vcnRoRWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDdXJzb3I+IGMoQ3Vyc29yOjpOb3J0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQog
CiBjb25zdCBDdXJzb3ImIG5vcnRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXpl
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2Vz
dFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgc291dGhSZXNpemVD
dXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMs
IChDdXJzb3I6OlNvdXRoUmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6OlNvdXRoUmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vy
c29yJiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemUpOwog
ICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNv
cjo6U291dGhXZXN0UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4g
YyhDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgd2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2VzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpXZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsK
IH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFNvdXRoUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFNvdXRo
UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5v
cnRoU291dGhSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RX
ZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7
CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpO
b3J0aEVhc3RTb3V0aFdlc3RSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vy
c29yPiBjKEN1cnNvcjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsK
IH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJzb3IoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5v
cnRoV2VzdFNvdXRoRWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJz
b3I+IGMoQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBjOwog
fQogCiBjb25zdCBDdXJzb3ImIGNvbHVtblJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29sdW1uUmVzaXplKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNvbHVtblJlc2l6
ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgcm93UmVzaXplQ3Vyc29yKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpSb3dSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNv
cjo6Um93UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBtaWRkbGVQ
YW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpNaWRkbGVQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok1pZGRsZVBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQog
ICAgIAogY29uc3QgQ3Vyc29yJiBlYXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFBhbm5pbmcpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6RWFzdFBhbm5pbmcp
OwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aFBhbm5pbmdDdXJz
b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6Ok5vcnRoUGFubmluZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+
IGMoQ3Vyc29yOjpOb3J0aFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3Qg
Q3Vyc29yJiBub3J0aEVhc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoRWFzdFBhbm5p
bmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RQYW5u
aW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwog
fQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0aFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoUGFubmlu
ZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpTb3V0aFBh
bm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0aEVhc3RQ
YW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoRWFzdFBhbm5pbmcpOwogICAgIHJldHVybiBj
OwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0
aFdlc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJz
b3I6OlNvdXRoV2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vy
c29yJiB3ZXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2VzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6V2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIGdyYWJDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkdyYWIpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6R3JhYik7CiAgICAgcmV0dXJuIGM7CiB9
CiAKIGNvbnN0IEN1cnNvciYgZ3JhYmJpbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkdyYWJiaW5nKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkdyYWJiaW5nKTsKICAgICByZXR1
cm4gYzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGMyODkyZTQ1
ZmZkOTY0MzcyNWRjODRhN2NjMGUyNjliZTcwZjA3NmEuLmZiODQxNDA4ZDNlNDZkMmYwNmZmNGUz
NTRmYmIzYTI5NDAyOTBlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xh
bmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBIYXNoTWFwPHZvaWQq
LCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rpb24+IE9ic2VydmVyTWFwOwogc3RhdGljIE9i
c2VydmVyTWFwJiBvYnNlcnZlck1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKE9ic2VydmVyTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
T2JzZXJ2ZXJNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggZTBjYTUzNjZlNzI0YzRiOTZm
OTc2ZmU2N2EwZjAwMjJmNmM5MGMyMi4uNGE1MGY4NjYxZmNjNjRhZTQxOWIwYzE1YmIyZDk2MTI0
NjRjMjUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29r
dXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQogCiAgICAgLy8gVHJ1bmNhdGUgdGhl
IHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBw
S2l0LgogICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVu
dUl0ZW0gPSAyNDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBl
bGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBlbGxpcHNpcygmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKIAogICAgIFN0
cmluZyB0cmltbWVkID0gb3JpZ2luYWwuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgdW5zaWduZWQg
bnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVycyh0cmlt
bWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggYTQwMGRmM2Fl
M2E5MTZmMDY2OGY3NGM3MjVlMTczMzQxZjA0YTE4OC4uNDc2MmFjY2FiYmFiNWFjNmI4NDgyNmQ2
NzE0ZDg3YzU1NzU1YmQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplU3Vw
cG9ydGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogCiBzdGF0aWMgTWVkaWFNSU1FVHlwZU1hcCYgbWVk
aWFNSU1FVHlwZU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1l
ZGlhTUlNRVR5cGVNYXAsIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFNSU1FVHlwZU1hcD4gbWVkaWFNSU1FVHlwZUZvckV4
dGVuc2lvbk1hcCgpOwogCiAgICAgaWYgKCFtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXA7CkBA
IC02NDAsNyArNjQwLDcgQEAgSGFzaFNldDxTdHJpbmc+JiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRV
bnN1cHBvcnRlZFRleHRNSU1FVHlwZXMoKQogCiBjb25zdCBTdHJpbmcmIGRlZmF1bHRNSU1FVHlw
ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
ZGVmYXVsdE1JTUVUeXBlLCAoQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
KSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRlZmF1bHRNSU1F
VHlwZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKTsKICAgICByZXR1
cm4gZGVmYXVsdE1JTUVUeXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAppbmRleCBkNTIwMmRiYzUwNDEzNTY4NzJiY2Q1NWEy
MDEyZjNkYzYwNzMxMTYzLi42ZTU4YmNiNTc5OTQ1NDAyMzEyMGZhOTk4NjlmMzIxMzQzMDI2MWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGll
ZkxvZ2dlcjo6c19sb2dnaW5nRW5hYmxlZCA9IGZhbHNlOwogCiBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXImIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE1lbW9yeVByZXNzdXJlSGFuZGxlciwgc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lbW9yeVByZXNzdXJlSGFuZGxl
cj4gc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAgICAgcmV0dXJuIHN0YXRpY01lbW9y
eVByZXNzdXJlSGFuZGxlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVn
aXN0cnkuY3BwCmluZGV4IDdkYzNiMmI1MDk3NWY3YWY0M2JjMjA5YTIyMzI4MjkzMjBjOGI3NDEu
LmZlMmRmZWQ1MTYwYzQzM2I2NjQyMDVkNDdjYTA0ZWFkZDZiMDFjNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbG9jYWxVUkxTY2hlbWVzKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbG9j
YWxTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+
IGxvY2FsU2NoZW1lcygpOwogCiAgICAgaWYgKGxvY2FsU2NoZW1lcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgbG9jYWxTY2hlbWVzLmFkZCgiZmlsZSIpOwpAQCAtNDYsMTMgKzQ2LDEzIEBAIHN0YXRp
YyBVUkxTY2hlbWVzTWFwJiBsb2NhbFVSTFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01h
cCYgZGlzcGxheUlzb2xhdGVkVVJMU2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGRpc3BsYXlJc29sYXRlZFNjaGVtZXMsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gZGlzcGxheUlzb2xhdGVk
U2NoZW1lcygpOwogICAgIHJldHVybiBkaXNwbGF5SXNvbGF0ZWRTY2hlbWVzOwogfQogCiBzdGF0
aWMgVVJMU2NoZW1lc01hcCYgc2VjdXJlU2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNlY3VyZVNjaGVtZXMsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2VjdXJlU2NoZW1lcygpOwogCiAg
ICAgaWYgKHNlY3VyZVNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNlY3VyZVNjaGVtZXMu
YWRkKCJodHRwcyIpOwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2Vj
dXJlU2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVzV2l0aFVuaXF1ZU9y
aWdpbnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVz
TWFwLCBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCk7CiAKICAgICBp
ZiAoc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmlzRW1wdHkoKSkgewogICAgICAgICBzY2hlbWVz
V2l0aFVuaXF1ZU9yaWdpbnMuYWRkKCJhYm91dCIpOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMg
VVJMU2NoZW1lc01hcCYgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkKIAogc3RhdGljIFVSTFNj
aGVtZXNNYXAmIGVtcHR5RG9jdW1lbnRTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgZW1wdHlEb2N1bWVudFNjaGVtZXMsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gZW1wdHlEb2N1bWVudFNj
aGVtZXMoKTsKIAogICAgIGlmIChlbXB0eURvY3VtZW50U2NoZW1lcy5pc0VtcHR5KCkpCiAgICAg
ICAgIGVtcHR5RG9jdW1lbnRTY2hlbWVzLmFkZCgiYWJvdXQiKTsKQEAgLTk2LDcgKzk2LDcgQEAg
c3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1lc0ZvcmJpZGRlbkZyb21Eb21haW5SZWxheGF0
aW9uKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0
U2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVt
ZXNNYXAsIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcywgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFwPiBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVz
dFNjaGVtZXMoKTsKIAogICAgIGlmIChjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcy5h
ZGQoImJsb2IiKTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgY2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAm
IG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJM
c1NjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4g
bm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMoKTsKICAgICByZXR1cm4gbm90QWxsb3dp
bmdKYXZhc2NyaXB0VVJMc1NjaGVtZXM7CiB9CiAKQEAgLTEzNCwyMCArMTM0LDIwIEBAIGNvbnN0
IFVSTFNjaGVtZXNNYXAmIFNjaGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKQogCiBzdGF0aWMg
VVJMU2NoZW1lc01hcCYgc2NoZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRl
QnJvd3NpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hl
bWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2lu
ZywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFwPiBzY2hlbWVz
QWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpOwogICAgIHJldHVy
biBzY2hlbWVzQWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZzsKIH0K
IAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Q
cml2YXRlQnJvd3NpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChV
UkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dz
aW5nLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IHNjaGVt
ZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoKTsKICAgICByZXR1cm4g
c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZzsKIH0KIAogc3Rh
dGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVkU2NoZW1lcygpCiB7CiAgICAgLy8gRklYTUU6
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTYwCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIENPUlNFbmFibGVkU2NoZW1l
cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFwPiBDT1JTRW5h
YmxlZFNjaGVtZXMoKTsKIAogICAgIGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIENPUlNFbmFibGVkU2NoZW1lcy5hZGQoImh0dHAiKTsKQEAgLTE1OSw3ICsxNTks
NyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ09SU0VuYWJsZWRTY2hlbWVzKCkKIAogc3RhdGlj
IFVSTFNjaGVtZXNNYXAmIENvbnRlbnRTZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVtZXMoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hl
bWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IHNjaGVt
ZXMoKTsKICAgICByZXR1cm4gc2NoZW1lczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYmFyVGhlbWUuY3BwCmluZGV4IDhlZDJkOTU5OTdiNTRjMDM5ZjcwYjQ2YjViYjI0Nzlk
ZTcwY2VmNzAuLmUyMjhjMzU2NTE1MTdmZmI0OGVjYWU2NmJmMzE2ZWJmOWY0ODkwNGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKQEAgLTM0LDggKzM0LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU2Nyb2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjp0
aGVtZSgpCiB7CiAgICAgaWYgKFNldHRpbmdzOjptb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkgewot
ICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNb2Nr
LCBtb2NrVGhlbWUsICgpKTsKLSAgICAgICAgcmV0dXJuICZtb2NrVGhlbWU7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJUaGVtZU1vY2s+IG1vY2tUaGVtZSgpOworICAg
ICAgICByZXR1cm4gJm1vY2tUaGVtZS5nZXQoKTsKICAgICB9CiAgICAgcmV0dXJuIG5hdGl2ZVRo
ZW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAyNjNlNGQ0NmI2NjJjYmY4MzNl
MmU2MmVkYmZiZTkwOWM5MjYyZDlmLi4xMGVjZTZkODU3ZTk1YzU2ZjAwZDM2MzRlOTRlNzVlYjQ1
ZGQ4NzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTE4MDYsNyArMTgwNiw3IEBAIGJv
b2wgcHJvdG9jb2xJc0luSFRUUEZhbWlseShjb25zdCBTdHJpbmcmIHVybCkKIAogY29uc3QgVVJM
JiBibGFua1VSTCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwg
c3RhdGljQmxhbmtVUkwsIChQYXJzZWRVUkxTdHJpbmcsICJhYm91dDpibGFuayIpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMPiBzdGF0aWNCbGFua1VSTChQYXJzZWRVUkxTdHJpbmcs
ICJhYm91dDpibGFuayIpOwogICAgIHJldHVybiBzdGF0aWNCbGFua1VSTDsKIH0KIApAQCAtMTgy
MSw3ICsxODIxLDcgQEAgYm9vbCBpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodW5zaWduZWQgc2hv
cnQgcG9ydCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgdW5zaWduZWQsIENhc2VGb2xkaW5nSGFzaD4g
RGVmYXVsdFBvcnRzTWFwOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChEZWZh
dWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxEZWZhdWx0UG9ydHNNYXA+IGRlZmF1bHRQb3J0cygpOwogICAgIGlmIChkZWZhdWx0UG9ydHMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGRlZmF1bHRQb3J0cy5zZXQoImh0dHAiLCA4MCk7CiAgICAg
ICAgIGRlZmF1bHRQb3J0cy5zZXQoImh0dHBzIiwgNDQzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKaW5kZXggM2I3Y2EzNDVkYTUzYmM0OWU0
M2I1Y2NkMzRjMThhNDU2MGM1MWUyZi4uZTJjYzdiNzg2OTlkOTJiMTI1N2JjOTNjOTQwNjUxOTEx
YTc1NjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1h
dGlvbi5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBib29sIEFuaW1hdGlvbjo6YW5pbWF0aW9uc01h
dGNoKGNvbnN0IEFuaW1hdGlvbiogbywgYm9vbCBtYXRjaFBsYXlTdGF0ZXMpIGNvbnN0CiAKIGNv
bnN0IFN0cmluZyYgQW5pbWF0aW9uOjppbml0aWFsQW5pbWF0aW9uTmFtZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW5pdGlhbFZhbHVlLCAoQVNDSUlM
aXRlcmFsKCJub25lIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpbml0
aWFsVmFsdWUoQVNDSUlMaXRlcmFsKCJub25lIikpOwogICAgIHJldHVybiBpbml0aWFsVmFsdWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3Bw
CmluZGV4IGUyMDIxNDg0YzgzM2IyYmM5YjQxZjY0NjhlNDUzZmI4Zjg3Mzc3ZGQuLjg0YWNmNWQ1
ZTgxM2Y4NTA0ZGQ4YzAxOTYwMGFjNDNhMTZiYmQ1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9TZXNzaW9uLCBz
ZXNzaW9uLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj4gc2Vz
c2lvbigpOwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IDNlNzc0Nzg1YTU4ZGZhM2YwNjk0
MTUwZjNjODMxYjBlODY0ZjdkN2MuLmRhZWE2NzBjODJjMmE4MTAyMmNiMTRjNWJjYWJhNjk5Yzhl
Y2U3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwCkBAIC02OCw3ICs2OCw3IEBAIGNvbnN0IGZsb2F0IFJlc3BvbnNlU2FtcGxlUmF0ZSA9
IDQ0MTAwOwogc3RhdGljIEF1ZGlvQnVzKiBnZXRDb25jYXRlbmF0ZWRJbXB1bHNlUmVzcG9uc2Vz
Rm9yU3ViamVjdChjb25zdCBTdHJpbmcmIHN1YmplY3ROYW1lKQogewogICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIEF1ZGlvQnVzKj4gQXVkaW9CdXNNYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF1ZGlvQnVzTWFwLCBhdWRpb0J1c01hcCwgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdWRpb0J1c01hcD4gYXVkaW9CdXNNYXAoKTsKIAogICAgIEF1ZGlv
QnVzKiBidXM7CiAgICAgQXVkaW9CdXNNYXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0gYXVkaW9CdXNN
YXAuZmluZChzdWJqZWN0TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDFjMGU3YWUzYTc3ZTAwZTZkYWNm
MDUzMzA3ZTk2OGIxOWEyY2ZlN2MuLmRmMjgzYzMzNGI4NTZlNjAxNTIxY2Y1ZTU2NTc3NThjN2Q1
YjhkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiAhUExBVEZPUk0oSU9TKQogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXIsIG1hbmFnZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8TWVkaWFTZXNzaW9uTWFuYWdlcj4gbWFuYWdlcigpOwogICAgIHJldHVybiBtYW5h
Z2VyOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAKaW5kZXggMjUzOTUxOTg1ZGZlMjY1Y2Nl
YjdkMjE0ZGNmYzUzMTQxYTQ3NTc5Ni4uNWI0ZDE0ZTQzNmIzNTA0ZjE0OThkZWI0NWE2NzE4ZGMy
ZjJmZWE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1
ZGlvRGVzdGluYXRpb25JT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcApAQCAtNjIsNyArNjIsNyBAQCBjb25zdCBpbnQg
a1ByZWZlcnJlZEJ1ZmZlclNpemUgPSAyNTY7CiB0eXBlZGVmIEhhc2hTZXQ8QXVkaW9EZXN0aW5h
dGlvbklPUyo+IEF1ZGlvRGVzdGluYXRpb25TZXQ7CiBzdGF0aWMgQXVkaW9EZXN0aW5hdGlvblNl
dCYgYXVkaW9EZXN0aW5hdGlvbnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdWRpb0Rlc3RpbmF0aW9uU2V0LCBhdWRpb0Rlc3RpbmF0aW9uU2V0LCAoKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvRGVzdGluYXRpb25TZXQ+IGF1ZGlvRGVzdGluYXRp
b25TZXQoKTsKICAgICByZXR1cm4gYXVkaW9EZXN0aW5hdGlvblNldDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQppbmRleCBlNWViNzdkYjM4ZjM5N2E3YTBkOTNjMDBjOWI0ZWE1M2ZjMWU3YWMz
Li4zZGJmZTZlZDU2ODEyZWUwYTYzOGFmNTdkYmFlYjE4ZGIwNWRkZjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQpAQCAtMTA4LDcgKzEwOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVk
aWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXJp
T1MsIG1hbmFnZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFTZXNzaW9u
TWFuYWdlcmlPUz4gbWFuYWdlcigpOwogICAgIHJldHVybiBtYW5hZ2VyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCmluZGV4
IGNlZTE0Yjc0N2IyYTVjOTU5YmI3OTVmN2NlNGU1NjM0YWRjNzdjMmEuLmEyZGFkYmRiMDc2NjVk
MzlhYTgyMTAwMWM1OTFmMTA3ZDU0YmRlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIEN1cnNv
ck1hcDo6Q3Vyc29yTWFwKCkKIAogaW50IGdldEVjb3JlQ3Vyc29yKGNvbnN0IFN0cmluZyYgY3Vy
c29yU3RyaW5nKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3JN
YXAsIGN1cnNvclN0cmluZ01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJz
b3JNYXA+IGN1cnNvclN0cmluZ01hcCgpOwogCiAgICAgcmV0dXJuIGN1cnNvclN0cmluZ01hcC5j
dXJzb3IoY3Vyc29yU3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNmE5MzdhOWUwNGVhYzE2ZDRjYzE5YTc2MmNmZjUyM2Y0NGIyMTdhNi4u
OTAxMDVhZDIyZGY5ZWIzYmY3N2E0ZDY0NmMyZDE4YjBiMWFhN2M5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRHbHlwaHNDYWNoZUtleSYgYSwgY29uc3QgRm9udEds
eXBoc0NhY2hlS2V5JiBiKQogCiBzdGF0aWMgRm9udEdseXBoc0NhY2hlJiBmb250R2x5cGhzQ2Fj
aGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250R2x5cGhzQ2Fj
aGUsIGNhY2hlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRHbHlwaHNDYWNo
ZT4gY2FjaGUoKTsKICAgICByZXR1cm4gY2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4IDhhOTNmNWYxNzAwYzIxMGYxNzhm
OTU5MzNlMWY1MDJlYWI0OGJjNGMuLmM5ZGNjNDQ2Mjg5ZDFkMzU0MDQ2NzMzZjNjYzE0MDAwMmYz
YWM1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgR0xDb250ZXh0OjpjbGVhbnVwU2hhcmVkWDEx
RGlzcGxheSgpCiB0eXBlZGVmIFZlY3RvcjxHTENvbnRleHQqPiBBY3RpdmVDb250ZXh0TGlzdDsK
IHN0YXRpYyBBY3RpdmVDb250ZXh0TGlzdCYgYWN0aXZlQ29udGV4dExpc3QoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBY3RpdmVDb250ZXh0TGlzdCwgYWN0aXZlQ29u
dGV4dHMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QWN0aXZlQ29udGV4dExpc3Q+
IGFjdGl2ZUNvbnRleHRzKCk7CiAgICAgcmV0dXJuIGFjdGl2ZUNvbnRleHRzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGE2NDRiNzdhMDRlN2VjOWY2M2NmYjEyZjViMzlmYTQzYWJmYjNmODMuLmI5ZTZiODg5NDk3
ZTZhNTRjMDBkOTJhZDFjNTQ5OGIzZjZkYjg3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFwaGljc0xheWVyKiwg
VmVjdG9yPEZsb2F0UmVjdD4+IFJlcGFpbnRNYXA7CiBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWlu
dFJlY3RNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXBhaW50
TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVwYWludE1hcD4gbWFw
KCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQwOGZmYjFiMDU2NzdlZmQxNzYwMDE3NzNm
ZWJhOGVlOTg1ZjdmMzUuLjkwMGU0NDJlNWZmZTAyNmNjZTUxODMzZTNkZjAyOGE3YmQ5MDRhYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTI0MCwxOSArMjQwLDE5IEBAIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0
ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBvCiAKIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0sICgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiB0ZXh0UGxhaW4oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9taWNTdHJpbmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0ZXh0UGxhaW47CiB9CiAKIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIGNvZGVjcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29kZWNzLCAoImNvZGVjcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiBjb2RlY3MoImNvZGVjcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKaW5kZXggOTE3Y2UwOTM4NzM1OWRk
Njg5M2FiMzhkMDE5OTUwNjI3N2M1MDJlYS4uN2U1Mjk5ZjM2MmQ3ODFlODcwYjE3NWIwOWY2MWQ2
ODI2YWFmZWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hh
ZG93Qmx1ci5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcml2YXRlOgogCiBTY3JhdGNoQnVmZmVy
JiBTY3JhdGNoQnVmZmVyOjpzaGFyZWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTY3JhdGNoQnVmZmVyLCBzY3JhdGNoQnVmZmVyLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFNjcmF0Y2hCdWZmZXI+IHNjcmF0Y2hCdWZmZXIoKTsKICAgICByZXR1cm4g
c2NyYXRjaEJ1ZmZlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggZmQyOTU5MDM3YTE0NWE2
NDY3NDBiOTk3MjI0YzY4MWQ3OWFmOGIyMC4uN2E2MGFjZjkxN2FjZTZjZTIyZTc5ZWEwMmMwNDRh
YTNjYzUwYjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0yNTcsMjEgKzI1NywyMSBAQCBzdGF0
aWMgQ0ZBcnJheVJlZiBtZXRhZGF0YUtleU5hbWVzKCkKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBi
ZXR0ZXIgaWYgQVZDRlRpbWVkTWV0YWRhdGFHcm91cC5oIGV4cG9ydGVkIHRoaXMga2V5Lgogc3Rh
dGljIENGU3RyaW5nUmVmIENNVGltZVJhbmdlU3RhcnRLZXkoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDRlN0cmluZ1JlZiwga2V5LCAoQ0ZTVFIoInN0YXJ0IikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q0ZTdHJpbmdSZWY+IGtleShDRlNUUigic3RhcnQi
KSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBp
ZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhpcyBrZXkuCiBzdGF0aWMgQ0ZT
dHJpbmdSZWYgQ01UaW1lUmFuZ2VEdXJhdGlvbktleSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigiZHVyYXRpb24iKSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRlN0cmluZ1JlZj4ga2V5KENGU1RSKCJkdXJhdGlv
biIpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVy
IGlmIEFWQ0YgZXhwb3J0ZWQgdGhpcyBub3RpZmljYXRpb24gbmFtZS4KIHN0YXRpYyBDRlN0cmlu
Z1JlZiBDQUNGQ29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24oKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDRlN0cmluZ1JlZiwgbmFtZSwgKENGU1RSKCJrQ0FDRkNv
bnRleHROZWVkc0ZsdXNoTm90aWZpY2F0aW9uIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q0ZTdHJpbmdSZWY+IG5hbWUoQ0ZTVFIoImtDQUNGQ29udGV4dE5lZWRzRmx1c2hOb3RpZmlj
YXRpb24iKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmlu
ZGV4IDk4NDhkOTk4ZmEyOGJjZWM3ZGU2ZjgwMTUxYzYwMjdiMTRiN2Q1NGEuLjA4YjVmYzU2Mjky
MjkwMDViNjEyNGUxZTYwODJlZTM3ZmZmZWM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpib29sU3RyaW5nKGJvb2wgdmFs
KQogdHlwZWRlZiBIYXNoTWFwPE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQyo+IFBsYXllclRvUHJpdmF0ZU1hcFR5cGU7CiBzdGF0aWMgUGxheWVyVG9Qcml2
YXRlTWFwVHlwZSYgcGxheWVyVG9Qcml2YXRlTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUGxheWVyVG9Qcml2YXRlTWFwVHlwZSwgbWFwLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFBsYXllclRvUHJpdmF0ZU1hcFR5cGU+IG1hcCgpOwogICAgIHJl
dHVybiBtYXA7CiB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKaW5kZXgg
NGIwMzZjYTQwY2Y4YmRhMDY1NjhkZTBmYTUxYjRmMDMxYzg1YjI2Ny4uNWQ4MjIyZDkwNmVkYjJl
OTc5YWQxODIyOTA0NjM5ZTE2YTQ0NzU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNw
cApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExheWVyQ2hhbmdlc0Zs
dXNoZXImIExheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKExheWVyQ2hhbmdlc0ZsdXNoZXIsIGZsdXNoZXIsICgpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGF5ZXJDaGFuZ2VzRmx1c2hlcj4gZmx1c2hlcigpOwog
ICAgIHJldHVybiBmbHVzaGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCmluZGV4IDgwODgzMGI4Yjg1
N2JkMjg2YjgzZmU4ZDQ0YzQ2YTk0MTcwOTdhMzUuLmFiMDI3OWY0OTM0ZmVhNzM2NzY2OTY0MTIz
N2Y5YTVhNzc2NThkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCkBAIC01MCw3ICs1MCw3IEBAIFN0cmlu
ZyBwcmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IFN0cmluZ01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nTWFwLCBVVElNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
TWFwPiBVVElNYXAoKTsKICAgICBpZiAoVVRJTWFwLmlzRW1wdHkoKSkgewogICAgICAgICBVVElN
YXAuYWRkKCJwdWJsaWMuaHRtbCIsICJodG1sIik7CiAgICAgICAgIFVUSU1hcC5hZGQoInB1Ymxp
Yy5qcGVnIiwgImpwZWciKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggOGQzNDlmNDViODE1YmYxMmE0
MWE4ZDc0Y2M4YzY1NDFiODQzNjUyOS4uNmQyYmZiOGQ5YjZmY2NlNGFjM2NhNWVkNTBhODg2OTE5
MTIxNzhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgUGFzc1JlZlB0cjxT
b3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAo
IlNvdXJjZUFscGhhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNfZWZmZWN0TmFtZSgi
U291cmNlQWxwaGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCBkMDAxOTY5
YTBmYzlkODA2YjgwMzQyYTY0ZjI2MjE0ZDc4ZDVmYTkyLi45OTFlMmM4ZjZiYWQ5NmUwYWUyZTVh
M2YwMzA2MGU4OWRlNzM2Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAgUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVy
KiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFt
ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUdyYXBoaWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21p
Y1N0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VHcmFwaGljIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpG
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZC
dXp6RmFjZS5jcHAKaW5kZXggYjViMzFmYzE5Y2YxNTRmZjliNDllNzQ4Y2YyNTU0YmE5NTM1YjVh
My4uODI0ODBjNjVjNDk3YmUyNjYyNDZiZTM5MzhlYWFkOWFjZTI5N2NiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2UuY3BwCkBAIC03NCw4ICs3NCw4IEBAIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEZhY2VDYWNoZUVudHJ5PiwgV1RGOjpJbnRIYXNoPHVpbnQ2NF90PiwgV1RGOjpVCiAKIHN0
YXRpYyBIYXJmQnV6ekZhY2VDYWNoZSogaGFyZkJ1enpGYWNlQ2FjaGUoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXJmQnV6ekZhY2VDYWNoZSwgc19oYXJmQnV6ekZh
Y2VDYWNoZSwgKCkpOwotICAgIHJldHVybiAmc19oYXJmQnV6ekZhY2VDYWNoZTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFyZkJ1enpGYWNlQ2FjaGU+IHNfaGFyZkJ1enpGYWNlQ2FjaGUo
KTsKKyAgICByZXR1cm4gJnNfaGFyZkJ1enpGYWNlQ2FjaGUuZ2V0KCk7CiB9CiAKIEhhcmZCdXp6
RmFjZTo6SGFyZkJ1enpGYWNlKEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSwgdWludDY0
X3QgdW5pcXVlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDYWNoZU1hYy5tbQppbmRleCA2OTAyMWE1MTI1ZmRmNTk2NDRhYzBkYzk2MzdlMDYx
MDZiMTE2NzFiLi4wZGI5NmRhZWY0NjhiNzEyZjk5ZmVlMDk4NDA1ZTRkYmQ5OTc0NWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVN
YWMubW0KQEAgLTE2Niw3ICsxNjYsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250
Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdAogICAgICAg
ICBpZiAoZmFtaWx5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBz
dGF0aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0geyBuZXcgU3RyaW5nKCJBcmFiaWMiKSwgbmV3
IFN0cmluZygiUGFzaHRvIiksIG5ldyBTdHJpbmcoIlVyZHUiKSB9OwotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQ
cm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGdlZXphU3RyKCJHZWV6YSBQcm8iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgZm9yIChpbnQgaiA9IDA7
IGogPCAzICYmICFzaW1wbGVGb250RGF0YTsgKytqKQogICAgICAgICAgICAgaWYgKGZhbWlseS5j
b250YWlucygqbWF0Y2hXb3Jkc1tqXSwgZmFsc2UpKQogICAgICAgICAgICAgICAgIHNpbXBsZUZv
bnREYXRhID0gZ2V0Q2FjaGVkRm9udERhdGEoZGVzY3JpcHRpb24sIGdlZXphU3RyKTsKQEAgLTE3
Niw3ICsxNzYsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OnNpbWls
YXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdAogCiBQYXNzUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIFNob3VsZFJldGFpbiBzaG91bGRSZXRhaW4p
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGlt
ZXNTdHIsICgiVGltZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdGltZXNTdHIoIlRpbWVzIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAvLyBGSVhNRTogV291
bGQgYmUgZXZlbiBiZXR0ZXIgdG8gc29tZWhvdyBnZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQg
aGVyZS4gIEZvciBub3cgd2UnbGwgcGljawogICAgIC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVz
ZXIgd291bGQgZ2V0IHdpdGhvdXQgY2hhbmdpbmcgYW55IHByZWZzLgpAQCAtMTg4LDcgKzE4OCw3
IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZh
bGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpCiAgICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZl
IGl0LCB3ZSBmYWxsIGJhY2sgb24gTHVjaWRhIEdyYW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8v
IGd1YXJhbnRlZWQgdG8gYmUgdGhlcmUsIGFjY29yZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlz
IGlzIGdvb2QgZW5vdWdoCiAgICAgLy8gdG8gYXZvaWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBsdWNpZGFHcmFuZGVT
dHIsICgiTHVjaWRhIEdyYW5kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBsdWNpZGFHcmFuZGVT
dHIoIkx1Y2lkYSBHcmFuZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBsdWNpZGFHcmFu
ZGVTdHIsIGZhbHNlLCBzaG91bGRSZXRhaW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCmluZGV4IDg0NWM3N2Y3
MmE1OWZkMGMxYjY5N2NhNGM4ZjY5ODhmMzg3YzVkOWYuLjQxNDcyOTk3M2IzMGRjODAzMGVjNzc4
NjlmNzJkYjFmZTQ1YTNmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCkBAIC0zMDksNyArMzA5LDcgQEAgUGFzc1Jl
ZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpmb250RGF0YUZyb21EZXNjcmlwdGlvbkFu
ZExvZ0ZvbnQoY29uc3QgRm8KIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZhbGxiYWNrRm9udE5hbWUsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1l
KCk7CiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IGdldENhY2hlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFsbGJhY2tGb250TmFtZSwgZmFs
c2UsIHNob3VsZFJldGFpbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggY2E2Y2E1Zjg2
ODAyMzk4MTBiNWEyNDIzMTQ4ZDU2NzFmMDE3YTU2OC4uNDUyZmFkOWUwYWQyNThkODc0MmM1YjUy
MjA0ZGIzMDY0Y2YzZDY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBzdHJ1Y3QgRml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNo
VHJhaXRzPEZpeGVkU2l6ZUZvbnREYXRhS2V5PgogICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdCBGaXhlZFNpemVGb250RGF0YUtl
eSYgZW1wdHlWYWx1ZSgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoRml4ZWRTaXplRm9udERhdGFLZXksIGtleSwgKG51bGxBdG9tKSk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGaXhlZFNpemVGb250RGF0YUtleT4ga2V5KG51bGxBdG9tKTsK
ICAgICAgICAgcmV0dXJuIGtleTsKICAgICB9CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKEZpeGVkU2l6ZUZvbnREYXRhS2V5JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKaW5kZXggYWI2M2RlYjY2ZjQ2MzVkNjEwZDZiNzBm
Y2JmZDQyOWQ2Njc2YmE1MC4uYTZiMTk0ZmQ3NWQwOGUzM2RkZDUyYzBkODc4NTI4NmQ3NWQ1YmEz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0y
MTYsNyArMjE2LDcgQEAgZ2Jvb2xlYW4gR2FtZXBhZHNHdGs6OmlzR2FtZXBhZERldmljZShHVWRl
dkRldmljZSogZGV2aWNlKQogCiB2b2lkIHNhbXBsZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRv
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChHYW1lcGFkc0d0aywgZ2Ft
ZXBhZHNHdGssIChpbnRvLT5sZW5ndGgoKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxH
YW1lcGFkc0d0az4gZ2FtZXBhZHNHdGsoaW50by0+bGVuZ3RoKCkpOwogICAgIGdhbWVwYWRzR3Rr
LnVwZGF0ZUdhbWVwYWRMaXN0KGludG8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcAppbmRleCA3YTFjNDRlMTlkODQ0
MjBiZGVmMjJlMTM5N2I0Mzg2NWI3NzExZjg4Li45ZTVmNTFiMzUyZTQ4ZTIwYTkxZDZiNjc3YzNm
ZDA5ZWRkMzg4YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5
QmluZGluZ1RyYW5zbGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9L
ZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKQEAgLTIxMyw4ICsyMTMsOCBAQCB2b2lkIEtleUJpbmRp
bmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50KEdka0V2ZW50S2V5KiBl
dmVudCwgRXZlbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleURvd25Db21tYW5kc01hcCwg
KCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbnRDb25zdENoYXJIYXNo
TWFwLCBrZXlQcmVzc0NvbW1hbmRzTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEludENvbnN0Q2hhckhhc2hNYXA+IGtleURvd25Db21tYW5kc01hcCgpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxJbnRDb25zdENoYXJIYXNoTWFwPiBrZXlQcmVzc0NvbW1hbmRzTWFwKCk7
CiAKICAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwLmlzRW1wdHkoKSkgewogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTKGtleURvd25FbnRyaWVzKTsgaSsrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmlu
ZGV4IDhmMjM4MWEyNGRlNDUyMjhlOThmMmI3YjA4MDM2ZDMxMjg1NmMwYjUuLjYwMDc5ODUxMDg1
MTVjNDIzN2VjMzdlNGI4NTYzMjM0MzZkOGMyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKQEAgLTczLDggKzczLDggQEAgc3RhdGlj
IHZvaWQgaW5pdEdka0F0b21zKCkKIAogUGFzdGVib2FyZEhlbHBlciogUGFzdGVib2FyZEhlbHBl
cjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChQYXN0ZWJvYXJkSGVscGVyLCBkZWZhdWx0SGVscGVyLCAoKSk7Ci0gICAgcmV0
dXJuICZkZWZhdWx0SGVscGVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXN0ZWJvYXJk
SGVscGVyPiBkZWZhdWx0SGVscGVyKCk7CisgICAgcmV0dXJuICZkZWZhdWx0SGVscGVyLmdldCgp
OwogfQogCiBQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkSGVscGVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5k
b3cuY3BwCmluZGV4IGRlMTU0NGY2ZjIyMGM5MzI5ZGRlNmJlZDc4YjU4NDIyMTMxMTUyYjguLjUz
YjY2NjJmMjY3MjVlNWZmNWEwNzg1MGZmNDg2MGI1Y2E3NjA4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hN
YXA8V2luZG93LCBSZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdyo+IFdpbmRvd0hhc2hNYXA7CiBz
dGF0aWMgV2luZG93SGFzaE1hcCYgZ2V0V2luZG93SGFzaE1hcCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd0hhc2hNYXAsIHdpbmRvd0hhc2hNYXAsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2luZG93SGFzaE1hcD4gd2luZG93SGFzaE1hcCgp
OwogICAgIHJldHVybiB3aW5kb3dIYXNoTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IDM2MzBjNDNkZmZkZTU5YzZlYTg0
M2MzNWEzN2U4ZTk0NjExZTRhZTUuLmRhMzQxODRmZmY4OWJiZmVhOWIwM2RlNjc2Zjk1Yzc5ZGM0
ZDM3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0azMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
azMuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIGd0a1N0eWxlQ2hhbmdlZENhbGxi
YWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKikKIAogc3RhdGljIFN0eWxlQ29udGV4dE1hcCYgc3R5
bGVDb250ZXh0TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3R5
bGVDb250ZXh0TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3R5bGVD
b250ZXh0TWFwPiBtYXAoKTsKIAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7
CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGM3MzFhZjQ4OTA1MDBj
ZWFiOGYxY2FiOThkZmRhN2E0MmJkZTA3ZGYuLmVhYTVmN2FkYTc4ZjYwYjFlM2NiZmUzOWEzNzBk
Njk3MWFmZjZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
V2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAog
c3RhdGljIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChQdXJnZVNjcmF0Y2hCdWZmZXJUaW1lciwgcHVyZ2VTY3Jh
dGNoQnVmZmVyVGltZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHVyZ2VTY3Jh
dGNoQnVmZmVyVGltZXI+IHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyKCk7CiAgICAgaWYgKHB1cmdl
U2NyYXRjaEJ1ZmZlclRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHB1cmdlU2NyYXRjaEJ1ZmZl
clRpbWVyLnN0b3AoKTsKICAgICBwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lci5zdGFydE9uZVNob3Qo
Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwCmluZGV4IGY5NmJm
YWY3MTM2NGUyMmQwODI3MmMwZTVhZTVmZmRhNGVmOGU5MDIuLmM5N2U3NDBkZmYwMDZmMTAzODAw
OGViMmIyMjdhODk5NTA1OTZhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9DdXJzb3JJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJz
b3JJT1MuY3BwCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IGNvbnN0IEN1cnNvciYgY3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQ3Vyc29yLCBjdXJzb3IsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQ3Vyc29yPiBjdXJzb3IoKTsKICAgICByZXR1cm4gY3Vyc29yOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxl
ck1lbW9yeUhhbmRsZXJJT1MuY3BwCmluZGV4IDlhNGNmZmNhODdiNjYxNDdlODIwZDBkNDg2OTIx
YjM1ZTNjMWZkZWUuLjBlMTM4MzY3YzY0NDFkNGMwMjAzMDNkODExOGNlMjZmMzQ3OWI5MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9y
eUhhbmRsZXJJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlQ29u
dHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgVGlsZUNv
bnRyb2xsZXJNZW1vcnlIYW5kbGVyOjp0cmltVW5wYXJlbnRlZFRpbGVzVG9UYXJnZXQoaW50IHRh
cmdldCkKIAogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyJiB0aWxlQ29udHJvbGxlck1lbW9y
eUhhbmRsZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUaWxlQ29u
dHJvbGxlck1lbW9yeUhhbmRsZXIsIHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwg
KCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXI+IHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcigpOwogICAgIHJldHVybiBzdGF0
aWNUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudC5tbQppbmRleCA5MDZmOTg4Nzc2M2EzNWIyZDU3OGIwYzgyOTY4MGEwMWFiNjgz
ZmI1Li41MDEwZjFjMDNkZmUxOThjYTVhNmUxNGFlNzFkNmE3Y2Y1Y2Y1YTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRp
YUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC0xMzQsOCArMTM0LDggQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0
IFdURjo6QXRvbWljU3QKICAgICAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWU7CiAKICAg
ICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRpYUNvbnRyb2xzSG9zdCgpKSB7Ci0gICAgICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhaXJwbGF5LCAoQVND
SUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIpKSk7CisgICAg
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhaXJwbGF5KEFTQ0lJTGl0ZXJh
bCgiYWlycGxheSIpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHR2b3V0KEFTQ0lJTGl0ZXJhbCgidHZvdXQiKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IFN0cmluZyB0eXBlID0gbV9tZWRpYUVsZW1lbnQtPm1lZGlhQ29udHJvbHNIb3N0KCktPmV4dGVy
bmFsRGV2aWNlVHlwZSgpOwogICAgICAgICAgICAgaWYgKHR5cGUgPT0gYWlycGxheSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tDb250ZW50T2JzZXJ2YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZh
dGlvbi5jcHAKaW5kZXggMGZiOGFlOTkwMGI4Y2QzNzU5ZWQ1NmQzM2ZkNGI4MWJiN2ZhZjFlNy4u
MjI4NzllNTdiNjc5ZTk5ODliZjg0MzBkNGVkZGJiOGJhZDk2OTIwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5j
cHAKQEAgLTc3LDggKzc3LDggQEAgc3RhdGljIEhhc2hNYXA8dm9pZCAqLCB2b2lkICo+ICogV2Vi
VGhyZWFkR2V0T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkKIHsKICAgICBBU1NFUlQoV2ViVGhy
ZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwogICAgIHR5cGVkZWYgSGFzaE1hcDx2b2lkICosIHZv
aWQgKj4gVm9pZFZvaWRNYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZv
aWRWb2lkTWFwLCBvYnNlcnZlZENvbnRlbnRNb2RpZmllcnMsICgpKTsKLSAgICByZXR1cm4gJm9i
c2VydmVkQ29udGVudE1vZGlmaWVyczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Vm9pZFZv
aWRNYXA+IG9ic2VydmVkQ29udGVudE1vZGlmaWVycygpOworICAgIHJldHVybiAmb2JzZXJ2ZWRD
b250ZW50TW9kaWZpZXJzLmdldCgpOwogfQogCiBpbnQgV2ViVGhyZWFkQ291bnRPZk9ic2VydmVk
Q29udGVudE1vZGlmaWVycyh2b2lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFn
SW1hZ2VNYWMubW0KaW5kZXggOWQwMzAzZDM0YzNhMGMzYWIxZDRkNTAyNWEyYTBiMzY3ZTIzZGQx
Mi4uYzViNTNlYmIwNDZmNzk5ZjQ1NzQ5ZDk4ODA2ZjA5ZmE4MGM2Y2QyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0xNjAsNyArMTYwLDcgQEAg
Y29uc3QgZmxvYXQgRHJhZ0xpbmtVcmxGb250U2l6ZSA9IDEwOwogc3RhdGljIEZvbnQmIGZvbnRG
cm9tTlNGb250KE5TRm9udCAqZm9udCkKIHsKICAgICBzdGF0aWMgTlNGb250ICpjdXJyZW50Rm9u
dDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udCwgY3VycmVudFJlbmRl
cmVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnQ+IGN1cnJlbnRSZW5kZXJl
cigpOwogICAgIAogICAgIGlmIChbZm9udCBpc0VxdWFsOmN1cnJlbnRGb250XSkKICAgICAgICAg
cmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBhY2FhZDAyYWU2YTg0ZTZmZGEwMThiYjU0OWI2
ODI1MGEyZWYyMGMwLi5iNTJiZjMwMjIwNjNjYzc5ZTdjYTk1ZjFhM2YwNTk5MWE1MmJmYmZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1t
CkBAIC0xMTQsOCArMTE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxiYXJUaGVt
ZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNYWMsIHRoZW1lLCAoKSk7Ci0gICAgcmV0dXJu
ICZ0aGVtZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2Nyb2xsYmFyVGhlbWVNYWM+IHRo
ZW1lKCk7CisgICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKIH0KIAogLy8gRklYTUU6IEdldCB0aGVz
ZSBudW1iZXJzIGZyb20gQ29yZVVJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFj
Lm1tCmluZGV4IDU2ZDBhMmIzOWYwMDBiNTZhM2M5OWE2OWI2OTMzOWNkNTBkMjc5OGUuLmQ5NTcy
M2E1OGEzNzJkNjk3ODllMTZlZjFmMWRiZTZjZDY2ZDIxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTEzOCw4ICsxMzgsOCBAQCBlbnVtIHsKIAogVGhlbWUq
IHBsYXRmb3JtVGhlbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChU
aGVtZU1hYywgdGhlbWVNYWMsICgpKTsKLSAgICByZXR1cm4gJnRoZW1lTWFjOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxUaGVtZU1hYz4gdGhlbWVNYWMoKTsKKyAgICByZXR1cm4gJnRoZW1l
TWFjLmdldCgpOwogfQogCiAvLyBIZWxwZXIgZnVuY3Rpb25zIHVzZWQgYnkgYSBidW5jaCBvZiBk
aWZmZXJlbnQgY29udHJvbCBwYXJ0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRl
eCBjZTExNTAxZDc3YjY0YmI0N2UxOGQ0ZjEzZWRiZjFlY2JkNjg3NzRiLi4yZDQ1OGJkNGI5OGQ3
OWQ3MjI0MDIzNjRhOWI1ZGY2N2ZkMDZhNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpjb25zdHJhaW50cygpIGNvbnN0CiBjb25zdCBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlcyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnN0YXRlcygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3NvdXJjZSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsKKyAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzPiBub1N0
YXRlKCk7CiAgICAgICAgIHJldHVybiBub1N0YXRlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCmluZGV4IGNlZGIwMzk3
MzU5MjMwMzFiN2E5OWI3NzY2ZjA5OGM4ZDQ5MDIxNTEuLmFmOWQzOTMzZDgwMzliNWZmMDk0NzFj
N2U0MmZhNzM1Yjc5Yjg0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBNZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lciwgY2VudGVyLCAoKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyPiBjZW50ZXIo
KTsKICAgICByZXR1cm4gY2VudGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
Lm1tCmluZGV4IDdiZjcwMzM3YjRiZWU2ZGY3NTI2ODYyZGY3NzE2ZjI1Yzk0ODM1MjkuLmMzODdm
MTA0ZTg2NmNmM2U4NjkxYzllNGE1YjNiNjMwNjI4YWRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVE
ZXZpY2VNYW5hZ2VyLm1tCkBAIC0xNzYsNyArMTc2LDcgQEAgYm9vbCBBVkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWQ2FwdHVyZURldmljZU1hbmFnZXImIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNoYXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEFWQ2FwdHVyZURldmljZU1hbmFnZXIsIG1hbmFnZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QVZDYXB0dXJlRGV2aWNlTWFuYWdlcj4gbWFuYWdlcigpOwogICAgIHJl
dHVybiBtYW5hZ2VyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAppbmRleCA4
ZDhkOTBkZjE0YzJjZmNhYjJkMGI1N2U4YTlmNWE4NzZlNGM1NGZmLi4yMjNmNTQ0ZmUwZGY1MmE4
ZDRiZDRhMjBjYTIyOWJjNDcxNmQxYzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTWVkaWFTdHJlYW1DZW50
ZXImIE1lZGlhU3RyZWFtQ2VudGVyOjpwbGF0Zm9ybUNlbnRlcigpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFT
dHJlYW1DZW50ZXJNYWMsIGNlbnRlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxN
ZWRpYVN0cmVhbUNlbnRlck1hYz4gY2VudGVyKCk7CiAgICAgcmV0dXJuIGNlbnRlcjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1D
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1D
ZW50ZXIuY3BwCmluZGV4IDQ2ZDc1NTJhODNlNjIxOTYyYzM4ZDlkMzgwMDczODliM2I0MzRiZTcu
LmNjMTBmZWU0ZjI5MTJiMzljYmE0NmRlMzQxY2IyMmM0ZWIyNjgxZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAK
QEAgLTYzLDcgKzYzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1vY2tTb3Vy
Y2U+PiBNb2NrU291cmNlTWFwOwogCiBzdGF0aWMgTW9ja1NvdXJjZU1hcCYgbW9ja1NvdXJjZU1h
cCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1vY2tTb3VyY2VNYXAs
IG1vY2tTb3VyY2VNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja1NvdXJj
ZU1hcD4gbW9ja1NvdXJjZU1hcCgpOwogICAgIHJldHVybiBtb2NrU291cmNlTWFwOwogfQogCkBA
IC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1vY2tTb3VyY2VzKCkKIAog
dm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OnJlZ2lzdGVyTW9ja01lZGlhU3RyZWFtQ2VudGVy
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTW9ja01lZGlhU3RyZWFt
Q2VudGVyLCBjZW50ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja01lZGlh
U3RyZWFtQ2VudGVyPiBjZW50ZXIoKTsKICAgICBzdGF0aWMgYm9vbCByZWdpc3RlcmVkID0gZmFs
c2U7CiAgICAgaWYgKCFyZWdpc3RlcmVkKSB7CiAgICAgICAgIHJlZ2lzdGVyZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0Jv
eC5jcHAKaW5kZXggYWVjMDQ1YzI1N2ZiNzNjZDBkZThkNjVkZmFjZTI0ODYxN2NjYWJlOS4uYTI4
NjY4ZTZhMDk4MDEzMTYxMjcxY2QxODdhZDIwOTRmODUzMTU1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCkBAIC03Niw3
ICs3Niw3IEBAIE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94KEFycmF5QnVmZmVyKiBkYXRhKQog
CiBjb25zdCBTdHJpbmcmIE1vY2tUcmFja0JveDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhaywgKEFTQ0lJTGl0ZXJhbCgidHJhayIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHJhayhBU0NJSUxpdGVyYWwoInRy
YWsiKSk7CiAgICAgcmV0dXJuIHRyYWs7CiB9CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBNb2NrSW5p
dGlhbGl6YXRpb25Cb3g6Ok1vY2tJbml0aWFsaXphdGlvbkJveChBcnJheUJ1ZmZlciogZGF0YSkK
IAogY29uc3QgU3RyaW5nJiBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6OnR5cGUoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaXQsIChBU0NJSUxpdGVyYWwo
ImluaXQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGluaXQoQVNDSUlM
aXRlcmFsKCJpbml0IikpOwogICAgIHJldHVybiBpbml0OwogfQogCkBAIC0xMzMsNyArMTMzLDcg
QEAgTW9ja1NhbXBsZUJveDo6TW9ja1NhbXBsZUJveChBcnJheUJ1ZmZlciogZGF0YSkKIAogY29u
c3QgU3RyaW5nJiBNb2NrU2FtcGxlQm94Ojp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzbXBsLCAoQVNDSUlMaXRlcmFsKCJzbXBsIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzbXBsKEFTQ0lJTGl0ZXJhbCgic21wbCIp
KTsKICAgICByZXR1cm4gc21wbDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCA0MTAwNWQwYWRkYWUyYzNi
ZjRlODllMjIwNGNmNjJhODQ0MDJlMGFhLi42MjNmODc5MzA1YzAxNmMxYjU1MzI1YzlkMmFkZmFl
Zjk3Zjk2YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Ny
ZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNDYsNyArNDYsNyBAQCB0eXBlZGVmIEhhc2hNYXA8
UHJvdGVjdGlvblNwYWNlLCBDcmVkZW50aWFsPiBQcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxN
YXA7CiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwJiBwcm90ZWN0aW9uU3Bh
Y2VUb0NyZWRlbnRpYWxNYXAoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlh
bE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFByb3RlY3Rpb25TcGFj
ZVRvQ3JlZGVudGlhbE1hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApAQCAtNjEsNyAr
NjEsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQcm90ZWN0aW9uU3BhY2U+IFBhdGhUb0Rl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXA7CiBzdGF0aWMgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25T
cGFjZU1hcCYgcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCgpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0
aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXA+IG1hcCgpOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5jcHAKaW5kZXggNmQxYWFiMjBiMmZmMmUzNGJjOTA1NGIwM2RmZWY4ZjIxNjAyNzIy
Mi4uNGFmZDMxODkwMzcyMGIwZjA5NjZkNmEwMWUyY2Y3NDE3NzI2YTNkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTM1MSwxNCAr
MzUxLDE0IEBAIHZvaWQgZmluZENoYXJzZXRJbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSwgdW5zaWduZWQgaW50JiBjaGFyc2V0UG9zLCB1CiAKIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6UmVmbGVjdGVkWFNTRGlzcG9zaXRpb24gcGFyc2VYU1NQcm90ZWN0aW9uSGVhZGVyKGNvbnN0
IFN0cmluZyYgaGVhZGVyLCBTdHJpbmcmIGZhaWx1cmVSZWFzb24sIHVuc2lnbmVkJiBmYWlsdXJl
UG9zaXRpb24sIFN0cmluZyYgcmVwb3J0VVJMKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkVG9nZ2xlLCAoQVNDSUlMaXRl
cmFsKCJleHBlY3RlZCAwIG9yIDEiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkU2VwYXJhdG9yLCAoQVNDSUlMaXRlcmFs
KCJleHBlY3RlZCBzZW1pY29sb24iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkRXF1YWxzLCAoQVNDSUlMaXRlcmFsKCJl
eHBlY3RlZCBlcXVhbHMgc2lnbiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRNb2RlLCAoQVNDSUlMaXRlcmFsKCJpbnZh
bGlkIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFJlcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiaW52
YWxpZCByZXBvcnQgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGljYXRlTW9kZSwgKEFTQ0lJTGl0ZXJhbCgi
ZHVwbGljYXRlIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0LCAoQVNDSUlMaXRl
cmFsKCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWREaXJlY3RpdmUsIChB
U0NJSUxpdGVyYWwoInVucmVjb2duaXplZCBkaXJlY3RpdmUiKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFzb25JbnZhbGlkVG9nZ2xlKEFTQ0lJTGl0ZXJh
bCgiZXhwZWN0ZWQgMCBvciAxIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGZhaWx1cmVSZWFzb25JbnZhbGlkU2VwYXJhdG9yKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgc2Vt
aWNvbG9uIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFz
b25JbnZhbGlkRXF1YWxzKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgZXF1YWxzIHNpZ24iKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFpbHVyZVJlYXNvbkludmFsaWRNb2Rl
KEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCBtb2RlIGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uSW52YWxpZFJlcG9ydChBU0NJSUxpdGVy
YWwoImludmFsaWQgcmVwb3J0IGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uRHVwbGljYXRlTW9kZShBU0NJSUxpdGVyYWwoImR1cGxp
Y2F0ZSBtb2RlIGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0KEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIHJl
cG9ydCBkaXJlY3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFp
bHVyZVJlYXNvbkludmFsaWREaXJlY3RpdmUoQVNDSUlMaXRlcmFsKCJ1bnJlY29nbml6ZWQgZGly
ZWN0aXZlIikpOwogCiAgICAgdW5zaWduZWQgcG9zID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1
Yi5jcHAKaW5kZXggYzdmMGI0Mzk4ZjFhMGZiOWVhYmYzODZkMDkwZDc3YWM0NDhjMzM4OS4uNTI2
ZDhlNTg2MzNkYjcyNWM3NDk3YTZjYmY1MGVkMzJmNDEzMDUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blN0dWIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzCiAKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChOZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIHNlc3Npb24sICgwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vzc2lvbigwKTsKICAgICByZXR1cm4gc2Vzc2lvbjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcAppbmRleCAxZjZlNzNkNDc3MWRkNWE0NDM2OTEwZWVkN2Q0YzhhMjg3MzJlOTgyLi44
NjU2ZDRlOWJhYWQyYWZjNjA1MzAwMjk0YzUxZDg0ZWY4YjI2M2E2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNDgsNyAr
NDgsNyBAQCBzdGF0aWMgQnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAmIGJ1aWx0
aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKAogI2Vsc2UKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogI2VuZGlmCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1
aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXA+IG1hcCgp
OwogICAgIHJldHVybiBtYXA7CiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZywgUmVzb3VyY2VIYW5kbGU6OkJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcj4g
QnVpbHRpblIKIHN0YXRpYyBCdWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1h
cCYgYnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25vdXNMb2FkZXJNYXAoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwLCBtYXAsICgpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25vdXNM
b2FkZXJNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
CmluZGV4IGRlZjAxY2ExMGExMWU5YzA3ZTU0OGVjOTI5MTgwNmIwNmZiZmRjZTQuLmY3OTdhZTg0
OTViMDk5NmZiOTExMTJmMGY1NTk3OWVhMDE2NTY2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApA
QCAtODksNyArODksNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+JiBhbGxvd3NBbnlIVFRQU0Nl
cnRpZmljYXRlSG9zdHMoKQogc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj4mIGNsaWVudENlcnRzKCkKIHsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZXRh
aW5QdHI8Q0ZEYXRhUmVmPj4gQ2VydHNNYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKENlcnRzTWFwLCBjZXJ0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
ZXJ0c01hcD4gY2VydHMoKTsKICAgICByZXR1cm4gY2VydHM7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxl
TWFuYWdlci5jcHAKaW5kZXggY2IyM2NiOWNiN2M1MjlmMjEzZTMyMjM3NTIyMmUzMGJmYzAwZTgz
Yy4uZmJlZDc0MTNlMWQ5YmVkYzBjN2E0NDA0ZTJiOWJkNjBlOGZmYjMxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBzdGF0aWMgY2hhciogY29va2ll
SmFyUGF0aCgpCiB9CiAKIHN0YXRpYyBNdXRleCogc2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xv
Y2tfZGF0YSBkYXRhKSB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4
LCBjb29raWVNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgZG5zTXV0ZXgsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TXV0ZXgsIHNoYXJlTXV0ZXgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+
IGNvb2tpZU11dGV4KCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBkbnNNdXRl
eCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gc2hhcmVNdXRleCgpOwogCiAg
ICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlh
bEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9D
cmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAppbmRleCA4NTEzN2YwNWQyYzQ0OGNkY2NkOGMyZDkz
ZTc5MDA0OTk2NGRhNDdiLi5hZWI2YmE2YmFmNjc5NjVhNzk0ZWNkYTk5NGZjZTUzZDkwNzFiZGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50
aWFsQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIENyZWRlbnRpYWxCYWNraW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNraW5n
U3RvcmUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDcmVkZW50aWFs
QmFja2luZ1N0b3JlLCBiYWNraW5nU3RvcmUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3JlZGVudGlhbEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKCk7CiAgICAgcmV0dXJuIGJh
Y2tpbmdTdG9yZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBkMTA4NTBkNjI1OWRl
MTRmNjBlMzRlYTM4ZWU3ZDQ4ZWM0ZWI2MmYxLi41N2VmOGI3N2Q4ZTNkYzBjODQ4Y2EyNmVjM2Ux
NDAyYzRlYmQ3MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBA
IHN0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygp
CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBIb3N0VExTQ2VydGlmaWNhdGVTZXQ+IENlcnRpZmlj
YXRlc01hcDsKIHN0YXRpYyBDZXJ0aWZpY2F0ZXNNYXAmIGNsaWVudENlcnRpZmljYXRlcygpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENlcnRpZmljYXRlc01hcCwgY2Vy
dGlmaWNhdGVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENlcnRpZmljYXRlc01h
cD4gY2VydGlmaWNhdGVzKCk7CiAgICAgcmV0dXJuIGNlcnRpZmljYXRlczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5k
bGVXaW4uY3BwCmluZGV4IGZmNTJiN2QzOTE2M2Q1ZDlmODQxNDY0MzBiYzNlODU2NjJmZDdkNjUu
Ljk0MWUyZGNmMmM3Zjc2ODA3MjNlODdmYmY4YTgyNDJiNTljZTRkYmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdp
bi5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHVpbnQzMl90IG1hZ2ljTnVtYmVyKCkKIAog
Y29uc3QgU3RyaW5nJiBmaWxlRXh0ZW5zaW9uKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNpb24sIChBU0NJSUxpdGVyYWwoIi5kb3du
bG9hZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZXh0ZW5z
aW9uKEFTQ0lJTGl0ZXJhbCgiLmRvd25sb2FkIikpOwogICAgIHJldHVybiBleHRlbnNpb247CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5n
S2V5ZWRNUlVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJp
bmdLZXllZE1SVUNhY2hlLmgKaW5kZXggOWE1M2NhNjJmMTkyN2FlYjNmMGQyMTg2MjEwZjg4ZmU5
NzgwODM0ZC4uZGRmODViMmM1YzMzMmI0YjIxNzBlMzNiMWFiMDRlNjRkMGMzYzBhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNh
Y2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXll
ZE1SVUNhY2hlLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFQgZ2V0KGNvbnN0IEF0
b21pY1N0cmluZyYga2V5KQogICAgIHsKICAgICAgICAgaWYgKGtleS5pc051bGwoKSkgewotICAg
ICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQsIHZhbHVlRm9yTnVsbCwg
KGNyZWF0ZVZhbHVlRm9yTnVsbEtleSgpKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VD4gdmFsdWVGb3JOdWxsKGNyZWF0ZVZhbHVlRm9yTnVsbEtleSgpKTsKICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvck51bGw7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVs
dC5jcHAKaW5kZXggZDY0OTU0NGJlOGNiYzIyMDk0ODRiOTFiYmM3ZDhlNjc4MmFmOWUyOC4uYjMz
MDdhZmNjZWU3NjRjYjAzYTEzNWIzYmM1MGMyZjAxMDIzYjYzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0Rl
ZmF1bHQuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVVNj
cmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIFNjcmlwdE5hbWVDb2RlTWEKIAog
VVNjcmlwdENvZGUgc2NyaXB0TmFtZVRvQ29kZShjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmlwdE5hbWVDb2RlTWFwLCBz
Y3JpcHROYW1lQ29kZU1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JpcHRO
YW1lQ29kZU1hcD4gc2NyaXB0TmFtZUNvZGVNYXAoKTsKICAgICBpZiAoc2NyaXB0TmFtZUNvZGVN
YXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHNj
cmlwdE5hbWVDb2RlTGlzdCkgLyBzaXplb2YoU2NyaXB0TmFtZUNvZGUpOyArK2kpCiAgICAgICAg
ICAgICBzY3JpcHROYW1lQ29kZU1hcC5zZXQoQVNDSUlMaXRlcmFsKHNjcmlwdE5hbWVDb2RlTGlz
dFtpXS5uYW1lKSwgc2NyaXB0TmFtZUNvZGVMaXN0W2ldLmNvZGUpOwpAQCAtMzg5LDcgKzM4OSw3
IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFVTY3JpcHRDb2RlLCBEZWZhdWx0SGFzaDxTdHJp
bmc+OjpIYXNoLCBMb2NhbGVTY3JpcHRNYXBICiAKIFVTY3JpcHRDb2RlIGxvY2FsZVRvU2NyaXB0
Q29kZUZvckZvbnRTZWxlY3Rpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsZVNjcmlwdE1hcCwgbG9jYWxlU2NyaXB0TWFw
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2FsZVNjcmlwdE1hcD4gbG9jYWxl
U2NyaXB0TWFwKCk7CiAgICAgaWYgKGxvY2FsZVNjcmlwdE1hcC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YobG9jYWxlU2NyaXB0TGlzdCkgLyBzaXpl
b2YoTG9jYWxlU2NyaXB0KTsgKytpKQogICAgICAgICAgICAgbG9jYWxlU2NyaXB0TWFwLnNldChB
U0NJSUxpdGVyYWwobG9jYWxlU2NyaXB0TGlzdFtpXS5sb2NhbGUpLCBsb2NhbGVTY3JpcHRMaXN0
W2ldLnNjcmlwdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dj
aGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcAppbmRleCA3ZjQ1MTk5M2U3YzNi
MzY0YTY4ZGM4ZDU0Y2VlNzgwYjc4ZDNiOWI2Li42YzM1NjQ3NzI3ODYzM2QxNWEyNTk1ODg3MDVj
NjQ4MjJiZTM3ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dj
aGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHAKQEAgLTIzMCw5ICsyMzAs
OSBAQCBpbnQgU2VudGVuY2VCcmVha0l0ZXJhdG9yOjpwcmV2aW91cygpCiAKIFRleHRCcmVha0l0
ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3Ro
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXb3JkQnJlYWtJdGVyYXRv
ciwgaXRlcmF0b3IsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V29yZEJyZWFrSXRl
cmF0b3I+IGl0ZXJhdG9yKCk7CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwot
ICAgIHJldHVybiAmaXRlcmF0b3I7CisgICAgcmV0dXJuICZpdGVyYXRvci5nZXQoKTsKIH0KIAog
c3RhdGljIENoYXJCcmVha0l0ZXJhdG9yKiBub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9y
OwpAQCAtMjg4LDkgKzI4OCw5IEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRC
cmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9y
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNlbnRlbmNlQnJlYWtJdGVyYXRvcj4g
aXRlcmF0b3IoKTsKICAgICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0
dXJuICZpdGVyYXRvcjsKKyAgICByZXR1cm4gJml0ZXJhdG9yLmdldCgpOwogfQogCiBpbnQgdGV4
dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IpCkBAIC0zNDAsOSAr
MzQwLDkgQEAgYm9vbCBpc1dvcmRUZXh0QnJlYWsoVGV4dEJyZWFrSXRlcmF0b3IqKQogCiBUZXh0
QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5n
LCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDaGFy
QnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Q2hhckJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yKCk7CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5n
LCBsZW5ndGgpOwotICAgIHJldHVybiAmaXRlcmF0b3I7CisgICAgcmV0dXJuICZpdGVyYXRvci5n
ZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYWIwMzZhYTBkMTAwZTAxYTQwOWMx
MWM3MWFhMWYwZDc5NGY0NTQwMy4uMzI2NTY2NjNlNTBlZTRkZjA2NzkxOWRjZTI1ZjFiYzI0ZmQx
YWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxl
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4u
Y3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIExDSUQgV0lOQVBJIGNvbnZlcnRMb2NhbGVO
YW1lVG9MQ0lEKExQQ1dTVFIgbmFtZSwgRFdPUkQpCiB7CiAgICAgaWYgKCFuYW1lIHx8ICFuYW1l
WzBdKQogICAgICAgICByZXR1cm4gTE9DQUxFX1VTRVJfREVGQVVMVDsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTmFtZVRvTENJRE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPE5hbWVUb0xDSURNYXA+IG1hcCgpOwogICAgIGVuc3VyZU5hbWVUb0xD
SURNYXAobWFwKTsKICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZyhuYW1lKS5yZXBsYWNl
KCdfJywgJy0nKS5sb3dlcigpOwogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggMmJjY2YxYTUwZTI3
NmU2MzI4MzY1YzM2MDQ3NWIyNjAwN2Y0OWUyMi4uYTYzMzkxNDVhY2E5MGM4ODVlMTZmYjc2ZTFj
MjVjMGI0YzQ0ZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ns
aXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIG1hcmt1
cFRvQ0ZIVE1MKGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIHNyY1VSTCwgVmVj
dG9yPGNoYXI+JiByZQogCiB2b2lkIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXds
aW5lcyhTdHJpbmcmIHN0cikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCB3aW5kb3dzTmV3bGluZSwgKEFTQ0lJTGl0ZXJhbCgiXHJcbiIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd2luZG93c05ld2xpbmUoQVNDSUlMaXRlcmFsKCJc
clxuIikpOwogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSAwOyBpbmRleCA8IHN0ci5sZW5ndGgoKTsgKytpbmRleCkgewogICAgICAgICBpZiAoc3Ry
W2luZGV4XSAhPSAnXG4nIHx8IChpbmRleCA+IDAgJiYgc3RyW2luZGV4IC0gMV0gPT0gJ1xyJykp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXgg
YzY1MjkzZDAyMDQ5ZGJiMmVhOWFhYjdmMjBiNDIwYzI2MWVkNDJlNy4uZDk4ZTc4MTdmMjg4Mjlm
OTM3YjliN2MzYzIyOTE1ZTlkYjE2MjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIFN0cmluZyBkaXJlY3Rv
cnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIAogc3RhdGljIFN0cmluZyBidW5kbGVOYW1lKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBuYW1lLCAoQVND
SUlMaXRlcmFsKCJXZWJLaXQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IG5hbWUoQVNDSUlMaXRlcmFsKCJXZWJLaXQiKSk7CiAKICNpZiBVU0UoQ0YpCiAgICAgc3RhdGlj
IGJvb2wgaW5pdGlhbGl6ZWQ7CkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIFN0cmluZyBzdG9y
YWdlRGlyZWN0b3J5KERXT1JEIHBhdGhJZGVudGlmaWVyKQogICAgIGJ1ZmZlci5yZXNpemUod2Nz
bGVuKGJ1ZmZlci5kYXRhKCkpKTsKICAgICBTdHJpbmcgZGlyZWN0b3J5ID0gU3RyaW5nOjphZG9w
dChidWZmZXIpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Y29tcGFueU5hbWVEaXJlY3RvcnksIChBU0NJSUxpdGVyYWwoIkFwcGxlIENvbXB1dGVyXFwiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbXBhbnlOYW1lRGlyZWN0b3J5
KEFTQ0lJTGl0ZXJhbCgiQXBwbGUgQ29tcHV0ZXJcXCIpKTsKICAgICBkaXJlY3RvcnkgPSBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0b3J5LCBjb21wYW55TmFtZURpcmVjdG9yeSArIGJ1
bmRsZU5hbWUoKSk7CiAgICAgaWYgKCFtYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5KSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFi
YXNlLmNwcAppbmRleCA5OGQwYTk3YjdiOTNkN2M4ZWJhYjQ4YmE1NDgzYjM5ZDIzNjQ4YzJjLi43
Mzk1Y2ZlNWZkMjZlNjk2NzRiODI2MmJkMjE5Nzg5YWZiNmVmMzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgYm9v
bCBnUGVyc2lzdGVudFBsdWdpbk1ldGFkYXRhQ2FjaGVJc0VuYWJsZWQ7CiAKIFN0cmluZyYgcGVy
c2lzdGVudFBsdWdpbk1ldGFkYXRhQ2FjaGVQYXRoKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjYWNoZVBhdGgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBjYWNoZVBhdGgoKTsKICAgICByZXR1cm4gY2FjaGVQYXRoOwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJl
YWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyLmNwcAppbmRleCBjYTA1NzllNTg5OWNjMTU4OGY4ZDZlZDk5ZTRiMmQxODFlYjY3
NmZhLi4xZDNlYzU0OTlmODkxMWFlMzFmZGNiOWEyYjQ2MmVkNDVhYzI4YTRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAK
QEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyJiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LCBzY2hlZHVsZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGx1Z2luTWFpblRo
cmVhZFNjaGVkdWxlcj4gc2NoZWR1bGVyKCk7CiAKICAgICByZXR1cm4gc2NoZWR1bGVyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYmRhYWNkMGIwNDU4
YTJjYTRhYWYwNTBhYjFiNTY3NTU5NjZkODYwNS4uMWVkMzJmMzhkOWIyNWIzZDVjYjlmMzg0OTQ2
MGYzNzZmNDg1ZTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CkBAIC0xNzQ5LDggKzE3NDksOCBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmJsb2NrRWxl
bWVudENvbnRpbnVhdGlvbigpIGNvbnN0CiAgICAgCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGlu
ZVRhYmxlTWFwKiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXAsIHRhYmxlLCAo
KSk7Ci0gICAgcmV0dXJuICZ0YWJsZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGlu
dWF0aW9uT3V0bGluZVRhYmxlTWFwPiB0YWJsZSgpOworICAgIHJldHVybiAmdGFibGUuZ2V0KCk7
CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmFkZENvbnRpbnVhdGlvbldpdGhPdXRsaW5lKFJlbmRl
cklubGluZSogZmxvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHAKaW5kZXggMTM5MDRlNzMwN2ExNmFmNDg2MGE1NDZiMTAzMzRiMDRi
MWUzMThlZi4uZDI4NmY2ZDg1NzRkOGExYzE3ZmU0OTliNzEyZDU0OTE3MDU1YzA4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAK
QEAgLTE4MTIsNyArMTgxMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpjaGVja0xpbmVzRm9y
VGV4dE92ZXJmbG93KCkKICAgICAvLyBEZXRlcm1pbmUgdGhlIHdpZHRoIG9mIHRoZSBlbGxpcHNp
cyB1c2luZyB0aGUgY3VycmVudCBmb250LgogICAgIC8vIEZJWE1FOiBDU1MzIHNheXMgdGhpcyBp
cyBjb25maWd1cmFibGUsIGFsc28gbmVlZCB0byB1c2UgMHgwMDJFIChGVUxMIFNUT1ApIGlmIGhv
cml6b250YWwgZWxsaXBzaXMgaXMgIm5vdCByZW5kZXJhYmxlIgogICAgIGNvbnN0IEZvbnQmIGZv
bnQgPSBzdHlsZSgpLmZvbnQoKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBlbGxpcHNpc1N0ciwgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpv
bnRhbEVsbGlwc2lzLCAxKTsKICAgICBjb25zdCBGb250JiBmaXJzdExpbmVGb250ID0gZmlyc3RM
aW5lU3R5bGUoKS5mb250KCk7CiAgICAgZmxvYXQgZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA9IGZp
cnN0TGluZUZvbnQud2lkdGgoY29uc3RydWN0VGV4dFJ1bih0aGlzLCBmaXJzdExpbmVGb250LCAm
aG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBmaXJzdExpbmVTdHlsZSgpKSk7CiAgICAgZmxvYXQgZWxs
aXBzaXNXaWR0aCA9IChmb250ID09IGZpcnN0TGluZUZvbnQpID8gZmlyc3RMaW5lRWxsaXBzaXNX
aWR0aCA6IGZvbnQud2lkdGgoY29uc3RydWN0VGV4dFJ1bih0aGlzLCBmb250LCAmaG9yaXpvbnRh
bEVsbGlwc2lzLCAxLCBzdHlsZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvbWJpbmVUZXh0LmNwcAppbmRleCAzZjAxM2RiOTFkN2Y1Yzg3NTVlNTJkOGM0MGVjOTlk
NmEwNmM4M2E4Li41N2M1NDU0YzkyYjAyYmZkMzI5ZGUyYjkzN2Q0YTRhNWZhOTBhNDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAKQEAgLTEz
Niw3ICsxMzYsNyBAQCB2b2lkIFJlbmRlckNvbWJpbmVUZXh0Ojpjb21iaW5lVGV4dCgpCiAgICAg
ICAgIG1fY29tYmluZUZvbnRTdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IpOwogCiAg
ICAgaWYgKG1faXNDb21iaW5lZCkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZywgKCZvYmplY3RS
ZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZygmb2JqZWN0UmVwbGFjZW1l
bnRDaGFyYWN0ZXIsIDEpOwogICAgICAgICBSZW5kZXJUZXh0OjpzZXRSZW5kZXJlZFRleHQob2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcuaW1wbCgpKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKaW5kZXggODkzZGMxODhlNmY2OGM0
NDZhZDhhMWI4YzUzMTA2NTk1ZWJiZDJjNC4uMTllZjlkYjZhNGM1NjgxMTdmNDgyZDg2MDBjMGU5
ZDljNjI5OTlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNv
dW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNw
cApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgQ291bnRlck5vZGUqIG1ha2VDb3VudGVyTm9kZShS
ZW5kZXJPYmplY3QqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkZW50aWZpZQogCiBzdGF0aWMgQ291
bnRlck1hcHMmIGNvdW50ZXJNYXBzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQ291bnRlck1hcHMsIHN0YXRpY0NvdW50ZXJNYXBzLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPENvdW50ZXJNYXBzPiBzdGF0aWNDb3VudGVyTWFwcygpOwogICAgIHJldHVy
biBzdGF0aWNDb3VudGVyTWFwczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA3NjA2YWQ5MDdk
ZjYzZDdhOGY1MDlhMzM0ZjhiMzEwZTk3NDczMGE0Li4wNGNhMDhmYTVlODkzNTA2M2YwMzljYTVi
YTkwYmYzMzc1YzgyN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtOTk0LDggKzk5NCw4IEBAIHZv
aWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRl
cmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBj
b25zdCBVQ2hhciBlbGxpcHNpc0FuZFNwYWNlWzJdID0geyBob3Jpem9udGFsRWxsaXBzaXMsICcg
JyB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBlbGxpcHNpc0FuZFNwYWNlU3RyLCAoZWxsaXBzaXNBbmRTcGFjZSwgMikpOwotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc1N0ciwg
KCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihlbGxpcHNpc0FuZFNwYWNlLCAyKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZWxsaXBzaXNTdHIo
Jmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5l
U3R5bGUgPSBudW1WaXNpYmxlTGluZXMgPT0gMSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgp
OwogICAgICAgICBjb25zdCBGb250JiBmb250ID0gbGluZVN0eWxlLmZvbnQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAKaW5kZXgg
NzliNWQ4MjBmNjFkZDZmNGRmYTI4MjlhZTllYTRhYjUyZmU1NGE2OC4uYzhjNTUyNTlkYTQwZDEw
NGViYzY3MGMwZjdkMjUwODg3ODdhYThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCkBAIC0zMyw4ICszMyw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUmVuZGVyU2Nyb2xsYmFyVGhlbWUqIFJlbmRlclNjcm9sbGJhclRoZW1l
OjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFJlbmRlclNjcm9sbGJhclRoZW1lLCB0aGVtZSwgKCkpOwotICAgIHJldHVybiAmdGhl
bWU7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlbmRlclNjcm9sbGJhclRoZW1lPiB0aGVt
ZSgpOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7CiB9CiAKIHZvaWQgUmVuZGVyU2Nyb2xsYmFy
VGhlbWU6OmJ1dHRvblNpemVzQWxvbmdUcmFja0F4aXMoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNj
cm9sbGJhciwgaW50JiBiZWZvcmVTaXplLCBpbnQmIGFmdGVyU2l6ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDdmOThlMTA1ZTQ4YTAwZTVkMGEwMTFiYWEx
NjJiMzcxNGVjNWY5OWYuLjFiNDE2ODY2NDU4OTNkN2EzZjcwODFjNTI4NDEwZDA2ZTMzYjI0MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtNzAsNyArNzAs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgQ29sb3ImIGN1c3RvbUZv
Y3VzUmluZ0NvbG9yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29s
b3IsIGNvbG9yLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENvbG9yPiBjb2xvcigp
OwogICAgIHJldHVybiBjb2xvcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCmluZGV4IDE3ZjZhOGRiNzgyZmFlOTY0MWU3ZjI5NGUwZWM3MTQzZDViMTRm
YjYuLjQ4M2M4NGM2NTk0NGZiNjdmOWU1ZmFiMjU0ODY3ZWYyZmJlNTRhNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM0MywxMyArMzQzLDEzIEBA
IHN0YXRpYyBGb250V2VpZ2h0IHRvRm9udFdlaWdodChOU0ludGVnZXIgYXBwS2l0Rm9udFdlaWdo
dCkKIAogdm9pZCBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udChDU1NWYWx1ZUlEIGNzc1ZhbHVl
SWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBz
bWFsbFN5c3RlbUZvbnQsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Rm9udERlc2NyaXB0aW9uLCBtZW51Rm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxhYmVsRm9udCwgKCkpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIG1pbmlDb250cm9sRm9udCwg
KCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24s
IHNtYWxsQ29udHJvbEZvbnQsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9udCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxGb250RGVzY3JpcHRpb24+IHN5c3RlbUZvbnQoKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBzbWFsbFN5c3RlbUZvbnQoKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBtZW51Rm9udCgpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IGxhYmVsRm9udCgpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IG1pbmlDb250cm9sRm9udCgpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IHNtYWxsQ29udHJvbEZvbnQoKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBjb250cm9sRm9udCgp
OwogCiAgICAgRm9udERlc2NyaXB0aW9uKiBjYWNoZWREZXNjOwogICAgIE5TRm9udCogZm9udCA9
IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggMWZm
ODNhOGE1ZWU1M2U1M2U1MjI3MTNkZmFlMDQxYzU4YjIwNzY1My4uMTVlNTAzZmM1MTQwOTFjODMz
MzE5MDNjNjhkMDJiMWQ2ZTg2MTExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgV2lkZ2V0SGllcmFyY2h5VXBk
YXRlc1N1c3BlbnNpb25TY29wZTo6c193aWRnZXRIaWVyYXJjaHlVcGRhdGVTdXNwZW5kQ28KIAog
V2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6V2lkZ2V0VG9QYXJlbnRNYXAm
IFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGU6OndpZGdldE5ld1BhcmVudE1h
cCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpZGdldFRvUGFyZW50
TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2lkZ2V0VG9QYXJlbnRN
YXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50ZXIuY3BwCmluZGV4IGFmMzQyNTdhZTBhMzFlZmZmOWM5MWUwN2ZjYzMxOTA3Njll
YjYxOTIuLjZjMzZlMWRhMzEzZGU4N2IyMWFjYTIyNTkwZTIzZmQ2ODAyZWY5NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHZv
aWQgVGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCiAgICAgICAgIGlmICghbV9lbXBoYXNpc01hcmsu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKm1fc2F2ZWRE
cmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNr
Lm1fdGV4dFBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0NvbG9yKTsKIAotICAgICAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAg
ICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRleHRSdW4+IG9iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyVGV4dFJ1bigmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpOwogICAgICAg
ICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9IG1fY29tYmluZWRUZXh0ID8gb2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogbV90ZXh0UnVuOwogICAgICAgICAgICAg
RmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gbV9jb21iaW5lZFRleHQgPyBGbG9h
dFBvaW50KGJveE9yaWdpbi54KCkgKyBtX2JveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55
KCkgKyBtX2ZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiBtX3RleHRPcmlnaW47CiAgICAg
ICAgICAgICBpZiAobV9jb21iaW5lZFRleHQpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0
UGFpbnRlcjo6cGFpbnRUZXh0KCkKICAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdT
dGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxl
Y3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CiAKLSAgICAgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENo
YXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUZXh0UnVuPiBvYmplY3RSZXBsYWNlbWVudENo
YXJhY3RlclRleHRSdW4oJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKTsKICAgICAgICAg
ICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBtX2NvbWJpbmVkVGV4dCA/IG9iamVj
dFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IG1fdGV4dFJ1bjsKICAgICAgICAgICAgIEZs
b2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IG1fY29tYmluZWRUZXh0ID8gRmxvYXRQ
b2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0LndpZHRoKCkgLyAyLCBib3hPcmlnaW4ueSgp
ICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogbV90ZXh0T3JpZ2luOwogICAgICAg
ICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAppbmRleCBkNmI2OGRkMzU1YjczYzUyYWMzOTVm
NmExMDI0NWEwOTUzNmUzNmY4Li4wZTMxODk2MTFlMTE3YmYwODUzOTI5YzliMjNlZDVmOGUyMDlj
Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0
c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0
c2lkZUluZm8uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNo
TWFwPGNvbnN0IFJlbmRlckJveCosIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZU91dHNpZGVJbmZvPj4g
SW5mb01hcDsKICAgICBzdGF0aWMgSW5mb01hcCYgaW5mb01hcCgpCiAgICAgewotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW5mb01hcCwgc3RhdGljSW5mb01hcCwgKCkp
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SW5mb01hcD4gc3RhdGljSW5mb01hcCgp
OwogICAgICAgICByZXR1cm4gc3RhdGljSW5mb01hcDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCmluZGV4IGEwMWI1Mjk0ZDVhYWNj
NzVhZDIxZDNhNGI2NTViMmI5YTc2OTE2MmEuLmQ2ZWMzNGIzY2NiY2Y0MWI0OWQ0OTZhNTllOTQ0
ZWQwYmE4ZjIwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkVHJhY2tTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRU
cmFja1NpemUuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NF
UlQoIW1fbWluVHJhY2tCcmVhZHRoLmlzTGVuZ3RoKCkgfHwgIW1fbWluVHJhY2tCcmVhZHRoLmxl
bmd0aCgpLmlzVW5kZWZpbmVkKCkpOwogICAgICAgICBpZiAobV9taW5UcmFja0JyZWFkdGguaXNM
ZW5ndGgoKSAmJiBtX21pblRyYWNrQnJlYWR0aC5sZW5ndGgoKS5pc0F1dG8oKSkgewotICAgICAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdyaWRMZW5ndGgsIG1pbkNvbnRl
bnQsIChNaW5Db250ZW50KSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R3Jp
ZExlbmd0aD4gbWluQ29udGVudChNaW5Db250ZW50KTsKICAgICAgICAgICAgIHJldHVybiBtaW5D
b250ZW50OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX21pblRyYWNrQnJlYWR0aDsKQEAg
LTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX21heFRyYWNr
QnJlYWR0aC5pc0xlbmd0aCgpIHx8ICFtX21heFRyYWNrQnJlYWR0aC5sZW5ndGgoKS5pc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgaWYgKG1fbWF4VHJhY2tCcmVhZHRoLmlzTGVuZ3RoKCkgJiYgbV9t
YXhUcmFja0JyZWFkdGgubGVuZ3RoKCkuaXNBdXRvKCkpIHsKLSAgICAgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChHcmlkTGVuZ3RoLCBtYXhDb250ZW50LCAoTWF4Q29udGVu
dCkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdyaWRMZW5ndGg+IG1heENv
bnRlbnQoTWF4Q29udGVudCk7CiAgICAgICAgICAgICByZXR1cm4gbWF4Q29udGVudDsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV9tYXhUcmFja0JyZWFkdGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAzMzIwYzAyOGI1OGQ0OTY4
ZTczZGMyZDZhOTkxOTI0MTA5NGYxODYzLi40NzdmZmY2ZmQ5ODk2ZmQzNDVmNmJhOTFmZTY1Y2Vh
MDc5MmU0Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKQEAgLTExNDQsOCArMTE0NCw4IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVy
U3R5bGU6Omh5cGhlblN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBoeXBoZW5hdGlvblN0
cmluZzsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBkZXBlbmQgb24gbG9jYWxlLgotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGh5cGhlbk1pbnVz
U3RyaW5nLCAoJmh5cGhlbk1pbnVzLCAxKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaHlwaGVuU3RyaW5nLCAoJmh5cGhlbiwgMSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBo
ZW5NaW51cywgMSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaHlw
aGVuU3RyaW5nKCZoeXBoZW4sIDEpOwogICAgIHJldHVybiBmb250KCkucHJpbWFyeUZvbnRIYXNH
bHlwaEZvckNoYXJhY3RlcihoeXBoZW4pID8gaHlwaGVuU3RyaW5nIDogaHlwaGVuTWludXNTdHJp
bmc7CiB9CiAKQEAgLTExNTcsMjggKzExNTcsMjggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5k
ZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0CiAgICAgY2FzZSBUZXh0RW1w
aGFzaXNNYXJrQ3VzdG9tOgogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygp
OwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdDogewotICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWREb3RTdHJpbmcsICgmYnVsbGV0
LCAxKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG9wZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxsZXQsIDEpKTsKKyAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOwor
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGVuRG90U3RyaW5n
KCZ3aGl0ZUJ1bGxldCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0g
VGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0NpcmNsZTogewotICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJp
bmcsICgmYmxhY2tDaXJjbGUsIDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkNpcmNsZVN0cmluZywgKCZ3aGl0ZUNpcmNsZSwgMSkp
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWRDaXJj
bGVTdHJpbmcoJmJsYWNrQ2lyY2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVDaXJjbGUsIDEpOwogICAgICAg
ICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBm
aWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRl
eHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZp
c2hleWUsIDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywgKCZidWxsc2V5ZSwgMSkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVT
dHJpbmcoJmZpc2hleWUsIDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nKCZidWxsc2V5ZSwgMSk7CiAgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxl
ZERvdWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmc7CiAgICAgfQogICAg
IGNhc2UgVGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZFRyaWFuZ2xlU3RyaW5nLCAoJmJs
YWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVwUG9p
bnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBmaWxsZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEp
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGVuVHJpYW5n
bGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRl
eHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkVHJpYW5n
bGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhh
c2lzTWFya1Nlc2FtZTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJpbmcsICgmc2VzYW1lRG90LCAxKSk7Ci0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5TZXNh
bWVTdHJpbmcsICgmd2hpdGVTZXNhbWVEb3QsIDEpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gZmlsbGVkU2VzYW1lU3RyaW5nKCZzZXNhbWVEb3QsIDEpOwor
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGVuU2VzYW1lU3Ry
aW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxs
KCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5T
ZXNhbWVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0F1dG86CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcAppbmRleCAwZTFm
MWEwYzAwNDk3NDNhNWE1NDFkM2MxMjI1ODM3MjIzMWFhNzhmLi41Mzk2ZTYyMGI2ODUxZjNmYzQ3
OTZhNThiZDVkNjllMDQyZTY4NzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUGF0aC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIFJlbmRlclNWR1Bh
dGg6OnNob3VsZFN0cm9rZVplcm9MZW5ndGhTdWJwYXRoKCkgY29uc3QKIAogUGF0aCogUmVuZGVy
U1ZHUGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVjYXBQ
b3NpdGlvbikgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0
aCwgdGVtcFBhdGgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGF0aD4gdGVtcFBh
dGgoKTsKIAogICAgIHRlbXBQYXRoLmNsZWFyKCk7CiAgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUo
KS5jYXBTdHlsZSgpID09IFNxdWFyZUNhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggOTI5ZDA3MWE0M2FjNjIwZDcxYzk5MGU5YTE3
ZDBmYTVhYTY1ZGVmOS4uMjhiMjY1ZmUyNzhhODAyMGRkY2I2OTYzOGVmMDMxYTgyMGMxNWMzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
QEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpsYXlvdXQoKQogCiBQYXRo
KiBSZW5kZXJTVkdTaGFwZTo6bm9uU2NhbGluZ1N0cm9rZVBhdGgoY29uc3QgUGF0aCogcGF0aCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBzdHJva2VUcmFuc2Zvcm0pIGNvbnN0CiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFBhdGg+IHRlbXBQYXRoKCk7CiAKICAgICB0ZW1wUGF0aCA9ICpw
YXRoOwogICAgIHRlbXBQYXRoLnRyYW5zZm9ybShzdHJva2VUcmFuc2Zvcm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggZGU4ZjE1ZjhiNDNmODczMjIzZGNiZmI0YjBiMDJmZTdkYTc3ZTI4OS4uZjYyYTRiNmJkYzM1
MmI4NTAwZjVhZGI0ZTYxNGY0Mzg4YjQ1ODZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yMDUsNyArMjA1LDcg
QEAgdm9pZCBTVkdSZW5kZXJpbmdDb250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBQYWkKIAogc3RhdGljIEFmZmluZVRyYW5zZm9ybSYgY3Vy
cmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEFmZmluZVRyYW5zZm9ybSwgc19jdXJyZW50Q29udGVudFRyYW5zZm9ybWF0aW9u
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFmZmluZVRyYW5zZm9ybT4gc19jdXJy
ZW50Q29udGVudFRyYW5zZm9ybWF0aW9uKCk7CiAgICAgcmV0dXJuIHNfY3VycmVudENvbnRlbnRU
cmFuc2Zvcm1hdGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHAKaW5kZXggMmM0NzIwNDYwNThjNDU0MjdjNzkxZDI2
NzIwOTRmZTdiZGMzNTk2Yy4uMmMwY2IwMTdlMzA2MDI4ZDE5N2QzZWIyYjJmZDM1MDYzMTkxMGNh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVu
a0J1aWxkZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBAIFNWR1RleHRDaHVua0J1aWxkZXI6OlNWR1Rl
eHRDaHVua0J1aWxkZXIoKQogCiB2b2lkIFNWR1RleHRDaHVua0J1aWxkZXI6OnRyYW5zZm9ybWF0
aW9uRm9yVGV4dEJveChTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBBZmZpbmVUcmFuc2Zvcm0m
IHRyYW5zZm9ybSkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQWZmaW5lVHJhbnNmb3JtLCBzX2lkZW50aXR5VHJhbnNmb3JtLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEFmZmluZVRyYW5zZm9ybT4gc19pZGVudGl0eVRyYW5z
Zm9ybSgpOwogICAgIGlmICghbV90ZXh0Qm94VHJhbnNmb3JtYXRpb25zLmNvbnRhaW5zKHRleHRC
b3gpKSB7CiAgICAgICAgIHRyYW5zZm9ybSA9IHNfaWRlbnRpdHlUcmFuc2Zvcm07CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5jcHAKaW5kZXggZTdkMjgwZTI4Yjg3NGViNWI2ZTE1MjBlNDE4ODFiNDNjZTg5MjdiYy4uNWJj
OGNiY2MxMWNhMjZiZTgxNzAwYzFjMDM2MDdiYTkxNGQ3MjMxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RvcmFnZU5hbWVzcGFjZSo+IExvY2FsU3RvcmFnZU5h
bWVzcGFjZU1hcDsKIAogc3RhdGljIExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCYgbG9jYWxTdG9y
YWdlTmFtZXNwYWNlTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwLCBsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXAsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwPiBsb2Nh
bFN0b3JhZ2VOYW1lc3BhY2VNYXAoKTsKICAgICByZXR1cm4gbG9jYWxTdG9yYWdlTmFtZXNwYWNl
TWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcAppbmRleCA1ODhmMjc3YmU3NWRlN2Q0MWVm
ZWQwNWNhNDk1OGJlNjI2MTc4NTdkLi40OWNlMjI3N2NjZWFiZDQ3OTQ4YjFmOGQ5NmFjNzNjNGUz
NmZkNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAKQEAgLTExMiwxNSArMTEyLDE1IEBAIFN0
cmluZyBTVkdBbmdsZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3Vu
aXRUeXBlKSB7CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzogewotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkZWdTdHJpbmcsIChBU0NJSUxpdGVyYWwo
ImRlZyIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRlZ1N0cmlu
ZyhBU0NJSUxpdGVyYWwoImRlZyIpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1f
dmFsdWVJblNwZWNpZmllZFVuaXRzKSArIGRlZ1N0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdf
QU5HTEVUWVBFX1JBRDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCByYWRTdHJpbmcsIChBU0NJSUxpdGVyYWwoInJhZCIpKSk7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHJhZFN0cmluZyhBU0NJSUxpdGVyYWwoInJhZCIpKTsK
ICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSAr
IHJhZFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0dSQUQ6IHsKLSAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZ3JhZFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiZ3JhZCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGdyYWRTdHJpbmcoQVNDSUlMaXRlcmFsKCJncmFkIikpOwogICAgICAgICByZXR1cm4gU3Ry
aW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpICsgZ3JhZFN0cmluZzsKICAgICB9
CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCmluZGV4IDllMWRiMTM5OGNiNTE2MmViMWQ1
YjFiMTQxYjdlZWZlMDIwZWYwMjguLmRkYmE2MWE4NjY5NTI3MzA1NjMxODc2NTI4MWU1ZTVkNDg3
NzJlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgUGFzc1JlZlB0cjxTVkdBbmltYXRlQ29sb3JFbGVtZW50PiBT
VkdBbmltYXRlQ29sb3JFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWUKIAogc3RhdGljIGJv
b2wgYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1
cnJlbnRDb2xvciwgKCJjdXJyZW50Q29sb3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
Y3VycmVudENvbG9yKCJjdXJyZW50Q29sb3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gdmFsdWUgPT0gY3VycmVudENvbG9yOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCAwYTk4M2Rm
ZDFhM2NjNTZkMWY5YmRjZGU3MGZhYjBiYzAwMTE2NmJjLi44NTUxNjkzNzg3Y2VlMGFjNzQ5N2Fh
YjczNjU5MjE1NzJlMGI2ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAKQEAgLTEyNCw4ICsxMjQsOCBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdAogICAgIAogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OlJvdGF0ZU1vZGUgU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9WYWwsICgiYXV0byIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvUmV2ZXJzZSwgKCJhdXRvLXJl
dmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gYXV0b1ZhbCgiYXV0byIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IGF1dG9SZXZlcnNlKCJhdXRvLXJldmVyc2UiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJv
dGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6cm90YXRlQXR0cik7CiAgICAgaWYgKHJvdGF0
ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4gUm90YXRlQXV0bzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCA0NjZmY2M2YjkzNGI1ODdhMDMyNmJl
ZGQ5ZTgxZjM1OTM1OTEzOGE5Li5iNzkwY2YwY2YzZDkzMTFhYTUxZGEwMDljOWU1ZDkwNTgzYjRl
MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0y
OTUsMTAgKzI5NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlv
bk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0
b21pY1N0cmluZyYgY2FsY01vZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgiZGlzY3JldGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGluZWFyLCAoImxpbmVhciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwYWNlZCwgKCJwYWNlZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBzcGxpbmUsICgic3BsaW5lIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9taWNTdHJpbmc+IGRpc2NyZXRlKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IGxpbmVhcigibGluZWFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gcGFjZWQoInBh
Y2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3BsaW5lKCJzcGxpbmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoY2FsY01vZGUgPT0gZGlzY3Jl
dGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNNb2RlRGlzY3JldGUpOwogICAgIGVsc2UgaWYg
KGNhbGNNb2RlID09IGxpbmVhcikKQEAgLTMxMyw4ICszMTMsOCBAQCB2b2lkIFNWR0FuaW1hdGlv
bkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgY2FsY01vZGUpCiAKIHZv
aWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRlVHlwZShjb25zdCBBdG9taWNTdHJp
bmcmIGF0dHJpYnV0ZVR5cGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgY3NzLCAoIkNTUyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCB4bWwsICgiWE1MIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNz
cygiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4geG1sKCJYTUwiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoYXR0cmlidXRlVHlwZSA9PSBjc3Mp
CiAgICAgICAgIG1fYXR0cmlidXRlVHlwZSA9IEF0dHJpYnV0ZVR5cGVDU1M7CiAgICAgZWxzZSBp
ZiAoYXR0cmlidXRlVHlwZSA9PSB4bWwpCkBAIC0zNDEsMTQgKzM0MSwxNCBAQCBTdHJpbmcgU1ZH
QW5pbWF0aW9uRWxlbWVudDo6ZnJvbVZhbHVlKCkgY29uc3QKIAogYm9vbCBTVkdBbmltYXRpb25F
bGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9taWNTdHJpbmc+IHN1bSgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZH
TmFtZXM6OmFkZGl0aXZlQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSB8fCBhbmltYXRp
b25Nb2RlKCkgPT0gQnlBbmltYXRpb247CiB9CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
aXNBY2N1bXVsYXRlZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBzdW0oInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVz
OjphY2N1bXVsYXRlQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSAmJiBhbmltYXRpb25N
b2RlKCkgIT0gVG9BbmltYXRpb247CiB9CkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBTVkdBbmlt
YXRpb25FbGVtZW50OjphZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVt
ZW50LCBjb25zdAogCiBzdGF0aWMgYm9vbCBpbmhlcml0c0Zyb21Qcm9wZXJ0eShTVkdFbGVtZW50
KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBpbmhlcml0LCAoImluaGVyaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5o
ZXJpdCgiaW5oZXJpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJpdCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAKaW5kZXggYzAyZWE2ODBlYzRmODYzMmYxZGVmOGU1N2VjNmNkZWU0ODQ5
ODRkYS4uYTBiNmFhNzdkODU1OWY4YjkwNWViYzIxNzczMjA1NzM1MDdlYWFhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC04
MCwyNSArODAsMjUgQEAgUGFzc1JlZlB0cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdAogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZp
ZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBzX2lkZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExl
bmd0aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZp
ZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
Om9yZGVyWElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmRlclgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdPcmRlclgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHT3JkZXJZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmll
cigiU1ZHT3JkZXJZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCAyYjE0MTBiNDM1YTM5MmE3MzAwMDZk
Y2I4ZTEzMTFjZDkwNDJkMWJiLi5iZWFjZjRkOWZmMWExOTlmZGFlZmViNTkxZTkxNWMxZTI4MDNj
NjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50PiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxV
bml0TGVuZ3RoWElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhY
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5l
bFVuaXRMZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHS2Vy
bmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5jcHAKaW5kZXggOGFlODVkM2ZmMjY3N2I2ZjZiZDdjY2VkM2VkMTBh
OTIwOWIxMDhlZS4uN2RhYzQxZjFlZjg4ZGFhMDI4NDMxNmNjZjlhNzZlOTA2Nzc1MmRiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNjcs
MTMgKzY3LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVEcm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9w
U2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdTdGREZXZpYXRpb25YIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRp
ZmllcigiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50aWZpZXIoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdTdGREZXZpYXRpb25ZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmll
cigiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggN2QwYWE1YzE5NDgzZWFlZWRmNThj
MTdjY2FlNmRlOTYyMjRjNmFiOC4uM2RkNzliMDgzMTU1MGFhYjI1MmU3M2ExMDNjNTM4ZTg1NmY5
N2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dC5jcHAKQEAgLTYyLDEzICs2MiwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudD4gU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWElk
ZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25YIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRl
bnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gc19pZGVudGlmaWVyKCJTVkdTdGREZXZpYXRpb25ZIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCmluZGV4IDlkZWM4Mzdl
NGVmYjFhMzU4M2VkNjg2NzkwZjNlOTg4MDM3MWI2OTcuLjA5MWRiNzMyZDhjYzM2NThkOWE0MjIz
YWMxYTNjY2ViODY0NTIyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5jcHAKQEAgLTYxLDEzICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFTW9ycGhv
bG9neUVsZW1lbnQ+IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1hJ
ZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBzX2lkZW50aWZpZXIoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1lJZGVudGlmaWVyKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHUmFkaXVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1Jh
ZGl1c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
c19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggYzE0YjJiZmQ4N2Q5ZTU2ZGY1YWNkM2VkZDRh
YzFkMDllY2RhNzdiMi4uZjMxZTYwZjU0Y2VjOTQ1OTUxZDdjMmNiYWFjZTQ4ODYwNjk5MzFiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVt
ZW50LmNwcApAQCAtNzIsMTMgKzcyLDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5p
dExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50
aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVs
VW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJu
ZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCAyNDgwN2E2ODc1NDIzZGFjODc2MjY4NjdiYmQyZTJj
ODg3YTcyMWEyLi40NTk0NzY2ZDZiOGY4NmNmNTBhMDMzZTMxYmI1MzIwYTE2NGFmYjI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCkBAIC02Niwx
MyArNjYsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50PiBTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWUKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5WElkZW50aWZpZXIoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50
aWZpZXIoIlNWR0Jhc2VGcmVxdWVuY3lYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5WUlkZW50aWZpZXIoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50
aWZpZXIoIlNWR0Jhc2VGcmVxdWVuY3lZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDIyNzJjMjFjYzkxNTcyZWVhNTcyZWU0YTJkMDc1ODBi
M2U1Njc5NjkuLmY0ZmU0NTkwZTE1OWE4ZjYwMzZhMjMwMTViOTdhYzIxM2QwNWMzMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBQ
YXNzUmVmUHRyPFNWR0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZpbHRlckVs
ZW1lbnQ6OmZpbHRlclJlc1hJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHRmlsdGVyUmVzWCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0ZpbHRlclJlc1giLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVy
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJ
ZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHRmlsdGVyUmVzWSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBzX2lkZW50aWZpZXIoIlNWR0ZpbHRlclJlc1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaE1hcC5oCmluZGV4IDM1MThmODhkOGE2NjE5NzQwNGEyMzA0MjkyZGQxNGJiNzcyNTRk
YWYuLmY0YWIxMzIzY2U0YTgzNDdkZjNjMjdiMmRhYzA1NGJlMjA1MTY0NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHbHlwaE1hcC5oCkBAIC0xNDMsNyArMTQzLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFNW
R0dseXBoJiBzdmdHbHlwaEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIHsKICAgICAg
ICAgaWYgKCFnbHlwaCB8fCBnbHlwaCA+IG1fZ2x5cGhUYWJsZS5zaXplKCkpIHsKLSAgICAgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTVkdHbHlwaCwgZGVmYXVsdEdseXBo
LCAoKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHR2x5cGg+IGRlZmF1
bHRHbHlwaCgpOwogICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRHbHlwaDsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9nbHlwaFRhYmxlW2dseXBoIC0gMV07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
YW5nU3BhY2UuY3BwCmluZGV4IDBjNzk0NzgzODAzZjcyNmY4NzljY2IyYzY4ZjYwZGFmZGZlZjM0
ZGEuLmNhOGU3ZDZhYzRkODJmYWVmNThjMzBjZDhhMzI5OWJiOGVmYzk3YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMYW5nU3BhY2UuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHZvaWQgU1ZHTGFuZ1NwYWNl
OjpzZXRYbWxsYW5nKGNvbnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZykKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHTGFuZ1NwYWNlOjp4bWxzcGFjZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NwYWNl
KSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVsdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21p
Y1N0cmluZz4gZGVmYXVsdFN0cmluZygiZGVmYXVsdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFN0cmluZzsKICAgICB9CiAKQEAg
LTY5LDcgKzY5LDcgQEAgYm9vbCBTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgCiB2b2lkIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHhtbFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4geG1sUHJlZml4KCJ4bWwi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFF1YWxpZmllZE5h
bWUgbGFuZ1dpdGhQcmVmaXggPSBYTUxOYW1lczo6bGFuZ0F0dHI7CiAgICAgbGFuZ1dpdGhQcmVm
aXguc2V0UHJlZml4KHhtbFByZWZpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVu
dC5jcHAKaW5kZXggNzNmNDllNDM0MGFiZTk4OGUzODRjM2FkYTc3N2QyZDg4NWRhZTlmMy4uNjAw
ZjVkYzU5NTczNjc1NjVmYzVkMTFiZjY1ZmI5NmM2MjMyNGQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkzLDEzIEBAIFBhc3NSZWZQdHI8U1ZH
TWFya2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50
VHlwZUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHT3JpZW50VHlwZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50QW5nbGVJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHT3JpZW50QW5nbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVu
dGlmaWVyKCJTVkdPcmllbnRBbmdsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKQEAgLTIzNyw3ICsyMzcsNyBAQCB2
b2lkIFNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZShTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCkKICAgICBpZiAob3duZXJUeXBlLT5tX29yaWVudFR5cGUudmFsdWUgIT0g
U1ZHTWFya2VyT3JpZW50QXV0bykKICAgICAgICAgcmV0dXJuOwogCi0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXV0b1N0cmluZywgKCJhdXRvIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdHJpbmcoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBvd25lclR5cGUtPm1fb3JpZW50VHlwZS5zeW5jaHJvbml6
ZShvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0
b1N0cmluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCA2MjU2
MTRjZDdkZjI3MmJhNjNlOTNlZWYyMmYyNzM0ODI0OWMwOThmLi41ODBmYTY4ZjYzMjk2NzI3Yzk4
OWE2ODhjNjA3Y2IzNGI0ODJlNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1
bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU1ZH
RWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0
L2VjbWFzY3JpcHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVmYXVsdFZhbHVlKCJ0
ZXh0L2VjbWFzY3JpcHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpjb250
ZW50U2NyaXB0VHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVl
IDogbjsKIH0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldENvbnRl
bnRTY3JpcHRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTVkdTVkdFbGVtZW50Ojpjb250ZW50U3R5bGVUeXBlKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFs
dWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVmYXVsdFZhbHVl
KCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRT
dHlsZVR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDRmYzQxZDMzMmJh
ZDBmMzMzY2U0YTc3NTVjZTQ4MmQyOWExMGZjZTEuLmRjYjk1YzBkYmIyMmY1MWU2OGZhZmZjZGQ1
ZTkwNTVmMTBmMWM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXREaXNhYmxlZChib29sIHNl
dERpc2FibGVkKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNT
dHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZH
TmFtZXM6OnR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6
IG47CiB9CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoImFs
bCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0VmFsdWUoImFsbCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
biA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAgICAgcmV0dXJuIG4u
aXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCAyMDdlNzFiYWZlOTU3YTA4M2Q2ODI2ODYxYzY1
ZmRhNzQzODY4YTc5Li4yZmE2MmZlYmZiYTQxMzZkY2JkNTBjMmYyOTQ1MzY4ZDZhMDczZDRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjMy
LDcgKzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkCiAgICAgaWYgKCFpc1N1cHBvcnRl
ZEF0dHJpYnV0ZShuYW1lKSkKICAgICAgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKICAgICBlbHNl
IGlmIChuYW1lLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpIHsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJp
bmcsICgicHJlc2VydmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHByZXNlcnZl
U3RyaW5nKCJwcmVzZXJ2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgICAgIGlmICh2YWx1ZSA9PSBwcmVzZXJ2ZVN0cmluZykKICAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaGl0
ZVNwYWNlLCBDU1NWYWx1ZVByZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCmluZGV4
IGY3NWI2N2UyZWYwOTI1MDFjNmQyODc4Mzk2NDQ2NmYzZTllMTJiYjUuLjcyZGIxOGZiNDBlZjU1
M2I0ZWY5YzhmNDNmOWM1MDBjNjJkOTAyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0u
Y3BwCkBAIC0xMzUsMjcgKzEzNSwyNyBAQCBjb25zdCBTdHJpbmcmIFNWR1RyYW5zZm9ybTo6dHJh
bnNmb3JtVHlwZVByZWZpeEZvclBhcnNpbmcoU1ZHVHJhbnNmb3JtVHlwZSB0eXBlKQogICAgIGNh
c2UgU1ZHX1RSQU5TRk9STV9VTktOT1dOOgogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fTUFUUklYOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1hdHJpeFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgibWF0
cml4KCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG1hdHJpeFN0
cmluZyhBU0NJSUxpdGVyYWwoIm1hdHJpeCgiKSk7CiAgICAgICAgIHJldHVybiBtYXRyaXhTdHJp
bmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6IHsKLSAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAo
QVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdHJhbnNsYXRlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgidHJhbnNsYXRlKCIpKTsK
ICAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJB
TlNGT1JNX1NDQUxFOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHNjYWxlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzY2FsZSgiKSkpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzY2FsZVN0cmluZyhBU0NJSUxpdGVyYWwoInNj
YWxlKCIpKTsKICAgICAgICAgcmV0dXJuIHNjYWxlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNW
R19UUkFOU0ZPUk1fUk9UQVRFOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHJvdGF0ZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgicm90YXRlKCIpKSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHJvdGF0ZVN0cmluZyhBU0NJSUxp
dGVyYWwoInJvdGF0ZSgiKSk7CiAgICAgICAgIHJldHVybiByb3RhdGVTdHJpbmc7CiAgICAgfSAg
ICAKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1g6IHsKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2tld1hTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNr
ZXdYKCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNrZXdYU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgic2tld1goIikpOwogICAgICAgICByZXR1cm4gc2tld1hTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBza2V3WVN0cmluZywgKEFTQ0lJTGl0ZXJh
bCgic2tld1koIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2tl
d1lTdHJpbmcoQVNDSUlMaXRlcmFsKCJza2V3WSgiKSk7CiAgICAgICAgIHJldHVybiBza2V3WVN0
cmluZzsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggOTgy
MmJkMWRmYmE3NmNhNjg4MGE1MjI0YTViNjdhNjBhNWFhMjQ3OC4uOTg1NzBmMzI2NDk1OTI3Y2E2
MTA2ZGVkMmVhMWZjYzk0MTdmNzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBA
IC04NSwxOSArODUsMTkgQEAgU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1ZpZXdTcGVjOjp2aWV3Qm94
SWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjVmlld0JveEF0dHJpYnV0ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1ZpZXdTcGVjVmlld0JveEF0dHJp
YnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBz
X2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnByZXNl
cnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2
ZUFzcGVjdFJhdGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmll
cigiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtSWRlbnRpZmllcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR1ZpZXdTcGVjVHJhbnNmb3JtQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHVmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVy
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQu
Y3BwCmluZGV4IDhmYTI5NGU3ZGQxMmQ2ZmQ5MDNhZmVkYzQ2YzNhNWZiOGVmOThjNDAuLmMxZWZk
ZWRlY2RjMzQyMzZhNDcyZGZiMjJmYmRiZjk4MDliMDYxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAg
U01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQ2xvY2tWYWx1ZShjb25zdCBTdHJpbmcmIGRh
dGEpCiAgICAgCiAgICAgU3RyaW5nIHBhcnNlID0gZGF0YS5zdHJpcFdoaXRlU3BhY2UoKTsKIAot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGlu
ZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+
IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIGlmIChwYXJzZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJl
dHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogCkBAIC02MjksOCArNjI5LDggQEAgYm9vbCBT
VkdTTUlMRWxlbWVudDo6aXNGcm96ZW4oKSBjb25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJl
c3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogeyAgICAKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZl
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB3aGVuTm90QWN0aXZlLCAo
IndoZW5Ob3RBY3RpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbmV2ZXIoIm5ldmVy
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gd2hlbk5vdEFjdGl2ZSgid2hlbk5vdEFjdGl2
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7
CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAgICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpA
QCAtNjQxLDcgKzY0MSw3IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50
OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlM
RWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZnJlZXplLCAoImZyZWV6ZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiBmcmVlemUoImZyZWV6ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0
cmlidXRlKFNWR05hbWVzOjpmaWxsQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/
IEZpbGxGcmVlemUgOiBGaWxsUmVtb3ZlOwogfQpAQCAtNjc0LDcgKzY3NCw3IEBAIFNNSUxUaW1l
IFNWR1NNSUxFbGVtZW50OjpyZXBlYXRDb3VudCgpIGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVs
bCgpKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OnVucmVzb2x2ZWQoKTsKIAotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVW
YWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGluZGVmaW5p
dGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIGlmICh2YWx1ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlM
VGltZTo6aW5kZWZpbml0ZSgpOwogICAgIGJvb2wgb2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYktp
dC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcAppbmRleCBlNGJlNmE2NGYy
NmJlNGQzZTQ4MDJlN2Q1NzY4ZWU1MWE0N2MwYmUzLi5kNjI2MWIxNzA3NzQ0MTViMDUzY2NlNTE5
MjdmZWRiMjNhMmUzMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2pp
RmFsbGJhY2tGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1v
amlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIFBhc3NSZWZQdHI8Rm9udERhdGE+IEVtb2ppRmFsbGJhY2tGb250U2Vs
ZWN0b3I6OmdldEZhbGxiYWNrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIHNpemVfdCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBhcHBsZUNvbG9yRW1vamksICgiQXBwbGUgQ29sb3IgRW1vamkiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gYXBwbGVDb2xvckVtb2ppKCJB
cHBsZSBDb2xvciBFbW9qaSIpOwogICAgIFJlZlB0cjxGb250RGF0YT4gZm9udERhdGEgPSBmb250
Q2FjaGUoKS5nZXRDYWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGFwcGxlQ29sb3JFbW9q
aSk7CiAgICAgaWYgKCFmb250RGF0YSkgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBn
ZXQgXCJBcHBsZSBDb2xvciBFbW9qaVwiIGZyb20gdGhlIGZvbnQgY2FjaGUuIFVzaW5nIHRoZSBs
YXN0IHJlc29ydCBmYWxsYmFjayBmb250IGluc3RlYWQuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1t
CmluZGV4IGZhYjczMDU1MjUxNTAzZjk0ZjdkNjIxYjk5ZDExM2IyNWY5MGFmYjIuLmE3OWNhYTk0
M2E4ODBhM2U0OWYxZjBlYzljZTFhMjE4MDkwYjRlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1t
CkBAIC01MCw3ICs1MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0YXRpYyBNdXRleCYg
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNdXRleD4gbXV0ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KaW5kZXggMDc3YzkwMzY2
ZTBiYWNlNDU2NTk1YWE2YzhjOTdmYzcyNTg3NWQyZS4uMmJlMDY4YWIzYjQxZThlNTc2MGQ0NTc4
NzZlYzUzOTZhZTVmNWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9X
ZWJCYWNrRm9yd2FyZExpc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJC
YWNrRm9yd2FyZExpc3QubW0KQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBIYXNoTWFwPEJhY2tG
b3J3YXJkTGlzdCosIFdlYkJhY2tGb3J3YXJkTGlzdCo+IEJhY2tGb3J3YXJkTGlzdE1hcDsKIC8v
IHdpdGggYSBwb2ludGVyIHRvIGEgV2ViQmFja0ZvcndhcmRMaXN0IGluIGl0Lgogc3RhdGljIEJh
Y2tGb3J3YXJkTGlzdE1hcCYgYmFja0ZvcndhcmRMaXN0cygpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEJhY2tGb3J3YXJkTGlzdE1hcCwgc3RhdGljQmFja0ZvcndhcmRM
aXN0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxCYWNrRm9yd2FyZExpc3RNYXA+
IHN0YXRpY0JhY2tGb3J3YXJkTGlzdHMoKTsKICAgICByZXR1cm4gc3RhdGljQmFja0ZvcndhcmRM
aXN0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0
b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0K
aW5kZXggNTRjZWJkNjc4MjZjNzU5OTk4NTAyMmM2NjU4ODgxYWM4YmRjM2YwMS4uNGUyZWMyZjFh
OWNjZWIxY2E5ZTFkM2EwZTZiNmQwNmZmZTY1ZTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIGlubGlu
ZSBXZWJDb3JlSGlzdG9yeUl0ZW0qIGNvcmUoV2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBpdGVtUHJp
dmF0ZSkKIAogc3RhdGljIEhpc3RvcnlJdGVtTWFwJiBoaXN0b3J5SXRlbVdyYXBwZXJzKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGlzdG9yeUl0ZW1NYXAsIGhpc3Rv
cnlJdGVtV3JhcHBlcnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGlzdG9yeUl0
ZW1NYXA+IGhpc3RvcnlJdGVtV3JhcHBlcnMoKTsKICAgICByZXR1cm4gaGlzdG9yeUl0ZW1XcmFw
cGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggZjE2OGE3YTcwMGY0M2Fj
NGNhZTAzZDE2MjlkMGE3YzE1MDJiMzgxYy4uMjI4NDgwMTJkYjRiYWVmNWQxNjRjYjYwNWNiOGU4
OWYzOGZhZGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC01MCw3ICs1MCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyJiBOZXRzY2Fw
ZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLCBwbHVnaW5Ib3N0TWFuYWdlciwg
KCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2Vy
PiBwbHVnaW5Ib3N0TWFuYWdlcigpOwogICAgIAogICAgIHJldHVybiBwbHVnaW5Ib3N0TWFuYWdl
cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggNTcwNWNmYjNiMTdlZThhMjVjODQ3NDU3
MmQzMmViMzI2ZjQ0YjkxZi4uNDlmMDBmYmQyNDlkMjI4ZjlhMTE4MjBjOWM3YWNhYzIzNWQyMjJh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKIHR5
cGVkZWYgSGFzaE1hcDxtYWNoX3BvcnRfdCwgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqPiBQbHVn
aW5Qcm94eU1hcDsKIHN0YXRpYyBQbHVnaW5Qcm94eU1hcCYgcGx1Z2luUHJveHlNYXAoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5Qcm94eU1hcCwgcGx1Z2lu
UHJveHlNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGx1Z2luUHJveHlNYXA+
IHBsdWdpblByb3h5TWFwKCk7CiAgICAgCiAgICAgcmV0dXJuIHBsdWdpblByb3h5TWFwOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDUzODYxZDUxMGQyN2Y1OTU5MGVjMDE0
ZjMwYTIxNjVhM2FjMjE0MzkuLmQ3NjhmNjkxZjNkYWMwZjUyY2Y3YmM3YzFjMTZjZjE2MmMxMmVi
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE2NjMsNyArMTY2Myw3IEBA
IHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpwcml2YXRlQnJvd3NpbmdNb2RlRGlk
Q2hhbmdlKGJvb2wgaXNQcml2YXRlQnJvCiAKIHN0YXRpYyBTdHJpbmcmIGdsb2JhbEV4Y2VwdGlv
blN0cmluZygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
ZXhjZXB0aW9uU3RyaW5nLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
ZXhjZXB0aW9uU3RyaW5nKCk7CiAgICAgcmV0dXJuIGV4Y2VwdGlvblN0cmluZzsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KaW5k
ZXggNzgzMTYzZWEyYWY2NmFlYzUwZGU3ZGI2NGU2OTE2NmU0ZGNlYjc5MC4uOTRiYzNjMjA1OGNi
N2Y2ZTNkZmNjNWJlMzhlODYwZDg2NzJlOWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC02NSw4ICs2NSw4IEBAIEZpZWxk
KiBQcm94eUNsYXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3Rh
bmNlKiBpbnN0YW5jZSkgY29uCiAKIHN0YXRpYyBQcm94eUNsYXNzKiBwcm94eUNsYXNzKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHJveHlDbGFzcywgcHJveHlDbGFz
cywgKCkpOwotICAgIHJldHVybiAmcHJveHlDbGFzczsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UHJveHlDbGFzcz4gcHJveHlDbGFzcygpOworICAgIHJldHVybiAmcHJveHlDbGFzcy5nZXQo
KTsKIH0KICAgICAKIGNsYXNzIFByb3h5RmllbGQgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6Rmll
bGQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5TdHJlYW0ubW0KaW5kZXggOTM1ZDU1ZWMxNGM4ODVkYmY5ZTg1MTZhZjI0NDZlMjk3YmRlNzNm
MC4uMzk4MGFlOTQ3MzZiZmQ4NWQ0NjBkNDg3YjlkOGQyN2U4NDAyYzk4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBA
IC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiB0eXBlZGVmIEhhc2hNYXA8TlBTdHJlYW0qLCBOUFA+
IFN0cmVhbU1hcDsKIHN0YXRpYyBTdHJlYW1NYXAmIHN0cmVhbXMoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJlYW1NYXAsIHN0YXRpY1N0cmVhbXMsICgpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyZWFtTWFwPiBzdGF0aWNTdHJlYW1zKCk7CiAgICAg
cmV0dXJuIHN0YXRpY1N0cmVhbXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvU3RvcmFn
ZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KaW5kZXggMzkxMmY1OGUyZTg1ODc2MTNlYmNkNjQwM2Zk
OTFhMGY4NTE4MTYyNi4uMDEzYjU4ZTVmN2NkZTE4NTQ4M2Y1M2FiZWEzZjg1ZGI3NzA5MmUzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0K
QEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgYm9vbCBpc0ZpbGVIaWRkZW4oTlNTdHJpbmcgKmZp
bGUpCiAKIHN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJM
b2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleCgpOwogICAgIHJl
dHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDFhNjQ0MGQ5NWZhM2FkYjRmMmQ5NTcw
MGQwYjkxZGFkZDdhOGFkYmEuLjI3ZDMyODE0OTkwZmI1MTc0Nzg4ZGU0OTAyM2Y4MTVlNWYzZTY5
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQubW0KQEAgLTU2LDcgKzU2LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0
cjxVc2VyTWVkaWFSZXF1ZXN0PiwgUmV0YWluUHRyPFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVy
Pj4KIAogc3RhdGljIFVzZXJNZWRpYVJlcXVlc3RzTWFwJiB1c2VyTWVkaWFSZXF1ZXN0c01hcCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVzZXJNZWRpYVJlcXVlc3Rz
TWFwLCByZXF1ZXN0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVc2VyTWVkaWFS
ZXF1ZXN0c01hcD4gcmVxdWVzdHMoKTsKICAgICByZXR1cm4gcmVxdWVzdHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KaW5k
ZXggMDlkZGMxZDg1YzMzZWU5MDkwY2M1NDU4MGM0MTU2MzcyNDViNmQxYS4uMDQwZjRlYzMwMmVk
YmU3ODdjMzIxOTQ3OWE0ZjkyOGFmYzYwOTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KQEAgLTM2NSw3ICszNjUsNyBAQCBz
dGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0FycmF5ICpsYWJlbHMp
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByZWdFeHBDYWNoZVNpemUgPSA0OwogICAg
IHN0YXRpYyBOU011dGFibGVBcnJheSogcmVnRXhwTGFiZWxzID0gbmlsOwogICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8UmVndWxhckV4cHJlc3Npb24qPiwgcmVnRXhw
cywgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZWd1bGFyRXhwcmVz
c2lvbiwgd29yZFJlZ0V4cCwgKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2ZSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVzc2lvbj4gd29yZFJlZ0V4cCgiXFx3IiwgVGV4
dENhc2VTZW5zaXRpdmUpOwogCiAgICAgUmVndWxhckV4cHJlc3Npb24qIHJlc3VsdDsKICAgICBp
ZiAoIXJlZ0V4cExhYmVscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDliYTY1Mzc0NjljODg4
ZjcxNDVhMDU0YjQ5MDE3NzNmOGUxZDQyNDkuLmQyMzlhMDc5ZDNlNTA4M2QzY2EyM2EwZDVjMTZi
OWY0NzRmZWRkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNDAsNyArNDAsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRp
YWxpemUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3RyYXRlZ2llcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llcygpOwogfQog
CiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OldlYlBsYXRmb3JtU3RyYXRlZ2llcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAppbmRleCBmZGIxODFkYTViMWU2
YzgyZjY5ZjJiNzgyNDA5NjM1OGE1Nzc1NDZiLi5jODI5MDBjZGMzM2FlZjg0N2JhZWVjNjVmYzM3
ODA5MDMxYjQ0ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6YWJs
ZVN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5n
cy5jcHAKQEAgLTQ3LDI1ICs0NywyNSBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBMb2NhbGl6
ZWRTdHJpbmcqPiBMb2NhbGl6ZWRTdHJpbmdNYXA7CiAKIHN0YXRpYyBNdXRleCYgbWFpbkJ1bmRs
ZUxvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAm
IG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTG9jYWxpemVkU3RyaW5nTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TG9jYWxpemVkU3RyaW5nTWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwogfQogCiBz
dGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxNdXRleD4gbXV0ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRp
YyBMb2NhbGl6ZWRTdHJpbmdNYXAgZnJhbWV3b3JrTG9jU3RyaW5ncygpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2FsaXplZFN0cmluZ01hcD4gbWFwKCk7CiAgICAg
cmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3ZTM2MDhmOWMwZjY2YWU1
NzRhY2IyNTJmYmU1OGM4YjAxZTY5N2NjLi4xOWFlODAzOWM4MDEwNDAxOGMzMmMzZWY4MzZjODFi
YjIwYzVkY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTMyMSw4ICsxMzIxLDggQEAgYm9v
bCBXZWJWaWV3OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIAogU3RyaW5nIFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxp
Y2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvc1ZlcnNpb24sICh3aW5kb3dzVmVyc2lv
bkZvclVBU3RyaW5nKCkpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCB3ZWJLaXRWZXJzaW9uLCAod2ViS2l0VmVyc2lvblN0cmluZygpKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gb3NWZXJzaW9uKHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJp
bmcoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd2ViS2l0VmVyc2lvbih3
ZWJLaXRWZXJzaW9uU3RyaW5nKCkpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEv
NS4wICgiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtI
VE1MLCBsaWtlIEdlY2tvKSIsIGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkgPyAiIiA6ICIgIiwg
YXBwbGljYXRpb25OYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDRjNjFk
YmIwZjRjMTNmZmYzOWNkMGQzODUwYWZhNWZhYjRmNTA4NmYuLmRlMDM1MDAyY2JkMTA3ZDY4ZjIy
ZTZhNTMyNzRhMGE5MDI0OTRiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtNjAs
NyArNjAsNyBAQCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp+RnJhbWVMb2FkZXJDbGllbnRXaW5D
RSgpCiAKIFN0cmluZyBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQoY29uc3QgVVJM
JikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1c2VyQWdl
bnRTdHJpbmcsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1c2VyQWdl
bnRTdHJpbmcoKTsKIAogICAgIGlmICh1c2VyQWdlbnRTdHJpbmcuaXNOdWxsKCkpIHsKICAgICAg
ICAgU3RyaW5nIHdlYktpdFZlcnNpb24gPSBTdHJpbmc6OmZvcm1hdCgiJWQuJWQiLCBXRUJLSVRf
TUFKT1JfVkVSU0lPTiwgV0VCS0lUX01JTk9SX1ZFUlNJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFLmNwcAppbmRleCBjNjUxOTM4ZmRlMTc4MjhhODBmNmRlNDlmMjczOWQyMjVkNDU2YzRlLi4w
OTNkNWQ3NzYyZmUxZjY4MThhZTRkN2U1N2M4MDcyZTBhZTk2OTBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLCBwbGF0
Zm9ybVN0cmF0ZWdpZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGxhdGZvcm1T
dHJhdGVnaWVzV2luQ0U+IHBsYXRmb3JtU3RyYXRlZ2llcygpOwogfQogCiBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIu
Y3BwCmluZGV4IDU4ZTczZjkxZjdjYmI0NTFmMjRiNDkxZjVlZDdmOWJmZWRmYTlkMGYuLjliNjgx
ZTA1MDkwY2UwNzNhNmY2NDY0NGNiZDZkZTJmNGZjOGIzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tl
ci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCByZWdpc3RlclNJR1NZU0hhbmRs
ZXIoKQogCiBTZWNjb21wQnJva2VyQ2xpZW50JiBTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQo
aW50IHNvY2tldCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2VjY29t
cEJyb2tlckNsaWVudCwgYnJva2VyQ2xpZW50LCAoc29ja2V0KSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFNlY2NvbXBCcm9rZXJDbGllbnQ+IGJyb2tlckNsaWVudChzb2NrZXQpOwogCiAg
ICAgcmV0dXJuIGJyb2tlckNsaWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcApp
bmRleCA1ZGZmNTQ2MzAzNmMzN2RmNTU5N2M5YmUyYWQ5OWQzODlkMmU1OGUxLi5hOTMwOTljYTU5
YTBjMDQ0OWMwNzQ0ZWZkNjc3ZGNmODkxNjI4MjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2
ZXIuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgYm9vbCBXZWJJbnNwZWN0b3JTZXJ2ZXI6OmRpZFJl
Y2VpdmVXZWJTb2NrZXRVcGdyYWRlSFRUUFJlcXVlc3QoV2ViU29ja2V0U2VydmVyQ28KICAgICBT
dHJpbmcgcGF0aCA9IHJlcXVlc3QtPnVybCgpOwogCiAgICAgLy8gTk9URTogS2VlcCB0aGlzIGlu
IHN5bmMgd2l0aCBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzLgotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGluc3BlY3Rvcldl
YlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4LCAoQVNDSUlMaXRlcmFsKCIvZGV2dG9vbHMvcGFn
ZS8iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGluc3BlY3Rv
cldlYlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4KEFTQ0lJTGl0ZXJhbCgiL2RldnRvb2xzL3Bh
Z2UvIikpOwogCiAgICAgLy8gVW5rbm93biBwYXRoIHJlcXVlc3RlZC4KICAgICBpZiAoIXBhdGgu
c3RhcnRzV2l0aChpbnNwZWN0b3JXZWJTb2NrZXRDb25uZWN0aW9uUGF0aFByZWZpeCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234694</attachid>
            <date>2014-07-10 00:29:26 -0700</date>
            <delta_ts>2014-07-10 01:35:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134794-20140710125906.patch</filename>
            <type>text/plain</type>
            <size>322414</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NzQ2NTc3OTJjZmIxZjBhYzhiNzM1ZWE5MjM1NjU4OGI4MmIzNDc2Li5lZjgzMzAxNmNhZjljYzJl
MGU5MGYyNzI1NGVhYzdiYWFmOTBiMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBNaWdyYXRlIHRoZSB1c2FnZSBvZiBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVCwgbmFtZSwgYXJncykgdG8gInN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBu
YW1lKGFyZ3MpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoanNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAg
ICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpvYmplY3RH
cm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAgICAqIGludGVycHJldGVyL0pT
U3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3RpY3NNdXRleCk6CisKIDIwMTQt
MDctMDkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dp
bl0gUmVtb3ZlIHVzZXMgb2YgJ2Jhc2gnIGluIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMGFlOTc3YWU2
MGM5YWZmMjZmOWNmN2U4ZjAxZGMzMTZjYjM3MmNhLi4zYmUxM2U2OGYyODE3MmI2ODA2OTFhNWQ3
Nzg1MmE2MzkxZGI0ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAoV1RGOjp0aHJlYWRNYXBN
dXRleCk6CisgICAgICAgIChXVEY6OnRocmVhZE1hcCk6CisKIDIwMTQtMDctMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBi
dWlsZCBmaXggYWZ0ZXIgcjE3MDkzMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTlhYjdmYzc1ODE5N2ZiMDJk
YmQxMTZhODE1MjM3ZDQ3N2NkNDExLi5kNmY5ODY5Y2Q3ZDAwYWVmODYyYWZlNzJjOTkyYWYxYTBi
MWNlMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjY5IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgcmVxdWlyZWQgYXMgdGhp
cyBpcyBhIGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdHJpbmdGb3JQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
ZGlyZWN0aW9uTmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5l
eHRVbmlxdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9k
ZVJlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlw
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OmVuZGVkS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3Ry
ZWFtRW5kZWRXaXRoRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21I
YW5kbGVyc1N0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRV
dGlsczo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpx
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudFNjcmlwdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6Ym91bmRhcnlFdmVudE9jY3VycmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2NDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSW50ZXJuYWwubW06CisgICAgICAgICh3cmFwcGVyQ2FjaGVMb2NrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJD
b3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ondy
YXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5Lmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFw
cGVyT3duZXIpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6cmVz
b2x2ZXNGYW1pbHlGb3IpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkUmVzb2x1dGlvbldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAg
KiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY2N1bXVsYXRvck1hcCk6
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzU3VwcG9ydGVkU1ZHMTBGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3VwcG9ydGVk
U1ZHMTFGZWF0dXJlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlYWR5U3RhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAg
ICAqIGRvbS9FdmVudExpc3RlbmVyTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZUl0
ZXJhdG9yQ291bnRNdXRleCk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAgICog
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlk
Q1NTQ29udGVudFR5cGUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OnN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25S
ZWNvcmQuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0RGF0YU1hcCk6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cHNldWRvRWxlbWVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMpOgorICAgICAgICAqIGRv
bS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1YWxpZmllZE5hbWVDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpudWxsUU5hbWUpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVzZW50
YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTcGFuQ2xhc3NTdHJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW50ZXJj
aGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4pOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQnJlYWtpbmdTcGFjZVN0cmluZyk6CisgICAgICAg
ICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OnN0eWxlTm9kZUNsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1h
cmt1cEludGVybmFsKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL0Zvcm1Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkp
OgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVN0YXRlU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3RFZGl0YWJsZUVs
ZW1lbnRNYXApOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3VtbWFy
eVF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlua0xvYWRFdmVudFNlbmRl
cik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmRvY3VtZW50VG9FbGVtZW50U2V0TWFwKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9y
bUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0aXRsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c3VidGl0bGVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSk6
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVMb2FkRXZlbnRTZW5k
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpk
YXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpy
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
Ojp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1l
czo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAocGxheWJhY2tTdGF0ZVBsYXlpbmcpOgor
ICAgICAgICAocGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAgICAgKiBodG1sL1N0ZXBSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6
ZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJbmplY3RlZCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01h
cmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWluZXJFbGVtZW50U2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6Om1haW5EZXNjS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp0cmFuc2xhdGlvbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6
Y29tbWVudGFyeUtleXdvcmQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpt
ZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpmb3JjZWRLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGlkZGVuS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5kS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0S2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpyaWdodEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGlj
YWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZUJveDo6dnR0
Q3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1p
bmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6bWFya0Z1dHVyZUFu
ZFBhc3ROb2Rlcyk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVn
aW9uOjpzZXRTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpwYXJzZVNldHRp
bmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRh
aW5lclNjcm9sbGluZ0NsYXNzKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm9kZVR5cGVUb1RhZ05hbWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVjdE1ldGFkYXRhSGVhZGVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHV0ZVBzZXVkb0NsYXNzTWFzayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c291cmNlTWFw
VVJMRm9yUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNl
RGVsaW1pdGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3Jp
cHQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9s
aWN5UHJldmVudGVkTG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAg
ICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUpOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUpOgorICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zQmFja2dyb3VuZENTUyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNU
ZXh0RWRnZUNTUyk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
Y3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVk
RGlyZWN0aXZlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OndpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZHJhZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwOgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luQWNjZXNzTWFwKToK
KyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dG
b3JCbGVuZGluZyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRlckN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpjcm9zc0N1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjpoYW5kQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdmVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGljYWxUZXh0Q3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OmNlbGxDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6YWxpYXNDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6
em9vbUluQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Onpvb21PdXRDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub25lQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByb2dyZXNzQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
RHJvcEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2VkQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlCZWFtQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OndhaXRDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6aGVscEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjplYXN0
UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoUmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpub3J0aFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhSZXNpemVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UmVzaXplQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNvdXRoV2VzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjp3
ZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoU291dGhSZXNpemVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZWFzdFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpj
b2x1bW5SZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6cm93UmVzaXplQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZVBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6ZWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhQYW5uaW5nQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bm9ydGhXZXN0UGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpz
b3V0aFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UGFubmluZ0N1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6Ondlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OmdyYWJD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Z3JhYmJpbmdDdXJzb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9ic2VydmVyTWFwKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhTUlNRVR5cGVNYXAp
OgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVtb3J5UHJl
c3N1cmVIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpsb2NhbFVSTFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGlz
cGxheUlzb2xhdGVkVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpzZWN1cmVTY2hlbWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjplbXB0eURvY3VtZW50U2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lc0Fs
bG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDT1JTRW5hYmxlZFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6
OnRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YmxhbmtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9ydEZvclByb3RvY29sKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F0ZW5hdGVkSW1wdWxzZVJlc3BvbnNl
c0ZvclN1YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXVkaW9EZXN0aW5hdGlvbnMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRF
Y29yZUN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmb250R2x5cGhzQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVDb250ZXh0TGlzdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZXBhaW50UmVjdE1hcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVh
bSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNNVGltZVJhbmdlU3RhcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q01UaW1lUmFuZ2VEdXJhdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpDQUNG
Q29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF5ZXJUb1ByaXZhdGVNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpl
ZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFyZkJ1enpGYWNlQ2FjaGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHM6OmVtcHR5VmFsdWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVHYW1lcGFk
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OktleUJpbmRpbmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0Zv
cktleUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhl
bHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFdpbmRvd0hhc2hNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVD
b250ZXh0TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY2hlZHVsZVNjcmF0Y2hCdWZmZXJQdXJnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
dXJzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXJJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVs
ZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6
dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVu
dE9ic2VydmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYlRocmVhZEdldE9ic2VydmVkQ29udGVudE1v
ZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnBsYXRmb3JtVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgorICAgICAgICAo
V2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojptb2NrU291cmNlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVN0cmVhbUNlbnRl
cjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tC
b3g6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0luaXRpYWxpemF0aW9uQm94Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTYW1wbGVCb3g6OnR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhU
b0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYU1NQcm90ZWN0aW9uSGVh
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0
dWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0
U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0
b3JNYXApOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25v
dXNMb2FkZXJNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGllbnRDZXJ0cyk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpZW50Q2VydGlmaWNh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlOjpnZXQpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzY3JpcHROYW1lVG9Db2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsZVRv
U2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2No
YXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3b3JkQnJl
YWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzZW50ZW5jZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRM
b2NhbGVOYW1lVG9MQ0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dz
U3R5bGVOZXdsaW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVuZGxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9y
YWdlRGlyZWN0b3J5KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBlcnNpc3RlbnRQbHVnaW5NZXRhZGF0YUNhY2hlUGF0aCk6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRpbnVhdGlv
bk91dGxpbmVUYWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JU
ZXh0T3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
dW50ZXJNYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Ny
b2xsYmFyVGhlbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjdXN0b21Gb2N1c1JpbmdDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5
c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0
TmV3UGFyZW50TWFwKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFBhaW50ZXI6OnBhaW50VGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0dyaWRUcmFja1NpemUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRy
YWNrQnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0Jy
ZWFkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
UGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q2h1bmtCdWlsZGVyOjp0cmFuc2Zvcm1hdGlvbkZvclRl
eHRCb3gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6cm90YXRlTW9kZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6aW5oZXJpdHNGcm9tUHJvcGVydHkpOgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVu
Z3RoWUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6Om9yZGVyWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlk
ZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERl
dmlhdGlvbllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3Rk
RGV2aWF0aW9uWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5
RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6cmFkaXVzWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojpi
YXNlRnJlcXVlbmN5WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhNYXAuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoTWFwOjpzdmdHbHlwaEZvckdseXBoKToKKyAgICAgICAgKiBzdmcvU1ZHTGFu
Z1NwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6eG1sc3BhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAg
KiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
Ojpjb250ZW50U2NyaXB0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpj
b250ZW50U3R5bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVHJh
bnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlw
ZVByZWZpeEZvclBhcnNpbmcpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmlld0JveElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U01JTEVsZW1lbnQ6OnJlc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KToK
KwogMjAxNC0wNy0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCByMTcwNDEzIGFuZCByMTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXgg
NmNjNmM4NWQwZjc0NDNlN2E3YThhNDE4ZjIwMGIyMzhmZTU3ZDFhYS4uNjc5ZjZjNGEzMzQ0NTFm
OGJhNGE3ZTdlNWI0ZTI2MzUyZDlhMzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgor
CisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJn
cykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
c2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChFbW9qaUZhbGxiYWNr
Rm9udFNlbGVjdG9yOjpnZXRGYWxsYmFja0ZvbnREYXRhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2spOgorCiAyMDE0LTA3LTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV1RGOjptb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkZTk2NjYxYWQ0MWUwZWUzYmI5YzA0Nzk0MDM4ZWRjOThmNTQ5ODA1Li44YTdmN2Y0N2VlZWRh
M2UxNzIwYTlkNjM5ZTAyZDYzNzBhYzBhODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShh
cmdzKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChiYWNrRm9yd2FyZExpc3Rz
KToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoaGlzdG9y
eUl0ZW1XcmFwcGVycyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
cjo6c2hhcmVkKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJveHlNYXApOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm94eUNsYXNzKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoc3RyZWFtcyk6
CisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW06CisgICAgICAgICh0cmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKHVzZXJNZWRpYVJlcXVlc3Rz
TWFwKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAg
ICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTQtMDctMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTY3NzcwKTogQ2Fubm90IGxvZ2lu
IGluIEV2ZXJub3RlIFNhZmFyaSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxODhiZjA5
MTM0ODQyY2QyMTE0ZmE4NWE5MmM1ZTgwZTY5MDk2ZDlhLi4wYjY0YmVmZGI0ZTUxNjlkNmM5MjUy
OGQ0NzY3ZmJhMWNhOTgyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQs
IG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdzKSIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cDoKKyAgICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKToKKyAgICAgICAgKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzKToKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZSk6CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCAwZWQ4ZTFkZDdiYTliYjQxMWY5OGIxMjU2ZDkwMjQ1YWM5MzliNzczLi5hMjBmYTg3YjQzYWNk
NTkyMjk3YmYxZTNkYTA0MGZiNzU3OTE2ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5h
bWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0xMiAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgREVGSU5F
X1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNzA2MWVkODBiMjgwOTliZDA0MjdhYTZlNzRkZmNmMTMwOTA4ZGY4Li44ZTgwZTBiM2Yy
YzFjZjcxZjUyMjg4ZGQ2NGQwYmM1ODNhNWE0MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdz
KSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KToKKwogMjAxNC0wNy0wOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjE3MDg1OCk6IFNhZmFyaSBmcmVlemVzIHVwb24gbWFraW5nIGEg
c2VhcmNoIG9uIGEgd2Vic2l0ZSAoeWVscC5jb20pLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQppbmRleCA4OTdlOTZmNDRlMGY0MWMzOTFiYjhk
NjYwZWY3MzA3NDBlZmNjMWVkLi41YWViNWJmMjE5ODJhMzBiOTVkNjg5MmE5NDIyMTFjZjg2MTZk
YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVj
dC5tbQpAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmpl
Y3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
ciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzV3JhcHBl
ck9iamVjdEhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcj4ganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKTsKKyAgICBy
ZXR1cm4gJmpzV3JhcHBlck9iamVjdEhhbmRsZU93bmVyLmdldCgpOwogfQogCiB2b2lkIEpTQVBJ
V3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRW
YWx1ZS5tbQppbmRleCA5NTNjYjVmYmRhYWMxMzZlNjUxYjI5Y2NmNThlN2Q3NDM5OGZjOTBlLi5m
NzgxODdkZDhlZjhkYjIzMzk3MGY3ZTJhMTk4M2Y4YTFmZDM5ZDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KQEAgLTQ2LDggKzQ2LDggQEAgcHVibGlj
OgogCiBzdGF0aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciogbWFuYWdlZFZhbHVlSGFuZGxl
T3duZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU01hbmFnZWRW
YWx1ZUhhbmRsZU93bmVyLCBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLCAoKSk7Ci0gICAgcmV0
dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyPiBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKCk7
CisgICAgcmV0dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLmdldCgpOwogfQogCiBjbGFz
cyBXZWFrVmFsdWVSZWYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAy
MzEzMmZjMjBlYWNkMWJlZTEwZDM0ZTczZjZjMDhhYjljYzgyYWY4Li5lNTBhMzkwOTA2NDA2YzUz
NzI2YzhhZGE5NWJlMmZjY2FkZWQyNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcApAQCAtNTIsNyArNTIsNyBAQCBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9ICJiYWNrdHJhY2UiOwogLy8gY3JlYXRlIG9iamVjdHMg
aW4gdGhlIHNhbWUgZ3JvdXAuCiBzdGF0aWMgU3RyaW5nIG9iamVjdEdyb3VwRm9yQnJlYWtwb2lu
dEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiBhY3Rpb24pCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb2JqZWN0R3Jv
dXAsICgiYnJlYWtwb2ludC1hY3Rpb24tIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG9i
amVjdEdyb3VwKCJicmVha3BvaW50LWFjdGlvbi0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhvYmplY3RHcm91cCwgU3RyaW5nOjpu
dW1iZXIoYWN0aW9uLmlkZW50aWZpZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdz
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3JTdHJpbmdzLnB5CmluZGV4IDI3NjM3NDQxNjBiODRmZmQyYzM3NzU5YTQzZGJk
MzNkZjAxNDVhNDQuLmVjMmMyNzE5YTdkMDJkMWVlNWJhMTQ1NDc4Zjg0ZGJmZTJkNjkyYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkKQEAgLTcyLDcg
KzcyLDcgQEAgYmFja2VuZF9kaXNwYXRjaGVyX2Rpc3BhdGNoX21ldGhvZCA9ICgKIAogICAgIHR5
cGVkZWYgdm9pZCAoJHtkaXNwYXRjaGVyTmFtZX06OipDYWxsSGFuZGxlcikobG9uZyBjYWxsSWQs
IGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBtZXNzYWdlKTsKICAgICB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4gRGlzcGF0Y2hNYXA7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKERpc3BhdGNoTWFwLCBkaXNwYXRjaE1hcCwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEaXNwYXRjaE1hcD4gZGlzcGF0Y2hNYXAoKTsKICAgICBp
ZiAoZGlzcGF0Y2hNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
TWV0aG9kVGFibGUgewogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAppbmRleCBjNmE3MDNjYmM2MDMw
NzQ0MzJjMGIyODFlYzIwOTE5ZWUzYmVjODEyLi5kOWMxN2Y3NTMwY2RkYjJhMWMwYzQ0M2E2Mjk3
MTJkMzE2ZTNlNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suY3BwCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZXND
b3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IHN0YXRpY011dGV4KCk7CiAgICAgcmV0
dXJuIHN0YXRpY011dGV4OwogfSAgICAKICNlbmRpZiAvLyAhRU5BQkxFKEpJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCA2MTkyOTE1Y2IxYmQzMjMzYjEyNGMwN2I0MzZl
OGYxMjM5ZDA5ZTljLi43MDA1NDFjZGY5NDAzMDkzOTA5YzQ3MGZiMzNiMjc1ZGIzZWM2OGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9p
ZCB0aHJlYWRXYXNKb2luZWQoVGhyZWFkSWRlbnRpZmllcik7CiAKIHN0YXRpYyBNdXRleCYgdGhy
ZWFkTWFwTXV0ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgbXV0ZXgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4KCk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nKCkKIAogc3RhdGljIFRocmVhZE1hcCYgdGhyZWFkTWFwKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGhyZWFkTWFwLCBtYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VGhyZWFkTWFwPiBtYXAoKTsKICAgICByZXR1cm4gbWFwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKaW5kZXgg
NTI3MGYyYjE0MTVhNjRmMWZkYTNjNWYyM2QzYzFjZWEyY2M0ZGEwMC4uZGY0NjE0YTM2M2JhNzJl
ZDVkMzc5OWZiZjhmNjE0OGFlNDMxNjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eUV2ZW50LmNwcApAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZ0ZvclBsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGF2YWlsYWJsZVN0cmluZywgKCJhdmFpbGFibGUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbm90QXZhaWxhYmxlU3RyaW5nLCAoIm5vdC1hdmFp
bGFibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiBhdmFp
bGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBub3RBdmFpbGFibGVTdHJpbmc7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCAyZTg0NmRk
N2ZjODljYWNiNTQxNjk4OWNlNzcwYWNjYzBiNDdhZjVmLi5hM2U1NWQ3ZDM2MWZmNmY1M2Q5Y2Iz
ZTBjNGQ1Nzk5Y2JkY2QzNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKQEAgLTUwLDI1ICs1MCwyNSBAQCBQYXNzUmVmUHRyPElEQkN1cnNv
cj4gSURCQ3Vyc29yOjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBiYWNrZW5k
LCBJbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dCwg
KCJuZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5leHQoIm5leHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmV4dDsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5leHR1bmlxdWUsICgibmV4
dHVuaXF1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuZXh0dW5pcXVlKCJuZXh0dW5pcXVlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5leHR1bmlx
dWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2
LCAoInByZXYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHJldigicHJldiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwcmV2OwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJw
cmV2dW5pcXVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHByZXZ1bmlxdWUoInByZXZ1bmlxdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcHJldnVu
aXF1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmNwcAppbmRleCA5NmIwYzZhZDczYTU2MDgxMzBiOGVmZjJjZTBiZWFlNTkzYTg3YzEzLi5h
NzU5MTZmOTI3ZTJhNmJjOGZmYmY2YzA4NmNkZmVmYzhmM2U1MTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTMyLDggKzEzMiw4
IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkg
Y29uc3QKIGNvbnN0IFN0cmluZyYgSURCUmVxdWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05F
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwZW5k
aW5nLCAoInBlbmRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZG9uZSwgKCJk
b25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBlbmRpbmcoInBlbmRpbmciLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBkb25lKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAgIHJldHVybiBw
ZW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwCmluZGV4IGM0MmY5NDVjNDExMzQ3OWZlNzE4M2QxMDg5ODFlMGMxMGQ2NTc4
NDguLmJkZjgzNDQ1NTkzZDY0M2JhNzNmNDgyOTZlZTg3M2YwOWE5YTU5NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAg
LTYwLDMxICs2MCwzMSBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlv
bjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogCiBjb25zdCBBdG9taWNT
dHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJlYWRvbmx5Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlYWRvbmx5KCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkb25seTsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoInJl
YWR3cml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiByZWFkd3JpdGUoInJlYWR3cml0ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkd3JpdGU7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVWZXJzaW9uQ2hh
bmdlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCB2ZXJzaW9uY2hhbmdlLCAoInZlcnNpb25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
dmVyc2lvbmNoYW5nZSgidmVyc2lvbmNoYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiB2ZXJzaW9uY2hhbmdlOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHlMZWdhY3koKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gcmVhZG9ubHkoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCIxIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlYWR3cml0ZSgiMSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkd3JpdGU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCmluZGV4IGE2ODhjNTg2YWI1OTJmMjIyNTEwYjYxYzJhYWU0NjgwZmQxMjZiNWMuLjNl
NGFmN2U2YjE5YmExZDY0MThkNGU0OWM2ZTE2ZDg1MzhkMTY2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcApAQCAtNDQsMTkgKzQ0LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6YXV0b21hdGljS2V5d29yZCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b21h
dGljLCAoImF1dG9tYXRpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBhdXRvbWF0aWMo
ImF1dG9tYXRpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBhdXRvbWF0aWM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hv
c3Q6OmZvcmNlZE9ubHlLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWRPbiwgKCJmb3JjZWQtb25seSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmb3JjZWRPbigiZm9yY2VkLW9ubHkiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkT247CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmFsd2F5c09uS2V5d29yZCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
YWx3YXlzT24sICgiYWx3YXlzLW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFsd2F5
c09uKCJhbHdheXMtb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gYWx3YXlzT247CiB9CiAKQEAgLTIwMywxMiArMjAzLDEyIEBAIFN0cmluZyBNZWRp
YUNvbnRyb2xzSG9zdDo6ZXh0ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZSgpIGNvbnN0CiAKIFN0cmlu
ZyBNZWRpYUNvbnRyb2xzSG9zdDo6ZXh0ZXJuYWxEZXZpY2VUeXBlKCkgY29uc3QKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRlcmFs
KCJub25lIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBub25lKEFTQ0lJ
TGl0ZXJhbCgibm9uZSIpKTsKICAgICBTdHJpbmcgdHlwZSA9IG5vbmU7CiAgICAgCiAjaWYgRU5B
QkxFKElPU19BSVJQTEFZKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGFpcnBsYXksIChBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIp
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYWlycGxheShBU0NJSUxpdGVy
YWwoImFpcnBsYXkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHZvdXQo
QVNDSUlMaXRlcmFsKCJ0dm91dCIpKTsKICAgICAKICAgICBNZWRpYVBsYXllciogcGxheWVyID0g
bV9tZWRpYUVsZW1lbnQtPnBsYXllcigpOwogICAgIGlmICghcGxheWVyKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDNm
MDI2NWJjMGU0ODNhODU3OGYxNTgxNjg0Nzg4Yzg4MTFiZGI1N2UuLjUzNTAwMWQzMjJlNWJjODIz
NjZkMDUyYTljY2QxZTMxYzgzZjA1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC05MiwxOSArOTIsMTkgQEAgTWVkaWFT
b3VyY2U6On5NZWRpYVNvdXJjZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6
Om9wZW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4gb3Blbigib3BlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBvcGVuOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291cmNlOjpjbG9z
ZWRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBjbG9zZWQsICgiY2xvc2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IGNsb3NlZCgiY2xvc2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGNsb3NlZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJj
ZTo6ZW5kZWRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gZW5kZWQ7CiB9CiAKQEAgLTM0MCw4ICszNDAsOCBAQCB2b2lkIE1lZGlh
U291cmNlOjplbmRPZlN0cmVhbShjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25D
b2RlJiBlYykKIAogdm9pZCBNZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IoY29uc3Qg
QXRvbWljU3RyaW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3
b3JrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNv
ZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbmV0d29yaygibmV0d29yayIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IGRlY29kZSgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAvLyAyLjQuNyBodHRwczovL2R2Y3MudzMub3JnL2hn
L2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNl
bmQtb2Ytc3RyZWFtLWFsZ29yaXRobQogICAgIC8vIDEuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBh
dHRyaWJ1dGUgdmFsdWUgdG8gImVuZGVkIi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250
ZW50VXRpbHMuY3BwCmluZGV4IDBjZjM0ZTc3ZDU5M2I1YzI4N2ExNDNlZmVhYTAyMDcxYWY3MDBi
ZjEuLjJkMTk3ODY5NjRmZGQ3M2NiYjVhYTFmMDI2NzJiNjQ4MDVmYjE5NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNv
bnRlbnRVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250
ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMTQ0LDkgKzE0NCw5IEBAIHZv
aWQgTmF2aWdhdG9yQ29udGVudFV0aWxzOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihOYXZpZ2F0
b3IqIG5hdmlnYXRvciwgY29uc3QKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQog
c3RhdGljIFN0cmluZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBzdGF0ZSkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAoQVND
SUlMaXRlcmFsKCJuZXciKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHJlZ2lzdGVyZWRIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJyZWdpc3RlcmVk
IikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBk
ZWNsaW5lZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoImRlY2xpbmVkIikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBuZXdIYW5kbGVyKEFTQ0lJTGl0ZXJhbCgibmV3
IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHJlZ2lzdGVyZWRI
YW5kbGVyKEFTQ0lJTGl0ZXJhbCgicmVnaXN0ZXJlZCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBkZWNsaW5lZEhhbmRsZXIoQVNDSUlMaXRlcmFsKCJkZWNsaW5l
ZCIpKTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGlj
IFN0cmluZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG8KIAogU3RyaW5nIE5hdmlnYXRvckNvbnRlbnRVdGlsczo6aXNQcm90
b2NvbEhhbmRsZXJSZWdpc3RlcmVkKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdCBTdHJpbmcm
IHNjaGVtZSwgY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkLCAoImRl
Y2xpbmVkIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRlY2xp
bmVkKCJkZWNsaW5lZCIpOwogCiAgICAgaWYgKCFuYXZpZ2F0b3ItPmZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBkZWNsaW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCBlYjNjMjc1NjI5
MzFkZDVhZTAyN2JkOTQzOWZiOGMyMTg2YWZhMTJlLi5jMzVmZjA3YWM2NzFhN2RjZDQ4NjMyNmI5
NDFiMDU5MDVhMmZiYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC02OSw3ICs2OSw3
IEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFW
TWV0YWRhdGFJdGVtVHlwZSAqLCBKU0NvbnRlCiAKIHN0YXRpYyBTdHJpbmcgcXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnRTY3JpcHQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHNjcmlwdCwgKFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlw
dCwgc2l6ZW9mKFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlwdCkpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzY3JpcHQoUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnRKYXZhU2NyaXB0LCBzaXplb2YoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2Ny
aXB0KSk7CiAgICAgcmV0dXJuIHNjcmlwdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKaW5kZXggYjZiYjNjZjcxYThlZDlkZmNm
ODA5MmE4MDExN2IwYjJmZGU5ODAxMC4uZmJlNTdhMDYyMTQ4M2U0YzNiNmM4OTc0ZjlhOWI3Zjdl
Nzg3MmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwCkBAIC0xOTQsOCArMTk0LDggQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6Omhh
bmRsZVNwZWFraW5nQ29tcGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmMK
ICAgICAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1Jl
ZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNlLCBTcGVlY2hC
b3VuZGFyeSBib3VuZGFyeSwgdW5zaWduZWQgY2hhckluZGV4KQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHdvcmRCb3VuZGFyeVN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgid29yZCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgc2VudGVuY2VCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2Vu
dGVuY2UiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHdvcmRC
b3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwoIndvcmQiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gc2VudGVuY2VCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwo
InNlbnRlbmNlIikpOwogCiAgICAgc3dpdGNoIChib3VuZGFyeSkgewogICAgIGNhc2UgU3BlZWNo
V29yZEJvdW5kYXJ5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0ND
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5j
cHAKaW5kZXggZWI4YmMwYzE5Nzg5YTM4ODE4NmQ3NTY1Y2UxYjVhYjk3MmVlY2QzYS4uYzIwOWNj
MDQxN2UzYjgyMWQyMmM4MDNlZjhmMTM0MjA2MWZiYjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lk
IGNvbGxlY3Qodm9pZCopCiAKIEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR0NDb250cm9sbGVyLCBzdGF0aWNHQ0NvbnRy
b2xsZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R0NDb250cm9sbGVyPiBzdGF0
aWNHQ0NvbnRyb2xsZXIoKTsKICAgICByZXR1cm4gc3RhdGljR0NDb250cm9sbGVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xh
cmF0aW9uQ3VzdG9tLmNwcAppbmRleCAxMWRlNWQzZjk2ODM0MjE2OWY4N2Q3YTcxODUxYmI4MzUw
YTI4NWNjLi4xZjdjYjVmMDgzYTBkMDk3NzBiODhlZmFmMWQ0M2UwZjUxOTFlMzI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJh
dGlvbkN1c3RvbS5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZv
IGNzc1Byb3BlcnR5SURGb3JKU0NTU1Byb3BlcnR5TmFtZShQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YQogCiAgICAgU3RyaW5nIHN0cmluZ0ZvckNhY2hlID0gU3RyaW5nKHByb3BlcnR5TmFtZVN0cmlu
Zyk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPiBDU1NQcm9w
ZXJ0eUluZm9NYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Byb3Bl
cnR5SW5mb01hcCwgcHJvcGVydHlJbmZvQ2FjaGUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZSgpOwogICAgIHByb3Bl
cnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hlLmdldChzdHJpbmdGb3JDYWNoZSk7CiAgICAgaWYg
KHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQogICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY4MDE4Yzc0OGIzZWQ3OTgxMzQxNmM3OThhYzMx
OTBjNjUwYTc3MWEuLjdjYzQzMzlmZjg0MTQ1MmI3YTA5NDY1ZDYyYmIyYTYyNDQxM2JmYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTU1LDE5ICs1NSwxOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3Rh
dGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwg
KEFTQ0lJTGl0ZXJhbCgibWFjIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBwbGF0Zm9ybShBU0NJSUxpdGVyYWwoIm1hYyIpKTsKICNlbGlmIE9TKFdJTkRPV1Mp
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZv
cm0sIChBU0NJSUxpdGVyYWwoIndpbmRvd3MiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgid2luZG93cyIpKTsKICNlbGlm
IE9TKExJTlVYKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJsaW51eCIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJsaW51eCIpKTsK
ICNlbGlmIE9TKEZSRUVCU0QpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImZyZWVic2QiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgi
ZnJlZWJzZCIpKTsKICNlbGlmIE9TKE9QRU5CU0QpCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2Qi
KSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3JtKEFT
Q0lJTGl0ZXJhbCgib3BlbmJzZCIpKTsKICNlbGlmIE9TKFNPTEFSSVMpCi0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVy
YWwoInNvbGFyaXMiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgic29sYXJpcyIpKTsKICNlbHNlCi0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVy
YWwoInVua25vd24iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IHBsYXRmb3JtKEFTQ0lJTGl0ZXJhbCgidW5rbm93biIpKTsKICNlbmRpZgogICAgIHJldHVybiBq
c1N0cmluZ1dpdGhDYWNoZShleGVjU3RhdGUsIHBsYXRmb3JtKTsKIH0KQEAgLTc1LDExICs3NSwx
MSBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUq
IGV4ZWNTdGF0ZSkKIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQoRXhlY1N0
YXRlKiBleGVjU3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImd0ayIp
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcG9ydChBU0NJSUxp
dGVyYWwoImd0ayIpKTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJlZmwiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBvcnQoQVNDSUlMaXRl
cmFsKCJlZmwiKSk7CiAjZWxzZQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBvcnQoQVNDSUlMaXRlcmFsKCJ1bmtub3du
IikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWNTdGF0ZSwgcG9y
dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVy
bmFsLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQppbmRl
eCBiYjNmYzY5YTJkN2ZkNmEzY2I3ZjM3OWU1MmY4Nzc3NDc2OGM4NzY3Li5lMTU3OGIwMDdiMjQz
ODA2ODU3ZGZlNGI3YjgzNGQ0NmVmZDA3MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSW50ZXJuYWwubW0KQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIE5TTWFwVGFibGUq
IERPTVdyYXBwZXJDYWNoZTsKICNpZmRlZiBORUVEU19XUkFQUEVSX0NBQ0hFX0xPQ0sKIHN0YXRp
YyBNdXRleCYgd3JhcHBlckNhY2hlTG9jaygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE11dGV4LCB3cmFwcGVyQ2FjaGVNdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxNdXRleD4gd3JhcHBlckNhY2hlTXV0ZXgoKTsKICAgICByZXR1cm4gd3JhcHBl
ckNhY2hlTXV0ZXg7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRl
eCBlNjgwMmZmZWQzNTk0NzUwNDQ0NmUyN2RlMjllYmQxZDI2MzNmNDUyLi44Yjk0YmM0ZWU1Y2U2
ZjdkNzA0MjkyMTQ4ZGE3NWUxOWQwZWFkMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oCkBAIC04Myw4ICs4Myw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93
bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEFjdGl2ZURPTU9iamVjdCop
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEFjdGl2ZURPTU9i
amVjdE93bmVyLCBqc1Rlc3RBY3RpdmVET01PYmplY3RPd25lciwgKCkpOwotICAgIHJldHVybiAm
anNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpT
VGVzdEFjdGl2ZURPTU9iamVjdE93bmVyPiBqc1Rlc3RBY3RpdmVET01PYmplY3RPd25lcigpOwor
ICAgIHJldHVybiAmanNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXIuZ2V0KCk7CiB9CiAKIGlubGlu
ZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0aXZl
RE9NT2JqZWN0KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggODEzMWQz
MWRhOGRjZjBhYmE3MzJlNDMzZDljMzAwZjQ2YTc5YWZhMC4uZmJhNmFjODdkNDU5OWJjY2E4MTU5
MjMxM2FiY2E3OTFiNTZiMDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgK
QEAgLTg3LDggKzg3LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIq
IHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlck93bmVyLCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyLCAoKSk7Ci0gICAgcmV0dXJu
ICZqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyPiBqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93
bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyLmdldCgpOwog
fQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGYyMGU1YmUwOTFjMmFlOWNiZDdkMmUyOGY2YWFmNTI5ZThlNGQwNmMuLmIzYzZlOTEyYzc0
OGE0ZmVkY2M3ZjMzNGFjZWNlNjA5N2UxODliYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaApAQCAtODMsOCArODMsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5k
bGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RFdmVudENvbnN0cnVj
dG9yKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvck93bmVyLCBqc1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIsICgpKTsKLSAgICBy
ZXR1cm4gJmpzVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyPiBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
T3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lci5nZXQoKTsK
IH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3RFdmVudENvbnN0cnVjdG9yKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggODJhYTVj
NjlkOTFlYjA4OTFkMmQ0MmU1OGMyOTE1ZDAwMThiYjU5Yi4uZmI2YWNjODA0NzJkYWM2MjE1MjJk
YTYyOGFmNzViYjMzODJhZDY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTkxLDggKzkx
LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25l
cihET01XcmFwcGVyV29ybGQmLCBUZXN0RXZlbnRUYXJnZXQqKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RFdmVudFRhcmdldE93bmVyLCBqc1Rlc3RFdmVudFRh
cmdldE93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RFdmVudFRhcmdldE93bmVyOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RFdmVudFRhcmdldE93bmVyPiBqc1Rlc3RFdmVu
dFRhcmdldE93bmVyKCk7CisgICAgcmV0dXJuICZqc1Rlc3RFdmVudFRhcmdldE93bmVyLmdldCgp
OwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCwgVGVzdEV2ZW50VGFyZ2V0KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAppbmRleCBjMGE4MzNkOWExOWM2
NzdjMWVkNTExOGYwMGVjYzc5Nzg0YjkwZWNhLi42MjQxNzRjMTNmYzdjMjQxMDcxYzVkMzliNjY3
ZDA1ZGFkYTFiZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCkBAIC04NCw4ICs4NCw4IEBAIHB1Ymxp
YzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBl
cldvcmxkJiwgVGVzdEV4Y2VwdGlvbiopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEpTVGVzdEV4Y2VwdGlvbk93bmVyLCBqc1Rlc3RFeGNlcHRpb25Pd25lciwgKCkpOwot
ICAgIHJldHVybiAmanNUZXN0RXhjZXB0aW9uT3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEpTVGVzdEV4Y2VwdGlvbk93bmVyPiBqc1Rlc3RFeGNlcHRpb25Pd25lcigpOworICAgIHJl
dHVybiAmanNUZXN0RXhjZXB0aW9uT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXhjZXB0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmluZGV4IDUzYWVkZDZmMjBiODJlYjdmNDc4
ZTc2MzQ5YWQxOTQzYjc3ZTk5OGIuLjkyNmMyMjg5NmU2YmRmN2EwN2VjM2JiNzk0NTg2N2YxOTg2
MDJlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAtODEsOCAr
ODEsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93
bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93
bmVyLCBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyPiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
T3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lci5nZXQo
KTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBlNzg5
ZmU0YmU5MWNkNzA0MWQ3OWI3OTJiMmFiMjRlODE4YjI2MjhhLi5iOWM3YjJiODFhODg0NDVhYzdh
ZGI2ZDMxMGFjODE5YWFjYzcxZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC0xMTAsOCArMTEw
LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25l
cihET01XcmFwcGVyV29ybGQmLCBUZXN0SW50ZXJmYWNlKikKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0SW50ZXJmYWNlT3duZXIsIGpzVGVzdEludGVyZmFjZU93
bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RJbnRlcmZhY2VPd25lcjsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SlNUZXN0SW50ZXJmYWNlT3duZXI+IGpzVGVzdEludGVyZmFjZU93bmVy
KCk7CisgICAgcmV0dXJuICZqc1Rlc3RJbnRlcmZhY2VPd25lci5nZXQoKTsKIH0KIAogaW5saW5l
IHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RJbnRlcmZh
Y2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggMjE2
ZGE4OWRhZGMzOGFlYjM5MGU0Y2VkMWU0OTMxNWI0OWY2NDM4ZC4uMTUzYjZmZGU3NTViYjNkODUy
NThhMDY4OTFlYTkzMzM3Y2UwMDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIsIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ck93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyT3duZXI+IGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcigpOworICAgIHJl
dHVybiAmanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyLmdldCgpOwogfQogCiBpbmxp
bmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXgg
YWY3MjM1YTM2MGMyNzZhZWFjYWU2YzYxZDdlYzc1NTMyNWQ1NDFmOS4uZmVkY2U3NjQxMzI3M2E1
MjJmZTE2NDVmMDUzZDk5NGJiM2E1ODA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5oCkBAIC04Miw4ICs4Miw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93
bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE5hbWVkQ29uc3RydWN0b3Iq
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yT3duZXIsIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI+IGpzVGVzdE5hbWVkQ29uc3RydWN0b3JPd25l
cigpOworICAgIHJldHVybiAmanNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyLmdldCgpOwogfQog
CiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVz
dE5hbWVkQ29uc3RydWN0b3IqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXgg
MzU2ZWJjM2NlYTZiY2IzYjE0NmI0ZGJiN2UyYTk0Y2VlMDU0ZjA2OC4uZjBjYWEwNDlkMzk4YmNl
MmU4ODg2MzlhY2ExNTlkZTlmODg2YWZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93
bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE5vbmRldGVybWluaXN0aWMq
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3ROb25kZXRlcm1p
bmlzdGljT3duZXIsIGpzVGVzdE5vbmRldGVybWluaXN0aWNPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNUZXN0Tm9uZGV0ZXJtaW5pc3RpY093bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXI+IGpzVGVzdE5vbmRldGVybWluaXN0aWNPd25l
cigpOworICAgIHJldHVybiAmanNUZXN0Tm9uZGV0ZXJtaW5pc3RpY093bmVyLmdldCgpOwogfQog
CiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVz
dE5vbmRldGVybWluaXN0aWMqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDcxZmVjYmI4YjYzYjAzYjkwNzY2NTI3ZjY2
ZDIxZDllNWE3NGYyMjguLjEyMTlkNjIxZjQ0ZWRjNDMwMDM2MWI1YWMzZDk1ZTRlODFjYmE5ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKQEAgLTk2LDggKzk2LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0T2JqT3duZXIsIGpzVGVzdE9i
ak93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RPYmpPd25lcjsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SlNUZXN0T2JqT3duZXI+IGpzVGVzdE9iak93bmVyKCk7CisgICAgcmV0dXJu
ICZqc1Rlc3RPYmpPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RPYmoqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggZDY4NjFiNzk0NjI3OTRjN2YyNjU0OWU5MWE2NWIx
MThhMWJhZDMwMi4uODdjYjBiYjI1NjVmODhkYjk3ZjNhMGIzNmVkOGIzNTc1Y2MwZjg4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC04MSw4ICs4MSw4
IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkJiwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
T3duZXIsIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI+IGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNPd25lcigpOworICAgIHJldHVybiAmanNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc093bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4
IDExYWY2NDBiYTk0YjY4NzY4ZWNlNjJhNGFlZDE5N2NkYWZlZDQxODcuLmM1ZTlhMzNiN2IxZGFh
MDE1ZTE1NzhkODA2MzhlOTYxY2M2ZGY5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTg4LDggKzg4LDggQEAgcHVibGlj
OgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKikKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlT3duZXIsIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyLCAo
KSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25l
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlT3duZXI+IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVy
KCk7CisgICAgcmV0dXJuICZqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25l
ci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRl
ZnMuaAppbmRleCA2Y2E2NjNjMmI1ZjlkMTk2M2NjN2VlMTYwM2JlMGI5YzZkMjYyMzlmLi45NmEw
NGQ5ZjAzM2M0MzYzZjZjMDhhYjhmZTRiZWQyMmM5MDUzYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApA
QCAtODMsOCArODMsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciog
d3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RUeXBlZGVmcyopCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdFR5cGVkZWZzT3duZXIsIGpzVGVzdFR5
cGVkZWZzT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdFR5cGVkZWZzT3duZXI7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdFR5cGVkZWZzT3duZXI+IGpzVGVzdFR5cGVkZWZz
T3duZXIoKTsKKyAgICByZXR1cm4gJmpzVGVzdFR5cGVkZWZzT3duZXIuZ2V0KCk7CiB9CiAKIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0VHlw
ZWRlZnMqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTYXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAppbmRleCA2MzUwMjc3ZGI5YWUyNzZhMDZlZTQ0YzhlOGY4MDFjMTIx
ZWVkOGNhLi5jMTZlMjA1ZjZmZjJhNWNhOWQxZDc1ZmRlNDMxMmQwMTZjOWQ5Y2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1
dGUuaApAQCAtODIsOCArODIsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVP
d25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIGF0dHJpYnV0ZSopCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTYXR0cmlidXRlT3duZXIsIGpzYXR0cmli
dXRlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzYXR0cmlidXRlT3duZXI7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEpTYXR0cmlidXRlT3duZXI+IGpzYXR0cmlidXRlT3duZXIoKTsKKyAg
ICByZXR1cm4gJmpzYXR0cmlidXRlT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBhdHRyaWJ1dGUqKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5k
ZXggM2UyZDhhNmVhZTFiNWZlZTk3ZDY0MWE0YjVjMTQ1MTBjZTY1MDkwNC4uMmJkMjIzNjUwYWMy
NzJiYThhOGJkZDFmMTNhMDhiMDQyYWY3ZTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC04MSw4ICs4MSw4IEBA
IHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9N
V3JhcHBlcldvcmxkJiwgcmVhZG9ubHkqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChKU3JlYWRvbmx5T3duZXIsIGpzcmVhZG9ubHlPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNyZWFkb25seU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU3JlYWRvbmx5
T3duZXI+IGpzcmVhZG9ubHlPd25lcigpOworICAgIHJldHVybiAmanNyZWFkb25seU93bmVyLmdl
dCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCwgcmVhZG9ubHkqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRl
eCA2ZWIxZWZmYjJiYWVkYWEyODhlYTViY2MyZmVhMGI1YjhhNmFjYzBlLi5lMjM2ZDM4YjhiOWYw
YWM0YTllMjViODIyNzBmNjYzMGQ1ODkyZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2lu
c3RhbmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBzdGF0
aWMgU3RyaW5nJiBnbG9iYWxFeGNlcHRpb25TdHJpbmcoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGV4Y2VwdGlvblN0ciwgKCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGV4Y2VwdGlvblN0cigpOwogICAgIHJldHVybiBleGNlcHRp
b25TdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZjc4
MTVlZjVjZTBkZDM0OTY1YTJjYjY2ODg5ODgxNzRjZjY0ZGI5OC4uMTQ3YWVhOWMxM2MwNDE5MTAw
ZDc4NTgwM2VlZDA1NmFlZWQyMGNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHAKQEAgLTYxOSw3ICs2MTksNyBAQCBib29sIENTU0ZvbnRTZWxlY3Rvcjo6cmVzb2x2ZXNG
YW1pbHlGb3IoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikgY29ucwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChtX2ZvbnRGYWNlcy5jb250YWlucyhmYW1pbHlO
YW1lKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJraXRQcmVmaXgsICgiLXdlYmtpdC0iKSk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHdlYmtpdFByZWZpeCgiLXdlYmtpdC0i
KTsKICAgICAgICAgaWYgKGZhbWlseU5hbWUuc3RhcnRzV2l0aCh3ZWJraXRQcmVmaXgpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5j
cHAKaW5kZXggOTQ0NTA4NjNmMWI5M2FjNmE3MzU4OTZiMmNhOTJiMWZmYmRlYTRhZi4uODJkMTA4
MTNjZDY0M2I0Y2ZiYjBiOGZjMmM0NTExOGRhY2MyNDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlz
dC5jcHAKQEAgLTI5MywxMSArMjkzLDExIEBAIHN0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJu
aW5nTWVzc2FnZVRvQ29uc29sZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluCiAgICAg
QVNTRVJUKGRvY3VtZW50KTsKICAgICBBU1NFUlQodmFsdWUpOwogCi0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFRdWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVy
YWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1lbnRV
bml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXItQ1NT
LSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28gZG9l
cyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9mIGEg
c2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVyYWwo
ImRwaSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVk
aWFWYWx1ZURQQ00sIChBU0NJSUxpdGVyYWwoImRwY20iKSkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVuaXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJp
bmNoIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBsZW5n
dGhVbml0Q2VudGltZXRlciwgKEFTQ0lJTGl0ZXJhbCgiY2VudGltZXRlciIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbWVkaWFRdWVyeU1lc3NhZ2UoQVNDSUlMaXRlcmFs
KCJDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5zdGVhZCBvZiAnJXJlcGxhY2VtZW50VW5p
dHMlJywgYXMgaW4gQ1NTICclcmVwbGFjZW1lbnRVbml0cyUnIG1lYW5zIGRvdHMtcGVyLUNTUy0l
bGVuZ3RoVW5pdCUsIG5vdCBkb3RzLXBlci1waHlzaWNhbC0lbGVuZ3RoVW5pdCUsIHNvIGRvZXMg
bm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnJXJlcGxhY2VtZW50VW5pdHMlJyBvZiBhIHNj
cmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjogIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IG1lZGlhVmFsdWVEUEkoQVNDSUlMaXRlcmFsKCJkcGkiKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbWVkaWFWYWx1ZURQQ00oQVNDSUlMaXRlcmFs
KCJkcGNtIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGxlbmd0aFVuaXRJ
bmNoKEFTQ0lJTGl0ZXJhbCgiaW5jaCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBsZW5ndGhVbml0Q2VudGltZXRlcihBU0NJSUxpdGVyYWwoImNlbnRpbWV0ZXIiKSk7CiAK
ICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICBpZiAodmFsdWUtPmlzRG90c1BlckluY2goKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggZDA1OGU2ZGVhNDA3
YjdjOTdkNGMzZWM3ODJiMDM0MzFlM2Q2ZjM2YS4uZTYzZTVjOWZjZTU5NjhjNjE4NTAxNjA2YjBi
MTI5ZDFlYTI5NDYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5j
cHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRo
b3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZAogICAgIH0KICAg
ICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzICYmIGlzU3RyaWN0
UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkpIHsKICAgICAgICAgLy8gV29yayBhcm91
bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODM1MD4uCi0gICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhV2lr
aUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5bGVz
aGVldCAqL1xuLyogd29yayBhcm91bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xuI2Nv
bHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuIikpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hl
ZXQoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5bGVzaGVldCAqL1xuLyogd29yayBhcm91
bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xuI2NvbHVtbi1jb250ZW50IHsgbWFyZ2lu
LWxlZnQ6IDA7IH1cblxuIikpOwogICAgICAgICAvLyBUaGVyZSBhcmUgdHdvIHZhcmlhbnRzIG9m
IEtIVE1MRml4ZXMuY3NzLiBPbmUgaXMgZXF1YWwgdG8gbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxl
U2hlZXQsCiAgICAgICAgIC8vIHdoaWxlIHRoZSBvdGhlciBsYWNrcyB0aGUgc2Vjb25kIHRyYWls
aW5nIG5ld2xpbmUuCiAgICAgICAgIGlmIChiYXNlVVJMKCkuc3RyaW5nKCkuZW5kc1dpdGgoIi9L
SFRNTEZpeGVzLmNzcyIpICYmICFzaGVldFRleHQuaXNOdWxsKCkgJiYgbWVkaWFXaWtpS0hUTUxG
aXhlc1N0eWxlU2hlZXQuc3RhcnRzV2l0aChzaGVldFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKaW5kZXggOWIxNmM2YmFjOGFiMmE5ZjMwMDE5
MTYwZThjOTgwMGFhOTg0MTYzZS4uMmE5MGI5OGMwOGZkZGFkYjg0NzI3YzUzY2E5MWUwYzI4Zjk5
MjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNw
cApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8
Q29udGFpbmVyTm9kZSosIENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3IqPiBBY2N1bXVsYXRv
ck1hcDsKIHN0YXRpYyBBY2N1bXVsYXRvck1hcCYgYWNjdW11bGF0b3JNYXAoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBY2N1bXVsYXRvck1hcCwgbWFwLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFjY3VtdWxhdG9yTWFwPiBtYXAoKTsKICAgICByZXR1
cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRl
eCBkOTIyNjE4ZTllNTVkYzIyZWUzNDY4NzZhYTNhNDI4ZWE0OWM2ZTFkLi4xNTVmNjIwMThjM2U2
NDhkYTI5MTY1ZjZjZGYzYjU4MGM1MDkxOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRT
VkcxMEZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24K
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBm
YWxzZTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3Zn
RmVhdHVyZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmVhdHVyZVNldD4gc3Zn
RmVhdHVyZXMoKTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CiAjaWYgRU5BQkxFKEZJTFRFUlMp
ICYmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgInN2
ZyIpOwpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkU1ZHMTFGZWF0
dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZlYXR1cmVTZXQsIHN2Z0ZlYXR1cmVz
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZlYXR1cmVTZXQ+IHN2Z0ZlYXR1cmVz
KCk7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewogICAgICAgICAvLyBTYWRseSwgd2UgY2Fubm90
IGNsYWltIHRvIGltcGxlbWVudCBhbnkgb2YgdGhlIFNWRyAxLjEgZ2VuZXJpYyBmZWF0dXJlIHNl
dHMKICAgICAgICAgLy8gbGFjayBvZiBGb250IGFuZCBGaWx0ZXIgc3VwcG9ydC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDViNTNhYTM4YWM5OTk1Njc4ODBmMzNlNjRhZjM3N2M4MjcxZTVk
MTcuLmE2NjIwNWU0MmE5NjEwMWQ4Mjg1MzkyMzRjNzJmYjgxY2UzOTlhN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTE1MCw5ICsxMTUwLDkgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBE
b2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25z
dAogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxvYWRpbmcsIChBU0NJSUxpdGVy
YWwoImxvYWRpbmciKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGludGVyYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIpKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY29tcGxldGUs
IChBU0NJSUxpdGVyYWwoImNvbXBsZXRlIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgU3RyaW5nPiBsb2FkaW5nKEFTQ0lJTGl0ZXJhbCgibG9hZGluZyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBpbnRlcmFjdGl2ZShBU0NJSUxpdGVyYWwo
ImludGVyYWN0aXZlIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IGNvbXBsZXRlKEFTQ0lJTGl0ZXJhbCgiY29tcGxldGUiKSk7CiAKICAgICBzd2l0Y2ggKG1fcmVh
ZHlTdGF0ZSkgewogICAgIGNhc2UgTG9hZGluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4
NzE3ZWMxZmU5ZDRhY2Y0MzZjZjE1MzMzNjdhMWYzMzk5YWE1YTdmLi5kOGM1ZGEyMjk0ZmNkMmJh
NDdkYjUyZDY1Nzc2NTM3YzYxZmFkYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNTQ2
LDIxICsyNTQ2LDIxIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6d2Via2l0UmVnaW9u
T3ZlcnNldCgpIGNvbnN0CiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHVuZGVmaW5lZFN0YXRlLCAoInVuZGVmaW5lZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiB1bmRlZmluZWRTdGF0ZSgidW5kZWZpbmVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKCFkb2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkg
fHwgIXJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRT
dGF0ZTsKIAogICAgIHN3aXRjaCAocmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsKICAgICBjYXNlIFJl
Z2lvbkZpdDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBmaXRTdGF0ZSwgKCJmaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpdFN0
YXRlKCJmaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
cmV0dXJuIGZpdFN0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvbkVtcHR5OiB7Ci0gICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUs
ICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGVtcHR5U3RhdGUoImVtcHR5Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBlbXB0
eVN0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvbk92ZXJzZXQ6IHsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJv
dmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvdmVyZmxvd1N0YXRlKCJvdmVyc2V0
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBv
dmVyZmxvd1N0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvblVuZGVmaW5lZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcAppbmRleCAwODU0MWIwYmQ3YmExMjk2YWY1YWI4
MzM5MjBhYzI4NTVmMTNiNGFmLi41YmM0NTQ2MWIzNjJjN2FmMmU1MGE2YmU1OTRiM2VkN2VmYTFk
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCkBAIC01MSw3ICs1
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZm5kZWYgTkRFQlVHCiBzdGF0aWMgTXV0ZXgm
IGFjdGl2ZUl0ZXJhdG9yQ291bnRNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxN
dXRleD4gbXV0ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuY3BwCmluZGV4IDI2NTE3OGNmNmUzZTNmMTA5NzFhMDRmOWU4ZjY1NDEwNTYzMWQ3YmQu
LmQwNTIzMmU0M2VkNDUzMGJmZTQ0NjBjYTAzZjA4ZTBlNzI5ZmU4ZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmZp
cmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZlbnRM
aXN0CiAKIGNvbnN0IEV2ZW50TGlzdGVuZXJWZWN0b3ImIEV2ZW50VGFyZ2V0OjpnZXRFdmVudExp
c3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRMaXN0ZW5lclZlY3RvciwgZW1wdHlWZWN0b3IsICgp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RXZlbnRMaXN0ZW5lclZlY3Rvcj4gZW1wdHlW
ZWN0b3IoKTsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSogZCA9IGV2ZW50VGFyZ2V0RGF0YSgpOwog
ICAgIGlmICghZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNo
ZWV0T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5j
cHAKaW5kZXggNWMzNjM4NDJiNjkxNDY1OWUxMzQwYTM4MTY3YWU3Y2NjYzZjZmYyYS4uMTMzZDlk
NWY2MTg0NmE4MTQzMTNmOTlkNzU4YjYzOTRmMGZjYTE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIElu
bGluZVN0eWxlU2hlZXRPd25lcjo6Y2xlYXJTaGVldCgpCiAKIGlubGluZSBib29sIGlzVmFsaWRD
U1NDb250ZW50VHlwZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgY3NzQ29udGVudFR5cGUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4gY3NzQ29udGVudFR5cGUoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICByZXR1cm4gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkgPyBlcXVhbElnbm9yaW5nQ2FzZSh0
eXBlLCBjc3NDb250ZW50VHlwZSkgOiB0eXBlID09IGNzc0NvbnRlbnRUeXBlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDc3NDU4ZjhlNjk2NTM1NDc2ZWJiZDg0
NzgxNWU3N2FjZjM0NDA1MTUuLmE0ODJjYTRjMmViNzZmMGU2MGE2NGY5ZWM5YTgwMDZlYTJlYjUx
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTEzOCwxMyAr
MTM4LDEzIEBAIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4+IE11dGF0
aW9uT2JzZXJ2ZXJTZXQ7CiAKIHN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVNdXRh
dGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11
dGF0aW9uT2JzZXJ2ZXJTZXQsIGFjdGl2ZU9ic2VydmVycywgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxNdXRhdGlvbk9ic2VydmVyU2V0PiBhY3RpdmVPYnNlcnZlcnMoKTsKICAgICBy
ZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwogfQogCiBzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNldCYg
c3VzcGVuZGVkTXV0YXRpb25PYnNlcnZlcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBzdXNwZW5kZWRPYnNlcnZlcnMsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0YXRpb25PYnNlcnZlclNldD4gc3VzcGVuZGVk
T2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIHN1c3BlbmRlZE9ic2VydmVyczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKaW5kZXggNWE0N2ZjMDAxYzE1YTI4ZTk1OGRlNmYy
NDVjYjFlOTNhNzIzODA3MS4uYTlkZGJmNzQ1NGNmMzFlMmUwZGQ2NDY0MTM1Mjk2YjljNTMxYWZm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCkBAIC0xNDUsMTkgKzE0NSwx
OSBAQCBwcml2YXRlOgogCiBjb25zdCBBdG9taWNTdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlw
ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
Y2hpbGRMaXN0LCAoImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBjaGlsZExpc3Qo
ImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBjaGlsZExpc3Q7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXR0cmlidXRlc1JlY29y
ZDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1dGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF0
dHJpYnV0ZXMoImF0dHJpYnV0ZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gYXR0cmlidXRlczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBDaGFy
YWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBjaGFyYWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gY2hhcmFjdGVyRGF0YSgiY2hhcmFjdGVyRGF0YSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKaW5kZXggZjE3Nzc3OWIxMDdkZWI2NGY0OTA3OWEzOGQzMzU4MDY1
NzhmYWZlMy4uZTVhZTI1M2M1MTdjZTdjOTY5NWRkMDkzMzM3YjViZWUzYzFlMTgxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcApAQCAtMTg1Miw3ICsxODUyLDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCBP
d25QdHI8RXZlbnRUYXJnZXREYXRhPj4gRXZlbnRUYXJnZXREYXRhTWFwOwogCiBzdGF0aWMgRXZl
bnRUYXJnZXREYXRhTWFwJiBldmVudFRhcmdldERhdGFNYXAoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChFdmVudFRhcmdldERhdGFNYXAsIG1hcCwgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxFdmVudFRhcmdldERhdGFNYXA+IG1hcCgpOwogICAgIHJldHVy
biBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCAzYjRhOTc5
ZGZiZmExY2Q3MGZkMDAyODE1MmYzNTVmNDYxNTZlNGUwLi5kOTI2ZTZkN2ViODkyMWYzNTYwOTE3
OWNjMDliODI2NGZmYjQ5OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRv
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBA
IC0zNywxNCArMzcsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBRdWFsaWZpZWRO
YW1lJiBwc2V1ZG9FbGVtZW50VGFnTmFtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIG5hbWUsIChudWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVs
bEF0b20pKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gbmFtZShu
dWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVsbEF0b20pOwogICAgIHJldHVybiBuYW1lOwogfQogCiBT
dHJpbmcgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoUHNldWRvSWQg
cHNldWRvSWQpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgYWZ0ZXIsIChBU0NJSUxpdGVyYWwoIjo6YWZ0ZXIiKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJlZm9yZSwgKEFTQ0lJTGl0ZXJhbCgi
OjpiZWZvcmUiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGFm
dGVyKEFTQ0lJTGl0ZXJhbCgiOjphZnRlciIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgU3RyaW5nPiBiZWZvcmUoQVNDSUlMaXRlcmFsKCI6OmJlZm9yZSIpKTsKICAgICBzd2l0
Y2ggKHBzZXVkb0lkKSB7CiAgICAgY2FzZSBBRlRFUjoKICAgICAgICAgcmV0dXJuIGFmdGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCmluZGV4IGZkNzliZGFhZGEzODI1MTczYjg3
OGMwODk4NDI0ODhjNTM5MjI4Y2YuLjA0MzdiZmI1Njg2ZmQwYzk2MDk5NzFhZDFiNWIxOWRjYzcx
OTk4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKQEAgLTc0LDcgKzc0LDcg
QEAgc3RydWN0IFFOYW1lQ29tcG9uZW50c1RyYW5zbGF0b3IgewogCiBzdGF0aWMgaW5saW5lIFFO
YW1lU2V0JiBxdWFsaWZpZWROYW1lQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChRTmFtZVNldCwgbmFtZUNhY2hlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFFOYW1lU2V0PiBuYW1lQ2FjaGUoKTsKICAgICByZXR1cm4gbmFtZUNhY2hlOwogfQog
CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBRdWFsaWZpZWROYW1lOjppbml0KCkKIAogY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbnVsbFFOYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbnVsbE5hbWUsIChudWxsQXRvbSwgbnVsbEF0b20sIG51
bGxBdG9tKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IG51bGxO
YW1lKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pOwogICAgIHJldHVybiBudWxsTmFtZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDIwNDdhZTM4OTljNGFl
OTg2MjQxNWM0OTZlNzM2MTY4ZGNlMzk3NmIuLjdjNmMwYmY0NmJmZWQyODU3NmVkYmVhMjE1ZDE5
MTUyNGYxZTEwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTExNSw3
ICsxMTUsNyBAQCBzdGF0aWMgYm9vbCBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFn
ZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogCiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24g
aXMgbm90IEhUTUw1IGNvbXBsaWFudC4gVGhlc2UgYmVsb25nIGluIHRoZSBNSU1FIHJlZ2lzdHJ5
IGFzICJ0ZXh0L2phdmFzY3JpcHQ8dmVyc2lvbj4iIGVudHJpZXMuCiAgICAgdHlwZWRlZiBIYXNo
U2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBMYW5ndWFnZVNldDsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTGFuZ3VhZ2VTZXQsIGxhbmd1YWdlcywgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxMYW5ndWFnZVNldD4gbGFuZ3VhZ2VzKCk7CiAgICAgaWYgKGxh
bmd1YWdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiamF2YXNjcmlwdCIp
OwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJqYXZhc2NyaXB0Iik7CkBAIC0zNDYsNyArMzQ2LDcg
QEAgdm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpCiAgICAgICAgICYmICFtX2NhY2hlZFNjcmlwdC0+cGFzc2VzQWNjZXNzQ29udHJvbENo
ZWNrKG1fZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpKSB7CiAKICAgICAgICAg
ZGlzcGF0Y2hFcnJvckV2ZW50KCk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4g
c2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVz
c2FnZShBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jv
c3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKTsKICAgICAgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCBlMzU3YTUzZDk0ZDA4YTIxNmZhMWEw
NzU4YmQ5YmFmZTRiYmJmMDM1Li5lZDA3ZWVkNjMwMGMxMWQ1OWY4MzdjYmY2Yzc2YWQzOGU4OWU4
MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBA
IHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29uc3QgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVL
ZXkmIGEsIGNvbnN0IFByZXNlbnRhdGlvCiAKIHN0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVD
YWNoZSYgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSwgY2FjaGUsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGU+IGNh
Y2hlKCk7CiAgICAgcmV0dXJuIGNhY2hlOwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0
ZToKIAogc3RhdGljIFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lciYgcHJlc2VudGF0
aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyLCBjbGVhbmVyLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xl
YW5lcj4gY2xlYW5lcigpOwogICAgIHJldHVybiBjbGVhbmVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IGYwN2Q1NDFlMDM0OTU2YTM5
OGYyNmRmMzlmZTM5MjliYWNlODkyM2EuLjkyMjcyMGIwODBkYTkyNWYzZDU0OWNhZWJiNTZhNDQ5
NjYyMzIzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyBpbnQgdG9JZGVudGlmaWVyKFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlKQogCiBzdGF0aWMgU3RyaW5nJiBzdHlsZVNwYW5DbGFzc1N0cmluZygp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3R5bGVTcGFu
Q2xhc3NTdHJpbmcsICgoQXBwbGVTdHlsZVNwYW5DbGFzcykpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBzdHlsZVNwYW5DbGFzc1N0cmluZygoQXBwbGVTdHlsZVNwYW5DbGFz
cykpOwogICAgIHJldHVybiBzdHlsZVNwYW5DbGFzc1N0cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCAxNzJiODVjM2M3NjE2Y2Y0
NzJjMTUxMjM3OTU0MmI1ZDFiN2E3MTFlLi44Njk3OWY4ZTQ3NTVlYTg4YWI2NjAwN2QzM2U0N2E1
NDE1NzM2YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIGJvb2wgTWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFk
ZE5hbWVzcGFjZUVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAocHJlZml4
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSh4bWxuc0F0
b20pOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgeG1sbnNX
aXRoQ29sb24sIChBU0NJSUxpdGVyYWwoInhtbG5zOiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4geG1sbnNXaXRoQ29sb24oQVNDSUlMaXRlcmFsKCJ4bWxuczoiKSk7CiAg
ICAgcmV0dXJuICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSh4bWxuc1dpdGhDb2xvbiArIHByZWZpeCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKaW5kZXggNmMwNjJiNTVhNjM2N2ZjOTkwZDAzODU0YWI2OTk5Yjg5OGYzMDg4MS4u
YTllMGM4MzJkNDE2YjViMzRhMzZjN2IyYzljNTg2MTk3NjM4NjM1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTEwMiwx
NCArMTAyLDE0IEBAIHByaXZhdGU6CiAKIHN0YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VOZXdsaW5l
Tm9kZShjb25zdCBOb2RlICpub2RlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nLCAoQXBwbGVJbnRlcmNo
YW5nZU5ld2xpbmUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpbnRlcmNo
YW5nZU5ld2xpbmVDbGFzc1N0cmluZyhBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7CiAgICAgcmV0
dXJuIG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShiclRhZykgJiYgCiAgICAgICAgICAgIHN0YXRp
Y19jYXN0PGNvbnN0IEVsZW1lbnQgKj4obm9kZSktPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpID09
IGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nOwogfQogCiBzdGF0aWMgYm9vbCBpc0ludGVy
Y2hhbmdlQ29udmVydGVkU3BhY2VTcGFuKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29udmVydGVkU3BhY2VTcGFuQ2xhc3NT
dHJpbmcsIChBcHBsZUNvbnZlcnRlZFNwYWNlKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gY29udmVydGVkU3BhY2VTcGFuQ2xhc3NTdHJpbmcoQXBwbGVDb252ZXJ0ZWRTcGFj
ZSk7CiAgICAgcmV0dXJuIG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiAKICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnQgKj4obm9kZSktPmdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpID09IGNvbnZlcnRlZFNwYWNlU3BhbkNsYXNzU3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA1NTVkN2VlYzA3MTliZmUwMzg0MTNiOTFiMTQxMTAx
YWJhMDdhNGVjLi5kNTdlYmU3YmFiOGM5Y2E5MWI2OWI1YjA2ZGU4ZjBmMjQ0YzkwNmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIGJv
b2wgaXNUYWJsZVN0cnVjdHVyZU5vZGUoY29uc3QgTm9kZSAqbm9kZSkKIAogY29uc3QgU3RyaW5n
JiBub25CcmVha2luZ1NwYWNlU3RyaW5nKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBub25CcmVha2luZ1NwYWNlU3RyaW5nLCAoJm5vQnJlYWtTcGFjZSwg
MSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG5vbkJyZWFraW5nU3BhY2VT
dHJpbmcoJm5vQnJlYWtTcGFjZSwgMSk7CiAgICAgcmV0dXJuIG5vbkJyZWFraW5nU3BhY2VTdHJp
bmc7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA3ZDZhN2Y2YmRiZTBhZTU1
NWNhOTQ1YmQ1MjUxMWMyYTI3ODcyMGZiLi43MTVlMGU4ZWRmMmUzOTNiMzIzZWMwOWIxOTM5ZWIz
NjEyMGU3YzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0yMTIsOCArMjEyLDgg
QEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3R5bGVOb2RlT3BlblRhZyhT
dHJpbmdCdWlsZGVyJiBvdXQsIFN0eWxlUHIKIAogY29uc3QgU3RyaW5nJiBTdHlsZWRNYXJrdXBB
Y2N1bXVsYXRvcjo6c3R5bGVOb2RlQ2xvc2VUYWcoYm9vbCBpc0Jsb2NrKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRpdkNsb3NlLCAoQVNDSUlM
aXRlcmFsKCI8L2Rpdj4iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHN0eWxlU3BhbkNsb3NlLCAoQVNDSUlMaXRlcmFsKCI8L3NwYW4+IikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBkaXZDbG9zZShBU0NJSUxp
dGVyYWwoIjwvZGl2PiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBzdHlsZVNwYW5DbG9zZShBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSk7CiAgICAgcmV0dXJuIGlz
QmxvY2sgPyBkaXZDbG9zZSA6IHN0eWxlU3BhbkNsb3NlOwogfQogCkBAIC01NTgsNyArNTU4LDcg
QEAgc3RhdGljIE5vZGUqIGhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1cChjb25zdCBSYW5nZSog
cmFuZ2UsIEVBbm5vdGF0ZUZvckludGVyY2gKIHN0YXRpYyBTdHJpbmcgY3JlYXRlTWFya3VwSW50
ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBSYW5nZSYgcmFuZ2UsIGNvbnN0IFJhbmdl
JiB1cGRhdGVkUmFuZ2UsIFZlY3RvcjxOb2RlKj4qIG5vZGVzLAogICAgIEVBbm5vdGF0ZUZvcklu
dGVyY2hhbmdlIHNob3VsZEFubm90YXRlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMsIEVB
YnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVSTHMpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nLCAoQVND
SUlMaXRlcmFsKCI8YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lICJcIj4iKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGludGVyY2hhbmdlTmV3
bGluZVN0cmluZyhBU0NJSUxpdGVyYWwoIjxiciBjbGFzcz1cIiIgQXBwbGVJbnRlcmNoYW5nZU5l
d2xpbmUgIlwiPiIpKTsKIAogICAgIGJvb2wgY29sbGFwc2VkID0gdXBkYXRlZFJhbmdlLmNvbGxh
cHNlZChBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBpZiAoY29sbGFwc2VkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQmxvYi5jcHAKaW5kZXggMDFkMzMwZWI2MDY5NDZmOWVlMWJlMmVhNTVjMjBlZTU0NDY1ODZk
My4uZTk4OWRjMGU1MDFkMGFiYjNkOTNlNzQ2MDFiODM5MjRlYWVjMGE1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgQmxvYlVSTFJlZ2lzdHJ5Ojp1bnJl
Z2lzdGVyVVJMKGNvbnN0IFVSTCYgdXJsKQogCiBVUkxSZWdpc3RyeSYgQmxvYlVSTFJlZ2lzdHJ5
OjpyZWdpc3RyeSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJsb2JV
UkxSZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Qmxv
YlVSTFJlZ2lzdHJ5PiBpbnN0YW5jZSgpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzNkOWIwNDYxY2I2Zjc4ODhiNDg3MTJlNGU0NjJhNDA3
YjBiZTIzLi4wZTNkMWVkMDRjN2VlNDA0M2YyMGQzYjkxMjlkMTUzYzdmYTliODY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikKIAogdm9p
ZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
dmFsdWVDb250YWluZXJQc2V1ZG8sICgiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5k
LXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNl
dWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCmluZGV4IGRhMDdiZTA0NDdlNTgzOWU5YzU5YzBlZjNkNWNmOWI4MmEwZWE0ZDAuLjA4ZTRm
ZTExYzI0OTJmOTIyYWFlOTc3MTU1ODljMDJiYTc5OGJjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcApAQCAtNzksNyArNzksNyBAQCBVcGxvYWRCdXR0b25FbGVtZW50OjpV
cGxvYWRCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBVcGxvYWRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgi
LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRv
SWQoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDQ1MTAwZDFlMDc2NGVkNjU1MmYyMTdlMGZhOThhNzRl
ZjIzMDkyMGUuLmQ3ZDQ4MGQwMDk0YWI3ZTQ4ZTkyMDE0YTA4Y2RjNzcwMjY5NmI5YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgQXRv
bWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZSYgY28KIHsKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBvd25l
ckZvcm1Gb3JTdGF0ZShjb250cm9sKTsKICAgICBpZiAoIWZvcm0pIHsKLSAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZm9ybUtleUZvck5vT3duZXIs
ICgiTm8gb3duZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZvcm1LZXlGb3JOb093bmVy
KCJObyBvd25lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogICAgIEZvcm1Ub0tleU1hcDo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1Ub0tleU1hcC5maW5kKGZvcm0pOwpAQCAtMzkwLDcgKzM5
MCw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybVN0YXRlU2lnbmF0dXJlKCkKICAgICAvLyBJbiB0aGUg
bGVnYWN5IHZlcnNpb24gb2Ygc2VyaWFsaXplZCBzdGF0ZSwgdGhlIGZpcnN0IGl0ZW0gd2FzIGEg
bmFtZQogICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBvZiBhIGZvcm0gY29udHJvbC4gVGhlIGZvbGxv
d2luZyBzdHJpbmcgbGl0ZXJhbCBzaG91bGQKICAgICAvLyBjb250YWluIHNvbWUgY2hhcmFjdGVy
cyB3aGljaCBhcmUgcmFyZWx5IHVzZWQgZm9yIG5hbWUgYXR0cmlidXRlIHZhbHVlcy4KLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzaWduYXR1cmUsIChBU0NJSUxp
dGVyYWwoIlxuXHI/JSBXZWJLaXQgc2VyaWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxy
PSYiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNpZ25hdHVyZShBU0NJ
SUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQgc2VyaWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBc
blxyPSYiKSk7CiAgICAgcmV0dXJuIHNpZ25hdHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBjMjk0OWEyMDhmMDVlNWEzZDVkYjc2ZmRhNjY2
ZmFkOGU2YTA3MjAwLi5lOTA0NzkwMDgwNTU0NmYzM2U5MjU4OTk5NWZlYmI2MTgwMTI4ZmFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYx
Miw3IEBAIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBIVE1MQW5jaG9yRWxlbWVudCosIFJlZlB0cjxF
bGVtZW50Pj4gUm9vdEVkaXRhYmxlRWxlbWVudE1hCiAKIHN0YXRpYyBSb290RWRpdGFibGVFbGVt
ZW50TWFwJiByb290RWRpdGFibGVFbGVtZW50TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUm9vdEVkaXRhYmxlRWxlbWVudE1hcCwgbWFwLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJvb3RFZGl0YWJsZUVsZW1lbnRNYXA+IG1hcCgpOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAK
aW5kZXggOTQ3ZTcxZTkwNzhmOGIyNTk4ZDRlOWM0MmFjYzY4OGRiMmEzMWJmYi4uNGE2MzAyYjNi
ZjIzYzJhZWEwNDM0Mzk4N2MyY2IxMTc3YzcwZDA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTY2LDE1ICs2NiwxNSBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIEhUTUxCdXR0b25FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHN3
aXRjaCAobV90eXBlKSB7CiAgICAgICAgIGNhc2UgU1VCTUlUOiB7Ci0gICAgICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJtaXQsICgi
c3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3VibWl0KCJzdWJt
aXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJl
dHVybiBzdWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGJ1
dHRvbiwgKCJidXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBidXR0
b24oImJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICAgICAgcmV0dXJuIGJ1dHRvbjsKICAgICAgICAgfQogICAgICAgICBjYXNlIFJFU0VUOiB7Ci0g
ICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCByZXNldCwgKCJyZXNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+
IHJlc2V0KCJyZXNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
ICAgICAgICAgcmV0dXJuIHJlc2V0OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IDIzZDIxOTM5ODBiY2U2ZDU5NWIzNGJh
OWY2NjA0NDk1MTY3NzY1MzguLjc1MGRjOTY5NDk0ZTk3MzE3ZGM5NDY3ZWM4MGM4YzRjZjA4NDli
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdG9yLCAoInN1bW1hcnk6Zmlyc3Qt
b2YtdHlwZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzZWxlY3Rvcigic3VtbWFyeTpmaXJzdC1v
Zi10eXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHNlbGVjdG9yOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5jcHAKaW5kZXggNjgxZTU1MzA0MzI2Y2E2ODc5NjBmNGVhMGEzYzEwM2M0MTU5N2ZkYS4uNTc2
NTFjYTMzNWYwMTM3YTczNjNiMjQ4N2Q4NTNjZGMyNjkxYTVlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBI
VE1MRmllbGRTZXRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZp
ZWxkc2V0LCAoImZpZWxkc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGZpZWxkc2V0
KCJmaWVsZHNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBmaWVsZHNldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50
LmNwcAppbmRleCA3MTRiZGIyZTFiZDhjYWIzYThmNWJlMWJjYzcxY2QxNDMyNDdiZDg0Li5lMDk0
ZjVlNGMwYWNlN2E1N2YyMzExMzUyODM3MjViZDUxMmI3MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgS2V5Z2VuU2VsZWN0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogSFRN
TFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVudCwgMCkKICAgICB7Ci0gICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13
ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQo
Ii13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICBzZXRQc2V1ZG8ocHNldWRvSWQpOwogICAgIH0KIApAQCAtMTEyLDcgKzEx
Miw3IEBAIGJvb2wgSFRNTEtleWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYgZW5jb2RlZF92YWx1ZXMsIGJvb2wpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEtleWdl
bkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywga2V5Z2VuLCAoImtleWdlbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBiODUxMTQ1ZjA4ZjcxODIyODQ1YTM4
YjU0MTYwMzZhOWQzNjdhNTU0Li45ZWMyZWQ2NjZjMDU2N2RmMGIxNDEzNjQ3NmQzYjQxNGFjYzFl
OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBMaW5rRXZlbnRTZW5k
ZXImIGxpbmtMb2FkRXZlbnRTZW5kZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChMaW5rRXZlbnRTZW5kZXIsIHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFt
ZXMoKS5sb2FkRXZlbnQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGlua0V2ZW50U2Vu
ZGVyPiBzaGFyZWRMb2FkRXZlbnRTZW5kZXIoZXZlbnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAg
cmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggY2IxMTc1YTkwMWRkNzQyMTdkMzdkMzEyYzRmOTdhNDYw
NzJjY2Q2MC4uY2Y2Y2NmNTkzNWE2NzNiMzM1YjQxODZhN2MwMzc1OTIyYWI3YjZlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHR5cGVkZWYgSGFzaE1hcDxEb2N1bWVudCosIEhh
c2hTZXQ8SFRNTE1lZGlhRWxlbWVudCo+PiBEb2N1bWVudEVsZW1lbnRTZXRNYXA7CiBzdGF0aWMg
RG9jdW1lbnRFbGVtZW50U2V0TWFwJiBkb2N1bWVudFRvRWxlbWVudFNldE1hcCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERvY3VtZW50RWxlbWVudFNldE1hcCwgbWFw
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERvY3VtZW50RWxlbWVudFNldE1hcD4g
bWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAKaW5kZXggZjJiZmI0Y2UxM2M0MTYwZTI1ODEwNjIxY2RjMGQ5NTY2
ZDA1NDU2My4uMGVhNjhlNjkxYTU5YjY3YTlhMDgwYzdhODk1YjAzNzA0N2Y4OWYzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIGJvb2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgb3B0Z3JvdXAsICgib3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
b3B0Z3JvdXAoIm9wdGdyb3VwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1
dEVsZW1lbnQuY3BwCmluZGV4IGNlMzgxYjYwODQzNWFiZGE5M2ZlZmViZmIwMjIzOWQ2NjE5MjJj
Y2EuLjcwZjFhYTk5M2YwZTI3ZDEzNmUyYWM1ODlhZDJmZTgwNmM5ZThjMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFBhc3NS
ZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91dHB1dEVsZW1l
bnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3V0cHV0LCAoIm91dHB1dCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBvdXRwdXQoIm91dHB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvdXRwdXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IGU2MzFhZTJiMTgzMTlk
MzhkYjhjMGJmMTY3NWU1NzYzNDYwYzY2YjYuLjZmYTM3NDhjNGI4ZTY5ZDNhNGRlYmVlYjAwMjI0
ZmQ5NzQ4ZGZkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgY29uc3QgYXV0byByZW1vdmVTbmFw
c2hvdFRpbWVyRGVsYXkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHsgMTUwMCB9OwogCiBz
dGF0aWMgY29uc3QgU3RyaW5nIHRpdGxlVGV4dChQYWdlKiBwYWdlLCBTdHJpbmcgbWltZVR5cGUp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6
ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9MYWJlbFRpdGxlTWFwLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXA+IG1pbWVUeXBlVG9MYWJl
bFRpdGxlTWFwKCk7CiAgICAgU3RyaW5nIHRpdGxlVGV4dCA9IG1pbWVUeXBlVG9MYWJlbFRpdGxl
TWFwLmdldChtaW1lVHlwZSk7CiAgICAgaWYgKCF0aXRsZVRleHQuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gdGl0bGVUZXh0OwpAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgY29uc3QgU3RyaW5n
IHRpdGxlVGV4dChQYWdlKiBwYWdlLCBTdHJpbmcgbWltZVR5cGUpCiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgc3VidGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBtaW1lVHlwZSkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01h
cCwgbWltZVR5cGVUb0xhYmVsU3VidGl0bGVNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01hcD4gbWltZVR5cGVUb0xhYmVsU3VidGl0
bGVNYXAoKTsKICAgICBTdHJpbmcgc3VidGl0bGVUZXh0ID0gbWltZVR5cGVUb0xhYmVsU3VidGl0
bGVNYXAuZ2V0KG1pbWVUeXBlKTsKICAgICBpZiAoIXN1YnRpdGxlVGV4dC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBzdWJ0aXRsZVRleHQ7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3Qq
IHJvb3QpCiAKIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFydE9mU25hcHNob3RPdmVy
bGF5KE5vZGUqIG5vZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc2VsZWN0b3IsICgiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gc2VsZWN0b3IoIi5zbmFwc2hvdC1vdmVybGF5IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IHNuYXBzaG90TGFiZWwgPSBl
bnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIG5vZGUgJiYgc25hcHNob3RMYWJlbCAmJiAobm9k
ZSA9PSBzbmFwc2hvdExhYmVsLmdldCgpIHx8IG5vZGUtPmlzRGVzY2VuZGFudE9mKHNuYXBzaG90
TGFiZWwuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKaW5kZXggODY3ZGQyNmZkY2NkNGMyYzU2YmU4MWQ5ZjY1MjExMmZkMDk0ZDYwYi4uZTc5Yjcz
NzJjODNiODdjNjA4YzAwNTkzNTFkMzNlNTUyZmEwZmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBzZWxlY3RNdWx0aXBsZSwgKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc2VsZWN0T25lLCAoInNlbGVjdC1vbmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gc2VsZWN0TXVsdGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IHNlbGVjdE9uZSgic2VsZWN0LW9uZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtX211bHRpcGxlID8gc2VsZWN0
TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVs
ZW1lbnQuY3BwCmluZGV4IGM1OWVmMTY4NWQ2YmJjNmU1Yzk3ZWI3Y2IxYTc4NTFlMjc3MTdhNjku
LmQzZmUwMDg4NGQwMWEwYjkzZWFjMDNhOGIyOWNiYmE2NWEzZTM3OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgU3R5bGVFdmVudFNlbmRlciYgc3R5bGVMb2FkRXZl
bnRTZW5kZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUV2
ZW50U2VuZGVyLCBzaGFyZWRMb2FkRXZlbnRTZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0eWxlRXZlbnRTZW5kZXI+IHNoYXJlZExv
YWRFdmVudFNlbmRlcihldmVudE5hbWVzKCkubG9hZEV2ZW50KTsKICAgICByZXR1cm4gc2hhcmVk
TG9hZEV2ZW50U2VuZGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcAppbmRleCBmNDZiOWNkZWY3NjhkYTFjMTAzYWY2YzZkNTQ1MzI0Zjk1ODMyZTQy
Li4xMjZlMTI5NDY0OWFlOTI4ZWFiMjk0MTlhNzg3OGZmOTIxMDAxMzZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogcm9vdCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IHRleHRhcmVhKCJ0ZXh0YXJlYSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0ZXh0YXJlYTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1
ZWVhMjFkYWU5N2Q5MGJmNjUwYjVhZDYxYzIwZTg3MjgyNDZiM2YwLi5kNjRlZTI1NGQ3ZjExZmI5
ZmQzNjQxYzVjM2Q1ZmJmNGZhNmM3NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzc1LDkgKzM3NSw5IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0CiAK
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3J3YXJkLCAoImZvcndhcmQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dhcmQsICgiYmFja3dhcmQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gbm9uZSgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+
IGZvcndhcmQoImZvcndhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBiYWNrd2FyZCgi
YmFja3dhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3
aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggZDBlMjViZTE5MDdlM2M5MmVh
ZmUzNjgzNmQ4ODFkNjJiZjhjYjUwOC4uZTQ4ODQxYjgyYzI1ODhhOWEyMWU1NThkZjlmZDM4YmI2
ZTQ5OTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTY0LDgg
KzY0LDggQEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0
JiBlbmNvZGluZywgYm9vbCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZG90WFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiLngiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGRvdFlTdHJpbmcsIChBU0NJSUxpdGVyYWwoIi55IikpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkb3RYU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiLngiKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZG90WVN0cmluZyhBU0NJSUxpdGVyYWwoIi55
IikpOwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRvdFhTdHJpbmcsIG1fY2xpY2tM
b2NhdGlvbi54KCkpOwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRvdFlTdHJpbmcs
IG1fY2xpY2tMb2NhdGlvbi55KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZU5hbWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMu
Y3BwCmluZGV4IGFjMDg5NmEwNmE0N2UxYTg4MDhjZDg5ZmRmNmEzYzQzMzYwMDNkMzIuLjQ4OTAz
ZmNjMGJkMDUzNGJjZWYxMmUxNzEwMDQzZWZlN2QwOTY5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlTmFtZXMuY3BwCkBAIC0zMSwxMzkgKzMxLDEzOSBAQCBuYW1lc3BhY2UgSW5wdXRU
eXBlTmFtZXMgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJidXR0b24iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgY2hlY2tib3goKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiY2hlY2tib3giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgi
Y2hlY2tib3giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJjb2xvciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJjb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IGRhdGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiZGF0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgZGF0ZXRpbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gbmFtZSgiZGF0ZXRpbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBkYXRl
dGltZWxvY2FsKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoImRhdGV0aW1lLWxvY2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5h
bWUoImRhdGV0aW1lLWxvY2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZW1haWwoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgi
ZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiZW1haWwiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoImZpbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgi
ZmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJoaWRkZW4iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gbmFtZSgiaGlkZGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
aW1hZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiaW1hZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiaW1hZ2UiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBtb250aCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJtb250aCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBuYW1lKCJtb250aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIG51bWJlcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJudW1iZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgibnVtYmVyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgcGFzc3dvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicGFzc3dvcmQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gbmFtZSgicGFzc3dvcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiByYWRpbygpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJyYWRpbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJyYWRpbyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5h
bWUoInJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgcmVzZXQoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmVzZXQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBzZWFyY2goKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgic2VhcmNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInNlYXJj
aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1l
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJzdWJtaXQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gbmFtZSgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGVs
ZXBob25lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoInRlbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJ0ZWwiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbmFtZSgidGV4dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHRpbWUoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgidGltZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJ0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdXJsKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJ1cmwiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiB3ZWVrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIndlZWsiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbmFtZSgid2VlayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAK
aW5kZXggYjNkMjI4YzNiOTg4MDc3ODkwMjUwN2YzNTQ5NzEyOTMyNTI5NGVmNS4uYzBkOGVmMDcx
ZmZhMDE5MTMxYmIwODA5YWRkMDAzYTMwM2RiM2I5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFDb250cm9sbGVyLmNwcApAQCAtMjg5LDE5ICsyODksMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xs
ZXI6OnNldE11dGVkKGJvb2wgZmxhZykKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcGxh
eWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHdhaXRpbmcsICgid2FpdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBs
YXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwbGF5aW5nLCAoInBsYXlpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gcGxheWluZygicGxheWluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBwbGF5aW5nOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBw
bGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGVu
ZGVkKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBlbmRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFu
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCmluZGV4IGM0NzcxOGEw
YzFmMzNiOTVlM2JmM2E2YjIzNWI1MmNjYzQ3ODQ4ZDAuLjM3NDI5YjAwMjJjODU3Y2UwZDY2OWVk
MjZmZjZmODAyZDAwZGU3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJh
bmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKQEAgLTY1LDEz
ICs2NSwxMyBAQCBTdGVwUmFuZ2U6OlN0ZXBSYW5nZShjb25zdCBEZWNpbWFsJiBzdGVwQmFzZSwg
Y29uc3QgRGVjaW1hbCYgbWluaW11bSwgY29uc3QgRGVjaQogRGVjaW1hbCBTdGVwUmFuZ2U6OmFj
Y2VwdGFibGVFcnJvcigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgREJM
X01BTlRfRElHIGluc3RlYWQgb2YgRkxUX01BTlRfRElHIHJlZ2FyZGluZyB0byBIVE1MNSBzcGVj
aWZpY2F0aW9uLgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNp
bWFsLCB0d29Qb3dlck9mRmxvYXRNYW50aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwg
VUlOVDY0X0MoMSkgPDwgRkxUX01BTlRfRElHKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IERlY2ltYWw+IHR3b1Bvd2VyT2ZGbG9hdE1hbnRpc3NhQml0cyhEZWNpbWFsOjpQb3Np
dGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgRkxUX01BTlRfRElHKTsKICAgICByZXR1cm4gbV9zdGVw
RGVzY3JpcHRpb24uc3RlcFZhbHVlU2hvdWxkQmUgPT0gU3RlcFZhbHVlU2hvdWxkQmVSZWFsID8g
bV9zdGVwIC8gdHdvUG93ZXJPZkZsb2F0TWFudGlzc2FCaXRzIDogRGVjaW1hbCgwKTsKIH0KIAog
RGVjaW1hbCBTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKGNvbnN0IERlY2ltYWwmIGN1cnJl
bnRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbmV3VmFsdWUpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IERlY2ltYWwsIHRlblBvd2VyT2YyMSwgKERlY2lt
YWw6OlBvc2l0aXZlLCAyMSwgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBE
ZWNpbWFsPiB0ZW5Qb3dlck9mMjEoRGVjaW1hbDo6UG9zaXRpdmUsIDIxLCAxKTsKICAgICBpZiAo
bmV3VmFsdWUgPj0gdGVuUG93ZXJPZjIxKQogICAgICAgICByZXR1cm4gbmV3VmFsdWU7CiAKQEAg
LTE1MCw3ICsxNTAsNyBAQCBib29sIFN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKGNvbnN0IERlY2lt
YWwmIHZhbHVlRm9yQ2hlY2spIGNvbnN0CiAgICAgLy8gRGVjaW1hbCdzIGZyYWN0aW9uYWwgcGFy
dCBzaXplIGlzIERCTF9NQU5fRElHLWJpdC4gSWYgdGhlIGN1cnJlbnQgdmFsdWUKICAgICAvLyBp
cyBncmVhdGVyIHRoYW4gc3RlcCoyXkRCTF9NQU5UX0RJRywgdGhlIGZvbGxvd2luZyBjb21wdXRh
dGlvbiBmb3IKICAgICAvLyByZW1haW5kZXIgbWFrZXMgbm8gc2Vuc2UuCi0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZEb3VibGVNYW50
aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlOVDY0X0MoMSkgPDwgREJMX01BTlRf
RElHKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IERlY2ltYWw+IHR3b1Bvd2Vy
T2ZEb3VibGVNYW50aXNzYUJpdHMoRGVjaW1hbDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8
IERCTF9NQU5UX0RJRyk7CiAgICAgaWYgKHZhbHVlIC8gdHdvUG93ZXJPZkRvdWJsZU1hbnRpc3Nh
Qml0cyA+IG1fc3RlcCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIFRoZSBjb21wdXRh
dGlvbiBmb2xsb3dzIEhUTUw1IDQuMTAuNy4yLjEwIGBUaGUgc3RlcCBhdHRyaWJ1dGUnIDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCmluZGV4IGRlYmM4MzEwMjc5OWMxNjZjNjc3ZTdjNjRkMGI0ZmIwZmEyNTA1ZDAu
LmY1N2NiMjVkZDA5YWJhY2NhOWIzNjUwMDIxOGUyYmNmY2FmMzI1NTEgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cApAQCAtMTg5Nyw3ICsxODk3LDcgQEAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6d2Via2l0R2V0SW1hZ2VEYXRhSEQoZmxvYXQgc3gsIGYKIFBhc3NSZWZQ
dHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmdldEltYWdlRGF0YShJbWFn
ZUJ1ZmZlcjo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBmbG9hdCBzeCwgZmxv
YXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAg
ICAgaWYgKCFjYW52YXMoKS0+b3JpZ2luQ2xlYW4oKSkgewotICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgi
VW5hYmxlIHRvIGdldCBpbWFnZSBkYXRhIGZyb20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBo
YXMgYmVlbiB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiBkYXRhLiIpKSk7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiVW5h
YmxlIHRvIGdldCBpbWFnZSBkYXRhIGZyb20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMg
YmVlbiB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiBkYXRhLiIpKTsKICAgICAgICAgY2FudmFzKCkt
PmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKICAgICAgICAgZWMgPSBTRUNVUklU
WV9FUlI7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmNwcAppbmRleCBmZjFmOTg2MmM5NTkwNjQ2YjVmNDZiZGEwNmZjMzYwNGZj
NTcxMGNjLi43NzA5ZDc2ODQ5MDM4YTIxZmNhMzRjZDdjNWU4YjFiYzFiYzQxM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTA1MCw5ICsx
MDUwLDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVH
SU5fU1RBVEUoTWFya3VwRGVjbGFyYXRpb25PcGVuU3RhdGUpIHsKLSAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGFzaERhc2hTdHJpbmcsIChBU0NJSUxpdGVy
YWwoIi0tIikpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZG9jdHlwZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZG9jdHlwZSIpKSk7Ci0gICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNkYXRhU3RyaW5nLCAoQVNDSUlM
aXRlcmFsKCJbQ0RBVEFbIikpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gZGFzaERhc2hTdHJpbmcoQVNDSUlMaXRlcmFsKCItLSIpKTsKKyAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gZG9jdHlwZVN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3R5cGUi
KSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNkYXRhU3RyaW5nKEFT
Q0lJTGl0ZXJhbCgiW0NEQVRBWyIpKTsKICAgICAgICAgaWYgKGNjID09ICctJykgewogICAgICAg
ICAgICAgU2VnbWVudGVkU3RyaW5nOjpMb29rQWhlYWRSZXN1bHQgcmVzdWx0ID0gc291cmNlLmxv
b2tBaGVhZChkYXNoRGFzaFN0cmluZyk7CiAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21l
bnRlZFN0cmluZzo6RGlkTWF0Y2gpIHsKQEAgLTEyNTMsOCArMTI1Myw4IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgcHVibGljU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJwdWJsaWMiKSkp
OwotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3lz
dGVtU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzeXN0ZW0iKSkpOworICAgICAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcHVibGljU3RyaW5nKEFTQ0lJTGl0ZXJhbCgicHVibGlj
IikpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc3lzdGVtU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgic3lzdGVtIikpOwogICAgICAgICAgICAgaWYgKGNjID09ICdQJyB8
fCBjYyA9PSAncCcpIHsKICAgICAgICAgICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVh
ZFJlc3VsdCByZXN1bHQgPSBzb3VyY2UubG9va0FoZWFkSWdub3JpbmdDYXNlKHB1YmxpY1N0cmlu
Zyk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBTZWdtZW50ZWRTdHJpbmc6OkRpZE1h
dGNoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IDI1
ZDRiZmYzNDAwNTJmMGVjM2QzZTY3YzdkNmMxNDYyN2RhNzQ3ODguLjM3MjY5NmI0NDVmMGFjNzg3
ZjFjZTFjYTc3MDQ0NDZlNjkwNDk0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBYU1NBdWRpdG9yOjppbml0KERv
Y3VtZW50KiBkb2N1bWVudCwgWFNTQXVkaXRvckRlbGVnYXRlKiBhdWRpdG9yRGVsZWdhdGUpCiAK
ICAgICBTdHJpbmcgaHR0cEJvZHlBc1N0cmluZzsKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVy
KCkpIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgWFNT
UHJvdGVjdGlvbkhlYWRlciwgKEFTQ0lJTGl0ZXJhbCgiWC1YU1MtUHJvdGVjdGlvbiIpKSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IFhTU1Byb3RlY3Rpb25IZWFkZXIo
QVNDSUlMaXRlcmFsKCJYLVhTUy1Qcm90ZWN0aW9uIikpOwogICAgICAgICBTdHJpbmcgaGVhZGVy
VmFsdWUgPSBkb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoWFNTUHJv
dGVjdGlvbkhlYWRlcik7CiAgICAgICAgIFN0cmluZyBlcnJvckRldGFpbHM7CiAgICAgICAgIHVu
c2lnbmVkIGVycm9yUG9zaXRpb24gPSAwOwpAQCAtNTIyLDcgKzUyMiw3IEBAIGJvb2wgWFNTQXVk
aXRvcjo6ZmlsdGVyQnV0dG9uVG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0
KQogCiBib29sIFhTU0F1ZGl0b3I6OmVyYXNlRGFuZ2Vyb3VzQXR0cmlidXRlc0lmSW5qZWN0ZWQo
Y29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNhZmVKYXZhU2NyaXB0VVJMLCAoQVNDSUlMaXRlcmFs
KCJqYXZhc2NyaXB0OnZvaWQoMCkiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHNhZmVKYXZhU2NyaXB0VVJMKEFTQ0lJTGl0ZXJhbCgiamF2YXNjcmlwdDp2b2lkKDApIikp
OwogCiAgICAgYm9vbCBkaWRCbG9ja1NjcmlwdCA9IGZhbHNlOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcmVxdWVzdC50b2tlbi5hdHRyaWJ1dGVzKCkuc2l6ZSgpOyArK2kpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApp
bmRleCA2NDRmYWFlNDc5NjY0ZTkwZTEyZjNkOWQzNTExYjg3M2VkZmRjZDAxLi42YzUyOTFjZDM3
MGEwN2I3NDcwYzk5MjhlNWEwMGNlZjg2Y2FhYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC01Nyw3ICs1Nyw3IEBA
IGJvb2wgRGV0YWlsc01hcmtlckNvbnRyb2w6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIERldGFpbHNNYXJrZXJDb250cm9s
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVkSWQoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcHNldWRJZDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCmluZGV4IGFlMzZmZjMyMGUwZjUyN2FjM2Y3NjVkZDRkYWQxMzIxNjMxNzQxYWYu
LjQzZTM0ZjlhMDdjN2M1YTdmYTZkNjE0NmM3ZWE3YTAzZjY4YTMzZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTg0
LDcgKzg0LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JgogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTI3Miw3ICsyNzIsNyBAQCBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZW5jbG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWVuY2xvc3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMjkxLDcgKzI5MSw3IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNs
b3N1cmVFbGVtCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xv
c3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktZW5jbG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0zMTIsNyArMzEyLDcgQEAg
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAg
LTM3OSw3ICszNzksNyBAQCB2b2lkIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBNZWRp
YUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6dXBkYXRlKCkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhdHVzLWRpc3BsYXkiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhdHVzLWRpc3BsYXkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC00
OTAsNyArNDkwLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0
dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXUKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRl
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0K
IApAQCAtNTcwLDcgKzU3MCw3IEBAIHZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25F
bGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTU5Myw3ICs1OTMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJk
QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbAogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1z
ZWVrLWZvcndhcmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02MTUsNyArNjE1LDcgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9u
RWxlbWVudDoKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXNlZWstYmFjay1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQg
TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cmV3aW5kLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1yZXdpbmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02NzgsNyArNjc4LDcgQEAgdm9pZCBNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwog
fQogCkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGUKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2ds
ZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC03
NTgsNyArNzU4LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb24KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1j
b250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtODIyLDE0ICs4MjIsMTQgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqIGV2ZW4KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9u
cy10cmFjay1saXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGlkOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0
RWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiB7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdGVkQ2xh
c3NWYWx1ZSwgKCJzZWxlY3RlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzZWxlY3RlZENsYXNz
VmFsdWUoInNlbGVjdGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAK
ICAgICBpZiAoIW1lZGlhQ29udHJvbGxlcigpLT5oYXNDbG9zZWRDYXB0aW9ucygpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5l
RWxlbWVudDo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwMjksNyArMTAyOSw3
IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRp
YUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwNTMs
NyArMTA1Myw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRl
ckVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVk
b0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNs
aWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1m
dWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwOTgsNyArMTA5OCw3IEBAIHZvaWQgTWVk
aWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTEzNSw3ICsxMTM1LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXYKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRv
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxs
c2NyZWVuLXZvbHVtZS1taW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTY3LDcgKzExNjcsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9s
dW1lLW1heC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lUmVtYWlu
aW5nRGlzCiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGdldE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTIx
MCw3ICsxMjEwLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50PiBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXkKIAogc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgZ2V0TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudFNoYWRv
d1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJl
bnQtdGltZS1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OnRleHRUcmFja0NvbnRhaW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBpZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXggM2JjN2I4ZjJkYThh
ZDhjMGQxNzRlMGIyNTFkMDk5ZWE5ODBiOWNmNS4uYzU4MDg3YjhjYjYxZWM2NWMzMjIyYTY4NDAy
MzBmNGFhOGNiZDYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9scy5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHM6OnN0b3BIaWRl
RnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbHM6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzIik7CiAgICAgcmV0dXJuIGlkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAppbmRleCBhNTc2MzM0ZGU4Mzkx
YWY0MTYzZTAxYzY1NmFmYTRlODVlZmI1MjEyLi45NDljNjJjMjJkNTE4MjQ1YWIyN2I2OGNlYWQx
MzM1NTQ0MWMyM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVy
U2hhZG93RWxlbWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgYm9vbCBNZXRlclNoYWRvd0VsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogTWV0ZXJJbm5l
ckVsZW1lbnQ6Ok1ldGVySW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1l
dGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWlubmVyLWVs
ZW1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtbWV0ZXItaW5u
ZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNl
dFBzZXVkbyhwc2V1ZG9JZCk7CiB9CiAKQEAgLTgwLDkgKzgwLDkgQEAgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXIKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlclZhbHVlRWxlbWVudDo6dmFsdWVQ
c2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3B0aW11bVBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdWJvcHRpbXVtUHNldWRvSWQsICgi
LXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGV2ZW5MZXNzR29vZFBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdv
b2QtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gb3B0aW11bVBzZXVkb0lkKCItd2Via2l0
LW1ldGVyLW9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzdWJvcHRpbXVtUHNl
dWRvSWQoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGV2ZW5MZXNzR29vZFBzZXVkb0lkKCItd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZh
bHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBIVE1MTWV0
ZXJFbGVtZW50KiBtZXRlciA9IG1ldGVyRWxlbWVudCgpOwogICAgIGlmICghbWV0ZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGQx
YjBlNzhkMTUxMTlkYmYyZWM2NGJhZWI1MjVkMDRiNzhiM2VlMjAuLjY3ZWEzZWNkOTllZmIzZTI0
NzkwN2NlOGIyNzUyYTkyZjIxMTYwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAg
TWV0ZXJCYXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBNZXRlclNoYWRv
d0VsZW1lbnQoZG9jdW1lbnQpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWJhciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtbWV0ZXItYmFyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1
ZG9JZCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IGZiYzY5NDBhMGNmYzUzMTY4OWM4NjUwM2QyNjU3YTFh
Y2FkMzYxYzMuLjA0NmM1MmVmMWQ1ZTk1ZTgzNGE2ZGFhOGY4ODg2NjJlMGRmZmEzZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApA
QCAtNTY3LDEzICs1NjcsMTMgQEAgSFRNTElucHV0RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50
Ojpob3N0SW5wdXQoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzbGlkZXJU
aHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVt
YiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzbGlkZXJUaHVtYigiLXdlYmtpdC1zbGlk
ZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gc2xpZGVyVGh1bWI7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhU2xp
ZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJUaHVtYiwgKCItd2Via2l0LW1l
ZGlhLXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBtZWRpYVNsaWRl
clRodW1iKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOwogfQogCkBAIC02
MjMsOCArNjIzLDggQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFIKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVk
aWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlckNvbnRhaW5lciwgKCItd2Vi
a2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbWVkaWFT
bGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IHNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1zbGlkZXItY29udGFp
bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0hvc3QoKS0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBp
ZiAoIWlucHV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuY3BwCmluZGV4IDE5NmRhNjVlMmVlOTUxYWY0YzA2ODg4N2VjMzA3YmI1ZjBmZjVlZDQu
LjE1NTA1NDg0MjkwN2ZhZTZmMGJkOGVmNTA1Y2E2ZDNkN2VjY2YxMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW4KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTcGlu
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdlYmtp
dC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpbm5lclBzZXVkb0lk
KCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlubmVyUHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmlu
ZGV4IDQwMTAzMmE1YmI1NGJiOTIwNTYzOTg1YWJiNGYwNDRjNDZhOWRiM2EuLjFhOTZkOGExYTlk
MzZmZGY3OWU2YzQ4NjBmNjM3MWRlZDcxYzhlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTQyLDkg
KzE0Miw5IEBAIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gU2Vh
cmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc3Vs
dHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3Vs
dHMtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWNvcmF0aW9u
SWQsICgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBy
ZXN1bHRzSWQoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gcmVzdWx0c0RlY29yYXRpb25JZCgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0
aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZGVjb3JhdGlvbklkKCItd2Via2l0LXNlYXJjaC1k
ZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgRWxl
bWVudCogaG9zdCA9IHNoYWRvd0hvc3QoKTsKICAgICBpZiAoIWhvc3QpCiAgICAgICAgIHJldHVy
biByZXN1bHRzSWQ7CkBAIC0yMDIsNyArMjAyLDcgQEAgUGFzc1JlZlB0cjxTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXQK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LXNlYXJjaC1jYW5jZWwt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHBzZXVkb0lkOwogfQogCkBAIC00NjEsNyArNDYxLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uRWxlbWVudDo6c3RvcFNwZWVjaElucHV0KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBJ
bnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lk
LCAoIi13ZWJraXQtaW5wdXQtc3BlZWNoLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBw
c2V1ZG9JZCgiLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQu
Y3BwCmluZGV4IDJkMGI0MDUyOGQ3Y2VmMGNmNzI2NDJkOWNkMDkzNmYyYTUyNGY0NGEuLjg5Njdj
ODNhNzkyMzM4NjcyMDMwYmUwYzVjMzRkZDkyNjgyYTc5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIFlvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQ6OnBsdWdpbkVsZW1lbnQoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFlv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCIt
d2Via2l0LXBsdWdpbi1yZXBsYWNlbWVudCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiKTsKICAg
ICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJh
Y2suY3BwCmluZGV4IGJkYmVjNmY0MDQzYmE2OWZiOWJhOGZjMmNkOTNjMjhlN2YyODJhODAuLjRm
NzY5YTNjNzg1ZDFlNGZlYjJkYTMzN2ViYjhkNTgzODg5NDg3MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtNDMsMzcgKzQzLDM3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtl
eXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGFsdGVybmF0aXZlLCAoImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IGFsdGVybmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlc2NyaXB0aW9u
LCAoImRlc2NyaXB0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGRlc2NyaXB0aW9u
KCJkZXNjcmlwdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNr
OjptYWluS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgbWFpbiwgKCJtYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IG1haW4oIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbWFpbjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjptYWlu
RGVzY0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIG1haW5EZXNjLCAoIm1haW4tZGVzYyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBtYWluRGVzYygibWFpbi1kZXNjIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1haW5EZXNjOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIEF1ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhbnNsYXRpb24sICgidHJh
bnNsYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHJhbnNsYXRpb24oInRyYW5z
bGF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHRyYW5zbGF0aW9uOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1l
bnRhcnlLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21pY1N0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggMmRmMzU3Y2U0NzI1MzU3YWNjNDU2
NzkyOWQyZjhmOTA4YzIwYTljYS4uOGZkNGYwZjljODA0MjBmNTdkOTg3YTQyMTJkMzlmNDA4MjM2
ODRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtNDksNTUg
KzQ5LDU1IEBAIHN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFRyYWNrSW5kZXggPSAtMTsKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxl
cywgKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3VidGl0bGVzKCJz
dWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gc3VidGl0bGVzOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6Y2FwdGlv
bnNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJjYXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBjYXB0aW9ucygiY2FwdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
VGV4dFRyYWNrOjpkZXNjcmlwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZXNjcmlwdGlvbnMsICgiZGVzY3Jp
cHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGRlc2NyaXB0aW9ucygiZGVzY3Jp
cHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGRlc2NyaXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmNoYXB0
ZXJzS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgY2hhcHRlcnMsICgiY2hhcHRlcnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21p
Y1N0cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFRleHRUcmFjazo6bWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZXRhZGF0YSwgKCJtZXRhZGF0YSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBtZXRhZGF0YSgibWV0YWRhdGEiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAgICAg
CiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6Zm9yY2VkS2V5d29yZCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yY2Vk
LCAoImZvcmNlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmb3JjZWQ7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkaXNhYmxlZEtleXdvcmQoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IG9wZW4sICgiZGlzYWJsZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gb3BlbigiZGlz
YWJsZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
b3BlbjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmhpZGRlbktleXdvcmQo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGNsb3NlZCwgKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY2xvc2Vk
KCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gY2xvc2VkOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6c2hvd2luZ0tl
eXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGVuZGVkLCAoInNob3dpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
ZW5kZWQoInNob3dpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gZW5kZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5oCmluZGV4IGJjMzk5ZmJiMDBjNDRhYjQ5MjM2NDEzM2M1ZGMwOGIwYjJlM2FjMTYuLjk3OTU4
Y2Y2OWEyYWQwYjQ5MjU0Mzg5MDgxYjU5ZWM1NDViNmJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjdWVTaGFkb3dQc2V1ZG9JZCgpCiAgICAgewotICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBj
dWUsICgiY3VlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjdWUoImN1ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gY3VlOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDg2OWVkODMwMGUx
MmVmMDhkZWRjOGYwYmU1ZjE1NjkyYTFjNDUzNmMuLjI4ZWYzNDA1NDNhNGU2MGQzMTZlZDlmZmFl
ZjAzM2RlNjgwMjk0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRU
Q3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTcy
LDMxICs3MiwzMSBAQCBDT01QSUxFX0FTU0VSVChXVEZfQVJSQVlfTEVOR1RIKGRpc3BsYXlBbGln
bm1lbnRNYXApID09IFZUVEN1ZTo6TnVtYmVyT2ZBbGlnbm1lbgogCiBzdGF0aWMgY29uc3QgU3Ry
aW5nJiBzdGFydEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHN0YXJ0LCAoQVNDSUlMaXRlcmFsKCJzdGFydCIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gc3RhcnQoQVNDSUlMaXRlcmFsKCJzdGFy
dCIpKTsKICAgICByZXR1cm4gc3RhcnQ7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIG1pZGRs
ZUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIG1pZGRsZSwgKEFTQ0lJTGl0ZXJhbCgibWlkZGxlIikpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtaWRkbGUoQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7
CiAgICAgcmV0dXJuIG1pZGRsZTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgZW5kS2V5d29y
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
ZW5kLCAoQVNDSUlMaXRlcmFsKCJlbmQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBTdHJpbmc+IGVuZChBU0NJSUxpdGVyYWwoImVuZCIpKTsKICAgICByZXR1cm4gZW5kOwog
fQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBsZWZ0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGVmdCwgKCJsZWZ0IikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGxlZnQoImxlZnQiKTsKICAgICBy
ZXR1cm4gbGVmdDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgcmlnaHRLZXl3b3JkKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCByaWdodCwg
KCJyaWdodCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiByaWdo
dCgicmlnaHQiKTsKICAgICByZXR1cm4gcmlnaHQ7CiB9CiAKQEAgLTEwNywxMyArMTA3LDEzIEBA
IHN0YXRpYyBjb25zdCBTdHJpbmcmIGhvcml6b250YWxLZXl3b3JkKCkKIAogc3RhdGljIGNvbnN0
IFN0cmluZyYgdmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FscmwsIChBU0NJSUxpdGVy
YWwoInJsIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB2ZXJ0
aWNhbHJsKEFTQ0lJTGl0ZXJhbCgicmwiKSk7CiAgICAgcmV0dXJuIHZlcnRpY2Fscmw7CiB9CiAK
IHN0YXRpYyBjb25zdCBTdHJpbmcmIHZlcnRpY2FsR3Jvd2luZ1JpZ2h0S2V5d29yZCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxs
ciwgKEFTQ0lJTGl0ZXJhbCgibHIiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBTdHJpbmc+IHZlcnRpY2FsbHIoQVNDSUlMaXRlcmFsKCJsciIpKTsKICAgICByZXR1cm4gdmVy
dGljYWxscjsKIH0KIApAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgVlRUQ3VlQm94OjphcHBseUNT
U1Byb3BlcnRpZXMoY29uc3QgSW50U2l6ZSYpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUQ3Vl
Qm94Ojp2dHRDdWVCb3hTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNl
dWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21pY1N0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCkBAIC01
NzcsNyArNTc3LDcgQEAgc3RhdGljIGJvb2wgaXNDdWVQYXJhZ3JhcGhTZXBhcmF0b3IoVUNoYXIg
Y2hhcmFjdGVyKQogCiB2b2lkIFZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcnRUYWcsIChB
U0NJSUxpdGVyYWwoInJ0IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3Ry
aW5nPiBydFRhZyhBU0NJSUxpdGVyYWwoInJ0IikpOwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVl
KCk7CiAgICAgaWYgKCFtX3dlYlZUVE5vZGVUcmVlKQogICAgICAgICByZXR1cm47CkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBWVFRDdWU6OmNhbGN1bGF0ZURpc3BsYXlQYXJhbWV0ZXJzKCkKICAg
ICAKIHZvaWQgVlRUQ3VlOjptYXJrRnV0dXJlQW5kUGFzdE5vZGVzKENvbnRhaW5lck5vZGUqIHJv
b3QsIGRvdWJsZSBwcmV2aW91c1RpbWVzdGFtcCwgZG91YmxlIG1vdmllVGltZSkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcs
IChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFN0cmluZz4gdGltZXN0YW1wVGFnKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpOwog
ICAgIAogICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1l
c3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVn
aW9uLmNwcAppbmRleCAwNzI3MGMyYjdiYmE0NmY3NGI1MzMzOGUxMmQ4MDU2Yjg0MmQwY2Q4Li5m
YjM5MmY0ZTlhYWVkYmIzZjI2ZDBiNDAzZWU0YmFiMmU0ODIwNmUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBWVFRSZWdp
b246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
CiBjb25zdCBBdG9taWNTdHJpbmcgVlRUUmVnaW9uOjpzY3JvbGwoKSBjb25zdAogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHVwU2Nyb2xs
VmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHVwU2Nyb2xs
VmFsdWVLZXl3b3JkKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgaWYgKG1fc2Nyb2xsKQogICAgICAgICByZXR1cm4gdXBTY3JvbGxWYWx1ZUtleXdvcmQ7
CkBAIC0xOTYsNyArMTk2LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nIFZUVFJlZ2lvbjo6c2Nyb2xs
KCkgY29uc3QKIAogdm9pZCBWVFRSZWdpb246OnNldFNjcm9sbChjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1cCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiB1cFNjcm9sbFZhbHVlS2V5d29yZCgidXAiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmICh2YWx1ZSAhPSBl
bXB0eVN0cmluZygpICYmIHZhbHVlICE9IHVwU2Nyb2xsVmFsdWVLZXl3b3JkKSB7CiAgICAgICAg
IGVjID0gU1lOVEFYX0VSUjsKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
cGFyc2VkRW50aXJlUnVuKGNvbnN0IFZUVFNjYW5uZXImIGlucHV0LCBjb25zdCBWVFRTY2FubmVy
OjpSdQogCiB2b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBz
ZXR0aW5nLCBWVFRTY2FubmVyJiBpbnB1dCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzY3JvbGxVcFZhbHVlS2V5d29yZCwgKCJ1cCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzY3JvbGxVcFZhbHVlS2V5d29yZCgidXAiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFZUVFNjYW5uZXI6OlJ1
biB2YWx1ZVJ1biA9IGlucHV0LmNvbGxlY3RVbnRpbDxXZWJWVFRQYXJzZXI6OmlzQVNwYWNlPigp
OwogCkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBWVFRSZWdpb246OnBhcnNlU2V0dGluZ1ZhbHVl
KFJlZ2lvblNldHRpbmcgc2V0dGluZywgVlRUU2Nhbm5lciYgaW5wdXQpCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgdHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcywgKCJzY3JvbGxpbmciLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxp
bmdDbGFzcygic2Nyb2xsaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxpbmdDbGFzczsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGJiZGM5MGRkZmJj
MTNjMTJkZGIxYjM4ZDExMjg5OGI5MWIxMTM5MzMuLmRmY2QxYmEwYjZkOTgzYjkwYjRmZmFkODYz
ODBiNzViMGQ5YTk5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNw
cApAQCAtNDcsMzcgKzQ3LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBWaWRlb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFsdGVybmF0aXZlLCAo
ImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFsdGVybmF0aXZlKCJh
bHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpj
YXB0aW9uc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9taWNTdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBWaWRlb1RyYWNrOjptYWluS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2FwdGlvbnMsICgibWFpbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2lnbiwgKCJzaWduIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNpZ24oInNpZ24iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc2lnbjsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBWaWRlb1RyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0
bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHN1YnRpdGxl
czsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29y
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgY29tbWVudGFyeSwgKCJjb21tZW50YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKaW5kZXggZDc0YjgzOGU4ZjkyNTc1NTA5MmE5OWYz
YTdkZDk1NTUxOGRlMjgxZi4uZTM2YzNkYWNjZjU4YWQzNjZiMTI2OGY1ZDEyNTdlZDViMjVkZDE4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCkBAIC0z
NiwxNCArMzYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgUXVhbGlm
aWVkTmFtZSYgbm9kZVR5cGVUb1RhZ05hbWUoV2ViVlRUTm9kZVR5cGUgbm9kZVR5cGUpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGNUYWcsIChu
dWxsQXRvbSwgImMiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChRdWFsaWZpZWROYW1lLCB2VGFnLCAobnVsbEF0b20sICJ2IiwgbnVsbEF0b20pKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbGFuZ1RhZywg
KG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGJUYWcsIChudWxsQXRvbSwgImIiLCBudWxsQXRvbSkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB1VGFn
LCAobnVsbEF0b20sICJ1IiwgbnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgaVRhZywgKG51bGxBdG9tLCAiaSIsIG51bGxBdG9tKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHJ1YnlU
YWcsIChudWxsQXRvbSwgInJ1YnkiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBydFRhZywgKG51bGxBdG9tLCAicnQiLCBudWxs
QXRvbSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiBjVGFnKG51
bGxBdG9tLCAiYyIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlm
aWVkTmFtZT4gdlRhZyhudWxsQXRvbSwgInYiLCBudWxsQXRvbSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IGxhbmdUYWcobnVsbEF0b20sICJsYW5nIiwgbnVsbEF0
b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiBiVGFnKG51bGxB
dG9tLCAiYiIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVk
TmFtZT4gdVRhZyhudWxsQXRvbSwgInUiLCBudWxsQXRvbSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFF1YWxpZmllZE5hbWU+IGlUYWcobnVsbEF0b20sICJpIiwgbnVsbEF0b20pOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiBydWJ5VGFnKG51bGxBdG9tLCAi
cnVieSIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFt
ZT4gcnRUYWcobnVsbEF0b20sICJydCIsIG51bGxBdG9tKTsKICAgICBzd2l0Y2ggKG5vZGVUeXBl
KSB7CiAgICAgY2FzZSBXZWJWVFROb2RlVHlwZUNsYXNzOgogICAgICAgICByZXR1cm4gY1RhZzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggMzk0MDZkOWFm
Nzg0ZjQ3MmM0NjkwNjg2ZTNiMmM1NTMwMWI0N2FmMy4uMmMxMmM0NGQzZjcxYTZkNjI5NjFiZWI5
NTU1OTcyNzg1ODU2M2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmgKQEAgLTU5LDEzICs1OSwxMyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgUXVh
bGlmaWVkTmFtZSYgdm9pY2VBdHRyaWJ1dGVOYW1lKCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB2b2ljZUF0dHIsIChudWxsQXRv
bSwgInZvaWNlIiwgbnVsbEF0b20pKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1
YWxpZmllZE5hbWU+IHZvaWNlQXR0cihudWxsQXRvbSwgInZvaWNlIiwgbnVsbEF0b20pOwogICAg
ICAgICByZXR1cm4gdm9pY2VBdHRyOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgY29uc3QgUXVh
bGlmaWVkTmFtZSYgbGFuZ0F0dHJpYnV0ZU5hbWUoKQogICAgIHsKLSAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZvaWNlQXR0ciwgKG51bGxBdG9t
LCAibGFuZyIsIG51bGxBdG9tKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFs
aWZpZWROYW1lPiB2b2ljZUF0dHIobnVsbEF0b20sICJsYW5nIiwgbnVsbEF0b20pOwogICAgICAg
ICByZXR1cm4gdm9pY2VBdHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRQYXJzZXIuY3BwCmluZGV4IDIwNjUyZTg0MzgyNjE5ZDNhM2ZhMzRiMzgzNTE0OTExODgy
MjVmODcuLmZhNTY0MTI5NDQ5MWY3NTQ3MTM4ZjBmYzM3NjJlZDZlOTlkZTc4MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTI2OSw3ICsyNjksNyBA
QCB2b2lkIFdlYlZUVFBhcnNlcjo6Y29sbGVjdE1ldGFkYXRhSGVhZGVyKGNvbnN0IFN0cmluZyYg
bGluZSkKIHsKICNpZiBFTkFCTEUoV0VCVlRUX1JFR0lPTlMpCiAgICAgLy8gV2ViVlRUIGhlYWRl
ciBwYXJzaW5nIChXZWJWVFQgcGFyc2VyIGFsZ29yaXRobSBzdGVwIDEyKQotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHJlZ2lvbkhlYWRlck5h
bWUsICgiUmVnaW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHJlZ2lvbkhlYWRlck5h
bWUoIlJlZ2lvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAg
Ly8gU3RlcCAxMi40IElmIGxpbmUgY29udGFpbnMgdGhlIGNoYXJhY3RlciAiOiIgKEEgVSswMDNB
IENPTE9OKSwgdGhlbiBzZXQgbWV0YWRhdGEncwogICAgIC8vIG5hbWUgdG8gdGhlIHN1YnN0cmlu
ZyBvZiBsaW5lIGJlZm9yZSB0aGUgZmlyc3QgIjoiIGNoYXJhY3RlciBhbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDMwNWE5OTU0ZGYx
YTk3ZjFjMGMwNzFkODRmNzQ5MTBhYTAwZDZmOGMuLjdkZDc0NjAwZTZmM2Y0ZTgzYTlmZmIwNjE2
YTg5ZDRiMzBhOTIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtNzgsMTAgKzc4LDEwIEBAIGVudW0gRm9yY2VQc2V1ZG9DbGFzc0Zs
YWdzIHsKIAogc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVQc2V1ZG9DbGFzc01hc2soSW5zcGVjdG9y
QXJyYXkqIHBzZXVkb0NsYXNzQXJyYXkpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJhY3RpdmUiKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGhvdmVyLCAoQVNDSUlMaXRlcmFs
KCJob3ZlciIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Zm9jdXMsIChBU0NJSUxpdGVyYWwoImZvY3VzIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCB2aXNpdGVkLCAoQVNDSUlMaXRlcmFsKCJ2aXNpdGVkIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhY3RpdmUoQVNDSUlMaXRlcmFsKCJh
Y3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaG92ZXIoQVNDSUlM
aXRlcmFsKCJob3ZlciIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmb2N1
cyhBU0NJSUxpdGVyYWwoImZvY3VzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZpc2l0ZWQoQVNDSUlMaXRlcmFsKCJ2aXNpdGVkIikpOwogICAgIGlmICghcHNldWRvQ2xh
c3NBcnJheSB8fCAhcHNldWRvQ2xhc3NBcnJheS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBQ
c2V1ZG9DbGFzc05vbmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDdmZDYyOTFjOTEwN2YzOGViNDEzYTYxOTFh
NzY3NzBiNTczY2UyMzcuLmE0YWNhM2NmYzc5YzhjNGMzODc3MmNmNGIwZjEyMjVhOTJmNmYxMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcApAQCAtMzI5LDEwICszMjksMTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5
PiBpZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KEluc3BlY3Rvck9iamVjdCoga2V5KQogICAgIGlm
ICgha2V5LT5nZXRTdHJpbmcoInR5cGUiLCAmdHlwZSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbnVtYmVyLCAo
QVNDSUlMaXRlcmFsKCJudW1iZXIiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic3RyaW5nIikpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXRlLCAoQVNDSUlMaXRlcmFsKCJk
YXRlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhcnJh
eSwgKEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IG51bWJlcihBU0NJSUxpdGVyYWwoIm51bWJlciIpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBzdHJpbmcoQVNDSUlMaXRlcmFsKCJzdHJpbmciKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZGF0ZShBU0NJSUxpdGVyYWwoImRhdGUiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYXJyYXkoQVNDSUlMaXRlcmFsKCJhcnJh
eSIpKTsKIAogICAgIGlmICh0eXBlID09IG51bWJlcikgewogICAgICAgICBkb3VibGUgbnVtYmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApp
bmRleCA0NWJmMGVlZTg0NmY3NzA5ZWQ0MmUyNzRmZDExN2Y5NjQ4MjQxOGRlLi4yNWQ1YzU1Zjky
MzllZWU2NGZmNDNhYjcwOGI5NjczNGIyNjY0MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMjQ3LDggKzI0Nyw4IEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBGcmFtZSogZnJhbWUsCiAvL3N0YXRpYwogU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6
c291cmNlTWFwVVJMRm9yUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhU
VFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIpKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQs
IChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFwIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVhZGVyKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFkZXJE
ZXByZWNhdGVkKEFTQ0lJTGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSk7CiAKICAgICBpZiAoIWNhY2hl
ZFJlc291cmNlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggNzY4ODEwM2Q2MTExMTg0
ZTE0YTMwOWJmYzljYTdlMWI2YmNmMzVhYy4uMzAxNWE1OTBkNzI3YzcxYWI2N2MwNjgyMzhjYzgz
ZmE0NzM5NjY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcApAQCAtMzQ4LDcgKzM0OCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpU
eXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q1NTOjpDU1NDb21wdXRl
CiBib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNv
bnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCBib29sIG92ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQobV9wYXJlbnRTdHlsZVNoZWV0KTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBib2d1c1Byb3BlcnR5
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiLXdlYmtpdC1ib2d1ei1wcm9wZXJ0ZWUiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGJvZ3VzUHJvcGVydHlOYW1lKEFTQ0lJTGl0ZXJh
bCgiLXdlYmtpdC1ib2d1ei1wcm9wZXJ0ZWUiKSk7CiAKICAgICBpZiAoIW1fcGFyZW50U3R5bGVT
aGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRf
RVJSOwpAQCAtNjg2LDcgKzY4Niw3IEBAIFZlY3RvcjxTdHJpbmc+IEluc3BlY3RvclN0eWxlOjps
b25naGFuZFByb3BlcnRpZXMoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0CiAKIE5ld0xp
bmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0b3JTdHlsZTo6bmV3TGluZUFuZFdoaXRlc3BhY2VEZWxp
bWl0ZXJzKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBkZWZhdWx0UHJlZml4LCAoQVNDSUlMaXRlcmFsKCIgICAgIikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkZWZhdWx0UHJlZml4KEFTQ0lJTGl0ZXJhbCgiICAgICIp
KTsKIAogICAgIGlmIChtX2Zvcm1hdEFjcXVpcmVkKQogICAgICAgICByZXR1cm4gbV9mb3JtYXQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRl
eCA3NjAyM2UxOWRkMDJhNmZjZjFkMTNiM2I2NGYwZDE3ZjlmMWNlNTMzLi44M2U0NWFjYjJiZWY4
NjQ3YWQxNWI4MjI4NzkwYmNkNTY1MDk2NjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTcyLDggKzcyLDggQEAgdm9pZCBQYWdlRGVi
dWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiAKIFN0cmluZyBQYWdl
RGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYgc2NyaXB0
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1h
cEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIpKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0
ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFwIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVhZGVyKEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFw
IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNvdXJjZU1hcEhUVFBIZWFk
ZXJEZXByZWNhdGVkKEFTQ0lJTGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSk7CiAKICAgICBpZiAoIXNj
cmlwdC51cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IG1fcGFnZUFnZW50LT5jYWNoZWRSZXNvdXJjZShtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCksIFVS
TChQYXJzZWRVUkxTdHJpbmcsIHNjcmlwdC51cmwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwCmluZGV4IDdkOTRmYzg2Zjc2YThlYzY4NjVhNjcwYjQwOWQ5OWIwNjI2NmYxOTgu
LjJkNTUyZDdlZmE4NDJkNzlmNzM1YTJlOGZiNGEyNDAxNjA5MTFjZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgSW1hZ2VMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAgICAgbV9o
YXNQZW5kaW5nRXJyb3JFdmVudCA9IHRydWU7CiAgICAgICAgIGVycm9yRXZlbnRTZW5kZXIoKS5k
aXNwYXRjaEV2ZW50U29vbih0aGlzKTsKIAotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3Jp
Z2luIGltYWdlIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBv
bGljeS4iKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xl
TWVzc2FnZShBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBpbWFnZSBsb2FkIGRlbmllZCBieSBD
cm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpOwogICAgICAgICBlbGVtZW50
KCkuZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwg
TWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogCiAgICAgICAgIEFTU0VSVCgh
bV9oYXNQZW5kaW5nTG9hZEV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5jcHAKaW5kZXggNGIwZjY1MWYyZDcwMWQwZTUxYjZiN2Q3ZWVhZWI5YmQ0ZDNlYTQwYy4u
NGJlZjBiMzJiOWE3YzU3ODhiYjgyMTBjYTRkZDgwZGNkZDRjNmZiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIFRl
eHRUcmFja0xvYWRlcjo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyYwogCiB2b2lkIFRleHRUcmFja0xvYWRlcjo6Y29yc1BvbGljeVByZXZl
bnRlZExvYWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBs
b2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxp
dGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0IHRyYWNrIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdp
biBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
dG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGRvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgY29uc29sZU1lc3NhZ2UpOwogICAgIG1fc3RhdGUgPSBGYWlsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4
IDM4OWU1MzExMjViNjVlNzhiZGZlYmIwYmJmNjBkMWY0MGI5MGIzZmUuLjJmZjE0MTU4MmFlNmU4
Y2VmZmEwMjhiMDU0MDUzNjU3ZmU0YjI0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC04Myw3ICs4Myw3IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1l
KCkgY29uc3QKICAgICBpZiAoIW1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBtX2luaXRpYXRvck5hbWU7CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwgKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBkZWZhdWx0TmFtZSgicmVzb3VyY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVmYXVsdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDkwNzFlZWZkZWNmOGNhYWE0N2Rj
NDg1MWQ1OTBiOTE4Y2YyNzFhMzUuLmUzYjViZjk3NmU4ZjY3OWIyYjRkN2FhYzM1ZGVkYWI3NGY1
OTNjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApA
QCAtNzMyLDcgKzczMiw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhP
cmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKIHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdp
bnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpCiB7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gaHR0cFN0cmluZygiaHR0cCIpOwogI2VuZGlmCiAgICAgZm9yIChhdXRvJiByZXNvdXJj
ZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0
ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNjdkYzBkOWI0YjIzNDE4MjE3MTQ2MTg3N2Zl
ZDcwYmIyYTlkNWRjMi4uMDFjYWRiODVlZDM4MDNkYzRkNWRmZmE3MTJhMGQxYzU0NGJiYTZiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC04ODYs
NyArODg2LDcgQEAgU3RyaW5nIEljb25EYXRhYmFzZTo6ZGF0YWJhc2VQYXRoKCkgY29uc3QKIAog
U3RyaW5nIEljb25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHREYXRhYmFzZUZpbGVu
YW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJwYWdlSWNvbnMuZGIiKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGRlZmF1bHREYXRhYmFzZUZpbGVuYW1lKEFTQ0lJTGl0ZXJhbCgi
V2VicGFnZUljb25zLmRiIikpOwogICAgIHJldHVybiBkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZS5p
c29sYXRlZENvcHkoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5jcHAKaW5kZXggZmI4MDE2YmJiZGZlZDg5MmI5NzFmMjdmN2IwN2UyMmRlOGNh
NzVkNi4uMWE5YTcyMWE3OGQ3NzEyMGNhYTc5NGMzMWZmMWU1YmM2ZDgwYmM0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0yMzgsNyAr
MjM4LDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRDYXB0aW9uc1N0eWxlU2hl
ZXRPdmVycmlkZShjb25zdCBTdHJpbmcmIG92ZXJyaWQKIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlczo6dXBkYXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVyaWRlKCkKIHsKICAgICAvLyBJZGVudGlm
eSBvdXIgb3ZlcnJpZGUgc3R5bGUgc2hlZXQgd2l0aCBhIHVuaXF1ZSBVUkwgLSBhIG5ldyBzY2hl
bWUgYW5kIGEgVVVJRC4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMLCBj
YXB0aW9uc1N0eWxlU2hlZXRVUkwsIChQYXJzZWRVUkxTdHJpbmcsICJ1c2VyLWNhcHRpb25zLW92
ZXJyaWRlOjAxRjZBRjEyLUMzQjAtNEY3MC1BRjVFLUEzRTAwMjM0REMyMyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMPiBjYXB0aW9uc1N0eWxlU2hlZXRVUkwoUGFyc2VkVVJMU3Ry
aW5nLCAidXNlci1jYXB0aW9ucy1vdmVycmlkZTowMUY2QUYxMi1DM0IwLTRGNzAtQUY1RS1BM0Uw
MDIzNERDMjMiKTsKIAogICAgIGF1dG8mIHBhZ2VzID0gbV9wYWdlR3JvdXAucGFnZXMoKTsKICAg
ICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBlZmUyZTU4M2FkMTgw
NWM4ZjY2YTU3Njc0MjA5YjkxNTUwYmUxMDhiLi44ZTRiZjI5NTQ2NDBhMDlkMDc1ZmIzYjI2Njdm
Mjg0NGUxMDNhYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMjc2LDcgKzI3Niw3IEBAIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNCYWNrZ3JvdW5kQ1NTKCkgY29uc3QK
IHsKICAgICAvLyBUaGlzIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgb25l
IHNwZWNpZmllZCBpbiBtZWRpYUNvbnRyb2xzLmNzcyBmb3IgLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLXBhc3Qtbm9kZXMKICAgICAvLyBhbmQgd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJl
LW5vZGVzLgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgZGVmYXVs
dEJhY2tncm91bmRDb2xvciwgKENvbG9yKDAsIDAsIDAsIDAuOCAqIDI1NSkpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IoQ29sb3IoMCwg
MCwgMCwgMC44ICogMjU1KSk7CiAKICAgICBNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3IgYmVo
YXZpb3I7CiAKQEAgLTM3OSwxMCArMzc5LDEwIEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNTUyhDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDCiAK
IFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNT
UygpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgZWRnZVN0eWxlUmFpc2VkLCAoIiAtLjA1ZW0gLS4wNWVtIDAgIiwgU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGVkZ2VTdHlsZURlcHJlc3NlZCwgKCIgLjA1ZW0gLjA1ZW0gMCAiLCBTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlRHJvcFNoYWRvdywgKCIgLjA3NWVtIC4wNzVl
bSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVVbmlmb3JtLCAoIiAuMDNl
bSAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gZWRnZVN0eWxlUmFpc2VkKCIgLS4wNWVtIC0uMDVlbSAwICIs
IFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IGVkZ2VTdHlsZURlcHJlc3NlZCgiIC4wNWVtIC4wNWVtIDAgIiwgU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IFN0cmluZz4gZWRnZVN0eWxlRHJvcFNoYWRvdygiIC4wNzVlbSAuMDc1ZW0gMCAiLCBTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgU3RyaW5nPiBlZGdlU3R5bGVVbmlmb3JtKCIgLjAzZW0gIiwgU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAKICAgICBib29sIHVudXNlZDsKICAgICBDb2xvciBjb2xvciA9IGNhcHRp
b25zVGV4dENvbG9yKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKaW5kZXggZjBhOWNlYTFjN2VkNGQ3ZGI3MDFjNTliODA4MTJkZjNjYzBi
ODMyNS4uZDIwZWI3Y2JjZTQ0MDU4YjMzNWQ0YjlhODlmYTdlODhjZjFiNGZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMTA2Myw3ICsx
MDYzLDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xh
dGlvbihTb3VyY2VMaXN0RGlyZWN0aXZlKiBkaXJlY3QKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0
OjphbGxvd0phdmFTY3JpcHRVUkxzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RG
OjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBv
cnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwo
IlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRo
ZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7CiAgICAg
aWYgKHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQp
IHsKICAgICAgICAgcmV0dXJuIChjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRp
dmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUsIHRydWUpCiAgICAgICAgICAgICAgICAgJiYgY2hlY2tOb25jZUFuZFJl
cG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgpLCBTdHJpbmcoKSwgY29uc29sZU1lc3Nh
Z2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6OgogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5l
RXZlbnRIYW5kbGVycyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5h
bE51bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3Rh
dHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0
byBleGVjdXRlIGlubGluZSBldmVudCBoYW5kbGVyIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZv
bGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwog
ICAgIGlmIChyZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5kUmVw
b3J0KSB7CiAgICAgICAgIHJldHVybiAoY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3Bl
cmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRl
eHRVUkwsIGNvbnRleHRMaW5lLCB0cnVlKQogICAgICAgICAgICAgICAgICYmIGNoZWNrTm9uY2VB
bmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQoKSwgU3RyaW5nKCksIGNvbnNvbGVN
ZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSkpOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAg
Ym9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3Ry
aW5nJiBjb250ZXh0VVJMLCBjb25zdAogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVt
YmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMg
cmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4
ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBl
eGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIHJldHVybiByZXBvcnRp
bmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0ID8KICAgICAgICAg
Y2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0
U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB0cnVl
KSA6CiAgICAgICAgIGNoZWNrSW5saW5lKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5n
ZXQoKSkpOwpAQCAtMTA5NSw3ICsxMDk1LDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxv
d0lubGluZVNjcmlwdChjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3IKIAog
Ym9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVN0eWxlKGNvbnN0IFN0cmluZyYgY29u
dGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGFwcGx5IGlubGluZSBzdHlsZSBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZl
OiAiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNvbnNvbGVNZXNzYWdl
KEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBhcHBseSBpbmxpbmUgc3R5bGUgYmVjYXVzZSBpdCB2
aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTog
IikpOwogICAgIHJldHVybiByZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5
OjpTZW5kUmVwb3J0ID8KICAgICAgICAgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3Bl
cmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUsIGZhbHNlKSA6CiAgICAgICAgIGNoZWNrSW5saW5lKG9wZXJhdGl2
ZURpcmVjdGl2ZShtX3N0eWxlU3JjLmdldCgpKSk7CkBAIC0xMTAzLDcgKzExMDMsNyBAQCBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0
VVJMLCBjb25zdCBXVEY6Ok9yZAogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3Rh
dHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0
byBldmFsdWF0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXZh
bHVhdGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNl
Y3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKTsKICAgICByZXR1cm4gcmVwb3J0aW5nU3RhdHVz
ID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJlcG9ydCA/CiAgICAgICAgIGNoZWNrRXZh
bEFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkp
LCBjb25zb2xlTWVzc2FnZSwgU3RyaW5nKCksIFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmly
c3QoKSwgc3RhdGUpIDoKICAgICAgICAgY2hlY2tFdmFsKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3Nj
cmlwdFNyYy5nZXQoKSkpOwpAQCAtMTExMSw3ICsxMTExLDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVM
aXN0OjphbGxvd0V2YWwoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OlIKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0
cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxp
dGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwo
IlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93
aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIGlmICh1cmwu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbiht
X3NjcmlwdE5vbmNlLmdldCgpLCBub25jZSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNv
bnRleHRMaW5lKTsKICAgICByZXR1cm4gY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihtX3Nj
cmlwdE5vbmNlLmdldCgpLCBub25jZSwgIlJlZnVzZWQgdG8gbG9hZCAnIiArIHVybC5zdHJpbmdD
ZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZv
bGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIsIGNvbnRleHRVUkws
IGNvbnRleHRMaW5lKTsKQEAgLTE3NzgsMTIgKzE3NzgsMTIgQEAgdm9pZCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNv
bnN0IFMKIAogdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVkRGly
ZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxvdywgKEFTQ0lJTGl0ZXJhbCgiYWxsb3ciKSkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wdGlvbnMsIChBU0NJ
SUxpdGVyYWwoIm9wdGlvbnMiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHBvbGljeVVSSSwgKEFTQ0lJTGl0ZXJhbCgicG9saWN5LXVyaSIpKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYWxsb3dNZXNzYWdlLCAoQVND
SUlMaXRlcmFsKCJUaGUgJ2FsbG93JyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAn
ZGVmYXVsdC1zcmMnLiBQbGVhc2UgdXNlIHRoYXQgZGlyZWN0aXZlIGluc3RlYWQsIGFzICdhbGxv
dycgaGFzIG5vIGVmZmVjdC4iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIG9wdGlvbnNNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJUaGUgJ29wdGlvbnMnIGRp
cmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICd1bnNhZmUtaW5saW5lJyBhbmQgJ3Vuc2Fm
ZS1ldmFsJyBzb3VyY2UgZXhwcmVzc2lvbnMgZm9yIHRoZSAnc2NyaXB0LXNyYycgYW5kICdzdHls
ZS1zcmMnIGRpcmVjdGl2ZXMuIFBsZWFzZSB1c2UgdGhvc2UgZGlyZWN0aXZlcyBpbnN0ZWFkLCBh
cyAnb3B0aW9ucycgaGFzIG5vIGVmZmVjdC4iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHBvbGljeVVSSU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAn
cG9saWN5LXVyaScgZGlyZWN0aXZlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc3BlY2lmaWNh
dGlvbi4gUGxlYXNlIHNwZWNpZnkgYSBjb21wbGV0ZSBwb2xpY3kgdmlhIHRoZSBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBoZWFkZXIuIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBhbGxvdyhBU0NJSUxpdGVyYWwoImFsbG93IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IG9wdGlvbnMoQVNDSUlMaXRlcmFsKCJvcHRpb25zIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBvbGljeVVSSShBU0NJSUxpdGVyYWwoInBvbGljeS11
cmkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYWxsb3dNZXNzYWdlKEFT
Q0lJTGl0ZXJhbCgiVGhlICdhbGxvdycgZGlyZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGgg
J2RlZmF1bHQtc3JjJy4gUGxlYXNlIHVzZSB0aGF0IGRpcmVjdGl2ZSBpbnN0ZWFkLCBhcyAnYWxs
b3cnIGhhcyBubyBlZmZlY3QuIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IG9wdGlvbnNNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiVGhlICdvcHRpb25zJyBkaXJlY3RpdmUgaGFz
IGJlZW4gcmVwbGFjZWQgd2l0aCAndW5zYWZlLWlubGluZScgYW5kICd1bnNhZmUtZXZhbCcgc291
cmNlIGV4cHJlc3Npb25zIGZvciB0aGUgJ3NjcmlwdC1zcmMnIGFuZCAnc3R5bGUtc3JjJyBkaXJl
Y3RpdmVzLiBQbGVhc2UgdXNlIHRob3NlIGRpcmVjdGl2ZXMgaW5zdGVhZCwgYXMgJ29wdGlvbnMn
IGhhcyBubyBlZmZlY3QuIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBv
bGljeVVSSU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJUaGUgJ3BvbGljeS11cmknIGRpcmVjdGl2ZSBo
YXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNwZWNpZmljYXRpb24uIFBsZWFzZSBzcGVjaWZ5IGEg
Y29tcGxldGUgcG9saWN5IHZpYSB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgaGVhZGVyLiIp
KTsKIAogICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5yZWNvZ25pemVkIENvbnRl
bnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnIiwgbmFtZSwgIicuXG4iKTsKICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgYWxsb3cpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IDdmMDdiYWUzNjQyMzkxZGFjMWFjOThmMGY5ZWY4NDljNTAzMmUxYzUuLjFkZTEyN2E2
ZGU4N2RhNWQ1MWI0YmI4MjlhMzFjYWNiZjY3NWFiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTE4MSwxMyArMTgxLDEzIEBAIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8RE9NV2lu
ZG93Kj4gRE9NV2luZG93U2V0OwogCiBzdGF0aWMgRE9NV2luZG93U2V0JiB3aW5kb3dzV2l0aFVu
bG9hZEV2ZW50TGlzdGVuZXJzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoRE9NV2luZG93U2V0LCB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERPTVdpbmRvd1NldD4gd2luZG93c1dpdGhVbmxvYWRF
dmVudExpc3RlbmVycygpOwogICAgIHJldHVybiB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVu
ZXJzOwogfQogCiBzdGF0aWMgRE9NV2luZG93U2V0JiB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2
ZW50TGlzdGVuZXJzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRE9N
V2luZG93U2V0LCB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERPTVdpbmRvd1NldD4gd2luZG93c1dpdGhCZWZvcmVV
bmxvYWRFdmVudExpc3RlbmVycygpOwogICAgIHJldHVybiB3aW5kb3dzV2l0aEJlZm9yZVVubG9h
ZEV2ZW50TGlzdGVuZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggMTUzNmYxYTlhOWZhMjEzMzI2MmMzNjNlMjZhZTg4NzkyYmRlZTA0Mi4uNDcyYmM4ODllMjEx
ODJmOTQ4ZmRiN2E2N2RiZGU0ZThiY2M3ZjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMzk1LDcgKzM5NSw3IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigp
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIERyYWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFn
U3RhdGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChEcmFnU3RhdGUs
IHN0YXRlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERyYWdTdGF0ZT4gc3RhdGUo
KTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkK
QEAgLTMwNDAsMTAgKzMwNDAsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50KQogCiBzdGF0aWMgRm9jdXNE
aXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBrZXlJZGVu
dGlmaWVyKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIERvd24sICgiRG93biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBVcCwgKCJV
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBMZWZ0LCAoIkxlZnQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgUmlnaHQsICgiUmlnaHQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gRG93bigiRG93biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IFVwKCJVcCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IExlZnQoIkxlZnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBSaWdodCgiUmln
aHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEZvY3VzRGly
ZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yQmFzZS5jcHAKaW5kZXggZWQ5OWNmZjdmMDY4YTM0NDMzMGQ3OGY2MDhiYWQwMzk0NTgx
OWMxMC4uNjM5NGJjMWRiZTFiMjZhNzg5ODcwOWU5MTBhMGEwNWIyMDhkMWVjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFN0cmluZyBOYXZp
Z2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNvbnN0CiAgICAgaWYgKCFTdHJpbmcoV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0pLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdB
VE9SX1BMQVRGT1JNOwogICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgmb3NuYW1l
KSA+PSAwID8gU3RyaW5nKG9zbmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3RyaW5nKG9z
bmFtZS5tYWNoaW5lKSA6IGVtcHR5U3RyaW5nKCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBwbGF0Zm9ybU5hbWUodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyBTdHJpbmcoIiAiKSArIFN0cmluZyhvc25hbWUubWFjaGluZSkgOiBlbXB0
eVN0cmluZygpKTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwogI2Vsc2UKICAgICByZXR1cm4g
V0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmNwcAppbmRleCBmNmNjYzE0OTZkMmRhMjI1NGI3NmY1YTRlOTRlNzkxNWM2
NjJlOTU2Li41MzdkYzQ1NWRmZTdhODI4ZmU5Y2U2NjQ2MmFkZjZhZTY4ZjY2MTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKQEAgLTM2LDkgKzM2LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgcGFnZVZpc2liaWxpdHlTdGF0ZVN0cmlu
ZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsIChBU0NJSUxpdGVyYWwoInZpc2libGUi
KSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhp
ZGRlbiwgKEFTQ0lJTGl0ZXJhbCgiaGlkZGVuIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmVyZW5kZXIsIChBU0NJSUxpdGVyYWwoInByZXJl
bmRlciIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdmlzaWJs
ZShBU0NJSUxpdGVyYWwoInZpc2libGUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IFN0cmluZz4gaGlkZGVuKEFTQ0lJTGl0ZXJhbCgiaGlkZGVuIikpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHByZXJlbmRlcihBU0NJSUxpdGVyYWwoInByZXJl
bmRlciIpKTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5
U3RhdGVWaXNpYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1p
bmcuY3BwCmluZGV4IGUwNzQzNGMyM2M2OGM1NjU0MmYwMDEyN2Y1ZDljMzVlYTBlNDBlNzEuLjQx
Nzc2NWVhY2IxMzQ4ZWU2MWE1ZGZjM2Q3N2Y5YTVlZWUyYTc0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFt
ZXNwYWNlIHsKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIE5hdmlnYXRpb25UaW1pbmdGdW5jdGlv
bj4gUmVzdHJpY3RlZEtleU1hcDsKIHN0YXRpYyBSZXN0cmljdGVkS2V5TWFwIHJlc3RyaWN0ZWRL
ZXlNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXN0cmljdGVk
S2V5TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVzdHJpY3RlZEtl
eU1hcD4gbWFwKCk7CiAgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgbWFwLmFkZCgi
bmF2aWdhdGlvblN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQpOwog
ICAgICAgICBtYXAuYWRkKCJ1bmxvYWRFdmVudFN0YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjp1
bmxvYWRFdmVudFN0YXJ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKaW5k
ZXggNzBkNjlhMDNhMGY5MTk3OWI4OTkwY2M2YjJjZjE1YzQ5NjliYzYzOS4uMzM5NjYyNjZkNTFk
NWU3YWZjMWM0MjIwOGVmZWQ5NzIxNGEyMzgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eVBvbGljeS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgc3Rk
Ojp1bmlxdWVfcHRyPE9yaWdpbkFjY2Vzc1doaXRlTGlzdD4+IE9yaWdpbkFjY2Vzc01hcDsKIAog
c3RhdGljIE9yaWdpbkFjY2Vzc01hcCYgb3JpZ2luQWNjZXNzTWFwKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoT3JpZ2luQWNjZXNzTWFwLCBvcmlnaW5BY2Nlc3NNYXAs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3JpZ2luQWNjZXNzTWFwPiBvcmlnaW5B
Y2Nlc3NNYXAoKTsKICAgICByZXR1cm4gb3JpZ2luQWNjZXNzTWFwOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKaW5kZXggMWQ2NzRiOWI4ZmIw
Y2YzZDczZGY1NWFjODcxNmM2OWU0YzNlNzY0ZC4uMGQ5NDg3NGFhYjY2OGY2ZDFlZDhkM2I4MDA0
Y2YyOTI5OWIzZWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVu
dFVSTFBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6
bWF0Y2hlc1BhdHRlcm5zKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPgogCiBi
b29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UoY29uc3QgU3RyaW5nJiBwYXR0ZXJuKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHNjaGVt
ZVNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiOi8vIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBzY2hlbWVTZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCI6Ly8iKSk7
CiAKICAgICBzaXplX3Qgc2NoZW1lRW5kUG9zID0gcGF0dGVybi5maW5kKHNjaGVtZVNlcGFyYXRv
cik7CiAgICAgaWYgKHNjaGVtZUVuZFBvcyA9PSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA1
ZTZlZjJhZDc3NzAwNDdiODViY2YxNWExNzBkNzZjZDY5ZjUzYTkzLi45MjkzN2Q2M2M5MTIyZjhi
YTNkOWNiYzBlOTdhNDAyZTQ5MDFjNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC01ODQsMTEgKzU4NCwx
MSBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBzaGFkb3dMaXN0TGVuZ3RoKGNvbnN0IFNoYWRvd0Rh
dGEqIHNoYWRvdykKIAogc3RhdGljIGlubGluZSBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3dGb3JC
bGVuZGluZyhjb25zdCBTaGFkb3dEYXRhKiBzcmNTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIG90
aGVyU2hhZG93KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dE
YXRhLCBkZWZhdWx0U2hhZG93RGF0YSwgKEludFBvaW50KCksIDAsIDAsIE5vcm1hbCwgZmFsc2Us
IENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwg
SW5zZXQsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdFNoYWRvd0RhdGEoSW50UG9pbnQoKSwgMCwgMCwgTm9y
bWFsLCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdEluc2V0U2hhZG93RGF0YShJbnRQb2ludCgpLCAwLCAwLCBJ
bnNldCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFdlYktpdEJveFNoYWRvd0RhdGEsIChJ
bnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRX
ZWJLaXRCb3hTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9y
Ojp0cmFuc3BhcmVudCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTaGFkb3dEYXRhPiBk
ZWZhdWx0V2ViS2l0Qm94U2hhZG93RGF0YShJbnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRydWUs
IENvbG9yOjp0cmFuc3BhcmVudCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNoYWRvd0Rh
dGE+IGRlZmF1bHRJbnNldFdlYktpdEJveFNoYWRvd0RhdGEoSW50UG9pbnQoKSwgMCwgMCwgSW5z
ZXQsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKICAgICBpZiAoc3JjU2hhZG93KQogICAg
ICAgICByZXR1cm4gc3JjU2hhZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggZGQ1NWMyODRhYzhkOGM5MjY0NDI3
NjdiZTU2Y2FiNzlmZmZhMjIxYi4uYmE2MzgzOTQ0NDNlYjk2YWVlMzY4MjI2ZGYyNmQ2NTQ0YTc2
ZTIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3Np
dGVBbmltYXRpb24uY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRp
b246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVu
ZGUKICAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICAgICAgbV9r
ZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9uZSwgKCJub25lIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBub25lKCJub25lIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIAogICAgICAgICAvLyBOb3cgbWFyayBhbnkg
c3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMgYWN0aXZlIGFuZCBhZGQgYW55IG5ldyBhbmltYXRp
b25zLgogICAgICAgICBpZiAodGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0N1cnNvci5jcHAKaW5kZXggOTM1OTNhZDI3ZDlhNmQwM2U3ZGI0MGVkNGM4YzJjOGM5
MWRkMGU3Yi4uNjlkZjBlN2ViYWMyZDAyOGIyNWRlZDNjMDY0NDk0NDgzOWY5YjM5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCkBAIC0xODksMjU5ICsxODksMjU5IEBAIFBsYXRmb3Jt
Q3Vyc29yIEN1cnNvcjo6cGxhdGZvcm1DdXJzb3IoKSBjb25zdAogCiBjb25zdCBDdXJzb3ImIHBv
aW50ZXJDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OlBvaW50ZXIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vy
c29yPiBjKEN1cnNvcjo6UG9pbnRlcik7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNv
ciYgY3Jvc3NDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6OkNyb3NzKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1
cnNvcj4gYyhDdXJzb3I6OkNyb3NzKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiBoYW5kQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpIYW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6OkhhbmQpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG1v
dmVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Ok1vdmUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBj
KEN1cnNvcjo6TW92ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgdmVydGlj
YWxUZXh0Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpWZXJ0aWNhbFRleHQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6VmVydGljYWxUZXh0KTsKICAgICByZXR1cm4gYzsKIH0KIAog
Y29uc3QgQ3Vyc29yJiBjZWxsQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDZWxsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNlbGwpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIGNvbnRleHRNZW51Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDb250ZXh0TWVudSkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpDb250ZXh0TWVudSk7CiAgICAgcmV0
dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgYWxpYXNDdXJzb3IoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkFsaWFzKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkFsaWFzKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6b29tSW5DdXJzb3IoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Olpvb21JbikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpab29tSW4pOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHpvb21PdXRDdXJzb3IoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Olpvb21PdXQpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Wm9vbU91dCk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgY29weUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29weSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpDb3B5KTsKICAgICBy
ZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub25lQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb25lKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vbmUpOwogICAgIHJldHVy
biBjOwogfQogCiBjb25zdCBDdXJzb3ImIHByb2dyZXNzQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpQcm9ncmVzcykpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpQcm9ncmVzcyk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9Ecm9wQ3Vyc29yKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb0Ryb3Ap
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9Ecm9wKTsK
ICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3RBbGxvd2VkQ3Vyc29yKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpO
b3RBbGxvd2VkKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6
Ok5vdEFsbG93ZWQpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGlCZWFtQ3Vy
c29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAo
Q3Vyc29yOjpJQmVhbSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vy
c29yOjpJQmVhbSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgd2FpdEN1cnNv
cigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1
cnNvcjo6V2FpdCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29y
OjpXYWl0KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBoZWxwQ3Vyc29yKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpIZWxwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Okhl
bHApOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RSZXNpemVDdXJzb3Io
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OkVhc3RSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1
cnNvcjo6RWFzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9y
dGhSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoUmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAog
Y29uc3QgQ3Vyc29yJiBub3J0aEVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFJlc2l6ZSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpOb3J0aEVhc3RS
ZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoV2VzdFJlc2l6
ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAK
IGNvbnN0IEN1cnNvciYgc291dGhSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoUmVzaXplKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoUmVzaXplKTsKICAg
ICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
OlNvdXRoRWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMo
Q3Vyc29yOjpTb3V0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJz
b3ImIHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhXZXN0UmVzaXplKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZSk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgd2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2Vz
dFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpX
ZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFNvdXRo
UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoU291dGhSZXNpemUpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RXZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0V2VzdFJl
c2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpFYXN0
V2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9ydGhFYXN0
U291dGhXZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemUpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Tm9ydGhFYXN0U291dGhX
ZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RT
b3V0aEVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVh
c3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNvbHVtblJlc2l6
ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6Q29sdW1uUmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1
cnNvcj4gYyhDdXJzb3I6OkNvbHVtblJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0
IEN1cnNvciYgcm93UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpSb3dSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Um93UmVzaXplKTsKICAgICByZXR1cm4gYzsK
IH0KIAogY29uc3QgQ3Vyc29yJiBtaWRkbGVQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpNaWRkbGVQYW5uaW5n
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok1pZGRsZVBh
bm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBlYXN0UGFubmlu
Z0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6RWFzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vy
c29yPiBjKEN1cnNvcjo6RWFzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29u
c3QgQ3Vyc29yJiBub3J0aFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUGFubmluZykpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpOb3J0aFBhbm5pbmcpOwogICAg
IHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RQYW5uaW5nQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpOb3J0aEVhc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAog
Y29uc3QgQ3Vyc29yJiBub3J0aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5n
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2Vz
dFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0aFBh
bm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OlNvdXRoUGFubmluZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDdXJzb3I+IGMoQ3Vyc29yOjpTb3V0aFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAg
IAogY29uc3QgQ3Vyc29yJiBzb3V0aEVhc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RQYW5u
aW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRo
RWFzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0
aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFdlc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoV2VzdFBhbm5pbmcpOwogICAgIHJl
dHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiB3ZXN0UGFubmluZ0N1cnNvcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2Vz
dFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6
V2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGdyYWJDdXJz
b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6OkdyYWIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNv
cjo6R3JhYik7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgZ3JhYmJpbmdDdXJz
b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6OkdyYWJiaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhD
dXJzb3I6OkdyYWJiaW5nKTsKICAgICByZXR1cm4gYzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGFuZ3VhZ2UuY3BwCmluZGV4IGMyODkyZTQ1ZmZkOTY0MzcyNWRjODRhN2NjMGUyNjliZTcwZjA3
NmEuLmZiODQxNDA4ZDNlNDZkMmYwNmZmNGUzNTRmYmIzYTI5NDAyOTBlNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNoYW5nZU9ic2VydmVyRnVuY3Rp
b24+IE9ic2VydmVyTWFwOwogc3RhdGljIE9ic2VydmVyTWFwJiBvYnNlcnZlck1hcCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE9ic2VydmVyTWFwLCBtYXAsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T2JzZXJ2ZXJNYXA+IG1hcCgpOwogICAgIHJldHVy
biBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKaW5kZXggZTBjYTUzNjZlNzI0YzRiOTZmOTc2ZmU2N2EwZjAwMjJmNmM5MGMyMi4uNGE1MGY4
NjYxZmNjNjRhZTQxOWIwYzE1YmIyZDk2MTI0NjRjMjUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIFN0
cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdp
bmFsKQogCiAgICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlz
IGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgogICAgIHVuc2lnbmVkIG1heE51bWJlck9m
R3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMs
IDEpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbGxpcHNpcygmaG9yaXpv
bnRhbEVsbGlwc2lzLCAxKTsKIAogICAgIFN0cmluZyB0cmltbWVkID0gb3JpZ2luYWwuc3RyaXBX
aGl0ZVNwYWNlKCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtQ2hhcmFj
dGVyc0luR3JhcGhlbWVDbHVzdGVycyh0cmltbWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3Rl
cnNJbkxvb2t1cE1lbnVJdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAKaW5kZXggYTQwMGRmM2FlM2E5MTZmMDY2OGY3NGM3MjVlMTczMzQxZjA0YTE4
OC4uNDc2MmFjY2FiYmFiNWFjNmI4NDgyNmQ2NzE0ZDg3YzU1NzU1YmQyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKQEAgLTM1MCw3ICszNTAsNyBA
QCBzdGF0aWMgdm9pZCBpbml0aWFsaXplU3VwcG9ydGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogCiBz
dGF0aWMgTWVkaWFNSU1FVHlwZU1hcCYgbWVkaWFNSU1FVHlwZU1hcCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhTUlNRVR5cGVNYXAsIG1lZGlhTUlNRVR5cGVG
b3JFeHRlbnNpb25NYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFNSU1F
VHlwZU1hcD4gbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcCgpOwogCiAgICAgaWYgKCFtZWRp
YU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1lZGlh
TUlNRVR5cGVGb3JFeHRlbnNpb25NYXA7CkBAIC02NDAsNyArNjQwLDcgQEAgSGFzaFNldDxTdHJp
bmc+JiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRVbnN1cHBvcnRlZFRleHRNSU1FVHlwZXMoKQogCiBj
b25zdCBTdHJpbmcmIGRlZmF1bHRNSU1FVHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGVmYXVsdE1JTUVUeXBlLCAoQVNDSUlMaXRlcmFs
KCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IGRlZmF1bHRNSU1FVHlwZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbSIpKTsKICAgICByZXR1cm4gZGVmYXVsdE1JTUVUeXBlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAppbmRl
eCBkNTIwMmRiYzUwNDEzNTY4NzJiY2Q1NWEyMDEyZjNkYzYwNzMxMTYzLi42ZTU4YmNiNTc5OTQ1
NDAyMzEyMGZhOTk4NjlmMzIxMzQzMDI2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6c19sb2dnaW5nRW5hYmxlZCA9IGZh
bHNlOwogCiBNZW1vcnlQcmVzc3VyZUhhbmRsZXImIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lbW9yeVByZXNzdXJlSGFuZGxl
ciwgc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE1lbW9yeVByZXNzdXJlSGFuZGxlcj4gc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVy
KCk7CiAgICAgcmV0dXJuIHN0YXRpY01lbW9yeVByZXNzdXJlSGFuZGxlcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IDdkYzNiMmI1MDk3NWY3
YWY0M2JjMjA5YTIyMzI4MjkzMjBjOGI3NDEuLmZlMmRmZWQ1MTYwYzQzM2I2NjQyMDVkNDdjYTA0
ZWFkZDZiMDFjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJl
Z2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgVVJMU2No
ZW1lc01hcCYgbG9jYWxVUkxTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbG9jYWxTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IGxvY2FsU2NoZW1lcygpOwogCiAgICAgaWYgKGxv
Y2FsU2NoZW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgbG9jYWxTY2hlbWVzLmFkZCgiZmlsZSIp
OwpAQCAtNDYsMTMgKzQ2LDEzIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBsb2NhbFVSTFNjaGVt
ZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgZGlzcGxheUlzb2xhdGVkVVJMU2NoZW1lcygp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGRp
c3BsYXlJc29sYXRlZFNjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJM
U2NoZW1lc01hcD4gZGlzcGxheUlzb2xhdGVkU2NoZW1lcygpOwogICAgIHJldHVybiBkaXNwbGF5
SXNvbGF0ZWRTY2hlbWVzOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2VjdXJlU2NoZW1l
cygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IHNlY3VyZVNjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1l
c01hcD4gc2VjdXJlU2NoZW1lcygpOwogCiAgICAgaWYgKHNlY3VyZVNjaGVtZXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIHNlY3VyZVNjaGVtZXMuYWRkKCJodHRwcyIpOwpAQCAtNjUsNyArNjUsNyBA
QCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2VjdXJlU2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hl
bWVzTWFwJiBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lc1dp
dGhVbmlxdWVPcmlnaW5zKCk7CiAKICAgICBpZiAoc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmlz
RW1wdHkoKSkgewogICAgICAgICBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMuYWRkKCJhYm91dCIp
OwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc1dpdGhVbmlx
dWVPcmlnaW5zKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGVtcHR5RG9jdW1lbnRTY2hlbWVz
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwg
ZW1wdHlEb2N1bWVudFNjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJM
U2NoZW1lc01hcD4gZW1wdHlEb2N1bWVudFNjaGVtZXMoKTsKIAogICAgIGlmIChlbXB0eURvY3Vt
ZW50U2NoZW1lcy5pc0VtcHR5KCkpCiAgICAgICAgIGVtcHR5RG9jdW1lbnRTY2hlbWVzLmFkZCgi
YWJvdXQiKTsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYgc2NoZW1l
c0ZvcmJpZGRlbkZyb21Eb21haW5SZWxheGF0aW9uKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAm
IGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0U2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVUkxTY2hlbWVzTWFw
PiBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMoKTsKIAogICAgIGlmIChjYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNhbkRpc3Bs
YXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcy5hZGQoImJsb2IiKTsKQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVz
KCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hl
bWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01h
cCwgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVt
ZXMoKTsKICAgICByZXR1cm4gbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXM7CiB9CiAK
QEAgLTEzNCwyMCArMTM0LDIwIEBAIGNvbnN0IFVSTFNjaGVtZXNNYXAmIFNjaGVtZVJlZ2lzdHJ5
Ojpsb2NhbFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc0FsbG93aW5n
TG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdMb2NhbFN0
b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVUkxTY2hlbWVzTWFwPiBzY2hlbWVzQWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblBy
aXZhdGVCcm93c2luZygpOwogICAgIHJldHVybiBzY2hlbWVzQWxsb3dpbmdMb2NhbFN0b3JhZ2VB
Y2Nlc3NJblByaXZhdGVCcm93c2luZzsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVt
ZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdE
YXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVSTFNjaGVtZXNNYXA+IHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2
YXRlQnJvd3NpbmcoKTsKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZzsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVk
U2NoZW1lcygpCiB7CiAgICAgLy8gRklYTUU6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MTYwCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNj
aGVtZXNNYXAsIENPUlNFbmFibGVkU2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVUkxTY2hlbWVzTWFwPiBDT1JTRW5hYmxlZFNjaGVtZXMoKTsKIAogICAgIGlmIChDT1JT
RW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENPUlNFbmFibGVkU2NoZW1lcy5h
ZGQoImh0dHAiKTsKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ09S
U0VuYWJsZWRTY2hlbWVzKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIENvbnRlbnRTZWN1cml0
eVBvbGljeUJ5cGFzc2luZ1NjaGVtZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVSTFNjaGVtZXNNYXA+IHNjaGVtZXMoKTsKICAgICByZXR1cm4gc2NoZW1lczsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuY3BwCmluZGV4IDhlZDJk
OTU5OTdiNTRjMDM5ZjcwYjQ2YjViYjI0NzlkZTcwY2VmNzAuLmUyMjhjMzU2NTE1MTdmZmI0OGVj
YWU2NmJmMzE2ZWJmOWY0ODkwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGJhclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxi
YXJUaGVtZS5jcHAKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU2Nyb2xs
YmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpCiB7CiAgICAgaWYgKFNldHRpbmdzOjpt
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNb2NrLCBtb2NrVGhlbWUsICgpKTsKLSAgICAgICAgcmV0
dXJuICZtb2NrVGhlbWU7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JvbGxiYXJU
aGVtZU1vY2s+IG1vY2tUaGVtZSgpOworICAgICAgICByZXR1cm4gJm1vY2tUaGVtZS5nZXQoKTsK
ICAgICB9CiAgICAgcmV0dXJuIG5hdGl2ZVRoZW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNw
cAppbmRleCAyNjNlNGQ0NmI2NjJjYmY4MzNlMmU2MmVkYmZiZTkwOWM5MjYyZDlmLi4xMGVjZTZk
ODU3ZTk1YzU2ZjAwZDM2MzRlOTRlNzVlYjQ1ZGQ4NzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5j
cHAKQEAgLTE4MDYsNyArMTgwNiw3IEBAIGJvb2wgcHJvdG9jb2xJc0luSFRUUEZhbWlseShjb25z
dCBTdHJpbmcmIHVybCkKIAogY29uc3QgVVJMJiBibGFua1VSTCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwgc3RhdGljQmxhbmtVUkwsIChQYXJzZWRVUkxTdHJp
bmcsICJhYm91dDpibGFuayIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMPiBzdGF0
aWNCbGFua1VSTChQYXJzZWRVUkxTdHJpbmcsICJhYm91dDpibGFuayIpOwogICAgIHJldHVybiBz
dGF0aWNCbGFua1VSTDsKIH0KIApAQCAtMTgyMSw3ICsxODIxLDcgQEAgYm9vbCBpc0RlZmF1bHRQ
b3J0Rm9yUHJvdG9jb2wodW5zaWduZWQgc2hvcnQgcG9ydCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
dW5zaWduZWQsIENhc2VGb2xkaW5nSGFzaD4gRGVmYXVsdFBvcnRzTWFwOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChEZWZhdWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cywgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEZWZhdWx0UG9ydHNNYXA+IGRlZmF1bHRQb3J0
cygpOwogICAgIGlmIChkZWZhdWx0UG9ydHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRlZmF1bHRQ
b3J0cy5zZXQoImh0dHAiLCA4MCk7CiAgICAgICAgIGRlZmF1bHRQb3J0cy5zZXQoImh0dHBzIiwg
NDQzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9Bbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5j
cHAKaW5kZXggM2I3Y2EzNDVkYTUzYmM0OWU0M2I1Y2NkMzRjMThhNDU2MGM1MWUyZi4uZTJjYzdi
Nzg2OTlkOTJiMTI1N2JjOTNjOTQwNjUxOTExYTc1NjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBi
b29sIEFuaW1hdGlvbjo6YW5pbWF0aW9uc01hdGNoKGNvbnN0IEFuaW1hdGlvbiogbywgYm9vbCBt
YXRjaFBsYXlTdGF0ZXMpIGNvbnN0CiAKIGNvbnN0IFN0cmluZyYgQW5pbWF0aW9uOjppbml0aWFs
QW5pbWF0aW9uTmFtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgaW5pdGlhbFZhbHVlLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpbml0aWFsVmFsdWUoQVNDSUlMaXRlcmFsKCJub25lIikp
OwogICAgIHJldHVybiBpbml0aWFsVmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IGUyMDIxNDg0YzgzM2IyYmM5YjQxZjY0
NjhlNDUzZmI4Zjg3Mzc3ZGQuLjg0YWNmNWQ1ZTgxM2Y4NTA0ZGQ4YzAxOTYwMGFjNDNhMTZiYmQ1
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1ZGlvU2Vzc2lvbiYg
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXVkaW9TZXNzaW9uLCBzZXNzaW9uLCAoKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj4gc2Vzc2lvbigpOwogICAgIHJldHVybiBzZXNzaW9uOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3Bw
CmluZGV4IDNlNzc0Nzg1YTU4ZGZhM2YwNjk0MTUwZjNjODMxYjBlODY0ZjdkN2MuLmRhZWE2NzBj
ODJjMmE4MTAyMmNiMTRjNWJjYWJhNjk5YzhlY2U3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBAIC02OCw3ICs2OCw3IEBAIGNvbnN0
IGZsb2F0IFJlc3BvbnNlU2FtcGxlUmF0ZSA9IDQ0MTAwOwogc3RhdGljIEF1ZGlvQnVzKiBnZXRD
b25jYXRlbmF0ZWRJbXB1bHNlUmVzcG9uc2VzRm9yU3ViamVjdChjb25zdCBTdHJpbmcmIHN1Ympl
Y3ROYW1lKQogewogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEF1ZGlvQnVzKj4gQXVkaW9C
dXNNYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF1ZGlvQnVzTWFwLCBh
dWRpb0J1c01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb0J1c01hcD4g
YXVkaW9CdXNNYXAoKTsKIAogICAgIEF1ZGlvQnVzKiBidXM7CiAgICAgQXVkaW9CdXNNYXA6Oml0
ZXJhdG9yIGl0ZXJhdG9yID0gYXVkaW9CdXNNYXAuZmluZChzdWJqZWN0TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
CmluZGV4IDFjMGU3YWUzYTc3ZTAwZTZkYWNmMDUzMzA3ZTk2OGIxOWEyY2ZlN2MuLmRmMjgzYzMz
NGI4NTZlNjAxNTIxY2Y1ZTU2NTc3NThjN2Q1YjhkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiAhUExBVEZPUk0oSU9TKQogTWVkaWFTZXNz
aW9uTWFuYWdlciYgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXIsIG1hbmFn
ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFTZXNzaW9uTWFuYWdlcj4g
bWFuYWdlcigpOwogICAgIHJldHVybiBtYW5hZ2VyOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5j
cHAKaW5kZXggMjUzOTUxOTg1ZGZlMjY1Y2NlYjdkMjE0ZGNmYzUzMTQxYTQ3NTc5Ni4uNWI0ZDE0
ZTQzNmIzNTA0ZjE0OThkZWI0NWE2NzE4ZGMyZjJmZWE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBjb25zdCBpbnQga1ByZWZlcnJlZEJ1ZmZlclNpemUgPSAyNTY7CiB0
eXBlZGVmIEhhc2hTZXQ8QXVkaW9EZXN0aW5hdGlvbklPUyo+IEF1ZGlvRGVzdGluYXRpb25TZXQ7
CiBzdGF0aWMgQXVkaW9EZXN0aW5hdGlvblNldCYgYXVkaW9EZXN0aW5hdGlvbnMoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb0Rlc3RpbmF0aW9uU2V0LCBhdWRp
b0Rlc3RpbmF0aW9uU2V0LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvRGVz
dGluYXRpb25TZXQ+IGF1ZGlvRGVzdGluYXRpb25TZXQoKTsKICAgICByZXR1cm4gYXVkaW9EZXN0
aW5hdGlvblNldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQppbmRleCBlNWViNzdkYjM4ZjM5
N2E3YTBkOTNjMDBjOWI0ZWE1M2ZjMWU3YWMzLi4zZGJmZTZlZDU2ODEyZWUwYTYzOGFmNTdkYmFl
YjE4ZGIwNWRkZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpAQCAtMTA4LDcgKzEwOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MsIG1hbmFnZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TWVkaWFTZXNzaW9uTWFuYWdlcmlPUz4gbWFuYWdlcigpOwogICAgIHJl
dHVybiBtYW5hZ2VyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9F
ZmxTY3JlZW5VdGlsaXRpZXMuY3BwCmluZGV4IGNlZTE0Yjc0N2IyYTVjOTU5YmI3OTVmN2NlNGU1
NjM0YWRjNzdjMmEuLmEyZGFkYmRiMDc2NjVkMzlhYTgyMTAwMWM1OTFmMTA3ZDU0YmRlN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMu
Y3BwCkBAIC05Nyw3ICs5Nyw3IEBAIEN1cnNvck1hcDo6Q3Vyc29yTWFwKCkKIAogaW50IGdldEVj
b3JlQ3Vyc29yKGNvbnN0IFN0cmluZyYgY3Vyc29yU3RyaW5nKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3JNYXAsIGN1cnNvclN0cmluZ01hcCwgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3JNYXA+IGN1cnNvclN0cmluZ01hcCgpOwogCiAg
ICAgcmV0dXJuIGN1cnNvclN0cmluZ01hcC5jdXJzb3IoY3Vyc29yU3RyaW5nKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNmE5MzdhOWUwNGVhYzE2
ZDRjYzE5YTc2MmNmZjUyM2Y0NGIyMTdhNi4uOTAxMDVhZDIyZGY5ZWIzYmY3N2E0ZDY0NmMyZDE4
YjBiMWFhN2M5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
QEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRHbHlw
aHNDYWNoZUtleSYgYSwgY29uc3QgRm9udEdseXBoc0NhY2hlS2V5JiBiKQogCiBzdGF0aWMgRm9u
dEdseXBoc0NhY2hlJiBmb250R2x5cGhzQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChGb250R2x5cGhzQ2FjaGUsIGNhY2hlLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEZvbnRHbHlwaHNDYWNoZT4gY2FjaGUoKTsKICAgICByZXR1cm4gY2FjaGU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3Bw
CmluZGV4IDhhOTNmNWYxNzAwYzIxMGYxNzhmOTU5MzNlMWY1MDJlYWI0OGJjNGMuLmM5ZGNjNDQ2
Mjg5ZDFkMzU0MDQ2NzMzZjNjYzE0MDAwMmYzYWM1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQg
R0xDb250ZXh0OjpjbGVhbnVwU2hhcmVkWDExRGlzcGxheSgpCiB0eXBlZGVmIFZlY3RvcjxHTENv
bnRleHQqPiBBY3RpdmVDb250ZXh0TGlzdDsKIHN0YXRpYyBBY3RpdmVDb250ZXh0TGlzdCYgYWN0
aXZlQ29udGV4dExpc3QoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
Y3RpdmVDb250ZXh0TGlzdCwgYWN0aXZlQ29udGV4dHMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QWN0aXZlQ29udGV4dExpc3Q+IGFjdGl2ZUNvbnRleHRzKCk7CiAgICAgcmV0dXJu
IGFjdGl2ZUNvbnRleHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGE2NDRiNzdhMDRlN2VjOWY2M2NmYjEyZjVi
MzlmYTQzYWJmYjNmODMuLmI5ZTZiODg5NDk3ZTZhNTRjMDBkOTJhZDFjNTQ5OGIzZjZkYjg3Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFz
aE1hcDxjb25zdCBHcmFwaGljc0xheWVyKiwgVmVjdG9yPEZsb2F0UmVjdD4+IFJlcGFpbnRNYXA7
CiBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJlY3RNYXAoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChSZXBhaW50TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmVwYWludE1hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IGQwOGZmYjFiMDU2NzdlZmQxNzYwMDE3NzNmZWJhOGVlOTg1ZjdmMzUuLjkwMGU0NDJlNWZmZTAy
NmNjZTUxODMzZTNkZjAyOGE3YmQ5MDRhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTI0MCwxOSArMjQwLDE5IEBAIHN0YXRp
YyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9y
LCBNZWRpYUVuZ2luZVN1cHBvCiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0sICgiYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFwcGxpY2F0aW9uT2N0
ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtOwogfQog
CiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0UGxhaW4oKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRleHRQbGFpbiwgKCJ0
ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHRleHRQbGFpbigidGV4dC9w
bGFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0
ZXh0UGxhaW47CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNvZGVjcygpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29k
ZWNzLCAoImNvZGVjcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjb2RlY3MoImNvZGVj
cyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjb2Rl
Y3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1No
YWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1
ci5jcHAKaW5kZXggOTE3Y2UwOTM4NzM1OWRkNjg5M2FiMzhkMDE5OTUwNjI3N2M1MDJlYS4uN2U1
Mjk5ZjM2MmQ3ODFlODcwYjE3NWIwOWY2MWQ2ODI2YWFmZWIwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTE2MSw3ICsxNjEsNyBA
QCBwcml2YXRlOgogCiBTY3JhdGNoQnVmZmVyJiBTY3JhdGNoQnVmZmVyOjpzaGFyZWQoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3JhdGNoQnVmZmVyLCBzY3JhdGNo
QnVmZmVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNjcmF0Y2hCdWZmZXI+IHNj
cmF0Y2hCdWZmZXIoKTsKICAgICByZXR1cm4gc2NyYXRjaEJ1ZmZlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAKaW5kZXggZmQyOTU5MDM3YTE0NWE2NDY3NDBiOTk3MjI0YzY4MWQ3OWFmOGIyMC4uN2E2
MGFjZjkxN2FjZTZjZTIyZTc5ZWEwMmMwNDRhYTNjYzUwYjIzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
CkBAIC0yNTcsMjEgKzI1NywyMSBAQCBzdGF0aWMgQ0ZBcnJheVJlZiBtZXRhZGF0YUtleU5hbWVz
KCkKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZDRlRpbWVkTWV0YWRhdGFHcm91
cC5oIGV4cG9ydGVkIHRoaXMga2V5Lgogc3RhdGljIENGU3RyaW5nUmVmIENNVGltZVJhbmdlU3Rh
cnRLZXkoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDRlN0cmluZ1Jl
Ziwga2V5LCAoQ0ZTVFIoInN0YXJ0IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q0ZT
dHJpbmdSZWY+IGtleShDRlNUUigic3RhcnQiKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogLy8g
RklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBpZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhw
b3J0ZWQgdGhpcyBrZXkuCiBzdGF0aWMgQ0ZTdHJpbmdSZWYgQ01UaW1lUmFuZ2VEdXJhdGlvbktl
eSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBr
ZXksIChDRlNUUigiZHVyYXRpb24iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRlN0
cmluZ1JlZj4ga2V5KENGU1RSKCJkdXJhdGlvbiIpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiAv
LyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIEFWQ0YgZXhwb3J0ZWQgdGhpcyBub3RpZmlj
YXRpb24gbmFtZS4KIHN0YXRpYyBDRlN0cmluZ1JlZiBDQUNGQ29udGV4dE5lZWRzRmx1c2hOb3Rp
ZmljYXRpb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDRlN0cmlu
Z1JlZiwgbmFtZSwgKENGU1RSKCJrQ0FDRkNvbnRleHROZWVkc0ZsdXNoTm90aWZpY2F0aW9uIikp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q0ZTdHJpbmdSZWY+IG5hbWUoQ0ZTVFIoImtD
QUNGQ29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24iKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDk4NDhkOTk4ZmEyOGJjZWM3ZGU2ZjgwMTUx
YzYwMjdiMTRiN2Q1NGEuLjA4YjVmYzU2MjkyMjkwMDViNjEyNGUxZTYwODJlZTM3ZmZmZWM1MGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyBjb25z
dCBjaGFyICpib29sU3RyaW5nKGJvb2wgdmFsKQogdHlwZWRlZiBIYXNoTWFwPE1lZGlhUGxheWVy
KiwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyo+IFBsYXllclRvUHJpdmF0ZU1h
cFR5cGU7CiBzdGF0aWMgUGxheWVyVG9Qcml2YXRlTWFwVHlwZSYgcGxheWVyVG9Qcml2YXRlTWFw
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGxheWVyVG9Qcml2YXRl
TWFwVHlwZSwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBsYXllclRvUHJp
dmF0ZU1hcFR5cGU+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2Vz
Rmx1c2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5
ZXJDaGFuZ2VzRmx1c2hlci5jcHAKaW5kZXggNGIwMzZjYTQwY2Y4YmRhMDY1NjhkZTBmYTUxYjRm
MDMxYzg1YjI2Ny4uNWQ4MjIyZDkwNmVkYjJlOTc5YWQxODIyOTA0NjM5ZTE2YTQ0NzU1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hh
bmdlc0ZsdXNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIExheWVyQ2hhbmdlc0ZsdXNoZXImIExheWVyQ2hhbmdlc0ZsdXNoZXI6OnNo
YXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExheWVyQ2hhbmdl
c0ZsdXNoZXIsIGZsdXNoZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGF5ZXJD
aGFuZ2VzRmx1c2hlcj4gZmx1c2hlcigpOwogICAgIHJldHVybiBmbHVzaGVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNH
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNl
Q0dXaW4uY3BwCmluZGV4IDgwODgzMGI4Yjg1N2JkMjg2YjgzZmU4ZDQ0YzQ2YTk0MTcwOTdhMzUu
LmFiMDI3OWY0OTM0ZmVhNzM2NzY2OTY0MTIzN2Y5YTVhNzc2NThkMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4u
Y3BwCkBAIC01MCw3ICs1MCw3IEBAIFN0cmluZyBwcmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNv
dXJjZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IFN0cmluZ01hcDsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nTWFwLCBVVElNYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nTWFwPiBVVElNYXAoKTsKICAgICBpZiAoVVRJTWFw
LmlzRW1wdHkoKSkgewogICAgICAgICBVVElNYXAuYWRkKCJwdWJsaWMuaHRtbCIsICJodG1sIik7
CiAgICAgICAgIFVUSU1hcC5hZGQoInB1YmxpYy5qcGVnIiwgImpwZWciKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5j
cHAKaW5kZXggOGQzNDlmNDViODE1YmYxMmE0MWE4ZDc0Y2M4YzY1NDFiODQzNjUyOS4uNmQyYmZi
OGQ5YjZmY2NlNGFjM2NhNWVkNTBhODg2OTE5MTIxNzhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAgUGFzc1JlZlB0cjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0
ZShGaWx0ZXIqIGZpbHRlcikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZm
ZWN0TmFtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUFscGhhIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9taWNTdHJpbmc+IHNfZWZmZWN0TmFtZSgiU291cmNlQWxwaGEiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmNwcAppbmRleCBkMDAxOTY5YTBmYzlkODA2YjgwMzQyYTY0ZjI2MjE0ZDc4ZDVm
YTkyLi45OTFlMmM4ZjZiYWQ5NmUwYWUyZTVhM2YwMzA2MGU4OWRlNzM2Y2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBT
b3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUdy
YXBoaWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VH
cmFwaGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKaW5kZXggYjViMzFmYzE5Y2Yx
NTRmZjliNDllNzQ4Y2YyNTU0YmE5NTM1YjVhMy4uODI0ODBjNjVjNDk3YmUyNjYyNDZiZTM5Mzhl
YWFkOWFjZTI5N2NiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwCkBAIC03NCw4ICs3NCw4IEBAIHR5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEZhY2VDYWNoZUVudHJ5PiwgV1RGOjpJbnRI
YXNoPHVpbnQ2NF90PiwgV1RGOjpVCiAKIHN0YXRpYyBIYXJmQnV6ekZhY2VDYWNoZSogaGFyZkJ1
enpGYWNlQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXJm
QnV6ekZhY2VDYWNoZSwgc19oYXJmQnV6ekZhY2VDYWNoZSwgKCkpOwotICAgIHJldHVybiAmc19o
YXJmQnV6ekZhY2VDYWNoZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFyZkJ1enpGYWNl
Q2FjaGU+IHNfaGFyZkJ1enpGYWNlQ2FjaGUoKTsKKyAgICByZXR1cm4gJnNfaGFyZkJ1enpGYWNl
Q2FjaGUuZ2V0KCk7CiB9CiAKIEhhcmZCdXp6RmFjZTo6SGFyZkJ1enpGYWNlKEZvbnRQbGF0Zm9y
bURhdGEqIHBsYXRmb3JtRGF0YSwgdWludDY0X3QgdW5pcXVlSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQppbmRleCA2OTAy
MWE1MTI1ZmRmNTk2NDRhYzBkYzk2MzdlMDYxMDZiMTE2NzFiLi4wZGI5NmRhZWY0NjhiNzEyZjk5
ZmVlMDk4NDA1ZTRkYmQ5OTc0NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KQEAgLTE2Niw3ICsxNjYsNyBAQCBQYXNz
UmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdAogICAgICAgICBpZiAoZmFtaWx5LmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdGF0aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0g
eyBuZXcgU3RyaW5nKCJBcmFiaWMiKSwgbmV3IFN0cmluZygiUGFzaHRvIiksIG5ldyBTdHJpbmco
IlVyZHUiKSB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IGdlZXphU3RyKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzICYmICFzaW1wbGVGb250RGF0YTsgKytq
KQogICAgICAgICAgICAgaWYgKGZhbWlseS5jb250YWlucygqbWF0Y2hXb3Jkc1tqXSwgZmFsc2Up
KQogICAgICAgICAgICAgICAgIHNpbXBsZUZvbnREYXRhID0gZ2V0Q2FjaGVkRm9udERhdGEoZGVz
Y3JpcHRpb24sIGdlZXphU3RyKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBQYXNzUmVmUHRyPFNpbXBs
ZUZvbnREYXRhPiBGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdAogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RS
ZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IFNob3VsZFJldGFpbiBzaG91bGRSZXRhaW4pCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gdGltZXNTdHIoIlRpbWVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICAvLyBGSVhNRTogV291bGQgYmUgZXZlbiBiZXR0ZXIgdG8gc29tZWhvdyBn
ZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQgaGVyZS4gIEZvciBub3cgd2UnbGwgcGljawogICAg
IC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVzZXIgd291bGQgZ2V0IHdpdGhvdXQgY2hhbmdpbmcg
YW55IHByZWZzLgpAQCAtMTg4LDcgKzE4OCw3IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+
IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpCiAg
ICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGl0LCB3ZSBmYWxsIGJhY2sgb24gTHVjaWRhIEdy
YW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgdGhlcmUsIGFjY29y
ZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlzIGlzIGdvb2QgZW5vdWdoCiAgICAgLy8gdG8gYXZv
aWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBsdWNpZGFHcmFuZGVTdHIsICgiTHVjaWRhIEdyYW5kZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBsdWNpZGFHcmFuZGVTdHIoIkx1Y2lkYSBHcmFuZGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEo
Zm9udERlc2NyaXB0aW9uLCBsdWNpZGFHcmFuZGVTdHIsIGZhbHNlLCBzaG91bGRSZXRhaW4pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwCmluZGV4IDg0NWM3N2Y3MmE1OWZkMGMxYjY5N2NhNGM4ZjY5ODhmMzg3YzVk
OWYuLjQxNDcyOTk3M2IzMGRjODAzMGVjNzc4NjlmNzJkYjFmZTQ1YTNmYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3Bw
CkBAIC0zMDksNyArMzA5LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
Ojpmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm8KIAogUGFzc1JlZlB0
cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBTaG91bGRSZXRhaW4gc2hvdWxk
UmV0YWluKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGZhbGxiYWNrRm9udE5hbWUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1lKCk7CiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1l
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbiwgZmFsbGJhY2tGb250TmFtZSwgZmFsc2UsIHNob3VsZFJldGFpbik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRm
b3JtRGF0YS5jcHAKaW5kZXggY2E2Y2E1Zjg2ODAyMzk4MTBiNWEyNDIzMTQ4ZDU2NzFmMDE3YTU2
OC4uNDUyZmFkOWUwYWQyNThkODc0MmM1YjUyMjA0ZGIzMDY0Y2YzZDY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRm
b3JtRGF0YS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdHJ1Y3QgRml4ZWRTaXplRm9udERhdGFL
ZXlUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEZpeGVkU2l6ZUZvbnREYXRhS2V5Pgog
ICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRp
YyBjb25zdCBGaXhlZFNpemVGb250RGF0YUtleSYgZW1wdHlWYWx1ZSgpCiAgICAgewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRml4ZWRTaXplRm9udERhdGFLZXksIGtl
eSwgKG51bGxBdG9tKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaXhlZFNpemVG
b250RGF0YUtleT4ga2V5KG51bGxBdG9tKTsKICAgICAgICAgcmV0dXJuIGtleTsKICAgICB9CiAg
ICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEZpeGVkU2l6ZUZvbnREYXRhS2V5
JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRz
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKaW5k
ZXggYWI2M2RlYjY2ZjQ2MzVkNjEwZDZiNzBmY2JmZDQyOWQ2Njc2YmE1MC4uYTZiMTk0ZmQ3NWQw
OGUzM2RkZDUyYzBkODc4NTI4NmQ3NWQ1YmEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgZ2Jvb2xlYW4gR2FtZXBh
ZHNHdGs6OmlzR2FtZXBhZERldmljZShHVWRldkRldmljZSogZGV2aWNlKQogCiB2b2lkIHNhbXBs
ZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRvKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChHYW1lcGFkc0d0aywgZ2FtZXBhZHNHdGssIChpbnRvLT5sZW5ndGgoKSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHYW1lcGFkc0d0az4gZ2FtZXBhZHNHdGsoaW50by0+
bGVuZ3RoKCkpOwogICAgIGdhbWVwYWRzR3RrLnVwZGF0ZUdhbWVwYWRMaXN0KGludG8pOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5z
bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xh
dG9yLmNwcAppbmRleCA3YTFjNDRlMTlkODQ0MjBiZGVmMjJlMTM5N2I0Mzg2NWI3NzExZjg4Li45
ZTVmNTFiMzUyZTQ4ZTIwYTkxZDZiNjc3YzNmZDA5ZWRkMzg4YWE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKQEAgLTIx
Myw4ICsyMTMsOCBAQCB2b2lkIEtleUJpbmRpbmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5k
c0ZvcktleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwgRXZlbgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEludENvbnN0Q2hhckhh
c2hNYXAsIGtleURvd25Db21tYW5kc01hcCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChJbnRDb25zdENoYXJIYXNoTWFwLCBrZXlQcmVzc0NvbW1hbmRzTWFwLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEludENvbnN0Q2hhckhhc2hNYXA+IGtleURvd25D
b21tYW5kc01hcCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJbnRDb25zdENoYXJIYXNo
TWFwPiBrZXlQcmVzc0NvbW1hbmRzTWFwKCk7CiAKICAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFw
LmlzRW1wdHkoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR19OX0VMRU1F
TlRTKGtleURvd25FbnRyaWVzKTsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IDhmMjM4MWEyNGRlNDUyMjhlOThmMmI3YjA4
MDM2ZDMxMjg1NmMwYjUuLjYwMDc5ODUxMDg1MTVjNDIzN2VjMzdlNGI4NTYzMjM0MzZkOGMyMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5j
cHAKQEAgLTczLDggKzczLDggQEAgc3RhdGljIHZvaWQgaW5pdEdka0F0b21zKCkKIAogUGFzdGVi
b2FyZEhlbHBlciogUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXN0ZWJvYXJkSGVscGVyLCBk
ZWZhdWx0SGVscGVyLCAoKSk7Ci0gICAgcmV0dXJuICZkZWZhdWx0SGVscGVyOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxQYXN0ZWJvYXJkSGVscGVyPiBkZWZhdWx0SGVscGVyKCk7CisgICAg
cmV0dXJuICZkZWZhdWx0SGVscGVyLmdldCgpOwogfQogCiBQYXN0ZWJvYXJkSGVscGVyOjpQYXN0
ZWJvYXJkSGVscGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9S
ZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwCmluZGV4IGRlMTU0NGY2ZjIyMGM5MzI5
ZGRlNmJlZDc4YjU4NDIyMTMxMTUyYjguLjUzYjY2NjJmMjY3MjVlNWZmNWEwNzg1MGZmNDg2MGI1
Y2E3NjA4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVj
dGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8V2luZG93LCBSZWRpcmVjdGVkWENvbXBvc2l0
ZVdpbmRvdyo+IFdpbmRvd0hhc2hNYXA7CiBzdGF0aWMgV2luZG93SGFzaE1hcCYgZ2V0V2luZG93
SGFzaE1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd0hh
c2hNYXAsIHdpbmRvd0hhc2hNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2lu
ZG93SGFzaE1hcD4gd2luZG93SGFzaE1hcCgpOwogICAgIHJldHVybiB3aW5kb3dIYXNoTWFwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3Bw
CmluZGV4IDM2MzBjNDNkZmZkZTU5YzZlYTg0M2MzNWEzN2U4ZTk0NjExZTRhZTUuLmRhMzQxODRm
ZmY4OWJiZmVhOWIwM2RlNjc2Zjk1Yzc5ZGM0ZDM3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRp
YyB2b2lkIGd0a1N0eWxlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKikKIAog
c3RhdGljIFN0eWxlQ29udGV4dE1hcCYgc3R5bGVDb250ZXh0TWFwKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3R5bGVDb250ZXh0TWFwLCBtYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3R5bGVDb250ZXh0TWFwPiBtYXAoKTsKIAogICAgIHN0YXRp
YyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IGM3MzFhZjQ4OTA1MDBjZWFiOGYxY2FiOThkZmRhN2E0MmJkZTA3ZGYuLmVh
YTVmN2FkYTc4ZjYwYjFlM2NiZmUzOWEzNzBkNjk3MWFmZjZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVm
ZmVyUHVyZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQdXJnZVNj
cmF0Y2hCdWZmZXJUaW1lciwgcHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UHVyZ2VTY3JhdGNoQnVmZmVyVGltZXI+IHB1cmdlU2NyYXRjaEJ1
ZmZlclRpbWVyKCk7CiAgICAgaWYgKHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLmlzQWN0aXZlKCkp
CiAgICAgICAgIHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLnN0b3AoKTsKICAgICBwdXJnZVNjcmF0
Y2hCdWZmZXJUaW1lci5zdGFydE9uZVNob3QoMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9DdXJzb3JJT1MuY3BwCmluZGV4IGY5NmJmYWY3MTM2NGUyMmQwODI3MmMwZTVhZTVmZmRhNGVm
OGU5MDIuLmM5N2U3NDBkZmYwMDZmMTAzODAwOGViMmIyMjdhODk5NTA1OTZhY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DdXJzb3JJT1MuY3BwCkBAIC0zMCw3ICszMCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEN1cnNvciYgY3Vyc29yKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQ3Vyc29yLCBjdXJzb3IsICgp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQ3Vyc29yPiBjdXJzb3IoKTsKICAg
ICByZXR1cm4gY3Vyc29yOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwCmluZGV4IDlh
NGNmZmNhODdiNjYxNDdlODIwZDBkNDg2OTIxYjM1ZTNjMWZkZWUuLjBlMTM4MzY3YzY0NDFkNGMw
MjAzMDNkODExOGNlMjZmMzQ3OWI5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwCkBA
IC03OSw3ICs3OSw3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyOjp0cmltVW5w
YXJlbnRlZFRpbGVzVG9UYXJnZXQoaW50IHRhcmdldCkKIAogVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVyJiB0aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXIoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXIsIHN0YXRpY1Rp
bGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI+IHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5
SGFuZGxlcigpOwogICAgIHJldHVybiBzdGF0aWNUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCA5MDZmOTg4Nzc2
M2EzNWIyZDU3OGIwYzgyOTY4MGEwMWFiNjgzZmI1Li41MDEwZjFjMDNkZmUxOThjYTVhNmUxNGFl
NzFkNmE3Y2Y1Y2Y1YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBA
IC0xMzQsOCArMTM0LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRvbWljU3QKICAgICAgICAgU3RyaW5n
IGxvY2FsaXplZERldmljZU5hbWU7CiAKICAgICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRp
YUNvbnRyb2xzSG9zdCgpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBhaXJwbGF5LCAoQVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKLSAgICAg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVND
SUlMaXRlcmFsKCJ0dm91dCIpKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBhaXJwbGF5KEFTQ0lJTGl0ZXJhbCgiYWlycGxheSIpKTsKKyAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHR2b3V0KEFTQ0lJTGl0ZXJhbCgidHZvdXQiKSk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZyB0eXBlID0gbV9tZWRpYUVsZW1lbnQt
Pm1lZGlhQ29udHJvbHNIb3N0KCktPmV4dGVybmFsRGV2aWNlVHlwZSgpOwogICAgICAgICAgICAg
aWYgKHR5cGUgPT0gYWlycGxheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy93YWsvV0tDb250ZW50T2JzZXJ2YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKaW5kZXggMGZiOGFlOTkwMGI4Y2Qz
NzU5ZWQ1NmQzM2ZkNGI4MWJiN2ZhZjFlNy4uMjI4NzllNTdiNjc5ZTk5ODliZjg0MzBkNGVkZGJi
OGJhZDk2OTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9X
S0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKQEAgLTc3LDggKzc3LDggQEAgc3RhdGljIEhh
c2hNYXA8dm9pZCAqLCB2b2lkICo+ICogV2ViVGhyZWFkR2V0T2JzZXJ2ZWRDb250ZW50TW9kaWZp
ZXJzKCkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwogICAg
IHR5cGVkZWYgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gVm9pZFZvaWRNYXA7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZvaWRWb2lkTWFwLCBvYnNlcnZlZENvbnRlbnRNb2Rp
ZmllcnMsICgpKTsKLSAgICByZXR1cm4gJm9ic2VydmVkQ29udGVudE1vZGlmaWVyczsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Vm9pZFZvaWRNYXA+IG9ic2VydmVkQ29udGVudE1vZGlmaWVy
cygpOworICAgIHJldHVybiAmb2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzLmdldCgpOwogfQogCiBp
bnQgV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycyh2b2lkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggOWQwMzAzZDM0YzNh
MGMzYWIxZDRkNTAyNWEyYTBiMzY3ZTIzZGQxMi4uYzViNTNlYmIwNDZmNzk5ZjQ1NzQ5ZDk4ODA2
ZjA5ZmE4MGM2Y2QyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tCkBAIC0xNjAsNyArMTYwLDcgQEAgY29uc3QgZmxvYXQgRHJhZ0xpbmtVcmxGb250U2l6
ZSA9IDEwOwogc3RhdGljIEZvbnQmIGZvbnRGcm9tTlNGb250KE5TRm9udCAqZm9udCkKIHsKICAg
ICBzdGF0aWMgTlNGb250ICpjdXJyZW50Rm9udDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoRm9udCwgY3VycmVudFJlbmRlcmVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEZvbnQ+IGN1cnJlbnRSZW5kZXJlcigpOwogICAgIAogICAgIGlmIChbZm9udCBpc0Vx
dWFsOmN1cnJlbnRGb250XSkKICAgICAgICAgcmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBh
Y2FhZDAyYWU2YTg0ZTZmZGEwMThiYjU0OWI2ODI1MGEyZWYyMGMwLi5iNTJiZjMwMjIwNjNjYzc5
ZTdjYTk1ZjFhM2YwNTk5MWE1MmJmYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xMTQsOCArMTE0LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1l
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVN
YWMsIHRoZW1lLCAoKSk7Ci0gICAgcmV0dXJuICZ0aGVtZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U2Nyb2xsYmFyVGhlbWVNYWM+IHRoZW1lKCk7CisgICAgcmV0dXJuICZ0aGVtZS5nZXQo
KTsKIH0KIAogLy8gRklYTUU6IEdldCB0aGVzZSBudW1iZXJzIGZyb20gQ29yZVVJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4IDU2ZDBhMmIzOWYwMDBiNTZhM2M5
OWE2OWI2OTMzOWNkNTBkMjc5OGUuLmQ5NTcyM2E1OGEzNzJkNjk3ODllMTZlZjFmMWRiZTZjZDY2
ZDIxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTEzOCw4
ICsxMzgsOCBAQCBlbnVtIHsKIAogVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUaGVtZU1hYywgdGhlbWVNYWMsICgpKTsKLSAgICBy
ZXR1cm4gJnRoZW1lTWFjOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZU1hYz4gdGhl
bWVNYWMoKTsKKyAgICByZXR1cm4gJnRoZW1lTWFjLmdldCgpOwogfQogCiAvLyBIZWxwZXIgZnVu
Y3Rpb25zIHVzZWQgYnkgYSBidW5jaCBvZiBkaWZmZXJlbnQgY29udHJvbCBwYXJ0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBjZTExNTAxZDc3YjY0YmI0N2UxOGQ0ZjEzZWRi
ZjFlY2JkNjg3NzRiLi4yZDQ1OGJkNGI5OGQ3OWQ3MjI0MDIzNjRhOWI1ZGY2N2ZkMDZhNTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjb25zdHJhaW50cygp
IGNvbnN0CiBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OnN0YXRlcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NvdXJjZSkgewotICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0
ZXMsIG5vU3RhdGUsICgpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IE1l
ZGlhU3RyZWFtU291cmNlU3RhdGVzPiBub1N0YXRlKCk7CiAgICAgICAgIHJldHVybiBub1N0YXRl
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJH
U3RyZWFtZXIuY3BwCmluZGV4IGNlZGIwMzk3MzU5MjMwMzFiN2E5OWI3NzY2ZjA5OGM4ZDQ5MDIx
NTEuLmFmOWQzOTMzZDgwMzliNWZmMDk0NzFjN2U0MmZhNzM1Yjc5Yjg0NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcApAQCAtNDcsNyAr
NDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBNZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJl
YW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lciwgY2VudGVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1lZGlhU3Ry
ZWFtQ2VudGVyR1N0cmVhbWVyPiBjZW50ZXIoKTsKICAgICByZXR1cm4gY2VudGVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0
dXJlRGV2aWNlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCmluZGV4IDdiZjcwMzM3YjRiZWU2ZGY3NTI2
ODYyZGY3NzE2ZjI1Yzk0ODM1MjkuLmMzODdmMTA0ZTg2NmNmM2U4NjkxYzllNGE1YjNiNjMwNjI4
YWRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCkBAIC0xNzYsNyArMTc2
LDcgQEAgYm9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWQ2Fw
dHVyZURldmljZU1hbmFnZXImIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNoYXJlZCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFWQ2FwdHVyZURldmljZU1hbmFnZXIs
IG1hbmFnZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZDYXB0dXJlRGV2aWNl
TWFuYWdlcj4gbWFuYWdlcigpOwogICAgIHJldHVybiBtYW5hZ2VyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50
ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlh
U3RyZWFtQ2VudGVyTWFjLmNwcAppbmRleCA4ZDhkOTBkZjE0YzJjZmNhYjJkMGI1N2U4YTlmNWE4
NzZlNGM1NGZmLi4yMjNmNTQ0ZmUwZGY1MmE4ZDRiZDRhMjBjYTIyOWJjNDcxNmQxYzg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1DZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogTWVkaWFTdHJlYW1DZW50ZXImIE1lZGlhU3RyZWFtQ2VudGVyOjpwbGF0Zm9y
bUNlbnRlcigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1DZW50ZXJNYWMsIGNlbnRlciwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZWRpYVN0cmVhbUNlbnRlck1hYz4gY2VudGVyKCk7
CiAgICAgcmV0dXJuIGNlbnRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4IDQ2ZDc1NTJhODNlNjIx
OTYyYzM4ZDlkMzgwMDczODliM2I0MzRiZTcuLmNjMTBmZWU0ZjI5MTJiMzljYmE0NmRlMzQxY2Iy
MmM0ZWIyNjgxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPE1vY2tTb3VyY2U+PiBNb2NrU291cmNlTWFwOwogCiBzdGF0aWMg
TW9ja1NvdXJjZU1hcCYgbW9ja1NvdXJjZU1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE1vY2tTb3VyY2VNYXAsIG1vY2tTb3VyY2VNYXAsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja1NvdXJjZU1hcD4gbW9ja1NvdXJjZU1hcCgpOwogICAgIHJl
dHVybiBtb2NrU291cmNlTWFwOwogfQogCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZU1vY2tTb3VyY2VzKCkKIAogdm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OnJl
Z2lzdGVyTW9ja01lZGlhU3RyZWFtQ2VudGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTW9ja01lZGlhU3RyZWFtQ2VudGVyLCBjZW50ZXIsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja01lZGlhU3RyZWFtQ2VudGVyPiBjZW50ZXIoKTsKICAgICBz
dGF0aWMgYm9vbCByZWdpc3RlcmVkID0gZmFsc2U7CiAgICAgaWYgKCFyZWdpc3RlcmVkKSB7CiAg
ICAgICAgIHJlZ2lzdGVyZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKaW5kZXggYWVjMDQ1YzI1N2ZiNzNjZDBk
ZThkNjVkZmFjZTI0ODYxN2NjYWJlOS4uYTI4NjY4ZTZhMDk4MDEzMTYxMjcxY2QxODdhZDIwOTRm
ODUzMTU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tCb3guY3BwCkBAIC03Niw3ICs3Niw3IEBAIE1vY2tUcmFja0JveDo6TW9ja1Ry
YWNrQm94KEFycmF5QnVmZmVyKiBkYXRhKQogCiBjb25zdCBTdHJpbmcmIE1vY2tUcmFja0JveDo6
dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJh
aywgKEFTQ0lJTGl0ZXJhbCgidHJhayIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdHJhayhBU0NJSUxpdGVyYWwoInRyYWsiKSk7CiAgICAgcmV0dXJuIHRyYWs7CiB9CiAK
QEAgLTEwNSw3ICsxMDUsNyBAQCBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6Ok1vY2tJbml0aWFsaXph
dGlvbkJveChBcnJheUJ1ZmZlciogZGF0YSkKIAogY29uc3QgU3RyaW5nJiBNb2NrSW5pdGlhbGl6
YXRpb25Cb3g6OnR5cGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGluaXQsIChBU0NJSUxpdGVyYWwoImluaXQiKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGluaXQoQVNDSUlMaXRlcmFsKCJpbml0IikpOwogICAgIHJldHVybiBp
bml0OwogfQogCkBAIC0xMzMsNyArMTMzLDcgQEAgTW9ja1NhbXBsZUJveDo6TW9ja1NhbXBsZUJv
eChBcnJheUJ1ZmZlciogZGF0YSkKIAogY29uc3QgU3RyaW5nJiBNb2NrU2FtcGxlQm94Ojp0eXBl
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzbXBsLCAo
QVNDSUlMaXRlcmFsKCJzbXBsIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBzbXBsKEFTQ0lJTGl0ZXJhbCgic21wbCIpKTsKICAgICByZXR1cm4gc21wbDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdl
LmNwcAppbmRleCA0MTAwNWQwYWRkYWUyYzNiZjRlODllMjIwNGNmNjJhODQ0MDJlMGFhLi42MjNm
ODc5MzA1YzAxNmMxYjU1MzI1YzlkMmFkZmFlZjk3Zjk2YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNDYs
NyArNDYsNyBAQCB0eXBlZGVmIEhhc2hNYXA8UHJvdGVjdGlvblNwYWNlLCBDcmVkZW50aWFsPiBQ
cm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXA7CiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlVG9D
cmVkZW50aWFsTWFwJiBwcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcD4gbWFwKCk7CiAgICAg
cmV0dXJuIG1hcDsKIH0KIApAQCAtNjEsNyArNjEsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBQcm90ZWN0aW9uU3BhY2U+IFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXA7CiBzdGF0
aWMgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCYgcGF0aFRvRGVmYXVsdFByb3RlY3Rp
b25TcGFjZU1hcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCwg
bWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBhdGhUb0RlZmF1bHRQcm90ZWN0
aW9uU3BhY2VNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggNmQxYWFiMjBiMmZm
MmUzNGJjOTA1NGIwM2RmZWY4ZjIxNjAyNzIyMi4uNGFmZDMxODkwMzcyMGIwZjA5NjZkNmEwMWUy
Y2Y3NDE3NzI2YTNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHAKQEAgLTM1MSwxNCArMzUxLDE0IEBAIHZvaWQgZmluZENoYXJzZXRJbk1l
ZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgdW5zaWduZWQgaW50JiBjaGFyc2V0UG9z
LCB1CiAKIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVmbGVjdGVkWFNTRGlzcG9zaXRpb24gcGFy
c2VYU1NQcm90ZWN0aW9uSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyLCBTdHJpbmcmIGZhaWx1
cmVSZWFzb24sIHVuc2lnbmVkJiBmYWlsdXJlUG9zaXRpb24sIFN0cmluZyYgcmVwb3J0VVJMKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFz
b25JbnZhbGlkVG9nZ2xlLCAoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCAwIG9yIDEiKSkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZh
bGlkU2VwYXJhdG9yLCAoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCBzZW1pY29sb24iKSkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZh
bGlkRXF1YWxzLCAoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCBlcXVhbHMgc2lnbiIpKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFs
aWRNb2RlLCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlkIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxp
ZFJlcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCByZXBvcnQgZGlyZWN0aXZlIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVw
bGljYXRlTW9kZSwgKEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIG1vZGUgZGlyZWN0aXZlIikpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29u
RHVwbGljYXRlUmVwb3J0LCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2
ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVy
ZVJlYXNvbkludmFsaWREaXJlY3RpdmUsIChBU0NJSUxpdGVyYWwoInVucmVjb2duaXplZCBkaXJl
Y3RpdmUiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFz
b25JbnZhbGlkVG9nZ2xlKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgMCBvciAxIikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFzb25JbnZhbGlkU2VwYXJhdG9y
KEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgc2VtaWNvbG9uIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFzb25JbnZhbGlkRXF1YWxzKEFTQ0lJTGl0ZXJhbCgi
ZXhwZWN0ZWQgZXF1YWxzIHNpZ24iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gZmFpbHVyZVJlYXNvbkludmFsaWRNb2RlKEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCBtb2RlIGRp
cmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVh
c29uSW52YWxpZFJlcG9ydChBU0NJSUxpdGVyYWwoImludmFsaWQgcmVwb3J0IGRpcmVjdGl2ZSIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uRHVwbGlj
YXRlTW9kZShBU0NJSUxpdGVyYWwoImR1cGxpY2F0ZSBtb2RlIGRpcmVjdGl2ZSIpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0
KEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIHJlcG9ydCBkaXJlY3RpdmUiKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFpbHVyZVJlYXNvbkludmFsaWREaXJlY3RpdmUoQVND
SUlMaXRlcmFsKCJ1bnJlY29nbml6ZWQgZGlyZWN0aXZlIikpOwogCiAgICAgdW5zaWduZWQgcG9z
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5kZXggYzdmMGI0Mzk4ZjFhMGZiOWVh
YmYzODZkMDkwZDc3YWM0NDhjMzM4OS4uNTI2ZDhlNTg2MzNkYjcyNWM3NDk3YTZjYmY1MGVkMzJm
NDEzMDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Y3JlYXRlUHJpdmF0ZUJyb3dzCiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChOZXR3b3JrU3RvcmFnZVNlc3Npb24sIHNlc3Npb24sICgwKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vzc2lv
bigwKTsKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCAxZjZlNzNkNDc3MWRkNWE0
NDM2OTEwZWVkN2Q0YzhhMjg3MzJlOTgyLi44NjU2ZDRlOWJhYWQyYWZjNjA1MzAwMjk0YzUxZDg0
ZWY4YjI2M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgQnVpbHRpblJlc291cmNl
SGFuZGxlQ29uc3RydWN0b3JNYXAmIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFw
KAogI2Vsc2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogI2VuZGlmCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9y
TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QnVpbHRpblJlc291cmNl
SGFuZGxlQ29uc3RydWN0b3JNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9CiAKQEAgLTYx
LDcgKzYxLDcgQEAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgUmVzb3VyY2VIYW5kbGU6
OkJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcj4gQnVpbHRpblIKIHN0YXRpYyBCdWlsdGluUmVzb3Vy
Y2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCYgYnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hy
b25vdXNMb2FkZXJNYXAoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9u
b3VzTG9hZGVyTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QnVpbHRp
blJlc291cmNlSGFuZGxlU3luY2hyb25vdXNMb2FkZXJNYXA+IG1hcCgpOwogICAgIHJldHVybiBt
YXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IGRlZjAxY2ExMGExMWU5YzA3ZTU0OGVj
OTI5MTgwNmIwNmZiZmRjZTQuLmY3OTdhZTg0OTViMDk5NmZiOTExMTJmMGY1NTk3OWVhMDE2NTY2
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMgSGFzaFNl
dDxTdHJpbmc+JiBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKQogc3RhdGljIEhhc2hN
YXA8U3RyaW5nLCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4mIGNsaWVudENlcnRzKCkKIHsKICAgICB0
eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQ2VydHNNYXA7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENlcnRzTWFwLCBjZXJ0cywgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDZXJ0c01hcD4gY2VydHMoKTsKICAgICByZXR1cm4g
Y2VydHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggY2IyM2NiOWNiN2M1
MjlmMjEzZTMyMjM3NTIyMmUzMGJmYzAwZTgzYy4uZmJlZDc0MTNlMWQ5YmVkYzBjN2E0NDA0ZTJi
OWJkNjBlOGZmYjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTEzNCw5ICsx
MzQsOSBAQCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0aCgpCiB9CiAKIHN0YXRpYyBNdXRleCog
c2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKSB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBjb29raWVNdXRleCwgKCkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgZG5zTXV0ZXgsICgpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHNoYXJlTXV0ZXgsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IGNvb2tpZU11dGV4KCk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPE11dGV4PiBkbnNNdXRleCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxNdXRleD4gc2hhcmVNdXRleCgpOwogCiAgICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNh
c2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAppbmRl
eCA4NTEzN2YwNWQyYzQ0OGNkY2NkOGMyZDkzZTc5MDA0OTk2NGRhNDdiLi5hZWI2YmE2YmFmNjc5
NjVhNzk0ZWNkYTk5NGZjZTUzZDkwNzFiZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENyZWRlbnRpYWxCYWNr
aW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDcmVkZW50aWFsQmFja2luZ1N0b3JlLCBiYWNraW5nU3RvcmUsICgp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3JlZGVudGlhbEJhY2tpbmdTdG9yZT4gYmFj
a2luZ1N0b3JlKCk7CiAgICAgcmV0dXJuIGJhY2tpbmdTdG9yZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcAppbmRleCBkMTA4NTBkNjI1OWRlMTRmNjBlMzRlYTM4ZWU3ZDQ4ZWM0ZWI2MmYxLi41
N2VmOGI3N2Q4ZTNkYzBjODQ4Y2EyNmVjM2UxNDAyYzRlYmQ3MDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFsbG93
c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygpCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBIb3N0
VExTQ2VydGlmaWNhdGVTZXQ+IENlcnRpZmljYXRlc01hcDsKIHN0YXRpYyBDZXJ0aWZpY2F0ZXNN
YXAmIGNsaWVudENlcnRpZmljYXRlcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKENlcnRpZmljYXRlc01hcCwgY2VydGlmaWNhdGVzLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPENlcnRpZmljYXRlc01hcD4gY2VydGlmaWNhdGVzKCk7CiAgICAgcmV0dXJu
IGNlcnRpZmljYXRlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwCmluZGV4IGZmNTJiN2QzOTE2M2Q1
ZDlmODQxNDY0MzBiYzNlODU2NjJmZDdkNjUuLjk0MWUyZGNmMmM3Zjc2ODA3MjNlODdmYmY4YTgy
NDJiNTljZTRkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGlj
IHVpbnQzMl90IG1hZ2ljTnVtYmVyKCkKIAogY29uc3QgU3RyaW5nJiBmaWxlRXh0ZW5zaW9uKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRl
bnNpb24sIChBU0NJSUxpdGVyYWwoIi5kb3dubG9hZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gZXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCgiLmRvd25sb2FkIikp
OwogICAgIHJldHVybiBleHRlbnNpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKaW5kZXggOWE1M2Nh
NjJmMTkyN2FlYjNmMGQyMTg2MjEwZjg4ZmU5NzgwODM0ZC4uZGRmODViMmM1YzMzMmI0YjIxNzBl
MzNiMWFiMDRlNjRkMGMzYzBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKQEAgLTM2LDcgKzM2LDcgQEAg
cHVibGljOgogICAgIFQgZ2V0KGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAgICAg
ICAgaWYgKGtleS5pc051bGwoKSkgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFQsIHZhbHVlRm9yTnVsbCwgKGNyZWF0ZVZhbHVlRm9yTnVsbEtleSgpKSk7Cisg
ICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gdmFsdWVGb3JOdWxsKGNyZWF0ZVZh
bHVlRm9yTnVsbEtleSgpKTsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvck51bGw7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVU
b1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAKaW5kZXggZDY0OTU0NGJlOGNiYzIyMDk0
ODRiOTFiYmM3ZDhlNjc4MmFmOWUyOC4uYjMzMDdhZmNjZWU3NjRjYjAzYTEzNWIzYmM1MGMyZjAx
MDIzYjYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVU
b1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVVNjcmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46
Okhhc2gsIFNjcmlwdE5hbWVDb2RlTWEKIAogVVNjcmlwdENvZGUgc2NyaXB0TmFtZVRvQ29kZShj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFNjcmlwdE5hbWVDb2RlTWFwLCBzY3JpcHROYW1lQ29kZU1hcCwgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTY3JpcHROYW1lQ29kZU1hcD4gc2NyaXB0TmFtZUNvZGVNYXAo
KTsKICAgICBpZiAoc2NyaXB0TmFtZUNvZGVNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHNjcmlwdE5hbWVDb2RlTGlzdCkgLyBzaXplb2YoU2Ny
aXB0TmFtZUNvZGUpOyArK2kpCiAgICAgICAgICAgICBzY3JpcHROYW1lQ29kZU1hcC5zZXQoQVND
SUlMaXRlcmFsKHNjcmlwdE5hbWVDb2RlTGlzdFtpXS5uYW1lKSwgc2NyaXB0TmFtZUNvZGVMaXN0
W2ldLmNvZGUpOwpAQCAtMzg5LDcgKzM4OSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFVT
Y3JpcHRDb2RlLCBEZWZhdWx0SGFzaDxTdHJpbmc+OjpIYXNoLCBMb2NhbGVTY3JpcHRNYXBICiAK
IFVTY3JpcHRDb2RlIGxvY2FsZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24oY29uc3QgU3Ry
aW5nJiBsb2NhbGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2Fs
ZVNjcmlwdE1hcCwgbG9jYWxlU2NyaXB0TWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPExvY2FsZVNjcmlwdE1hcD4gbG9jYWxlU2NyaXB0TWFwKCk7CiAgICAgaWYgKGxvY2FsZVNj
cmlwdE1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
b2YobG9jYWxlU2NyaXB0TGlzdCkgLyBzaXplb2YoTG9jYWxlU2NyaXB0KTsgKytpKQogICAgICAg
ICAgICAgbG9jYWxlU2NyaXB0TWFwLnNldChBU0NJSUxpdGVyYWwobG9jYWxlU2NyaXB0TGlzdFtp
XS5sb2NhbGUpLCBsb2NhbGVTY3JpcHRMaXN0W2ldLnNjcmlwdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldj
aGFyLmNwcAppbmRleCA3ZjQ1MTk5M2U3YzNiMzY0YTY4ZGM4ZDU0Y2VlNzgwYjc4ZDNiOWI2Li42
YzM1NjQ3NzI3ODYzM2QxNWEyNTk1ODg3MDVjNjQ4MjJiZTM3ZDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0
b3JXY2hhci5jcHAKQEAgLTIzMCw5ICsyMzAsOSBAQCBpbnQgU2VudGVuY2VCcmVha0l0ZXJhdG9y
OjpwcmV2aW91cygpCiAKIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb25z
dCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChXb3JkQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8V29yZEJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yKCk7CiAgICAgaXRlcmF0
b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwotICAgIHJldHVybiAmaXRlcmF0b3I7CisgICAgcmV0
dXJuICZpdGVyYXRvci5nZXQoKTsKIH0KIAogc3RhdGljIENoYXJCcmVha0l0ZXJhdG9yKiBub25T
aGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yOwpAQCAtMjg4LDkgKzI4OCw5IEBAIHZvaWQgcmVs
ZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIAogVGV4
dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5n
LCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTZW50
ZW5jZUJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFNlbnRlbmNlQnJlYWtJdGVyYXRvcj4gaXRlcmF0b3IoKTsKICAgICBpdGVyYXRvci5yZXNl
dChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJuICZpdGVyYXRvcjsKKyAgICByZXR1cm4gJml0
ZXJhdG9yLmdldCgpOwogfQogCiBpbnQgdGV4dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3Iq
IGJyZWFrSXRlcmF0b3IpCkBAIC0zNDAsOSArMzQwLDkgQEAgYm9vbCBpc1dvcmRUZXh0QnJlYWso
VGV4dEJyZWFrSXRlcmF0b3IqKQogCiBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDaGFyQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q2hhckJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yKCk7
CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwotICAgIHJldHVybiAmaXRlcmF0
b3I7CisgICAgcmV0dXJuICZpdGVyYXRvci5nZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxl
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAK
aW5kZXggYWIwMzZhYTBkMTAwZTAxYTQwOWMxMWM3MWFhMWYwZDc5NGY0NTQwMy4uMzI2NTY2NjNl
NTBlZTRkZjA2NzkxOWRjZTI1ZjFiYzI0ZmQxYWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGlj
IExDSUQgV0lOQVBJIGNvbnZlcnRMb2NhbGVOYW1lVG9MQ0lEKExQQ1dTVFIgbmFtZSwgRFdPUkQp
CiB7CiAgICAgaWYgKCFuYW1lIHx8ICFuYW1lWzBdKQogICAgICAgICByZXR1cm4gTE9DQUxFX1VT
RVJfREVGQVVMVDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTmFtZVRvTENJ
RE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5hbWVUb0xDSURNYXA+
IG1hcCgpOwogICAgIGVuc3VyZU5hbWVUb0xDSURNYXAobWFwKTsKICAgICBTdHJpbmcgbG9jYWxl
TmFtZSA9IFN0cmluZyhuYW1lKS5yZXBsYWNlKCdfJywgJy0nKS5sb3dlcigpOwogICAgIGRvIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRp
ZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGll
c1dpbi5jcHAKaW5kZXggMmJjY2YxYTUwZTI3NmU2MzI4MzY1YzM2MDQ3NWIyNjAwN2Y0OWUyMi4u
YTYzMzkxNDVhY2E5MGM4ODVlMTZmYjc2ZTFjMjVjMGI0YzQ0ZmEzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAg
LTMwMSw3ICszMDEsNyBAQCB2b2lkIG1hcmt1cFRvQ0ZIVE1MKGNvbnN0IFN0cmluZyYgbWFya3Vw
LCBjb25zdCBTdHJpbmcmIHNyY1VSTCwgVmVjdG9yPGNoYXI+JiByZQogCiB2b2lkIHJlcGxhY2VO
ZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0cikKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3aW5kb3dzTmV3bGluZSwgKEFTQ0lJ
TGl0ZXJhbCgiXHJcbiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd2lu
ZG93c05ld2xpbmUoQVNDSUlMaXRlcmFsKCJcclxuIikpOwogICAgIFN0cmluZ0J1aWxkZXIgcmVz
dWx0OwogICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHN0ci5sZW5ndGgoKTsg
KytpbmRleCkgewogICAgICAgICBpZiAoc3RyW2luZGV4XSAhPSAnXG4nIHx8IChpbmRleCA+IDAg
JiYgc3RyW2luZGV4IC0gMV0gPT0gJ1xyJykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggYzY1MjkzZDAyMDQ5ZGJiMmVhOWFhYjdmMjBiNDIw
YzI2MWVkNDJlNy4uZDk4ZTc4MTdmMjg4MjlmOTM3YjliN2MzYzIyOTE1ZTlkYjE2MjU1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMjU4
LDcgKzI1OCw3IEBAIFN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIAog
c3RhdGljIFN0cmluZyBidW5kbGVOYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBuYW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJLaXQiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG5hbWUoQVNDSUlMaXRlcmFsKCJXZWJLaXQiKSk7
CiAKICNpZiBVU0UoQ0YpCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CkBAIC0yODcsNyAr
Mjg3LDcgQEAgc3RhdGljIFN0cmluZyBzdG9yYWdlRGlyZWN0b3J5KERXT1JEIHBhdGhJZGVudGlm
aWVyKQogICAgIGJ1ZmZlci5yZXNpemUod2NzbGVuKGJ1ZmZlci5kYXRhKCkpKTsKICAgICBTdHJp
bmcgZGlyZWN0b3J5ID0gU3RyaW5nOjphZG9wdChidWZmZXIpOwogCi0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29tcGFueU5hbWVEaXJlY3RvcnksIChBU0NJSUxp
dGVyYWwoIkFwcGxlIENvbXB1dGVyXFwiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IGNvbXBhbnlOYW1lRGlyZWN0b3J5KEFTQ0lJTGl0ZXJhbCgiQXBwbGUgQ29tcHV0ZXJc
XCIpKTsKICAgICBkaXJlY3RvcnkgPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0b3J5
LCBjb21wYW55TmFtZURpcmVjdG9yeSArIGJ1bmRsZU5hbWUoKSk7CiAgICAgaWYgKCFtYWtlQWxs
RGlyZWN0b3JpZXMoZGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAppbmRleCA5OGQwYTk3YjdiOTNkN2M4
ZWJhYjQ4YmE1NDgzYjM5ZDIzNjQ4YzJjLi43Mzk1Y2ZlNWZkMjZlNjk2NzRiODI2MmJkMjE5Nzg5
YWZiNmVmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApA
QCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgYm9vbCBnUGVyc2lzdGVudFBsdWdpbk1ldGFkYXRhQ2Fj
aGVJc0VuYWJsZWQ7CiAKIFN0cmluZyYgcGVyc2lzdGVudFBsdWdpbk1ldGFkYXRhQ2FjaGVQYXRo
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjYWNoZVBh
dGgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjYWNoZVBhdGgoKTsK
ICAgICByZXR1cm4gY2FjaGVQYXRoOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAppbmRleCBjYTA1NzllNTg5
OWNjMTU4OGY4ZDZlZDk5ZTRiMmQxODFlYjY3NmZhLi4xZDNlYzU0OTlmODkxMWFlMzFmZGNiOWEy
YjQ2MmVkNDVhYzI4YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyJiBQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpzY2hlZHVsZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLCBzY2hlZHVsZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcj4gc2NoZWR1bGVyKCk7CiAK
ICAgICByZXR1cm4gc2NoZWR1bGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggYmRhYWNkMGIwNDU4YTJjYTRhYWYwNTBhYjFiNTY3NTU5NjZkODYwNS4u
MWVkMzJmMzhkOWIyNWIzZDVjYjlmMzg0OTQ2MGYzNzZmNDg1ZTBiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNzQ5LDggKzE3NDksOCBAQCBSZW5kZXJC
bG9jayogUmVuZGVyQmxvY2s6OmJsb2NrRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0CiAgICAg
CiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFwKiBjb250aW51YXRpb25PdXRsaW5l
VGFibGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDb250aW51YXRp
b25PdXRsaW5lVGFibGVNYXAsIHRhYmxlLCAoKSk7Ci0gICAgcmV0dXJuICZ0YWJsZTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGludWF0aW9uT3V0bGluZVRhYmxlTWFwPiB0YWJsZSgp
OworICAgIHJldHVybiAmdGFibGUuZ2V0KCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmFkZENv
bnRpbnVhdGlvbldpdGhPdXRsaW5lKFJlbmRlcklubGluZSogZmxvdykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggMTM5MDRl
NzMwN2ExNmFmNDg2MGE1NDZiMTAzMzRiMDRiMWUzMThlZi4uZDI4NmY2ZDg1NzRkOGExYzE3ZmU0
OTliNzEyZDU0OTE3MDU1YzA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE4MTIsNyArMTgxMiw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2tGbG93OjpjaGVja0xpbmVzRm9yVGV4dE92ZXJmbG93KCkKICAgICAvLyBEZXRlcm1p
bmUgdGhlIHdpZHRoIG9mIHRoZSBlbGxpcHNpcyB1c2luZyB0aGUgY3VycmVudCBmb250LgogICAg
IC8vIEZJWE1FOiBDU1MzIHNheXMgdGhpcyBpcyBjb25maWd1cmFibGUsIGFsc28gbmVlZCB0byB1
c2UgMHgwMDJFIChGVUxMIFNUT1ApIGlmIGhvcml6b250YWwgZWxsaXBzaXMgaXMgIm5vdCByZW5k
ZXJhYmxlIgogICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBzdHlsZSgpLmZvbnQoKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc1N0ciwgKCZo
b3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICBjb25zdCBG
b250JiBmaXJzdExpbmVGb250ID0gZmlyc3RMaW5lU3R5bGUoKS5mb250KCk7CiAgICAgZmxvYXQg
Zmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA9IGZpcnN0TGluZUZvbnQud2lkdGgoY29uc3RydWN0VGV4
dFJ1bih0aGlzLCBmaXJzdExpbmVGb250LCAmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBmaXJzdExp
bmVTdHlsZSgpKSk7CiAgICAgZmxvYXQgZWxsaXBzaXNXaWR0aCA9IChmb250ID09IGZpcnN0TGlu
ZUZvbnQpID8gZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA6IGZvbnQud2lkdGgoY29uc3RydWN0VGV4
dFJ1bih0aGlzLCBmb250LCAmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBzdHlsZSgpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcAppbmRleCAzZjAx
M2RiOTFkN2Y1Yzg3NTVlNTJkOGM0MGVjOTlkNmEwNmM4M2E4Li41N2M1NDU0YzkyYjAyYmZkMzI5
ZGUyYjkzN2Q0YTRhNWZhOTBhNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJDb21iaW5lVGV4dC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFJlbmRlckNvbWJp
bmVUZXh0Ojpjb21iaW5lVGV4dCgpCiAgICAgICAgIG1fY29tYmluZUZvbnRTdHlsZS0+Zm9udCgp
LnVwZGF0ZShmb250U2VsZWN0b3IpOwogCiAgICAgaWYgKG1faXNDb21iaW5lZCkgewotICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclN0cmluZywgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBvYmplY3RSZXBsYWNlbWVudENoYXJh
Y3RlclN0cmluZygmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpOwogICAgICAgICBSZW5k
ZXJUZXh0OjpzZXRSZW5kZXJlZFRleHQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJTdHJpbmcu
aW1wbCgpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRl
ci5jcHAKaW5kZXggODkzZGMxODhlNmY2OGM0NDZhZDhhMWI4YzUzMTA2NTk1ZWJiZDJjNC4uMTll
ZjlkYjZhNGM1NjgxMTdmNDgyZDg2MDBjMGU5ZDljNjI5OTlhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgQ291
bnRlck5vZGUqIG1ha2VDb3VudGVyTm9kZShSZW5kZXJPYmplY3QqLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkZW50aWZpZQogCiBzdGF0aWMgQ291bnRlck1hcHMmIGNvdW50ZXJNYXBzKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ291bnRlck1hcHMsIHN0YXRpY0NvdW50
ZXJNYXBzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENvdW50ZXJNYXBzPiBzdGF0
aWNDb3VudGVyTWFwcygpOwogICAgIHJldHVybiBzdGF0aWNDb3VudGVyTWFwczsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcAppbmRleCA3NjA2YWQ5MDdkZjYzZDdhOGY1MDlhMzM0ZjhiMzEwZTk3NDczMGE0
Li4wNGNhMDhmYTVlODkzNTA2M2YwMzljYTViYTkwYmYzMzc1YzgyN2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcApAQCAtOTk0LDggKzk5NCw4IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRlcmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBjb25zdCBVQ2hhciBlbGxpcHNpc0FuZFNwYWNlWzJd
ID0geyBob3Jpem9udGFsRWxsaXBzaXMsICcgJyB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc0FuZFNwYWNlU3RyLCAoZWxsaXBz
aXNBbmRTcGFjZSwgMikpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBlbGxpcHNpc1N0ciwgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZWxsaXBzaXNBbmRTcGFj
ZVN0cihlbGxpcHNpc0FuZFNwYWNlLCAyKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAgICAg
ICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSBudW1WaXNpYmxlTGluZXMgPT0gMSA/
IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgICAgICBjb25zdCBGb250JiBmb250ID0g
bGluZVN0eWxlLmZvbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTY3JvbGxiYXJUaGVtZS5jcHAKaW5kZXggNzliNWQ4MjBmNjFkZDZmNGRmYTI4MjlhZTllYTRh
YjUyZmU1NGE2OC4uYzhjNTUyNTlkYTQwZDEwNGViYzY3MGMwZjdkMjUwODg3ODdhYThiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3Bw
CkBAIC0zMyw4ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU2Nyb2xsYmFy
VGhlbWUqIFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlbmRlclNjcm9sbGJhclRoZW1lLCB0
aGVtZSwgKCkpOwotICAgIHJldHVybiAmdGhlbWU7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJlbmRlclNjcm9sbGJhclRoZW1lPiB0aGVtZSgpOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7
CiB9CiAKIHZvaWQgUmVuZGVyU2Nyb2xsYmFyVGhlbWU6OmJ1dHRvblNpemVzQWxvbmdUcmFja0F4
aXMoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwgaW50JiBiZWZvcmVTaXplLCBpbnQm
IGFmdGVyU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4
IDdmOThlMTA1ZTQ4YTAwZTVkMGEwMTFiYWExNjJiMzcxNGVjNWY5OWYuLjFiNDE2ODY2NDU4OTNk
N2EzZjcwODFjNTI4NDEwZDA2ZTMzYjI0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmNwcApAQCAtNzAsNyArNzAsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCiBzdGF0aWMgQ29sb3ImIGN1c3RvbUZvY3VzUmluZ0NvbG9yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGNvbG9yLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPENvbG9yPiBjb2xvcigpOwogICAgIHJldHVybiBjb2xvcjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDE3ZjZhOGRiNzgy
ZmFlOTY0MWU3ZjI5NGUwZWM3MTQzZDViMTRmYjYuLjQ4M2M4NGM2NTk0NGZiNjdmOWU1ZmFiMjU0
ODY3ZWYyZmJlNTRhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KQEAgLTM0MywxMyArMzQzLDEzIEBAIHN0YXRpYyBGb250V2VpZ2h0IHRvRm9udFdlaWdo
dChOU0ludGVnZXIgYXBwS2l0Rm9udFdlaWdodCkKIAogdm9pZCBSZW5kZXJUaGVtZU1hYzo6c3lz
dGVtRm9udChDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250
RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBzbWFsbFN5c3RlbUZvbnQsICgpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBtZW51Rm9udCwgKCkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxh
YmVsRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVz
Y3JpcHRpb24sIG1pbmlDb250cm9sRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsQ29udHJvbEZvbnQsICgpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9u
dCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IHN5c3Rl
bUZvbnQoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBzbWFs
bFN5c3RlbUZvbnQoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9u
PiBtZW51Rm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+
IGxhYmVsRm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+
IG1pbmlDb250cm9sRm9udCgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3Jp
cHRpb24+IHNtYWxsQ29udHJvbEZvbnQoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9u
dERlc2NyaXB0aW9uPiBjb250cm9sRm9udCgpOwogCiAgICAgRm9udERlc2NyaXB0aW9uKiBjYWNo
ZWREZXNjOwogICAgIE5TRm9udCogZm9udCA9IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAKaW5kZXggMWZmODNhOGE1ZWU1M2U1M2U1MjI3MTNkZmFlMDQxYzU4
YjIwNzY1My4uMTVlNTAzZmM1MTQwOTFjODMzMzE5MDNjNjhkMDJiMWQ2ZTg2MTExZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
dW5zaWduZWQgV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6c193aWRnZXRI
aWVyYXJjaHlVcGRhdGVTdXNwZW5kQ28KIAogV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNp
b25TY29wZTo6V2lkZ2V0VG9QYXJlbnRNYXAmIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5z
aW9uU2NvcGU6OndpZGdldE5ld1BhcmVudE1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFdpZGdldFRvUGFyZW50TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8V2lkZ2V0VG9QYXJlbnRNYXA+IG1hcCgpOwogICAgIHJldHVybiBtYXA7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGFmMzQyNTdh
ZTBhMzFlZmZmOWM5MWUwN2ZjYzMxOTA3NjllYjYxOTIuLjZjMzZlMWRhMzEzZGU4N2IyMWFjYTIy
NTkwZTIzZmQ2ODAyZWY5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVy
LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgVGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCiAg
ICAgICAgIGlmICghbV9lbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICB1cGRh
dGVHcmFwaGljc0NvbnRleHQoKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwg
Km1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUsIFVzZUVtcGhhc2lz
TWFya0NvbG9yKTsKIAotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBs
YWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFRleHRSdW4+IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1bigmb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXIsIDEpOwogICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4
dFJ1biA9IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVu
IDogbV90ZXh0UnVuOwogICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3Jp
Z2luID0gbV9jb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBtX2JveFJl
Y3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBtX2ZvbnQuZm9udE1ldHJpY3MoKS5hc2Nl
bnQoKSkgOiBtX3RleHRPcmlnaW47CiAgICAgICAgICAgICBpZiAobV9jb21iaW5lZFRleHQpCkBA
IC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKICAgICAgICAg
aWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHVwZGF0ZUdyYXBo
aWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZl
ZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01h
cmtDb2xvcik7CiAKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChU
ZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxU
ZXh0UnVuPiBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4oJm9iamVjdFJlcGxhY2Vt
ZW50Q2hhcmFjdGVyLCAxKTsKICAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRS
dW4gPSBtX2NvbWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6
IG1fdGV4dFJ1bjsKICAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdp
biA9IG1fY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0
LndpZHRoKCkgLyAyLCBib3hPcmlnaW4ueSgpICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50
KCkpIDogbV90ZXh0T3JpZ2luOwogICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaApp
bmRleCBkNmI2OGRkMzU1YjczYzUyYWMzOTVmNmExMDI0NWEwOTUzNmUzNmY4Li4wZTMxODk2MTFl
MTE3YmYwODUzOTI5YzliMjNlZDVmOGUyMDljY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaApAQCAtMTA0LDcgKzEwNCw3IEBA
IHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIHN0ZDo6dW5p
cXVlX3B0cjxTaGFwZU91dHNpZGVJbmZvPj4gSW5mb01hcDsKICAgICBzdGF0aWMgSW5mb01hcCYg
aW5mb01hcCgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SW5mb01hcCwgc3RhdGljSW5mb01hcCwgKCkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SW5mb01hcD4gc3RhdGljSW5mb01hcCgpOwogICAgICAgICByZXR1cm4gc3RhdGljSW5mb01h
cDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkVHJhY2tTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNr
U2l6ZS5oCmluZGV4IGEwMWI1Mjk0ZDVhYWNjNzVhZDIxZDNhNGI2NTViMmI5YTc2OTE2MmEuLmQ2
ZWMzNGIzY2NiY2Y0MWI0OWQ0OTZhNTllOTQ0ZWQwYmE4ZjIwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaApAQCAtNzIsNyArNzIsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbWluVHJhY2tCcmVhZHRoLmlzTGVuZ3Ro
KCkgfHwgIW1fbWluVHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5kZWZpbmVkKCkpOwogICAgICAg
ICBpZiAobV9taW5UcmFja0JyZWFkdGguaXNMZW5ndGgoKSAmJiBtX21pblRyYWNrQnJlYWR0aC5s
ZW5ndGgoKS5pc0F1dG8oKSkgewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEdyaWRMZW5ndGgsIG1pbkNvbnRlbnQsIChNaW5Db250ZW50KSk7CisgICAgICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R3JpZExlbmd0aD4gbWluQ29udGVudChNaW5Db250ZW50
KTsKICAgICAgICAgICAgIHJldHVybiBtaW5Db250ZW50OwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX21pblRyYWNrQnJlYWR0aDsKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgQVNTRVJUKCFtX21heFRyYWNrQnJlYWR0aC5pc0xlbmd0aCgpIHx8ICFtX21heFRy
YWNrQnJlYWR0aC5sZW5ndGgoKS5pc1VuZGVmaW5lZCgpKTsKICAgICAgICAgaWYgKG1fbWF4VHJh
Y2tCcmVhZHRoLmlzTGVuZ3RoKCkgJiYgbV9tYXhUcmFja0JyZWFkdGgubGVuZ3RoKCkuaXNBdXRv
KCkpIHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChHcmlkTGVu
Z3RoLCBtYXhDb250ZW50LCAoTWF4Q29udGVudCkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEdyaWRMZW5ndGg+IG1heENvbnRlbnQoTWF4Q29udGVudCk7CiAgICAgICAgICAg
ICByZXR1cm4gbWF4Q29udGVudDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9tYXhUcmFj
a0JyZWFkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAppbmRleCAzMzIwYzAyOGI1OGQ0OTY4ZTczZGMyZDZhOTkxOTI0MTA5NGYxODYzLi40Nzdm
ZmY2ZmQ5ODk2ZmQzNDVmNmJhOTFmZTY1Y2VhMDc5MmU0Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTExNDQsOCArMTE0NCw4IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZygpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBoeXBoZW5hdGlvblN0cmluZzsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBkZXBlbmQgb24gbG9jYWxlLgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGh5cGhlbk1pbnVzU3RyaW5nLCAoJmh5cGhlbk1pbnVzLCAxKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaHlwaGVuU3Ry
aW5nLCAoJmh5cGhlbiwgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywgMSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4sIDEpOwogICAgIHJl
dHVybiBmb250KCkucHJpbWFyeUZvbnRIYXNHbHlwaEZvckNoYXJhY3RlcihoeXBoZW4pID8gaHlw
aGVuU3RyaW5nIDogaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKQEAgLTExNTcsMjggKzExNTcsMjgg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmlu
ZygpIGNvbnN0CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ3VzdG9tOgogICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0Rv
dDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBmaWxsZWREb3RTdHJpbmcsICgmYnVsbGV0LCAxKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxs
ZXQsIDEpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZmls
bGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CiAgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxl
ZERvdFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya0NpcmNsZTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJpbmcsICgmYmxhY2tDaXJjbGUsIDEpKTsKLSAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkNpcmNs
ZVN0cmluZywgKCZ3aGl0ZUNpcmNsZSwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWRDaXJjbGVTdHJpbmcoJmJsYWNrQ2lyY2xlLCAxKTsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gb3BlbkNpcmNsZVN0cmlu
Zygmd2hpdGVDaXJjbGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09
IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xl
U3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6IHsK
LSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmls
bGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZpc2hleWUsIDEpKTsKLSAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmlu
ZywgKCZidWxsc2V5ZSwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5n
KCZidWxsc2V5ZSwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4
dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3Vi
bGVDaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xl
OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGZpbGxlZFRyaWFuZ2xlU3RyaW5nLCAoJmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7Ci0g
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5U
cmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWRUcmlhbmdsZVN0cmluZygm
YmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBvcGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFu
Z2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFz
aXNGaWxsRmlsbGVkID8gZmlsbGVkVHJpYW5nbGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1Nlc2FtZTogewotICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJp
bmcsICgmc2VzYW1lRG90LCAxKSk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgmd2hpdGVTZXNhbWVEb3QsIDEp
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZmlsbGVkU2Vz
YW1lU3RyaW5nKCZzZXNhbWVEb3QsIDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBvcGVuU2VzYW1lU3RyaW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CiAgICAg
ICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/
IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7CiAgICAgfQogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya0F1dG86CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdQYXRoLmNwcAppbmRleCAwZTFmMWEwYzAwNDk3NDNhNWE1NDFkM2MxMjI1ODM3MjIz
MWFhNzhmLi41Mzk2ZTYyMGI2ODUxZjNmYzQ3OTZhNThiZDVkNjllMDQyZTY4NzFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKQEAgLTEzMSw3
ICsxMzEsNyBAQCBib29sIFJlbmRlclNWR1BhdGg6OnNob3VsZFN0cm9rZVplcm9MZW5ndGhTdWJw
YXRoKCkgY29uc3QKIAogUGF0aCogUmVuZGVyU1ZHUGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRo
KGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVjYXBQb3NpdGlvbikgY29uc3QKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0aCwgdGVtcFBhdGgsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UGF0aD4gdGVtcFBhdGgoKTsKIAogICAgIHRlbXBQYXRoLmNsZWFyKCk7
CiAgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5jYXBTdHlsZSgpID09IFNxdWFyZUNhcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXgg
OTI5ZDA3MWE0M2FjNjIwZDcxYzk5MGU5YTE3ZDBmYTVhYTY1ZGVmOS4uMjhiMjY1ZmUyNzhhODAy
MGRkY2I2OTYzOGVmMDMxYTgyMGMxNWMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFJlbmRl
clNWR1NoYXBlOjpsYXlvdXQoKQogCiBQYXRoKiBSZW5kZXJTVkdTaGFwZTo6bm9uU2NhbGluZ1N0
cm9rZVBhdGgoY29uc3QgUGF0aCogcGF0aCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBzdHJva2VU
cmFuc2Zvcm0pIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBh
dGgsIHRlbXBQYXRoLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBhdGg+IHRlbXBQ
YXRoKCk7CiAKICAgICB0ZW1wUGF0aCA9ICpwYXRoOwogICAgIHRlbXBQYXRoLnRyYW5zZm9ybShz
dHJva2VUcmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZGU4ZjE1ZjhiNDNmODczMjIzZGNiZmI0YjBi
MDJmZTdkYTc3ZTI4OS4uZjYyYTRiNmJkYzM1MmI4NTAwZjVhZGI0ZTYxNGY0Mzg4YjQ1ODZhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBTVkdSZW5kZXJpbmdDb250ZXh0Ojpw
cmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBQYWkKIAog
c3RhdGljIEFmZmluZVRyYW5zZm9ybSYgY3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbigpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFmZmluZVRyYW5zZm9ybSwgc19j
dXJyZW50Q29udGVudFRyYW5zZm9ybWF0aW9uLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEFmZmluZVRyYW5zZm9ybT4gc19jdXJyZW50Q29udGVudFRyYW5zZm9ybWF0aW9uKCk7CiAg
ICAgcmV0dXJuIHNfY3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHAKaW5k
ZXggMmM0NzIwNDYwNThjNDU0MjdjNzkxZDI2NzIwOTRmZTdiZGMzNTk2Yy4uMmMwY2IwMTdlMzA2
MDI4ZDE5N2QzZWIyYjJmZDM1MDYzMTkxMGNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBA
IFNWR1RleHRDaHVua0J1aWxkZXI6OlNWR1RleHRDaHVua0J1aWxkZXIoKQogCiB2b2lkIFNWR1Rl
eHRDaHVua0J1aWxkZXI6OnRyYW5zZm9ybWF0aW9uRm9yVGV4dEJveChTVkdJbmxpbmVUZXh0Qm94
KiB0ZXh0Qm94LCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQWZmaW5lVHJhbnNmb3JtLCBzX2lkZW50
aXR5VHJhbnNmb3JtLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybT4gc19pZGVudGl0eVRyYW5zZm9ybSgpOwogICAgIGlmICghbV90ZXh0Qm94VHJh
bnNmb3JtYXRpb25zLmNvbnRhaW5zKHRleHRCb3gpKSB7CiAgICAgICAgIHRyYW5zZm9ybSA9IHNf
aWRlbnRpdHlUcmFuc2Zvcm07CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggZTdkMjgwZTI4Yjg3NGViNWI2
ZTE1MjBlNDE4ODFiNDNjZTg5MjdiYy4uNWJjOGNiY2MxMWNhMjZiZTgxNzAwYzFjMDM2MDdiYTkx
NGQ3MjMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RvcmFn
ZU5hbWVzcGFjZSo+IExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcDsKIAogc3RhdGljIExvY2FsU3Rv
cmFnZU5hbWVzcGFjZU1hcCYgbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwLCBsb2Nh
bFN0b3JhZ2VOYW1lc3BhY2VNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9j
YWxTdG9yYWdlTmFtZXNwYWNlTWFwPiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXAoKTsKICAgICBy
ZXR1cm4gbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNw
cAppbmRleCA1ODhmMjc3YmU3NWRlN2Q0MWVmZWQwNWNhNDk1OGJlNjI2MTc4NTdkLi40OWNlMjI3
N2NjZWFiZDQ3OTQ4YjFmOGQ5NmFjNzNjNGUzNmZkNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5j
cHAKQEAgLTExMiwxNSArMTEyLDE1IEBAIFN0cmluZyBTVkdBbmdsZTo6dmFsdWVBc1N0cmluZygp
IGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3VuaXRUeXBlKSB7CiAgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX0RFRzogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBkZWdTdHJpbmcsIChBU0NJSUxpdGVyYWwoImRlZyIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGRlZ1N0cmluZyhBU0NJSUxpdGVyYWwoImRlZyIpKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSArIGRlZ1N0
cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDogewotICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCByYWRTdHJpbmcsIChBU0NJSUxpdGVy
YWwoInJhZCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHJhZFN0
cmluZyhBU0NJSUxpdGVyYWwoInJhZCIpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVy
KG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSArIHJhZFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBT
VkdfQU5HTEVUWVBFX0dSQUQ6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZ3JhZFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZ3JhZCIpKSk7CisgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGdyYWRTdHJpbmcoQVNDSUlMaXRlcmFsKCJn
cmFkIikpOwogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMpICsgZ3JhZFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOU1BF
Q0lGSUVEOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
CmluZGV4IDllMWRiMTM5OGNiNTE2MmViMWQ1YjFiMTQxYjdlZWZlMDIwZWYwMjguLmRkYmE2MWE4
NjY5NTI3MzA1NjMxODc2NTI4MWU1ZTVkNDg3NzJlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUGFzc1JlZlB0
cjxTVkdBbmltYXRlQ29sb3JFbGVtZW50PiBTVkdBbmltYXRlQ29sb3JFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWUKIAogc3RhdGljIGJvb2wgYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xv
cihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1cnJlbnRDb2xvciwgKCJjdXJyZW50Q29sb3IiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VycmVudENvbG9yKCJjdXJyZW50Q29sb3IiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdmFsdWUgPT0g
Y3VycmVudENvbG9yOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAppbmRleCAwYTk4M2RmZDFhM2NjNTZkMWY5YmRjZGU3MGZhYjBiYzAwMTE2
NmJjLi44NTUxNjkzNzg3Y2VlMGFjNzQ5N2FhYjczNjU5MjE1NzJlMGI2ZDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTEyNCw4ICsx
MjQsOCBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdAogICAgIAogU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQ6OlJvdGF0ZU1vZGUgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBhdXRvUmV2ZXJzZSwgKCJhdXRvLXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0
cmluZz4gYXV0b1ZhbCgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGF1dG9SZXZl
cnNlKCJhdXRvLXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6
cm90YXRlQXR0cik7CiAgICAgaWYgKHJvdGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4g
Um90YXRlQXV0bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApp
bmRleCA0NjZmY2M2YjkzNGI1ODdhMDMyNmJlZGQ5ZTgxZjM1OTM1OTEzOGE5Li5iNzkwY2YwY2Yz
ZDkzMTFhYTUxZGEwMDljOWU1ZDkwNTgzYjRlMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0yOTUsMTAgKzI5NSwxMCBAQCB2b2lkIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgY2FsY01vZGUpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGlzY3Jl
dGUsICgiZGlzY3JldGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGlu
ZWFyLCAoImxpbmVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwYWNl
ZCwgKCJwYWNlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzcGxpbmUs
ICgic3BsaW5lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGRpc2NyZXRlKCJkaXNjcmV0
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGxpbmVhcigibGluZWFyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gcGFjZWQoInBhY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4gc3BsaW5lKCJzcGxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBpZiAoY2FsY01vZGUgPT0gZGlzY3JldGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNN
b2RlRGlzY3JldGUpOwogICAgIGVsc2UgaWYgKGNhbGNNb2RlID09IGxpbmVhcikKQEAgLTMxMyw4
ICszMTMsOCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0
b21pY1N0cmluZyYgY2FsY01vZGUpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0
cmlidXRlVHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVR5cGUpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3NzLCAoIkNT
UyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB4bWwsICgiWE1MIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNzcygiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0
cmluZz4geG1sKCJYTUwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBpZiAoYXR0cmlidXRlVHlwZSA9PSBjc3MpCiAgICAgICAgIG1fYXR0cmlidXRlVHlwZSA9IEF0
dHJpYnV0ZVR5cGVDU1M7CiAgICAgZWxzZSBpZiAoYXR0cmlidXRlVHlwZSA9PSB4bWwpCkBAIC0z
NDEsMTQgKzM0MSwxNCBAQCBTdHJpbmcgU1ZHQW5pbWF0aW9uRWxlbWVudDo6ZnJvbVZhbHVlKCkg
Y29uc3QKIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBz
dW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1bSgic3VtIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmFkZGl0aXZlQXR0cik7CiAgICAgcmV0
dXJuIHZhbHVlID09IHN1bSB8fCBhbmltYXRpb25Nb2RlKCkgPT0gQnlBbmltYXRpb247CiB9CiAK
IGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCgpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VtLCAo
InN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzdW0oInN1bSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUg
PSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphY2N1bXVsYXRlQXR0cik7CiAgICAgcmV0dXJu
IHZhbHVlID09IHN1bSAmJiBhbmltYXRpb25Nb2RlKCkgIT0gVG9BbmltYXRpb247CiB9CkBAIC02
NTcsNyArNjU3LDcgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjphZGp1c3RGb3JJbmhlcml0
YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdAogCiBzdGF0aWMgYm9vbCBpbmhl
cml0c0Zyb21Qcm9wZXJ0eShTVkdFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBpbmhlcml0LCAoImluaGVyaXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwg
dmFsdWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggYzAyZWE2ODBl
YzRmODYzMmYxZGVmOGU1N2VjNmNkZWU0ODQ5ODRkYS4uYTBiNmFhNzdkODU1OWY4YjkwNWViYzIx
NzczMjA1NzM1MDdlYWFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC04MCwyNSArODAsMjUgQEAgUGFzc1JlZlB0cjxTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0
ZShjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0
TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0tlcm5lbFVu
aXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVy
KCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWElkZW50aWZpZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwg
KCJTVkdPcmRlclgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdPcmRl
clgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JkZXJZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHT3JkZXJZIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcApp
bmRleCAyYjE0MTBiNDM1YTM5MmE3MzAwMDZkY2I4ZTEzMTFjZDkwNDJkMWJiLi5iZWFjZjRkOWZm
MWExOTlmZGFlZmViNTkxZTkxNWMxZTI4MDNjNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBA
IFBhc3NSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiBTVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50
aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRp
ZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKaW5kZXggOGFl
ODVkM2ZmMjY3N2I2ZjZiZDdjY2VkM2VkMTBhOTIwOWIxMDhlZS4uN2RhYzQxZjFlZjg4ZGFhMDI4
NDMxNmNjZjlhNzZlOTA2Nzc1MmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURy
b3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNjcsMTMgKzY3LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVE
cm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3Rk
RGV2aWF0aW9uWElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25YIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3RkRGV2
aWF0aW9uWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAK
aW5kZXggN2QwYWE1YzE5NDgzZWFlZWRmNThjMTdjY2FlNmRlOTYyMjRjNmFiOC4uM2RkNzliMDgz
MTU1MGFhYjI1MmU3M2ExMDNjNTM4ZTg1NmY5N2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTYyLDEzICs2MiwxMyBAQCBQYXNz
UmVmUHRyPFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4gU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGRE
ZXZpYXRpb25YIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHU3RkRGV2
aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERl
dmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdTdGREZXZp
YXRpb25ZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwCmluZGV4IDlkZWM4MzdlNGVmYjFhMzU4M2VkNjg2NzkwZjNlOTg4MDM3MWI2
OTcuLjA5MWRiNzMyZDhjYzM2NThkOWE0MjIzYWMxYTNjY2ViODY0NTIyMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTYxLDEzICs2MSwx
MyBAQCBQYXNzUmVmUHRyPFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ+IFNWR0ZFTW9ycGhvbG9neUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZF
TW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1hJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFk
aXVzWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1JhZGl1c1giLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlm
aWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJh
ZGl1c1lJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1JhZGl1c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXgg
YzE0YjJiZmQ4N2Q5ZTU2ZGY1YWNkM2VkZDRhYzFkMDllY2RhNzdiMi4uZjMxZTYwZjU0Y2VjOTQ1
OTUxZDdjMmNiYWFjZTQ4ODYwNjk5MzFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNzIsMTMgKzcyLDEzIEBAIFBh
c3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6Y3JlYXRlKGNvCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlm
aWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlm
aWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCAyNDgw
N2E2ODc1NDIzZGFjODc2MjY4NjdiYmQyZTJjODg3YTcyMWEyLi40NTk0NzY2ZDZiOGY4NmNmNTBh
MDMzZTMxYmI1MzIwYTE2NGFmYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQuY3BwCkBAIC02NiwxMyArNjYsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRVR1
cmJ1bGVuY2VFbGVtZW50PiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNl
RnJlcXVlbmN5WElkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0Jhc2VGcmVxdWVuY3lYIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNl
RnJlcXVlbmN5WUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0Jhc2VGcmVxdWVuY3lZIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDIyNzJj
MjFjYzkxNTcyZWVhNTcyZWU0YTJkMDc1ODBiM2U1Njc5NjkuLmY0ZmU0NTkwZTE1OWE4ZjYwMzZh
MjMwMTViOTdhYzIxM2QwNWMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZpbHRlckVsZW1lbnQ+IFNW
R0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHRmlsdGVyUmVzWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50
aWZpZXIoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHRmls
dGVyUmVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0ZpbHRlclJl
c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhN
YXAuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1hcC5oCmluZGV4IDM1MThmODhkOGE2
NjE5NzQwNGEyMzA0MjkyZGQxNGJiNzcyNTRkYWYuLmY0YWIxMzIzY2U0YTgzNDdkZjNjMjdiMmRh
YzA1NGJlMjA1MTY0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1h
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1hcC5oCkBAIC0xNDMsNyArMTQz
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFNWR0dseXBoJiBzdmdHbHlwaEZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFnbHlwaCB8fCBnbHlwaCA+IG1fZ2x5
cGhUYWJsZS5zaXplKCkpIHsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTVkdHbHlwaCwgZGVmYXVsdEdseXBoLCAoKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U1ZHR2x5cGg+IGRlZmF1bHRHbHlwaCgpOwogICAgICAgICAgICAgcmV0dXJu
IGRlZmF1bHRHbHlwaDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9nbHlwaFRhYmxlW2ds
eXBoIC0gMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCmluZGV4IDBjNzk0NzgzODAz
ZjcyNmY4NzljY2IyYzY4ZjYwZGFmZGZlZjM0ZGEuLmNhOGU3ZDZhYzRkODJmYWVmNThjMzBjZDhh
MzI5OWJiOGVmYzk3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3Bh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIHZvaWQgU1ZHTGFuZ1NwYWNlOjpzZXRYbWxsYW5nKGNvbnN0IEF0b21pY1N0cmlu
ZyYgeG1sTGFuZykKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTGFuZ1NwYWNlOjp4bWxzcGFjZSgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX3NwYWNlKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVs
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVmYXVsdFN0cmluZygiZGVmYXVs
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4g
ZGVmYXVsdFN0cmluZzsKICAgICB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBTVkdMYW5nU3Bh
Y2U6OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
CiB2b2lkIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhtbFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4geG1sUHJlZml4KCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKIAogICAgIFF1YWxpZmllZE5hbWUgbGFuZ1dpdGhQcmVmaXggPSBYTUxOYW1lczo6
bGFuZ0F0dHI7CiAgICAgbGFuZ1dpdGhQcmVmaXguc2V0UHJlZml4KHhtbFByZWZpeCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKaW5kZXggNzNmNDllNDM0MGFiZTk4OGUz
ODRjM2FkYTc3N2QyZDg4NWRhZTlmMy4uNjAwZjVkYzU5NTczNjc1NjVmYzVkMTFiZjY1ZmI5NmM2
MjMyNGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtOTMs
MTMgKzkzLDEzIEBAIFBhc3NSZWZQdHI8U1ZHTWFya2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50VHlwZUlkZW50aWZpZXIoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHT3Jp
ZW50VHlwZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTWFya2VyRWxlbWVu
dDo6b3JpZW50QW5nbGVJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JpZW50QW5nbGUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdPcmllbnRBbmdsZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9u
aXplT3JpZW50VHlwZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICBpZiAob3duZXJU
eXBlLT5tX29yaWVudFR5cGUudmFsdWUgIT0gU1ZHTWFya2VyT3JpZW50QXV0bykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgYXV0b1N0cmluZywgKCJhdXRvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdHJpbmco
ImF1dG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBvd25lclR5
cGUtPm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZShvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0
eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0cmluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAppbmRleCA2MjU2MTRjZDdkZjI3MmJhNjNlOTNlZWYyMmYyNzM0ODI0
OWMwOThmLi41ODBmYTY4ZjYzMjk2NzI3Yzk4OWE2ODhjNjA3Y2IzNGI0ODJlNGUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTVkdT
VkdFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU1ZHRWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2VjbWFzY3JpcHQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gZGVmYXVsdFZhbHVlKCJ0ZXh0L2VjbWFzY3JpcHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBmYXN0
R2V0QXR0cmlidXRlKFNWR05hbWVzOjpjb250ZW50U2NyaXB0VHlwZUF0dHIpOwogICAgIHJldHVy
biBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2
b2lkIFNWR1NWR0VsZW1lbnQ6OnNldENvbnRlbnRTY3JpcHRUeXBlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTVkdFbGVtZW50Ojpjb250ZW50U3R5
bGVUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21pY1N0cmluZz4gZGVmYXVsdFZhbHVlKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRB
dHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTdHlsZVR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5p
c051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuY3BwCmluZGV4IDRmYzQxZDMzMmJhZDBmMzMzY2U0YTc3NTVjZTQ4MmQyOWExMGZjZTEu
LmRjYjk1YzBkYmIyMmY1MWU2OGZhZmZjZGQ1ZTkwNTVmMTBmMWM4NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU1ZHU3R5bGVF
bGVtZW50OjpzZXREaXNhYmxlZChib29sIHNldERpc2FibGVkKQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQv
Y3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3Mi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICByZXR1cm4g
bi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQg
U1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgRXhjZXB0
aW9uQ29kZSYpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgZGVmYXVsdFZhbHVlLCAoImFsbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBkZWZhdWx0VmFsdWUoImFsbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6
Om1lZGlhQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCAy
MDdlNzFiYWZlOTU3YTA4M2Q2ODI2ODYxYzY1ZmRhNzQzODY4YTc5Li4yZmE2MmZlYmZiYTQxMzZk
Y2JkNTBjMmYyOTQ1MzY4ZDZhMDczZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRl
bnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkCiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShuYW1lKSkKICAgICAgICAgU1ZH
R3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFt
ZSwgdmFsdWUsIHN0eWxlKTsKICAgICBlbHNlIGlmIChuYW1lLm1hdGNoZXMoWE1MTmFtZXM6OnNw
YWNlQXR0cikpIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJpbmcsICgicHJlc2VydmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IHByZXNlcnZlU3RyaW5nKCJwcmVzZXJ2ZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgICAgIGlmICh2YWx1ZSA9PSBwcmVzZXJ2
ZVN0cmluZykKICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCmluZGV4IGY3NWI2N2UyZWYwOTI1MDFjNmQyODc4Mzk2NDQ2
NmYzZTllMTJiYjUuLjcyZGIxOGZiNDBlZjU1M2I0ZWY5YzhmNDNmOWM1MDBjNjJkOTAyOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCkBAIC0xMzUsMjcgKzEzNSwyNyBAQCBjb25z
dCBTdHJpbmcmIFNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlwZVByZWZpeEZvclBhcnNpbmcoU1ZH
VHJhbnNmb3JtVHlwZSB0eXBlKQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9VTktOT1dOOgogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fTUFUUklY
OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1hdHJp
eFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgibWF0cml4KCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IG1hdHJpeFN0cmluZyhBU0NJSUxpdGVyYWwoIm1hdHJpeCgiKSk7
CiAgICAgICAgIHJldHVybiBtYXRyaXhTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9UUkFOU0xBVEU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHJhbnNsYXRlU3RyaW5nKEFT
Q0lJTGl0ZXJhbCgidHJhbnNsYXRlKCIpKTsKICAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZVN0cmlu
ZzsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NDQUxFOiB7Ci0gICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjYWxlU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJzY2FsZSgiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBz
Y2FsZVN0cmluZyhBU0NJSUxpdGVyYWwoInNjYWxlKCIpKTsKICAgICAgICAgcmV0dXJuIHNjYWxl
U3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOiB7Ci0gICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHJvdGF0ZVN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgicm90YXRlKCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHJvdGF0ZVN0cmluZyhBU0NJSUxpdGVyYWwoInJvdGF0ZSgiKSk7CiAgICAgICAgIHJl
dHVybiByb3RhdGVTdHJpbmc7CiAgICAgfSAgICAKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tF
V1g6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2tl
d1hTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNrZXdYKCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHNrZXdYU3RyaW5nKEFTQ0lJTGl0ZXJhbCgic2tld1goIikpOwog
ICAgICAgICByZXR1cm4gc2tld1hTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9S
TV9TS0VXWTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBza2V3WVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2tld1koIikpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2tld1lTdHJpbmcoQVNDSUlMaXRlcmFsKCJza2V3WSgi
KSk7CiAgICAgICAgIHJldHVybiBza2V3WVN0cmluZzsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggOTgyMmJkMWRmYmE3NmNhNjg4MGE1MjI0YTViNjdhNjBh
NWFhMjQ3OC4uOTg1NzBmMzI2NDk1OTI3Y2E2MTA2ZGVkMmVhMWZjYzk0MTdmNzM4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC04NSwxOSArODUsMTkgQEAgU1ZHVmlld1NwZWM6
OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR1ZpZXdTcGVjOjp2aWV3Qm94SWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1Zp
ZXdTcGVjVmlld0JveEF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZp
ZXIoIlNWR1ZpZXdTcGVjVmlld0JveEF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3Bl
Yzo6dHJhbnNmb3JtSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjVHJhbnNmb3Jt
QXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHVmlld1Nw
ZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IDhmYTI5NGU3ZGQxMmQ2ZmQ5MDNh
ZmVkYzQ2YzNhNWZiOGVmOThjNDAuLmMxZWZkZWRlY2RjMzQyMzZhNDcyZGZiMjJmYmRiZjk4MDli
MDYxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1l
bnQuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnBhcnNl
Q2xvY2tWYWx1ZShjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgCiAgICAgU3RyaW5nIHBhcnNlID0g
ZGF0YS5zdHJpcFdoaXRlU3BhY2UoKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChwYXJzZSA9PSBp
bmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwog
CkBAIC02MjksOCArNjI5LDggQEAgYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNGcm96ZW4oKSBjb25z
dAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQo
KSBjb25zdAogeyAgICAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB3aGVuTm90QWN0aXZlLCAoIndoZW5Ob3RBY3RpdmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21pY1N0cmluZz4gbmV2ZXIoIm5ldmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
d2hlbk5vdEFjdGl2ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmli
dXRlKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAg
ICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAtNjQxLDcgKzY0MSw3IEBAIFNWR1NNSUxFbGVt
ZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NN
SUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZnJl
ZXplLCAoImZyZWV6ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmcmVlemUoImZyZWV6
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpmaWxsQXR0cik7CiAg
ICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/IEZpbGxGcmVlemUgOiBGaWxsUmVtb3ZlOwogfQpA
QCAtNjc0LDcgKzY3NCw3IEBAIFNNSUxUaW1lIFNWR1NNSUxFbGVtZW50OjpyZXBlYXRDb3VudCgp
IGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6
OnVucmVzb2x2ZWQoKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmICh2YWx1ZSA9PSBpbmRlZmluaXRl
VmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogICAgIGJvb2wg
b2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250
U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNl
bGVjdG9yLmNwcAppbmRleCBlNGJlNmE2NGYyNmJlNGQzZTQ4MDJlN2Q1NzY4ZWU1MWE0N2MwYmUz
Li5kNjI2MWIxNzA3NzQ0MTViMDUzY2NlNTE5MjdmZWRiMjNhMmUzMDI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFBhc3NSZWZQdHI8Rm9u
dERhdGE+IEVtb2ppRmFsbGJhY2tGb250U2VsZWN0b3I6OmdldEZhbGxiYWNrRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIHNpemVfdCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhcHBsZUNvbG9yRW1vamks
ICgiQXBwbGUgQ29sb3IgRW1vamkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gYXBwbGVDb2xvckVtb2ppKCJBcHBsZSBDb2xvciBFbW9qaSIpOwogICAgIFJlZlB0
cjxGb250RGF0YT4gZm9udERhdGEgPSBmb250Q2FjaGUoKS5nZXRDYWNoZWRGb250RGF0YShmb250
RGVzY3JpcHRpb24sIGFwcGxlQ29sb3JFbW9qaSk7CiAgICAgaWYgKCFmb250RGF0YSkgewogICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBnZXQgXCJBcHBsZSBDb2xvciBFbW9qaVwiIGZyb20g
dGhlIGZvbnQgY2FjaGUuIFVzaW5nIHRoZSBsYXN0IHJlc29ydCBmYWxsYmFjayBmb250IGluc3Rl
YWQuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aXhlZFBvc2l0aW9uQ29udGVudC5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0
L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCmluZGV4IGZhYjczMDU1MjUxNTAzZjk0ZjdkNjIx
Yjk5ZDExM2IyNWY5MGFmYjIuLmE3OWNhYTk0M2E4ODBhM2U0OWYxZjBlYzljZTFhMjE4MDkwYjRl
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVk
UG9zaXRpb25Db250ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0
L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCkBAIC01MCw3ICs1MCw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIHN0YXRpYyBNdXRleCYgV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9j
aygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwg
KCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXgoKTsKICAgICByZXR1
cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
QmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9y
d2FyZExpc3QubW0KaW5kZXggMDc3YzkwMzY2ZTBiYWNlNDU2NTk1YWE2YzhjOTdmYzcyNTg3NWQy
ZS4uMmJlMDY4YWIzYjQxZThlNTc2MGQ0NTc4NzZlYzUzOTZhZTVmNWI2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KQEAgLTYwLDcgKzYw
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPEJhY2tGb3J3YXJkTGlzdCosIFdlYkJhY2tGb3J3YXJkTGlz
dCo+IEJhY2tGb3J3YXJkTGlzdE1hcDsKIC8vIHdpdGggYSBwb2ludGVyIHRvIGEgV2ViQmFja0Zv
cndhcmRMaXN0IGluIGl0Lgogc3RhdGljIEJhY2tGb3J3YXJkTGlzdE1hcCYgYmFja0ZvcndhcmRM
aXN0cygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJhY2tGb3J3YXJk
TGlzdE1hcCwgc3RhdGljQmFja0ZvcndhcmRMaXN0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxCYWNrRm9yd2FyZExpc3RNYXA+IHN0YXRpY0JhY2tGb3J3YXJkTGlzdHMoKTsKICAg
ICByZXR1cm4gc3RhdGljQmFja0ZvcndhcmRMaXN0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggNTRjZWJkNjc4MjZjNzU5OTk4NTAyMmM2
NjU4ODgxYWM4YmRjM2YwMS4uNGUyZWMyZjFhOWNjZWIxY2E5ZTFkM2EwZTZiNmQwNmZmZTY1ZTYz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC0x
MDMsNyArMTAzLDcgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlSGlzdG9yeUl0ZW0qIGNvcmUoV2Vi
SGlzdG9yeUl0ZW1Qcml2YXRlKiBpdGVtUHJpdmF0ZSkKIAogc3RhdGljIEhpc3RvcnlJdGVtTWFw
JiBoaXN0b3J5SXRlbVdyYXBwZXJzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGlzdG9yeUl0ZW1NYXAsIGhpc3RvcnlJdGVtV3JhcHBlcnMsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGlzdG9yeUl0ZW1NYXA+IGhpc3RvcnlJdGVtV3JhcHBlcnMoKTsK
ICAgICByZXR1cm4gaGlzdG9yeUl0ZW1XcmFwcGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFn
ZXIubW0KaW5kZXggZjE2OGE3YTcwMGY0M2FjNGNhZTAzZDE2MjlkMGE3YzE1MDJiMzgxYy4uMjI4
NDgwMTJkYjRiYWVmNWQxNjRjYjYwNWNiOGU4OWYzOGZhZGFjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyLm1tCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXRzY2Fw
ZVBsdWdpbkhvc3RNYW5hZ2VyJiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChOZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyLCBwbHVnaW5Ib3N0TWFuYWdlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyPiBwbHVnaW5Ib3N0TWFuYWdlcigpOwogICAgIAog
ICAgIHJldHVybiBwbHVnaW5Ib3N0TWFuYWdlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5k
ZXggNTcwNWNmYjNiMTdlZThhMjVjODQ3NDU3MmQzMmViMzI2ZjQ0YjkxZi4uNDlmMDBmYmQyNDlk
MjI4ZjlhMTE4MjBjOWM3YWNhYzIzNWQyMjJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAg
LTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKIHR5cGVkZWYgSGFzaE1hcDxtYWNoX3BvcnRfdCwgTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkqPiBQbHVnaW5Qcm94eU1hcDsKIHN0YXRpYyBQbHVnaW5Qcm94
eU1hcCYgcGx1Z2luUHJveHlNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChQbHVnaW5Qcm94eU1hcCwgcGx1Z2luUHJveHlNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGx1Z2luUHJveHlNYXA+IHBsdWdpblByb3h5TWFwKCk7CiAgICAgCiAgICAg
cmV0dXJuIHBsdWdpblByb3h5TWFwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmlu
ZGV4IDUzODYxZDUxMGQyN2Y1OTU5MGVjMDE0ZjMwYTIxNjVhM2FjMjE0MzkuLmQ3NjhmNjkxZjNk
YWMwZjUyY2Y3YmM3YzFjMTZjZjE2MmMxMmViMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHkubW0KQEAgLTE2NjMsNyArMTY2Myw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Ojpwcml2YXRlQnJvd3NpbmdNb2RlRGlkQ2hhbmdlKGJvb2wgaXNQcml2YXRlQnJvCiAKIHN0
YXRpYyBTdHJpbmcmIGdsb2JhbEV4Y2VwdGlvblN0cmluZygpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3RyaW5nLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZXhjZXB0aW9uU3RyaW5nKCk7CiAgICAgcmV0dXJu
IGV4Y2VwdGlvblN0cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KaW5kZXggNzgzMTYzZWEyYWY2NmFlYzUwZGU3ZGI2NGU2
OTE2NmU0ZGNlYjc5MC4uOTRiYzNjMjA1OGNiN2Y2ZTNkZmNjNWJlMzhlODYwZDg2NzJlOWI2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tCkBAIC02NSw4ICs2NSw4IEBAIEZpZWxkKiBQcm94eUNsYXNzOjpmaWVsZE5hbWVkKFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29uCiAKIHN0YXRpYyBQ
cm94eUNsYXNzKiBwcm94eUNsYXNzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUHJveHlDbGFzcywgcHJveHlDbGFzcywgKCkpOwotICAgIHJldHVybiAmcHJveHlDbGFz
czsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHJveHlDbGFzcz4gcHJveHlDbGFzcygpOwor
ICAgIHJldHVybiAmcHJveHlDbGFzcy5nZXQoKTsKIH0KICAgICAKIGNsYXNzIFByb3h5RmllbGQg
OiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6RmllbGQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggOTM1ZDU1ZWMxNGM4
ODVkYmY5ZTg1MTZhZjI0NDZlMjk3YmRlNzNmMC4uMzk4MGFlOTQ3MzZiZmQ4NWQ0NjBkNDg3Yjlk
OGQyN2U4NDAyYzk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiB0eXBl
ZGVmIEhhc2hNYXA8TlBTdHJlYW0qLCBOUFA+IFN0cmVhbU1hcDsKIHN0YXRpYyBTdHJlYW1NYXAm
IHN0cmVhbXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJlYW1N
YXAsIHN0YXRpY1N0cmVhbXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyZWFt
TWFwPiBzdGF0aWNTdHJlYW1zKCk7CiAgICAgcmV0dXJuIHN0YXRpY1N0cmVhbXM7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KaW5kZXgg
MzkxMmY1OGUyZTg1ODc2MTNlYmNkNjQwM2ZkOTFhMGY4NTE4MTYyNi4uMDEzYjU4ZTVmN2NkZTE4
NTQ4M2Y1M2FiZWEzZjg1ZGI3NzA5MmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
U3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvU3Rv
cmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgYm9v
bCBpc0ZpbGVIaWRkZW4oTlNTdHJpbmcgKmZpbGUpCiAKIHN0YXRpYyBNdXRleCYgdHJhbnNhY3Rp
b25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPE11dGV4PiBtdXRleCgpOwogICAgIHJldHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmlu
ZGV4IDFhNjQ0MGQ5NWZhM2FkYjRmMmQ5NTcwMGQwYjkxZGFkZDdhOGFkYmEuLjI3ZDMyODE0OTkw
ZmI1MTc0Nzg4ZGU0OTAyM2Y4MTVlNWYzZTY5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTU2LDcgKzU2
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiwgUmV0YWluUHRy
PFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyPj4KIAogc3RhdGljIFVzZXJNZWRpYVJlcXVlc3Rz
TWFwJiB1c2VyTWVkaWFSZXF1ZXN0c01hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFVzZXJNZWRpYVJlcXVlc3RzTWFwLCByZXF1ZXN0cywgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVc2VyTWVkaWFSZXF1ZXN0c01hcD4gcmVxdWVzdHMoKTsKICAgICBy
ZXR1cm4gcmVxdWVzdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggMDlkZGMxZDg1YzMzZWU5MDkwY2M1NDU4MGM0
MTU2MzcyNDViNmQxYS4uMDQwZjRlYzMwMmVkYmU3ODdjMzIxOTQ3OWE0ZjkyOGFmYzYwOTFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRp
b24ubW0KQEAgLTM2NSw3ICszNjUsNyBAQCBzdGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4
cEZvckxhYmVscyhOU0FycmF5ICpsYWJlbHMpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCByZWdFeHBDYWNoZVNpemUgPSA0OwogICAgIHN0YXRpYyBOU011dGFibGVBcnJheSogcmVnRXhw
TGFiZWxzID0gbmlsOwogICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8
UmVndWxhckV4cHJlc3Npb24qPiwgcmVnRXhwcywgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChSZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJlZ0V4cCwgKCJcXHciLCBUZXh0
Q2FzZVNlbnNpdGl2ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVz
c2lvbj4gd29yZFJlZ0V4cCgiXFx3IiwgVGV4dENhc2VTZW5zaXRpdmUpOwogCiAgICAgUmVndWxh
ckV4cHJlc3Npb24qIHJlc3VsdDsKICAgICBpZiAoIXJlZ0V4cExhYmVscykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmluZGV4IDliYTY1Mzc0NjljODg4ZjcxNDVhMDU0YjQ5MDE3NzNmOGUxZDQyNDkuLmQy
MzlhMDc5ZDNlNTA4M2QzY2EyM2EwZDVjMTZiOWY0NzRmZWRkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcApAQCAtNDAsNyArNDAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3RyYXRlZ2ll
cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+
IHBsYXRmb3JtU3RyYXRlZ2llcygpOwogfQogCiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OldlYlBs
YXRmb3JtU3RyYXRlZ2llcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2Nh
bGl6YWJsZVN0cmluZ3MuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJp
bmdzLmNwcAppbmRleCBmZGIxODFkYTViMWU2YzgyZjY5ZjJiNzgyNDA5NjM1OGE1Nzc1NDZiLi5j
ODI5MDBjZGMzM2FlZjg0N2JhZWVjNjVmYzM3ODA5MDMxYjQ0ZTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKQEAgLTQ3LDI1ICs0NywyNSBAQCB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmcqPiBMb2NhbGl6ZWRTdHJpbmdNYXA7
CiAKIHN0YXRpYyBNdXRleCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXgoKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAK
IHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jYWxpemVkU3RyaW5nTWFwLCBtYXAs
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jYWxpemVkU3RyaW5nTWFwPiBtYXAo
KTsKICAgICByZXR1cm4gbWFwOwogfQogCiBzdGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmlu
Z3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBt
dXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXgoKTsKICAg
ICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAgZnJhbWV3b3Jr
TG9jU3RyaW5ncygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2Fs
aXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2Fs
aXplZFN0cmluZ01hcD4gbWFwKCk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAppbmRleCA3ZTM2MDhmOWMwZjY2YWU1NzRhY2IyNTJmYmU1OGM4YjAxZTY5N2NjLi4xOWFl
ODAzOWM4MDEwNDAxOGMzMmMzZWY4MzZjODFiYjIwYzVkY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cApAQCAtMTMyMSw4ICsxMzIxLDggQEAgYm9vbCBXZWJWaWV3OjpjYW5IYW5kbGVSZXF1ZXN0KGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogU3RyaW5nIFdlYlZpZXc6
OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxp
Y2F0aW9uTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBvc1ZlcnNpb24sICh3aW5kb3dzVmVyc2lvbkZvclVBU3RyaW5nKCkpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCAod2ViS2l0VmVy
c2lvblN0cmluZygpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gb3NWZXJz
aW9uKHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJpbmcoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gd2ViS2l0VmVyc2lvbih3ZWJLaXRWZXJzaW9uU3RyaW5nKCkpOwogCiAgICAg
cmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wICgiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2Vi
S2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcGxpY2F0aW9u
TmFtZS5pc0VtcHR5KCkgPyAiIiA6ICIgIiwgYXBwbGljYXRpb25OYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
aW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V2luQ0UuY3BwCmluZGV4IDRjNjFkYmIwZjRjMTNmZmYzOWNkMGQzODUwYWZhNWZhYjRm
NTA4NmYuLmRlMDM1MDAyY2JkMTA3ZDY4ZjIyZTZhNTMyNzRhMGE5MDI0OTRiODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
aW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFdpbkNFLmNwcApAQCAtNjAsNyArNjAsNyBAQCBGcmFtZUxvYWRlckNsaWVudFdp
bkNFOjp+RnJhbWVMb2FkZXJDbGllbnRXaW5DRSgpCiAKIFN0cmluZyBGcmFtZUxvYWRlckNsaWVu
dFdpbkNFOjp1c2VyQWdlbnQoY29uc3QgVVJMJikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCB1c2VyQWdlbnRTdHJpbmcsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1c2VyQWdlbnRTdHJpbmcoKTsKIAogICAgIGlmICh1c2VyQWdl
bnRTdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgU3RyaW5nIHdlYktpdFZlcnNpb24gPSBTdHJp
bmc6OmZvcm1hdCgiJWQuJWQiLCBXRUJLSVRfTUFKT1JfVkVSU0lPTiwgV0VCS0lUX01JTk9SX1ZF
UlNJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAppbmRleCBjNjUxOTM4ZmRlMTc4Mjhh
ODBmNmRlNDlmMjczOWQyMjVkNDU2YzRlLi4wOTNkNWQ3NzYyZmUxZjY4MThhZTRkN2U1N2M4MDcy
ZTBhZTk2OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5D
RTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFLCBwbGF0Zm9ybVN0cmF0ZWdpZXMsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U+IHBsYXRmb3JtU3RyYXRl
Z2llcygpOwogfQogCiBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6UGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBG
aWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1Nl
Y2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCmluZGV4IDU4ZTczZjkxZjdjYmI0NTFmMjRi
NDkxZjVlZDdmOWJmZWRmYTlkMGYuLjliNjgxZTA1MDkwY2UwNzNhNmY2NDY0NGNiZDZkZTJmNGZj
OGIzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmls
dGVycy9TZWNjb21wQnJva2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgv
U2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0
aWMgdm9pZCByZWdpc3RlclNJR1NZU0hhbmRsZXIoKQogCiBTZWNjb21wQnJva2VyQ2xpZW50JiBT
ZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQoaW50IHNvY2tldCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU2VjY29tcEJyb2tlckNsaWVudCwgYnJva2VyQ2xpZW50LCAo
c29ja2V0KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNlY2NvbXBCcm9rZXJDbGllbnQ+
IGJyb2tlckNsaWVudChzb2NrZXQpOwogCiAgICAgcmV0dXJuIGJyb2tlckNsaWVudDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5z
cGVjdG9yU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcAppbmRleCA1ZGZmNTQ2MzAzNmMzN2RmNTU5N2M5YmUy
YWQ5OWQzODlkMmU1OGUxLi5hOTMwOTljYTU5YTBjMDQ0OWMwNzQ0ZWZkNjc3ZGNmODkxNjI4MjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dl
Ykluc3BlY3RvclNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3Bl
Y3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgYm9v
bCBXZWJJbnNwZWN0b3JTZXJ2ZXI6OmRpZFJlY2VpdmVXZWJTb2NrZXRVcGdyYWRlSFRUUFJlcXVl
c3QoV2ViU29ja2V0U2VydmVyQ28KICAgICBTdHJpbmcgcGF0aCA9IHJlcXVlc3QtPnVybCgpOwog
CiAgICAgLy8gTk9URTogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCBXZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzLgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGluc3BlY3RvcldlYlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4LCAo
QVNDSUlMaXRlcmFsKCIvZGV2dG9vbHMvcGFnZS8iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBTdHJpbmc+IGluc3BlY3RvcldlYlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4
KEFTQ0lJTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIikpOwogCiAgICAgLy8gVW5rbm93biBwYXRo
IHJlcXVlc3RlZC4KICAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChpbnNwZWN0b3JXZWJTb2NrZXRD
b25uZWN0aW9uUGF0aFByZWZpeCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234695</attachid>
            <date>2014-07-10 01:35:25 -0700</date>
            <delta_ts>2014-08-19 09:13:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134794-20140710140510.patch</filename>
            <type>text/plain</type>
            <size>322112</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NzQ2NTc3OTJjZmIxZjBhYzhiNzM1ZWE5MjM1NjU4OGI4MmIzNDc2Li5lZjgzMzAxNmNhZjljYzJl
MGU5MGYyNzI1NGVhYzdiYWFmOTBiMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNC0wNy0wOSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBNaWdyYXRlIHRoZSB1c2FnZSBvZiBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVCwgbmFtZSwgYXJncykgdG8gInN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBu
YW1lKGFyZ3MpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoanNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAg
ICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpvYmplY3RH
cm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAgICAqIGludGVycHJldGVyL0pT
U3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3RpY3NNdXRleCk6CisKIDIwMTQt
MDctMDkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dp
bl0gUmVtb3ZlIHVzZXMgb2YgJ2Jhc2gnIGluIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMGFlOTc3YWU2
MGM5YWZmMjZmOWNmN2U4ZjAxZGMzMTZjYjM3MmNhLi4zYmUxM2U2OGYyODE3MmI2ODA2OTFhNWQ3
Nzg1MmE2MzkxZGI0ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAoV1RGOjp0aHJlYWRNYXBN
dXRleCk6CisgICAgICAgIChXVEY6OnRocmVhZE1hcCk6CisKIDIwMTQtMDctMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBi
dWlsZCBmaXggYWZ0ZXIgcjE3MDkzMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTlhYjdmYzc1ODE5N2ZiMDJk
YmQxMTZhODE1MjM3ZDQ3N2NkNDExLi5kNmY5ODY5Y2Q3ZDAwYWVmODYyYWZlNzJjOTkyYWYxYTBi
MWNlMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjY5IEBACisyMDE0LTA3LTA5ICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVz
YWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAi
c3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgcmVxdWlyZWQgYXMgdGhp
cyBpcyBhIGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdHJpbmdGb3JQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
ZGlyZWN0aW9uTmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5l
eHRVbmlxdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9k
ZVJlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlw
ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OmVuZGVkS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3Ry
ZWFtRW5kZWRXaXRoRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21I
YW5kbGVyc1N0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRV
dGlsczo6aXNQcm90b2NvbEhhbmRsZXJSZWdpc3RlcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpx
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudFNjcmlwdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6Ym91bmRhcnlFdmVudE9jY3VycmVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2NDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVydHlOYW1lKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSW50ZXJuYWwubW06CisgICAgICAgICh3cmFwcGVyQ2FjaGVMb2NrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJD
b3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ondy
YXBwZXJPd25lcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5Lmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFw
cGVyT3duZXIpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6cmVz
b2x2ZXNGYW1pbHlGb3IpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWRkUmVzb2x1dGlvbldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAg
KiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY2N1bXVsYXRvck1hcCk6
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzU3VwcG9ydGVkU1ZHMTBGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3VwcG9ydGVk
U1ZHMTFGZWF0dXJlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlYWR5U3RhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAg
ICAqIGRvbS9FdmVudExpc3RlbmVyTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGl2ZUl0
ZXJhdG9yQ291bnRNdXRleCk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAgICog
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlk
Q1NTQ29udGVudFR5cGUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OnN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25S
ZWNvcmQuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0RGF0YU1hcCk6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cHNldWRvRWxlbWVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMpOgorICAgICAgICAqIGRv
bS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1YWxpZmllZE5hbWVDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpudWxsUU5hbWUpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVzZW50
YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTcGFuQ2xhc3NTdHJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW50ZXJj
aGFuZ2VDb252ZXJ0ZWRTcGFjZVNwYW4pOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQnJlYWtpbmdTcGFjZVN0cmluZyk6CisgICAgICAg
ICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OnN0eWxlTm9kZUNsb3NlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1h
cmt1cEludGVybmFsKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSk6CisgICAgICAgICogaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL0Zvcm1Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkp
OgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVN0YXRlU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3RFZGl0YWJsZUVs
ZW1lbnRNYXApOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3VtbWFy
eVF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlua0xvYWRFdmVudFNlbmRl
cik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmRvY3VtZW50VG9FbGVtZW50U2V0TWFwKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9y
bUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0aXRsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c3VidGl0bGVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSk6
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVMb2FkRXZlbnRTZW5k
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpk
YXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpy
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
Ojp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1l
czo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAocGxheWJhY2tTdGF0ZVBsYXlpbmcpOgor
ICAgICAgICAocGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAgICAgKiBodG1sL1N0ZXBSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFjY2VwdGFibGVFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0ZXBSYW5nZTo6c3RlcE1pc21hdGNoKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6
ZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJbmplY3RlZCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01h
cmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6dXBkYXRlRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWluZXJFbGVtZW50U2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlcklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6Om1haW5EZXNjS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp0cmFuc2xhdGlvbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6
Y29tbWVudGFyeUtleXdvcmQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpt
ZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpmb3JjZWRLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGlkZGVuS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZUtleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5kS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0S2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpyaWdodEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGlj
YWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZUJveDo6dnR0
Q3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1p
bmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6bWFya0Z1dHVyZUFu
ZFBhc3ROb2Rlcyk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVn
aW9uOjpzZXRTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjpwYXJzZVNldHRp
bmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRh
aW5lclNjcm9sbGluZ0NsYXNzKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bm9kZVR5cGVUb1RhZ05hbWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVjdE1ldGFkYXRhSGVhZGVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHV0ZVBzZXVkb0NsYXNzTWFzayk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c291cmNlTWFw
VVJMRm9yUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNl
RGVsaW1pdGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3Jp
cHQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpjb3JzUG9s
aWN5UHJldmVudGVkTG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAg
ICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUpOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjp1cGRhdGVDYXB0aW9uU3R5bGVTaGVldE92ZXJpZGUpOgorICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zQmFja2dyb3VuZENTUyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNU
ZXh0RWRnZUNTUyk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
Y3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVuc3VwcG9ydGVk
RGlyZWN0aXZlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OndpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZHJhZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwOgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luQWNjZXNzTWFwKToK
KyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dG
b3JCbGVuZGluZyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRlckN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpjcm9zc0N1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjpoYW5kQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdmVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6dmVydGljYWxUZXh0Q3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OmNlbGxDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6YWxpYXNDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6
em9vbUluQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Onpvb21PdXRDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub25lQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByb2dyZXNzQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
RHJvcEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpub3RBbGxvd2VkQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlCZWFtQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OndhaXRDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6aGVscEN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjplYXN0
UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoUmVzaXplQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
Ojpub3J0aFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhSZXNpemVD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UmVzaXplQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNvdXRoV2VzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjp3
ZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoU291dGhSZXNpemVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZWFzdFdlc3RSZXNpemVDdXJzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpj
b2x1bW5SZXNpemVDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6cm93UmVzaXplQ3Vyc29yKToK
KyAgICAgICAgKFdlYkNvcmU6Om1pZGRsZVBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6ZWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6bm9ydGhQYW5uaW5nQ3Vy
c29yKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcnRoRWFzdFBhbm5pbmdDdXJzb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6bm9ydGhXZXN0UGFubmluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpz
b3V0aFBhbm5pbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6c291dGhFYXN0UGFubmluZ0N1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6Ondlc3RQYW5uaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OmdyYWJD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6Z3JhYmJpbmdDdXJzb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9ic2VydmVyTWFwKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhTUlNRVR5cGVNYXAp
OgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVtb3J5UHJl
c3N1cmVIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpsb2NhbFVSTFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGlz
cGxheUlzb2xhdGVkVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpzZWN1cmVTY2hlbWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjplbXB0eURvY3VtZW50U2NoZW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm90QWxs
b3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lc0Fs
bG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDT1JTRW5hYmxlZFNjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1lcyk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6
OnRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YmxhbmtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9ydEZvclByb3RvY29sKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uY2F0ZW5hdGVkSW1wdWxzZVJlc3BvbnNl
c0ZvclN1YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXVkaW9EZXN0aW5hdGlvbnMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcik6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRF
Y29yZUN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmb250R2x5cGhzQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVDb250ZXh0TGlzdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZXBhaW50UmVjdE1hcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVh
bSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNNVGltZVJhbmdlU3RhcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q01UaW1lUmFuZ2VEdXJhdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpDQUNG
Q29udGV4dE5lZWRzRmx1c2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpwbGF5ZXJUb1ByaXZhdGVNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpl
ZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFyZkJ1enpGYWNlQ2FjaGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHM6OmVtcHR5VmFsdWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVHYW1lcGFk
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OktleUJpbmRpbmdUcmFuc2xhdG9yOjpnZXRFZGl0b3JDb21tYW5kc0Zv
cktleUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhl
bHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFdpbmRvd0hhc2hNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVD
b250ZXh0TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY2hlZHVsZVNjcmF0Y2hCdWZmZXJQdXJnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
dXJzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXJJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVs
ZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6
dXBkYXRlRm9yRXZlbnROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVu
dE9ic2VydmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYlRocmVhZEdldE9ic2VydmVkQ29udGVudE1v
ZGlmaWVycyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnBsYXRmb3JtVGhlbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgorICAgICAgICAo
V2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojptb2NrU291cmNlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVN0cmVhbUNlbnRl
cjo6cmVnaXN0ZXJNb2NrTWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tC
b3g6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0luaXRpYWxpemF0aW9uQm94Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTYW1wbGVCb3g6OnR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhU
b0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYU1NQcm90ZWN0aW9uSGVh
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0
dWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0
U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0
b3JNYXApOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25v
dXNMb2FkZXJNYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGllbnRDZXJ0cyk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpZW50Q2VydGlmaWNh
dGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlOjpnZXQpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzY3JpcHROYW1lVG9Db2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsZVRv
U2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2No
YXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3b3JkQnJl
YWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzZW50ZW5jZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRM
b2NhbGVOYW1lVG9MQ0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dz
U3R5bGVOZXdsaW5lcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVuZGxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzdG9y
YWdlRGlyZWN0b3J5KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBlcnNpc3RlbnRQbHVnaW5NZXRhZGF0YUNhY2hlUGF0aCk6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRpbnVhdGlv
bk91dGxpbmVUYWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JU
ZXh0T3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
dW50ZXJNYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTY3JvbGxiYXJUaGVtZTo6cmVuZGVyU2Ny
b2xsYmFyVGhlbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjdXN0b21Gb2N1c1JpbmdDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5
c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6d2lkZ2V0
TmV3UGFyZW50TWFwKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFBhaW50ZXI6OnBhaW50VGV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0dyaWRUcmFja1NpemUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRy
YWNrQnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0Jy
ZWFkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
UGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q2h1bmtCdWlsZGVyOjp0cmFuc2Zvcm1hdGlvbkZvclRl
eHRCb3gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6cm90YXRlTW9kZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6aW5oZXJpdHNGcm9tUHJvcGVydHkpOgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVu
Z3RoWUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6Om9yZGVyWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6Om9yZGVyWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlk
ZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERl
dmlhdGlvbllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3Rk
RGV2aWF0aW9uWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5
RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6cmFkaXVzWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lY
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojpi
YXNlRnJlcXVlbmN5WUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1lJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhNYXAuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoTWFwOjpzdmdHbHlwaEZvckdseXBoKToKKyAgICAgICAgKiBzdmcvU1ZHTGFu
Z1NwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6eG1sc3BhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAg
KiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
Ojpjb250ZW50U2NyaXB0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpj
b250ZW50U3R5bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVHJh
bnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6dHJhbnNmb3JtVHlw
ZVByZWZpeEZvclBhcnNpbmcpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmlld0JveElkZW50aWZpZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKToKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U01JTEVsZW1lbnQ6OnJlc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KToK
KwogMjAxNC0wNy0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCByMTcwNDEzIGFuZCByMTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXgg
NmNjNmM4NWQwZjc0NDNlN2E3YThhNDE4ZjIwMGIyMzhmZTU3ZDFhYS4uNjc5ZjZjNGEzMzQ0NTFm
OGJhNGE3ZTdlNWI0ZTI2MzUyZDlhMzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgor
CisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5hbWUoYXJn
cykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
c2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChFbW9qaUZhbGxiYWNr
Rm9udFNlbGVjdG9yOjpnZXRGYWxsYmFja0ZvbnREYXRhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2spOgorCiAyMDE0LTA3LTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV1RGOjptb3ZlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkZTk2NjYxYWQ0MWUwZWUzYmI5YzA0Nzk0MDM4ZWRjOThmNTQ5ODA1Li44YTdmN2Y0N2VlZWRh
M2UxNzIwYTlkNjM5ZTAyZDYzNzBhYzBhODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShh
cmdzKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NDc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChiYWNrRm9yd2FyZExpc3Rz
KToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoaGlzdG9y
eUl0ZW1XcmFwcGVycyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
cjo6c2hhcmVkKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJveHlNYXApOgorICAgICAgICAqIFBs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm94eUNsYXNzKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoc3RyZWFtcyk6
CisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW06CisgICAgICAgICh0cmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKHVzZXJNZWRpYVJlcXVlc3Rz
TWFwKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAg
ICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTQtMDctMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTY3NzcwKTogQ2Fubm90IGxvZ2lu
IGluIEV2ZXJub3RlIFNhZmFyaSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxODhiZjA5
MTM0ODQyY2QyMTE0ZmE4NWE5MmM1ZTgwZTY5MDk2ZDlhLi4wYjY0YmVmZGI0ZTUxNjlkNmM5MjUy
OGQ0NzY3ZmJhMWNhOTgyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQs
IG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdzKSIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cDoKKyAgICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKToKKyAgICAgICAgKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzKToKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZSk6CisKIDIwMTQtMDctMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBXVEY6Om1vdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCAwZWQ4ZTFkZDdiYTliYjQxMWY5OGIxMjU2ZDkwMjQ1YWM5MzliNzczLi5hMjBmYTg3YjQzYWNk
NTkyMjk3YmYxZTNkYTA0MGZiNzU3OTE2ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE0LTA3LTA5ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1pZ3JhdGUgdGhlIHVzYWdlIG9mIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChULCBuYW1lLCBhcmdzKSB0byAic3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IG5h
bWUoYXJncykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0xMiAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgREVGSU5F
X1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiNzA2MWVkODBiMjgwOTliZDA0MjdhYTZlNzRkZmNmMTMwOTA4ZGY4Li44ZTgwZTBiM2Yy
YzFjZjcxZjUyMjg4ZGQ2NGQwYmM1ODNhNWE0MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDctMDkgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgTWlncmF0ZSB0aGUgdXNhZ2Ugb2YgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFQsIG5hbWUsIGFyZ3MpIHRvICJzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gbmFtZShhcmdz
KSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDc5
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KToKKwogMjAxNC0wNy0wOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjE3MDg1OCk6IFNhZmFyaSBmcmVlemVzIHVwb24gbWFraW5nIGEg
c2VhcmNoIG9uIGEgd2Vic2l0ZSAoeWVscC5jb20pLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQppbmRleCA4OTdlOTZmNDRlMGY0MWMzOTFiYjhk
NjYwZWY3MzA3NDBlZmNjMWVkLi41YWNkOGI1ZTgxZTRlZTIzZTZkYzQ3MGMwYTZjMTk0ZGNhYTE0
MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVj
dC5tbQpAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmpl
Y3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
ciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzV3JhcHBl
ck9iamVjdEhhbmRsZU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcj4ganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXI7CisgICAgcmV0
dXJuICZqc1dyYXBwZXJPYmplY3RIYW5kbGVPd25lci5nZXQoKTsKIH0KIAogdm9pZCBKU0FQSVdy
YXBwZXJPYmplY3RIYW5kbGVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U01hbmFnZWRWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFs
dWUubW0KaW5kZXggOTUzY2I1ZmJkYWFjMTM2ZTY1MWIyOWNjZjU4ZTdkNzQzOThmYzkwZS4uMjQ0
NGI3NTljY2I5YmM5OTU2MzI5ODQwNDk0Y2QxNjZlYjhhZDlkYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoK
IAogc3RhdGljIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIqIG1hbmFnZWRWYWx1ZUhhbmRsZU93
bmVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNNYW5hZ2VkVmFs
dWVIYW5kbGVPd25lciwganNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciwgKCkpOwotICAgIHJldHVy
biAmanNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lcj4ganNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lcjsKKyAg
ICByZXR1cm4gJmpzTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIuZ2V0KCk7CiB9CiAKIGNsYXNzIFdl
YWtWYWx1ZVJlZiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDIzMTMy
ZmMyMGVhY2QxYmVlMTBkMzRlNzNmNmMwOGFiOWNjODJhZjguLmU1MGEzOTA5MDY0MDZjNTM3MjZj
OGFkYTk1YmUyZmNjYWRlZDI0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IGNoYXIqIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJh
Y2t0cmFjZU9iamVjdEdyb3VwID0gImJhY2t0cmFjZSI7CiAvLyBjcmVhdGUgb2JqZWN0cyBpbiB0
aGUgc2FtZSBncm91cC4KIHN0YXRpYyBTdHJpbmcgb2JqZWN0R3JvdXBGb3JCcmVha3BvaW50QWN0
aW9uKGNvbnN0IFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mIGFjdGlvbikKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvYmplY3RHcm91cCwg
KCJicmVha3BvaW50LWFjdGlvbi0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gb2JqZWN0
R3JvdXAoImJyZWFrcG9pbnQtYWN0aW9uLSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBtYWtlU3RyaW5nKG9iamVjdEdyb3VwLCBTdHJpbmc6Om51bWJl
cihhY3Rpb24uaWRlbnRpZmllcikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvcklu
c3BlY3RvclN0cmluZ3MucHkKaW5kZXggMjc2Mzc0NDE2MGI4NGZmZDJjMzc3NTlhNDNkYmQzM2Rm
MDE0NWE0NC4uZDFiNTdiMWE0MjFhM2Q3MTExNDk5ZGIzZWE3ODc4MGMyMDFjNGZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3JTdHJpbmdzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQpAQCAtNzIsNyArNzIs
NyBAQCBiYWNrZW5kX2Rpc3BhdGNoZXJfZGlzcGF0Y2hfbWV0aG9kID0gKAogCiAgICAgdHlwZWRl
ZiB2b2lkICgke2Rpc3BhdGNoZXJOYW1lfTo6KkNhbGxIYW5kbGVyKShsb25nIGNhbGxJZCwgY29u
c3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIG1lc3NhZ2UpOwogICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIENhbGxIYW5kbGVyPiBEaXNwYXRjaE1hcDsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoRGlzcGF0Y2hNYXAsIGRpc3BhdGNoTWFwLCAoKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPERpc3BhdGNoTWFwPiBkaXNwYXRjaE1hcDsKICAgICBpZiAoZGlz
cGF0Y2hNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgTWV0aG9k
VGFibGUgewogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAppbmRleCBjNmE3MDNjYmM2MDMwNzQ0MzJj
MGIyODFlYzIwOTE5ZWUzYmVjODEyLi4yNTU5OTlhNzY2NWMzMjcwMDMxNWI5NjFiNzFkYmYxYmJh
NjI2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNT
dGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2su
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZXNDb3VudCA9
IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IHN0YXRpY011dGV4OwogICAgIHJldHVybiBzdGF0
aWNNdXRleDsKIH0gICAgCiAjZW5kaWYgLy8gIUVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQdGhyZWFkcy5jcHAKaW5kZXggNjE5MjkxNWNiMWJkMzIzM2IxMjRjMDdiNDM2ZThmMTIzOWQw
OWU5Yy4uN2Y1NDcyNGY0YzIwOWFhODZmMWE5NDFhNGFmODQ3N2Y0ZGY2YjRiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgdGhyZWFk
V2FzSm9pbmVkKFRocmVhZElkZW50aWZpZXIpOwogCiBzdGF0aWMgTXV0ZXgmIHRocmVhZE1hcE11
dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKICAgICByZXR1
cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRp
bmcoKQogCiBzdGF0aWMgVGhyZWFkTWFwJiB0aHJlYWRNYXAoKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChUaHJlYWRNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxUaHJlYWRNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKaW5kZXggNTI3MGYyYjE0MTVh
NjRmMWZkYTNjNWYyM2QzYzFjZWEyY2M0ZGEwMC4uZGY0NjE0YTM2M2JhNzJlZDVkMzc5OWZiZjhm
NjE0OGFlNDMxNjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5
L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2
ZW50LmNwcApAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHN0cmluZ0ZvclBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5KGJv
b2wgYXZhaWxhYmxlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGF2YWlsYWJsZVN0cmluZywgKCJhdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbm90QXZhaWxhYmxlU3RyaW5nLCAoIm5vdC1hdmFpbGFibGUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiBhdmFpbGFibGUgPyBhdmFp
bGFibGVTdHJpbmcgOiBub3RBdmFpbGFibGVTdHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCAyZTg0NmRkN2ZjODljYWNiNTQx
Njk4OWNlNzcwYWNjYzBiNDdhZjVmLi5hM2U1NWQ3ZDM2MWZmNmY1M2Q5Y2IzZTBjNGQ1Nzk5Y2Jk
Y2QzNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKQEAgLTUwLDI1ICs1MCwyNSBAQCBQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29y
OjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBiYWNrZW5kLCBJbgogCiBjb25z
dCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dCwgKCJuZXh0IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IG5leHQoIm5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmV4dDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJ
REJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5leHR1bmlxdWUsICgibmV4dHVuaXF1ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBuZXh0dW5pcXVlKCJuZXh0dW5pcXVlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5leHR1bmlxdWU7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2LCAoInByZXYiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gcHJldigicHJldiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwcmV2OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJwcmV2dW5pcXVlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IHByZXZ1bmlxdWUoInByZXZ1bmlxdWUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcHJldnVuaXF1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRl
eCA5NmIwYzZhZDczYTU2MDgxMzBiOGVmZjJjZTBiZWFlNTkzYTg3YzEzLi5hNzU5MTZmOTI3ZTJh
NmJjOGZmYmY2YzA4NmNkZmVmYzhmM2U1MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTMyLDggKzEzMiw4IEBAIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkgY29uc3QKIGNvbnN0
IFN0cmluZyYgSURCUmVxdWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwZW5kaW5nLCAoInBlbmRp
bmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZG9uZSwgKCJkb25lIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHBlbmRpbmcoInBlbmRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBk
b25lKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBp
ZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAgIHJldHVybiBwZW5kaW5nOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IGM0MmY5NDVjNDExMzQ3OWZlNzE4M2QxMDg5ODFlMGMxMGQ2NTc4NDguLmJkZjgzNDQ1
NTkzZDY0M2JhNzNmNDgyOTZlZTg3M2YwOWE5YTU5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTYwLDMxICs2MCwz
MSBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRy
YW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJlYWRvbmx5IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IHJlYWRvbmx5KCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkb25seTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoInJlYWR3cml0ZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiByZWFkd3JpdGUoInJlYWR3cml0ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiByZWFkd3JpdGU7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVWZXJzaW9uQ2hhbmdlKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2ZXJzaW9uY2hh
bmdlLCAoInZlcnNpb25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdmVyc2lvbmNoYW5n
ZSgidmVyc2lvbmNoYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiB2ZXJzaW9uY2hhbmdlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRy
YW5zYWN0aW9uOjptb2RlUmVhZE9ubHlMZWdhY3koKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gcmVhZG9ubHkoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJh
bnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCIxIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IHJlYWR3cml0ZSgiMSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiByZWFkd3JpdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4
IGE2ODhjNTg2YWI1OTJmMjIyNTEwYjYxYzJhYWU0NjgwZmQxMjZiNWMuLjNlNGFmN2U2YjE5YmEx
ZDY0MThkNGU0OWM2ZTE2ZDg1MzhkMTY2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtNDQs
MTkgKzQ0LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xzSG9zdDo6YXV0b21hdGljS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b21hdGljLCAoImF1dG9t
YXRpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdXRvbWF0
aWM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9u
bHlLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBmb3JjZWRPbiwgKCJmb3JjZWQtb25seSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBmb3JjZWRPbigiZm9yY2VkLW9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkT247CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmFsd2F5c09uS2V5d29yZCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx3YXlzT24sICgi
YWx3YXlzLW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGFsd2F5c09uKCJhbHdheXMt
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYWx3
YXlzT247CiB9CiAKQEAgLTIwMywxMiArMjAzLDEyIEBAIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9z
dDo6ZXh0ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZSgpIGNvbnN0CiAKIFN0cmluZyBNZWRpYUNvbnRy
b2xzSG9zdDo6ZXh0ZXJuYWxEZXZpY2VUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBub25lKEFTQ0lJTGl0ZXJhbCgibm9u
ZSIpKTsKICAgICBTdHJpbmcgdHlwZSA9IG5vbmU7CiAgICAgCiAjaWYgRU5BQkxFKElPU19BSVJQ
TEFZKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFpcnBsYXks
IChBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYWlycGxheShBU0NJSUxpdGVyYWwoImFpcnBsYXki
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdHZvdXQoQVNDSUlMaXRlcmFs
KCJ0dm91dCIpKTsKICAgICAKICAgICBNZWRpYVBsYXllciogcGxheWVyID0gbV9tZWRpYUVsZW1l
bnQtPnBsYXllcigpOwogICAgIGlmICghcGxheWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDNmMDI2NWJjMGU0ODNh
ODU3OGYxNTgxNjg0Nzg4Yzg4MTFiZGI1N2UuLjUzNTAwMWQzMjJlNWJjODIzNjZkMDUyYTljY2Qx
ZTMxYzgzZjA1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwCkBAIC05MiwxOSArOTIsMTkgQEAgTWVkaWFTb3VyY2U6On5NZWRp
YVNvdXJjZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3Jk
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBvcGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gb3Blbigib3Bl
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvcGVu
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBjbG9zZWQsICgiY2xvc2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNsb3NlZCgi
Y2xvc2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGNsb3NlZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3
b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBlbmRlZCwgKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBlbmRl
ZCgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gZW5kZWQ7CiB9CiAKQEAgLTM0MCw4ICszNDAsOCBAQCB2b2lkIE1lZGlhU291cmNlOjplbmRP
ZlN0cmVhbShjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKIAog
dm9pZCBNZWRpYVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IoY29uc3QgQXRvbWljU3RyaW5n
JiBlcnJvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3b3JrIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNvZGUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21pY1N0cmluZz4gbmV0d29yaygibmV0d29yayIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IGRlY29kZSgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICAvLyAyLjQuNyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEv
cmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNlbmQtb2Ytc3RyZWFt
LWFsZ29yaXRobQogICAgIC8vIDEuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFs
dWUgdG8gImVuZGVkIi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdh
dG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3Bw
CmluZGV4IDBjZjM0ZTc3ZDU5M2I1YzI4N2ExNDNlZmVhYTAyMDcxYWY3MDBiZjEuLjJkMTk3ODY5
NjRmZGQ3M2NiYjVhYTFmMDI2NzJiNjQ4MDVmYjE5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2
aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMTQ0LDkgKzE0NCw5IEBAIHZvaWQgTmF2aWdhdG9y
Q29udGVudFV0aWxzOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihOYXZpZ2F0b3IqIG5hdmlnYXRv
ciwgY29uc3QKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQogc3RhdGljIFN0cmlu
ZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRVdGlsc0Ns
aWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBzdGF0ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJu
ZXciKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHJlZ2lzdGVyZWRIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJyZWdpc3RlcmVkIikpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZEhhbmRs
ZXIsIChBU0NJSUxpdGVyYWwoImRlY2xpbmVkIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgU3RyaW5nPiBuZXdIYW5kbGVyKEFTQ0lJTGl0ZXJhbCgibmV3IikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHJlZ2lzdGVyZWRIYW5kbGVyKEFTQ0lJ
TGl0ZXJhbCgicmVnaXN0ZXJlZCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBkZWNsaW5lZEhhbmRsZXIoQVNDSUlMaXRlcmFsKCJkZWNsaW5lZCIpKTsKIAogICAg
IHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6
Q3VzdG9tSGFuZGxlcnNOZXc6CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIFN0cmluZyBjdXN0
b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6
Q3VzdG8KIAogU3RyaW5nIE5hdmlnYXRvckNvbnRlbnRVdGlsczo6aXNQcm90b2NvbEhhbmRsZXJS
ZWdpc3RlcmVkKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29u
c3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkLCAoImRlY2xpbmVkIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGRlY2xpbmVkKCJkZWNsaW5l
ZCIpOwogCiAgICAgaWYgKCFuYXZpZ2F0b3ItPmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBkZWNs
aW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCBlYjNjMjc1NjI5MzFkZDVhZTAyN2Jk
OTQzOWZiOGMyMTg2YWZhMTJlLi5jMzVmZjA3YWM2NzFhN2RjZDQ4NjMyNmI5NDFiMDU5MDVhMmZi
YWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1l
UGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBK
U1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVt
VHlwZSAqLCBKU0NvbnRlCiAKIHN0YXRpYyBTdHJpbmcgcXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnRTY3JpcHQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHNjcmlwdCwgKFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlwdCwgc2l6ZW9mKFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlwdCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiBzY3JpcHQoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2Ny
aXB0LCBzaXplb2YoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0KSk7CiAgICAg
cmV0dXJuIHNjcmlwdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKaW5kZXggYjZiYjNjZjcxYThlZDlkZmNmODA5MmE4MDExN2Iw
YjJmZGU5ODAxMC4uZmJlNTdhMDYyMTQ4M2U0YzNiNmM4OTc0ZjlhOWI3ZjdlNzg3MmY3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3Bw
CkBAIC0xOTQsOCArMTk0LDggQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OmhhbmRsZVNwZWFraW5n
Q29tcGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmMKICAgICAKIHZvaWQg
U3BlZWNoU3ludGhlc2lzOjpib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1JlZlB0cjxQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNlLCBTcGVlY2hCb3VuZGFyeSBib3Vu
ZGFyeSwgdW5zaWduZWQgY2hhckluZGV4KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHdvcmRCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgi
d29yZCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc2VudGVuY2VCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2VudGVuY2UiKSkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHdvcmRCb3VuZGFyeVN0cmlu
ZyhBU0NJSUxpdGVyYWwoIndvcmQiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFN0cmluZz4gc2VudGVuY2VCb3VuZGFyeVN0cmluZyhBU0NJSUxpdGVyYWwoInNlbnRlbmNlIikp
OwogCiAgICAgc3dpdGNoIChib3VuZGFyeSkgewogICAgIGNhc2UgU3BlZWNoV29yZEJvdW5kYXJ5
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXggZWI4
YmMwYzE5Nzg5YTM4ODE4NmQ3NTY1Y2UxYjVhYjk3MmVlY2QzYS4uNzYzYmQ2MjdiNjViZGUxZDk3
NjVkNWExYTI4YWNkNDE5ZDE3NjZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9H
Q0NvbnRyb2xsZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3Qodm9p
ZCopCiAKIEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoR0NDb250cm9sbGVyLCBzdGF0aWNHQ0NvbnRyb2xsZXIsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R0NDb250cm9sbGVyPiBzdGF0aWNHQ0NvbnRyb2xs
ZXI7CiAgICAgcmV0dXJuIHN0YXRpY0dDQ29udHJvbGxlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5j
cHAKaW5kZXggMTFkZTVkM2Y5NjgzNDIxNjlmODdkN2E3MTg1MWJiODM1MGEyODVjYy4uNDMyNDI0
NjcyZjg1MTdmZGZjODg1YjljOTBlN2ZiYmQyODA1ZDg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
CkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBjc3NQcm9wZXJ0eUlE
Rm9ySlNDU1NQcm9wZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmEKIAogICAgIFN0cmlu
ZyBzdHJpbmdGb3JDYWNoZSA9IFN0cmluZyhwcm9wZXJ0eU5hbWVTdHJpbmcpOwogICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SW5mbz4gQ1NTUHJvcGVydHlJbmZvTWFwOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDU1NQcm9wZXJ0eUluZm9NYXAsIHBy
b3BlcnR5SW5mb0NhY2hlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1Byb3Bl
cnR5SW5mb01hcD4gcHJvcGVydHlJbmZvQ2FjaGU7CiAgICAgcHJvcGVydHlJbmZvID0gcHJvcGVy
dHlJbmZvQ2FjaGUuZ2V0KHN0cmluZ0ZvckNhY2hlKTsKICAgICBpZiAocHJvcGVydHlJbmZvLnBy
b3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHAKaW5kZXggZjgwMThjNzQ4YjNlZDc5ODEzNDE2Yzc5OGFjMzE5MGM2NTBhNzcxYS4uN2Nj
NDMzOWZmODQxNDUyYjdhMDk0NjVkNjJiYjJhNjI0NDEzYmZjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3Vz
dG9tLmNwcApAQCAtNTUsMTkgKzU1LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEpTVmFsdWUg
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQog
ewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJt
YWMiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHBsYXRmb3Jt
KEFTQ0lJTGl0ZXJhbCgibWFjIikpOwogI2VsaWYgT1MoV0lORE9XUykKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJh
bCgid2luZG93cyIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4g
cGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJ3aW5kb3dzIikpOwogI2VsaWYgT1MoTElOVVgpCi0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChB
U0NJSUxpdGVyYWwoImxpbnV4IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBwbGF0Zm9ybShBU0NJSUxpdGVyYWwoImxpbnV4IikpOwogI2VsaWYgT1MoRlJFRUJT
RCkKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0
Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgiZnJlZWJzZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJmcmVlYnNkIikpOwogI2Vs
aWYgT1MoT1BFTkJTRCkKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgib3BlbmJzZCIpKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlMaXRlcmFsKCJvcGVu
YnNkIikpOwogI2VsaWYgT1MoU09MQVJJUykKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgic29sYXJpcyIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlM
aXRlcmFsKCJzb2xhcmlzIikpOwogI2Vsc2UKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgidW5rbm93biIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGxhdGZvcm0oQVNDSUlM
aXRlcmFsKCJ1bmtub3duIikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hl
KGV4ZWNTdGF0ZSwgcGxhdGZvcm0pOwogfQpAQCAtNzUsMTEgKzc1LDExIEBAIEpTVmFsdWUgSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQogSlNW
YWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cG9ydChFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkK
IHsKICNpZiBQTEFURk9STShHVEspCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiZ3RrIikpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBwb3J0KEFTQ0lJTGl0ZXJhbCgiZ3RrIikpOwog
I2VsaWYgUExBVEZPUk0oRUZMKQotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImVmbCIpKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcG9ydChBU0NJSUxpdGVyYWwoImVmbCIpKTsKICNl
bHNlCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9y
dCwgKEFTQ0lJTGl0ZXJhbCgidW5rbm93biIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFN0cmluZz4gcG9ydChBU0NJSUxpdGVyYWwoInVua25vd24iKSk7CiAjZW5kaWYKICAg
ICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlY1N0YXRlLCBwb3J0KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCmluZGV4IGJiM2ZjNjlhMmQ3ZmQ2
YTNjYjdmMzc5ZTUyZjg3Nzc0NzY4Yzg3NjcuLmJiNmIzYmNiNDZiMjBkOWI1MmU5ZDFhMTdlZmM5
OWU1ZjQyNDBlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SW50ZXJuYWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5h
bC5tbQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgTlNNYXBUYWJsZSogRE9NV3JhcHBlckNhY2hl
OwogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwogc3RhdGljIE11dGV4JiB3cmFwcGVy
Q2FjaGVMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IHdyYXBwZXJDYWNoZU11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4
PiB3cmFwcGVyQ2FjaGVNdXRleDsKICAgICByZXR1cm4gd3JhcHBlckNhY2hlTXV0ZXg7CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCBlNjgwMmZmZWQzNTk0NzUw
NDQ0NmUyN2RlMjllYmQxZDI2MzNmNDUyLi41M2Q4ODQ0MmM2YTFkMzI3NjNmNzk4MzRiNTI0Y2Qz
NDE4YjFjZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC04Myw4ICs4Myw4
IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkJiwgVGVzdEFjdGl2ZURPTU9iamVjdCopCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCBqc1Rlc3RB
Y3RpdmVET01PYmplY3RPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0QWN0aXZlRE9NT2Jq
ZWN0T3duZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEFjdGl2ZURPTU9iamVj
dE93bmVyPiBqc1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjsKKyAgICByZXR1cm4gJmpzVGVzdEFj
dGl2ZURPTU9iamVjdE93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRl
eHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEFjdGl2ZURPTU9iamVjdCopCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCmluZGV4IDgxMzFkMzFkYThkY2YwYWJhNzMyZTQzM2Q5
YzMwMGY0NmE3OWFmYTAuLjM3YzQ0YWU0MTBkOWUzOWM0YTc1YTYxZWUzYWU5ODQzZTgwZjU0NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDdXN0b21OYW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC04Nyw4ICs4Nyw4IEBAIHB1
YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3Jh
cHBlcldvcmxkJiwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKikKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciwganNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJPd25lcj4ganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lcjsKKyAgICByZXR1cm4gJmpz
VGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIq
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggZjIwZTViZTA5MWMyYWU5Y2Jk
N2QyZTI4ZjZhYWY1MjllOGU0ZDA2Yy4uMmQ1OWQ4NjlmOTI0MDFhZGQzYTYyMDcxNTE2ZDEzOGM5
NzdmYzZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC04Myw4ICs4Myw4
IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkJiwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIsIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0RXZlbnRDb25z
dHJ1Y3Rvck93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RFdmVudENvbnN0
cnVjdG9yT3duZXI+IGpzVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lcjsKKyAgICByZXR1cm4gJmpz
VGVzdEV2ZW50Q29uc3RydWN0b3JPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudENvbnN0cnVjdG9yKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggODJhYTVjNjlkOTFlYjA4OTFkMmQ0MmU1OGMyOTE1
ZDAwMThiYjU5Yi4uM2Q4OTViYWNiZTI2MWU5NjA3ODI0ODA2NmIzMDU5ZWU2NTdlNjI4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTkxLDggKzkxLDggQEAgcHVibGljOgogCiBpbmxpbmUg
SlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0
RXZlbnRUYXJnZXQqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rl
c3RFdmVudFRhcmdldE93bmVyLCBqc1Rlc3RFdmVudFRhcmdldE93bmVyLCAoKSk7Ci0gICAgcmV0
dXJuICZqc1Rlc3RFdmVudFRhcmdldE93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxK
U1Rlc3RFdmVudFRhcmdldE93bmVyPiBqc1Rlc3RFdmVudFRhcmdldE93bmVyOworICAgIHJldHVy
biAmanNUZXN0RXZlbnRUYXJnZXRPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudFRhcmdldCopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmgKaW5kZXggYzBhODMzZDlhMTljNjc3YzFlZDUxMThmMDBlY2M3OTc4NGI5MGVj
YS4uMmM5ZjZiNTJjOWRiYjAwZWJlMTQwMzAzOTA3OGY3YmJiNzAxNzE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaApAQCAtODQsOCArODQsOCBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5k
bGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RFeGNlcHRpb24qKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RFeGNlcHRpb25Pd25l
ciwganNUZXN0RXhjZXB0aW9uT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpzVGVzdEV4Y2VwdGlv
bk93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RFeGNlcHRpb25Pd25lcj4g
anNUZXN0RXhjZXB0aW9uT3duZXI7CisgICAgcmV0dXJuICZqc1Rlc3RFeGNlcHRpb25Pd25lci5n
ZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIFRlc3RFeGNlcHRpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmgKaW5kZXggNTNhZWRkNmYyMGI4MmViN2Y0NzhlNzYzNDlhZDE5NDNiNzdlOTk4Yi4uZGYwZDU2
Mjg4ZTY3MWY1NjBlZTg1NTRmZmFiYmI3OGZlZjVlNzMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpT
Qzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIsIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVy
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3du
ZXI+IGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lcjsKKyAgICByZXR1cm4gJmpzVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJD
b250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuaAppbmRleCBlNzg5ZmU0YmU5MWNkNzA0MWQ3OWI3OTJiMmFiMjRlODE4
YjI2MjhhLi5hNDQzYzJmZjA4NmQ4YTJlYjcxNjg3MDMxMzJkN2Y5NzYzZWE1MGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCkBAIC0xMTAsOCArMTEwLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpX
ZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0SW50ZXJm
YWNlKikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0SW50ZXJm
YWNlT3duZXIsIGpzVGVzdEludGVyZmFjZU93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RJ
bnRlcmZhY2VPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0SW50ZXJmYWNl
T3duZXI+IGpzVGVzdEludGVyZmFjZU93bmVyOworICAgIHJldHVybiAmanNUZXN0SW50ZXJmYWNl
T3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCBUZXN0SW50ZXJmYWNlKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oCmluZGV4IDIxNmRhODlkYWRjMzhhZWIzOTBlNGNlZDFlNDkzMTViNDlm
NjQzOGQuLjVlNGMyODk3NjAyNDNmMWY4MDQxN2JkMjEyNzI1ODFmMjM5YzU1ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtODEsOCArODEsOCBAQCBw
dWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdy
YXBwZXJXb3JsZCYsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKikKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVy
LCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIsICgpKTsKLSAgICByZXR1cm4gJmpz
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyPiBqc1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyT3duZXI7CisgICAgcmV0dXJuICZqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
T3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuaAppbmRleCBhZjcyMzVhMzYwYzI3NmFlYWNhZTZjNjFkN2VjNzU1MzI1
ZDU0MWY5Li4zOTNiYzM5YzE0NGQzNzBkMGM5NTBlZDRiZTFlNjYxOTdkY2I3MDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTgyLDggKzgyLDggQEAgcHVibGljOgogCiBp
bmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQm
LCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciwganNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ck93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lcj4ganNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOworICAgIHJldHVybiAmanNUZXN0TmFtZWRDb25zdHJ1
Y3Rvck93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0
aWMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25k
ZXRlcm1pbmlzdGljLmgKaW5kZXggMzU2ZWJjM2NlYTZiY2IzYjE0NmI0ZGJiN2UyYTk0Y2VlMDU0
ZjA2OC4uODEwZTcxYTU1NTEyZjk0MTQzNDljZDkyMzI0YmVjMjVmY2YyMjE5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5s
aW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwg
VGVzdE5vbmRldGVybWluaXN0aWMqKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXIsIGpzVGVzdE5vbmRldGVybWluaXN0aWNP
d25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0Tm9uZGV0ZXJtaW5pc3RpY093bmVyOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljT3duZXI+IGpzVGVz
dE5vbmRldGVybWluaXN0aWNPd25lcjsKKyAgICByZXR1cm4gJmpzVGVzdE5vbmRldGVybWluaXN0
aWNPd25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIFRlc3ROb25kZXRlcm1pbmlzdGljKikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA3MWZlY2Ji
OGI2M2IwM2I5MDc2NjUyN2Y2NmQyMWQ5ZTVhNzRmMjI4Li40MWI3ODNmNWYwY2QyMjg1OGMzZWZh
MzAyMjMyMGUyODcwMDBiOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC05Niw4ICs5Niw4IEBAIHB1YmxpYzoKIAog
aW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxk
JiwgVGVzdE9iaiopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVz
dE9iak93bmVyLCBqc1Rlc3RPYmpPd25lciwgKCkpOwotICAgIHJldHVybiAmanNUZXN0T2JqT3du
ZXI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdE9iak93bmVyPiBqc1Rlc3RPYmpP
d25lcjsKKyAgICByZXR1cm4gJmpzVGVzdE9iak93bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9p
ZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE9iaiopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCBkNjg2MWI3OTQ2Mjc5
NGM3ZjI2NTQ5ZTkxYTY1YjExOGExYmFkMzAyLi5mOTc2OTFiMDQwNGIxNmI4M2JlZGFkNzkxNTIw
MWRkMTlmOWQ4N2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmgKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3du
ZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycyopCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNPd25lciwganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVy
LCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25l
cj4ganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyOworICAgIHJldHVybiAmanNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyLmdldCgpOwogfQogCiBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oCmluZGV4IDExYWY2NDBiYTk0YjY4NzY4ZWNlNjJhNGFlZDE5N2NkYWZlZDQxODcu
LmIxNjFiMjIxMjk0YTY2ZGRiNmZjNzlkYWIyZTI0ZGEzMTc1MmM4M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTg4LDgg
Kzg4LDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJP
d25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
KikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXIsIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZU93bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VPd25lcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXI+IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZU93bmVyOworICAgIHJldHVybiAmanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmgKaW5kZXggNmNhNjYzYzJiNWY5ZDE5NjNjYzdlZTE2MDNiZTBiOWM2
ZDI2MjM5Zi4uZmEzZWQ2NjFiZTczMDc3OGIxNGJkOTc0YzcxMjVmYjMxZWRkZTA4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmgKQEAgLTgzLDggKzgzLDggQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0VHlwZWRlZnMq
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RUeXBlZGVmc093
bmVyLCBqc1Rlc3RUeXBlZGVmc093bmVyLCAoKSk7Ci0gICAgcmV0dXJuICZqc1Rlc3RUeXBlZGVm
c093bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RUeXBlZGVmc093bmVyPiBq
c1Rlc3RUeXBlZGVmc093bmVyOworICAgIHJldHVybiAmanNUZXN0VHlwZWRlZnNPd25lci5nZXQo
KTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RUeXBlZGVmcyopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmluZGV4IDYzNTAyNzdkYjlhZTI3NmEwNmVlNDRj
OGU4ZjgwMWMxMjFlZWQ4Y2EuLmEzMDJiNDUwNjQwZTI0MmVjNGNiN2E3MTExZDlmYjdmYjU3ZjQ3
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U2F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU2F0dHJpYnV0ZS5oCkBAIC04Miw4ICs4Miw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgYXR0cmlidXRl
KikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNhdHRyaWJ1dGVPd25l
ciwganNhdHRyaWJ1dGVPd25lciwgKCkpOwotICAgIHJldHVybiAmanNhdHRyaWJ1dGVPd25lcjsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNhdHRyaWJ1dGVPd25lcj4ganNhdHRyaWJ1dGVP
d25lcjsKKyAgICByZXR1cm4gJmpzYXR0cmlidXRlT3duZXIuZ2V0KCk7CiB9CiAKIGlubGluZSB2
b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBhdHRyaWJ1dGUqKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVh
ZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRv
bmx5LmgKaW5kZXggM2UyZDhhNmVhZTFiNWZlZTk3ZDY0MWE0YjVjMTQ1MTBjZTY1MDkwNC4uMDM5
MjkzYjI5NjMxZDEwOGZkNTNjZjc4OTI1ODliYjhkMTVlOGQwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC04MSw4
ICs4MSw4IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVy
T3duZXIoRE9NV3JhcHBlcldvcmxkJiwgcmVhZG9ubHkqKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChKU3JlYWRvbmx5T3duZXIsIGpzcmVhZG9ubHlPd25lciwgKCkpOwot
ICAgIHJldHVybiAmanNyZWFkb25seU93bmVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxK
U3JlYWRvbmx5T3duZXI+IGpzcmVhZG9ubHlPd25lcjsKKyAgICByZXR1cm4gJmpzcmVhZG9ubHlP
d25lci5nZXQoKTsKIH0KIAogaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJX
b3JsZCYgd29ybGQsIHJlYWRvbmx5KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5j
cHAKaW5kZXggNmViMWVmZmIyYmFlZGFhMjg4ZWE1YmNjMmZlYTBiNWI4YTZhY2MwZS4uZDc3MzFl
NjEzN2YyYjA5ODkxMjEyMTM5YjViMjQwNWM4ZTM1NzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvY19pbnN0YW5jZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsK
IAogc3RhdGljIFN0cmluZyYgZ2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25TdHIsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBleGNlcHRpb25TdHI7CiAgICAgcmV0dXJuIGV4
Y2VwdGlvblN0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRl
eCBmNzgxNWVmNWNlMGRkMzQ5NjVhMmNiNjY4ODk4ODE3NGNmNjRkYjk4Li4xNDdhZWE5YzEzYzA0
MTkxMDBkNzg1ODAzZWVkMDU2YWVlZDIwY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtNjE5LDcgKzYxOSw3IEBAIGJvb2wgQ1NTRm9udFNlbGVjdG9yOjpyZXNv
bHZlc0ZhbWlseUZvcihjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKSBjb25zCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKG1fZm9udEZhY2VzLmNvbnRhaW5zKGZh
bWlseU5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYmtpdFByZWZpeCwgKCItd2Via2l0LSIpKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd2Via2l0UHJlZml4KCItd2Vi
a2l0LSIpOwogICAgICAgICBpZiAoZmFtaWx5TmFtZS5zdGFydHNXaXRoKHdlYmtpdFByZWZpeCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcAppbmRleCA5NDQ1MDg2M2YxYjkzYWM2YTczNTg5NmIyY2E5MmIxZmZiZGVhNGFmLi44
MmQxMDgxM2NkNjQzYjRjZmJiMGI4ZmMyYzQ1MTE4ZGFjYzI0MTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcApAQCAtMjkzLDExICsyOTMsMTEgQEAgc3RhdGljIHZvaWQgYWRkUmVzb2x1dGlv
bldhcm5pbmdNZXNzYWdlVG9Db25zb2xlKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW4K
ICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVCh2YWx1ZSk7CiAKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVF1ZXJ5TWVzc2FnZSwgKEFTQ0lJ
TGl0ZXJhbCgiQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJyVyZXBsYWNl
bWVudFVuaXRzJScsIGFzIGluIENTUyAnJXJlcGxhY2VtZW50VW5pdHMlJyBtZWFucyBkb3RzLXBl
ci1DU1MtJWxlbmd0aFVuaXQlLCBub3QgZG90cy1wZXItcGh5c2ljYWwtJWxlbmd0aFVuaXQlLCBz
byBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJyVyZXBsYWNlbWVudFVuaXRzJScg
b2YgYSBzY3JlZW4uIEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246ICIpKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQSSwgKEFTQ0lJTGl0
ZXJhbCgiZHBpIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBtZWRpYVZhbHVlRFBDTSwgKEFTQ0lJTGl0ZXJhbCgiZHBjbSIpKSk7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVuZ3RoVW5pdEluY2gsIChBU0NJSUxpdGVy
YWwoImluY2giKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGxlbmd0aFVuaXRDZW50aW1ldGVyLCAoQVNDSUlMaXRlcmFsKCJjZW50aW1ldGVyIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBtZWRpYVF1ZXJ5TWVzc2FnZShBU0NJSUxp
dGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBpbnN0ZWFkIG9mICclcmVwbGFjZW1l
bnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVuaXRzJScgbWVhbnMgZG90cy1wZXIt
Q1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNpY2FsLSVsZW5ndGhVbml0JSwgc28g
ZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICclcmVwbGFjZW1lbnRVbml0cyUnIG9m
IGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uOiAiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gbWVkaWFWYWx1ZURQSShBU0NJSUxpdGVyYWwoImRwaSIpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBtZWRpYVZhbHVlRFBDTShBU0NJSUxp
dGVyYWwoImRwY20iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbGVuZ3Ro
VW5pdEluY2goQVNDSUlMaXRlcmFsKCJpbmNoIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IGxlbmd0aFVuaXRDZW50aW1ldGVyKEFTQ0lJTGl0ZXJhbCgiY2VudGltZXRlciIp
KTsKIAogICAgIFN0cmluZyBtZXNzYWdlOwogICAgIGlmICh2YWx1ZS0+aXNEb3RzUGVySW5jaCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCBkMDU4ZTZk
ZWE0MDdiN2M5N2Q0YzNlYzc4MmIwMzQzMWUzZDZmMzZhLi5lNjNlNWM5ZmNlNTk2OGM2MTg1MDE2
MDZiMGIxMjlkMWVhMjk0NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAgICAg
fQogICAgIGlmIChtX3BhcnNlckNvbnRleHQubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgJiYgaXNT
dHJpY3RQYXJzZXJNb2RlKG1fcGFyc2VyQ29udGV4dC5tb2RlKSkgewogICAgICAgICAvLyBXb3Jr
IGFyb3VuZCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MzUwPi4K
LSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVk
aWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsIChBU0NJSUxpdGVyYWwoIi8qIEtIVE1MIGZpeCBz
dHlsZXNoZWV0ICovXG4vKiB3b3JrIGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXJzICov
XG4jY29sdW1uLWNvbnRlbnQgeyBtYXJnaW4tbGVmdDogMDsgfVxuXG4iKSkpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5
bGVTaGVldChBU0NJSUxpdGVyYWwoIi8qIEtIVE1MIGZpeCBzdHlsZXNoZWV0ICovXG4vKiB3b3Jr
IGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXJzICovXG4jY29sdW1uLWNvbnRlbnQgeyBt
YXJnaW4tbGVmdDogMDsgfVxuXG4iKSk7CiAgICAgICAgIC8vIFRoZXJlIGFyZSB0d28gdmFyaWFu
dHMgb2YgS0hUTUxGaXhlcy5jc3MuIE9uZSBpcyBlcXVhbCB0byBtZWRpYVdpa2lLSFRNTEZpeGVz
U3R5bGVTaGVldCwKICAgICAgICAgLy8gd2hpbGUgdGhlIG90aGVyIGxhY2tzIHRoZSBzZWNvbmQg
dHJhaWxpbmcgbmV3bGluZS4KICAgICAgICAgaWYgKGJhc2VVUkwoKS5zdHJpbmcoKS5lbmRzV2l0
aCgiL0tIVE1MRml4ZXMuY3NzIikgJiYgIXNoZWV0VGV4dC5pc051bGwoKSAmJiBtZWRpYVdpa2lL
SFRNTEZpeGVzU3R5bGVTaGVldC5zdGFydHNXaXRoKHNoZWV0VGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAppbmRleCA5YjE2YzZiYWM4YWIyYTlm
MzAwMTkxNjBlOGM5ODAwYWE5ODQxNjNlLi44ODQxNGZhNDk4MTk3MmMwODk4YmFjMDZmOGE4Yjc3
NWYxMTJkYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFz
aE1hcDxDb250YWluZXJOb2RlKiwgQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcio+IEFjY3Vt
dWxhdG9yTWFwOwogc3RhdGljIEFjY3VtdWxhdG9yTWFwJiBhY2N1bXVsYXRvck1hcCgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFjY3VtdWxhdG9yTWFwLCBtYXAsICgp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QWNjdW11bGF0b3JNYXA+IG1hcDsKICAgICBy
ZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApp
bmRleCBkOTIyNjE4ZTllNTVkYzIyZWUzNDY4NzZhYTNhNDI4ZWE0OWM2ZTFkLi43YTE4OGRhYzEz
NjVlNmRmMzEwODk1ODQ0ZmI2YWM5OGVmOGM0ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0
ZWRTVkcxMEZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNp
b24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQg
PSBmYWxzZTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwg
c3ZnRmVhdHVyZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmVhdHVyZVNldD4g
c3ZnRmVhdHVyZXM7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewogI2lmIEVOQUJMRShGSUxURVJT
KSAmJiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJz
dmciKTsKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFNWRzExRmVh
dHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0LCBzdmdGZWF0dXJl
cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGZWF0dXJlU2V0PiBzdmdGZWF0dXJl
czsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CiAgICAgICAgIC8vIFNhZGx5LCB3ZSBjYW5ub3Qg
Y2xhaW0gdG8gaW1wbGVtZW50IGFueSBvZiB0aGUgU1ZHIDEuMSBnZW5lcmljIGZlYXR1cmUgc2V0
cwogICAgICAgICAvLyBsYWNrIG9mIEZvbnQgYW5kIEZpbHRlciBzdXBwb3J0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggNWI1M2FhMzhhYzk5OTU2Nzg4MGYzM2U2NGFmMzc3YzgyNzFlNWQx
Ny4uYTY2MjA1ZTQyYTk2MTAxZDgyODUzOTIzNGM3MmZiODFjZTM5OWE3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xMTUwLDkgKzExNTAsOSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IERv
Y3VtZW50OjpjcmVhdGVFbGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
CiAKIFN0cmluZyBEb2N1bWVudDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9hZGluZywgKEFTQ0lJTGl0ZXJh
bCgibG9hZGluZyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgaW50ZXJhY3RpdmUsIChBU0NJSUxpdGVyYWwoImludGVyYWN0aXZlIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb21wbGV0ZSwg
KEFTQ0lJTGl0ZXJhbCgiY29tcGxldGUiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBTdHJpbmc+IGxvYWRpbmcoQVNDSUlMaXRlcmFsKCJsb2FkaW5nIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGludGVyYWN0aXZlKEFTQ0lJTGl0ZXJhbCgi
aW50ZXJhY3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4g
Y29tcGxldGUoQVNDSUlMaXRlcmFsKCJjb21wbGV0ZSIpKTsKIAogICAgIHN3aXRjaCAobV9yZWFk
eVN0YXRlKSB7CiAgICAgY2FzZSBMb2FkaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg3
MTdlYzFmZTlkNGFjZjQzNmNmMTUzMzM2N2ExZjMzOTlhYTVhN2YuLmQ4YzVkYTIyOTRmY2QyYmE0
N2RiNTJkNjU3NzY1MzdjNjFmYWRiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1NDYs
MjEgKzI1NDYsMjEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJraXRSZWdpb25P
dmVyc2V0KCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgdW5kZWZpbmVkU3RhdGUsICgidW5kZWZpbmVkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHVuZGVmaW5lZFN0YXRlKCJ1bmRlZmluZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBpZiAoIWRvY3VtZW50KCkuY3NzUmVnaW9uc0VuYWJsZWQoKSB8
fCAhcmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0
YXRlOwogCiAgICAgc3dpdGNoIChyZWdpb25PdmVyc2V0U3RhdGUoKSkgewogICAgIGNhc2UgUmVn
aW9uRml0OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGZpdFN0YXRlLCAoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZml0U3Rh
dGUoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBy
ZXR1cm4gZml0U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uRW1wdHk6IHsKLSAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZW1wdHlTdGF0ZSwg
KCJlbXB0eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZW1wdHlTdGF0ZSgiZW1wdHkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGVtcHR5
U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewotICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAoIm92
ZXJzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG92ZXJmbG93U3RhdGUoIm92ZXJzZXQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIG92
ZXJmbG93U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCmluZGV4IDA4NTQxYjBiZDdiYTEyOTZhZjVhYjgz
MzkyMGFjMjg1NWYxM2I0YWYuLjJjM2JlNjg4MmYwODE5YzFiZjVjNzg4MjQxMGYyMDUwY2I5NTQ4
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmbmRlZiBOREVCVUcKIHN0YXRpYyBNdXRleCYg
YWN0aXZlSXRlcmF0b3JDb3VudE11dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11
dGV4PiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuY3BwCmluZGV4IDI2NTE3OGNmNmUzZTNmMTA5NzFhMDRmOWU4ZjY1NDEwNTYzMWQ3YmQuLjRl
MGE2NzU2NDJjMTUzNjFlY2I3NDg2ZWNkZGNhNzFmNTI3MzUwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmZpcmVF
dmVudExpc3RlbmVycyhFdmVudCogZXZlbnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZlbnRMaXN0
CiAKIGNvbnN0IEV2ZW50TGlzdGVuZXJWZWN0b3ImIEV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3Rl
bmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoRXZlbnRMaXN0ZW5lclZlY3RvciwgZW1wdHlWZWN0b3IsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RXZlbnRMaXN0ZW5lclZlY3Rvcj4gZW1wdHlWZWN0
b3I7CiAKICAgICBFdmVudFRhcmdldERhdGEqIGQgPSBldmVudFRhcmdldERhdGEoKTsKICAgICBp
ZiAoIWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCmlu
ZGV4IDVjMzYzODQyYjY5MTQ2NTllMTM0MGEzODE2N2FlN2NjY2M2Y2ZmMmEuLjEzM2Q5ZDVmNjE4
NDZhODE0MzEzZjk5ZDc1OGI2Mzk0ZjBmY2ExNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9J
bmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBJbmxpbmVT
dHlsZVNoZWV0T3duZXI6OmNsZWFyU2hlZXQoKQogCiBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTQ29u
dGVudFR5cGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNz
c0NvbnRlbnRUeXBlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNz
c0NvbnRlbnRUeXBlKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
cmV0dXJuIGVsZW1lbnQuaXNIVE1MRWxlbWVudCgpID8gZXF1YWxJZ25vcmluZ0Nhc2UodHlwZSwg
Y3NzQ29udGVudFR5cGUpIDogdHlwZSA9PSBjc3NDb250ZW50VHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvbk9ic2VydmVyLmNwcAppbmRleCA3NzQ1OGY4ZTY5NjUzNTQ3NmViYmQ4NDc4MTVl
NzdhY2YzNDQwNTE1Li5iNmMyZDBhOWUyNjBmYWQ1NzU1MjMxNWJmZDVjYTFhZmJmMzI4ZWU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0xMzgsMTMgKzEzOCwx
MyBAQCB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPE11dGF0aW9uT2JzZXJ2ZXI+PiBNdXRhdGlvbk9i
c2VydmVyU2V0OwogCiBzdGF0aWMgTXV0YXRpb25PYnNlcnZlclNldCYgYWN0aXZlTXV0YXRpb25P
YnNlcnZlcnMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlv
bk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TXV0YXRpb25PYnNlcnZlclNldD4gYWN0aXZlT2JzZXJ2ZXJzOwogICAgIHJldHVybiBh
Y3RpdmVPYnNlcnZlcnM7CiB9CiAKIHN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBzdXNwZW5k
ZWRNdXRhdGlvbk9ic2VydmVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIHN1c3BlbmRlZE9ic2VydmVycywgKCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRhdGlvbk9ic2VydmVyU2V0PiBzdXNwZW5kZWRPYnNlcnZl
cnM7CiAgICAgcmV0dXJuIHN1c3BlbmRlZE9ic2VydmVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvblJlY29yZC5jcHAKaW5kZXggNWE0N2ZjMDAxYzE1YTI4ZTk1OGRlNmYyNDVjYjFlOTNh
NzIzODA3MS4uYTlkZGJmNzQ1NGNmMzFlMmUwZGQ2NDY0MTM1Mjk2YjljNTMxYWZmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCkBAIC0xNDUsMTkgKzE0NSwxOSBAQCBwcml2
YXRlOgogCiBjb25zdCBBdG9taWNTdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRMaXN0
LCAoImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBjaGlsZExpc3QoImNoaWxkTGlz
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGls
ZExpc3Q7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXR0
cmlidXRlcywgKCJhdHRyaWJ1dGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF0dHJpYnV0ZXMo
ImF0dHJpYnV0ZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gYXR0cmlidXRlczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBDaGFyYWN0ZXJEYXRh
UmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBjaGFyYWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gY2hhcmFjdGVyRGF0YSgiY2hhcmFjdGVyRGF0YSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggZjE3Nzc3OWIxMDdkZWI2NGY0OTA3OWEzOGQzMzU4MDY1NzhmYWZlMy4u
NjA2ZmQ0ZjE5NzMwYzg1YTliMmUxMTRmYzNjYzdlOGFiMjVmZjM2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMTg1Miw3ICsxODUyLDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCBPd25QdHI8RXZl
bnRUYXJnZXREYXRhPj4gRXZlbnRUYXJnZXREYXRhTWFwOwogCiBzdGF0aWMgRXZlbnRUYXJnZXRE
YXRhTWFwJiBldmVudFRhcmdldERhdGFNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChFdmVudFRhcmdldERhdGFNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxFdmVudFRhcmdldERhdGFNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKaW5kZXggM2I0YTk3OWRmYmZhMWNkNzBm
ZDAwMjgxNTJmMzU1ZjQ2MTU2ZTRlMC4uZDkyNmU2ZDdlYjg5MjFmMzU2MDkxNzljYzA5YjgyNjRm
ZmI0OThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcApAQCAtMzcsMTQgKzM3
LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgcHNldWRv
RWxlbWVudFRhZ05hbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChR
dWFsaWZpZWROYW1lLCBuYW1lLCAobnVsbEF0b20sICI8cHNldWRvPiIsIG51bGxBdG9tKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IG5hbWUobnVsbEF0b20sICI8
cHNldWRvPiIsIG51bGxBdG9tKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogU3RyaW5nIFBzZXVk
b0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKFBzZXVkb0lkIHBzZXVkb0lkKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGFmdGVy
LCAoQVNDSUlMaXRlcmFsKCI6OmFmdGVyIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBiZWZvcmUsIChBU0NJSUxpdGVyYWwoIjo6YmVmb3JlIikp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBhZnRlcihBU0NJSUxp
dGVyYWwoIjo6YWZ0ZXIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gYmVmb3JlKEFTQ0lJTGl0ZXJhbCgiOjpiZWZvcmUiKSk7CiAgICAgc3dpdGNoIChwc2V1ZG9J
ZCkgewogICAgIGNhc2UgQUZURVI6CiAgICAgICAgIHJldHVybiBhZnRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcAppbmRleCBmZDc5YmRhYWRhMzgyNTE3M2I4NzhjMDg5ODQyNDg4
YzUzOTIyOGNmLi5kYmEwNDJkZmIwNGU2OWQxMDVmODQwNzg1YWFiNTMxYzVkMGE4Mzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBR
TmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yIHsKIAogc3RhdGljIGlubGluZSBRTmFtZVNldCYgcXVh
bGlmaWVkTmFtZUNhY2hlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
UU5hbWVTZXQsIG5hbWVDYWNoZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRTmFt
ZVNldD4gbmFtZUNhY2hlOwogICAgIHJldHVybiBuYW1lQ2FjaGU7CiB9CiAKQEAgLTExNSw3ICsx
MTUsNyBAQCB2b2lkIFF1YWxpZmllZE5hbWU6OmluaXQoKQogCiBjb25zdCBRdWFsaWZpZWROYW1l
JiBudWxsUU5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFs
aWZpZWROYW1lLCBudWxsTmFtZSwgKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gbnVsbE5hbWUobnVsbEF0b20s
IG51bGxBdG9tLCBudWxsQXRvbSk7CiAgICAgcmV0dXJuIG51bGxOYW1lOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMjA0N2FlMzg5OWM0YWU5ODYyNDE1YzQ5NmU3
MzYxNjhkY2UzOTc2Yi4uMDNkOWEzZTJkZjgzZDUxMzZlYTNmZmNlNWFhY2EzYTgwNzQwZjljYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHN0
YXRpYyBib29sIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKGNvbnN0IFN0cmlu
ZyYgbGFuZ3VhZ2UpCiAKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBub3QgSFRNTDUg
Y29tcGxpYW50LiBUaGVzZSBiZWxvbmcgaW4gdGhlIE1JTUUgcmVnaXN0cnkgYXMgInRleHQvamF2
YXNjcmlwdDx2ZXJzaW9uPiIgZW50cmllcy4KICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBD
YXNlRm9sZGluZ0hhc2g+IExhbmd1YWdlU2V0OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChMYW5ndWFnZVNldCwgbGFuZ3VhZ2VzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPExhbmd1YWdlU2V0PiBsYW5ndWFnZXM7CiAgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiamF2YXNjcmlwdCIpOwogICAgICAgICBsYW5n
dWFnZXMuYWRkKCJqYXZhc2NyaXB0Iik7CkBAIC0zNDYsNyArMzQ2LDcgQEAgdm9pZCBTY3JpcHRF
bGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAg
ICYmICFtX2NhY2hlZFNjcmlwdC0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKG1fZWxlbWVudC5k
b2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpKSB7CiAKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2
ZW50KCk7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNv
bnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVu
aWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVy
YWwoIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LiIpKTsKICAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNv
bnNvbGVNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHls
ZWRFbGVtZW50LmNwcAppbmRleCBlMzU3YTUzZDk0ZDA4YTIxNmZhMWEwNzU4YmQ5YmFmZTRiYmJm
MDM1Li4zNjdmMjNhMTIxM2M5ZDQ2M2QxYWUwOGZhZGQ2ZGE1NzQwOWVkOTdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBib29sIG9w
ZXJhdG9yIT0oY29uc3QgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkmIGEsIGNvbnN0IFBy
ZXNlbnRhdGlvCiAKIHN0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSYgcHJlc2VudGF0
aW9uQXR0cmlidXRlQ2FjaGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGU+IGNhY2hlOwogICAgIHJldHVy
biBjYWNoZTsKIH0KIApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAKIHN0YXRpYyBQcmVz
ZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXImIHByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hl
Q2xlYW5lcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRh
dGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lciwgY2xlYW5lciwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXI+IGNsZWFuZXI7CiAg
ICAgcmV0dXJuIGNsZWFuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0
eWxlQ29tbWFuZC5jcHAKaW5kZXggZjA3ZDU0MWUwMzQ5NTZhMzk4ZjI2ZGYzOWZlMzkyOWJhY2U4
OTIzYS4uOTIyNzIwYjA4MGRhOTI1ZjNkNTQ5Y2FlYmI1NmE0NDk2NjIzMjMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgc3RhdGljIGludCB0b0lkZW50aWZpZXIoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUpCiAK
IHN0YXRpYyBTdHJpbmcmIHN0eWxlU3BhbkNsYXNzU3RyaW5nKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzdHlsZVNwYW5DbGFzc1N0cmluZywgKChBcHBs
ZVN0eWxlU3BhbkNsYXNzKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHN0
eWxlU3BhbkNsYXNzU3RyaW5nKChBcHBsZVN0eWxlU3BhbkNsYXNzKSk7CiAgICAgcmV0dXJuIHN0
eWxlU3BhbkNsYXNzU3RyaW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCmluZGV4IDE3MmI4NWMzYzc2MTZjZjQ3MmMxNTEyMzc5NTQyYjVkMWI3
YTcxMWUuLjg2OTc5ZjhlNDc1NWVhODhhYjY2MDA3ZDMzZTQ3YTU0MTU3MzZiNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0yODAsNyArMjgw
LDcgQEAgYm9vbCBNYXJrdXBBY2N1bXVsYXRvcjo6c2hvdWxkQWRkTmFtZXNwYWNlRWxlbWVudChj
b25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIGlmIChwcmVmaXguaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gIWVsZW1lbnQuaGFzQXR0cmlidXRlKHhtbG5zQXRvbSk7CiAKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB4bWxuc1dpdGhDb2xvbiwgKEFTQ0lJTGl0
ZXJhbCgieG1sbnM6IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB4bWxu
c1dpdGhDb2xvbihBU0NJSUxpdGVyYWwoInhtbG5zOiIpKTsKICAgICByZXR1cm4gIWVsZW1lbnQu
aGFzQXR0cmlidXRlKHhtbG5zV2l0aENvbG9uICsgcHJlZml4KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCA2YzA2
MmI1NWE2MzY3ZmM5OTBkMDM4NTRhYjY5OTliODk4ZjMwODgxLi5hOWUwYzgzMmQ0MTZiNWIzNGEz
NmM3YjJjOWM1ODYxOTc2Mzg2MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMTAyLDE0ICsxMDIsMTQgQEAgcHJpdmF0
ZToKIAogc3RhdGljIGJvb2wgaXNJbnRlcmNoYW5nZU5ld2xpbmVOb2RlKGNvbnN0IE5vZGUgKm5v
ZGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW50ZXJj
aGFuZ2VOZXdsaW5lQ2xhc3NTdHJpbmcsIChBcHBsZUludGVyY2hhbmdlTmV3bGluZSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3Ry
aW5nKEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lKTsKICAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5o
YXNUYWdOYW1lKGJyVGFnKSAmJiAKICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVu
dCAqPihub2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gaW50ZXJjaGFuZ2VOZXdsaW5l
Q2xhc3NTdHJpbmc7CiB9CiAKIHN0YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VDb252ZXJ0ZWRTcGFj
ZVNwYW4oY29uc3QgTm9kZSAqbm9kZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBjb252ZXJ0ZWRTcGFjZVNwYW5DbGFzc1N0cmluZywgKEFwcGxlQ29udmVy
dGVkU3BhY2UpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb252ZXJ0ZWRT
cGFjZVNwYW5DbGFzc1N0cmluZyhBcHBsZUNvbnZlcnRlZFNwYWNlKTsKICAgICByZXR1cm4gbm9k
ZS0+aXNIVE1MRWxlbWVudCgpICYmIAogICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBIVE1M
RWxlbWVudCAqPihub2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gY29udmVydGVkU3Bh
Y2VTcGFuQ2xhc3NTdHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
CmluZGV4IDU1NWQ3ZWVjMDcxOWJmZTAzODQxM2I5MWIxNDExMDFhYmEwN2E0ZWMuLmQ1N2ViZTdi
YWI4YzljYTkxYjY5YjViMDZkZThmMGYyNDRjOTA2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuY3BwCkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBpc1RhYmxlU3RydWN0dXJl
Tm9kZShjb25zdCBOb2RlICpub2RlKQogCiBjb25zdCBTdHJpbmcmIG5vbkJyZWFraW5nU3BhY2VT
dHJpbmcoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5v
bkJyZWFraW5nU3BhY2VTdHJpbmcsICgmbm9CcmVha1NwYWNlLCAxKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gbm9uQnJlYWtpbmdTcGFjZVN0cmluZygmbm9CcmVha1NwYWNl
LCAxKTsKICAgICByZXR1cm4gbm9uQnJlYWtpbmdTcGFjZVN0cmluZzsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCmluZGV4IDdkNmE3ZjZiZGJlMGFlNTU1Y2E5NDViZDUyNTExYzJhMjc4
NzIwZmIuLjcxNWUwZThlZGYyZTM5M2IzMjNlYzA5YjE5MzllYjM2MTIwZTdjN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTIxMiw4ICsyMTIsOCBAQCB2b2lkIFN0eWxlZE1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKFN0cmluZ0J1aWxkZXImIG91dCwg
U3R5bGVQcgogCiBjb25zdCBTdHJpbmcmIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpzdHlsZU5v
ZGVDbG9zZVRhZyhib29sIGlzQmxvY2spCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2Q2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvZGl2PiIpKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVT
cGFuQ2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBTdHJpbmc+IGRpdkNsb3NlKEFTQ0lJTGl0ZXJhbCgiPC9kaXY+IikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHN0eWxlU3BhbkNsb3NlKEFT
Q0lJTGl0ZXJhbCgiPC9zcGFuPiIpKTsKICAgICByZXR1cm4gaXNCbG9jayA/IGRpdkNsb3NlIDog
c3R5bGVTcGFuQ2xvc2U7CiB9CiAKQEAgLTU1OCw3ICs1NTgsNyBAQCBzdGF0aWMgTm9kZSogaGln
aGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgRUFubm90YXRlRm9y
SW50ZXJjaAogc3RhdGljIFN0cmluZyBjcmVhdGVNYXJrdXBJbnRlcm5hbChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgUmFuZ2UmIHVwZGF0ZWRSYW5nZSwgVmVj
dG9yPE5vZGUqPiogbm9kZXMsCiAgICAgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5u
b3RhdGUsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcywgRUFic29sdXRlVVJMcyBzaG91bGRS
ZXNvbHZlVVJMcykKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBpbnRlcmNoYW5nZU5ld2xpbmVTdHJpbmcsIChBU0NJSUxpdGVyYWwoIjxiciBjbGFz
cz1cIiIgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUgIlwiPiIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gaW50ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiPGJyIGNsYXNzPVwiIiBBcHBsZUludGVyY2hhbmdlTmV3bGluZSAiXCI+IikpOwogCiAg
ICAgYm9vbCBjb2xsYXBzZWQgPSB1cGRhdGVkUmFuZ2UuY29sbGFwc2VkKEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgIGlmIChjb2xsYXBzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCAw
MWQzMzBlYjYwNjk0NmY5ZWUxYmUyZWE1NWMyMGVlNTQ0NjU4NmQzLi44OTc2MDM1YTk0MGY1MjI1
ODQ1OTU3YTMyODljMTBjYWRjZTBlYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgdm9pZCBCbG9iVVJMUmVnaXN0cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgVVJM
JiB1cmwpCiAKIFVSTFJlZ2lzdHJ5JiBCbG9iVVJMUmVnaXN0cnk6OnJlZ2lzdHJ5KCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQmxvYlVSTFJlZ2lzdHJ5LCBpbnN0YW5j
ZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxCbG9iVVJMUmVnaXN0cnk+IGluc3Rh
bmNlOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRl
eCBjNzNkOWIwNDYxY2I2Zjc4ODhiNDg3MTJlNGU0NjJhNDA3YjBiZTIzLi4wZTNkMWVkMDRjN2Vl
NDA0M2YyMGQzYjkxMjlkMTUzYzdmYTliODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAt
NjIsNyArNjIsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpo
YW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFsdWVDb250YWluZXJQc2V1ZG8s
ICgiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZh
bHVlQ29udGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1
bWVudCgpKTsKICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNl
dWRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGRhMDdiZTA0NDdl
NTgzOWU5YzU5YzBlZjNkNWNmOWI4MmEwZWE0ZDAuLjA4ZTRmZTExYzI0OTJmOTIyYWFlOTc3MTU1
ODljMDJiYTc5OGJjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
NzksNyArNzksNyBAQCBVcGxvYWRCdXR0b25FbGVtZW50OjpVcGxvYWRCdXR0b25FbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1maWxlLXVwbG9hZC1i
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtZmlsZS11cGxv
YWQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1D
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDQ1MTAwZDFlMDc2NGVkNjU1MmYyMTdlMGZhOThhNzRlZjIzMDkyMGUuLmQ3ZDQ4MGQwMDk0
YWI3ZTQ4ZTkyMDE0YTA4Y2RjNzcwMjY5NmI5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNv
bnRyb2xsZXIuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgQXRvbWljU3RyaW5nIEZvcm1LZXlHZW5l
cmF0b3I6OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY28K
IHsKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBvd25lckZvcm1Gb3JTdGF0ZShjb250cm9s
KTsKICAgICBpZiAoIWZvcm0pIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgZm9ybUtleUZvck5vT3duZXIsICgiTm8gb3duZXIiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGZvcm1LZXlGb3JOb093bmVyKCJObyBvd25lciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5v
T3duZXI7CiAgICAgfQogICAgIEZvcm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zv
cm1Ub0tleU1hcC5maW5kKGZvcm0pOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBTdHJpbmcg
Zm9ybVN0YXRlU2lnbmF0dXJlKCkKICAgICAvLyBJbiB0aGUgbGVnYWN5IHZlcnNpb24gb2Ygc2Vy
aWFsaXplZCBzdGF0ZSwgdGhlIGZpcnN0IGl0ZW0gd2FzIGEgbmFtZQogICAgIC8vIGF0dHJpYnV0
ZSB2YWx1ZSBvZiBhIGZvcm0gY29udHJvbC4gVGhlIGZvbGxvd2luZyBzdHJpbmcgbGl0ZXJhbCBz
aG91bGQKICAgICAvLyBjb250YWluIHNvbWUgY2hhcmFjdGVycyB3aGljaCBhcmUgcmFyZWx5IHVz
ZWQgZm9yIG5hbWUgYXR0cmlidXRlIHZhbHVlcy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzaWduYXR1cmUsIChBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQg
c2VyaWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxyPSYiKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNpZ25hdHVyZShBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJL
aXQgc2VyaWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxyPSYiKSk7CiAgICAgcmV0dXJu
IHNpZ25hdHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAppbmRleCBjMjk0OWEyMDhmMDVlNWEzZDVkYjc2ZmRhNjY2ZmFkOGU2YTA3MjAwLi40MWEzNTc1
YTVjZmI5Yjc3NmEyNDUzZGQ4ZGMwMjdhMTk5MzkwZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIHR5cGVkZWYgSGFzaE1h
cDxjb25zdCBIVE1MQW5jaG9yRWxlbWVudCosIFJlZlB0cjxFbGVtZW50Pj4gUm9vdEVkaXRhYmxl
RWxlbWVudE1hCiAKIHN0YXRpYyBSb290RWRpdGFibGVFbGVtZW50TWFwJiByb290RWRpdGFibGVF
bGVtZW50TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUm9vdEVk
aXRhYmxlRWxlbWVudE1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJv
b3RFZGl0YWJsZUVsZW1lbnRNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDk0N2U3MWU5MDc4ZjhiMjU5
OGQ0ZTljNDJhY2M2ODhkYjJhMzFiZmIuLjRhNjMwMmIzYmYyM2MyYWVhMDQzNDM5ODdjMmNiMTE3
N2M3MGQwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBA
IC02NiwxNSArNjYsMTUgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAg
ICBjYXNlIFNVQk1JVDogewotICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VibWl0LCAoInN1Ym1pdCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1Ym1pdCgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gc3VibWl0OwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQlVUVE9OOiB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBidXR0b24sICgiYnV0dG9uIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gYnV0dG9uKCJidXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiBidXR0b247CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBSRVNFVDogewotICAgICAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgicmVzZXQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiByZXNldDsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAppbmRleCAyM2QyMTkzOTgwYmNlNmQ1OTViMzRiYTlmNjYwNDQ5NTE2Nzc2NTM4Li43NTBk
Yzk2OTQ5NGU5NzMxN2RjOTQ2N2VjODBjOGM0Y2YwODQ5YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnlRdWVy
eVNlbGVjdG9yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzZWxlY3RvciwgKCJzdW1tYXJ5OmZpcnN0LW9mLXR5cGUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gc2VsZWN0b3IoInN1bW1hcnk6Zmlyc3Qtb2YtdHlwZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzZWxlY3RvcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IDY4MWU1NTMwNDMy
NmNhNjg3OTYwZjRlYTBhM2MxMDNjNDE1OTdmZGEuLjU3NjUxY2EzMzVmMDEzN2E3MzYzYjI0ODdk
ODUzY2RjMjY5MWE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVt
ZW50LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6c3Vw
cG9ydHNGb2N1cygpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEZpZWxkU2V0RWxl
bWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmaWVsZHNldCwgKCJmaWVsZHNldCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmaWVsZHNldCgiZmllbGRzZXQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZmllbGRzZXQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggNzE0YmRiMmUxYmQ4
Y2FiM2E4ZjViZTFiY2M3MWNkMTQzMjQ3YmQ4NC4uZTA5NGY1ZTRjMGFjZTdhNTdmMjMxMTM1Mjgz
NzI1YmQ1MTJiNzBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5j
cHAKQEAgLTUzLDcgKzUzLDcgQEAgcHJvdGVjdGVkOgogICAgIEtleWdlblNlbGVjdEVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IEhUTUxTZWxlY3RFbGVtZW50KHNlbGVjdFRh
ZywgZG9jdW1lbnQsIDApCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWtleWdlbi1zZWxlY3Qi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgc2V0UHNldWRv
KHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIEhUTUxLZXlnZW5F
bGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29s
KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5
cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGtleWdlbiwgKCJrZXlnZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4ga2V5Z2VuKCJrZXlnZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKaW5kZXggYjg1MTE0NWYwOGY3MTgyMjg0NWEzOGI1NDE2MDM2YTlkMzY3YTU1NC4uOWVj
MmVkNjY2YzA1NjdkZjBiMTQxMzY0NzZkM2I0MTRhY2MxZThmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBzdGF0aWMgTGlua0V2ZW50U2VuZGVyJiBsaW5rTG9hZEV2ZW50U2VuZGVy
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGlua0V2ZW50U2VuZGVy
LCBzaGFyZWRMb2FkRXZlbnRTZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50KSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPExpbmtFdmVudFNlbmRlcj4gc2hhcmVkTG9hZEV2ZW50U2Vu
ZGVyKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpOwogICAgIHJldHVybiBzaGFyZWRMb2FkRXZlbnRT
ZW5kZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IGNiMTE3NWE5MDFkZDc0MjE3ZDM3ZDMxMmM0Zjk3YTQ2MDcyY2NkNjAuLjUwNzY1MWYxOTc2NWNi
NDlhZWVhYjlmMDVmZGRiZDgyMjNmYjNmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiB0eXBlZGVmIEhhc2hNYXA8RG9jdW1lbnQqLCBIYXNoU2V0PEhUTUxNZWRpYUVsZW1lbnQq
Pj4gRG9jdW1lbnRFbGVtZW50U2V0TWFwOwogc3RhdGljIERvY3VtZW50RWxlbWVudFNldE1hcCYg
ZG9jdW1lbnRUb0VsZW1lbnRTZXRNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChEb2N1bWVudEVsZW1lbnRTZXRNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxEb2N1bWVudEVsZW1lbnRTZXRNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCBm
MmJmYjRjZTEzYzQxNjBlMjU4MTA2MjFjZGMwZDk1NjZkMDU0NTYzLi4wZWE2OGU2OTFhNTliNjdh
OWEwODBjN2E4OTViMDM3MDQ3Zjg5ZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBIVE1MT3B0R3JvdXBFbGVt
ZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9wdEdy
b3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcHRncm91cCwgKCJvcHRncm91
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb3B0Z3JvdXA7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggY2UzODFi
NjA4NDM1YWJkYTkzZmVmZWJmYjAyMjM5ZDY2MTkyMmNjYS4uNzBmMWFhOTkzZjBlMjdkMTM2ZTJh
YzU4OWFkMmZlODA2YzllOGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxl
bWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4g
SFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBvdXRwdXQsICgib3V0cHV0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG91dHB1
dCgib3V0cHV0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG91dHB1dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKaW5kZXggZTYzMWFlMmIxODMxOWQzOGRiOGMwYmYxNjc1ZTU3NjM0NjBjNjZi
Ni4uNTcwYzIyMjViNjhjMjNlOGUxZTEwNWMyMTA3ODE1OTM3NjkwNWU2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3
IEBAIHN0YXRpYyBjb25zdCBhdXRvIHJlbW92ZVNuYXBzaG90VGltZXJEZWxheSA9IHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgeyAxNTAwIH07CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgdGl0bGVU
ZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBtaW1lVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01hcCwgbWltZVR5cGVUb0xh
YmVsVGl0bGVNYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWltZVR5cGVUb0xv
Y2FsaXplZFN0cmluZ01hcD4gbWltZVR5cGVUb0xhYmVsVGl0bGVNYXA7CiAgICAgU3RyaW5nIHRp
dGxlVGV4dCA9IG1pbWVUeXBlVG9MYWJlbFRpdGxlTWFwLmdldChtaW1lVHlwZSk7CiAgICAgaWYg
KCF0aXRsZVRleHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdGl0bGVUZXh0OwpAQCAtODYs
NyArODYsNyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nIHRpdGxlVGV4dChQYWdlKiBwYWdlLCBTdHJp
bmcgbWltZVR5cGUpCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgc3VidGl0bGVUZXh0KFBhZ2UqIHBh
Z2UsIFN0cmluZyBtaW1lVHlwZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTWltZVR5cGVUb0xvY2FsaXplZFN0cmluZ01hcCwgbWltZVR5cGVUb0xhYmVsU3VidGl0bGVN
YXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWltZVR5cGVUb0xvY2FsaXplZFN0
cmluZ01hcD4gbWltZVR5cGVUb0xhYmVsU3VidGl0bGVNYXA7CiAgICAgU3RyaW5nIHN1YnRpdGxl
VGV4dCA9IG1pbWVUeXBlVG9MYWJlbFN1YnRpdGxlTWFwLmdldChtaW1lVHlwZSk7CiAgICAgaWYg
KCFzdWJ0aXRsZVRleHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gc3VidGl0bGVUZXh0OwpA
QCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNl
ckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogCiBib29sIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheShOb2RlKiBub2RlKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdG9yLCAoIi5zbmFw
c2hvdC1vdmVybGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNlbGVjdG9yKCIuc25hcHNob3Qt
b3ZlcmxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZlB0
cjxFbGVtZW50PiBzbmFwc2hvdExhYmVsID0gZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLnF1
ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIHJldHVybiBu
b2RlICYmIHNuYXBzaG90TGFiZWwgJiYgKG5vZGUgPT0gc25hcHNob3RMYWJlbC5nZXQoKSB8fCBu
b2RlLT5pc0Rlc2NlbmRhbnRPZihzbmFwc2hvdExhYmVsLmdldCgpKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDg2N2RkMjZmZGNjZDRjMmM1NmJl
ODFkOWY2NTIxMTJmZDA5NGQ2MGIuLmU3OWI3MzcyYzgzYjg3YzYwOGMwMDU5MzUxZDMzZTU1MmZh
MGZmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC05
Niw4ICs5Niw4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxl
OjpDaGFuZ2Ugc3R5bGVDaGFuZ2UpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2VsZWN0TXVsdGlwbGUsICgic2VsZWN0
LW11bHRpcGxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNlbGVjdE9u
ZSwgKCJzZWxlY3Qtb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHNlbGVjdE11bHRp
cGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzZWxlY3RP
bmUoInNlbGVjdC1vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbV9tdWx0aXBsZSA/IHNlbGVjdE11bHRpcGxlIDogc2VsZWN0T25lOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCBjNTllZjE2ODVkNmJi
YzZlNWM5N2ViN2NiMWE3ODUxZTI3NzE3YTY5Li5kM2ZlMDA4ODRkMDFhMGI5M2VhYzAzYThiMjlj
YmJhNjVhM2UzNzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIFN0
eWxlRXZlbnRTZW5kZXImIHN0eWxlTG9hZEV2ZW50U2VuZGVyKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3R5bGVFdmVudFNlbmRlciwgc2hhcmVkTG9hZEV2ZW50U2Vu
ZGVyLCAoZXZlbnROYW1lcygpLmxvYWRFdmVudCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHlsZUV2ZW50U2VuZGVyPiBzaGFyZWRMb2FkRXZlbnRTZW5kZXIoZXZlbnROYW1lcygpLmxv
YWRFdmVudCk7CiAgICAgcmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRlcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggZjQ2YjljZGVmNzY4
ZGExYzEwM2FmNmM2ZDU0NTMyNGY5NTgzMmU0Mi4uMTI2ZTEyOTQ2NDlhZTkyOGVhYjI5NDE5YTc4
NzhmZjkyMTAwMTM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpkaWRB
ZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0ZXh0
YXJlYSwgKCJ0ZXh0YXJlYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiB0ZXh0YXJlYSgi
dGV4dGFyZWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gdGV4dGFyZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNWVlYTIxZGFlOTdkOTBiZjY1MGI1YWQ2MWMyMGU4
NzI4MjQ2YjNmMC4uZDY0ZWUyNTRkN2YxMWZiOWZkMzY0MWM1YzNkNWZiZjRmYTZjNzYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTM3NSw5ICszNzUsOSBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNv
bXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBk
aXJlY3Rpb25TdHJpbmcoVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBu
b25lLCAoIm5vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yd2Fy
ZCwgKCJmb3J3YXJkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGJhY2t3
YXJkLCAoImJhY2t3YXJkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IG5vbmUoIm5vbmUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBmb3J3YXJkKCJmb3J3YXJkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gYmFja3dhcmQoImJhY2t3YXJkIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewogICAgIGNhc2Ug
U2VsZWN0aW9uSGFzTm9EaXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
Y3BwCmluZGV4IGQwZTI1YmUxOTA3ZTNjOTJlYWZlMzY4MzZkODgxZDYyYmY4Y2I1MDguLmU0ODg0
MWI4MmMyNTg4YTlhMjFlNTU4ZGY5ZmQzOGJiNmU0OTkzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC02NCw4ICs2NCw4IEBAIGJvb2wgSW1hZ2VJbnB1dFR5cGU6
OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RpbmcsIGJvb2wpIGNvbnN0CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGRvdFhTdHJpbmcsIChBU0NJSUxpdGVyYWwoIi54IikpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3RZU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCIueSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZG90WFN0cmlu
ZyhBU0NJSUxpdGVyYWwoIi54IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGRvdFlTdHJpbmcoQVNDSUlMaXRlcmFsKCIueSIpKTsKICAgICBlbmNvZGluZy5hcHBlbmREYXRh
KG5hbWUgKyBkb3RYU3RyaW5nLCBtX2NsaWNrTG9jYXRpb24ueCgpKTsKICAgICBlbmNvZGluZy5h
cHBlbmREYXRhKG5hbWUgKyBkb3RZU3RyaW5nLCBtX2NsaWNrTG9jYXRpb24ueSgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcAppbmRleCBhYzA4OTZhMDZhNDdlMWE4ODA4
Y2Q4OWZkZjZhM2M0MzM2MDAzZDMyLi40ODkwM2ZjYzBiZDA1MzRiY2VmMTJlMTcxMDA0M2VmZTdk
MDk2OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcApAQCAtMzEsMTM5
ICszMSwxMzkgQEAgbmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBidXR0b24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGNoZWNrYm94KCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImNoZWNrYm94Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgY29sb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiY29sb3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgiY29s
b3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBkYXRlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRhdGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGV0aW1l
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoImRhdGV0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0ZXRpbWVsb2NhbCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJkYXRldGltZS1sb2Nh
bCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIGVtYWlsKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImVtYWlsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IG5hbWUoImVtYWlsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZmlsZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJmaWxlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImZpbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBoaWRkZW4oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgiaGlkZGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoImhpZGRl
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1l
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGltYWdlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImltYWdlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgbW9udGgo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgibW9udGgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgibW9udGgiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBudW1iZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgibnVtYmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IG5hbWUoIm51bWJlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHBhc3N3b3JkKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
InBhc3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgcmFkaW8oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmFkaW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbmFtZSgicmFkaW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiByYW5nZSgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJyYW5n
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIHJlc2V0KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoInJlc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInJl
c2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgc2VhcmNoKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInNlYXJjaCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBuYW1lKCJzZWFyY2giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBz
dWJtaXQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInN1Ym1pdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHRlbGVwaG9uZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ0ZWwiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gbmFtZSgidGVsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJ0ZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoInRleHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiB0aW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoInRpbWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbmFtZSgi
dGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIHVybCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ1cmwiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gbmFtZSgidXJsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgd2VlaygpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJ3ZWVrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCmluZGV4IGIzZDIyOGMzYjk4ODA3Nzg5MDI1MDdm
MzU0OTcxMjkzMjUyOTRlZjUuLmMwZDhlZjA3MWZmYTAxOTEzMWJiMDgwOWFkZDAwM2EzMDNkYjNi
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKQEAgLTI4OSwxOSAr
Mjg5LDE5IEBAIHZvaWQgTWVkaWFDb250cm9sbGVyOjpzZXRNdXRlZChib29sIGZsYWcpCiAKIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBsYXliYWNrU3RhdGVXYWl0aW5nKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB3YWl0aW5nLCAoIndh
aXRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB3YWl0aW5nOwogfQogCiBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwbGF5YmFja1N0YXRlUGxheWluZygpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcGxheWluZywgKCJw
bGF5aW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gcGxheWluZzsKIH0KIAog
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZUVuZGVkKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJlbmRl
ZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZW5kZWQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U3RlcFJhbmdlLmNwcAppbmRleCBjNDc3MThhMGMxZjMzYjk1ZTNiZjNhNmIyMzViNTJjY2M0Nzg0
OGQwLi4zNzQyOWIwMDIyYzg1N2NlMGQ2NjllZDI2ZmY2ZjgwMmQwMGRlN2RiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TdGVwUmFuZ2UuY3BwCkBAIC02NSwxMyArNjUsMTMgQEAgU3RlcFJhbmdlOjpTdGVwUmFu
Z2UoY29uc3QgRGVjaW1hbCYgc3RlcEJhc2UsIGNvbnN0IERlY2ltYWwmIG1pbmltdW0sIGNvbnN0
IERlY2kKIERlY2ltYWwgU3RlcFJhbmdlOjphY2NlcHRhYmxlRXJyb3IoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIERCTF9NQU5UX0RJRyBpbnN0ZWFkIG9mIEZMVF9NQU5U
X0RJRyByZWdhcmRpbmcgdG8gSFRNTDUgc3BlY2lmaWNhdGlvbi4KLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwgdHdvUG93ZXJPZkZsb2F0TWFudGlzc2FC
aXRzLCAoRGVjaW1hbDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8IEZMVF9NQU5UX0RJRykp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBEZWNpbWFsPiB0d29Qb3dlck9mRmxv
YXRNYW50aXNzYUJpdHMoRGVjaW1hbDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8IEZMVF9N
QU5UX0RJRyk7CiAgICAgcmV0dXJuIG1fc3RlcERlc2NyaXB0aW9uLnN0ZXBWYWx1ZVNob3VsZEJl
ID09IFN0ZXBWYWx1ZVNob3VsZEJlUmVhbCA/IG1fc3RlcCAvIHR3b1Bvd2VyT2ZGbG9hdE1hbnRp
c3NhQml0cyA6IERlY2ltYWwoMCk7CiB9CiAKIERlY2ltYWwgU3RlcFJhbmdlOjphbGlnblZhbHVl
Rm9yU3RlcChjb25zdCBEZWNpbWFsJiBjdXJyZW50VmFsdWUsIGNvbnN0IERlY2ltYWwmIG5ld1Zh
bHVlKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBE
ZWNpbWFsLCB0ZW5Qb3dlck9mMjEsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMjEsIDEpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgRGVjaW1hbD4gdGVuUG93ZXJPZjIxKERlY2ltYWw6
OlBvc2l0aXZlLCAyMSwgMSk7CiAgICAgaWYgKG5ld1ZhbHVlID49IHRlblBvd2VyT2YyMSkKICAg
ICAgICAgcmV0dXJuIG5ld1ZhbHVlOwogCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9vbCBTdGVwUmFu
Z2U6OnN0ZXBNaXNtYXRjaChjb25zdCBEZWNpbWFsJiB2YWx1ZUZvckNoZWNrKSBjb25zdAogICAg
IC8vIERlY2ltYWwncyBmcmFjdGlvbmFsIHBhcnQgc2l6ZSBpcyBEQkxfTUFOX0RJRy1iaXQuIElm
IHRoZSBjdXJyZW50IHZhbHVlCiAgICAgLy8gaXMgZ3JlYXRlciB0aGFuIHN0ZXAqMl5EQkxfTUFO
VF9ESUcsIHRoZSBmb2xsb3dpbmcgY29tcHV0YXRpb24gZm9yCiAgICAgLy8gcmVtYWluZGVyIG1h
a2VzIG5vIHNlbnNlLgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBE
ZWNpbWFsLCB0d29Qb3dlck9mRG91YmxlTWFudGlzc2FCaXRzLCAoRGVjaW1hbDo6UG9zaXRpdmUs
IDAsIFVJTlQ2NF9DKDEpIDw8IERCTF9NQU5UX0RJRykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBEZWNpbWFsPiB0d29Qb3dlck9mRG91YmxlTWFudGlzc2FCaXRzKERlY2ltYWw6
OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBEQkxfTUFOVF9ESUcpOwogICAgIGlmICh2YWx1
ZSAvIHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNzYUJpdHMgPiBtX3N0ZXApCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAvLyBUaGUgY29tcHV0YXRpb24gZm9sbG93cyBIVE1MNSA0LjEwLjcuMi4x
MCBgVGhlIHN0ZXAgYXR0cmlidXRlJyA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBkZWJjODMxMDI3OTlj
MTY2YzY3N2U3YzY0ZDBiNGZiMGZhMjUwNWQwLi5mNTdjYjI1ZGQwOWFiYWNjYTliMzY1MDAyMThl
MmJjZmNhZjMyNTUxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTE4OTcsNyArMTg5Nyw3IEBAIFBhc3NS
ZWZQdHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OndlYmtpdEdldEltYWdl
RGF0YUhEKGZsb2F0IHN4LCBmCiBQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpnZXRJbWFnZURhdGEoSW1hZ2VCdWZmZXI6OkNvb3JkaW5hdGVTeXN0ZW0gY29v
cmRpbmF0ZVN5c3RlbSwgZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzdywgZmxvYXQgc2gsIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIGlmICghY2FudmFzKCktPm9yaWdpbkNsZWFu
KCkpIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29u
c29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9t
IGNhbnZhcyBiZWNhdXNlIHRoZSBjYW52YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmln
aW4gZGF0YS4iKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25z
b2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNh
bnZhcyBiZWNhdXNlIHRoZSBjYW52YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4g
ZGF0YS4iKSk7CiAgICAgICAgIGNhbnZhcygpLT5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVz
c2FnZSk7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKaW5kZXggZmYxZjk4
NjJjOTU5MDY0NmI1ZjQ2YmRhMDZmYzM2MDRmYzU3MTBjYy4uNzcwOWQ3Njg0OTAzOGEyMWZjYTM0
Y2Q3YzVlOGIxYmMxYmM0MTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRva2VuaXplci5jcHAKQEAgLTEwNTAsOSArMTA1MCw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
IEVORF9TVEFURSgpCiAKICAgICBIVE1MX0JFR0lOX1NUQVRFKE1hcmt1cERlY2xhcmF0aW9uT3Bl
blN0YXRlKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGRhc2hEYXNoU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCItLSIpKSk7Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvY3R5cGVTdHJpbmcsIChBU0NJSUxpdGVy
YWwoImRvY3R5cGUiKSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBjZGF0YVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiW0NEQVRBWyIpKSk7CisgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRhc2hEYXNoU3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiLS0iKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRvY3R5cGVT
dHJpbmcoQVNDSUlMaXRlcmFsKCJkb2N0eXBlIikpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBjZGF0YVN0cmluZyhBU0NJSUxpdGVyYWwoIltDREFUQVsiKSk7CiAgICAg
ICAgIGlmIChjYyA9PSAnLScpIHsKICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6TG9va0Fo
ZWFkUmVzdWx0IHJlc3VsdCA9IHNvdXJjZS5sb29rQWhlYWQoZGFzaERhc2hTdHJpbmcpOwogICAg
ICAgICAgICAgaWYgKHJlc3VsdCA9PSBTZWdtZW50ZWRTdHJpbmc6OkRpZE1hdGNoKSB7CkBAIC0x
MjUzLDggKzEyNTMsOCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9rZW4tPnNl
dEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNv
dXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHB1YmxpY1N0cmlu
ZywgKEFTQ0lJTGl0ZXJhbCgicHVibGljIikpKTsKLSAgICAgICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHN5c3RlbVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic3lz
dGVtIikpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHB1Ymxp
Y1N0cmluZyhBU0NJSUxpdGVyYWwoInB1YmxpYyIpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHN5c3RlbVN0cmluZyhBU0NJSUxpdGVyYWwoInN5c3RlbSIpKTsK
ICAgICAgICAgICAgIGlmIChjYyA9PSAnUCcgfHwgY2MgPT0gJ3AnKSB7CiAgICAgICAgICAgICAg
ICAgU2VnbWVudGVkU3RyaW5nOjpMb29rQWhlYWRSZXN1bHQgcmVzdWx0ID0gc291cmNlLmxvb2tB
aGVhZElnbm9yaW5nQ2FzZShwdWJsaWNTdHJpbmcpOwogICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQgPT0gU2VnbWVudGVkU3RyaW5nOjpEaWRNYXRjaCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCAyNWQ0YmZmMzQwMDUyZjBlYzNkM2U2N2M3ZDZjMTQ2
MjdkYTc0Nzg4Li4zNzI2OTZiNDQ1ZjBhYzc4N2YxY2UxY2E3NzA0NDQ2ZTY5MDQ5NDMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtMjczLDcgKzI3Myw3
IEBAIHZvaWQgWFNTQXVkaXRvcjo6aW5pdChEb2N1bWVudCogZG9jdW1lbnQsIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZSogYXVkaXRvckRlbGVnYXRlKQogCiAgICAgU3RyaW5nIGh0dHBCb2R5QXNTdHJpbmc7
CiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGRvY3VtZW50LT5mcmFt
ZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFhTU1Byb3RlY3Rpb25IZWFkZXIsIChBU0NJSUxpdGVy
YWwoIlgtWFNTLVByb3RlY3Rpb24iKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBYU1NQcm90ZWN0aW9uSGVhZGVyKEFTQ0lJTGl0ZXJhbCgiWC1YU1MtUHJvdGVjdGlv
biIpKTsKICAgICAgICAgU3RyaW5nIGhlYWRlclZhbHVlID0gZG9jdW1lbnRMb2FkZXItPnJlc3Bv
bnNlKCkuaHR0cEhlYWRlckZpZWxkKFhTU1Byb3RlY3Rpb25IZWFkZXIpOwogICAgICAgICBTdHJp
bmcgZXJyb3JEZXRhaWxzOwogICAgICAgICB1bnNpZ25lZCBlcnJvclBvc2l0aW9uID0gMDsKQEAg
LTUyMiw3ICs1MjIsNyBAQCBib29sIFhTU0F1ZGl0b3I6OmZpbHRlckJ1dHRvblRva2VuKGNvbnN0
IEZpbHRlclRva2VuUmVxdWVzdCYgcmVxdWVzdCkKIAogYm9vbCBYU1NBdWRpdG9yOjplcmFzZURh
bmdlcm91c0F0dHJpYnV0ZXNJZkluamVjdGVkKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzYWZl
SmF2YVNjcmlwdFVSTCwgKEFTQ0lJTGl0ZXJhbCgiamF2YXNjcmlwdDp2b2lkKDApIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzYWZlSmF2YVNjcmlwdFVSTChBU0NJSUxp
dGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKTsKIAogICAgIGJvb2wgZGlkQmxvY2tTY3JpcHQg
PSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcXVlc3QudG9rZW4uYXR0cmli
dXRlcygpLnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggNjQ0ZmFhZTQ3OTY2NGU5MGUxMmYzZDlk
MzUxMWI4NzNlZGZkY2QwMS4uNmM1MjkxY2QzNzBhMDdiNzQ3MGM5OTI4ZTVhMDBjZWY4NmNhYWFk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIERldGFpbHNNYXJrZXJDb250cm9sOjpy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBEZXRhaWxzTWFya2VyQ29udHJvbDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQs
ICgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1ZElk
KCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHBzZXVkSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBhZTM2ZmYzMjBlMGY1
MjdhYzNmNzY1ZGQ0ZGFkMTMyMTYzMTc0MWFmLi40M2UzNGY5YTA3YzdjNWE3ZmE2ZDYxNDZjN2Vh
N2EwM2Y2OGEzM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sUGFuZWxFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBA
IC0yNzIsNyArMjcyLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDoKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTI5
MSw3ICsyOTEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xv
c3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBp
ZDsKIH0KIApAQCAtMzEyLDcgKzMxMiw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxp
bmVDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1j
b250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdGltZWxpbmUtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0zNzksNyArMzc5LDcgQEAgdm9pZCBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApA
QCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6
OnVwZGF0ZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxh
eUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXN0YXR1cy1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNDkwLDcgKzQ5MCw3IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlck11CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0K
IApAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6
OnVwZGF0ZURpc3BsYXlUeXBlKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcGxheS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTU3MCw3ICs1NzAsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zlcmxh
eS1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01OTMsNyArNTkzLDcgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNjE1
LDcgKzYxNSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWJhY2stYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV3aW5kLWJ1dHRvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAt
Njc4LDcgKzY3OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGlt
ZS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNzM2LDcgKzczNiw3IEBAIHZvaWQg
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBlCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xv
c2VkLWNhcHRpb25zLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNzU4LDcgKzc1OCw3IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gaWQ7CiB9
CiAKQEAgLTgyMiwxNCArODIyLDE0IEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNU
cmFja0xpc3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVuCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQt
Y2FwdGlvbnMtdHJhY2stbGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIAogdm9pZCBNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogewog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzZWxlY3RlZENsYXNzVmFsdWUsICgic2VsZWN0ZWQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gc2VsZWN0ZWRDbGFzc1ZhbHVlKCJzZWxlY3RlZCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFtZWRpYUNvbnRyb2xsZXIoKS0+
aGFzQ2xvc2VkQ2FwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNSw3ICsxMDA1LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNldER1cmF0aW9uKGRvdWJsZSBk
dXJhdGlvbikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVs
aW5lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRp
bWVsaW5lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGlkOwogfQogCkBAIC0xMDI5LDcgKzEwMjksNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbAog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMDUzLDcgKzEwNTMsNyBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVTbGlkZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBA
IC0xMDk4LDcgKzEwOTgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1i
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
aWQ7CiB9CiAKQEAgLTExMzUsNyArMTEzNSw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWZ1bGxzY3JlZW4tdm9sdW1lLW1pbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApA
QCAtMTE2Nyw3ICsxMTY3LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXYKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVl
bi12b2x1bWUtbWF4LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTg2LDcg
KzExODYsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0RpcwogCiBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnRTaGFkb3dQ
c2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGlkKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUt
cmVtYWluaW5nLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEyMTAsNyArMTIxMCw3IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGdldE1lZGlhQ29udHJvbEN1
cnJlbnRUaW1lRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBpZCgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTI0Nyw3
ICsxMjQ3LDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW4KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50U2hhZG93UHNldWRvSWQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250
YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gaWQ7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuY3BwCmluZGV4IDNiYzdiOGYyZGE4YWQ4YzBkMTc0ZTBiMjUxZDA5OWVhOTgwYjljZjUu
LmM1ODA4N2I4Y2I2MWVjNjVjMzIyMmE2ODQwMjMwZjRhYThjYmQ2MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAg
dm9pZCBNZWRpYUNvbnRyb2xzOjpzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCkKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xzOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBpZCgiLXdlYmtpdC1tZWRpYS1jb250cm9scyIpOwogICAgIHJldHVybiBp
ZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggYTU3NjMzNGRlODM5MWFmNDE2M2UwMWM2NTZhZmE0ZTg1ZWZiNTIxMi4u
OTQ5YzYyYzIyZDUxODI0NWFiMjdiNjhjZWFkMTMzNTU0NDFjMjNjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCkBAIC02Myw3ICs2
Myw3IEBAIGJvb2wgTWV0ZXJTaGFkb3dFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSkKIE1ldGVySW5uZXJFbGVtZW50OjpNZXRlcklubmVyRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZXRlclNoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRv
SWQsICgiLXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IHBzZXVkb0lkKCItd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8ocHNldWRvSWQpOwogfQogCkBAIC04
MCw5ICs4MCw5IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wdGltdW1Qc2V1ZG9JZCwg
KCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc3Vib3B0aW11bVBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBldmVuTGVzc0dvb2RQc2V1ZG9JZCwg
KCItd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IG9wdGltdW1Qc2V1ZG9JZCgiLXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gc3Vib3B0aW11bVBzZXVkb0lkKCItd2Via2l0LW1ldGVyLXN1Ym9wdGlt
dW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBldmVuTGVzc0dvb2RQc2V1ZG9JZCgiLXdl
YmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXIgPSBtZXRlckVsZW1l
bnQoKTsKICAgICBpZiAoIW1ldGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuaAppbmRleCBkMWIwZTc4ZDE1MTE5ZGJmMmVjNjRiYWViNTI1ZDA0
Yjc4YjNlZTIwLi42N2VhM2VjZDk5ZWZiM2UyNDc5MDdjZThiMjc1MmE5MmYyMTE2MGI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaApAQCAt
NzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIE1ldGVyQmFyRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgICAgIDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogICAgIHsKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRv
SWQsICgiLXdlYmtpdC1tZXRlci1iYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHBzZXVk
b0lkKCItd2Via2l0LW1ldGVyLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICBzZXRQc2V1ZG8ocHNldWRvSWQpOwogICAgIH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCBmYmM2
OTQwYTBjZmM1MzE2ODljODY1MDNkMjY1N2ExYWNhZDM2MWMzLi4wNDZjNTJlZjFkNWU5NWU4MzRh
NmRhYThmODg4NjYyZTBkZmZhM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTU2NywxMyArNTY3LDEzIEBAIEhUTUxJbnB1
dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkgY29uc3QKIAogc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVy
VGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmlu
Zz4gc2xpZGVyVGh1bWIoIi13ZWJraXQtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNsaWRlclRodW1iOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1l
ZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gbWVkaWFTbGlkZXJUaHVtYigiLXdlYmtpdC1tZWRpYS1zbGlkZXIt
dGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bWVkaWFTbGlkZXJUaHVtYjsKIH0KIApAQCAtNjIzLDggKzYyMyw4IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1lZGlhU2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQt
bWVkaWEtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBzbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IG1lZGlhU2xpZGVyQ29udGFpbmVyKCItd2Via2l0LW1lZGlh
LXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzbGlkZXJDb250
YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFkb3dIb3N0
KCktPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRleCAxOTZkYTY1ZTJlZTk1
MWFmNGMwNjg4ODdlYzMwN2JiNWYwZmY1ZWQ0Li4xNTUwNTQ4NDI5MDdmYWU2ZjBiZDhlZjUwNWNh
NmQzZDdlY2NmMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGlu
QnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8U3BpbkJ1dHRvbkVs
ZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGlu
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpbm5lclBzZXVkb0lkLCAoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gaW5uZXJQc2V1ZG9JZCgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBpbm5lclBz
ZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA0MDEwMzJhNWJiNTRiYjkyMDU2Mzk4NWFi
YjRmMDQ0YzQ2YTlkYjNhLi4xYTk2ZDhhMWE5ZDM2ZmRmNzllNmM0ODYwZjYzNzFkZWQ3MWM4ZTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5jcHAKQEAgLTE0Miw5ICsxNDIsOSBAQCBQYXNzUmVmUHRyPFNlYXJjaEZp
ZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6
OmNyZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0RlY29yYXRp
b25JZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgZGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLWRlY29yYXRp
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVzdWx0c0lkKCItd2Via2l0LXNlYXJjaC1yZXN1
bHRzLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHJlc3VsdHNEZWNvcmF0aW9uSWQoIi13
ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGRl
Y29yYXRpb25JZCgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIEVsZW1lbnQqIGhvc3QgPSBzaGFkb3dIb3N0KCk7CiAg
ICAgaWYgKCFob3N0KQogICAgICAgICByZXR1cm4gcmVzdWx0c0lkOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgi
LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBwc2V1
ZG9JZCgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApAQCAtNDYxLDcgKzQ2
MSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnN0b3BTcGVlY2hJbnB1
dCgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWlucHV0LXNwZWVjaC1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJraXQtaW5wdXQtc3BlZWNo
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBwc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAppbmRleCAyZDBiNDA1MjhkN2NlZjBjZjcy
NjQyZDljZDA5MzZmMmE1MjRmNDRhLi44OTY3YzgzYTc5MjMzODY3MjAzMGJlMGM1YzM0ZGQ5MjY4
MmE3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpwbHVnaW5FbGVtZW50KCkgY29u
c3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcHNldWRvSWQoIi13ZWJr
aXQtcGx1Z2luLXJlcGxhY2VtZW50Iik7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCBiZGJlYzZmNDA0M2JhNjlm
YjliYThmYzJjZDkzYzI4ZTdmMjgyYTgwLi40Zjc2OWEzYzc4NWQxZTRmZWIyZGEzMzdlYmI4ZDU4
Mzg4OTQ4NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAg
LTQzLDM3ICs0MywzNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgQXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhbHRlcm5hdGl2ZSwgKCJhbHRl
cm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJu
YXRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
YWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6ZGVzY3Jp
cHRpb25LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBkZXNjcmlwdGlvbiwgKCJkZXNjcmlwdGlvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiBkZXNjcmlwdGlvbigiZGVzY3JpcHRpb24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6bWFpbktleXdvcmQoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1haW4sICgibWFp
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBtYWluKCJtYWluIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1haW47CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgQXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtYWluRGVzYywgKCJt
YWluLWRlc2MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbWFpbkRlc2MoIm1haW4tZGVz
YyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtYWlu
RGVzYzsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjp0cmFuc2xhdGlvbktl
eXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIHRyYW5zbGF0aW9uLCAoInRyYW5zbGF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFuc2xhdGlvbjsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBBdWRpb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29tbWVudGFyeSwg
KCJjb21tZW50YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNvbW1lbnRhcnkoImNv
bW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3Bw
CmluZGV4IDJkZjM1N2NlNDcyNTM1N2FjYzQ1Njc5MjlkMmY4ZjkwOGMyMGE5Y2EuLjhmZDRmMGY5
YzgwNDIwZjU3ZDk4N2E0MjEyZDM5ZjQwODIzNjg0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAKQEAgLTQ5LDU1ICs0OSw1NSBAQCBzdGF0aWMgY29uc3QgaW50IGlu
dmFsaWRUcmFja0luZGV4ID0gLTE7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpz
dWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVzIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBUZXh0VHJhY2s6OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2FwdGlvbnMsICgiY2Fw
dGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNhcHRpb25z
OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6ZGVzY3JpcHRpb25zS2V5d29y
ZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgZGVzY3JpcHRpb25zLCAoImRlc2NyaXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBkZXNjcmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgVGV4dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNoYXB0ZXJzLCAoImNo
YXB0ZXJzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGNoYXB0ZXJzKCJjaGFwdGVycyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGFwdGVy
czsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6Om1ldGFkYXRhS2V5d29yZCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgbWV0YWRhdGEsICgibWV0YWRhdGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbWV0
YWRhdGEoIm1ldGFkYXRhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIG1ldGFkYXRhOwogfQogICAgIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJh
Y2s6OmZvcmNlZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGZvcmNlZCwgKCJmb3JjZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRl
eHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoImRpc2FibGVkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IG9wZW4oImRpc2FibGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9wZW47CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgVGV4dFRyYWNrOjpoaWRkZW5LZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjbG9zZWQsICgiaGlkZGVuIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IGNsb3NlZCgiaGlkZGVuIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNsb3NlZDsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBUZXh0VHJhY2s6OnNob3dpbmdLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJzaG93aW5nIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGVuZGVkKCJzaG93aW5nIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCBiYzM5OWZiYjAwYzQ0YWI0OTIz
NjQxMzNjNWRjMDhiMGIyZTNhYzE2Li45Nzk1OGNmNjlhMmFkMGI0OTI1NDM4OTA4MWI1OWVjNTQ1
YjZiYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY3Vl
U2hhZG93UHNldWRvSWQoKQogICAgIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VlLCAoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICAgICAgcmV0dXJuIGN1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VlRUQ3VlLmNwcAppbmRleCA4NjllZDgzMDBlMTJlZjA4ZGVkYzhmMGJlNWYxNTY5MmExYzQ1MzZj
Li4yOGVmMzQwNTQzYTRlNjBkMzE2ZWQ5ZmZhZWYwMzNkZTY4MDI5NGZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC03MiwzMSArNzIsMzEgQEAgQ09NUElMRV9BU1NFUlQo
V1RGX0FSUkFZX0xFTkdUSChkaXNwbGF5QWxpZ25tZW50TWFwKSA9PSBWVFRDdWU6Ok51bWJlck9m
QWxpZ25tZW4KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgc3RhcnRLZXl3b3JkKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdGFydCwgKEFTQ0lJ
TGl0ZXJhbCgic3RhcnQiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJp
bmc+IHN0YXJ0KEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSk7CiAgICAgcmV0dXJuIHN0YXJ0OwogfQog
CiBzdGF0aWMgY29uc3QgU3RyaW5nJiBtaWRkbGVLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtaWRkbGUsIChBU0NJSUxpdGVyYWwo
Im1pZGRsZSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWlk
ZGxlKEFTQ0lJTGl0ZXJhbCgibWlkZGxlIikpOwogICAgIHJldHVybiBtaWRkbGU7CiB9CiAKIHN0
YXRpYyBjb25zdCBTdHJpbmcmIGVuZEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVuZCwgKEFTQ0lJTGl0ZXJhbCgiZW5kIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBlbmQoQVNDSUlMaXRlcmFs
KCJlbmQiKSk7CiAgICAgcmV0dXJuIGVuZDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgbGVm
dEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGxlZnQsICgibGVmdCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBsZWZ0KCJsZWZ0Iik7CiAgICAgcmV0dXJuIGxlZnQ7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHJpZ2h0S2V5d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcmlnaHQsICgicmlnaHQiKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcmlnaHQoInJpZ2h0Iik7CiAgICAgcmV0dXJuIHJpZ2h0
OwogfQogCkBAIC0xMDcsMTMgKzEwNywxMyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nJiBob3Jpem9u
dGFsS2V5d29yZCgpCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHZlcnRpY2FsR3Jvd2luZ0xlZnRL
ZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCB2ZXJ0aWNhbHJsLCAoQVNDSUlMaXRlcmFsKCJybCIpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdmVydGljYWxybChBU0NJSUxpdGVyYWwoInJsIikpOwog
ICAgIHJldHVybiB2ZXJ0aWNhbHJsOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2ZXJ0aWNh
bEdyb3dpbmdSaWdodEtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FsbHIsIChBU0NJSUxpdGVyYWwoImxyIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB2ZXJ0aWNhbGxyKEFTQ0lJTGl0
ZXJhbCgibHIiKSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsbHI7CiB9CiAKQEAgLTIwNSw3ICsyMDUs
NyBAQCB2b2lkIFZUVEN1ZUJveDo6YXBwbHlDU1NQcm9wZXJ0aWVzKGNvbnN0IEludFNpemUmKQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFZUVEN1ZUJveDo6dnR0Q3VlQm94U2hhZG93UHNldWRvSWQo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10
cmFjay1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHRyYWNrRGlzcGxheUJv
eFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlC
b3hTaGFkb3dQc2V1ZG9JZDsKIH0KIApAQCAtNTc3LDcgKzU3Nyw3IEBAIHN0YXRpYyBib29sIGlz
Q3VlUGFyYWdyYXBoU2VwYXJhdG9yKFVDaGFyIGNoYXJhY3RlcikKIAogdm9pZCBWVFRDdWU6OmRl
dGVybWluZVRleHREaXJlY3Rpb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHJ0VGFnLCAoQVNDSUlMaXRlcmFsKCJydCIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcnRUYWcoQVNDSUlMaXRlcmFsKCJydCIp
KTsKICAgICBjcmVhdGVXZWJWVFROb2RlVHJlZSgpOwogICAgIGlmICghbV93ZWJWVFROb2RlVHJl
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzIxLDcgKzcyMSw3IEBAIHZvaWQgVlRUQ3VlOjpjYWxj
dWxhdGVEaXNwbGF5UGFyYW1ldGVycygpCiAgICAgCiB2b2lkIFZUVEN1ZTo6bWFya0Z1dHVyZUFu
ZFBhc3ROb2RlcyhDb250YWluZXJOb2RlKiByb290LCBkb3VibGUgcHJldmlvdXNUaW1lc3RhbXAs
IGRvdWJsZSBtb3ZpZVRpbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHRpbWVzdGFtcFRhZyhB
U0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKTsKICAgICAKICAgICBib29sIGlzUGFzdE5vZGUgPSB0
cnVlOwogICAgIGRvdWJsZSBjdXJyZW50VGltZXN0YW1wID0gcHJldmlvdXNUaW1lc3RhbXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggMDcyNzBjMmI3YmJhNDZm
NzRiNTMzMzhlMTJkODA1NmI4NDJkMGNkOC4uZmIzOTJmNGU5YWFlZGJiM2YyNmQwYjQwM2VlNGJh
YjJlNDgyMDZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAt
MTg2LDcgKzE4Niw3IEBAIHZvaWQgVlRUUmVnaW9uOjpzZXRWaWV3cG9ydEFuY2hvclkoZG91Ymxl
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIAogY29uc3QgQXRvbWljU3RyaW5nIFZUVFJlZ2lv
bjo6c2Nyb2xsKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1cCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiB1cFNjcm9sbFZhbHVlS2V5d29yZCgidXAiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChtX3Njcm9sbCkKICAgICAgICAg
cmV0dXJuIHVwU2Nyb2xsVmFsdWVLZXl3b3JkOwpAQCAtMTk2LDcgKzE5Niw3IEBAIGNvbnN0IEF0
b21pY1N0cmluZyBWVFRSZWdpb246OnNjcm9sbCgpIGNvbnN0CiAKIHZvaWQgVlRUUmVnaW9uOjpz
ZXRTY3JvbGwoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
dXBTY3JvbGxWYWx1ZUtleXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
dXBTY3JvbGxWYWx1ZUtleXdvcmQoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBpZiAodmFsdWUgIT0gZW1wdHlTdHJpbmcoKSAmJiB2YWx1ZSAhPSB1cFNj
cm9sbFZhbHVlS2V5d29yZCkgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CkBAIC0yNjYsNyAr
MjY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHBhcnNlZEVudGlyZVJ1bihjb25zdCBWVFRTY2Fu
bmVyJiBpbnB1dCwgY29uc3QgVlRUU2Nhbm5lcjo6UnUKIAogdm9pZCBWVFRSZWdpb246OnBhcnNl
U2V0dGluZ1ZhbHVlKFJlZ2lvblNldHRpbmcgc2V0dGluZywgVlRUU2Nhbm5lciYgaW5wdXQpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
c2Nyb2xsVXBWYWx1ZUtleXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
c2Nyb2xsVXBWYWx1ZUtleXdvcmQoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBWVFRTY2FubmVyOjpSdW4gdmFsdWVSdW4gPSBpbnB1dC5jb2xsZWN0VW50
aWw8V2ViVlRUUGFyc2VyOjppc0FTcGFjZT4oKTsKIApAQCAtMzI0LDcgKzMyNCw3IEBAIHZvaWQg
VlRUUmVnaW9uOjpwYXJzZVNldHRpbmdWYWx1ZShSZWdpb25TZXR0aW5nIHNldHRpbmcsIFZUVFNj
YW5uZXImIGlucHV0KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZUVFJlZ2lvbjo6dGV4dFRyYWNr
Q3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Ny
b2xsaW5nQ2xhc3MsICgic2Nyb2xsaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHRy
YWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9uQ3Vl
Q29udGFpbmVyU2Nyb2xsaW5nQ2xhc3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrLmNwcAppbmRleCBiYmRjOTBkZGZiYzEzYzEyZGRiMWIzOGQxMTI4OThiOTFiMTEzOTMz
Li5kZmNkMWJhMGI2ZDk4M2I5MGI0ZmZhZDg2MzgwYjc1YjBkOWE5OTU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTQ3LDM3ICs0NywzNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6YWx0ZXJuYXRp
dmVLZXl3b3JkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBhbHRlcm5hdGl2ZSwgKCJhbHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywg
KCJjYXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjYXB0aW9ucygiY2FwdGlv
bnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2Fw
dGlvbnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6bWFpbktleXdvcmQo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGNhcHRpb25zLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY2FwdGlv
bnMoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6c2lnbktl
eXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIHNpZ24sICgic2lnbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzaWdu
KCJzaWduIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHNpZ247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6c3VidGl0bGVzS2V5
d29yZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgc3VidGl0bGVzLCAoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3Ry
aW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
VmlkZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNvbW1lbnRhcnksICgiY29tbWVudGFy
eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRh
cnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCmlu
ZGV4IGQ3NGI4MzhlOGY5MjU3NTUwOTJhOTlmM2E3ZGQ5NTU1MThkZTI4MWYuLmUzNmMzZGFjY2Y1
OGFkMzY2YjEyNjhmNWQxMjU3ZWQ1YjI1ZGQxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtMzYsMTQgKzM2LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5vZGVUeXBlVG9UYWdOYW1lKFdl
YlZUVE5vZGVUeXBlIG5vZGVUeXBlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChRdWFsaWZpZWROYW1lLCBjVGFnLCAobnVsbEF0b20sICJjIiwgbnVsbEF0b20pKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdlRhZywgKG51
bGxBdG9tLCAidiIsIG51bGxBdG9tKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFF1YWxpZmllZE5hbWUsIGxhbmdUYWcsIChudWxsQXRvbSwgImxhbmciLCBudWxsQXRvbSkp
OwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBiVGFn
LCAobnVsbEF0b20sICJiIiwgbnVsbEF0b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdVRhZywgKG51bGxBdG9tLCAidSIsIG51bGxBdG9tKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGlUYWcs
IChudWxsQXRvbSwgImkiLCBudWxsQXRvbSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChRdWFsaWZpZWROYW1lLCBydWJ5VGFnLCAobnVsbEF0b20sICJydWJ5IiwgbnVsbEF0
b20pKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwg
cnRUYWcsIChudWxsQXRvbSwgInJ0IiwgbnVsbEF0b20pKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UXVhbGlmaWVkTmFtZT4gY1RhZyhudWxsQXRvbSwgImMiLCBudWxsQXRvbSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IHZUYWcobnVsbEF0b20sICJ2Iiwg
bnVsbEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiBsYW5n
VGFnKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UXVhbGlmaWVkTmFtZT4gYlRhZyhudWxsQXRvbSwgImIiLCBudWxsQXRvbSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IHVUYWcobnVsbEF0b20sICJ1IiwgbnVs
bEF0b20pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiBpVGFnKG51
bGxBdG9tLCAiaSIsIG51bGxBdG9tKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlm
aWVkTmFtZT4gcnVieVRhZyhudWxsQXRvbSwgInJ1YnkiLCBudWxsQXRvbSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFF1YWxpZmllZE5hbWU+IHJ0VGFnKG51bGxBdG9tLCAicnQiLCBudWxs
QXRvbSk7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgV2ViVlRUTm9kZVR5cGVD
bGFzczoKICAgICAgICAgcmV0dXJuIGNUYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5oCmluZGV4IDM5NDA2ZDlhZjc4NGY0NzJjNDY5MDY4NmUzYjJjNTUzMDFiNDdh
ZjMuLjJjMTJjNDRkM2Y3MWE2ZDYyOTYxYmViOTU1NTk3Mjc4NTg1NjNmYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCkBAIC01OSwxMyArNTksMTMgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIHZvaWNlQXR0cmlidXRlTmFt
ZSgpCiAgICAgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlm
aWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20sICJ2b2ljZSIsIG51bGxBdG9tKSk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxRdWFsaWZpZWROYW1lPiB2b2ljZUF0dHIobnVsbEF0
b20sICJ2b2ljZSIsIG51bGxBdG9tKTsKICAgICAgICAgcmV0dXJuIHZvaWNlQXR0cjsKICAgICB9
CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGxhbmdBdHRyaWJ1dGVOYW1l
KCkKICAgICB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZp
ZWROYW1lLCB2b2ljZUF0dHIsIChudWxsQXRvbSwgImxhbmciLCBudWxsQXRvbSkpOworICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UXVhbGlmaWVkTmFtZT4gdm9pY2VBdHRyKG51bGxBdG9t
LCAibGFuZyIsIG51bGxBdG9tKTsKICAgICAgICAgcmV0dXJuIHZvaWNlQXR0cjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCAyMDY1MmU4
NDM4MjYxOWQzYTNmYTM0YjM4MzUxNDkxMTg4MjI1Zjg3Li5mYTU2NDEyOTQ0OTFmNzU0NzEzOGYw
ZmMzNzYyZWQ2ZTk5ZGU3ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQ
YXJzZXIuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OmNvbGxlY3RN
ZXRhZGF0YUhlYWRlcihjb25zdCBTdHJpbmcmIGxpbmUpCiB7CiAjaWYgRU5BQkxFKFdFQlZUVF9S
RUdJT05TKQogICAgIC8vIFdlYlZUVCBoZWFkZXIgcGFyc2luZyAoV2ViVlRUIHBhcnNlciBhbGdv
cml0aG0gc3RlcCAxMikKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCByZWdpb25IZWFkZXJOYW1lLCAoIlJlZ2lvbiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiByZWdpb25IZWFkZXJOYW1lKCJSZWdpb24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIC8vIFN0ZXAgMTIuNCBJZiBsaW5lIGNvbnRhaW5z
IHRoZSBjaGFyYWN0ZXIgIjoiIChBIFUrMDAzQSBDT0xPTiksIHRoZW4gc2V0IG1ldGFkYXRhJ3MK
ICAgICAvLyBuYW1lIHRvIHRoZSBzdWJzdHJpbmcgb2YgbGluZSBiZWZvcmUgdGhlIGZpcnN0ICI6
IiBjaGFyYWN0ZXIgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAppbmRleCAzMDVhOTk1NGRmMWE5N2YxYzBjMDcxZDg0Zjc0OTEwYWEwMGQ2Zjhj
Li43ZGQ3NDYwMGU2ZjNmNGU4M2E5ZmZiMDYxNmE4OWQ0YjMwYTkyM2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTc4LDEwICs3OCwx
MCBAQCBlbnVtIEZvcmNlUHNldWRvQ2xhc3NGbGFncyB7CiAKIHN0YXRpYyB1bnNpZ25lZCBjb21w
dXRlUHNldWRvQ2xhc3NNYXNrKEluc3BlY3RvckFycmF5KiBwc2V1ZG9DbGFzc0FycmF5KQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFjdGl2ZSwgKEFTQ0lJ
TGl0ZXJhbCgiYWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBob3ZlciwgKEFTQ0lJTGl0ZXJhbCgiaG92ZXIiKSkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZvY3VzLCAoQVNDSUlMaXRlcmFsKCJmb2N1cyIp
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmlzaXRlZCwg
KEFTQ0lJTGl0ZXJhbCgidmlzaXRlZCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gYWN0aXZlKEFTQ0lJTGl0ZXJhbCgiYWN0aXZlIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGhvdmVyKEFTQ0lJTGl0ZXJhbCgiaG92ZXIiKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZm9jdXMoQVNDSUlMaXRlcmFsKCJmb2N1cyIpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2aXNpdGVkKEFTQ0lJTGl0ZXJhbCgidmlz
aXRlZCIpKTsKICAgICBpZiAoIXBzZXVkb0NsYXNzQXJyYXkgfHwgIXBzZXVkb0NsYXNzQXJyYXkt
Pmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gUHNldWRvQ2xhc3NOb25lOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRl
eCA3ZmQ2MjkxYzkxMDdmMzhlYjQxM2E2MTkxYTc2NzcwYjU3M2NlMjM3Li5hNGFjYTNjZmM3OWM4
YzRjMzg3NzJjZjRiMGYxMjI1YTkyZjZmMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTMyOSwxMCArMzI5LDEw
IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gaWRiS2V5RnJvbUluc3BlY3Rvck9iamVjdChJ
bnNwZWN0b3JPYmplY3QqIGtleSkKICAgICBpZiAoIWtleS0+Z2V0U3RyaW5nKCJ0eXBlIiwgJnR5
cGUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIG51bWJlciwgKEFTQ0lJTGl0ZXJhbCgibnVtYmVyIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzdHJpbmcsIChBU0NJSUxp
dGVyYWwoInN0cmluZyIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgZGF0ZSwgKEFTQ0lJTGl0ZXJhbCgiZGF0ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYXJyYXksIChBU0NJSUxpdGVyYWwoImFycmF5IikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBudW1iZXIoQVNDSUlMaXRlcmFsKCJu
dW1iZXIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgic3RyaW5nIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRh
dGUoQVNDSUlMaXRlcmFsKCJkYXRlIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGFycmF5KEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7CiAKICAgICBpZiAodHlwZSA9PSBudW1i
ZXIpIHsKICAgICAgICAgZG91YmxlIG51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNDViZjBlZWU4NDZmNzcwOWVkNDJlMjc0
ZmQxMTdmOTY0ODI0MThkZS4uMjVkNWM1NWY5MjM5ZWVlNjRmZjQzYWI3MDhiOTY3MzRiMjY2NDBj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTI0Nyw4ICsyNDcsOCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VD
b250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZyYW1lLAogLy9zdGF0aWMK
IFN0cmluZyBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNvdXJjZU1hcFVSTEZvclJlc291cmNlKENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJTb3Vy
Y2VNYXAiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNv
dXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVkLCAoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1hcCIp
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc291cmNlTWFwSFRUUEhlYWRl
cihBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZChBU0NJSUxpdGVyYWwoIlgtU291
cmNlTWFwIikpOwogCiAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwCmluZGV4IDc2ODgxMDNkNjExMTE4NGUxNGEzMDliZmM5Y2E3ZTFiNmJjZjM1YWMuLjMw
MTVhNTkwZDcyN2M3MWFiNjdjMDY4MjM4Y2M4M2ZhNDczOTY2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTM0OCw3ICszNDgs
NyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvcjo6
VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTQ29tcHV0ZQogYm9vbCBJbnNwZWN0b3JTdHlsZTo6c2V0UHJv
cGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5VGV4dCwgYm9v
bCBvdmVyd3JpdGUsIFN0cmluZyogb2xkVGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
QVNTRVJUKG1fcGFyZW50U3R5bGVTaGVldCk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgYm9ndXNQcm9wZXJ0eU5hbWUsIChBU0NJSUxpdGVyYWwoIi13ZWJraXQt
Ym9ndXotcHJvcGVydGVlIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBi
b2d1c1Byb3BlcnR5TmFtZShBU0NJSUxpdGVyYWwoIi13ZWJraXQtYm9ndXotcHJvcGVydGVlIikp
OwogCiAgICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFSZWFkeSgp
KSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKQEAgLTY4Niw3ICs2ODYsNyBAQCBWZWN0
b3I8U3RyaW5nPiBJbnNwZWN0b3JTdHlsZTo6bG9uZ2hhbmRQcm9wZXJ0aWVzKGNvbnN0IFN0cmlu
ZyYgc2hvcnRoYW5kUHJvcGVydAogCiBOZXdMaW5lQW5kV2hpdGVzcGFjZSYgSW5zcGVjdG9yU3R5
bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVycygpIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdFByZWZpeCwgKEFTQ0lJTGl0
ZXJhbCgiICAgICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZGVmYXVs
dFByZWZpeChBU0NJSUxpdGVyYWwoIiAgICAiKSk7CiAKICAgICBpZiAobV9mb3JtYXRBY3F1aXJl
ZCkKICAgICAgICAgcmV0dXJuIG1fZm9ybWF0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNzYwMjNlMTlkZDAyYTZmY2YxZDEzYjNiNjRm
MGQxN2Y5ZjFjZTUzMy4uODNlNDVhY2IyYmVmODY0N2FkMTViODIyODc5MGJjZDU2NTA5NjYxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBA
IC03Miw4ICs3Miw4IEBAIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoYm9vbCBpc0Jl
aW5nRGVzdHJveWVkKQogCiBTdHJpbmcgUGFnZURlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1hcFVSTEZv
clNjcmlwdChjb25zdCBTY3JpcHQmIHNjcmlwdCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJT
b3VyY2VNYXAiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHNvdXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVkLCAoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1h
cCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc291cmNlTWFwSFRUUEhl
YWRlcihBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZChBU0NJSUxpdGVyYWwoIlgt
U291cmNlTWFwIikpOwogCiAgICAgaWYgKCFzY3JpcHQudXJsLmlzRW1wdHkoKSkgewogICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtX3BhZ2VBZ2VudC0+Y2FjaGVkUmVzb3VyY2Uo
bV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCBzY3JpcHQudXJs
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCA3ZDk0ZmM4NmY3NmE4
ZWM2ODY1YTY3MGI0MDlkOTliMDYyNjZmMTk4Li4yZDU1MmQ3ZWZhODQyZDc5ZjczNWEyZThmYjRh
MjQwMTYwOTExY2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTI5
Myw3ICsyOTMsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCiAgICAgICAgIG1faGFzUGVuZGluZ0Vycm9yRXZlbnQgPSB0cnVlOwog
ICAgICAgICBlcnJvckV2ZW50U2VuZGVyKCkuZGlzcGF0Y2hFdmVudFNvb24odGhpcyk7CiAKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBpbWFnZSBsb2FkIGRlbmllZCBieSBDcm9z
cy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKKyAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJDcm9zcy1v
cmlnaW4gaW1hZ2UgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiIpKTsKICAgICAgICAgZWxlbWVudCgpLmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVN
ZXNzYWdlKTsKIAogICAgICAgICBBU1NFUlQoIW1faGFzUGVuZGluZ0xvYWRFdmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmluZGV4IDRiMGY2NTFmMmQ3MDFk
MGU1MWI2YjdkN2VlYWViOWJkNGQzZWE0MGMuLjRiZWYwYjMyYjlhN2M1Nzg4YmI4MjEwY2E0ZGQ4
MGRjZGQ0YzZmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3Bw
CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmRlcHJlY2F0ZWREaWRS
ZWNlaXZlQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmMKIAogdm9pZCBUZXh0
VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJh
bCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJl
c291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gY29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFj
ayBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikp
OwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKICAgICBtX3N0
YXRlID0gRmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCAzODllNTMxMTI1YjY1ZTc4YmRmZWJiMGJiZjYw
ZDFmNDBiOTBiM2ZlLi4yZmYxNDE1ODJhZTZlOGNlZmZhMDI4YjA1NDA1MzY1N2ZlNGIyNDVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcApAQCAtODMsNyArODMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJl
c291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSgpIGNvbnN0CiAgICAgaWYgKCFtX2luaXRpYXRv
ck5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JOYW1lOwogCi0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGVmYXVsdE5hbWUs
ICgicmVzb3VyY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZGVmYXVsdE5hbWUoInJlc291cmNl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlZmF1
bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNw
cAppbmRleCA5MDcxZWVmZGVjZjhjYWFhNDdkYzQ4NTFkNTkwYjkxOGNmMjcxYTM1Li5lM2I1YmY5
NzZlOGY2NzliMmI0ZDdhYWMzNWRlZGFiNzRmNTkzYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIE1lbW9y
eUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4p
CiB2b2lkIE1lbW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0
JiBvcmlnaW5zKQogewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaHR0cFN0cmluZywgKCJodHRwIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGh0dHBTdHJpbmcoImh0dHAiKTsKICNl
bmRpZgogICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CiAg
ICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5l
bmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4
IDY3ZGMwZDliNGIyMzQxODIxNzE0NjE4NzdmZWQ3MGJiMmE5ZDVkYzIuLjAxY2FkYjg1ZWQzODAz
ZGM0ZDVkZmZhNzEyYTBkMWM1NDRiYmE2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcApAQCAtODg2LDcgKzg4Niw3IEBAIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiAKIFN0cmluZyBJY29uRGF0YWJhc2U6OmRlZmF1bHRE
YXRhYmFzZUZpbGVuYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSwgKEFTQ0lJTGl0ZXJhbCgiV2VicGFnZUlj
b25zLmRiIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkZWZhdWx0RGF0
YWJhc2VGaWxlbmFtZShBU0NJSUxpdGVyYWwoIldlYnBhZ2VJY29ucy5kYiIpKTsKICAgICByZXR1
cm4gZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IGZiODAxNmJi
YmRmZWQ4OTJiOTcxZjI3ZjdiMDdlMjJkZThjYTc1ZDYuLjFhOWE3MjFhNzhkNzcxMjBjYWE3OTRj
MzFmZjFlNWJjNmQ4MGJjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzLmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6c2V0Q2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoY29uc3QgU3RyaW5nJiBvdmVy
cmlkCiB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnVwZGF0ZUNhcHRpb25TdHlsZVNoZWV0
T3ZlcmlkZSgpCiB7CiAgICAgLy8gSWRlbnRpZnkgb3VyIG92ZXJyaWRlIHN0eWxlIHNoZWV0IHdp
dGggYSB1bmlxdWUgVVJMIC0gYSBuZXcgc2NoZW1lIGFuZCBhIFVVSUQuCi0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwgY2FwdGlvbnNTdHlsZVNoZWV0VVJMLCAoUGFyc2Vk
VVJMU3RyaW5nLCAidXNlci1jYXB0aW9ucy1vdmVycmlkZTowMUY2QUYxMi1DM0IwLTRGNzAtQUY1
RS1BM0UwMDIzNERDMjMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTD4gY2FwdGlv
bnNTdHlsZVNoZWV0VVJMKFBhcnNlZFVSTFN0cmluZywgInVzZXItY2FwdGlvbnMtb3ZlcnJpZGU6
MDFGNkFGMTItQzNCMC00RjcwLUFGNUUtQTNFMDAyMzREQzIzIik7CiAKICAgICBhdXRvJiBwYWdl
cyA9IG1fcGFnZUdyb3VwLnBhZ2VzKCk7CiAgICAgZm9yIChhdXRvJiBwYWdlIDogcGFnZXMpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRi5jcHAKaW5kZXggZWZlMmU1ODNhZDE4MDVjOGY2NmE1NzY3NDIwOWI5MTU1MGJlMTA4Yi4u
OGU0YmYyOTU0NjQwYTA5ZDA3NWZiM2IyNjY3ZjI4NDRlMTAzYWMwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAg
LTI3Niw3ICsyNzYsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNh
cHRpb25zQmFja2dyb3VuZENTUygpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBkZWZhdWx0IHZhbHVl
IG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSBzcGVjaWZpZWQgaW4gbWVkaWFDb250cm9scy5j
c3MgZm9yIC13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1wYXN0LW5vZGVzCiAgICAgLy8gYW5kIHdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2Rlcy4KLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ29sb3IsIGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IsIChDb2xvcigwLCAw
LCAwLCAwLjggKiAyNTUpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENvbG9yPiBkZWZh
dWx0QmFja2dyb3VuZENvbG9yKENvbG9yKDAsIDAsIDAsIDAuOCAqIDI1NSkpOwogCiAgICAgTUFD
YXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yIGJlaGF2aW9yOwogCkBAIC0zNzksMTAgKzM3OSwxMCBA
QCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1Mo
Q1NTUHJvcGVydHlJRCBpZCwgY29uc3QgQwogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MoKSBjb25zdAogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZVJhaXNlZCwgKCIgLS4w
NWVtIC0uMDVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVEZXByZXNz
ZWQsICgiIC4wNWVtIC4wNWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHls
ZURyb3BTaGFkb3csICgiIC4wNzVlbSAuMDc1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgZWRnZVN0eWxlVW5pZm9ybSwgKCIgLjAzZW0gIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGVkZ2VTdHls
ZVJhaXNlZCgiIC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBlZGdlU3R5bGVEZXBy
ZXNzZWQoIiAuMDVlbSAuMDVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGVkZ2VTdHlsZURyb3BTaGFk
b3coIiAuMDc1ZW0gLjA3NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZWRnZVN0eWxlVW5pZm9ybSgi
IC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgYm9vbCB1bnVz
ZWQ7CiAgICAgQ29sb3IgY29sb3IgPSBjYXB0aW9uc1RleHRDb2xvcih1bnVzZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGYwYTljZWEx
YzdlZDRkN2RiNzAxYzU5YjgwODEyZGYzY2MwYjgzMjUuLmQyMGViN2NiY2U0NDA1OGIzMzVkNGI5
YTg5ZmE3ZTg4Y2YxYjRmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKQEAgLTEwNjMsNyArMTA2Myw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlz
dDo6Y2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24oU291cmNlTGlzdERpcmVjdGl2ZSogZGly
ZWN0CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyhjb25zdCBT
dHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUs
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25z
b2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIEphdmFTY3JpcHQg
VVJMIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
Y29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgSmF2YVNjcmlw
dCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IGRpcmVjdGl2ZTogIikpOwogICAgIGlmIChyZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0KSB7CiAgICAgICAgIHJldHVybiAoY2hlY2tJbmxp
bmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgp
KSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB0cnVlKQogICAgICAg
ICAgICAgICAgICYmIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5n
ZXQoKSwgU3RyaW5nKCksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSkp
OwpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0phdmFT
Y3JpcHRVUkxzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjoKIAogYm9vbCBD
U1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBj
b250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgZXZlbnQgaGFuZGxl
ciBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNv
bnNvbGVNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBldmVu
dCBoYW5kbGVyIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKTsKICAgICBpZiAocmVwb3J0aW5nU3RhdHVzID09IENv
bnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJlcG9ydCkgewogICAgICAgICByZXR1cm4gKGNoZWNr
SW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5n
ZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkKICAg
ICAgICAgICAgICAgICAmJiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9u
Y2UuZ2V0KCksIFN0cmluZygpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExp
bmUpKTsKQEAgLTEwODcsNyArMTA4Nyw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJ
bmxpbmVFdmVudEhhbmRsZXJzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QKIAogYm9v
bCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVNjcmlwdChjb25zdCBTdHJpbmcmIGNvbnRl
eHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwg
KEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2
ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2Fn
ZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmU6ICIpKTsKICAgICByZXR1cm4gcmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBv
bGljeTo6U2VuZFJlcG9ydCA/CiAgICAgICAgIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9u
KG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBj
b250ZXh0VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkgOgogICAgICAgICBjaGVja0lubGluZShvcGVy
YXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpKTsKQEAgLTEwOTUsNyArMTA5NSw3IEBA
IGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBj
b250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJ
bmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51
bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVz
IHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBh
cHBseSBpbmxpbmUgc3R5bGUgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBjb25zb2xlTWVzc2FnZShBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gYXBw
bHkgaW5saW5lIHN0eWxlIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50
IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKTsKICAgICByZXR1cm4gcmVwb3J0aW5nU3Rh
dHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJlcG9ydCA/CiAgICAgICAgIGNoZWNr
SW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3N0eWxlU3JjLmdl
dCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCBmYWxzZSkgOgog
ICAgICAgICBjaGVja0lubGluZShvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQoKSkp
OwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGlu
ZVN0eWxlKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmQKIAogYm9vbCBD
U1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXZhbHVhdGUgc2NyaXB0IGJlY2F1c2UgaXQg
dmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6
ICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY29uc29sZU1lc3NhZ2Uo
QVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xh
dGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7
CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNl
bmRSZXBvcnQgPwogICAgICAgICBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZl
RGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIFN0cmluZygpLCBX
VEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIHN0YXRlKSA6CiAgICAgICAgIGNoZWNr
RXZhbChvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpKTsKQEAgLTExMTEsNyAr
MTExMSw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dFdmFsKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlz
dDo6YWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNv
bnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2Ny
aXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
Y29uc29sZU1lc3NhZ2UoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBk
aXJlY3RpdmU6ICIpKTsKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNo
ZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQoKSwgbm9uY2UsIGNv
bnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CiAgICAgcmV0dXJuIGNoZWNr
Tm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQoKSwgbm9uY2UsICJSZWZ1
c2VkIHRvIGxvYWQgJyIgKyB1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkgKyAi
JyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAiLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CkBAIC0xNzc4LDEyICsx
Nzc4LDEyIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29u
c3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRVbnN1cHBvcnRlZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYWxsb3cs
IChBU0NJSUxpdGVyYWwoImFsbG93IikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBvcHRpb25zLCAoQVNDSUlMaXRlcmFsKCJvcHRpb25zIikpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwb2xpY3lVUkksIChBU0NJSUxp
dGVyYWwoInBvbGljeS11cmkiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGFsbG93TWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdhbGxvdycgZGlyZWN0
aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJ2RlZmF1bHQtc3JjJy4gUGxlYXNlIHVzZSB0aGF0
IGRpcmVjdGl2ZSBpbnN0ZWFkLCBhcyAnYWxsb3cnIGhhcyBubyBlZmZlY3QuIikpKTsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcHRpb25zTWVzc2FnZSwgKEFT
Q0lJTGl0ZXJhbCgiVGhlICdvcHRpb25zJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0
aCAndW5zYWZlLWlubGluZScgYW5kICd1bnNhZmUtZXZhbCcgc291cmNlIGV4cHJlc3Npb25zIGZv
ciB0aGUgJ3NjcmlwdC1zcmMnIGFuZCAnc3R5bGUtc3JjJyBkaXJlY3RpdmVzLiBQbGVhc2UgdXNl
IHRob3NlIGRpcmVjdGl2ZXMgaW5zdGVhZCwgYXMgJ29wdGlvbnMnIGhhcyBubyBlZmZlY3QuIikp
KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwb2xpY3lVUklN
ZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJUaGUgJ3BvbGljeS11cmknIGRpcmVjdGl2ZSBoYXMgYmVl
biByZW1vdmVkIGZyb20gdGhlIHNwZWNpZmljYXRpb24uIFBsZWFzZSBzcGVjaWZ5IGEgY29tcGxl
dGUgcG9saWN5IHZpYSB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgaGVhZGVyLiIpKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gYWxsb3coQVNDSUlMaXRlcmFsKCJhbGxv
dyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBvcHRpb25zKEFTQ0lJTGl0
ZXJhbCgib3B0aW9ucyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwb2xp
Y3lVUkkoQVNDSUlMaXRlcmFsKCJwb2xpY3ktdXJpIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGFsbG93TWVzc2FnZShBU0NJSUxpdGVyYWwoIlRoZSAnYWxsb3cnIGRpcmVj
dGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICdkZWZhdWx0LXNyYycuIFBsZWFzZSB1c2UgdGhh
dCBkaXJlY3RpdmUgaW5zdGVhZCwgYXMgJ2FsbG93JyBoYXMgbm8gZWZmZWN0LiIpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBvcHRpb25zTWVzc2FnZShBU0NJSUxpdGVyYWwo
IlRoZSAnb3B0aW9ucycgZGlyZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJ3Vuc2FmZS1p
bmxpbmUnIGFuZCAndW5zYWZlLWV2YWwnIHNvdXJjZSBleHByZXNzaW9ucyBmb3IgdGhlICdzY3Jp
cHQtc3JjJyBhbmQgJ3N0eWxlLXNyYycgZGlyZWN0aXZlcy4gUGxlYXNlIHVzZSB0aG9zZSBkaXJl
Y3RpdmVzIGluc3RlYWQsIGFzICdvcHRpb25zJyBoYXMgbm8gZWZmZWN0LiIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwb2xpY3lVUklNZXNzYWdlKEFTQ0lJTGl0ZXJhbCgi
VGhlICdwb2xpY3ktdXJpJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzcGVj
aWZpY2F0aW9uLiBQbGVhc2Ugc3BlY2lmeSBhIGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENvbnRl
bnQtU2VjdXJpdHktUG9saWN5IGhlYWRlci4iKSk7CiAKICAgICBTdHJpbmcgbWVzc2FnZSA9IG1h
a2VTdHJpbmcoIlVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUg
JyIsIG5hbWUsICInLlxuIik7CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGFsbG93
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA3ZjA3YmFlMzY0MjM5MWRhYzFhYzk4
ZjBmOWVmODQ5YzUwMzJlMWM1Li41NjlhOGMwMzBmMjcyYTU3ZmM5NTFhN2Q4ZDQ2ZDgzM2ExZjkw
MDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xODEsMTMgKzE4MSwxMyBAQCB0
eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdpbmRvdyo+IERPTVdpbmRvd1NldDsKIAogc3RhdGlj
IERPTVdpbmRvd1NldCYgd2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycygpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERPTVdpbmRvd1NldCwgd2luZG93c1dpdGhV
bmxvYWRFdmVudExpc3RlbmVycywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxET01X
aW5kb3dTZXQ+IHdpbmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnM7CiAgICAgcmV0dXJuIHdp
bmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnM7CiB9CiAKIHN0YXRpYyBET01XaW5kb3dTZXQm
IHdpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NXaXRoQmVmb3JlVW5s
b2FkRXZlbnRMaXN0ZW5lcnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NV2lu
ZG93U2V0PiB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzOwogICAgIHJldHVy
biB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMTUzNmYxYTlhOWZhMjEzMzI2MmMzNjNlMjZhZTg4
NzkyYmRlZTA0Mi4uODg5MTQ5MjYwMjI3MmZhZmJkOTdiYjdiOTllMWVhMjJmN2E4MjQ2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzk1LDcgKzM5NSw3IEBAIEV2ZW50
SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIERyYWdT
dGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChEcmFnU3RhdGUsIHN0YXRlLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPERyYWdTdGF0ZT4gc3RhdGU7CiAgICAgcmV0dXJuIHN0YXRlOwogfQogI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMDQwLDEwICszMDQwLDEwIEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlF
dmVudCkKIAogc3RhdGljIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uRm9yS2V5KGNvbnN0
IEF0b21pY1N0cmluZyYga2V5SWRlbnRpZmllcikKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBEb3duLCAoIkRvd24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgVXAsICgiVXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
TGVmdCwgKCJMZWZ0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJp
Z2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IERvd24oIkRvd24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBVcCgiVXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBMZWZ0KCJMZWZ0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gUmlnaHQoIlJpZ2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbk5vbmU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCmluZGV4IGVkOTljZmY3ZjA2OGEz
NDQzMzBkNzhmNjA4YmFkMDM5NDU4MTljMTAuLjYzOTRiYzFkYmUxYjI2YTc4OTg3MDllOTEwYTBh
MDViMjA4ZDFlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtOTQs
NyArOTQsNyBAQCBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cGxhdGZvcm0oKSBjb25zdAogICAgIGlm
ICghU3RyaW5nKFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STTsKICAgICBzdHJ1Y3QgdXRzbmFtZSBv
c25hbWU7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcGxhdGZv
cm1OYW1lLCAodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25hbWUuc3lzbmFtZSkgKyBT
dHJpbmcoIiAiKSArIFN0cmluZyhvc25hbWUubWFjaGluZSkgOiBlbXB0eVN0cmluZygpKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcGxhdGZvcm1OYW1lKHVuYW1lKCZvc25h
bWUpID49IDAgPyBTdHJpbmcob3NuYW1lLnN5c25hbWUpICsgU3RyaW5nKCIgIikgKyBTdHJpbmco
b3NuYW1lLm1hY2hpbmUpIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFt
ZTsKICNlbHNlCiAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKaW5kZXggZjZjY2MxNDk2ZDJk
YTIyNTRiNzZmNWE0ZTk0ZTc5MTVjNjYyZTk1Ni4uNTM3ZGM0NTVkZmU3YTgyOGZlOWNlNjY0NjJh
ZGY2YWU2OGY2NjEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJp
bGl0eVN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIHBh
Z2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0ZSBzdGF0ZSkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aXNpYmxlLCAo
QVNDSUlMaXRlcmFsKCJ2aXNpYmxlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBoaWRkZW4sIChBU0NJSUxpdGVyYWwoImhpZGRlbiIpKSk7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcHJlcmVuZGVy
LCAoQVNDSUlMaXRlcmFsKCJwcmVyZW5kZXIiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IHZpc2libGUoQVNDSUlMaXRlcmFsKCJ2aXNpYmxlIikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGhpZGRlbihBU0NJSUxpdGVyYWwoImhp
ZGRlbiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBwcmVyZW5k
ZXIoQVNDSUlMaXRlcmFsKCJwcmVyZW5kZXIiKSk7CiAKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAg
ICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAppbmRleCBlMDc0MzRjMjNjNjhjNTY1NDJmMDAx
MjdmNWQ5YzM1ZWEwZTQwZTcxLi5hNTIyZTk3OTM5ODhmMTY0ZDdmYmM4NjJlM2M4ODdhZjhmOTMw
NDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSB7CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBO
YXZpZ2F0aW9uVGltaW5nRnVuY3Rpb24+IFJlc3RyaWN0ZWRLZXlNYXA7CiBzdGF0aWMgUmVzdHJp
Y3RlZEtleU1hcCByZXN0cmljdGVkS2V5TWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoUmVzdHJpY3RlZEtleU1hcCwgbWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlc3RyaWN0ZWRLZXlNYXA+IG1hcDsKICAgICBpZiAobWFwLmlzRW1wdHkoKSkg
ewogICAgICAgICBtYXAuYWRkKCJuYXZpZ2F0aW9uU3RhcnQiLCAmUGVyZm9ybWFuY2VUaW1pbmc6
Om5hdmlnYXRpb25TdGFydCk7CiAgICAgICAgIG1hcC5hZGQoInVubG9hZEV2ZW50U3RhcnQiLCAm
UGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5UG9saWN5LmNwcAppbmRleCA3MGQ2OWEwM2EwZjkxOTc5Yjg5OTBjYzZiMmNmMTVjNDk2
OWJjNjM5Li43NjRiMTE2MzljZDc5NjQ1M2MyYzU0MGU5MjQ2NTdiNDNkZmFhODk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8T3JpZ2luQWNjZXNzV2hpdGVMaXN0Pj4g
T3JpZ2luQWNjZXNzTWFwOwogCiBzdGF0aWMgT3JpZ2luQWNjZXNzTWFwJiBvcmlnaW5BY2Nlc3NN
YXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPcmlnaW5BY2Nlc3NN
YXAsIG9yaWdpbkFjY2Vzc01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPcmln
aW5BY2Nlc3NNYXA+IG9yaWdpbkFjY2Vzc01hcDsKICAgICByZXR1cm4gb3JpZ2luQWNjZXNzTWFw
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0
dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAK
aW5kZXggMWQ2NzRiOWI4ZmIwY2YzZDczZGY1NWFjODcxNmM2OWU0YzNlNzY0ZC4uMGQ5NDg3NGFh
YjY2OGY2ZDFlZDhkM2I4MDA0Y2YyOTI5OWIzZWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29sIFVzZXJD
b250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPgogCiBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UoY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHNjaGVtZVNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiOi8vIikpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBzY2hlbWVTZXBhcmF0b3IoQVND
SUlMaXRlcmFsKCI6Ly8iKSk7CiAKICAgICBzaXplX3Qgc2NoZW1lRW5kUG9zID0gcGF0dGVybi5m
aW5kKHNjaGVtZVNlcGFyYXRvcik7CiAgICAgaWYgKHNjaGVtZUVuZFBvcyA9PSBub3RGb3VuZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcAppbmRleCA1ZTZlZjJhZDc3NzAwNDdiODViY2YxNWExNzBkNzZjZDY5ZjUzYTkz
Li45MjkzN2Q2M2M5MTIyZjhiYTNkOWNiYzBlOTdhNDAyZTQ5MDFjNjBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3Bw
CkBAIC01ODQsMTEgKzU4NCwxMSBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBzaGFkb3dMaXN0TGVu
Z3RoKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKIAogc3RhdGljIGlubGluZSBjb25zdCBTaGFk
b3dEYXRhKiBzaGFkb3dGb3JCbGVuZGluZyhjb25zdCBTaGFkb3dEYXRhKiBzcmNTaGFkb3csIGNv
bnN0IFNoYWRvd0RhdGEqIG90aGVyU2hhZG93KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0U2hhZG93RGF0YSwgKEludFBvaW50KCksIDAs
IDAsIE5vcm1hbCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRTaGFkb3dEYXRhLCAo
SW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdFNoYWRvd0RhdGEoSW50
UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2hhZG93RGF0YT4gZGVmYXVsdEluc2V0U2hhZG93RGF0YShJ
bnRQb2ludCgpLCAwLCAwLCBJbnNldCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFdlYktp
dEJveFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0
cmFuc3BhcmVudCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dE
YXRhLCBkZWZhdWx0SW5zZXRXZWJLaXRCb3hTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwg
SW5zZXQsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTaGFkb3dEYXRhPiBkZWZhdWx0V2ViS2l0Qm94U2hhZG93RGF0YShJbnRQb2ludCgpLCAw
LCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFNoYWRvd0RhdGE+IGRlZmF1bHRJbnNldFdlYktpdEJveFNoYWRvd0RhdGEoSW50
UG9pbnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCk7CiAKICAgICBp
ZiAoc3JjU2hhZG93KQogICAgICAgICByZXR1cm4gc3JjU2hhZG93OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggZGQ1
NWMyODRhYzhkOGM5MjY0NDI3NjdiZTU2Y2FiNzlmZmZhMjIxYi4uYmE2MzgzOTQ0NDNlYjk2YWVl
MzY4MjI2ZGYyNmQ2NTQ0YTc2ZTIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9p
ZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJFbGVt
ZW50KiByZW5kZXJlciwgUmVuZGUKICAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVy
IG1hcC4KICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bm9uZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBub25lKCJub25l
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIAogICAgICAg
ICAvLyBOb3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMgYWN0aXZlIGFuZCBh
ZGQgYW55IG5ldyBhbmltYXRpb25zLgogICAgICAgICBpZiAodGFyZ2V0U3R5bGUtPmFuaW1hdGlv
bnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKaW5kZXggOTM1OTNhZDI3ZDlhNmQw
M2U3ZGI0MGVkNGM4YzJjOGM5MWRkMGU3Yi4uNjlkZjBlN2ViYWMyZDAyOGIyNWRlZDNjMDY0NDk0
NDgzOWY5YjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCkBAIC0xODksMjU5ICsx
ODksMjU5IEBAIFBsYXRmb3JtQ3Vyc29yIEN1cnNvcjo6cGxhdGZvcm1DdXJzb3IoKSBjb25zdAog
CiBjb25zdCBDdXJzb3ImIHBvaW50ZXJDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlBvaW50ZXIpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6UG9pbnRlcik7CiAgICAgcmV0dXJuIGM7
CiB9CiAKIGNvbnN0IEN1cnNvciYgY3Jvc3NDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNyb3NzKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNyb3NzKTsKICAgICByZXR1cm4gYzsK
IH0KIAogY29uc3QgQ3Vyc29yJiBoYW5kQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpIYW5kKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkhhbmQpOwogICAgIHJldHVybiBjOwogfQog
CiBjb25zdCBDdXJzb3ImIG1vdmVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok1vdmUpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6TW92ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNv
bnN0IEN1cnNvciYgdmVydGljYWxUZXh0Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpWZXJ0aWNhbFRleHQpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6VmVydGljYWxUZXh0KTsKICAg
ICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjZWxsQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDZWxsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNlbGwpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNvbnRleHRNZW51Q3Vyc29yKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDb250ZXh0
TWVudSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpDb250
ZXh0TWVudSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgYWxpYXNDdXJzb3Io
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OkFsaWFzKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6
OkFsaWFzKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6b29tSW5DdXJzb3Io
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6Olpvb21JbikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29y
Ojpab29tSW4pOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHpvb21PdXRDdXJz
b3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6Olpvb21PdXQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1
cnNvcjo6Wm9vbU91dCk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgY29weUN1
cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywg
KEN1cnNvcjo6Q29weSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vy
c29yOjpDb3B5KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub25lQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpOb25lKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6
Ok5vbmUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHByb2dyZXNzQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpQcm9ncmVzcykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vy
c29yOjpQcm9ncmVzcyk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgbm9Ecm9w
Q3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBj
LCAoQ3Vyc29yOjpOb0Ryb3ApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBj
KEN1cnNvcjo6Tm9Ecm9wKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3RB
bGxvd2VkQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpOb3RBbGxvd2VkKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEN1cnNvcj4gYyhDdXJzb3I6Ok5vdEFsbG93ZWQpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIGlCZWFtQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpJQmVhbSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpJQmVhbSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0
IEN1cnNvciYgd2FpdEN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2FpdCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDdXJzb3I+IGMoQ3Vyc29yOjpXYWl0KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vy
c29yJiBoZWxwQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpIZWxwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1
cnNvcj4gYyhDdXJzb3I6OkhlbHApOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3Im
IGVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6OkVhc3RSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6RWFzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAK
IGNvbnN0IEN1cnNvciYgbm9ydGhSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUmVzaXplKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoUmVzaXplKTsKICAg
ICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RSZXNpemVDdXJzb3IoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
Ok5vcnRoRWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMo
Q3Vyc29yOjpOb3J0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJz
b3ImIG5vcnRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhXZXN0UmVzaXplKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZSk7CiAg
ICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgc291dGhSZXNpemVDdXJzb3IoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNv
dXRoUmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6
OlNvdXRoUmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBzb3V0aEVh
c3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoRWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhXZXN0
UmVzaXplKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNv
dXRoV2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgd2VzdFJl
c2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6V2VzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
dXJzb3I+IGMoQ3Vyc29yOjpXZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiBub3J0aFNvdXRoUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFNvdXRoUmVzaXplKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoU291dGhSZXNp
emUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RXZXN0UmVzaXplQ3Vy
c29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAo
Q3Vyc29yOjpFYXN0V2VzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJz
b3I+IGMoQ3Vyc29yOjpFYXN0V2VzdFJlc2l6ZSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0
IEN1cnNvciYgbm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RTb3V0
aFdlc3RSZXNpemUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNv
cjo6Tm9ydGhFYXN0U291dGhXZXN0UmVzaXplKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFNvdXRo
RWFzdFJlc2l6ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29y
OjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemUpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBD
dXJzb3ImIGNvbHVtblJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29sdW1uUmVzaXplKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkNvbHVtblJlc2l6ZSk7CiAgICAgcmV0
dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNvciYgcm93UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpSb3dSZXNpemUp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6Um93UmVzaXpl
KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBtaWRkbGVQYW5uaW5nQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpNaWRkbGVQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4g
YyhDdXJzb3I6Ok1pZGRsZVBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3Qg
Q3Vyc29yJiBlYXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6RWFzdFBhbm5pbmcpOwogICAgIHJldHVy
biBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aFBhbm5pbmdDdXJzb3IoKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRo
UGFubmluZykpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpO
b3J0aFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0
aEVhc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6Ok5vcnRoRWFzdFBhbm5pbmcpOwogICAgIHJl
dHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RQYW5uaW5nQ3Vyc29yKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpOb3J0aFdlc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4g
YyhDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29u
c3QgQ3Vyc29yJiBzb3V0aFBhbm5pbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoUGFubmluZykpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDdXJzb3I+IGMoQ3Vyc29yOjpTb3V0aFBhbm5pbmcpOwogICAg
IHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBzb3V0aEVhc3RQYW5uaW5nQ3Vyc29y
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpTb3V0aEVhc3RQYW5uaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNv
cj4gYyhDdXJzb3I6OlNvdXRoRWFzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAog
Y29uc3QgQ3Vyc29yJiBzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFdlc3RQYW5uaW5n
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OlNvdXRoV2Vz
dFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiB3ZXN0UGFu
bmluZ0N1cnNvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6V2VzdFBhbm5pbmcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Q3Vyc29yPiBjKEN1cnNvcjo6V2VzdFBhbm5pbmcpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIGdyYWJDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkdyYWIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q3Vyc29yPiBjKEN1cnNvcjo6R3JhYik7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgZ3JhYmJpbmdDdXJzb3IoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkdyYWJiaW5nKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEN1cnNvcj4gYyhDdXJzb3I6OkdyYWJiaW5nKTsKICAgICByZXR1cm4gYzsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGMyODkyZTQ1ZmZkOTY0MzcyNWRj
ODRhN2NjMGUyNjliZTcwZjA3NmEuLjE1M2RlZDU5ZjI0YWJkMzViOWE1NmM2Y2UxOGU3MDk4MTgw
ZDkzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBMYW5ndWFnZUNo
YW5nZU9ic2VydmVyRnVuY3Rpb24+IE9ic2VydmVyTWFwOwogc3RhdGljIE9ic2VydmVyTWFwJiBv
YnNlcnZlck1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE9ic2Vy
dmVyTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T2JzZXJ2ZXJNYXA+
IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGUwY2E1MzY2ZTcyNGM0Yjk2Zjk3NmZlNjdhMGYwMDIy
ZjZjOTBjMjIuLjRhNTBmODY2MWZjYzY0YWU0MTliMGMxNWJiMmQ5NjEyNDY0YzI1MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC03OSw3ICs3
OSw3IEBAIHN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29u
c3QgU3RyaW5nJiBvcmlnaW5hbCkKIAogICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYgaXQn
cyB0b28gbG9uZy4gVGhpcyBpcyBpbiBjb25zaXN0ZW5jeSB3aXRoIEFwcEtpdC4KICAgICB1bnNp
Z25lZCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtID0gMjQ7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9y
aXpvbnRhbEVsbGlwc2lzLCAxKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
ZWxsaXBzaXMoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAKICAgICBTdHJpbmcgdHJpbW1lZCA9
IG9yaWdpbmFsLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFj
dGVycyA9IG51bUNoYXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVy
T2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCmluZGV4IGE0MDBkZjNhZTNhOTE2ZjA2NjhmNzRj
NzI1ZTE3MzM0MWYwNGExODguLjY1NDQ1NjViM2E3NmM1YzNiYWE2ZTRlNTc0YjBhMmU2MDFmMThl
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBA
IC0zNTAsNyArMzUwLDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZE5vbkltYWdl
TWltZVR5cGVzKCkKIAogc3RhdGljIE1lZGlhTUlNRVR5cGVNYXAmIG1lZGlhTUlNRVR5cGVNYXAo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYU1JTUVUeXBlTWFw
LCBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE1lZGlhTUlNRVR5cGVNYXA+IG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXA7CiAK
ICAgICBpZiAoIW1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcDsKQEAgLTY0MCw3ICs2NDAsNyBA
QCBIYXNoU2V0PFN0cmluZz4mIE1JTUVUeXBlUmVnaXN0cnk6OmdldFVuc3VwcG9ydGVkVGV4dE1J
TUVUeXBlcygpCiAKIGNvbnN0IFN0cmluZyYgZGVmYXVsdE1JTUVUeXBlKCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZhdWx0TUlNRVR5cGUs
IChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gZGVmYXVsdE1JTUVUeXBlKEFTQ0lJTGl0ZXJh
bCgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikpOwogICAgIHJldHVybiBkZWZhdWx0TUlNRVR5
cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNz
dXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwCmluZGV4IGQ1MjAyZGJjNTA0MTM1Njg3MmJjZDU1YTIwMTJmM2RjNjA3MzExNjMu
LjhjOTIzZjVlMGY1NzM0M2I1ZDQxODhmZjA3OTQwZjY5MzhhMTJhYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNDksNyAr
NDksNyBAQCBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzX2xvZ2dp
bmdFbmFibGVkID0gZmFsc2U7CiAKIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgbWVtb3J5UHJlc3N1
cmVIYW5kbGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLCBzdGF0aWNNZW1vcnlQcmVzc3VyZUhhbmRsZXIsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVtb3J5UHJlc3N1cmVIYW5kbGVyPiBzdGF0aWNNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI7CiAgICAgcmV0dXJuIHN0YXRpY01lbW9yeVByZXNzdXJlSGFuZGxlcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IDdk
YzNiMmI1MDk3NWY3YWY0M2JjMjA5YTIyMzI4MjkzMjBjOGI3NDEuLmM0MWEyMmRlYWViMTU5OTJh
NjFmNTk5NjFjYzUyZDU0OTEwMjc2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgVVJMU2NoZW1lc01hcCYgbG9jYWxVUkxTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbG9jYWxTY2hlbWVzLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNjaGVtZXNNYXA+IGxvY2FsU2NoZW1lczsKIAog
ICAgIGlmIChsb2NhbFNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGxvY2FsU2NoZW1lcy5h
ZGQoImZpbGUiKTsKQEAgLTQ2LDEzICs0NiwxMyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbG9j
YWxVUkxTY2hlbWVzKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGRpc3BsYXlJc29sYXRlZFVS
TFNjaGVtZXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hl
bWVzTWFwLCBkaXNwbGF5SXNvbGF0ZWRTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVSTFNjaGVtZXNNYXA+IGRpc3BsYXlJc29sYXRlZFNjaGVtZXM7CiAgICAgcmV0dXJu
IGRpc3BsYXlJc29sYXRlZFNjaGVtZXM7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1
cmVTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2No
ZW1lc01hcCwgc2VjdXJlU2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
UkxTY2hlbWVzTWFwPiBzZWN1cmVTY2hlbWVzOwogCiAgICAgaWYgKHNlY3VyZVNjaGVtZXMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIHNlY3VyZVNjaGVtZXMuYWRkKCJodHRwcyIpOwpAQCAtNjUsNyAr
NjUsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2VjdXJlU2NoZW1lcygpCiAKIHN0YXRpYyBV
UkxTY2hlbWVzTWFwJiBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzV2l0aFVuaXF1ZU9y
aWdpbnMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gc2No
ZW1lc1dpdGhVbmlxdWVPcmlnaW5zOwogCiAgICAgaWYgKHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lu
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmFkZCgiYWJv
dXQiKTsKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNXaXRo
VW5pcXVlT3JpZ2lucygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBlbXB0eURvY3VtZW50U2No
ZW1lcygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNN
YXAsIGVtcHR5RG9jdW1lbnRTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFVSTFNjaGVtZXNNYXA+IGVtcHR5RG9jdW1lbnRTY2hlbWVzOwogCiAgICAgaWYgKGVtcHR5RG9j
dW1lbnRTY2hlbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZW1wdHlEb2N1bWVudFNjaGVtZXMuYWRk
KCJhYm91dCIpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+JiBzY2hl
bWVzRm9yYmlkZGVuRnJvbURvbWFpblJlbGF4YXRpb24oKQogCiBzdGF0aWMgVVJMU2NoZW1lc01h
cCYgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgY2FuRGlzcGxheU9ubHlJZkNhblJl
cXVlc3RTY2hlbWVzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVSTFNjaGVtZXNN
YXA+IGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lczsKIAogICAgIGlmIChjYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNhbkRpc3Bs
YXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcy5hZGQoImJsb2IiKTsKQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVz
KCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hl
bWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01h
cCwgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VVJMU2NoZW1lc01hcD4gbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVt
ZXM7CiAgICAgcmV0dXJuIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzOwogfQogCkBA
IC0xMzQsMjAgKzEzNCwyMCBAQCBjb25zdCBVUkxTY2hlbWVzTWFwJiBTY2hlbWVSZWdpc3RyeTo6
bG9jYWxTY2hlbWVzKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNBbGxvd2luZ0xv
Y2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lc0FsbG93aW5nTG9jYWxTdG9y
YWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2
YXRlQnJvd3Npbmc7CiAgICAgcmV0dXJuIHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vz
c0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc0Fs
bG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNBbGxvd2luZ0RhdGFi
YXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VVJMU2NoZW1lc01hcD4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVC
cm93c2luZzsKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZh
dGVCcm93c2luZzsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVkU2NoZW1l
cygpCiB7CiAgICAgLy8gRklYTUU6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc3MTYwCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNN
YXAsIENPUlNFbmFibGVkU2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
UkxTY2hlbWVzTWFwPiBDT1JTRW5hYmxlZFNjaGVtZXM7CiAKICAgICBpZiAoQ09SU0VuYWJsZWRT
Y2hlbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBDT1JTRW5hYmxlZFNjaGVtZXMuYWRkKCJodHRw
Iik7CkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVk
U2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBDb250ZW50U2VjdXJpdHlQb2xpY3lC
eXBhc3NpbmdTY2hlbWVzKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
VVJMU2NoZW1lc01hcCwgc2NoZW1lcywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
UkxTY2hlbWVzTWFwPiBzY2hlbWVzOwogICAgIHJldHVybiBzY2hlbWVzOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKaW5kZXggOGVkMmQ5NTk5N2I1NGMw
MzlmNzBiNDZiNWJiMjQ3OWRlNzBjZWY3MC4uZGQ4MzcxZWUwNzVjNWM0MmMzNTE3MWY4ZGU3NGI1
Njg2ZTc0NDgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
VGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNw
cApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTY3JvbGxiYXJUaGVtZSog
U2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkKIHsKICAgICBpZiAoU2V0dGluZ3M6Om1vY2tTY3JvbGxi
YXJzRW5hYmxlZCgpKSB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
Y3JvbGxiYXJUaGVtZU1vY2ssIG1vY2tUaGVtZSwgKCkpOwotICAgICAgICByZXR1cm4gJm1vY2tU
aGVtZTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNjcm9sbGJhclRoZW1lTW9jaz4g
bW9ja1RoZW1lOworICAgICAgICByZXR1cm4gJm1vY2tUaGVtZS5nZXQoKTsKICAgICB9CiAgICAg
cmV0dXJuIG5hdGl2ZVRoZW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAyNjNl
NGQ0NmI2NjJjYmY4MzNlMmU2MmVkYmZiZTkwOWM5MjYyZDlmLi42NTY4ZWZlNmFiMmE0N2MzODdj
NGQyOWIzZDQ3MWEzZGM4MjI2MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTE4MDYs
NyArMTgwNiw3IEBAIGJvb2wgcHJvdG9jb2xJc0luSFRUUEZhbWlseShjb25zdCBTdHJpbmcmIHVy
bCkKIAogY29uc3QgVVJMJiBibGFua1VSTCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFVSTCwgc3RhdGljQmxhbmtVUkwsIChQYXJzZWRVUkxTdHJpbmcsICJhYm91dDpi
bGFuayIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMPiBzdGF0aWNCbGFua1VSTChQ
YXJzZWRVUkxTdHJpbmcsICJhYm91dDpibGFuayIpOwogICAgIHJldHVybiBzdGF0aWNCbGFua1VS
TDsKIH0KIApAQCAtMTgyMSw3ICsxODIxLDcgQEAgYm9vbCBpc0RlZmF1bHRQb3J0Rm9yUHJvdG9j
b2wodW5zaWduZWQgc2hvcnQgcG9ydCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgdW5zaWduZWQsIENh
c2VGb2xkaW5nSGFzaD4gRGVmYXVsdFBvcnRzTWFwOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChEZWZhdWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cywgKCkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxEZWZhdWx0UG9ydHNNYXA+IGRlZmF1bHRQb3J0czsKICAgICBpZiAo
ZGVmYXVsdFBvcnRzLmlzRW1wdHkoKSkgewogICAgICAgICBkZWZhdWx0UG9ydHMuc2V0KCJodHRw
IiwgODApOwogICAgICAgICBkZWZhdWx0UG9ydHMuc2V0KCJodHRwcyIsIDQ0Myk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCmluZGV4IDNiN2Nh
MzQ1ZGE1M2JjNDllNDNiNWNjZDM0YzE4YTQ1NjBjNTFlMmYuLmUyY2M3Yjc4Njk5ZDkyYjEyNTdi
YzkzYzk0MDY1MTkxMWE3NTY3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgYm9vbCBBbmltYXRpb246
OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmltYXRpb24qIG8sIGJvb2wgbWF0Y2hQbGF5U3RhdGVz
KSBjb25zdAogCiBjb25zdCBTdHJpbmcmIEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaXRpYWxW
YWx1ZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gaW5pdGlhbFZhbHVlKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKTsKICAgICByZXR1cm4g
aW5pdGlhbFZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmNwcAppbmRleCBlMjAyMTQ4NGM4MzNiMmJjOWI0MWY2NDY4ZTQ1M2ZiOGY4NzM3
N2RkLi5lZTFlOTBlMzg3MmZlYzI1MTFhZDJhYTU4MWMyNDA2MGU2Nzk3MGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTM1LDcgKzM1
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb1Nlc3Npb24mIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF1
ZGlvU2Vzc2lvbiwgc2Vzc2lvbiwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRp
b1Nlc3Npb24+IHNlc3Npb247CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5jcHAKaW5kZXggM2U3NzQ3ODVh
NThkZmEzZjA2OTQxNTBmM2M4MzFiMGU4NjRmN2Q3Yy4uNzA1NjBlYTAzZjg0M2I4ZDRlZDU0ZTE1
NzlkNzc5NWM5MGI3ZWRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkVsZXZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkVsZXZhdGlvbi5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgY29uc3QgZmxvYXQgUmVzcG9uc2VT
YW1wbGVSYXRlID0gNDQxMDA7CiBzdGF0aWMgQXVkaW9CdXMqIGdldENvbmNhdGVuYXRlZEltcHVs
c2VSZXNwb25zZXNGb3JTdWJqZWN0KGNvbnN0IFN0cmluZyYgc3ViamVjdE5hbWUpCiB7CiAgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQXVkaW9CdXMqPiBBdWRpb0J1c01hcDsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9CdXNNYXAsIGF1ZGlvQnVzTWFwLCAoKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvQnVzTWFwPiBhdWRpb0J1c01hcDsKIAog
ICAgIEF1ZGlvQnVzKiBidXM7CiAgICAgQXVkaW9CdXNNYXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0g
YXVkaW9CdXNNYXAuZmluZChzdWJqZWN0TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDFjMGU3YWUzYTc3
ZTAwZTZkYWNmMDUzMzA3ZTk2OGIxOWEyY2ZlN2MuLjJmMzA3MjlmODQ3N2U3NzM3NDdiM2NmZDFj
M2U4MjRmYjhhNGFmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNpZiAhUExBVEZPUk0oSU9TKQogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXIsIG1hbmFnZXIsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFTZXNzaW9uTWFuYWdlcj4gbWFuYWdlcjsKICAgICByZXR1
cm4gbWFuYWdlcjsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwCmluZGV4IDI1Mzk1MTk4NWRm
ZTI2NWNjZWI3ZDIxNGRjZmM1MzE0MWE0NzU3OTYuLmQwNTMzNjMyN2Y5Mjg3MjQ1YTc5NDBjMGZh
OGZkYjZhMjcwMDcxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgY29u
c3QgaW50IGtQcmVmZXJyZWRCdWZmZXJTaXplID0gMjU2OwogdHlwZWRlZiBIYXNoU2V0PEF1ZGlv
RGVzdGluYXRpb25JT1MqPiBBdWRpb0Rlc3RpbmF0aW9uU2V0Owogc3RhdGljIEF1ZGlvRGVzdGlu
YXRpb25TZXQmIGF1ZGlvRGVzdGluYXRpb25zKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXVkaW9EZXN0aW5hdGlvblNldCwgYXVkaW9EZXN0aW5hdGlvblNldCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb0Rlc3RpbmF0aW9uU2V0PiBhdWRpb0Rl
c3RpbmF0aW9uU2V0OwogICAgIHJldHVybiBhdWRpb0Rlc3RpbmF0aW9uU2V0OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tCmluZGV4IGU1ZWI3N2RiMzhmMzk3YTdhMGQ5M2MwMGM5YjRlYTUzZmMx
ZTdhYzMuLjkzZTI4NDJmZmFkNDcwN2E3Njk5MGIwODFkZGNkMTBlM2Y4MjNmNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tCkBAIC0xMDgsNyArMTA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBNZWRpYVNlc3Npb25NYW5hZ2VyJiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFu
YWdlcmlPUywgbWFuYWdlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNZWRpYVNl
c3Npb25NYW5hZ2VyaU9TPiBtYW5hZ2VyOwogICAgIHJldHVybiBtYW5hZ2VyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCmlu
ZGV4IGNlZTE0Yjc0N2IyYTVjOTU5YmI3OTVmN2NlNGU1NjM0YWRjNzdjMmEuLjk4NWY1MjJlZTRi
NWU2NWNmNjAxMDRjMWFhZTNjZTA2Njk4ZTAxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIEN1
cnNvck1hcDo6Q3Vyc29yTWFwKCkKIAogaW50IGdldEVjb3JlQ3Vyc29yKGNvbnN0IFN0cmluZyYg
Y3Vyc29yU3RyaW5nKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3JNYXAsIGN1cnNvclN0cmluZ01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
dXJzb3JNYXA+IGN1cnNvclN0cmluZ01hcDsKIAogICAgIHJldHVybiBjdXJzb3JTdHJpbmdNYXAu
Y3Vyc29yKGN1cnNvclN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuY3BwCmluZGV4IDZhOTM3YTllMDRlYWMxNmQ0Y2MxOWE3NjJjZmY1MjNmNDRiMjE3YTYu
LmJmMDA4Nzc0ODEyM2M2OGU1OGYyMGVjODAxZThjZDMxOTlhNGVkMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGlj
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250R2x5cGhzQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRH
bHlwaHNDYWNoZUtleSYgYikKIAogc3RhdGljIEZvbnRHbHlwaHNDYWNoZSYgZm9udEdseXBoc0Nh
Y2hlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udEdseXBoc0Nh
Y2hlLCBjYWNoZSwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250R2x5cGhzQ2Fj
aGU+IGNhY2hlOwogICAgIHJldHVybiBjYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKaW5kZXggOGE5M2Y1ZjE3MDBjMjEwZjE3OGY5
NTkzM2UxZjUwMmVhYjQ4YmM0Yy4uNjRkNmY1YTVjNDc3NzI3ZDZkOTVhNGVlYmFhMDJhNDg4NjVh
MzU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQu
Y3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBHTENvbnRleHQ6OmNsZWFudXBTaGFyZWRYMTFE
aXNwbGF5KCkKIHR5cGVkZWYgVmVjdG9yPEdMQ29udGV4dCo+IEFjdGl2ZUNvbnRleHRMaXN0Owog
c3RhdGljIEFjdGl2ZUNvbnRleHRMaXN0JiBhY3RpdmVDb250ZXh0TGlzdCgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFjdGl2ZUNvbnRleHRMaXN0LCBhY3RpdmVDb250
ZXh0cywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBY3RpdmVDb250ZXh0TGlzdD4g
YWN0aXZlQ29udGV4dHM7CiAgICAgcmV0dXJuIGFjdGl2ZUNvbnRleHRzOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IGE2NDRiNzdhMDRlN2VjOWY2M2NmYjEyZjViMzlmYTQzYWJmYjNmODMuLjM0MGZiODMxMDYyNDg1
MjM2NWNkOTgzYjU1ZjcwMDQ3YTA0MzA3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFwaGljc0xheWVyKiwgVmVj
dG9yPEZsb2F0UmVjdD4+IFJlcGFpbnRNYXA7CiBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJl
Y3RNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXBhaW50TWFw
LCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVwYWludE1hcD4gbWFwOwog
ICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBkMDhmZmIxYjA1Njc3ZWZkMTc2MDAxNzczZmViYThl
ZTk4NWY3ZjM1Li45MDBlNDQyZTVmZmUwMjZjY2U1MTgzM2UzZGYwMjhhN2JkOTA0YWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBA
IC0yNDAsMTkgKzI0MCwxOSBAQCBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRp
YUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwbwogCiBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhcHBsaWNhdGlvbk9j
dGV0U3RyZWFtLCAoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXBw
bGljYXRpb25PY3RldFN0cmVhbTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4
dFBsYWluKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB0ZXh0UGxhaW4sICgidGV4dC9wbGFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiB0ZXh0UGxhaW4oInRleHQvcGxhaW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCiBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBjb2RlY3MoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNvZGVjcywgKCJjb2RlY3MiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21pY1N0cmluZz4gY29kZWNzKCJjb2RlY3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY29kZWNzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IDkxN2NlMDkzODczNTlkZDY4OTNh
YjM4ZDAxOTk1MDYyNzdjNTAyZWEuLjZmZDg5YWU4MDU4OGIzOGEzZDU0YzRhYzFlOWRlYzdhNDBi
ODQ5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRv
d0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0Js
dXIuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToKIAogU2NyYXRjaEJ1ZmZlciYgU2Ny
YXRjaEJ1ZmZlcjo6c2hhcmVkKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEJ1ZmZlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTY3JhdGNoQnVmZmVyPiBzY3JhdGNoQnVmZmVyOwogICAgIHJldHVybiBzY3JhdGNo
QnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBmZDI5NTkwMzdhMTQ1YTY0Njc0MGI5
OTcyMjRjNjgxZDc5YWY4YjIwLi43YTYwYWNmOTE3YWNlNmNlMjJlNzllYTAyYzA0NGFhM2NjNTBi
MjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTI1NywyMSArMjU3LDIxIEBAIHN0YXRpYyBDRkFy
cmF5UmVmIG1ldGFkYXRhS2V5TmFtZXMoKQogLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBp
ZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhpcyBrZXkuCiBzdGF0aWMgQ0ZT
dHJpbmdSZWYgQ01UaW1lUmFuZ2VTdGFydEtleSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigic3RhcnQiKSkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDRlN0cmluZ1JlZj4ga2V5KENGU1RSKCJzdGFydCIpKTsKICAg
ICByZXR1cm4ga2V5OwogfQogCiAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIGlmIEFWQ0ZU
aW1lZE1ldGFkYXRhR3JvdXAuaCBleHBvcnRlZCB0aGlzIGtleS4KIHN0YXRpYyBDRlN0cmluZ1Jl
ZiBDTVRpbWVSYW5nZUR1cmF0aW9uS2V5KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQ0ZTdHJpbmdSZWYsIGtleSwgKENGU1RSKCJkdXJhdGlvbiIpKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPENGU3RyaW5nUmVmPiBrZXkoQ0ZTVFIoImR1cmF0aW9uIikpOwog
ICAgIHJldHVybiBrZXk7CiB9CiAKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZD
RiBleHBvcnRlZCB0aGlzIG5vdGlmaWNhdGlvbiBuYW1lLgogc3RhdGljIENGU3RyaW5nUmVmIENB
Q0ZDb250ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBuYW1lLCAoQ0ZTVFIoImtDQUNGQ29udGV4dE5l
ZWRzRmx1c2hOb3RpZmljYXRpb24iKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRlN0
cmluZ1JlZj4gbmFtZShDRlNUUigia0NBQ0ZDb250ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbiIp
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTg0
OGQ5OThmYTI4YmNlYzdkZTZmODAxNTFjNjAyN2IxNGI3ZDU0YS4uZTAxNjcyZTk5NGI3MWI4Yzgy
OGQ0ZTZlNjZmMzI0ODA2ZWFhYjI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMjQs
NyArMzI0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmJvb2xTdHJpbmcoYm9vbCB2YWwpCiB0eXBl
ZGVmIEhhc2hNYXA8TWVkaWFQbGF5ZXIqLCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKj4gUGxheWVyVG9Qcml2YXRlTWFwVHlwZTsKIHN0YXRpYyBQbGF5ZXJUb1ByaXZhdGVNYXBU
eXBlJiBwbGF5ZXJUb1ByaXZhdGVNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChQbGF5ZXJUb1ByaXZhdGVNYXBUeXBlLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGxheWVyVG9Qcml2YXRlTWFwVHlwZT4gbWFwOwogICAgIHJldHVybiBtYXA7
CiB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKaW5kZXggNGIwMzZjYTQw
Y2Y4YmRhMDY1NjhkZTBmYTUxYjRmMDMxYzg1YjI2Ny4uOGQxYThmN2E4ZDcxNjgzZDk4M2QzMzY3
OWI0MzU5ZDFhNTg2NWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExheWVyQ2hhbmdlc0ZsdXNoZXImIExh
eWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKExheWVyQ2hhbmdlc0ZsdXNoZXIsIGZsdXNoZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TGF5ZXJDaGFuZ2VzRmx1c2hlcj4gZmx1c2hlcjsKICAgICByZXR1cm4g
Zmx1c2hlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VTb3VyY2VDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZVNvdXJjZUNHV2luLmNwcAppbmRleCA4MDg4MzBiOGI4NTdiZDI4NmI4M2Zl
OGQ0NGM0NmE5NDE3MDk3YTM1Li4xZjFlN2IzMGFjMTVkMTEyZTQyNTQzMWFhY2UzOThhOTlkZjgy
OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZVNvdXJjZUNHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZVNvdXJjZUNHV2luLmNwcApAQCAtNTAsNyArNTAsNyBAQCBTdHJpbmcgcHJlZmVycmVk
RXh0ZW5zaW9uRm9ySW1hZ2VTb3VyY2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBT
dHJpbmdNYXA7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ01hcCwg
VVRJTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZ01hcD4gVVRJTWFw
OwogICAgIGlmIChVVElNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIFVUSU1hcC5hZGQoInB1Ymxp
Yy5odG1sIiwgImh0bWwiKTsKICAgICAgICAgVVRJTWFwLmFkZCgicHVibGljLmpwZWciLCAianBl
ZyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCA4ZDM0OWY0NWI4MTViZjEyYTQxYThkNzRjYzhjNjU0
MWI4NDM2NTI5Li42ZDJiZmI4ZDliNmZjY2U0YWMzY2E1ZWQ1MGE4ODY5MTkxMjE3OGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPFNvdXJjZUFscGhhPiBT
b3VyY2VBbHBoYTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFNvdXJjZUFscGhhOjplZmZlY3ROYW1lKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlQWxwaGEi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2VmZmVj
dE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IGQwMDE5NjlhMGZjOWQ4MDZiODAz
NDJhNjRmMjYyMTRkNzhkNWZhOTIuLjk5MWUyYzhmNmJhZDk2ZTBhZTJlNWEzZjAzMDYwZTg5ZGU3
MzZjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMzcsNyArMzcsNyBAQCBQYXNzUmVmUHRy
PFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVj
dE5hbWUsICgiU291cmNlR3JhcGhpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzX2Vm
ZmVjdE5hbWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcApp
bmRleCBiNWIzMWZjMTljZjE1NGZmOWI0OWU3NDhjZjI1NTRiYTk1MzViNWEzLi4zMzk3NzJkOWI3
YmY2NGZkM2QyMWU1NjhiNTc4Zjk1OWIzNDQ3YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKQEAg
LTc0LDggKzc0LDggQEAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RmFjZUNhY2hl
RW50cnk+LCBXVEY6OkludEhhc2g8dWludDY0X3Q+LCBXVEY6OlUKIAogc3RhdGljIEhhcmZCdXp6
RmFjZUNhY2hlKiBoYXJmQnV6ekZhY2VDYWNoZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEhhcmZCdXp6RmFjZUNhY2hlLCBzX2hhcmZCdXp6RmFjZUNhY2hlLCAoKSk7
Ci0gICAgcmV0dXJuICZzX2hhcmZCdXp6RmFjZUNhY2hlOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxIYXJmQnV6ekZhY2VDYWNoZT4gc19oYXJmQnV6ekZhY2VDYWNoZTsKKyAgICByZXR1cm4g
JnNfaGFyZkJ1enpGYWNlQ2FjaGUuZ2V0KCk7CiB9CiAKIEhhcmZCdXp6RmFjZTo6SGFyZkJ1enpG
YWNlKEZvbnRQbGF0Zm9ybURhdGEqIHBsYXRmb3JtRGF0YSwgdWludDY0X3QgdW5pcXVlSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1h
Yy5tbQppbmRleCA2OTAyMWE1MTI1ZmRmNTk2NDRhYzBkYzk2MzdlMDYxMDZiMTE2NzFiLi4wZGI5
NmRhZWY0NjhiNzEyZjk5ZmVlMDk4NDA1ZTRkYmQ5OTc0NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KQEAgLTE2Niw3
ICsxNjYsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OnNpbWlsYXJG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdAogICAgICAgICBpZiAoZmFtaWx5Lmlz
RW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdGF0aWMgU3RyaW5nKiBt
YXRjaFdvcmRzWzNdID0geyBuZXcgU3RyaW5nKCJBcmFiaWMiKSwgbmV3IFN0cmluZygiUGFzaHRv
IiksIG5ldyBTdHJpbmcoIlVyZHUiKSB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGdlZXphU3RyKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzICYmICFzaW1w
bGVGb250RGF0YTsgKytqKQogICAgICAgICAgICAgaWYgKGZhbWlseS5jb250YWlucygqbWF0Y2hX
b3Jkc1tqXSwgZmFsc2UpKQogICAgICAgICAgICAgICAgIHNpbXBsZUZvbnREYXRhID0gZ2V0Q2Fj
aGVkRm9udERhdGEoZGVzY3JpcHRpb24sIGdlZXphU3RyKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBQ
YXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnREZXNjcmlwdAogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250
Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpb24sIFNob3VsZFJldGFpbiBzaG91bGRSZXRhaW4pCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gdGltZXNTdHIoIlRpbWVzIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAvLyBGSVhNRTogV291bGQgYmUgZXZlbiBiZXR0
ZXIgdG8gc29tZWhvdyBnZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQgaGVyZS4gIEZvciBub3cg
d2UnbGwgcGljawogICAgIC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVzZXIgd291bGQgZ2V0IHdp
dGhvdXQgY2hhbmdpbmcgYW55IHByZWZzLgpAQCAtMTg4LDcgKzE4OCw3IEBAIFBhc3NSZWZQdHI8
U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpCiAgICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGl0LCB3ZSBmYWxsIGJh
Y2sgb24gTHVjaWRhIEdyYW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8vIGd1YXJhbnRlZWQgdG8g
YmUgdGhlcmUsIGFjY29yZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlzIGlzIGdvb2QgZW5vdWdo
CiAgICAgLy8gdG8gYXZvaWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBsdWNpZGFHcmFuZGVTdHIsICgiTHVjaWRhIEdy
YW5kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBsdWNpZGFHcmFuZGVTdHIoIkx1Y2lkYSBHcmFu
ZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZ2V0
Q2FjaGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBsdWNpZGFHcmFuZGVTdHIsIGZhbHNlLCBz
aG91bGRSZXRhaW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCmluZGV4IDg0NWM3N2Y3MmE1OWZkMGMxYjY5N2Nh
NGM4ZjY5ODhmMzg3YzVkOWYuLjI4NjRhNzFmYzRkNTc3OTY4YjRhMDU5MGU4ZjE4ODVmNjZkZDc1
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q2FjaGVXaW4uY3BwCkBAIC0zMDksNyArMzA5LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250
RGF0YT4gRm9udENhY2hlOjpmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3Qg
Rm8KIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0
RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBTaG91
bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGZhbGxiYWNrRm9udE5hbWUsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1lOwogICAgIGlmICghZmFs
bGJhY2tGb250TmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0
YShmb250RGVzY3JpcHRpb24sIGZhbGxiYWNrRm9udE5hbWUsIGZhbHNlLCBzaG91bGRSZXRhaW4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9G
b250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IGNhNmNhNWY4NjgwMjM5ODEwYjVhMjQyMzE0
OGQ1NjcxZjAxN2E1NjguLjQ1MmZhZDllMGFkMjU4ZDg3NDJjNWI1MjIwNGRiMzA2NGNmM2Q2NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RydWN0IEZpeGVk
U2l6ZUZvbnREYXRhS2V5VHJhaXRzIDogV1RGOjpHZW5lcmljSGFzaFRyYWl0czxGaXhlZFNpemVG
b250RGF0YUtleT4KICAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1
ZTsKICAgICBzdGF0aWMgY29uc3QgRml4ZWRTaXplRm9udERhdGFLZXkmIGVtcHR5VmFsdWUoKQog
ICAgIHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZpeGVkU2l6ZUZv
bnREYXRhS2V5LCBrZXksIChudWxsQXRvbSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Rml4ZWRTaXplRm9udERhdGFLZXk+IGtleShudWxsQXRvbSk7CiAgICAgICAgIHJldHVybiBr
ZXk7CiAgICAgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShGaXhlZFNp
emVGb250RGF0YUtleSYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBh
ZHNHdGsuY3BwCmluZGV4IGFiNjNkZWI2NmY0NjM1ZDYxMGQ2YjcwZmNiZmQ0MjlkNjY3NmJhNTAu
LmE2YjE5NGZkNzVkMDhlMzNkZGQ1MmMwZDg3ODUyODZkNzVkNWJhM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIGdi
b29sZWFuIEdhbWVwYWRzR3RrOjppc0dhbWVwYWREZXZpY2UoR1VkZXZEZXZpY2UqIGRldmljZSkK
IAogdm9pZCBzYW1wbGVHYW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR2FtZXBhZHNHdGssIGdhbWVwYWRzR3RrLCAoaW50by0+
bGVuZ3RoKCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R2FtZXBhZHNHdGs+IGdhbWVw
YWRzR3RrKGludG8tPmxlbmd0aCgpKTsKICAgICBnYW1lcGFkc0d0ay51cGRhdGVHYW1lcGFkTGlz
dChpbnRvKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0tl
eUJpbmRpbmdUcmFuc2xhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlC
aW5kaW5nVHJhbnNsYXRvci5jcHAKaW5kZXggN2ExYzQ0ZTE5ZDg0NDIwYmRlZjIyZTEzOTdiNDM4
NjViNzcxMWY4OC4uOWI1NzQyNzkxNjAyZmRkYzVjOWZiMDU5MWQwMjg3NzRiMzI1NjNhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0
b3IuY3BwCkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBLZXlCaW5kaW5nVHJhbnNsYXRvcjo6Z2V0
RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQsIEV2ZW4KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJ
bnRDb25zdENoYXJIYXNoTWFwLCBrZXlEb3duQ29tbWFuZHNNYXAsICgpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW50Q29uc3RDaGFySGFzaE1hcCwga2V5UHJlc3NDb21t
YW5kc01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJbnRDb25zdENoYXJIYXNo
TWFwPiBrZXlEb3duQ29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEludENv
bnN0Q2hhckhhc2hNYXA+IGtleVByZXNzQ29tbWFuZHNNYXA7CiAKICAgICBpZiAoa2V5RG93bkNv
bW1hbmRzTWFwLmlzRW1wdHkoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
R19OX0VMRU1FTlRTKGtleURvd25FbnRyaWVzKTsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IDhmMjM4MWEyNGRlNDUyMjhl
OThmMmI3YjA4MDM2ZDMxMjg1NmMwYjUuLmE3MDY4NmJkNjNjNWVjOTI5ZWQxYjkwOGFkMDMyMTQ3
NTc2MDY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2Fy
ZEhlbHBlci5jcHAKQEAgLTczLDggKzczLDggQEAgc3RhdGljIHZvaWQgaW5pdEdka0F0b21zKCkK
IAogUGFzdGVib2FyZEhlbHBlciogUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRI
ZWxwZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXN0ZWJvYXJk
SGVscGVyLCBkZWZhdWx0SGVscGVyLCAoKSk7Ci0gICAgcmV0dXJuICZkZWZhdWx0SGVscGVyOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXN0ZWJvYXJkSGVscGVyPiBkZWZhdWx0SGVscGVy
OworICAgIHJldHVybiAmZGVmYXVsdEhlbHBlci5nZXQoKTsKIH0KIAogUGFzdGVib2FyZEhlbHBl
cjo6UGFzdGVib2FyZEhlbHBlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcAppbmRleCBkZTE1NDRmNmYy
MjBjOTMyOWRkZTZiZWQ3OGI1ODQyMjEzMTE1MmI4Li5lMWM1YzkxYzI4NDhlZTE0YjI3NjdmZTY3
OThhZWRlMmZkOWMwMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAKQEAgLTQyLDcgKzQyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBIYXNoTWFwPFdpbmRvdywgUmVkaXJlY3RlZFhD
b21wb3NpdGVXaW5kb3cqPiBXaW5kb3dIYXNoTWFwOwogc3RhdGljIFdpbmRvd0hhc2hNYXAmIGdl
dFdpbmRvd0hhc2hNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChX
aW5kb3dIYXNoTWFwLCB3aW5kb3dIYXNoTWFwLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdpbmRvd0hhc2hNYXA+IHdpbmRvd0hhc2hNYXA7CiAgICAgcmV0dXJuIHdpbmRvd0hhc2hN
YXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0azMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
My5jcHAKaW5kZXggMzYzMGM0M2RmZmRlNTljNmVhODQzYzM1YTM3ZThlOTQ2MTFlNGFlNS4uMGU1
YjRjZDFjMDZmOWI1YjcwNTU2NWE2NGQ3OGQ0ZmU4MGU0ZjllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKQEAgLTYzLDcgKzYzLDcgQEAg
c3RhdGljIHZvaWQgZ3RrU3R5bGVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMq
KQogCiBzdGF0aWMgU3R5bGVDb250ZXh0TWFwJiBzdHlsZUNvbnRleHRNYXAoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUNvbnRleHRNYXAsIG1hcCwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHlsZUNvbnRleHRNYXA+IG1hcDsKIAogICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0Nv
bnRleHQuY3BwCmluZGV4IGM3MzFhZjQ4OTA1MDBjZWFiOGYxY2FiOThkZmRhN2E0MmJkZTA3ZGYu
LjNiYTcxNWU3OTUzNTA3ZDkwN2M4MDc4NzRmODk4YjkxZWNlYzdlYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIHZvaWQgc2NoZWR1bGVTY3JhdGNo
QnVmZmVyUHVyZ2UoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQdXJn
ZVNjcmF0Y2hCdWZmZXJUaW1lciwgcHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHVyZ2VTY3JhdGNoQnVmZmVyVGltZXI+IHB1cmdlU2NyYXRj
aEJ1ZmZlclRpbWVyOwogICAgIGlmIChwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lci5pc0FjdGl2ZSgp
KQogICAgICAgICBwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lci5zdG9wKCk7CiAgICAgcHVyZ2VTY3Jh
dGNoQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvQ3Vyc29ySU9TLmNwcAppbmRleCBmOTZiZmFmNzEzNjRlMjJkMDgyNzJjMGU1YWU1ZmZkYTRl
ZjhlOTAyLi4zZWMwNjM2M2Q5NjdiZjAyZjg3MmRkNDUzOWU1ZWE1MDIyZTYzNGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcApAQCAtMzAsNyArMzAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBDdXJzb3ImIGN1cnNvcigpCiB7Ci0g
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEN1cnNvciwgY3Vyc29yLCAo
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEN1cnNvcj4gY3Vyc29yOwogICAg
IHJldHVybiBjdXJzb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKaW5kZXggOWE0
Y2ZmY2E4N2I2NjE0N2U4MjBkMGQ0ODY5MjFiMzVlM2MxZmRlZS4uMjc5Mzk1ZjVhODcxM2I0MGI5
ZmZiZjg2MjdjNjIyM2Q1MmE3ZDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI6OnRyaW1VbnBh
cmVudGVkVGlsZXNUb1RhcmdldChpbnQgdGFyZ2V0KQogCiBUaWxlQ29udHJvbGxlck1lbW9yeUhh
bmRsZXImIHRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwgc3RhdGljVGls
ZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVyLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcj4gc3RhdGljVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVyOwogICAgIHJldHVybiBzdGF0aWNUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCA5MDZmOTg4Nzc2M2Ez
NWIyZDU3OGIwYzgyOTY4MGEwMWFiNjgzZmI1Li41MDEwZjFjMDNkZmUxOThjYTVhNmUxNGFlNzFk
NmE3Y2Y1Y2Y1YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC0x
MzQsOCArMTM0LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6
dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRvbWljU3QKICAgICAgICAgU3RyaW5nIGxv
Y2FsaXplZERldmljZU5hbWU7CiAKICAgICAgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5tZWRpYUNv
bnRyb2xzSG9zdCgpKSB7Ci0gICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBhaXJwbGF5LCAoQVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKLSAgICAgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR2b3V0LCAoQVNDSUlM
aXRlcmFsKCJ0dm91dCIpKSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBhaXJwbGF5KEFTQ0lJTGl0ZXJhbCgiYWlycGxheSIpKTsKKyAgICAgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHR2b3V0KEFTQ0lJTGl0ZXJhbCgidHZvdXQiKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZyB0eXBlID0gbV9tZWRpYUVsZW1lbnQtPm1l
ZGlhQ29udHJvbHNIb3N0KCktPmV4dGVybmFsRGV2aWNlVHlwZSgpOwogICAgICAgICAgICAgaWYg
KHR5cGUgPT0gYWlycGxheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy93YWsvV0tDb250ZW50T2JzZXJ2YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKaW5kZXggMGZiOGFlOTkwMGI4Y2QzNzU5
ZWQ1NmQzM2ZkNGI4MWJiN2ZhZjFlNy4uMWRjZGM2MmQ5YzIzNDVlNWE3NjVlZjNmZWY3ZmZiZGE4
NWZmMGIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0Nv
bnRlbnRPYnNlcnZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dh
ay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAKQEAgLTc3LDggKzc3LDggQEAgc3RhdGljIEhhc2hN
YXA8dm9pZCAqLCB2b2lkICo+ICogV2ViVGhyZWFkR2V0T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJz
KCkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwogICAgIHR5
cGVkZWYgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gVm9pZFZvaWRNYXA7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZvaWRWb2lkTWFwLCBvYnNlcnZlZENvbnRlbnRNb2RpZmll
cnMsICgpKTsKLSAgICByZXR1cm4gJm9ic2VydmVkQ29udGVudE1vZGlmaWVyczsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Vm9pZFZvaWRNYXA+IG9ic2VydmVkQ29udGVudE1vZGlmaWVyczsK
KyAgICByZXR1cm4gJm9ic2VydmVkQ29udGVudE1vZGlmaWVycy5nZXQoKTsKIH0KIAogaW50IFdl
YlRocmVhZENvdW50T2ZPYnNlcnZlZENvbnRlbnRNb2RpZmllcnModm9pZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IDlkMDMwM2QzNGMzYTBjM2Fi
MWQ0ZDUwMjVhMmEwYjM2N2UyM2RkMTIuLmI4ZWFmNmZjNjY3NDA2NzMzMmIyYWIyMzgxYzZjYThl
ZTY5ZDg4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1h
Z2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5t
bQpAQCAtMTYwLDcgKzE2MCw3IEBAIGNvbnN0IGZsb2F0IERyYWdMaW5rVXJsRm9udFNpemUgPSAx
MDsKIHN0YXRpYyBGb250JiBmb250RnJvbU5TRm9udChOU0ZvbnQgKmZvbnQpCiB7CiAgICAgc3Rh
dGljIE5TRm9udCAqY3VycmVudEZvbnQ7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEZvbnQsIGN1cnJlbnRSZW5kZXJlciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxGb250PiBjdXJyZW50UmVuZGVyZXI7CiAgICAgCiAgICAgaWYgKFtmb250IGlzRXF1YWw6Y3Vy
cmVudEZvbnRdKQogICAgICAgICByZXR1cm4gY3VycmVudFJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IGFjYWFkMDJh
ZTZhODRlNmZkYTAxOGJiNTQ5YjY4MjUwYTJlZjIwYzAuLmFlNjI4Mjk5YjgxNzRjMDhlZTIxZTM3
YjVhNjAxODNhOTQ4ZTM4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTExNCw4ICsxMTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZU1hYywgdGhl
bWUsICgpKTsKLSAgICByZXR1cm4gJnRoZW1lOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
Y3JvbGxiYXJUaGVtZU1hYz4gdGhlbWU7CisgICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKIH0KIAog
Ly8gRklYTUU6IEdldCB0aGVzZSBudW1iZXJzIGZyb20gQ29yZVVJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4IDU2ZDBhMmIzOWYwMDBiNTZhM2M5OWE2OWI2OTMz
OWNkNTBkMjc5OGUuLjNkNTUwOGZlMzM3MDc3YzJhOGQyNWQyMTE2ZDUzMTg4YjFlZGRlY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTEzOCw4ICsxMzgsOCBA
QCBlbnVtIHsKIAogVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogewotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChUaGVtZU1hYywgdGhlbWVNYWMsICgpKTsKLSAgICByZXR1cm4gJnRo
ZW1lTWFjOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZU1hYz4gdGhlbWVNYWM7Cisg
ICAgcmV0dXJuICZ0aGVtZU1hYy5nZXQoKTsKIH0KIAogLy8gSGVscGVyIGZ1bmN0aW9ucyB1c2Vk
IGJ5IGEgYnVuY2ggb2YgZGlmZmVyZW50IGNvbnRyb2wgcGFydHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHAKaW5kZXggY2UxMTUwMWQ3N2I2NGJiNDdlMThkNGYxM2VkYmYxZWNiZDY4Nzc0
Yi4uZGYyOTNkZGNmMGEyZTkyM2NkZmQ1MmVkNDIxOWQ1NGU5ZjY1NDkyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIFJlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y29uc3RyYWludHMoKSBjb25zdAogY29u
c3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzdGF0
ZXMoKSBjb25zdAogewogICAgIGlmICghbV9zb3VyY2UpIHsKLSAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhU3RyZWFtU291cmNlU3RhdGVzLCBub1N0YXRl
LCAoKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBNZWRpYVN0cmVhbVNv
dXJjZVN0YXRlcz4gbm9TdGF0ZTsKICAgICAgICAgcmV0dXJuIG5vU3RhdGU7CiAgICAgfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAK
aW5kZXggY2VkYjAzOTczNTkyMzAzMWI3YTk5Yjc3NjZmMDk4YzhkNDkwMjE1MS4uOWRjZTcwY2Rl
MTFhZDFhMmRiYjExYzRhZDczNTgwNzAyMGViYTFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIE1lZGlhU3RyZWFtQ2VudGVyJiBNZWRpYVN0cmVhbUNlbnRlcjo6cGxh
dGZvcm1DZW50ZXIoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLCBjZW50
ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFTdHJlYW1DZW50ZXJHU3Ry
ZWFtZXI+IGNlbnRlcjsKICAgICByZXR1cm4gY2VudGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVE
ZXZpY2VNYW5hZ2VyLm1tCmluZGV4IDdiZjcwMzM3YjRiZWU2ZGY3NTI2ODYyZGY3NzE2ZjI1Yzk0
ODM1MjkuLjEwMGJlNTYzOGMxMWQwNDIzYmI1OWZiNDQ0ZTU1N2JjYjNkMzUzYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCkBAIC0xNzYsNyArMTc2LDcgQEAgYm9vbCBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWQ2FwdHVyZURldmljZU1hbmFn
ZXImIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNoYXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEFWQ2FwdHVyZURldmljZU1hbmFnZXIsIG1hbmFnZXIsICgpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZDYXB0dXJlRGV2aWNlTWFuYWdlcj4gbWFuYWdl
cjsKICAgICByZXR1cm4gbWFuYWdlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5j
cHAKaW5kZXggOGQ4ZDkwZGYxNGMyY2ZjYWIyZDBiNTdlOGE5ZjVhODc2ZTRjNTRmZi4uZWRiN2Mx
ODZiZTI4YjU1YmJhNDFjMWI2ODU0NWI2YmQxNzY3Yzg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1D
ZW50ZXJNYWMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlh
U3RyZWFtQ2VudGVyJiBNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIoKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE1lZGlhU3RyZWFtQ2VudGVyTWFjLCBjZW50ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8TWVkaWFTdHJlYW1DZW50ZXJNYWM+IGNlbnRlcjsKICAgICByZXR1cm4gY2VudGVy
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRp
YVN0cmVhbUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRp
YVN0cmVhbUNlbnRlci5jcHAKaW5kZXggNDZkNzU1MmE4M2U2MjE5NjJjMzhkOWQzODAwNzM4OWIz
YjQzNGJlNy4uMjFjZTU5MjMzOTNkNzZkY2QzNmRiNjdkNDQ1NjkwZmFlODhmMDE3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2Vu
dGVyLmNwcApAQCAtNjMsNyArNjMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8
TW9ja1NvdXJjZT4+IE1vY2tTb3VyY2VNYXA7CiAKIHN0YXRpYyBNb2NrU291cmNlTWFwJiBtb2Nr
U291cmNlTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTW9ja1Nv
dXJjZU1hcCwgbW9ja1NvdXJjZU1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxN
b2NrU291cmNlTWFwPiBtb2NrU291cmNlTWFwOwogICAgIHJldHVybiBtb2NrU291cmNlTWFwOwog
fQogCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1vY2tTb3VyY2Vz
KCkKIAogdm9pZCBNb2NrTWVkaWFTdHJlYW1DZW50ZXI6OnJlZ2lzdGVyTW9ja01lZGlhU3RyZWFt
Q2VudGVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTW9ja01lZGlh
U3RyZWFtQ2VudGVyLCBjZW50ZXIsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9j
a01lZGlhU3RyZWFtQ2VudGVyPiBjZW50ZXI7CiAgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJlZCA9
IGZhbHNlOwogICAgIGlmICghcmVnaXN0ZXJlZCkgewogICAgICAgICByZWdpc3RlcmVkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tCb3guY3BwCmluZGV4IGFlYzA0NWMyNTdmYjczY2QwZGU4ZDY1ZGZhY2UyNDg2MTdjY2FiZTku
LmEyODY2OGU2YTA5ODAxMzE2MTI3MWNkMTg3YWQyMDk0Zjg1MzE1NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcApAQCAt
NzYsNyArNzYsNyBAQCBNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveChBcnJheUJ1ZmZlciogZGF0
YSkKIAogY29uc3QgU3RyaW5nJiBNb2NrVHJhY2tCb3g6OnR5cGUoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRyYWssIChBU0NJSUxpdGVyYWwoInRyYWsi
KSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHRyYWsoQVNDSUlMaXRlcmFs
KCJ0cmFrIikpOwogICAgIHJldHVybiB0cmFrOwogfQogCkBAIC0xMDUsNyArMTA1LDcgQEAgTW9j
a0luaXRpYWxpemF0aW9uQm94OjpNb2NrSW5pdGlhbGl6YXRpb25Cb3goQXJyYXlCdWZmZXIqIGRh
dGEpCiAKIGNvbnN0IFN0cmluZyYgTW9ja0luaXRpYWxpemF0aW9uQm94Ojp0eXBlKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0LCAoQVNDSUlMaXRl
cmFsKCJpbml0IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpbml0KEFT
Q0lJTGl0ZXJhbCgiaW5pdCIpKTsKICAgICByZXR1cm4gaW5pdDsKIH0KIApAQCAtMTMzLDcgKzEz
Myw3IEBAIE1vY2tTYW1wbGVCb3g6Ok1vY2tTYW1wbGVCb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAK
IGNvbnN0IFN0cmluZyYgTW9ja1NhbXBsZUJveDo6dHlwZSgpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc21wbCwgKEFTQ0lJTGl0ZXJhbCgic21wbCIpKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc21wbChBU0NJSUxpdGVyYWwoInNt
cGwiKSk7CiAgICAgcmV0dXJuIHNtcGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKaW5kZXggNDEwMDVkMGFkZGFl
MmMzYmY0ZTg5ZTIyMDRjZjYyYTg0NDAyZTBhYS4uYmUzNWNhMjBhNTg1MWU2ZWI2MGMxYTExNWZh
NmVmZDA1MTRhNThmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdHlwZWRlZiBIYXNo
TWFwPFByb3RlY3Rpb25TcGFjZSwgQ3JlZGVudGlhbD4gUHJvdGVjdGlvblNwYWNlVG9DcmVkZW50
aWFsTWFwOwogc3RhdGljIFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCYgcHJvdGVjdGlv
blNwYWNlVG9DcmVkZW50aWFsTWFwKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQcm90ZWN0aW9uU3BhY2VUb0NyZWRl
bnRpYWxNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQcm90ZWN0aW9u
U3BhY2VUb0NyZWRlbnRpYWxNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCkBAIC02MSw3
ICs2MSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFByb3RlY3Rpb25TcGFjZT4gUGF0aFRv
RGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDsKIHN0YXRpYyBQYXRoVG9EZWZhdWx0UHJvdGVjdGlv
blNwYWNlTWFwJiBwYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwKCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQ
YXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcD4gbWFwOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5jcHAKaW5kZXggNmQxYWFiMjBiMmZmMmUzNGJjOTA1NGIwM2RmZWY4ZjIxNjAyNzIy
Mi4uNGFmZDMxODkwMzcyMGIwZjA5NjZkNmEwMWUyY2Y3NDE3NzI2YTNkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTM1MSwxNCAr
MzUxLDE0IEBAIHZvaWQgZmluZENoYXJzZXRJbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSwgdW5zaWduZWQgaW50JiBjaGFyc2V0UG9zLCB1CiAKIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6UmVmbGVjdGVkWFNTRGlzcG9zaXRpb24gcGFyc2VYU1NQcm90ZWN0aW9uSGVhZGVyKGNvbnN0
IFN0cmluZyYgaGVhZGVyLCBTdHJpbmcmIGZhaWx1cmVSZWFzb24sIHVuc2lnbmVkJiBmYWlsdXJl
UG9zaXRpb24sIFN0cmluZyYgcmVwb3J0VVJMKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkVG9nZ2xlLCAoQVNDSUlMaXRl
cmFsKCJleHBlY3RlZCAwIG9yIDEiKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkU2VwYXJhdG9yLCAoQVNDSUlMaXRlcmFs
KCJleHBlY3RlZCBzZW1pY29sb24iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkRXF1YWxzLCAoQVNDSUlMaXRlcmFsKCJl
eHBlY3RlZCBlcXVhbHMgc2lnbiIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRNb2RlLCAoQVNDSUlMaXRlcmFsKCJpbnZh
bGlkIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFJlcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiaW52
YWxpZCByZXBvcnQgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGljYXRlTW9kZSwgKEFTQ0lJTGl0ZXJhbCgi
ZHVwbGljYXRlIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0LCAoQVNDSUlMaXRl
cmFsKCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWREaXJlY3RpdmUsIChB
U0NJSUxpdGVyYWwoInVucmVjb2duaXplZCBkaXJlY3RpdmUiKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFzb25JbnZhbGlkVG9nZ2xlKEFTQ0lJTGl0ZXJh
bCgiZXhwZWN0ZWQgMCBvciAxIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGZhaWx1cmVSZWFzb25JbnZhbGlkU2VwYXJhdG9yKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgc2Vt
aWNvbG9uIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGZhaWx1cmVSZWFz
b25JbnZhbGlkRXF1YWxzKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgZXF1YWxzIHNpZ24iKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFpbHVyZVJlYXNvbkludmFsaWRNb2Rl
KEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCBtb2RlIGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uSW52YWxpZFJlcG9ydChBU0NJSUxpdGVy
YWwoImludmFsaWQgcmVwb3J0IGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBmYWlsdXJlUmVhc29uRHVwbGljYXRlTW9kZShBU0NJSUxpdGVyYWwoImR1cGxp
Y2F0ZSBtb2RlIGRpcmVjdGl2ZSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0KEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIHJl
cG9ydCBkaXJlY3RpdmUiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZmFp
bHVyZVJlYXNvbkludmFsaWREaXJlY3RpdmUoQVNDSUlMaXRlcmFsKCJ1bnJlY29nbml6ZWQgZGly
ZWN0aXZlIikpOwogCiAgICAgdW5zaWduZWQgcG9zID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1
Yi5jcHAKaW5kZXggYzdmMGI0Mzk4ZjFhMGZiOWVhYmYzODZkMDkwZDc3YWM0NDhjMzM4OS4uNTI2
ZDhlNTg2MzNkYjcyNWM3NDk3YTZjYmY1MGVkMzJmNDEzMDUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blN0dWIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlUHJpdmF0ZUJyb3dzCiAKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChOZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIHNlc3Npb24sICgwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gc2Vzc2lvbigwKTsKICAgICByZXR1cm4gc2Vzc2lvbjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcAppbmRleCAxZjZlNzNkNDc3MWRkNWE0NDM2OTEwZWVkN2Q0YzhhMjg3MzJlOTgyLi5k
OWU2NGFiMWFjZmI2NzgwNjQwZjhjMzZmYzQ0YjhmYmY5MmU0MGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNDgsNyAr
NDgsNyBAQCBzdGF0aWMgQnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAmIGJ1aWx0
aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKAogI2Vsc2UKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogI2VuZGlmCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1
aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXA+IG1hcDsK
ICAgICByZXR1cm4gbWFwOwogfQogCkBAIC02MSw3ICs2MSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIFJlc291cmNlSGFuZGxlOjpCdWlsdGluU3luY2hyb25vdXNMb2FkZXI+IEJ1
aWx0aW5SCiBzdGF0aWMgQnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hyb25vdXNMb2FkZXJNYXAm
IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwKCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChC
dWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCwgbWFwLCAoKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9h
ZGVyTWFwPiBtYXA7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5k
ZXggZGVmMDFjYTEwYTExZTljMDdlNTQ4ZWM5MjkxODA2YjA2ZmJmZGNlNC4uMWMwNTJmNDZjOGY1
NzQ0MTAzYTk5MTUxM2QwMjM4Y2M5MTAzODMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC04
OSw3ICs4OSw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4mIGFsbG93c0FueUhUVFBTQ2VydGlm
aWNhdGVIb3N0cygpCiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxDRkRhdGFSZWY+
PiYgY2xpZW50Q2VydHMoKQogewogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0
cjxDRkRhdGFSZWY+PiBDZXJ0c01hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ2VydHNNYXAsIGNlcnRzLCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENlcnRz
TWFwPiBjZXJ0czsKICAgICByZXR1cm4gY2VydHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAKaW5kZXggY2IyM2NiOWNiN2M1MjlmMjEzZTMyMjM3NTIyMmUzMGJmYzAwZTgzYy4uNTZi
YjZiZGVhOTIzNzc2MDJlMjFlZDU3ZDE5MzkwMmMzMzEyYTY1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxl
TWFuYWdlci5jcHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0
aCgpCiB9CiAKIHN0YXRpYyBNdXRleCogc2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0
YSBkYXRhKSB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBjb29r
aWVNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwg
ZG5zTXV0ZXgsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IHNoYXJlTXV0ZXgsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IGNvb2tp
ZU11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gZG5zTXV0ZXg7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBzaGFyZU11dGV4OwogCiAgICAgc3dpdGNoIChk
YXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFj
a2luZ1N0b3JlLmNwcAppbmRleCA4NTEzN2YwNWQyYzQ0OGNkY2NkOGMyZDkzZTc5MDA0OTk2NGRh
NDdiLi5iZDg5ZGE0MGU3ZTA4ZGQwNjVjOGE3NjJlZGQ4ODE0ZmZkZDE5NDJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50
aWFsQmFja2luZ1N0b3JlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIENyZWRlbnRpYWxCYWNraW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDcmVkZW50aWFsQmFja2luZ1N0b3Jl
LCBiYWNraW5nU3RvcmUsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3JlZGVudGlh
bEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlOwogICAgIHJldHVybiBiYWNraW5nU3RvcmU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggZDEwODUwZDYyNTlkZTE0ZjYwZTM0ZWEzOGVl
N2Q0OGVjNGViNjJmMS4uYmUwNGQ5NzgzMzBkY2YyNzcyN2QwMWE4YmY4Zjc3ZWY0NTU4ODU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMgSGFzaFNl
dDxTdHJpbmc+JiBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKQogdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgSG9zdFRMU0NlcnRpZmljYXRlU2V0PiBDZXJ0aWZpY2F0ZXNNYXA7CiBzdGF0
aWMgQ2VydGlmaWNhdGVzTWFwJiBjbGllbnRDZXJ0aWZpY2F0ZXMoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDZXJ0aWZpY2F0ZXNNYXAsIGNlcnRpZmljYXRlcywgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDZXJ0aWZpY2F0ZXNNYXA+IGNlcnRpZmljYXRl
czsKICAgICByZXR1cm4gY2VydGlmaWNhdGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKaW5kZXgg
ZmY1MmI3ZDM5MTYzZDVkOWY4NDE0NjQzMGJjM2U4NTY2MmZkN2Q2NS4uOTQxZTJkY2YyYzdmNzY4
MDcyM2U4N2ZiZjhhODI0MmI1OWNlNGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcApAQCAtNDMsNyAr
NDMsNyBAQCBzdGF0aWMgdWludDMyX3QgbWFnaWNOdW1iZXIoKQogCiBjb25zdCBTdHJpbmcmIGZp
bGVFeHRlbnNpb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGV4dGVuc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiLmRvd25sb2FkIikpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBleHRlbnNpb24oQVNDSUlMaXRlcmFs
KCIuZG93bmxvYWQiKSk7CiAgICAgcmV0dXJuIGV4dGVuc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUu
aAppbmRleCA5YTUzY2E2MmYxOTI3YWViM2YwZDIxODYyMTBmODhmZTk3ODA4MzRkLi5kZGY4NWIy
YzVjMzMyYjRiMjE3MGUzM2IxYWIwNGU2NGQwYzNjMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaApAQCAt
MzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgVCBnZXQoY29uc3QgQXRvbWljU3RyaW5nJiBrZXkp
CiAgICAgewogICAgICAgICBpZiAoa2V5LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVCwgdmFsdWVGb3JOdWxsLCAoY3JlYXRlVmFsdWVGb3JO
dWxsS2V5KCkpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiB2YWx1ZUZv
ck51bGwoY3JlYXRlVmFsdWVGb3JOdWxsS2V5KCkpOwogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9yTnVsbDsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcAppbmRleCBkNjQ5
NTQ0YmU4Y2JjMjIwOTQ4NGI5MWJiYzdkOGU2NzgyYWY5ZTI4Li43Y2ZiNDM3YjUzMWQ4MTdlZWI5
MTczNWNhM2ZiMjE4NWU4NTFkOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAKQEAgLTE2
Myw3ICsxNjMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBVU2NyaXB0Q29kZSwgRGVmYXVs
dEhhc2g8U3RyaW5nPjo6SGFzaCwgU2NyaXB0TmFtZUNvZGVNYQogCiBVU2NyaXB0Q29kZSBzY3Jp
cHROYW1lVG9Db2RlKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU2NyaXB0TmFtZUNvZGVNYXAsIHNjcmlwdE5hbWVDb2RlTWFw
LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNjcmlwdE5hbWVDb2RlTWFwPiBzY3Jp
cHROYW1lQ29kZU1hcDsKICAgICBpZiAoc2NyaXB0TmFtZUNvZGVNYXAuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHNjcmlwdE5hbWVDb2RlTGlzdCkg
LyBzaXplb2YoU2NyaXB0TmFtZUNvZGUpOyArK2kpCiAgICAgICAgICAgICBzY3JpcHROYW1lQ29k
ZU1hcC5zZXQoQVNDSUlMaXRlcmFsKHNjcmlwdE5hbWVDb2RlTGlzdFtpXS5uYW1lKSwgc2NyaXB0
TmFtZUNvZGVMaXN0W2ldLmNvZGUpOwpAQCAtMzg5LDcgKzM4OSw3IEBAIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIFVTY3JpcHRDb2RlLCBEZWZhdWx0SGFzaDxTdHJpbmc+OjpIYXNoLCBMb2NhbGVT
Y3JpcHRNYXBICiAKIFVTY3JpcHRDb2RlIGxvY2FsZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rp
b24oY29uc3QgU3RyaW5nJiBsb2NhbGUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKExvY2FsZVNjcmlwdE1hcCwgbG9jYWxlU2NyaXB0TWFwLCAoKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPExvY2FsZVNjcmlwdE1hcD4gbG9jYWxlU2NyaXB0TWFwOwogICAgIGlm
IChsb2NhbGVTY3JpcHRNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZW9mKGxvY2FsZVNjcmlwdExpc3QpIC8gc2l6ZW9mKExvY2FsZVNjcmlwdCk7ICsr
aSkKICAgICAgICAgICAgIGxvY2FsZVNjcmlwdE1hcC5zZXQoQVNDSUlMaXRlcmFsKGxvY2FsZVNj
cmlwdExpc3RbaV0ubG9jYWxlKSwgbG9jYWxlU2NyaXB0TGlzdFtpXS5zY3JpcHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRv
cldjaGFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFr
SXRlcmF0b3JXY2hhci5jcHAKaW5kZXggN2Y0NTE5OTNlN2MzYjM2NGE2OGRjOGQ1NGNlZTc4MGI3
OGQzYjliNi4uYmQ2ODJhNzFhN2NiMWEwNzJlZWQ5MTIzY2NhNThlNmM3YWFmYjExNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRv
cldjaGFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRC
cmVha0l0ZXJhdG9yV2NoYXIuY3BwCkBAIC0yMzAsOSArMjMwLDkgQEAgaW50IFNlbnRlbmNlQnJl
YWtJdGVyYXRvcjo6cHJldmlvdXMoKQogCiBUZXh0QnJlYWtJdGVyYXRvciogd29yZEJyZWFrSXRl
cmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoV29yZEJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdvcmRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKICAg
ICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJuICZpdGVyYXRvcjsK
KyAgICByZXR1cm4gJml0ZXJhdG9yLmdldCgpOwogfQogCiBzdGF0aWMgQ2hhckJyZWFrSXRlcmF0
b3IqIG5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3I7CkBAIC0yODgsOSArMjg4LDkgQEAg
dm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9y
KQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFNlbnRlbmNlQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U2VudGVuY2VCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKICAgICBpdGVyYXRv
ci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJuICZpdGVyYXRvcjsKKyAgICByZXR1
cm4gJml0ZXJhdG9yLmdldCgpOwogfQogCiBpbnQgdGV4dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRl
cmF0b3IqIGJyZWFrSXRlcmF0b3IpCkBAIC0zNDAsOSArMzQwLDkgQEAgYm9vbCBpc1dvcmRUZXh0
QnJlYWsoVGV4dEJyZWFrSXRlcmF0b3IqKQogCiBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92
ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDaGFyQnJlYWtJdGVyYXRvciwgaXRlcmF0b3Is
ICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q2hhckJyZWFrSXRlcmF0b3I+IGl0ZXJh
dG9yOwogICAgIGl0ZXJhdG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKLSAgICByZXR1cm4gJml0
ZXJhdG9yOworICAgIHJldHVybiAmaXRlcmF0b3IuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xv
Y2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4u
Y3BwCmluZGV4IGFiMDM2YWEwZDEwMGUwMWE0MDljMTFjNzFhYTFmMGQ3OTRmNDU0MDMuLjQ5YTZh
OWNjNDk2MDZmNGMyZTYzY2E0Yjk5MTlhOWUwNGNkNTFmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0
YXRpYyBMQ0lEIFdJTkFQSSBjb252ZXJ0TG9jYWxlTmFtZVRvTENJRChMUENXU1RSIG5hbWUsIERX
T1JEKQogewogICAgIGlmICghbmFtZSB8fCAhbmFtZVswXSkKICAgICAgICAgcmV0dXJuIExPQ0FM
RV9VU0VSX0RFRkFVTFQ7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5hbWVU
b0xDSURNYXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxOYW1lVG9MQ0lE
TWFwPiBtYXA7CiAgICAgZW5zdXJlTmFtZVRvTENJRE1hcChtYXApOwogICAgIFN0cmluZyBsb2Nh
bGVOYW1lID0gU3RyaW5nKG5hbWUpLnJlcGxhY2UoJ18nLCAnLScpLmxvd2VyKCk7CiAgICAgZG8g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCAyYmNjZjFhNTBlMjc2ZTYzMjgzNjVjMzYwNDc1YjI2MDA3ZjQ5ZTIy
Li5hNjMzOTE0NWFjYTkwYzg4NWUxNmZiNzZlMWMyNWMwYjRjNDRmYTM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgbWFya3VwVG9DRkhUTUwoY29uc3QgU3RyaW5nJiBtYXJr
dXAsIGNvbnN0IFN0cmluZyYgc3JjVVJMLCBWZWN0b3I8Y2hhcj4mIHJlCiAKIHZvaWQgcmVwbGFj
ZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKFN0cmluZyYgc3RyKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdpbmRvd3NOZXdsaW5lLCAoQVND
SUlMaXRlcmFsKCJcclxuIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB3
aW5kb3dzTmV3bGluZShBU0NJSUxpdGVyYWwoIlxyXG4iKSk7CiAgICAgU3RyaW5nQnVpbGRlciBy
ZXN1bHQ7CiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3RyLmxlbmd0aCgp
OyArK2luZGV4KSB7CiAgICAgICAgIGlmIChzdHJbaW5kZXhdICE9ICdcbicgfHwgKGluZGV4ID4g
MCAmJiBzdHJbaW5kZXggLSAxXSA9PSAnXHInKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBjNjUyOTNkMDIwNDlkYmIyZWE5YWFiN2YyMGI0
MjBjMjYxZWQ0MmU3Li5kOThlNzgxN2YyODgyOWY5MzdiOWI3YzNjMjI5MTVlOWRiMTYyNTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0y
NTgsNyArMjU4LDcgQEAgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQog
CiBzdGF0aWMgU3RyaW5nIGJ1bmRsZU5hbWUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIG5hbWUsIChBU0NJSUxpdGVyYWwoIldlYktpdCIpKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbmFtZShBU0NJSUxpdGVyYWwoIldlYktpdCIp
KTsKIAogI2lmIFVTRShDRikKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZDsKQEAgLTI4Nyw3
ICsyODcsNyBAQCBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQgcGF0aElkZW50
aWZpZXIpCiAgICAgYnVmZmVyLnJlc2l6ZSh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOwogICAgIFN0
cmluZyBkaXJlY3RvcnkgPSBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiAKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb21wYW55TmFtZURpcmVjdG9yeSwgKEFTQ0lJ
TGl0ZXJhbCgiQXBwbGUgQ29tcHV0ZXJcXCIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gY29tcGFueU5hbWVEaXJlY3RvcnkoQVNDSUlMaXRlcmFsKCJBcHBsZSBDb21wdXRl
clxcIikpOwogICAgIGRpcmVjdG9yeSA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkaXJlY3Rv
cnksIGNvbXBhbnlOYW1lRGlyZWN0b3J5ICsgYnVuZGxlTmFtZSgpKTsKICAgICBpZiAoIW1ha2VB
bGxEaXJlY3RvcmllcyhkaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCmluZGV4IDk4ZDBhOTdiN2I5M2Q3
YzhlYmFiNDhiYTU0ODNiMzlkMjM2NDhjMmMuLmYzYmUxOWE1NGQwODRmZTdkOWRjZWU4ZjI5YmMz
MTM5ZGMwYzVhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBib29sIGdQZXJzaXN0ZW50UGx1Z2luTWV0YWRhdGFD
YWNoZUlzRW5hYmxlZDsKIAogU3RyaW5nJiBwZXJzaXN0ZW50UGx1Z2luTWV0YWRhdGFDYWNoZVBh
dGgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNhY2hl
UGF0aCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGNhY2hlUGF0aDsK
ICAgICByZXR1cm4gY2FjaGVQYXRoOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAppbmRleCBjYTA1NzllNTg5
OWNjMTU4OGY4ZDZlZDk5ZTRiMmQxODFlYjY3NmZhLi5kZjkyNmE3NmRiNzM2ZDIyZjY1YTc4MDZm
MTI0M2U3ZmZhNjQ0ZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyJiBQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpzY2hlZHVsZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLCBzY2hlZHVsZXIsICgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcj4gc2NoZWR1bGVyOwogCiAg
ICAgcmV0dXJuIHNjaGVkdWxlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCmluZGV4IGJkYWFjZDBiMDQ1OGEyY2E0YWFmMDUwYWIxYjU2NzU1OTY2ZDg2MDUuLjY3
MmFkMzNkMmM0ZjI2NTg5YmIwZTA3ZDQyOTUwMjViNmI4ZWE5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTc0OSw4ICsxNzQ5LDggQEAgUmVuZGVyQmxv
Y2sqIFJlbmRlckJsb2NrOjpibG9ja0VsZW1lbnRDb250aW51YXRpb24oKSBjb25zdAogICAgIAog
c3RhdGljIENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcCogY29udGludWF0aW9uT3V0bGluZVRh
YmxlKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29udGludWF0aW9u
T3V0bGluZVRhYmxlTWFwLCB0YWJsZSwgKCkpOwotICAgIHJldHVybiAmdGFibGU7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcD4gdGFibGU7Cisg
ICAgcmV0dXJuICZ0YWJsZS5nZXQoKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6YWRkQ29udGlu
dWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKiBmbG93KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAxMzkwNGU3MzA3
YTE2YWY0ODYwYTU0NmIxMDMzNGIwNGIxZTMxOGVmLi5kMjg2ZjZkODU3NGQ4YTFjMTdmZTQ5OWI3
MTJkNTQ5MTcwNTVjMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTgxMiw3ICsxODEyLDcgQEAgdm9pZCBSZW5kZXJC
bG9ja0Zsb3c6OmNoZWNrTGluZXNGb3JUZXh0T3ZlcmZsb3coKQogICAgIC8vIERldGVybWluZSB0
aGUgd2lkdGggb2YgdGhlIGVsbGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZvbnQuCiAgICAgLy8g
RklYTUU6IENTUzMgc2F5cyB0aGlzIGlzIGNvbmZpZ3VyYWJsZSwgYWxzbyBuZWVkIHRvIHVzZSAw
eDAwMkUgKEZVTEwgU1RPUCkgaWYgaG9yaXpvbnRhbCBlbGxpcHNpcyBpcyAibm90IHJlbmRlcmFi
bGUiCiAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCkuZm9udCgpOwotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6
b250YWxFbGxpcHNpcywgMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgIGNvbnN0IEZvbnQm
IGZpcnN0TGluZUZvbnQgPSBmaXJzdExpbmVTdHlsZSgpLmZvbnQoKTsKICAgICBmbG9hdCBmaXJz
dExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RMaW5lRm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVu
KHRoaXMsIGZpcnN0TGluZUZvbnQsICZob3Jpem9udGFsRWxsaXBzaXMsIDEsIGZpcnN0TGluZVN0
eWxlKCkpKTsKICAgICBmbG9hdCBlbGxpcHNpc1dpZHRoID0gKGZvbnQgPT0gZmlyc3RMaW5lRm9u
dCkgPyBmaXJzdExpbmVFbGxpcHNpc1dpZHRoIDogZm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVu
KHRoaXMsIGZvbnQsICZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCmluZGV4IDNmMDEzZGI5
MWQ3ZjVjODc1NWU1MmQ4YzQwZWM5OWQ2YTA2YzgzYTguLjU3YzU0NTRjOTJiMDJiZmQzMjlkZTJi
OTM3ZDRhNGE1ZmE5MGE0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJDb21iaW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvbWJpbmVUZXh0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRl
eHQ6OmNvbWJpbmVUZXh0KCkKICAgICAgICAgbV9jb21iaW5lRm9udFN0eWxlLT5mb250KCkudXBk
YXRlKGZvbnRTZWxlY3Rvcik7CiAKICAgICBpZiAobV9pc0NvbWJpbmVkKSB7Ci0gICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hh
cmFjdGVyU3RyaW5nLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
U3RyaW5nKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSk7CiAgICAgICAgIFJlbmRlclRl
eHQ6OnNldFJlbmRlcmVkVGV4dChvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZy5pbXBs
KCkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNw
cAppbmRleCA4OTNkYzE4OGU2ZjY4YzQ0NmFkOGExYjhjNTMxMDY1OTVlYmJkMmM0Li44ZmQ4MzNi
NzliNzEzNTA1YTFmMzBjZjBjMzNmMGVlYTQ2MDA2YWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBDb3VudGVy
Tm9kZSogbWFrZUNvdW50ZXJOb2RlKFJlbmRlck9iamVjdCosIGNvbnN0IEF0b21pY1N0cmluZyYg
aWRlbnRpZmllCiAKIHN0YXRpYyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDb3VudGVyTWFwcywgc3RhdGljQ291bnRlck1h
cHMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q291bnRlck1hcHM+IHN0YXRpY0Nv
dW50ZXJNYXBzOwogICAgIHJldHVybiBzdGF0aWNDb3VudGVyTWFwczsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcAppbmRleCA3NjA2YWQ5MDdkZjYzZDdhOGY1MDlhMzM0ZjhiMzEwZTk3NDczMGE0Li4wNGNh
MDhmYTVlODkzNTA2M2YwMzljYTViYTkwYmYzMzc1YzgyN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApA
QCAtOTk0LDggKzk5NCw4IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBs
eUxpbmVDbGFtcChGbGV4Qm94SXRlcmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICBjb25zdCBVQ2hhciBlbGxpcHNpc0FuZFNwYWNlWzJdID0geyBo
b3Jpem9udGFsRWxsaXBzaXMsICcgJyB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc0FuZFNwYWNlU3RyLCAoZWxsaXBzaXNBbmRT
cGFjZSwgMikpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBlbGxpcHNpc1N0ciwgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihl
bGxpcHNpc0FuZFNwYWNlLCAyKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAgICAgICAgIGNv
bnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSBudW1WaXNpYmxlTGluZXMgPT0gMSA/IGZpcnN0
TGluZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgICAgICBjb25zdCBGb250JiBmb250ID0gbGluZVN0
eWxlLmZvbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNjcm9sbGJhclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3Jv
bGxiYXJUaGVtZS5jcHAKaW5kZXggNzliNWQ4MjBmNjFkZDZmNGRmYTI4MjlhZTllYTRhYjUyZmU1
NGE2OC4uZjVmOGNmYWU3NjNhMTQ3YzMwYmNmYjdkMWU3Zjg4MDU5ZWE4NjhjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCkBAIC0z
Myw4ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU2Nyb2xsYmFyVGhlbWUq
IFJlbmRlclNjcm9sbGJhclRoZW1lOjpyZW5kZXJTY3JvbGxiYXJUaGVtZSgpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlbmRlclNjcm9sbGJhclRoZW1lLCB0aGVtZSwg
KCkpOwotICAgIHJldHVybiAmdGhlbWU7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlbmRl
clNjcm9sbGJhclRoZW1lPiB0aGVtZTsKKyAgICByZXR1cm4gJnRoZW1lLmdldCgpOwogfQogCiB2
b2lkIFJlbmRlclNjcm9sbGJhclRoZW1lOjpidXR0b25TaXplc0Fsb25nVHJhY2tBeGlzKFNjcm9s
bGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGludCYgYmVmb3JlU2l6ZSwgaW50JiBhZnRlclNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA3Zjk4ZTEw
NWU0OGEwMGU1ZDBhMDExYmFhMTYyYjM3MTRlYzVmOTlmLi44Y2IzMDU5ZWRkYjNiMTE1NmEyNzdh
NjkxMWJiMzQ1YjZlZTk1ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3Rh
dGljIENvbG9yJiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKENvbG9yLCBjb2xvciwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxDb2xvcj4gY29sb3I7CiAgICAgcmV0dXJuIGNvbG9yOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMTdmNmE4ZGI3ODJmYWU5NjQxZTdm
Mjk0ZTBlYzcxNDNkNWIxNGZiNi4uMThhODYyNTI5ODAzZGRmYjFmMjg5MjIwYWI4YjUwZWYwOTEz
Y2ZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
MzQzLDEzICszNDMsMTMgQEAgc3RhdGljIEZvbnRXZWlnaHQgdG9Gb250V2VpZ2h0KE5TSW50ZWdl
ciBhcHBLaXRGb250V2VpZ2h0KQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Gb250KENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNv
bnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlv
biwgc3lzdGVtRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChG
b250RGVzY3JpcHRpb24sIHNtYWxsU3lzdGVtRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIG1lbnVGb250LCAoKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgbGFiZWxGb250LCAo
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwg
bWluaUNvbnRyb2xGb250LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEZvbnREZXNjcmlwdGlvbiwgc21hbGxDb250cm9sRm9udCwgKCkpOwotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGNvbnRyb2xGb250LCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNjcmlwdGlvbj4gc3lzdGVtRm9udDsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBzbWFsbFN5c3RlbUZvbnQ7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNjcmlwdGlvbj4gbWVudUZvbnQ7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREZXNjcmlwdGlvbj4gbGFiZWxGb250OworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IG1pbmlDb250cm9sRm9udDsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERlc2NyaXB0aW9uPiBzbWFsbENvbnRyb2xG
b250OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGVzY3JpcHRpb24+IGNvbnRyb2xG
b250OwogCiAgICAgRm9udERlc2NyaXB0aW9uKiBjYWNoZWREZXNjOwogICAgIE5TRm9udCogZm9u
dCA9IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXgg
MWZmODNhOGE1ZWU1M2U1M2U1MjI3MTNkZmFlMDQxYzU4YjIwNzY1My4uMzM2OWRhZTliODc4NDcz
NzQ3Yzk5YjViNzNkNzZlY2JmZjg2ZjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgV2lkZ2V0SGllcmFyY2h5
VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6c193aWRnZXRIaWVyYXJjaHlVcGRhdGVTdXNwZW5kQ28K
IAogV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6V2lkZ2V0VG9QYXJlbnRN
YXAmIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGU6OndpZGdldE5ld1BhcmVu
dE1hcCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpZGdldFRvUGFy
ZW50TWFwLCBtYXAsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2lkZ2V0VG9QYXJl
bnRNYXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRQYWludGVyLmNwcAppbmRleCBhZjM0MjU3YWUwYTMxZWZmZjljOTFlMDdmY2MzMTkwNzY5
ZWI2MTkyLi42YzM2ZTFkYTMxM2RlODdiMjFhY2EyMjU5MGUyM2ZkNjgwMmVmOTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2
b2lkIFRleHRQYWludGVyOjpwYWludFRleHQoKQogICAgICAgICBpZiAoIW1fZW1waGFzaXNNYXJr
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCptX3NhdmVk
RHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFz
ay5tX3RleHRQYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CiAKLSAgICAgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAg
ICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUZXh0UnVuPiBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclRleHRSdW4oJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKTsKICAgICAg
ICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBtX2NvbWJpbmVkVGV4dCA/IG9i
amVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IG1fdGV4dFJ1bjsKICAgICAgICAgICAg
IEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IG1fY29tYmluZWRUZXh0ID8gRmxv
YXRQb2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0LndpZHRoKCkgLyAyLCBib3hPcmlnaW4u
eSgpICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogbV90ZXh0T3JpZ2luOwogICAg
ICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVGV4
dFBhaW50ZXI6OnBhaW50VGV4dCgpCiAgICAgICAgIGlmICghbV9lbXBoYXNpc01hcmsuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKm1fc2F2ZWREcmF3aW5n
U3RhdGVGb3JNYXNrLm1fY29udGV4dCwgKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2Vs
ZWN0aW9uUGFpbnRTdHlsZSwgVXNlRW1waGFzaXNNYXJrQ29sb3IpOwogCi0gICAgICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAg
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VGV4dFJ1bj4gb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXJUZXh0UnVuKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSk7CiAgICAgICAg
ICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4gOiBtX3RleHRSdW47CiAgICAgICAgICAgICBG
bG9hdFBvaW50IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0
UG9pbnQoYm94T3JpZ2luLngoKSArIG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnko
KSArIG1fZm9udC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKICAgICAg
ICAgICAgIGlmIChtX2NvbWJpbmVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmgKaW5kZXggZDZiNjhkZDM1NWI3M2M1MmFjMzk1
ZjZhMTAyNDVhMDk1MzZlMzZmOC4uMTY2ZDhjOWU2ODNkZjVlNTc1Yzc0ZWRlN2U4YzBjYzFlMjg5
OWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91
dHNpZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91
dHNpZGVJbmZvLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFz
aE1hcDxjb25zdCBSZW5kZXJCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGVPdXRzaWRlSW5mbz4+
IEluZm9NYXA7CiAgICAgc3RhdGljIEluZm9NYXAmIGluZm9NYXAoKQogICAgIHsKLSAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgp
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEluZm9NYXA+IHN0YXRpY0luZm9NYXA7
CiAgICAgICAgIHJldHVybiBzdGF0aWNJbmZvTWFwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKaW5kZXggYTAxYjUyOTRkNWFhY2M3
NWFkMjFkM2E0YjY1NWIyYjlhNzY5MTYyYS4uZDZlYzM0YjNjY2JjZjQxYjQ5ZDQ5NmE1OWU5NDRl
ZDBiYThmMjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRUcmFja1NpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRy
YWNrU2l6ZS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VS
VCghbV9taW5UcmFja0JyZWFkdGguaXNMZW5ndGgoKSB8fCAhbV9taW5UcmFja0JyZWFkdGgubGVu
Z3RoKCkuaXNVbmRlZmluZWQoKSk7CiAgICAgICAgIGlmIChtX21pblRyYWNrQnJlYWR0aC5pc0xl
bmd0aCgpICYmIG1fbWluVHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzQXV0bygpKSB7Ci0gICAgICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR3JpZExlbmd0aCwgbWluQ29udGVu
dCwgKE1pbkNvbnRlbnQpKTsKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHcmlk
TGVuZ3RoPiBtaW5Db250ZW50KE1pbkNvbnRlbnQpOwogICAgICAgICAgICAgcmV0dXJuIG1pbkNv
bnRlbnQ7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoOwpAQCAt
ODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbWF4VHJhY2tC
cmVhZHRoLmlzTGVuZ3RoKCkgfHwgIW1fbWF4VHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5kZWZp
bmVkKCkpOwogICAgICAgICBpZiAobV9tYXhUcmFja0JyZWFkdGguaXNMZW5ndGgoKSAmJiBtX21h
eFRyYWNrQnJlYWR0aC5sZW5ndGgoKS5pc0F1dG8oKSkgewotICAgICAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdyaWRMZW5ndGgsIG1heENvbnRlbnQsIChNYXhDb250ZW50
KSk7CisgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R3JpZExlbmd0aD4gbWF4Q29u
dGVudChNYXhDb250ZW50KTsKICAgICAgICAgICAgIHJldHVybiBtYXhDb250ZW50OwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBtX21heFRyYWNrQnJlYWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDMzMjBjMDI4YjU4ZDQ5Njhl
NzNkYzJkNmE5OTE5MjQxMDk0ZjE4NjMuLjQ3N2ZmZjZmZDk4OTZmZDM0NWY2YmE5MWZlNjVjZWEw
NzkyZTRjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtMTE0NCw4ICsxMTQ0LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJT
dHlsZTo6aHlwaGVuU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0aW9uU3Ry
aW5nOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUuCi0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaHlwaGVuTWludXNT
dHJpbmcsICgmaHlwaGVuTWludXMsIDEpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBoeXBoZW5TdHJpbmcsICgmaHlwaGVuLCAxKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaHlwaGVuTWludXNTdHJpbmcoJmh5cGhl
bk1pbnVzLCAxKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBoeXBo
ZW5TdHJpbmcoJmh5cGhlbiwgMSk7CiAgICAgcmV0dXJuIGZvbnQoKS5wcmltYXJ5Rm9udEhhc0ds
eXBoRm9yQ2hhcmFjdGVyKGh5cGhlbikgPyBoeXBoZW5TdHJpbmcgOiBoeXBoZW5NaW51c1N0cmlu
ZzsKIH0KIApAQCAtMTE1NywyOCArMTE1NywyOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRl
clN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKICAgICBjYXNlIFRleHRFbXBo
YXNpc01hcmtDdXN0b206CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCk7
CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG90OiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQs
IDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgb3BlbkRvdFN0cmluZywgKCZ3aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxldCwgMSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5Eb3RTdHJpbmco
JndoaXRlQnVsbGV0LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBU
ZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsK
ICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ2lyY2xlOiB7Ci0gICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0cmlu
ZywgKCZibGFja0NpcmNsZSwgMSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpbGxlZENpcmNs
ZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBvcGVuQ2lyY2xlU3RyaW5nKCZ3aGl0ZUNpcmNsZSwgMSk7CiAgICAgICAg
IHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZp
bGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4
dEVtcGhhc2lzTWFya0RvdWJsZUNpcmNsZTogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcsICgmZmlz
aGV5ZSwgMSkpOwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmJ1bGxzZXllLCAxKSk7CisgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGZpbGxlZERvdWJsZUNpcmNsZVN0
cmluZygmZmlzaGV5ZSwgMSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKICAgICAgICAgcmV0
dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVk
RG91YmxlQ2lyY2xlU3RyaW5nIDogb3BlbkRvdWJsZUNpcmNsZVN0cmluZzsKICAgICB9CiAgICAg
Y2FzZSBUZXh0RW1waGFzaXNNYXJrVHJpYW5nbGU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5nbGVTdHJpbmcsICgmYmxh
Y2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblRyaWFuZ2xlU3RyaW5nLCAoJndoaXRlVXBQb2lu
dGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IGZpbGxlZFRyaWFuZ2xlU3RyaW5nKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSk7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5Ucmlhbmds
ZVN0cmluZygmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4
dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmds
ZVN0cmluZyA6IG9wZW5UcmlhbmdsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFz
aXNNYXJrU2VzYW1lOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZpbGxlZFNlc2FtZVN0cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKLSAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2Ft
ZVN0cmluZywgKCZ3aGl0ZVNlc2FtZURvdCwgMSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBmaWxsZWRTZXNhbWVTdHJpbmcoJnNlc2FtZURvdCwgMSk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG9wZW5TZXNhbWVTdHJp
bmcoJndoaXRlU2VzYW1lRG90LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwo
KSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNl
c2FtZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCmluZGV4IDBlMWYx
YTBjMDA0OTc0M2E1YTU0MWQzYzEyMjU4MzcyMjMxYWE3OGYuLjM4ZWQyOWM1NmE4MTU4MWU4MzAx
MThmYWY1NDY5ODcxMTViYzI2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdQYXRoLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIGJvb2wgUmVuZGVyU1ZHUGF0
aDo6c2hvdWxkU3Ryb2tlWmVyb0xlbmd0aFN1YnBhdGgoKSBjb25zdAogCiBQYXRoKiBSZW5kZXJT
VkdQYXRoOjp6ZXJvTGVuZ3RoTGluZWNhcFBhdGgoY29uc3QgRmxvYXRQb2ludCYgbGluZWNhcFBv
c2l0aW9uKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXRo
LCB0ZW1wUGF0aCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXRoPiB0ZW1wUGF0
aDsKIAogICAgIHRlbXBQYXRoLmNsZWFyKCk7CiAgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5j
YXBTdHlsZSgpID09IFNxdWFyZUNhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggOTI5ZDA3MWE0M2FjNjIwZDcxYzk5MGU5YTE3ZDBm
YTVhYTY1ZGVmOS4uMjFmZGQwNTRlYTgzMzQzNTU0MTI1MjE1ODU3YTM4NTU2ODc3MDRjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAg
LTE4Nyw3ICsxODcsNyBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpsYXlvdXQoKQogCiBQYXRoKiBS
ZW5kZXJTVkdTaGFwZTo6bm9uU2NhbGluZ1N0cm9rZVBhdGgoY29uc3QgUGF0aCogcGF0aCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBzdHJva2VUcmFuc2Zvcm0pIGNvbnN0CiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFBhdGg+IHRlbXBQYXRoOwogCiAgICAgdGVtcFBhdGggPSAqcGF0aDsK
ICAgICB0ZW1wUGF0aC50cmFuc2Zvcm0oc3Ryb2tlVHJhbnNmb3JtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGRl
OGYxNWY4YjQzZjg3MzIyM2RjYmZiNGIwYjAyZmU3ZGE3N2UyODkuLjVjNGNmNWVjOWE0N2QzMzRm
ZjdkMTg3YWY4NDdlM2JiNmI2YzE0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHZv
aWQgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChSZW5kZXJF
bGVtZW50JiByZW5kZXJlciwgUGFpCiAKIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0mIGN1cnJlbnRD
b250ZW50VHJhbnNmb3JtYXRpb24oKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBZmZpbmVUcmFuc2Zvcm0sIHNfY3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbiwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBZmZpbmVUcmFuc2Zvcm0+IHNfY3VycmVudENv
bnRlbnRUcmFuc2Zvcm1hdGlvbjsKICAgICByZXR1cm4gc19jdXJyZW50Q29udGVudFRyYW5zZm9y
bWF0aW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRDaHVua0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0Q2h1bmtCdWlsZGVyLmNwcAppbmRleCAyYzQ3MjA0NjA1OGM0NTQyN2M3OTFkMjY3MjA5NGZl
N2JkYzM1OTZjLi45NTdiMzA5NjQ4NjMwOWJjMTc4NjcyMmNjOGFiMWU3MjZiMTA1MzA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRl
ci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgU1ZHVGV4dENodW5rQnVpbGRlcjo6U1ZHVGV4dENodW5r
QnVpbGRlcigpCiAKIHZvaWQgU1ZHVGV4dENodW5rQnVpbGRlcjo6dHJhbnNmb3JtYXRpb25Gb3JU
ZXh0Qm94KFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIEFmZmluZVRyYW5zZm9ybSYgdHJhbnNm
b3JtKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0sIHNfaWRlbnRpdHlUcmFuc2Zvcm0sICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQWZmaW5lVHJhbnNmb3JtPiBzX2lkZW50aXR5VHJhbnNmb3JtOwog
ICAgIGlmICghbV90ZXh0Qm94VHJhbnNmb3JtYXRpb25zLmNvbnRhaW5zKHRleHRCb3gpKSB7CiAg
ICAgICAgIHRyYW5zZm9ybSA9IHNfaWRlbnRpdHlUcmFuc2Zvcm07CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5k
ZXggZTdkMjgwZTI4Yjg3NGViNWI2ZTE1MjBlNDE4ODFiNDNjZTg5MjdiYy4uYzNhZWMxOTEzNWMy
Njk5ZDMzOGIwMGJiYzUyNGE2YzU2NGY3OTZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgU3RvcmFnZU5hbWVzcGFjZSo+IExvY2FsU3RvcmFnZU5hbWVzcGFjZU1h
cDsKIAogc3RhdGljIExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCYgbG9jYWxTdG9yYWdlTmFtZXNw
YWNlTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jYWxTdG9y
YWdlTmFtZXNwYWNlTWFwLCBsb2NhbFN0b3JhZ2VOYW1lc3BhY2VNYXAsICgpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwPiBsb2NhbFN0b3JhZ2VO
YW1lc3BhY2VNYXA7CiAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmdsZS5jcHAKaW5kZXggNTg4ZjI3N2JlNzVkZTdkNDFlZmVkMDVjYTQ5NThi
ZTYyNjE3ODU3ZC4uNDljZTIyNzdjY2VhYmQ0Nzk0OGIxZjhkOTZhYzczYzRlMzZmZDU5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5nbGUuY3BwCkBAIC0xMTIsMTUgKzExMiwxNSBAQCBTdHJpbmcgU1ZHQW5n
bGU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogewogICAgIHN3aXRjaCAobV91bml0VHlwZSkgewog
ICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgZGVnU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJkZWciKSkpOwor
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBkZWdTdHJpbmcoQVNDSUlMaXRl
cmFsKCJkZWciKSk7CiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cykgKyBkZWdTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9S
QUQ6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcmFk
U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJyYWQiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiByYWRTdHJpbmcoQVNDSUlMaXRlcmFsKCJyYWQiKSk7CiAgICAgICAgIHJl
dHVybiBTdHJpbmc6Om51bWJlcihtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cykgKyByYWRTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOiB7Ci0gICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGdyYWRTdHJpbmcsIChBU0NJSUxpdGVyYWwo
ImdyYWQiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBncmFkU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiZ3JhZCIpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVy
KG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSArIGdyYWRTdHJpbmc7CiAgICAgfQogICAgIGNhc2Ug
U1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcAppbmRleCA5ZTFkYjEzOThjYjUxNjJlYjFkNWIxYjE0MWI3ZWVm
ZTAyMGVmMDI4Li5kZGJhNjFhODY2OTUyNzMwNTYzMTg3NjUyODFlNWU1ZDQ4NzcyZTg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCkBAIC0zOSw3
ICszOSw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIHN0YXRpYyBib29sIGF0dHJpYnV0
ZVZhbHVlSXNDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjdXJyZW50Q29sb3Is
ICgiY3VycmVudENvbG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGN1cnJlbnRDb2xv
cigiY3VycmVudENvbG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHZhbHVlID09IGN1cnJlbnRDb2xvcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5kZXggMGE5ODNkZmQxYTNjYzU2ZDFm
OWJkY2RlNzBmYWIwYmMwMDExNjZiYy4uODU1MTY5Mzc4N2NlZTBhYzc0OTdhYWI3MzY1OTIxNTcy
ZTBiNmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCkBAIC0xMjQsOCArMTI0LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAK
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvVmFsLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1JldmVyc2UsICgiYXV0by1yZXZlcnNlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGF1dG9WYWwoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZlcnNlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByb3RhdGUgPSBnZXRB
dHRyaWJ1dGUoU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAgIGlmIChyb3RhdGUgPT0gYXV0b1Zh
bCkKICAgICAgICAgcmV0dXJuIFJvdGF0ZUF1dG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHAKaW5kZXggNDY2ZmNjNmI5MzRiNTg3YTAzMjZiZWRkOWU4MWYzNTkz
NTkxMzhhOS4uYjc5MGNmMGNmM2Q5MzExYWE1MWRhMDA5YzllNWQ5MDU4M2I0ZTEwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApAQCAtMjk1LDEwICsyOTUs
MTAgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKIAog
dm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcm
IGNhbGNNb2RlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGRpc2NyZXRlLCAoImRpc2NyZXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGxpbmVhciwgKCJsaW5lYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgcGFjZWQsICgicGFjZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc3BsaW5lLCAoInNwbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBkaXNjcmV0ZSgiZGlzY3JldGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBsaW5lYXIo
ImxpbmVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHBhY2VkKCJwYWNlZCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKGNhbGNNb2RlID09IGRpc2NyZXRlKQogICAgICAg
ICBzZXRDYWxjTW9kZShDYWxjTW9kZURpc2NyZXRlKTsKICAgICBlbHNlIGlmIChjYWxjTW9kZSA9
PSBsaW5lYXIpCkBAIC0zMTMsOCArMzEzLDggQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50Ojpz
ZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNhbGNNb2RlKQogCiB2b2lkIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1
dGVUeXBlKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGNzcywgKCJDU1MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgeG1sLCAoIlhNTCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBjc3MoIkNTUyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHhtbCgiWE1MIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT0gY3NzKQogICAgICAgICBt
X2F0dHJpYnV0ZVR5cGUgPSBBdHRyaWJ1dGVUeXBlQ1NTOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZVR5cGUgPT0geG1sKQpAQCAtMzQxLDE0ICszNDEsMTQgQEAgU3RyaW5nIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNB
ZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiBzdW0oInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphZGRp
dGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgpID09
IEJ5QW5pbWF0aW9uOwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0
ZWQoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHN1bSwgKCJzdW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3Vt
KCJzdW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6YWNjdW11bGF0
ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gJiYgYW5pbWF0aW9uTW9kZSgpICE9IFRv
QW5pbWF0aW9uOwogfQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVu
dDo6YWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QK
IAogc3RhdGljIGJvb2wgaW5oZXJpdHNGcm9tUHJvcGVydHkoU1ZHRWxlbWVudCosIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5oZXJp
dCwgKCJpbmhlcml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGluaGVyaXQoImluaGVy
aXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAKICAgICBpZiAo
dmFsdWUuaXNFbXB0eSgpIHx8IHZhbHVlICE9IGluaGVyaXQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
Y3BwCmluZGV4IGMwMmVhNjgwZWM0Zjg2MzJmMWRlZjhlNTdlYzZjZGVlNDg0OTg0ZGEuLmEwYjZh
YTc3ZDg1NTlmOGI5MDVlYmMyMTc3MzIwNTczNTA3ZWFhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtODAsMjUgKzgwLDI1
IEBAIFBhc3NSZWZQdHI8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50OjpjcmVhdGUoY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVu
dGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRp
ZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlclhJZGVu
dGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JkZXJYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNf
aWRlbnRpZmllcigiU1ZHT3JkZXJYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6b3JkZXJZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR09yZGVyWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR09yZGVy
WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lk
ZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMmIxNDEwYjQzNWEzOTJhNzMwMDA2ZGNiOGUxMzExY2Q5
MDQyZDFiYi4uYmVhY2Y0ZDlmZjFhMTk5ZmRhZWZlYjU5MWU5MTVjMWUyODAzYzY0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAK
QEAgLTY4LDEzICs2OCwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29ucwogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJ
ZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJu
ZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3Ro
WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR0tlcm5lbFVuaXRMZW5n
dGhZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNf
aWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuY3BwCmluZGV4IDhhZTg1ZDNmZjI2NzdiNmY2YmQ3Y2NlZDNlZDEwYTkyMDliMTA4ZWUu
LjdkYWM0MWYxZWY4OGRhYTAyODQzMTZjY2Y5YTc2ZTkwNjc3NTJkYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAgLTY3LDEzICs2NywxMyBA
QCBQYXNzUmVmUHRyPFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ+IFNWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
U3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1N0
ZERldmlhdGlvblgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvbllJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3Rk
RGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR1N0ZERl
dmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDdkMGFhNWMxOTQ4M2VhZWVkZjU4YzE3Y2NhZTZkZTk2
MjI0YzZhYjguLjNkZDc5YjA4MzE1NTBhYWIyNTJlNzNhMTAzYzUzOGU4NTZmOTdmNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC02
MiwxMyArNjIsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWwKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lk
ZW50aWZpZXIoIlNWR1N0ZERldmlhdGlvblgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50aWZpZXIoKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRl
bnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRl
bnRpZmllcigiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAppbmRleCA5ZGVjODM3ZTRlZmIxYTM1ODNl
ZDY4Njc5MGYzZTk4ODAzNzFiNjk3Li4wOTFkYjczMmQ4Y2MzNjU4ZDlhNDIyM2FjMWEzY2NlYjg2
NDUyMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwCkBAIC02MSwxMyArNjEsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50
PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWUKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpyYWRpdXNYSWRlbnRpZmllcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19p
ZGVudGlmaWVyLCAoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlm
aWVyKCJTVkdSYWRpdXNYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1v
cnBob2xvZ3lFbGVtZW50OjpyYWRpdXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1
c1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdSYWRpdXNZIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQuY3BwCmluZGV4IGMxNGIyYmZkODdkOWU1NmRmNWFjZDNlZGQ0YWMxZDA5ZWNkYTc3
YjIuLmYzMWU2MGY1NGNlYzk0NTk1MWQ3YzJjYmFhY2U0ODg2MDY5OTMxYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAg
LTcyLDEzICs3MiwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+
IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjbwogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRl
bnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
aWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5l
bFVuaXRMZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhZ
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHS2VybmVsVW5pdExlbmd0
aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxl
bWVudC5jcHAKaW5kZXggMjQ4MDdhNjg3NTQyM2RhYzg3NjI2ODY3YmJkMmUyYzg4N2E3MjFhMi4u
NDU5NDc2NmQ2YjhmODZjZjUwYTAzM2UzMWJiNTMyMGExNjRhZmIyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNjYsMTMgKzY2LDEzIEBA
IFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
QmFzZUZyZXF1ZW5jeVgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdC
YXNlRnJlcXVlbmN5WCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVlJZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
QmFzZUZyZXF1ZW5jeVkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdC
YXNlRnJlcXVlbmN5WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcAppbmRleCAyMjcyYzIxY2M5MTU3MmVlYTU3MmVlNGEyZDA3NTgwYjNlNTY3OTY5Li5m
NGZlNDU5MGUxNTlhOGY2MDM2YTIzMDE1Yjk3YWMyMTNkMDVjMzEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCkBAIC04NSwxMyArODUsMTMgQEAgUGFzc1JlZlB0cjxT
VkdGaWx0ZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmEKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0
ZXJSZXNYSWRlbnRpZmllcigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdGaWx0ZXJSZXNYIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZSWRlbnRpZmllcigp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19p
ZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1kiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVu
dGlmaWVyKCJTVkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAu
aAppbmRleCAzNTE4Zjg4ZDhhNjYxOTc0MDRhMjMwNDI5MmRkMTRiYjc3MjU0ZGFmLi45YzU0NGI3
ZjU5YjAyNDlhMGYxNzViODkxMWIxNTdkYjZkMmU0NTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR2x5cGhNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhN
YXAuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTVkdHbHlwaCYgc3Zn
R2x5cGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICghZ2x5
cGggfHwgZ2x5cGggPiBtX2dseXBoVGFibGUuc2l6ZSgpKSB7Ci0gICAgICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU1ZHR2x5cGgsIGRlZmF1bHRHbHlwaCwgKCkpOworICAg
ICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0dseXBoPiBkZWZhdWx0R2x5cGg7CiAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdEdseXBoOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX2dseXBoVGFibGVbZ2x5cGggLSAxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMYW5nU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAK
aW5kZXggMGM3OTQ3ODM4MDNmNzI2Zjg3OWNjYjJjNjhmNjBkYWZkZmVmMzRkYS4uY2E4ZTdkNmFj
NGQ4MmZhZWY1OGMzMGNkOGEzMjk5YmI4ZWZjOTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdT
cGFjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdm9pZCBTVkdMYW5nU3BhY2U6OnNldFhtbGxhbmco
Y29uc3QgQXRvbWljU3RyaW5nJiB4bWxMYW5nKQogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdMYW5n
U3BhY2U6OnhtbHNwYWNlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3BhY2UpIHsKLSAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVs
dFN0cmluZywgKCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZh
dWx0U3RyaW5nKCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJldHVybiBkZWZhdWx0U3RyaW5nOwogICAgIH0KIApAQCAtNjksNyArNjksNyBA
QCBib29sIFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAKIHZvaWQgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4mIHN1cHBvcnRlZEF0dHJpYnV0ZXMpCiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeG1sUHJlZml4LCAo
InhtbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB4bWxQcmVmaXgoInhtbCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgUXVhbGlmaWVkTmFtZSBsYW5nV2l0aFBy
ZWZpeCA9IFhNTE5hbWVzOjpsYW5nQXR0cjsKICAgICBsYW5nV2l0aFByZWZpeC5zZXRQcmVmaXgo
eG1sUHJlZml4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA3
M2Y0OWU0MzQwYWJlOTg4ZTM4NGMzYWRhNzc3ZDJkODg1ZGFlOWYzLi42MDBmNWRjNTk1NzM2NzU2
NWZjNWQxMWJmNjVmYjk2YzYyMzI0ZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuY3BwCkBAIC05MywxMyArOTMsMTMgQEAgUGFzc1JlZlB0cjxTVkdNYXJrZXJFbGVtZW50
PiBTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlSWRlbnRpZmll
cigpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
c19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19p
ZGVudGlmaWVyKCJTVkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdPcmllbnRBbmdsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzX2lkZW50aWZpZXIoIlNWR09y
aWVudEFuZ2xlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHNfaWRlbnRpZmllcjsKIH0KIApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgU1ZHTWFya2Vy
RWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQogICAgIGlmIChvd25lclR5cGUtPm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJPcmll
bnRBdXRvKQogICAgICAgICByZXR1cm47CiAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBhdXRvU3RyaW5nLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gYXV0b1N0cmluZygiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIG93bmVyVHlwZS0+bV9vcmllbnRUeXBlLnN5bmNocm9uaXplKG93bmVyVHlwZSwg
b3JpZW50VHlwZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRvU3RyaW5nKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDYyNTYxNGNkN2RmMjcyYmE2
M2U5M2VlZjIyZjI3MzQ4MjQ5YzA5OGYuLjU4MGZhNjhmNjMyOTY3MjdjOTg5YTY4OGM2MDdjYjM0
YjQ4MmU0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTExOSw3ICsx
MTksNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50
KiBvbGREb2N1bWVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTVkdFbGVtZW50Ojpjb250
ZW50U2NyaXB0VHlwZSgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlwdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvZWNtYXNjcmlw
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTY3JpcHRUeXBl
QXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpAQCAt
MTMxLDcgKzEzMSw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q29udGVudFNjcmlwdFR5cGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0Vs
ZW1lbnQ6OmNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2Nz
cyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvY3NzIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBuID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6Y29udGVudFN0eWxlVHlwZUF0dHIp
OwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggNGZjNDFkMzMyYmFkMGYzMzNjZTRhNzc1
NWNlNDgyZDI5YTEwZmNlMS4uZGNiOTVjMGRiYjIyZjUxZTY4ZmFmZmNkZDVlOTA1NWYxMGYxYzg3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcg
QEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZh
dWx0VmFsdWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gZGVmYXVs
dFZhbHVlKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0
dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHls
ZUVsZW1lbnQ6Om1lZGlhKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgiYWxsIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZmFzdEdldEF0
dHJpYnV0ZShTVkdOYW1lczo6bWVkaWFBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRl
ZmF1bHRWYWx1ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuY3BwCmluZGV4IDIwN2U3MWJhZmU5NTdhMDgzZDY4MjY4NjFjNjVmZGE3NDM4NjhhNzku
LjJmYTYyZmViZmJhNDEzNmRjYmQ1MGMyZjI5NDUzNjhkNmEwNzNkNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAg
dm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWQKICAgICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5h
bWUpKQogICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogICAgIGVsc2UgaWYgKG5hbWUubWF0
Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmVzZXJ2ZVN0cmluZywgKCJwcmVzZXJ2
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gcHJlc2VydmVTdHJpbmcoInByZXNl
cnZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAgICAgaWYg
KHZhbHVlID09IHByZXNlcnZlU3RyaW5nKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1Zh
bHVlUHJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKaW5kZXggZjc1YjY3ZTJlZjA5
MjUwMWM2ZDI4NzgzOTY0NDY2ZjNlOWUxMmJiNS4uNzJkYjE4ZmI0MGVmNTUzYjRlZjljOGY0M2Y5
YzUwMGM2MmQ5MDI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKQEAgLTEzNSwy
NyArMTM1LDI3IEBAIGNvbnN0IFN0cmluZyYgU1ZHVHJhbnNmb3JtOjp0cmFuc2Zvcm1UeXBlUHJl
Zml4Rm9yUGFyc2luZyhTVkdUcmFuc2Zvcm1UeXBlIHR5cGUpCiAgICAgY2FzZSBTVkdfVFJBTlNG
T1JNX1VOS05PV046CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIGNhc2UgU1ZH
X1RSQU5TRk9STV9NQVRSSVg6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgbWF0cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJtYXRyaXgoIikpKTsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gbWF0cml4U3RyaW5nKEFTQ0lJTGl0
ZXJhbCgibWF0cml4KCIpKTsKICAgICAgICAgcmV0dXJuIG1hdHJpeFN0cmluZzsKICAgICB9CiAg
ICAgY2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewotICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0cmFuc2xhdGVTdHJpbmcsIChBU0NJSUxpdGVyYWwo
InRyYW5zbGF0ZSgiKSkpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB0
cmFuc2xhdGVTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpOwogICAgICAgICByZXR1
cm4gdHJhbnNsYXRlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6
IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2NhbGVT
dHJpbmcsIChBU0NJSUxpdGVyYWwoInNjYWxlKCIpKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHNjYWxlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgic2NhbGUoIikpOwogICAg
ICAgICByZXR1cm4gc2NhbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9S
T1RBVEU6IHsKLSAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
cm90YXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUoIikpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcm90YXRlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgicm90YXRl
KCIpKTsKICAgICAgICAgcmV0dXJuIHJvdGF0ZVN0cmluZzsKICAgICB9ICAgIAogICAgIGNhc2Ug
U1ZHX1RSQU5TRk9STV9TS0VXWDogewotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBza2V3WFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2tld1goIikpKTsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2tld1hTdHJpbmcoQVNDSUlMaXRl
cmFsKCJza2V3WCgiKSk7CiAgICAgICAgIHJldHVybiBza2V3WFN0cmluZzsKICAgICB9CiAgICAg
Y2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdZOiB7Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHNrZXdZU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJza2V3WSgiKSkp
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBza2V3WVN0cmluZyhBU0NJ
SUxpdGVyYWwoInNrZXdZKCIpKTsKICAgICAgICAgcmV0dXJuIHNrZXdZU3RyaW5nOwogICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA5ODIyYmQxZGZiYTc2Y2E2
ODgwYTUyMjRhNWI2N2E2MGE1YWEyNDc4Li45ODU3MGYzMjY0OTU5MjdjYTYxMDZkZWQyZWExZmNj
OTQxN2Y3MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTg1LDE5ICs4NSwx
OSBAQCBTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnZpZXdCb3hJZGVudGlmaWVyKCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IHNfaWRlbnRpZmllcigiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3BlYzo6cHJlc2VydmVBc3BlY3RSYXRp
b0lkZW50aWZpZXIoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1ByZXNlcnZlQXNwZWN0UmF0aW9B
dHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVudGlmaWVyKCJTVkdWaWV3U3Bl
Y1ByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1JZGVudGlmaWVyKCkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
Vmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc19pZGVu
dGlmaWVyKCJTVkdWaWV3U3BlY1RyYW5zZm9ybUF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggOGZh
Mjk0ZTdkZDEyZDZmZDkwM2FmZWRjNDZjM2E1ZmI4ZWY5OGM0MC4uYzFlZmRlZGVjZGMzNDIzNmE0
NzJkZmIyMmZiZGJmOTgwOWIwNjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2Fu
aW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1h
dGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBTTUlMVGltZSBTVkdT
TUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAg
ICBTdHJpbmcgcGFyc2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVl
LCAoImluZGVmaW5pdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5kZWZpbml0ZVZh
bHVlKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgaWYgKHBhcnNlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1l
OjppbmRlZmluaXRlKCk7CiAKQEAgLTYyOSw4ICs2MjksOCBAQCBib29sIFNWR1NNSUxFbGVtZW50
Ojppc0Zyb3plbigpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlM
RWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiB7ICAgIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5ldmVyLCAoIm5ldmVyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHdoZW5Ob3RBY3RpdmUsICgid2hlbk5vdEFjdGl2
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBuZXZlcigibmV2ZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbWljU3RyaW5nPiB3aGVuTm90QWN0aXZlKCJ3aGVuTm90QWN0aXZlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnJlc3RhcnRBdHRyKTsKICAgICBpZiAodmFs
dWUgPT0gbmV2ZXIpCiAgICAgICAgIHJldHVybiBSZXN0YXJ0TmV2ZXI7CkBAIC02NDEsNyArNjQx
LDcgQEAgU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBj
b25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OkZpbGxNb2RlIFNWR1NNSUxFbGVtZW50OjpmaWxs
KCkgY29uc3QKIHsgICAKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBmcmVlemUsICgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJp
bmc+IGZyZWV6ZSgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OmZpbGxBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6
IEZpbGxSZW1vdmU7CiB9CkBAIC02NzQsNyArNjc0LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1l
bnQ6OnJlcGVhdENvdW50KCkgY29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAg
IHJldHVybiBTTUlMVGltZTo6dW5yZXNvbHZlZCgpOwogCi0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVlLCAoImluZGVm
aW5pdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRl
ZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHZh
bHVlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmlu
aXRlKCk7CiAgICAgYm9vbCBvazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL01pc2Mv
RW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vt
b2ppRmFsbGJhY2tGb250U2VsZWN0b3IuY3BwCmluZGV4IGU0YmU2YTY0ZjI2YmU0ZDNlNDgwMmU3
ZDU3NjhlZTUxYTQ3YzBiZTMuLmQ2MjYxYjE3MDc3NDQxNWIwNTNjY2U1MTkyN2ZlZGIyM2EyZTMw
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlGYWxsYmFja0ZvbnRT
ZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9u
dFNlbGVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogUGFzc1JlZlB0cjxGb250RGF0YT4gRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvcjo6Z2V0RmFs
bGJhY2tGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgc2l6
ZV90KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGFwcGxlQ29sb3JFbW9qaSwgKCJBcHBsZSBDb2xvciBFbW9qaSIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhcHBsZUNvbG9yRW1vamkoIkFwcGxlIENvbG9yIEVt
b2ppIik7CiAgICAgUmVmUHRyPEZvbnREYXRhPiBmb250RGF0YSA9IGZvbnRDYWNoZSgpLmdldENh
Y2hlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgYXBwbGVDb2xvckVtb2ppKTsKICAgICBpZiAo
IWZvbnREYXRhKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBcIkFwcGxlIENv
bG9yIEVtb2ppXCIgZnJvbSB0aGUgZm9udCBjYWNoZS4gVXNpbmcgdGhlIGxhc3QgcmVzb3J0IGZh
bGxiYWNrIGZvbnQgaW5zdGVhZC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dl
YkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tIGIvU291cmNlL1dlYktpdC9p
b3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KaW5kZXggZmFiNzMw
NTUyNTE1MDNmOTRmN2Q2MjFiOTlkMTEzYjI1ZjkwYWZiMi4uZWMyNmIwYzE3MTliOTcyZWUxNTZm
OWFiMjUzNDBiOWQ1Y2ZiZjU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9p
b3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KQEAgLTUwLDcgKzUw
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0
aW9uQ29udGVudERhdGFMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBt
dXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KaW5kZXggMDc3YzkwMzY2ZTBiYWNlNDU2NTk1YWE2
YzhjOTdmYzcyNTg3NWQyZS4uMDJkZmQzYmFkZGMxNDBkODIzYmI5ZTE0OTRkYmE0MTQ5MTExZTM2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExp
c3QubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3Qu
bW0KQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBIYXNoTWFwPEJhY2tGb3J3YXJkTGlzdCosIFdl
YkJhY2tGb3J3YXJkTGlzdCo+IEJhY2tGb3J3YXJkTGlzdE1hcDsKIC8vIHdpdGggYSBwb2ludGVy
IHRvIGEgV2ViQmFja0ZvcndhcmRMaXN0IGluIGl0Lgogc3RhdGljIEJhY2tGb3J3YXJkTGlzdE1h
cCYgYmFja0ZvcndhcmRMaXN0cygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEJhY2tGb3J3YXJkTGlzdE1hcCwgc3RhdGljQmFja0ZvcndhcmRMaXN0cywgKCkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxCYWNrRm9yd2FyZExpc3RNYXA+IHN0YXRpY0JhY2tGb3J3
YXJkTGlzdHM7CiAgICAgcmV0dXJuIHN0YXRpY0JhY2tGb3J3YXJkTGlzdHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDU0Y2ViZDY3ODI2
Yzc1OTk5ODUwMjJjNjY1ODg4MWFjOGJkYzNmMDEuLjI0NDBlMTQyMmZlZGE4YmIyMWQ4Yjg1MTQ3
ZmU4YjUyYTUxNDM3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
SGlzdG9yeUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5
SXRlbS5tbQpAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViQ29yZUhpc3RvcnlJ
dGVtKiBjb3JlKFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogaXRlbVByaXZhdGUpCiAKIHN0YXRpYyBI
aXN0b3J5SXRlbU1hcCYgaGlzdG9yeUl0ZW1XcmFwcGVycygpCiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhpc3RvcnlJdGVtTWFwLCBoaXN0b3J5SXRlbVdyYXBwZXJzLCAo
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhpc3RvcnlJdGVtTWFwPiBoaXN0b3J5SXRl
bVdyYXBwZXJzOwogICAgIHJldHVybiBoaXN0b3J5SXRlbVdyYXBwZXJzOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5Ib3N0TWFuYWdlci5tbQppbmRleCBmMTY4YTdhNzAwZjQzYWM0Y2FlMDNkMTYyOWQwYTdjMTUw
MmIzODFjLi5kZmNjYzVmYTE2MDVlN2MwOWNiNTNmMzBlODQ2MjZmOGYzNDdkMzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW0KQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6
OnNoYXJlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIsIHBsdWdpbkhvc3RNYW5hZ2VyLCAoKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI+IHBsdWdpbkhvc3RNYW5hZ2Vy
OwogICAgIAogICAgIHJldHVybiBwbHVnaW5Ib3N0TWFuYWdlcjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0KaW5kZXggNTcwNWNmYjNiMTdlZThhMjVjODQ3NDU3MmQzMmViMzI2ZjQ0YjkxZi4uZWRk
Yzg3NjhiNjJlNzE1YjJhODVmNGM1NzI4MTRjNWE4MzU1NDczMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0KQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKIHR5cGVkZWYgSGFzaE1hcDxtYWNoX3Bv
cnRfdCwgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqPiBQbHVnaW5Qcm94eU1hcDsKIHN0YXRpYyBQ
bHVnaW5Qcm94eU1hcCYgcGx1Z2luUHJveHlNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChQbHVnaW5Qcm94eU1hcCwgcGx1Z2luUHJveHlNYXAsICgpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGx1Z2luUHJveHlNYXA+IHBsdWdpblByb3h5TWFwOwogICAg
IAogICAgIHJldHVybiBwbHVnaW5Qcm94eU1hcDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbQppbmRleCA1Mzg2MWQ1MTBkMjdmNTk1OTBlYzAxNGYzMGEyMTY1YTNhYzIxNDM5Li4zMjFl
MTYwYmY3MWE0NWUyMGE0NTkzYTEyOTQyYTQ1MDY1YzI4ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCkBAIC0xNjYzLDcgKzE2NjMsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eTo6cHJpdmF0ZUJyb3dzaW5nTW9kZURpZENoYW5nZShib29sIGlzUHJpdmF0ZUJy
bwogCiBzdGF0aWMgU3RyaW5nJiBnbG9iYWxFeGNlcHRpb25TdHJpbmcoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGV4Y2VwdGlvblN0cmluZywgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGV4Y2VwdGlvblN0cmluZzsKICAgICBy
ZXR1cm4gZXhjZXB0aW9uU3RyaW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCA3ODMxNjNlYTJhZjY2YWVjNTBkZTdk
YjY0ZTY5MTY2ZTRkY2ViNzkwLi43ZWE0YjFmYTkwYjQ1MDkyMzA5NThmNjFhNzkwMjcxYmNkMDk3
M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUlu
c3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5z
dGFuY2UubW0KQEAgLTY1LDggKzY1LDggQEAgRmllbGQqIFByb3h5Q2xhc3M6OmZpZWxkTmFtZWQo
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlKSBjb24KIAogc3Rh
dGljIFByb3h5Q2xhc3MqIHByb3h5Q2xhc3MoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChQcm94eUNsYXNzLCBwcm94eUNsYXNzLCAoKSk7Ci0gICAgcmV0dXJuICZwcm94
eUNsYXNzOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQcm94eUNsYXNzPiBwcm94eUNsYXNz
OworICAgIHJldHVybiAmcHJveHlDbGFzcy5nZXQoKTsKIH0KICAgICAKIGNsYXNzIFByb3h5Rmll
bGQgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6RmllbGQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggOTM1ZDU1ZWMx
NGM4ODVkYmY5ZTg1MTZhZjI0NDZlMjk3YmRlNzNmMC4uYTFhZjgwN2VmZmEzZjZiYzgxZDIwZWJk
OWI0NmFiNTY4NzUyZTFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiB0
eXBlZGVmIEhhc2hNYXA8TlBTdHJlYW0qLCBOUFA+IFN0cmVhbU1hcDsKIHN0YXRpYyBTdHJlYW1N
YXAmIHN0cmVhbXMoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJl
YW1NYXAsIHN0YXRpY1N0cmVhbXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
ZWFtTWFwPiBzdGF0aWNTdHJlYW1zOwogICAgIHJldHVybiBzdGF0aWNTdHJlYW1zOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCmluZGV4
IDM5MTJmNThlMmU4NTg3NjEzZWJjZDY0MDNmZDkxYTBmODUxODE2MjYuLmZkOGZiOGQ2ZTE2NmU4
YjY2NDI4MWU3NjRlYjM4MGQ2NzE3YTEwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0
b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGJv
b2wgaXNGaWxlSGlkZGVuKE5TU3RyaW5nICpmaWxlKQogCiBzdGF0aWMgTXV0ZXgmIHRyYW5zYWN0
aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNdXRleD4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KaW5k
ZXggMWE2NDQwZDk1ZmEzYWRiNGYyZDk1NzAwZDBiOTFkYWRkN2E4YWRiYS4uZjZjN2E1MzY3OWMx
OGVhMjFjYjAzZTExOTA4MzFkNTI2NWVmYTA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtNTYsNyArNTYs
NyBAQCB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+LCBSZXRhaW5QdHI8
V2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXI+PgogCiBzdGF0aWMgVXNlck1lZGlhUmVxdWVzdHNN
YXAmIHVzZXJNZWRpYVJlcXVlc3RzTWFwKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoVXNlck1lZGlhUmVxdWVzdHNNYXAsIHJlcXVlc3RzLCAoKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFVzZXJNZWRpYVJlcXVlc3RzTWFwPiByZXF1ZXN0czsKICAgICByZXR1
cm4gcmVxdWVzdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJI
VE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggMDlkZGMxZDg1YzMzZWU5MDkwY2M1NDU4MGM0MTU2
MzcyNDViNmQxYS4uMDQwZjRlYzMwMmVkYmU3ODdjMzIxOTQ3OWE0ZjkyOGFmYzYwOTFjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0KQEAgLTM2NSw3ICszNjUsNyBAQCBzdGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZv
ckxhYmVscyhOU0FycmF5ICpsYWJlbHMpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBy
ZWdFeHBDYWNoZVNpemUgPSA0OwogICAgIHN0YXRpYyBOU011dGFibGVBcnJheSogcmVnRXhwTGFi
ZWxzID0gbmlsOwogICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8UmVn
dWxhckV4cHJlc3Npb24qPiwgcmVnRXhwcywgKCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChSZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJlZ0V4cCwgKCJcXHciLCBUZXh0Q2Fz
ZVNlbnNpdGl2ZSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVzc2lv
bj4gd29yZFJlZ0V4cCgiXFx3IiwgVGV4dENhc2VTZW5zaXRpdmUpOwogCiAgICAgUmVndWxhckV4
cHJlc3Npb24qIHJlc3VsdDsKICAgICBpZiAoIXJlZ0V4cExhYmVscykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCmluZGV4IDliYTY1Mzc0NjljODg4ZjcxNDVhMDU0YjQ5MDE3NzNmOGUxZDQyNDkuLmI5MWRk
NzhmZDI4NjhkNzMzMWMzMGRjYjM5OTliODE2MDI2NDY1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtNDAsNyArNDAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3RyYXRlZ2llcywg
KCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBs
YXRmb3JtU3RyYXRlZ2llczsKIH0KIAogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFi
bGVTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5j
cHAKaW5kZXggZmRiMTgxZGE1YjFlNmM4MmY2OWYyYjc4MjQwOTYzNThhNTc3NTQ2Yi4uYjdhNDk5
ODdlNmJhZjkyMzkwMTNlODI5ZDcyOTNmMDk5OTBkNDBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCkBAIC00NywyNSArNDcsMjUgQEAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgTG9jYWxpemVkU3RyaW5nKj4gTG9jYWxpemVkU3RyaW5nTWFwOwogCiBz
dGF0aWMgTXV0ZXgmIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0KIAogc3RhdGlj
IExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbGl6ZWRTdHJpbmdNYXAsIG1hcCwgKCkpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NhbGl6ZWRTdHJpbmdNYXA+IG1hcDsKICAgICBy
ZXR1cm4gbWFwOwogfQogCiBzdGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXg7CiAgICAgcmV0dXJuIG11
dGV4OwogfQogCiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwIGZyYW1ld29ya0xvY1N0cmluZ3Mo
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NhbGl6ZWRTdHJpbmdN
YXAsIG1hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NhbGl6ZWRTdHJpbmdN
YXA+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdl
MzYwOGY5YzBmNjZhZTU3NGFjYjI1MmZiZTU4YzhiMDFlNjk3Y2MuLjE5YWU4MDM5YzgwMTA0MDE4
YzMyYzNlZjgzNmM4MWJiMjBjNWRjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0xMzIxLDgg
KzEzMjEsOCBAQCBib29sIFdlYlZpZXc6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiBTdHJpbmcgV2ViVmlldzo6c3RhbmRhcmRVc2Vy
QWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lKQog
ewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9zVmVyc2lvbiwg
KHdpbmRvd3NWZXJzaW9uRm9yVUFTdHJpbmcoKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZlcnNpb24sICh3ZWJLaXRWZXJzaW9uU3RyaW5nKCkp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBvc1ZlcnNpb24od2luZG93c1Zl
cnNpb25Gb3JVQVN0cmluZygpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB3
ZWJLaXRWZXJzaW9uKHdlYktpdFZlcnNpb25TdHJpbmcoKSk7CiAKICAgICByZXR1cm4gbWFrZVN0
cmluZygiTW96aWxsYS81LjAgKCIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0
VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pIiwgYXBwbGljYXRpb25OYW1lLmlzRW1wdHko
KSA/ICIiIDogIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5j
cHAKaW5kZXggNGM2MWRiYjBmNGMxM2ZmZjM5Y2QwZDM4NTBhZmE1ZmFiNGY1MDg2Zi4uZDg0Mjg2
YTAyOGJhY2NkY2QwYWVhNjIyNzlmZTAxNWM4MmU2YmJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6On5GcmFtZUxv
YWRlckNsaWVudFdpbkNFKCkKIAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnVzZXJB
Z2VudChjb25zdCBVUkwmKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHVzZXJBZ2VudFN0cmluZywgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHVzZXJBZ2VudFN0cmluZzsKIAogICAgIGlmICh1c2VyQWdlbnRTdHJpbmcuaXNOdWxs
KCkpIHsKICAgICAgICAgU3RyaW5nIHdlYktpdFZlcnNpb24gPSBTdHJpbmc6OmZvcm1hdCgiJWQu
JWQiLCBXRUJLSVRfTUFKT1JfVkVSU0lPTiwgV0VCS0lUX01JTk9SX1ZFUlNJT04pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFLmNwcAppbmRleCBjNjUxOTM4ZmRlMTc4MjhhODBmNmRlNDlmMjczOWQy
MjVkNDU2YzRlLi4yMzcwMDQ2MjU2YWZiNWQ3ZGVjYTcyZWJjYTlhODFmOTQwZDNlYzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6aW5pdGlhbGl6ZSgp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2ll
c1dpbkNFLCBwbGF0Zm9ybVN0cmF0ZWdpZXMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U+IHBsYXRmb3JtU3RyYXRlZ2llczsKIH0KIAogUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OlBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJv
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNj
b21wQnJva2VyLmNwcAppbmRleCA1OGU3M2Y5MWY3Y2JiNDUxZjI0YjQ5MWY1ZWQ3ZjliZmVkZmE5
ZDBmLi45YjY4MWUwNTA5MGNlMDczYTZmNjQ2NDRjYmQ2ZGUyZjRmYzhiMzhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1Nl
Y2NvbXBCcm9rZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJT
SUdTWVNIYW5kbGVyKCkKIAogU2VjY29tcEJyb2tlckNsaWVudCYgU2VjY29tcEJyb2tlckNsaWVu
dDo6c2hhcmVkKGludCBzb2NrZXQpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFNlY2NvbXBCcm9rZXJDbGllbnQsIGJyb2tlckNsaWVudCwgKHNvY2tldCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTZWNjb21wQnJva2VyQ2xpZW50PiBicm9rZXJDbGllbnQoc29j
a2V0KTsKIAogICAgIHJldHVybiBicm9rZXJDbGllbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNl
cnZlci5jcHAKaW5kZXggNWRmZjU0NjMwMzZjMzdkZjU1OTdjOWJlMmFkOTlkMzg5ZDJlNThlMS4u
YTkzMDk5Y2E1OWEwYzA0NDljMDc0NGVmZDY3N2RjZjg5MTYyODIyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5z
cGVjdG9yU2VydmVyLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wgV2ViSW5zcGVjdG9yU2Vy
dmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0KFdlYlNvY2tldFNlcnZl
ckNvCiAgICAgU3RyaW5nIHBhdGggPSByZXF1ZXN0LT51cmwoKTsKIAogICAgIC8vIE5PVEU6IEtl
ZXAgdGhpcyBpbiBzeW5jIHdpdGggV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcy4KLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBp
bnNwZWN0b3JXZWJTb2NrZXRDb25uZWN0aW9uUGF0aFByZWZpeCwgKEFTQ0lJTGl0ZXJhbCgiL2Rl
dnRvb2xzL3BhZ2UvIikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBpbnNwZWN0b3JXZWJTb2NrZXRDb25uZWN0aW9uUGF0aFByZWZpeChBU0NJSUxpdGVyYWwoIi9k
ZXZ0b29scy9wYWdlLyIpKTsKIAogICAgIC8vIFVua25vd24gcGF0aCByZXF1ZXN0ZWQuCiAgICAg
aWYgKCFwYXRoLnN0YXJ0c1dpdGgoaW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBhdGhQcmVm
aXgpKQo=
</data>
<flag name="review"
          id="259237"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>