<?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>98946</bug_id>
          
          <creation_ts>2012-10-10 12:34:56 -0700</creation_ts>
          <short_desc>REGRESSION(r130937): broke Qt Win build (Requested by tony^work on #webkit).</short_desc>
          <delta_ts>2012-10-10 16:33:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739217</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:34:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130937 broke the build:
broke Qt Win build (Requested by tony^work on #webkit).

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

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739219</commentid>
    <comment_count>1</comment_count>
      <attachid>168055</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:35:45 -0700</bug_when>
    <thetext>Created attachment 168055
ROLLOUT of r130937

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739285</commentid>
    <comment_count>2</comment_count>
      <attachid>168055</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-10 14:06:49 -0700</bug_when>
    <thetext>Comment on attachment 168055
ROLLOUT of r130937

This won&apos;t apply anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739388</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-10 16:33:38 -0700</bug_when>
    <thetext>I rolled out in http://trac.webkit.org/changeset/130962 .</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168055</attachid>
            <date>2012-10-10 12:35:45 -0700</date>
            <delta_ts>2012-10-10 14:06:49 -0700</delta_ts>
            <desc>ROLLOUT of r130937</desc>
            <filename>bug-98946-20121010194214.patch</filename>
            <type>text/plain</type>
            <size>118204</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZjNzBmZmEzMTEwMTVl
OTYwNmYwNmVmMTg4NDgzMjI3NTA1YTc2NS4uNGJiYWRlY2E0MGQ2ZjNlNTA1MDFlZmM0OGNjY2My
ODRhZTJkNWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEwLTEwICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMwOTM3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzA5MzcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4OTQ2CisKKyAgICAgICAgYnJva2UgUXQgV2luIGJ1aWxkIChSZXF1ZXN0ZWQg
YnkgdG9ueV53b3JrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5w
cmk6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fcHJlcHJvY2Vz
c2dyYW1tYXIucHk6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhbW1hci55LmluLgorICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW5jbHVkZXM6IFJl
bW92ZWQuCisgICAgICAgICogY3NzL21ha2VncmFtbWFyLnBsOgorCiAyMDEyLTEwLTEwICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMGFhOTY5YjU1NTQ5OWFmYjk2NTFhN2YyMjA3OTIzYTQ2NmFjN2Y5Yy4uODY2NDRiMThi
ZjU2ODQ1NTYwNWQyYTMwYzJkMjA3ODY5Zjk2Mjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTI4NTgsMTEgKzI4NTgsMTEgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Vc2VyQWdlbnRTdHlsZVNoZWV0c0QKIEFERF9TT1VSQ0Vf
V0VCQ09SRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElSfS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAgVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBVc2VyQWdlbnRTdHlsZVNoZWV0
cy5oKQogCiAKLUdFTkVSQVRFX0dSQU1NQVIoY3NzeXkgJHtXRUJDT1JFX0RJUn0vY3NzL0NTU0dy
YW1tYXIueS5pbiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ1NTR3JhbW1hci5oICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9DU1NHcmFtbWFyLmNwcCAke1dFQkNPUkVfRElS
fS9jc3MvQ1NTR3JhbW1hci55LmluY2x1ZGVzICIke0ZFQVRVUkVfREVGSU5FU19XSVRIX1NQQUNF
X1NFUEFSQVRPUn0iKQorR0VORVJBVEVfR1JBTU1BUihjc3N5eSAke1dFQkNPUkVfRElSfS9jc3Mv
Q1NTR3JhbW1hci55ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9DU1NHcmFtbWFyLmgg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NTU0dyYW1tYXIuY3BwKQogTElTVChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9DU1NHcmFt
bWFyLmNwcCkKIAogCi1HRU5FUkFURV9HUkFNTUFSKHhwYXRoeXkgJHtXRUJDT1JFX0RJUn0veG1s
L1hQYXRoR3JhbW1hci55ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdyYW1t
YXIuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWFBhdGhHcmFtbWFyLmNwcCAiIiAi
IikKK0dFTkVSQVRFX0dSQU1NQVIoeHBhdGh5eSAke1dFQkNPUkVfRElSfS94bWwvWFBhdGhHcmFt
bWFyLnkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hQYXRoR3JhbW1hci5oICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdyYW1tYXIuY3BwKQogTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdyYW1t
YXIuY3BwKQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA1N2YwODc1N2Ex
MzZhNDFhOWQ1YWMwOTM0YThkNjlkYjQ3ZTUxMGMuLmQ2OTA4NTY0ZDBkNWQ3OWNmY2I2NjBiNGJk
YTNkNGE3ZmI2MmNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzc5LDE0
ICs3NzksMzIgQEAgZW5kaWYKICMgLS0tLS0tLS0KIAogIyBDU1MgZ3JhbW1hcgotQ1NTR3JhbW1h
ci5jcHAgOiBjc3MvQ1NTR3JhbW1hci55LmluCi0JcGVybCAkKFdlYkNvcmUpL2Nzcy9tYWtlZ3Jh
bW1hci5wbCAtLWdyYW1tYXIgJDwgLS1leHRyYURlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSIg
LS1vdXRwdXREaXIgLiAtLXN5bWJvbHNQcmVmaXggY3NzeXkKKyMgTk9URTogT2xkZXIgdmVyc2lv
bnMgb2YgYmlzb24gZG8gbm90IGluamVjdCBhbiBpbmNsdXNpb24gZ3VhcmQsIHNvIHdlIGFkZCBv
bmUuCisKK0NTU0dyYW1tYXIuY3BwIDogY3NzL0NTU0dyYW1tYXIueQorCSQoQklTT04pIC1kIC1w
IGNzc3l5ICQ8IC1vICRACisJdG91Y2ggQ1NTR3JhbW1hci5jcHAuaAorCXRvdWNoIENTU0dyYW1t
YXIuaHBwCisJZWNobyAnI2lmbmRlZiBDU1NHcmFtbWFyX2gnID4gQ1NTR3JhbW1hci5oCisJZWNo
byAnI2RlZmluZSBDU1NHcmFtbWFyX2gnID4+IENTU0dyYW1tYXIuaAorCWNhdCBDU1NHcmFtbWFy
LmNwcC5oIENTU0dyYW1tYXIuaHBwID4+IENTU0dyYW1tYXIuaAorCWVjaG8gJyNlbmRpZicgPj4g
Q1NTR3JhbW1hci5oCisJcm0gLWYgQ1NTR3JhbW1hci5jcHAuaCBDU1NHcmFtbWFyLmhwcAogCiAj
IC0tLS0tLS0tCiAKICMgWFBhdGggZ3JhbW1hcgorIyBOT1RFOiBPbGRlciB2ZXJzaW9ucyBvZiBi
aXNvbiBkbyBub3QgaW5qZWN0IGFuIGluY2x1c2lvbiBndWFyZCwgc28gd2UgYWRkIG9uZS4KKwog
WFBhdGhHcmFtbWFyLmNwcCA6IHhtbC9YUGF0aEdyYW1tYXIueSAkKFBST0pFQ1RfRklMRSkKLQlw
ZXJsICQoV2ViQ29yZSkvY3NzL21ha2VncmFtbWFyLnBsIC0tZ3JhbW1hciAkPCAtLW91dHB1dERp
ciAuIC0tc3ltYm9sc1ByZWZpeCB4cGF0aHl5CisJJChCSVNPTikgLWQgLXAgeHBhdGh5eSAkPCAt
byAkQAorCXRvdWNoIFhQYXRoR3JhbW1hci5jcHAuaAorCXRvdWNoIFhQYXRoR3JhbW1hci5ocHAK
KwllY2hvICcjaWZuZGVmIFhQYXRoR3JhbW1hcl9oJyA+IFhQYXRoR3JhbW1hci5oCisJZWNobyAn
I2RlZmluZSBYUGF0aEdyYW1tYXJfaCcgPj4gWFBhdGhHcmFtbWFyLmgKKwljYXQgWFBhdGhHcmFt
bWFyLmNwcC5oIFhQYXRoR3JhbW1hci5ocHAgPj4gWFBhdGhHcmFtbWFyLmgKKwllY2hvICcjZW5k
aWYnID4+IFhQYXRoR3JhbW1hci5oCisJcm0gLWYgWFBhdGhHcmFtbWFyLmNwcC5oIFhQYXRoR3Jh
bW1hci5ocHAKIAogIyAtLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXgg
YjY0NGJlY2RhYTc5ZjRhMDI2N2FiNTI4N2NjMDNhNTE3MzAxZmI3NC4uODRjOWQwNzc3MWVkMWEx
NzQ1NjY3MmUyNzFlMzMxYmNhNGU2ODU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpA
QCAtMjQsNyArMjQsNyBAQCBTVkdfTkFNRVMgPSAkJFBXRC9zdmcvc3ZndGFncy5pbgogCiBYTElO
S19OQU1FUyA9ICQkUFdEL3N2Zy94bGlua2F0dHJzLmluCiAKLUNTU0JJU09OID0gJCRQV0QvY3Nz
L0NTU0dyYW1tYXIueS5pbgorQ1NTQklTT04gPSAkJFBXRC9jc3MvQ1NTR3JhbW1hci55CiAKIGVu
YWJsZT8oWFNMVCkgewogICAgIFhNTFZJRVdFUl9DU1MgPSAkJFBXRC94bWwvWE1MVmlld2VyLmNz
cwpAQCAtODA0LDcgKzgwNCw3IEBAIEdFTkVSQVRPUlMgKz0gSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGVTb3VyY2UKIGNzc2Jpc29uLm91dHB1dCA9ICR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIGNz
c2Jpc29uLmlucHV0ID0gQ1NTQklTT04KIGNzc2Jpc29uLnNjcmlwdCA9ICQkUFdEL2Nzcy9tYWtl
Z3JhbW1hci5wbAotY3NzYmlzb24uY29tbWFuZHMgPSBwZXJsICQkY3NzYmlzb24uc2NyaXB0IC0t
Z3JhbW1hciAke1FNQUtFX0ZJTEVfTkFNRX0gLS1vdXRwdXREaXIgJHtRTUFLRV9GVU5DX0ZJTEVf
T1VUX1BBVEh9IC0tZXh0cmFEZWZpbmVzIFwiJCR7REVGSU5FU30gJCRjb25maWdEZWZpbmVzKClc
IiAtLXN5bWJvbHNQcmVmaXggY3NzeXkKK2Nzc2Jpc29uLmNvbW1hbmRzID0gcGVybCAkJGNzc2Jp
c29uLnNjcmlwdCAke1FNQUtFX0ZJTEVfTkFNRX0gJHtRTUFLRV9GVU5DX0ZJTEVfT1VUX1BBVEh9
LyR7UU1BS0VfRklMRV9CQVNFfQogY3NzYmlzb24uZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1F
fQogR0VORVJBVE9SUyArPSBjc3NiaXNvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDMwN2Vi
MzdlZTFhNjliMjk1ODBkMmFhMmJlYjg1MTVlOTkzMzIwMTguLjVjZTg1OTVhMGYyMjE1ZjczYjYw
ZmZkYzEzZDVmZWY3MTExOTg5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMDAsMTAgKzIw
MCwxOCBAQCBmZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9NRURJQV9TVFJFQU09
MAogZW5kaWYgIyBFTkQgRU5BQkxFX01FRElBX1NUUkVBTQogCiAjIFhQYXRoIGdyYW1tYXIKKyMg
Tk9URTogb2xkZXIgdmVyc2lvbnMgb2YgYmlzb24gZG8gbm90IGluamVjdCBhbiBpbmNsdXNpb24g
Z3VhcmQsIHNvIHdlIGRvIGl0CiAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmg6
ICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuY3BwCiAkKEdFTlNPVVJDRVNfV0VC
Q09SRSkvWFBhdGhHcmFtbWFyLmNwcDogJChXZWJDb3JlKS94bWwvWFBhdGhHcmFtbWFyLnkKIAkk
KEFNX1ZfR0VOKQotCSQoQU1fVl9hdClwZXJsICQoV2ViQ29yZSkvY3NzL21ha2VncmFtbWFyLnBs
IC0tZ3JhbW1hciAkPCAtLW91dHB1dERpciAkKEdFTlNPVVJDRVNfV0VCQ09SRSkgLS1zeW1ib2xz
UHJlZml4IHhwYXRoeXkKKwkkKEFNX1ZfYXQpcm0gLWYgJChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hQ
YXRoR3JhbW1hci5jcHAuaCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmhwcAor
CSQoQU1fVl9hdCkkKEJJU09OKSAtZCAtcCB4cGF0aHl5ICQ8IC1vICQoR0VOU09VUkNFU19XRUJD
T1JFKS9YUGF0aEdyYW1tYXIuY3BwCisJJChBTV9WX2F0KXRvdWNoICQoR0VOU09VUkNFU19XRUJD
T1JFKS9YUGF0aEdyYW1tYXIuY3BwLmggJChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hQYXRoR3JhbW1h
ci5ocHAKKwkkKEFNX1ZfYXQpZWNobyAnI2lmbmRlZiBYUGF0aEdyYW1tYXJfaCcgPiAkKEdFTlNP
VVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmgKKwkkKEFNX1ZfYXQpZWNobyAnI2RlZmluZSBY
UGF0aEdyYW1tYXJfaCcgPj4gJChHRU5TT1VSQ0VTX1dFQkNPUkUpL1hQYXRoR3JhbW1hci5oCisJ
JChBTV9WX2F0KWNhdCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmNwcC5oICQo
R0VOU09VUkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuaHBwID4+ICQoR0VOU09VUkNFU19XRUJD
T1JFKS9YUGF0aEdyYW1tYXIuaAorCSQoQU1fVl9hdCllY2hvICcjZW5kaWYnID4+ICQoR0VOU09V
UkNFU19XRUJDT1JFKS9YUGF0aEdyYW1tYXIuaAorCSQoQU1fVl9hdClybSAtZiAkKEdFTlNPVVJD
RVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmNwcC5oICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0
aEdyYW1tYXIuaHBwCiAKICMgLS0tLQogIyBYU0xUIFN1cHBvcnQKQEAgLTQxMCwxMCArNDE4LDE4
IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcDogJChXZWJDb3JlKS9wbGF0
Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDCiAKICMgQ1NTIGdyYW1tYXIKIAorIyBOT1RFOiBv
bGRlciB2ZXJzaW9ucyBvZiBiaXNvbiBkbyBub3QgaW5qZWN0IGFuIGluY2x1c2lvbiBndWFyZCwg
c28gd2UgZG8gaXQKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTR3JhbW1hci5oOiAkKEdFTlNP
VVJDRVNfV0VCQ09SRSkvQ1NTR3JhbW1hci5jcHAKLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NT
R3JhbW1hci5jcHA6ICQoV2ViQ29yZSkvY3NzL0NTU0dyYW1tYXIueS5pbgorRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9DU1NHcmFtbWFyLmNwcDogJChXZWJDb3JlKS9jc3MvQ1NTR3JhbW1hci55CiAJ
JChBTV9WX0dFTikKLQkkKEFNX1ZfYXQpcGVybCAkKFdlYkNvcmUpL2Nzcy9tYWtlZ3JhbW1hci5w
bCAtLWdyYW1tYXIgJDwgLS1leHRyYURlZmluZXMgIiQoZmVhdHVyZV9kZWZpbmVzKSIgLS1vdXRw
dXREaXIgJChHRU5TT1VSQ0VTX1dFQkNPUkUpIC0tc3ltYm9sc1ByZWZpeCBjc3N5eQorCSQoQU1f
Vl9hdClybSAtZiAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvQ1NTR3JhbW1hci5jcHAuaCAkKEdFTlNP
VVJDRVNfV0VCQ09SRSkvQ1NTR3JhbW1hci5ocHAKKwkkKEFNX1ZfYXQpJChCSVNPTikgLWQgLXAg
Y3NzeXkgJDwgLW8gJChHRU5TT1VSQ0VTX1dFQkNPUkUpL0NTU0dyYW1tYXIuY3BwCisJJChBTV9W
X2F0KXRvdWNoICQoR0VOU09VUkNFU19XRUJDT1JFKS9DU1NHcmFtbWFyLmNwcC5oICQoR0VOU09V
UkNFU19XRUJDT1JFKS9DU1NHcmFtbWFyLmhwcAorCSQoQU1fVl9hdCllY2hvICcjaWZuZGVmIENT
U0dyYW1tYXJfaCcgPiAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvQ1NTR3JhbW1hci5oCisJJChBTV9W
X2F0KWVjaG8gJyNkZWZpbmUgQ1NTR3JhbW1hcl9oJyA+PiAkKEdFTlNPVVJDRVNfV0VCQ09SRSkv
Q1NTR3JhbW1hci5oCisJJChBTV9WX2F0KWNhdCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvQ1NTR3Jh
bW1hci5jcHAuaCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvQ1NTR3JhbW1hci5ocHAgPj4gJChHRU5T
T1VSQ0VTX1dFQkNPUkUpL0NTU0dyYW1tYXIuaAorCSQoQU1fVl9hdCllY2hvICcjZW5kaWYnID4+
ICQoR0VOU09VUkNFU19XRUJDT1JFKS9DU1NHcmFtbWFyLmgKKwkkKEFNX1ZfYXQpcm0gLWYgJChH
RU5TT1VSQ0VTX1dFQkNPUkUpL0NTU0dyYW1tYXIuY3BwLmggJChHRU5TT1VSQ0VTX1dFQkNPUkUp
L0NTU0dyYW1tYXIuaHBwCiAKICMgdXNlciBhZ2VudCBzdHlsZSBzaGVldHMKIFVTRVJfQUdFTlRf
U1RZTEVfU0hFRVRTID0gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAv
V2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRl
eCAyZDFhMWEyZDFjODMxZmEyM2Q0YmE2NGM4NGJhM2MyMmJiMTBjMzhiLi5lZWVjNWVmYjM1NjVl
YjRjNWZlY2I2OTAwM2QyYWJkY2ZmNTVhMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cApAQCAtNTg1LDcgKzU4NSw3IEBACiAgICAgICB9LAogICAgICAgJ3NvdXJjZXMn
OiBbCiAgICAgICAgICMgYmlzb24gcnVsZQotICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRF
X0RJUikvd2Via2l0L0NTU0dyYW1tYXIueScsCisgICAgICAgICcuLi9jc3MvQ1NTR3JhbW1hci55
JywKICAgICAgICAgJy4uL3htbC9YUGF0aEdyYW1tYXIueScsCiAKICAgICAgICAgIyBncGVyZiBy
dWxlCkBAIC0xMDc2LDI1ICsxMDc2LDYgQEAKICAgICAgICAgICAgICc8QChkZXJpdmVkX3NvdXJj
ZXNfYWdncmVnYXRlX2ZpbGVzKScsCiAgICAgICAgICAgXSwKICAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdwcmVwcm9jZXNzX2dyYW1tYXInLAotICAgICAg
ICAgICdpbnB1dHMnOiBbCi0gICAgICAgICAgICAnLi4vY3NzL0NTU0dyYW1tYXIueS5pbicsCi0g
ICAgICAgICAgICAnLi4vY3NzL0NTU0dyYW1tYXIueS5pbmNsdWRlcycsCi0gICAgICAgICAgXSwK
LSAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvQ1NTR3JhbW1hci55JywKLSAgICAgICAgICBdLAotICAgICAgICAgICdh
Y3Rpb24nOiBbCi0gICAgICAgICAgICAncHl0aG9uJywKLSAgICAgICAgICAgICdzY3JpcHRzL2Fj
dGlvbl9wcmVwcm9jZXNzZ3JhbW1hci5weScsCi0gICAgICAgICAgICAnLS1vdXRwdXQtZGlyJywK
LSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvJywKLSAgICAg
ICAgICAgICctLWRlZmluZXMnLAotICAgICAgICAgICAgJzwoZmVhdHVyZV9kZWZpbmVzKScsCi0g
ICAgICAgICAgICAnPEAoX2lucHV0cyknLAotICAgICAgICAgIF0sCi0gICAgICAgIH0sCiAgICAg
ICBdLAogICAgICAgJ3J1bGVzJzogWwogICAgICAgICAjIFJ1bGVzIHRvIGJ1aWxkIGRlcml2ZWQg
c291cmNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX3ByZXByb2Nlc3NncmFtbWFyLnB5IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAv
c2NyaXB0cy9hY3Rpb25fcHJlcHJvY2Vzc2dyYW1tYXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVkYjEzOTFjNTg0MWJkNjhlOGZkYTNjYjM5NGVjYjE4ZjZlZWVjMGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fcHJlcHJvY2Vzc2dyYW1tYXIucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw5MyArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbgotIwotIyBDb3B5cmlnaHQg
KEMpIDIwMDkgTW90b3JvbGEgTW9iaWxpdHkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5IEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIyBVc2FnZTogc2VlIGFjdGlvbl9wcmVwcm9j
ZXNzZ3JhbW1hci5weSAtLWhlbHAKLSMKLQotaW1wb3J0IGVycm5vCi1pbXBvcnQgZ2V0b3B0Ci1p
bXBvcnQgaXRlcnRvb2xzCi1pbXBvcnQgb3MKLWltcG9ydCBvcy5wYXRoCi1pbXBvcnQgc2hsZXgK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1mcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJp
bmdJTwotCi0KLWRlZiBleGl0X3dpdGhfdXNhZ2UoZXhpdF9jb2RlKToKLSAgICBwcmludCAiVXNh
Z2U6XG5cdCVzIFstaHwtLWhlbHBdIFstLW91dHB1dC1kaXIgPHBhdGg+XSBbLS1kZWZpbmVzIDxz
cGFjZS1zZXBhcmF0ZWQtZmVhdHVyZS1mbGFncz5dIDxmaWxlbmFtZS55LmluPiBbPGZpbGVuYW1l
LnkuaW5jbHVkZXM+XSIKLSAgICBleGl0KGV4aXRfY29kZSkKLQotb3B0aW9ucywgYXJndW1lbnRz
ID0gZ2V0b3B0LmdldG9wdChzeXMuYXJndlsxOl0sICJoIiwgWyJoZWxwIiwgIm91dHB1dC1kaXI9
IiwgImRlZmluZXM9Il0pCi0KLW91dHB1dF9kaXIgPSAiLiIKLWRlZmluZXMgPSAiIgotZm9yIG9w
dGlvbiwgYXJndW1lbnQgaW4gb3B0aW9uczoKLSAgICBpZiBvcHRpb24gaW4gKCItaCIsICItLWhl
bHAiKToKLSAgICAgICAgZXhpdF93aXRoX3VzYWdlKDApCi0gICAgZWxpZiBvcHRpb24gPT0gIi0t
b3V0cHV0LWRpciI6Ci0gICAgICAgIG91dHB1dF9kaXIgPSBhcmd1bWVudAotICAgIGVsaWYgb3B0
aW9uID09ICItLWRlZmluZXMiOgotICAgICAgICBkZWZpbmVzID0gYXJndW1lbnQKLQotaWYgbGVu
KGFyZ3VtZW50cykgPT0gMDoKLSAgICBleGl0X3dpdGhfdXNhZ2UoMSkKLQotaW5wdXRfZmlsZSA9
IGFyZ3VtZW50c1swXQotaW5jbHVkZXNfZmlsZSA9IGFyZ3VtZW50c1sxXSBpZiBsZW4oYXJndW1l
bnRzKSA9PSAyIGVsc2UgTm9uZQotCi1mZWF0dXJlX2ZsYWdzID0gW10KLWlmIGRlZmluZXM6Ci0g
ICAgZmVhdHVyZXMgPSBzaGxleC5zcGxpdChkZWZpbmVzKQotICAgICMgTWFrZSBhIGxpc3Qgd2l0
aCAtRCBpbnRlcmNhbGF0ZWQgYmV0d2VlbiBlYWNoIGZlYXR1cmUsIGZvciB1c2UgaW4gdGhlIHBy
ZXByb2Nlc3NvciBjb21tYW5kLAotICAgICMgbGlrZSBzdWNoOiBbIi1EIiwgIkVOQUJMRV9GRUFU
VVJFMT0xIiwgIi1EIiwgIkVOQUJMRV9GRUFUVVJFMj0wIiwgLi4uXQotICAgIGZlYXR1cmVfZmxh
Z3MgPSBsaXN0KGl0ZXJ0b29scy5jaGFpbigqemlwKFsiLUQiXSAqIGxlbihmZWF0dXJlcyksIGZl
YXR1cmVzKSkpCi0KLWdjY19leGUgPSAiZ2NjIgotaWYgIkNDIiBpbiBvcy5lbnZpcm9uOgotICAg
IGdjY19leGUgPSBvcy5lbnZpcm9uWyJDQyJdCi0KLWlucHV0X3Jvb3QsIGlucHV0X2V4dCA9IG9z
LnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZSkKLWFzc2VydCBpbnB1dF9leHQgPT0gIi5pbiIKLQot
cCA9IHN1YnByb2Nlc3MuUG9wZW4oW2djY19leGUsICItRSIsICItUCIsICIteCIsICJjIiwgaW5w
dXRfZmlsZV0gKyBmZWF0dXJlX2ZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSkKLXByb2Nlc3NlZF9yZXN1bHQgPSBwLmNvbW11bmljYXRlKClbMF0KLWFz
c2VydCBwLnJldHVybmNvZGUgPT0gMAotCi1vdXRwdXRfZmlsZSA9IG9wZW4ob3MucGF0aC5qb2lu
KG91dHB1dF9kaXIsIG9zLnBhdGguYmFzZW5hbWUoaW5wdXRfcm9vdCkpLCAidyIpCi0KLWlmIGlu
Y2x1ZGVzX2ZpbGU6Ci0gICAgcHJpbnQgPj4gb3V0cHV0X2ZpbGUsIG9wZW4oaW5jbHVkZXNfZmls
ZSkucmVhZCgpCi0KLXByaW50ID4+IG91dHB1dF9maWxlLCBwcm9jZXNzZWRfcmVzdWx0Ci0KLW91
dHB1dF9maWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggNzQ1MDJkN2U4NjliM2FhYmYwYThhYjFhYWE3YTA1M2RiNjk5OWJlMS4u
NTNmMzVhN2UxNjNlMTE3ZDZiZTFmN2UzMTExMTQ3ZDBjMjc5MDY1ZiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM1ODcxLDExICszNTg3MSw3
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNz
c1xDU1NHcmFtbWFyLnkuaW4iCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGNzc1xDU1NHcmFtbWFyLnkuaW5jbHVkZXMiCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxjc3NcQ1NTR3JhbW1hci55IgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NWMyOTI1ZTA1M2EzY2ZiMmMxYjhmM2NmN2Y4OGRiYmU1NTgxYmVmNy4uYzc0MGFkNTM0MjNiNmQy
N2VmYjcxY2E1ZjI5ZTM1NzQ4YmVkZjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMwMjcsNiArMTMwMjcsNyBAQAogCQlC
Q0U5M0Y0NjE1MTdDNkQ1MDA4Q0NGNzQgLyogUmVuZGVyUmVnaW9uU2V0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclJlZ2lvblNldC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUE0NzdDMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRUE0NzdEMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0VB
NDc3RTA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTR3JhbW1hci55ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUueWFjYzsgcGF0aCA9IENTU0dyYW1tYXIueTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNFQTQ3ODkwOTdDQUFDODAwOTRDOUU0IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRUE0NzhDMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VBNDgxMzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTM3NDksOCArMTM3NTAsNiBAQAogCQlGQkQ2QUY4NTE1RUYyMUQ0MDA4QjcxMTAgLyogQmFz
aWNTaGFwZUZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNp
Y1NoYXBlRnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCRDZBRjg2
MTVFRjIxRDQwMDhCNzExMCAvKiBDU1NCYXNpY1NoYXBlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NCYXNpY1NoYXBlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZCRDZBRjg3MTVFRjIxRDQwMDhCNzExMCAvKiBDU1NCYXNpY1NoYXBlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NCYXNpY1NoYXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGQ0VCQ0Q3MTE2MjNBNzkxMDAyOTk2NUUgLyogQ1NT
R3JhbW1hci55LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS55YWNjOyBwYXRoID0gQ1NTR3JhbW1h
ci55LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGQ0VCQ0Q3MjE2MjNBNzkxMDAy
OTk2NUUgLyogQ1NTR3JhbW1hci55LmluY2x1ZGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS55YWNj
OyBwYXRoID0gQ1NTR3JhbW1hci55LmluY2x1ZGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyogU2luY1Jlc2FtcGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW5jUmVzYW1wbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNpbmNS
ZXNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2luY1Jlc2FtcGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDA2REZBMzEzNEE0REVGMDA2RjVE
N0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTExNSw4ICsyMTExNCw3IEBACiAJCQkJQkMwMkE2
M0IwRTA5QTlDRjAwNEI2RDJCIC8qIENTU0Z1bmN0aW9uVmFsdWUuaCAqLywKIAkJCQlCQzIzRTRF
MDBEQUFDRTBGMDA5RkRDOTEgLyogQ1NTR3JhZGllbnRWYWx1ZS5jcHAgKi8sCiAJCQkJQkM1M0M2
OTEwREE1OTExNDAwMjFFQjVEIC8qIENTU0dyYWRpZW50VmFsdWUuaCAqLywKLQkJCQlGQ0VCQ0Q3
MTE2MjNBNzkxMDAyOTk2NUUgLyogQ1NTR3JhbW1hci55LmluICovLAotCQkJCUZDRUJDRDcyMTYy
M0E3OTEwMDI5OTY1RSAvKiBDU1NHcmFtbWFyLnkuaW5jbHVkZXMgKi8sCisJCQkJQkNFQTQ3N0Uw
OTdDQUFDODAwOTRDOUU0IC8qIENTU0dyYW1tYXIueSAqLywKIAkJCQlCQzc3MkIzNjBDNEVBOTFF
MDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi8sCiAJCQkJQkMyM0U3NkIwREFFODhBOTAwOUZEQzkx
IC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwICovLAogCQkJCUJDMjNFRTkxMERBRUQyQkMw
MDlGREM5MSAvKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1t
YXIueQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYjQyNzRhOWIzMmEzNWEyOTY2ODhmNjViM2IzOGFmMjRiYTNiNDBk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAt
MCwwICsxLDE3NjQgQEAKKyV7CisKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5j
b20pCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyTW9kZS5oIgor
I2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1l
cy5oIgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAi
U3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCisjaW5jbHVkZSAi
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVs
ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+Cisj
aW5jbHVkZSA8c3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKKworI2RlZmluZSBZWU1BTExPQyBmYXN0TWFsbG9jCisjZGVmaW5l
IFlZRlJFRSBmYXN0RnJlZQorCisjZGVmaW5lIFlZRU5BQkxFX05MUyAwCisjZGVmaW5lIFlZTFRZ
UEVfSVNfVFJJVklBTCAxCisjZGVmaW5lIFlZTUFYREVQVEggMTAwMDAKKyNkZWZpbmUgWVlERUJV
RyAwCisKKyV9CisKKyVwdXJlX3BhcnNlcgorCislcGFyc2UtcGFyYW0geyBDU1NQYXJzZXIqIHBh
cnNlciB9CislbGV4LXBhcmFtIHsgQ1NTUGFyc2VyKiBwYXJzZXIgfQorCisldW5pb24geworICAg
IGJvb2wgYm9vbGVhbjsKKyAgICBjaGFyIGNoYXJhY3RlcjsKKyAgICBpbnQgaW50ZWdlcjsKKyAg
ICBkb3VibGUgbnVtYmVyOworICAgIENTU1BhcnNlclN0cmluZyBzdHJpbmc7CisKKyAgICBTdHls
ZVJ1bGVCYXNlKiBydWxlOworICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiogcnVs
ZUxpc3Q7CisgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIHNlbGVjdG9yOworICAgIENTU1NlbGVjdG9y
VmVjdG9yKiBzZWxlY3Rvckxpc3Q7CisgICAgQ1NTU2VsZWN0b3I6Ok1hcmdpbkJveFR5cGUgbWFy
Z2luQm94OworICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKKyAgICBNZWRpYVF1
ZXJ5U2V0KiBtZWRpYUxpc3Q7CisgICAgTWVkaWFRdWVyeSogbWVkaWFRdWVyeTsKKyAgICBNZWRp
YVF1ZXJ5OjpSZXN0cmljdG9yIG1lZGlhUXVlcnlSZXN0cmljdG9yOworICAgIE1lZGlhUXVlcnlF
eHAqIG1lZGlhUXVlcnlFeHA7CisgICAgQ1NTUGFyc2VyVmFsdWUgdmFsdWU7CisgICAgQ1NTUGFy
c2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Q7CisgICAgVmVjdG9yPE93blB0cjxNZWRpYVF1ZXJ5RXhw
PiA+KiBtZWRpYVF1ZXJ5RXhwTGlzdDsKKyAgICBTdHlsZUtleWZyYW1lKiBrZXlmcmFtZTsKKyAg
ICBWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4qIGtleWZyYW1lUnVsZUxpc3Q7CisgICAg
ZmxvYXQgdmFsOworICAgIENTU1Byb3BlcnR5SUQgaWQ7Cit9CisKKyV7CisKKyNpZiBZWURFQlVH
ID4gMAorI2RlZmluZSBZWVBSSU5UKEZpbGUsVHlwZSxWYWx1ZSkgcHJpbnRfdG9rZW5fdmFsdWUo
RmlsZSxUeXBlLFZhbHVlKQorc3RhdGljIHZvaWQgcHJpbnRfdG9rZW5fdmFsdWUoRklMRSAqIHl5
b3V0cHV0LCBpbnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICZ5eXZhbHVlKTsKKyNlbmRpZgorCitz
dGF0aWMgaW5saW5lIGludCBjc3N5eWVycm9yKHZvaWQqLCBjb25zdCBjaGFyKikKK3sKKyAgICBy
ZXR1cm4gMTsKK30KKworJX0KKworJWV4cGVjdCA2MworCislbm9uYXNzb2MgTE9XRVNUX1BSRUMK
KworJWxlZnQgVU5JTVBPUlRBTlRfVE9LCisKKyV0b2tlbiBXSElURVNQQUNFIFNHTUxfQ0QKKyV0
b2tlbiBUT0tFTl9FT0YgMAorCisldG9rZW4gSU5DTFVERVMKKyV0b2tlbiBEQVNITUFUQ0gKKyV0
b2tlbiBCRUdJTlNXSVRICisldG9rZW4gRU5EU1dJVEgKKyV0b2tlbiBDT05UQUlOUworCisldG9r
ZW4gPHN0cmluZz4gU1RSSU5HCislcmlnaHQgPHN0cmluZz4gSURFTlQKKyV0b2tlbiA8c3RyaW5n
PiBOVEgKKworJW5vbmFzc29jIDxzdHJpbmc+IEhFWAorJW5vbmFzc29jIDxzdHJpbmc+IElEU0VM
Cislbm9uYXNzb2MgJzonCislbm9uYXNzb2MgJy4nCislbm9uYXNzb2MgJ1snCislbm9uYXNzb2Mg
PHN0cmluZz4gJyonCislbm9uYXNzb2MgZXJyb3IKKyVsZWZ0ICd8JworCisldG9rZW4gSU1QT1JU
X1NZTQorJXRva2VuIFBBR0VfU1lNCisldG9rZW4gTUVESUFfU1lNCisldG9rZW4gRk9OVF9GQUNF
X1NZTQorJXRva2VuIENIQVJTRVRfU1lNCisldG9rZW4gTkFNRVNQQUNFX1NZTQorJXRva2VuIFZB
UkZVTkNUSU9OCisldG9rZW4gV0VCS0lUX1JVTEVfU1lNCisldG9rZW4gV0VCS0lUX0RFQ0xTX1NZ
TQorJXRva2VuIFdFQktJVF9LRVlGUkFNRV9SVUxFX1NZTQorJXRva2VuIFdFQktJVF9LRVlGUkFN
RVNfU1lNCisldG9rZW4gV0VCS0lUX1ZBTFVFX1NZTQorJXRva2VuIFdFQktJVF9NRURJQVFVRVJZ
X1NZTQorJXRva2VuIFdFQktJVF9TRUxFQ1RPUl9TWU0KKyV0b2tlbiBXRUJLSVRfUkVHSU9OX1JV
TEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9QTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFy
Z2luQm94PiBUT1BMRUZUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUENFTlRFUl9TWU0KKyV0
b2tlbiA8bWFyZ2luQm94PiBUT1BSSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BSSUdI
VENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01MRUZUQ09STkVSX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUxFRlRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9N
Q0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTVJJR0hUX1NZTQorJXRva2VuIDxt
YXJnaW5Cb3g+IEJPVFRPTVJJR0hUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRU
T1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBMRUZUQk9UVE9NX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFJJR0hUVE9QX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IFJJR0hUTUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFJJR0hU
Qk9UVE9NX1NZTQorCisldG9rZW4gQVRLRVlXT1JECisKKyV0b2tlbiBJTVBPUlRBTlRfU1lNCisl
dG9rZW4gTUVESUFfT05MWQorJXRva2VuIE1FRElBX05PVAorJXRva2VuIE1FRElBX0FORAorCisl
dG9rZW4gPG51bWJlcj4gUkVNUworJXRva2VuIDxudW1iZXI+IFFFTVMKKyV0b2tlbiA8bnVtYmVy
PiBFTVMKKyV0b2tlbiA8bnVtYmVyPiBFWFMKKyV0b2tlbiA8bnVtYmVyPiBQWFMKKyV0b2tlbiA8
bnVtYmVyPiBDTVMKKyV0b2tlbiA8bnVtYmVyPiBNTVMKKyV0b2tlbiA8bnVtYmVyPiBJTlMKKyV0
b2tlbiA8bnVtYmVyPiBQVFMKKyV0b2tlbiA8bnVtYmVyPiBQQ1MKKyV0b2tlbiA8bnVtYmVyPiBE
RUdTCisldG9rZW4gPG51bWJlcj4gUkFEUworJXRva2VuIDxudW1iZXI+IEdSQURTCisldG9rZW4g
PG51bWJlcj4gVFVSTlMKKyV0b2tlbiA8bnVtYmVyPiBNU0VDUworJXRva2VuIDxudW1iZXI+IFNF
Q1MKKyV0b2tlbiA8bnVtYmVyPiBIRVJUWgorJXRva2VuIDxudW1iZXI+IEtIRVJUWgorJXRva2Vu
IDxzdHJpbmc+IERJTUVOCisldG9rZW4gPHN0cmluZz4gSU5WQUxJRERJTUVOCisldG9rZW4gPG51
bWJlcj4gUEVSQ0VOVEFHRQorJXRva2VuIDxudW1iZXI+IEZMT0FUVE9LRU4KKyV0b2tlbiA8bnVt
YmVyPiBJTlRFR0VSCisldG9rZW4gPG51bWJlcj4gVlcKKyV0b2tlbiA8bnVtYmVyPiBWSAorJXRv
a2VuIDxudW1iZXI+IFZNSU4KKyV0b2tlbiA8bnVtYmVyPiBEUFBYCisldG9rZW4gPG51bWJlcj4g
RFBJCisldG9rZW4gPG51bWJlcj4gRFBDTQorCisldG9rZW4gPHN0cmluZz4gVVJJCisldG9rZW4g
PHN0cmluZz4gRlVOQ1RJT04KKyV0b2tlbiA8c3RyaW5nPiBBTllGVU5DVElPTgorJXRva2VuIDxz
dHJpbmc+IE5PVEZVTkNUSU9OCisldG9rZW4gPHN0cmluZz4gQ0FMQ0ZVTkNUSU9OCisldG9rZW4g
PHN0cmluZz4gTUlORlVOQ1RJT04KKyV0b2tlbiA8c3RyaW5nPiBNQVhGVU5DVElPTgorJXRva2Vu
IDxzdHJpbmc+IFZBUl9ERUZJTklUSU9OCisKKyV0b2tlbiA8c3RyaW5nPiBVTklDT0RFUkFOR0UK
KworJXR5cGUgPHJlbGF0aW9uPiBjb21iaW5hdG9yCisKKyV0eXBlIDxydWxlPiBjaGFyc2V0Cisl
dHlwZSA8cnVsZT4gaWdub3JlZF9jaGFyc2V0CisldHlwZSA8cnVsZT4gcnVsZXNldAorJXR5cGUg
PHJ1bGU+IG1lZGlhCisldHlwZSA8cnVsZT4gaW1wb3J0CisldHlwZSA8cnVsZT4gbmFtZXNwYWNl
CisldHlwZSA8cnVsZT4gcGFnZQorJXR5cGUgPHJ1bGU+IG1hcmdpbl9ib3gKKyV0eXBlIDxydWxl
PiBmb250X2ZhY2UKKyV0eXBlIDxydWxlPiBrZXlmcmFtZXMKKyV0eXBlIDxydWxlPiBpbnZhbGlk
X3J1bGUKKyV0eXBlIDxydWxlPiBzYXZlX2Jsb2NrCisldHlwZSA8cnVsZT4gaW52YWxpZF9hdAor
JXR5cGUgPHJ1bGU+IHJ1bGUKKyV0eXBlIDxydWxlPiB2YWxpZF9ydWxlCisldHlwZSA8cnVsZUxp
c3Q+IGJsb2NrX3J1bGVfbGlzdCAKKyV0eXBlIDxydWxlPiBibG9ja19ydWxlCisldHlwZSA8cnVs
ZT4gYmxvY2tfdmFsaWRfcnVsZQorJXR5cGUgPHJ1bGU+IHJlZ2lvbgorCisldHlwZSA8c3RyaW5n
PiBtYXliZV9uc19wcmVmaXgKKworJXR5cGUgPHN0cmluZz4gbmFtZXNwYWNlX3NlbGVjdG9yCisK
KyV0eXBlIDxzdHJpbmc+IHN0cmluZ19vcl91cmkKKyV0eXBlIDxzdHJpbmc+IGlkZW50X29yX3N0
cmluZworJXR5cGUgPHN0cmluZz4gbWVkaXVtCisldHlwZSA8bWFyZ2luQm94PiBtYXJnaW5fc3lt
CisKKyV0eXBlIDxzdHJpbmc+IG1lZGlhX2ZlYXR1cmUKKyV0eXBlIDxtZWRpYUxpc3Q+IG1lZGlh
X2xpc3QKKyV0eXBlIDxtZWRpYUxpc3Q+IG1heWJlX21lZGlhX2xpc3QKKyV0eXBlIDxtZWRpYVF1
ZXJ5PiBtZWRpYV9xdWVyeQorJXR5cGUgPG1lZGlhUXVlcnlSZXN0cmljdG9yPiBtYXliZV9tZWRp
YV9yZXN0cmljdG9yCisldHlwZSA8dmFsdWVMaXN0PiBtYXliZV9tZWRpYV92YWx1ZQorJXR5cGUg
PG1lZGlhUXVlcnlFeHA+IG1lZGlhX3F1ZXJ5X2V4cAorJXR5cGUgPG1lZGlhUXVlcnlFeHBMaXN0
PiBtZWRpYV9xdWVyeV9leHBfbGlzdAorJXR5cGUgPG1lZGlhUXVlcnlFeHBMaXN0PiBtYXliZV9h
bmRfbWVkaWFfcXVlcnlfZXhwX2xpc3QKKworJXR5cGUgPHN0cmluZz4ga2V5ZnJhbWVfbmFtZQor
JXR5cGUgPGtleWZyYW1lPiBrZXlmcmFtZV9ydWxlCisldHlwZSA8a2V5ZnJhbWVSdWxlTGlzdD4g
a2V5ZnJhbWVzX3J1bGUKKyV0eXBlIDx2YWx1ZUxpc3Q+IGtleV9saXN0CisldHlwZSA8dmFsdWU+
IGtleQorCisldHlwZSA8aWQ+IHByb3BlcnR5CisKKyV0eXBlIDxzZWxlY3Rvcj4gc3BlY2lmaWVy
CisldHlwZSA8c2VsZWN0b3I+IHNwZWNpZmllcl9saXN0CisldHlwZSA8c2VsZWN0b3I+IHNpbXBs
ZV9zZWxlY3RvcgorJXR5cGUgPHNlbGVjdG9yPiBzZWxlY3RvcgorJXR5cGUgPHNlbGVjdG9yTGlz
dD4gc2VsZWN0b3JfbGlzdAorJXR5cGUgPHNlbGVjdG9yTGlzdD4gc2ltcGxlX3NlbGVjdG9yX2xp
c3QKKyV0eXBlIDxzZWxlY3Rvckxpc3Q+IHJlZ2lvbl9zZWxlY3RvcgorJXR5cGUgPHNlbGVjdG9y
PiBzZWxlY3Rvcl93aXRoX3RyYWlsaW5nX3doaXRlc3BhY2UKKyV0eXBlIDxzZWxlY3Rvcj4gY2xh
c3MKKyV0eXBlIDxzZWxlY3Rvcj4gYXR0cmliCisldHlwZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5
cGUgPHNlbGVjdG9yPiBwc2V1ZG9fcGFnZQorJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3NlbGVjdG9y
CisKKyV0eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CisldHlwZSA8Ym9vbGVhbj4gZGVj
bF9saXN0CisldHlwZSA8Ym9vbGVhbj4gZGVjbGFyYXRpb24KKyV0eXBlIDxib29sZWFuPiBkZWNs
YXJhdGlvbnNfYW5kX21hcmdpbnMKKworJXR5cGUgPGJvb2xlYW4+IHByaW8KKworJXR5cGUgPGlu
dGVnZXI+IG1hdGNoCisldHlwZSA8aW50ZWdlcj4gdW5hcnlfb3BlcmF0b3IKKyV0eXBlIDxpbnRl
Z2VyPiBtYXliZV91bmFyeV9vcGVyYXRvcgorJXR5cGUgPGNoYXJhY3Rlcj4gb3BlcmF0b3IKKwor
JXR5cGUgPHZhbHVlTGlzdD4gZXhwcgorJXR5cGUgPHZhbHVlPiB0ZXJtCisldHlwZSA8dmFsdWU+
IHVuYXJ5X3Rlcm0KKyV0eXBlIDx2YWx1ZT4gZnVuY3Rpb24KKyV0eXBlIDx2YWx1ZT4gY2FsY19m
dW5jX3Rlcm0KKyV0eXBlIDxjaGFyYWN0ZXI+IGNhbGNfZnVuY19vcGVyYXRvcgorJXR5cGUgPHZh
bHVlTGlzdD4gY2FsY19mdW5jX2V4cHIKKyV0eXBlIDx2YWx1ZUxpc3Q+IGNhbGNfZnVuY19leHBy
X2xpc3QKKyV0eXBlIDx2YWx1ZUxpc3Q+IGNhbGNfZnVuY19wYXJlbl9leHByCisldHlwZSA8dmFs
dWU+IGNhbGNfZnVuY3Rpb24KKyV0eXBlIDxzdHJpbmc+IG1pbl9vcl9tYXgKKyV0eXBlIDx2YWx1
ZT4gbWluX29yX21heF9mdW5jdGlvbgorCisldHlwZSA8c3RyaW5nPiBlbGVtZW50X25hbWUKKyV0
eXBlIDxzdHJpbmc+IGF0dHJfbmFtZQorCislJQorCitzdHlsZXNoZWV0OgorICAgIG1heWJlX3Nw
YWNlIG1heWJlX2NoYXJzZXQgbWF5YmVfc2dtbCBydWxlX2xpc3QKKyAgfCB3ZWJraXRfcnVsZSBt
YXliZV9zcGFjZQorICB8IHdlYmtpdF9kZWNscyBtYXliZV9zcGFjZQorICB8IHdlYmtpdF92YWx1
ZSBtYXliZV9zcGFjZQorICB8IHdlYmtpdF9tZWRpYXF1ZXJ5IG1heWJlX3NwYWNlCisgIHwgd2Vi
a2l0X3NlbGVjdG9yIG1heWJlX3NwYWNlCisgIHwgd2Via2l0X2tleWZyYW1lX3J1bGUgbWF5YmVf
c3BhY2UKKyAgOworCit3ZWJraXRfcnVsZToKKyAgICBXRUJLSVRfUlVMRV9TWU0gJ3snIG1heWJl
X3NwYWNlIHZhbGlkX3J1bGUgbWF5YmVfc3BhY2UgJ30nIHsKKyAgICAgICAgcGFyc2VyLT5tX3J1
bGUgPSAkNDsKKyAgICB9Cis7CisKK3dlYmtpdF9rZXlmcmFtZV9ydWxlOgorICAgIFdFQktJVF9L
RVlGUkFNRV9SVUxFX1NZTSAneycgbWF5YmVfc3BhY2Uga2V5ZnJhbWVfcnVsZSBtYXliZV9zcGFj
ZSAnfScgeworICAgICAgICBwYXJzZXItPm1fa2V5ZnJhbWUgPSAkNDsKKyAgICB9Cis7CisKK3dl
YmtpdF9kZWNsczoKKyAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFjZV9iZWZvcmVf
ZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCAnfScgeworICAgICAgICAvKiBjYW4gYmUgZW1w
dHkgKi8KKyAgICB9Cis7CisKK3dlYmtpdF92YWx1ZToKKyAgICBXRUJLSVRfVkFMVUVfU1lNICd7
JyBtYXliZV9zcGFjZSBleHByICd9JyB7CisgICAgICAgIGlmICgkNCkgeworICAgICAgICAgICAg
cGFyc2VyLT5tX3ZhbHVlTGlzdCA9IHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KTsK
KyAgICAgICAgICAgIGludCBvbGRQYXJzZWRQcm9wZXJ0aWVzID0gcGFyc2VyLT5tX3BhcnNlZFBy
b3BlcnRpZXMtPnNpemUoKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VyLT5wYXJzZVZhbHVlKHBh
cnNlci0+bV9pZCwgcGFyc2VyLT5tX2ltcG9ydGFudCkpCisgICAgICAgICAgICAgICAgcGFyc2Vy
LT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXpl
KCkgLSBvbGRQYXJzZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgIHBhcnNlci0+bV92YWx1ZUxp
c3QgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorOworCit3ZWJraXRfbWVkaWFxdWVyeToK
KyAgICAgV0VCS0lUX01FRElBUVVFUllfU1lNIFdISVRFU1BBQ0UgbWF5YmVfc3BhY2UgbWVkaWFf
cXVlcnkgJ30nIHsKKyAgICAgICAgIHBhcnNlci0+bV9tZWRpYVF1ZXJ5ID0gcGFyc2VyLT5zaW5r
RmxvYXRpbmdNZWRpYVF1ZXJ5KCQ0KTsKKyAgICAgfQorOworCit3ZWJraXRfc2VsZWN0b3I6Cisg
ICAgV0VCS0lUX1NFTEVDVE9SX1NZTSAneycgbWF5YmVfc3BhY2Ugc2VsZWN0b3JfbGlzdCAnfScg
eworICAgICAgICBpZiAoJDQpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZXItPm1fc2VsZWN0b3JM
aXN0Rm9yUGFyc2VTZWxlY3RvcikKKyAgICAgICAgICAgICAgICBwYXJzZXItPm1fc2VsZWN0b3JM
aXN0Rm9yUGFyc2VTZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3RvcigqJDQpOworICAgICAgICB9
CisgICAgfQorOworCittYXliZV9zcGFjZToKKyAgICAvKiBlbXB0eSAqLyAlcHJlYyBVTklNUE9S
VEFOVF9UT0sKKyAgfCBtYXliZV9zcGFjZSBXSElURVNQQUNFCisgIDsKKworbWF5YmVfc2dtbDoK
KyAgICAvKiBlbXB0eSAqLworICB8IG1heWJlX3NnbWwgU0dNTF9DRAorICB8IG1heWJlX3NnbWwg
V0hJVEVTUEFDRQorICA7CisKK21heWJlX2NoYXJzZXQ6CisgICAvKiBlbXB0eSAqLworICB8IGNo
YXJzZXQgeworICB9CisgIDsKKworY2xvc2luZ19icmFjZToKKyAgICAnfScKKyAgfCAlcHJlYyBM
T1dFU1RfUFJFQyBUT0tFTl9FT0YKKyAgOworCitjaGFyc2V0OgorICBDSEFSU0VUX1NZTSBtYXli
ZV9zcGFjZSBTVFJJTkcgbWF5YmVfc3BhY2UgJzsnIHsKKyAgICAgaWYgKHBhcnNlci0+bV9zdHls
ZVNoZWV0KQorICAgICAgICAgcGFyc2VyLT5tX3N0eWxlU2hlZXQtPnBhcnNlclNldEVuY29kaW5n
RnJvbUNoYXJzZXRSdWxlKCQzKTsKKyAgICAgaWYgKHBhcnNlci0+aXNFeHRyYWN0aW5nU291cmNl
RGF0YSgpICYmIHBhcnNlci0+bV9jdXJyZW50UnVsZURhdGFTdGFjay0+aXNFbXB0eSgpICYmIHBh
cnNlci0+bV9ydWxlU291cmNlRGF0YVJlc3VsdCkKKyAgICAgICAgIHBhcnNlci0+YWRkTmV3UnVs
ZVRvU291cmNlVHJlZShDU1NSdWxlU291cmNlRGF0YTo6Y3JlYXRlVW5rbm93bigpKTsKKyAgICAg
JCQgPSAwOworICB9CisgIHwgQ0hBUlNFVF9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7CisgIH0K
KyAgfCBDSEFSU0VUX1NZTSBlcnJvciAnOycgeworICB9Cis7CisKK2lnbm9yZWRfY2hhcnNldDoK
KyAgICBDSEFSU0VUX1NZTSBtYXliZV9zcGFjZSBTVFJJTkcgbWF5YmVfc3BhY2UgJzsnIHsKKyAg
ICAgICAgLy8gSWdub3JlIGFueSBAY2hhcnNldCBydWxlIG5vdCBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBzdHlsZSBzaGVldC4KKyAgICAgICAgJCQgPSAwOworICAgIH0KKyAgICB8IENIQVJTRVRf
U1lNIG1heWJlX3NwYWNlICc7JyB7CisgICAgICAgICQkID0gMDsKKyAgICB9Cis7CisKK3J1bGVf
bGlzdDoKKyAgIC8qIGVtcHR5ICovCisgfCBydWxlX2xpc3QgcnVsZSBtYXliZV9zZ21sIHsKKyAg
ICAgaWYgKCQyICYmIHBhcnNlci0+bV9zdHlsZVNoZWV0KQorICAgICAgICAgcGFyc2VyLT5tX3N0
eWxlU2hlZXQtPnBhcnNlckFwcGVuZFJ1bGUoJDIpOworIH0KKyA7CisKK3ZhbGlkX3J1bGU6Cisg
ICAgcnVsZXNldAorICB8IG1lZGlhCisgIHwgcGFnZQorICB8IGZvbnRfZmFjZQorICB8IGtleWZy
YW1lcworICB8IG5hbWVzcGFjZQorICB8IGltcG9ydAorICB8IHJlZ2lvbgorICA7CisKK3J1bGU6
CisgICAgdmFsaWRfcnVsZSB7CisgICAgICAgIHBhcnNlci0+bV9oYWRTeW50YWN0aWNhbGx5VmFs
aWRDU1NSdWxlID0gdHJ1ZTsKKyAgICB9CisgIHwgaWdub3JlZF9jaGFyc2V0CisgIHwgaW52YWxp
ZF9ydWxlCisgIHwgaW52YWxpZF9hdAorICA7CisKK2Jsb2NrX3J1bGVfbGlzdDogCisgICAgLyog
ZW1wdHkgKi8geyAkJCA9IDA7IH0KKyAgfCBibG9ja19ydWxlX2xpc3QgYmxvY2tfcnVsZSBtYXli
ZV9zZ21sIHsKKyAgICAgICQkID0gJDE7CisgICAgICBpZiAoJDIpIHsKKyAgICAgICAgICBpZiAo
ISQkKQorICAgICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlUnVsZUxpc3QoKTsKKyAgICAg
ICAgICAkJC0+YXBwZW5kKCQyKTsKKyAgICAgIH0KKyAgfQorICA7CisKK2Jsb2NrX3ZhbGlkX3J1
bGU6CisgICAgcnVsZXNldAorICB8IHBhZ2UKKyAgfCBmb250X2ZhY2UKKyAgfCBrZXlmcmFtZXMK
KyAgOworCitibG9ja19ydWxlOgorICAgIGJsb2NrX3ZhbGlkX3J1bGUKKyAgfCBpbnZhbGlkX3J1
bGUKKyAgfCBpbnZhbGlkX2F0CisgIHwgbmFtZXNwYWNlCisgIHwgaW1wb3J0CisgIHwgbWVkaWEK
KyAgOworCithdF9pbXBvcnRfaGVhZGVyX2VuZF9tYXliZV9zcGFjZToKKyAgICBtYXliZV9zcGFj
ZSB7CisgICAgICAgIHBhcnNlci0+bWFya1J1bGVIZWFkZXJFbmQoKTsKKyAgICAgICAgcGFyc2Vy
LT5tYXJrUnVsZUJvZHlTdGFydCgpOworICAgIH0KKyAgICA7CisKK2JlZm9yZV9pbXBvcnRfcnVs
ZToKKyAgICAvKiBlbXB0eSAqLyB7CisgICAgICAgIHBhcnNlci0+bWFya1J1bGVIZWFkZXJTdGFy
dChDU1NSdWxlU291cmNlRGF0YTo6SU1QT1JUX1JVTEUpOworICAgIH0KKyAgICA7CisKK2ltcG9y
dDoKKyAgICBiZWZvcmVfaW1wb3J0X3J1bGUgSU1QT1JUX1NZTSBhdF9pbXBvcnRfaGVhZGVyX2Vu
ZF9tYXliZV9zcGFjZSBzdHJpbmdfb3JfdXJpIG1heWJlX3NwYWNlIG1heWJlX21lZGlhX2xpc3Qg
JzsnIHsKKyAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUltcG9ydFJ1bGUoJDQsICQ2KTsKKyAg
ICB9CisgIHwgYmVmb3JlX2ltcG9ydF9ydWxlIElNUE9SVF9TWU0gYXRfaW1wb3J0X2hlYWRlcl9l
bmRfbWF5YmVfc3BhY2Ugc3RyaW5nX29yX3VyaSBtYXliZV9zcGFjZSBtYXliZV9tZWRpYV9saXN0
IFRPS0VOX0VPRiB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVJbXBvcnRSdWxlKCQ0LCAk
Nik7CisgICAgfQorICB8IGJlZm9yZV9pbXBvcnRfcnVsZSBJTVBPUlRfU1lNIGF0X2ltcG9ydF9o
ZWFkZXJfZW5kX21heWJlX3NwYWNlIHN0cmluZ19vcl91cmkgbWF5YmVfc3BhY2UgbWF5YmVfbWVk
aWFfbGlzdCBpbnZhbGlkX2Jsb2NrIHsKKyAgICAgICAgJCQgPSAwOworICAgICAgICBwYXJzZXIt
PnBvcFJ1bGVEYXRhKCk7CisgICAgfQorICB8IGJlZm9yZV9pbXBvcnRfcnVsZSBJTVBPUlRfU1lN
IGVycm9yICc7JyB7CisgICAgICAgICQkID0gMDsKKyAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0
YSgpOworICAgIH0KKyAgfCBiZWZvcmVfaW1wb3J0X3J1bGUgSU1QT1JUX1NZTSBlcnJvciBpbnZh
bGlkX2Jsb2NrIHsKKyAgICAgICAgJCQgPSAwOworICAgICAgICBwYXJzZXItPnBvcFJ1bGVEYXRh
KCk7CisgICAgfQorICA7CisKK25hbWVzcGFjZToKK05BTUVTUEFDRV9TWU0gbWF5YmVfc3BhY2Ug
bWF5YmVfbnNfcHJlZml4IHN0cmluZ19vcl91cmkgbWF5YmVfc3BhY2UgJzsnIHsKKyAgICBwYXJz
ZXItPmFkZE5hbWVzcGFjZSgkMywgJDQpOworICAgICQkID0gMDsKK30KK3wgTkFNRVNQQUNFX1NZ
TSBtYXliZV9zcGFjZSBtYXliZV9uc19wcmVmaXggc3RyaW5nX29yX3VyaSBtYXliZV9zcGFjZSBp
bnZhbGlkX2Jsb2NrIHsKKyAgICAkJCA9IDA7Cit9Cit8IE5BTUVTUEFDRV9TWU0gZXJyb3IgaW52
YWxpZF9ibG9jayB7CisgICAgJCQgPSAwOworfQorfCBOQU1FU1BBQ0VfU1lNIGVycm9yICc7JyB7
CisgICAgJCQgPSAwOworfQorOworCittYXliZV9uc19wcmVmaXg6CisvKiBlbXB0eSAqLyB7ICQk
LmNsZWFyKCk7IH0KK3wgSURFTlQgbWF5YmVfc3BhY2UgeyAkJCA9ICQxOyB9Cis7CisKK3N0cmlu
Z19vcl91cmk6CitTVFJJTkcKK3wgVVJJCis7CisKK21lZGlhX2ZlYXR1cmU6CisgICAgSURFTlQg
bWF5YmVfc3BhY2UgeworICAgICAgICAkJCA9ICQxOworICAgIH0KKyAgICA7CisKK21heWJlX21l
ZGlhX3ZhbHVlOgorICAgIC8qZW1wdHkqLyB7CisgICAgICAgICQkID0gMDsKKyAgICB9CisgICAg
fCAnOicgbWF5YmVfc3BhY2UgZXhwciBtYXliZV9zcGFjZSB7CisgICAgICAgICQkID0gJDM7Cisg
ICAgfQorICAgIDsKKworbWVkaWFfcXVlcnlfZXhwOgorICAgICcoJyBtYXliZV9zcGFjZSBtZWRp
YV9mZWF0dXJlIG1heWJlX3NwYWNlIG1heWJlX21lZGlhX3ZhbHVlICcpJyBtYXliZV9zcGFjZSB7
CisgICAgICAgICQzLmxvd2VyKCk7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGlu
Z01lZGlhUXVlcnlFeHAoJDMsICQ1KTsKKyAgICB9CisgICAgOworCittZWRpYV9xdWVyeV9leHBf
bGlzdDoKKyAgICBtZWRpYV9xdWVyeV9leHAgeworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRl
RmxvYXRpbmdNZWRpYVF1ZXJ5RXhwTGlzdCgpOworICAgICAgICAkJC0+YXBwZW5kKHBhcnNlci0+
c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cCgkMSkpOworICAgIH0KKyAgICB8IG1lZGlhX3F1ZXJ5
X2V4cF9saXN0IG1heWJlX3NwYWNlIE1FRElBX0FORCBtYXliZV9zcGFjZSBtZWRpYV9xdWVyeV9l
eHAgeworICAgICAgICAkJCA9ICQxOworICAgICAgICAkJC0+YXBwZW5kKHBhcnNlci0+c2lua0Zs
b2F0aW5nTWVkaWFRdWVyeUV4cCgkNSkpOworICAgIH0KKyAgICA7CisKK21heWJlX2FuZF9tZWRp
YV9xdWVyeV9leHBfbGlzdDoKKyAgICAvKmVtcHR5Ki8geworICAgICAgICAkJCA9IHBhcnNlci0+
Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwTGlzdCgpOworICAgIH0KKyAgICB8IE1FRElBX0FO
RCBtYXliZV9zcGFjZSBtZWRpYV9xdWVyeV9leHBfbGlzdCB7CisgICAgICAgICQkID0gJDM7Cisg
ICAgfQorICAgIDsKKworbWF5YmVfbWVkaWFfcmVzdHJpY3RvcjoKKyAgICAvKmVtcHR5Ki8gewor
ICAgICAgICAkJCA9IE1lZGlhUXVlcnk6Ok5vbmU7CisgICAgfQorICAgIHwgTUVESUFfT05MWSB7
CisgICAgICAgICQkID0gTWVkaWFRdWVyeTo6T25seTsKKyAgICB9CisgICAgfCBNRURJQV9OT1Qg
eworICAgICAgICAkJCA9IE1lZGlhUXVlcnk6Ok5vdDsKKyAgICB9CisgICAgOworCittZWRpYV9x
dWVyeToKKyAgICBtZWRpYV9xdWVyeV9leHBfbGlzdCB7CisgICAgICAgICQkID0gcGFyc2VyLT5j
cmVhdGVGbG9hdGluZ01lZGlhUXVlcnkocGFyc2VyLT5zaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5RXhw
TGlzdCgkMSkpOworICAgIH0KKyAgICB8CisgICAgbWF5YmVfbWVkaWFfcmVzdHJpY3RvciBtYXli
ZV9zcGFjZSBtZWRpdW0gbWF5YmVfYW5kX21lZGlhX3F1ZXJ5X2V4cF9saXN0IHsKKyAgICAgICAg
JDMubG93ZXIoKTsKKyAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVy
eSgkMSwgJDMsIHBhcnNlci0+c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3QoJDQpKTsKKyAg
ICB9CisgICAgOworCittYXliZV9tZWRpYV9saXN0OgorICAgICAvKiBlbXB0eSAqLyB7CisgICAg
ICAgICQkID0gcGFyc2VyLT5jcmVhdGVNZWRpYVF1ZXJ5U2V0KCk7CisgICAgIH0KKyAgICAgfCBt
ZWRpYV9saXN0CisgICAgIDsKKworbWVkaWFfbGlzdDoKKyAgICBtZWRpYV9xdWVyeSB7CisgICAg
ICAgICQkID0gcGFyc2VyLT5jcmVhdGVNZWRpYVF1ZXJ5U2V0KCk7CisgICAgICAgICQkLT5hZGRN
ZWRpYVF1ZXJ5KHBhcnNlci0+c2lua0Zsb2F0aW5nTWVkaWFRdWVyeSgkMSkpOworICAgICAgICBw
YXJzZXItPnVwZGF0ZUxhc3RNZWRpYUxpbmUoJCQpOworICAgIH0KKyAgICB8IG1lZGlhX2xpc3Qg
JywnIG1heWJlX3NwYWNlIG1lZGlhX3F1ZXJ5IHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICAgICAg
aWYgKCQkKSB7CisgICAgICAgICAgICAkJC0+YWRkTWVkaWFRdWVyeShwYXJzZXItPnNpbmtGbG9h
dGluZ01lZGlhUXVlcnkoJDQpKTsKKyAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlTGFzdE1lZGlh
TGluZSgkJCk7CisgICAgICAgIH0KKyAgICB9CisgICAgfCBtZWRpYV9saXN0IGVycm9yIHsKKyAg
ICAgICAgJCQgPSAwOworICAgIH0KKyAgICA7CisKK2F0X3J1bGVfYm9keV9zdGFydDoKKyAgICAv
KiBlbXB0eSAqLyB7CisgICAgICAgIHBhcnNlci0+bWFya1J1bGVCb2R5U3RhcnQoKTsKKyAgICB9
CisgICAgOworCitiZWZvcmVfbWVkaWFfcnVsZToKKyAgICAvKiBlbXB0eSAqLyB7CisgICAgICAg
IHBhcnNlci0+bWFya1J1bGVIZWFkZXJTdGFydChDU1NSdWxlU291cmNlRGF0YTo6TUVESUFfUlVM
RSk7CisgICAgfQorICAgIDsKKworYXRfcnVsZV9oZWFkZXJfZW5kX21heWJlX3NwYWNlOgorICAg
IG1heWJlX3NwYWNlIHsKKyAgICAgICAgcGFyc2VyLT5tYXJrUnVsZUhlYWRlckVuZCgpOworICAg
IH0KKyAgICA7CisKK21lZGlhOgorICAgIGJlZm9yZV9tZWRpYV9ydWxlIE1FRElBX1NZTSBtYXli
ZV9zcGFjZSBtZWRpYV9saXN0IGF0X3J1bGVfaGVhZGVyX2VuZCAneycgYXRfcnVsZV9ib2R5X3N0
YXJ0IG1heWJlX3NwYWNlIGJsb2NrX3J1bGVfbGlzdCBzYXZlX2Jsb2NrIHsKKyAgICAgICAgJCQg
PSBwYXJzZXItPmNyZWF0ZU1lZGlhUnVsZSgkNCwgJDkpOworICAgIH0KKyAgICB8IGJlZm9yZV9t
ZWRpYV9ydWxlIE1FRElBX1NZTSBhdF9ydWxlX2hlYWRlcl9lbmRfbWF5YmVfc3BhY2UgJ3snIGF0
X3J1bGVfYm9keV9zdGFydCBtYXliZV9zcGFjZSBibG9ja19ydWxlX2xpc3Qgc2F2ZV9ibG9jayB7
CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVNZWRpYVJ1bGUoMCwgJDcpOworICAgIH0KKyAg
ICB8IGJlZm9yZV9tZWRpYV9ydWxlIE1FRElBX1NZTSBhdF9ydWxlX2hlYWRlcl9lbmRfbWF5YmVf
c3BhY2UgJzsnIHsKKyAgICAgICAgJCQgPSAwOworICAgICAgICBwYXJzZXItPnBvcFJ1bGVEYXRh
KCk7CisgICAgfQorICAgIDsKKworbWVkaXVtOgorICBJREVOVCBtYXliZV9zcGFjZSB7CisgICAg
ICAkJCA9ICQxOworICB9CisgIDsKKworYmVmb3JlX2tleWZyYW1lc19ydWxlOgorICAgIC8qIGVt
cHR5ICovIHsKKyAgICAgICAgcGFyc2VyLT5tYXJrUnVsZUhlYWRlclN0YXJ0KENTU1J1bGVTb3Vy
Y2VEYXRhOjpLRVlGUkFNRVNfUlVMRSk7CisgICAgfQorICAgIDsKKwora2V5ZnJhbWVzOgorICAg
IGJlZm9yZV9rZXlmcmFtZXNfcnVsZSBXRUJLSVRfS0VZRlJBTUVTX1NZTSBtYXliZV9zcGFjZSBr
ZXlmcmFtZV9uYW1lIGF0X3J1bGVfaGVhZGVyX2VuZF9tYXliZV9zcGFjZSAneycgYXRfcnVsZV9i
b2R5X3N0YXJ0IG1heWJlX3NwYWNlIGtleWZyYW1lc19ydWxlIGNsb3NpbmdfYnJhY2UgeworICAg
ICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlS2V5ZnJhbWVzUnVsZSgkNCwgcGFyc2VyLT5zaW5rRmxv
YXRpbmdLZXlmcmFtZVZlY3RvcigkOSkpOworICAgIH0KKyAgICA7CisgIAora2V5ZnJhbWVfbmFt
ZToKKyAgICBJREVOVAorICAgIHwgU1RSSU5HCisgICAgOworCitrZXlmcmFtZXNfcnVsZToKKyAg
ICAvKiBlbXB0eSAqLyB7ICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ0tleWZyYW1lVmVjdG9y
KCk7IH0KKyAgICB8IGtleWZyYW1lc19ydWxlIGtleWZyYW1lX3J1bGUgbWF5YmVfc3BhY2Ugewor
ICAgICAgICAkJCA9ICQxOworICAgICAgICBpZiAoJDIpCisgICAgICAgICAgICAkJC0+YXBwZW5k
KCQyKTsKKyAgICB9CisgICAgOworCitrZXlmcmFtZV9ydWxlOgorICAgIGtleV9saXN0IG1heWJl
X3NwYWNlICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0ICd9JyB7CisgICAgICAgICQk
ID0gcGFyc2VyLT5jcmVhdGVLZXlmcmFtZSgkMSk7CisgICAgfQorICAgIDsKKwora2V5X2xpc3Q6
CisgICAga2V5IHsKKyAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nVmFsdWVMaXN0
KCk7CisgICAgICAgICQkLT5hZGRWYWx1ZShwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlKCQxKSk7
CisgICAgfQorICAgIHwga2V5X2xpc3QgbWF5YmVfc3BhY2UgJywnIG1heWJlX3NwYWNlIGtleSB7
CisgICAgICAgICQkID0gJDE7CisgICAgICAgIGlmICgkJCkKKyAgICAgICAgICAgICQkLT5hZGRW
YWx1ZShwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlKCQ1KSk7CisgICAgfQorICAgIDsKKwora2V5
OgorICAgIG1heWJlX3VuYXJ5X29wZXJhdG9yIFBFUkNFTlRBR0UgeyAkJC5pZCA9IDA7ICQkLmlz
SW50ID0gZmFsc2U7ICQkLmZWYWx1ZSA9ICQxICogJDI7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUjsgfQorICAgIHwgSURFTlQgeworICAgICAgICAkJC5pZCA9IDA7ICQk
LmlzSW50ID0gZmFsc2U7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUjsK
KyAgICAgICAgQ1NTUGFyc2VyU3RyaW5nJiBzdHIgPSAkMTsKKyAgICAgICAgaWYgKHN0ci5lcXVh
bElnbm9yaW5nQ2FzZSgiZnJvbSIpKQorICAgICAgICAgICAgJCQuZlZhbHVlID0gMDsKKyAgICAg
ICAgZWxzZSBpZiAoc3RyLmVxdWFsSWdub3JpbmdDYXNlKCJ0byIpKQorICAgICAgICAgICAgJCQu
ZlZhbHVlID0gMTAwOworICAgICAgICBlbHNlCisgICAgICAgICAgICBZWUVSUk9SOworICAgIH0K
KyAgICA7CisKK2JlZm9yZV9wYWdlX3J1bGU6CisgICAgLyogZW1wdHkgKi8geworICAgICAgICBw
YXJzZXItPm1hcmtSdWxlSGVhZGVyU3RhcnQoQ1NTUnVsZVNvdXJjZURhdGE6OlBBR0VfUlVMRSk7
CisgICAgfQorICAgIDsKKworcGFnZToKKyAgICBiZWZvcmVfcGFnZV9ydWxlIFBBR0VfU1lNIG1h
eWJlX3NwYWNlIHBhZ2Vfc2VsZWN0b3IgYXRfcnVsZV9oZWFkZXJfZW5kX21heWJlX3NwYWNlCisg
ICAgJ3snIGF0X3J1bGVfYm9keV9zdGFydCBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24g
ZGVjbGFyYXRpb25zX2FuZF9tYXJnaW5zIGNsb3NpbmdfYnJhY2UgeworICAgICAgICBpZiAoJDQp
CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlUGFnZVJ1bGUocGFyc2VyLT5zaW5rRmxv
YXRpbmdTZWxlY3RvcigkNCkpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIENsZWFy
IHByb3BlcnRpZXMgaW4gdGhlIGludmFsaWQgQHBhZ2UgcnVsZS4KKyAgICAgICAgICAgIHBhcnNl
ci0+Y2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgICAgICAgICAvLyBBbHNvIGNsZWFyIG1hcmdpbiBh
dC1ydWxlcyBoZXJlIG9uY2Ugd2UgZnVsbHkgaW1wbGVtZW50IG1hcmdpbiBhdC1ydWxlcyBwYXJz
aW5nLgorICAgICAgICAgICAgJCQgPSAwOworICAgICAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0
YSgpOworICAgICAgICB9CisgICAgfQorICAgIHwgYmVmb3JlX3BhZ2VfcnVsZSBQQUdFX1NZTSBl
cnJvciBpbnZhbGlkX2Jsb2NrIHsKKyAgICAgIHBhcnNlci0+cG9wUnVsZURhdGEoKTsKKyAgICAg
ICQkID0gMDsKKyAgICB9CisgICAgfCBiZWZvcmVfcGFnZV9ydWxlIFBBR0VfU1lNIGVycm9yICc7
JyB7CisgICAgICBwYXJzZXItPnBvcFJ1bGVEYXRhKCk7CisgICAgICAkJCA9IDA7CisgICAgfQor
ICAgIDsKKworcGFnZV9zZWxlY3RvcjoKKyAgICBJREVOVCB7CisgICAgICAgICQkID0gcGFyc2Vy
LT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRUYWcoUXVhbGlmaWVk
TmFtZShudWxsQXRvbSwgJDEsIHBhcnNlci0+bV9kZWZhdWx0TmFtZXNwYWNlKSk7CisgICAgICAg
ICQkLT5zZXRGb3JQYWdlKCk7CisgICAgfQorICAgIHwgSURFTlQgcHNldWRvX3BhZ2UgeworICAg
ICAgICAkJCA9ICQyOworICAgICAgICBpZiAoJCQpIHsKKyAgICAgICAgICAgICQkLT5zZXRUYWco
UXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHBhcnNlci0+bV9kZWZhdWx0TmFtZXNwYWNlKSk7
CisgICAgICAgICAgICAkJC0+c2V0Rm9yUGFnZSgpOworICAgICAgICB9CisgICAgfQorICAgIHwg
cHNldWRvX3BhZ2UgeworICAgICAgICAkJCA9ICQxOworICAgICAgICBpZiAoJCQpCisgICAgICAg
ICAgICAkJC0+c2V0Rm9yUGFnZSgpOworICAgIH0KKyAgICB8IC8qIGVtcHR5ICovIHsKKyAgICAg
ICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPnNl
dEZvclBhZ2UoKTsKKyAgICB9CisgICAgOworCitkZWNsYXJhdGlvbnNfYW5kX21hcmdpbnM6Cisg
ICAgZGVjbGFyYXRpb25fbGlzdAorICAgIHwgZGVjbGFyYXRpb25zX2FuZF9tYXJnaW5zIG1hcmdp
bl9ib3ggbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworbWFyZ2luX2JveDoK
KyAgICBtYXJnaW5fc3ltIHsKKyAgICAgICAgcGFyc2VyLT5zdGFydERlY2xhcmF0aW9uc0Zvck1h
cmdpbkJveCgpOworICAgIH0gbWF5YmVfc3BhY2UgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9u
X2xpc3QgY2xvc2luZ19icmFjZSB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVNYXJnaW5B
dFJ1bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JO
RVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lck1hcmdpbkJv
eDsKKyAgICB9CisgICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OlRvcExlZnRNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OlRvcENlbnRlck1hcmdpbkJveDsKKyAgICB9CisgICAgfCBUT1BS
SUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodE1hcmdpbkJveDsK
KyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5FUl9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVj
dG9yOjpUb3BSaWdodENvcm5lck1hcmdpbkJveDsKKyAgICB9CisgICAgfCBCT1RUT01MRUZUQ09S
TkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRDb3JuZXJNYXJn
aW5Cb3g7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpCb3R0b21MZWZ0TWFyZ2luQm94OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9T
WU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXJNYXJnaW5Cb3g7Cisg
ICAgfQorICAgIHwgQk9UVE9NUklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
Qm90dG9tUmlnaHRNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lN
IHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHRDb3JuZXJNYXJnaW5Cb3g7
CisgICAgfQorICAgIHwgTEVGVFRPUF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpM
ZWZ0VG9wTWFyZ2luQm94OworICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lNIHsKKyAgICAgICAg
JCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZU1hcmdpbkJveDsKKyAgICB9CisgICAgfCBMRUZU
Qk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b21NYXJnaW5C
b3g7CisgICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rv
cjo6UmlnaHRUb3BNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRNaWRkbGVNYXJnaW5Cb3g7CisgICAgfQorICAg
IHwgUklHSFRCT1RUT01fU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0
b21NYXJnaW5Cb3g7CisgICAgfQorICAgIDsKKworYmVmb3JlX2ZvbnRfZmFjZV9ydWxlOgorICAg
IC8qIGVtcHR5ICovIHsKKyAgICAgICAgcGFyc2VyLT5tYXJrUnVsZUhlYWRlclN0YXJ0KENTU1J1
bGVTb3VyY2VEYXRhOjpGT05UX0ZBQ0VfUlVMRSk7CisgICAgfQorICAgIDsKKworZm9udF9mYWNl
OgorICAgIGJlZm9yZV9mb250X2ZhY2VfcnVsZSBGT05UX0ZBQ0VfU1lNIGF0X3J1bGVfaGVhZGVy
X2VuZF9tYXliZV9zcGFjZQorICAgICd7JyBhdF9ydWxlX2JvZHlfc3RhcnQgbWF5YmVfc3BhY2Vf
YmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFjZSB7CisgICAg
ICAgICQkID0gcGFyc2VyLT5jcmVhdGVGb250RmFjZVJ1bGUoKTsKKyAgICB9CisgICAgfCBiZWZv
cmVfZm9udF9mYWNlX3J1bGUgRk9OVF9GQUNFX1NZTSBlcnJvciBpbnZhbGlkX2Jsb2NrIHsKKyAg
ICAgICQkID0gMDsKKyAgICAgIHBhcnNlci0+cG9wUnVsZURhdGEoKTsKKyAgICB9CisgICAgfCBi
ZWZvcmVfZm9udF9mYWNlX3J1bGUgRk9OVF9GQUNFX1NZTSBlcnJvciAnOycgeworICAgICAgJCQg
PSAwOworICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgpOworICAgIH0KKzsKKworcmVnaW9uX3Nl
bGVjdG9yOgorICAgIHNlbGVjdG9yX2xpc3QgeworICAgICAgICBpZiAoJDEpIHsKKyAgICAgICAg
ICAgIHBhcnNlci0+c2V0UmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3RvcigkMSk7CisgICAgICAg
ICAgICAkJCA9IHBhcnNlci0+cmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3RvcigpOworICAgICAg
ICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICQkID0gMDsKKyAgICB9Cis7CisKK2JlZm9y
ZV9yZWdpb25fcnVsZToKKyAgICAvKiBlbXB0eSAqLyB7CisgICAgICAgIHBhcnNlci0+bWFya1J1
bGVIZWFkZXJTdGFydChDU1NSdWxlU291cmNlRGF0YTo6UkVHSU9OX1JVTEUpOworICAgIH0KKyAg
ICA7CisKK3JlZ2lvbjoKKyAgICBiZWZvcmVfcmVnaW9uX3J1bGUgV0VCS0lUX1JFR0lPTl9SVUxF
X1NZTSBXSElURVNQQUNFIHJlZ2lvbl9zZWxlY3RvciBhdF9ydWxlX2hlYWRlcl9lbmQgJ3snIGF0
X3J1bGVfYm9keV9zdGFydCBtYXliZV9zcGFjZSBibG9ja19ydWxlX2xpc3Qgc2F2ZV9ibG9jayB7
CisgICAgICAgIGlmICgkNCkKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVSZWdpb25S
dWxlKCQ0LCAkOSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgJCQgPSAwOworICAgICAg
ICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgpOworICAgICAgICB9CisgICAgfQorOworCitjb21i
aW5hdG9yOgorICAgICcrJyBtYXliZV9zcGFjZSB7ICQkID0gQ1NTU2VsZWN0b3I6OkRpcmVjdEFk
amFjZW50OyB9CisgIHwgJ34nIG1heWJlX3NwYWNlIHsgJCQgPSBDU1NTZWxlY3Rvcjo6SW5kaXJl
Y3RBZGphY2VudDsgfQorICB8ICc+JyBtYXliZV9zcGFjZSB7ICQkID0gQ1NTU2VsZWN0b3I6OkNo
aWxkOyB9CisgIDsKKworbWF5YmVfdW5hcnlfb3BlcmF0b3I6CisgICAgdW5hcnlfb3BlcmF0b3Ig
eyAkJCA9ICQxOyB9CisgICAgfCB7ICQkID0gMTsgfQorICAgIDsKKwordW5hcnlfb3BlcmF0b3I6
CisgICAgJy0nIHsgJCQgPSAtMTsgfQorICB8ICcrJyB7ICQkID0gMTsgfQorICA7CisKK21heWJl
X3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbjoKKyAgICBtYXliZV9zcGFjZSB7CisgICAgICAgIHBh
cnNlci0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsKKworYmVmb3JlX3NlbGVjdG9y
X2xpc3Q6CisgICAgLyogZW1wdHkgKi8geworICAgICAgICBwYXJzZXItPm1hcmtSdWxlSGVhZGVy
U3RhcnQoQ1NTUnVsZVNvdXJjZURhdGE6OlNUWUxFX1JVTEUpOworICAgIH0KKyAgOworCithdF9y
dWxlX2hlYWRlcl9lbmQ6CisgICAgLyogZW1wdHkgKi8geworICAgICAgICBwYXJzZXItPm1hcmtS
dWxlSGVhZGVyRW5kKCk7CisgICAgfQorICA7CisKK3J1bGVzZXQ6CisgICAgYmVmb3JlX3NlbGVj
dG9yX2xpc3Qgc2VsZWN0b3JfbGlzdCBhdF9ydWxlX2hlYWRlcl9lbmQgJ3snIGF0X3J1bGVfYm9k
eV9zdGFydCBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCBj
bG9zaW5nX2JyYWNlIHsKKyAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZVN0eWxlUnVsZSgkMik7
CisgICAgfQorICA7CisKK3NlbGVjdG9yX2xpc3Q6CisgICAgc2VsZWN0b3IgJXByZWMgVU5JTVBP
UlRBTlRfVE9LIHsKKyAgICAgICAgaWYgKCQxKSB7CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+
c2VsZWN0b3JWZWN0b3IoKTsKKyAgICAgICAgICAgICQkLT5zaHJpbmsoMCk7CisgICAgICAgICAg
ICAkJC0+YXBwZW5kKHBhcnNlci0+c2lua0Zsb2F0aW5nU2VsZWN0b3IoJDEpKTsKKyAgICAgICAg
ICAgIHBhcnNlci0+dXBkYXRlTGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9uKCk7CisgICAgICAg
IH0KKyAgICB9CisgICAgfCBzZWxlY3Rvcl9saXN0ICcsJyBtYXliZV9zcGFjZSBzZWxlY3RvciAl
cHJlYyBVTklNUE9SVEFOVF9UT0sgeworICAgICAgICBpZiAoJDEgJiYgJDQpIHsKKyAgICAgICAg
ICAgICQkID0gJDE7CisgICAgICAgICAgICAkJC0+YXBwZW5kKHBhcnNlci0+c2lua0Zsb2F0aW5n
U2VsZWN0b3IoJDQpKTsKKyAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlTGFzdFNlbGVjdG9yTGlu
ZUFuZFBvc2l0aW9uKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgJCQgPSAwOworICAg
IH0KKyAgfCBzZWxlY3Rvcl9saXN0IGVycm9yIHsKKyAgICAgICAgJCQgPSAwOworICAgIH0KKyAg
IDsKKworc2VsZWN0b3Jfd2l0aF90cmFpbGluZ193aGl0ZXNwYWNlOgorICAgIHNlbGVjdG9yIFdI
SVRFU1BBQ0UgeworICAgICAgICAkJCA9ICQxOworICAgIH0KKyAgICA7CisKK3NlbGVjdG9yOgor
ICAgIHNpbXBsZV9zZWxlY3RvciB7CisgICAgICAgICQkID0gJDE7CisgICAgfQorICAgIHwgc2Vs
ZWN0b3Jfd2l0aF90cmFpbGluZ193aGl0ZXNwYWNlCisgICAgeworICAgICAgICAkJCA9ICQxOwor
ICAgIH0KKyAgICB8IHNlbGVjdG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVzcGFjZSBzaW1wbGVfc2Vs
ZWN0b3IKKyAgICB7CisgICAgICAgICQkID0gJDI7CisgICAgICAgIGlmICghJDEpCisgICAgICAg
ICAgICAkJCA9IDA7CisgICAgICAgIGVsc2UgaWYgKCQkKSB7CisgICAgICAgICAgICBDU1NQYXJz
ZXJTZWxlY3RvciogZW5kID0gJCQ7CisgICAgICAgICAgICB3aGlsZSAoZW5kLT50YWdIaXN0b3J5
KCkpCisgICAgICAgICAgICAgICAgZW5kID0gZW5kLT50YWdIaXN0b3J5KCk7CisgICAgICAgICAg
ICBlbmQtPnNldFJlbGF0aW9uKENTU1NlbGVjdG9yOjpEZXNjZW5kYW50KTsKKyAgICAgICAgICAg
IGVuZC0+c2V0VGFnSGlzdG9yeShwYXJzZXItPnNpbmtGbG9hdGluZ1NlbGVjdG9yKCQxKSk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgfCBzZWxlY3RvciBjb21iaW5hdG9yIHNpbXBsZV9zZWxlY3Rv
ciB7CisgICAgICAgICQkID0gJDM7CisgICAgICAgIGlmICghJDEpCisgICAgICAgICAgICAkJCA9
IDA7CisgICAgICAgIGVsc2UgaWYgKCQkKSB7CisgICAgICAgICAgICBDU1NQYXJzZXJTZWxlY3Rv
ciogZW5kID0gJCQ7CisgICAgICAgICAgICB3aGlsZSAoZW5kLT50YWdIaXN0b3J5KCkpCisgICAg
ICAgICAgICAgICAgZW5kID0gZW5kLT50YWdIaXN0b3J5KCk7CisgICAgICAgICAgICBlbmQtPnNl
dFJlbGF0aW9uKCQyKTsKKyAgICAgICAgICAgIGVuZC0+c2V0VGFnSGlzdG9yeShwYXJzZXItPnNp
bmtGbG9hdGluZ1NlbGVjdG9yKCQxKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgfCBzZWxlY3Rv
ciBlcnJvciB7CisgICAgICAgICQkID0gMDsKKyAgICB9CisgICAgOworCituYW1lc3BhY2Vfc2Vs
ZWN0b3I6CisgICAgLyogZW1wdHkgKi8gJ3wnIHsgJCQuY2xlYXIoKTsgfQorICAgIHwgJyonICd8
JyB7IHN0YXRpYyBMQ2hhciBzdGFyID0gJyonOyAkJC5pbml0KCZzdGFyLCAxKTsgfQorICAgIHwg
SURFTlQgJ3wnIHsgJCQgPSAkMTsgfQorOworICAgIAorc2ltcGxlX3NlbGVjdG9yOgorICAgIGVs
ZW1lbnRfbmFtZSB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9y
KCk7CisgICAgICAgICQkLT5zZXRUYWcoUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHBhcnNl
ci0+bV9kZWZhdWx0TmFtZXNwYWNlKSk7CisgICAgfQorICAgIHwgZWxlbWVudF9uYW1lIHNwZWNp
Zmllcl9saXN0IHsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAg
ICAgcGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKG51bGxBdG9tLCAkMSwg
JCQpOworICAgIH0KKyAgICB8IHNwZWNpZmllcl9saXN0IHsKKyAgICAgICAgJCQgPSAkMTsKKyAg
ICAgICAgaWYgKCQkKQorICAgICAgICAgICAgcGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVs
ZW1lbnROYW1lKG51bGxBdG9tLCBzdGFyQXRvbSwgJCQpOworICAgIH0KKyAgICB8IG5hbWVzcGFj
ZV9zZWxlY3RvciBlbGVtZW50X25hbWUgeworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxv
YXRpbmdTZWxlY3RvcigpOworICAgICAgICAkJC0+c2V0VGFnKHBhcnNlci0+ZGV0ZXJtaW5lTmFt
ZUluTmFtZXNwYWNlKCQxLCAkMikpOworICAgIH0KKyAgICB8IG5hbWVzcGFjZV9zZWxlY3RvciBl
bGVtZW50X25hbWUgc3BlY2lmaWVyX2xpc3QgeworICAgICAgICAkJCA9ICQzOworICAgICAgICBp
ZiAoJCQpCisgICAgICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5h
bWUoJDEsICQyLCAkJCk7CisgICAgfQorICAgIHwgbmFtZXNwYWNlX3NlbGVjdG9yIHNwZWNpZmll
cl9saXN0IHsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAg
cGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCBzdGFyQXRvbSwgJCQp
OworICAgIH0KKyAgOworCitzaW1wbGVfc2VsZWN0b3JfbGlzdDoKKyAgICBzaW1wbGVfc2VsZWN0
b3IgJXByZWMgVU5JTVBPUlRBTlRfVE9LIHsKKyAgICAgICAgaWYgKCQxKSB7CisgICAgICAgICAg
ICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvclZlY3RvcigpOworICAgICAgICAg
ICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ1NlbGVjdG9yKCQxKSk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgJCQgPSAwOworICAgIH0KKyAgICB8IHNpbXBsZV9zZWxlY3Rv
cl9saXN0IG1heWJlX3NwYWNlICcsJyBtYXliZV9zcGFjZSBzaW1wbGVfc2VsZWN0b3IgJXByZWMg
VU5JTVBPUlRBTlRfVE9LIHsKKyAgICAgICAgaWYgKCQxICYmICQ1KSB7CisgICAgICAgICAgICAk
JCA9ICQxOworICAgICAgICAgICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ1NlbGVj
dG9yKCQ1KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgJCQgPSAwOworICAgIH0KKyAg
ICB8IHNpbXBsZV9zZWxlY3Rvcl9saXN0IGVycm9yIHsKKyAgICAgICAgJCQgPSAwOworICAgIH0K
KyAgOworCitlbGVtZW50X25hbWU6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXJTdHJp
bmcmIHN0ciA9ICQxOworICAgICAgICBpZiAocGFyc2VyLT5tX2NvbnRleHQuaXNIVE1MRG9jdW1l
bnQpCisgICAgICAgICAgICBzdHIubG93ZXIoKTsKKyAgICAgICAgJCQgPSBzdHI7CisgICAgfQor
ICAgIHwgJyonIHsKKyAgICAgICAgc3RhdGljIExDaGFyIHN0YXIgPSAnKic7CisgICAgICAgICQk
LmluaXQoJnN0YXIsIDEpOworICAgIH0KKyAgOworCitzcGVjaWZpZXJfbGlzdDoKKyAgICBzcGVj
aWZpZXIgeworICAgICAgICAkJCA9ICQxOworICAgIH0KKyAgICB8IHNwZWNpZmllcl9saXN0IHNw
ZWNpZmllciB7CisgICAgICAgIGlmICghJDIpCisgICAgICAgICAgICAkJCA9IDA7CisgICAgICAg
IGVsc2UgaWYgKCQxKQorICAgICAgICAgICAgJCQgPSBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnMo
JDEsICQyKTsKKyAgICB9CisgICAgfCBzcGVjaWZpZXJfbGlzdCBlcnJvciB7CisgICAgICAgICQk
ID0gMDsKKyAgICB9Cis7CisKK3NwZWNpZmllcjoKKyAgICBJRFNFTCB7CisgICAgICAgICQkID0g
cGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRNYXRjaChD
U1NTZWxlY3Rvcjo6SWQpOworICAgICAgICBpZiAocGFyc2VyLT5tX2NvbnRleHQubW9kZSA9PSBD
U1NRdWlya3NNb2RlKQorICAgICAgICAgICAgJDEubG93ZXIoKTsKKyAgICAgICAgJCQtPnNldFZh
bHVlKCQxKTsKKyAgICB9CisgIHwgSEVYIHsKKyAgICAgICAgaWYgKCQxWzBdID49ICcwJyAmJiAk
MVswXSA8PSAnOScpIHsKKyAgICAgICAgICAgICQkID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAg
ICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OklkKTsKKyAgICAgICAgICAgIGlmIChwYXJz
ZXItPm1fY29udGV4dC5tb2RlID09IENTU1F1aXJrc01vZGUpCisgICAgICAgICAgICAgICAgJDEu
bG93ZXIoKTsKKyAgICAgICAgICAgICQkLT5zZXRWYWx1ZSgkMSk7CisgICAgICAgIH0KKyAgICB9
CisgIHwgY2xhc3MKKyAgfCBhdHRyaWIKKyAgfCBwc2V1ZG8KKyAgICA7CisKK2NsYXNzOgorICAg
ICcuJyBJREVOVCB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9y
KCk7CisgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6Q2xhc3MpOworICAgICAgICBp
ZiAocGFyc2VyLT5tX2NvbnRleHQubW9kZSA9PSBDU1NRdWlya3NNb2RlKQorICAgICAgICAgICAg
JDIubG93ZXIoKTsKKyAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKKyAgICB9CisgIDsKKworYXR0
cl9uYW1lOgorICAgIElERU5UIG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyU3RyaW5n
JiBzdHIgPSAkMTsKKyAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50
KQorICAgICAgICAgICAgc3RyLmxvd2VyKCk7CisgICAgICAgICQkID0gc3RyOworICAgIH0KKyAg
ICA7CisKK2F0dHJpYjoKKyAgICAnWycgbWF5YmVfc3BhY2UgYXR0cl9uYW1lICddJyB7CisgICAg
ICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAgICQkLT5z
ZXRBdHRyaWJ1dGUoUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDMsIG51bGxBdG9tKSk7CisgICAg
ICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6U2V0KTsKKyAgICB9CisgICAgfCAnWycgbWF5
YmVfc3BhY2UgYXR0cl9uYW1lIG1hdGNoIG1heWJlX3NwYWNlIGlkZW50X29yX3N0cmluZyBtYXli
ZV9zcGFjZSAnXScgeworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rv
cigpOworICAgICAgICAkJC0+c2V0QXR0cmlidXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sICQz
LCBudWxsQXRvbSkpOworICAgICAgICAkJC0+c2V0TWF0Y2goKENTU1NlbGVjdG9yOjpNYXRjaCkk
NCk7CisgICAgICAgICQkLT5zZXRWYWx1ZSgkNik7CisgICAgfQorICAgIHwgJ1snIG1heWJlX3Nw
YWNlIG5hbWVzcGFjZV9zZWxlY3RvciBhdHRyX25hbWUgJ10nIHsKKyAgICAgICAgJCQgPSBwYXJz
ZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPnNldEF0dHJpYnV0ZShw
YXJzZXItPmRldGVybWluZU5hbWVJbk5hbWVzcGFjZSgkMywgJDQpKTsKKyAgICAgICAgJCQtPnNl
dE1hdGNoKENTU1NlbGVjdG9yOjpTZXQpOworICAgIH0KKyAgICB8ICdbJyBtYXliZV9zcGFjZSBu
YW1lc3BhY2Vfc2VsZWN0b3IgYXR0cl9uYW1lIG1hdGNoIG1heWJlX3NwYWNlIGlkZW50X29yX3N0
cmluZyBtYXliZV9zcGFjZSAnXScgeworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRp
bmdTZWxlY3RvcigpOworICAgICAgICAkJC0+c2V0QXR0cmlidXRlKHBhcnNlci0+ZGV0ZXJtaW5l
TmFtZUluTmFtZXNwYWNlKCQzLCAkNCkpOworICAgICAgICAkJC0+c2V0TWF0Y2goKENTU1NlbGVj
dG9yOjpNYXRjaCkkNSk7CisgICAgICAgICQkLT5zZXRWYWx1ZSgkNyk7CisgICAgfQorICA7CisK
K21hdGNoOgorICAgICc9JyB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkV4YWN0OworICAg
IH0KKyAgICB8IElOQ0xVREVTIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGlzdDsKKyAg
ICB9CisgICAgfCBEQVNITUFUQ0ggeworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpIeXBoZW47
CisgICAgfQorICAgIHwgQkVHSU5TV0lUSCB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJl
Z2luOworICAgIH0KKyAgICB8IEVORFNXSVRIIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
RW5kOworICAgIH0KKyAgICB8IENPTlRBSU5TIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
Q29udGFpbjsKKyAgICB9CisgICAgOworCitpZGVudF9vcl9zdHJpbmc6CisgICAgSURFTlQKKyAg
fCBTVFJJTkcKKyAgICA7CisKK3BzZXVkb19wYWdlOgorICAgICc6JyBJREVOVCB7CisgICAgICAg
ICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRN
YXRjaChDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKTsKKyAgICAgICAgJDIubG93ZXIoKTsK
KyAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKKyAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5
cGUgdHlwZSA9ICQkLT5wc2V1ZG9UeXBlKCk7CisgICAgICAgIGlmICh0eXBlID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9Vbmtub3duKQorICAgICAgICAgICAgJCQgPSAwOworICAgIH0KKworcHNldWRv
OgorICAgICc6JyBJREVOVCB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1Nl
bGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3Mp
OworICAgICAgICAkMi5sb3dlcigpOworICAgICAgICAkJC0+c2V0VmFsdWUoJDIpOworICAgICAg
ICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlID0gJCQtPnBzZXVkb1R5cGUoKTsKKyAgICAg
ICAgaWYgKHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCisgICAgICAgICAgICAk
JCA9IDA7CisgICAgfQorICAgIHwgJzonICc6JyBJREVOVCB7CisgICAgICAgICQkID0gcGFyc2Vy
LT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvRWxlbWVudCk7CisgICAgICAgICQzLmxvd2VyKCk7CisgICAgICAgICQkLT5z
ZXRWYWx1ZSgkMyk7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNhbGwgaXMgbmVlZGVkIHRvIGZv
cmNlIHNlbGVjdG9yIHRvIGNvbXB1dGUgdGhlIHBzZXVkb1R5cGUgZWFybHkgZW5vdWdoLgorICAg
ICAgICAkJC0+cHNldWRvVHlwZSgpOworICAgIH0KKyAgICAvLyB1c2UgYnkgOi13ZWJraXQtYW55
LgorICAgIC8vIEZJWE1FOiBzaG91bGQgd2Ugc3VwcG9ydCBnZW5lcmljIHNlbGVjdG9ycyBoZXJl
IG9yIGp1c3Qgc2ltcGxlX3NlbGVjdG9ycz8KKyAgICAvLyBVc2Ugc2ltcGxlX3NlbGVjdG9yX2xp
c3QgZm9yIG5vdyB0byBtYXRjaCAtbW96LWFueS4KKyAgICAvLyBTZWUgaHR0cDovL2xpc3RzLncz
Lm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTBTZXAvMDU2Ni5odG1sIGZvciBzb21l
CisgICAgLy8gcmVsYXRlZCBkaXNjdXNzaW9uIHdpdGggcmVzcGVjdCB0byA6bm90LgorICAgIHwg
JzonIEFOWUZVTkNUSU9OIG1heWJlX3NwYWNlIHNpbXBsZV9zZWxlY3Rvcl9saXN0IG1heWJlX3Nw
YWNlICcpJyB7CisgICAgICAgIGlmICgkNCkgeworICAgICAgICAgICAgJCQgPSBwYXJzZXItPmNy
ZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpOworICAgICAgICAgICAgJCQtPmFkb3B0U2VsZWN0b3JWZWN0b3Io
KnBhcnNlci0+c2lua0Zsb2F0aW5nU2VsZWN0b3JWZWN0b3IoJDQpKTsKKyAgICAgICAgICAgICQy
Lmxvd2VyKCk7CisgICAgICAgICAgICAkJC0+c2V0VmFsdWUoJDIpOworICAgICAgICAgICAgQ1NT
U2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSA9ICQkLT5wc2V1ZG9UeXBlKCk7CisgICAgICAgICAg
ICBpZiAodHlwZSAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55KQorICAgICAgICAgICAgICAgICQk
ID0gMDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAkJCA9IDA7CisgICAgfQorICAgIC8v
IHVzZWQgYnkgOm50aC0qKGF4K2IpCisgICAgfCAnOicgRlVOQ1RJT04gbWF5YmVfc3BhY2UgTlRI
IG1heWJlX3NwYWNlICcpJyB7CisgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1Nl
bGVjdG9yKCk7CisgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3Mp
OworICAgICAgICAkJC0+c2V0QXJndW1lbnQoJDQpOworICAgICAgICAkJC0+c2V0VmFsdWUoJDIp
OworICAgICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlID0gJCQtPnBzZXVkb1R5cGUo
KTsKKyAgICAgICAgaWYgKHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCisgICAg
ICAgICAgICAkJCA9IDA7CisgICAgfQorICAgIC8vIHVzZWQgYnkgOm50aC0qCisgICAgfCAnOicg
RlVOQ1RJT04gbWF5YmVfc3BhY2UgbWF5YmVfdW5hcnlfb3BlcmF0b3IgSU5URUdFUiBtYXliZV9z
cGFjZSAnKScgeworICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rvcigp
OworICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKKyAgICAg
ICAgJCQtPnNldEFyZ3VtZW50KFN0cmluZzo6bnVtYmVyKCQ0ICogJDUpKTsKKyAgICAgICAgJCQt
PnNldFZhbHVlKCQyKTsKKyAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSA9ICQk
LT5wc2V1ZG9UeXBlKCk7CisgICAgICAgIGlmICh0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9V
bmtub3duKQorICAgICAgICAgICAgJCQgPSAwOworICAgIH0KKyAgICAvLyB1c2VkIGJ5IDpudGgt
KihvZGQvZXZlbikgYW5kIDpsYW5nCisgICAgfCAnOicgRlVOQ1RJT04gbWF5YmVfc3BhY2UgSURF
TlQgbWF5YmVfc3BhY2UgJyknIHsKKyAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5n
U2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
cyk7CisgICAgICAgICQkLT5zZXRBcmd1bWVudCgkNCk7CisgICAgICAgICQyLmxvd2VyKCk7Cisg
ICAgICAgICQkLT5zZXRWYWx1ZSgkMik7CisgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBl
IHR5cGUgPSAkJC0+cHNldWRvVHlwZSgpOworICAgICAgICBpZiAodHlwZSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvVW5rbm93bikKKyAgICAgICAgICAgICQkID0gMDsKKyAgICAgICAgZWxzZSBpZiAo
dHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQgfHwKKyAgICAgICAgICAgICAgICAg
dHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlIHx8CisgICAgICAgICAgICAgICAg
IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZCB8fAorICAgICAgICAgICAg
ICAgICB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlKSB7CisgICAgICAg
ICAgICBpZiAoIWlzVmFsaWROdGhUb2tlbigkNCkpCisgICAgICAgICAgICAgICAgJCQgPSAwOwor
ICAgICAgICB9CisgICAgfQorICAgIC8vIHVzZWQgYnkgOm5vdAorICAgIHwgJzonIE5PVEZVTkNU
SU9OIG1heWJlX3NwYWNlIHNpbXBsZV9zZWxlY3RvciBtYXliZV9zcGFjZSAnKScgeworICAgICAg
ICBpZiAoISQ0IHx8ICEkNC0+aXNTaW1wbGUoKSkKKyAgICAgICAgICAgICQkID0gMDsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rv
cigpOworICAgICAgICAgICAgJCQtPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7
CisKKyAgICAgICAgICAgIENTU1NlbGVjdG9yVmVjdG9yIHNlbGVjdG9yVmVjdG9yOworICAgICAg
ICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKHBhcnNlci0+c2lua0Zsb2F0aW5nU2VsZWN0b3Io
JDQpKTsKKyAgICAgICAgICAgICQkLT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9y
KTsKKworICAgICAgICAgICAgJDIubG93ZXIoKTsKKyAgICAgICAgICAgICQkLT5zZXRWYWx1ZSgk
Mik7CisgICAgICAgIH0KKyAgICB9CisgIDsKKworZGVjbGFyYXRpb25fbGlzdDoKKyAgICBkZWNs
YXJhdGlvbiB7CisgICAgICAgICQkID0gJDE7CisgICAgfQorICAgIHwgZGVjbF9saXN0IGRlY2xh
cmF0aW9uIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICAgICAgaWYgKCAkMiApCisgICAgICAgICAg
ICAkJCA9ICQyOworICAgIH0KKyAgICB8IGRlY2xfbGlzdCB7CisgICAgICAgICQkID0gJDE7Cisg
ICAgfQorICAgIHwgZXJyb3IgaW52YWxpZF9ibG9ja19saXN0IGVycm9yIHsKKyAgICAgICAgJCQg
PSBmYWxzZTsKKyAgICB9CisgICAgfCBlcnJvciB7CisgICAgICAgICQkID0gZmFsc2U7CisgICAg
fQorICAgIHwgZGVjbF9saXN0IGVycm9yIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAg
fCBkZWNsX2xpc3QgaW52YWxpZF9ibG9ja19saXN0IHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9
CisgICAgOworCitkZWNsX2xpc3Q6CisgICAgZGVjbGFyYXRpb24gJzsnIG1heWJlX3NwYWNlIHsK
KyAgICAgICAgcGFyc2VyLT5tYXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICAkJCA9ICQxOwor
ICAgIH0KKyAgICB8IGRlY2xhcmF0aW9uIGludmFsaWRfYmxvY2tfbGlzdCBtYXliZV9zcGFjZSB7
CisgICAgICAgICQkID0gZmFsc2U7CisgICAgfQorICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9i
bG9ja19saXN0ICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgICQkID0gZmFsc2U7CisgICAgfQor
ICAgIHwgZXJyb3IgJzsnIG1heWJlX3NwYWNlIHsKKyAgICAgICAgcGFyc2VyLT5tYXJrUHJvcGVy
dHlTdGFydCgpOworICAgICAgICAkJCA9IGZhbHNlOworICAgIH0KKyAgICB8IGVycm9yIGludmFs
aWRfYmxvY2tfbGlzdCBlcnJvciAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICAkJCA9IGZhbHNl
OworICAgIH0KKyAgICB8IGRlY2xfbGlzdCBkZWNsYXJhdGlvbiAnOycgbWF5YmVfc3BhY2Ugewor
ICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAgICAgICQkID0gJDE7Cisg
ICAgICAgIGlmICgkMikKKyAgICAgICAgICAgICQkID0gJDI7CisgICAgfQorICAgIHwgZGVjbF9s
aXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIHBhcnNlci0+bWFya1Byb3BlcnR5
U3RhcnQoKTsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAgfCBkZWNsX2xpc3QgZXJyb3Ig
aW52YWxpZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIHBhcnNl
ci0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAgOwor
CitkZWNsYXJhdGlvbjoKKyAgICBWQVJfREVGSU5JVElPTiAnOicgbWF5YmVfc3BhY2UgZXhwciBw
cmlvIHsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKKyAgICAgICAgcGFyc2VyLT5zdG9yZVZh
cmlhYmxlRGVjbGFyYXRpb24oJDEsIHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KSwg
JDUpOworICAgICAgICAkJCA9IHRydWU7CisgICAgICAgIHBhcnNlci0+bWFya1Byb3BlcnR5RW5k
KCQ1LCB0cnVlKTsKKyNlbHNlCisgICAgICAgICQkID0gZmFsc2U7CisjZW5kaWYKKyAgICB9Cisg
ICAgfAorICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8geworICAgICAgICAk
JCA9IGZhbHNlOworICAgICAgICBib29sIGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsKKyAgICAg
ICAgaWYgKCQxICYmICQ0KSB7CisgICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gcGFy
c2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQpOworICAgICAgICAgICAgaW50IG9sZFBhcnNl
ZFByb3BlcnRpZXMgPSBwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpOworICAgICAg
ICAgICAgJCQgPSBwYXJzZXItPnBhcnNlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4o
JDEpLCAkNSk7CisgICAgICAgICAgICBpZiAoISQkKQorICAgICAgICAgICAgICAgIHBhcnNlci0+
cm9sbGJhY2tMYXN0UHJvcGVydGllcyhwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgp
IC0gb2xkUGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7CisgICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVM
aXN0ID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0eUVu
ZCgkNSwgaXNQcm9wZXJ0eVBhcnNlZCk7CisgICAgfQorICAgIHwKKyAgICBwcm9wZXJ0eSBlcnJv
ciB7CisgICAgICAgICQkID0gZmFsc2U7CisgICAgfQorICAgIHwKKyAgICBwcm9wZXJ0eSAnOicg
bWF5YmVfc3BhY2UgZXJyb3IgZXhwciBwcmlvIHsKKyAgICAgICAgLyogVGhlIGRlZmF1bHQgbW92
YWJsZSB0eXBlIHRlbXBsYXRlIGhhcyBsZXR0ZXItc3BhY2luZzogLm5vbmU7ICBIYW5kbGUgdGhp
cyBieSBsb29raW5nIGZvcgorICAgICAgICBlcnJvciB0b2tlbnMgYXQgdGhlIHN0YXJ0IG9mIGFu
IGV4cHIsIHJlY292ZXIgdGhlIGV4cHIgYW5kIHRoZW4gdHJlYXQgYXMgYW4gZXJyb3IsIGNsZWFu
aW5nCisgICAgICAgIHVwIGFuZCBkZWxldGluZyB0aGUgc2hpZnRlZCBleHByLiAgKi8KKyAgICAg
ICAgcGFyc2VyLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgJCQgPSBm
YWxzZTsKKyAgICB9CisgICAgfAorICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHBy
aW8gZXJyb3IgeworICAgICAgICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBw
IHtjb2xvcjogcmVkICFpbXBvcnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJh
dGlvbiAqLworICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwor
ICAgICAgICAkJCA9IGZhbHNlOworICAgIH0KKyAgICB8CisgICAgSU1QT1JUQU5UX1NZTSBtYXli
ZV9zcGFjZSB7CisgICAgICAgIC8qIEhhbmRsZSB0aGlzIGNhc2U6IGRpdiB7IHRleHQtYWxpZ246
IGNlbnRlcjsgIWltcG9ydGFudCB9IEp1c3QgcmVkdWNlIGF3YXkgdGhlIHN0cmF5ICFpbXBvcnRh
bnQuICovCisgICAgICAgICQkID0gZmFsc2U7CisgICAgfQorICAgIHwKKyAgICBwcm9wZXJ0eSAn
OicgbWF5YmVfc3BhY2UgeworICAgICAgICAvKiBkaXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJl
ZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8KKyAgICAgICAgcGFyc2Vy
LT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgJCQgPSBmYWxzZTsKKyAg
ICB9CisgICAgfAorICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBlcnJvciB7CisgICAgICAg
IC8qIGlmIHdlIGNvbWUgYWNyb3NzIHJ1bGVzIHdpdGggaW52YWxpZCB2YWx1ZXMgbGlrZSB0aGlz
IGNhc2U6IHAgeyB3ZWlnaHQ6ICo7IH0sIGp1c3QgZGlzY2FyZCB0aGUgcnVsZSAqLworICAgICAg
ICBwYXJzZXItPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOworICAgICAgICAkJCA9IGZh
bHNlOworICAgIH0KKyAgICB8CisgICAgcHJvcGVydHkgaW52YWxpZF9ibG9jayB7CisgICAgICAg
IC8qIGlmIHdlIGNvbWUgYWNyb3NzOiBkaXYgeyBjb2xvcns7Y29sb3I6bWFyb29ufSB9LCBpZ25v
cmUgZXZlcnl0aGluZyB3aXRoaW4gY3VybHkgYnJhY2tldHMgKi8KKyAgICAgICAgJCQgPSBmYWxz
ZTsKKyAgICB9CisgIDsKKworcHJvcGVydHk6CisgICAgSURFTlQgbWF5YmVfc3BhY2UgeworICAg
ICAgICAkJCA9IGNzc1Byb3BlcnR5SUQoJDEpOworICAgIH0KKyAgOworCitwcmlvOgorICAgIElN
UE9SVEFOVF9TWU0gbWF5YmVfc3BhY2UgeyAkJCA9IHRydWU7IH0KKyAgICB8IC8qIGVtcHR5ICov
IHsgJCQgPSBmYWxzZTsgfQorICA7CisKK2V4cHI6CisgICAgdGVybSB7CisgICAgICAgICQkID0g
cGFyc2VyLT5jcmVhdGVGbG9hdGluZ1ZhbHVlTGlzdCgpOworICAgICAgICAkJC0+YWRkVmFsdWUo
cGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZSgkMSkpOworICAgIH0KKyAgICB8IGV4cHIgb3BlcmF0
b3IgdGVybSB7CisgICAgICAgICQkID0gJDE7CisgICAgICAgIGlmICgkJCkgeworICAgICAgICAg
ICAgaWYgKCQyKSB7CisgICAgICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUgdjsKKyAgICAgICAg
ICAgICAgICB2LmlkID0gMDsKKyAgICAgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJzZXJWYWx1
ZTo6T3BlcmF0b3I7CisgICAgICAgICAgICAgICAgdi5pVmFsdWUgPSAkMjsKKyAgICAgICAgICAg
ICAgICAkJC0+YWRkVmFsdWUodik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkJC0+YWRk
VmFsdWUocGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZSgkMykpOworICAgICAgICB9CisgICAgfQor
ICAgIHwgZXhwciBpbnZhbGlkX2Jsb2NrX2xpc3QgeworICAgICAgICAkJCA9IDA7CisgICAgfQor
ICAgIHwgZXhwciBpbnZhbGlkX2Jsb2NrX2xpc3QgZXJyb3IgeworICAgICAgICAkJCA9IDA7Cisg
ICAgfQorICAgIHwgZXhwciBlcnJvciB7CisgICAgICAgICQkID0gMDsKKyAgICB9CisgIDsKKwor
b3BlcmF0b3I6CisgICAgJy8nIG1heWJlX3NwYWNlIHsKKyAgICAgICAgJCQgPSAnLyc7CisgICAg
fQorICB8ICcsJyBtYXliZV9zcGFjZSB7CisgICAgICAgICQkID0gJywnOworICAgIH0KKyAgfCAv
KiBlbXB0eSAqLyB7CisgICAgICAgICQkID0gMDsKKyAgfQorICA7CisKK3Rlcm06CisgIHVuYXJ5
X3Rlcm0geyAkJCA9ICQxOyB9CisgIHwgdW5hcnlfb3BlcmF0b3IgdW5hcnlfdGVybSB7ICQkID0g
JDI7ICQkLmZWYWx1ZSAqPSAkMTsgfQorICB8IFNUUklORyBtYXliZV9zcGFjZSB7ICQkLmlkID0g
MDsgJCQuc3RyaW5nID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklO
RzsgfQorICB8IElERU5UIG1heWJlX3NwYWNlIHsKKyAgICAgICQkLmlkID0gY3NzVmFsdWVLZXl3
b3JkSUQoJDEpOworICAgICAgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ7
CisgICAgICAkJC5zdHJpbmcgPSAkMTsKKyAgfQorICAvKiBXZSBtaWdodCBuZWVkIHRvIGFjdHVh
bGx5IHBhcnNlIHRoZSBudW1iZXIgZnJvbSBhIGRpbWVuc2lvbiwgYnV0IHdlIGNhbid0IGp1c3Qg
cHV0IHNvbWV0aGluZyB0aGF0IHVzZXMgJCQuc3RyaW5nIGludG8gdW5hcnlfdGVybS4gKi8KKyAg
fCBESU1FTiBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gJDE7ICQkLnVuaXQg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RJTUVOU0lPTjsgfQorICB8IHVuYXJ5X29wZXJhdG9y
IERJTUVOIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5zdHJpbmcgPSAkMjsgJCQudW5pdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRElNRU5TSU9OOyB9CisgIHwgVVJJIG1heWJlX3NwYWNl
IHsgJCQuaWQgPSAwOyAkJC5zdHJpbmcgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVVJJOyB9CisgIHwgVU5JQ09ERVJBTkdFIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAk
JC5zdHJpbmcgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVU5JQ09ERV9S
QU5HRTsgfQorICB8IEhFWCBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gJDE7
ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9IRVhDT0xPUjsgfQorICB8
ICcjJyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gQ1NTUGFyc2VyU3RyaW5n
KCk7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9IRVhDT0xPUjsgfSAv
KiBIYW5kbGUgZXJyb3IgY2FzZTogImNvbG9yOiAjOyIgKi8KKyAgfCBWQVJGVU5DVElPTiBtYXli
ZV9zcGFjZSBJREVOVCAnKScgbWF5YmVfc3BhY2UgeworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVT
KQorICAgICAgJCQuaWQgPSAwOworICAgICAgJCQuc3RyaW5nID0gJDM7CisgICAgICAkJC51bml0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19WQVJJQUJMRV9OQU1FOworI2VuZGlmCisgIH0KKyAg
LyogRklYTUU6IGFjY29yZGluZyB0byB0aGUgc3BlY3MgYSBmdW5jdGlvbiBjYW4gaGF2ZSBhIHVu
YXJ5X29wZXJhdG9yIGluIGZyb250LiBJIGtub3cgbm8gY2FzZSB3aGVyZSB0aGlzIG1ha2VzIHNl
bnNlICovCisgIHwgZnVuY3Rpb24geworICAgICAgJCQgPSAkMTsKKyAgfQorICB8IGNhbGNfZnVu
Y3Rpb24geworICAgICAgJCQgPSAkMTsKKyAgfQorICB8IG1pbl9vcl9tYXhfZnVuY3Rpb24gewor
ICAgICAgJCQgPSAkMTsKKyAgfQorICB8ICclJyBtYXliZV9zcGFjZSB7IC8qIEhhbmRsZSB3aWR0
aDogJTsgKi8KKyAgICAgICQkLmlkID0gMDsgJCQudW5pdCA9IDA7CisgIH0KKyAgOworCit1bmFy
eV90ZXJtOgorICBJTlRFR0VSIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5pc0ludCA9IHRy
dWU7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1C
RVI7IH0KKyAgfCBGTE9BVFRPS0VOIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5pc0ludCA9
IGZhbHNlOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSOyB9CisgIHwgUEVSQ0VOVEFHRSBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZh
bHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0U7IH0K
KyAgfCBQWFMgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWDsgfQorICB8IENNUyBtYXliZV9zcGFjZSB7ICQk
LmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0NNOyB9CisgIHwgTU1TIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsg
JCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTU07IH0KKyAgfCBJTlMgbWF5YmVfc3Bh
Y2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19JTjsgfQorICB8IFBUUyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZhbHVl
ID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BUOyB9CisgIHwgUENTIG1h
eWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEM7IH0KKyAgfCBERUdTIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAk
JC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREVHOyB9Cisg
IHwgUkFEUyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JBRDsgfQorICB8IEdSQURTIG1heWJlX3NwYWNlIHsg
JCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfR1JBRDsgfQorICB8IFRVUk5TIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUg
PSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTjsgfQorICB8IE1TRUNT
IG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfTVM7IH0KKyAgfCBTRUNTIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAw
OyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUzsgfQor
ICB8IEhFUlRaIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5p
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSFo7IH0KKyAgfCBLSEVSVFogbWF5YmVfc3BhY2Ug
eyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19LSFo7IH0KKyAgfCBFTVMgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9
ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVM7IH0KKyAgfCBRRU1TIG1h
eWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1BhcnNl
clZhbHVlOjpRX0VNUzsgfQorICB8IEVYUyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZh
bHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VYUzsgfQorICB8IFJF
TVMgbWF5YmVfc3BhY2UgeworICAgICAgJCQuaWQgPSAwOworICAgICAgJCQuZlZhbHVlID0gJDE7
CisgICAgICAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SRU1TOworICAgICAgaWYg
KHBhcnNlci0+bV9zdHlsZVNoZWV0KQorICAgICAgICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5w
YXJzZXJTZXRVc2VzUmVtVW5pdHModHJ1ZSk7CisgIH0KKyAgfCBWVyBtYXliZV9zcGFjZSB7ICQk
LmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1ZXOyB9CisgIHwgVkggbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAk
JC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19WSDsgfQorICB8IFZNSU4gbWF5YmVfc3Bh
Y2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19WTUlOOyB9CisgIHwgRFBQWCBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZh
bHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFg7IH0KKyAgfCBE
UEkgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19EUEk7IH0KKyAgfCBEUENNIG1heWJlX3NwYWNlIHsgJCQuaWQg
PSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBD
TTsgfQorICA7CisKK2Z1bmN0aW9uOgorICAgIEZVTkNUSU9OIG1heWJlX3NwYWNlIGV4cHIgJykn
IG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyRnVuY3Rpb24qIGYgPSBwYXJzZXItPmNy
ZWF0ZUZsb2F0aW5nRnVuY3Rpb24oKTsKKyAgICAgICAgZi0+bmFtZSA9ICQxOworICAgICAgICBm
LT5hcmdzID0gcGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDMpOworICAgICAgICAkJC5p
ZCA9IDA7CisgICAgICAgICQkLnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb247CisgICAg
ICAgICQkLmZ1bmN0aW9uID0gZjsKKyAgICB9IHwKKyAgICBGVU5DVElPTiBtYXliZV9zcGFjZSBl
eHByIFRPS0VOX0VPRiB7CisgICAgICAgIENTU1BhcnNlckZ1bmN0aW9uKiBmID0gcGFyc2VyLT5j
cmVhdGVGbG9hdGluZ0Z1bmN0aW9uKCk7CisgICAgICAgIGYtPm5hbWUgPSAkMTsKKyAgICAgICAg
Zi0+YXJncyA9IHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQzKTsKKyAgICAgICAgJCQu
aWQgPSAwOworICAgICAgICAkJC51bml0ID0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uOworICAg
ICAgICAkJC5mdW5jdGlvbiA9IGY7CisgICAgfSB8CisgICAgRlVOQ1RJT04gbWF5YmVfc3BhY2Ug
JyknIG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyRnVuY3Rpb24qIGYgPSBwYXJzZXIt
PmNyZWF0ZUZsb2F0aW5nRnVuY3Rpb24oKTsKKyAgICAgICAgZi0+bmFtZSA9ICQxOworICAgICAg
ICBDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdW
YWx1ZUxpc3QoKTsKKyAgICAgICAgZi0+YXJncyA9IHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWVM
aXN0KHZhbHVlTGlzdCk7CisgICAgICAgICQkLmlkID0gMDsKKyAgICAgICAgJCQudW5pdCA9IENT
U1BhcnNlclZhbHVlOjpGdW5jdGlvbjsKKyAgICAgICAgJCQuZnVuY3Rpb24gPSBmOworICAgIH0g
fAorICAgIEZVTkNUSU9OIG1heWJlX3NwYWNlIGVycm9yIHsKKyAgICAgICAgQ1NTUGFyc2VyRnVu
Y3Rpb24qIGYgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nRnVuY3Rpb24oKTsKKyAgICAgICAgZi0+
bmFtZSA9ICQxOworICAgICAgICBmLT5hcmdzID0gbnVsbHB0cjsKKyAgICAgICAgJCQuaWQgPSAw
OworICAgICAgICAkJC51bml0ID0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uOworICAgICAgICAk
JC5mdW5jdGlvbiA9IGY7CisgIH0KKyAgOworIAorY2FsY19mdW5jX3Rlcm06CisgIHVuYXJ5X3Rl
cm0geyAkJCA9ICQxOyB9CisgIHwgVkFSRlVOQ1RJT04gbWF5YmVfc3BhY2UgSURFTlQgJyknIG1h
eWJlX3NwYWNlIHsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKKyAgICAgICQkLmlkID0gMDsK
KyAgICAgICQkLnN0cmluZyA9ICQzOworICAgICAgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVkFSSUFCTEVfTkFNRTsKKyNlbmRpZgorICB9CisgIHwgdW5hcnlfb3BlcmF0b3IgdW5h
cnlfdGVybSB7ICQkID0gJDI7ICQkLmZWYWx1ZSAqPSAkMTsgfQorICA7CisKK2NhbGNfZnVuY19v
cGVyYXRvcjoKKyAgICAnKycgV0hJVEVTUEFDRSB7CisgICAgICAgICQkID0gJysnOworICAgIH0K
KyAgICB8ICctJyBXSElURVNQQUNFIHsKKyAgICAgICAgJCQgPSAnLSc7CisgICAgfQorICAgIHwg
JyonIG1heWJlX3NwYWNlIHsKKyAgICAgICAgJCQgPSAnKic7CisgICAgfQorICAgIHwgJy8nIG1h
eWJlX3NwYWNlIHsKKyAgICAgICAgJCQgPSAnLyc7CisgICAgfQorICA7CisKK2NhbGNfZnVuY19w
YXJlbl9leHByOgorICAgICcoJyBtYXliZV9zcGFjZSBjYWxjX2Z1bmNfZXhwciBtYXliZV9zcGFj
ZSAnKScgbWF5YmVfc3BhY2UgeworICAgICAgICBpZiAoJDMpIHsKKyAgICAgICAgICAgICQkID0g
JDM7CisgICAgICAgICAgICBDU1NQYXJzZXJWYWx1ZSB2OworICAgICAgICAgICAgdi5pZCA9IDA7
CisgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3I7CisgICAgICAg
ICAgICB2LmlWYWx1ZSA9ICcoJzsKKyAgICAgICAgICAgICQkLT5pbnNlcnRWYWx1ZUF0KDAsIHYp
OworICAgICAgICAgICAgdi5pVmFsdWUgPSAnKSc7CisgICAgICAgICAgICAkJC0+YWRkVmFsdWUo
dik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgJCQgPSAwOworICAgIH0KKworY2FsY19m
dW5jX2V4cHI6CisgICAgY2FsY19mdW5jX3Rlcm0gbWF5YmVfc3BhY2UgeworICAgICAgICAkJCA9
IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdWYWx1ZUxpc3QoKTsKKyAgICAgICAgJCQtPmFkZFZhbHVl
KHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWUoJDEpKTsKKyAgICB9CisgICAgfCBjYWxjX2Z1bmNf
ZXhwciBjYWxjX2Z1bmNfb3BlcmF0b3IgY2FsY19mdW5jX3Rlcm0geworICAgICAgICBpZiAoJDEg
JiYgJDIpIHsKKyAgICAgICAgICAgICQkID0gJDE7CisgICAgICAgICAgICBDU1NQYXJzZXJWYWx1
ZSB2OworICAgICAgICAgICAgdi5pZCA9IDA7CisgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJz
ZXJWYWx1ZTo6T3BlcmF0b3I7CisgICAgICAgICAgICB2LmlWYWx1ZSA9ICQyOworICAgICAgICAg
ICAgJCQtPmFkZFZhbHVlKHYpOworICAgICAgICAgICAgJCQtPmFkZFZhbHVlKHBhcnNlci0+c2lu
a0Zsb2F0aW5nVmFsdWUoJDMpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAkJCA9IDA7
CisKKyAgICB9CisgICAgfCBjYWxjX2Z1bmNfZXhwciBjYWxjX2Z1bmNfb3BlcmF0b3IgY2FsY19m
dW5jX3BhcmVuX2V4cHIgeworICAgICAgICBpZiAoJDEgJiYgJDIgJiYgJDMpIHsKKyAgICAgICAg
ICAgICQkID0gJDE7CisgICAgICAgICAgICBDU1NQYXJzZXJWYWx1ZSB2OworICAgICAgICAgICAg
di5pZCA9IDA7CisgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3I7
CisgICAgICAgICAgICB2LmlWYWx1ZSA9ICQyOworICAgICAgICAgICAgJCQtPmFkZFZhbHVlKHYp
OworICAgICAgICAgICAgJCQtPmV4dGVuZCgqKCQzKSk7CisgICAgICAgIH0gZWxzZSAKKyAgICAg
ICAgICAgICQkID0gMDsKKyAgICB9CisgICAgfCBjYWxjX2Z1bmNfcGFyZW5fZXhwcgorICAgIHwg
Y2FsY19mdW5jX2V4cHIgZXJyb3IgeworICAgICAgICAkJCA9IDA7CisgICAgfQorICA7CisKK2Nh
bGNfZnVuY19leHByX2xpc3Q6CisgICAgY2FsY19mdW5jX2V4cHIgIHsKKyAgICAgICAgJCQgPSAk
MTsKKyAgICB9ICAgIAorICAgIHwgY2FsY19mdW5jX2V4cHJfbGlzdCAnLCcgbWF5YmVfc3BhY2Ug
Y2FsY19mdW5jX2V4cHIgeworICAgICAgICBpZiAoJDEgJiYgJDQpIHsKKyAgICAgICAgICAgICQk
ID0gJDE7CisgICAgICAgICAgICBDU1NQYXJzZXJWYWx1ZSB2OworICAgICAgICAgICAgdi5pZCA9
IDA7CisgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3I7CisgICAg
ICAgICAgICB2LmlWYWx1ZSA9ICcsJzsKKyAgICAgICAgICAgICQkLT5hZGRWYWx1ZSh2KTsKKyAg
ICAgICAgICAgICQkLT5leHRlbmQoKigkNCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICQkID0gMDsKKyAgICB9CisgICAgCisKK2NhbGNfZnVuY3Rpb246CisgICAgQ0FMQ0ZVTkNUSU9O
IG1heWJlX3NwYWNlIGNhbGNfZnVuY19leHByICcpJyBtYXliZV9zcGFjZSB7CisgICAgICAgIENT
U1BhcnNlckZ1bmN0aW9uKiBmID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ0Z1bmN0aW9uKCk7Cisg
ICAgICAgIGYtPm5hbWUgPSAkMTsKKyAgICAgICAgZi0+YXJncyA9IHBhcnNlci0+c2lua0Zsb2F0
aW5nVmFsdWVMaXN0KCQzKTsKKyAgICAgICAgJCQuaWQgPSAwOworICAgICAgICAkJC51bml0ID0g
Q1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uOworICAgICAgICAkJC5mdW5jdGlvbiA9IGY7CisgICAg
fQorICAgIHwgQ0FMQ0ZVTkNUSU9OIG1heWJlX3NwYWNlIGVycm9yIHsKKyAgICAgICAgWVlFUlJP
UjsKKyAgICB9CisgICAgOworCisKK21pbl9vcl9tYXg6CisgICAgTUlORlVOQ1RJT04geworICAg
ICAgICAkJCA9ICQxOworICAgIH0KKyAgICB8IE1BWEZVTkNUSU9OIHsKKyAgICAgICAgJCQgPSAk
MTsKKyAgICB9CisgICAgOworCittaW5fb3JfbWF4X2Z1bmN0aW9uOgorICAgIG1pbl9vcl9tYXgg
bWF5YmVfc3BhY2UgY2FsY19mdW5jX2V4cHJfbGlzdCAnKScgbWF5YmVfc3BhY2UgeworICAgICAg
ICBDU1NQYXJzZXJGdW5jdGlvbiogZiA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdGdW5jdGlvbigp
OworICAgICAgICBmLT5uYW1lID0gJDE7CisgICAgICAgIGYtPmFyZ3MgPSBwYXJzZXItPnNpbmtG
bG9hdGluZ1ZhbHVlTGlzdCgkMyk7CisgICAgICAgICQkLmlkID0gMDsKKyAgICAgICAgJCQudW5p
dCA9IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbjsKKyAgICAgICAgJCQuZnVuY3Rpb24gPSBmOwor
ICAgIH0gCisgICAgfCBtaW5fb3JfbWF4IG1heWJlX3NwYWNlIGVycm9yIHsKKyAgICAgICAgWVlF
UlJPUjsKKyAgICB9CisgICAgOworCisvKiBlcnJvciBoYW5kbGluZyBydWxlcyAqLworCitzYXZl
X2Jsb2NrOgorICAgIGNsb3NpbmdfYnJhY2UgeworICAgICAgICAkJCA9IDA7CisgICAgfQorICB8
IGVycm9yIGNsb3NpbmdfYnJhY2UgeworICAgICAgICAkJCA9IDA7CisgICAgfQorICAgIDsKKwor
aW52YWxpZF9hdDoKKyAgICBBVEtFWVdPUkQgZXJyb3IgaW52YWxpZF9ibG9jayB7CisgICAgICAg
ICQkID0gMDsKKyAgICB9CisgIHwgQVRLRVlXT1JEIGVycm9yICc7JyB7CisgICAgICAgICQkID0g
MDsKKyAgICB9CisgICAgOworCitpbnZhbGlkX3J1bGU6CisgICAgZXJyb3IgaW52YWxpZF9ibG9j
ayB7CisgICAgICAgICQkID0gMDsKKyAgICB9CisKKy8qCisgIFNlZW1zIGxpa2UgdGhlIHR3byBy
dWxlcyBiZWxvdyBhcmUgdHJ5aW5nIHRvbyBtdWNoIGFuZCB2aW9sYXRpbmcKKyAgaHR0cDovL3d3
dy5oaXhpZS5jaC90ZXN0cy9ldmlsL21peGVkL2Nzc2Vycm9yaGFuZGxpbmcuaHRtbAorCisgIHwg
ZXJyb3IgJzsnIHsKKyAgICAgICAgJCQgPSAwOworICAgIH0KKyAgfCBlcnJvciAnfScgeworICAg
ICAgICAkJCA9IDA7CisgICAgfQorKi8KKyAgICA7CisKK2ludmFsaWRfYmxvY2s6CisgICAgJ3sn
IGVycm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciBjbG9zaW5nX2JyYWNlIHsKKyAgICAgICAg
cGFyc2VyLT5pbnZhbGlkQmxvY2tIaXQoKTsKKyAgICB9CisgIHwgJ3snIGVycm9yIGNsb3Npbmdf
YnJhY2UgeworICAgICAgICBwYXJzZXItPmludmFsaWRCbG9ja0hpdCgpOworICAgIH0KKyAgICA7
CisKK2ludmFsaWRfYmxvY2tfbGlzdDoKKyAgICBpbnZhbGlkX2Jsb2NrCisgIHwgaW52YWxpZF9i
bG9ja19saXN0IGVycm9yIGludmFsaWRfYmxvY2sKKzsKKworJSUKKworI2lmIFlZREVCVUcgPiAw
CitzdGF0aWMgdm9pZCBwcmludF90b2tlbl92YWx1ZShGSUxFICogeXlvdXRwdXQsIGludCB5eXR5
cGUsIFlZU1RZUEUgY29uc3QgJnl5dmFsdWUpCit7CisgICAgc3dpdGNoICh5eXR5cGUpIHsKKyAg
ICBjYXNlIElERU5UOgorICAgIGNhc2UgU1RSSU5HOgorICAgIGNhc2UgTlRIOgorICAgIGNhc2Ug
SEVYOgorICAgIGNhc2UgSURTRUw6CisgICAgY2FzZSBESU1FTjoKKyAgICBjYXNlIElOVkFMSURE
SU1FTjoKKyAgICBjYXNlIFVSSToKKyAgICBjYXNlIEZVTkNUSU9OOgorICAgIGNhc2UgQU5ZRlVO
Q1RJT046CisgICAgY2FzZSBOT1RGVU5DVElPTjoKKyAgICBjYXNlIENBTENGVU5DVElPTjoKKyAg
ICBjYXNlIE1JTkZVTkNUSU9OOgorICAgIGNhc2UgTUFYRlVOQ1RJT046CisgICAgY2FzZSBWQVJf
REVGSU5JVElPTjoKKyAgICBjYXNlIFVOSUNPREVSQU5HRToKKyAgICAgICAgWVlGUFJJTlRGKHl5
b3V0cHV0LCAiJXMiLCBTdHJpbmcoeXl2YWx1ZS5zdHJpbmcpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZTJkYmYyZjQ4MjY1ZjJmNWI2NzJmNDJhOTkxMDM4MTdjYWRiN2YzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwxNjk3ICswLDAgQEAKLS8qCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDAyLTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAq
Ci0gKi8KLQotJXB1cmVfcGFyc2VyCi0KLSVwYXJzZS1wYXJhbSB7IENTU1BhcnNlciogcGFyc2Vy
IH0KLSVsZXgtcGFyYW0geyBDU1NQYXJzZXIqIHBhcnNlciB9Ci0KLSV1bmlvbiB7Ci0gICAgYm9v
bCBib29sZWFuOwotICAgIGNoYXIgY2hhcmFjdGVyOwotICAgIGludCBpbnRlZ2VyOwotICAgIGRv
dWJsZSBudW1iZXI7Ci0gICAgQ1NTUGFyc2VyU3RyaW5nIHN0cmluZzsKLQotICAgIFN0eWxlUnVs
ZUJhc2UqIHJ1bGU7Ci0gICAgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+KiBydWxlTGlz
dDsKLSAgICBDU1NQYXJzZXJTZWxlY3Rvciogc2VsZWN0b3I7Ci0gICAgQ1NTU2VsZWN0b3JWZWN0
b3IqIHNlbGVjdG9yTGlzdDsKLSAgICBDU1NTZWxlY3Rvcjo6TWFyZ2luQm94VHlwZSBtYXJnaW5C
b3g7Ci0gICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwotICAgIE1lZGlhUXVlcnlT
ZXQqIG1lZGlhTGlzdDsKLSAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwotICAgIE1lZGlhUXVl
cnk6OlJlc3RyaWN0b3IgbWVkaWFRdWVyeVJlc3RyaWN0b3I7Ci0gICAgTWVkaWFRdWVyeUV4cCog
bWVkaWFRdWVyeUV4cDsKLSAgICBDU1NQYXJzZXJWYWx1ZSB2YWx1ZTsKLSAgICBDU1NQYXJzZXJW
YWx1ZUxpc3QqIHZhbHVlTGlzdDsKLSAgICBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnlFeHA+ID4q
IG1lZGlhUXVlcnlFeHBMaXN0OwotICAgIFN0eWxlS2V5ZnJhbWUqIGtleWZyYW1lOwotICAgIFZl
Y3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPioga2V5ZnJhbWVSdWxlTGlzdDsKLSAgICBmbG9h
dCB2YWw7Ci0gICAgQ1NTUHJvcGVydHlJRCBpZDsKLX0KLQotJXsKLQotc3RhdGljIGlubGluZSBp
bnQgY3NzeXllcnJvcih2b2lkKiwgY29uc3QgY2hhciopCi17Ci0gICAgcmV0dXJuIDE7Ci19Ci0K
LSV9Ci0KLSVleHBlY3QgNjMKLQotJW5vbmFzc29jIExPV0VTVF9QUkVDCi0KLSVsZWZ0IFVOSU1Q
T1JUQU5UX1RPSwotCi0ldG9rZW4gV0hJVEVTUEFDRSBTR01MX0NECi0ldG9rZW4gVE9LRU5fRU9G
IDAKLQotJXRva2VuIElOQ0xVREVTCi0ldG9rZW4gREFTSE1BVENICi0ldG9rZW4gQkVHSU5TV0lU
SAotJXRva2VuIEVORFNXSVRICi0ldG9rZW4gQ09OVEFJTlMKLQotJXRva2VuIDxzdHJpbmc+IFNU
UklORwotJXJpZ2h0IDxzdHJpbmc+IElERU5UCi0ldG9rZW4gPHN0cmluZz4gTlRICi0KLSVub25h
c3NvYyA8c3RyaW5nPiBIRVgKLSVub25hc3NvYyA8c3RyaW5nPiBJRFNFTAotJW5vbmFzc29jICc6
JwotJW5vbmFzc29jICcuJwotJW5vbmFzc29jICdbJwotJW5vbmFzc29jIDxzdHJpbmc+ICcqJwot
JW5vbmFzc29jIGVycm9yCi0lbGVmdCAnfCcKLQotJXRva2VuIElNUE9SVF9TWU0KLSV0b2tlbiBQ
QUdFX1NZTQotJXRva2VuIE1FRElBX1NZTQotJXRva2VuIEZPTlRfRkFDRV9TWU0KLSV0b2tlbiBD
SEFSU0VUX1NZTQotJXRva2VuIE5BTUVTUEFDRV9TWU0KLSV0b2tlbiBWQVJGVU5DVElPTgotJXRv
a2VuIFdFQktJVF9SVUxFX1NZTQotJXRva2VuIFdFQktJVF9ERUNMU19TWU0KLSV0b2tlbiBXRUJL
SVRfS0VZRlJBTUVfUlVMRV9TWU0KLSV0b2tlbiBXRUJLSVRfS0VZRlJBTUVTX1NZTQotJXRva2Vu
IFdFQktJVF9WQUxVRV9TWU0KLSV0b2tlbiBXRUJLSVRfTUVESUFRVUVSWV9TWU0KLSV0b2tlbiBX
RUJLSVRfU0VMRUNUT1JfU1lNCi0ldG9rZW4gV0VCS0lUX1JFR0lPTl9SVUxFX1NZTQotJXRva2Vu
IDxtYXJnaW5Cb3g+IFRPUExFRlRDT1JORVJfU1lNCi0ldG9rZW4gPG1hcmdpbkJveD4gVE9QTEVG
VF9TWU0KLSV0b2tlbiA8bWFyZ2luQm94PiBUT1BDRU5URVJfU1lNCi0ldG9rZW4gPG1hcmdpbkJv
eD4gVE9QUklHSFRfU1lNCi0ldG9rZW4gPG1hcmdpbkJveD4gVE9QUklHSFRDT1JORVJfU1lNCi0l
dG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVENPUk5FUl9TWU0KLSV0b2tlbiA8bWFyZ2luQm94
PiBCT1RUT01MRUZUX1NZTQotJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUNFTlRFUl9TWU0KLSV0
b2tlbiA8bWFyZ2luQm94PiBCT1RUT01SSUdIVF9TWU0KLSV0b2tlbiA8bWFyZ2luQm94PiBCT1RU
T01SSUdIVENPUk5FUl9TWU0KLSV0b2tlbiA8bWFyZ2luQm94PiBMRUZUVE9QX1NZTQotJXRva2Vu
IDxtYXJnaW5Cb3g+IExFRlRNSURETEVfU1lNCi0ldG9rZW4gPG1hcmdpbkJveD4gTEVGVEJPVFRP
TV9TWU0KLSV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVFRPUF9TWU0KLSV0b2tlbiA8bWFyZ2luQm94
PiBSSUdIVE1JRERMRV9TWU0KLSV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0KLQot
JXRva2VuIEFUS0VZV09SRAotCi0ldG9rZW4gSU1QT1JUQU5UX1NZTQotJXRva2VuIE1FRElBX09O
TFkKLSV0b2tlbiBNRURJQV9OT1QKLSV0b2tlbiBNRURJQV9BTkQKLQotJXRva2VuIDxudW1iZXI+
IFJFTVMKLSV0b2tlbiA8bnVtYmVyPiBRRU1TCi0ldG9rZW4gPG51bWJlcj4gRU1TCi0ldG9rZW4g
PG51bWJlcj4gRVhTCi0ldG9rZW4gPG51bWJlcj4gUFhTCi0ldG9rZW4gPG51bWJlcj4gQ01TCi0l
dG9rZW4gPG51bWJlcj4gTU1TCi0ldG9rZW4gPG51bWJlcj4gSU5TCi0ldG9rZW4gPG51bWJlcj4g
UFRTCi0ldG9rZW4gPG51bWJlcj4gUENTCi0ldG9rZW4gPG51bWJlcj4gREVHUwotJXRva2VuIDxu
dW1iZXI+IFJBRFMKLSV0b2tlbiA8bnVtYmVyPiBHUkFEUwotJXRva2VuIDxudW1iZXI+IFRVUk5T
Ci0ldG9rZW4gPG51bWJlcj4gTVNFQ1MKLSV0b2tlbiA8bnVtYmVyPiBTRUNTCi0ldG9rZW4gPG51
bWJlcj4gSEVSVFoKLSV0b2tlbiA8bnVtYmVyPiBLSEVSVFoKLSV0b2tlbiA8c3RyaW5nPiBESU1F
TgotJXRva2VuIDxzdHJpbmc+IElOVkFMSURESU1FTgotJXRva2VuIDxudW1iZXI+IFBFUkNFTlRB
R0UKLSV0b2tlbiA8bnVtYmVyPiBGTE9BVFRPS0VOCi0ldG9rZW4gPG51bWJlcj4gSU5URUdFUgot
JXRva2VuIDxudW1iZXI+IFZXCi0ldG9rZW4gPG51bWJlcj4gVkgKLSV0b2tlbiA8bnVtYmVyPiBW
TUlOCi0ldG9rZW4gPG51bWJlcj4gRFBQWAotJXRva2VuIDxudW1iZXI+IERQSQotJXRva2VuIDxu
dW1iZXI+IERQQ00KLQotJXRva2VuIDxzdHJpbmc+IFVSSQotJXRva2VuIDxzdHJpbmc+IEZVTkNU
SU9OCi0ldG9rZW4gPHN0cmluZz4gQU5ZRlVOQ1RJT04KLSV0b2tlbiA8c3RyaW5nPiBOT1RGVU5D
VElPTgotJXRva2VuIDxzdHJpbmc+IENBTENGVU5DVElPTgotJXRva2VuIDxzdHJpbmc+IE1JTkZV
TkNUSU9OCi0ldG9rZW4gPHN0cmluZz4gTUFYRlVOQ1RJT04KLSV0b2tlbiA8c3RyaW5nPiBWQVJf
REVGSU5JVElPTgotCi0ldG9rZW4gPHN0cmluZz4gVU5JQ09ERVJBTkdFCi0KLSV0eXBlIDxyZWxh
dGlvbj4gY29tYmluYXRvcgotCi0ldHlwZSA8cnVsZT4gY2hhcnNldAotJXR5cGUgPHJ1bGU+IGln
bm9yZWRfY2hhcnNldAotJXR5cGUgPHJ1bGU+IHJ1bGVzZXQKLSV0eXBlIDxydWxlPiBtZWRpYQot
JXR5cGUgPHJ1bGU+IGltcG9ydAotJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQotJXR5cGUgPHJ1bGU+
IHBhZ2UKLSV0eXBlIDxydWxlPiBtYXJnaW5fYm94Ci0ldHlwZSA8cnVsZT4gZm9udF9mYWNlCi0l
dHlwZSA8cnVsZT4ga2V5ZnJhbWVzCi0ldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCi0ldHlwZSA8
cnVsZT4gc2F2ZV9ibG9jawotJXR5cGUgPHJ1bGU+IGludmFsaWRfYXQKLSV0eXBlIDxydWxlPiBy
dWxlCi0ldHlwZSA8cnVsZT4gdmFsaWRfcnVsZQotJXR5cGUgPHJ1bGVMaXN0PiBibG9ja19ydWxl
X2xpc3QgCi0ldHlwZSA8cnVsZT4gYmxvY2tfcnVsZQotJXR5cGUgPHJ1bGU+IGJsb2NrX3ZhbGlk
X3J1bGUKLSV0eXBlIDxydWxlPiByZWdpb24KLQotJXR5cGUgPHN0cmluZz4gbWF5YmVfbnNfcHJl
Zml4Ci0KLSV0eXBlIDxzdHJpbmc+IG5hbWVzcGFjZV9zZWxlY3RvcgotCi0ldHlwZSA8c3RyaW5n
PiBzdHJpbmdfb3JfdXJpCi0ldHlwZSA8c3RyaW5nPiBpZGVudF9vcl9zdHJpbmcKLSV0eXBlIDxz
dHJpbmc+IG1lZGl1bQotJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQotCi0ldHlwZSA8c3Ry
aW5nPiBtZWRpYV9mZWF0dXJlCi0ldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0Ci0ldHlwZSA8
bWVkaWFMaXN0PiBtYXliZV9tZWRpYV9saXN0Ci0ldHlwZSA8bWVkaWFRdWVyeT4gbWVkaWFfcXVl
cnkKLSV0eXBlIDxtZWRpYVF1ZXJ5UmVzdHJpY3Rvcj4gbWF5YmVfbWVkaWFfcmVzdHJpY3Rvcgot
JXR5cGUgPHZhbHVlTGlzdD4gbWF5YmVfbWVkaWFfdmFsdWUKLSV0eXBlIDxtZWRpYVF1ZXJ5RXhw
PiBtZWRpYV9xdWVyeV9leHAKLSV0eXBlIDxtZWRpYVF1ZXJ5RXhwTGlzdD4gbWVkaWFfcXVlcnlf
ZXhwX2xpc3QKLSV0eXBlIDxtZWRpYVF1ZXJ5RXhwTGlzdD4gbWF5YmVfYW5kX21lZGlhX3F1ZXJ5
X2V4cF9saXN0Ci0KLSV0eXBlIDxzdHJpbmc+IGtleWZyYW1lX25hbWUKLSV0eXBlIDxrZXlmcmFt
ZT4ga2V5ZnJhbWVfcnVsZQotJXR5cGUgPGtleWZyYW1lUnVsZUxpc3Q+IGtleWZyYW1lc19ydWxl
Ci0ldHlwZSA8dmFsdWVMaXN0PiBrZXlfbGlzdAotJXR5cGUgPHZhbHVlPiBrZXkKLQotJXR5cGUg
PGlkPiBwcm9wZXJ0eQotCi0ldHlwZSA8c2VsZWN0b3I+IHNwZWNpZmllcgotJXR5cGUgPHNlbGVj
dG9yPiBzcGVjaWZpZXJfbGlzdAotJXR5cGUgPHNlbGVjdG9yPiBzaW1wbGVfc2VsZWN0b3IKLSV0
eXBlIDxzZWxlY3Rvcj4gc2VsZWN0b3IKLSV0eXBlIDxzZWxlY3Rvckxpc3Q+IHNlbGVjdG9yX2xp
c3QKLSV0eXBlIDxzZWxlY3Rvckxpc3Q+IHNpbXBsZV9zZWxlY3Rvcl9saXN0Ci0ldHlwZSA8c2Vs
ZWN0b3JMaXN0PiByZWdpb25fc2VsZWN0b3IKLSV0eXBlIDxzZWxlY3Rvcj4gc2VsZWN0b3Jfd2l0
aF90cmFpbGluZ193aGl0ZXNwYWNlCi0ldHlwZSA8c2VsZWN0b3I+IGNsYXNzCi0ldHlwZSA8c2Vs
ZWN0b3I+IGF0dHJpYgotJXR5cGUgPHNlbGVjdG9yPiBwc2V1ZG8KLSV0eXBlIDxzZWxlY3Rvcj4g
cHNldWRvX3BhZ2UKLSV0eXBlIDxzZWxlY3Rvcj4gcGFnZV9zZWxlY3RvcgotCi0ldHlwZSA8Ym9v
bGVhbj4gZGVjbGFyYXRpb25fbGlzdAotJXR5cGUgPGJvb2xlYW4+IGRlY2xfbGlzdAotJXR5cGUg
PGJvb2xlYW4+IGRlY2xhcmF0aW9uCi0ldHlwZSA8Ym9vbGVhbj4gZGVjbGFyYXRpb25zX2FuZF9t
YXJnaW5zCi0KLSV0eXBlIDxib29sZWFuPiBwcmlvCi0KLSV0eXBlIDxpbnRlZ2VyPiBtYXRjaAot
JXR5cGUgPGludGVnZXI+IHVuYXJ5X29wZXJhdG9yCi0ldHlwZSA8aW50ZWdlcj4gbWF5YmVfdW5h
cnlfb3BlcmF0b3IKLSV0eXBlIDxjaGFyYWN0ZXI+IG9wZXJhdG9yCi0KLSV0eXBlIDx2YWx1ZUxp
c3Q+IGV4cHIKLSV0eXBlIDx2YWx1ZT4gdGVybQotJXR5cGUgPHZhbHVlPiB1bmFyeV90ZXJtCi0l
dHlwZSA8dmFsdWU+IGZ1bmN0aW9uCi0ldHlwZSA8dmFsdWU+IGNhbGNfZnVuY190ZXJtCi0ldHlw
ZSA8Y2hhcmFjdGVyPiBjYWxjX2Z1bmNfb3BlcmF0b3IKLSV0eXBlIDx2YWx1ZUxpc3Q+IGNhbGNf
ZnVuY19leHByCi0ldHlwZSA8dmFsdWVMaXN0PiBjYWxjX2Z1bmNfZXhwcl9saXN0Ci0ldHlwZSA8
dmFsdWVMaXN0PiBjYWxjX2Z1bmNfcGFyZW5fZXhwcgotJXR5cGUgPHZhbHVlPiBjYWxjX2Z1bmN0
aW9uCi0ldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4Ci0ldHlwZSA8dmFsdWU+IG1pbl9vcl9tYXhf
ZnVuY3Rpb24KLQotJXR5cGUgPHN0cmluZz4gZWxlbWVudF9uYW1lCi0ldHlwZSA8c3RyaW5nPiBh
dHRyX25hbWUKLQotJSUKLQotc3R5bGVzaGVldDoKLSAgICBtYXliZV9zcGFjZSBtYXliZV9jaGFy
c2V0IG1heWJlX3NnbWwgcnVsZV9saXN0Ci0gIHwgd2Via2l0X3J1bGUgbWF5YmVfc3BhY2UKLSAg
fCB3ZWJraXRfZGVjbHMgbWF5YmVfc3BhY2UKLSAgfCB3ZWJraXRfdmFsdWUgbWF5YmVfc3BhY2UK
LSAgfCB3ZWJraXRfbWVkaWFxdWVyeSBtYXliZV9zcGFjZQotICB8IHdlYmtpdF9zZWxlY3RvciBt
YXliZV9zcGFjZQotICB8IHdlYmtpdF9rZXlmcmFtZV9ydWxlIG1heWJlX3NwYWNlCi0gIDsKLQot
d2Via2l0X3J1bGU6Ci0gICAgV0VCS0lUX1JVTEVfU1lNICd7JyBtYXliZV9zcGFjZSB2YWxpZF9y
dWxlIG1heWJlX3NwYWNlICd9JyB7Ci0gICAgICAgIHBhcnNlci0+bV9ydWxlID0gJDQ7Ci0gICAg
fQotOwotCi13ZWJraXRfa2V5ZnJhbWVfcnVsZToKLSAgICBXRUJLSVRfS0VZRlJBTUVfUlVMRV9T
WU0gJ3snIG1heWJlX3NwYWNlIGtleWZyYW1lX3J1bGUgbWF5YmVfc3BhY2UgJ30nIHsKLSAgICAg
ICAgcGFyc2VyLT5tX2tleWZyYW1lID0gJDQ7Ci0gICAgfQotOwotCi13ZWJraXRfZGVjbHM6Ci0g
ICAgV0VCS0lUX0RFQ0xTX1NZTSAneycgbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uIGRl
Y2xhcmF0aW9uX2xpc3QgJ30nIHsKLSAgICAgICAgLyogY2FuIGJlIGVtcHR5ICovCi0gICAgfQot
OwotCi13ZWJraXRfdmFsdWU6Ci0gICAgV0VCS0lUX1ZBTFVFX1NZTSAneycgbWF5YmVfc3BhY2Ug
ZXhwciAnfScgewotICAgICAgICBpZiAoJDQpIHsKLSAgICAgICAgICAgIHBhcnNlci0+bV92YWx1
ZUxpc3QgPSBwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7Ci0gICAgICAgICAgICBp
bnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXpl
KCk7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlci0+cGFyc2VWYWx1ZShwYXJzZXItPm1faWQsIHBh
cnNlci0+bV9pbXBvcnRhbnQpKQotICAgICAgICAgICAgICAgIHBhcnNlci0+cm9sbGJhY2tMYXN0
UHJvcGVydGllcyhwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpIC0gb2xkUGFyc2Vk
UHJvcGVydGllcyk7Ci0gICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gbnVsbHB0cjsK
LSAgICAgICAgfQotICAgIH0KLTsKLQotd2Via2l0X21lZGlhcXVlcnk6Ci0gICAgIFdFQktJVF9N
RURJQVFVRVJZX1NZTSBXSElURVNQQUNFIG1heWJlX3NwYWNlIG1lZGlhX3F1ZXJ5ICd9JyB7Ci0g
ICAgICAgICBwYXJzZXItPm1fbWVkaWFRdWVyeSA9IHBhcnNlci0+c2lua0Zsb2F0aW5nTWVkaWFR
dWVyeSgkNCk7Ci0gICAgIH0KLTsKLQotd2Via2l0X3NlbGVjdG9yOgotICAgIFdFQktJVF9TRUxF
Q1RPUl9TWU0gJ3snIG1heWJlX3NwYWNlIHNlbGVjdG9yX2xpc3QgJ30nIHsKLSAgICAgICAgaWYg
KCQ0KSB7Ci0gICAgICAgICAgICBpZiAocGFyc2VyLT5tX3NlbGVjdG9yTGlzdEZvclBhcnNlU2Vs
ZWN0b3IpCi0gICAgICAgICAgICAgICAgcGFyc2VyLT5tX3NlbGVjdG9yTGlzdEZvclBhcnNlU2Vs
ZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKiQ0KTsKLSAgICAgICAgfQotICAgIH0KLTsKLQot
bWF5YmVfc3BhY2U6Ci0gICAgLyogZW1wdHkgKi8gJXByZWMgVU5JTVBPUlRBTlRfVE9LCi0gIHwg
bWF5YmVfc3BhY2UgV0hJVEVTUEFDRQotICA7Ci0KLW1heWJlX3NnbWw6Ci0gICAgLyogZW1wdHkg
Ki8KLSAgfCBtYXliZV9zZ21sIFNHTUxfQ0QKLSAgfCBtYXliZV9zZ21sIFdISVRFU1BBQ0UKLSAg
OwotCi1tYXliZV9jaGFyc2V0OgotICAgLyogZW1wdHkgKi8KLSAgfCBjaGFyc2V0IHsKLSAgfQot
ICA7Ci0KLWNsb3NpbmdfYnJhY2U6Ci0gICAgJ30nCi0gIHwgJXByZWMgTE9XRVNUX1BSRUMgVE9L
RU5fRU9GCi0gIDsKLQotY2hhcnNldDoKLSAgQ0hBUlNFVF9TWU0gbWF5YmVfc3BhY2UgU1RSSU5H
IG1heWJlX3NwYWNlICc7JyB7Ci0gICAgIGlmIChwYXJzZXItPm1fc3R5bGVTaGVldCkKLSAgICAg
ICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJzZXJTZXRFbmNvZGluZ0Zyb21DaGFyc2V0UnVs
ZSgkMyk7Ci0gICAgIGlmIChwYXJzZXItPmlzRXh0cmFjdGluZ1NvdXJjZURhdGEoKSAmJiBwYXJz
ZXItPm1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSAmJiBwYXJzZXItPm1fcnVsZVNv
dXJjZURhdGFSZXN1bHQpCi0gICAgICAgICBwYXJzZXItPmFkZE5ld1J1bGVUb1NvdXJjZVRyZWUo
Q1NTUnVsZVNvdXJjZURhdGE6OmNyZWF0ZVVua25vd24oKSk7Ci0gICAgICQkID0gMDsKLSAgfQot
ICB8IENIQVJTRVRfU1lNIGVycm9yIGludmFsaWRfYmxvY2sgewotICB9Ci0gIHwgQ0hBUlNFVF9T
WU0gZXJyb3IgJzsnIHsKLSAgfQotOwotCi1pZ25vcmVkX2NoYXJzZXQ6Ci0gICAgQ0hBUlNFVF9T
WU0gbWF5YmVfc3BhY2UgU1RSSU5HIG1heWJlX3NwYWNlICc7JyB7Ci0gICAgICAgIC8vIElnbm9y
ZSBhbnkgQGNoYXJzZXQgcnVsZSBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3R5bGUgc2hl
ZXQuCi0gICAgICAgICQkID0gMDsKLSAgICB9Ci0gICAgfCBDSEFSU0VUX1NZTSBtYXliZV9zcGFj
ZSAnOycgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQotOwotCi1ydWxlX2xpc3Q6Ci0gICAvKiBl
bXB0eSAqLwotIHwgcnVsZV9saXN0IHJ1bGUgbWF5YmVfc2dtbCB7Ci0gICAgIGlmICgkMiAmJiBw
YXJzZXItPm1fc3R5bGVTaGVldCkKLSAgICAgICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJz
ZXJBcHBlbmRSdWxlKCQyKTsKLSB9Ci0gOwotCi12YWxpZF9ydWxlOgotICAgIHJ1bGVzZXQKLSAg
fCBtZWRpYQotICB8IHBhZ2UKLSAgfCBmb250X2ZhY2UKLSAgfCBrZXlmcmFtZXMKLSAgfCBuYW1l
c3BhY2UKLSAgfCBpbXBvcnQKLSAgfCByZWdpb24KLSAgOwotCi1ydWxlOgotICAgIHZhbGlkX3J1
bGUgewotICAgICAgICBwYXJzZXItPm1faGFkU3ludGFjdGljYWxseVZhbGlkQ1NTUnVsZSA9IHRy
dWU7Ci0gICAgfQotICB8IGlnbm9yZWRfY2hhcnNldAotICB8IGludmFsaWRfcnVsZQotICB8IGlu
dmFsaWRfYXQKLSAgOwotCi1ibG9ja19ydWxlX2xpc3Q6IAotICAgIC8qIGVtcHR5ICovIHsgJCQg
PSAwOyB9Ci0gIHwgYmxvY2tfcnVsZV9saXN0IGJsb2NrX3J1bGUgbWF5YmVfc2dtbCB7Ci0gICAg
ICAkJCA9ICQxOwotICAgICAgaWYgKCQyKSB7Ci0gICAgICAgICAgaWYgKCEkJCkKLSAgICAgICAg
ICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZVJ1bGVMaXN0KCk7Ci0gICAgICAgICAgJCQtPmFwcGVu
ZCgkMik7Ci0gICAgICB9Ci0gIH0KLSAgOwotCi1ibG9ja192YWxpZF9ydWxlOgotICAgIHJ1bGVz
ZXQKLSAgfCBwYWdlCi0gIHwgZm9udF9mYWNlCi0gIHwga2V5ZnJhbWVzCi0gIDsKLQotYmxvY2tf
cnVsZToKLSAgICBibG9ja192YWxpZF9ydWxlCi0gIHwgaW52YWxpZF9ydWxlCi0gIHwgaW52YWxp
ZF9hdAotICB8IG5hbWVzcGFjZQotICB8IGltcG9ydAotICB8IG1lZGlhCi0gIDsKLQotYXRfaW1w
b3J0X2hlYWRlcl9lbmRfbWF5YmVfc3BhY2U6Ci0gICAgbWF5YmVfc3BhY2UgewotICAgICAgICBw
YXJzZXItPm1hcmtSdWxlSGVhZGVyRW5kKCk7Ci0gICAgICAgIHBhcnNlci0+bWFya1J1bGVCb2R5
U3RhcnQoKTsKLSAgICB9Ci0gICAgOwotCi1iZWZvcmVfaW1wb3J0X3J1bGU6Ci0gICAgLyogZW1w
dHkgKi8gewotICAgICAgICBwYXJzZXItPm1hcmtSdWxlSGVhZGVyU3RhcnQoQ1NTUnVsZVNvdXJj
ZURhdGE6OklNUE9SVF9SVUxFKTsKLSAgICB9Ci0gICAgOwotCi1pbXBvcnQ6Ci0gICAgYmVmb3Jl
X2ltcG9ydF9ydWxlIElNUE9SVF9TWU0gYXRfaW1wb3J0X2hlYWRlcl9lbmRfbWF5YmVfc3BhY2Ug
c3RyaW5nX29yX3VyaSBtYXliZV9zcGFjZSBtYXliZV9tZWRpYV9saXN0ICc7JyB7Ci0gICAgICAg
ICQkID0gcGFyc2VyLT5jcmVhdGVJbXBvcnRSdWxlKCQ0LCAkNik7Ci0gICAgfQotICB8IGJlZm9y
ZV9pbXBvcnRfcnVsZSBJTVBPUlRfU1lNIGF0X2ltcG9ydF9oZWFkZXJfZW5kX21heWJlX3NwYWNl
IHN0cmluZ19vcl91cmkgbWF5YmVfc3BhY2UgbWF5YmVfbWVkaWFfbGlzdCBUT0tFTl9FT0Ygewot
ICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlSW1wb3J0UnVsZSgkNCwgJDYpOwotICAgIH0KLSAg
fCBiZWZvcmVfaW1wb3J0X3J1bGUgSU1QT1JUX1NZTSBhdF9pbXBvcnRfaGVhZGVyX2VuZF9tYXli
ZV9zcGFjZSBzdHJpbmdfb3JfdXJpIG1heWJlX3NwYWNlIG1heWJlX21lZGlhX2xpc3QgaW52YWxp
ZF9ibG9jayB7Ci0gICAgICAgICQkID0gMDsKLSAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgp
OwotICAgIH0KLSAgfCBiZWZvcmVfaW1wb3J0X3J1bGUgSU1QT1JUX1NZTSBlcnJvciAnOycgewot
ICAgICAgICAkJCA9IDA7Ci0gICAgICAgIHBhcnNlci0+cG9wUnVsZURhdGEoKTsKLSAgICB9Ci0g
IHwgYmVmb3JlX2ltcG9ydF9ydWxlIElNUE9SVF9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7Ci0g
ICAgICAgICQkID0gMDsKLSAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgpOwotICAgIH0KLSAg
OwotCi1uYW1lc3BhY2U6Ci1OQU1FU1BBQ0VfU1lNIG1heWJlX3NwYWNlIG1heWJlX25zX3ByZWZp
eCBzdHJpbmdfb3JfdXJpIG1heWJlX3NwYWNlICc7JyB7Ci0gICAgcGFyc2VyLT5hZGROYW1lc3Bh
Y2UoJDMsICQ0KTsKLSAgICAkJCA9IDA7Ci19Ci18IE5BTUVTUEFDRV9TWU0gbWF5YmVfc3BhY2Ug
bWF5YmVfbnNfcHJlZml4IHN0cmluZ19vcl91cmkgbWF5YmVfc3BhY2UgaW52YWxpZF9ibG9jayB7
Ci0gICAgJCQgPSAwOwotfQotfCBOQU1FU1BBQ0VfU1lNIGVycm9yIGludmFsaWRfYmxvY2sgewot
ICAgICQkID0gMDsKLX0KLXwgTkFNRVNQQUNFX1NZTSBlcnJvciAnOycgewotICAgICQkID0gMDsK
LX0KLTsKLQotbWF5YmVfbnNfcHJlZml4OgotLyogZW1wdHkgKi8geyAkJC5jbGVhcigpOyB9Ci18
IElERU5UIG1heWJlX3NwYWNlIHsgJCQgPSAkMTsgfQotOwotCi1zdHJpbmdfb3JfdXJpOgotU1RS
SU5HCi18IFVSSQotOwotCi1tZWRpYV9mZWF0dXJlOgotICAgIElERU5UIG1heWJlX3NwYWNlIHsK
LSAgICAgICAgJCQgPSAkMTsKLSAgICB9Ci0gICAgOwotCi1tYXliZV9tZWRpYV92YWx1ZToKLSAg
ICAvKmVtcHR5Ki8gewotICAgICAgICAkJCA9IDA7Ci0gICAgfQotICAgIHwgJzonIG1heWJlX3Nw
YWNlIGV4cHIgbWF5YmVfc3BhY2UgewotICAgICAgICAkJCA9ICQzOwotICAgIH0KLSAgICA7Ci0K
LW1lZGlhX3F1ZXJ5X2V4cDoKLSAgICAnKCcgbWF5YmVfc3BhY2UgbWVkaWFfZmVhdHVyZSBtYXli
ZV9zcGFjZSBtYXliZV9tZWRpYV92YWx1ZSAnKScgbWF5YmVfc3BhY2UgewotICAgICAgICAkMy5s
b3dlcigpOwotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhw
KCQzLCAkNSk7Ci0gICAgfQotICAgIDsKLQotbWVkaWFfcXVlcnlfZXhwX2xpc3Q6Ci0gICAgbWVk
aWFfcXVlcnlfZXhwIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nTWVkaWFR
dWVyeUV4cExpc3QoKTsKLSAgICAgICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ01l
ZGlhUXVlcnlFeHAoJDEpKTsKLSAgICB9Ci0gICAgfCBtZWRpYV9xdWVyeV9leHBfbGlzdCBtYXli
ZV9zcGFjZSBNRURJQV9BTkQgbWF5YmVfc3BhY2UgbWVkaWFfcXVlcnlfZXhwIHsKLSAgICAgICAg
JCQgPSAkMTsKLSAgICAgICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ01lZGlhUXVl
cnlFeHAoJDUpKTsKLSAgICB9Ci0gICAgOwotCi1tYXliZV9hbmRfbWVkaWFfcXVlcnlfZXhwX2xp
c3Q6Ci0gICAgLyplbXB0eSovIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5n
TWVkaWFRdWVyeUV4cExpc3QoKTsKLSAgICB9Ci0gICAgfCBNRURJQV9BTkQgbWF5YmVfc3BhY2Ug
bWVkaWFfcXVlcnlfZXhwX2xpc3QgewotICAgICAgICAkJCA9ICQzOwotICAgIH0KLSAgICA7Ci0K
LW1heWJlX21lZGlhX3Jlc3RyaWN0b3I6Ci0gICAgLyplbXB0eSovIHsKLSAgICAgICAgJCQgPSBN
ZWRpYVF1ZXJ5OjpOb25lOwotICAgIH0KLSAgICB8IE1FRElBX09OTFkgewotICAgICAgICAkJCA9
IE1lZGlhUXVlcnk6Ok9ubHk7Ci0gICAgfQotICAgIHwgTUVESUFfTk9UIHsKLSAgICAgICAgJCQg
PSBNZWRpYVF1ZXJ5OjpOb3Q7Ci0gICAgfQotICAgIDsKLQotbWVkaWFfcXVlcnk6Ci0gICAgbWVk
aWFfcXVlcnlfZXhwX2xpc3QgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdN
ZWRpYVF1ZXJ5KHBhcnNlci0+c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3QoJDEpKTsKLSAg
ICB9Ci0gICAgfAotICAgIG1heWJlX21lZGlhX3Jlc3RyaWN0b3IgbWF5YmVfc3BhY2UgbWVkaXVt
IG1heWJlX2FuZF9tZWRpYV9xdWVyeV9leHBfbGlzdCB7Ci0gICAgICAgICQzLmxvd2VyKCk7Ci0g
ICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ01lZGlhUXVlcnkoJDEsICQzLCBwYXJz
ZXItPnNpbmtGbG9hdGluZ01lZGlhUXVlcnlFeHBMaXN0KCQ0KSk7Ci0gICAgfQotICAgIDsKLQot
bWF5YmVfbWVkaWFfbGlzdDoKLSAgICAgLyogZW1wdHkgKi8gewotICAgICAgICAkJCA9IHBhcnNl
ci0+Y3JlYXRlTWVkaWFRdWVyeVNldCgpOwotICAgICB9Ci0gICAgIHwgbWVkaWFfbGlzdAotICAg
ICA7Ci0KLW1lZGlhX2xpc3Q6Ci0gICAgbWVkaWFfcXVlcnkgewotICAgICAgICAkJCA9IHBhcnNl
ci0+Y3JlYXRlTWVkaWFRdWVyeVNldCgpOwotICAgICAgICAkJC0+YWRkTWVkaWFRdWVyeShwYXJz
ZXItPnNpbmtGbG9hdGluZ01lZGlhUXVlcnkoJDEpKTsKLSAgICAgICAgcGFyc2VyLT51cGRhdGVM
YXN0TWVkaWFMaW5lKCQkKTsKLSAgICB9Ci0gICAgfCBtZWRpYV9saXN0ICcsJyBtYXliZV9zcGFj
ZSBtZWRpYV9xdWVyeSB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgICAgIGlmICgkJCkgewotICAg
ICAgICAgICAgJCQtPmFkZE1lZGlhUXVlcnkocGFyc2VyLT5zaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5
KCQ0KSk7Ci0gICAgICAgICAgICBwYXJzZXItPnVwZGF0ZUxhc3RNZWRpYUxpbmUoJCQpOwotICAg
ICAgICB9Ci0gICAgfQotICAgIHwgbWVkaWFfbGlzdCBlcnJvciB7Ci0gICAgICAgICQkID0gMDsK
LSAgICB9Ci0gICAgOwotCi1hdF9ydWxlX2JvZHlfc3RhcnQ6Ci0gICAgLyogZW1wdHkgKi8gewot
ICAgICAgICBwYXJzZXItPm1hcmtSdWxlQm9keVN0YXJ0KCk7Ci0gICAgfQotICAgIDsKLQotYmVm
b3JlX21lZGlhX3J1bGU6Ci0gICAgLyogZW1wdHkgKi8gewotICAgICAgICBwYXJzZXItPm1hcmtS
dWxlSGVhZGVyU3RhcnQoQ1NTUnVsZVNvdXJjZURhdGE6Ok1FRElBX1JVTEUpOwotICAgIH0KLSAg
ICA7Ci0KLWF0X3J1bGVfaGVhZGVyX2VuZF9tYXliZV9zcGFjZToKLSAgICBtYXliZV9zcGFjZSB7
Ci0gICAgICAgIHBhcnNlci0+bWFya1J1bGVIZWFkZXJFbmQoKTsKLSAgICB9Ci0gICAgOwotCi1t
ZWRpYToKLSAgICBiZWZvcmVfbWVkaWFfcnVsZSBNRURJQV9TWU0gbWF5YmVfc3BhY2UgbWVkaWFf
bGlzdCBhdF9ydWxlX2hlYWRlcl9lbmQgJ3snIGF0X3J1bGVfYm9keV9zdGFydCBtYXliZV9zcGFj
ZSBibG9ja19ydWxlX2xpc3Qgc2F2ZV9ibG9jayB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVh
dGVNZWRpYVJ1bGUoJDQsICQ5KTsKLSAgICB9Ci0gICAgfCBiZWZvcmVfbWVkaWFfcnVsZSBNRURJ
QV9TWU0gYXRfcnVsZV9oZWFkZXJfZW5kX21heWJlX3NwYWNlICd7JyBhdF9ydWxlX2JvZHlfc3Rh
cnQgbWF5YmVfc3BhY2UgYmxvY2tfcnVsZV9saXN0IHNhdmVfYmxvY2sgewotICAgICAgICAkJCA9
IHBhcnNlci0+Y3JlYXRlTWVkaWFSdWxlKDAsICQ3KTsKLSAgICB9Ci0gICAgfCBiZWZvcmVfbWVk
aWFfcnVsZSBNRURJQV9TWU0gYXRfcnVsZV9oZWFkZXJfZW5kX21heWJlX3NwYWNlICc7JyB7Ci0g
ICAgICAgICQkID0gMDsKLSAgICAgICAgcGFyc2VyLT5wb3BSdWxlRGF0YSgpOwotICAgIH0KLSAg
ICA7Ci0KLW1lZGl1bToKLSAgSURFTlQgbWF5YmVfc3BhY2UgewotICAgICAgJCQgPSAkMTsKLSAg
fQotICA7Ci0KLWJlZm9yZV9rZXlmcmFtZXNfcnVsZToKLSAgICAvKiBlbXB0eSAqLyB7Ci0gICAg
ICAgIHBhcnNlci0+bWFya1J1bGVIZWFkZXJTdGFydChDU1NSdWxlU291cmNlRGF0YTo6S0VZRlJB
TUVTX1JVTEUpOwotICAgIH0KLSAgICA7Ci0KLWtleWZyYW1lczoKLSAgICBiZWZvcmVfa2V5ZnJh
bWVzX3J1bGUgV0VCS0lUX0tFWUZSQU1FU19TWU0gbWF5YmVfc3BhY2Uga2V5ZnJhbWVfbmFtZSBh
dF9ydWxlX2hlYWRlcl9lbmRfbWF5YmVfc3BhY2UgJ3snIGF0X3J1bGVfYm9keV9zdGFydCBtYXli
ZV9zcGFjZSBrZXlmcmFtZXNfcnVsZSBjbG9zaW5nX2JyYWNlIHsKLSAgICAgICAgJCQgPSBwYXJz
ZXItPmNyZWF0ZUtleWZyYW1lc1J1bGUoJDQsIHBhcnNlci0+c2lua0Zsb2F0aW5nS2V5ZnJhbWVW
ZWN0b3IoJDkpKTsKLSAgICB9Ci0gICAgOwotICAKLWtleWZyYW1lX25hbWU6Ci0gICAgSURFTlQK
LSAgICB8IFNUUklORwotICAgIDsKLQota2V5ZnJhbWVzX3J1bGU6Ci0gICAgLyogZW1wdHkgKi8g
eyAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdLZXlmcmFtZVZlY3RvcigpOyB9Ci0gICAgfCBr
ZXlmcmFtZXNfcnVsZSBrZXlmcmFtZV9ydWxlIG1heWJlX3NwYWNlIHsKLSAgICAgICAgJCQgPSAk
MTsKLSAgICAgICAgaWYgKCQyKQotICAgICAgICAgICAgJCQtPmFwcGVuZCgkMik7Ci0gICAgfQot
ICAgIDsKLQota2V5ZnJhbWVfcnVsZToKLSAgICBrZXlfbGlzdCBtYXliZV9zcGFjZSAneycgbWF5
YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3Jl
YXRlS2V5ZnJhbWUoJDEpOwotICAgIH0KLSAgICA7Ci0KLWtleV9saXN0OgotICAgIGtleSB7Ci0g
ICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1ZhbHVlTGlzdCgpOwotICAgICAgICAk
JC0+YWRkVmFsdWUocGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZSgkMSkpOwotICAgIH0KLSAgICB8
IGtleV9saXN0IG1heWJlX3NwYWNlICcsJyBtYXliZV9zcGFjZSBrZXkgewotICAgICAgICAkJCA9
ICQxOwotICAgICAgICBpZiAoJCQpCi0gICAgICAgICAgICAkJC0+YWRkVmFsdWUocGFyc2VyLT5z
aW5rRmxvYXRpbmdWYWx1ZSgkNSkpOwotICAgIH0KLSAgICA7Ci0KLWtleToKLSAgICBtYXliZV91
bmFyeV9vcGVyYXRvciBQRVJDRU5UQUdFIHsgJCQuaWQgPSAwOyAkJC5pc0ludCA9IGZhbHNlOyAk
JC5mVmFsdWUgPSAkMSAqICQyOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1C
RVI7IH0KLSAgICB8IElERU5UIHsKLSAgICAgICAgJCQuaWQgPSAwOyAkJC5pc0ludCA9IGZhbHNl
OyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI7Ci0gICAgICAgIENTU1Bh
cnNlclN0cmluZyYgc3RyID0gJDE7Ci0gICAgICAgIGlmIChzdHIuZXF1YWxJZ25vcmluZ0Nhc2Uo
ImZyb20iKSkKLSAgICAgICAgICAgICQkLmZWYWx1ZSA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKHN0
ci5lcXVhbElnbm9yaW5nQ2FzZSgidG8iKSkKLSAgICAgICAgICAgICQkLmZWYWx1ZSA9IDEwMDsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgWVlFUlJPUjsKLSAgICB9Ci0gICAgOwotCi1iZWZv
cmVfcGFnZV9ydWxlOgotICAgIC8qIGVtcHR5ICovIHsKLSAgICAgICAgcGFyc2VyLT5tYXJrUnVs
ZUhlYWRlclN0YXJ0KENTU1J1bGVTb3VyY2VEYXRhOjpQQUdFX1JVTEUpOwotICAgIH0KLSAgICA7
Ci0KLXBhZ2U6Ci0gICAgYmVmb3JlX3BhZ2VfcnVsZSBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdl
X3NlbGVjdG9yIGF0X3J1bGVfaGVhZGVyX2VuZF9tYXliZV9zcGFjZQotICAgICd7JyBhdF9ydWxl
X2JvZHlfc3RhcnQgbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uc19h
bmRfbWFyZ2lucyBjbG9zaW5nX2JyYWNlIHsKLSAgICAgICAgaWYgKCQ0KQotICAgICAgICAgICAg
JCQgPSBwYXJzZXItPmNyZWF0ZVBhZ2VSdWxlKHBhcnNlci0+c2lua0Zsb2F0aW5nU2VsZWN0b3Io
JDQpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBDbGVhciBwcm9wZXJ0aWVzIGlu
IHRoZSBpbnZhbGlkIEBwYWdlIHJ1bGUuCi0gICAgICAgICAgICBwYXJzZXItPmNsZWFyUHJvcGVy
dGllcygpOwotICAgICAgICAgICAgLy8gQWxzbyBjbGVhciBtYXJnaW4gYXQtcnVsZXMgaGVyZSBv
bmNlIHdlIGZ1bGx5IGltcGxlbWVudCBtYXJnaW4gYXQtcnVsZXMgcGFyc2luZy4KLSAgICAgICAg
ICAgICQkID0gMDsKLSAgICAgICAgICAgIHBhcnNlci0+cG9wUnVsZURhdGEoKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICB8IGJlZm9yZV9wYWdlX3J1bGUgUEFHRV9TWU0gZXJyb3IgaW52YWxpZF9i
bG9jayB7Ci0gICAgICBwYXJzZXItPnBvcFJ1bGVEYXRhKCk7Ci0gICAgICAkJCA9IDA7Ci0gICAg
fQotICAgIHwgYmVmb3JlX3BhZ2VfcnVsZSBQQUdFX1NZTSBlcnJvciAnOycgewotICAgICAgcGFy
c2VyLT5wb3BSdWxlRGF0YSgpOwotICAgICAgJCQgPSAwOwotICAgIH0KLSAgICA7Ci0KLXBhZ2Vf
c2VsZWN0b3I6Ci0gICAgSURFTlQgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRp
bmdTZWxlY3RvcigpOwotICAgICAgICAkJC0+c2V0VGFnKFF1YWxpZmllZE5hbWUobnVsbEF0b20s
ICQxLCBwYXJzZXItPm1fZGVmYXVsdE5hbWVzcGFjZSkpOwotICAgICAgICAkJC0+c2V0Rm9yUGFn
ZSgpOwotICAgIH0KLSAgICB8IElERU5UIHBzZXVkb19wYWdlIHsKLSAgICAgICAgJCQgPSAkMjsK
LSAgICAgICAgaWYgKCQkKSB7Ci0gICAgICAgICAgICAkJC0+c2V0VGFnKFF1YWxpZmllZE5hbWUo
bnVsbEF0b20sICQxLCBwYXJzZXItPm1fZGVmYXVsdE5hbWVzcGFjZSkpOwotICAgICAgICAgICAg
JCQtPnNldEZvclBhZ2UoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICB8IHBzZXVkb19wYWdlIHsK
LSAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAgJCQtPnNldEZv
clBhZ2UoKTsKLSAgICB9Ci0gICAgfCAvKiBlbXB0eSAqLyB7Ci0gICAgICAgICQkID0gcGFyc2Vy
LT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7Ci0gICAgICAgICQkLT5zZXRGb3JQYWdlKCk7Ci0g
ICAgfQotICAgIDsKLQotZGVjbGFyYXRpb25zX2FuZF9tYXJnaW5zOgotICAgIGRlY2xhcmF0aW9u
X2xpc3QKLSAgICB8IGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBtYXJnaW5fYm94IG1heWJlX3Nw
YWNlIGRlY2xhcmF0aW9uX2xpc3QKLSAgICA7Ci0KLW1hcmdpbl9ib3g6Ci0gICAgbWFyZ2luX3N5
bSB7Ci0gICAgICAgIHBhcnNlci0+c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKLSAg
ICB9IG1heWJlX3NwYWNlICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3Npbmdf
YnJhY2UgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlTWFyZ2luQXRSdWxlKCQxKTsKLSAg
ICB9Ci0gICAgOwotCi1tYXJnaW5fc3ltIDoKLSAgICBUT1BMRUZUQ09STkVSX1NZTSB7Ci0gICAg
ICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnRDb3JuZXJNYXJnaW5Cb3g7Ci0gICAgfQotICAg
IHwgVE9QTEVGVF9TWU0gewotICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BMZWZ0TWFyZ2lu
Qm94OwotICAgIH0KLSAgICB8IFRPUENFTlRFUl9TWU0gewotICAgICAgICAkJCA9IENTU1NlbGVj
dG9yOjpUb3BDZW50ZXJNYXJnaW5Cb3g7Ci0gICAgfQotICAgIHwgVE9QUklHSFRfU1lNIHsKLSAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wUmlnaHRNYXJnaW5Cb3g7Ci0gICAgfQotICAgIHwg
VE9QUklHSFRDT1JORVJfU1lNIHsKLSAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wUmlnaHRD
b3JuZXJNYXJnaW5Cb3g7Ci0gICAgfQotICAgIHwgQk9UVE9NTEVGVENPUk5FUl9TWU0gewotICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0Q29ybmVyTWFyZ2luQm94OwotICAgIH0K
LSAgICB8IEJPVFRPTUxFRlRfU1lNIHsKLSAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9t
TGVmdE1hcmdpbkJveDsKLSAgICB9Ci0gICAgfCBCT1RUT01DRU5URVJfU1lNIHsKLSAgICAgICAg
JCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tQ2VudGVyTWFyZ2luQm94OwotICAgIH0KLSAgICB8IEJP
VFRPTVJJR0hUX1NZTSB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJpZ2h0TWFy
Z2luQm94OwotICAgIH0KLSAgICB8IEJPVFRPTVJJR0hUQ09STkVSX1NZTSB7Ci0gICAgICAgICQk
ID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJpZ2h0Q29ybmVyTWFyZ2luQm94OwotICAgIH0KLSAgICB8
IExFRlRUT1BfU1lNIHsKLSAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdFRvcE1hcmdpbkJv
eDsKLSAgICB9Ci0gICAgfCBMRUZUTUlERExFX1NZTSB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0
b3I6OkxlZnRNaWRkbGVNYXJnaW5Cb3g7Ci0gICAgfQotICAgIHwgTEVGVEJPVFRPTV9TWU0gewot
ICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0Qm90dG9tTWFyZ2luQm94OwotICAgIH0KLSAg
ICB8IFJJR0hUVE9QX1NZTSB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJpZ2h0VG9wTWFy
Z2luQm94OwotICAgIH0KLSAgICB8IFJJR0hUTUlERExFX1NZTSB7Ci0gICAgICAgICQkID0gQ1NT
U2VsZWN0b3I6OlJpZ2h0TWlkZGxlTWFyZ2luQm94OwotICAgIH0KLSAgICB8IFJJR0hUQk9UVE9N
X1NZTSB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJpZ2h0Qm90dG9tTWFyZ2luQm94Owot
ICAgIH0KLSAgICA7Ci0KLWJlZm9yZV9mb250X2ZhY2VfcnVsZToKLSAgICAvKiBlbXB0eSAqLyB7
Ci0gICAgICAgIHBhcnNlci0+bWFya1J1bGVIZWFkZXJTdGFydChDU1NSdWxlU291cmNlRGF0YTo6
Rk9OVF9GQUNFX1JVTEUpOwotICAgIH0KLSAgICA7Ci0KLWZvbnRfZmFjZToKLSAgICBiZWZvcmVf
Zm9udF9mYWNlX3J1bGUgRk9OVF9GQUNFX1NZTSBhdF9ydWxlX2hlYWRlcl9lbmRfbWF5YmVfc3Bh
Y2UKLSAgICAneycgYXRfcnVsZV9ib2R5X3N0YXJ0IG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewotICAgICAgICAkJCA9IHBhcnNl
ci0+Y3JlYXRlRm9udEZhY2VSdWxlKCk7Ci0gICAgfQotICAgIHwgYmVmb3JlX2ZvbnRfZmFjZV9y
dWxlIEZPTlRfRkFDRV9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7Ci0gICAgICAkJCA9IDA7Ci0g
ICAgICBwYXJzZXItPnBvcFJ1bGVEYXRhKCk7Ci0gICAgfQotICAgIHwgYmVmb3JlX2ZvbnRfZmFj
ZV9ydWxlIEZPTlRfRkFDRV9TWU0gZXJyb3IgJzsnIHsKLSAgICAgICQkID0gMDsKLSAgICAgIHBh
cnNlci0+cG9wUnVsZURhdGEoKTsKLSAgICB9Ci07Ci0KLXJlZ2lvbl9zZWxlY3RvcjoKLSAgICBz
ZWxlY3Rvcl9saXN0IHsKLSAgICAgICAgaWYgKCQxKSB7Ci0gICAgICAgICAgICBwYXJzZXItPnNl
dFJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IoJDEpOwotICAgICAgICAgICAgJCQgPSBwYXJz
ZXItPnJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IoKTsKLSAgICAgICAgfQotICAgICAgICBl
bHNlCi0gICAgICAgICAgICAkJCA9IDA7Ci0gICAgfQotOwotCi1iZWZvcmVfcmVnaW9uX3J1bGU6
Ci0gICAgLyogZW1wdHkgKi8gewotICAgICAgICBwYXJzZXItPm1hcmtSdWxlSGVhZGVyU3RhcnQo
Q1NTUnVsZVNvdXJjZURhdGE6OlJFR0lPTl9SVUxFKTsKLSAgICB9Ci0gICAgOwotCi1yZWdpb246
Ci0gICAgYmVmb3JlX3JlZ2lvbl9ydWxlIFdFQktJVF9SRUdJT05fUlVMRV9TWU0gV0hJVEVTUEFD
RSByZWdpb25fc2VsZWN0b3IgYXRfcnVsZV9oZWFkZXJfZW5kICd7JyBhdF9ydWxlX2JvZHlfc3Rh
cnQgbWF5YmVfc3BhY2UgYmxvY2tfcnVsZV9saXN0IHNhdmVfYmxvY2sgewotICAgICAgICBpZiAo
JDQpCi0gICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlUmVnaW9uUnVsZSgkNCwgJDkpOwot
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICQkID0gMDsKLSAgICAgICAgICAgIHBhcnNlci0+
cG9wUnVsZURhdGEoKTsKLSAgICAgICAgfQotICAgIH0KLTsKLQotY29tYmluYXRvcjoKLSAgICAn
KycgbWF5YmVfc3BhY2UgeyAkJCA9IENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDsgfQotICB8
ICd+JyBtYXliZV9zcGFjZSB7ICQkID0gQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ7IH0K
LSAgfCAnPicgbWF5YmVfc3BhY2UgeyAkJCA9IENTU1NlbGVjdG9yOjpDaGlsZDsgfQotICA7Ci0K
LW1heWJlX3VuYXJ5X29wZXJhdG9yOgotICAgIHVuYXJ5X29wZXJhdG9yIHsgJCQgPSAkMTsgfQot
ICAgIHwgeyAkJCA9IDE7IH0KLSAgICA7Ci0KLXVuYXJ5X29wZXJhdG9yOgotICAgICctJyB7ICQk
ID0gLTE7IH0KLSAgfCAnKycgeyAkJCA9IDE7IH0KLSAgOwotCi1tYXliZV9zcGFjZV9iZWZvcmVf
ZGVjbGFyYXRpb246Ci0gICAgbWF5YmVfc3BhY2UgewotICAgICAgICBwYXJzZXItPm1hcmtQcm9w
ZXJ0eVN0YXJ0KCk7Ci0gICAgfQotICA7Ci0KLWJlZm9yZV9zZWxlY3Rvcl9saXN0OgotICAgIC8q
IGVtcHR5ICovIHsKLSAgICAgICAgcGFyc2VyLT5tYXJrUnVsZUhlYWRlclN0YXJ0KENTU1J1bGVT
b3VyY2VEYXRhOjpTVFlMRV9SVUxFKTsKLSAgICB9Ci0gIDsKLQotYXRfcnVsZV9oZWFkZXJfZW5k
OgotICAgIC8qIGVtcHR5ICovIHsKLSAgICAgICAgcGFyc2VyLT5tYXJrUnVsZUhlYWRlckVuZCgp
OwotICAgIH0KLSAgOwotCi1ydWxlc2V0OgotICAgIGJlZm9yZV9zZWxlY3Rvcl9saXN0IHNlbGVj
dG9yX2xpc3QgYXRfcnVsZV9oZWFkZXJfZW5kICd7JyBhdF9ydWxlX2JvZHlfc3RhcnQgbWF5YmVf
c3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFjZSB7
Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVTdHlsZVJ1bGUoJDIpOwotICAgIH0KLSAgOwot
Ci1zZWxlY3Rvcl9saXN0OgotICAgIHNlbGVjdG9yICVwcmVjIFVOSU1QT1JUQU5UX1RPSyB7Ci0g
ICAgICAgIGlmICgkMSkgewotICAgICAgICAgICAgJCQgPSBwYXJzZXItPnNlbGVjdG9yVmVjdG9y
KCk7Ci0gICAgICAgICAgICAkJC0+c2hyaW5rKDApOwotICAgICAgICAgICAgJCQtPmFwcGVuZChw
YXJzZXItPnNpbmtGbG9hdGluZ1NlbGVjdG9yKCQxKSk7Ci0gICAgICAgICAgICBwYXJzZXItPnVw
ZGF0ZUxhc3RTZWxlY3RvckxpbmVBbmRQb3NpdGlvbigpOwotICAgICAgICB9Ci0gICAgfQotICAg
IHwgc2VsZWN0b3JfbGlzdCAnLCcgbWF5YmVfc3BhY2Ugc2VsZWN0b3IgJXByZWMgVU5JTVBPUlRB
TlRfVE9LIHsKLSAgICAgICAgaWYgKCQxICYmICQ0KSB7Ci0gICAgICAgICAgICAkJCA9ICQxOwot
ICAgICAgICAgICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ1NlbGVjdG9yKCQ0KSk7
Ci0gICAgICAgICAgICBwYXJzZXItPnVwZGF0ZUxhc3RTZWxlY3RvckxpbmVBbmRQb3NpdGlvbigp
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICQkID0gMDsKLSAgICB9Ci0gIHwgc2VsZWN0
b3JfbGlzdCBlcnJvciB7Ci0gICAgICAgICQkID0gMDsKLSAgICB9Ci0gICA7Ci0KLXNlbGVjdG9y
X3dpdGhfdHJhaWxpbmdfd2hpdGVzcGFjZToKLSAgICBzZWxlY3RvciBXSElURVNQQUNFIHsKLSAg
ICAgICAgJCQgPSAkMTsKLSAgICB9Ci0gICAgOwotCi1zZWxlY3RvcjoKLSAgICBzaW1wbGVfc2Vs
ZWN0b3IgewotICAgICAgICAkJCA9ICQxOwotICAgIH0KLSAgICB8IHNlbGVjdG9yX3dpdGhfdHJh
aWxpbmdfd2hpdGVzcGFjZQotICAgIHsKLSAgICAgICAgJCQgPSAkMTsKLSAgICB9Ci0gICAgfCBz
ZWxlY3Rvcl93aXRoX3RyYWlsaW5nX3doaXRlc3BhY2Ugc2ltcGxlX3NlbGVjdG9yCi0gICAgewot
ICAgICAgICAkJCA9ICQyOwotICAgICAgICBpZiAoISQxKQotICAgICAgICAgICAgJCQgPSAwOwot
ICAgICAgICBlbHNlIGlmICgkJCkgewotICAgICAgICAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGVu
ZCA9ICQkOwotICAgICAgICAgICAgd2hpbGUgKGVuZC0+dGFnSGlzdG9yeSgpKQotICAgICAgICAg
ICAgICAgIGVuZCA9IGVuZC0+dGFnSGlzdG9yeSgpOwotICAgICAgICAgICAgZW5kLT5zZXRSZWxh
dGlvbihDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudCk7Ci0gICAgICAgICAgICBlbmQtPnNldFRhZ0hp
c3RvcnkocGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkMSkpOwotICAgICAgICB9Ci0gICAg
fQotICAgIHwgc2VsZWN0b3IgY29tYmluYXRvciBzaW1wbGVfc2VsZWN0b3IgewotICAgICAgICAk
JCA9ICQzOwotICAgICAgICBpZiAoISQxKQotICAgICAgICAgICAgJCQgPSAwOwotICAgICAgICBl
bHNlIGlmICgkJCkgewotICAgICAgICAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGVuZCA9ICQkOwot
ICAgICAgICAgICAgd2hpbGUgKGVuZC0+dGFnSGlzdG9yeSgpKQotICAgICAgICAgICAgICAgIGVu
ZCA9IGVuZC0+dGFnSGlzdG9yeSgpOwotICAgICAgICAgICAgZW5kLT5zZXRSZWxhdGlvbigkMik7
Ci0gICAgICAgICAgICBlbmQtPnNldFRhZ0hpc3RvcnkocGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxl
Y3RvcigkMSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHwgc2VsZWN0b3IgZXJyb3IgewotICAg
ICAgICAkJCA9IDA7Ci0gICAgfQotICAgIDsKLQotbmFtZXNwYWNlX3NlbGVjdG9yOgotICAgIC8q
IGVtcHR5ICovICd8JyB7ICQkLmNsZWFyKCk7IH0KLSAgICB8ICcqJyAnfCcgeyBzdGF0aWMgTENo
YXIgc3RhciA9ICcqJzsgJCQuaW5pdCgmc3RhciwgMSk7IH0KLSAgICB8IElERU5UICd8JyB7ICQk
ID0gJDE7IH0KLTsKLSAgICAKLXNpbXBsZV9zZWxlY3RvcjoKLSAgICBlbGVtZW50X25hbWUgewot
ICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAk
JC0+c2V0VGFnKFF1YWxpZmllZE5hbWUobnVsbEF0b20sICQxLCBwYXJzZXItPm1fZGVmYXVsdE5h
bWVzcGFjZSkpOwotICAgIH0KLSAgICB8IGVsZW1lbnRfbmFtZSBzcGVjaWZpZXJfbGlzdCB7Ci0g
ICAgICAgICQkID0gJDI7Ci0gICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgIHBhcnNlci0+dXBk
YXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShudWxsQXRvbSwgJDEsICQkKTsKLSAgICB9Ci0g
ICAgfCBzcGVjaWZpZXJfbGlzdCB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgICAgIGlmICgkJCkK
LSAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShudWxs
QXRvbSwgc3RhckF0b20sICQkKTsKLSAgICB9Ci0gICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3IgZWxl
bWVudF9uYW1lIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3Io
KTsKLSAgICAgICAgJCQtPnNldFRhZyhwYXJzZXItPmRldGVybWluZU5hbWVJbk5hbWVzcGFjZSgk
MSwgJDIpKTsKLSAgICB9Ci0gICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3IgZWxlbWVudF9uYW1lIHNw
ZWNpZmllcl9saXN0IHsKLSAgICAgICAgJCQgPSAkMzsKLSAgICAgICAgaWYgKCQkKQotICAgICAg
ICAgICAgcGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCAkMiwgJCQp
OwotICAgIH0KLSAgICB8IG5hbWVzcGFjZV9zZWxlY3RvciBzcGVjaWZpZXJfbGlzdCB7Ci0gICAg
ICAgICQkID0gJDI7Ci0gICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgIHBhcnNlci0+dXBkYXRl
U3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSgkMSwgc3RhckF0b20sICQkKTsKLSAgICB9Ci0gIDsK
LQotc2ltcGxlX3NlbGVjdG9yX2xpc3Q6Ci0gICAgc2ltcGxlX3NlbGVjdG9yICVwcmVjIFVOSU1Q
T1JUQU5UX1RPSyB7Ci0gICAgICAgIGlmICgkMSkgewotICAgICAgICAgICAgJCQgPSBwYXJzZXIt
PmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3JWZWN0b3IoKTsKLSAgICAgICAgICAgICQkLT5hcHBlbmQo
cGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkMSkpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICQkID0gMDsKLSAgICB9Ci0gICAgfCBzaW1wbGVfc2VsZWN0b3JfbGlzdCBtYXliZV9z
cGFjZSAnLCcgbWF5YmVfc3BhY2Ugc2ltcGxlX3NlbGVjdG9yICVwcmVjIFVOSU1QT1JUQU5UX1RP
SyB7Ci0gICAgICAgIGlmICgkMSAmJiAkNSkgewotICAgICAgICAgICAgJCQgPSAkMTsKLSAgICAg
ICAgICAgICQkLT5hcHBlbmQocGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkNSkpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICQkID0gMDsKLSAgICB9Ci0gICAgfCBzaW1wbGVfc2Vs
ZWN0b3JfbGlzdCBlcnJvciB7Ci0gICAgICAgICQkID0gMDsKLSAgICB9Ci0gIDsKLQotZWxlbWVu
dF9uYW1lOgotICAgIElERU5UIHsKLSAgICAgICAgQ1NTUGFyc2VyU3RyaW5nJiBzdHIgPSAkMTsK
LSAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50KQotICAgICAgICAg
ICAgc3RyLmxvd2VyKCk7Ci0gICAgICAgICQkID0gc3RyOwotICAgIH0KLSAgICB8ICcqJyB7Ci0g
ICAgICAgIHN0YXRpYyBMQ2hhciBzdGFyID0gJyonOwotICAgICAgICAkJC5pbml0KCZzdGFyLCAx
KTsKLSAgICB9Ci0gIDsKLQotc3BlY2lmaWVyX2xpc3Q6Ci0gICAgc3BlY2lmaWVyIHsKLSAgICAg
ICAgJCQgPSAkMTsKLSAgICB9Ci0gICAgfCBzcGVjaWZpZXJfbGlzdCBzcGVjaWZpZXIgewotICAg
ICAgICBpZiAoISQyKQotICAgICAgICAgICAgJCQgPSAwOwotICAgICAgICBlbHNlIGlmICgkMSkK
LSAgICAgICAgICAgICQkID0gcGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzKCQxLCAkMik7Ci0gICAg
fQotICAgIHwgc3BlY2lmaWVyX2xpc3QgZXJyb3IgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQot
OwotCi1zcGVjaWZpZXI6Ci0gICAgSURTRUwgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRl
RmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6Oklk
KTsKLSAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0Lm1vZGUgPT0gQ1NTUXVpcmtzTW9kZSkK
LSAgICAgICAgICAgICQxLmxvd2VyKCk7Ci0gICAgICAgICQkLT5zZXRWYWx1ZSgkMSk7Ci0gICAg
fQotICB8IEhFWCB7Ci0gICAgICAgIGlmICgkMVswXSA+PSAnMCcgJiYgJDFbMF0gPD0gJzknKSB7
Ci0gICAgICAgICAgICAkJCA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkJCA9
IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAgICAgJCQtPnNldE1h
dGNoKENTU1NlbGVjdG9yOjpJZCk7Ci0gICAgICAgICAgICBpZiAocGFyc2VyLT5tX2NvbnRleHQu
bW9kZSA9PSBDU1NRdWlya3NNb2RlKQotICAgICAgICAgICAgICAgICQxLmxvd2VyKCk7Ci0gICAg
ICAgICAgICAkJC0+c2V0VmFsdWUoJDEpOwotICAgICAgICB9Ci0gICAgfQotICB8IGNsYXNzCi0g
IHwgYXR0cmliCi0gIHwgcHNldWRvCi0gICAgOwotCi1jbGFzczoKLSAgICAnLicgSURFTlQgewot
ICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAk
JC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OkNsYXNzKTsKLSAgICAgICAgaWYgKHBhcnNlci0+bV9j
b250ZXh0Lm1vZGUgPT0gQ1NTUXVpcmtzTW9kZSkKLSAgICAgICAgICAgICQyLmxvd2VyKCk7Ci0g
ICAgICAgICQkLT5zZXRWYWx1ZSgkMik7Ci0gICAgfQotICA7Ci0KLWF0dHJfbmFtZToKLSAgICBJ
REVOVCBtYXliZV9zcGFjZSB7Ci0gICAgICAgIENTU1BhcnNlclN0cmluZyYgc3RyID0gJDE7Ci0g
ICAgICAgIGlmIChwYXJzZXItPm1fY29udGV4dC5pc0hUTUxEb2N1bWVudCkKLSAgICAgICAgICAg
IHN0ci5sb3dlcigpOwotICAgICAgICAkJCA9IHN0cjsKLSAgICB9Ci0gICAgOwotCi1hdHRyaWI6
Ci0gICAgJ1snIG1heWJlX3NwYWNlIGF0dHJfbmFtZSAnXScgewotICAgICAgICAkJCA9IHBhcnNl
ci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAkJC0+c2V0QXR0cmlidXRlKFF1
YWxpZmllZE5hbWUobnVsbEF0b20sICQzLCBudWxsQXRvbSkpOwotICAgICAgICAkJC0+c2V0TWF0
Y2goQ1NTU2VsZWN0b3I6OlNldCk7Ci0gICAgfQotICAgIHwgJ1snIG1heWJlX3NwYWNlIGF0dHJf
bmFtZSBtYXRjaCBtYXliZV9zcGFjZSBpZGVudF9vcl9zdHJpbmcgbWF5YmVfc3BhY2UgJ10nIHsK
LSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKLSAgICAgICAg
JCQtPnNldEF0dHJpYnV0ZShRdWFsaWZpZWROYW1lKG51bGxBdG9tLCAkMywgbnVsbEF0b20pKTsK
LSAgICAgICAgJCQtPnNldE1hdGNoKChDU1NTZWxlY3Rvcjo6TWF0Y2gpJDQpOwotICAgICAgICAk
JC0+c2V0VmFsdWUoJDYpOwotICAgIH0KLSAgICB8ICdbJyBtYXliZV9zcGFjZSBuYW1lc3BhY2Vf
c2VsZWN0b3IgYXR0cl9uYW1lICddJyB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9h
dGluZ1NlbGVjdG9yKCk7Ci0gICAgICAgICQkLT5zZXRBdHRyaWJ1dGUocGFyc2VyLT5kZXRlcm1p
bmVOYW1lSW5OYW1lc3BhY2UoJDMsICQ0KSk7Ci0gICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6U2V0KTsKLSAgICB9Ci0gICAgfCAnWycgbWF5YmVfc3BhY2UgbmFtZXNwYWNlX3NlbGVj
dG9yIGF0dHJfbmFtZSBtYXRjaCBtYXliZV9zcGFjZSBpZGVudF9vcl9zdHJpbmcgbWF5YmVfc3Bh
Y2UgJ10nIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsK
LSAgICAgICAgJCQtPnNldEF0dHJpYnV0ZShwYXJzZXItPmRldGVybWluZU5hbWVJbk5hbWVzcGFj
ZSgkMywgJDQpKTsKLSAgICAgICAgJCQtPnNldE1hdGNoKChDU1NTZWxlY3Rvcjo6TWF0Y2gpJDUp
OwotICAgICAgICAkJC0+c2V0VmFsdWUoJDcpOwotICAgIH0KLSAgOwotCi1tYXRjaDoKLSAgICAn
PScgewotICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpFeGFjdDsKLSAgICB9Ci0gICAgfCBJTkNM
VURFUyB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6Okxpc3Q7Ci0gICAgfQotICAgIHwgREFT
SE1BVENIIHsKLSAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6SHlwaGVuOwotICAgIH0KLSAgICB8
IEJFR0lOU1dJVEggewotICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCZWdpbjsKLSAgICB9Ci0g
ICAgfCBFTkRTV0lUSCB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkVuZDsKLSAgICB9Ci0g
ICAgfCBDT05UQUlOUyB7Ci0gICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkNvbnRhaW47Ci0gICAg
fQotICAgIDsKLQotaWRlbnRfb3Jfc3RyaW5nOgotICAgIElERU5UCi0gIHwgU1RSSU5HCi0gICAg
OwotCi1wc2V1ZG9fcGFnZToKLSAgICAnOicgSURFTlQgewotICAgICAgICAkJCA9IHBhcnNlci0+
Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0
b3I6OlBhZ2VQc2V1ZG9DbGFzcyk7Ci0gICAgICAgICQyLmxvd2VyKCk7Ci0gICAgICAgICQkLT5z
ZXRWYWx1ZSgkMik7Ci0gICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5cGUgPSAkJC0+
cHNldWRvVHlwZSgpOwotICAgICAgICBpZiAodHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bikKLSAgICAgICAgICAgICQkID0gMDsKLSAgICB9Ci0KLXBzZXVkbzoKLSAgICAnOicgSURF
TlQgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAg
ICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKLSAgICAgICAgJDIu
bG93ZXIoKTsKLSAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKLSAgICAgICAgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgdHlwZSA9ICQkLT5wc2V1ZG9UeXBlKCk7Ci0gICAgICAgIGlmICh0eXBlID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAgICAgJCQgPSAwOwotICAgIH0K
LSAgICB8ICc6JyAnOicgSURFTlQgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRp
bmdTZWxlY3RvcigpOwotICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0Vs
ZW1lbnQpOwotICAgICAgICAkMy5sb3dlcigpOwotICAgICAgICAkJC0+c2V0VmFsdWUoJDMpOwot
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjYWxsIGlzIG5lZWRlZCB0byBmb3JjZSBzZWxlY3RvciB0
byBjb21wdXRlIHRoZSBwc2V1ZG9UeXBlIGVhcmx5IGVub3VnaC4KLSAgICAgICAgJCQtPnBzZXVk
b1R5cGUoKTsKLSAgICB9Ci0gICAgLy8gdXNlIGJ5IDotd2Via2l0LWFueS4KLSAgICAvLyBGSVhN
RTogc2hvdWxkIHdlIHN1cHBvcnQgZ2VuZXJpYyBzZWxlY3RvcnMgaGVyZSBvciBqdXN0IHNpbXBs
ZV9zZWxlY3RvcnM/Ci0gICAgLy8gVXNlIHNpbXBsZV9zZWxlY3Rvcl9saXN0IGZvciBub3cgdG8g
bWF0Y2ggLW1vei1hbnkuCi0gICAgLy8gU2VlIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMv
UHVibGljL3d3dy1zdHlsZS8yMDEwU2VwLzA1NjYuaHRtbCBmb3Igc29tZQotICAgIC8vIHJlbGF0
ZWQgZGlzY3Vzc2lvbiB3aXRoIHJlc3BlY3QgdG8gOm5vdC4KLSAgICB8ICc6JyBBTllGVU5DVElP
TiBtYXliZV9zcGFjZSBzaW1wbGVfc2VsZWN0b3JfbGlzdCBtYXliZV9zcGFjZSAnKScgewotICAg
ICAgICBpZiAoJDQpIHsKLSAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1Nl
bGVjdG9yKCk7Ci0gICAgICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzKTsKLSAgICAgICAgICAgICQkLT5hZG9wdFNlbGVjdG9yVmVjdG9yKCpwYXJzZXItPnNpbmtG
bG9hdGluZ1NlbGVjdG9yVmVjdG9yKCQ0KSk7Ci0gICAgICAgICAgICAkMi5sb3dlcigpOwotICAg
ICAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKLSAgICAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1
ZG9UeXBlIHR5cGUgPSAkJC0+cHNldWRvVHlwZSgpOwotICAgICAgICAgICAgaWYgKHR5cGUgIT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0FueSkKLSAgICAgICAgICAgICAgICAkJCA9IDA7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgJCQgPSAwOwotICAgIH0KLSAgICAvLyB1c2VkIGJ5IDpudGgt
KihheCtiKQotICAgIHwgJzonIEZVTkNUSU9OIG1heWJlX3NwYWNlIE5USCBtYXliZV9zcGFjZSAn
KScgewotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAg
ICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKLSAgICAgICAgJCQt
PnNldEFyZ3VtZW50KCQ0KTsKLSAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKLSAgICAgICAgQ1NT
U2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSA9ICQkLT5wc2V1ZG9UeXBlKCk7Ci0gICAgICAgIGlm
ICh0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAgICAgJCQgPSAw
OwotICAgIH0KLSAgICAvLyB1c2VkIGJ5IDpudGgtKgotICAgIHwgJzonIEZVTkNUSU9OIG1heWJl
X3NwYWNlIG1heWJlX3VuYXJ5X29wZXJhdG9yIElOVEVHRVIgbWF5YmVfc3BhY2UgJyknIHsKLSAg
ICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKLSAgICAgICAgJCQt
PnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7Ci0gICAgICAgICQkLT5zZXRBcmd1
bWVudChTdHJpbmc6Om51bWJlcigkNCAqICQ1KSk7Ci0gICAgICAgICQkLT5zZXRWYWx1ZSgkMik7
Ci0gICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5cGUgPSAkJC0+cHNldWRvVHlwZSgp
OwotICAgICAgICBpZiAodHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKLSAgICAg
ICAgICAgICQkID0gMDsKLSAgICB9Ci0gICAgLy8gdXNlZCBieSA6bnRoLSoob2RkL2V2ZW4pIGFu
ZCA6bGFuZwotICAgIHwgJzonIEZVTkNUSU9OIG1heWJlX3NwYWNlIElERU5UIG1heWJlX3NwYWNl
ICcpJyB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7Ci0g
ICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwotICAgICAgICAk
JC0+c2V0QXJndW1lbnQoJDQpOwotICAgICAgICAkMi5sb3dlcigpOwotICAgICAgICAkJC0+c2V0
VmFsdWUoJDIpOwotICAgICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlID0gJCQtPnBz
ZXVkb1R5cGUoKTsKLSAgICAgICAgaWYgKHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25v
d24pCi0gICAgICAgICAgICAkJCA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb050aENoaWxkIHx8Ci0gICAgICAgICAgICAgICAgIHR5cGUgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb050aE9mVHlwZSB8fAotICAgICAgICAgICAgICAgICB0eXBlID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQgfHwKLSAgICAgICAgICAgICAgICAgdHlwZSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZSkgewotICAgICAgICAgICAgaWYgKCFpc1Zh
bGlkTnRoVG9rZW4oJDQpKQotICAgICAgICAgICAgICAgICQkID0gMDsKLSAgICAgICAgfQotICAg
IH0KLSAgICAvLyB1c2VkIGJ5IDpub3QKLSAgICB8ICc6JyBOT1RGVU5DVElPTiBtYXliZV9zcGFj
ZSBzaW1wbGVfc2VsZWN0b3IgbWF5YmVfc3BhY2UgJyknIHsKLSAgICAgICAgaWYgKCEkNCB8fCAh
JDQtPmlzU2ltcGxlKCkpCi0gICAgICAgICAgICAkJCA9IDA7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKLSAgICAgICAg
ICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwotCi0gICAgICAgICAg
ICBDU1NTZWxlY3RvclZlY3RvciBzZWxlY3RvclZlY3RvcjsKLSAgICAgICAgICAgIHNlbGVjdG9y
VmVjdG9yLmFwcGVuZChwYXJzZXItPnNpbmtGbG9hdGluZ1NlbGVjdG9yKCQ0KSk7Ci0gICAgICAg
ICAgICAkJC0+YWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvclZlY3Rvcik7Ci0KLSAgICAgICAg
ICAgICQyLmxvd2VyKCk7Ci0gICAgICAgICAgICAkJC0+c2V0VmFsdWUoJDIpOwotICAgICAgICB9
Ci0gICAgfQotICA7Ci0KLWRlY2xhcmF0aW9uX2xpc3Q6Ci0gICAgZGVjbGFyYXRpb24gewotICAg
ICAgICAkJCA9ICQxOwotICAgIH0KLSAgICB8IGRlY2xfbGlzdCBkZWNsYXJhdGlvbiB7Ci0gICAg
ICAgICQkID0gJDE7Ci0gICAgICAgIGlmICggJDIgKQotICAgICAgICAgICAgJCQgPSAkMjsKLSAg
ICB9Ci0gICAgfCBkZWNsX2xpc3QgewotICAgICAgICAkJCA9ICQxOwotICAgIH0KLSAgICB8IGVy
cm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciB7Ci0gICAgICAgICQkID0gZmFsc2U7Ci0gICAg
fQotICAgIHwgZXJyb3IgewotICAgICAgICAkJCA9IGZhbHNlOwotICAgIH0KLSAgICB8IGRlY2xf
bGlzdCBlcnJvciB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgfQotICAgIHwgZGVjbF9saXN0IGlu
dmFsaWRfYmxvY2tfbGlzdCB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgfQotICAgIDsKLQotZGVj
bF9saXN0OgotICAgIGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7Ci0gICAgICAgIHBhcnNl
ci0+bWFya1Byb3BlcnR5U3RhcnQoKTsKLSAgICAgICAgJCQgPSAkMTsKLSAgICB9Ci0gICAgfCBk
ZWNsYXJhdGlvbiBpbnZhbGlkX2Jsb2NrX2xpc3QgbWF5YmVfc3BhY2UgewotICAgICAgICAkJCA9
IGZhbHNlOwotICAgIH0KLSAgICB8IGRlY2xhcmF0aW9uIGludmFsaWRfYmxvY2tfbGlzdCAnOycg
bWF5YmVfc3BhY2UgewotICAgICAgICAkJCA9IGZhbHNlOwotICAgIH0KLSAgICB8IGVycm9yICc7
JyBtYXliZV9zcGFjZSB7Ci0gICAgICAgIHBhcnNlci0+bWFya1Byb3BlcnR5U3RhcnQoKTsKLSAg
ICAgICAgJCQgPSBmYWxzZTsKLSAgICB9Ci0gICAgfCBlcnJvciBpbnZhbGlkX2Jsb2NrX2xpc3Qg
ZXJyb3IgJzsnIG1heWJlX3NwYWNlIHsKLSAgICAgICAgJCQgPSBmYWxzZTsKLSAgICB9Ci0gICAg
fCBkZWNsX2xpc3QgZGVjbGFyYXRpb24gJzsnIG1heWJlX3NwYWNlIHsKLSAgICAgICAgcGFyc2Vy
LT5tYXJrUHJvcGVydHlTdGFydCgpOwotICAgICAgICAkJCA9ICQxOwotICAgICAgICBpZiAoJDIp
Ci0gICAgICAgICAgICAkJCA9ICQyOwotICAgIH0KLSAgICB8IGRlY2xfbGlzdCBlcnJvciAnOycg
bWF5YmVfc3BhY2UgewotICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7Ci0gICAg
ICAgICQkID0gJDE7Ci0gICAgfQotICAgIHwgZGVjbF9saXN0IGVycm9yIGludmFsaWRfYmxvY2tf
bGlzdCBlcnJvciAnOycgbWF5YmVfc3BhY2UgewotICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0
eVN0YXJ0KCk7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgfQotICAgIDsKLQotZGVjbGFyYXRpb246
Ci0gICAgVkFSX0RFRklOSVRJT04gJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyB7Ci0jaWYgRU5B
QkxFX0NTU19WQVJJQUJMRVMKLSAgICAgICAgcGFyc2VyLT5zdG9yZVZhcmlhYmxlRGVjbGFyYXRp
b24oJDEsIHBhcnNlci0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KSwgJDUpOwotICAgICAgICAk
JCA9IHRydWU7Ci0gICAgICAgIHBhcnNlci0+bWFya1Byb3BlcnR5RW5kKCQ1LCB0cnVlKTsKLSNl
bHNlCi0gICAgICAgICQkID0gZmFsc2U7Ci0jZW5kaWYKLSAgICB9Ci0gICAgfAotICAgIHByb3Bl
cnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gewotICAgICAgICAkJCA9IGZhbHNlOwotICAg
ICAgICBib29sIGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKCQxICYmICQ0
KSB7Ci0gICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gcGFyc2VyLT5zaW5rRmxvYXRp
bmdWYWx1ZUxpc3QoJDQpOwotICAgICAgICAgICAgaW50IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBw
YXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpOwotICAgICAgICAgICAgJCQgPSBwYXJz
ZXItPnBhcnNlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oJDEpLCAkNSk7Ci0gICAg
ICAgICAgICBpZiAoISQkKQotICAgICAgICAgICAgICAgIHBhcnNlci0+cm9sbGJhY2tMYXN0UHJv
cGVydGllcyhwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpIC0gb2xkUGFyc2VkUHJv
cGVydGllcyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaXNQcm9wZXJ0eVBh
cnNlZCA9IHRydWU7Ci0gICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gbnVsbHB0cjsK
LSAgICAgICAgfQotICAgICAgICBwYXJzZXItPm1hcmtQcm9wZXJ0eUVuZCgkNSwgaXNQcm9wZXJ0
eVBhcnNlZCk7Ci0gICAgfQotICAgIHwKLSAgICBwcm9wZXJ0eSBlcnJvciB7Ci0gICAgICAgICQk
ID0gZmFsc2U7Ci0gICAgfQotICAgIHwKLSAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJy
b3IgZXhwciBwcmlvIHsKLSAgICAgICAgLyogVGhlIGRlZmF1bHQgbW92YWJsZSB0eXBlIHRlbXBs
YXRlIGhhcyBsZXR0ZXItc3BhY2luZzogLm5vbmU7ICBIYW5kbGUgdGhpcyBieSBsb29raW5nIGZv
cgotICAgICAgICBlcnJvciB0b2tlbnMgYXQgdGhlIHN0YXJ0IG9mIGFuIGV4cHIsIHJlY292ZXIg
dGhlIGV4cHIgYW5kIHRoZW4gdHJlYXQgYXMgYW4gZXJyb3IsIGNsZWFuaW5nCi0gICAgICAgIHVw
IGFuZCBkZWxldGluZyB0aGUgc2hpZnRlZCBleHByLiAgKi8KLSAgICAgICAgcGFyc2VyLT5tYXJr
UHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgJCQgPSBmYWxzZTsKLSAgICB9Ci0g
ICAgfAotICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gZXJyb3IgewotICAg
ICAgICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBwIHtjb2xvcjogcmVkICFp
bXBvcnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJhdGlvbiAqLwotICAgICAg
ICBwYXJzZXItPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwotICAgICAgICAkJCA9IGZh
bHNlOwotICAgIH0KLSAgICB8Ci0gICAgSU1QT1JUQU5UX1NZTSBtYXliZV9zcGFjZSB7Ci0gICAg
ICAgIC8qIEhhbmRsZSB0aGlzIGNhc2U6IGRpdiB7IHRleHQtYWxpZ246IGNlbnRlcjsgIWltcG9y
dGFudCB9IEp1c3QgcmVkdWNlIGF3YXkgdGhlIHN0cmF5ICFpbXBvcnRhbnQuICovCi0gICAgICAg
ICQkID0gZmFsc2U7Ci0gICAgfQotICAgIHwKLSAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2Ug
ewotICAgICAgICAvKiBkaXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJlZHVjZSBhd2F5IHRoaXMg
cHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8KLSAgICAgICAgcGFyc2VyLT5tYXJrUHJvcGVydHlF
bmQoZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgJCQgPSBmYWxzZTsKLSAgICB9Ci0gICAgfAotICAg
IHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBlcnJvciB7Ci0gICAgICAgIC8qIGlmIHdlIGNvbWUg
YWNyb3NzIHJ1bGVzIHdpdGggaW52YWxpZCB2YWx1ZXMgbGlrZSB0aGlzIGNhc2U6IHAgeyB3ZWln
aHQ6ICo7IH0sIGp1c3QgZGlzY2FyZCB0aGUgcnVsZSAqLwotICAgICAgICBwYXJzZXItPm1hcmtQ
cm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwotICAgICAgICAkJCA9IGZhbHNlOwotICAgIH0KLSAg
ICB8Ci0gICAgcHJvcGVydHkgaW52YWxpZF9ibG9jayB7Ci0gICAgICAgIC8qIGlmIHdlIGNvbWUg
YWNyb3NzOiBkaXYgeyBjb2xvcns7Y29sb3I6bWFyb29ufSB9LCBpZ25vcmUgZXZlcnl0aGluZyB3
aXRoaW4gY3VybHkgYnJhY2tldHMgKi8KLSAgICAgICAgJCQgPSBmYWxzZTsKLSAgICB9Ci0gIDsK
LQotcHJvcGVydHk6Ci0gICAgSURFTlQgbWF5YmVfc3BhY2UgewotICAgICAgICAkJCA9IGNzc1By
b3BlcnR5SUQoJDEpOwotICAgIH0KLSAgOwotCi1wcmlvOgotICAgIElNUE9SVEFOVF9TWU0gbWF5
YmVfc3BhY2UgeyAkJCA9IHRydWU7IH0KLSAgICB8IC8qIGVtcHR5ICovIHsgJCQgPSBmYWxzZTsg
fQotICA7Ci0KLWV4cHI6Ci0gICAgdGVybSB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVG
bG9hdGluZ1ZhbHVlTGlzdCgpOwotICAgICAgICAkJC0+YWRkVmFsdWUocGFyc2VyLT5zaW5rRmxv
YXRpbmdWYWx1ZSgkMSkpOwotICAgIH0KLSAgICB8IGV4cHIgb3BlcmF0b3IgdGVybSB7Ci0gICAg
ICAgICQkID0gJDE7Ci0gICAgICAgIGlmICgkJCkgewotICAgICAgICAgICAgaWYgKCQyKSB7Ci0g
ICAgICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUgdjsKLSAgICAgICAgICAgICAgICB2LmlkID0g
MDsKLSAgICAgICAgICAgICAgICB2LnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3I7Ci0g
ICAgICAgICAgICAgICAgdi5pVmFsdWUgPSAkMjsKLSAgICAgICAgICAgICAgICAkJC0+YWRkVmFs
dWUodik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkJC0+YWRkVmFsdWUocGFyc2VyLT5z
aW5rRmxvYXRpbmdWYWx1ZSgkMykpOwotICAgICAgICB9Ci0gICAgfQotICAgIHwgZXhwciBpbnZh
bGlkX2Jsb2NrX2xpc3QgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQotICAgIHwgZXhwciBpbnZh
bGlkX2Jsb2NrX2xpc3QgZXJyb3IgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQotICAgIHwgZXhw
ciBlcnJvciB7Ci0gICAgICAgICQkID0gMDsKLSAgICB9Ci0gIDsKLQotb3BlcmF0b3I6Ci0gICAg
Jy8nIG1heWJlX3NwYWNlIHsKLSAgICAgICAgJCQgPSAnLyc7Ci0gICAgfQotICB8ICcsJyBtYXli
ZV9zcGFjZSB7Ci0gICAgICAgICQkID0gJywnOwotICAgIH0KLSAgfCAvKiBlbXB0eSAqLyB7Ci0g
ICAgICAgICQkID0gMDsKLSAgfQotICA7Ci0KLXRlcm06Ci0gIHVuYXJ5X3Rlcm0geyAkJCA9ICQx
OyB9Ci0gIHwgdW5hcnlfb3BlcmF0b3IgdW5hcnlfdGVybSB7ICQkID0gJDI7ICQkLmZWYWx1ZSAq
PSAkMTsgfQotICB8IFNUUklORyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0g
JDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzsgfQotICB8IElERU5U
IG1heWJlX3NwYWNlIHsKLSAgICAgICQkLmlkID0gY3NzVmFsdWVLZXl3b3JkSUQoJDEpOwotICAg
ICAgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ7Ci0gICAgICAkJC5zdHJp
bmcgPSAkMTsKLSAgfQotICAvKiBXZSBtaWdodCBuZWVkIHRvIGFjdHVhbGx5IHBhcnNlIHRoZSBu
dW1iZXIgZnJvbSBhIGRpbWVuc2lvbiwgYnV0IHdlIGNhbid0IGp1c3QgcHV0IHNvbWV0aGluZyB0
aGF0IHVzZXMgJCQuc3RyaW5nIGludG8gdW5hcnlfdGVybS4gKi8KLSAgfCBESU1FTiBtYXliZV9z
cGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0RJTUVOU0lPTjsgfQotICB8IHVuYXJ5X29wZXJhdG9yIERJTUVOIG1heWJlX3Nw
YWNlIHsgJCQuaWQgPSAwOyAkJC5zdHJpbmcgPSAkMjsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfRElNRU5TSU9OOyB9Ci0gIHwgVVJJIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAk
JC5zdHJpbmcgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJOyB9Ci0g
IHwgVU5JQ09ERVJBTkdFIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5zdHJpbmcgPSAkMTsg
JCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVU5JQ09ERV9SQU5HRTsgfQotICB8IEhF
WCBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gJDE7ICQkLnVuaXQgPSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9IRVhDT0xPUjsgfQotICB8ICcjJyBtYXliZV9zcGFj
ZSB7ICQkLmlkID0gMDsgJCQuc3RyaW5nID0gQ1NTUGFyc2VyU3RyaW5nKCk7ICQkLnVuaXQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9IRVhDT0xPUjsgfSAvKiBIYW5kbGUgZXJyb3Ig
Y2FzZTogImNvbG9yOiAjOyIgKi8KLSAgfCBWQVJGVU5DVElPTiBtYXliZV9zcGFjZSBJREVOVCAn
KScgbWF5YmVfc3BhY2UgewotI2lmIEVOQUJMRV9DU1NfVkFSSUFCTEVTCi0gICAgICAkJC5pZCA9
IDA7Ci0gICAgICAkJC5zdHJpbmcgPSAkMzsKLSAgICAgICQkLnVuaXQgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1ZBUklBQkxFX05BTUU7Ci0jZW5kaWYKLSAgfQotICAvKiBGSVhNRTogYWNjb3Jk
aW5nIHRvIHRoZSBzcGVjcyBhIGZ1bmN0aW9uIGNhbiBoYXZlIGEgdW5hcnlfb3BlcmF0b3IgaW4g
ZnJvbnQuIEkga25vdyBubyBjYXNlIHdoZXJlIHRoaXMgbWFrZXMgc2Vuc2UgKi8KLSAgfCBmdW5j
dGlvbiB7Ci0gICAgICAkJCA9ICQxOwotICB9Ci0gIHwgY2FsY19mdW5jdGlvbiB7Ci0gICAgICAk
JCA9ICQxOwotICB9Ci0gIHwgbWluX29yX21heF9mdW5jdGlvbiB7Ci0gICAgICAkJCA9ICQxOwot
ICB9Ci0gIHwgJyUnIG1heWJlX3NwYWNlIHsgLyogSGFuZGxlIHdpZHRoOiAlOyAqLwotICAgICAg
JCQuaWQgPSAwOyAkJC51bml0ID0gMDsKLSAgfQotICA7Ci0KLXVuYXJ5X3Rlcm06Ci0gIElOVEVH
RVIgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmlzSW50ID0gdHJ1ZTsgJCQuZlZhbHVlID0g
JDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUjsgfQotICB8IEZMT0FU
VE9LRU4gbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmlzSW50ID0gZmFsc2U7ICQkLmZWYWx1
ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI7IH0KLSAgfCBQ
RVJDRU5UQUdFIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5p
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRTsgfQotICB8IFBYUyBtYXliZV9z
cGFjZSB7ICQkLmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BYOyB9Ci0gIHwgQ01TIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFs
dWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ007IH0KLSAgfCBNTVMg
bWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19NTTsgfQotICB8IElOUyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsg
JCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lOOyB9Ci0g
IHwgUFRTIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFQ7IH0KLSAgfCBQQ1MgbWF5YmVfc3BhY2UgeyAkJC5p
ZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
QzsgfQotICB8IERFR1MgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAk
JC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ERUc7IH0KLSAgfCBSQURTIG1heWJlX3Nw
YWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUkFEOyB9Ci0gIHwgR1JBRFMgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZW
YWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19HUkFEOyB9Ci0gIHwg
VFVSTlMgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19UVVJOOyB9Ci0gIHwgTVNFQ1MgbWF5YmVfc3BhY2UgeyAk
JC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19NUzsgfQotICB8IFNFQ1MgbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQx
OyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TOyB9Ci0gIHwgSEVSVFogbWF5YmVf
c3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19IWjsgfQotICB8IEtIRVJUWiBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQu
ZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0tIWjsgfQotICB8
IEVNUyBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VNUzsgfQotICB8IFFFTVMgbWF5YmVfc3BhY2UgeyAkJC5p
ZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUGFyc2VyVmFsdWU6OlFfRU1TOyB9
Ci0gIHwgRVhTIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5p
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRVhTOyB9Ci0gIHwgUkVNUyBtYXliZV9zcGFjZSB7
Ci0gICAgICAkJC5pZCA9IDA7Ci0gICAgICAkJC5mVmFsdWUgPSAkMTsKLSAgICAgICQkLnVuaXQg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVM7Ci0gICAgICBpZiAocGFyc2VyLT5tX3N0eWxl
U2hlZXQpCi0gICAgICAgICAgcGFyc2VyLT5tX3N0eWxlU2hlZXQtPnBhcnNlclNldFVzZXNSZW1V
bml0cyh0cnVlKTsKLSAgfQotICB8IFZXIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFs
dWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVlc7IH0KLSAgfCBWSCBt
YXliZV9zcGFjZSB7ICQkLmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1ZIOyB9Ci0gIHwgVk1JTiBtYXliZV9zcGFjZSB7ICQkLmlkID0gMDsg
JCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZNSU47IH0K
LSAgfCBEUFBYIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5p
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWDsgfQotICB8IERQSSBtYXliZV9zcGFjZSB7
ICQkLmlkID0gMDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0RQSTsgfQotICB8IERQQ00gbWF5YmVfc3BhY2UgeyAkJC5pZCA9IDA7ICQkLmZWYWx1ZSA9
ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNOyB9Ci0gIDsKLQotZnVu
Y3Rpb246Ci0gICAgRlVOQ1RJT04gbWF5YmVfc3BhY2UgZXhwciAnKScgbWF5YmVfc3BhY2Ugewot
ICAgICAgICBDU1NQYXJzZXJGdW5jdGlvbiogZiA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdGdW5j
dGlvbigpOwotICAgICAgICBmLT5uYW1lID0gJDE7Ci0gICAgICAgIGYtPmFyZ3MgPSBwYXJzZXIt
PnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkMyk7Ci0gICAgICAgICQkLmlkID0gMDsKLSAgICAgICAg
JCQudW5pdCA9IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbjsKLSAgICAgICAgJCQuZnVuY3Rpb24g
PSBmOwotICAgIH0gfAotICAgIEZVTkNUSU9OIG1heWJlX3NwYWNlIGV4cHIgVE9LRU5fRU9GIHsK
LSAgICAgICAgQ1NTUGFyc2VyRnVuY3Rpb24qIGYgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nRnVu
Y3Rpb24oKTsKLSAgICAgICAgZi0+bmFtZSA9ICQxOwotICAgICAgICBmLT5hcmdzID0gcGFyc2Vy
LT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDMpOwotICAgICAgICAkJC5pZCA9IDA7Ci0gICAgICAg
ICQkLnVuaXQgPSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb247Ci0gICAgICAgICQkLmZ1bmN0aW9u
ID0gZjsKLSAgICB9IHwKLSAgICBGVU5DVElPTiBtYXliZV9zcGFjZSAnKScgbWF5YmVfc3BhY2Ug
ewotICAgICAgICBDU1NQYXJzZXJGdW5jdGlvbiogZiA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdG
dW5jdGlvbigpOwotICAgICAgICBmLT5uYW1lID0gJDE7Ci0gICAgICAgIENTU1BhcnNlclZhbHVl
TGlzdCogdmFsdWVMaXN0ID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1ZhbHVlTGlzdCgpOwotICAg
ICAgICBmLT5hcmdzID0gcGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QodmFsdWVMaXN0KTsK
LSAgICAgICAgJCQuaWQgPSAwOwotICAgICAgICAkJC51bml0ID0gQ1NTUGFyc2VyVmFsdWU6OkZ1
bmN0aW9uOwotICAgICAgICAkJC5mdW5jdGlvbiA9IGY7Ci0gICAgfSB8Ci0gICAgRlVOQ1RJT04g
bWF5YmVfc3BhY2UgZXJyb3IgewotICAgICAgICBDU1NQYXJzZXJGdW5jdGlvbiogZiA9IHBhcnNl
ci0+Y3JlYXRlRmxvYXRpbmdGdW5jdGlvbigpOwotICAgICAgICBmLT5uYW1lID0gJDE7Ci0gICAg
ICAgIGYtPmFyZ3MgPSBudWxscHRyOwotICAgICAgICAkJC5pZCA9IDA7Ci0gICAgICAgICQkLnVu
aXQgPSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb247Ci0gICAgICAgICQkLmZ1bmN0aW9uID0gZjsK
LSAgfQotICA7Ci0gCi1jYWxjX2Z1bmNfdGVybToKLSAgdW5hcnlfdGVybSB7ICQkID0gJDE7IH0K
LSAgfCBWQVJGVU5DVElPTiBtYXliZV9zcGFjZSBJREVOVCAnKScgbWF5YmVfc3BhY2UgewotI2lm
IEVOQUJMRV9DU1NfVkFSSUFCTEVTCi0gICAgICAkJC5pZCA9IDA7Ci0gICAgICAkJC5zdHJpbmcg
PSAkMzsKLSAgICAgICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZBUklBQkxFX05B
TUU7Ci0jZW5kaWYKLSAgfQotICB8IHVuYXJ5X29wZXJhdG9yIHVuYXJ5X3Rlcm0geyAkJCA9ICQy
OyAkJC5mVmFsdWUgKj0gJDE7IH0KLSAgOwotCi1jYWxjX2Z1bmNfb3BlcmF0b3I6Ci0gICAgJysn
IFdISVRFU1BBQ0UgewotICAgICAgICAkJCA9ICcrJzsKLSAgICB9Ci0gICAgfCAnLScgV0hJVEVT
UEFDRSB7Ci0gICAgICAgICQkID0gJy0nOwotICAgIH0KLSAgICB8ICcqJyBtYXliZV9zcGFjZSB7
Ci0gICAgICAgICQkID0gJyonOwotICAgIH0KLSAgICB8ICcvJyBtYXliZV9zcGFjZSB7Ci0gICAg
ICAgICQkID0gJy8nOwotICAgIH0KLSAgOwotCi1jYWxjX2Z1bmNfcGFyZW5fZXhwcjoKLSAgICAn
KCcgbWF5YmVfc3BhY2UgY2FsY19mdW5jX2V4cHIgbWF5YmVfc3BhY2UgJyknIG1heWJlX3NwYWNl
IHsKLSAgICAgICAgaWYgKCQzKSB7Ci0gICAgICAgICAgICAkJCA9ICQzOwotICAgICAgICAgICAg
Q1NTUGFyc2VyVmFsdWUgdjsKLSAgICAgICAgICAgIHYuaWQgPSAwOwotICAgICAgICAgICAgdi51
bml0ID0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yOwotICAgICAgICAgICAgdi5pVmFsdWUgPSAn
KCc7Ci0gICAgICAgICAgICAkJC0+aW5zZXJ0VmFsdWVBdCgwLCB2KTsKLSAgICAgICAgICAgIHYu
aVZhbHVlID0gJyknOwotICAgICAgICAgICAgJCQtPmFkZFZhbHVlKHYpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICQkID0gMDsKLSAgICB9Ci0KLWNhbGNfZnVuY19leHByOgotICAgIGNh
bGNfZnVuY190ZXJtIG1heWJlX3NwYWNlIHsKLSAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZs
b2F0aW5nVmFsdWVMaXN0KCk7Ci0gICAgICAgICQkLT5hZGRWYWx1ZShwYXJzZXItPnNpbmtGbG9h
dGluZ1ZhbHVlKCQxKSk7Ci0gICAgfQotICAgIHwgY2FsY19mdW5jX2V4cHIgY2FsY19mdW5jX29w
ZXJhdG9yIGNhbGNfZnVuY190ZXJtIHsKLSAgICAgICAgaWYgKCQxICYmICQyKSB7Ci0gICAgICAg
ICAgICAkJCA9ICQxOwotICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUgdjsKLSAgICAgICAgICAg
IHYuaWQgPSAwOwotICAgICAgICAgICAgdi51bml0ID0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9y
OwotICAgICAgICAgICAgdi5pVmFsdWUgPSAkMjsKLSAgICAgICAgICAgICQkLT5hZGRWYWx1ZSh2
KTsKLSAgICAgICAgICAgICQkLT5hZGRWYWx1ZShwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlKCQz
KSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgJCQgPSAwOwotCi0gICAgfQotICAgIHwg
Y2FsY19mdW5jX2V4cHIgY2FsY19mdW5jX29wZXJhdG9yIGNhbGNfZnVuY19wYXJlbl9leHByIHsK
LSAgICAgICAgaWYgKCQxICYmICQyICYmICQzKSB7Ci0gICAgICAgICAgICAkJCA9ICQxOwotICAg
ICAgICAgICAgQ1NTUGFyc2VyVmFsdWUgdjsKLSAgICAgICAgICAgIHYuaWQgPSAwOwotICAgICAg
ICAgICAgdi51bml0ID0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yOwotICAgICAgICAgICAgdi5p
VmFsdWUgPSAkMjsKLSAgICAgICAgICAgICQkLT5hZGRWYWx1ZSh2KTsKLSAgICAgICAgICAgICQk
LT5leHRlbmQoKigkMykpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICAkJCA9IDA7Ci0g
ICAgfQotICAgIHwgY2FsY19mdW5jX3BhcmVuX2V4cHIKLSAgICB8IGNhbGNfZnVuY19leHByIGVy
cm9yIHsKLSAgICAgICAgJCQgPSAwOwotICAgIH0KLSAgOwotCi1jYWxjX2Z1bmNfZXhwcl9saXN0
OgotICAgIGNhbGNfZnVuY19leHByICB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgfSAgICAKLSAg
ICB8IGNhbGNfZnVuY19leHByX2xpc3QgJywnIG1heWJlX3NwYWNlIGNhbGNfZnVuY19leHByIHsK
LSAgICAgICAgaWYgKCQxICYmICQ0KSB7Ci0gICAgICAgICAgICAkJCA9ICQxOwotICAgICAgICAg
ICAgQ1NTUGFyc2VyVmFsdWUgdjsKLSAgICAgICAgICAgIHYuaWQgPSAwOwotICAgICAgICAgICAg
di51bml0ID0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yOwotICAgICAgICAgICAgdi5pVmFsdWUg
PSAnLCc7Ci0gICAgICAgICAgICAkJC0+YWRkVmFsdWUodik7Ci0gICAgICAgICAgICAkJC0+ZXh0
ZW5kKCooJDQpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAkJCA9IDA7Ci0gICAgfQot
ICAgIAotCi1jYWxjX2Z1bmN0aW9uOgotICAgIENBTENGVU5DVElPTiBtYXliZV9zcGFjZSBjYWxj
X2Z1bmNfZXhwciAnKScgbWF5YmVfc3BhY2UgewotICAgICAgICBDU1NQYXJzZXJGdW5jdGlvbiog
ZiA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdGdW5jdGlvbigpOwotICAgICAgICBmLT5uYW1lID0g
JDE7Ci0gICAgICAgIGYtPmFyZ3MgPSBwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkMyk7
Ci0gICAgICAgICQkLmlkID0gMDsKLSAgICAgICAgJCQudW5pdCA9IENTU1BhcnNlclZhbHVlOjpG
dW5jdGlvbjsKLSAgICAgICAgJCQuZnVuY3Rpb24gPSBmOwotICAgIH0KLSAgICB8IENBTENGVU5D
VElPTiBtYXliZV9zcGFjZSBlcnJvciB7Ci0gICAgICAgIFlZRVJST1I7Ci0gICAgfQotICAgIDsK
LQotCi1taW5fb3JfbWF4OgotICAgIE1JTkZVTkNUSU9OIHsKLSAgICAgICAgJCQgPSAkMTsKLSAg
ICB9Ci0gICAgfCBNQVhGVU5DVElPTiB7Ci0gICAgICAgICQkID0gJDE7Ci0gICAgfQotICAgIDsK
LQotbWluX29yX21heF9mdW5jdGlvbjoKLSAgICBtaW5fb3JfbWF4IG1heWJlX3NwYWNlIGNhbGNf
ZnVuY19leHByX2xpc3QgJyknIG1heWJlX3NwYWNlIHsKLSAgICAgICAgQ1NTUGFyc2VyRnVuY3Rp
b24qIGYgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nRnVuY3Rpb24oKTsKLSAgICAgICAgZi0+bmFt
ZSA9ICQxOwotICAgICAgICBmLT5hcmdzID0gcGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3Qo
JDMpOwotICAgICAgICAkJC5pZCA9IDA7Ci0gICAgICAgICQkLnVuaXQgPSBDU1NQYXJzZXJWYWx1
ZTo6RnVuY3Rpb247Ci0gICAgICAgICQkLmZ1bmN0aW9uID0gZjsKLSAgICB9IAotICAgIHwgbWlu
X29yX21heCBtYXliZV9zcGFjZSBlcnJvciB7Ci0gICAgICAgIFlZRVJST1I7Ci0gICAgfQotICAg
IDsKLQotLyogZXJyb3IgaGFuZGxpbmcgcnVsZXMgKi8KLQotc2F2ZV9ibG9jazoKLSAgICBjbG9z
aW5nX2JyYWNlIHsKLSAgICAgICAgJCQgPSAwOwotICAgIH0KLSAgfCBlcnJvciBjbG9zaW5nX2Jy
YWNlIHsKLSAgICAgICAgJCQgPSAwOwotICAgIH0KLSAgICA7Ci0KLWludmFsaWRfYXQ6Ci0gICAg
QVRLRVlXT1JEIGVycm9yIGludmFsaWRfYmxvY2sgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQot
ICB8IEFUS0VZV09SRCBlcnJvciAnOycgewotICAgICAgICAkJCA9IDA7Ci0gICAgfQotICAgIDsK
LQotaW52YWxpZF9ydWxlOgotICAgIGVycm9yIGludmFsaWRfYmxvY2sgewotICAgICAgICAkJCA9
IDA7Ci0gICAgfQotCi0vKgotICBTZWVtcyBsaWtlIHRoZSB0d28gcnVsZXMgYmVsb3cgYXJlIHRy
eWluZyB0b28gbXVjaCBhbmQgdmlvbGF0aW5nCi0gIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMv
ZXZpbC9taXhlZC9jc3NlcnJvcmhhbmRsaW5nLmh0bWwKLQotICB8IGVycm9yICc7JyB7Ci0gICAg
ICAgICQkID0gMDsKLSAgICB9Ci0gIHwgZXJyb3IgJ30nIHsKLSAgICAgICAgJCQgPSAwOwotICAg
IH0KLSovCi0gICAgOwotCi1pbnZhbGlkX2Jsb2NrOgotICAgICd7JyBlcnJvciBpbnZhbGlkX2Js
b2NrX2xpc3QgZXJyb3IgY2xvc2luZ19icmFjZSB7Ci0gICAgICAgIHBhcnNlci0+aW52YWxpZEJs
b2NrSGl0KCk7Ci0gICAgfQotICB8ICd7JyBlcnJvciBjbG9zaW5nX2JyYWNlIHsKLSAgICAgICAg
cGFyc2VyLT5pbnZhbGlkQmxvY2tIaXQoKTsKLSAgICB9Ci0gICAgOwotCi1pbnZhbGlkX2Jsb2Nr
X2xpc3Q6Ci0gICAgaW52YWxpZF9ibG9jawotICB8IGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciBp
bnZhbGlkX2Jsb2NrCi07Ci0KLSUlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW5jbHVkZXMgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Lmlu
Y2x1ZGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjY4OTc0NTBiNDFjNTgxNzAx
OTNiOWIwMDhiNjQ2YjRjZGE2NjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW5jbHVkZXMKKysr
IC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0lewotCi0vKgotICogIENvcHlyaWdodCAoQykg
MjAwMi0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diAoYXBAbnlwb3AuY29tKQotICogIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Bh
cnNlck1vZGUuaCIKLSNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgotI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKLSNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgotI2luY2x1ZGUgIkNT
U1NlbGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFMaXN0LmgiCi0jaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5o
IgotI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgotI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5o
IgotI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgotI2luY2x1ZGUgIldlYktpdENT
U0tleWZyYW1lc1J1bGUuaCIKLSNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUg
PHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLSNkZWZpbmUgWVlNQUxMT0MgZmFzdE1h
bGxvYwotI2RlZmluZSBZWUZSRUUgZmFzdEZyZWUKLQotI2RlZmluZSBZWUVOQUJMRV9OTFMgMAot
I2RlZmluZSBZWUxUWVBFX0lTX1RSSVZJQUwgMQotI2RlZmluZSBZWU1BWERFUFRIIDEwMDAwCi0j
ZGVmaW5lIFlZREVCVUcgMAotCi0jaWYgWVlERUJVRyA+IDAKLSNkZWZpbmUgWVlQUklOVChGaWxl
LFR5cGUsVmFsdWUpIHByaW50X3Rva2VuX3ZhbHVlKEZpbGUsVHlwZSxWYWx1ZSkKLXN0YXRpYyB2
b2lkIHByaW50X3Rva2VuX3ZhbHVlKEZJTEUgKiB5eW91dHB1dCwgaW50IHl5dHlwZSwgWVlTVFlQ
RSBjb25zdCAmeXl2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKHl5dHlwZSkgewotICAgIGNhc2UgSURF
TlQ6Ci0gICAgY2FzZSBTVFJJTkc6Ci0gICAgY2FzZSBOVEg6Ci0gICAgY2FzZSBIRVg6Ci0gICAg
Y2FzZSBJRFNFTDoKLSAgICBjYXNlIERJTUVOOgotICAgIGNhc2UgSU5WQUxJRERJTUVOOgotICAg
IGNhc2UgVVJJOgotICAgIGNhc2UgRlVOQ1RJT046Ci0gICAgY2FzZSBBTllGVU5DVElPTjoKLSAg
ICBjYXNlIE5PVEZVTkNUSU9OOgotICAgIGNhc2UgQ0FMQ0ZVTkNUSU9OOgotICAgIGNhc2UgTUlO
RlVOQ1RJT046Ci0gICAgY2FzZSBNQVhGVU5DVElPTjoKLSAgICBjYXNlIFZBUl9ERUZJTklUSU9O
OgotICAgIGNhc2UgVU5JQ09ERVJBTkdFOgotICAgICAgICBZWUZQUklOVEYoeXlvdXRwdXQsICIl
cyIsIFN0cmluZyh5eXZhbHVlLnN0cmluZykudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLSNlbmRpZgotCi0lfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VncmFtbWFyLnBsIGIvU291cmNlL1dl
YkNvcmUvY3NzL21ha2VncmFtbWFyLnBsCmluZGV4IDMyZjc1N2U3N2NmZDUwNDQ2Y2JkMDkyNDYx
NGQzNTU0ZDE4MGY1MjUuLjA2ZmFhYTkzZDMyNjBhYjUzMDQxN2M0MzNlMTY4YzMzNWJjNjdhZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlZ3JhbW1hci5wbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvbWFrZWdyYW1tYXIucGwKQEAgLTIxLDc5ICsyMSwzNSBAQAogdXNlIHN0
cmljdDsKIHVzZSB3YXJuaW5nczsKIAotdXNlIENvbmZpZzsKLXVzZSBGaWxlOjpCYXNlbmFtZTsK
LXVzZSBGaWxlOjpTcGVjOwotdXNlIEdldG9wdDo6TG9uZzsKK215ICRncmFtbWFyID0gJEFSR1Zb
MF07CitteSAkZmlsZUJhc2UgPSAkQVJHVlsxXTsKIAotcmVxdWlyZSBDb25maWc7CitzeXN0ZW0o
ImJpc29uIC1kIC1wIGNzc3l5ICIgLiAkZ3JhbW1hciAuICIgLW8gIiAuICRmaWxlQmFzZSAuICIu
dGFiLmMiKTsKIAotbXkgJGdjYyA9ICIiOwotaWYgKCRFTlZ7Q0N9KSB7Ci0gICAgJGdjYyA9ICRF
TlZ7Q0N9OwotfSBlbHNpZiAoKCRDb25maWc6OkNvbmZpZ3snb3NuYW1lJ30pID1+IC9zb2xhcmlz
L2kpIHsKLSAgICAkZ2NjID0gIi91c3Ivc2Z3L2Jpbi9nY2MiOwotfSBlbHNlIHsKLSAgICAkZ2Nj
ID0gIi91c3IvYmluL2djYyI7Ci19Ci0KLW15ICRncmFtbWFyRmlsZVBhdGggPSAiIjsKLW15ICRv
dXRwdXREaXIgPSAiLiI7Ci1teSAkZXh0cmFEZWZpbmVzID0gIiI7Ci1teSAkc3ltYm9sc1ByZWZp
eCA9ICIiOwotCi1HZXRPcHRpb25zKAotICAgICdncmFtbWFyPXMnID0+IFwkZ3JhbW1hckZpbGVQ
YXRoLAotICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXIsCi0gICAgJ2V4dHJhRGVmaW5l
cz1zJyA9PiBcJGV4dHJhRGVmaW5lcywKLSAgICAnc3ltYm9sc1ByZWZpeD1zJyA9PiBcJHN5bWJv
bHNQcmVmaXgKLSk7Ci0KLWRpZSAiTmVlZCBhIHN5bWJvbHMgcHJlZml4IHRvIGdpdmUgdG8gYmlz
b24gKGUuZy4gY3NzeXksIHhwYXRoeXkpIiB1bmxlc3MgbGVuZ3RoKCRzeW1ib2xzUHJlZml4KTsK
LQotbXkgKCRmaWxlbmFtZSwgJGJhc2VQYXRoLCAkc3VmZml4KSA9IGZpbGVwYXJzZSgkZ3JhbW1h
ckZpbGVQYXRoLCAoIi55IiwgIi55LmluIikpOwotCi1pZiAoJHN1ZmZpeCBlcSAiLnkuaW4iKSB7
Ci0gICAgbXkgJGdyYW1tYXJGaWxlSW5jbHVkZXNQYXRoID0gIiR7YmFzZVBhdGh9JHtmaWxlbmFt
ZX0ueS5pbmNsdWRlcyI7Ci0gICAgbXkgJGdyYW1tYXJGaWxlT3V0UGF0aCA9IEZpbGU6OlNwZWMt
PmpvaW4oJG91dHB1dERpciwgIiRmaWxlbmFtZS55Iik7Ci0gICAgbXkgJGZlYXR1cmVGbGFncyA9
ICItRCAiIC4gam9pbigiIC1EICIsIHNwbGl0KCIgIiwgJGV4dHJhRGVmaW5lcykpOwotCi0gICAg
c3lzdGVtKCRnY2MgLiAiIC1FIC1QIC14IGMgJGdyYW1tYXJGaWxlUGF0aCAkZmVhdHVyZUZsYWdz
ID4gJGdyYW1tYXJGaWxlT3V0UGF0aC5wcm9jZXNzZWQiICk7Ci0KLSAgICBvcGVuIEdSQU1NQVIs
ICI+JGdyYW1tYXJGaWxlT3V0UGF0aCIgb3IgZGllOwotICAgIG9wZW4gSU5DTFVERVMsICI8JGdy
YW1tYXJGaWxlSW5jbHVkZXNQYXRoIiBvciBkaWU7Ci0gICAgb3BlbiBQUk9DRVNTRUQsICI8JGdy
YW1tYXJGaWxlT3V0UGF0aC5wcm9jZXNzZWQiIG9yIGRpZTsKLQotICAgIHdoaWxlICg8SU5DTFVE
RVM+KSB7Ci0gICAgICAgIHByaW50IEdSQU1NQVI7Ci0gICAgfQotICAgIHdoaWxlICg8UFJPQ0VT
U0VEPikgewotICAgICAgICBwcmludCBHUkFNTUFSOwotICAgIH0KLQotICAgIGNsb3NlIEdSQU1N
QVI7Ci0gICAgdW5saW5rKCIkZ3JhbW1hckZpbGVPdXRQYXRoLnByb2Nlc3NlZCIpOwotICAgICRn
cmFtbWFyRmlsZVBhdGggPSAkZ3JhbW1hckZpbGVPdXRQYXRoOwotfQotCi1teSAkZmlsZUJhc2Ug
PSBGaWxlOjpTcGVjLT5qb2luKCRvdXRwdXREaXIsICRmaWxlbmFtZSk7Ci1zeXN0ZW0oImJpc29u
IC1kIC1wICRzeW1ib2xzUHJlZml4ICRncmFtbWFyRmlsZVBhdGggLW8gJGZpbGVCYXNlLmNwcCIp
OwotCi1vcGVuIEhFQURFUiwgIj4kZmlsZUJhc2UuaCIgb3IgZGllOworb3BlbiBIRUFERVIsICI+
IiAuICRmaWxlQmFzZSAuICIuaCIgb3IgZGllOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lm
bmRlZiBDU1NHUkFNTUFSX0gKICNkZWZpbmUgQ1NTR1JBTU1BUl9ICiBFT0YKIAotb3BlbiBIUFAs
ICI8JGZpbGVCYXNlLmNwcC5oIiBvciBvcGVuIEhQUCwgIjwkZmlsZUJhc2UuaHBwIiBvciBkaWU7
CitvcGVuIEhQUCwgIjwiIC4gJGZpbGVCYXNlIC4gIi50YWIuaCIgb3IgZGllOwogd2hpbGUgKDxI
UFA+KSB7CiAgICAgcHJpbnQgSEVBREVSOwogfQogY2xvc2UgSFBQOwogCiBwcmludCBIRUFERVIg
IiNlbmRpZlxuIjsKKwogY2xvc2UgSEVBREVSOwogCi11bmxpbmsoIiRmaWxlQmFzZS5jcHAuaCIp
OwotdW5saW5rKCIkZmlsZUJhc2UuaHBwIik7Cit1bmxpbmsoJGZpbGVCYXNlIC4gIi50YWIuaCIp
OworCitvcGVuIENQUCwgIj4iIC4gJGZpbGVCYXNlIC4gIi5jcHAiIG9yIGRpZTsKK29wZW4gR0VO
U1JDLCAiPCIgLiAkZmlsZUJhc2UgLiAiLnRhYi5jIiBvciBkaWU7Cit3aGlsZSAoPEdFTlNSQz4p
IHsKKyAgICBwcmludCBDUFA7Cit9CitjbG9zZSBHRU5TUkM7CitjbG9zZSBDUFA7CiAKK3VubGlu
aygkZmlsZUJhc2UgLiAiLnRhYi5jIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0
TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCBhMTBj
ZTU1ZjA2M2FmN2QyNGVlOWRjZjc4MmViOTBlZDY4OWQ1NmQ3Li5lZDhlYjVkMzIwZjIzZGQ4ZGY4
NGJiNzRlNmQ3ZTI5ZjU1OTA0NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFj
cm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTE0OCwx
MiArMTQ4LDExIEBAIE1BQ1JPIChHRU5FUkFURV9IQVNIX0xVVCBfaW5wdXQgX291dHB1dCkKIEVO
RE1BQ1JPICgpCiAKIAotTUFDUk8gKEdFTkVSQVRFX0dSQU1NQVIgX3ByZWZpeCBfaW5wdXQgX291
dHB1dF9oZWFkZXIgX291dHB1dF9zb3VyY2UgX290aGVyX2RlcGVuZGVuY2llcyBfZmVhdHVyZXMp
CitNQUNSTyAoR0VORVJBVEVfR1JBTU1BUiBfcHJlZml4IF9pbnB1dCBfb3V0cHV0X2hlYWRlciBf
b3V0cHV0X3NvdXJjZSkKICAgICBBRERfQ1VTVE9NX0NPTU1BTkQoCiAgICAgICAgIE9VVFBVVCAk
e19vdXRwdXRfaGVhZGVyfSAke19vdXRwdXRfc291cmNlfQogICAgICAgICBNQUlOX0RFUEVOREVO
Q1kgJHtfaW5wdXR9Ci0gICAgICAgIERFUEVORFMgJHtfaW5wdXR9ICR7X290aGVyX2RlcGVuZGVu
Y2llc30KLSAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0v
Y3NzL21ha2VncmFtbWFyLnBsIC0tZ3JhbW1hciAke19pbnB1dH0gLS1vdXRwdXREaXIgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9IC0tZXh0cmFEZWZpbmVzICIke19mZWF0dXJlc30iIC0t
c3ltYm9sc1ByZWZpeCAke19wcmVmaXh9CisgICAgICAgIENPTU1BTkQgJHtCSVNPTl9FWEVDVVRB
QkxFfSAtcCAke19wcmVmaXh9ICR7X2lucHV0fSAtbyAke19vdXRwdXRfc291cmNlfSAtLWRlZmlu
ZXM9JHtfb3V0cHV0X2hlYWRlcn0KICAgICAgICAgVkVSQkFUSU0pCiBFTkRNQUNSTyAoKQogCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzNjYjMxZDg3YzcxNzE3OGNi
ODgyMzJiOWZhOTY4ZDBlNGVlNzFjYS4uMmYxZWU5NTFhMTVkZWVkZDliYTYwMmJjZWQ1ZmQwOWQ0
ODg3M2E2NCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTEwLTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMwOTM3LgorICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA5MzcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTQ2CisKKyAgICAgICAgYnJva2Ug
UXQgV2luIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgdG9ueV53b3JrIG9uICN3ZWJraXQpLgorCisgICAg
ICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZToKKwogMjAxMi0xMC0xMCAgUGFi
bG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUHJlLXByb2Nlc3Mg
Q1NTR3JhbW1hci55IGJlZm9yZSBydW5uaW5nIHRocm91Z2ggYmlzb24uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>