<?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>216907</bug_id>
          
          <creation_ts>2020-09-23 17:12:44 -0700</creation_ts>
          <short_desc>[JSC] Simply some of template-specialized host functions by defining each function</short_desc>
          <delta_ts>2020-09-23 23:00:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1691331</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-23 17:12:44 -0700</bug_when>
    <thetext>[JSC] Simply some of template-specialized host functions by defining each function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691332</commentid>
    <comment_count>1</comment_count>
      <attachid>409517</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-23 17:13:17 -0700</bug_when>
    <thetext>Created attachment 409517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691390</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 22:59:51 -0700</bug_when>
    <thetext>Committed r267518: &lt;https://trac.webkit.org/changeset/267518&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409517.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691391</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 23:00:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/69482284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409517</attachid>
            <date>2020-09-23 17:13:17 -0700</date>
            <delta_ts>2020-09-23 22:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216907-20200923171316.patch</filename>
            <type>text/plain</type>
            <size>44428</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NGU4NzRlMzUyMDYxYmMyYzcxNWE2M2IxYjIwOWZmZjUwMzE3NmZlLi5iZWY2NWIwZWZhY2JkYmQ1
NGI0YzY2OWMxYTFjMjc4ZTYxYzE2ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MSBAQAorMjAyMC0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNpbXBseSBzb21lIG9mIHRlbXBsYXRlLXNwZWNpYWxpemVkIGhv
c3QgZnVuY3Rpb25zIGJ5IGRlZmluaW5nIGVhY2ggZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjkwNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMgYXV0b21hdGljYWxseS1y
ZWdpc3RlcmluZyB0aGVzZSBmdW5jdGlvbnMgaW4gSklULWNhZ2luZyBlYXN5LgorCisgICAgICAg
ICogQVBJL0FQSUNhbGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6QVBJQ2FsbGJhY2tG
dW5jdGlvbjo6Y2FsbEltcGwpOgorICAgICAgICAoSlNDOjpBUElDYWxsYmFja0Z1bmN0aW9uOjpj
b25zdHJ1Y3RJbXBsKToKKyAgICAgICAgKEpTQzo6QVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6CisgICAgICAgICogQVBJ
L0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNhbGxKU0NhbGxiYWNrRnVu
Y3Rpb24pOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5j
dGlvbik6CisgICAgICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAo
SlNDOjpjYWxsT2JqQ0NhbGxiYWNrRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RP
YmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
OjpPYmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgICogQVBJL2dsaWIvSlNDQ2FsbGJhY2tG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNhbGxKU0NDYWxsYmFja0Z1bmN0aW9uKToKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0SlNDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6
OkpTQ0NhbGxiYWNrRnVuY3Rpb246OkpTQ0NhbGxiYWNrRnVuY3Rpb24pOgorICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAg
KGFjY2Vzc29yTWFrZU1hc3F1ZXJhZGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY0FycmF5QnVmZmVyQ29u
c3RydWN0b3I8c2hhcmluZ01vZGU+OjpKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6SlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9k
ZT46OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlcik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFNoYXJlZEFycmF5QnVmZmVyKToKKyAgICAgICAgKEpT
Qzo6SlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46OmNvbnN0cnVj
dEFycmF5QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OmN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uQ2FsbCk6
CisgICAgICAgIChKU0M6OkpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OmN1c3RvbUdldHRl
clNldHRlckZ1bmN0aW9uQ2FsbCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0N1c3Rv
bUdldHRlclNldHRlckZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJv
clR5cGU+Ojpjb25zdHJ1Y3RJbXBsKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbCk6CisgICAgICAgIChKU0M6OmNhbGxFdmFsRXJyb3Ip
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjYWxs
UmFuZ2VFcnJvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFJhbmdlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjYWxsUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RSZWZl
cmVuY2VFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxTeW50YXhFcnJvcik6CisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFN5bnRheEVycm9yKToKKyAgICAgICAgKEpTQzo6Y2FsbFR5cGVFcnJvcik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNhbGxV
UklFcnJvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFVSSUVycm9yKToKKyAgICAgICAgKEpT
Qzo6Y2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb24pOgorICAg
ICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46Ok5hdGl2ZUVycm9y
Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVy
cm9yVHlwZT46OmNvbnN0cnVjdE5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxOYXRpdmVF
cnJvckNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KToKKyAgICAgICAgKEpTQzo6
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI2KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI5KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JJ
bnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKToKKyAgICAg
ICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAgICAgICAoSlNDOjpyZWdF
eHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4
dCk6CisgICAgICAgIChKU0M6OnNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOgorICAgICAgICAo
SlNDOjpzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyKTogRGVsZXRlZC4KKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZN
LmNwcDoKKwogMjAyMC0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIEludGwgc3BlYyB1cGRhdGU6IGhhbmRsZSBhd2t3YXJkIHJvdW5kaW5n
IGJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhbGxi
YWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5j
dGlvbi5oCmluZGV4IGU2YzNlYTgxNWY5ZWJjYWFlNjQ4ZTc0YzdiODk4ZGNlYzBiOGEyZmEuLmQy
ZDM3YjEzMGVmYzY2M2VjNjEyOTE5YmYwMDk5MDY5YzI3ODUyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC0zNSwxNCArMzUsMTIg
QEAKIG5hbWVzcGFjZSBKU0MgewogCiBzdHJ1Y3QgQVBJQ2FsbGJhY2tGdW5jdGlvbiB7Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxJbXBsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CisgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RJbXBs
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2Fs
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdl
dFZNKGdsb2JhbE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzUsNyArNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEFQSUNh
bGxiYWNrRnVuY3Rpb246OmNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgQVBJQ2FsbGJh
Y2tGdW5jdGlvbjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorRW5jb2RlZEpTVmFsdWUgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29u
c3RydWN0SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCA5MGVhZmZmMTY5Y2QxNjkz
ODAxMDc4OGUzZTI3ZTBjOGZiZTQ3NzU5Li43ZjI5OWRhOTU1YjY1Yzc5ZTQ4N2I3ZmE3Y2FlOGQz
NTc0NDg1ZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrQ29uc3RydWN0b3IuY3BwCkBAIC02MSwxMSArNjEsMTYgQEAgdm9pZCBKU0NhbGxiYWNrQ29u
c3RydWN0b3I6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvcio+KGNlbGwpLT5KU0NhbGxiYWNrQ29uc3RydWN0b3I6On5KU0NhbGxiYWNr
Q29uc3RydWN0b3IoKTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SlNDYWxsYmFja0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0
aW9uOjpjb25zdHJ1Y3RJbXBsPEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUpOworfQorCiBDYWxsRGF0YSBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDZWxsKikKIHsKICAgICBDYWxsRGF0YSBjb25zdHJ1Y3REYXRhOwogICAgIGNv
bnN0cnVjdERhdGEudHlwZSA9IENhbGxEYXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3Q8SlND
YWxsYmFja0NvbnN0cnVjdG9yPjsKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNvbnN0cnVjdEpTQ2FsbGJhY2tDb25zdHJ1Y3RvcjsKICAgICByZXR1cm4gY29uc3RydWN0RGF0
YTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwCmluZGV4IGVjMTRjZmJkZmUzZDkzNGMzN2ZkZTliN2YzNjU5ZGExNDYxYTEzNTUuLjYw
YjcyNzZiODFiMDVkOTEzZDllYzRmMmRjNTNhZDE4YTRkMGU3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTM1LDggKzM1LDEz
IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU0NhbGxiYWNrRnVu
Y3Rpb24pOwogCiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2luZm8gPSB7
ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrRnVuY3Rpb24pIH07CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7Cisg
ICAgcmV0dXJuIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBsPEpTQ2FsbGJhY2tGdW5jdGlv
bj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBKU0NhbGxiYWNrRnVuY3Rpb246OkpT
Q2FsbGJhY2tGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdENh
bGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZt
LCBzdHJ1Y3R1cmUsIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8SlNDYWxsYmFja0Z1bmN0aW9u
PiwgbnVsbHB0cikKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEpT
Q2FsbGJhY2tGdW5jdGlvbiwgbnVsbHB0cikKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1
bmN0aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlv
bi5tbQppbmRleCA2YTY3Y2M5OGJlZDMwMGU2ZTNkNzhiMWJiOGRmYmU2Nzc2NzQzNDUwLi5iMzVh
ZjI5OTJkN2RjZThiNjgzNjUyNjc5Y2VlOTU0ZjkwODcyZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUzNSw4ICs1MzUs
MTggQEAgc3RhdGljIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3Ry
dWN0b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnQKIAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2Jq
Q0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFj
a0Z1bmN0aW9uKSB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
T2JqQ0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJ
bXBsPE9iakNDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE9iakNDYWxsYmFj
a0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQoreworICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3RJbXBsPE9i
akNDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKIE9iakND
YWxsYmFja0Z1bmN0aW9uOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbihKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGZ1bmN0
aW9uQ2FsbGJhY2ssIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjb25zdHJ1Y3RD
YWxsYmFjaywgc3RkOjp1bmlxdWVfcHRyPE9iakNDYWxsYmFja0Z1bmN0aW9uSW1wbD4gaW1wbCkK
LSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbDxPYmpD
Q2FsbGJhY2tGdW5jdGlvbj4sIGltcGwtPmlzQ29uc3RydWN0aWJsZSgpID8gQVBJQ2FsbGJhY2tG
dW5jdGlvbjo6Y29uc3RydWN0PE9iakNDYWxsYmFja0Z1bmN0aW9uPiA6IG51bGxwdHIpCisgICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxPYmpDQ2FsbGJhY2tGdW5jdGlvbiwgaW1wbC0+aXND
b25zdHJ1Y3RpYmxlKCkgPyBjb25zdHJ1Y3RPYmpDQ2FsbGJhY2tGdW5jdGlvbiA6IG51bGxwdHIp
CiAgICAgLCBtX2Z1bmN0aW9uQ2FsbGJhY2soZnVuY3Rpb25DYWxsYmFjaykKICAgICAsIG1fY29u
c3RydWN0Q2FsbGJhY2soY29uc3RydWN0Q2FsbGJhY2spCiAgICAgLCBtX2ltcGwoV1RGTW92ZShp
bXBsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxs
YmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxs
YmFja0Z1bmN0aW9uLmNwcAppbmRleCA3YTA5ZGJmNGZjMzJlMmI5NmJmNWQ5MzQxNzk0ZWNmNDY5
MTNjYzM0Li5jNjA0ZGVlYjQzOTVkZTFkNTgxZWE2YzA5NDZiNWI0OWQ4NzAxZDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NhbGxiYWNrRnVuY3Rp
b24uY3BwCkBAIC01Miw2ICs1MiwxNiBAQCBzdGF0aWMgSlNPYmplY3RSZWYgY2FsbEFzQ29uc3Ry
dWN0b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnRleHQsIEpTT2JqZWN0UmVmIGNvbgogCiBjb25z
dCBDbGFzc0luZm8gSlNDQ2FsbGJhY2tGdW5jdGlvbjo6c19pbmZvID0geyAiQ2FsbGJhY2tGdW5j
dGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNDQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAorc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIEFQ
SUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBsPEpTQ0NhbGxiYWNrRnVuY3Rpb24+KGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5j
dGlvbjo6Y29uc3RydWN0SW1wbDxKU0NDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7Cit9CisKIEpTQ0NhbGxiYWNrRnVuY3Rpb24qIEpTQ0NhbGxiYWNrRnVuY3Rpb246
OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgVHlwZSB0eXBlLCBKU0NDbGFzcyoganNjQ2xhc3MsIEdSZWZQdHI8R0Nsb3N1cmU+
JiYgY2xvc3VyZSwgR1R5cGUgcmV0dXJuVHlwZSwgT3B0aW9uYWw8VmVjdG9yPEdUeXBlPj4mJiBw
YXJhbWV0ZXJzKQogewogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5n
bGliQ2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSgpOwpAQCAtNjEsNyArNzEsNyBAQCBKU0NDYWxs
YmFja0Z1bmN0aW9uKiBKU0NDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsTwogfQogCiBKU0NDYWxsYmFja0Z1bmN0aW9uOjpKU0NDYWxsYmFja0Z1
bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFR5cGUgdHlwZSwgSlNDQ2xhc3Mq
IGpzY0NsYXNzLCBHUmVmUHRyPEdDbG9zdXJlPiYmIGNsb3N1cmUsIEdUeXBlIHJldHVyblR5cGUs
IE9wdGlvbmFsPFZlY3RvcjxHVHlwZT4+JiYgcGFyYW1ldGVycykKLSAgICA6IEludGVybmFsRnVu
Y3Rpb24odm0sIHN0cnVjdHVyZSwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbDxKU0NDYWxsYmFj
a0Z1bmN0aW9uPiwgdHlwZSA9PSBUeXBlOjpDb25zdHJ1Y3RvciA/IEFQSUNhbGxiYWNrRnVuY3Rp
b246OmNvbnN0cnVjdDxKU0NDYWxsYmFja0Z1bmN0aW9uPiA6IG51bGxwdHIpCisgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU0NDYWxsYmFja0Z1bmN0aW9uLCB0eXBl
ID09IFR5cGU6OkNvbnN0cnVjdG9yID8gY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5jdGlvbiA6IG51
bGxwdHIpCiAgICAgLCBtX2Z1bmN0aW9uQ2FsbGJhY2soY2FsbEFzRnVuY3Rpb24pCiAgICAgLCBt
X2NvbnN0cnVjdENhbGxiYWNrKGNhbGxBc0NvbnN0cnVjdG9yKQogICAgICwgbV90eXBlKHR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDU1MTc0NjBh
OTQzODA4ZGVmZmE2MGQ5ZjFjM2ExN2ZmYWRmNTdhOTcuLjMwMWQ0MjNmY2UxOTUyYzQ5YmFmYjlm
NzVjMjZjZGQ5MGYxNTlhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCkBAIC0zMDMsOCArMzAzLDYgQEAgaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbnZlcnREb3VibGVUb0ludDUyKGRvdWJsZSk7CiAKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk51bWJlcklzSW50ZWdlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsK
IAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmYXVsdEhhc0luc3RhbmNlKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90byk7Ci0KIGNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3UmF3T2JqZWN0KFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwg
QnV0dGVyZmx5KikgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld09iamVjdFdpdGhCdXR0ZXJmbHkoVk0qLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKSBXVEZf
SU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1
dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aChWTSosIFN0cnVjdHVyZSos
IHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggNzc5YTk1OWY4ODdjOTE1ZTIz
NTFhODUyYzExMzIwZjI2NGYwNzg3YS4uZjBlMzFhYzBmOGM4OWUzYzg0MjdjYWRiN2JiODY1MjNk
YmIyMjQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
CkBAIC0yMTEwLDE2ICsyMTEwLDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlclNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwKIH0KICNlbmRp
ZgogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgaW50MzJfdCBzY29wZVJlZykKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKLQotICAgIGF1dG8mIHNjb3BlU2xvdCA9IGNhbGxGcmFtZS0+dW5jaGVj
a2VkUihWaXJ0dWFsUmVnaXN0ZXIoc2NvcGVSZWcpKTsKLSAgICBzY29wZVNsb3QgPSBzY29wZVNs
b3QuUmVnaXN0ZXI6OnNjb3BlKCktPm5leHQoKTsKLX0KLQogc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXgg
NjcwNTUxMGQ5YTQ1ODFkZGIxMDc3MGQ3NDQwNjAxZjgzYjBjOWFhMy4uMWFhMzA3MDczMGJjNGZj
MWExZTI0MWJhMTkzZjAzNzJhNDI0MzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKQEAgLTI1NSw3ICsyNTUsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0
cgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpT
Q2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShKU0dsb2JhbE9iamVjdCosIGludDMyX3Qs
IFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpIFdURl9J
TlRFUk5BTDsKIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2Zp
bGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeVZhbEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0KSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4
IDAzM2FjMWI0NTQyNWIxMjA1NjcyMDdlOTUxZjg5MjYzZTg0ZmJhOGEuLmZlY2FiOWVjMGJkZDQw
ZDk3ZjM5OWZlYjIzZTE4ODFkZDMyMjU0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC00NTUs
NiArNDU1LDEyIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHN0cmluZ0Zyb21VVEYoY29uc3QgVmVj
dG9yJiB1dGY4KQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNr
KHV0ZjguZGF0YSgpLCB1dGY4LnNpemUoKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGFjY2Vzc29yTWFrZU1hc3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSW50ZXJuYWxG
dW5jdGlvbjo6Y3JlYXRlRnVuY3Rpb25UaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCh2bSwgZ2xv
YmFsT2JqZWN0LCAwLCAiSXNIVE1MRERBIl9zLCBmdW5jdGlvbkNhbGxNYXNxdWVyYWRlcikpOwor
fQorCiBjbGFzcyBHbG9iYWxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3Qgewog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0dsb2JhbE9iamVjdDsKQEAgLTYwNiw5ICs2MTIs
NyBAQCBjbGFzcyBHbG9iYWxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3Qgewog
ICAgICAgICAKICAgICAgICAgZG9sbGFyLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJnbG9iYWwiKSwgdGhpcywgRG9udEVudW0pOwogICAgICAgICBkb2xsYXItPnB1
dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiSXNI
VE1MRERBIiksCi0gICAgICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgW10o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkgewotICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihnbG9i
YWxPYmplY3QsIG51bGxwdHIpOwotICAgICAgICAgICAgfSwgbnVsbHB0ciksCisgICAgICAgICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgYWNjZXNzb3JNYWtlTWFzcXVlcmFkZXIs
IG51bGxwdHIpLAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21WYWx1ZSkKICAgICAgICAgKTsKIApAQCAtNjY0LDcgKzY2OCw3IEBAIGNs
YXNzIEdsb2JhbE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIHRlc3RDdXN0b21BY2Nlc3Nv
clNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCisgICAgc3RhdGljIGJv
b2wgSklUX09QRVJBVElPTiB0ZXN0Q3VzdG9tQWNjZXNzb3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkuaXNDZWxsKCkpOwpAQCAtNjc1LDcgKzY3OSw3IEBAIGNsYXNzIEdsb2JhbE9iamVj
dCBmaW5hbCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIHJldHVybiB0ZXN0Q3Vz
dG9tU2V0dGVySW1wbChsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFs
dWUsICJfdGVzdEN1c3RvbUFjY2Vzc29yU2V0dGVyIik7CiAgICAgfQogCi0gICAgc3RhdGljIGJv
b2wgdGVzdEN1c3RvbVZhbHVlU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKKyAgICBzdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIHRlc3RDdXN0b21WYWx1ZVNldHRlcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiAgICAgewogICAgICAgICBWTSYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5pc0NlbGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAppbmRl
eCA5MzVkYzlmMDkyZjM1NDEyODc5MTkzZjY4YTFlNjcwN2RjODVkMzcyLi45YzBhNjhhMDFlNDJj
MWJmMThkNTI4MjQyMDczYjkwMmQ1YzFhNjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1
LDYgKzM1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5QnVmZmVyRnVuY0lzVmlldyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5QnVmZmVy
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2hhcmVk
QXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAogdGVtcGxhdGU8Pgog
Y29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0gewpAQCAt
NTAsNyArNTIsNyBAQCBjb25zdCBDbGFzc0luZm8gSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7CiAKIHRlbXBsYXRlPEFycmF5QnVmZmVyU2hhcmluZ01vZGUgc2hhcmlu
Z01vZGU+CiBKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6SlNH
ZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsQXJyYXlCdWZmZXIsIEpTR2VuZXJpY0Fy
cmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+Ojpjb25zdHJ1Y3RBcnJheUJ1ZmZlcikK
KyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5QnVmZmVyLCBzaGFyaW5nTW9kZSA9
PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ID8gY29uc3RydWN0QXJyYXlCdWZmZXIg
OiBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlcikKIHsKIH0KIApAQCAtNjksNyArNzEsNyBAQCB2
b2lkIEpTR2VuZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTQXJyYQogfQogCiB0ZW1wbGF0ZTxBcnJheUJ1ZmZlclNoYXJpbmdN
b2RlIHNoYXJpbmdNb2RlPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0dlbmVyaWNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6Y29uc3RydWN0QXJyYXlCdWZmZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6
Y29uc3RydWN0SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTIyLDYgKzEyNCwxNiBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlCdWZmZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25z
dHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiQXJyYXlCdWZmZXIiKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBKU0dlbmVyaWNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yPEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQ+Ojpjb25zdHJ1Y3RJ
bXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2hhcmVkQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIEpTR2Vu
ZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3I8QXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6U2hhcmVk
Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogLy8gRUNNQSAyNC4xLjMuMQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaAppbmRleCBmNjVl
MDIwMTEyNmE2NmU1MDhmZTE1MTFlZjcyNjNjOTA5ZDFmZDUxLi4wOTdkMzNjMjJkMjk5NzIzYjM0
NmIzZTdjNDBhMTBhZTU5Njk5MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaApAQCAtNTEsMTEgKzUxLDEx
IEBAIGNsYXNzIEpTR2VuZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87IC8v
IFRoaXMgaXMgbmV2ZXIgYWNjZXNzZWQgZGlyZWN0bHksIHNpbmNlIHRoYXQgd291bGQgYnJlYWsg
bGlua2FnZSBvbiBzb21lIGNvbXBpbGVycy4KICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvKiBp
bmZvKCk7CiAKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SW1wbChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworCiBwcml2YXRlOgogICAgIEpTR2VuZXJpY0FycmF5QnVm
ZmVyQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgSlNBcnJheUJ1ZmZlclByb3RvdHlwZSosIEdldHRlclNldHRlciogc3BlY2llc1N5bWJv
bCk7Ci0KLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RB
cnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogfTsKIAogdXNpbmcgSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yID0gSlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxB
cnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5j
cHAKaW5kZXggYTdlYmEyMmMzNTU5MDExZGJmYzY0MzlkNTU2NWNiNzQ2M2ZiOTZhNy4uYWUzNWJh
NDAzOTU4YmRkZDAxNjllYzk5NjU4MDIzN2ZkODk2NDg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5j
dGlvbi5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNz
SW5mbyBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlND
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikgfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uOjpjdXN0b21HZXR0ZXJTZXR0ZXJGdW5j
dGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uaApp
bmRleCAyZTBjNzQ1Zjc2ODFlMWY1NGU1YmVkMjFlYjIyOTIzODY3YjNkZWIzLi4zYjI0MDY1YWM5
ZWJlZjJkY2U0MTBmOGNjM2ZlZDI2YzViM2RmMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5o
CkBAIC01NiwxNyArNTYsMTUgQEAgY2xhc3MgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbiBm
aW5hbCA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAK
KyAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fZ2V0dGVyU2V0dGVyLmdldCgpOyB9CisgICAgYm9vbCBpc1NldHRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpTZXR0ZXI7IH0KKyAgICBjb25zdCBQcm9wZXJ0eU5hbWUm
IHByb3BlcnR5TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlOYW1lOyB9CisKIHByaXZh
dGU6CiAgICAgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbihWTSYsIE5hdGl2ZUV4ZWN1dGFi
bGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFR5cGUsIGNvbnN0IFByb3BlcnR5TmFt
ZSYpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBOYXRpdmVFeGVjdXRhYmxlKiwgQ3Vz
dG9tR2V0dGVyU2V0dGVyKiwgY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0KLSAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdl
dHRlclNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyU2V0dGVyLmdldCgpOyB9Ci0gICAg
Ym9vbCBpc1NldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpTZXR0ZXI7IH0K
LSAgICBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvcGVydHlOYW1lOyB9Ci0KICAgICBXcml0ZUJhcnJpZXI8Q3VzdG9tR2V0dGVyU2V0dGVyPiBt
X2dldHRlclNldHRlcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBQcm9wZXJ0eU5hbWUgbV9wcm9w
ZXJ0eU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGZiMDQ2MTkyNzAxNjQwNTQ5NGYzY2NhNGM5
Yzg3YTJmZTA3NGM1NDcuLjE2NzU0NjliYzcxYmJkMjNhY2M0OTg5OGZmNjA3NDZjYmIyMmQwYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zMiwyMSArMzIsNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2UpOwogY29uc3Qg
Q2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JCYXNlOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2UpIH07CiAKIHRlbXBsYXRlPEVycm9yVHlwZSBlcnJv
clR5cGU+Ci1OYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46Ok5hdGl2ZUVycm9yQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IE5hdGl2ZUVycm9y
Q29uc3RydWN0b3JCYXNlKHZtLCBzdHJ1Y3R1cmUsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJy
b3JUeXBlPjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IsIE5hdGl2ZUVycm9yQ29uc3RydWN0
b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcikKLXsKLX0KLQot
dm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBO
YXRpdmVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQotewot
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAxLCBlcnJvclR5cGVOYW1lKGVycm9yVHlwZSks
IFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJhbnNpdGlvbik7Ci0gICAg
QVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICAKLSAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQotdGVtcGxhdGU8RXJyb3JUeXBl
IGVycm9yVHlwZT4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3ROYXRpdmVFcnJvckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoraW5saW5lIEVu
Y29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0
SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMsMTMgKzQ5LDEwNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3Ry
dWN0TmF0aXZlRQogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNh
bGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQoraW5saW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZy
YW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFs
T2JqZWN0LT5lcnJvclN0cnVjdHVyZShlcnJvclR5cGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUs
IG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXZhbEVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBOYXRpdmVF
cnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6RXZhbEVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUpOworfQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0RXZhbEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9y
VHlwZTo6RXZhbEVycm9yPjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSYW5nZUVycm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorewor
ICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6UmFuZ2VFcnJvcj46
OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFJhbmdlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpSYW5nZUVycm9yPjo6Y29uc3RydWN0SW1wbChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjxFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
UmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCit7CisgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBl
OjpSZWZlcmVuY2VFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
OworfQorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ludGF4RXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7
CisgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpTeW50YXhFcnJv
cj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBOYXRp
dmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6U3ludGF4RXJyb3I+Ojpjb25zdHJ1Y3RJbXBs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjxFcnJvclR5cGU6OlR5cGVFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKK30KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K3sKKyAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlR5cGVFcnJv
cj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVVJJRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpVUklFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKTsKK30KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9y
VHlwZTo6VVJJRXJyb3I+Ojpjb25zdHJ1Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
K30KKworc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNhbGxGdW5jdGlvbihFcnJvclR5cGUgZXJyb3JU
eXBlKSAtPiBkZWNsdHlwZSgmY2FsbEV2YWxFcnJvcikKK3sKKyAgICBzd2l0Y2ggKGVycm9yVHlw
ZSkgeworICAgIGNhc2UgRXJyb3JUeXBlOjpFdmFsRXJyb3I6IHJldHVybiBjYWxsRXZhbEVycm9y
OworICAgIGNhc2UgRXJyb3JUeXBlOjpSYW5nZUVycm9yOiByZXR1cm4gY2FsbFJhbmdlRXJyb3I7
CisgICAgY2FzZSBFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yOiByZXR1cm4gY2FsbFJlZmVyZW5j
ZUVycm9yOworICAgIGNhc2UgRXJyb3JUeXBlOjpTeW50YXhFcnJvcjogcmV0dXJuIGNhbGxTeW50
YXhFcnJvcjsKKyAgICBjYXNlIEVycm9yVHlwZTo6VHlwZUVycm9yOiByZXR1cm4gY2FsbFR5cGVF
cnJvcjsKKyAgICBjYXNlIEVycm9yVHlwZTo6VVJJRXJyb3I6IHJldHVybiBjYWxsVVJJRXJyb3I7
CisgICAgZGVmYXVsdDogcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCitzdGF0aWMgY29uc3Rl
eHByIGF1dG8gY29uc3RydWN0RnVuY3Rpb24oRXJyb3JUeXBlIGVycm9yVHlwZSkgLT4gZGVjbHR5
cGUoJmNvbnN0cnVjdEV2YWxFcnJvcikKK3sKKyAgICBzd2l0Y2ggKGVycm9yVHlwZSkgeworICAg
IGNhc2UgRXJyb3JUeXBlOjpFdmFsRXJyb3I6IHJldHVybiBjb25zdHJ1Y3RFdmFsRXJyb3I7Cisg
ICAgY2FzZSBFcnJvclR5cGU6OlJhbmdlRXJyb3I6IHJldHVybiBjb25zdHJ1Y3RSYW5nZUVycm9y
OworICAgIGNhc2UgRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvcjogcmV0dXJuIGNvbnN0cnVjdFJl
ZmVyZW5jZUVycm9yOworICAgIGNhc2UgRXJyb3JUeXBlOjpTeW50YXhFcnJvcjogcmV0dXJuIGNv
bnN0cnVjdFN5bnRheEVycm9yOworICAgIGNhc2UgRXJyb3JUeXBlOjpUeXBlRXJyb3I6IHJldHVy
biBjb25zdHJ1Y3RUeXBlRXJyb3I7CisgICAgY2FzZSBFcnJvclR5cGU6OlVSSUVycm9yOiByZXR1
cm4gY29uc3RydWN0VVJJRXJyb3I7CisgICAgZGVmYXVsdDogcmV0dXJuIG51bGxwdHI7CisgICAg
fQorfQorCit0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgorTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcjxlcnJvclR5cGU+OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCisgICAgOiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZSh2bSwgc3RydWN0
dXJlLCBjYWxsRnVuY3Rpb24oZXJyb3JUeXBlKSwgY29uc3RydWN0RnVuY3Rpb24oZXJyb3JUeXBl
KSkKK3sKK30KKwordm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBOYXRpdmVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlLCBFcnJvclR5cGUgZXJy
b3JUeXBlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAxLCBlcnJvclR5cGVOYW1l
KGVycm9yVHlwZSksIFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJhbnNp
dGlvbik7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICAKKyAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBw
cm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKK30KKwogdGVtcGxh
dGUgY2xhc3MgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OkV2YWxFcnJvcj47CiB0
ZW1wbGF0ZSBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6UmFuZ2VFcnJv
cj47CiB0ZW1wbGF0ZSBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6UmVm
ZXJlbmNlRXJyb3I+OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDQ5M2UxMTFjZjM2OTNkOTk3YjA1NDgzM2Nj
NjkzNGJlMmE0ZGRjZWQuLjdmOTU3NjVjYTJjODE3NDIzNjZiMDY4OGNiZjYwMTg1ZTVjNGMzYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmgKQEAgLTU5LDEwICs1OSwxMCBAQCBjbGFzcyBOYXRpdmVFcnJvckNvbnN0
cnVjdG9yIGZpbmFsIDogcHVibGljIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JCYXNlIHsKICAgICAg
ICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm90b3R5cGUsIGVycm9yVHlwZSk7
CiAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICB9Ci1wcml2YXRlOgotICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwogCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxJbXBs
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3ByaXZhdGU6CiAg
ICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IGQyNzVjM2YxNGYxMTIwYWZiYTk3YzMyNWFkYWIwZGViMjYyOTlmZDUuLjIwMzE1M2QzODc0
YjVlMDBhYTVkODVlNTQwZGEzM2M1MjA2NGM3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTI5LDE3ICsyOSwyMyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4oSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRD
b250ZXh0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXRlbXBsYXRlPGludCBO
Pgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0KLXN0YXRpYyBib29sIHNl
dFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpOwotc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JJbnB1dChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI4KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjkoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1
dChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CitzdGF0
aWMgYm9vbCBKSVRfT1BFUkFUSU9OIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKQEAgLTYzLDE1ICs2OSwxNSBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQog
ICAgICRgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0ICAgIERvbnRE
ZWxldGV8UmVhZE9ubHl8RG9udEVudW0KICAgICByaWdodENvbnRleHQgICAgcmVnRXhwQ29uc3Ry
dWN0b3JSaWdodENvbnRleHQgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgICAgJCcgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seXxE
b250RW51bQotICAgICQxICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjwxPiAg
ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI8Mj4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDMgICAgICAgICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyPDM+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQot
ICAgICQ0ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw0PiAgICAgIERvbnRE
ZWxldGV8UmVhZE9ubHkKLSAgICAkNSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI8NT4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDYgICAgICAgICAgICAgIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyPDY+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQ3ICAg
ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw3PiAgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLSAgICAkOCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8OD4gICAg
ICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyPDk+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQxICAgICAgICAgICAg
ICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAg
ICAkMiAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5CisgICAgJDMgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ0ICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjQgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgICAkNSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1ICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5CisgICAgJDYgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQorICAgICQ3ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjcgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgICAkOCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAg
JDkgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQogQGVuZAogKi8KIApAQCAtOTUsNDkgKzEwMSw4NiBAQCB2b2lkIFJlZ0V4cENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhw
UHJvdG90eXBlLAogfQogCiB0ZW1wbGF0ZTxpbnQgTj4KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitpbmxpbmUgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXJJbXBsKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxS
ZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2Jq
ZWN0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5nZXRCYWNrcmVmKGdsb2JhbE9iamVjdCwgTikpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKK30KK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3sKKyAg
ICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOworfQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAg
IHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mz4oZ2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7CisgICAg
cmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgcHJvcGVydHlOYW1lKTsKK30KK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI1KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3sKKyAgICBy
ZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBwcm9wZXJ0eU5hbWUpOworfQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAgIHJl
dHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nj4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIHByb3BlcnR5TmFtZSk7Cit9CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0
dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgcHJvcGVydHlOYW1lKTsKK30KK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDg+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOworfQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAgIHJldHVy
biByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IHByb3BlcnR5TmFtZSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhw
Q29uc3RydWN0b3JJbnB1dChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBq
c0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmds
b2JhbE9iamVjdCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBHbG9iYWxEYXRhKCkuaW5wdXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZ2xv
YmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkubXVsdGlsaW5lKCkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldEJhY2tyZWYoZ2xvYmFsT2Jq
ZWN0LCAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVu
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVu
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25z
dHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yTGVmdENvbnRleHQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVn
RXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdsb2JhbE9iamVjdCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFs
T2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1
Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5n
ZXRSaWdodENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLWJvb2wgc2V0UmVnRXhwQ29uc3Ry
dWN0b3JJbnB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldFJl
Z0V4cENvbnN0cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTUyLDcgKzE5NSw3IEBAIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1ib29sIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgdmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0UmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGEwM2I3N2I2
MjRhNDk2YzI4MjRlNGYyNmIwYzdiOTQzZjY2YjNjYWUuLjYxMGQyNTYwMDYzNmMyZTczYTE1MjEy
ZDljOTNjYTQ0ZWQ3YWYzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5jcHAKQEAgLTE0OTUsMzAgKzE0OTUsMzAgQEAgY2xhc3MgSlNUZXN0Q3VzdG9tR2V0dGVy
U2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogfTsKIAogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgY3VzdG9tR2V0QWNjZXNzb3IoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGN1c3RvbUdldEFjY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgLy8gUGFzc2VkIHx0aGlzfAogICAgIHJl
dHVybiB0aGlzVmFsdWU7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXRWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUs
IFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3Rv
bUdldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNs
b3RWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRl
Y29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNldHRlcj4oZ2xvYmFs
T2JqZWN0LT52bSgpKSk7CiAgICAgLy8gUGFzc2VkIHByb3BlcnR5IGhvbGRlci4KICAgICByZXR1
cm4gc2xvdFZhbHVlOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0QWNjZXNz
b3JHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1
c3RvbUdldEFjY2Vzc29yR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShnbG9iYWxPYmplY3QpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0
VmFsdWVHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGN1c3RvbUdldFZhbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShnbG9iYWxPYmplY3QpOwogfQogCi1zdGF0aWMgYm9vbCBjdXN0b21TZXRBY2Nlc3NvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitzdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIGN1
c3RvbVNldEFjY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTE1MzIsNyArMTUzMiw3IEBAIHN0YXRpYyBib29sIGN1c3RvbVNldEFjY2Vzc29y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNPCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGN1c3RvbVNldFZhbHVlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorc3RhdGljIGJvb2wgSklUX09QRVJBVElPTiBjdXN0b21TZXRWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTE1NDgs
NyArMTU0OCw3IEBAIHN0YXRpYyBib29sIGN1c3RvbVNldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXN0YXRpYyBib29sIGN1c3RvbUZ1bmN0aW9uU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitz
dGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIGN1c3RvbUZ1bmN0aW9uU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>