<?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>32854</bug_id>
          
          <creation_ts>2009-12-22 00:06:43 -0800</creation_ts>
          <short_desc>Remove COM code generation related files</short_desc>
          <delta_ts>2010-01-07 05:47:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>33190</dependson>
    
    <dependson>33193</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>sfalken</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174207</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 00:06:43 -0800</bug_when>
    <thetext>We won&apos;t support COM code generation anymore. There are some files related to it in WebKit repository yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174208</commentid>
    <comment_count>1</comment_count>
      <attachid>45368</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 00:08:30 -0800</bug_when>
    <thetext>Created attachment 45368
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174210</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 00:11:16 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45368 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174224</commentid>
    <comment_count>3</comment_count>
      <attachid>45373</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-22 01:16:09 -0800</bug_when>
    <thetext>Created attachment 45373
Proposed patch (rev.2)

Remove !LANGUAGE_COM in *.idl too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174226</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 01:17:50 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45373 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174341</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-22 12:59:14 -0800</bug_when>
    <thetext>This is definitely one for the Apple-Win folks to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175351</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 17:54:00 -0800</bug_when>
    <thetext>Perhaps Adam, Steve or Sam want to comment on whether it&apos;s ok to strip this code out entirely or if we want to keep it around for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176067</commentid>
    <comment_count>7</comment_count>
      <attachid>45373</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-12-30 15:19:23 -0800</bug_when>
    <thetext>Comment on attachment 45373
Proposed patch (rev.2)

It is fine to rip this out, we can always bring it back through the magic of svn.  That said, you are missing some COM specific things, namely the InterfaceUUID and ImplementationUUID extended attributes.  Those should be removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176842</commentid>
    <comment_count>8</comment_count>
      <attachid>45825</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-04 13:27:09 -0800</bug_when>
    <thetext>Created attachment 45825
Proposed patch (rev.3)

- Remove UUID attributes in *.idl too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176848</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 13:29:49 -0800</bug_when>
    <thetext>Attachment 45825 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/162587</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176849</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 13:30:39 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45825 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177377</commentid>
    <comment_count>11</comment_count>
      <attachid>45825</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-05 13:54:44 -0800</bug_when>
    <thetext>Comment on attachment 45825
Proposed patch (rev.3)

Is WebKit/win/WebKit.vcproj/build-generated-files.sh only used by the COM bindings?

The rest all looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177386</commentid>
    <comment_count>12</comment_count>
      <attachid>45825</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-01-05 14:11:45 -0800</bug_when>
    <thetext>Comment on attachment 45825
Proposed patch (rev.3)

Looks like this addresses Sam&apos;s comments. I believe the answer to Eric&apos;s question is &quot;yes&quot;. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177610</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-06 09:30:09 -0800</bug_when>
    <thetext>Attachment 45825 was posted by a committer and has review+, assigning to Kent Tamura for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178158</commentid>
    <comment_count>14</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-07 05:47:08 -0800</bug_when>
    <thetext>Landed as r52921 &lt;http://trac.webkit.org/changeset/52921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45368</attachid>
            <date>2009-12-22 00:08:30 -0800</date>
            <delta_ts>2009-12-22 01:16:09 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-remove-com.patch</filename>
            <type>text/plain</type>
            <size>68268</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAyOTFhYzZhYTFlYmE2ZGFlMmM1ZmE1YmU2NjI3ZTI0Yjg1N2U0NDgwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIyIERlYyAyMDA5IDE3OjAzOjEwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gcmVtb3Zl
LWNvbQoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgOSArCiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNPTS5w
bSAgICAgIHwgMTMxOSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdlYktpdC93aW4vQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIFdlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgfCAgMTYxIC0tLQogV2ViS2l0L3dpbi9X
ZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaCB8ICAgNjIgLQogNSBmaWxlcyBj
aGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxNTQyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09NLnBtCiBkZWxl
dGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovYnVpbGQtZ2Vu
ZXJhdGVkLWZpbGVzLnNoCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhZjlmMTdiLi45M2UxODJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEy
LTIyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgQ09NIGNvZGUgZ2VuZXJhdGlv
biBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMyODU0CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDT00ucG06
IFJlbW92ZWQuCisKIDIwMDktMTItMjEgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09NLnBtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDT00ucG0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU5ODM3OWIuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JDT00ucG0KKysrIC9kZXYvbnVsbApAQCAtMSwxMzE5ICswLDAgQEAK
LSMKLSMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgotIyBDb3B5cmlnaHQgKEMpIDIwMDYgQW5kZXJzIENhcmxzc29uIDxhbmRl
cnNjYUBtYWMuY29tPgotIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgU2FtdWVsIFdlaW5pZyA8
c2FtQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292
IDxhcEB3ZWJraXQub3JnPgotIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0jIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0jIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotIyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0jCi0jIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIyBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
IyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0jIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgot
Ci1wYWNrYWdlIENvZGVHZW5lcmF0b3JDT007Ci0KLXVzZSBGaWxlOjpzdGF0OwotCi0jIEdsb2Jh
bCBWYXJpYWJsZXMKLW15ICRtb2R1bGUgPSAiIjsKLW15ICRvdXRwdXREaXIgPSAiIjsKLQotbXkg
QElETEhlYWRlciA9ICgpOwotbXkgQElETENvbnRlbnQgPSAoKTsKLW15ICVJRExJbmNsdWRlcyA9
ICgpOwotbXkgJUlETEZvcndhcmREZWNsYXJhdGlvbnMgPSAoKTsKLW15ICVJRExEb250Rm9yd2Fy
ZERlY2xhcmUgPSAoKTsKLW15ICVJRExJbXBvcnRzID0gKCk7Ci1teSAlSURMRG9udEltcG9ydCA9
ICgpOwotCi1teSBAQ1BQSW50ZXJmYWNlSGVhZGVyID0gKCk7Ci0KLW15IEBDUFBIZWFkZXJIZWFk
ZXIgPSAoKTsKLW15IEBDUFBIZWFkZXJDb250ZW50ID0gKCk7Ci1teSAlQ1BQSGVhZGVySW5jbHVk
ZXMgPSAoKTsKLW15ICVDUFBIZWFkZXJJbmNsdWRlc0FuZ2xlID0gKCk7Ci1teSAlQ1BQSGVhZGVy
Rm9yd2FyZERlY2xhcmF0aW9ucyA9ICgpOwotbXkgJUNQUEhlYWRlckRvbnRGb3J3YXJkRGVjbGFy
YXRpb25zID0gKCk7Ci0KLW15IEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRlciA9ICgpOwotbXkgQENQ
UEltcGxlbWVudGF0aW9uQ29udGVudCA9ICgpOwotbXkgJUNQUEltcGxlbWVudGF0aW9uSW5jbHVk
ZXMgPSAoKTsKLW15ICVDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlcyA9ICgpOwotbXkg
JUNQUEltcGxlbWVudGF0aW9uSW5jbHVkZXNBbmdsZSA9ICgpOwotbXkgJUNQUEltcGxlbWVudGF0
aW9uRG9udEluY2x1ZGVzID0gKCk7Ci0KLW15IEBhZGRpdGlvbmFsSW50ZXJmYWNlRGVmaW5pdGlv
bnMgPSAoKTsKLQotbXkgJERBU0hFUyA9ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIjsKLW15ICRURU1QX1BSRUZJWCA9ICJHRU5fIjsKLQotIyBIYXNoZXMKLQotbXkg
JWluY2x1ZGVDb3JyZWN0b3IgPSBtYXAgeygkXywgMSl9IHF3e1VJRXZlbnQgS2V5Ym9hcmRFdmVu
dCBNb3VzZUV2ZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0
YXRpb25FdmVudCBPdmVyZmxvd0V2ZW50IFdoZWVsRXZlbnR9OwotCi1teSAlY29uZmxpY3RNZXRo
b2QgPSAoCi0gICAgIyBGSVhNRTogQWRkIEMgbGFuZ3VhZ2Uga2V5d29yZHM/Ci0pOwotCi0jIERl
ZmF1bHQgTGljZW5zZSBUZW1wbGF0ZXMKLW15IEBsaWNlbnNlVGVtcGxhdGUgPSBzcGxpdCgvXHIv
LCA8PCAiRU9GIik7Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLUVPRgotCi0jIERlZmF1bHQgY29uc3RydWN0b3IKLXN1YiBuZXcKLXsKLSAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKLQotICAgICRj
b2RlR2VuZXJhdG9yID0gc2hpZnQ7Ci0gICAgJG91dHB1dERpciA9IHNoaWZ0OwotCi0gICAgYmxl
c3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7Ci0gICAgcmV0dXJuICRyZWZlcmVuY2U7Ci19Ci0KLXN1
YiBmaW5pc2gKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci19Ci0KLSMgUGFyYW1zOiAnZG9t
Q2xhc3MnIHN0cnVjdAotc3ViIEdlbmVyYXRlSW50ZXJmYWNlCi17Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRkZWZpbmVzID0gc2hp
ZnQ7Ci0KLSAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLQotICAgIG15ICRwdXJlSW50
ZXJmYWNlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUHVyZUludGVyZmFjZSJ9
OwotCi0gICAgIyBTdGFydCBhY3R1YWwgZ2VuZXJhdGlvbi4uCi0gICAgJG9iamVjdC0+R2VuZXJh
dGVJREwoJGRhdGFOb2RlLCAkcHVyZUludGVyZmFjZSk7Ci0gICAgaWYgKCRwdXJlSW50ZXJmYWNl
KSB7Ci0gICAgICAgICRvYmplY3QtPkdlbmVyYXRlSW50ZXJmYWNlSGVhZGVyKCRkYXRhTm9kZSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVDUFBIZWFkZXIoJGRhdGFO
b2RlKTsKLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVDUFBJbXBsZW1lbnRhdGlvbigkZGF0YU5v
ZGUpOwotICAgIH0KLQotICAgICMgV3JpdGUgY2hhbmdlcy4KLSAgICAkb2JqZWN0LT5Xcml0ZURh
dGEoJG5hbWUsICRwdXJlSW50ZXJmYWNlKTsKLX0KLQotIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcg
c3RydWN0Ci1zdWIgR2VuZXJhdGVNb2R1bGUKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0g
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0KLSAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1
bGU7Ci19Ci0KLXN1YiBHZXRJbnRlcmZhY2VOYW1lCi17Ci0gICAgbXkgJG5hbWUgPSAkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotCi0gICAgZGllICJHZXRJbnRlcmZhY2VOYW1l
IHNob3VsZCBvbmx5IGJlIHVzZWQgb24gaW50ZXJmYWNlcy4iIGlmICgkY29kZUdlbmVyYXRvci0+
SXNTdHJpbmdUeXBlKCRuYW1lKSBvciAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRu
YW1lKSk7Ci0KLSAgICAjIHNwZWNpYWwgY2FzZXMKLSAgICByZXR1cm4gIkkiIC4gJFRFTVBfUFJF
RklYIC4gIkRPTUFic3RyYWN0VmlldyIgaWYgJG5hbWUgZXEgIkRPTVdpbmRvdyI7Ci0gICAgcmV0
dXJuICJJIiAuICRURU1QX1BSRUZJWCAuICRuYW1lIGlmICRuYW1lIGVxICJET01JbXBsZW1lbnRh
dGlvbiIgb3IgJG5hbWUgZXEgIkRPTVRpbWVTdGFtcCI7Ci0KLSAgICAjIERlZmF1bHQsIGFzc3Vt
ZSBDT00gdHlwZSBoYXMgdGhlIHNhbWUgdHlwZSBuYW1lIGFzCi0gICAgIyBpZGwgdHlwZSBwcmVm
aXhlZCB3aXRoICJJRE9NIi4KLSAgICByZXR1cm4gIkkiIC4gJFRFTVBfUFJFRklYIC4gIkRPTSIg
LiAkbmFtZTsKLX0KLQotc3ViIEdldENsYXNzTmFtZQotewotICAgIG15ICRuYW1lID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAgICMgc3BlY2lhbCBjYXNlcwotICAg
IHJldHVybiAiQlNUUiIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbmFtZSk7Ci0g
ICAgcmV0dXJuICJCT09MIiBpZiAkbmFtZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0dXJuICJ1bnNp
Z25lZCIgaWYgJG5hbWUgZXEgInVuc2lnbmVkIGxvbmciOwotICAgIHJldHVybiAiaW50IiBpZiAk
bmFtZSBlcSAibG9uZyI7Ci0gICAgcmV0dXJuICRuYW1lIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1By
aW1pdGl2ZVR5cGUoJG5hbWUpOwotICAgIHJldHVybiAkVEVNUF9QUkVGSVggLiAiRE9NQWJzdHJh
Y3RWaWV3IiBpZiAkbmFtZSBlcSAiRE9NV2luZG93IjsKLSAgICByZXR1cm4gJFRFTVBfUFJFRklY
IC4gJG5hbWUgaWYgJG5hbWUgZXEgIkRPTUltcGxlbWVudGF0aW9uIiBvciAkbmFtZSBlcSAiRE9N
VGltZVN0YW1wIjsKLQotICAgICMgRGVmYXVsdCwgYXNzdW1lIENPTSB0eXBlIGhhcyB0aGUgc2Ft
ZSB0eXBlIG5hbWUgYXMKLSAgICAjIGlkbCB0eXBlIHByZWZpeGVkIHdpdGggIkRPTSIuCi0gICAg
cmV0dXJuICRURU1QX1BSRUZJWCAuICJET00iIC4gJG5hbWU7Ci19Ci0KLXN1YiBHZXRDT01UeXBl
Ci17Ci0gICAgbXkgKCR0eXBlKSA9IEBfOwotCi0gICAgZGllICJEb24ndCB1c2UgR2V0Q09NVHlw
ZSBmb3Igc3RyaW5nIHR5cGVzLCB1c2Ugb25lIG9mIEluL091dCB2YXJpYW50cyBpbnN0ZWFkLiIg
aWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7Ci0KLSAgICByZXR1cm4gIkJP
T0wiIGlmICR0eXBlIGVxICJib29sZWFuIjsKLSAgICByZXR1cm4gIlVJTlQiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBsb25nIjsKLSAgICByZXR1cm4gIklOVCIgaWYgJHR5cGUgZXEgImxvbmciOwot
ICAgIHJldHVybiAkdHlwZSBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBl
KSBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKLSAgICAjIHJldHVybiAidW5zaWduZWQgc2hv
cnQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IiBvciAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsK
LQotICAgIHJldHVybiBHZXRJbnRlcmZhY2VOYW1lKCR0eXBlKSAuICIqIjsKLX0KLQotc3ViIEdl
dENPTVR5cGVJbgotewotICAgIG15ICgkdHlwZSkgPSBAXzsKLSAgICByZXR1cm4gIkxQQ1RTVFIi
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwotICAgIHJldHVybiBHZXRD
T01UeXBlKCR0eXBlKTsKLX0KLQotc3ViIEdldENPTVR5cGVPdXQKLXsKLSAgICBteSAoJHR5cGUp
ID0gQF87Ci0gICAgcmV0dXJuICJCU1RSIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBl
KCR0eXBlKTsKLSAgICByZXR1cm4gR2V0Q09NVHlwZSgkdHlwZSk7Ci19Ci0KLXN1YiBJRExUeXBl
VG9JbXBsZW1lbnRhdGlvblR5cGUKLXsKLSAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5T
dHJpcE1vZHVsZShzaGlmdCk7Ci0KLSAgICByZXR1cm4gImJvb2wiIGlmICR0eXBlIGVxICJib29s
ZWFuIjsKLSAgICByZXR1cm4gInVuc2lnbmVkIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7
Ci0gICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJsb25nIjsKLSAgICByZXR1cm4gJHR5cGUg
aWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7Ci0KLSAgICByZXR1cm4g
IldlYkNvcmU6OlN0cmluZyIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7
Ci0gICAgcmV0dXJuICJXZWJDb3JlOjoke3R5cGV9IjsKLX0KLQotc3ViIFN0cmlwTmFtZXNwYWNl
Ci17Ci0gICAgbXkgKCR0eXBlKSA9IEBfOwotCi0gICAgJHR5cGUgPX4gcy9eV2ViQ29yZTo6Ly87
Ci0KLSAgICByZXR1cm4gJHR5cGU7Ci19Ci0KLXN1YiBHZXRQYXJlbnRJbnRlcmZhY2UKLXsKLSAg
ICBteSAoJGRhdGFOb2RlKSA9IEBfOwotICAgIHJldHVybiAiSSIgLiAkVEVNUF9QUkVGSVggLiAi
RE9NT2JqZWN0IiBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID09IDApOwotICAgIHJldHVybiBH
ZXRJbnRlcmZhY2VOYW1lKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBh
cmVudHMoMCkpKTsKLX0KLQotc3ViIEdldFBhcmVudENsYXNzCi17Ci0gICAgbXkgKCRkYXRhTm9k
ZSkgPSBAXzsKLSAgICByZXR1cm4gJFRFTVBfUFJFRklYIC4gIkRPTU9iamVjdCIgaWYgKEB7JGRh
dGFOb2RlLT5wYXJlbnRzfSA9PSAwKTsKLSAgICByZXR1cm4gR2V0Q2xhc3NOYW1lKCRjb2RlR2Vu
ZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpKTsKLX0KLQotc3ViIEFk
ZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5JREwKLXsKLSAgICBteSAkdHlwZSA9ICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0KLSAgICByZXR1cm4gaWYgJGNvZGVHZW5l
cmF0b3ItPklzTm9uUG9pbnRlclR5cGUoJHR5cGUpIG9yICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmlu
Z1R5cGUoJHR5cGUpOwotCi0gICAgbXkgJGludGVyZmFjZSA9IEdldEludGVyZmFjZU5hbWUoJHR5
cGUpOwotICAgICRJRExGb3J3YXJkRGVjbGFyYXRpb25zeyRpbnRlcmZhY2V9ID0gMTsKLSAgICAk
SURMSW1wb3J0c3skaW50ZXJmYWNlfSA9IDE7Ci19Ci0KLXN1YiBBZGRJbmNsdWRlc0ZvclR5cGVJ
bkNQUEhlYWRlcgotewotICAgIG15ICR0eXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxl
KHNoaWZ0KTsKLSAgICBteSAkdXNlQW5nbGVCcmFja2V0cyA9IHNoaWZ0OwotCi0gICAgcmV0dXJu
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc05vblBvaW50ZXJUeXBlKCR0eXBlKTsKLQotICAgICMgQWRk
IHNwZWNpYWwgQ2FzZXMgSEVSRQotCi0gICAgaWYgKCR0eXBlID1+IG0vXkkvKSB7Ci0gICAgICAg
ICR0eXBlID0gIldlYktpdCI7Ci0gICAgfQotCi0gICAgaWYgKCR1c2VBbmdsZUJyYWNrZXRzKSB7
Ci0gICAgICAgICRDUFBIZWFkZXJJbmNsdWRlc0FuZ2xleyIkdHlwZS5oIn0gPSAxOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCR0eXBlIGVxICJHRU5fRE9NSW1wbGVtZW50YXRp
b24iKSB7Ci0gICAgICAgICRDUFBIZWFkZXJJbmNsdWRlc3siR0VOX0RPTURPTUltcGxlbWVudGF0
aW9uLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoJHR5cGUgZXEg
IklHRU5fRE9NSW1wbGVtZW50YXRpb24iKSB7Ci0gICAgICAgICRDUFBIZWFkZXJJbmNsdWRlc3si
SUdFTl9ET01ET01JbXBsZW1lbnRhdGlvbi5oIn0gPSAxOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgJENQUEhlYWRlckluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwotfQotCi1zdWIgQWRk
Rm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcgotewotICAgIG15ICR0eXBlID0g
JGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAgIHJldHVybiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNOb25Qb2ludGVyVHlwZSgkdHlwZSkgb3IgJGNvZGVHZW5lcmF0b3ItPklz
U3RyaW5nVHlwZSgkdHlwZSk7Ci0KLSAgICBteSAkaW50ZXJmYWNlID0gR2V0SW50ZXJmYWNlTmFt
ZSgkdHlwZSk7Ci0gICAgJENQUEhlYWRlckZvcndhcmREZWNsYXJhdGlvbnN7JGludGVyZmFjZX0g
PSAxOwotfQotCi1zdWIgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBJbXBsZW1lbnRhdGlvbgotewot
ICAgIG15ICR0eXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAg
IGRpZSAiSW5jbHVkZSB0eXBlIG5vdCBzdXBwb3J0ZWQhIiBpZiAkaW5jbHVkZUNvcnJlY3Rvcnsk
dHlwZX07Ci0KLSAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzTm9uUG9pbnRlclR5cGUo
JHR5cGUpOwotCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpKSB7
Ci0gICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siQXRvbWljU3RyaW5n
LmgifSA9IDE7Ci0gICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siQlN0
cmluZy5oIn0gPSAxOwotICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7
IktVUkwuaCJ9ID0gMTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICMgU3BlY2lhbCBj
YXNpbmcKLSAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7Ik5hbWVOb2RlTGlz
dC5oIn0gPSAxIGlmICR0eXBlIGVxICJOb2RlTGlzdCI7Ci0gICAgJENQUEltcGxlbWVudGF0aW9u
V2ViQ29yZUluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0
eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKLQotICAgICMgQWRkIGltcGxlbWVudGF0aW9u
IHR5cGUKLSAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7U3RyaXBOYW1lc3Bh
Y2UoSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlKCR0eXBlKSkgLiAiLmgifSA9IDE7Ci0KLSAg
ICBteSAkQ09NQ2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKLSAgICAkQ1BQSW1wbGVt
ZW50YXRpb25JbmNsdWRlc3siJHtDT01DbGFzc05hbWV9LmgifSA9IDE7Ci19Ci0KLXN1YiBHZXRB
ZGRpdGlvbmFsSW50ZXJmYWNlcwotewotICAgICMgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcs
IGJ1dCBpdCBzdGF5cyBoZXJlIGZvciBmdXR1cmUgbXVsdGlwbGUgaW5oZXJpdGFuY2Ugc3VwcG9y
dC4KLSAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0g
ICAgcmV0dXJuICgpOwotfQotCi1zdWIgR2VuZXJhdGVJREwKLXsKLSAgICBteSAoJG9iamVjdCwg
JGRhdGFOb2RlLCAkcHVyZUludGVyZmFjZSkgPSBAXzsKLQotICAgIG15ICRpbkludGVyZmFjZU5h
bWUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkgJG91dEludGVyZmFjZU5hbWUgPSBHZXRJbnRl
cmZhY2VOYW1lKCRpbkludGVyZmFjZU5hbWUpOwotICAgIG15ICR1dWlkID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW50ZXJmYWNlVVVJRCJ9IHx8IGRpZSAiQWxsIGNsYXNzZXMg
cmVxdWlyZSBhbiBJbnRlcmZhY2VVVUlEIGV4dGVuZGVkIGF0dHJpYnV0ZS4iOwotCi0gICAgbXkg
JHBhcmVudEludGVyZmFjZU5hbWUgPSAoJHB1cmVJbnRlcmZhY2UpID8gIklVbmtub3duIiA6IEdl
dFBhcmVudEludGVyZmFjZSgkZGF0YU5vZGUpOwotCi0gICAgbXkgJG51bUNvbnN0YW50cyA9IEB7
JGRhdGFOb2RlLT5jb25zdGFudHN9OwotICAgIG15ICRudW1BdHRyaWJ1dGVzID0gQHskZGF0YU5v
ZGUtPmF0dHJpYnV0ZXN9OwotICAgIG15ICRudW1GdW5jdGlvbnMgPSBAeyRkYXRhTm9kZS0+ZnVu
Y3Rpb25zfTsKLQotICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKLSAgICBASURM
SGVhZGVyID0gQGxpY2Vuc2VUZW1wbGF0ZTsKLSAgICBwdXNoKEBJRExIZWFkZXIsICJcbiIpOwot
Ci0gICAgIyAtIElOQ0xVREVTIC0KLSAgICBwdXNoKEBJRExIZWFkZXIsICIjaWZuZGVmIERPX05P
X0lNUE9SVFNcbiIpOwotICAgIHB1c2goQElETEhlYWRlciwgImltcG9ydCBcIm9haWRsLmlkbFwi
O1xuIik7Ci0gICAgcHVzaChASURMSGVhZGVyLCAiaW1wb3J0IFwib2NpZGwuaWRsXCI7XG4iKTsK
LSAgICBwdXNoKEBJRExIZWFkZXIsICIjZW5kaWZcblxuIik7Ci0KLSAgICB1bmxlc3MgKCRwdXJl
SW50ZXJmYWNlKSB7Ci0gICAgICAgIHB1c2goQElETEhlYWRlciwgIiNpZm5kZWYgRE9fTk9fSU1Q
T1JUU1xuIik7Ci0gICAgICAgIHB1c2goQElETEhlYWRlciwgImltcG9ydCBcIiR7cGFyZW50SW50
ZXJmYWNlTmFtZX0uaWRsXCI7XG4iKTsKLSAgICAgICAgcHVzaChASURMSGVhZGVyLCAiI2VuZGlm
XG5cbiIpOwotCi0gICAgICAgICRJRExEb250Rm9yd2FyZERlY2xhcmV7JG91dEludGVyZmFjZU5h
bWV9ID0gMTsKLSAgICAgICAgJElETERvbnRJbXBvcnR7JG91dEludGVyZmFjZU5hbWV9ID0gMTsK
LSAgICAgICAgJElETERvbnRGb3J3YXJkRGVjbGFyZXskcGFyZW50SW50ZXJmYWNlTmFtZX0gPSAx
OwotICAgICAgICAkSURMRG9udEltcG9ydHskcGFyZW50SW50ZXJmYWNlTmFtZX0gPSAxOwotICAg
IH0KLQotICAgICMgLSBCZWdpbgotICAgICMgLS0gQXR0cmlidXRlcwotICAgIHB1c2goQElETENv
bnRlbnQsICJbXG4iKTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAiICAgIG9iamVjdCxcbiIpOwot
ICAgIHB1c2goQElETENvbnRlbnQsICIgICAgb2xlYXV0b21hdGlvbixcbiIpOwotICAgIHB1c2go
QElETENvbnRlbnQsICIgICAgdXVpZCgiIC4gJHV1aWQgLiAiKSxcbiIpOwotICAgIHB1c2goQElE
TENvbnRlbnQsICIgICAgcG9pbnRlcl9kZWZhdWx0KHVuaXF1ZSlcbiIpOwotICAgIHB1c2goQElE
TENvbnRlbnQsICJdXG4iKTsKLQotICAgICMgLS0gSW50ZXJmYWNlCi0gICAgcHVzaChASURMQ29u
dGVudCwgImludGVyZmFjZSAiIC4gJG91dEludGVyZmFjZU5hbWUgLiAiIDogIiAuICRwYXJlbnRJ
bnRlcmZhY2VOYW1lIC4gIlxuIik7Ci0gICAgcHVzaChASURMQ29udGVudCwgIntcbiIpOwotCi0K
LSAgICAjIC0gRklYTUU6IEFkZCBjb25zdGFudHMuCi0KLQotICAgICMgLSBBZGQgYXR0cmlidXRl
IGdldHRlcnMvc2V0dGVycy4KLSAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7Ci0gICAgICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7Ci0gICAg
ICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsK
LSAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVJRExUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlOwotICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGVJbiA9IEdldENPTVR5cGVJbigk
YXR0cmlidXRlSURMVHlwZSk7Ci0gICAgICAgICAgICBteSAkYXR0cmlidXRlVHlwZU91dCA9IEdl
dENPTVR5cGVPdXQoJGF0dHJpYnV0ZUlETFR5cGUpOwotICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZUlzUmVhZG9ubHkgPSAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvXnJlYWRvbmx5Lyk7Ci0KLSAgICAg
ICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5JREwoJGF0dHJpYnV0ZUlETFR5
cGUpOwotCi0gICAgICAgICAgICB1bmxlc3MgKCRhdHRyaWJ1dGVJc1JlYWRvbmx5KSB7Ci0gICAg
ICAgICAgICAgICAgIyBTZXR0ZXIKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICJz
ZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZU5hbWUpOwotICAgICAg
ICAgICAgICAgIG15ICRzZXR0ZXIgPSAiICAgIEhSRVNVTFQgIiAuICRzZXR0ZXJOYW1lIC4gIihb
aW5dICIgLiAkYXR0cmlidXRlVHlwZUluIC4gIik7XG4iOwotICAgICAgICAgICAgICAgIHB1c2go
QElETENvbnRlbnQsICRzZXR0ZXIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjIEdl
dHRlcgotICAgICAgICAgICAgbXkgJGdldHRlciA9ICIgICAgSFJFU1VMVCAiIC4gJGF0dHJpYnV0
ZU5hbWUgLiAiKFtvdXQsIHJldHZhbF0gIiAuICRhdHRyaWJ1dGVUeXBlT3V0IC4gIiopO1xuXG4i
OwotICAgICAgICAgICAgcHVzaChASURMQ29udGVudCwgJGdldHRlcik7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICAjIC0gQWRkIGZ1bmN0aW9ucy4KLSAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDAp
IHsKLSAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
KSB7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWU7Ci0gICAgICAgICAgICBteSAkcmV0dXJuSURMVHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlOwotICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRDT01UeXBlT3V0KCRy
ZXR1cm5JRExUeXBlKTsKLSAgICAgICAgICAgIG15ICRub1JldHVybiA9ICgkcmV0dXJuVHlwZSBl
cSAidm9pZCIpOwotCi0gICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUlu
SURMKCRyZXR1cm5JRExUeXBlKTsKLQotICAgICAgICAgICAgbXkgQHBhcmFtQXJnTGlzdCA9ICgp
OwotICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJz
fSkgewotICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7Ci0gICAg
ICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKLSAgICAgICAgICAg
ICAgICBteSAkcGFyYW1UeXBlID0gR2V0Q09NVHlwZUluKCRwYXJhbS0+dHlwZSk7Ci0KLSAgICAg
ICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluSURMKCRwYXJhbUlETFR5
cGUpOwotCi0gICAgICAgICAgICAgICAgIyBGb3JtIHBhcmFtZXRlcgotICAgICAgICAgICAgICAg
IG15ICRwYXJhbWV0ZXIgPSAiW2luXSAke3BhcmFtVHlwZX0gJHtwYXJhbU5hbWV9IjsKLQotICAg
ICAgICAgICAgICAgICMgQWRkIHBhcmFtZXRlciB0byBmdW5jdGlvbiBzaWduYXR1cmUKLSAgICAg
ICAgICAgICAgICBwdXNoKEBwYXJhbUFyZ0xpc3QsICRwYXJhbWV0ZXIpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICB1bmxlc3MgKCRub1JldHVybikgewotICAgICAgICAgICAgICAgIG15
ICRyZXN1bHRQYXJhbWV0ZXIgPSAiW291dCwgcmV0dmFsXSAiIC4gJHJldHVyblR5cGUgLiAiKiBy
ZXN1bHQiOwotICAgICAgICAgICAgICAgIHB1c2goQHBhcmFtQXJnTGlzdCwgJHJlc3VsdFBhcmFt
ZXRlcik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIg
ICAgSFJFU1VMVCAiIC4gJGZ1bmN0aW9uTmFtZSAuICIoIjsKLSAgICAgICAgICAgICRmdW5jdGlv
blNpZyAuPSBqb2luKCIsICIsIEBwYXJhbUFyZ0xpc3QpOwotICAgICAgICAgICAgJGZ1bmN0aW9u
U2lnIC49ICIpO1xuXG4iOwotICAgICAgICAgICAgcHVzaChASURMQ29udGVudCwgJGZ1bmN0aW9u
U2lnKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgICMgLSBFbmQKLSAgICBwdXNoKEBJRExDb250
ZW50LCAifVxuXG4iKTsKLX0KLQotc3ViIEdlbmVyYXRlSW50ZXJmYWNlSGVhZGVyCi17Ci0gICAg
bXkgKCRvYmplY3QsICRkYXRhTm9kZSkgPSBAXzsKLQotICAgIG15ICRJRExUeXBlID0gJGRhdGFO
b2RlLT5uYW1lOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzID0gSURMVHlwZVRvSW1wbGVt
ZW50YXRpb25UeXBlKCRJRExUeXBlKTsKLSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc1dpdGhv
dXROYW1lc3BhY2UgPSBTdHJpcE5hbWVzcGFjZSgkaW1wbGVtZW50YXRpb25DbGFzcyk7Ci0gICAg
bXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkSURMVHlwZSk7Ci0gICAgbXkgJGludGVyZmFj
ZU5hbWUgPSBHZXRJbnRlcmZhY2VOYW1lKCRJRExUeXBlKTsKLQotICAgICMgLSBBZGQgZGVmYXVs
dCBoZWFkZXIgdGVtcGxhdGUKLSAgICBAQ1BQSW50ZXJmYWNlSGVhZGVyID0gQGxpY2Vuc2VUZW1w
bGF0ZTsKLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VIZWFkZXIsICJcbiIpOwotCi0gICAgIyAtIEhl
YWRlciBndWFyZHMgLQotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIiNpZm5kZWYgIiAu
ICRjbGFzc05hbWUgLiAiX2hcbiIpOwotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIiNk
ZWZpbmUgIiAuICRjbGFzc05hbWUgLiAiX2hcblxuIik7Ci0KLSAgICAjIC0gRm9yd2FyZCBEZWNs
YXJhdGlvbnMgLQotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgImludGVyZmFjZSAke2lu
dGVyZmFjZU5hbWV9O1xuXG4iKTsKLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VIZWFkZXIsICJuYW1l
c3BhY2UgV2ViQ29yZSB7XG4iKTsKLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VIZWFkZXIsICIgICAg
Y2xhc3MgJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZX07XG4iKTsKLSAgICBw
dXNoKEBDUFBJbnRlcmZhY2VIZWFkZXIsICJ9XG5cbiIpOwotCi0gICAgIyAtIERlZmF1bHQgSW50
ZXJmYWNlIENyZWF0b3IgLQotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIiR7aW50ZXJm
YWNlTmFtZX0qIHRvJHtpbnRlcmZhY2VOYW1lfSgke2ltcGxlbWVudGF0aW9uQ2xhc3N9KikgeyBy
ZXR1cm4gMDsgfVxuXG4iKTsKLQotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIiNlbmRp
ZiAvLyAiIC4gJGNsYXNzTmFtZSAuICJfaFxuIik7Ci19Ci0KLSMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSMgICAgQ1BQIEhlbHBlciBGdW5jdGlvbnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
c3ViIEdlbmVyYXRlQ1BQQXR0cmlidXRlU2lnbmF0dXJlCi17Ci0gICAgbXkgKCRhdHRyaWJ1dGUs
ICRjbGFzc05hbWUsICRvcHRpb25zKSA9IEBfOwotCi0gICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgbXkgJGlzUmVhZG9ubHkgPSAoJGF0dHJp
YnV0ZS0+dHlwZSA9fiAvXnJlYWRvbmx5Lyk7Ci0KLSAgICBteSAkbmV3bGluZSA9ICQkb3B0aW9u
c3siTmV3TGluZXMifSA/ICJcbiIgOiAiIjsKLSAgICBteSAkaW5kZW50ID0gJCRvcHRpb25zeyJJ
bmRlbnQifSA/ICIgIiB4ICQkb3B0aW9uc3siSW5kZW50In0gOiAiIjsKLSAgICBteSAkc2VtaWNv
bG9uID0gJCRvcHRpb25zeyJJbmNsdWRlU2VtaUNvbG9uIn0gPyAiOyIgOiAiIjsKLSAgICBteSAk
dmlydHVhbCA9ICQkb3B0aW9uc3siQWRkVmlydHVhbEtleXdvcmQifSA/ICJ2aXJ0dWFsICIgOiAi
IjsKLSAgICBteSAkY2xhc3MgPSAkJG9wdGlvbnN7IlVzZUNsYXNzTmFtZSJ9ID8gIiR7Y2xhc3NO
YW1lfTo6IiA6ICIiOwotICAgIG15ICRmb3J3YXJkZXIgPSAkJG9wdGlvbnN7IkZvcndhcmRlciJ9
ID8gMSA6IDA7Ci0gICAgbXkgJGpvaW5lciA9ICAoJCRvcHRpb25zeyJOZXdMaW5lcyJ9ID8gIlxu
IiAuICRpbmRlbnQgLiAiICAgICIgOiAiIik7Ci0KLSAgICBteSAlYXR0cmlidXRlU2lnbmF0dXJl
cyA9ICgpOwotCi0gICAgdW5sZXNzICgkaXNSZWFkb25seSkgewotICAgICAgICBteSAkYXR0cmli
dXRlVHlwZUluID0gR2V0Q09NVHlwZUluKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0g
ICAgICAgIG15ICRzZXR0ZXJOYW1lID0gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkYXR0cmlidXRlTmFtZSk7Ci0gICAgICAgIG15ICRzZXR0ZXIgPSAkaW5kZW50IC4gJHZpcnR1
YWwgLiAiSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSAiLiAkY2xhc3MgLiAkc2V0dGVyTmFtZSAu
ICIoIjsKLSAgICAgICAgJHNldHRlciAuPSAkam9pbmVyIC4gIi8qIFtpbl0gKi8gJHthdHRyaWJ1
dGVUeXBlSW59ICR7YXR0cmlidXRlTmFtZX0pIiAuICRzZW1pY29sb24gLiAkbmV3bGluZTsKLSAg
ICAgICAgaWYgKCRmb3J3YXJkZXIpIHsKLSAgICAgICAgICAgICRzZXR0ZXIgLj0gIiB7IHJldHVy
biAiIC4gJCRvcHRpb25zeyJGb3J3YXJkZXIifSAuICI6OiIgLiAkc2V0dGVyTmFtZSAuICIoJHth
dHRyaWJ1dGVOYW1lfSk7IH1cbiI7Ci0gICAgICAgIH0KLSAgICAgICAgJGF0dHJpYnV0ZVNpZ25h
dHVyZXN7IlNldHRlciJ9ID0gJHNldHRlcjsKLSAgICB9Ci0KLSAgICBteSAkYXR0cmlidXRlVHlw
ZU91dCA9IEdldENPTVR5cGVPdXQoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICBt
eSAkZ2V0dGVyID0gJGluZGVudCAuICR2aXJ0dWFsIC4gIkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgIiAuICRjbGFzcyAuICRhdHRyaWJ1dGVOYW1lIC4gIigiOwotICAgICRnZXR0ZXIgLj0gJGpv
aW5lciAuICIvKiBbcmV0dmFsXVtvdXRdICovICR7YXR0cmlidXRlVHlwZU91dH0qIHJlc3VsdCki
IC4gJHNlbWljb2xvbiAuICRuZXdsaW5lOwotICAgIGlmICgkZm9yd2FyZGVyKSB7Ci0gICAgICAg
ICRnZXR0ZXIgLj0gIiB7IHJldHVybiAiIC4gJCRvcHRpb25zeyJGb3J3YXJkZXIifSAuICI6OiIg
LiAkYXR0cmlidXRlTmFtZSAuICIocmVzdWx0KTsgfVxuIjsKLSAgICB9Ci0gICAgJGF0dHJpYnV0
ZVNpZ25hdHVyZXN7IkdldHRlciJ9ID0gJGdldHRlcjsKLQotICAgIHJldHVybiAlYXR0cmlidXRl
U2lnbmF0dXJlczsKLX0KLQotCi1zdWIgR2VuZXJhdGVDUFBBdHRyaWJ1dGUKLXsKLSAgICBteSAo
JGF0dHJpYnV0ZSwgJGNsYXNzTmFtZSwgJGltcGxlbWVudGF0aW9uQ2xhc3MsICRJRExUeXBlKSA9
IEBfOwotCi0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlID0gU3Ry
aXBOYW1lc3BhY2UoJGltcGxlbWVudGF0aW9uQ2xhc3MpOwotCi0gICAgbXkgJGF0dHJpYnV0ZU5h
bWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgbXkgJGF0dHJpYnV0ZUlETFR5
cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgbXkgJGhhc1NldHRlckV4Y2Vw
dGlvbiA9IEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307Ci0gICAgbXkgJGhhc0dldHRl
ckV4Y2VwdGlvbiA9IEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc307Ci0gICAgbXkgJGlz
UmVhZG9ubHkgPSAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvXnJlYWRvbmx5Lyk7Ci0gICAgbXkgJGF0
dHJpYnV0ZVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUo
JGF0dHJpYnV0ZUlETFR5cGUpOwotICAgIG15ICRhdHRyaWJ1dGVUeXBlSXNTdHJpbmcgPSAkY29k
ZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICBteSAkYXR0
cmlidXRlSW1wbGVtZW50YXRpb25UeXBlID0gSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlKCRh
dHRyaWJ1dGVJRExUeXBlKTsKLSAgICBteSAkYXR0cmlidXRlSW1wbGVtZW50YXRpb25UeXBlV2l0
aG91dE5hbWVzcGFjZSA9IFN0cmlwTmFtZXNwYWNlKCRhdHRyaWJ1dGVJbXBsZW1lbnRhdGlvblR5
cGUpOwotICAgIG15ICRhdHRyaWJ1dGVUeXBlQ09NQ2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRh
dHRyaWJ1dGVJRExUeXBlKTsKLQotICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRl
c3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxIGlmICRoYXNTZXR0ZXJFeGNlcHRpb24gb3IgJGhhc0dl
dHRlckV4Y2VwdGlvbjsKLQotICAgIG15ICVzaWduYXR1cmVzID0gR2VuZXJhdGVDUFBBdHRyaWJ1
dGVTaWduYXR1cmUoJGF0dHJpYnV0ZSwgJGNsYXNzTmFtZSwgeyAiTmV3TGluZXMiID0+IDEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJJbmRlbnQiID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJ
bmNsdWRlU2VtaUNvbG9uIiA9PiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1l
IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmlydHVhbEtleXdvcmQiID0+IDAgfSk7
Ci0KLSAgICBteSAlYXR0cmJ1dGVzVG9SZXR1cm4gPSAoKTsKLQotICAgIHVubGVzcyAoJGlzUmVh
ZG9ubHkpIHsKLSAgICAgICAgbXkgQHNldHRlckltcGxlbWVudGF0aW9uID0gKCk7Ci0gICAgICAg
IHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAkc2lnbmF0dXJlc3siU2V0dGVyIn0pOwotICAg
ICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIntcbiIpOwotCi0gICAgICAgIG15ICRz
ZXR0ZXJOYW1lID0gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRl
TmFtZSk7Ci0KLSAgICAgICAgbXkgQHNldHRlclBhcmFtcyA9ICgpOwotICAgICAgICBpZiAoJGF0
dHJpYnV0ZVR5cGVJc1N0cmluZykgewotICAgICAgICAgICAgcHVzaChAc2V0dGVyUGFyYW1zLCAk
YXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAgICBpZiAoJGhhc1NldHRlckV4Y2VwdGlvbikgewot
ICAgICAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVy
UGFyYW1zLCAiZWMiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0
ZVR5cGVJc1ByaW1pdGl2ZSkgewotICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0pIHsKLSAgICAgICAg
ICAgICAgICBwdXNoKEBzZXR0ZXJQYXJhbXMsICJXZWJDb3JlOjpTdHJpbmc6Om51bWJlcigke2F0
dHJpYnV0ZU5hbWV9KSIpOwotICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZUlETFR5cGUg
ZXEgImJvb2xlYW4iKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVyUGFyYW1zLCAiISEk
e2F0dHJpYnV0ZU5hbWV9Iik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IG15ICRwcmltaXRpdmVJbXBsZW1lbnRhdGlvblR5cGUgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlv
blR5cGUoJGF0dHJpYnV0ZUlETFR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQHNldHRlclBh
cmFtcywgInN0YXRpY19jYXN0PCR7cHJpbWl0aXZlSW1wbGVtZW50YXRpb25UeXBlfT4oJHthdHRy
aWJ1dGVOYW1lfSkiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCRoYXNTZXR0
ZXJFeGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlv
biwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwotICAgICAgICAgICAg
ICAgIHB1c2goQHNldHRlclBhcmFtcywgImVjIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7IkNP
TVB0ci5oIn0gPSAxOwotCi0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwg
IiAgICBpZiAoISR7YXR0cmlidXRlTmFtZX0pXG4iKTsKLSAgICAgICAgICAgIHB1c2goQHNldHRl
ckltcGxlbWVudGF0aW9uLCAiICAgICAgICByZXR1cm4gRV9QT0lOVEVSO1xuXG4iKTsKLSAgICAg
ICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIENPTVB0cjwke2F0dHJpYnV0
ZVR5cGVDT01DbGFzc05hbWV9PiBwdHIoUXVlcnksICR7YXR0cmlidXRlTmFtZX0pO1xuIik7Ci0g
ICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBpZiAoIXB0cilcbiIp
OwotICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgICAgIHJldHVy
biBFX05PSU5URVJGQUNFO1xuIik7Ci0KLSAgICAgICAgICAgIHB1c2goQHNldHRlclBhcmFtcywg
InB0ci0+aW1wbCR7YXR0cmlidXRlSW1wbGVtZW50YXRpb25UeXBlV2l0aG91dE5hbWVzcGFjZX0o
KSIpOwotICAgICAgICAgICAgaWYgKCRoYXNTZXR0ZXJFeGNlcHRpb24pIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQHNldHRlclBhcmFtcywgImVj
Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAjIEZJWE1FOiBDSEVDSyBF
WENFUFRJT04gQU5EIERPIFNPTUVUSElORyBXSVRIIElUCi0KLSAgICAgICAgbXkgJHJlZmxlY3Qg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07
Ci0gICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwotICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJl
ZmxlY3RVUkwpIHsKLSAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgoJHJl
ZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkYXR0cmlidXRlTmFtZSA6ICgkcmVmbGVj
dCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICBteSAkbmFtZXNwYWNlID0gJGNvZGVHZW5l
cmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUoJElETFR5cGUsICRjb250ZW50QXR0cmli
dXRlTmFtZSk7Ci0gICAgICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7
IiR7bmFtZXNwYWNlfS5oIn0gPSAxOwotICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50
YXRpb24sICIgICAgaW1wbCR7aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCkt
PnNldEF0dHJpYnV0ZShXZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5h
bWV9QXR0ciwgIiAuIGpvaW4oIiwgIiwgQHNldHRlclBhcmFtcykgLiAiKTtcbiIpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAg
aW1wbCR7aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCktPiR7c2V0dGVyTmFt
ZX0oIiAuIGpvaW4oIiwgIiwgQHNldHRlclBhcmFtcykgLiAiKTtcbiIpOwotICAgICAgICB9Ci0g
ICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIHJldHVybiBTX09LO1xuIik7
Ci0gICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAifVxuXG4iKTsKLQotICAgICAg
ICAkYXR0cmJ1dGVzVG9SZXR1cm57IlNldHRlciJ9ID0gam9pbigiIiwgQHNldHRlckltcGxlbWVu
dGF0aW9uKTsKLSAgICB9Ci0KLSAgICBteSBAZ2V0dGVySW1wbGVtZW50YXRpb24gPSAoKTsKLSAg
ICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgJHNpZ25hdHVyZXN7IkdldHRlciJ9KTsKLSAg
ICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIntcbiIpOwotICAgIHB1c2goQGdldHRlcklt
cGxlbWVudGF0aW9uLCAiICAgIGlmICghcmVzdWx0KVxuIik7Ci0gICAgcHVzaChAZ2V0dGVySW1w
bGVtZW50YXRpb24sICIgICAgICAgIHJldHVybiBFX1BPSU5URVI7XG5cbiIpOwotCi0gICAgbXkg
JGltcGxlbWVudGF0aW9uR2V0dGVyOwotICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwotICAgIG15ICRyZWZsZWN0
VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVj
dFVSTCJ9OwotICAgIGlmICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgewotICAgICAgICBteSAk
Y29udGVudEF0dHJpYnV0ZU5hbWUgPSAoKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSBlcSAiMSIp
ID8gJGF0dHJpYnV0ZU5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOwotICAgICAgICBt
eSAkbmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUo
JElETFR5cGUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7bmFtZXNwYWNlfS5oIn0gPSAxOwotICAgICAgICBteSAkZ2V0QXR0cmlidXRlRnVuY3Rpb25O
YW1lID0gJHJlZmxlY3RVUkwgPyAiZ2V0VVJMQXR0cmlidXRlIiA6ICJnZXRBdHRyaWJ1dGUiOwot
ICAgICAgICAkaW1wbGVtZW50YXRpb25HZXR0ZXIgPSAiaW1wbCR7aW1wbGVtZW50YXRpb25DbGFz
c1dpdGhvdXROYW1lc3BhY2V9KCktPiR7Z2V0QXR0cmlidXRlRnVuY3Rpb25OYW1lfShXZWJDb3Jl
Ojoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0cikiOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgICRpbXBsZW1lbnRhdGlvbkdldHRlciA9ICJpbXBsJHtpbXBsZW1lbnRhdGlv
bkNsYXNzV2l0aG91dE5hbWVzcGFjZX0oKS0+IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRhdHRyaWJ1dGVOYW1lKSAuICIoIiAuICgkaGFzR2V0dGVyRXhjZXB0aW9uID8gImVjIiA6ICIi
KS4gIikiOwotICAgIH0KLQotICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAiICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgJGhhc0dldHRlckV4Y2VwdGlvbjsK
LQotICAgIGlmICgkYXR0cmlidXRlVHlwZUlzU3RyaW5nKSB7Ci0gICAgICAgIHB1c2goQGdldHRl
ckltcGxlbWVudGF0aW9uLCAiICAgICpyZXN1bHQgPSBXZWJDb3JlOjpCU3RyaW5nKCR7aW1wbGVt
ZW50YXRpb25HZXR0ZXJ9KS5yZWxlYXNlKCk7XG4iKTsKLSAgICB9IGVsc2lmICgkYXR0cmlidXRl
VHlwZUlzUHJpbWl0aXZlKSB7Ci0gICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9KSB7Ci0gICAgICAgICAgICBw
dXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAqcmVzdWx0ID0gc3RhdGljX2Nhc3Q8JHth
dHRyaWJ1dGVUeXBlQ09NQ2xhc3NOYW1lfT4oJHtpbXBsZW1lbnRhdGlvbkdldHRlcn0udG9JbnQo
KSk7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGdldHRlckltcGxl
bWVudGF0aW9uLCAiICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDwke2F0dHJpYnV0ZVR5cGVDT01D
bGFzc05hbWV9Pigke2ltcGxlbWVudGF0aW9uR2V0dGVyfSk7XG4iKTsKLSAgICAgICAgfQotICAg
IH0gZWxzZSB7Ci0gICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbkluY2x1ZGVzQW5nbGV7Ind0Zi9H
ZXRQdHIuaCJ9ID0gMTsKLSAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGVDT01JbnRlcmZhY2VOYW1l
ID0gR2V0SW50ZXJmYWNlTmFtZSgkYXR0cmlidXRlSURMVHlwZSk7Ci0gICAgICAgIHB1c2goQGdl
dHRlckltcGxlbWVudGF0aW9uLCAiICAgICpyZXN1bHQgPSAwO1xuIik7Ci0gICAgICAgIHB1c2go
QGdldHRlckltcGxlbWVudGF0aW9uLCAiICAgICR7YXR0cmlidXRlSW1wbGVtZW50YXRpb25UeXBl
fSogcmVzdWx0SW1wbCA9IFdURjo6Z2V0UHRyKCR7aW1wbGVtZW50YXRpb25HZXR0ZXJ9KTtcbiIp
OwotICAgICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBpZiAoIXJlc3VsdElt
cGwpXG4iKTsKLSAgICAgICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgICAgIHJl
dHVybiBFX1BPSU5URVI7XG5cbiIpOwotICAgICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlv
biwgIiAgICAqcmVzdWx0ID0gdG8ke2F0dHJpYnV0ZVR5cGVDT01JbnRlcmZhY2VOYW1lfShyZXN1
bHRJbXBsKTtcbiIpOwotICAgIH0KLQotICAgICMgRklYTUU6IENIRUNLIEVYQ0VQVElPTiBBTkQg
RE8gU09NRVRISU5HIFdJVEggSVQKLQotICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAi
ICAgIHJldHVybiBTX09LO1xuIik7Ci0gICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICJ9
XG5cbiIpOwotCi0gICAgJGF0dHJidXRlc1RvUmV0dXJueyJHZXR0ZXIifSA9IGpvaW4oIiIsIEBn
ZXR0ZXJJbXBsZW1lbnRhdGlvbik7Ci0KLSAgICByZXR1cm4gJWF0dHJidXRlc1RvUmV0dXJuOwot
fQotCi1zdWIgR2VuZXJhdGVDUFBGdW5jdGlvblNpZ25hdHVyZQotewotICAgIG15ICgkZnVuY3Rp
b24sICRjbGFzc05hbWUsICRvcHRpb25zKSA9IEBfOwotCi0gICAgbXkgJGZ1bmN0aW9uTmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgIG15ICRyZXR1cm5JRExUeXBlID0gJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgbXkgJHJldHVyblR5cGUgPSBHZXRDT01UeXBl
T3V0KCRyZXR1cm5JRExUeXBlKTsKLSAgICBteSAkbm9SZXR1cm4gPSAoJHJldHVyblR5cGUgZXEg
InZvaWQiKTsKLQotICAgIG15ICRuZXdsaW5lID0gJCRvcHRpb25zeyJOZXdMaW5lcyJ9ID8gIlxu
IiA6ICIiOwotICAgIG15ICRpbmRlbnQgPSAkJG9wdGlvbnN7IkluZGVudCJ9ID8gIiAiIHggJCRv
cHRpb25zeyJJbmRlbnQifSA6ICIiOwotICAgIG15ICRzZW1pY29sb24gPSAkJG9wdGlvbnN7Iklu
Y2x1ZGVTZW1pQ29sb24ifSA/ICI7IiA6ICIiOwotICAgIG15ICR2aXJ0dWFsID0gJCRvcHRpb25z
eyJBZGRWaXJ0dWFsS2V5d29yZCJ9ID8gInZpcnR1YWwgIiA6ICIiOwotICAgIG15ICRjbGFzcyA9
ICQkb3B0aW9uc3siVXNlQ2xhc3NOYW1lIn0gPyAiJHtjbGFzc05hbWV9OjoiIDogIiI7Ci0gICAg
bXkgJGZvcndhcmRlciA9ICQkb3B0aW9uc3siRm9yd2FyZGVyIn0gPyAxIDogMDsKLSAgICBteSAk
am9pbmVyID0gKCQkb3B0aW9uc3siTmV3TGluZXMifSA/ICJcbiIgLiAkaW5kZW50IC4gIiAgICAi
IDogIiAiKTsKLQotICAgIG15IEBwYXJhbUFyZ0xpc3QgPSAoKTsKLSAgICBmb3JlYWNoIG15ICRw
YXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgIG15ICRwYXJhbU5hbWUg
PSAkcGFyYW0tPm5hbWU7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRDT01UeXBlSW4oJHBh
cmFtLT50eXBlKTsKLSAgICAgICAgbXkgJHBhcmFtZXRlciA9ICIvKiBbaW5dICovICR7cGFyYW1U
eXBlfSAke3BhcmFtTmFtZX0iOwotICAgICAgICBwdXNoKEBwYXJhbUFyZ0xpc3QsICRwYXJhbWV0
ZXIpOwotICAgIH0KLQotICAgIHVubGVzcyAoJG5vUmV0dXJuKSB7Ci0gICAgICAgIG15ICRyZXN1
bHRQYXJhbWV0ZXIgLj0gIi8qIFtvdXQsIHJldHZhbF0gKi8gJHtyZXR1cm5UeXBlfSogcmVzdWx0
IjsKLSAgICAgICAgcHVzaChAcGFyYW1BcmdMaXN0LCAkcmVzdWx0UGFyYW1ldGVyKTsKLSAgICB9
Ci0KLSAgICBteSAkZnVuY3Rpb25TaWcgPSAkaW5kZW50IC4gJHZpcnR1YWwgLiAiSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSAiIC4gJGNsYXNzIC4gJGZ1bmN0aW9uTmFtZSAuICIoIjsKLSAgICAk
ZnVuY3Rpb25TaWcgLj0gJGpvaW5lciAuIGpvaW4oIiwiIC4gJGpvaW5lciwgQHBhcmFtQXJnTGlz
dCkgaWYgQHBhcmFtQXJnTGlzdCA+IDA7Ci0gICAgJGZ1bmN0aW9uU2lnIC49ICIpIiAuICRzZW1p
Y29sb24gLiAkbmV3bGluZTsKLSAgICBpZiAoJGZvcndhcmRlcikgewotICAgICAgICBteSBAcGFy
YW1OYW1lTGlzdCA9ICgpOwotICAgICAgICBwdXNoKEBwYXJhbU5hbWVMaXN0LCAkXy0+bmFtZSkg
Zm9yZWFjaCAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KTsKLSAgICAgICAgcHVzaChAcGFyYW1O
YW1lTGlzdCwgInJlc3VsdCIpIHVubGVzcyAkbm9SZXR1cm47Ci0gICAgICAgICRmdW5jdGlvblNp
ZyAuPSAiIHsgcmV0dXJuICIgLiAkJG9wdGlvbnN7IkZvcndhcmRlciJ9IC4gIjo6IiAuICRmdW5j
dGlvbk5hbWUgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbU5hbWVMaXN0KSAuICIpOyB9XG4iOwot
ICAgIH0KLQotICAgIHJldHVybiAkZnVuY3Rpb25TaWcKLX0KLQotc3ViIEdlbmVyYXRlQ1BQRnVu
Y3Rpb24KLXsKLSAgICBteSAoJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCAkaW1wbGVtZW50YXRpb25D
bGFzcykgPSBAXzsKLQotICAgIG15IEBmdW5jdGlvbkltcGxlbWVudGF0aW9uID0gKCk7Ci0KLSAg
ICBteSAkc2lnbmF0dXJlID0gR2VuZXJhdGVDUFBGdW5jdGlvblNpZ25hdHVyZSgkZnVuY3Rpb24s
ICRjbGFzc05hbWUsIHsgIk5ld0xpbmVzIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZW50
IiA9PiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZp
cnR1YWxLZXl3b3JkIiA9PiAwIH0pOwotCi0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NXaXRo
b3V0TmFtZXNwYWNlID0gU3RyaXBOYW1lc3BhY2UoJGltcGxlbWVudGF0aW9uQ2xhc3MpOwotCi0g
ICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgIG15
ICRyZXR1cm5JRExUeXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgbXkgJG5v
UmV0dXJuID0gKCRyZXR1cm5JRExUeXBlIGVxICJ2b2lkIik7Ci0gICAgbXkgJHJhaXNlc0V4Y2Vw
dGlvbnMgPSBAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc307Ci0KLSAgICBBZGRJbmNsdWRl
c0ZvclR5cGVJbkNQUEltcGxlbWVudGF0aW9uKCRyZXR1cm5JRExUeXBlKTsKLSAgICAkQ1BQSW1w
bGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7IkV4Y2VwdGlvbkNvZGUuaCJ9ID0gMSBpZiAkcmFp
c2VzRXhjZXB0aW9uczsKLQotICAgIG15ICVuZWVkc0N1c3RvbSA9ICgpOwotICAgIG15IEBwYXJh
bWV0ZXJJbml0aWFsaXphdGlvbiA9ICgpOwotICAgIG15IEBwYXJhbWV0ZXJMaXN0ID0gKCk7Ci0g
ICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAg
ICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwotICAgICAgICBteSAkcGFyYW1JRExUeXBl
ID0gJHBhcmFtLT50eXBlOwotCi0gICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRj
b2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7Ci0gICAgICAgIG15
ICRwYXJhbVR5cGVJc1N0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHBhcmFt
SURMVHlwZSk7Ci0KLSAgICAgICAgJG5lZWRzQ3VzdG9teyJOb2RlVG9SZXR1cm4ifSA9ICRwYXJh
bU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07Ci0KLSAgICAg
ICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBJbXBsZW1lbnRhdGlvbigkcGFyYW1JRExUeXBlKTsK
LQotICAgICAgICAjIEZJWE1FOiBXZSBtYXkgbmVlZCB0byBudWxsIGNoZWNrIHRoZSBhcmd1bWVu
dHMgYXMgd2VsbAotCi0gICAgICAgIGlmICgkcGFyYW1UeXBlSXNTdHJpbmcpIHsKLSAgICAgICAg
ICAgIHB1c2goQHBhcmFtZXRlckxpc3QsICRwYXJhbU5hbWUpOwotICAgICAgICB9IGVsc2lmICgk
cGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKLSAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVx
ICJib29sZWFuIikgewotICAgICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlckxpc3QsICIhISR7
cGFyYW1OYW1lfSIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBteSAk
cHJpbWl0aXZlSW1wbGVtZW50YXRpb25UeXBlID0gSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBl
KCRwYXJhbUlETFR5cGUpOwotICAgICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlckxpc3QsICJz
dGF0aWNfY2FzdDwke3ByaW1pdGl2ZUltcGxlbWVudGF0aW9uVHlwZX0+KCR7cGFyYW1OYW1lfSki
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRDUFBJbXBs
ZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siQ09NUHRyLmgifSA9IDE7Ci0KLSAgICAgICAgICAg
ICRuZWVkc0N1c3RvbXsiQ2FuUmV0dXJuRWFybHkifSA9IDE7Ci0KLSAgICAgICAgICAgIG15ICRw
YXJhbVR5cGVDT01DbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJHBhcmFtSURMVHlwZSk7Ci0gICAg
ICAgICAgICBteSAkcGFyYW1UeXBlSW1wbGVtZW50YXRpb25XaXRob3V0TmFtZXNwYWNlID0gU3Ry
aXBOYW1lc3BhY2UoSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlKCRwYXJhbUlETFR5cGUpKTsK
LSAgICAgICAgICAgIG15ICRwdHJOYW1lID0gInB0ckZvciIgLiAkY29kZUdlbmVyYXRvci0+V0tf
dWNmaXJzdCgkcGFyYW1OYW1lKTsKLSAgICAgICAgICAgIG15ICRwYXJhbUluaXQgPSAiICAgIENP
TVB0cjwke3BhcmFtVHlwZUNPTUNsYXNzTmFtZX0+ICR7cHRyTmFtZX0oUXVlcnksICR7cGFyYW1O
YW1lfSk7XG4iOwotICAgICAgICAgICAgJHBhcmFtSW5pdCAuPSAiICAgIGlmICghJHtwdHJOYW1l
fSlcbiI7Ci0gICAgICAgICAgICAkcGFyYW1Jbml0IC49ICIgICAgICAgIHJldHVybiBFX05PSU5U
RVJGQUNFOyI7Ci0gICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJJbml0aWFsaXphdGlvbiwgJHBh
cmFtSW5pdCk7Ci0gICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJMaXN0LCAiJHtwdHJOYW1lfS0+
aW1wbCR7cGFyYW1UeXBlSW1wbGVtZW50YXRpb25XaXRob3V0TmFtZXNwYWNlfSgpIik7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBwdXNoKEBwYXJhbWV0ZXJMaXN0LCAiZWMiKSBpZiAkcmFpc2Vz
RXhjZXB0aW9uczsKLQotICAgIG15ICRpbXBsZW1lbnRhdGlvbkdldHRlciA9ICJpbXBsJHtpbXBs
ZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZX0oKSI7Ci0KLSAgICBteSAkY2FsbFNpZ0Jl
Z2luID0gIiAgICAiOwotICAgIG15ICRjYWxsU2lnTWlkZGxlID0gIiR7aW1wbGVtZW50YXRpb25H
ZXR0ZXJ9LT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAi
KCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJMaXN0KSAuICIpIjsKLSAgICBteSAkY2FsbFNpZ0Vu
ZCA9ICI7XG4iOwotCi0gICAgaWYgKGRlZmluZWQgJG5lZWRzQ3VzdG9teyJOb2RlVG9SZXR1cm4i
fSkgewotICAgICAgICBteSAkbm9kZVRvUmV0dXJuID0gJG5lZWRzQ3VzdG9teyJOb2RlVG9SZXR1
cm4ifTsKLSAgICAgICAgJGNhbGxTaWdCZWdpbiAuPSAiaWYgKCI7Ci0gICAgICAgICRjYWxsU2ln
RW5kID0gIilcbiI7Ci0gICAgICAgICRjYWxsU2lnRW5kIC49ICIgICAgICAgICpyZXN1bHQgPSAk
e25vZGVUb1JldHVybn07IjsKLSAgICB9IGVsc2lmICghJG5vUmV0dXJuKSB7Ci0gICAgICAgIG15
ICRyZXR1cm5UeXBlSXNTdHJpbmcgPSAgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkcmV0
dXJuSURMVHlwZSk7Ci0gICAgICAgIG15ICRyZXR1cm5UeXBlSXNQcmltaXRpdmUgPSAkY29kZUdl
bmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRyZXR1cm5JRExUeXBlKTsKLQotICAgICAgICBpZiAo
JHJldHVyblR5cGVJc1N0cmluZykgewotICAgICAgICAgICAgJGNhbGxTaWdCZWdpbiAuPSAiKnJl
c3VsdCA9IFdlYkNvcmU6OkJTdHJpbmcoIjsKLSAgICAgICAgICAgICRjYWxsU2lnRW5kID0gIiku
cmVsZWFzZSgpO1xuIjsKLSAgICAgICAgfSBlbHNpZiAoJHJldHVyblR5cGVJc1ByaW1pdGl2ZSkg
ewotICAgICAgICAgICAgbXkgJHByaW1pdGl2ZUNPTVR5cGUgPSBHZXRDbGFzc05hbWUoJHJldHVy
bklETFR5cGUpOwotICAgICAgICAgICAgJGNhbGxTaWdCZWdpbiAuPSAiKnJlc3VsdCA9IHN0YXRp
Y19jYXN0PCR7cHJpbWl0aXZlQ09NVHlwZX0+KCI7Ci0gICAgICAgICAgICAkY2FsbFNpZ0VuZCA9
ICIpOyI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25J
bmNsdWRlc0FuZ2xleyJ3dGYvR2V0UHRyLmgifSA9IDE7Ci0gICAgICAgICAgICBteSAkcmV0dXJu
SW1wbGVtZW50YXRpb25UeXBlID0gSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlKCRyZXR1cm5J
RExUeXBlKTsKLSAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlQ09NSW50ZXJmYWNlTmFtZSA9IEdl
dEludGVyZmFjZU5hbWUoJHJldHVybklETFR5cGUpOwotICAgICAgICAgICAgJGNhbGxTaWdCZWdp
biAuPSAiJHtyZXR1cm5JbXBsZW1lbnRhdGlvblR5cGV9KiByZXN1bHRJbXBsID0gV1RGOjpnZXRQ
dHIoIjsKLSAgICAgICAgICAgICRjYWxsU2lnRW5kID0gIik7XG4iOwotICAgICAgICAgICAgJGNh
bGxTaWdFbmQgLj0gIiAgICBpZiAoIXJlc3VsdEltcGwpXG4iOwotICAgICAgICAgICAgJGNhbGxT
aWdFbmQgLj0gIiAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjtcblxuIjsKLSAgICAgICAgICAgICRj
YWxsU2lnRW5kIC49ICIgICAgKnJlc3VsdCA9IHRvJHtyZXR1cm5UeXBlQ09NSW50ZXJmYWNlTmFt
ZX0ocmVzdWx0SW1wbCk7IjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1c2goQGZ1bmN0aW9u
SW1wbGVtZW50YXRpb24sICRzaWduYXR1cmUpOwotICAgIHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50
YXRpb24sICJ7XG4iKTsKLSAgICB1bmxlc3MgKCRub1JldHVybikgewotICAgICAgICBwdXNoKEBm
dW5jdGlvbkltcGxlbWVudGF0aW9uLCAiICAgIGlmICghcmVzdWx0KVxuIik7Ci0gICAgICAgIHB1
c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICIgICAgICAgIHJldHVybiBFX1BPSU5URVI7XG5c
biIpOwotICAgICAgICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAiICAgICpyZXN1bHQg
PSAwO1xuXG4iKSBpZiAkbmVlZHNDdXN0b217IkNhblJldHVybkVhcmx5In07Ci0gICAgfQotICAg
IHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsgIyBGSVhNRTogQ0hFQ0sgRVhDRVBU
SU9OIEFORCBETyBTT01FVEhJTkcgV0lUSCBJVAotICAgIHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50
YXRpb24sIGpvaW4oIlxuIiwgQHBhcmFtZXRlckluaXRpYWxpemF0aW9uKSAuIChAcGFyYW1ldGVy
SW5pdGlhbGl6YXRpb24gPiAwID8gIlxuIiA6ICIiKSk7Ci0gICAgcHVzaChAZnVuY3Rpb25JbXBs
ZW1lbnRhdGlvbiwgJGNhbGxTaWdCZWdpbiAuICRjYWxsU2lnTWlkZGxlIC4gJGNhbGxTaWdFbmQg
LiAiXG4iKTsKLSAgICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAiICAgIHJldHVybiBT
X09LO1xuIik7Ci0gICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiwgIn1cblxuIik7Ci0K
LSAgICByZXR1cm4gam9pbigiIiwgQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24pOwotfQotCi0KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgICAgQ1BQIEhlYWRlcgotIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi1zdWIgR2VuZXJhdGVDUFBIZWFkZXIKLXsKLSAgICBteSAoJG9iamVjdCwgJGRhdGFO
b2RlKSA9IEBfOwotCi0gICAgbXkgJElETFR5cGUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkg
JGltcGxlbWVudGF0aW9uQ2xhc3MgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5cGUoJElETFR5
cGUpOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZSA9IFN0cmlw
TmFtZXNwYWNlKCRpbXBsZW1lbnRhdGlvbkNsYXNzKTsKLSAgICBteSAkY2xhc3NOYW1lID0gR2V0
Q2xhc3NOYW1lKCRJRExUeXBlKTsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IEdldEludGVyZmFj
ZU5hbWUoJElETFR5cGUpOwotCi0gICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENs
YXNzKCRkYXRhTm9kZSk7Ci0gICAgbXkgQG90aGVySW50ZXJmYWNlc0ltcGxlbWVudGVkID0gR2V0
QWRkaXRpb25hbEludGVyZmFjZXMoJElETFR5cGUpOwotICAgIGZvcmVhY2ggbXkgJG90aGVySW50
ZXJmYWNlIChAb3RoZXJJbnRlcmZhY2VzSW1wbGVtZW50ZWQpIHsKLSAgICAgICAgcHVzaChAYWRk
aXRpb25hbEludGVyZmFjZURlZmluaXRpb25zLCAkY29kZUdlbmVyYXRvci0+UGFyc2VJbnRlcmZh
Y2UoJG90aGVySW50ZXJmYWNlKSk7Ci0gICAgfQotCi0gICAgIyBGSVhNRTogc3RyaXAgd2hpdGVz
cGFjZSBmcm9tIFVVSUQKLSAgICBteSAkdXVpZCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkltcGxlbWVudGF0aW9uVVVJRCJ9IHx8IGRpZSAiQWxsIGNsYXNzZXMgcmVxdWlyZSBh
biBJbXBsZW1lbnRhdGlvblVVSUQgZXh0ZW5kZWQgYXR0cmlidXRlLiI7Ci0KLSAgICBteSAkbnVt
QXR0cmlidXRlcyA9IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICBteSAkbnVtRnVuY3Rp
b25zID0gQHskZGF0YU5vZGUtPmZ1bmN0aW9uc307Ci0KLSAgICAjIC0gQWRkIGRlZmF1bHQgaGVh
ZGVyIHRlbXBsYXRlCi0gICAgQENQUEhlYWRlckhlYWRlciA9IEBsaWNlbnNlVGVtcGxhdGU7Ci0g
ICAgcHVzaChAQ1BQSGVhZGVySGVhZGVyLCAiXG4iKTsKLQotICAgICMgLSBIZWFkZXIgZ3VhcmRz
IC0KLSAgICBwdXNoKEBDUFBIZWFkZXJIZWFkZXIsICIjaWZuZGVmICIgLiAkY2xhc3NOYW1lIC4g
Il9oXG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJIZWFkZXIsICIjZGVmaW5lICIgLiAkY2xhc3NO
YW1lIC4gIl9oXG5cbiIpOwotCi0gICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBIZWFkZXIoJGlu
dGVyZmFjZU5hbWUpOwotICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluQ1BQSGVhZGVyKCRwYXJlbnRD
bGFzc05hbWUpOwotICAgICRDUFBIZWFkZXJEb250Rm9yd2FyZERlY2xhcmF0aW9uc3skY2xhc3NO
YW1lfSA9IDE7Ci0gICAgJENQUEhlYWRlckRvbnRGb3J3YXJkRGVjbGFyYXRpb25zeyRpbnRlcmZh
Y2VOYW1lfSA9IDE7Ci0gICAgJENQUEhlYWRlckRvbnRGb3J3YXJkRGVjbGFyYXRpb25zeyRwYXJl
bnRDbGFzc05hbWV9ID0gMTsKLQotICAgICMgLS0gRm9yd2FyZCBkZWNsYXJlIGltcGxlbWVudGF0
aW9uIHR5cGUKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAibmFtZXNwYWNlIFdlYkNvcmUg
e1xuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICBjbGFzcyAiLiBTdHJpcE5h
bWVzcGFjZSgkaW1wbGVtZW50YXRpb25DbGFzcykgLiAiO1xuIik7Ci0gICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgIn1cblxuIik7Ci0KLSAgICAjIC0tIFN0YXJ0IENsYXNzIC0tCi0gICAgbXkg
QHBhcmVudHNDbGFzc2VzID0gKCRwYXJlbnRDbGFzc05hbWUsICRpbnRlcmZhY2VOYW1lKTsKLSAg
ICBwdXNoKEBwYXJlbnRzQ2xhc3NlcywgbWFwIHsgR2V0SW50ZXJmYWNlTmFtZSgkXykgfSBAb3Ro
ZXJJbnRlcmZhY2VzSW1wbGVtZW50ZWQpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJj
bGFzcyBfX2RlY2xzcGVjKHV1aWQoXCIkdXVpZFwiKSkgJHtjbGFzc05hbWV9IDogIiAuIGpvaW4o
IiwgIiwgbWFwIHsgInB1YmxpYyAkXyIgfSBAcGFyZW50c0NsYXNzZXMpIC4gIiB7XG4iKTsKLQot
ICAgICMgQWRkIGluY2x1ZGVzIGZvciBhbGwgYWRkaXRpb25hbCBpbnRlcmZhY2VzIHRvIGltcGxl
bWVudAotICAgIG1hcCB7IEFkZEluY2x1ZGVzRm9yVHlwZUluQ1BQSGVhZGVyKEdldEludGVyZmFj
ZU5hbWUoJF8pKSB9IEBvdGhlckludGVyZmFjZXNJbXBsZW1lbnRlZDsKLQotICAgICMgLS0gQkFT
SUNTIC0tCi0gICAgIyBGSVhNRTogVGhlIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yIHNob3Vs
ZCBiZSBwcm90ZWN0ZWQsIGJ1dCB0aGUgY3VycmVudCBkZXNpZ24gb2YKLSAgICAjIGNyZWF0ZUlu
c3RhbmNlIHJlcXVpcmVzIHRoZW0gdG8gYmUgcHVibGljLiAgT25lIHNvbHV0aW9uIGlzIHRvIGZy
aWVuZCB0aGUgY29uc3RydWN0b3IKLSAgICAjIG9mIHRoZSB0b3AtbGV2ZWwtY2xhc3Mgd2l0aCBl
dmVyeSBvbmUgb2YgaXRzIGNoaWxkIGNsYXNzZXMsIGJ1dCB0aGF0IHJlcXVpcmVzIGluZm9ybWF0
aW9uCi0gICAgIyB0aGlzIHNjcmlwdCBjdXJyZW50bHkgZG9lcyBub3QgaGF2ZSwgdGhvdWdoIHBv
c3NpYmx5IGNvdWxkIGRldGVybWluZS4KLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAicHVi
bGljOlxuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICR7Y2xhc3NOYW1lfSgk
e2ltcGxlbWVudGF0aW9uQ2xhc3N9Kik7XG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50
LCAiICAgdmlydHVhbCB+JHtjbGFzc05hbWV9KCk7XG5cbiIpOwotCi0gICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljICR7Y2xhc3NOYW1lfSogY3JlYXRlSW5zdGFuY2UoJHtpbXBsZW1lbnRhdGlvbkNs
YXNzfSopO1xuXG4iKTsKLQotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8gSVVu
a25vd25cbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCwgdm9pZCoqIHBwdk9i
amVjdCk7XG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgVUxP
TkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCkgeyByZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9
OjpBZGRSZWYoKTsgfVxuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiAke3BhcmVudENs
YXNzTmFtZX06OlJlbGVhc2UoKTsgfVxuXG4iKTsKLQotCi0gICAgIyAtLSBQYXJlbnQgQ2xhc3Mg
Rm9yd2FyZHMgLS0KLSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9KSB7Ci0gICAgICAgIG15
ICVhdHRyaWJ1dGVOYW1lU2V0ID0gbWFwIHsoJF8tPnNpZ25hdHVyZS0+bmFtZSwgMSl9IEB7JGRh
dGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICAgICAgbXkgJWZ1bmN0aW9uTmFtZVNldCA9IG1hcCB7
KCRfLT5zaWduYXR1cmUtPm5hbWUsIDEpfSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfTsKLQotICAg
ICAgICBteSBAcGFyZW50TGlzdHMgPSAkY29kZUdlbmVyYXRvci0+R2V0TWV0aG9kc0FuZEF0dHJp
YnV0ZXNGcm9tUGFyZW50Q2xhc3NlcygkZGF0YU5vZGUpOwotICAgICAgICBwdXNoKEBDUFBIZWFk
ZXJDb250ZW50LCAiXG4iKTsKLSAgICAgICAgZm9yZWFjaCBteSAkcGFyZW50SGFzaCAoQHBhcmVu
dExpc3RzKSB7Ci0KLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8g
IiAuIEdldEludGVyZmFjZU5hbWUoJHBhcmVudEhhc2gtPnsnbmFtZSd9KSAuICREQVNIRVMgLiAi
XG4iKTsKLQotICAgICAgICAgICAgbXkgQGF0dHJpYnV0ZUxpc3QgPSBAeyRwYXJlbnRIYXNoLT57
J2F0dHJpYnV0ZXMnfX07Ci0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAg
IC8vIEF0dHJpYnV0ZXNcbiIpOwotICAgICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChA
YXR0cmlidXRlTGlzdCkgewotICAgICAgICAgICAgICAgICMgRG9uJ3QgZm9yd2FyZCBhbiBhdHRy
aWJ1dGUgdGhhdCB0aGlzIGNsYXNzIHJlZGVmaW5lcy4KLSAgICAgICAgICAgICAgICBuZXh0IGlm
ICRhdHRyaWJ1dGVOYW1lU2V0eyRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZX07Ci0KLSAgICAg
ICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0KLSAgICAgICAgICAgICAgICBteSAlYXR0cmlidXRl
cyA9IEdlbmVyYXRlQ1BQQXR0cmlidXRlU2lnbmF0dXJlKCRhdHRyaWJ1dGUsICRjbGFzc05hbWUs
IHsgIk5ld0xpbmVzIiA9PiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5k
ZW50IiA9PiA0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlD
b2xvbiIgPT4gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxL
ZXl3b3JkIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NO
YW1lIiA9PiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm9yd2FyZGVyIiA9
PiAkcGFyZW50Q2xhc3NOYW1lIH0pOwotICAgICAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNv
bnRlbnQsIHZhbHVlcyglYXR0cmlidXRlcykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAjIEFkZCBhdHRyaWJ1dGUgbmFtZXMgdG8gYXR0cmlidXRlIG5hbWVzIHNldCBpbiBjYXNlIG90
aGVyIGFuY2VzdG9ycyAKLSAgICAgICAgICAgICMgYWxzbyBkZWZpbmUgdGhlbS4KLSAgICAgICAg
ICAgICRhdHRyaWJ1dGVOYW1lU2V0eyRfLT5zaWduYXR1cmUtPm5hbWV9ID0gMSBmb3JlYWNoIEBh
dHRyaWJ1dGVMaXN0OwotCi0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiXG4i
KTsKLQotICAgICAgICAgICAgbXkgQGZ1bmN0aW9uTGlzdCA9IEB7JHBhcmVudEhhc2gtPnsnZnVu
Y3Rpb25zJ319OwotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAvLyBG
dW5jdGlvbnNcbiIpOwotICAgICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEBmdW5jdGlv
bkxpc3QpIHsKLSAgICAgICAgICAgICAgICAjIERvbid0IGZvcndhcmQgYSBmdW5jdGlvbiB0aGF0
IHRoaXMgY2xhc3MgcmVkZWZpbmVzLgotICAgICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9u
TmFtZVNldHskZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZX07Ci0KLSAgICAgICAgICAgICAgICBB
ZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKTsKLSAgICAgICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlw
ZUluQ1BQSGVhZGVyKCRfLT50eXBlKSBmb3JlYWNoIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30p
OwotCi0gICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gR2VuZXJhdGVDUFBGdW5jdGlv
blNpZ25hdHVyZSgkZnVuY3Rpb24sICRjbGFzc05hbWUsIHsgIk5ld0xpbmVzIiA9PiAwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmRlbnQiID0+IDQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkluY2x1ZGVTZW1pQ29sb24iID0+IDAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxLZXl3b3JkIiA9PiAxLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJVc2VDbGFzc05hbWUiID0+IDAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkZvcndhcmRlciIgPT4gJHBhcmVudENsYXNzTmFtZSB9KTsKLQotICAg
ICAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICRmdW5jdGlvblNpZyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAjIEFkZCBmdW5jdGlvbnMgbmFtZXMgdG8gZnVuY3Rpb25z
IG5hbWVzIHNldCBpbiBjYXNlIG90aGVyIGFuY2VzdG9ycyAKLSAgICAgICAgICAgICMgYWxzbyBk
ZWZpbmUgdGhlbS4KLSAgICAgICAgICAgICRmdW5jdGlvbk5hbWVTZXR7JF8tPnNpZ25hdHVyZS0+
bmFtZX0gPSAxIGZvcmVhY2ggQGZ1bmN0aW9uTGlzdDsKLQotICAgICAgICAgICAgcHVzaChAQ1BQ
SGVhZGVyQ29udGVudCwgIlxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIC0gQWRkaXRp
b25hbCBpbnRlcmZhY2VzIHRvIGltcGxlbWVudCAtCi0gICAgZm9yZWFjaCBteSAkaW50ZXJmYWNl
VG9JbXBsZW1lbnQgKEBhZGRpdGlvbmFsSW50ZXJmYWNlRGVmaW5pdGlvbnMpIHsKLSAgICAgICAg
bXkgJElETFR5cGVPZkludGVyZmFjZVRvSW1wbGVtZW50ID0gJGludGVyZmFjZVRvSW1wbGVtZW50
LT5uYW1lOwotICAgICAgICBteSAkbmFtZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQgPSBHZXRJbnRl
cmZhY2VOYW1lKCRJRExUeXBlT2ZJbnRlcmZhY2VUb0ltcGxlbWVudCk7Ci0gICAgICAgIG15ICRu
dW1BdHRyaWJ1dGVzSW5JbnRlcmZhY2UgPSBAeyRpbnRlcmZhY2VUb0ltcGxlbWVudC0+YXR0cmli
dXRlc307Ci0gICAgICAgIG15ICRudW1GdW5jdGlvbnNJbkludGVyZmFjZSA9IEB7JGludGVyZmFj
ZVRvSW1wbGVtZW50LT5mdW5jdGlvbnN9OwotCi0gICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRl
bnQsICIgICAgLy8gJHtuYW1lT2ZJbnRlcmZhY2VUb0ltcGxlbWVudH0gJHtEQVNIRVN9XG5cbiIp
OwotCi0gICAgICAgICMgLSBBZGQgYXR0cmlidXRlIGdldHRlcnMvc2V0dGVycy4KLSAgICAgICAg
aWYgKCRudW1BdHRyaWJ1dGVzSW5JbnRlcmZhY2UgPiAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBD
UFBIZWFkZXJDb250ZW50LCAiICAgIC8vIEF0dHJpYnV0ZXNcblxuIik7Ci0gICAgICAgICAgICBm
b3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZVRvSW1wbGVtZW50LT5hdHRyaWJ1dGVz
fSkgewotICAgICAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBI
ZWFkZXIoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLQotICAgICAgICAgICAgICAgIG15
ICVhdHRyaWJ1dGVTaWdzID0gR2VuZXJhdGVDUFBBdHRyaWJ1dGVTaWduYXR1cmUoJGF0dHJpYnV0
ZSwgJGNsYXNzTmFtZSwgeyAiTmV3TGluZXMiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJJbmRlbnQiID0+IDQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJJbmNsdWRlU2VtaUNvbG9uIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQWRkVmlydHVhbEtleXdvcmQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJVc2VDbGFzc05hbWUiID0+IDAgfSk7Ci0KLSAgICAgICAgICAgICAg
ICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCB2YWx1ZXMoJWF0dHJpYnV0ZVNpZ3MpKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiXG4iKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotCi0gICAgICAgICMgLSBBZGQgZnVuY3Rpb25zLgotICAgICAgICBpZiAoJG51
bUZ1bmN0aW9uc0luSW50ZXJmYWNlID4gMCkgewotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVy
Q29udGVudCwgIiAgICAvLyBGdW5jdGlvbnNcblxuIik7Ci0gICAgICAgICAgICBmb3JlYWNoIG15
ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlVG9JbXBsZW1lbnQtPmZ1bmN0aW9uc30pIHsKLSAgICAg
ICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFy
YXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRfLT50eXBlKSBmb3JlYWNoIChAeyRmdW5jdGlvbi0+
cGFyYW1ldGVyc30pOwotCi0gICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gR2VuZXJh
dGVDUFBGdW5jdGlvblNpZ25hdHVyZSgkZnVuY3Rpb24sICRjbGFzc05hbWUsIHsgIk5ld0xpbmVz
IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmRlbnQiID0+IDQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY2x1ZGVTZW1pQ29sb24iID0+IDEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxLZXl3b3JkIiA9PiAxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VDbGFzc05hbWUiID0+IDAgfSk7Ci0K
LSAgICAgICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAkZnVuY3Rpb25TaWcpOwot
ICAgICAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCB8fCAk
bnVtRnVuY3Rpb25zID4gMCkgewotICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAg
IC8vICR7aW50ZXJmYWNlTmFtZX0gJHtEQVNIRVN9XG5cbiIpOwotICAgIH0KLQotICAgICMgLSBB
ZGQgY29uc3RhbnRzIENPTUlORyBTT09OCi0KLSAgICAjIC0gQWRkIGF0dHJpYnV0ZSBnZXR0ZXJz
L3NldHRlcnMuCi0gICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCkgewotICAgICAgICBwdXNoKEBD
UFBIZWFkZXJDb250ZW50LCAiICAgIC8vIEF0dHJpYnV0ZXNcblxuIik7Ci0gICAgICAgIGZvcmVh
Y2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAg
ICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+dHlwZSk7Ci0KLSAgICAgICAgICAgIG15ICVhdHRyaWJ1dGVTaWdzID0gR2VuZXJh
dGVDUFBBdHRyaWJ1dGVTaWduYXR1cmUoJGF0dHJpYnV0ZSwgJGNsYXNzTmFtZSwgeyAiTmV3TGlu
ZXMiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGVudCIgPT4gNCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmlydHVhbEtleXdvcmQiID0+IDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCB9KTsK
LQotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgdmFsdWVzKCVhdHRyaWJ1dGVT
aWdzKSk7Ci0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiXG4iKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgICMgLSBBZGQgZnVuY3Rpb25zLgotICAgIGlmICgkbnVtRnVuY3Rp
b25zID4gMCkgewotICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgIC8vIEZ1bmN0
aW9uc1xuXG4iKTsKLSAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9KSB7Ci0gICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUlu
Q1BQSGVhZGVyKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgIEFkZEZv
cndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIoJF8tPnR5cGUpIGZvcmVhY2ggKEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSk7Ci0KLSAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9
IEdlbmVyYXRlQ1BQRnVuY3Rpb25TaWduYXR1cmUoJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCB7ICJO
ZXdMaW5lcyIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmRlbnQiID0+IDQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4gMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJVc2VDbGFzc05hbWUiID0+IDAgfSk7Ci0KLSAgICAgICAg
ICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICRmdW5jdGlvblNpZyk7Ci0gICAgICAgICAgICBw
dXNoKEBDUFBIZWFkZXJDb250ZW50LCAiXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1
c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgJHtpbXBsZW1lbnRhdGlvbkNsYXNzfSogaW1wbCR7
aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCkgY29uc3Q7XG4iKTsKLQotICAg
IGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPT0gMCkgewotICAgICAgICBBZGRJbmNsdWRlc0Zv
clR5cGVJbkNQUEhlYWRlcigid3RmL1JlZlB0ciIsIDEpOwotICAgICAgICBwdXNoKEBDUFBIZWFk
ZXJDb250ZW50LCAiXG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAk
e2ltcGxlbWVudGF0aW9uQ2xhc3N9KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgp
OyB9XG5cbiIpOwotICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIp
OwotICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgIFJlZlB0cjwke2ltcGxlbWVu
dGF0aW9uQ2xhc3N9PiBtX2ltcGw7XG4iKTsKLSAgICB9Ci0KLSAgICAjIC0tIEVuZCBDbGFzcyAt
LQotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKLQotICAgICMgLS0gRGVm
YXVsdCBJbnRlcmZhY2UgQ3JlYXRvciAtLQotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIk
e2ludGVyZmFjZU5hbWV9KiB0byR7aW50ZXJmYWNlTmFtZX0oJHtpbXBsZW1lbnRhdGlvbkNsYXNz
fSopO1xuXG4iKTsKLQotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gIiAu
ICRjbGFzc05hbWUgLiAiX2hcbiIpOwotfQotCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMg
ICAgQ1BQIEltcGxlbWVudGF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXN1YiBHZW5l
cmF0ZUNQUEltcGxlbWVudGF0aW9uCi17Ci0gICAgbXkgKCRvYmplY3QsICRkYXRhTm9kZSkgPSBA
XzsKLQotICAgIG15ICRJRExUeXBlID0gJGRhdGFOb2RlLT5uYW1lOwotICAgIG15ICRpbXBsZW1l
bnRhdGlvbkNsYXNzID0gSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlKCRJRExUeXBlKTsKLSAg
ICBteSAkaW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2UgPSBTdHJpcE5hbWVzcGFj
ZSgkaW1wbGVtZW50YXRpb25DbGFzcyk7Ci0gICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFt
ZSgkSURMVHlwZSk7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBHZXRJbnRlcmZhY2VOYW1lKCRJ
RExUeXBlKTsKLQotICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzcygkZGF0
YU5vZGUpOwotICAgIG15ICRpc0Jhc2VDbGFzcyA9IChAeyRkYXRhTm9kZS0+cGFyZW50c30gPT0g
MCk7Ci0KLSAgICBteSAkdXVpZCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Iklt
cGxlbWVudGF0aW9uVVVJRCJ9IHx8IGRpZSAiQWxsIGNsYXNzZXMgcmVxdWlyZSBhbiBJbXBsZW1l
bnRhdGlvblVVSUQgZXh0ZW5kZWQgYXR0cmlidXRlLiI7Ci0KLSAgICBteSAkbnVtQXR0cmlidXRl
cyA9IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICBteSAkbnVtRnVuY3Rpb25zID0gQHsk
ZGF0YU5vZGUtPmZ1bmN0aW9uc307Ci0KLSAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBs
YXRlCi0gICAgQENQUEltcGxlbWVudGF0aW9uSGVhZGVyID0gQGxpY2Vuc2VUZW1wbGF0ZTsKLSAg
ICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRlciwgIlxuIik7Ci0KLSAgICBwdXNoKEBDUFBJ
bXBsZW1lbnRhdGlvbkhlYWRlciwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuIik7Ci0gICAgcHVz
aChAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXIsICIjaW5jbHVkZSBcIldlYktpdERMTC5oXCJcbiIp
OwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uSGVhZGVyLCAiI2luY2x1ZGUgIiAuICgkY2xh
c3NOYW1lIGVxICJHRU5fRE9NSW1wbGVtZW50YXRpb24iID8gIlwiR0VOX0RPTURPTUltcGxlbWVu
dGF0aW9uLmhcIiIgOiAiXCIke2NsYXNzTmFtZX0uaFwiIikgLiAiXG4iKTsKLSAgICAkQ1BQSW1w
bGVtZW50YXRpb25Eb250SW5jbHVkZXN7IiR7Y2xhc3NOYW1lfS5oIn0gPSAxOwotICAgICRDUFBJ
bXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91
dE5hbWVzcGFjZX0uaCJ9ID0gMTsKLQotICAgICMgLS0gQ29uc3RydWN0b3IgLS0KLSAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIke2NsYXNzTmFtZX06OiR7Y2xhc3NOYW1lfSgk
e2ltcGxlbWVudGF0aW9uQ2xhc3N9KiBpbXBsKVxuIik7Ci0gICAgaWYgKCRpc0Jhc2VDbGFzcykg
ewotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgOiBtX2ltcGwo
aW1wbClcbiIpOwotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ7XG4i
KTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIEFTU0VSVF9B
UkcoaW1wbCwgaW1wbCk7XG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250
ZW50LCAifVxuXG4iKTsKLSAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRh
dGlvbkNvbnRlbnQsICIgICAgOiAke3BhcmVudENsYXNzTmFtZX0oaW1wbClcbiIpOwotICAgICAg
ICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVzaChA
Q1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAifVxuXG4iKTsKLSAgICB9Ci0KLSAgICAjIC0tIERl
c3RydWN0b3IgLS0KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIke2NsYXNz
TmFtZX06On4ke2NsYXNzTmFtZX0oKVxuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25D
b250ZW50LCAie1xuIik7Ci0gICAgaWYgKCRpc0Jhc2VDbGFzcykgewotICAgICAgICAkQ1BQSW1w
bGVtZW50YXRpb25JbmNsdWRlc3siRE9NQ3JlYXRlSW5zdGFuY2UuaCJ9ID0gMTsKLSAgICAgICAg
cHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIHJlbW92ZURPTVdyYXBwZXIoaW1w
bCgpKTtcbiIpOwotICAgIH0KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ9
XG5cbiIpOwotCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiJHtpbXBsZW1l
bnRhdGlvbkNsYXNzfSogJHtjbGFzc05hbWV9OjppbXBsJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0
aG91dE5hbWVzcGFjZX0oKSBjb25zdFxuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25D
b250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAg
IHJldHVybiBzdGF0aWNfY2FzdDwke2ltcGxlbWVudGF0aW9uQ2xhc3N9Kj4oaW1wbCgpKTtcbiIp
OwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIn1cblxuIik7Ci0KLSAgICAj
IEJhc2UgY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGUgY3JlYXRlSW5zdGFuY2UgbWV0aG9kIGV4
dGVybmFsbHkuCi0gICAgaWYgKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSAhPSAwKSB7Ci0gICAgICAg
IHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiR7Y2xhc3NOYW1lfSogJHtjbGFzc05h
bWV9OjpjcmVhdGVJbnN0YW5jZSgke2ltcGxlbWVudGF0aW9uQ2xhc3N9KiBpbXBsKVxuIik7Ci0g
ICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIntcbiIpOwotICAgICAgICBw
dXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7
Y2xhc3NOYW1lfSo+KCR7cGFyZW50Q2xhc3NOYW1lfTo6Y3JlYXRlSW5zdGFuY2UoaW1wbCkpO1xu
Iik7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIn1cbiIpOwotICAg
IH0KLQotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIi8vIElVbmtub3duICRE
QVNIRVNcblxuIik7Ci0KLSAgICAjIC0tIFF1ZXJ5SW50ZXJmYWNlIC0tCi0gICAgcHVzaChAQ1BQ
SW1wbGVtZW50YXRpb25Db250ZW50LCAiSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSAke2NsYXNz
TmFtZX06OlF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCB2b2lkKiogcHB2T2JqZWN0KVxuIik7
Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAie1xuIik7Ci0gICAgcHVzaChA
Q1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgICpwcHZPYmplY3QgPSAwO1xuIik7Ci0gICAg
cHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIGlmIChJc0VxdWFsR1VJRChyaWlk
LCBJSURfJHtpbnRlcmZhY2VOYW1lfSkpXG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlv
bkNvbnRlbnQsICIgICAgICAgICpwcHZPYmplY3QgPSByZWludGVycHJldF9jYXN0PCR7aW50ZXJm
YWNlTmFtZX0qPih0aGlzKTtcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVu
dCwgIiAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBfX3V1aWRvZigke2NsYXNzTmFtZX0p
KSlcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICAgICAgKnBw
dk9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8JHtjbGFzc05hbWV9Kj4odGhpcyk7XG4iKTsKLSAg
ICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgZWxzZVxuIik7Ci0gICAgcHVz
aChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgICAgICByZXR1cm4gJHtwYXJlbnRDbGFz
c05hbWV9OjpRdWVyeUludGVyZmFjZShyaWlkLCBwcHZPYmplY3QpO1xuXG4iKTsKLSAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgQWRkUmVmKCk7XG4iKTsKLSAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgcmV0dXJuIFNfT0s7XG4iKTsKLSAgICBw
dXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ9XG5cbiIpOwotCi0gICAgIyAtIEFkZGl0
aW9uYWwgaW50ZXJmYWNlcyB0byBpbXBsZW1lbnQgLQotICAgIGZvcmVhY2ggbXkgJGludGVyZmFj
ZVRvSW1wbGVtZW50IChAYWRkaXRpb25hbEludGVyZmFjZURlZmluaXRpb25zKSB7Ci0gICAgICAg
IG15ICRJRExUeXBlT2ZJbnRlcmZhY2VUb0ltcGxlbWVudCA9ICRpbnRlcmZhY2VUb0ltcGxlbWVu
dC0+bmFtZTsKLSAgICAgICAgbXkgJG5hbWVPZkludGVyZmFjZVRvSW1wbGVtZW50ID0gR2V0SW50
ZXJmYWNlTmFtZSgkSURMVHlwZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQpOwotICAgICAgICBteSAk
bnVtQXR0cmlidXRlc0luSW50ZXJmYWNlID0gQHskaW50ZXJmYWNlVG9JbXBsZW1lbnQtPmF0dHJp
YnV0ZXN9OwotICAgICAgICBteSAkbnVtRnVuY3Rpb25zSW5JbnRlcmZhY2UgPSBAeyRpbnRlcmZh
Y2VUb0ltcGxlbWVudC0+ZnVuY3Rpb25zfTsKLQotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRh
dGlvbkNvbnRlbnQsICIgICAgLy8gJHtuYW1lT2ZJbnRlcmZhY2VUb0ltcGxlbWVudH0gJHtEQVNI
RVN9XG5cbiIpOwotCi0gICAgICAgIGlmICgkbnVtQXR0cmlidXRlc0luSW50ZXJmYWNlID4gMCkg
ewotICAgICAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiLy8gQXR0cmli
dXRlc1xuXG4iKTsKLSAgICAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJm
YWNlVG9JbXBsZW1lbnQtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICAgICAgIyBGSVhNRTog
RG8gdGhpcyBpbiBvbmUgc3RlcC4KLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBJbXBsZW1lbnQg
ZXhjZXB0aW9uIGhhbmRsaW5nLgotCi0gICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBl
SW5DUFBJbXBsZW1lbnRhdGlvbigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwotCi0gICAg
ICAgICAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSBHZW5lcmF0ZUNQUEF0dHJpYnV0ZSgkYXR0cmli
dXRlLCAkY2xhc3NOYW1lLCAkaW1wbGVtZW50YXRpb25DbGFzcywgJElETFR5cGUpOwotICAgICAg
ICAgICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgdmFsdWVzKCVhdHRyaWJ1
dGVzKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAjIC0gQWRkIGZ1bmN0
aW9ucy4KLSAgICAgICAgaWYgKCRudW1GdW5jdGlvbnNJbkludGVyZmFjZSA+IDApIHsKLSAgICAg
ICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIi8vIEZ1bmN0aW9uc1xuXG4i
KTsKLQotICAgICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZVRvSW1w
bGVtZW50LT5mdW5jdGlvbnN9KSB7Ci0gICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uSW1wbGVt
ZW50YXRpb24gPSBHZW5lcmF0ZUNQUEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGNsYXNzTmFtZSwgJGlt
cGxlbWVudGF0aW9uQ2xhc3MpOwotICAgICAgICAgICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0
aW9uQ29udGVudCwgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb24pOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiLy8g
JHtpbnRlcmZhY2VOYW1lfSAkREFTSEVTXG5cbiIpOwotCi0gICAgIyAtIEFkZCBhdHRyaWJ1dGUg
Z2V0dGVycy9zZXR0ZXJzLgotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsKLSAgICAgICAg
cHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiLy8gQXR0cmlidXRlc1xuXG4iKTsKLSAg
ICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsK
LSAgICAgICAgICAgICMgRklYTUU6IGRvIHRoaXMgaW4gb25lIHN0ZXAKLSAgICAgICAgICAgIG15
ICRoYXNTZXR0ZXJFeGNlcHRpb24gPSBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9Owot
ICAgICAgICAgICAgbXkgJGhhc0dldHRlckV4Y2VwdGlvbiA9IEB7JGF0dHJpYnV0ZS0+Z2V0dGVy
RXhjZXB0aW9uc307Ci0KLSAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluQ1BQSW1wbGVt
ZW50YXRpb24oJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLQotICAgICAgICAgICAgbXkg
JWF0dHJpYnV0ZXMgPSBHZW5lcmF0ZUNQUEF0dHJpYnV0ZSgkYXR0cmlidXRlLCAkY2xhc3NOYW1l
LCAkaW1wbGVtZW50YXRpb25DbGFzcywgJElETFR5cGUpOwotICAgICAgICAgICAgcHVzaChAQ1BQ
SW1wbGVtZW50YXRpb25Db250ZW50LCB2YWx1ZXMoJWF0dHJpYnV0ZXMpKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgICMgLSBBZGQgZnVuY3Rpb25zLgotICAgIGlmICgkbnVtRnVuY3Rpb25zID4g
MCkgewotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIvLyBGdW5jdGlv
bnNcblxuIik7Ci0KLSAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9KSB7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiA9IEdl
bmVyYXRlQ1BQRnVuY3Rpb24oJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCAkaW1wbGVtZW50YXRpb25D
bGFzcyk7Ci0gICAgICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICRmdW5j
dGlvbkltcGxlbWVudGF0aW9uKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgICMgLSBEZWZhdWx0
IGltcGxlbWVudGF0aW9uIGZvciBpbnRlcmZhY2UgY3JlYXRvci4KLSAgICAjIEZJWE1FOiBhZGQg
ZXh0ZW5kZWQgYXR0cmlidXRlIHRvIGFkZCBjdXN0b20gaW1wbGVtZW50YXRpb24gaWYgbmVjZXNz
YXJ5LgotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiR7aW50ZXJmYWNlTmFt
ZX0qIHRvJHtpbnRlcmZhY2VOYW1lfSgke2ltcGxlbWVudGF0aW9uQ2xhc3N9KiBpbXBsKVxuIik7
Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAie1xuIik7Ci0gICAgcHVzaChA
Q1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmNyZWF0
ZUluc3RhbmNlKGltcGwpO1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50
LCAifVxuIik7Ci19Ci0KLXN1YiBXcml0ZURhdGEKLXsKLSAgICBteSAoJG9iamVjdCwgJG5hbWUs
ICRwdXJlSW50ZXJmYWNlKSA9IEBfOwotCi0gICAgIyAtLSBJREwgLS0KLSAgICBteSAkSURMRmls
ZU5hbWUgPSAiJG91dHB1dERpci9JIiAuICRURU1QX1BSRUZJWCAuICJET00iIC4gJG5hbWUgLiAi
LmlkbCI7Ci0gICAgdW5saW5rKCRJRExGaWxlTmFtZSk7Ci0KLSAgICAjIFdyaXRlIHRvIG91dHB1
dCBJREwuCi0gICAgb3BlbihPVVRQVVRJREwsICI+JElETEZpbGVOYW1lIikgb3IgZGllICJDb3Vs
ZG4ndCBvcGVuIGZpbGUgJElETEZpbGVOYW1lIjsKLQotICAgICMgQWRkIGhlYWRlcgotICAgIHBy
aW50IE9VVFBVVElETCBASURMSGVhZGVyOwotCi0gICAgIyBBZGQgZm9yd2FyZCBkZWNsYXJhdGlv
bnMgYW5kIGltb3J0cwotICAgIGRlbGV0ZSAkSURMRm9yd2FyZERlY2xhcmF0aW9uc3trZXlzKCVJ
RExEb250Rm9yd2FyZERlY2xhcmUpfTsKLSAgICBkZWxldGUgJElETEltcG9ydHN7a2V5cyglSURM
RG9udEltcG9ydCl9OwotCi0gICAgcHJpbnQgT1VUUFVUSURMIG1hcCB7ICJjcHBfcXVvdGUoXCJp
bnRlcmZhY2UgJF87XCIpXG4iIH0gc29ydCBrZXlzKCVJRExGb3J3YXJkRGVjbGFyYXRpb25zKTsK
LSAgICBwcmludCBPVVRQVVRJREwgIlxuIjsKLQotICAgIHByaW50IE9VVFBVVElETCBtYXAgeyAi
aW50ZXJmYWNlICRfO1xuIiB9IHNvcnQga2V5cyglSURMRm9yd2FyZERlY2xhcmF0aW9ucyk7Ci0g
ICAgcHJpbnQgT1VUUFVUSURMICJcbiI7Ci0gICAgcHJpbnQgT1VUUFVUSURMICIjaWZuZGVmIERP
X05PX0lNUE9SVFNcbiI7Ci0gICAgcHJpbnQgT1VUUFVUSURMIG1hcCB7ICgkXyBlcSAiSUdFTl9E
T01JbXBsZW1lbnRhdGlvbiIpID8gImltcG9ydCBcIklHRU5fRE9NRE9NSW1wbGVtZW50YXRpb24u
aWRsXCI7XG4iIDogImltcG9ydCBcIiRfLmlkbFwiO1xuIiB9IHNvcnQga2V5cyglSURMSW1wb3J0
cyk7Ci0gICAgcHJpbnQgT1VUUFVUSURMICIjZW5kaWZcbiI7Ci0gICAgcHJpbnQgT1VUUFVUSURM
ICJcbiI7Ci0KLSAgICAjIEFkZCBjb250ZW50Ci0gICAgcHJpbnQgT1VUUFVUSURMIEBJRExDb250
ZW50OwotCi0gICAgY2xvc2UoT1VUUFVUSURMKTsKLQotICAgIEBJRExIZWFkZXIgPSAoKTsKLSAg
ICBASURMQ29udGVudCA9ICgpOwotCi0gICAgaWYgKCRwdXJlSW50ZXJmYWNlKSB7Ci0gICAgICAg
IG15ICRDUFBJbnRlcmZhY2VIZWFkZXJGaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkVEVNUF9Q
UkVGSVggLiAiRE9NIiAuICRuYW1lIC4gIi5oIjsKLSAgICAgICAgdW5saW5rKCRDUFBJbnRlcmZh
Y2VIZWFkZXJGaWxlTmFtZSk7Ci0KLSAgICAgICAgb3BlbihPVVRQVVRDUFBJbnRlcmZhY2VIZWFk
ZXIsICI+JENQUEludGVyZmFjZUhlYWRlckZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVu
IGZpbGUgJENQUEludGVyZmFjZUhlYWRlckZpbGVOYW1lIjsKLQotICAgICAgICBwcmludCBPVVRQ
VVRDUFBJbnRlcmZhY2VIZWFkZXIgQENQUEludGVyZmFjZUhlYWRlcjsKLQotICAgICAgICBjbG9z
ZShPVVRQVVRDUFBJbnRlcmZhY2VIZWFkZXIpOwotCi0gICAgICAgIEBDUFBJbnRlcmZhY2VIZWFk
ZXIgPSAoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBteSAkQ1BQSGVhZGVyRmlsZU5hbWUgPSAi
JG91dHB1dERpci8iIC4gJFRFTVBfUFJFRklYIC4gIkRPTSIgLiAkbmFtZSAuICIuaCI7Ci0gICAg
ICAgIHVubGluaygkQ1BQSGVhZGVyRmlsZU5hbWUpOwotCi0gICAgICAgICMgLS0gQ1BQIEhlYWRl
ciAtLQotICAgICAgICBvcGVuKE9VVFBVVENQUEhlYWRlciwgIj4kQ1BQSGVhZGVyRmlsZU5hbWUi
KSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkQ1BQSGVhZGVyRmlsZU5hbWUiOwotCi0gICAg
ICAgICMgQWRkIGhlYWRlcgotICAgICAgICBwcmludCBPVVRQVVRDUFBIZWFkZXIgQENQUEhlYWRl
ckhlYWRlcjsKLQotICAgICAgICAjIEFkZCBpbmNsdWRlcwotICAgICAgICBwcmludCBPVVRQVVRD
UFBIZWFkZXIgbWFwIHsgKCRfIGVxICJHRU5fRE9NSW1wbGVtZW50YXRpb24uaCIpID8gIiNpbmNs
dWRlIFwiR0VOX0RPTURPTUltcGxlbWVudGF0aW9uLmhcIlxuIiA6ICIjaW5jbHVkZSBcIiRfXCJc
biIgfSBzb3J0IGtleXMoJUNQUEhlYWRlckluY2x1ZGVzKTsKLSAgICAgICAgcHJpbnQgT1VUUFVU
Q1BQSGVhZGVyIG1hcCB7ICIjaW5jbHVkZSA8JF8+XG4iIH0gc29ydCBrZXlzKCVDUFBIZWFkZXJJ
bmNsdWRlc0FuZ2xlKTsKLQotICAgICAgICBmb3JlYWNoIG15ICRkb250RGVjbGFyZSAoa2V5cygl
Q1BQSGVhZGVyRG9udEZvcndhcmREZWNsYXJhdGlvbnMpKSB7Ci0gICAgICAgICAgICBkZWxldGUg
JENQUEhlYWRlckZvcndhcmREZWNsYXJhdGlvbnN7JGRvbnREZWNsYXJlfSBpZiAoJENQUEhlYWRl
ckZvcndhcmREZWNsYXJhdGlvbnN7JGRvbnREZWNsYXJlfSk7Ci0gICAgICAgIH0KLSAgICAgICAg
cHJpbnQgT1VUUFVUQ1BQSGVhZGVyICJcbiI7Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEhlYWRl
ciBtYXAgeyAiaW50ZXJmYWNlICRfO1xuIiB9IHNvcnQga2V5cyglQ1BQSGVhZGVyRm9yd2FyZERl
Y2xhcmF0aW9ucyk7Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEhlYWRlciAiXG4iOwotCi0gICAg
ICAgICMgQWRkIGNvbnRlbnQKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQSGVhZGVyIEBDUFBIZWFk
ZXJDb250ZW50OwotCi0gICAgICAgIGNsb3NlKE9VVFBVVENQUEhlYWRlcik7Ci0KLSAgICAgICAg
QENQUEhlYWRlckhlYWRlciA9ICgpOwotICAgICAgICBAQ1BQSGVhZGVyQ29udGVudCA9ICgpOwot
Ci0KLSAgICAgICAgIyAtLSBDUFAgSW1wbGVtZW50YXRpb24gLS0KLSAgICAgICAgbXkgJENQUElt
cGxlbWVudGF0aW9uRmlsZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJFRFTVBfUFJFRklYIC4gIkRP
TSIgLiAkbmFtZSAuICIuY3BwIjsKLSAgICAgICAgdW5saW5rKCRDUFBJbXBsZW1lbnRhdGlvbkZp
bGVOYW1lKTsKLQotICAgICAgICBvcGVuKE9VVFBVVENQUEltcGxlbWVudGF0aW9uLCAiPiRDUFBJ
bXBsZW1lbnRhdGlvbkZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJENQUElt
cGxlbWVudGF0aW9uRmlsZU5hbWUiOwotCi0gICAgICAgICMgQWRkIGhlYWRlcgotICAgICAgICBw
cmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiBAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXI7Ci0g
ICAgICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uICJcbiI7Ci0KLSAgICAgICAgIyBB
ZGQgaW5jbHVkZXMKLSAgICAgICAgZm9yZWFjaCBteSAkZG9udEluY2x1ZGUgKGtleXMoJUNQUElt
cGxlbWVudGF0aW9uRG9udEluY2x1ZGVzKSkgewotICAgICAgICAgICAgZGVsZXRlICRDUFBJbXBs
ZW1lbnRhdGlvbkluY2x1ZGVzeyRkb250SW5jbHVkZX0gaWYgKCRDUFBJbXBsZW1lbnRhdGlvbklu
Y2x1ZGVzeyRkb250SW5jbHVkZX0pOwotICAgICAgICB9Ci0gICAgICAgIHByaW50IE9VVFBVVENQ
UEltcGxlbWVudGF0aW9uIG1hcCB7ICgkXyBlcSAiR0VOX0RPTUltcGxlbWVudGF0aW9uLmgiKSA/
ICIjaW5jbHVkZSBcIkdFTl9ET01ET01JbXBsZW1lbnRhdGlvbi5oXCJcbiIgOiAiI2luY2x1ZGUg
XCIkX1wiXG4iIH0gc29ydCBrZXlzKCVDUFBJbXBsZW1lbnRhdGlvbkluY2x1ZGVzKTsKLSAgICAg
ICAgcHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gbWFwIHsgIiNpbmNsdWRlIDwkXz5cbiIg
fSBzb3J0IGtleXMoJUNQUEltcGxlbWVudGF0aW9uSW5jbHVkZXNBbmdsZSk7Ci0gICAgICAgIHBy
aW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uICJcbiI7Ci0KLSAgICAgICAgcHJpbnQgT1VUUFVU
Q1BQSW1wbGVtZW50YXRpb24gIiNwcmFnbWEgd2FybmluZyhwdXNoLCAwKVxuIjsKLSAgICAgICAg
cHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gbWFwIHsgIiNpbmNsdWRlIDxXZWJDb3JlLyRf
PlxuIiB9IHNvcnQga2V5cyglQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXMpOwotICAg
ICAgICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiAiI3ByYWdtYSB3YXJuaW5nKHBvcClc
biI7Ci0KLSAgICAgICAgIyBBZGQgY29udGVudAotICAgICAgICBwcmludCBPVVRQVVRDUFBJbXBs
ZW1lbnRhdGlvbiBAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50OwotCi0gICAgICAgIGNsb3NlKE9V
VFBVVENQUEltcGxlbWVudGF0aW9uKTsKLQotICAgICAgICBAQ1BQSW1wbGVtZW50YXRpb25IZWFk
ZXIgPSAoKTsKLSAgICAgICAgQENQUEltcGxlbWVudGF0aW9uQ29udGVudCA9ICgpOwotICAgIH0K
LX0KLQotMTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggYzIxYTU3ZC4uODE3OGU0MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAw
OS0xMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIENPTSBjb2RlIGdlbmVy
YXRpb24gZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMjg1NAorCisgICAgICAgICogV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtl
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdC52Y3Byb2ovYnVpbGQtZ2VuZXJhdGVkLWZpbGVz
LnNoOiBSZW1vdmVkLgorCiAyMDA5LTEyLTIxICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggbm9uLUFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGJ1aWxkcwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9X
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovRGVyaXZlZFNvdXJjZXMubWFrZQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzM2NDhhMC4uMDAwMDAwMAotLS0gYS9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovRGVyaXZlZFNvdXJjZXMubWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDE2MSArMCww
IEBACi0jIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uIAotIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBwdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotIyAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAK
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLVBSRUZJWCA9IElHRU5fRE9NCi0KLVdFQktJVF9J
REwgPSAkKFdFQktJVCkvSW50ZXJmYWNlcy9XZWJLaXQuaWRsCi0KLUhBTkRfV1JJVFRFTl9JTlRF
UkZBQ0VTID0gJChmaWx0ZXItb3V0ICQoV0VCS0lUX0lETCksICQod2lsZGNhcmQgJChXRUJLSVQp
L0ludGVyZmFjZXMvKi5pZGwpKQotCi1HRU5FUkFURURfSU5URVJGQUNFUyA9IFwKLSAgICAkKFBS
RUZJWClOb2RlLmlkbCBcCi0gICAgJChQUkVGSVgpQXR0ci5pZGwgXAotICAgICQoUFJFRklYKU5v
ZGVMaXN0LmlkbCBcCi0gICAgJChQUkVGSVgpRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKURv
Y3VtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpQ2hhcmFjdGVyRGF0YS5pZGwgXAotICAgICQoUFJF
RklYKUNEQVRBU2VjdGlvbi5pZGwgXAotICAgICQoUFJFRklYKUNvbW1lbnQuaWRsIFwKLSAgICAk
KFBSRUZJWClUZXh0LmlkbCBcCi0gICAgJChQUkVGSVgpRG9jdW1lbnRGcmFnbWVudC5pZGwgXAot
ICAgICQoUFJFRklYKURvY3VtZW50VHlwZS5pZGwgXAotICAgICQoUFJFRklYKURPTUltcGxlbWVu
dGF0aW9uLmlkbCBcCi0gICAgJChQUkVGSVgpRW50aXR5LmlkbCBcCi0gICAgJChQUkVGSVgpRW50
aXR5UmVmZXJlbmNlLmlkbCBcCi0gICAgJChQUkVGSVgpTmFtZWROb2RlTWFwLmlkbCBcCi0gICAg
JChQUkVGSVgpTm90YXRpb24uaWRsIFwKLSAgICAkKFBSRUZJWClQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaWRsIFwKLSAgICBcCi0gICAgJChQUkVGSVgpSFRNTEFuY2hvckVsZW1lbnQuaWRsIFwKLSAg
ICAkKFBSRUZJWClIVE1MQXBwbGV0RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxBcmVh
RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxCUkVsZW1lbnQuaWRsIFwKLSAgICAkKFBS
RUZJWClIVE1MQmFzZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQmFzZUZvbnRFbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEJsb2NrcXVvdGVFbGVtZW50LmlkbCBcCi0gICAg
JChQUkVGSVgpSFRNTEJvZHlFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEJ1dHRvbkVs
ZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQ29sbGVjdGlvbi5pZGwgXAotICAgICQoUFJF
RklYKUhUTUxETGlzdEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRGlyZWN0b3J5RWxl
bWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxEaXZFbGVtZW50LmlkbCBcCi0gICAgJChQUkVG
SVgpSFRNTERvY3VtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEVsZW1lbnQuaWRsIFwKLSAg
ICAkKFBSRUZJWClIVE1MRW1iZWRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEZpZWxk
U2V0RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxGb250RWxlbWVudC5pZGwgXAotICAg
ICQoUFJFRklYKUhUTUxGb3JtRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxGcmFtZUVs
ZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRnJhbWVTZXRFbGVtZW50LmlkbCBcCi0gICAg
JChQUkVGSVgpSFRNTEhSRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxIZWFkRWxlbWVu
dC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxIZWFkaW5nRWxlbWVudC5pZGwgXAotICAgICQoUFJF
RklYKUhUTUxIdG1sRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxJRnJhbWVFbGVtZW50
LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEltYWdlRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklY
KUhUTUxJbnB1dEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MSXNJbmRleEVsZW1lbnQu
aWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTElFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRN
TExhYmVsRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxMZWdlbmRFbGVtZW50LmlkbCBc
Ci0gICAgJChQUkVGSVgpSFRNTExpbmtFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTE1h
cEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTWFycXVlZUVsZW1lbnQuaWRsIFwKLSAg
ICAkKFBSRUZJWClIVE1MTWVudUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTWV0YUVs
ZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTW9kRWxlbWVudC5pZGwgXAotICAgICQoUFJF
RklYKUhUTUxPTGlzdEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MT2JqZWN0RWxlbWVu
dC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxPcHRHcm91cEVsZW1lbnQuaWRsIFwKLSAgICAkKFBS
RUZJWClIVE1MT3B0aW9uRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxPcHRpb25zQ29s
bGVjdGlvbi5pZGwgXAotICAgICQoUFJFRklYKUhUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbCBcCi0g
ICAgJChQUkVGSVgpSFRNTFBhcmFtRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxQcmVF
bGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFF1b3RlRWxlbWVudC5pZGwgXAotICAgICQo
UFJFRklYKUhUTUxTY3JpcHRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFNlbGVjdEVs
ZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MU3R5bGVFbGVtZW50LmlkbCBcCi0gICAgJChQ
UkVGSVgpSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MVGFi
bGVDZWxsRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxUYWJsZUNvbEVsZW1lbnQuaWRs
IFwKLSAgICAkKFBSRUZJWClIVE1MVGFibGVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRN
TFRhYmxlUm93RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgXAotICAgICQo
UFJFRklYKUhUTUxUaXRsZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MVUxpc3RFbGVt
ZW50LmlkbCBcCi0gICAgXAotICAgICQoUFJFRklYKUNTU0NoYXJzZXRSdWxlLmlkbCBcCi0gICAg
JChQUkVGSVgpQ1NTRm9udEZhY2VSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTSW1wb3J0UnVs
ZS5pZGwgXAotICAgICQoUFJFRklYKUNTU01lZGlhUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNT
U1BhZ2VSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKLSAg
ICAkKFBSRUZJWClDU1NSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTUnVsZUxpc3QuaWRsIFwK
LSAgICAkKFBSRUZJWClDU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NT
U3R5bGVSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTU3R5bGVTaGVldC5pZGwgXAotICAgICQo
UFJFRklYKUNTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTVmFsdWUuaWRsIFwK
LSAgICAkKFBSRUZJWClDU1NWYWx1ZUxpc3QuaWRsIFwKLSAgICAkKFBSRUZJWClDb3VudGVyLmlk
bCBcCi0gICAgJChQUkVGSVgpTWVkaWFMaXN0LmlkbCBcCi0gICAgJChQUkVGSVgpUmVjdC5pZGwg
XAotICAgICQoUFJFRklYKVN0eWxlU2hlZXQuaWRsIFwKLSAgICAkKFBSRUZJWClTdHlsZVNoZWV0
TGlzdC5pZGwgXAotICAgIFwKLSAgICAkKFBSRUZJWClFdmVudC5pZGwgXAotICAgICQoUFJFRklY
KUV2ZW50VGFyZ2V0LmlkbCBcCi0gICAgJChQUkVGSVgpRXZlbnRMaXN0ZW5lci5pZGwgXAotIwot
Ci0uUEhPTlkgOiBhbGwKLWFsbCA6IFwKLSAgICAkKEdFTkVSQVRFRF9JTlRFUkZBQ0VTKSBcCi0g
ICAgJChXRUJLSVRfSURMKSBcCi0jCi0KLSMgJChQUkVGSVgpQ2FudmFzR3JhZGllbnQuaWRsIFwK
LSMgJChQUkVGSVgpQ2FudmFzUGF0dGVybi5pZGwgXAotIyAkKFBSRUZJWClDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsIFwKLSMgJChQUkVGSVgpSFRNTENhbnZhc0VsZW1lbnQuaWRsIFwKLSMg
JChQUkVGSVgpUkdCQ29sb3IuaWRsIFwKLQotQ09NX0JJTkRJTkdTX1NDUklQVFMgPSBcCi0gICAg
JChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUludGVyZmFjZXMvQ29kZUdlbmVyYXRvci5w
bSBcCi0gICAgJChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUludGVyZmFjZXMvQ29kZUdl
bmVyYXRvckNPTS5wbSBcCi0gICAgJChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUludGVy
ZmFjZXMvSURMUGFyc2VyLnBtIFwKLSAgICAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJLaXQvRE9N
SW50ZXJmYWNlcy9JRExTdHJ1Y3R1cmUucG0gXAotICAgICQoV0VCS0lUX09VVFBVVCkvb2JqL1dl
YktpdC9ET01JbnRlcmZhY2VzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKLSMKLQotJChQUkVGSVgp
JS5pZGwgOiAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJLaXQvRE9NSW50ZXJmYWNlcy8lLmlkbCAk
KENPTV9CSU5ESU5HU19TQ1JJUFRTKQotCXBlcmwgLUkgJChXRUJLSVRfT1VUUFVUKS9vYmovV2Vi
S2l0L0RPTUludGVyZmFjZXMvICQoV0VCS0lUX09VVFBVVCkvb2JqL1dlYktpdC9ET01JbnRlcmZh
Y2VzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpIExB
TkdVQUdFX0NPTSIgLS1nZW5lcmF0b3IgQ09NIC0taW5jbHVkZSAkKFdFQktJVF9PVVRQVVQpL29i
ai9XZWJLaXQvRE9NSW50ZXJmYWNlcy8gLS1vdXRwdXRkaXIgLiAkPAotCi0kKFdFQktJVF9JREwp
IDogJChIQU5EX1dSSVRURU5fSU5URVJGQUNFUykgJChHRU5FUkFURURfSU5URVJGQUNFUykKLQl0
b3VjaCAkQApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVy
YXRlZC1maWxlcy5zaCBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9idWlsZC1nZW5lcmF0ZWQt
ZmlsZXMuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMjZmZDIuLjAwMDAwMDAK
LS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaAor
KysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLSMhL3Vzci9iaW4vYmFzaAotCi0jIENvcHly
aWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
IAotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAot
IyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBwdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotIyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLU5VTUNQVVBBVEg9Ii4uLy4uLy4uL1dlYktpdFRvb2xzL1NjcmlwdHMv
bnVtLWNwdXMiCi1pZiBbIC14ICROVU1DUFVQQVRIIF07IHRoZW4KLSAgICBOVU1DUFVTPWAkTlVN
Q1BVUEFUSGAKLWVsc2UKLSAgICBOVU1DUFVTPTEKLWZpCi0KLVhTUkNST09UPSJgcHdkYC8uLiIK
LVhTUkNST09UPWByZWFscGF0aCAiJFhTUkNST09UImAKLSMgRG8gYSBsaXR0bGUgZGFuY2UgdG8g
Z2V0IHRoZSBwYXRoIGludG8gOC4zIGZvcm0gdG8gbWFrZSBpdCBzYWZlIGZvciBnbnUgbWFrZQot
IyBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzMKLVhT
UkNST09UPWBjeWdwYXRoIC1tIC1zICIkWFNSQ1JPT1QiYAotWFNSQ1JPT1Q9YGN5Z3BhdGggLXUg
IiRYU1JDUk9PVCJgCi1leHBvcnQgWFNSQ1JPT1QKLWV4cG9ydCBTT1VSQ0VfUk9PVD0kWFNSQ1JP
T1QKLQotWERTVFJPT1Q9IiQxIgotZXhwb3J0IFhEU1RST09UCi0jIERvIGEgbGl0dGxlIGRhbmNl
IHRvIGdldCB0aGUgcGF0aCBpbnRvIDguMyBmb3JtIHRvIG1ha2UgaXQgc2FmZSBmb3IgZ251IG1h
a2UKLSMgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD04MTcz
Ci1YRFNUUk9PVD1gY3lncGF0aCAtbSAtcyAiJFhEU1RST09UImAKLVhEU1RST09UPWBjeWdwYXRo
IC11ICIkWERTVFJPT1QiYAotZXhwb3J0IFhEU1RST09UCi0KLWV4cG9ydCBCVUlMVF9QUk9EVUNU
U19ESVI9IiRYRFNUUk9PVC9vYmovV2ViS2l0IgotCi1ta2RpciAtcCAiJHtCVUlMVF9QUk9EVUNU
U19ESVJ9L0Rlcml2ZWRTb3VyY2VzIgotY2QgIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVk
U291cmNlcyIKLQotZXhwb3J0IFdFQktJVD0kWFNSQ1JPT1QKLWV4cG9ydCBXRUJLSVRfT1VUUFVU
PSRYRFNUUk9PVAotCi1leHBvcnQgRkVBVFVSRV9ERUZJTkVTPSJFTkFCTEVfWFBBVEggRU5BQkxF
X1NWRyIKLW1ha2UgLWYgIiRXRUJLSVQvV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtl
IiAtaiAke05VTUNQVVN9IHx8IGV4aXQgMQotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45373</attachid>
            <date>2009-12-22 01:16:09 -0800</date>
            <delta_ts>2010-01-04 13:27:09 -0800</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>0001-remove-com-2.patch</filename>
            <type>text/plain</type>
            <size>88014</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAyMzY0ZjljZmRhMzU2NTM5YWVlYjE4NDA4Mjk0MzA0MDE4MzFlMGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIyIERlYyAyMDA5IDE3OjAzOjEwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gcmVtb3Zl
LWNvbS0yCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDMyICsKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09N
LnBtICAgICAgfCAxMzE5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaWRsICAgICAgICAgICAgICAgICB8ICAgIDMgLQogV2ViQ29yZS9kb20vQXR0
ci5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgLQogV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uaWRsICAgICAgICAgICAgICAgICB8ICAgIDIgLQogV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgLQogV2ViQ29y
ZS9kb20vRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgLQogV2Vi
Q29yZS9kb20vRXZlbnQuaWRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0K
IFdlYkNvcmUvZG9tL05vZGUuaWRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
IC0KIFdlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgICAgICAgICAgICAgfCAg
ICAzIC0KIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICAg
fCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgICAgICAgICAgICAg
ICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbCAgICAgICAgICAg
ICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCAgICAg
ICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbCAgICAg
ICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmlk
bCAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5p
ZGwgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbCAgICAgICAgICAgICAgICAgfCAgICA4IC0KIFdlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuaWRsICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbCAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYktpdC93aW4v
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIFdlYktpdC93
aW4vV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgfCAgMTYxIC0tLQogV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaCB8ICAgNjIgLQog
MjYgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMTYwNiBkZWxldGlvbnMoLSkKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNP
TS5wbQogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYktpdC93aW4vV2ViS2l0LnZjcHJvai9EZXJpdmVk
U291cmNlcy5tYWtlCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY5ZjE3Yi4uZGU2OGI1YyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBA
QAorMjAwOS0xMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIENPTSBjb2Rl
IGdlbmVyYXRpb24gZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMjg1NAorCisgICAgICAgIFJlbW92ZSAiI2lmICFkZWZpbmVkKExBTkdVQUdF
X0NPTSkgfHwgIUxBTkdVQUdFX0NPTSIgaW4gSURMIGZpbGVzIHRvby4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNPTS5wbTogUmVtb3ZlZC4KKyAgICAgICAgKiBj
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsOiBSZW1vdmVkICIjaWYgIWRlZmluZWQoTEFOR1VBR0Vf
Q09NKSB8fCAhTEFOR1VBR0VfQ09NIgorICAgICAgICAqIGRvbS9BdHRyLmlkbDogZGl0dG8uCisg
ICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbDogZGl0dG8uCisgICAgICAgICogZG9t
L0RvY3VtZW50LmlkbDogZGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOiBkaXR0by4K
KyAgICAgICAgKiBkb20vRXZlbnQuaWRsOiBkaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5pZGw6
IGRpdHRvLgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5pZGw6IGRpdHRvLgorICAgICAgICAqIGh0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaWRsOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aWRsOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsOiBkaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOiBkaXR0by4KKyAgICAgICAg
KiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbDogZGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbDogZGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQu
aWRsOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbDogZGl0dG8u
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGRpdHRvLgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGw6IGRpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGw6IGRpdHRvLgorCiAyMDA5LTEyLTIxICBGdW1pdG9zaGkgVWthaSAg
PHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3Vy
eWFrb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckNPTS5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09NLnBtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTgzNzliLi4wMDAwMDAwCi0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09NLnBtCisrKyAvZGV2L251bGwKQEAg
LTEsMTMxOSArMCwwIEBACi0jCi0jIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSMgQ29weXJpZ2h0IChDKSAyMDA2IEFuZGVy
cyBDYXJsc3NvbiA8YW5kZXJzY2FAbWFjLmNvbT4KLSMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgotIyBDb3B5cmlnaHQgKEMpIDIwMDYgQWxl
eGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KLSMgQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotIwotIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSMgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSMg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0jCi0jIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotIyBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4KLQotcGFja2FnZSBDb2RlR2VuZXJhdG9yQ09NOwotCi11c2UgRmlsZTo6
c3RhdDsKLQotIyBHbG9iYWwgVmFyaWFibGVzCi1teSAkbW9kdWxlID0gIiI7Ci1teSAkb3V0cHV0
RGlyID0gIiI7Ci0KLW15IEBJRExIZWFkZXIgPSAoKTsKLW15IEBJRExDb250ZW50ID0gKCk7Ci1t
eSAlSURMSW5jbHVkZXMgPSAoKTsKLW15ICVJRExGb3J3YXJkRGVjbGFyYXRpb25zID0gKCk7Ci1t
eSAlSURMRG9udEZvcndhcmREZWNsYXJlID0gKCk7Ci1teSAlSURMSW1wb3J0cyA9ICgpOwotbXkg
JUlETERvbnRJbXBvcnQgPSAoKTsKLQotbXkgQENQUEludGVyZmFjZUhlYWRlciA9ICgpOwotCi1t
eSBAQ1BQSGVhZGVySGVhZGVyID0gKCk7Ci1teSBAQ1BQSGVhZGVyQ29udGVudCA9ICgpOwotbXkg
JUNQUEhlYWRlckluY2x1ZGVzID0gKCk7Ci1teSAlQ1BQSGVhZGVySW5jbHVkZXNBbmdsZSA9ICgp
OwotbXkgJUNQUEhlYWRlckZvcndhcmREZWNsYXJhdGlvbnMgPSAoKTsKLW15ICVDUFBIZWFkZXJE
b250Rm9yd2FyZERlY2xhcmF0aW9ucyA9ICgpOwotCi1teSBAQ1BQSW1wbGVtZW50YXRpb25IZWFk
ZXIgPSAoKTsKLW15IEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQgPSAoKTsKLW15ICVDUFBJbXBs
ZW1lbnRhdGlvbkluY2x1ZGVzID0gKCk7Ci1teSAlQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5j
bHVkZXMgPSAoKTsKLW15ICVDUFBJbXBsZW1lbnRhdGlvbkluY2x1ZGVzQW5nbGUgPSAoKTsKLW15
ICVDUFBJbXBsZW1lbnRhdGlvbkRvbnRJbmNsdWRlcyA9ICgpOwotCi1teSBAYWRkaXRpb25hbElu
dGVyZmFjZURlZmluaXRpb25zID0gKCk7Ci0KLW15ICREQVNIRVMgPSAiLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7Ci1teSAkVEVNUF9QUkVGSVggPSAiR0VOXyI7Ci0K
LSMgSGFzaGVzCi0KLW15ICVpbmNsdWRlQ29ycmVjdG9yID0gbWFwIHsoJF8sIDEpfSBxd3tVSUV2
ZW50IEtleWJvYXJkRXZlbnQgTW91c2VFdmVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE11dGF0aW9uRXZlbnQgT3ZlcmZsb3dFdmVudCBXaGVlbEV2ZW50fTsKLQot
bXkgJWNvbmZsaWN0TWV0aG9kID0gKAotICAgICMgRklYTUU6IEFkZCBDIGxhbmd1YWdlIGtleXdv
cmRzPwotKTsKLQotIyBEZWZhdWx0IExpY2Vuc2UgVGVtcGxhdGVzCi1teSBAbGljZW5zZVRlbXBs
YXRlID0gc3BsaXQoL1xyLywgPDwgIkVPRiIpOwotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi1FT0YKLQotIyBEZWZhdWx0IGNvbnN0cnVjdG9y
Ci1zdWIgbmV3Ci17Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRyZWZlcmVuY2Ug
PSB7IH07Ci0KLSAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0OwotICAgICRvdXRwdXREaXIgPSBz
aGlmdDsKLQotICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOwotICAgIHJldHVybiAkcmVm
ZXJlbmNlOwotfQotCi1zdWIgZmluaXNoCi17Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotfQot
Ci0jIFBhcmFtczogJ2RvbUNsYXNzJyBzdHJ1Y3QKLXN1YiBHZW5lcmF0ZUludGVyZmFjZQotewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBt
eSAkZGVmaW5lcyA9IHNoaWZ0OwotCi0gICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0K
LSAgICBteSAkcHVyZUludGVyZmFjZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlB1cmVJbnRlcmZhY2UifTsKLQotICAgICMgU3RhcnQgYWN0dWFsIGdlbmVyYXRpb24uLgotICAg
ICRvYmplY3QtPkdlbmVyYXRlSURMKCRkYXRhTm9kZSwgJHB1cmVJbnRlcmZhY2UpOwotICAgIGlm
ICgkcHVyZUludGVyZmFjZSkgewotICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUludGVyZmFjZUhl
YWRlcigkZGF0YU5vZGUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRvYmplY3QtPkdlbmVyYXRl
Q1BQSGVhZGVyKCRkYXRhTm9kZSk7Ci0gICAgICAgICRvYmplY3QtPkdlbmVyYXRlQ1BQSW1wbGVt
ZW50YXRpb24oJGRhdGFOb2RlKTsKLSAgICB9Ci0KLSAgICAjIFdyaXRlIGNoYW5nZXMuCi0gICAg
JG9iamVjdC0+V3JpdGVEYXRhKCRuYW1lLCAkcHVyZUludGVyZmFjZSk7Ci19Ci0KLSMgUGFyYW1z
OiAnaWRsRG9jdW1lbnQnIHN0cnVjdAotc3ViIEdlbmVyYXRlTW9kdWxlCi17Ci0gICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotCi0gICAgJG1vZHVsZSA9
ICRkYXRhTm9kZS0+bW9kdWxlOwotfQotCi1zdWIgR2V0SW50ZXJmYWNlTmFtZQotewotICAgIG15
ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAgIGRpZSAi
R2V0SW50ZXJmYWNlTmFtZSBzaG91bGQgb25seSBiZSB1c2VkIG9uIGludGVyZmFjZXMuIiBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbmFtZSkgb3IgJGNvZGVHZW5lcmF0b3ItPklz
UHJpbWl0aXZlVHlwZSgkbmFtZSkpOwotCi0gICAgIyBzcGVjaWFsIGNhc2VzCi0gICAgcmV0dXJu
ICJJIiAuICRURU1QX1BSRUZJWCAuICJET01BYnN0cmFjdFZpZXciIGlmICRuYW1lIGVxICJET01X
aW5kb3ciOwotICAgIHJldHVybiAiSSIgLiAkVEVNUF9QUkVGSVggLiAkbmFtZSBpZiAkbmFtZSBl
cSAiRE9NSW1wbGVtZW50YXRpb24iIG9yICRuYW1lIGVxICJET01UaW1lU3RhbXAiOwotCi0gICAg
IyBEZWZhdWx0LCBhc3N1bWUgQ09NIHR5cGUgaGFzIHRoZSBzYW1lIHR5cGUgbmFtZSBhcwotICAg
ICMgaWRsIHR5cGUgcHJlZml4ZWQgd2l0aCAiSURPTSIuCi0gICAgcmV0dXJuICJJIiAuICRURU1Q
X1BSRUZJWCAuICJET00iIC4gJG5hbWU7Ci19Ci0KLXN1YiBHZXRDbGFzc05hbWUKLXsKLSAgICBt
eSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0KLSAgICAjIHNw
ZWNpYWwgY2FzZXMKLSAgICByZXR1cm4gIkJTVFIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmlu
Z1R5cGUoJG5hbWUpOwotICAgIHJldHVybiAiQk9PTCIgaWYgJG5hbWUgZXEgImJvb2xlYW4iOwot
ICAgIHJldHVybiAidW5zaWduZWQiIGlmICRuYW1lIGVxICJ1bnNpZ25lZCBsb25nIjsKLSAgICBy
ZXR1cm4gImludCIgaWYgJG5hbWUgZXEgImxvbmciOwotICAgIHJldHVybiAkbmFtZSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRuYW1lKTsKLSAgICByZXR1cm4gJFRFTVBfUFJF
RklYIC4gIkRPTUFic3RyYWN0VmlldyIgaWYgJG5hbWUgZXEgIkRPTVdpbmRvdyI7Ci0gICAgcmV0
dXJuICRURU1QX1BSRUZJWCAuICRuYW1lIGlmICRuYW1lIGVxICJET01JbXBsZW1lbnRhdGlvbiIg
b3IgJG5hbWUgZXEgIkRPTVRpbWVTdGFtcCI7Ci0KLSAgICAjIERlZmF1bHQsIGFzc3VtZSBDT00g
dHlwZSBoYXMgdGhlIHNhbWUgdHlwZSBuYW1lIGFzCi0gICAgIyBpZGwgdHlwZSBwcmVmaXhlZCB3
aXRoICJET00iLgotICAgIHJldHVybiAkVEVNUF9QUkVGSVggLiAiRE9NIiAuICRuYW1lOwotfQot
Ci1zdWIgR2V0Q09NVHlwZQotewotICAgIG15ICgkdHlwZSkgPSBAXzsKLQotICAgIGRpZSAiRG9u
J3QgdXNlIEdldENPTVR5cGUgZm9yIHN0cmluZyB0eXBlcywgdXNlIG9uZSBvZiBJbi9PdXQgdmFy
aWFudHMgaW5zdGVhZC4iIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwot
Ci0gICAgcmV0dXJuICJCT09MIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0dXJuICJV
SU5UIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7Ci0gICAgcmV0dXJuICJJTlQiIGlmICR0
eXBlIGVxICJsb25nIjsKLSAgICByZXR1cm4gJHR5cGUgaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJp
bWl0aXZlVHlwZSgkdHlwZSkgb3IgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7Ci0gICAgIyByZXR1
cm4gInVuc2lnbmVkIHNob3J0IiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyIgb3IgJHR5cGUgZXEg
IlNWR1BhaW50VHlwZSI7Ci0KLSAgICByZXR1cm4gR2V0SW50ZXJmYWNlTmFtZSgkdHlwZSkgLiAi
KiI7Ci19Ci0KLXN1YiBHZXRDT01UeXBlSW4KLXsKLSAgICBteSAoJHR5cGUpID0gQF87Ci0gICAg
cmV0dXJuICJMUENUU1RSIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsK
LSAgICByZXR1cm4gR2V0Q09NVHlwZSgkdHlwZSk7Ci19Ci0KLXN1YiBHZXRDT01UeXBlT3V0Ci17
Ci0gICAgbXkgKCR0eXBlKSA9IEBfOwotICAgIHJldHVybiAiQlNUUiIgaWYgJGNvZGVHZW5lcmF0
b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIEdldENPTVR5cGUoJHR5cGUpOwot
fQotCi1zdWIgSURMVHlwZVRvSW1wbGVtZW50YXRpb25UeXBlCi17Ci0gICAgbXkgJHR5cGUgPSAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotCi0gICAgcmV0dXJuICJib29sIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0dXJuICJ1bnNpZ25lZCIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmciOwotICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAibG9uZyI7Ci0g
ICAgcmV0dXJuICR0eXBlIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUp
OwotCi0gICAgcmV0dXJuICJXZWJDb3JlOjpTdHJpbmciIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0
cmluZ1R5cGUoJHR5cGUpOwotICAgIHJldHVybiAiV2ViQ29yZTo6JHt0eXBlfSI7Ci19Ci0KLXN1
YiBTdHJpcE5hbWVzcGFjZQotewotICAgIG15ICgkdHlwZSkgPSBAXzsKLQotICAgICR0eXBlID1+
IHMvXldlYkNvcmU6Oi8vOwotCi0gICAgcmV0dXJuICR0eXBlOwotfQotCi1zdWIgR2V0UGFyZW50
SW50ZXJmYWNlCi17Ci0gICAgbXkgKCRkYXRhTm9kZSkgPSBAXzsKLSAgICByZXR1cm4gIkkiIC4g
JFRFTVBfUFJFRklYIC4gIkRPTU9iamVjdCIgaWYgKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA9PSAw
KTsKLSAgICByZXR1cm4gR2V0SW50ZXJmYWNlTmFtZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Ci19Ci0KLXN1YiBHZXRQYXJlbnRDbGFzcwotewot
ICAgIG15ICgkZGF0YU5vZGUpID0gQF87Ci0gICAgcmV0dXJuICRURU1QX1BSRUZJWCAuICJET01P
YmplY3QiIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPT0gMCk7Ci0gICAgcmV0dXJuIEdldENs
YXNzTmFtZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDAp
KSk7Ci19Ci0KLXN1YiBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluSURMCi17Ci0gICAg
bXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotCi0gICAgcmV0
dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc05vblBvaW50ZXJUeXBlKCR0eXBlKSBvciAkY29kZUdl
bmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKLQotICAgIG15ICRpbnRlcmZhY2UgPSBHZXRJ
bnRlcmZhY2VOYW1lKCR0eXBlKTsKLSAgICAkSURMRm9yd2FyZERlY2xhcmF0aW9uc3skaW50ZXJm
YWNlfSA9IDE7Ci0gICAgJElETEltcG9ydHN7JGludGVyZmFjZX0gPSAxOwotfQotCi1zdWIgQWRk
SW5jbHVkZXNGb3JUeXBlSW5DUFBIZWFkZXIKLXsKLSAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJh
dG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0gICAgbXkgJHVzZUFuZ2xlQnJhY2tldHMgPSBzaGlm
dDsKLQotICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNOb25Qb2ludGVyVHlwZSgkdHlw
ZSk7Ci0KLSAgICAjIEFkZCBzcGVjaWFsIENhc2VzIEhFUkUKLQotICAgIGlmICgkdHlwZSA9fiBt
L15JLykgewotICAgICAgICAkdHlwZSA9ICJXZWJLaXQiOwotICAgIH0KLQotICAgIGlmICgkdXNl
QW5nbGVCcmFja2V0cykgewotICAgICAgICAkQ1BQSGVhZGVySW5jbHVkZXNBbmdsZXsiJHR5cGUu
aCJ9ID0gMTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICgkdHlwZSBlcSAiR0VO
X0RPTUltcGxlbWVudGF0aW9uIikgewotICAgICAgICAkQ1BQSGVhZGVySW5jbHVkZXN7IkdFTl9E
T01ET01JbXBsZW1lbnRhdGlvbi5oIn0gPSAxOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgaWYgKCR0eXBlIGVxICJJR0VOX0RPTUltcGxlbWVudGF0aW9uIikgewotICAgICAgICAkQ1BQ
SGVhZGVySW5jbHVkZXN7IklHRU5fRE9NRE9NSW1wbGVtZW50YXRpb24uaCJ9ID0gMTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgICRDUFBIZWFkZXJJbmNsdWRlc3siJHR5cGUuaCJ9ID0g
MTsKLX0KLQotc3ViIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIKLXsK
LSAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0KLSAg
ICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzTm9uUG9pbnRlclR5cGUoJHR5cGUpIG9yICRj
b2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwotCi0gICAgbXkgJGludGVyZmFjZSA9
IEdldEludGVyZmFjZU5hbWUoJHR5cGUpOwotICAgICRDUFBIZWFkZXJGb3J3YXJkRGVjbGFyYXRp
b25zeyRpbnRlcmZhY2V9ID0gMTsKLX0KLQotc3ViIEFkZEluY2x1ZGVzRm9yVHlwZUluQ1BQSW1w
bGVtZW50YXRpb24KLXsKLSAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVs
ZShzaGlmdCk7Ci0KLSAgICBkaWUgIkluY2x1ZGUgdHlwZSBub3Qgc3VwcG9ydGVkISIgaWYgJGlu
Y2x1ZGVDb3JyZWN0b3J7JHR5cGV9OwotCi0gICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5J
c05vblBvaW50ZXJUeXBlKCR0eXBlKTsKLQotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJp
bmdUeXBlKCR0eXBlKSkgewotICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVk
ZXN7IkF0b21pY1N0cmluZy5oIn0gPSAxOwotICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJD
b3JlSW5jbHVkZXN7IkJTdHJpbmcuaCJ9ID0gMTsKLSAgICAgICAgJENQUEltcGxlbWVudGF0aW9u
V2ViQ29yZUluY2x1ZGVzeyJLVVJMLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICAjIFNwZWNpYWwgY2FzaW5nCi0gICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1
ZGVzeyJOYW1lTm9kZUxpc3QuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiTm9kZUxpc3QiOwotICAgICRD
UFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7Ci0KLSAgICAjIEFk
ZCBpbXBsZW1lbnRhdGlvbiB0eXBlCi0gICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1
ZGVze1N0cmlwTmFtZXNwYWNlKElETFR5cGVUb0ltcGxlbWVudGF0aW9uVHlwZSgkdHlwZSkpIC4g
Ii5oIn0gPSAxOwotCi0gICAgbXkgJENPTUNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7
Ci0gICAgJENQUEltcGxlbWVudGF0aW9uSW5jbHVkZXN7IiR7Q09NQ2xhc3NOYW1lfS5oIn0gPSAx
OwotfQotCi1zdWIgR2V0QWRkaXRpb25hbEludGVyZmFjZXMKLXsKLSAgICAjIFRoaXMgZnVuY3Rp
b24gZG9lcyBub3RoaW5nLCBidXQgaXQgc3RheXMgaGVyZSBmb3IgZnV0dXJlIG11bHRpcGxlIGlu
aGVyaXRhbmNlIHN1cHBvcnQuCi0gICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBN
b2R1bGUoc2hpZnQpOwotICAgIHJldHVybiAoKTsKLX0KLQotc3ViIEdlbmVyYXRlSURMCi17Ci0g
ICAgbXkgKCRvYmplY3QsICRkYXRhTm9kZSwgJHB1cmVJbnRlcmZhY2UpID0gQF87Ci0KLSAgICBt
eSAkaW5JbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwotICAgIG15ICRvdXRJbnRlcmZh
Y2VOYW1lID0gR2V0SW50ZXJmYWNlTmFtZSgkaW5JbnRlcmZhY2VOYW1lKTsKLSAgICBteSAkdXVp
ZCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkludGVyZmFjZVVVSUQifSB8fCBk
aWUgIkFsbCBjbGFzc2VzIHJlcXVpcmUgYW4gSW50ZXJmYWNlVVVJRCBleHRlbmRlZCBhdHRyaWJ1
dGUuIjsKLQotICAgIG15ICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gKCRwdXJlSW50ZXJmYWNlKSA/
ICJJVW5rbm93biIgOiBHZXRQYXJlbnRJbnRlcmZhY2UoJGRhdGFOb2RlKTsKLQotICAgIG15ICRu
dW1Db25zdGFudHMgPSBAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfTsKLSAgICBteSAkbnVtQXR0cmli
dXRlcyA9IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICBteSAkbnVtRnVuY3Rpb25zID0g
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc307Ci0KLSAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRl
bXBsYXRlCi0gICAgQElETEhlYWRlciA9IEBsaWNlbnNlVGVtcGxhdGU7Ci0gICAgcHVzaChASURM
SGVhZGVyLCAiXG4iKTsKLQotICAgICMgLSBJTkNMVURFUyAtCi0gICAgcHVzaChASURMSGVhZGVy
LCAiI2lmbmRlZiBET19OT19JTVBPUlRTXG4iKTsKLSAgICBwdXNoKEBJRExIZWFkZXIsICJpbXBv
cnQgXCJvYWlkbC5pZGxcIjtcbiIpOwotICAgIHB1c2goQElETEhlYWRlciwgImltcG9ydCBcIm9j
aWRsLmlkbFwiO1xuIik7Ci0gICAgcHVzaChASURMSGVhZGVyLCAiI2VuZGlmXG5cbiIpOwotCi0g
ICAgdW5sZXNzICgkcHVyZUludGVyZmFjZSkgewotICAgICAgICBwdXNoKEBJRExIZWFkZXIsICIj
aWZuZGVmIERPX05PX0lNUE9SVFNcbiIpOwotICAgICAgICBwdXNoKEBJRExIZWFkZXIsICJpbXBv
cnQgXCIke3BhcmVudEludGVyZmFjZU5hbWV9LmlkbFwiO1xuIik7Ci0gICAgICAgIHB1c2goQElE
TEhlYWRlciwgIiNlbmRpZlxuXG4iKTsKLQotICAgICAgICAkSURMRG9udEZvcndhcmREZWNsYXJl
eyRvdXRJbnRlcmZhY2VOYW1lfSA9IDE7Ci0gICAgICAgICRJRExEb250SW1wb3J0eyRvdXRJbnRl
cmZhY2VOYW1lfSA9IDE7Ci0gICAgICAgICRJRExEb250Rm9yd2FyZERlY2xhcmV7JHBhcmVudElu
dGVyZmFjZU5hbWV9ID0gMTsKLSAgICAgICAgJElETERvbnRJbXBvcnR7JHBhcmVudEludGVyZmFj
ZU5hbWV9ID0gMTsKLSAgICB9Ci0KLSAgICAjIC0gQmVnaW4KLSAgICAjIC0tIEF0dHJpYnV0ZXMK
LSAgICBwdXNoKEBJRExDb250ZW50LCAiW1xuIik7Ci0gICAgcHVzaChASURMQ29udGVudCwgIiAg
ICBvYmplY3QsXG4iKTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAiICAgIG9sZWF1dG9tYXRpb24s
XG4iKTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAiICAgIHV1aWQoIiAuICR1dWlkIC4gIiksXG4i
KTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAiICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpXG4i
KTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAiXVxuIik7Ci0KLSAgICAjIC0tIEludGVyZmFjZQot
ICAgIHB1c2goQElETENvbnRlbnQsICJpbnRlcmZhY2UgIiAuICRvdXRJbnRlcmZhY2VOYW1lIC4g
IiA6ICIgLiAkcGFyZW50SW50ZXJmYWNlTmFtZSAuICJcbiIpOwotICAgIHB1c2goQElETENvbnRl
bnQsICJ7XG4iKTsKLQotCi0gICAgIyAtIEZJWE1FOiBBZGQgY29uc3RhbnRzLgotCi0KLSAgICAj
IC0gQWRkIGF0dHJpYnV0ZSBnZXR0ZXJzL3NldHRlcnMuCi0gICAgaWYgKCRudW1BdHRyaWJ1dGVz
ID4gMCkgewotICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRy
aWJ1dGVzfSkgewotICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPm5hbWU7Ci0gICAgICAgICAgICBteSAkYXR0cmlidXRlSURMVHlwZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKLSAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlSW4g
PSBHZXRDT01UeXBlSW4oJGF0dHJpYnV0ZUlETFR5cGUpOwotICAgICAgICAgICAgbXkgJGF0dHJp
YnV0ZVR5cGVPdXQgPSBHZXRDT01UeXBlT3V0KCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICAgICAg
ICAgIG15ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFk
b25seS8pOwotCi0gICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluSURM
KCRhdHRyaWJ1dGVJRExUeXBlKTsKLQotICAgICAgICAgICAgdW5sZXNzICgkYXR0cmlidXRlSXNS
ZWFkb25seSkgewotICAgICAgICAgICAgICAgICMgU2V0dGVyCi0gICAgICAgICAgICAgICAgbXkg
JHNldHRlck5hbWUgPSAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1
dGVOYW1lKTsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gIiAgICBIUkVTVUxUICIgLiAk
c2V0dGVyTmFtZSAuICIoW2luXSAiIC4gJGF0dHJpYnV0ZVR5cGVJbiAuICIpO1xuIjsKLSAgICAg
ICAgICAgICAgICBwdXNoKEBJRExDb250ZW50LCAkc2V0dGVyKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgIyBHZXR0ZXIKLSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAiICAgIEhSRVNV
TFQgIiAuICRhdHRyaWJ1dGVOYW1lIC4gIihbb3V0LCByZXR2YWxdICIgLiAkYXR0cmlidXRlVHlw
ZU91dCAuICIqKTtcblxuIjsKLSAgICAgICAgICAgIHB1c2goQElETENvbnRlbnQsICRnZXR0ZXIp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgIyAtIEFkZCBmdW5jdGlvbnMuCi0gICAgaWYgKCRu
dW1GdW5jdGlvbnMgPiAwKSB7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRh
Tm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICAgICAgbXkgJHJldHVybklETFR5cGUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKLSAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0g
R2V0Q09NVHlwZU91dCgkcmV0dXJuSURMVHlwZSk7Ci0gICAgICAgICAgICBteSAkbm9SZXR1cm4g
PSAoJHJldHVyblR5cGUgZXEgInZvaWQiKTsKLQotICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xh
cmF0aW9uc0ZvclR5cGVJbklETCgkcmV0dXJuSURMVHlwZSk7Ci0KLSAgICAgICAgICAgIG15IEBw
YXJhbUFyZ0xpc3QgPSAoKTsKLSAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5j
dGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBh
cmFtLT5uYW1lOwotICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5
cGU7Ci0gICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldENPTVR5cGVJbigkcGFyYW0t
PnR5cGUpOwotCi0gICAgICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJ
bklETCgkcGFyYW1JRExUeXBlKTsKLQotICAgICAgICAgICAgICAgICMgRm9ybSBwYXJhbWV0ZXIK
LSAgICAgICAgICAgICAgICBteSAkcGFyYW1ldGVyID0gIltpbl0gJHtwYXJhbVR5cGV9ICR7cGFy
YW1OYW1lfSI7Ci0KLSAgICAgICAgICAgICAgICAjIEFkZCBwYXJhbWV0ZXIgdG8gZnVuY3Rpb24g
c2lnbmF0dXJlCi0gICAgICAgICAgICAgICAgcHVzaChAcGFyYW1BcmdMaXN0LCAkcGFyYW1ldGVy
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdW5sZXNzICgkbm9SZXR1cm4pIHsKLSAg
ICAgICAgICAgICAgICBteSAkcmVzdWx0UGFyYW1ldGVyID0gIltvdXQsIHJldHZhbF0gIiAuICRy
ZXR1cm5UeXBlIC4gIiogcmVzdWx0IjsKLSAgICAgICAgICAgICAgICBwdXNoKEBwYXJhbUFyZ0xp
c3QsICRyZXN1bHRQYXJhbWV0ZXIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBteSAk
ZnVuY3Rpb25TaWcgPSAiICAgIEhSRVNVTFQgIiAuICRmdW5jdGlvbk5hbWUgLiAiKCI7Ci0gICAg
ICAgICAgICAkZnVuY3Rpb25TaWcgLj0gam9pbigiLCAiLCBAcGFyYW1BcmdMaXN0KTsKLSAgICAg
ICAgICAgICRmdW5jdGlvblNpZyAuPSAiKTtcblxuIjsKLSAgICAgICAgICAgIHB1c2goQElETENv
bnRlbnQsICRmdW5jdGlvblNpZyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIC0gRW5kCi0g
ICAgcHVzaChASURMQ29udGVudCwgIn1cblxuIik7Ci19Ci0KLXN1YiBHZW5lcmF0ZUludGVyZmFj
ZUhlYWRlcgotewotICAgIG15ICgkb2JqZWN0LCAkZGF0YU5vZGUpID0gQF87Ci0KLSAgICBteSAk
SURMVHlwZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzcyA9
IElETFR5cGVUb0ltcGxlbWVudGF0aW9uVHlwZSgkSURMVHlwZSk7Ci0gICAgbXkgJGltcGxlbWVu
dGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlID0gU3RyaXBOYW1lc3BhY2UoJGltcGxlbWVudGF0
aW9uQ2xhc3MpOwotICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJElETFR5cGUpOwot
ICAgIG15ICRpbnRlcmZhY2VOYW1lID0gR2V0SW50ZXJmYWNlTmFtZSgkSURMVHlwZSk7Ci0KLSAg
ICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCi0gICAgQENQUEludGVyZmFjZUhlYWRl
ciA9IEBsaWNlbnNlVGVtcGxhdGU7Ci0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAiXG4i
KTsKLQotICAgICMgLSBIZWFkZXIgZ3VhcmRzIC0KLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VIZWFk
ZXIsICIjaWZuZGVmICIgLiAkY2xhc3NOYW1lIC4gIl9oXG4iKTsKLSAgICBwdXNoKEBDUFBJbnRl
cmZhY2VIZWFkZXIsICIjZGVmaW5lICIgLiAkY2xhc3NOYW1lIC4gIl9oXG5cbiIpOwotCi0gICAg
IyAtIEZvcndhcmQgRGVjbGFyYXRpb25zIC0KLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VIZWFkZXIs
ICJpbnRlcmZhY2UgJHtpbnRlcmZhY2VOYW1lfTtcblxuIik7Ci0gICAgcHVzaChAQ1BQSW50ZXJm
YWNlSGVhZGVyLCAibmFtZXNwYWNlIFdlYkNvcmUge1xuIik7Ci0gICAgcHVzaChAQ1BQSW50ZXJm
YWNlSGVhZGVyLCAiICAgIGNsYXNzICR7aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3Bh
Y2V9O1xuIik7Ci0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAifVxuXG4iKTsKLQotICAg
ICMgLSBEZWZhdWx0IEludGVyZmFjZSBDcmVhdG9yIC0KLSAgICBwdXNoKEBDUFBJbnRlcmZhY2VI
ZWFkZXIsICIke2ludGVyZmFjZU5hbWV9KiB0byR7aW50ZXJmYWNlTmFtZX0oJHtpbXBsZW1lbnRh
dGlvbkNsYXNzfSopIHsgcmV0dXJuIDA7IH1cblxuIik7Ci0KLSAgICBwdXNoKEBDUFBJbnRlcmZh
Y2VIZWFkZXIsICIjZW5kaWYgLy8gIiAuICRjbGFzc05hbWUgLiAiX2hcbiIpOwotfQotCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgIENQUCBIZWxwZXIgRnVuY3Rpb25zCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLXN1YiBHZW5lcmF0ZUNQUEF0dHJpYnV0ZVNpZ25hdHVyZQotewotICAg
IG15ICgkYXR0cmlidXRlLCAkY2xhc3NOYW1lLCAkb3B0aW9ucykgPSBAXzsKLQotICAgIG15ICRh
dHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwotICAgIG15ICRpc1Jl
YWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFkb25seS8pOwotCi0gICAgbXkgJG5l
d2xpbmUgPSAkJG9wdGlvbnN7Ik5ld0xpbmVzIn0gPyAiXG4iIDogIiI7Ci0gICAgbXkgJGluZGVu
dCA9ICQkb3B0aW9uc3siSW5kZW50In0gPyAiICIgeCAkJG9wdGlvbnN7IkluZGVudCJ9IDogIiI7
Ci0gICAgbXkgJHNlbWljb2xvbiA9ICQkb3B0aW9uc3siSW5jbHVkZVNlbWlDb2xvbiJ9ID8gIjsi
IDogIiI7Ci0gICAgbXkgJHZpcnR1YWwgPSAkJG9wdGlvbnN7IkFkZFZpcnR1YWxLZXl3b3JkIn0g
PyAidmlydHVhbCAiIDogIiI7Ci0gICAgbXkgJGNsYXNzID0gJCRvcHRpb25zeyJVc2VDbGFzc05h
bWUifSA/ICIke2NsYXNzTmFtZX06OiIgOiAiIjsKLSAgICBteSAkZm9yd2FyZGVyID0gJCRvcHRp
b25zeyJGb3J3YXJkZXIifSA/IDEgOiAwOwotICAgIG15ICRqb2luZXIgPSAgKCQkb3B0aW9uc3si
TmV3TGluZXMifSA/ICJcbiIgLiAkaW5kZW50IC4gIiAgICAiIDogIiIpOwotCi0gICAgbXkgJWF0
dHJpYnV0ZVNpZ25hdHVyZXMgPSAoKTsKLQotICAgIHVubGVzcyAoJGlzUmVhZG9ubHkpIHsKLSAg
ICAgICAgbXkgJGF0dHJpYnV0ZVR5cGVJbiA9IEdldENPTVR5cGVJbigkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGUpOwotICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICJzZXQiIC4gJGNvZGVHZW5l
cmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICBteSAkc2V0dGVyID0g
JGluZGVudCAuICR2aXJ0dWFsIC4gIkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgIi4gJGNsYXNz
IC4gJHNldHRlck5hbWUgLiAiKCI7Ci0gICAgICAgICRzZXR0ZXIgLj0gJGpvaW5lciAuICIvKiBb
aW5dICovICR7YXR0cmlidXRlVHlwZUlufSAke2F0dHJpYnV0ZU5hbWV9KSIgLiAkc2VtaWNvbG9u
IC4gJG5ld2xpbmU7Ci0gICAgICAgIGlmICgkZm9yd2FyZGVyKSB7Ci0gICAgICAgICAgICAkc2V0
dGVyIC49ICIgeyByZXR1cm4gIiAuICQkb3B0aW9uc3siRm9yd2FyZGVyIn0gLiAiOjoiIC4gJHNl
dHRlck5hbWUgLiAiKCR7YXR0cmlidXRlTmFtZX0pOyB9XG4iOwotICAgICAgICB9Ci0gICAgICAg
ICRhdHRyaWJ1dGVTaWduYXR1cmVzeyJTZXR0ZXIifSA9ICRzZXR0ZXI7Ci0gICAgfQotCi0gICAg
bXkgJGF0dHJpYnV0ZVR5cGVPdXQgPSBHZXRDT01UeXBlT3V0KCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZSk7Ci0gICAgbXkgJGdldHRlciA9ICRpbmRlbnQgLiAkdmlydHVhbCAuICJIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFICIgLiAkY2xhc3MgLiAkYXR0cmlidXRlTmFtZSAuICIoIjsKLSAg
ICAkZ2V0dGVyIC49ICRqb2luZXIgLiAiLyogW3JldHZhbF1bb3V0XSAqLyAke2F0dHJpYnV0ZVR5
cGVPdXR9KiByZXN1bHQpIiAuICRzZW1pY29sb24gLiAkbmV3bGluZTsKLSAgICBpZiAoJGZvcndh
cmRlcikgewotICAgICAgICAkZ2V0dGVyIC49ICIgeyByZXR1cm4gIiAuICQkb3B0aW9uc3siRm9y
d2FyZGVyIn0gLiAiOjoiIC4gJGF0dHJpYnV0ZU5hbWUgLiAiKHJlc3VsdCk7IH1cbiI7Ci0gICAg
fQotICAgICRhdHRyaWJ1dGVTaWduYXR1cmVzeyJHZXR0ZXIifSA9ICRnZXR0ZXI7Ci0KLSAgICBy
ZXR1cm4gJWF0dHJpYnV0ZVNpZ25hdHVyZXM7Ci19Ci0KLQotc3ViIEdlbmVyYXRlQ1BQQXR0cmli
dXRlCi17Ci0gICAgbXkgKCRhdHRyaWJ1dGUsICRjbGFzc05hbWUsICRpbXBsZW1lbnRhdGlvbkNs
YXNzLCAkSURMVHlwZSkgPSBAXzsKLQotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91
dE5hbWVzcGFjZSA9IFN0cmlwTmFtZXNwYWNlKCRpbXBsZW1lbnRhdGlvbkNsYXNzKTsKLQotICAg
IG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwotICAgIG15
ICRhdHRyaWJ1dGVJRExUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwotICAgIG15
ICRoYXNTZXR0ZXJFeGNlcHRpb24gPSBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9Owot
ICAgIG15ICRoYXNHZXR0ZXJFeGNlcHRpb24gPSBAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlv
bnN9OwotICAgIG15ICRpc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFkb25s
eS8pOwotICAgIG15ICRhdHRyaWJ1dGVUeXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+
SXNQcmltaXRpdmVUeXBlKCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICBteSAkYXR0cmlidXRlVHlw
ZUlzU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXR0cmlidXRlSURMVHlw
ZSk7Ci0gICAgbXkgJGF0dHJpYnV0ZUltcGxlbWVudGF0aW9uVHlwZSA9IElETFR5cGVUb0ltcGxl
bWVudGF0aW9uVHlwZSgkYXR0cmlidXRlSURMVHlwZSk7Ci0gICAgbXkgJGF0dHJpYnV0ZUltcGxl
bWVudGF0aW9uVHlwZVdpdGhvdXROYW1lc3BhY2UgPSBTdHJpcE5hbWVzcGFjZSgkYXR0cmlidXRl
SW1wbGVtZW50YXRpb25UeXBlKTsKLSAgICBteSAkYXR0cmlidXRlVHlwZUNPTUNsYXNzTmFtZSA9
IEdldENsYXNzTmFtZSgkYXR0cmlidXRlSURMVHlwZSk7Ci0KLSAgICAkQ1BQSW1wbGVtZW50YXRp
b25XZWJDb3JlSW5jbHVkZXN7IkV4Y2VwdGlvbkNvZGUuaCJ9ID0gMSBpZiAkaGFzU2V0dGVyRXhj
ZXB0aW9uIG9yICRoYXNHZXR0ZXJFeGNlcHRpb247Ci0KLSAgICBteSAlc2lnbmF0dXJlcyA9IEdl
bmVyYXRlQ1BQQXR0cmlidXRlU2lnbmF0dXJlKCRhdHRyaWJ1dGUsICRjbGFzc05hbWUsIHsgIk5l
d0xpbmVzIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZW50IiA9PiAwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlVzZUNsYXNzTmFtZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxL
ZXl3b3JkIiA9PiAwIH0pOwotCi0gICAgbXkgJWF0dHJidXRlc1RvUmV0dXJuID0gKCk7Ci0KLSAg
ICB1bmxlc3MgKCRpc1JlYWRvbmx5KSB7Ci0gICAgICAgIG15IEBzZXR0ZXJJbXBsZW1lbnRhdGlv
biA9ICgpOwotICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgJHNpZ25hdHVyZXN7
IlNldHRlciJ9KTsKLSAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICJ7XG4iKTsK
LQotICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3Vj
Zmlyc3QoJGF0dHJpYnV0ZU5hbWUpOwotCi0gICAgICAgIG15IEBzZXR0ZXJQYXJhbXMgPSAoKTsK
LSAgICAgICAgaWYgKCRhdHRyaWJ1dGVUeXBlSXNTdHJpbmcpIHsKLSAgICAgICAgICAgIHB1c2go
QHNldHRlclBhcmFtcywgJGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgaWYgKCRoYXNTZXR0
ZXJFeGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlv
biwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwotICAgICAgICAgICAg
ICAgIHB1c2goQHNldHRlclBhcmFtcywgImVjIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzaWYgKCRhdHRyaWJ1dGVUeXBlSXNQcmltaXRpdmUpIHsKLSAgICAgICAgICAgIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmlu
ZyJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVyUGFyYW1zLCAiV2ViQ29yZTo6U3Ry
aW5nOjpudW1iZXIoJHthdHRyaWJ1dGVOYW1lfSkiKTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRh
dHRyaWJ1dGVJRExUeXBlIGVxICJib29sZWFuIikgewotICAgICAgICAgICAgICAgIHB1c2goQHNl
dHRlclBhcmFtcywgIiEhJHthdHRyaWJ1dGVOYW1lfSIpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBteSAkcHJpbWl0aXZlSW1wbGVtZW50YXRpb25UeXBlID0gSURMVHlw
ZVRvSW1wbGVtZW50YXRpb25UeXBlKCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBzZXR0ZXJQYXJhbXMsICJzdGF0aWNfY2FzdDwke3ByaW1pdGl2ZUltcGxlbWVudGF0
aW9uVHlwZX0+KCR7YXR0cmlidXRlTmFtZX0pIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGlmICgkaGFzU2V0dGVyRXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0
dGVySW1wbGVtZW50YXRpb24sICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBzZXR0ZXJQYXJhbXMsICJlYyIpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJENQUEltcGxlbWVudGF0aW9uV2Vi
Q29yZUluY2x1ZGVzeyJDT01QdHIuaCJ9ID0gMTsKLQotICAgICAgICAgICAgcHVzaChAc2V0dGVy
SW1wbGVtZW50YXRpb24sICIgICAgaWYgKCEke2F0dHJpYnV0ZU5hbWV9KVxuIik7Ci0gICAgICAg
ICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAgICAgcmV0dXJuIEVfUE9JTlRF
UjtcblxuIik7Ci0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBD
T01QdHI8JHthdHRyaWJ1dGVUeXBlQ09NQ2xhc3NOYW1lfT4gcHRyKFF1ZXJ5LCAke2F0dHJpYnV0
ZU5hbWV9KTtcbiIpOwotICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIg
ICAgaWYgKCFwdHIpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9u
LCAiICAgICAgICByZXR1cm4gRV9OT0lOVEVSRkFDRTtcbiIpOwotCi0gICAgICAgICAgICBwdXNo
KEBzZXR0ZXJQYXJhbXMsICJwdHItPmltcGwke2F0dHJpYnV0ZUltcGxlbWVudGF0aW9uVHlwZVdp
dGhvdXROYW1lc3BhY2V9KCkiKTsKLSAgICAgICAgICAgIGlmICgkaGFzU2V0dGVyRXhjZXB0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBz
ZXR0ZXJQYXJhbXMsICJlYyIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
IyBGSVhNRTogQ0hFQ0sgRVhDRVBUSU9OIEFORCBETyBTT01FVEhJTkcgV0lUSCBJVAotCi0gICAg
ICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVmbGVjdCJ9OwotICAgICAgICBteSAkcmVmbGVjdFVSTCA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3RVUkwifTsKLSAgICAgICAgaWYg
KCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSB7Ci0gICAgICAgICAgICBteSAkY29udGVudEF0dHJp
YnV0ZU5hbWUgPSAoKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSBlcSAiMSIpID8gJGF0dHJpYnV0
ZU5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOwotICAgICAgICAgICAgbXkgJG5hbWVz
cGFjZSA9ICRjb2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRJRExUeXBl
LCAkY29udGVudEF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgJENQUEltcGxlbWVudGF0aW9u
V2ViQ29yZUluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgICAgIHB1c2go
QHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIGltcGwke2ltcGxlbWVudGF0aW9uQ2xhc3NXaXRo
b3V0TmFtZXNwYWNlfSgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6JHtuYW1lc3BhY2V9Ojoke2Nv
bnRlbnRBdHRyaWJ1dGVOYW1lfUF0dHIsICIgLiBqb2luKCIsICIsIEBzZXR0ZXJQYXJhbXMpIC4g
Iik7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxl
bWVudGF0aW9uLCAiICAgIGltcGwke2ltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNl
fSgpLT4ke3NldHRlck5hbWV9KCIgLiBqb2luKCIsICIsIEBzZXR0ZXJQYXJhbXMpIC4gIik7XG4i
KTsKLSAgICAgICAgfQotICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBy
ZXR1cm4gU19PSztcbiIpOwotICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIn1c
blxuIik7Ci0KLSAgICAgICAgJGF0dHJidXRlc1RvUmV0dXJueyJTZXR0ZXIifSA9IGpvaW4oIiIs
IEBzZXR0ZXJJbXBsZW1lbnRhdGlvbik7Ci0gICAgfQotCi0gICAgbXkgQGdldHRlckltcGxlbWVu
dGF0aW9uID0gKCk7Ci0gICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICRzaWduYXR1cmVz
eyJHZXR0ZXIifSk7Ci0gICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICJ7XG4iKTsKLSAg
ICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICBpZiAoIXJlc3VsdClcbiIpOwotICAg
IHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAiICAgICAgICByZXR1cm4gRV9QT0lOVEVSO1xu
XG4iKTsKLQotICAgIG15ICRpbXBsZW1lbnRhdGlvbkdldHRlcjsKLSAgICBteSAkcmVmbGVjdCA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsK
LSAgICBteSAkcmVmbGVjdFVSTCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlZmxlY3RVUkwifTsKLSAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwp
IHsKLSAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gKCgkcmVmbGVjdCB8fCAkcmVm
bGVjdFVSTCkgZXEgIjEiKSA/ICRhdHRyaWJ1dGVOYW1lIDogKCRyZWZsZWN0IHx8ICRyZWZsZWN0
VVJMKTsKLSAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRjb2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VG
b3JBdHRyaWJ1dGVOYW1lKCRJRExUeXBlLCAkY29udGVudEF0dHJpYnV0ZU5hbWUpOwotICAgICAg
ICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgbXkgJGdldEF0
dHJpYnV0ZUZ1bmN0aW9uTmFtZSA9ICRyZWZsZWN0VVJMID8gImdldFVSTEF0dHJpYnV0ZSIgOiAi
Z2V0QXR0cmlidXRlIjsKLSAgICAgICAgJGltcGxlbWVudGF0aW9uR2V0dGVyID0gImltcGwke2lt
cGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlfSgpLT4ke2dldEF0dHJpYnV0ZUZ1bmN0
aW9uTmFtZX0oV2ViQ29yZTo6JHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVOYW1lfUF0
dHIpIjsKLSAgICB9IGVsc2UgewotICAgICAgICAkaW1wbGVtZW50YXRpb25HZXR0ZXIgPSAiaW1w
bCR7aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCktPiIgLiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkYXR0cmlidXRlTmFtZSkgLiAiKCIgLiAoJGhhc0dldHRlckV4Y2Vw
dGlvbiA/ICJlYyIgOiAiIikuICIpIjsKLSAgICB9Ci0KLSAgICBwdXNoKEBnZXR0ZXJJbXBsZW1l
bnRhdGlvbiwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmICRoYXNH
ZXR0ZXJFeGNlcHRpb247Ci0KLSAgICBpZiAoJGF0dHJpYnV0ZVR5cGVJc1N0cmluZykgewotICAg
ICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAqcmVzdWx0ID0gV2ViQ29yZTo6
QlN0cmluZygke2ltcGxlbWVudGF0aW9uR2V0dGVyfSkucmVsZWFzZSgpO1xuIik7Ci0gICAgfSBl
bHNpZiAoJGF0dHJpYnV0ZVR5cGVJc1ByaW1pdGl2ZSkgewotICAgICAgICBpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkg
ewotICAgICAgICAgICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgKnJlc3VsdCA9
IHN0YXRpY19jYXN0PCR7YXR0cmlidXRlVHlwZUNPTUNsYXNzTmFtZX0+KCR7aW1wbGVtZW50YXRp
b25HZXR0ZXJ9LnRvSW50KCkpO1xuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAqcmVzdWx0ID0gc3RhdGljX2Nhc3Q8JHth
dHRyaWJ1dGVUeXBlQ09NQ2xhc3NOYW1lfT4oJHtpbXBsZW1lbnRhdGlvbkdldHRlcn0pO1xuIik7
Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25JbmNs
dWRlc0FuZ2xleyJ3dGYvR2V0UHRyLmgifSA9IDE7Ci0gICAgICAgIG15ICRhdHRyaWJ1dGVUeXBl
Q09NSW50ZXJmYWNlTmFtZSA9IEdldEludGVyZmFjZU5hbWUoJGF0dHJpYnV0ZUlETFR5cGUpOwot
ICAgICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAqcmVzdWx0ID0gMDtcbiIp
OwotICAgICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAke2F0dHJpYnV0ZUlt
cGxlbWVudGF0aW9uVHlwZX0qIHJlc3VsdEltcGwgPSBXVEY6OmdldFB0cigke2ltcGxlbWVudGF0
aW9uR2V0dGVyfSk7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIg
ICAgaWYgKCFyZXN1bHRJbXBsKVxuIik7Ci0gICAgICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0
aW9uLCAiICAgICAgICByZXR1cm4gRV9QT0lOVEVSO1xuXG4iKTsKLSAgICAgICAgcHVzaChAZ2V0
dGVySW1wbGVtZW50YXRpb24sICIgICAgKnJlc3VsdCA9IHRvJHthdHRyaWJ1dGVUeXBlQ09NSW50
ZXJmYWNlTmFtZX0ocmVzdWx0SW1wbCk7XG4iKTsKLSAgICB9Ci0KLSAgICAjIEZJWE1FOiBDSEVD
SyBFWENFUFRJT04gQU5EIERPIFNPTUVUSElORyBXSVRIIElUCi0KLSAgICBwdXNoKEBnZXR0ZXJJ
bXBsZW1lbnRhdGlvbiwgIiAgICByZXR1cm4gU19PSztcbiIpOwotICAgIHB1c2goQGdldHRlcklt
cGxlbWVudGF0aW9uLCAifVxuXG4iKTsKLQotICAgICRhdHRyYnV0ZXNUb1JldHVybnsiR2V0dGVy
In0gPSBqb2luKCIiLCBAZ2V0dGVySW1wbGVtZW50YXRpb24pOwotCi0gICAgcmV0dXJuICVhdHRy
YnV0ZXNUb1JldHVybjsKLX0KLQotc3ViIEdlbmVyYXRlQ1BQRnVuY3Rpb25TaWduYXR1cmUKLXsK
LSAgICBteSAoJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCAkb3B0aW9ucykgPSBAXzsKLQotICAgIG15
ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICBteSAkcmV0
dXJuSURMVHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlOwotICAgIG15ICRyZXR1cm5U
eXBlID0gR2V0Q09NVHlwZU91dCgkcmV0dXJuSURMVHlwZSk7Ci0gICAgbXkgJG5vUmV0dXJuID0g
KCRyZXR1cm5UeXBlIGVxICJ2b2lkIik7Ci0KLSAgICBteSAkbmV3bGluZSA9ICQkb3B0aW9uc3si
TmV3TGluZXMifSA/ICJcbiIgOiAiIjsKLSAgICBteSAkaW5kZW50ID0gJCRvcHRpb25zeyJJbmRl
bnQifSA/ICIgIiB4ICQkb3B0aW9uc3siSW5kZW50In0gOiAiIjsKLSAgICBteSAkc2VtaWNvbG9u
ID0gJCRvcHRpb25zeyJJbmNsdWRlU2VtaUNvbG9uIn0gPyAiOyIgOiAiIjsKLSAgICBteSAkdmly
dHVhbCA9ICQkb3B0aW9uc3siQWRkVmlydHVhbEtleXdvcmQifSA/ICJ2aXJ0dWFsICIgOiAiIjsK
LSAgICBteSAkY2xhc3MgPSAkJG9wdGlvbnN7IlVzZUNsYXNzTmFtZSJ9ID8gIiR7Y2xhc3NOYW1l
fTo6IiA6ICIiOwotICAgIG15ICRmb3J3YXJkZXIgPSAkJG9wdGlvbnN7IkZvcndhcmRlciJ9ID8g
MSA6IDA7Ci0gICAgbXkgJGpvaW5lciA9ICgkJG9wdGlvbnN7Ik5ld0xpbmVzIn0gPyAiXG4iIC4g
JGluZGVudCAuICIgICAgIiA6ICIgIik7Ci0KLSAgICBteSBAcGFyYW1BcmdMaXN0ID0gKCk7Ci0g
ICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAg
ICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwotICAgICAgICBteSAkcGFyYW1UeXBlID0g
R2V0Q09NVHlwZUluKCRwYXJhbS0+dHlwZSk7Ci0gICAgICAgIG15ICRwYXJhbWV0ZXIgPSAiLyog
W2luXSAqLyAke3BhcmFtVHlwZX0gJHtwYXJhbU5hbWV9IjsKLSAgICAgICAgcHVzaChAcGFyYW1B
cmdMaXN0LCAkcGFyYW1ldGVyKTsKLSAgICB9Ci0KLSAgICB1bmxlc3MgKCRub1JldHVybikgewot
ICAgICAgICBteSAkcmVzdWx0UGFyYW1ldGVyIC49ICIvKiBbb3V0LCByZXR2YWxdICovICR7cmV0
dXJuVHlwZX0qIHJlc3VsdCI7Ci0gICAgICAgIHB1c2goQHBhcmFtQXJnTGlzdCwgJHJlc3VsdFBh
cmFtZXRlcik7Ci0gICAgfQotCi0gICAgbXkgJGZ1bmN0aW9uU2lnID0gJGluZGVudCAuICR2aXJ0
dWFsIC4gIkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgIiAuICRjbGFzcyAuICRmdW5jdGlvbk5h
bWUgLiAiKCI7Ci0gICAgJGZ1bmN0aW9uU2lnIC49ICRqb2luZXIgLiBqb2luKCIsIiAuICRqb2lu
ZXIsIEBwYXJhbUFyZ0xpc3QpIGlmIEBwYXJhbUFyZ0xpc3QgPiAwOwotICAgICRmdW5jdGlvblNp
ZyAuPSAiKSIgLiAkc2VtaWNvbG9uIC4gJG5ld2xpbmU7Ci0gICAgaWYgKCRmb3J3YXJkZXIpIHsK
LSAgICAgICAgbXkgQHBhcmFtTmFtZUxpc3QgPSAoKTsKLSAgICAgICAgcHVzaChAcGFyYW1OYW1l
TGlzdCwgJF8tPm5hbWUpIGZvcmVhY2ggKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSk7Ci0gICAg
ICAgIHB1c2goQHBhcmFtTmFtZUxpc3QsICJyZXN1bHQiKSB1bmxlc3MgJG5vUmV0dXJuOwotICAg
ICAgICAkZnVuY3Rpb25TaWcgLj0gIiB7IHJldHVybiAiIC4gJCRvcHRpb25zeyJGb3J3YXJkZXIi
fSAuICI6OiIgLiAkZnVuY3Rpb25OYW1lIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1OYW1lTGlz
dCkgLiAiKTsgfVxuIjsKLSAgICB9Ci0KLSAgICByZXR1cm4gJGZ1bmN0aW9uU2lnCi19Ci0KLXN1
YiBHZW5lcmF0ZUNQUEZ1bmN0aW9uCi17Ci0gICAgbXkgKCRmdW5jdGlvbiwgJGNsYXNzTmFtZSwg
JGltcGxlbWVudGF0aW9uQ2xhc3MpID0gQF87Ci0KLSAgICBteSBAZnVuY3Rpb25JbXBsZW1lbnRh
dGlvbiA9ICgpOwotCi0gICAgbXkgJHNpZ25hdHVyZSA9IEdlbmVyYXRlQ1BQRnVuY3Rpb25TaWdu
YXR1cmUoJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCB7ICJOZXdMaW5lcyIgPT4gMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkluZGVudCIgPT4gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY2x1ZGVTZW1pQ29s
b24iID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VDbGFzc05hbWUiID0+IDEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4gMCB9KTsKLQotICAgIG15ICRpbXBsZW1l
bnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZSA9IFN0cmlwTmFtZXNwYWNlKCRpbXBsZW1lbnRh
dGlvbkNsYXNzKTsKLQotICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZTsKLSAgICBteSAkcmV0dXJuSURMVHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlOwotICAgIG15ICRub1JldHVybiA9ICgkcmV0dXJuSURMVHlwZSBlcSAidm9pZCIpOwotICAg
IG15ICRyYWlzZXNFeGNlcHRpb25zID0gQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9Owot
Ci0gICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBJbXBsZW1lbnRhdGlvbigkcmV0dXJuSURMVHlw
ZSk7Ci0gICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVzeyJFeGNlcHRpb25Db2Rl
LmgifSA9IDEgaWYgJHJhaXNlc0V4Y2VwdGlvbnM7Ci0KLSAgICBteSAlbmVlZHNDdXN0b20gPSAo
KTsKLSAgICBteSBAcGFyYW1ldGVySW5pdGlhbGl6YXRpb24gPSAoKTsKLSAgICBteSBAcGFyYW1l
dGVyTGlzdCA9ICgpOwotICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc30pIHsKLSAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKLSAgICAgICAg
bXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKLQotICAgICAgICBteSAkcGFyYW1UeXBl
SXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5
cGUpOwotICAgICAgICBteSAkcGFyYW1UeXBlSXNTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCRwYXJhbUlETFR5cGUpOwotCi0gICAgICAgICRuZWVkc0N1c3RvbXsiTm9kZVRv
UmV0dXJuIn0gPSAkcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
dHVybiJ9OwotCi0gICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluQ1BQSW1wbGVtZW50YXRpb24o
JHBhcmFtSURMVHlwZSk7Ci0KLSAgICAgICAgIyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gbnVsbCBj
aGVjayB0aGUgYXJndW1lbnRzIGFzIHdlbGwKLQotICAgICAgICBpZiAoJHBhcmFtVHlwZUlzU3Ry
aW5nKSB7Ci0gICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJMaXN0LCAkcGFyYW1OYW1lKTsKLSAg
ICAgICAgfSBlbHNpZiAoJHBhcmFtVHlwZUlzUHJpbWl0aXZlKSB7Ci0gICAgICAgICAgICBpZiAo
JHBhcmFtSURMVHlwZSBlcSAiYm9vbGVhbiIpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBwYXJh
bWV0ZXJMaXN0LCAiISEke3BhcmFtTmFtZX0iKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgbXkgJHByaW1pdGl2ZUltcGxlbWVudGF0aW9uVHlwZSA9IElETFR5cGVUb0lt
cGxlbWVudGF0aW9uVHlwZSgkcGFyYW1JRExUeXBlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBw
YXJhbWV0ZXJMaXN0LCAic3RhdGljX2Nhc3Q8JHtwcmltaXRpdmVJbXBsZW1lbnRhdGlvblR5cGV9
Pigke3BhcmFtTmFtZX0pIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7IkNPTVB0ci5oIn0gPSAx
OwotCi0gICAgICAgICAgICAkbmVlZHNDdXN0b217IkNhblJldHVybkVhcmx5In0gPSAxOwotCi0g
ICAgICAgICAgICBteSAkcGFyYW1UeXBlQ09NQ2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRwYXJh
bUlETFR5cGUpOwotICAgICAgICAgICAgbXkgJHBhcmFtVHlwZUltcGxlbWVudGF0aW9uV2l0aG91
dE5hbWVzcGFjZSA9IFN0cmlwTmFtZXNwYWNlKElETFR5cGVUb0ltcGxlbWVudGF0aW9uVHlwZSgk
cGFyYW1JRExUeXBlKSk7Ci0gICAgICAgICAgICBteSAkcHRyTmFtZSA9ICJwdHJGb3IiIC4gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHBhcmFtTmFtZSk7Ci0gICAgICAgICAgICBteSAkcGFy
YW1Jbml0ID0gIiAgICBDT01QdHI8JHtwYXJhbVR5cGVDT01DbGFzc05hbWV9PiAke3B0ck5hbWV9
KFF1ZXJ5LCAke3BhcmFtTmFtZX0pO1xuIjsKLSAgICAgICAgICAgICRwYXJhbUluaXQgLj0gIiAg
ICBpZiAoISR7cHRyTmFtZX0pXG4iOwotICAgICAgICAgICAgJHBhcmFtSW5pdCAuPSAiICAgICAg
ICByZXR1cm4gRV9OT0lOVEVSRkFDRTsiOwotICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVySW5p
dGlhbGl6YXRpb24sICRwYXJhbUluaXQpOwotICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTGlz
dCwgIiR7cHRyTmFtZX0tPmltcGwke3BhcmFtVHlwZUltcGxlbWVudGF0aW9uV2l0aG91dE5hbWVz
cGFjZX0oKSIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVzaChAcGFyYW1ldGVyTGlzdCwg
ImVjIikgaWYgJHJhaXNlc0V4Y2VwdGlvbnM7Ci0KLSAgICBteSAkaW1wbGVtZW50YXRpb25HZXR0
ZXIgPSAiaW1wbCR7aW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCkiOwotCi0g
ICAgbXkgJGNhbGxTaWdCZWdpbiA9ICIgICAgIjsKLSAgICBteSAkY2FsbFNpZ01pZGRsZSA9ICIk
e2ltcGxlbWVudGF0aW9uR2V0dGVyfS0+IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRm
dW5jdGlvbk5hbWUpIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTGlzdCkgLiAiKSI7Ci0g
ICAgbXkgJGNhbGxTaWdFbmQgPSAiO1xuIjsKLQotICAgIGlmIChkZWZpbmVkICRuZWVkc0N1c3Rv
bXsiTm9kZVRvUmV0dXJuIn0pIHsKLSAgICAgICAgbXkgJG5vZGVUb1JldHVybiA9ICRuZWVkc0N1
c3RvbXsiTm9kZVRvUmV0dXJuIn07Ci0gICAgICAgICRjYWxsU2lnQmVnaW4gLj0gImlmICgiOwot
ICAgICAgICAkY2FsbFNpZ0VuZCA9ICIpXG4iOwotICAgICAgICAkY2FsbFNpZ0VuZCAuPSAiICAg
ICAgICAqcmVzdWx0ID0gJHtub2RlVG9SZXR1cm59OyI7Ci0gICAgfSBlbHNpZiAoISRub1JldHVy
bikgewotICAgICAgICBteSAkcmV0dXJuVHlwZUlzU3RyaW5nID0gICRjb2RlR2VuZXJhdG9yLT5J
c1N0cmluZ1R5cGUoJHJldHVybklETFR5cGUpOwotICAgICAgICBteSAkcmV0dXJuVHlwZUlzUHJp
bWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkcmV0dXJuSURMVHlwZSk7
Ci0KLSAgICAgICAgaWYgKCRyZXR1cm5UeXBlSXNTdHJpbmcpIHsKLSAgICAgICAgICAgICRjYWxs
U2lnQmVnaW4gLj0gIipyZXN1bHQgPSBXZWJDb3JlOjpCU3RyaW5nKCI7Ci0gICAgICAgICAgICAk
Y2FsbFNpZ0VuZCA9ICIpLnJlbGVhc2UoKTtcbiI7Ci0gICAgICAgIH0gZWxzaWYgKCRyZXR1cm5U
eXBlSXNQcmltaXRpdmUpIHsKLSAgICAgICAgICAgIG15ICRwcmltaXRpdmVDT01UeXBlID0gR2V0
Q2xhc3NOYW1lKCRyZXR1cm5JRExUeXBlKTsKLSAgICAgICAgICAgICRjYWxsU2lnQmVnaW4gLj0g
IipyZXN1bHQgPSBzdGF0aWNfY2FzdDwke3ByaW1pdGl2ZUNPTVR5cGV9PigiOwotICAgICAgICAg
ICAgJGNhbGxTaWdFbmQgPSAiKTsiOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJENQ
UEltcGxlbWVudGF0aW9uSW5jbHVkZXNBbmdsZXsid3RmL0dldFB0ci5oIn0gPSAxOwotICAgICAg
ICAgICAgbXkgJHJldHVybkltcGxlbWVudGF0aW9uVHlwZSA9IElETFR5cGVUb0ltcGxlbWVudGF0
aW9uVHlwZSgkcmV0dXJuSURMVHlwZSk7Ci0gICAgICAgICAgICBteSAkcmV0dXJuVHlwZUNPTUlu
dGVyZmFjZU5hbWUgPSBHZXRJbnRlcmZhY2VOYW1lKCRyZXR1cm5JRExUeXBlKTsKLSAgICAgICAg
ICAgICRjYWxsU2lnQmVnaW4gLj0gIiR7cmV0dXJuSW1wbGVtZW50YXRpb25UeXBlfSogcmVzdWx0
SW1wbCA9IFdURjo6Z2V0UHRyKCI7Ci0gICAgICAgICAgICAkY2FsbFNpZ0VuZCA9ICIpO1xuIjsK
LSAgICAgICAgICAgICRjYWxsU2lnRW5kIC49ICIgICAgaWYgKCFyZXN1bHRJbXBsKVxuIjsKLSAg
ICAgICAgICAgICRjYWxsU2lnRW5kIC49ICIgICAgICAgIHJldHVybiBFX1BPSU5URVI7XG5cbiI7
Ci0gICAgICAgICAgICAkY2FsbFNpZ0VuZCAuPSAiICAgICpyZXN1bHQgPSB0byR7cmV0dXJuVHlw
ZUNPTUludGVyZmFjZU5hbWV9KHJlc3VsdEltcGwpOyI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAkc2lnbmF0dXJlKTsKLSAgICBwdXNoKEBm
dW5jdGlvbkltcGxlbWVudGF0aW9uLCAie1xuIik7Ci0gICAgdW5sZXNzICgkbm9SZXR1cm4pIHsK
LSAgICAgICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiwgIiAgICBpZiAoIXJlc3VsdClc
biIpOwotICAgICAgICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAiICAgICAgICByZXR1
cm4gRV9QT0lOVEVSO1xuXG4iKTsKLSAgICAgICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlv
biwgIiAgICAqcmVzdWx0ID0gMDtcblxuIikgaWYgJG5lZWRzQ3VzdG9teyJDYW5SZXR1cm5FYXJs
eSJ9OwotICAgIH0KLSAgICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAiICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgJHJhaXNlc0V4Y2VwdGlvbnM7ICMgRklY
TUU6IENIRUNLIEVYQ0VQVElPTiBBTkQgRE8gU09NRVRISU5HIFdJVEggSVQKLSAgICBwdXNoKEBm
dW5jdGlvbkltcGxlbWVudGF0aW9uLCBqb2luKCJcbiIsIEBwYXJhbWV0ZXJJbml0aWFsaXphdGlv
bikgLiAoQHBhcmFtZXRlckluaXRpYWxpemF0aW9uID4gMCA/ICJcbiIgOiAiIikpOwotICAgIHB1
c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICRjYWxsU2lnQmVnaW4gLiAkY2FsbFNpZ01pZGRs
ZSAuICRjYWxsU2lnRW5kIC4gIlxuIik7Ci0gICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlv
biwgIiAgICByZXR1cm4gU19PSztcbiIpOwotICAgIHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRp
b24sICJ9XG5cbiIpOwotCi0gICAgcmV0dXJuIGpvaW4oIiIsIEBmdW5jdGlvbkltcGxlbWVudGF0
aW9uKTsKLX0KLQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgIENQUCBIZWFkZXIKLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3ViIEdlbmVyYXRlQ1BQSGVhZGVyCi17Ci0gICAgbXkg
KCRvYmplY3QsICRkYXRhTm9kZSkgPSBAXzsKLQotICAgIG15ICRJRExUeXBlID0gJGRhdGFOb2Rl
LT5uYW1lOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzID0gSURMVHlwZVRvSW1wbGVtZW50
YXRpb25UeXBlKCRJRExUeXBlKTsKLSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXRO
YW1lc3BhY2UgPSBTdHJpcE5hbWVzcGFjZSgkaW1wbGVtZW50YXRpb25DbGFzcyk7Ci0gICAgbXkg
JGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkSURMVHlwZSk7Ci0gICAgbXkgJGludGVyZmFjZU5h
bWUgPSBHZXRJbnRlcmZhY2VOYW1lKCRJRExUeXBlKTsKLQotICAgIG15ICRwYXJlbnRDbGFzc05h
bWUgPSBHZXRQYXJlbnRDbGFzcygkZGF0YU5vZGUpOwotICAgIG15IEBvdGhlckludGVyZmFjZXNJ
bXBsZW1lbnRlZCA9IEdldEFkZGl0aW9uYWxJbnRlcmZhY2VzKCRJRExUeXBlKTsKLSAgICBmb3Jl
YWNoIG15ICRvdGhlckludGVyZmFjZSAoQG90aGVySW50ZXJmYWNlc0ltcGxlbWVudGVkKSB7Ci0g
ICAgICAgIHB1c2goQGFkZGl0aW9uYWxJbnRlcmZhY2VEZWZpbml0aW9ucywgJGNvZGVHZW5lcmF0
b3ItPlBhcnNlSW50ZXJmYWNlKCRvdGhlckludGVyZmFjZSkpOwotICAgIH0KLQotICAgICMgRklY
TUU6IHN0cmlwIHdoaXRlc3BhY2UgZnJvbSBVVUlECi0gICAgbXkgJHV1aWQgPSAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRhdGlvblVVSUQifSB8fCBkaWUgIkFsbCBj
bGFzc2VzIHJlcXVpcmUgYW4gSW1wbGVtZW50YXRpb25VVUlEIGV4dGVuZGVkIGF0dHJpYnV0ZS4i
OwotCi0gICAgbXkgJG51bUF0dHJpYnV0ZXMgPSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc307Ci0g
ICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9OwotCi0gICAgIyAt
IEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQotICAgIEBDUFBIZWFkZXJIZWFkZXIgPSBAbGlj
ZW5zZVRlbXBsYXRlOwotICAgIHB1c2goQENQUEhlYWRlckhlYWRlciwgIlxuIik7Ci0KLSAgICAj
IC0gSGVhZGVyIGd1YXJkcyAtCi0gICAgcHVzaChAQ1BQSGVhZGVySGVhZGVyLCAiI2lmbmRlZiAi
IC4gJGNsYXNzTmFtZSAuICJfaFxuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVySGVhZGVyLCAiI2Rl
ZmluZSAiIC4gJGNsYXNzTmFtZSAuICJfaFxuXG4iKTsKLQotICAgIEFkZEluY2x1ZGVzRm9yVHlw
ZUluQ1BQSGVhZGVyKCRpbnRlcmZhY2VOYW1lKTsKLSAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkNQ
UEhlYWRlcigkcGFyZW50Q2xhc3NOYW1lKTsKLSAgICAkQ1BQSGVhZGVyRG9udEZvcndhcmREZWNs
YXJhdGlvbnN7JGNsYXNzTmFtZX0gPSAxOwotICAgICRDUFBIZWFkZXJEb250Rm9yd2FyZERlY2xh
cmF0aW9uc3skaW50ZXJmYWNlTmFtZX0gPSAxOwotICAgICRDUFBIZWFkZXJEb250Rm9yd2FyZERl
Y2xhcmF0aW9uc3skcGFyZW50Q2xhc3NOYW1lfSA9IDE7Ci0KLSAgICAjIC0tIEZvcndhcmQgZGVj
bGFyZSBpbXBsZW1lbnRhdGlvbiB0eXBlCi0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIm5h
bWVzcGFjZSBXZWJDb3JlIHtcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAg
Y2xhc3MgIi4gU3RyaXBOYW1lc3BhY2UoJGltcGxlbWVudGF0aW9uQ2xhc3MpIC4gIjtcbiIpOwot
ICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwotCi0gICAgIyAtLSBTdGFydCBD
bGFzcyAtLQotICAgIG15IEBwYXJlbnRzQ2xhc3NlcyA9ICgkcGFyZW50Q2xhc3NOYW1lLCAkaW50
ZXJmYWNlTmFtZSk7Ci0gICAgcHVzaChAcGFyZW50c0NsYXNzZXMsIG1hcCB7IEdldEludGVyZmFj
ZU5hbWUoJF8pIH0gQG90aGVySW50ZXJmYWNlc0ltcGxlbWVudGVkKTsKLSAgICBwdXNoKEBDUFBI
ZWFkZXJDb250ZW50LCAiY2xhc3MgX19kZWNsc3BlYyh1dWlkKFwiJHV1aWRcIikpICR7Y2xhc3NO
YW1lfSA6ICIgLiBqb2luKCIsICIsIG1hcCB7ICJwdWJsaWMgJF8iIH0gQHBhcmVudHNDbGFzc2Vz
KSAuICIge1xuIik7Ci0KLSAgICAjIEFkZCBpbmNsdWRlcyBmb3IgYWxsIGFkZGl0aW9uYWwgaW50
ZXJmYWNlcyB0byBpbXBsZW1lbnQKLSAgICBtYXAgeyBBZGRJbmNsdWRlc0ZvclR5cGVJbkNQUEhl
YWRlcihHZXRJbnRlcmZhY2VOYW1lKCRfKSkgfSBAb3RoZXJJbnRlcmZhY2VzSW1wbGVtZW50ZWQ7
Ci0KLSAgICAjIC0tIEJBU0lDUyAtLQotICAgICMgRklYTUU6IFRoZSBjb25zdHJ1Y3RvciBhbmQg
ZGVzdHJ1Y3RvciBzaG91bGQgYmUgcHJvdGVjdGVkLCBidXQgdGhlIGN1cnJlbnQgZGVzaWduIG9m
Ci0gICAgIyBjcmVhdGVJbnN0YW5jZSByZXF1aXJlcyB0aGVtIHRvIGJlIHB1YmxpYy4gIE9uZSBz
b2x1dGlvbiBpcyB0byBmcmllbmQgdGhlIGNvbnN0cnVjdG9yCi0gICAgIyBvZiB0aGUgdG9wLWxl
dmVsLWNsYXNzIHdpdGggZXZlcnkgb25lIG9mIGl0cyBjaGlsZCBjbGFzc2VzLCBidXQgdGhhdCBy
ZXF1aXJlcyBpbmZvcm1hdGlvbgotICAgICMgdGhpcyBzY3JpcHQgY3VycmVudGx5IGRvZXMgbm90
IGhhdmUsIHRob3VnaCBwb3NzaWJseSBjb3VsZCBkZXRlcm1pbmUuCi0gICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIg
ICAke2NsYXNzTmFtZX0oJHtpbXBsZW1lbnRhdGlvbkNsYXNzfSopO1xuIik7Ci0gICAgcHVzaChA
Q1BQSGVhZGVyQ29udGVudCwgIiAgIHZpcnR1YWwgfiR7Y2xhc3NOYW1lfSgpO1xuXG4iKTsKLQot
ICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICBwdXNoKEBDUFBI
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAke2NsYXNzTmFtZX0qIGNyZWF0ZUluc3RhbmNlKCR7
aW1wbGVtZW50YXRpb25DbGFzc30qKTtcblxuIik7Ci0KLSAgICBwdXNoKEBDUFBIZWFkZXJDb250
ZW50LCAiICAgIC8vIElVbmtub3duXG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShSRUZJ
SUQsIHZvaWQqKiBwcHZPYmplY3QpO1xuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwg
IiAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpIHsgcmV0dXJuICR7
cGFyZW50Q2xhc3NOYW1lfTo6QWRkUmVmKCk7IH1cbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCkgeyBy
ZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9OjpSZWxlYXNlKCk7IH1cblxuIik7Ci0KLQotICAgICMg
LS0gUGFyZW50IENsYXNzIEZvcndhcmRzIC0tCi0gICAgaWYgKEB7JGRhdGFOb2RlLT5wYXJlbnRz
fSkgewotICAgICAgICBteSAlYXR0cmlidXRlTmFtZVNldCA9IG1hcCB7KCRfLT5zaWduYXR1cmUt
Pm5hbWUsIDEpfSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc307Ci0gICAgICAgIG15ICVmdW5jdGlv
bk5hbWVTZXQgPSBtYXAgeygkXy0+c2lnbmF0dXJlLT5uYW1lLCAxKX0gQHskZGF0YU5vZGUtPmZ1
bmN0aW9uc307Ci0KLSAgICAgICAgbXkgQHBhcmVudExpc3RzID0gJGNvZGVHZW5lcmF0b3ItPkdl
dE1ldGhvZHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFOb2RlKTsKLSAgICAg
ICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIlxuIik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJHBh
cmVudEhhc2ggKEBwYXJlbnRMaXN0cykgewotCi0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJD
b250ZW50LCAiICAgIC8vICIgLiBHZXRJbnRlcmZhY2VOYW1lKCRwYXJlbnRIYXNoLT57J25hbWUn
fSkgLiAkREFTSEVTIC4gIlxuIik7Ci0KLSAgICAgICAgICAgIG15IEBhdHRyaWJ1dGVMaXN0ID0g
QHskcGFyZW50SGFzaC0+eydhdHRyaWJ1dGVzJ319OwotICAgICAgICAgICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgIiAgICAvLyBBdHRyaWJ1dGVzXG4iKTsKLSAgICAgICAgICAgIGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQGF0dHJpYnV0ZUxpc3QpIHsKLSAgICAgICAgICAgICAgICAjIERvbid0
IGZvcndhcmQgYW4gYXR0cmlidXRlIHRoYXQgdGhpcyBjbGFzcyByZWRlZmluZXMuCi0gICAgICAg
ICAgICAgICAgbmV4dCBpZiAkYXR0cmlidXRlTmFtZVNldHskYXR0cmlidXRlLT5zaWduYXR1cmUt
Pm5hbWV9OwotCi0gICAgICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJ
bkNQUEhlYWRlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwotCi0gICAgICAgICAgICAg
ICAgbXkgJWF0dHJpYnV0ZXMgPSBHZW5lcmF0ZUNQUEF0dHJpYnV0ZVNpZ25hdHVyZSgkYXR0cmli
dXRlLCAkY2xhc3NOYW1lLCB7ICJOZXdMaW5lcyIgPT4gMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkluZGVudCIgPT4gNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkluY2x1ZGVTZW1pQ29sb24iID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkZvcndhcmRlciIgPT4gJHBhcmVudENsYXNzTmFtZSB9KTsKLSAgICAgICAgICAgICAgICBw
dXNoKEBDUFBIZWFkZXJDb250ZW50LCB2YWx1ZXMoJWF0dHJpYnV0ZXMpKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgIyBBZGQgYXR0cmlidXRlIG5hbWVzIHRvIGF0dHJpYnV0ZSBuYW1l
cyBzZXQgaW4gY2FzZSBvdGhlciBhbmNlc3RvcnMgCi0gICAgICAgICAgICAjIGFsc28gZGVmaW5l
IHRoZW0uCi0gICAgICAgICAgICAkYXR0cmlidXRlTmFtZVNldHskXy0+c2lnbmF0dXJlLT5uYW1l
fSA9IDEgZm9yZWFjaCBAYXR0cmlidXRlTGlzdDsKLQotICAgICAgICAgICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgIlxuIik7Ci0KLSAgICAgICAgICAgIG15IEBmdW5jdGlvbkxpc3QgPSBAeyRw
YXJlbnRIYXNoLT57J2Z1bmN0aW9ucyd9fTsKLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNv
bnRlbnQsICIgICAgLy8gRnVuY3Rpb25zXG4iKTsKLSAgICAgICAgICAgIGZvcmVhY2ggbXkgJGZ1
bmN0aW9uIChAZnVuY3Rpb25MaXN0KSB7Ci0gICAgICAgICAgICAgICAgIyBEb24ndCBmb3J3YXJk
IGEgZnVuY3Rpb24gdGhhdCB0aGlzIGNsYXNzIHJlZGVmaW5lcy4KLSAgICAgICAgICAgICAgICBu
ZXh0IGlmICRmdW5jdGlvbk5hbWVTZXR7JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWV9OwotCi0g
ICAgICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcigk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICAgICAgQWRkRm9yd2FyZERl
Y2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcigkXy0+dHlwZSkgZm9yZWFjaCAoQHskZnVuY3Rp
b24tPnBhcmFtZXRlcnN9KTsKLQotICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9IEdl
bmVyYXRlQ1BQRnVuY3Rpb25TaWduYXR1cmUoJGZ1bmN0aW9uLCAkY2xhc3NOYW1lLCB7ICJOZXdM
aW5lcyIgPT4gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZW50IiA9PiA0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRlU2VtaUNvbG9uIiA9PiAw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4g
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1lIiA9PiAwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3J3YXJkZXIiID0+ICRwYXJlbnRDbGFz
c05hbWUgfSk7Ci0KLSAgICAgICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAkZnVu
Y3Rpb25TaWcpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgIyBBZGQgZnVuY3Rpb25zIG5h
bWVzIHRvIGZ1bmN0aW9ucyBuYW1lcyBzZXQgaW4gY2FzZSBvdGhlciBhbmNlc3RvcnMgCi0gICAg
ICAgICAgICAjIGFsc28gZGVmaW5lIHRoZW0uCi0gICAgICAgICAgICAkZnVuY3Rpb25OYW1lU2V0
eyRfLT5zaWduYXR1cmUtPm5hbWV9ID0gMSBmb3JlYWNoIEBmdW5jdGlvbkxpc3Q7Ci0KLSAgICAg
ICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgIyAtIEFkZGl0aW9uYWwgaW50ZXJmYWNlcyB0byBpbXBsZW1lbnQgLQotICAgIGZvcmVh
Y2ggbXkgJGludGVyZmFjZVRvSW1wbGVtZW50IChAYWRkaXRpb25hbEludGVyZmFjZURlZmluaXRp
b25zKSB7Ci0gICAgICAgIG15ICRJRExUeXBlT2ZJbnRlcmZhY2VUb0ltcGxlbWVudCA9ICRpbnRl
cmZhY2VUb0ltcGxlbWVudC0+bmFtZTsKLSAgICAgICAgbXkgJG5hbWVPZkludGVyZmFjZVRvSW1w
bGVtZW50ID0gR2V0SW50ZXJmYWNlTmFtZSgkSURMVHlwZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQp
OwotICAgICAgICBteSAkbnVtQXR0cmlidXRlc0luSW50ZXJmYWNlID0gQHskaW50ZXJmYWNlVG9J
bXBsZW1lbnQtPmF0dHJpYnV0ZXN9OwotICAgICAgICBteSAkbnVtRnVuY3Rpb25zSW5JbnRlcmZh
Y2UgPSBAeyRpbnRlcmZhY2VUb0ltcGxlbWVudC0+ZnVuY3Rpb25zfTsKLQotICAgICAgICBwdXNo
KEBDUFBIZWFkZXJDb250ZW50LCAiICAgIC8vICR7bmFtZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnR9
ICR7REFTSEVTfVxuXG4iKTsKLQotICAgICAgICAjIC0gQWRkIGF0dHJpYnV0ZSBnZXR0ZXJzL3Nl
dHRlcnMuCi0gICAgICAgIGlmICgkbnVtQXR0cmlidXRlc0luSW50ZXJmYWNlID4gMCkgewotICAg
ICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAvLyBBdHRyaWJ1dGVzXG5cbiIp
OwotICAgICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2VUb0ltcGxl
bWVudC0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRp
b25zRm9yVHlwZUluQ1BQSGVhZGVyKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0KLSAg
ICAgICAgICAgICAgICBteSAlYXR0cmlidXRlU2lncyA9IEdlbmVyYXRlQ1BQQXR0cmlidXRlU2ln
bmF0dXJlKCRhdHRyaWJ1dGUsICRjbGFzc05hbWUsIHsgIk5ld0xpbmVzIiA9PiAxLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZW50IiA9PiA0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxLZXl3b3JkIiA9PiAxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1lIiA9PiAwIH0pOwot
Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgdmFsdWVzKCVhdHRyaWJ1
dGVTaWdzKSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIlxuIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAjIC0gQWRkIGZ1bmN0aW9ucy4K
LSAgICAgICAgaWYgKCRudW1GdW5jdGlvbnNJbkludGVyZmFjZSA+IDApIHsKLSAgICAgICAgICAg
IHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8gRnVuY3Rpb25zXG5cbiIpOwotICAgICAg
ICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZVRvSW1wbGVtZW50LT5mdW5j
dGlvbnN9KSB7Ci0gICAgICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJ
bkNQUEhlYWRlcigkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICAgICAg
QWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcigkXy0+dHlwZSkgZm9yZWFj
aCAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KTsKLQotICAgICAgICAgICAgICAgIG15ICRmdW5j
dGlvblNpZyA9IEdlbmVyYXRlQ1BQRnVuY3Rpb25TaWduYXR1cmUoJGZ1bmN0aW9uLCAkY2xhc3NO
YW1lLCB7ICJOZXdMaW5lcyIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
SW5kZW50IiA9PiA0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRlU2Vt
aUNvbG9uIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFs
S2V5d29yZCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NO
YW1lIiA9PiAwIH0pOwotCi0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwg
JGZ1bmN0aW9uU2lnKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAi
XG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgkbnVtQXR0
cmlidXRlcyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDApIHsKLSAgICAgICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgIiAgICAvLyAke2ludGVyZmFjZU5hbWV9ICR7REFTSEVTfVxuXG4iKTsKLSAg
ICB9Ci0KLSAgICAjIC0gQWRkIGNvbnN0YW50cyBDT01JTkcgU09PTgotCi0gICAgIyAtIEFkZCBh
dHRyaWJ1dGUgZ2V0dGVycy9zZXR0ZXJzLgotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsK
LSAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAvLyBBdHRyaWJ1dGVzXG5cbiIp
OwotICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVz
fSkgewotICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRl
cigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwotCi0gICAgICAgICAgICBteSAlYXR0cmli
dXRlU2lncyA9IEdlbmVyYXRlQ1BQQXR0cmlidXRlU2lnbmF0dXJlKCRhdHRyaWJ1dGUsICRjbGFz
c05hbWUsIHsgIk5ld0xpbmVzIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJJbmRlbnQiID0+IDQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY2x1ZGVT
ZW1pQ29sb24iID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1
YWxLZXl3b3JkIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VDbGFz
c05hbWUiID0+IDAgfSk7Ci0KLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsIHZh
bHVlcyglYXR0cmlidXRlU2lncykpOwotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgIlxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIC0gQWRkIGZ1bmN0aW9ucy4KLSAg
ICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKLSAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgIiAgICAvLyBGdW5jdGlvbnNcblxuIik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xh
cmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcigkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0g
ICAgICAgICAgICBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyKCRfLT50
eXBlKSBmb3JlYWNoIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pOwotCi0gICAgICAgICAgICBt
eSAkZnVuY3Rpb25TaWcgPSBHZW5lcmF0ZUNQUEZ1bmN0aW9uU2lnbmF0dXJlKCRmdW5jdGlvbiwg
JGNsYXNzTmFtZSwgeyAiTmV3TGluZXMiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiSW5kZW50IiA9PiA0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY2x1ZGVTZW1p
Q29sb24iID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmlydHVhbEtleXdv
cmQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1lIiA9PiAw
IH0pOwotCi0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAkZnVuY3Rpb25TaWcp
OwotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIlxuIik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgICR7aW1wbGVtZW50YXRp
b25DbGFzc30qIGltcGwke2ltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlfSgpIGNv
bnN0O1xuIik7Ci0KLSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID09IDApIHsKLSAgICAg
ICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBIZWFkZXIoInd0Zi9SZWZQdHIiLCAxKTsKLSAgICAg
ICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIlxuIik7Ci0gICAgICAgIHB1c2goQENQUEhlYWRl
ckNvbnRlbnQsICIgICAgJHtpbXBsZW1lbnRhdGlvbkNsYXNzfSogaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgInByaXZhdGU6XG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICBS
ZWZQdHI8JHtpbXBsZW1lbnRhdGlvbkNsYXNzfT4gbV9pbXBsO1xuIik7Ci0gICAgfQotCi0gICAg
IyAtLSBFbmQgQ2xhc3MgLS0KLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAifTtcblxuIik7
Ci0KLSAgICAjIC0tIERlZmF1bHQgSW50ZXJmYWNlIENyZWF0b3IgLS0KLSAgICBwdXNoKEBDUFBI
ZWFkZXJDb250ZW50LCAiJHtpbnRlcmZhY2VOYW1lfSogdG8ke2ludGVyZmFjZU5hbWV9KCR7aW1w
bGVtZW50YXRpb25DbGFzc30qKTtcblxuIik7Ci0KLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50
LCAiI2VuZGlmIC8vICIgLiAkY2xhc3NOYW1lIC4gIl9oXG4iKTsKLX0KLQotCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0jICAgIENQUCBJbXBsZW1lbnRhdGlvbgotIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi1zdWIgR2VuZXJhdGVDUFBJbXBsZW1lbnRhdGlvbgotewotICAgIG15ICgkb2JqZWN0
LCAkZGF0YU5vZGUpID0gQF87Ci0KLSAgICBteSAkSURMVHlwZSA9ICRkYXRhTm9kZS0+bmFtZTsK
LSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzcyA9IElETFR5cGVUb0ltcGxlbWVudGF0aW9uVHlw
ZSgkSURMVHlwZSk7Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNl
ID0gU3RyaXBOYW1lc3BhY2UoJGltcGxlbWVudGF0aW9uQ2xhc3MpOwotICAgIG15ICRjbGFzc05h
bWUgPSBHZXRDbGFzc05hbWUoJElETFR5cGUpOwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gR2V0
SW50ZXJmYWNlTmFtZSgkSURMVHlwZSk7Ci0KLSAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0
UGFyZW50Q2xhc3MoJGRhdGFOb2RlKTsKLSAgICBteSAkaXNCYXNlQ2xhc3MgPSAoQHskZGF0YU5v
ZGUtPnBhcmVudHN9ID09IDApOwotCi0gICAgbXkgJHV1aWQgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJJbXBsZW1lbnRhdGlvblVVSUQifSB8fCBkaWUgIkFsbCBjbGFzc2VzIHJl
cXVpcmUgYW4gSW1wbGVtZW50YXRpb25VVUlEIGV4dGVuZGVkIGF0dHJpYnV0ZS4iOwotCi0gICAg
bXkgJG51bUF0dHJpYnV0ZXMgPSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc307Ci0gICAgbXkgJG51
bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9OwotCi0gICAgIyAtIEFkZCBkZWZh
dWx0IGhlYWRlciB0ZW1wbGF0ZQotICAgIEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRlciA9IEBsaWNl
bnNlVGVtcGxhdGU7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXIsICJcbiIpOwot
Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXIsICIjaW5jbHVkZSBcImNvbmZpZy5o
XCJcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uSGVhZGVyLCAiI2luY2x1ZGUgXCJX
ZWJLaXRETEwuaFwiXG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRlciwgIiNp
bmNsdWRlICIgLiAoJGNsYXNzTmFtZSBlcSAiR0VOX0RPTUltcGxlbWVudGF0aW9uIiA/ICJcIkdF
Tl9ET01ET01JbXBsZW1lbnRhdGlvbi5oXCIiIDogIlwiJHtjbGFzc05hbWV9LmhcIiIpIC4gIlxu
Iik7Ci0gICAgJENQUEltcGxlbWVudGF0aW9uRG9udEluY2x1ZGVzeyIke2NsYXNzTmFtZX0uaCJ9
ID0gMTsKLSAgICAkQ1BQSW1wbGVtZW50YXRpb25XZWJDb3JlSW5jbHVkZXN7IiR7aW1wbGVtZW50
YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9LmgifSA9IDE7Ci0KLSAgICAjIC0tIENvbnN0cnVj
dG9yIC0tCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiJHtjbGFzc05hbWV9
Ojoke2NsYXNzTmFtZX0oJHtpbXBsZW1lbnRhdGlvbkNsYXNzfSogaW1wbClcbiIpOwotICAgIGlm
ICgkaXNCYXNlQ2xhc3MpIHsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50
LCAiICAgIDogbV9pbXBsKGltcGwpXG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRp
b25Db250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVu
dCwgIiAgICBBU1NFUlRfQVJHKGltcGwsIGltcGwpO1xuIik7Ci0gICAgICAgIHB1c2goQENQUElt
cGxlbWVudGF0aW9uQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHVz
aChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIDogJHtwYXJlbnRDbGFzc05hbWV9KGlt
cGwpXG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAie1xuIik7
Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIn1cblxuIik7Ci0gICAg
fQotCi0gICAgIyAtLSBEZXN0cnVjdG9yIC0tCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25D
b250ZW50LCAiJHtjbGFzc05hbWV9Ojp+JHtjbGFzc05hbWV9KClcbiIpOwotICAgIHB1c2goQENQ
UEltcGxlbWVudGF0aW9uQ29udGVudCwgIntcbiIpOwotICAgIGlmICgkaXNCYXNlQ2xhc3MpIHsK
LSAgICAgICAgJENQUEltcGxlbWVudGF0aW9uSW5jbHVkZXN7IkRPTUNyZWF0ZUluc3RhbmNlLmgi
fSA9IDE7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICByZW1v
dmVET01XcmFwcGVyKGltcGwoKSk7XG4iKTsKLSAgICB9Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50
YXRpb25Db250ZW50LCAifVxuXG4iKTsKLQotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29u
dGVudCwgIiR7aW1wbGVtZW50YXRpb25DbGFzc30qICR7Y2xhc3NOYW1lfTo6aW1wbCR7aW1wbGVt
ZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2V9KCkgY29uc3RcbiIpOwotICAgIHB1c2goQENQ
UEltcGxlbWVudGF0aW9uQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0
aW9uQ29udGVudCwgIiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8JHtpbXBsZW1lbnRhdGlvbkNsYXNz
fSo+KGltcGwoKSk7XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ9
XG5cbiIpOwotCi0gICAgIyBCYXNlIGNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIGNyZWF0ZUlu
c3RhbmNlIG1ldGhvZCBleHRlcm5hbGx5LgotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30g
IT0gMCkgewotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIke2NsYXNz
TmFtZX0qICR7Y2xhc3NOYW1lfTo6Y3JlYXRlSW5zdGFuY2UoJHtpbXBsZW1lbnRhdGlvbkNsYXNz
fSogaW1wbClcbiIpOwotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ7
XG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIHJldHVy
biBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPigke3BhcmVudENsYXNzTmFtZX06OmNyZWF0ZUlu
c3RhbmNlKGltcGwpKTtcbiIpOwotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRl
bnQsICJ9XG4iKTsKLSAgICB9Ci0KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQs
ICIvLyBJVW5rbm93biAkREFTSEVTXG5cbiIpOwotCi0gICAgIyAtLSBRdWVyeUludGVyZmFjZSAt
LQotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIkhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgJHtjbGFzc05hbWV9OjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoq
IHBwdk9iamVjdClcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIntc
biIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICAqcHB2T2JqZWN0
ID0gMDtcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICBpZiAo
SXNFcXVhbEdVSUQocmlpZCwgSUlEXyR7aW50ZXJmYWNlTmFtZX0pKVxuIik7Ci0gICAgcHVzaChA
Q1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgICAgICAqcHB2T2JqZWN0ID0gcmVpbnRlcnBy
ZXRfY2FzdDwke2ludGVyZmFjZU5hbWV9Kj4odGhpcyk7XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBs
ZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwgX191dWlk
b2YoJHtjbGFzc05hbWV9KSkpXG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRl
bnQsICIgICAgICAgICpwcHZPYmplY3QgPSByZWludGVycHJldF9jYXN0PCR7Y2xhc3NOYW1lfSo+
KHRoaXMpO1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIGVs
c2VcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICAgICAgcmV0
dXJuICR7cGFyZW50Q2xhc3NOYW1lfTo6UXVlcnlJbnRlcmZhY2UocmlpZCwgcHB2T2JqZWN0KTtc
blxuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIEFkZFJlZigp
O1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIHJldHVybiBT
X09LO1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAifVxuXG4iKTsK
LQotICAgICMgLSBBZGRpdGlvbmFsIGludGVyZmFjZXMgdG8gaW1wbGVtZW50IC0KLSAgICBmb3Jl
YWNoIG15ICRpbnRlcmZhY2VUb0ltcGxlbWVudCAoQGFkZGl0aW9uYWxJbnRlcmZhY2VEZWZpbml0
aW9ucykgewotICAgICAgICBteSAkSURMVHlwZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQgPSAkaW50
ZXJmYWNlVG9JbXBsZW1lbnQtPm5hbWU7Ci0gICAgICAgIG15ICRuYW1lT2ZJbnRlcmZhY2VUb0lt
cGxlbWVudCA9IEdldEludGVyZmFjZU5hbWUoJElETFR5cGVPZkludGVyZmFjZVRvSW1wbGVtZW50
KTsKLSAgICAgICAgbXkgJG51bUF0dHJpYnV0ZXNJbkludGVyZmFjZSA9IEB7JGludGVyZmFjZVRv
SW1wbGVtZW50LT5hdHRyaWJ1dGVzfTsKLSAgICAgICAgbXkgJG51bUZ1bmN0aW9uc0luSW50ZXJm
YWNlID0gQHskaW50ZXJmYWNlVG9JbXBsZW1lbnQtPmZ1bmN0aW9uc307Ci0KLSAgICAgICAgcHVz
aChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgIC8vICR7bmFtZU9mSW50ZXJmYWNlVG9J
bXBsZW1lbnR9ICR7REFTSEVTfVxuXG4iKTsKLQotICAgICAgICBpZiAoJG51bUF0dHJpYnV0ZXNJ
bkludGVyZmFjZSA+IDApIHsKLSAgICAgICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29u
dGVudCwgIi8vIEF0dHJpYnV0ZXNcblxuIik7Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGludGVyZmFjZVRvSW1wbGVtZW50LT5hdHRyaWJ1dGVzfSkgewotICAgICAgICAg
ICAgICAgICMgRklYTUU6IERvIHRoaXMgaW4gb25lIHN0ZXAuCi0gICAgICAgICAgICAgICAgIyBG
SVhNRTogSW1wbGVtZW50IGV4Y2VwdGlvbiBoYW5kbGluZy4KLQotICAgICAgICAgICAgICAgIEFk
ZEluY2x1ZGVzRm9yVHlwZUluQ1BQSW1wbGVtZW50YXRpb24oJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlKTsKLQotICAgICAgICAgICAgICAgIG15ICVhdHRyaWJ1dGVzID0gR2VuZXJhdGVDUFBB
dHRyaWJ1dGUoJGF0dHJpYnV0ZSwgJGNsYXNzTmFtZSwgJGltcGxlbWVudGF0aW9uQ2xhc3MsICRJ
RExUeXBlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQs
IHZhbHVlcyglYXR0cmlidXRlcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgIyAtIEFkZCBmdW5jdGlvbnMuCi0gICAgICAgIGlmICgkbnVtRnVuY3Rpb25zSW5JbnRlcmZh
Y2UgPiAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIv
LyBGdW5jdGlvbnNcblxuIik7Ci0KLSAgICAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChA
eyRpbnRlcmZhY2VUb0ltcGxlbWVudC0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgICAgIG15
ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uID0gR2VuZXJhdGVDUFBGdW5jdGlvbigkZnVuY3Rpb24s
ICRjbGFzc05hbWUsICRpbXBsZW1lbnRhdGlvbkNsYXNzKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICRmdW5jdGlvbkltcGxlbWVudGF0aW9uKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1c2goQENQUEltcGxlbWVudGF0
aW9uQ29udGVudCwgIi8vICR7aW50ZXJmYWNlTmFtZX0gJERBU0hFU1xuXG4iKTsKLQotICAgICMg
LSBBZGQgYXR0cmlidXRlIGdldHRlcnMvc2V0dGVycy4KLSAgICBpZiAoJG51bUF0dHJpYnV0ZXMg
PiAwKSB7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIi8vIEF0dHJp
YnV0ZXNcblxuIik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUt
PmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICAjIEZJWE1FOiBkbyB0aGlzIGluIG9uZSBzdGVw
Ci0gICAgICAgICAgICBteSAkaGFzU2V0dGVyRXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5zZXR0
ZXJFeGNlcHRpb25zfTsKLSAgICAgICAgICAgIG15ICRoYXNHZXR0ZXJFeGNlcHRpb24gPSBAeyRh
dHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9OwotCi0gICAgICAgICAgICBBZGRJbmNsdWRlc0Zv
clR5cGVJbkNQUEltcGxlbWVudGF0aW9uKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0K
LSAgICAgICAgICAgIG15ICVhdHRyaWJ1dGVzID0gR2VuZXJhdGVDUFBBdHRyaWJ1dGUoJGF0dHJp
YnV0ZSwgJGNsYXNzTmFtZSwgJGltcGxlbWVudGF0aW9uQ2xhc3MsICRJRExUeXBlKTsKLSAgICAg
ICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgdmFsdWVzKCVhdHRyaWJ1dGVz
KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAjIC0gQWRkIGZ1bmN0aW9ucy4KLSAgICBpZiAo
JG51bUZ1bmN0aW9ucyA+IDApIHsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250
ZW50LCAiLy8gRnVuY3Rpb25zXG5cbiIpOwotCi0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uSW1w
bGVtZW50YXRpb24gPSBHZW5lcmF0ZUNQUEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGNsYXNzTmFtZSwg
JGltcGxlbWVudGF0aW9uQ2xhc3MpOwotICAgICAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRp
b25Db250ZW50LCAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbik7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICAjIC0gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgaW50ZXJmYWNlIGNyZWF0b3IuCi0g
ICAgIyBGSVhNRTogYWRkIGV4dGVuZGVkIGF0dHJpYnV0ZSB0byBhZGQgY3VzdG9tIGltcGxlbWVu
dGF0aW9uIGlmIG5lY2Vzc2FyeS4KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQs
ICIke2ludGVyZmFjZU5hbWV9KiB0byR7aW50ZXJmYWNlTmFtZX0oJHtpbXBsZW1lbnRhdGlvbkNs
YXNzfSogaW1wbClcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIntc
biIpOwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICByZXR1cm4gJHtj
bGFzc05hbWV9OjpjcmVhdGVJbnN0YW5jZShpbXBsKTtcbiIpOwotICAgIHB1c2goQENQUEltcGxl
bWVudGF0aW9uQ29udGVudCwgIn1cbiIpOwotfQotCi1zdWIgV3JpdGVEYXRhCi17Ci0gICAgbXkg
KCRvYmplY3QsICRuYW1lLCAkcHVyZUludGVyZmFjZSkgPSBAXzsKLQotICAgICMgLS0gSURMIC0t
Ci0gICAgbXkgJElETEZpbGVOYW1lID0gIiRvdXRwdXREaXIvSSIgLiAkVEVNUF9QUkVGSVggLiAi
RE9NIiAuICRuYW1lIC4gIi5pZGwiOwotICAgIHVubGluaygkSURMRmlsZU5hbWUpOwotCi0gICAg
IyBXcml0ZSB0byBvdXRwdXQgSURMLgotICAgIG9wZW4oT1VUUFVUSURMLCAiPiRJRExGaWxlTmFt
ZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRJRExGaWxlTmFtZSI7Ci0KLSAgICAjIEFk
ZCBoZWFkZXIKLSAgICBwcmludCBPVVRQVVRJREwgQElETEhlYWRlcjsKLQotICAgICMgQWRkIGZv
cndhcmQgZGVjbGFyYXRpb25zIGFuZCBpbW9ydHMKLSAgICBkZWxldGUgJElETEZvcndhcmREZWNs
YXJhdGlvbnN7a2V5cyglSURMRG9udEZvcndhcmREZWNsYXJlKX07Ci0gICAgZGVsZXRlICRJRExJ
bXBvcnRze2tleXMoJUlETERvbnRJbXBvcnQpfTsKLQotICAgIHByaW50IE9VVFBVVElETCBtYXAg
eyAiY3BwX3F1b3RlKFwiaW50ZXJmYWNlICRfO1wiKVxuIiB9IHNvcnQga2V5cyglSURMRm9yd2Fy
ZERlY2xhcmF0aW9ucyk7Ci0gICAgcHJpbnQgT1VUUFVUSURMICJcbiI7Ci0KLSAgICBwcmludCBP
VVRQVVRJREwgbWFwIHsgImludGVyZmFjZSAkXztcbiIgfSBzb3J0IGtleXMoJUlETEZvcndhcmRE
ZWNsYXJhdGlvbnMpOwotICAgIHByaW50IE9VVFBVVElETCAiXG4iOwotICAgIHByaW50IE9VVFBV
VElETCAiI2lmbmRlZiBET19OT19JTVBPUlRTXG4iOwotICAgIHByaW50IE9VVFBVVElETCBtYXAg
eyAoJF8gZXEgIklHRU5fRE9NSW1wbGVtZW50YXRpb24iKSA/ICJpbXBvcnQgXCJJR0VOX0RPTURP
TUltcGxlbWVudGF0aW9uLmlkbFwiO1xuIiA6ICJpbXBvcnQgXCIkXy5pZGxcIjtcbiIgfSBzb3J0
IGtleXMoJUlETEltcG9ydHMpOwotICAgIHByaW50IE9VVFBVVElETCAiI2VuZGlmXG4iOwotICAg
IHByaW50IE9VVFBVVElETCAiXG4iOwotCi0gICAgIyBBZGQgY29udGVudAotICAgIHByaW50IE9V
VFBVVElETCBASURMQ29udGVudDsKLQotICAgIGNsb3NlKE9VVFBVVElETCk7Ci0KLSAgICBASURM
SGVhZGVyID0gKCk7Ci0gICAgQElETENvbnRlbnQgPSAoKTsKLQotICAgIGlmICgkcHVyZUludGVy
ZmFjZSkgewotICAgICAgICBteSAkQ1BQSW50ZXJmYWNlSGVhZGVyRmlsZU5hbWUgPSAiJG91dHB1
dERpci8iIC4gJFRFTVBfUFJFRklYIC4gIkRPTSIgLiAkbmFtZSAuICIuaCI7Ci0gICAgICAgIHVu
bGluaygkQ1BQSW50ZXJmYWNlSGVhZGVyRmlsZU5hbWUpOwotCi0gICAgICAgIG9wZW4oT1VUUFVU
Q1BQSW50ZXJmYWNlSGVhZGVyLCAiPiRDUFBJbnRlcmZhY2VIZWFkZXJGaWxlTmFtZSIpIG9yIGRp
ZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRDUFBJbnRlcmZhY2VIZWFkZXJGaWxlTmFtZSI7Ci0KLSAg
ICAgICAgcHJpbnQgT1VUUFVUQ1BQSW50ZXJmYWNlSGVhZGVyIEBDUFBJbnRlcmZhY2VIZWFkZXI7
Ci0KLSAgICAgICAgY2xvc2UoT1VUUFVUQ1BQSW50ZXJmYWNlSGVhZGVyKTsKLQotICAgICAgICBA
Q1BQSW50ZXJmYWNlSGVhZGVyID0gKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJENQUEhl
YWRlckZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRURU1QX1BSRUZJWCAuICJET00iIC4gJG5h
bWUgLiAiLmgiOwotICAgICAgICB1bmxpbmsoJENQUEhlYWRlckZpbGVOYW1lKTsKLQotICAgICAg
ICAjIC0tIENQUCBIZWFkZXIgLS0KLSAgICAgICAgb3BlbihPVVRQVVRDUFBIZWFkZXIsICI+JENQ
UEhlYWRlckZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJENQUEhlYWRlckZp
bGVOYW1lIjsKLQotICAgICAgICAjIEFkZCBoZWFkZXIKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQ
SGVhZGVyIEBDUFBIZWFkZXJIZWFkZXI7Ci0KLSAgICAgICAgIyBBZGQgaW5jbHVkZXMKLSAgICAg
ICAgcHJpbnQgT1VUUFVUQ1BQSGVhZGVyIG1hcCB7ICgkXyBlcSAiR0VOX0RPTUltcGxlbWVudGF0
aW9uLmgiKSA/ICIjaW5jbHVkZSBcIkdFTl9ET01ET01JbXBsZW1lbnRhdGlvbi5oXCJcbiIgOiAi
I2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVDUFBIZWFkZXJJbmNsdWRlcyk7Ci0gICAg
ICAgIHByaW50IE9VVFBVVENQUEhlYWRlciBtYXAgeyAiI2luY2x1ZGUgPCRfPlxuIiB9IHNvcnQg
a2V5cyglQ1BQSGVhZGVySW5jbHVkZXNBbmdsZSk7Ci0KLSAgICAgICAgZm9yZWFjaCBteSAkZG9u
dERlY2xhcmUgKGtleXMoJUNQUEhlYWRlckRvbnRGb3J3YXJkRGVjbGFyYXRpb25zKSkgewotICAg
ICAgICAgICAgZGVsZXRlICRDUFBIZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zeyRkb250RGVjbGFy
ZX0gaWYgKCRDUFBIZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zeyRkb250RGVjbGFyZX0pOwotICAg
ICAgICB9Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEhlYWRlciAiXG4iOwotICAgICAgICBwcmlu
dCBPVVRQVVRDUFBIZWFkZXIgbWFwIHsgImludGVyZmFjZSAkXztcbiIgfSBzb3J0IGtleXMoJUNQ
UEhlYWRlckZvcndhcmREZWNsYXJhdGlvbnMpOwotICAgICAgICBwcmludCBPVVRQVVRDUFBIZWFk
ZXIgIlxuIjsKLQotICAgICAgICAjIEFkZCBjb250ZW50Ci0gICAgICAgIHByaW50IE9VVFBVVENQ
UEhlYWRlciBAQ1BQSGVhZGVyQ29udGVudDsKLQotICAgICAgICBjbG9zZShPVVRQVVRDUFBIZWFk
ZXIpOwotCi0gICAgICAgIEBDUFBIZWFkZXJIZWFkZXIgPSAoKTsKLSAgICAgICAgQENQUEhlYWRl
ckNvbnRlbnQgPSAoKTsKLQotCi0gICAgICAgICMgLS0gQ1BQIEltcGxlbWVudGF0aW9uIC0tCi0g
ICAgICAgIG15ICRDUFBJbXBsZW1lbnRhdGlvbkZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRU
RU1QX1BSRUZJWCAuICJET00iIC4gJG5hbWUgLiAiLmNwcCI7Ci0gICAgICAgIHVubGluaygkQ1BQ
SW1wbGVtZW50YXRpb25GaWxlTmFtZSk7Ci0KLSAgICAgICAgb3BlbihPVVRQVVRDUFBJbXBsZW1l
bnRhdGlvbiwgIj4kQ1BQSW1wbGVtZW50YXRpb25GaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiBmaWxlICRDUFBJbXBsZW1lbnRhdGlvbkZpbGVOYW1lIjsKLQotICAgICAgICAjIEFkZCBo
ZWFkZXIKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gQENQUEltcGxlbWVu
dGF0aW9uSGVhZGVyOwotICAgICAgICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiAiXG4i
OwotCi0gICAgICAgICMgQWRkIGluY2x1ZGVzCi0gICAgICAgIGZvcmVhY2ggbXkgJGRvbnRJbmNs
dWRlIChrZXlzKCVDUFBJbXBsZW1lbnRhdGlvbkRvbnRJbmNsdWRlcykpIHsKLSAgICAgICAgICAg
IGRlbGV0ZSAkQ1BQSW1wbGVtZW50YXRpb25JbmNsdWRlc3skZG9udEluY2x1ZGV9IGlmICgkQ1BQ
SW1wbGVtZW50YXRpb25JbmNsdWRlc3skZG9udEluY2x1ZGV9KTsKLSAgICAgICAgfQotICAgICAg
ICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiBtYXAgeyAoJF8gZXEgIkdFTl9ET01JbXBs
ZW1lbnRhdGlvbi5oIikgPyAiI2luY2x1ZGUgXCJHRU5fRE9NRE9NSW1wbGVtZW50YXRpb24uaFwi
XG4iIDogIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglQ1BQSW1wbGVtZW50YXRpb25J
bmNsdWRlcyk7Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uIG1hcCB7ICIj
aW5jbHVkZSA8JF8+XG4iIH0gc29ydCBrZXlzKCVDUFBJbXBsZW1lbnRhdGlvbkluY2x1ZGVzQW5n
bGUpOwotICAgICAgICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiAiXG4iOwotCi0gICAg
ICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uICIjcHJhZ21hIHdhcm5pbmcocHVzaCwg
MClcbiI7Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uIG1hcCB7ICIjaW5j
bHVkZSA8V2ViQ29yZS8kXz5cbiIgfSBzb3J0IGtleXMoJUNQUEltcGxlbWVudGF0aW9uV2ViQ29y
ZUluY2x1ZGVzKTsKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gIiNwcmFn
bWEgd2FybmluZyhwb3ApXG4iOwotCi0gICAgICAgICMgQWRkIGNvbnRlbnQKLSAgICAgICAgcHJp
bnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gQENQUEltcGxlbWVudGF0aW9uQ29udGVudDsKLQot
ICAgICAgICBjbG9zZShPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbik7Ci0KLSAgICAgICAgQENQUElt
cGxlbWVudGF0aW9uSGVhZGVyID0gKCk7Ci0gICAgICAgIEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRl
bnQgPSAoKTsKLSAgICB9Ci19Ci0KLTE7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5pZGwgYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwKaW5kZXgg
YmVmZTVhYy4uZjNhNWZjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbApAQCAtNjksMTEg
KzY5LDggQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgUmVjdCBnZXRSZWN0VmFsdWUoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAg
ICAgIFJHQkNvbG9yIGdldFJHQkNvbG9yVmFsdWUoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0jZW5kaWYKLQogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0F0dHIuaWRsIGIvV2ViQ29yZS9kb20vQXR0ci5pZGwKaW5kZXggYzUwZmMxZC4uNjY5ZDBmNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQXR0ci5pZGwKKysrIGIvV2ViQ29yZS9kb20vQXR0ci5p
ZGwKQEAgLTQ0LDkgKzQ0LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBpc0lkOwogCiAgICAgICAgIC8vIGV4dGVuc2lvbnMKLSNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7Ci0jZW5kaWYKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwgYi9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggNmY0ZGY4MC4uZTYxZGIwNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisrKyBiL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmlkbApAQCAtNDQsNyArNDQsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAg
ICAgLy8gRE9NSW1wbGVtZW50YXRpb25DU1MgaW50ZXJmYWNlIGZyb20gRE9NIExldmVsIDIgQ1NT
CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAg
W09sZFN0eWxlT2JqQ10gQ1NTU3R5bGVTaGVldCBjcmVhdGVDU1NTdHlsZVNoZWV0KGluIERPTVN0
cmluZyB0aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBtZWRpYSkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwpAQCAtNTIsNyArNTEsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEhU
TUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBIVE1MCiAKICAg
ICAgICAgSFRNTERvY3VtZW50IGNyZWF0ZUhUTUxEb2N1bWVudChpbiBET01TdHJpbmcgdGl0bGUp
OwotI2VuZGlmCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDUxZDBiZmUuLjYwYjJkODQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwKQEAgLTgxLDcgKzgxLDYgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGRvY3VtZW50VVJJOwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0Vf
Q09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEV2ZW50cyAoRG9j
dW1lbnRFdmVudHMgaW50ZXJmYWNlKQogCiAgICAgICAgIEV2ZW50ICAgICAgICAgICAgICBjcmVh
dGVFdmVudChpbiBET01TdHJpbmcgZXZlbnRUeXBlKQpAQCAtMTI5LDcgKzEyOCw2IEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFhQYXRoUmVzdWx0IGluUmVzdWx0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjZW5kaWYgLy8gRU5BQkxFX1hQQVRICi0jZW5kaWYgLy8gIWRlZmluZWQoTEFO
R1VBR0VfQ09NKQogCiAgICAgICAgIC8vIENvbW1vbiBleHRlbnNpb25zCiAKQEAgLTE3MSw5ICsx
NjksNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRWxl
bWVudCBib2R5CiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRp
b24pOwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MSGVhZEVsZW1lbnQgaGVhZDsKLSNlbmRpZgogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gaW1hZ2VzOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gYXBwbGV0czsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGxpbmtzOwpAQCAtMTk0LDkgKzE5MCw3IEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmlu
Z1RvPVVuZGVmaW5lZF0gRE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKICAgICAgICAgRWxlbWVudCAg
ICAgICAgICAgIGVsZW1lbnRGcm9tUG9pbnQoaW4gbG9uZyB4LCBpbiBsb25nIHkpOwotI2lmICFk
ZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICBSYW5nZSAgICAg
ICAgICAgICAgY2FyZXRSYW5nZUZyb21Qb2ludChpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0jZW5k
aWYKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKICNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKQEAgLTIwOSwxMSArMjAzLDkgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3Ry
aW5nVG89TnVsbF0gRE9NU3RyaW5nIHByZWZlcnJlZFN0eWxlc2hlZXRTZXQ7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdGVkU3R5bGVzaGVldFNldDsKIAotI2lmICFkZWZp
bmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogI2lmICFkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIENTU1N0eWxlRGVj
bGFyYXRpb24gY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwogI2VuZGlmCi0jZW5kaWYKIAog
I2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQpAQCAtMjMwLDExICsyMjIs
OSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFM
QU5HVUFHRV9DT00KICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdV
QUdFX09CSkVDVElWRV9DCiAgICAgICAgIFtWOEN1c3RvbV0gRE9NT2JqZWN0IGdldENTU0NhbnZh
c0NvbnRleHQoaW4gRE9NU3RyaW5nIGNvbnRleHRJZCwgaW4gRE9NU3RyaW5nIG5hbWUsIGluIGxv
bmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KTsKICNlbmRpZgotI2VuZGlmCiAKICAgICAgICAgLy8g
SFRNTCA1CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3Ry
aW5nIHRhZ25hbWUpOwpAQCAtMjUyLDcgKzI0Miw2IEBAIG1vZHVsZSBjb3JlIHsKICNlbmRpZgog
CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJ
VkVfQwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAg
ICAvLyBFdmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CkBAIC0zMjYsNyArMzE1LDYgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9udG91Y2hlbmQ7
CiAjZW5kaWYKICNlbmRpZgotI2VuZGlmCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRWxlbWVudC5pZGwgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRleCA1OWJmODZh
Li5mZTYyM2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9XZWJD
b3JlL2RvbS9FbGVtZW50LmlkbApAQCAtNjcsOSArNjcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCi0j
aWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwotI2VuZGlmCiAKICAgICAg
ICAgLy8gQ29tbW9uIGV4dGVuc2lvbnMKIApAQCAtMTEwLDcgKzEwOCw2IEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJpbmcgc2VsZWN0
b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gV2ViS2l0IGV4dGVuc2lv
biwgcGVuZGluZyBzcGVjaWZpY2F0aW9uLgogICAgICAgICBib29sZWFuIHdlYmtpdE1hdGNoZXNT
ZWxlY3RvcihpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CkBAIC0xMjEsNyArMTE4LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRWxlbWVudCBwcmV2aW91c0VsZW1lbnRTaWJsaW5nOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBuZXh0RWxlbWVudFNpYmxpbmc7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENvdW50OwotI2VuZGlm
CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJ
UFQKICAgICAgICAgLy8gQ1NTT00gVmlldyBNb2R1bGUgQVBJCkBAIC0xMzUsNyArMTMxLDYgQEAg
bW9kdWxlIGNvcmUgewogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8
fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9NIGF0dHJpYnV0ZXMK
ICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmFib3J0OwogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmx1cjsKQEAgLTIwOSw3
ICsyMDQsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKICNlbmRpZgogI2VuZGlmCi0jZW5kaWYKICAgICB9Owog
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudC5pZGwgYi9XZWJDb3JlL2RvbS9FdmVu
dC5pZGwKaW5kZXggNzViNmI1Zi4uZGJlODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50LmlkbApAQCAtNjEsOSArNjEsOCBAQCBtb2R1
bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAg
ZXZlbnRQaGFzZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAg
YnViYmxlczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgY2Fu
Y2VsYWJsZTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCAgICAgdGltZVN0YW1wOwotI2Vu
ZGlmCisKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbigpOwogICAg
ICAgICB2b2lkICAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQoKTsKICAgICAgICAgW09sZFN0
eWxlT2JqQ10gdm9pZCBpbml0RXZlbnQoaW4gRE9NU3RyaW5nIGV2ZW50VHlwZUFyZywgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1dlYkNvcmUvZG9tL05vZGUuaWRsCmluZGV4
IDQ1ZWExMzIuLjIyM2E1ZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuaWRsCisrKyBi
L1dlYkNvcmUvZG9tL05vZGUuaWRsCkBAIC0xMzUsNyArMTM1LDYgQEAgbW9kdWxlIGNvcmUgewog
I2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCiAKICNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0jaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIFtDdXN0b21dIHZv
aWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7
CkBAIC0xNDUsNyArMTQ0LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBib29sZWFuIGRpc3Bh
dGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRp
b24pOwogI2VuZGlmCi0jZW5kaWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIGIvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmlkbAppbmRleCA1NzhiMjJlLi5kYWQyNDNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCisrKyBiL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5pZGwKQEAgLTMyLDExICszMiw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGF0YQogICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAh
TEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIGludGVyZmFjZSBMaW5rU3R5bGUgZnJvbSBET00gTGV2
ZWwgMiBTdHlsZSBTaGVldHMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQg
c2hlZXQ7Ci0jZW5kaWYKLQogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKaW5k
ZXggYjJmMGM2NS4uMWQxMGMyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxl
bWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKQEAgLTMzLDcg
KzMzLDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0PXZsaW5rXSBET01TdHJpbmcgdkxpbms7CiAKICNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0jaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV2ZW50IGhh
bmRsZXIgYXR0cmlidXRlcwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uYmVmb3JldW5sb2FkOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uaGFzaGNoYW5nZTsKQEAgLTYyLDcgKzYxLDYgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVkbzsKICAgICAg
ICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnVuZG87CiAjZW5kaWYK
LSNlbmRpZgogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IGNi
OTM4M2QuLmE3ZTQwMGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMjcsOSAr
MjcsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgXSBIVE1MQnV0dG9uRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBm
b3JtOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGZv
cm1Ob1ZhbGlkYXRlOwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NP
TQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIFZhbGlkaXR5U3RhdGUgICAgICAgIHZhbGlk
aXR5OwotI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NLZXk7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgYXV0b2ZvY3VzOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxFbWJlZEVsZW1lbnQuaWRsCmluZGV4IDA1YzEwZGIuLjdlMWI1NGUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwKQEAgLTQ0LDE0ICs0NCwxMiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgd2lkdGg7CiAjZW5k
aWYKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogI2lmIGRl
ZmluZWQoRU5BQkxFX1NWRykgJiYgRU5BQkxFX1NWRwogI2lmICFkZWZpbmVkKExBTkdVQUdFX09C
SkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MgfHwgZGVmaW5lZChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAmJiBFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTCiAgICAg
ICAgIFtTVkdDaGVja1NlY3VyaXR5RG9jdW1lbnRdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50
KCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAjZW5kaWYKLSNl
bmRpZgogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCBj
NTVlNjA0Li4wNjViMzQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0y
NSw5ICsyNSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkz
NTczNzU4LTk2ZGItNDE1ZC05YmRjLWVlNzIzODYwNDA5NAogICAgIF0gSFRNTEZpZWxkU2V0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NP
TQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5Owot
I2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZh
bGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlk
YXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lRWxlbWVudC5pZGwKaW5kZXggZDAwNzZlYi4uY2FiMjM1YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmlkbApAQCAtMzgsNyArMzgsNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q2hlY2tGcmFtZVNlY3VyaXR5XSBEb2N1bWVudCAgICAgICAgY29udGVudERvY3VtZW50OwogCi0j
aWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV4
dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVdpbmRvdyBjb250ZW50V2lu
ZG93OwogCkBAIC00OCw3ICs0Nyw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAjZW5kaWYKLSNlbmRpZgogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIEN1c3RvbVNldHRlcl0gRE9N
U3RyaW5nICAgICAgIGxvY2F0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAg
ICAgICAgICAgIHdpZHRoOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCmluZGV4IDZh
YjFhOGIuLjA2Y2E1NGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKQEAgLTMw
LDcgKzMwLDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcm93czsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09C
SkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSNpZiAhZGVmaW5lZChMQU5HVUFH
RV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gRXZlbnQgaGFuZGxlciBhdHRyaWJ1
dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25iZWZvcmV1
bmxvYWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25oYXNo
Y2hhbmdlOwpAQCAtNTksNyArNTgsNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIC8vIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25yZWRvOwogICAgICAgICAvLyBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9udW5kbzsKICNlbmRpZgotI2VuZGlmCiAgICAg
fTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwKaW5kZXggZGFkODQxNi4uMmY0ZDFj
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCkBAIC00MSw3ICs0MSw2IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDaGVja0ZyYW1lU2VjdXJpdHldIERvY3VtZW50ICAgICAgICBj
b250ZW50RG9jdW1lbnQ7CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFH
RV9DT00KICAgICAgICAgLy8gRXh0ZW5zaW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NV2luZG93IGNvbnRlbnRXaW5kb3c7CiAKQEAgLTUxLDcgKzUwLDYgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKICNlbmRpZgotI2Vu
ZGlmCiAKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZDM1NWQ2OS4u
ZGE1ODRjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMjksOSArMjksNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
ZGVmYXVsdENoZWNrZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1l
bnQgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBmb3Jt
Tm9WYWxpZGF0ZTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00K
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKLSNl
bmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgYWNjZXB0OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNzS2V5OwogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247CkBAIC00
MiwxNCArNDAsMTAgQEAgbW9kdWxlIGh0bWwgewogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNU
KSAmJiBFTkFCTEVfREFUQUxJU1QKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVt
ZW50ICAgICBsaXN0OwogI2VuZGlmCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFO
R1VBR0VfQ09NCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBtYXg7Ci0jZW5kaWYKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICBtYXhMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00p
IHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIG1pbjsKLSNlbmRpZgogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVm
bGVjdF0gRE9NU3RyaW5nIHBhdHRlcm47CkBAIC0xMDYsOSArMTAwLDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVJMICAgICAgICAgICAgIGFic29sdXRlSW1h
Z2VVUkw7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdF
X0NPTQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7Ci0jZW5kaWYK
ICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsCmluZGV4IDk4ZGU4MDkuLmJmYzlm
NmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsCkBAIC0zNSwxMCArMzUsOCBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgICAgICB0YXJnZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogCi0jaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0
eWxlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0ICAgc2hlZXQ7Ci0jZW5k
aWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCiAgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lvbjoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaWRsCmluZGV4IGI1MWM1NjguLmEwZjMxYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmlkbApAQCAtNTEsMTQgKzUxLDEyIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8g
SW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
aGVja0ZyYW1lU2VjdXJpdHldIERvY3VtZW50ICAgICAgICBjb250ZW50RG9jdW1lbnQ7CiAKLSNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICNpZiBkZWZpbmVkKEVO
QUJMRV9TVkcpICYmIEVOQUJMRV9TVkcKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DIHx8IGRlZmluZWQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJiYgRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUwogICAgICAgICBbU1ZH
Q2hlY2tTZWN1cml0eURvY3VtZW50XSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlmCi0jZW5kaWYKIAog
I2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lvbjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCmluZGV4IGFlNDc4OTYuLjRiYzEyMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmlkbApAQCAtNDEsOSArNDEsNyBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0jaWYgIWRlZmluZWQoTEFO
R1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBW
YWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7Ci0jZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4g
ICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFN0eWxlRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGwKaW5k
ZXggYTFiODZmOC4uZWQ4MzE5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVs
ZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbApAQCAtMjks
MTAgKzI5LDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgbWVkaWE7CiAgICAgICAgIGF0dHJp
YnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0eXBl
OwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAg
IC8vIERPTSBMZXZlbCAyIFN0eWxlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNo
ZWV0IHNoZWV0OwotI2VuZGlmCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaWRsCmluZGV4IDEwN2ExZmUuLjFhNDU1YjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5pZGwKQEAgLTI3LDkgKzI3LDcgQEAgbW9kdWxlIGh0bWwgewogICAgIF0gSFRNTFRleHRB
cmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIGRlZmF1bHRWYWx1
ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3Jt
OwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgIFZhbGlkaXR5U3RhdGUgICAgICAgIHZhbGlkaXR5OwotI2VuZGlm
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NLZXk7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgbG9uZyAgICAgICAgICAgICAgICAgY29sczsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
ICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
Q2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYzIxYTU3ZC4uODE3OGU0MCAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIENPTSBjb2RlIGdlbmVyYXRpb24gZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg1NAorCisgICAgICAgICogV2ViS2l0LnZj
cHJvai9EZXJpdmVkU291cmNlcy5tYWtlOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdC52Y3By
b2ovYnVpbGQtZ2VuZXJhdGVkLWZpbGVzLnNoOiBSZW1vdmVkLgorCiAyMDA5LTEyLTIxICBBZGFt
IFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbm9uLUFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovRGVyaXZlZFNv
dXJjZXMubWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM2NDhhMC4uMDAwMDAw
MAotLS0gYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
L2Rldi9udWxsCkBAIC0xLDE2MSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMg
YXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotIyAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBwdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotIyAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAotIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSMgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotIyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSMg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLVBSRUZJ
WCA9IElHRU5fRE9NCi0KLVdFQktJVF9JREwgPSAkKFdFQktJVCkvSW50ZXJmYWNlcy9XZWJLaXQu
aWRsCi0KLUhBTkRfV1JJVFRFTl9JTlRFUkZBQ0VTID0gJChmaWx0ZXItb3V0ICQoV0VCS0lUX0lE
TCksICQod2lsZGNhcmQgJChXRUJLSVQpL0ludGVyZmFjZXMvKi5pZGwpKQotCi1HRU5FUkFURURf
SU5URVJGQUNFUyA9IFwKLSAgICAkKFBSRUZJWClOb2RlLmlkbCBcCi0gICAgJChQUkVGSVgpQXR0
ci5pZGwgXAotICAgICQoUFJFRklYKU5vZGVMaXN0LmlkbCBcCi0gICAgJChQUkVGSVgpRWxlbWVu
dC5pZGwgXAotICAgICQoUFJFRklYKURvY3VtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpQ2hhcmFj
dGVyRGF0YS5pZGwgXAotICAgICQoUFJFRklYKUNEQVRBU2VjdGlvbi5pZGwgXAotICAgICQoUFJF
RklYKUNvbW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClUZXh0LmlkbCBcCi0gICAgJChQUkVGSVgp
RG9jdW1lbnRGcmFnbWVudC5pZGwgXAotICAgICQoUFJFRklYKURvY3VtZW50VHlwZS5pZGwgXAot
ICAgICQoUFJFRklYKURPTUltcGxlbWVudGF0aW9uLmlkbCBcCi0gICAgJChQUkVGSVgpRW50aXR5
LmlkbCBcCi0gICAgJChQUkVGSVgpRW50aXR5UmVmZXJlbmNlLmlkbCBcCi0gICAgJChQUkVGSVgp
TmFtZWROb2RlTWFwLmlkbCBcCi0gICAgJChQUkVGSVgpTm90YXRpb24uaWRsIFwKLSAgICAkKFBS
RUZJWClQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKLSAgICBcCi0gICAgJChQUkVGSVgpSFRN
TEFuY2hvckVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQXBwbGV0RWxlbWVudC5pZGwg
XAotICAgICQoUFJFRklYKUhUTUxBcmVhRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxC
UkVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQmFzZUVsZW1lbnQuaWRsIFwKLSAgICAk
KFBSRUZJWClIVE1MQmFzZUZvbnRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEJvZHlFbGVtZW50LmlkbCBcCi0g
ICAgJChQUkVGSVgpSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQ29s
bGVjdGlvbi5pZGwgXAotICAgICQoUFJFRklYKUhUTUxETGlzdEVsZW1lbnQuaWRsIFwKLSAgICAk
KFBSRUZJWClIVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxEaXZF
bGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTERvY3VtZW50LmlkbCBcCi0gICAgJChQUkVG
SVgpSFRNTEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRW1iZWRFbGVtZW50LmlkbCBc
Ci0gICAgJChQUkVGSVgpSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhU
TUxGb250RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxGb3JtRWxlbWVudC5pZGwgXAot
ICAgICQoUFJFRklYKUhUTUxGcmFtZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRnJh
bWVTZXRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEhSRWxlbWVudC5pZGwgXAotICAg
ICQoUFJFRklYKUhUTUxIZWFkRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxIZWFkaW5n
RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxIdG1sRWxlbWVudC5pZGwgXAotICAgICQo
UFJFRklYKUhUTUxJRnJhbWVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEltYWdlRWxl
bWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxJbnB1dEVsZW1lbnQuaWRsIFwKLSAgICAkKFBS
RUZJWClIVE1MSXNJbmRleEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTElFbGVtZW50
LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTExhYmVsRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklY
KUhUTUxMZWdlbmRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTExpbmtFbGVtZW50Lmlk
bCBcCi0gICAgJChQUkVGSVgpSFRNTE1hcEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1M
TWFycXVlZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTWVudUVsZW1lbnQuaWRsIFwK
LSAgICAkKFBSRUZJWClIVE1MTWV0YUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTW9k
RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxPTGlzdEVsZW1lbnQuaWRsIFwKLSAgICAk
KFBSRUZJWClIVE1MT2JqZWN0RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxPcHRHcm91
cEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MT3B0aW9uRWxlbWVudC5pZGwgXAotICAg
ICQoUFJFRklYKUhUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwgXAotICAgICQoUFJFRklYKUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFBhcmFtRWxlbWVudC5pZGwg
XAotICAgICQoUFJFRklYKUhUTUxQcmVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFF1
b3RlRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxTY3JpcHRFbGVtZW50LmlkbCBcCi0g
ICAgJChQUkVGSVgpSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MU3R5
bGVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRs
IFwKLSAgICAkKFBSRUZJWClIVE1MVGFibGVDZWxsRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklY
KUhUTUxUYWJsZUNvbEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MVGFibGVFbGVtZW50
LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFRhYmxlUm93RWxlbWVudC5pZGwgXAotICAgICQoUFJF
RklYKUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxUaXRsZUVsZW1lbnQuaWRsIFwKLSAg
ICAkKFBSRUZJWClIVE1MVUxpc3RFbGVtZW50LmlkbCBcCi0gICAgXAotICAgICQoUFJFRklYKUNT
U0NoYXJzZXRSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTRm9udEZhY2VSdWxlLmlkbCBcCi0g
ICAgJChQUkVGSVgpQ1NTSW1wb3J0UnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU01lZGlhUnVs
ZS5pZGwgXAotICAgICQoUFJFRklYKUNTU1BhZ2VSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NT
UHJpbWl0aXZlVmFsdWUuaWRsIFwKLSAgICAkKFBSRUZJWClDU1NSdWxlLmlkbCBcCi0gICAgJChQ
UkVGSVgpQ1NTUnVsZUxpc3QuaWRsIFwKLSAgICAkKFBSRUZJWClDU1NTdHlsZURlY2xhcmF0aW9u
LmlkbCBcCi0gICAgJChQUkVGSVgpQ1NTU3R5bGVSdWxlLmlkbCBcCi0gICAgJChQUkVGSVgpQ1NT
U3R5bGVTaGVldC5pZGwgXAotICAgICQoUFJFRklYKUNTU1Vua25vd25SdWxlLmlkbCBcCi0gICAg
JChQUkVGSVgpQ1NTVmFsdWUuaWRsIFwKLSAgICAkKFBSRUZJWClDU1NWYWx1ZUxpc3QuaWRsIFwK
LSAgICAkKFBSRUZJWClDb3VudGVyLmlkbCBcCi0gICAgJChQUkVGSVgpTWVkaWFMaXN0LmlkbCBc
Ci0gICAgJChQUkVGSVgpUmVjdC5pZGwgXAotICAgICQoUFJFRklYKVN0eWxlU2hlZXQuaWRsIFwK
LSAgICAkKFBSRUZJWClTdHlsZVNoZWV0TGlzdC5pZGwgXAotICAgIFwKLSAgICAkKFBSRUZJWClF
dmVudC5pZGwgXAotICAgICQoUFJFRklYKUV2ZW50VGFyZ2V0LmlkbCBcCi0gICAgJChQUkVGSVgp
RXZlbnRMaXN0ZW5lci5pZGwgXAotIwotCi0uUEhPTlkgOiBhbGwKLWFsbCA6IFwKLSAgICAkKEdF
TkVSQVRFRF9JTlRFUkZBQ0VTKSBcCi0gICAgJChXRUJLSVRfSURMKSBcCi0jCi0KLSMgJChQUkVG
SVgpQ2FudmFzR3JhZGllbnQuaWRsIFwKLSMgJChQUkVGSVgpQ2FudmFzUGF0dGVybi5pZGwgXAot
IyAkKFBSRUZJWClDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKLSMgJChQUkVGSVgpSFRN
TENhbnZhc0VsZW1lbnQuaWRsIFwKLSMgJChQUkVGSVgpUkdCQ29sb3IuaWRsIFwKLQotQ09NX0JJ
TkRJTkdTX1NDUklQVFMgPSBcCi0gICAgJChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUlu
dGVyZmFjZXMvQ29kZUdlbmVyYXRvci5wbSBcCi0gICAgJChXRUJLSVRfT1VUUFVUKS9vYmovV2Vi
S2l0L0RPTUludGVyZmFjZXMvQ29kZUdlbmVyYXRvckNPTS5wbSBcCi0gICAgJChXRUJLSVRfT1VU
UFVUKS9vYmovV2ViS2l0L0RPTUludGVyZmFjZXMvSURMUGFyc2VyLnBtIFwKLSAgICAkKFdFQktJ
VF9PVVRQVVQpL29iai9XZWJLaXQvRE9NSW50ZXJmYWNlcy9JRExTdHJ1Y3R1cmUucG0gXAotICAg
ICQoV0VCS0lUX09VVFBVVCkvb2JqL1dlYktpdC9ET01JbnRlcmZhY2VzL2dlbmVyYXRlLWJpbmRp
bmdzLnBsIFwKLSMKLQotJChQUkVGSVgpJS5pZGwgOiAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJL
aXQvRE9NSW50ZXJmYWNlcy8lLmlkbCAkKENPTV9CSU5ESU5HU19TQ1JJUFRTKQotCXBlcmwgLUkg
JChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUludGVyZmFjZXMvICQoV0VCS0lUX09VVFBV
VCkvb2JqL1dlYktpdC9ET01JbnRlcmZhY2VzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5l
cyAiJChGRUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0NPTSIgLS1nZW5lcmF0b3IgQ09NIC0taW5j
bHVkZSAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJLaXQvRE9NSW50ZXJmYWNlcy8gLS1vdXRwdXRk
aXIgLiAkPAotCi0kKFdFQktJVF9JREwpIDogJChIQU5EX1dSSVRURU5fSU5URVJGQUNFUykgJChH
RU5FUkFURURfSU5URVJGQUNFUykKLQl0b3VjaCAkQApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaCBiL1dlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9idWlsZC1nZW5lcmF0ZWQtZmlsZXMuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFjMjZmZDIuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL2J1
aWxkLWdlbmVyYXRlZC1maWxlcy5zaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLSMh
L3Vzci9iaW4vYmFzaAotCi0jIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMK
LSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uIAotIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBw
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotIyAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAot
IyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLiAKLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLU5VTUNQVVBBVEg9Ii4uLy4u
Ly4uL1dlYktpdFRvb2xzL1NjcmlwdHMvbnVtLWNwdXMiCi1pZiBbIC14ICROVU1DUFVQQVRIIF07
IHRoZW4KLSAgICBOVU1DUFVTPWAkTlVNQ1BVUEFUSGAKLWVsc2UKLSAgICBOVU1DUFVTPTEKLWZp
Ci0KLVhTUkNST09UPSJgcHdkYC8uLiIKLVhTUkNST09UPWByZWFscGF0aCAiJFhTUkNST09UImAK
LSMgRG8gYSBsaXR0bGUgZGFuY2UgdG8gZ2V0IHRoZSBwYXRoIGludG8gOC4zIGZvcm0gdG8gbWFr
ZSBpdCBzYWZlIGZvciBnbnUgbWFrZQotIyBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTgxNzMKLVhTUkNST09UPWBjeWdwYXRoIC1tIC1zICIkWFNSQ1JPT1Qi
YAotWFNSQ1JPT1Q9YGN5Z3BhdGggLXUgIiRYU1JDUk9PVCJgCi1leHBvcnQgWFNSQ1JPT1QKLWV4
cG9ydCBTT1VSQ0VfUk9PVD0kWFNSQ1JPT1QKLQotWERTVFJPT1Q9IiQxIgotZXhwb3J0IFhEU1RS
T09UCi0jIERvIGEgbGl0dGxlIGRhbmNlIHRvIGdldCB0aGUgcGF0aCBpbnRvIDguMyBmb3JtIHRv
IG1ha2UgaXQgc2FmZSBmb3IgZ251IG1ha2UKLSMgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4u
b3JnL3Nob3dfYnVnLmNnaT9pZD04MTczCi1YRFNUUk9PVD1gY3lncGF0aCAtbSAtcyAiJFhEU1RS
T09UImAKLVhEU1RST09UPWBjeWdwYXRoIC11ICIkWERTVFJPT1QiYAotZXhwb3J0IFhEU1RST09U
Ci0KLWV4cG9ydCBCVUlMVF9QUk9EVUNUU19ESVI9IiRYRFNUUk9PVC9vYmovV2ViS2l0IgotCi1t
a2RpciAtcCAiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzIgotY2QgIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcyIKLQotZXhwb3J0IFdFQktJVD0kWFNSQ1JP
T1QKLWV4cG9ydCBXRUJLSVRfT1VUUFVUPSRYRFNUUk9PVAotCi1leHBvcnQgRkVBVFVSRV9ERUZJ
TkVTPSJFTkFCTEVfWFBBVEggRU5BQkxFX1NWRyIKLW1ha2UgLWYgIiRXRUJLSVQvV2ViS2l0LnZj
cHJvai9EZXJpdmVkU291cmNlcy5tYWtlIiAtaiAke05VTUNQVVN9IHx8IGV4aXQgMQotLSAKMS42
LjMuMwoK
</data>
<flag name="review"
          id="27401"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45825</attachid>
            <date>2010-01-04 13:27:09 -0800</date>
            <delta_ts>2010-01-05 14:11:44 -0800</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>0001-remove-com-3.patch</filename>
            <type>text/plain</type>
            <size>150289</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBkYmVhZGYzMzQxM2VlMmQ1ZjdlYjc0YTk1ZDBhN2ZiOGQzMDgzYTVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDUgSmFuIDIwMTAgMDU6NDM6NDQgKzA5MDAKU3ViamVjdDogW1BBVENIXSByZW1vdmUt
Y29tLTMKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAxMTcgKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ09N
LnBtICAgICAgfCAxMzE5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogV2ViQ29yZS9jc3MvQ1NTQ2hh
cnNldFJ1bGUuaWRsICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlUnVsZS5pZGwgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2Nz
cy9DU1NJbXBvcnRSdWxlLmlkbCAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29y
ZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdl
YkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmlkbCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICst
CiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwgICAgICAgICAgICAgICAgIHwgICAg
OCArLQogV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDQgKy0KIFdlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmlkbCAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICA0ICstCiBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCAgICAgICAg
ICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsICAgICAg
ICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiAtCiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmlkbCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvY3NzL0NvdW50ZXIu
aWRsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2Nzcy9NZWRp
YUxpc3QuaWRsICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9jc3Mv
UkdCQ29sb3IuaWRsICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUv
Y3NzL1JlY3QuaWRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0LmlkbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQog
V2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
Ky0KIFdlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwgICAgICAgICAgICAgfCAg
ICA1ICstCiBXZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbCAgICAgICAgICAg
IHwgICAgNCArLQogV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsICAgICAg
ICAgICB8ICAgIDIgLQogV2ViQ29yZS9kb20vQXR0ci5pZGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDYgKy0KIFdlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5pZGwgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbCAgICAg
ICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9kb20vQ29tbWVudC5pZGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmlkbCAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArLQogV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50VHlwZS5pZGwgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29y
ZS9kb20vRW50aXR5LmlkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdl
YkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwgICAgICAgICAgICAgICAgICAgfCAgICA1ICst
CiBXZWJDb3JlL2RvbS9FdmVudC5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NyArLQogV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwgICAgICAgICAgICAgICAgICAgICB8
ICAgIDMgKy0KIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbCAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAxIC0KIFdlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2RvbS9Ob2RlLmlkbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvZG9tL05vdGF0aW9uLmlkbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaWRsICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9kb20vVGV4dC5pZGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuaWRsICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9odG1s
L0hUTUxBcmVhRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNSArLQog
V2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsICAgICAgICAgICAgICB8ICAgIDUg
Ky0KIFdlYkNvcmUvaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1lbnQuaWRsICAgICAgICAgICAgfCAg
ICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAg
IHwgICAgNyArLQogV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCAgICAgICAgICAg
ICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgICAgICAg
ICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsICAgICAg
ICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRs
ICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxl
bWVudC5pZGwgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1l
bnQuaWRsICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5pZGwgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNv
cmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBX
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgNCAr
LQogV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICB8ICAg
IDcgKy0KIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbCAgICAgICAgICAgICAg
fCAgICA2ICstCiBXZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5pZGwgICAgICAgICAgICAgICAg
ICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5pZGwgICAgICAgICAg
ICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuaWRsICAg
ICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmlkbCAg
ICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmlkbCAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmlkbCAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgIHwgICAxMyArLQogV2ViQ29yZS9odG1sL0hUTUxJ
c0luZGV4RWxlbWVudC5pZGwgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9I
VE1MTElFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsICAgICAgICAgICAgICAgICAgfCAgICA3ICst
CiBXZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICAgIHwgICAg
NSArLQogV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwgICAgICAgICAgICAgICB8
ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaWRsICAgICAgICAgICAgICAg
ICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbCAgICAgICAgICAg
ICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmlkbCAgICAgICAg
ICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmlkbCAg
ICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aWRsICAgICAgICAgICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVs
ZW1lbnQuaWRsICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmlkbCAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9odG1sL0hU
TUxQYXJhZ3JhcGhFbGVtZW50LmlkbCAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRt
bC9IVE1MUGFyYW1FbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3Jl
L2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2Vi
Q29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICB8ICAgIDUgKy0K
IFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgfCAgICA1
ICstCiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsICAgICAgICAgICAgICAgIHwg
ICAgNiArLQogV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaWRsICAgICAgICAgICAgICAg
ICB8ICAgIDcgKy0KIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5pZGwgICAg
ICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaWRsICAg
ICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRs
ICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50Lmlk
bCAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5pZGwgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmlkbCAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmlkbCAgICAgICAgICAgICAgfCAgICA3ICstCiBXZWJDb3JlL2h0bWwvSFRN
TFRpdGxlRWxlbWVudC5pZGwgICAgICAgICAgICAgICAgIHwgICAgNSArLQogV2ViQ29yZS9odG1s
L0hUTUxVTGlzdEVsZW1lbnQuaWRsICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYktpdC93
aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIFdlYktp
dC93aW4vV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgfCAgMTYxIC0tLQog
V2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL2J1aWxkLWdlbmVyYXRlZC1maWxlcy5zaCB8ICAgNjIg
LQogMTA4IGZpbGVzIGNoYW5nZWQsIDIyOCBpbnNlcnRpb25zKCspLCAxOTc4IGRlbGV0aW9ucygt
KQogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yQ09NLnBtCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvd2luL1dlYktpdC52
Y3Byb2ovYnVpbGQtZ2VuZXJhdGVkLWZpbGVzLnNoCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhM2EwMjVlLi4wZDMxMDgyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyMCBAQAorMjAxMC0wMS0wNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIENP
TSBjb2RlIGdlbmVyYXRpb24gc3R1ZmYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjg1NAorCisgICAgICAgIFJlbW92ZSB0aGUgZm9sbG93aW5nczoK
KyAgICAgICAgLSBDb2RlR2VlbnJhdG9yQ09NLnBtLCBDT00gY29kZSBnZW5lcmF0b3IsCisgICAg
ICAgIC0gIiNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00iIGluIElE
TCBmaWxlcywgYW5kCisgICAgICAgIC0gVVVJRCBhdHRyaWJ1dGVzIGluIElETCBmaWxlcy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNPTS5wbTogUmVtb3ZlZC4K
KyAgICAgICAgKiBjc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NGb250
RmFjZVJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmlkbDoKKyAgICAgICAg
KiBjc3MvQ1NTTWVkaWFSdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUGFnZVJ1bGUuaWRsOgor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGw6CisgICAgICAgICogY3NzL0NTU1J1
bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NSdWxlTGlzdC5pZGw6CisgICAgICAgICogY3NzL0NT
U1N0eWxlRGVjbGFyYXRpb24uaWRsOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuaWRsOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVW5rbm93
blJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5pZGw6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlTGlzdC5pZGw6CisgICAgICAgICogY3NzL0NvdW50ZXIuaWRsOgorICAgICAgICAqIGNz
cy9NZWRpYUxpc3QuaWRsOgorICAgICAgICAqIGNzcy9SR0JDb2xvci5pZGw6CisgICAgICAgICog
Y3NzL1JlY3QuaWRsOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0LmlkbDoKKyAgICAgICAgKiBj
c3MvU3R5bGVTaGVldExpc3QuaWRsOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaWRsOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbDoKKyAgICAg
ICAgKiBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsOgorICAgICAgICAqIGRvbS9BdHRy
LmlkbDoKKyAgICAgICAgKiBkb20vQ0RBVEFTZWN0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vQ2hh
cmFjdGVyRGF0YS5pZGw6CisgICAgICAgICogZG9tL0NvbW1lbnQuaWRsOgorICAgICAgICAqIGRv
bS9ET01JbXBsZW1lbnRhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50
VHlwZS5pZGw6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9FbnRp
dHkuaWRsOgorICAgICAgICAqIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRsOgorICAgICAgICAqIGRv
bS9FdmVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaWRsOgorICAgICAgICAq
IGRvbS9FdmVudFRhcmdldC5pZGw6CisgICAgICAgICogZG9tL05hbWVkTm9kZU1hcC5pZGw6Cisg
ICAgICAgICogZG9tL05vZGUuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5pZGw6CisgICAg
ICAgICogZG9tL05vdGF0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmlkbDoKKyAgICAgICAgKiBkb20vVGV4dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGw6Cisg
ICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJS
RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQmFzZUVsZW1lbnQuaWRsOgorICAgICAg
ICAqIGh0bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxDYW52YXNFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRN
TERpcmVjdG9yeUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTERpdkVsZW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsOgorICAgICAg
ICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRm9u
dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSFJFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxIZWFkRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSGVhZGlu
Z0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEh0bWxFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFn
ZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAg
ICAgICogaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExJ
RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5r
RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lbnVF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MTW9kRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MT0xpc3RFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxQYXJhbUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFByZUVsZW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGw6CisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRsOgor
ICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1M
VGFibGVSb3dFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsOgorICAgICAg
ICAqIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVUxpc3RF
bGVtZW50LmlkbDoKKwogMjAxMC0wMS0wNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQsIHJldmVydCByNTI3NDUgYW5kIHI1Mjc0NiBv
biBiZWhhbGYgb2YgTmlrb2xhcyBaaW1tZXJtYW5uLCBhcyBkaXNjdXNzZWQgb24gSVJDLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDT00ucG0gYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNPTS5wbQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTk4Mzc5Yi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckNPTS5wbQorKysgL2Rldi9udWxsCkBAIC0xLDEzMTkgKzAs
MCBAQAotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAwNiBBbmRlcnMgQ2FybHNzb24g
PGFuZGVyc2NhQG1hYy5jb20+Ci0jIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBTYW11ZWwgV2Vp
bmlnIDxzYW1Ad2Via2l0Lm9yZz4KLSMgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3Vy
eWFrb3YgPGFwQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSMgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSMgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0j
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSMKLSMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0jIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIwotIyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0jIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0jIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCi0KLXBhY2thZ2UgQ29kZUdlbmVyYXRvckNPTTsKLQotdXNlIEZpbGU6OnN0YXQ7Ci0KLSMg
R2xvYmFsIFZhcmlhYmxlcwotbXkgJG1vZHVsZSA9ICIiOwotbXkgJG91dHB1dERpciA9ICIiOwot
Ci1teSBASURMSGVhZGVyID0gKCk7Ci1teSBASURMQ29udGVudCA9ICgpOwotbXkgJUlETEluY2x1
ZGVzID0gKCk7Ci1teSAlSURMRm9yd2FyZERlY2xhcmF0aW9ucyA9ICgpOwotbXkgJUlETERvbnRG
b3J3YXJkRGVjbGFyZSA9ICgpOwotbXkgJUlETEltcG9ydHMgPSAoKTsKLW15ICVJRExEb250SW1w
b3J0ID0gKCk7Ci0KLW15IEBDUFBJbnRlcmZhY2VIZWFkZXIgPSAoKTsKLQotbXkgQENQUEhlYWRl
ckhlYWRlciA9ICgpOwotbXkgQENQUEhlYWRlckNvbnRlbnQgPSAoKTsKLW15ICVDUFBIZWFkZXJJ
bmNsdWRlcyA9ICgpOwotbXkgJUNQUEhlYWRlckluY2x1ZGVzQW5nbGUgPSAoKTsKLW15ICVDUFBI
ZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zID0gKCk7Ci1teSAlQ1BQSGVhZGVyRG9udEZvcndhcmRE
ZWNsYXJhdGlvbnMgPSAoKTsKLQotbXkgQENQUEltcGxlbWVudGF0aW9uSGVhZGVyID0gKCk7Ci1t
eSBAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50ID0gKCk7Ci1teSAlQ1BQSW1wbGVtZW50YXRpb25J
bmNsdWRlcyA9ICgpOwotbXkgJUNQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVzID0gKCk7
Ci1teSAlQ1BQSW1wbGVtZW50YXRpb25JbmNsdWRlc0FuZ2xlID0gKCk7Ci1teSAlQ1BQSW1wbGVt
ZW50YXRpb25Eb250SW5jbHVkZXMgPSAoKTsKLQotbXkgQGFkZGl0aW9uYWxJbnRlcmZhY2VEZWZp
bml0aW9ucyA9ICgpOwotCi1teSAkREFTSEVTID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0iOwotbXkgJFRFTVBfUFJFRklYID0gIkdFTl8iOwotCi0jIEhhc2hlcwot
Ci1teSAlaW5jbHVkZUNvcnJlY3RvciA9IG1hcCB7KCRfLCAxKX0gcXd7VUlFdmVudCBLZXlib2Fy
ZEV2ZW50IE1vdXNlRXZlbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNdXRhdGlvbkV2ZW50IE92ZXJmbG93RXZlbnQgV2hlZWxFdmVudH07Ci0KLW15ICVjb25mbGlj
dE1ldGhvZCA9ICgKLSAgICAjIEZJWE1FOiBBZGQgQyBsYW5ndWFnZSBrZXl3b3Jkcz8KLSk7Ci0K
LSMgRGVmYXVsdCBMaWNlbnNlIFRlbXBsYXRlcwotbXkgQGxpY2Vuc2VUZW1wbGF0ZSA9IHNwbGl0
KC9cci8sIDw8ICJFT0YiKTsKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
Ci0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotRU9GCi0KLSMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgotc3ViIG5ldwot
ewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkcmVmZXJlbmNlID0geyB9OwotCi0g
ICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKLSAgICAkb3V0cHV0RGlyID0gc2hpZnQ7Ci0KLSAg
ICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJlZmVyZW5jZTsKLX0K
LQotc3ViIGZpbmlzaAotewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLX0KLQotIyBQYXJhbXM6
ICdkb21DbGFzcycgc3RydWN0Ci1zdWIgR2VuZXJhdGVJbnRlcmZhY2UKLXsKLSAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGRlZmluZXMg
PSBzaGlmdDsKLQotICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOwotCi0gICAgbXkgJHB1
cmVJbnRlcmZhY2UgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQdXJlSW50ZXJm
YWNlIn07Ci0KLSAgICAjIFN0YXJ0IGFjdHVhbCBnZW5lcmF0aW9uLi4KLSAgICAkb2JqZWN0LT5H
ZW5lcmF0ZUlETCgkZGF0YU5vZGUsICRwdXJlSW50ZXJmYWNlKTsKLSAgICBpZiAoJHB1cmVJbnRl
cmZhY2UpIHsKLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVJbnRlcmZhY2VIZWFkZXIoJGRhdGFO
b2RlKTsKLSAgICB9IGVsc2UgewotICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUNQUEhlYWRlcigk
ZGF0YU5vZGUpOwotICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUNQUEltcGxlbWVudGF0aW9uKCRk
YXRhTm9kZSk7Ci0gICAgfQotCi0gICAgIyBXcml0ZSBjaGFuZ2VzLgotICAgICRvYmplY3QtPldy
aXRlRGF0YSgkbmFtZSwgJHB1cmVJbnRlcmZhY2UpOwotfQotCi0jIFBhcmFtczogJ2lkbERvY3Vt
ZW50JyBzdHJ1Y3QKLXN1YiBHZW5lcmF0ZU1vZHVsZQotewotICAgIG15ICRvYmplY3QgPSBzaGlm
dDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLQotICAgICRtb2R1bGUgPSAkZGF0YU5vZGUt
Pm1vZHVsZTsKLX0KLQotc3ViIEdldEludGVyZmFjZU5hbWUKLXsKLSAgICBteSAkbmFtZSA9ICRj
b2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0KLSAgICBkaWUgIkdldEludGVyZmFj
ZU5hbWUgc2hvdWxkIG9ubHkgYmUgdXNlZCBvbiBpbnRlcmZhY2VzLiIgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJG5hbWUpIG9yICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5
cGUoJG5hbWUpKTsKLQotICAgICMgc3BlY2lhbCBjYXNlcwotICAgIHJldHVybiAiSSIgLiAkVEVN
UF9QUkVGSVggLiAiRE9NQWJzdHJhY3RWaWV3IiBpZiAkbmFtZSBlcSAiRE9NV2luZG93IjsKLSAg
ICByZXR1cm4gIkkiIC4gJFRFTVBfUFJFRklYIC4gJG5hbWUgaWYgJG5hbWUgZXEgIkRPTUltcGxl
bWVudGF0aW9uIiBvciAkbmFtZSBlcSAiRE9NVGltZVN0YW1wIjsKLQotICAgICMgRGVmYXVsdCwg
YXNzdW1lIENPTSB0eXBlIGhhcyB0aGUgc2FtZSB0eXBlIG5hbWUgYXMKLSAgICAjIGlkbCB0eXBl
IHByZWZpeGVkIHdpdGggIklET00iLgotICAgIHJldHVybiAiSSIgLiAkVEVNUF9QUkVGSVggLiAi
RE9NIiAuICRuYW1lOwotfQotCi1zdWIgR2V0Q2xhc3NOYW1lCi17Ci0gICAgbXkgJG5hbWUgPSAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotCi0gICAgIyBzcGVjaWFsIGNhc2Vz
Ci0gICAgcmV0dXJuICJCU1RSIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRuYW1l
KTsKLSAgICByZXR1cm4gIkJPT0wiIGlmICRuYW1lIGVxICJib29sZWFuIjsKLSAgICByZXR1cm4g
InVuc2lnbmVkIiBpZiAkbmFtZSBlcSAidW5zaWduZWQgbG9uZyI7Ci0gICAgcmV0dXJuICJpbnQi
IGlmICRuYW1lIGVxICJsb25nIjsKLSAgICByZXR1cm4gJG5hbWUgaWYgJGNvZGVHZW5lcmF0b3It
PklzUHJpbWl0aXZlVHlwZSgkbmFtZSk7Ci0gICAgcmV0dXJuICRURU1QX1BSRUZJWCAuICJET01B
YnN0cmFjdFZpZXciIGlmICRuYW1lIGVxICJET01XaW5kb3ciOwotICAgIHJldHVybiAkVEVNUF9Q
UkVGSVggLiAkbmFtZSBpZiAkbmFtZSBlcSAiRE9NSW1wbGVtZW50YXRpb24iIG9yICRuYW1lIGVx
ICJET01UaW1lU3RhbXAiOwotCi0gICAgIyBEZWZhdWx0LCBhc3N1bWUgQ09NIHR5cGUgaGFzIHRo
ZSBzYW1lIHR5cGUgbmFtZSBhcwotICAgICMgaWRsIHR5cGUgcHJlZml4ZWQgd2l0aCAiRE9NIi4K
LSAgICByZXR1cm4gJFRFTVBfUFJFRklYIC4gIkRPTSIgLiAkbmFtZTsKLX0KLQotc3ViIEdldENP
TVR5cGUKLXsKLSAgICBteSAoJHR5cGUpID0gQF87Ci0KLSAgICBkaWUgIkRvbid0IHVzZSBHZXRD
T01UeXBlIGZvciBzdHJpbmcgdHlwZXMsIHVzZSBvbmUgb2YgSW4vT3V0IHZhcmlhbnRzIGluc3Rl
YWQuIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKLQotICAgIHJldHVy
biAiQk9PTCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOwotICAgIHJldHVybiAiVUlOVCIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmciOwotICAgIHJldHVybiAiSU5UIiBpZiAkdHlwZSBlcSAibG9u
ZyI7Ci0gICAgcmV0dXJuICR0eXBlIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUo
JHR5cGUpIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiOwotICAgICMgcmV0dXJuICJ1bnNpZ25l
ZCBzaG9ydCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciIG9yICR0eXBlIGVxICJTVkdQYWludFR5
cGUiOwotCi0gICAgcmV0dXJuIEdldEludGVyZmFjZU5hbWUoJHR5cGUpIC4gIioiOwotfQotCi1z
dWIgR2V0Q09NVHlwZUluCi17Ci0gICAgbXkgKCR0eXBlKSA9IEBfOwotICAgIHJldHVybiAiTFBD
VFNUUiIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJu
IEdldENPTVR5cGUoJHR5cGUpOwotfQotCi1zdWIgR2V0Q09NVHlwZU91dAotewotICAgIG15ICgk
dHlwZSkgPSBAXzsKLSAgICByZXR1cm4gIkJTVFIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmlu
Z1R5cGUoJHR5cGUpOwotICAgIHJldHVybiBHZXRDT01UeXBlKCR0eXBlKTsKLX0KLQotc3ViIElE
TFR5cGVUb0ltcGxlbWVudGF0aW9uVHlwZQotewotICAgIG15ICR0eXBlID0gJGNvZGVHZW5lcmF0
b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAgIHJldHVybiAiYm9vbCIgaWYgJHR5cGUgZXEg
ImJvb2xlYW4iOwotICAgIHJldHVybiAidW5zaWduZWQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIjsKLSAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImxvbmciOwotICAgIHJldHVybiAk
dHlwZSBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKTsKLQotICAgIHJl
dHVybiAiV2ViQ29yZTo6U3RyaW5nIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0
eXBlKTsKLSAgICByZXR1cm4gIldlYkNvcmU6OiR7dHlwZX0iOwotfQotCi1zdWIgU3RyaXBOYW1l
c3BhY2UKLXsKLSAgICBteSAoJHR5cGUpID0gQF87Ci0KLSAgICAkdHlwZSA9fiBzL15XZWJDb3Jl
OjovLzsKLQotICAgIHJldHVybiAkdHlwZTsKLX0KLQotc3ViIEdldFBhcmVudEludGVyZmFjZQot
ewotICAgIG15ICgkZGF0YU5vZGUpID0gQF87Ci0gICAgcmV0dXJuICJJIiAuICRURU1QX1BSRUZJ
WCAuICJET01PYmplY3QiIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPT0gMCk7Ci0gICAgcmV0
dXJuIEdldEludGVyZmFjZU5hbWUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9k
ZS0+cGFyZW50cygwKSkpOwotfQotCi1zdWIgR2V0UGFyZW50Q2xhc3MKLXsKLSAgICBteSAoJGRh
dGFOb2RlKSA9IEBfOwotICAgIHJldHVybiAkVEVNUF9QUkVGSVggLiAiRE9NT2JqZWN0IiBpZiAo
QHskZGF0YU5vZGUtPnBhcmVudHN9ID09IDApOwotICAgIHJldHVybiBHZXRDbGFzc05hbWUoJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSkpOwotfQotCi1z
dWIgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbklETAotewotICAgIG15ICR0eXBlID0g
JGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLQotICAgIHJldHVybiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNOb25Qb2ludGVyVHlwZSgkdHlwZSkgb3IgJGNvZGVHZW5lcmF0b3ItPklz
U3RyaW5nVHlwZSgkdHlwZSk7Ci0KLSAgICBteSAkaW50ZXJmYWNlID0gR2V0SW50ZXJmYWNlTmFt
ZSgkdHlwZSk7Ci0gICAgJElETEZvcndhcmREZWNsYXJhdGlvbnN7JGludGVyZmFjZX0gPSAxOwot
ICAgICRJRExJbXBvcnRzeyRpbnRlcmZhY2V9ID0gMTsKLX0KLQotc3ViIEFkZEluY2x1ZGVzRm9y
VHlwZUluQ1BQSGVhZGVyCi17Ci0gICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBN
b2R1bGUoc2hpZnQpOwotICAgIG15ICR1c2VBbmdsZUJyYWNrZXRzID0gc2hpZnQ7Ci0KLSAgICBy
ZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzTm9uUG9pbnRlclR5cGUoJHR5cGUpOwotCi0gICAg
IyBBZGQgc3BlY2lhbCBDYXNlcyBIRVJFCi0KLSAgICBpZiAoJHR5cGUgPX4gbS9eSS8pIHsKLSAg
ICAgICAgJHR5cGUgPSAiV2ViS2l0IjsKLSAgICB9Ci0KLSAgICBpZiAoJHVzZUFuZ2xlQnJhY2tl
dHMpIHsKLSAgICAgICAgJENQUEhlYWRlckluY2x1ZGVzQW5nbGV7IiR0eXBlLmgifSA9IDE7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoJHR5cGUgZXEgIkdFTl9ET01JbXBsZW1l
bnRhdGlvbiIpIHsKLSAgICAgICAgJENQUEhlYWRlckluY2x1ZGVzeyJHRU5fRE9NRE9NSW1wbGVt
ZW50YXRpb24uaCJ9ID0gMTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICgkdHlw
ZSBlcSAiSUdFTl9ET01JbXBsZW1lbnRhdGlvbiIpIHsKLSAgICAgICAgJENQUEhlYWRlckluY2x1
ZGVzeyJJR0VOX0RPTURPTUltcGxlbWVudGF0aW9uLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICAkQ1BQSGVhZGVySW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7Ci19Ci0KLXN1
YiBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9yVHlwZUluQ1BQSGVhZGVyCi17Ci0gICAgbXkgJHR5
cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotCi0gICAgcmV0dXJuIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc05vblBvaW50ZXJUeXBlKCR0eXBlKSBvciAkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKLQotICAgIG15ICRpbnRlcmZhY2UgPSBHZXRJbnRlcmZh
Y2VOYW1lKCR0eXBlKTsKLSAgICAkQ1BQSGVhZGVyRm9yd2FyZERlY2xhcmF0aW9uc3skaW50ZXJm
YWNlfSA9IDE7Ci19Ci0KLXN1YiBBZGRJbmNsdWRlc0ZvclR5cGVJbkNQUEltcGxlbWVudGF0aW9u
Ci17Ci0gICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwot
Ci0gICAgZGllICJJbmNsdWRlIHR5cGUgbm90IHN1cHBvcnRlZCEiIGlmICRpbmNsdWRlQ29ycmVj
dG9yeyR0eXBlfTsKLQotICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNOb25Qb2ludGVy
VHlwZSgkdHlwZSk7Ci0KLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSkpIHsKLSAgICAgICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVzeyJBdG9taWNT
dHJpbmcuaCJ9ID0gMTsKLSAgICAgICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVz
eyJCU3RyaW5nLmgifSA9IDE7Ci0gICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNs
dWRlc3siS1VSTC5oIn0gPSAxOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgIyBTcGVj
aWFsIGNhc2luZwotICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siTmFtZU5v
ZGVMaXN0LmgifSA9IDEgaWYgJHR5cGUgZXEgIk5vZGVMaXN0IjsKLSAgICAkQ1BQSW1wbGVtZW50
YXRpb25XZWJDb3JlSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEg
aWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOwotCi0gICAgIyBBZGQgaW1wbGVtZW50
YXRpb24gdHlwZQotICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3tTdHJpcE5h
bWVzcGFjZShJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5cGUoJHR5cGUpKSAuICIuaCJ9ID0gMTsK
LQotICAgIG15ICRDT01DbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOwotICAgICRDUFBJ
bXBsZW1lbnRhdGlvbkluY2x1ZGVzeyIke0NPTUNsYXNzTmFtZX0uaCJ9ID0gMTsKLX0KLQotc3Vi
IEdldEFkZGl0aW9uYWxJbnRlcmZhY2VzCi17Ci0gICAgIyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90
aGluZywgYnV0IGl0IHN0YXlzIGhlcmUgZm9yIGZ1dHVyZSBtdWx0aXBsZSBpbmhlcml0YW5jZSBz
dXBwb3J0LgotICAgIG15ICR0eXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0
KTsKLSAgICByZXR1cm4gKCk7Ci19Ci0KLXN1YiBHZW5lcmF0ZUlETAotewotICAgIG15ICgkb2Jq
ZWN0LCAkZGF0YU5vZGUsICRwdXJlSW50ZXJmYWNlKSA9IEBfOwotCi0gICAgbXkgJGluSW50ZXJm
YWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICBteSAkb3V0SW50ZXJmYWNlTmFtZSA9IEdl
dEludGVyZmFjZU5hbWUoJGluSW50ZXJmYWNlTmFtZSk7Ci0gICAgbXkgJHV1aWQgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbnRlcmZhY2VVVUlEIn0gfHwgZGllICJBbGwgY2xh
c3NlcyByZXF1aXJlIGFuIEludGVyZmFjZVVVSUQgZXh0ZW5kZWQgYXR0cmlidXRlLiI7Ci0KLSAg
ICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICgkcHVyZUludGVyZmFjZSkgPyAiSVVua25vd24i
IDogR2V0UGFyZW50SW50ZXJmYWNlKCRkYXRhTm9kZSk7Ci0KLSAgICBteSAkbnVtQ29uc3RhbnRz
ID0gQHskZGF0YU5vZGUtPmNvbnN0YW50c307Ci0gICAgbXkgJG51bUF0dHJpYnV0ZXMgPSBAeyRk
YXRhTm9kZS0+YXR0cmlidXRlc307Ci0gICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2Rl
LT5mdW5jdGlvbnN9OwotCi0gICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQotICAg
IEBJRExIZWFkZXIgPSBAbGljZW5zZVRlbXBsYXRlOwotICAgIHB1c2goQElETEhlYWRlciwgIlxu
Iik7Ci0KLSAgICAjIC0gSU5DTFVERVMgLQotICAgIHB1c2goQElETEhlYWRlciwgIiNpZm5kZWYg
RE9fTk9fSU1QT1JUU1xuIik7Ci0gICAgcHVzaChASURMSGVhZGVyLCAiaW1wb3J0IFwib2FpZGwu
aWRsXCI7XG4iKTsKLSAgICBwdXNoKEBJRExIZWFkZXIsICJpbXBvcnQgXCJvY2lkbC5pZGxcIjtc
biIpOwotICAgIHB1c2goQElETEhlYWRlciwgIiNlbmRpZlxuXG4iKTsKLQotICAgIHVubGVzcyAo
JHB1cmVJbnRlcmZhY2UpIHsKLSAgICAgICAgcHVzaChASURMSGVhZGVyLCAiI2lmbmRlZiBET19O
T19JTVBPUlRTXG4iKTsKLSAgICAgICAgcHVzaChASURMSGVhZGVyLCAiaW1wb3J0IFwiJHtwYXJl
bnRJbnRlcmZhY2VOYW1lfS5pZGxcIjtcbiIpOwotICAgICAgICBwdXNoKEBJRExIZWFkZXIsICIj
ZW5kaWZcblxuIik7Ci0KLSAgICAgICAgJElETERvbnRGb3J3YXJkRGVjbGFyZXskb3V0SW50ZXJm
YWNlTmFtZX0gPSAxOwotICAgICAgICAkSURMRG9udEltcG9ydHskb3V0SW50ZXJmYWNlTmFtZX0g
PSAxOwotICAgICAgICAkSURMRG9udEZvcndhcmREZWNsYXJleyRwYXJlbnRJbnRlcmZhY2VOYW1l
fSA9IDE7Ci0gICAgICAgICRJRExEb250SW1wb3J0eyRwYXJlbnRJbnRlcmZhY2VOYW1lfSA9IDE7
Ci0gICAgfQotCi0gICAgIyAtIEJlZ2luCi0gICAgIyAtLSBBdHRyaWJ1dGVzCi0gICAgcHVzaChA
SURMQ29udGVudCwgIltcbiIpOwotICAgIHB1c2goQElETENvbnRlbnQsICIgICAgb2JqZWN0LFxu
Iik7Ci0gICAgcHVzaChASURMQ29udGVudCwgIiAgICBvbGVhdXRvbWF0aW9uLFxuIik7Ci0gICAg
cHVzaChASURMQ29udGVudCwgIiAgICB1dWlkKCIgLiAkdXVpZCAuICIpLFxuIik7Ci0gICAgcHVz
aChASURMQ29udGVudCwgIiAgICBwb2ludGVyX2RlZmF1bHQodW5pcXVlKVxuIik7Ci0gICAgcHVz
aChASURMQ29udGVudCwgIl1cbiIpOwotCi0gICAgIyAtLSBJbnRlcmZhY2UKLSAgICBwdXNoKEBJ
RExDb250ZW50LCAiaW50ZXJmYWNlICIgLiAkb3V0SW50ZXJmYWNlTmFtZSAuICIgOiAiIC4gJHBh
cmVudEludGVyZmFjZU5hbWUgLiAiXG4iKTsKLSAgICBwdXNoKEBJRExDb250ZW50LCAie1xuIik7
Ci0KLQotICAgICMgLSBGSVhNRTogQWRkIGNvbnN0YW50cy4KLQotCi0gICAgIyAtIEFkZCBhdHRy
aWJ1dGUgZ2V0dGVycy9zZXR0ZXJzLgotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsKLSAg
ICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsK
LSAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lOwotICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUlETFR5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGU7Ci0gICAgICAgICAgICBteSAkYXR0cmlidXRlVHlwZUluID0gR2V0Q09NVHlw
ZUluKCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlT3V0
ID0gR2V0Q09NVHlwZU91dCgkYXR0cmlidXRlSURMVHlwZSk7Ci0gICAgICAgICAgICBteSAkYXR0
cmlidXRlSXNSZWFkb25seSA9ICgkYXR0cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvKTsKLQot
ICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbklETCgkYXR0cmlidXRl
SURMVHlwZSk7Ci0KLSAgICAgICAgICAgIHVubGVzcyAoJGF0dHJpYnV0ZUlzUmVhZG9ubHkpIHsK
LSAgICAgICAgICAgICAgICAjIFNldHRlcgotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJOYW1l
ID0gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlTmFtZSk7Ci0g
ICAgICAgICAgICAgICAgbXkgJHNldHRlciA9ICIgICAgSFJFU1VMVCAiIC4gJHNldHRlck5hbWUg
LiAiKFtpbl0gIiAuICRhdHRyaWJ1dGVUeXBlSW4gLiAiKTtcbiI7Ci0gICAgICAgICAgICAgICAg
cHVzaChASURMQ29udGVudCwgJHNldHRlcik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICMgR2V0dGVyCi0gICAgICAgICAgICBteSAkZ2V0dGVyID0gIiAgICBIUkVTVUxUICIgLiAkYXR0
cmlidXRlTmFtZSAuICIoW291dCwgcmV0dmFsXSAiIC4gJGF0dHJpYnV0ZVR5cGVPdXQgLiAiKik7
XG5cbiI7Ci0gICAgICAgICAgICBwdXNoKEBJRExDb250ZW50LCAkZ2V0dGVyKTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgICMgLSBBZGQgZnVuY3Rpb25zLgotICAgIGlmICgkbnVtRnVuY3Rpb25z
ID4gMCkgewotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0
aW9uc30pIHsKLSAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+bmFtZTsKLSAgICAgICAgICAgIG15ICRyZXR1cm5JRExUeXBlID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGU7Ci0gICAgICAgICAgICBteSAkcmV0dXJuVHlwZSA9IEdldENPTVR5cGVP
dXQoJHJldHVybklETFR5cGUpOwotICAgICAgICAgICAgbXkgJG5vUmV0dXJuID0gKCRyZXR1cm5U
eXBlIGVxICJ2b2lkIik7Ci0KLSAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JU
eXBlSW5JREwoJHJldHVybklETFR5cGUpOwotCi0gICAgICAgICAgICBteSBAcGFyYW1BcmdMaXN0
ID0gKCk7Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7Ci0gICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsK
LSAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwotICAgICAg
ICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRDT01UeXBlSW4oJHBhcmFtLT50eXBlKTsKLQot
ICAgICAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5JREwoJHBhcmFt
SURMVHlwZSk7Ci0KLSAgICAgICAgICAgICAgICAjIEZvcm0gcGFyYW1ldGVyCi0gICAgICAgICAg
ICAgICAgbXkgJHBhcmFtZXRlciA9ICJbaW5dICR7cGFyYW1UeXBlfSAke3BhcmFtTmFtZX0iOwot
Ci0gICAgICAgICAgICAgICAgIyBBZGQgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIHNpZ25hdHVyZQot
ICAgICAgICAgICAgICAgIHB1c2goQHBhcmFtQXJnTGlzdCwgJHBhcmFtZXRlcik7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHVubGVzcyAoJG5vUmV0dXJuKSB7Ci0gICAgICAgICAgICAg
ICAgbXkgJHJlc3VsdFBhcmFtZXRlciA9ICJbb3V0LCByZXR2YWxdICIgLiAkcmV0dXJuVHlwZSAu
ICIqIHJlc3VsdCI7Ci0gICAgICAgICAgICAgICAgcHVzaChAcGFyYW1BcmdMaXN0LCAkcmVzdWx0
UGFyYW1ldGVyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2ln
ID0gIiAgICBIUkVTVUxUICIgLiAkZnVuY3Rpb25OYW1lIC4gIigiOwotICAgICAgICAgICAgJGZ1
bmN0aW9uU2lnIC49IGpvaW4oIiwgIiwgQHBhcmFtQXJnTGlzdCk7Ci0gICAgICAgICAgICAkZnVu
Y3Rpb25TaWcgLj0gIik7XG5cbiI7Ci0gICAgICAgICAgICBwdXNoKEBJRExDb250ZW50LCAkZnVu
Y3Rpb25TaWcpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgIyAtIEVuZAotICAgIHB1c2goQElE
TENvbnRlbnQsICJ9XG5cbiIpOwotfQotCi1zdWIgR2VuZXJhdGVJbnRlcmZhY2VIZWFkZXIKLXsK
LSAgICBteSAoJG9iamVjdCwgJGRhdGFOb2RlKSA9IEBfOwotCi0gICAgbXkgJElETFR5cGUgPSAk
ZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3MgPSBJRExUeXBlVG9J
bXBsZW1lbnRhdGlvblR5cGUoJElETFR5cGUpOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNz
V2l0aG91dE5hbWVzcGFjZSA9IFN0cmlwTmFtZXNwYWNlKCRpbXBsZW1lbnRhdGlvbkNsYXNzKTsK
LSAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRJRExUeXBlKTsKLSAgICBteSAkaW50
ZXJmYWNlTmFtZSA9IEdldEludGVyZmFjZU5hbWUoJElETFR5cGUpOwotCi0gICAgIyAtIEFkZCBk
ZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQotICAgIEBDUFBJbnRlcmZhY2VIZWFkZXIgPSBAbGljZW5z
ZVRlbXBsYXRlOwotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIlxuIik7Ci0KLSAgICAj
IC0gSGVhZGVyIGd1YXJkcyAtCi0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAiI2lmbmRl
ZiAiIC4gJGNsYXNzTmFtZSAuICJfaFxuIik7Ci0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVy
LCAiI2RlZmluZSAiIC4gJGNsYXNzTmFtZSAuICJfaFxuXG4iKTsKLQotICAgICMgLSBGb3J3YXJk
IERlY2xhcmF0aW9ucyAtCi0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAiaW50ZXJmYWNl
ICR7aW50ZXJmYWNlTmFtZX07XG5cbiIpOwotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwg
Im5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOwotICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwg
IiAgICBjbGFzcyAke2ltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlfTtcbiIpOwot
ICAgIHB1c2goQENQUEludGVyZmFjZUhlYWRlciwgIn1cblxuIik7Ci0KLSAgICAjIC0gRGVmYXVs
dCBJbnRlcmZhY2UgQ3JlYXRvciAtCi0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAiJHtp
bnRlcmZhY2VOYW1lfSogdG8ke2ludGVyZmFjZU5hbWV9KCR7aW1wbGVtZW50YXRpb25DbGFzc30q
KSB7IHJldHVybiAwOyB9XG5cbiIpOwotCi0gICAgcHVzaChAQ1BQSW50ZXJmYWNlSGVhZGVyLCAi
I2VuZGlmIC8vICIgLiAkY2xhc3NOYW1lIC4gIl9oXG4iKTsKLX0KLQotIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotIyAgICBDUFAgSGVscGVyIEZ1bmN0aW9ucwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi1zdWIgR2VuZXJhdGVDUFBBdHRyaWJ1dGVTaWduYXR1cmUKLXsKLSAgICBteSAoJGF0dHJp
YnV0ZSwgJGNsYXNzTmFtZSwgJG9wdGlvbnMpID0gQF87Ci0KLSAgICBteSAkYXR0cmlidXRlTmFt
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKLSAgICBteSAkaXNSZWFkb25seSA9ICgk
YXR0cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvKTsKLQotICAgIG15ICRuZXdsaW5lID0gJCRv
cHRpb25zeyJOZXdMaW5lcyJ9ID8gIlxuIiA6ICIiOwotICAgIG15ICRpbmRlbnQgPSAkJG9wdGlv
bnN7IkluZGVudCJ9ID8gIiAiIHggJCRvcHRpb25zeyJJbmRlbnQifSA6ICIiOwotICAgIG15ICRz
ZW1pY29sb24gPSAkJG9wdGlvbnN7IkluY2x1ZGVTZW1pQ29sb24ifSA/ICI7IiA6ICIiOwotICAg
IG15ICR2aXJ0dWFsID0gJCRvcHRpb25zeyJBZGRWaXJ0dWFsS2V5d29yZCJ9ID8gInZpcnR1YWwg
IiA6ICIiOwotICAgIG15ICRjbGFzcyA9ICQkb3B0aW9uc3siVXNlQ2xhc3NOYW1lIn0gPyAiJHtj
bGFzc05hbWV9OjoiIDogIiI7Ci0gICAgbXkgJGZvcndhcmRlciA9ICQkb3B0aW9uc3siRm9yd2Fy
ZGVyIn0gPyAxIDogMDsKLSAgICBteSAkam9pbmVyID0gICgkJG9wdGlvbnN7Ik5ld0xpbmVzIn0g
PyAiXG4iIC4gJGluZGVudCAuICIgICAgIiA6ICIiKTsKLQotICAgIG15ICVhdHRyaWJ1dGVTaWdu
YXR1cmVzID0gKCk7Ci0KLSAgICB1bmxlc3MgKCRpc1JlYWRvbmx5KSB7Ci0gICAgICAgIG15ICRh
dHRyaWJ1dGVUeXBlSW4gPSBHZXRDT01UeXBlSW4oJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
KTsKLSAgICAgICAgbXkgJHNldHRlck5hbWUgPSAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgbXkgJHNldHRlciA9ICRpbmRlbnQgLiAk
dmlydHVhbCAuICJIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFICIuICRjbGFzcyAuICRzZXR0ZXJO
YW1lIC4gIigiOwotICAgICAgICAkc2V0dGVyIC49ICRqb2luZXIgLiAiLyogW2luXSAqLyAke2F0
dHJpYnV0ZVR5cGVJbn0gJHthdHRyaWJ1dGVOYW1lfSkiIC4gJHNlbWljb2xvbiAuICRuZXdsaW5l
OwotICAgICAgICBpZiAoJGZvcndhcmRlcikgewotICAgICAgICAgICAgJHNldHRlciAuPSAiIHsg
cmV0dXJuICIgLiAkJG9wdGlvbnN7IkZvcndhcmRlciJ9IC4gIjo6IiAuICRzZXR0ZXJOYW1lIC4g
Iigke2F0dHJpYnV0ZU5hbWV9KTsgfVxuIjsKLSAgICAgICAgfQotICAgICAgICAkYXR0cmlidXRl
U2lnbmF0dXJlc3siU2V0dGVyIn0gPSAkc2V0dGVyOwotICAgIH0KLQotICAgIG15ICRhdHRyaWJ1
dGVUeXBlT3V0ID0gR2V0Q09NVHlwZU91dCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwot
ICAgIG15ICRnZXR0ZXIgPSAkaW5kZW50IC4gJHZpcnR1YWwgLiAiSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSAiIC4gJGNsYXNzIC4gJGF0dHJpYnV0ZU5hbWUgLiAiKCI7Ci0gICAgJGdldHRlciAu
PSAkam9pbmVyIC4gIi8qIFtyZXR2YWxdW291dF0gKi8gJHthdHRyaWJ1dGVUeXBlT3V0fSogcmVz
dWx0KSIgLiAkc2VtaWNvbG9uIC4gJG5ld2xpbmU7Ci0gICAgaWYgKCRmb3J3YXJkZXIpIHsKLSAg
ICAgICAgJGdldHRlciAuPSAiIHsgcmV0dXJuICIgLiAkJG9wdGlvbnN7IkZvcndhcmRlciJ9IC4g
Ijo6IiAuICRhdHRyaWJ1dGVOYW1lIC4gIihyZXN1bHQpOyB9XG4iOwotICAgIH0KLSAgICAkYXR0
cmlidXRlU2lnbmF0dXJlc3siR2V0dGVyIn0gPSAkZ2V0dGVyOwotCi0gICAgcmV0dXJuICVhdHRy
aWJ1dGVTaWduYXR1cmVzOwotfQotCi0KLXN1YiBHZW5lcmF0ZUNQUEF0dHJpYnV0ZQotewotICAg
IG15ICgkYXR0cmlidXRlLCAkY2xhc3NOYW1lLCAkaW1wbGVtZW50YXRpb25DbGFzcywgJElETFR5
cGUpID0gQF87Ci0KLSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc1dpdGhvdXROYW1lc3BhY2Ug
PSBTdHJpcE5hbWVzcGFjZSgkaW1wbGVtZW50YXRpb25DbGFzcyk7Ci0KLSAgICBteSAkYXR0cmli
dXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKLSAgICBteSAkYXR0cmlidXRl
SURMVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKLSAgICBteSAkaGFzU2V0dGVy
RXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKLSAgICBteSAkaGFz
R2V0dGVyRXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfTsKLSAgICBt
eSAkaXNSZWFkb25seSA9ICgkYXR0cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvKTsKLSAgICBt
eSAkYXR0cmlidXRlVHlwZUlzUHJpbWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZl
VHlwZSgkYXR0cmlidXRlSURMVHlwZSk7Ci0gICAgbXkgJGF0dHJpYnV0ZVR5cGVJc1N0cmluZyA9
ICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGF0dHJpYnV0ZUlETFR5cGUpOwotICAgIG15
ICRhdHRyaWJ1dGVJbXBsZW1lbnRhdGlvblR5cGUgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5
cGUoJGF0dHJpYnV0ZUlETFR5cGUpOwotICAgIG15ICRhdHRyaWJ1dGVJbXBsZW1lbnRhdGlvblR5
cGVXaXRob3V0TmFtZXNwYWNlID0gU3RyaXBOYW1lc3BhY2UoJGF0dHJpYnV0ZUltcGxlbWVudGF0
aW9uVHlwZSk7Ci0gICAgbXkgJGF0dHJpYnV0ZVR5cGVDT01DbGFzc05hbWUgPSBHZXRDbGFzc05h
bWUoJGF0dHJpYnV0ZUlETFR5cGUpOwotCi0gICAgJENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUlu
Y2x1ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDEgaWYgJGhhc1NldHRlckV4Y2VwdGlvbiBvciAk
aGFzR2V0dGVyRXhjZXB0aW9uOwotCi0gICAgbXkgJXNpZ25hdHVyZXMgPSBHZW5lcmF0ZUNQUEF0
dHJpYnV0ZVNpZ25hdHVyZSgkYXR0cmlidXRlLCAkY2xhc3NOYW1lLCB7ICJOZXdMaW5lcyIgPT4g
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkluZGVudCIgPT4gMCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkluY2x1ZGVTZW1pQ29sb24iID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VDbGFz
c05hbWUiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4g
MCB9KTsKLQotICAgIG15ICVhdHRyYnV0ZXNUb1JldHVybiA9ICgpOwotCi0gICAgdW5sZXNzICgk
aXNSZWFkb25seSkgewotICAgICAgICBteSBAc2V0dGVySW1wbGVtZW50YXRpb24gPSAoKTsKLSAg
ICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICRzaWduYXR1cmVzeyJTZXR0ZXIifSk7
Ci0gICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAie1xuIik7Ci0KLSAgICAgICAg
bXkgJHNldHRlck5hbWUgPSAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRy
aWJ1dGVOYW1lKTsKLQotICAgICAgICBteSBAc2V0dGVyUGFyYW1zID0gKCk7Ci0gICAgICAgIGlm
ICgkYXR0cmlidXRlVHlwZUlzU3RyaW5nKSB7Ci0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJQYXJh
bXMsICRhdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAgIGlmICgkaGFzU2V0dGVyRXhjZXB0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBz
ZXR0ZXJQYXJhbXMsICJlYyIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgkYXR0
cmlidXRlVHlwZUlzUHJpbWl0aXZlKSB7Ci0gICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgewotICAg
ICAgICAgICAgICAgIHB1c2goQHNldHRlclBhcmFtcywgIldlYkNvcmU6OlN0cmluZzo6bnVtYmVy
KCR7YXR0cmlidXRlTmFtZX0pIik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlSURM
VHlwZSBlcSAiYm9vbGVhbiIpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBzZXR0ZXJQYXJhbXMs
ICIhISR7YXR0cmlidXRlTmFtZX0iKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgbXkgJHByaW1pdGl2ZUltcGxlbWVudGF0aW9uVHlwZSA9IElETFR5cGVUb0ltcGxlbWVu
dGF0aW9uVHlwZSgkYXR0cmlidXRlSURMVHlwZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0
dGVyUGFyYW1zLCAic3RhdGljX2Nhc3Q8JHtwcmltaXRpdmVJbXBsZW1lbnRhdGlvblR5cGV9Pigk
e2F0dHJpYnV0ZU5hbWV9KSIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoJGhh
c1NldHRlckV4Y2VwdGlvbikgewotICAgICAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVu
dGF0aW9uLCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAc2V0dGVyUGFyYW1zLCAiZWMiKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRl
c3siQ09NUHRyLmgifSA9IDE7Ci0KLSAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0
aW9uLCAiICAgIGlmICghJHthdHRyaWJ1dGVOYW1lfSlcbiIpOwotICAgICAgICAgICAgcHVzaChA
c2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgICAgIHJldHVybiBFX1BPSU5URVI7XG5cbiIpOwot
ICAgICAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgQ09NUHRyPCR7YXR0
cmlidXRlVHlwZUNPTUNsYXNzTmFtZX0+IHB0cihRdWVyeSwgJHthdHRyaWJ1dGVOYW1lfSk7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIGlmICghcHRy
KVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAgICAg
cmV0dXJuIEVfTk9JTlRFUkZBQ0U7XG4iKTsKLQotICAgICAgICAgICAgcHVzaChAc2V0dGVyUGFy
YW1zLCAicHRyLT5pbXBsJHthdHRyaWJ1dGVJbXBsZW1lbnRhdGlvblR5cGVXaXRob3V0TmFtZXNw
YWNlfSgpIik7Ci0gICAgICAgICAgICBpZiAoJGhhc1NldHRlckV4Y2VwdGlvbikgewotICAgICAg
ICAgICAgICAgIHB1c2goQHNldHRlckltcGxlbWVudGF0aW9uLCAiICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAc2V0dGVyUGFyYW1z
LCAiZWMiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgICMgRklYTUU6IENI
RUNLIEVYQ0VQVElPTiBBTkQgRE8gU09NRVRISU5HIFdJVEggSVQKLQotICAgICAgICBteSAkcmVm
bGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxl
Y3QifTsKLSAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07Ci0gICAgICAgIGlmICgkcmVmbGVjdCB8
fCAkcmVmbGVjdFVSTCkgewotICAgICAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0g
KCgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgZXEgIjEiKSA/ICRhdHRyaWJ1dGVOYW1lIDogKCRy
ZWZsZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29k
ZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkSURMVHlwZSwgJGNvbnRlbnRB
dHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAgICRDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNs
dWRlc3siJHtuYW1lc3BhY2V9LmgifSA9IDE7Ci0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBs
ZW1lbnRhdGlvbiwgIiAgICBpbXBsJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFj
ZX0oKS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OiR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmli
dXRlTmFtZX1BdHRyLCAiIC4gam9pbigiLCAiLCBAc2V0dGVyUGFyYW1zKSAuICIpO1xuIik7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBzZXR0ZXJJbXBsZW1lbnRhdGlvbiwg
IiAgICBpbXBsJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZX0oKS0+JHtzZXR0
ZXJOYW1lfSgiIC4gam9pbigiLCAiLCBAc2V0dGVyUGFyYW1zKSAuICIpO1xuIik7Ci0gICAgICAg
IH0KLSAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgcmV0dXJuIFNfT0s7
XG4iKTsKLSAgICAgICAgcHVzaChAc2V0dGVySW1wbGVtZW50YXRpb24sICJ9XG5cbiIpOwotCi0g
ICAgICAgICRhdHRyYnV0ZXNUb1JldHVybnsiU2V0dGVyIn0gPSBqb2luKCIiLCBAc2V0dGVySW1w
bGVtZW50YXRpb24pOwotICAgIH0KLQotICAgIG15IEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiA9ICgp
OwotICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAkc2lnbmF0dXJlc3siR2V0dGVyIn0p
OwotICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAie1xuIik7Ci0gICAgcHVzaChAZ2V0
dGVySW1wbGVtZW50YXRpb24sICIgICAgaWYgKCFyZXN1bHQpXG4iKTsKLSAgICBwdXNoKEBnZXR0
ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjtcblxuIik7Ci0KLSAg
ICBteSAkaW1wbGVtZW50YXRpb25HZXR0ZXI7Ci0gICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgbXkgJHJl
ZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZWZsZWN0VVJMIn07Ci0gICAgaWYgKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSB7Ci0gICAgICAg
IG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVx
ICIxIikgPyAkYXR0cmlidXRlTmFtZSA6ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAg
ICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRl
TmFtZSgkSURMVHlwZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgJGltcGxJbmNs
dWRlc3siJHtuYW1lc3BhY2V9LmgifSA9IDE7Ci0gICAgICAgIG15ICRnZXRBdHRyaWJ1dGVGdW5j
dGlvbk5hbWUgPSAkcmVmbGVjdFVSTCA/ICJnZXRVUkxBdHRyaWJ1dGUiIDogImdldEF0dHJpYnV0
ZSI7Ci0gICAgICAgICRpbXBsZW1lbnRhdGlvbkdldHRlciA9ICJpbXBsJHtpbXBsZW1lbnRhdGlv
bkNsYXNzV2l0aG91dE5hbWVzcGFjZX0oKS0+JHtnZXRBdHRyaWJ1dGVGdW5jdGlvbk5hbWV9KFdl
YkNvcmU6OiR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyKSI7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgJGltcGxlbWVudGF0aW9uR2V0dGVyID0gImltcGwke2ltcGxlbWVu
dGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlfSgpLT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJGF0dHJpYnV0ZU5hbWUpIC4gIigiIC4gKCRoYXNHZXR0ZXJFeGNlcHRpb24gPyAiZWMi
IDogIiIpLiAiKSI7Ci0gICAgfQotCi0gICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiAkaGFzR2V0dGVyRXhjZXB0
aW9uOwotCi0gICAgaWYgKCRhdHRyaWJ1dGVUeXBlSXNTdHJpbmcpIHsKLSAgICAgICAgcHVzaChA
Z2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgKnJlc3VsdCA9IFdlYkNvcmU6OkJTdHJpbmcoJHtp
bXBsZW1lbnRhdGlvbkdldHRlcn0pLnJlbGVhc2UoKTtcbiIpOwotICAgIH0gZWxzaWYgKCRhdHRy
aWJ1dGVUeXBlSXNQcmltaXRpdmUpIHsKLSAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0pIHsKLSAgICAgICAg
ICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAiICAgICpyZXN1bHQgPSBzdGF0aWNfY2Fz
dDwke2F0dHJpYnV0ZVR5cGVDT01DbGFzc05hbWV9Pigke2ltcGxlbWVudGF0aW9uR2V0dGVyfS50
b0ludCgpKTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAZ2V0dGVy
SW1wbGVtZW50YXRpb24sICIgICAgKnJlc3VsdCA9IHN0YXRpY19jYXN0PCR7YXR0cmlidXRlVHlw
ZUNPTUNsYXNzTmFtZX0+KCR7aW1wbGVtZW50YXRpb25HZXR0ZXJ9KTtcbiIpOwotICAgICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgJENQUEltcGxlbWVudGF0aW9uSW5jbHVkZXNBbmdsZXsi
d3RmL0dldFB0ci5oIn0gPSAxOwotICAgICAgICBteSAkYXR0cmlidXRlVHlwZUNPTUludGVyZmFj
ZU5hbWUgPSBHZXRJbnRlcmZhY2VOYW1lKCRhdHRyaWJ1dGVJRExUeXBlKTsKLSAgICAgICAgcHVz
aChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgKnJlc3VsdCA9IDA7XG4iKTsKLSAgICAgICAg
cHVzaChAZ2V0dGVySW1wbGVtZW50YXRpb24sICIgICAgJHthdHRyaWJ1dGVJbXBsZW1lbnRhdGlv
blR5cGV9KiByZXN1bHRJbXBsID0gV1RGOjpnZXRQdHIoJHtpbXBsZW1lbnRhdGlvbkdldHRlcn0p
O1xuIik7Ci0gICAgICAgIHB1c2goQGdldHRlckltcGxlbWVudGF0aW9uLCAiICAgIGlmICghcmVz
dWx0SW1wbClcbiIpOwotICAgICAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlvbiwgIiAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjtcblxuIik7Ci0gICAgICAgIHB1c2goQGdldHRlckltcGxlbWVu
dGF0aW9uLCAiICAgICpyZXN1bHQgPSB0byR7YXR0cmlidXRlVHlwZUNPTUludGVyZmFjZU5hbWV9
KHJlc3VsdEltcGwpO1xuIik7Ci0gICAgfQotCi0gICAgIyBGSVhNRTogQ0hFQ0sgRVhDRVBUSU9O
IEFORCBETyBTT01FVEhJTkcgV0lUSCBJVAotCi0gICAgcHVzaChAZ2V0dGVySW1wbGVtZW50YXRp
b24sICIgICAgcmV0dXJuIFNfT0s7XG4iKTsKLSAgICBwdXNoKEBnZXR0ZXJJbXBsZW1lbnRhdGlv
biwgIn1cblxuIik7Ci0KLSAgICAkYXR0cmJ1dGVzVG9SZXR1cm57IkdldHRlciJ9ID0gam9pbigi
IiwgQGdldHRlckltcGxlbWVudGF0aW9uKTsKLQotICAgIHJldHVybiAlYXR0cmJ1dGVzVG9SZXR1
cm47Ci19Ci0KLXN1YiBHZW5lcmF0ZUNQUEZ1bmN0aW9uU2lnbmF0dXJlCi17Ci0gICAgbXkgKCRm
dW5jdGlvbiwgJGNsYXNzTmFtZSwgJG9wdGlvbnMpID0gQF87Ci0KLSAgICBteSAkZnVuY3Rpb25O
YW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgbXkgJHJldHVybklETFR5cGUg
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKLSAgICBteSAkcmV0dXJuVHlwZSA9IEdldENP
TVR5cGVPdXQoJHJldHVybklETFR5cGUpOwotICAgIG15ICRub1JldHVybiA9ICgkcmV0dXJuVHlw
ZSBlcSAidm9pZCIpOwotCi0gICAgbXkgJG5ld2xpbmUgPSAkJG9wdGlvbnN7Ik5ld0xpbmVzIn0g
PyAiXG4iIDogIiI7Ci0gICAgbXkgJGluZGVudCA9ICQkb3B0aW9uc3siSW5kZW50In0gPyAiICIg
eCAkJG9wdGlvbnN7IkluZGVudCJ9IDogIiI7Ci0gICAgbXkgJHNlbWljb2xvbiA9ICQkb3B0aW9u
c3siSW5jbHVkZVNlbWlDb2xvbiJ9ID8gIjsiIDogIiI7Ci0gICAgbXkgJHZpcnR1YWwgPSAkJG9w
dGlvbnN7IkFkZFZpcnR1YWxLZXl3b3JkIn0gPyAidmlydHVhbCAiIDogIiI7Ci0gICAgbXkgJGNs
YXNzID0gJCRvcHRpb25zeyJVc2VDbGFzc05hbWUifSA/ICIke2NsYXNzTmFtZX06OiIgOiAiIjsK
LSAgICBteSAkZm9yd2FyZGVyID0gJCRvcHRpb25zeyJGb3J3YXJkZXIifSA/IDEgOiAwOwotICAg
IG15ICRqb2luZXIgPSAoJCRvcHRpb25zeyJOZXdMaW5lcyJ9ID8gIlxuIiAuICRpbmRlbnQgLiAi
ICAgICIgOiAiICIpOwotCi0gICAgbXkgQHBhcmFtQXJnTGlzdCA9ICgpOwotICAgIGZvcmVhY2gg
bXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgbXkgJHBhcmFt
TmFtZSA9ICRwYXJhbS0+bmFtZTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldENPTVR5cGVJ
bigkcGFyYW0tPnR5cGUpOwotICAgICAgICBteSAkcGFyYW1ldGVyID0gIi8qIFtpbl0gKi8gJHtw
YXJhbVR5cGV9ICR7cGFyYW1OYW1lfSI7Ci0gICAgICAgIHB1c2goQHBhcmFtQXJnTGlzdCwgJHBh
cmFtZXRlcik7Ci0gICAgfQotCi0gICAgdW5sZXNzICgkbm9SZXR1cm4pIHsKLSAgICAgICAgbXkg
JHJlc3VsdFBhcmFtZXRlciAuPSAiLyogW291dCwgcmV0dmFsXSAqLyAke3JldHVyblR5cGV9KiBy
ZXN1bHQiOwotICAgICAgICBwdXNoKEBwYXJhbUFyZ0xpc3QsICRyZXN1bHRQYXJhbWV0ZXIpOwot
ICAgIH0KLQotICAgIG15ICRmdW5jdGlvblNpZyA9ICRpbmRlbnQgLiAkdmlydHVhbCAuICJIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFICIgLiAkY2xhc3MgLiAkZnVuY3Rpb25OYW1lIC4gIigiOwot
ICAgICRmdW5jdGlvblNpZyAuPSAkam9pbmVyIC4gam9pbigiLCIgLiAkam9pbmVyLCBAcGFyYW1B
cmdMaXN0KSBpZiBAcGFyYW1BcmdMaXN0ID4gMDsKLSAgICAkZnVuY3Rpb25TaWcgLj0gIikiIC4g
JHNlbWljb2xvbiAuICRuZXdsaW5lOwotICAgIGlmICgkZm9yd2FyZGVyKSB7Ci0gICAgICAgIG15
IEBwYXJhbU5hbWVMaXN0ID0gKCk7Ci0gICAgICAgIHB1c2goQHBhcmFtTmFtZUxpc3QsICRfLT5u
YW1lKSBmb3JlYWNoIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pOwotICAgICAgICBwdXNoKEBw
YXJhbU5hbWVMaXN0LCAicmVzdWx0IikgdW5sZXNzICRub1JldHVybjsKLSAgICAgICAgJGZ1bmN0
aW9uU2lnIC49ICIgeyByZXR1cm4gIiAuICQkb3B0aW9uc3siRm9yd2FyZGVyIn0gLiAiOjoiIC4g
JGZ1bmN0aW9uTmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtTmFtZUxpc3QpIC4gIik7IH1c
biI7Ci0gICAgfQotCi0gICAgcmV0dXJuICRmdW5jdGlvblNpZwotfQotCi1zdWIgR2VuZXJhdGVD
UFBGdW5jdGlvbgotewotICAgIG15ICgkZnVuY3Rpb24sICRjbGFzc05hbWUsICRpbXBsZW1lbnRh
dGlvbkNsYXNzKSA9IEBfOwotCi0gICAgbXkgQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24gPSAoKTsK
LQotICAgIG15ICRzaWduYXR1cmUgPSBHZW5lcmF0ZUNQUEZ1bmN0aW9uU2lnbmF0dXJlKCRmdW5j
dGlvbiwgJGNsYXNzTmFtZSwgeyAiTmV3TGluZXMiID0+IDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJ
bmRlbnQiID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRlU2VtaUNvbG9uIiA9PiAwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1lIiA9PiAxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
QWRkVmlydHVhbEtleXdvcmQiID0+IDAgfSk7Ci0KLSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFz
c1dpdGhvdXROYW1lc3BhY2UgPSBTdHJpcE5hbWVzcGFjZSgkaW1wbGVtZW50YXRpb25DbGFzcyk7
Ci0KLSAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7Ci0g
ICAgbXkgJHJldHVybklETFR5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKLSAgICBt
eSAkbm9SZXR1cm4gPSAoJHJldHVybklETFR5cGUgZXEgInZvaWQiKTsKLSAgICBteSAkcmFpc2Vz
RXhjZXB0aW9ucyA9IEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfTsKLQotICAgIEFkZElu
Y2x1ZGVzRm9yVHlwZUluQ1BQSW1wbGVtZW50YXRpb24oJHJldHVybklETFR5cGUpOwotICAgICRD
UFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxIGlm
ICRyYWlzZXNFeGNlcHRpb25zOwotCi0gICAgbXkgJW5lZWRzQ3VzdG9tID0gKCk7Ci0gICAgbXkg
QHBhcmFtZXRlckluaXRpYWxpemF0aW9uID0gKCk7Ci0gICAgbXkgQHBhcmFtZXRlckxpc3QgPSAo
KTsKLSAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0g
ICAgICAgIG15ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7Ci0gICAgICAgIG15ICRwYXJhbUlE
TFR5cGUgPSAkcGFyYW0tPnR5cGU7Ci0KLSAgICAgICAgbXkgJHBhcmFtVHlwZUlzUHJpbWl0aXZl
ID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkcGFyYW1JRExUeXBlKTsKLSAgICAg
ICAgbXkgJHBhcmFtVHlwZUlzU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgk
cGFyYW1JRExUeXBlKTsKLQotICAgICAgICAkbmVlZHNDdXN0b217Ik5vZGVUb1JldHVybiJ9ID0g
JHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKLQot
ICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkNQUEltcGxlbWVudGF0aW9uKCRwYXJhbUlETFR5
cGUpOwotCi0gICAgICAgICMgRklYTUU6IFdlIG1heSBuZWVkIHRvIG51bGwgY2hlY2sgdGhlIGFy
Z3VtZW50cyBhcyB3ZWxsCi0KLSAgICAgICAgaWYgKCRwYXJhbVR5cGVJc1N0cmluZykgewotICAg
ICAgICAgICAgcHVzaChAcGFyYW1ldGVyTGlzdCwgJHBhcmFtTmFtZSk7Ci0gICAgICAgIH0gZWxz
aWYgKCRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkgewotICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5
cGUgZXEgImJvb2xlYW4iKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTGlzdCwg
IiEhJHtwYXJhbU5hbWV9Iik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IG15ICRwcmltaXRpdmVJbXBsZW1lbnRhdGlvblR5cGUgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlv
blR5cGUoJHBhcmFtSURMVHlwZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTGlz
dCwgInN0YXRpY19jYXN0PCR7cHJpbWl0aXZlSW1wbGVtZW50YXRpb25UeXBlfT4oJHtwYXJhbU5h
bWV9KSIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJENQ
UEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVzeyJDT01QdHIuaCJ9ID0gMTsKLQotICAgICAg
ICAgICAgJG5lZWRzQ3VzdG9teyJDYW5SZXR1cm5FYXJseSJ9ID0gMTsKLQotICAgICAgICAgICAg
bXkgJHBhcmFtVHlwZUNPTUNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkcGFyYW1JRExUeXBlKTsK
LSAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJbXBsZW1lbnRhdGlvbldpdGhvdXROYW1lc3BhY2Ug
PSBTdHJpcE5hbWVzcGFjZShJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5cGUoJHBhcmFtSURMVHlw
ZSkpOwotICAgICAgICAgICAgbXkgJHB0ck5hbWUgPSAicHRyRm9yIiAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRwYXJhbU5hbWUpOwotICAgICAgICAgICAgbXkgJHBhcmFtSW5pdCA9ICIg
ICAgQ09NUHRyPCR7cGFyYW1UeXBlQ09NQ2xhc3NOYW1lfT4gJHtwdHJOYW1lfShRdWVyeSwgJHtw
YXJhbU5hbWV9KTtcbiI7Ci0gICAgICAgICAgICAkcGFyYW1Jbml0IC49ICIgICAgaWYgKCEke3B0
ck5hbWV9KVxuIjsKLSAgICAgICAgICAgICRwYXJhbUluaXQgLj0gIiAgICAgICAgcmV0dXJuIEVf
Tk9JTlRFUkZBQ0U7IjsKLSAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlckluaXRpYWxpemF0aW9u
LCAkcGFyYW1Jbml0KTsKLSAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlckxpc3QsICIke3B0ck5h
bWV9LT5pbXBsJHtwYXJhbVR5cGVJbXBsZW1lbnRhdGlvbldpdGhvdXROYW1lc3BhY2V9KCkiKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIHB1c2goQHBhcmFtZXRlckxpc3QsICJlYyIpIGlmICRy
YWlzZXNFeGNlcHRpb25zOwotCi0gICAgbXkgJGltcGxlbWVudGF0aW9uR2V0dGVyID0gImltcGwk
e2ltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlfSgpIjsKLQotICAgIG15ICRjYWxs
U2lnQmVnaW4gPSAiICAgICI7Ci0gICAgbXkgJGNhbGxTaWdNaWRkbGUgPSAiJHtpbXBsZW1lbnRh
dGlvbkdldHRlcn0tPiIgLiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1l
KSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtZXRlckxpc3QpIC4gIikiOwotICAgIG15ICRjYWxs
U2lnRW5kID0gIjtcbiI7Ci0KLSAgICBpZiAoZGVmaW5lZCAkbmVlZHNDdXN0b217Ik5vZGVUb1Jl
dHVybiJ9KSB7Ci0gICAgICAgIG15ICRub2RlVG9SZXR1cm4gPSAkbmVlZHNDdXN0b217Ik5vZGVU
b1JldHVybiJ9OwotICAgICAgICAkY2FsbFNpZ0JlZ2luIC49ICJpZiAoIjsKLSAgICAgICAgJGNh
bGxTaWdFbmQgPSAiKVxuIjsKLSAgICAgICAgJGNhbGxTaWdFbmQgLj0gIiAgICAgICAgKnJlc3Vs
dCA9ICR7bm9kZVRvUmV0dXJufTsiOwotICAgIH0gZWxzaWYgKCEkbm9SZXR1cm4pIHsKLSAgICAg
ICAgbXkgJHJldHVyblR5cGVJc1N0cmluZyA9ICAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBl
KCRyZXR1cm5JRExUeXBlKTsKLSAgICAgICAgbXkgJHJldHVyblR5cGVJc1ByaW1pdGl2ZSA9ICRj
b2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHJldHVybklETFR5cGUpOwotCi0gICAgICAg
IGlmICgkcmV0dXJuVHlwZUlzU3RyaW5nKSB7Ci0gICAgICAgICAgICAkY2FsbFNpZ0JlZ2luIC49
ICIqcmVzdWx0ID0gV2ViQ29yZTo6QlN0cmluZygiOwotICAgICAgICAgICAgJGNhbGxTaWdFbmQg
PSAiKS5yZWxlYXNlKCk7XG4iOwotICAgICAgICB9IGVsc2lmICgkcmV0dXJuVHlwZUlzUHJpbWl0
aXZlKSB7Ci0gICAgICAgICAgICBteSAkcHJpbWl0aXZlQ09NVHlwZSA9IEdldENsYXNzTmFtZSgk
cmV0dXJuSURMVHlwZSk7Ci0gICAgICAgICAgICAkY2FsbFNpZ0JlZ2luIC49ICIqcmVzdWx0ID0g
c3RhdGljX2Nhc3Q8JHtwcmltaXRpdmVDT01UeXBlfT4oIjsKLSAgICAgICAgICAgICRjYWxsU2ln
RW5kID0gIik7IjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRDUFBJbXBsZW1lbnRh
dGlvbkluY2x1ZGVzQW5nbGV7Ind0Zi9HZXRQdHIuaCJ9ID0gMTsKLSAgICAgICAgICAgIG15ICRy
ZXR1cm5JbXBsZW1lbnRhdGlvblR5cGUgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5cGUoJHJl
dHVybklETFR5cGUpOwotICAgICAgICAgICAgbXkgJHJldHVyblR5cGVDT01JbnRlcmZhY2VOYW1l
ID0gR2V0SW50ZXJmYWNlTmFtZSgkcmV0dXJuSURMVHlwZSk7Ci0gICAgICAgICAgICAkY2FsbFNp
Z0JlZ2luIC49ICIke3JldHVybkltcGxlbWVudGF0aW9uVHlwZX0qIHJlc3VsdEltcGwgPSBXVEY6
OmdldFB0cigiOwotICAgICAgICAgICAgJGNhbGxTaWdFbmQgPSAiKTtcbiI7Ci0gICAgICAgICAg
ICAkY2FsbFNpZ0VuZCAuPSAiICAgIGlmICghcmVzdWx0SW1wbClcbiI7Ci0gICAgICAgICAgICAk
Y2FsbFNpZ0VuZCAuPSAiICAgICAgICByZXR1cm4gRV9QT0lOVEVSO1xuXG4iOwotICAgICAgICAg
ICAgJGNhbGxTaWdFbmQgLj0gIiAgICAqcmVzdWx0ID0gdG8ke3JldHVyblR5cGVDT01JbnRlcmZh
Y2VOYW1lfShyZXN1bHRJbXBsKTsiOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVzaChAZnVu
Y3Rpb25JbXBsZW1lbnRhdGlvbiwgJHNpZ25hdHVyZSk7Ci0gICAgcHVzaChAZnVuY3Rpb25JbXBs
ZW1lbnRhdGlvbiwgIntcbiIpOwotICAgIHVubGVzcyAoJG5vUmV0dXJuKSB7Ci0gICAgICAgIHB1
c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICIgICAgaWYgKCFyZXN1bHQpXG4iKTsKLSAgICAg
ICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiwgIiAgICAgICAgcmV0dXJuIEVfUE9JTlRF
UjtcblxuIik7Ci0gICAgICAgIHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICIgICAgKnJl
c3VsdCA9IDA7XG5cbiIpIGlmICRuZWVkc0N1c3RvbXsiQ2FuUmV0dXJuRWFybHkifTsKLSAgICB9
Ci0gICAgcHVzaChAZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiwgIiAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDtcbiIpIGlmICRyYWlzZXNFeGNlcHRpb25zOyAjIEZJWE1FOiBDSEVDSyBF
WENFUFRJT04gQU5EIERPIFNPTUVUSElORyBXSVRIIElUCi0gICAgcHVzaChAZnVuY3Rpb25JbXBs
ZW1lbnRhdGlvbiwgam9pbigiXG4iLCBAcGFyYW1ldGVySW5pdGlhbGl6YXRpb24pIC4gKEBwYXJh
bWV0ZXJJbml0aWFsaXphdGlvbiA+IDAgPyAiXG4iIDogIiIpKTsKLSAgICBwdXNoKEBmdW5jdGlv
bkltcGxlbWVudGF0aW9uLCAkY2FsbFNpZ0JlZ2luIC4gJGNhbGxTaWdNaWRkbGUgLiAkY2FsbFNp
Z0VuZCAuICJcbiIpOwotICAgIHB1c2goQGZ1bmN0aW9uSW1wbGVtZW50YXRpb24sICIgICAgcmV0
dXJuIFNfT0s7XG4iKTsKLSAgICBwdXNoKEBmdW5jdGlvbkltcGxlbWVudGF0aW9uLCAifVxuXG4i
KTsKLQotICAgIHJldHVybiBqb2luKCIiLCBAZnVuY3Rpb25JbXBsZW1lbnRhdGlvbik7Ci19Ci0K
LQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyAgICBDUFAgSGVhZGVyCi0jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLXN1YiBHZW5lcmF0ZUNQUEhlYWRlcgotewotICAgIG15ICgkb2JqZWN0LCAk
ZGF0YU5vZGUpID0gQF87Ci0KLSAgICBteSAkSURMVHlwZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAg
ICBteSAkaW1wbGVtZW50YXRpb25DbGFzcyA9IElETFR5cGVUb0ltcGxlbWVudGF0aW9uVHlwZSgk
SURMVHlwZSk7Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NXaXRob3V0TmFtZXNwYWNlID0g
U3RyaXBOYW1lc3BhY2UoJGltcGxlbWVudGF0aW9uQ2xhc3MpOwotICAgIG15ICRjbGFzc05hbWUg
PSBHZXRDbGFzc05hbWUoJElETFR5cGUpOwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gR2V0SW50
ZXJmYWNlTmFtZSgkSURMVHlwZSk7Ci0KLSAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFy
ZW50Q2xhc3MoJGRhdGFOb2RlKTsKLSAgICBteSBAb3RoZXJJbnRlcmZhY2VzSW1wbGVtZW50ZWQg
PSBHZXRBZGRpdGlvbmFsSW50ZXJmYWNlcygkSURMVHlwZSk7Ci0gICAgZm9yZWFjaCBteSAkb3Ro
ZXJJbnRlcmZhY2UgKEBvdGhlckludGVyZmFjZXNJbXBsZW1lbnRlZCkgewotICAgICAgICBwdXNo
KEBhZGRpdGlvbmFsSW50ZXJmYWNlRGVmaW5pdGlvbnMsICRjb2RlR2VuZXJhdG9yLT5QYXJzZUlu
dGVyZmFjZSgkb3RoZXJJbnRlcmZhY2UpKTsKLSAgICB9Ci0KLSAgICAjIEZJWE1FOiBzdHJpcCB3
aGl0ZXNwYWNlIGZyb20gVVVJRAotICAgIG15ICR1dWlkID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25VVUlEIn0gfHwgZGllICJBbGwgY2xhc3NlcyByZXF1
aXJlIGFuIEltcGxlbWVudGF0aW9uVVVJRCBleHRlbmRlZCBhdHRyaWJ1dGUuIjsKLQotICAgIG15
ICRudW1BdHRyaWJ1dGVzID0gQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9OwotICAgIG15ICRudW1G
dW5jdGlvbnMgPSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfTsKLQotICAgICMgLSBBZGQgZGVmYXVs
dCBoZWFkZXIgdGVtcGxhdGUKLSAgICBAQ1BQSGVhZGVySGVhZGVyID0gQGxpY2Vuc2VUZW1wbGF0
ZTsKLSAgICBwdXNoKEBDUFBIZWFkZXJIZWFkZXIsICJcbiIpOwotCi0gICAgIyAtIEhlYWRlciBn
dWFyZHMgLQotICAgIHB1c2goQENQUEhlYWRlckhlYWRlciwgIiNpZm5kZWYgIiAuICRjbGFzc05h
bWUgLiAiX2hcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckhlYWRlciwgIiNkZWZpbmUgIiAuICRj
bGFzc05hbWUgLiAiX2hcblxuIik7Ci0KLSAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkNQUEhlYWRl
cigkaW50ZXJmYWNlTmFtZSk7Ci0gICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBIZWFkZXIoJHBh
cmVudENsYXNzTmFtZSk7Ci0gICAgJENQUEhlYWRlckRvbnRGb3J3YXJkRGVjbGFyYXRpb25zeyRj
bGFzc05hbWV9ID0gMTsKLSAgICAkQ1BQSGVhZGVyRG9udEZvcndhcmREZWNsYXJhdGlvbnN7JGlu
dGVyZmFjZU5hbWV9ID0gMTsKLSAgICAkQ1BQSGVhZGVyRG9udEZvcndhcmREZWNsYXJhdGlvbnN7
JHBhcmVudENsYXNzTmFtZX0gPSAxOwotCi0gICAgIyAtLSBGb3J3YXJkIGRlY2xhcmUgaW1wbGVt
ZW50YXRpb24gdHlwZQotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJuYW1lc3BhY2UgV2Vi
Q29yZSB7XG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgIGNsYXNzICIuIFN0
cmlwTmFtZXNwYWNlKCRpbXBsZW1lbnRhdGlvbkNsYXNzKSAuICI7XG4iKTsKLSAgICBwdXNoKEBD
UFBIZWFkZXJDb250ZW50LCAifVxuXG4iKTsKLQotICAgICMgLS0gU3RhcnQgQ2xhc3MgLS0KLSAg
ICBteSBAcGFyZW50c0NsYXNzZXMgPSAoJHBhcmVudENsYXNzTmFtZSwgJGludGVyZmFjZU5hbWUp
OwotICAgIHB1c2goQHBhcmVudHNDbGFzc2VzLCBtYXAgeyBHZXRJbnRlcmZhY2VOYW1lKCRfKSB9
IEBvdGhlckludGVyZmFjZXNJbXBsZW1lbnRlZCk7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgImNsYXNzIF9fZGVjbHNwZWModXVpZChcIiR1dWlkXCIpKSAke2NsYXNzTmFtZX0gOiAiIC4g
am9pbigiLCAiLCBtYXAgeyAicHVibGljICRfIiB9IEBwYXJlbnRzQ2xhc3NlcykgLiAiIHtcbiIp
OwotCi0gICAgIyBBZGQgaW5jbHVkZXMgZm9yIGFsbCBhZGRpdGlvbmFsIGludGVyZmFjZXMgdG8g
aW1wbGVtZW50Ci0gICAgbWFwIHsgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBIZWFkZXIoR2V0SW50
ZXJmYWNlTmFtZSgkXykpIH0gQG90aGVySW50ZXJmYWNlc0ltcGxlbWVudGVkOwotCi0gICAgIyAt
LSBCQVNJQ1MgLS0KLSAgICAjIEZJWE1FOiBUaGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3Ig
c2hvdWxkIGJlIHByb3RlY3RlZCwgYnV0IHRoZSBjdXJyZW50IGRlc2lnbiBvZgotICAgICMgY3Jl
YXRlSW5zdGFuY2UgcmVxdWlyZXMgdGhlbSB0byBiZSBwdWJsaWMuICBPbmUgc29sdXRpb24gaXMg
dG8gZnJpZW5kIHRoZSBjb25zdHJ1Y3RvcgotICAgICMgb2YgdGhlIHRvcC1sZXZlbC1jbGFzcyB3
aXRoIGV2ZXJ5IG9uZSBvZiBpdHMgY2hpbGQgY2xhc3NlcywgYnV0IHRoYXQgcmVxdWlyZXMgaW5m
b3JtYXRpb24KLSAgICAjIHRoaXMgc2NyaXB0IGN1cnJlbnRseSBkb2VzIG5vdCBoYXZlLCB0aG91
Z2ggcG9zc2libHkgY291bGQgZGV0ZXJtaW5lLgotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQs
ICJwdWJsaWM6XG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAgJHtjbGFzc05h
bWV9KCR7aW1wbGVtZW50YXRpb25DbGFzc30qKTtcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNv
bnRlbnQsICIgICB2aXJ0dWFsIH4ke2NsYXNzTmFtZX0oKTtcblxuIik7Ci0KLSAgICBwdXNoKEBD
UFBIZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgJHtjbGFzc05hbWV9KiBjcmVhdGVJbnN0YW5jZSgke2ltcGxlbWVudGF0
aW9uQ2xhc3N9Kik7XG5cbiIpOwotCi0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAv
LyBJVW5rbm93blxuIik7Ci0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlELCB2b2lkKiog
cHB2T2JqZWN0KTtcbiIpOwotICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgdmlydHVh
bCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiAke3BhcmVudENsYXNz
TmFtZX06OkFkZFJlZigpOyB9XG4iKTsKLSAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAg
IHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuICR7cGFy
ZW50Q2xhc3NOYW1lfTo6UmVsZWFzZSgpOyB9XG5cbiIpOwotCi0KLSAgICAjIC0tIFBhcmVudCBD
bGFzcyBGb3J3YXJkcyAtLQotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30pIHsKLSAgICAg
ICAgbXkgJWF0dHJpYnV0ZU5hbWVTZXQgPSBtYXAgeygkXy0+c2lnbmF0dXJlLT5uYW1lLCAxKX0g
QHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9OwotICAgICAgICBteSAlZnVuY3Rpb25OYW1lU2V0ID0g
bWFwIHsoJF8tPnNpZ25hdHVyZS0+bmFtZSwgMSl9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9Owot
Ci0gICAgICAgIG15IEBwYXJlbnRMaXN0cyA9ICRjb2RlR2VuZXJhdG9yLT5HZXRNZXRob2RzQW5k
QXR0cmlidXRlc0Zyb21QYXJlbnRDbGFzc2VzKCRkYXRhTm9kZSk7Ci0gICAgICAgIHB1c2goQENQ
UEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICBmb3JlYWNoIG15ICRwYXJlbnRIYXNoIChA
cGFyZW50TGlzdHMpIHsKLQotICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAg
ICAvLyAiIC4gR2V0SW50ZXJmYWNlTmFtZSgkcGFyZW50SGFzaC0+eyduYW1lJ30pIC4gJERBU0hF
UyAuICJcbiIpOwotCi0gICAgICAgICAgICBteSBAYXR0cmlidXRlTGlzdCA9IEB7JHBhcmVudEhh
c2gtPnsnYXR0cmlidXRlcyd9fTsKLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQs
ICIgICAgLy8gQXR0cmlidXRlc1xuIik7Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEBhdHRyaWJ1dGVMaXN0KSB7Ci0gICAgICAgICAgICAgICAgIyBEb24ndCBmb3J3YXJkIGFu
IGF0dHJpYnV0ZSB0aGF0IHRoaXMgY2xhc3MgcmVkZWZpbmVzLgotICAgICAgICAgICAgICAgIG5l
eHQgaWYgJGF0dHJpYnV0ZU5hbWVTZXR7JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lfTsKLQot
ICAgICAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLQotICAgICAgICAgICAgICAgIG15ICVhdHRy
aWJ1dGVzID0gR2VuZXJhdGVDUFBBdHRyaWJ1dGVTaWduYXR1cmUoJGF0dHJpYnV0ZSwgJGNsYXNz
TmFtZSwgeyAiTmV3TGluZXMiID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJJbmRlbnQiID0+IDQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRl
U2VtaUNvbG9uIiA9PiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmly
dHVhbEtleXdvcmQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VD
bGFzc05hbWUiID0+IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3J3YXJk
ZXIiID0+ICRwYXJlbnRDbGFzc05hbWUgfSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVh
ZGVyQ29udGVudCwgdmFsdWVzKCVhdHRyaWJ1dGVzKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICMgQWRkIGF0dHJpYnV0ZSBuYW1lcyB0byBhdHRyaWJ1dGUgbmFtZXMgc2V0IGluIGNh
c2Ugb3RoZXIgYW5jZXN0b3JzIAotICAgICAgICAgICAgIyBhbHNvIGRlZmluZSB0aGVtLgotICAg
ICAgICAgICAgJGF0dHJpYnV0ZU5hbWVTZXR7JF8tPnNpZ25hdHVyZS0+bmFtZX0gPSAxIGZvcmVh
Y2ggQGF0dHJpYnV0ZUxpc3Q7Ci0KLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQs
ICJcbiIpOwotCi0gICAgICAgICAgICBteSBAZnVuY3Rpb25MaXN0ID0gQHskcGFyZW50SGFzaC0+
eydmdW5jdGlvbnMnfX07Ci0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAiICAg
IC8vIEZ1bmN0aW9uc1xuIik7Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQGZ1
bmN0aW9uTGlzdCkgewotICAgICAgICAgICAgICAgICMgRG9uJ3QgZm9yd2FyZCBhIGZ1bmN0aW9u
IHRoYXQgdGhpcyBjbGFzcyByZWRlZmluZXMuCi0gICAgICAgICAgICAgICAgbmV4dCBpZiAkZnVu
Y3Rpb25OYW1lU2V0eyRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lfTsKLQotICAgICAgICAgICAg
ICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNG
b3JUeXBlSW5DUFBIZWFkZXIoJF8tPnR5cGUpIGZvcmVhY2ggKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSk7Ci0KLSAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSBHZW5lcmF0ZUNQUEZ1
bmN0aW9uU2lnbmF0dXJlKCRmdW5jdGlvbiwgJGNsYXNzTmFtZSwgeyAiTmV3TGluZXMiID0+IDAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGVudCIgPT4gNCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4gMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmlydHVhbEtleXdvcmQiID0+IDEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiRm9yd2FyZGVyIiA9PiAkcGFyZW50Q2xhc3NOYW1lIH0pOwot
Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgJGZ1bmN0aW9uU2lnKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMgQWRkIGZ1bmN0aW9ucyBuYW1lcyB0byBmdW5j
dGlvbnMgbmFtZXMgc2V0IGluIGNhc2Ugb3RoZXIgYW5jZXN0b3JzIAotICAgICAgICAgICAgIyBh
bHNvIGRlZmluZSB0aGVtLgotICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZVNldHskXy0+c2lnbmF0
dXJlLT5uYW1lfSA9IDEgZm9yZWFjaCBAZnVuY3Rpb25MaXN0OwotCi0gICAgICAgICAgICBwdXNo
KEBDUFBIZWFkZXJDb250ZW50LCAiXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgICMgLSBB
ZGRpdGlvbmFsIGludGVyZmFjZXMgdG8gaW1wbGVtZW50IC0KLSAgICBmb3JlYWNoIG15ICRpbnRl
cmZhY2VUb0ltcGxlbWVudCAoQGFkZGl0aW9uYWxJbnRlcmZhY2VEZWZpbml0aW9ucykgewotICAg
ICAgICBteSAkSURMVHlwZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQgPSAkaW50ZXJmYWNlVG9JbXBs
ZW1lbnQtPm5hbWU7Ci0gICAgICAgIG15ICRuYW1lT2ZJbnRlcmZhY2VUb0ltcGxlbWVudCA9IEdl
dEludGVyZmFjZU5hbWUoJElETFR5cGVPZkludGVyZmFjZVRvSW1wbGVtZW50KTsKLSAgICAgICAg
bXkgJG51bUF0dHJpYnV0ZXNJbkludGVyZmFjZSA9IEB7JGludGVyZmFjZVRvSW1wbGVtZW50LT5h
dHRyaWJ1dGVzfTsKLSAgICAgICAgbXkgJG51bUZ1bmN0aW9uc0luSW50ZXJmYWNlID0gQHskaW50
ZXJmYWNlVG9JbXBsZW1lbnQtPmZ1bmN0aW9uc307Ci0KLSAgICAgICAgcHVzaChAQ1BQSGVhZGVy
Q29udGVudCwgIiAgICAvLyAke25hbWVPZkludGVyZmFjZVRvSW1wbGVtZW50fSAke0RBU0hFU31c
blxuIik7Ci0KLSAgICAgICAgIyAtIEFkZCBhdHRyaWJ1dGUgZ2V0dGVycy9zZXR0ZXJzLgotICAg
ICAgICBpZiAoJG51bUF0dHJpYnV0ZXNJbkludGVyZmFjZSA+IDApIHsKLSAgICAgICAgICAgIHB1
c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8gQXR0cmlidXRlc1xuXG4iKTsKLSAgICAgICAg
ICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlVG9JbXBsZW1lbnQtPmF0dHJp
YnV0ZXN9KSB7Ci0gICAgICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJ
bkNQUEhlYWRlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwotCi0gICAgICAgICAgICAg
ICAgbXkgJWF0dHJpYnV0ZVNpZ3MgPSBHZW5lcmF0ZUNQUEF0dHJpYnV0ZVNpZ25hdHVyZSgkYXR0
cmlidXRlLCAkY2xhc3NOYW1lLCB7ICJOZXdMaW5lcyIgPT4gMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkluZGVudCIgPT4gNCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkluY2x1ZGVTZW1pQ29sb24iID0+IDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIgPT4gMSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCB9KTsKLQotICAgICAgICAg
ICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsIHZhbHVlcyglYXR0cmlidXRlU2lncykpOwot
ICAgICAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgIyAtIEFkZCBmdW5jdGlvbnMuCi0gICAgICAgIGlm
ICgkbnVtRnVuY3Rpb25zSW5JbnRlcmZhY2UgPiAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBDUFBI
ZWFkZXJDb250ZW50LCAiICAgIC8vIEZ1bmN0aW9uc1xuXG4iKTsKLSAgICAgICAgICAgIGZvcmVh
Y2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2VUb0ltcGxlbWVudC0+ZnVuY3Rpb25zfSkgewot
ICAgICAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgICAgIEFkZEZvcndhcmRE
ZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIoJF8tPnR5cGUpIGZvcmVhY2ggKEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfSk7Ci0KLSAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSBH
ZW5lcmF0ZUNQUEZ1bmN0aW9uU2lnbmF0dXJlKCRmdW5jdGlvbiwgJGNsYXNzTmFtZSwgeyAiTmV3
TGluZXMiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGVudCIgPT4g
NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5jbHVkZVNlbWlDb2xvbiIgPT4g
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWRkVmlydHVhbEtleXdvcmQiID0+
IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCB9
KTsKLQotICAgICAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICRmdW5jdGlvblNp
Zyk7Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIlxuIik7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAw
IHx8ICRudW1GdW5jdGlvbnMgPiAwKSB7Ci0gICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQs
ICIgICAgLy8gJHtpbnRlcmZhY2VOYW1lfSAke0RBU0hFU31cblxuIik7Ci0gICAgfQotCi0gICAg
IyAtIEFkZCBjb25zdGFudHMgQ09NSU5HIFNPT04KLQotICAgICMgLSBBZGQgYXR0cmlidXRlIGdl
dHRlcnMvc2V0dGVycy4KLSAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7Ci0gICAgICAgIHB1
c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8gQXR0cmlidXRlc1xuXG4iKTsKLSAgICAgICAg
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAg
ICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlSW5DUFBIZWFkZXIoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlKTsKLQotICAgICAgICAgICAgbXkgJWF0dHJpYnV0ZVNpZ3MgPSBH
ZW5lcmF0ZUNQUEF0dHJpYnV0ZVNpZ25hdHVyZSgkYXR0cmlidXRlLCAkY2xhc3NOYW1lLCB7ICJO
ZXdMaW5lcyIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZW50IiA9
PiA0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRlU2VtaUNvbG9uIiA9
PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZGRWaXJ0dWFsS2V5d29yZCIg
PT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlQ2xhc3NOYW1lIiA9PiAw
IH0pOwotCi0gICAgICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCB2YWx1ZXMoJWF0dHJp
YnV0ZVNpZ3MpKTsKLSAgICAgICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJcbiIpOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgIyAtIEFkZCBmdW5jdGlvbnMuCi0gICAgaWYgKCRudW1G
dW5jdGlvbnMgPiAwKSB7Ci0gICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgLy8g
RnVuY3Rpb25zXG5cbiIpOwotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgICAgIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JU
eXBlSW5DUFBIZWFkZXIoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAg
QWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGVJbkNQUEhlYWRlcigkXy0+dHlwZSkgZm9yZWFj
aCAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KTsKLQotICAgICAgICAgICAgbXkgJGZ1bmN0aW9u
U2lnID0gR2VuZXJhdGVDUFBGdW5jdGlvblNpZ25hdHVyZSgkZnVuY3Rpb24sICRjbGFzc05hbWUs
IHsgIk5ld0xpbmVzIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGVudCIg
PT4gNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNsdWRlU2VtaUNvbG9uIiA9PiAx
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFkZFZpcnR1YWxLZXl3b3JkIiA9PiAxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZUNsYXNzTmFtZSIgPT4gMCB9KTsKLQotICAg
ICAgICAgICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgJGZ1bmN0aW9uU2lnKTsKLSAgICAgICAg
ICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiAgICAke2ltcGxlbWVudGF0aW9uQ2xhc3N9KiBp
bXBsJHtpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZX0oKSBjb25zdDtcbiIpOwot
Ci0gICAgaWYgKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA9PSAwKSB7Ci0gICAgICAgIEFkZEluY2x1
ZGVzRm9yVHlwZUluQ1BQSGVhZGVyKCJ3dGYvUmVmUHRyIiwgMSk7Ci0gICAgICAgIHB1c2goQENQ
UEhlYWRlckNvbnRlbnQsICJcbiIpOwotICAgICAgICBwdXNoKEBDUFBIZWFkZXJDb250ZW50LCAi
ICAgICR7aW1wbGVtZW50YXRpb25DbGFzc30qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH1cblxuIik7Ci0gICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICJwcml2YXRl
OlxuIik7Ci0gICAgICAgIHB1c2goQENQUEhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRyPCR7aW1w
bGVtZW50YXRpb25DbGFzc30+IG1faW1wbDtcbiIpOwotICAgIH0KLQotICAgICMgLS0gRW5kIENs
YXNzIC0tCi0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwotCi0gICAgIyAt
LSBEZWZhdWx0IEludGVyZmFjZSBDcmVhdG9yIC0tCi0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVu
dCwgIiR7aW50ZXJmYWNlTmFtZX0qIHRvJHtpbnRlcmZhY2VOYW1lfSgke2ltcGxlbWVudGF0aW9u
Q2xhc3N9Kik7XG5cbiIpOwotCi0gICAgcHVzaChAQ1BQSGVhZGVyQ29udGVudCwgIiNlbmRpZiAv
LyAiIC4gJGNsYXNzTmFtZSAuICJfaFxuIik7Ci19Ci0KLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyAgICBDUFAgSW1wbGVtZW50YXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3Vi
IEdlbmVyYXRlQ1BQSW1wbGVtZW50YXRpb24KLXsKLSAgICBteSAoJG9iamVjdCwgJGRhdGFOb2Rl
KSA9IEBfOwotCi0gICAgbXkgJElETFR5cGUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkgJGlt
cGxlbWVudGF0aW9uQ2xhc3MgPSBJRExUeXBlVG9JbXBsZW1lbnRhdGlvblR5cGUoJElETFR5cGUp
OwotICAgIG15ICRpbXBsZW1lbnRhdGlvbkNsYXNzV2l0aG91dE5hbWVzcGFjZSA9IFN0cmlwTmFt
ZXNwYWNlKCRpbXBsZW1lbnRhdGlvbkNsYXNzKTsKLSAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xh
c3NOYW1lKCRJRExUeXBlKTsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IEdldEludGVyZmFjZU5h
bWUoJElETFR5cGUpOwotCi0gICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENsYXNz
KCRkYXRhTm9kZSk7Ci0gICAgbXkgJGlzQmFzZUNsYXNzID0gKEB7JGRhdGFOb2RlLT5wYXJlbnRz
fSA9PSAwKTsKLQotICAgIG15ICR1dWlkID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSW1wbGVtZW50YXRpb25VVUlEIn0gfHwgZGllICJBbGwgY2xhc3NlcyByZXF1aXJlIGFuIElt
cGxlbWVudGF0aW9uVVVJRCBleHRlbmRlZCBhdHRyaWJ1dGUuIjsKLQotICAgIG15ICRudW1BdHRy
aWJ1dGVzID0gQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9OwotICAgIG15ICRudW1GdW5jdGlvbnMg
PSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfTsKLQotICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIg
dGVtcGxhdGUKLSAgICBAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXIgPSBAbGljZW5zZVRlbXBsYXRl
OwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uSGVhZGVyLCAiXG4iKTsKLQotICAgIHB1c2go
QENQUEltcGxlbWVudGF0aW9uSGVhZGVyLCAiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKTsKLSAg
ICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRlciwgIiNpbmNsdWRlIFwiV2ViS2l0RExMLmhc
IlxuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25IZWFkZXIsICIjaW5jbHVkZSAiIC4g
KCRjbGFzc05hbWUgZXEgIkdFTl9ET01JbXBsZW1lbnRhdGlvbiIgPyAiXCJHRU5fRE9NRE9NSW1w
bGVtZW50YXRpb24uaFwiIiA6ICJcIiR7Y2xhc3NOYW1lfS5oXCIiKSAuICJcbiIpOwotICAgICRD
UFBJbXBsZW1lbnRhdGlvbkRvbnRJbmNsdWRlc3siJHtjbGFzc05hbWV9LmgifSA9IDE7Ci0gICAg
JENQUEltcGxlbWVudGF0aW9uV2ViQ29yZUluY2x1ZGVzeyIke2ltcGxlbWVudGF0aW9uQ2xhc3NX
aXRob3V0TmFtZXNwYWNlfS5oIn0gPSAxOwotCi0gICAgIyAtLSBDb25zdHJ1Y3RvciAtLQotICAg
IHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JHtjbGFzc05h
bWV9KCR7aW1wbGVtZW50YXRpb25DbGFzc30qIGltcGwpXG4iKTsKLSAgICBpZiAoJGlzQmFzZUNs
YXNzKSB7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICA6IG1f
aW1wbChpbXBsKVxuIik7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwg
IntcbiIpOwotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgQVNT
RVJUX0FSRyhpbXBsLCBpbXBsKTtcbiIpOwotICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlv
bkNvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQENQUEltcGxl
bWVudGF0aW9uQ29udGVudCwgIiAgICA6ICR7cGFyZW50Q2xhc3NOYW1lfShpbXBsKVxuIik7Ci0g
ICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIntcbiIpOwotICAgICAgICBw
dXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ9XG5cbiIpOwotICAgIH0KLQotICAgICMg
LS0gRGVzdHJ1Y3RvciAtLQotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiR7
Y2xhc3NOYW1lfTo6fiR7Y2xhc3NOYW1lfSgpXG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRh
dGlvbkNvbnRlbnQsICJ7XG4iKTsKLSAgICBpZiAoJGlzQmFzZUNsYXNzKSB7Ci0gICAgICAgICRD
UFBJbXBsZW1lbnRhdGlvbkluY2x1ZGVzeyJET01DcmVhdGVJbnN0YW5jZS5oIn0gPSAxOwotICAg
ICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgcmVtb3ZlRE9NV3JhcHBl
cihpbXBsKCkpO1xuIik7Ci0gICAgfQotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVu
dCwgIn1cblxuIik7Ci0KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIke2lt
cGxlbWVudGF0aW9uQ2xhc3N9KiAke2NsYXNzTmFtZX06OmltcGwke2ltcGxlbWVudGF0aW9uQ2xh
c3NXaXRob3V0TmFtZXNwYWNlfSgpIGNvbnN0XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRh
dGlvbkNvbnRlbnQsICJ7XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQs
ICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7aW1wbGVtZW50YXRpb25DbGFzc30qPihpbXBsKCkp
O1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAifVxuXG4iKTsKLQot
ICAgICMgQmFzZSBjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoZSBjcmVhdGVJbnN0YW5jZSBtZXRo
b2QgZXh0ZXJuYWxseS4KLSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ICE9IDApIHsKLSAg
ICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiJHtjbGFzc05hbWV9KiAke2Ns
YXNzTmFtZX06OmNyZWF0ZUluc3RhbmNlKCR7aW1wbGVtZW50YXRpb25DbGFzc30qIGltcGwpXG4i
KTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAie1xuIik7Ci0gICAg
ICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8JHtjbGFzc05hbWV9Kj4oJHtwYXJlbnRDbGFzc05hbWV9OjpjcmVhdGVJbnN0YW5jZShpbXBs
KSk7XG4iKTsKLSAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAifVxuIik7
Ci0gICAgfQotCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiLy8gSVVua25v
d24gJERBU0hFU1xuXG4iKTsKLQotICAgICMgLS0gUXVlcnlJbnRlcmZhY2UgLS0KLSAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFICR7
Y2xhc3NOYW1lfTo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHZPYmplY3Qp
XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ7XG4iKTsKLSAgICBw
dXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgKnBwdk9iamVjdCA9IDA7XG4iKTsK
LSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgaWYgKElzRXF1YWxHVUlE
KHJpaWQsIElJRF8ke2ludGVyZmFjZU5hbWV9KSlcbiIpOwotICAgIHB1c2goQENQUEltcGxlbWVu
dGF0aW9uQ29udGVudCwgIiAgICAgICAgKnBwdk9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8JHtp
bnRlcmZhY2VOYW1lfSo+KHRoaXMpO1xuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25D
b250ZW50LCAiICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQsIF9fdXVpZG9mKCR7Y2xhc3NO
YW1lfSkpKVxuIik7Ci0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiICAgICAg
ICAqcHB2T2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDwke2NsYXNzTmFtZX0qPih0aGlzKTtcbiIp
OwotICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICBlbHNlXG4iKTsKLSAg
ICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgICAgIHJldHVybiAke3BhcmVu
dENsYXNzTmFtZX06OlF1ZXJ5SW50ZXJmYWNlKHJpaWQsIHBwdk9iamVjdCk7XG5cbiIpOwotICAg
IHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICBBZGRSZWYoKTtcbiIpOwotICAg
IHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIiAgICByZXR1cm4gU19PSztcbiIpOwot
ICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIn1cblxuIik7Ci0KLSAgICAjIC0g
QWRkaXRpb25hbCBpbnRlcmZhY2VzIHRvIGltcGxlbWVudCAtCi0gICAgZm9yZWFjaCBteSAkaW50
ZXJmYWNlVG9JbXBsZW1lbnQgKEBhZGRpdGlvbmFsSW50ZXJmYWNlRGVmaW5pdGlvbnMpIHsKLSAg
ICAgICAgbXkgJElETFR5cGVPZkludGVyZmFjZVRvSW1wbGVtZW50ID0gJGludGVyZmFjZVRvSW1w
bGVtZW50LT5uYW1lOwotICAgICAgICBteSAkbmFtZU9mSW50ZXJmYWNlVG9JbXBsZW1lbnQgPSBH
ZXRJbnRlcmZhY2VOYW1lKCRJRExUeXBlT2ZJbnRlcmZhY2VUb0ltcGxlbWVudCk7Ci0gICAgICAg
IG15ICRudW1BdHRyaWJ1dGVzSW5JbnRlcmZhY2UgPSBAeyRpbnRlcmZhY2VUb0ltcGxlbWVudC0+
YXR0cmlidXRlc307Ci0gICAgICAgIG15ICRudW1GdW5jdGlvbnNJbkludGVyZmFjZSA9IEB7JGlu
dGVyZmFjZVRvSW1wbGVtZW50LT5mdW5jdGlvbnN9OwotCi0gICAgICAgIHB1c2goQENQUEltcGxl
bWVudGF0aW9uQ29udGVudCwgIiAgICAvLyAke25hbWVPZkludGVyZmFjZVRvSW1wbGVtZW50fSAk
e0RBU0hFU31cblxuIik7Ci0KLSAgICAgICAgaWYgKCRudW1BdHRyaWJ1dGVzSW5JbnRlcmZhY2Ug
PiAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIvLyBB
dHRyaWJ1dGVzXG5cbiIpOwotICAgICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRp
bnRlcmZhY2VUb0ltcGxlbWVudC0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgICAgICAgICAjIEZJ
WE1FOiBEbyB0aGlzIGluIG9uZSBzdGVwLgotICAgICAgICAgICAgICAgICMgRklYTUU6IEltcGxl
bWVudCBleGNlcHRpb24gaGFuZGxpbmcuCi0KLSAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0Zv
clR5cGVJbkNQUEltcGxlbWVudGF0aW9uKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0K
LSAgICAgICAgICAgICAgICBteSAlYXR0cmlidXRlcyA9IEdlbmVyYXRlQ1BQQXR0cmlidXRlKCRh
dHRyaWJ1dGUsICRjbGFzc05hbWUsICRpbXBsZW1lbnRhdGlvbkNsYXNzLCAkSURMVHlwZSk7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCB2YWx1ZXMoJWF0
dHJpYnV0ZXMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgICMgLSBBZGQg
ZnVuY3Rpb25zLgotICAgICAgICBpZiAoJG51bUZ1bmN0aW9uc0luSW50ZXJmYWNlID4gMCkgewot
ICAgICAgICAgICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiLy8gRnVuY3Rpb25z
XG5cbiIpOwotCi0gICAgICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNl
VG9JbXBsZW1lbnQtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25J
bXBsZW1lbnRhdGlvbiA9IEdlbmVyYXRlQ1BQRnVuY3Rpb24oJGZ1bmN0aW9uLCAkY2xhc3NOYW1l
LCAkaW1wbGVtZW50YXRpb25DbGFzcyk7Ci0gICAgICAgICAgICAgICAgcHVzaChAQ1BQSW1wbGVt
ZW50YXRpb25Db250ZW50LCAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbik7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQs
ICIvLyAke2ludGVyZmFjZU5hbWV9ICREQVNIRVNcblxuIik7Ci0KLSAgICAjIC0gQWRkIGF0dHJp
YnV0ZSBnZXR0ZXJzL3NldHRlcnMuCi0gICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCkgewotICAg
ICAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIvLyBBdHRyaWJ1dGVzXG5cbiIp
OwotICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVz
fSkgewotICAgICAgICAgICAgIyBGSVhNRTogZG8gdGhpcyBpbiBvbmUgc3RlcAotICAgICAgICAg
ICAgbXkgJGhhc1NldHRlckV4Y2VwdGlvbiA9IEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9u
c307Ci0gICAgICAgICAgICBteSAkaGFzR2V0dGVyRXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5n
ZXR0ZXJFeGNlcHRpb25zfTsKLQotICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5DUFBJ
bXBsZW1lbnRhdGlvbigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwotCi0gICAgICAgICAg
ICBteSAlYXR0cmlidXRlcyA9IEdlbmVyYXRlQ1BQQXR0cmlidXRlKCRhdHRyaWJ1dGUsICRjbGFz
c05hbWUsICRpbXBsZW1lbnRhdGlvbkNsYXNzLCAkSURMVHlwZSk7Ci0gICAgICAgICAgICBwdXNo
KEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsIHZhbHVlcyglYXR0cmlidXRlcykpOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgIyAtIEFkZCBmdW5jdGlvbnMuCi0gICAgaWYgKCRudW1GdW5jdGlv
bnMgPiAwKSB7Ci0gICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwgIi8vIEZ1
bmN0aW9uc1xuXG4iKTsKLQotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9u
ID0gR2VuZXJhdGVDUFBGdW5jdGlvbigkZnVuY3Rpb24sICRjbGFzc05hbWUsICRpbXBsZW1lbnRh
dGlvbkNsYXNzKTsKLSAgICAgICAgICAgIHB1c2goQENQUEltcGxlbWVudGF0aW9uQ29udGVudCwg
JGZ1bmN0aW9uSW1wbGVtZW50YXRpb24pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgIyAtIERl
ZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGludGVyZmFjZSBjcmVhdG9yLgotICAgICMgRklYTUU6
IGFkZCBleHRlbmRlZCBhdHRyaWJ1dGUgdG8gYWRkIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBpZiBu
ZWNlc3NhcnkuCi0gICAgcHVzaChAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50LCAiJHtpbnRlcmZh
Y2VOYW1lfSogdG8ke2ludGVyZmFjZU5hbWV9KCR7aW1wbGVtZW50YXRpb25DbGFzc30qIGltcGwp
XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICJ7XG4iKTsKLSAgICBw
dXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQsICIgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6
Y3JlYXRlSW5zdGFuY2UoaW1wbCk7XG4iKTsKLSAgICBwdXNoKEBDUFBJbXBsZW1lbnRhdGlvbkNv
bnRlbnQsICJ9XG4iKTsKLX0KLQotc3ViIFdyaXRlRGF0YQotewotICAgIG15ICgkb2JqZWN0LCAk
bmFtZSwgJHB1cmVJbnRlcmZhY2UpID0gQF87Ci0KLSAgICAjIC0tIElETCAtLQotICAgIG15ICRJ
RExGaWxlTmFtZSA9ICIkb3V0cHV0RGlyL0kiIC4gJFRFTVBfUFJFRklYIC4gIkRPTSIgLiAkbmFt
ZSAuICIuaWRsIjsKLSAgICB1bmxpbmsoJElETEZpbGVOYW1lKTsKLQotICAgICMgV3JpdGUgdG8g
b3V0cHV0IElETC4KLSAgICBvcGVuKE9VVFBVVElETCwgIj4kSURMRmlsZU5hbWUiKSBvciBkaWUg
IkNvdWxkbid0IG9wZW4gZmlsZSAkSURMRmlsZU5hbWUiOwotCi0gICAgIyBBZGQgaGVhZGVyCi0g
ICAgcHJpbnQgT1VUUFVUSURMIEBJRExIZWFkZXI7Ci0KLSAgICAjIEFkZCBmb3J3YXJkIGRlY2xh
cmF0aW9ucyBhbmQgaW1vcnRzCi0gICAgZGVsZXRlICRJRExGb3J3YXJkRGVjbGFyYXRpb25ze2tl
eXMoJUlETERvbnRGb3J3YXJkRGVjbGFyZSl9OwotICAgIGRlbGV0ZSAkSURMSW1wb3J0c3trZXlz
KCVJRExEb250SW1wb3J0KX07Ci0KLSAgICBwcmludCBPVVRQVVRJREwgbWFwIHsgImNwcF9xdW90
ZShcImludGVyZmFjZSAkXztcIilcbiIgfSBzb3J0IGtleXMoJUlETEZvcndhcmREZWNsYXJhdGlv
bnMpOwotICAgIHByaW50IE9VVFBVVElETCAiXG4iOwotCi0gICAgcHJpbnQgT1VUUFVUSURMIG1h
cCB7ICJpbnRlcmZhY2UgJF87XG4iIH0gc29ydCBrZXlzKCVJRExGb3J3YXJkRGVjbGFyYXRpb25z
KTsKLSAgICBwcmludCBPVVRQVVRJREwgIlxuIjsKLSAgICBwcmludCBPVVRQVVRJREwgIiNpZm5k
ZWYgRE9fTk9fSU1QT1JUU1xuIjsKLSAgICBwcmludCBPVVRQVVRJREwgbWFwIHsgKCRfIGVxICJJ
R0VOX0RPTUltcGxlbWVudGF0aW9uIikgPyAiaW1wb3J0IFwiSUdFTl9ET01ET01JbXBsZW1lbnRh
dGlvbi5pZGxcIjtcbiIgOiAiaW1wb3J0IFwiJF8uaWRsXCI7XG4iIH0gc29ydCBrZXlzKCVJRExJ
bXBvcnRzKTsKLSAgICBwcmludCBPVVRQVVRJREwgIiNlbmRpZlxuIjsKLSAgICBwcmludCBPVVRQ
VVRJREwgIlxuIjsKLQotICAgICMgQWRkIGNvbnRlbnQKLSAgICBwcmludCBPVVRQVVRJREwgQElE
TENvbnRlbnQ7Ci0KLSAgICBjbG9zZShPVVRQVVRJREwpOwotCi0gICAgQElETEhlYWRlciA9ICgp
OwotICAgIEBJRExDb250ZW50ID0gKCk7Ci0KLSAgICBpZiAoJHB1cmVJbnRlcmZhY2UpIHsKLSAg
ICAgICAgbXkgJENQUEludGVyZmFjZUhlYWRlckZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRU
RU1QX1BSRUZJWCAuICJET00iIC4gJG5hbWUgLiAiLmgiOwotICAgICAgICB1bmxpbmsoJENQUElu
dGVyZmFjZUhlYWRlckZpbGVOYW1lKTsKLQotICAgICAgICBvcGVuKE9VVFBVVENQUEludGVyZmFj
ZUhlYWRlciwgIj4kQ1BQSW50ZXJmYWNlSGVhZGVyRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkQ1BQSW50ZXJmYWNlSGVhZGVyRmlsZU5hbWUiOwotCi0gICAgICAgIHByaW50
IE9VVFBVVENQUEludGVyZmFjZUhlYWRlciBAQ1BQSW50ZXJmYWNlSGVhZGVyOwotCi0gICAgICAg
IGNsb3NlKE9VVFBVVENQUEludGVyZmFjZUhlYWRlcik7Ci0KLSAgICAgICAgQENQUEludGVyZmFj
ZUhlYWRlciA9ICgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICRDUFBIZWFkZXJGaWxlTmFt
ZSA9ICIkb3V0cHV0RGlyLyIgLiAkVEVNUF9QUkVGSVggLiAiRE9NIiAuICRuYW1lIC4gIi5oIjsK
LSAgICAgICAgdW5saW5rKCRDUFBIZWFkZXJGaWxlTmFtZSk7Ci0KLSAgICAgICAgIyAtLSBDUFAg
SGVhZGVyIC0tCi0gICAgICAgIG9wZW4oT1VUUFVUQ1BQSGVhZGVyLCAiPiRDUFBIZWFkZXJGaWxl
TmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRDUFBIZWFkZXJGaWxlTmFtZSI7Ci0K
LSAgICAgICAgIyBBZGQgaGVhZGVyCi0gICAgICAgIHByaW50IE9VVFBVVENQUEhlYWRlciBAQ1BQ
SGVhZGVySGVhZGVyOwotCi0gICAgICAgICMgQWRkIGluY2x1ZGVzCi0gICAgICAgIHByaW50IE9V
VFBVVENQUEhlYWRlciBtYXAgeyAoJF8gZXEgIkdFTl9ET01JbXBsZW1lbnRhdGlvbi5oIikgPyAi
I2luY2x1ZGUgXCJHRU5fRE9NRE9NSW1wbGVtZW50YXRpb24uaFwiXG4iIDogIiNpbmNsdWRlIFwi
JF9cIlxuIiB9IHNvcnQga2V5cyglQ1BQSGVhZGVySW5jbHVkZXMpOwotICAgICAgICBwcmludCBP
VVRQVVRDUFBIZWFkZXIgbWFwIHsgIiNpbmNsdWRlIDwkXz5cbiIgfSBzb3J0IGtleXMoJUNQUEhl
YWRlckluY2x1ZGVzQW5nbGUpOwotCi0gICAgICAgIGZvcmVhY2ggbXkgJGRvbnREZWNsYXJlIChr
ZXlzKCVDUFBIZWFkZXJEb250Rm9yd2FyZERlY2xhcmF0aW9ucykpIHsKLSAgICAgICAgICAgIGRl
bGV0ZSAkQ1BQSGVhZGVyRm9yd2FyZERlY2xhcmF0aW9uc3skZG9udERlY2xhcmV9IGlmICgkQ1BQ
SGVhZGVyRm9yd2FyZERlY2xhcmF0aW9uc3skZG9udERlY2xhcmV9KTsKLSAgICAgICAgfQotICAg
ICAgICBwcmludCBPVVRQVVRDUFBIZWFkZXIgIlxuIjsKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQ
SGVhZGVyIG1hcCB7ICJpbnRlcmZhY2UgJF87XG4iIH0gc29ydCBrZXlzKCVDUFBIZWFkZXJGb3J3
YXJkRGVjbGFyYXRpb25zKTsKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQSGVhZGVyICJcbiI7Ci0K
LSAgICAgICAgIyBBZGQgY29udGVudAotICAgICAgICBwcmludCBPVVRQVVRDUFBIZWFkZXIgQENQ
UEhlYWRlckNvbnRlbnQ7Ci0KLSAgICAgICAgY2xvc2UoT1VUUFVUQ1BQSGVhZGVyKTsKLQotICAg
ICAgICBAQ1BQSGVhZGVySGVhZGVyID0gKCk7Ci0gICAgICAgIEBDUFBIZWFkZXJDb250ZW50ID0g
KCk7Ci0KLQotICAgICAgICAjIC0tIENQUCBJbXBsZW1lbnRhdGlvbiAtLQotICAgICAgICBteSAk
Q1BQSW1wbGVtZW50YXRpb25GaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkVEVNUF9QUkVGSVgg
LiAiRE9NIiAuICRuYW1lIC4gIi5jcHAiOwotICAgICAgICB1bmxpbmsoJENQUEltcGxlbWVudGF0
aW9uRmlsZU5hbWUpOwotCi0gICAgICAgIG9wZW4oT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24sICI+
JENQUEltcGxlbWVudGF0aW9uRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
Q1BQSW1wbGVtZW50YXRpb25GaWxlTmFtZSI7Ci0KLSAgICAgICAgIyBBZGQgaGVhZGVyCi0gICAg
ICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uIEBDUFBJbXBsZW1lbnRhdGlvbkhlYWRl
cjsKLSAgICAgICAgcHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gIlxuIjsKLQotICAgICAg
ICAjIEFkZCBpbmNsdWRlcwotICAgICAgICBmb3JlYWNoIG15ICRkb250SW5jbHVkZSAoa2V5cygl
Q1BQSW1wbGVtZW50YXRpb25Eb250SW5jbHVkZXMpKSB7Ci0gICAgICAgICAgICBkZWxldGUgJENQ
UEltcGxlbWVudGF0aW9uSW5jbHVkZXN7JGRvbnRJbmNsdWRlfSBpZiAoJENQUEltcGxlbWVudGF0
aW9uSW5jbHVkZXN7JGRvbnRJbmNsdWRlfSk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQgT1VU
UFVUQ1BQSW1wbGVtZW50YXRpb24gbWFwIHsgKCRfIGVxICJHRU5fRE9NSW1wbGVtZW50YXRpb24u
aCIpID8gIiNpbmNsdWRlIFwiR0VOX0RPTURPTUltcGxlbWVudGF0aW9uLmhcIlxuIiA6ICIjaW5j
bHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJUNQUEltcGxlbWVudGF0aW9uSW5jbHVkZXMpOwot
ICAgICAgICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiBtYXAgeyAiI2luY2x1ZGUgPCRf
PlxuIiB9IHNvcnQga2V5cyglQ1BQSW1wbGVtZW50YXRpb25JbmNsdWRlc0FuZ2xlKTsKLSAgICAg
ICAgcHJpbnQgT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24gIlxuIjsKLQotICAgICAgICBwcmludCBP
VVRQVVRDUFBJbXBsZW1lbnRhdGlvbiAiI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApXG4iOwotICAg
ICAgICBwcmludCBPVVRQVVRDUFBJbXBsZW1lbnRhdGlvbiBtYXAgeyAiI2luY2x1ZGUgPFdlYkNv
cmUvJF8+XG4iIH0gc29ydCBrZXlzKCVDUFBJbXBsZW1lbnRhdGlvbldlYkNvcmVJbmNsdWRlcyk7
Ci0gICAgICAgIHByaW50IE9VVFBVVENQUEltcGxlbWVudGF0aW9uICIjcHJhZ21hIHdhcm5pbmco
cG9wKVxuIjsKLQotICAgICAgICAjIEFkZCBjb250ZW50Ci0gICAgICAgIHByaW50IE9VVFBVVENQ
UEltcGxlbWVudGF0aW9uIEBDUFBJbXBsZW1lbnRhdGlvbkNvbnRlbnQ7Ci0KLSAgICAgICAgY2xv
c2UoT1VUUFVUQ1BQSW1wbGVtZW50YXRpb24pOwotCi0gICAgICAgIEBDUFBJbXBsZW1lbnRhdGlv
bkhlYWRlciA9ICgpOwotICAgICAgICBAQ1BQSW1wbGVtZW50YXRpb25Db250ZW50ID0gKCk7Ci0g
ICAgfQotfQotCi0xOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRs
IGIvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsCmluZGV4IDI5ZTc0ZDYuLjJiMTU4ZmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbAorKysgYi9XZWJDb3Jl
L2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwKQEAgLTIxLDEwICsyMSw3IEBACiBtb2R1bGUgY3NzIHsK
IAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKLSAg
ICAgICAgSW50ZXJmYWNlVVVJRD05NDE4MGJhZC1hNzRlLTRkZjktYWRiYy02Y2U0ZTViOTYxNTUs
Ci0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0zNTRhYTM5ZS1hZDUzLTRlOWEtYTkyNy04MGMz
OTY2YzQ3ZjIKLSAgICBdIENTU0NoYXJzZXRSdWxlIDogQ1NTUnVsZSB7CisgICAgaW50ZXJmYWNl
IENTU0NoYXJzZXRSdWxlIDogQ1NTUnVsZSB7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBlbmNvZGluZzsKICNlbHNlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIGIvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VSdWxlLmlkbAppbmRleCAyMjM5YmFkLi5iZDM4YTYxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlUnVsZS5pZGwKQEAgLTIxLDEwICsyMSw3IEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJm
YWNlVVVJRD04YWZhNGIxYS0zOWZlLTQ5ZmItYmU2ZC00ZDU2ZTgxZDliNGEsCi0gICAgICAgIElt
cGxlbWVudGF0aW9uVVVJRD01YTc5NzFkOS01YWFkLTRlZDctYmU2Ny0zYTE2NDQ1NjAyNTYKLSAg
ICBdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgeworICAgIGludGVyZmFjZSBDU1NGb250RmFj
ZVJ1bGUgOiBDU1NSdWxlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVj
bGFyYXRpb24gc3R5bGU7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTSW1w
b3J0UnVsZS5pZGwgYi9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAppbmRleCA5NzJjNGRk
Li44ZTYwOTA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbApAQCAtMjEsMTAgKzIxLDcgQEAKIG1vZHVs
ZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPThmNjBiM2EyLWViZjAtNDg0ZC1hNzE0LTQ3YTk5
NzRhNmE5ZSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTQzN2VhOTNjLTY4ZTUtNDg5Ny04
NWZlLWUxNjE2NTM4MDFlYgotICAgIF0gQ1NTSW1wb3J0UnVsZSA6IENTU1J1bGUgeworICAgIGlu
dGVyZmFjZSBDU1NJbXBvcnRSdWxlIDogQ1NTUnVsZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgaHJlZjsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHN0eWxlc2hlZXRzOjpNZWRpYUxpc3QgbWVkaWE7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0IHN0eWxlU2hlZXQ7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsIGIvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxl
LmlkbAppbmRleCBmY2ViZGUzLi44MTNiZDcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NN
ZWRpYVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwKQEAgLTIxLDEw
ICsyMSw3IEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD05YzYyM2MwOS0yNjc3
LTRkMjgtYmE5MC04MjZkYTBhZTMxNmEsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0zMDQ5
M2VjOS1lMTM5LTRlOWUtYWUyNC1jYzhmNTMyMDA2ZDkKLSAgICBdIENTU01lZGlhUnVsZSA6IENT
U1J1bGUgeworICAgIGludGVyZmFjZSBDU1NNZWRpYVJ1bGUgOiBDU1NSdWxlIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHN0eWxlc2hlZXRzOjpNZWRpYUxpc3QgbWVkaWE7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCBjc3NSdWxlczsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5pZGwgYi9XZWJDb3JlL2Nzcy9DU1NQYWdl
UnVsZS5pZGwKaW5kZXggNzMxYzEyZi4uNmI1MGI2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTUGFnZVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmlkbApAQCAtMjEs
MTAgKzIxLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2
ZWwgMjoKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTRlOGQ5ZDI2LTY1
Y2EtNDgzZi1hNmQ0LWJlMWEyNTkwNTA1NiwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWQ4
ZTQwMzc5LThiMGUtNGRjZS1iMWY4LTYzNmRjZjA1NWE1ZgotICAgIF0gQ1NTUGFnZVJ1bGUgOiBD
U1NSdWxlIHsKKyAgICBpbnRlcmZhY2UgQ1NTUGFnZVJ1bGUgOiBDU1NSdWxlIHsKIAogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvclRleHQKICAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmlkbCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlk
bAppbmRleCBkNWQ5MTVlLi44NTgwNjY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5pZGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCkBA
IC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgY3NzIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIEludGVyZmFjZVVVSUQ9YTI4NmIwY2ItNGZmMC00NDgyLWFhNmUtN2M1ZmIzOWFmYWJhLAot
ICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9YzMxMGM4NGQtNDgwZi00YmJiLTkxODctMjhlMDA5
NTZhYzQ3Ci0gICAgXSBDU1NQcmltaXRpdmVWYWx1ZSA6IENTU1ZhbHVlIHsKKyAgICBpbnRlcmZh
Y2UgQ1NTUHJpbWl0aXZlVmFsdWUgOiBDU1NWYWx1ZSB7CiAKICAgICAgICAgLy8gVW5pdFR5cGVz
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19VTktOT1dOICAgID0gMDsKQEAgLTY4
LDExICs2NSw4IEBAIG1vZHVsZSBjc3MgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIFJlY3QgZ2V0UmVjdFZhbHVlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQog
ICAgICAgICBSR0JDb2xvciBnZXRSR0JDb2xvclZhbHVlKCkKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotI2VuZGlmCi0KICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NSdWxlLmlkbCBiL1dlYkNvcmUvY3NzL0NTU1J1bGUuaWRsCmluZGV4IDA2YmM2ZTEu
LmVhZjEzMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1J1bGUuaWRsCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1J1bGUuaWRsCkBAIC0yMyw5ICsyMyw3IEBAIG1vZHVsZSBjc3MgewogICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ3Vz
dG9tVG9KUywKLSAgICAgICAgUG9seW1vcnBoaWMsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NTQ4
MTM5YjQtMzFhYi00OTc4LWIxZDUtY2ZjZmRmYmFlYTBlLAotICAgICAgICBJbXBsZW1lbnRhdGlv
blVVSUQ9MDI2OGU2NzMtMjQ4OS00NzQzLTlhM2EtMTk3ZGFlNGI0ZDljCisgICAgICAgIFBvbHlt
b3JwaGljCiAgICAgXSBDU1NSdWxlIHsKIAogICAgICAgICAvLyBSdWxlVHlwZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuaWRsIGIvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3Qu
aWRsCmluZGV4IDZiZTIxYTEuLmUyNTMyODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1J1
bGVMaXN0LmlkbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5pZGwKQEAgLTI4LDkgKzI4
LDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAg
ICBpbnRlcmZhY2UgWwogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAgICAgIEhhc0lu
ZGV4R2V0dGVyLAotICAgICAgICBJbnRlcmZhY2VVVUlEPTY0YzM0NmEwLTFlMzQtNDlkMy05NDcy
LTU3ZWM4ZTBmZGNjYiwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTk3MWEyOGUwLWQwZGEt
NDU3MC05YjcxLWUzOWZjMmNmOWExYgorICAgICAgICBIYXNJbmRleEdldHRlcgogICAgIF0gQ1NT
UnVsZUxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBs
ZW5ndGg7CiAgICAgICAgIENTU1J1bGUgICAgICAgICAgIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBp
bmRleCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBi
L1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCmluZGV4IGQ3YTNkMWQuLjI5N2I3
MzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCisrKyBi
L1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCkBAIC0yNSw5ICsyNSw3IEBAIG1v
ZHVsZSBjc3MgewogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIERlbGVnYXRp
bmdQdXRGdW5jdGlvbiwKICAgICAgICAgSGFzTmFtZUdldHRlciwKLSAgICAgICAgSGFzSW5kZXhH
ZXR0ZXIsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9OTk4OWIyYzMtYTJiNi00NDliLWFiZjktYzYw
ZDIyNjBiMWQ3LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTg1YzUwYzctOWYxOS00MzZh
LTllNDUtYzBhYTAyOTk2ZDBlCisgICAgICAgIEhhc0luZGV4R2V0dGVyCiAgICAgXSBDU1NTdHls
ZURlY2xhcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0
cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIGNz
c1RleHQKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuaWRsCmluZGV4IGI5MTI2NDQuLjg2MmFjZDggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlk
bApAQCAtMjEsMTAgKzIxLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBp
biBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPWNl
NGUzMzMwLWM0MGItNDQzMC04ZWQ0LTAzMGFiNGRkYmM5MywKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPWMzZDJmMWI4LTM5NzAtNGIzNi04ODJlLWNlN2Y1NjY4ZDhlMgotICAgIF0gQ1NTU3R5
bGVSdWxlIDogQ1NTUnVsZSB7CisgICAgaW50ZXJmYWNlIENTU1N0eWxlUnVsZSA6IENTU1J1bGUg
ewogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
LCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dAogICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmlkbAppbmRleCBkYWNhZWI1Li5lMTgwMjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNoZWV0LmlkbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmlkbApAQCAtMjEs
MTAgKzIxLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2
ZWwgMjoKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTJmNTQ3ZjY1LWY4
YzQtNGYxMy04NzI0LWVkMTBlZDc5ZGNjNCwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTFi
NWMyNGIzLThiNmYtNDNhOS04ODkxLTY1NGJhODU4ZjQyZgotICAgIF0gQ1NTU3R5bGVTaGVldCA6
IHN0eWxlc2hlZXRzOjpTdHlsZVNoZWV0IHsKKyAgICBpbnRlcmZhY2UgQ1NTU3R5bGVTaGVldCA6
IHN0eWxlc2hlZXRzOjpTdHlsZVNoZWV0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENT
U1J1bGUgICAgICAgICAgb3duZXJSdWxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NT
UnVsZUxpc3QgICAgICBjc3NSdWxlczsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVW5r
bm93blJ1bGUuaWRsIGIvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaWRsCmluZGV4IDA1OTEz
NWEuLmI2MmNlYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmlkbAor
KysgYi9XZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwKQEAgLTIyLDggKzIyLDYgQEAgbW9k
dWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9MzU2NzAwOTgtYjczMi00MTljLWI3Y2QtZGMw
ZDVlMjZkNWUzLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9NGI3NTVmODctMjUwOS00Yjk4
LWE5NTMtOGVjYjg4ZmU0YjIxLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKICAgICBdIENTU1Vu
a25vd25SdWxlIDogQ1NTUnVsZSB7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmlkbCBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAppbmRleCBlYjNjNmFhLi5mZTZi
OGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaWRsCkBAIC0yMiw5ICsyMiw3IEBAIG1vZHVsZSBjc3MgewogCiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ3VzdG9tVG9KUywKLSAgICAgICAgUG9seW1vcnBoaWMsCi0gICAg
ICAgIEludGVyZmFjZVVVSUQ9OWZkNjJhN2ItNTM5ZC00NTAwLWJkNmMtZWMwNzVhYmJjNDA0LAot
ICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9ZTEwYTI4NjAtZjk4ZS00YmQzLTk2YjQtMTQ5M2Fk
OTQxZGZlCisgICAgICAgIFBvbHltb3JwaGljCiAgICAgXSBDU1NWYWx1ZSB7CiAKICAgICAgICAg
Ly8gVW5pdFR5cGVzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIGIv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAppbmRleCBkNWFhYmZhLi4wNmRmNWQ3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5pZGwKQEAgLTI3LDkgKzI3LDcgQEAgbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBbCi0gICAgICAgIEhhc0lu
ZGV4R2V0dGVyLAotICAgICAgICBJbnRlcmZhY2VVVUlEPTJmYjc0NjIwLTkwMjktNDAwYy1iYzRi
LTRjZThlMjViMDgxZiwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTFkOGZjODIyLWY4OWEt
NDhkNS1hMmFjLTgyN2U1YTI0MzU3ZQorICAgICAgICBIYXNJbmRleEdldHRlcgogICAgIF0gQ1NT
VmFsdWVMaXN0IDogQ1NTVmFsdWUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyAgICBsZW5ndGg7CiAgICAgICAgIENTU1ZhbHVlICAgICAgICAgICBpdGVtKGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwg
Yi9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAppbmRleCA4MzYyM2UzLi42MjM2YzQ1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9Db3VudGVyLmlk
bApAQCAtMjAsMTAgKzIwLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBp
biBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTM2
NWQwZjI2LTNhNmUtNDU3Yy1hMzRjLTE3NGQ5OGY3OTc5OCwKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPThiZmRjOTY4LTlhMWItNGU0Zi04ZDM2LTczMmQ0OWI0OGVhYQotICAgIF0gQ291bnRl
ciB7CisgICAgaW50ZXJmYWNlIENvdW50ZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGlkZW50aWZpZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbGlzdFN0eWxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlcGFy
YXRvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5pZGwgYi9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuaWRsCmluZGV4IDA3NGYxN2IuLjU0YWQ0ZjggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5pZGwKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmlkbApAQCAt
MjcsOSArMjcsNyBAQCBtb2R1bGUgc3R5bGVzaGVldHMgewogCiAgICAgLy8gSW50cm9kdWNlZCBp
biBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBIYXNJbmRleEdldHRlciwK
LSAgICAgICAgSW50ZXJmYWNlVVVJRD00ZWQwMmEwYi0xNWIzLTRhMjAtOGYxNi1kOTEyOTVhYWYy
Y2IsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD02YzUwOTVkOC1mZGNjLTRmOWEtYjA0YS0y
M2MyYTZkMmNmNDkKKyAgICAgICAgSGFzSW5kZXhHZXR0ZXIKICAgICBdIE1lZGlhTGlzdCB7CiAK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgQ29u
dmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgbWVkaWFUZXh0CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9SR0JDb2xvci5pZGwgYi9XZWJDb3JlL2Nzcy9SR0JDb2xvci5pZGwKaW5kZXgg
MmI1NTBmZS4uMWRjODdiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCisr
KyBiL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbApAQCAtMjEsMTAgKzIxLDcgQEAKIG1vZHVsZSBj
c3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBJbnRlcmZhY2VVVUlEPTJlM2IxNTAxLTJjZjctNGE0YS1iYmY3LWQ4ODQzZDFj
M2JlNywKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWNmNzc5OTUzLTQ4OTgtNDgwMC1hYTMx
LTZjOWUzZjQ3MTFiZQotICAgIF0gUkdCQ29sb3IgeworICAgIGludGVyZmFjZSBSR0JDb2xvciB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSAgcmVkOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgIGdyZWVuOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgIGJsdWU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9SZWN0LmlkbCBiL1dlYkNvcmUvY3NzL1JlY3QuaWRsCmluZGV4IDQzOTZj
NWUuLjYwZWI3MGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1JlY3QuaWRsCisrKyBiL1dlYkNv
cmUvY3NzL1JlY3QuaWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgY3NzIHsKIAotICAg
IGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9Njk2YmM0ZDktYzFkMy00MjI1LWE1
YjMtMmNlZjI4OTY3NzA1LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9YWU4Mzc0M2YtNGRj
NC00Nzg1LTg2OWItOGMzMDEwYzdkMDA2Ci0gICAgXSBSZWN0IHsKKyAgICBpbnRlcmZhY2UgUmVj
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSAgdG9wOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgIHJpZ2h0OwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgIGJvdHRvbTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuaWRsIGIvV2ViQ29yZS9jc3MvU3R5bGVTaGVl
dC5pZGwKaW5kZXggMDM4NTAwMi4uNGY1MzY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldC5pZGwKKysrIGIvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5pZGwKQEAgLTI0LDkgKzI0
LDcgQEAgbW9kdWxlIHN0eWxlc2hlZXRzIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDdXN0
b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEN1c3RvbVRvSlMsCi0gICAgICAgIFBvbHltb3JwaGlj
LAotICAgICAgICBJbnRlcmZhY2VVVUlEPTJiZDJkYjVmLWFhYWItNDQyMi05NmEwLWUwNTQ1NTMx
M2YzNSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWE4Y2E2OTRkLTcxZjItNDQ3OS04Yzc2
LWVlOWMxYzcyOWI0OQorICAgICAgICBQb2x5bW9ycGhpYwogICAgIF0gU3R5bGVTaGVldCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgIGRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3Qu
aWRsIGIvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsCmluZGV4IGE0ODY3MzUuLjZjZWY5
OWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAorKysgYi9XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwKQEAgLTI0LDkgKzI0LDcgQEAgbW9kdWxlIHN0eWxl
c2hlZXRzIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAg
ICAgICAgIEhhc0luZGV4R2V0dGVyLAotICAgICAgICBIYXNOYW1lR2V0dGVyLAotICAgICAgICBJ
bnRlcmZhY2VVVUlEPTcwN2RhMWQ3LTdjOGYtNDJiMS1iYmJmLWMwMDllNDI5NjYzZiwKLSAgICAg
ICAgSW1wbGVtZW50YXRpb25VVUlEPTU5OTFlYmFmLWNlNmMtNDJkYi1iMWM4LWZiMzRhZjhkNWM3
NgorICAgICAgICBIYXNOYW1lR2V0dGVyCiAgICAgXSBTdHlsZVNoZWV0TGlzdCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKICAgICAgICAgU3R5
bGVTaGVldCAgICAgICAgIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsIGIvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbAppbmRleCA1YWE5OGU2Li5mNmVhYzc3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwKQEAgLTI5LDEwICsyOSw3IEBACiBtb2R1bGUgY3Nz
IHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsID86Ci0gICAgaW50ZXJmYWNlIFsK
LSAgICAgICAgSW50ZXJmYWNlVVVJRD04N2I3Y2RlOC01ODE4LTRmNjgtYjU1NC01MzgyZTZkOTQy
OGMsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1iMDAwZDQ2OC1iYjdhLTQ4NjYtODk0Ni01
ZGVhOGI2YTNjMTMKLSAgICBdIFdlYktpdENTU0tleWZyYW1lUnVsZSA6IENTU1J1bGUgeworICAg
IGludGVyZmFjZSBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgOiBDU1NSdWxlIHsKIAogICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGtleVRleHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBD
U1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgYi9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxl
LmlkbAppbmRleCAxZWI0NGE0Li5jNDBhZmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmlkbAorKysgYi9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlLmlkbApAQCAtMzAsOSArMzAsNyBAQCBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsID86CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSGFzSW5kZXhH
ZXR0ZXIsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NDlmNTY0NGEtNWRiYi00ZTMxLWFjNmItOTQ0
NmFlMzg5NWM5LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9YTdjNzhhYWEtNTg4My00ZWYy
LWE4YmQtZjJmMWExZmQwMjVhCisgICAgICAgIEhhc0luZGV4R2V0dGVyCiAgICAgXSBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlIDogQ1NTUnVsZSB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFt
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBi
L1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbAppbmRleCA2NzQwNmY4Li4w
ODdhYTgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5p
ZGwKKysrIGIvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsCkBAIC0zMCw4
ICszMCw2IEBAIG1vZHVsZSBjc3MgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgICAgIEhh
c0luZGV4R2V0dGVyCi0gICAgICAgICAgICBJbnRlcmZhY2VVVUlEPTMwM2ZlNjMyLTVkY2YtNDQ3
Mi1iOTc3LTMzYTU0ODFlMWQxMiwKLSAgICAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1lYjQ5
ZTVjNi02MDc1LTQ1YjgtYjVjNC03ZTc3NWMwMWU3YzQKICAgICBdIFdlYktpdENTU1RyYW5zZm9y
bVZhbHVlIDogQ1NTVmFsdWVMaXN0IHsKIAogICAgICAgICAvLyBPcGVyYXRpb25UeXBlcwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vQXR0ci5pZGwgYi9XZWJDb3JlL2RvbS9BdHRyLmlkbAppbmRl
eCA2MTFkZjUzLi5hZjg0NDc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9BdHRyLmlkbAorKysg
Yi9XZWJDb3JlL2RvbS9BdHRyLmlkbApAQCAtMjIsOSArMjIsNyBAQCBtb2R1bGUgY29yZSB7CiAK
ICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAgICAgIEdl
bmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBJbnRlcmZhY2VVVUlEPUVFRThFMjJCLTIy
QzMtNGU1MC05NUY0LTVFMEI4QUFEODIzMSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTQx
QjE2MzQ4LUQ4RTctNGQyMS1CRkRCLTEyNTcwNUI3RTkxRgorICAgICAgICBHZW5lcmF0ZU5hdGl2
ZUNvbnZlcnRlcgogICAgIF0gQXR0ciA6IE5vZGUgewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAx
CkBAIC00Myw5ICs0MSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNJZDsKIAogICAgICAgICAvLyBleHRlbnNpb25zCi0jaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwotI2VuZGlmCiAgICAgfTsKIAogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmlkbCBiL1dlYkNvcmUvZG9tL0NEQVRBU2Vj
dGlvbi5pZGwKaW5kZXggMWJkYjgzZC4uNzBhNGY1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
Q0RBVEFTZWN0aW9uLmlkbAorKysgYi9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaWRsCkBAIC0x
OSwxMCArMTksNyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAg
ICBJbnRlcmZhY2VVVUlEPURDOEUzMEZELTQyREQtNGExMi05Qjc0LTc4RDYzNDMyMUI0MSwKLSAg
ICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTEwQTVENzBDLUQ5M0UtNDA5Yy1BNkJBLTlEN0NCNEUz
RDA2QQotICAgIF0gQ0RBVEFTZWN0aW9uIDogVGV4dCB7CisgICAgaW50ZXJmYWNlIENEQVRBU2Vj
dGlvbiA6IFRleHQgewogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0NoYXJh
Y3RlckRhdGEuaWRsIGIvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwKaW5kZXggYTU1MjFk
MC4uNGRkZDc4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwKKysr
IGIvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1v
ZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9MTQ5
MTU5RjQtRDJCQS00MDQwLTgxMzctNkJGNjQyNEM5NzJBLAotICAgICAgICBJbXBsZW1lbnRhdGlv
blVVSUQ9RTIwOTUyODAtQjlCRC00NDZhLThDMDMtNzlGNzg0MTdDREZGCi0gICAgXSBDaGFyYWN0
ZXJEYXRhIDogTm9kZSB7CisgICAgaW50ZXJmYWNlIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKIAog
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGF0
YQogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vQ29tbWVudC5pZGwgYi9XZWJDb3JlL2RvbS9Db21tZW50LmlkbAppbmRleCA4
ZjY2N2MzLi5iOWY0ZTMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Db21tZW50LmlkbAorKysg
Yi9XZWJDb3JlL2RvbS9Db21tZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGNv
cmUgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD01RDE2MDY5Ri03
RTZCLTRiMjgtODY0Ny1DMzZCMkVEODFFRDEsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1D
QjU1REI1NS00MTFGLTQ1MWYtOTdDNi0yODRCOTlFNzdGOEUKLSAgICBdIENvbW1lbnQgOiBDaGFy
YWN0ZXJEYXRhIHsKKyAgICBpbnRlcmZhY2UgQ29tbWVudCA6IENoYXJhY3RlckRhdGEgewogICAg
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBi
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAppbmRleCBiOTNkZDRlLi44MWRmNmM4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKKysrIGIvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1
bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPUIwQ0Mz
NDRGLTk2M0MtNGFjYy05RkM2LUVCMjI2NDkzNDVFNSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25V
VUlEPTlFODM1MDkyLTJDQTMtNDI2Yi04MjZCLTgyNzJBODEwNUU0OQotICAgIF0gRE9NSW1wbGVt
ZW50YXRpb24geworICAgIGludGVyZmFjZSBET01JbXBsZW1lbnRhdGlvbiB7CiAKICAgICAgICAg
Ly8gRE9NIExldmVsIDEKIApAQCAtNDMsNyArNDAsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAg
ICAgLy8gRE9NSW1wbGVtZW50YXRpb25DU1MgaW50ZXJmYWNlIGZyb20gRE9NIExldmVsIDIgQ1NT
CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAg
W09sZFN0eWxlT2JqQ10gQ1NTU3R5bGVTaGVldCBjcmVhdGVDU1NTdHlsZVNoZWV0KGluIERPTVN0
cmluZyB0aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBtZWRpYSkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwpAQCAtNTEsNyArNDcsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEhU
TUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBIVE1MCiAKICAg
ICAgICAgSFRNTERvY3VtZW50IGNyZWF0ZUhUTUxEb2N1bWVudChpbiBET01TdHJpbmcgdGl0bGUp
OwotI2VuZGlmCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDkxZTU2MTMuLjdlNTFlNTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwKQEAgLTI0LDkgKzI0LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDdXN0b21U
b0pTLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgQ3VzdG9tTWFy
a0Z1bmN0aW9uLAotICAgICAgICBJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QsCi0gICAgICAgIElu
dGVyZmFjZVVVSUQ9NDhCQjk1RkMtMkQwOC00YzU0LUJFNjUtNzU1ODczNkE0Q0FFLAotICAgICAg
ICBJbXBsZW1lbnRhdGlvblVVSUQ9RkY1Q0JFODEtRjgxNy00MjljLUE2QzItMENDQ0QyMzI4MDYy
CisgICAgICAgIElubGluZUdldE93blByb3BlcnR5U2xvdAogICAgIF0gRG9jdW1lbnQgOiBOb2Rl
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMSBDb3JlCkBAIC04MCw3ICs3OCw2IEBAIG1vZHVs
ZSBjb3JlIHsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5n
VG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkb2N1bWVudFVSSTsK
IAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICAv
LyBET00gTGV2ZWwgMiBFdmVudHMgKERvY3VtZW50RXZlbnRzIGludGVyZmFjZSkKIAogICAgICAg
ICBFdmVudCAgICAgICAgICAgICAgY3JlYXRlRXZlbnQoaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSkK
QEAgLTEyOCw3ICsxMjUsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBYUGF0aFJlc3VsdCBpblJlc3VsdCkK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmIC8vIEVOQUJMRV9YUEFU
SAotI2VuZGlmIC8vICFkZWZpbmVkKExBTkdVQUdFX0NPTSkKIAogICAgICAgICAvLyBDb21tb24g
ZXh0ZW5zaW9ucwogCkBAIC0xNzAsOSArMTY2LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgYm9keQogICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NP
TSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEhlYWRF
bGVtZW50IGhlYWQ7Ci0jZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xs
ZWN0aW9uIGltYWdlczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IGFwcGxldHM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBsaW5r
czsKQEAgLTE5Myw5ICsxODcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyByZWFkeVN0
YXRlOwogCiAgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxv
bmcgeCwgaW4gbG9uZyB5KTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFH
RV9DT00KICAgICAgICAgUmFuZ2UgICAgICAgICAgICAgIGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW4g
bG9uZyB4LCBpbiBsb25nIHkpOwotI2VuZGlmCiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNp
b25zCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NS
SVBUCkBAIC0yMDgsMTEgKzIwMCw5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBwcmVmZXJyZWRT
dHlsZXNoZWV0U2V0OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3Ry
aW5nVG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RlZFN0
eWxlc2hlZXRTZXQ7CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9D
T00KICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVND
UklQVAogICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRp
b24oKTsKICNlbmRpZgotI2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJ
bnRlcmZhY2UKQEAgLTIyOSwxMSArMjE5LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAjaWYgIWRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICBbVjhDdXN0
b21dIERPTU9iamVjdCBnZXRDU1NDYW52YXNDb250ZXh0KGluIERPTVN0cmluZyBjb250ZXh0SWQs
IGluIERPTVN0cmluZyBuYW1lLCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCk7CiAjZW5k
aWYKLSNlbmRpZgogCiAgICAgICAgIC8vIEhUTUwgNQogICAgICAgICBOb2RlTGlzdCBnZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lKGluIERPTVN0cmluZyB0YWduYW1lKTsKQEAgLTI1MSw3ICsyMzksNiBA
QCBtb2R1bGUgY29yZSB7CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00p
IHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gRXZlbnQgaGFuZGxlciBET00gYXR0cmlidXRl
cwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25ibHVyOwpAQCAtMzI1
LDcgKzMxMiw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbnRvdWNoZW5kOwogI2VuZGlmCiAjZW5kaWYKLSNlbmRpZgogICAgIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKaW5kZXggNDk2NTI1OC4uODgyYjYyZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKKysrIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBjb3Jl
IHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9RjVDOERBRjAtRDcy
OC00YjJiLTlEOUMtNjMwNjIxQjA3RDM1LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9RTU3
QkY3MUYtM0ZBQS00OTVjLUEzMDctRTI4OEY4RTVCMkVDCi0gICAgXSBEb2N1bWVudEZyYWdtZW50
IDogTm9kZSB7CisgICAgaW50ZXJmYWNlIERvY3VtZW50RnJhZ21lbnQgOiBOb2RlIHsKICAgICAg
ICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCiAgICAgICAgIEVsZW1lbnQgcXVlcnlT
ZWxlY3RvcihpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaWRsIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUeXBlLmlkbAppbmRleCA1ODZiMzdkLi43OTkyZGM1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5pZGwKQEAgLTIwLDkgKzIwLDcgQEAKIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBJbnRlcmZh
Y2VVVUlEPTIwRjA0NTM1LUE0MjMtNDI3My04Q0ZFLTNBRDk5NjEwMEQyOSwKLSAgICAgICAgSW1w
bGVtZW50YXRpb25VVUlEPTczNkQ5NTJGLURCQUYtNDU4Yi04MzRCLUYxNjM4NzAwQkQ4OAorICAg
ICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAgIF0gRG9jdW1lbnRUeXBlIDogTm9kZSB7
CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsIGIvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggZTE1ZjM5NS4uYzg4MWUzYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwKQEAgLTIzLDkgKzIzLDcgQEAgbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBb
CiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252
ZXJ0ZXIsCi0gICAgICAgIElubGluZUdldE93blByb3BlcnR5U2xvdCwKLSAgICAgICAgSW50ZXJm
YWNlVVVJRD1GRUZFOUMyMS1FNThDLTRiNWItODIxQS02MUE1MTQ2MTM3NjMsCi0gICAgICAgIElt
cGxlbWVudGF0aW9uVVVJRD0xMkU1QjA4RS1BNjgwLTRiYWYtOUQxRS0xMDhBRUY3QUJCRkIKKyAg
ICAgICAgSW5saW5lR2V0T3duUHJvcGVydHlTbG90CiAgICAgXSBFbGVtZW50IDogTm9kZSB7CiAK
ICAgICAgICAgLy8gRE9NIExldmVsIDEgQ29yZQpAQCAtNjYsOSArNjQsNyBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoaW4gW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5h
bWUpOwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwotI2VuZGlm
CiAKICAgICAgICAgLy8gQ29tbW9uIGV4dGVuc2lvbnMKIApAQCAtMTA5LDcgKzEwNSw2IEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJp
bmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiAh
ZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gV2ViS2l0
IGV4dGVuc2lvbiwgcGVuZGluZyBzcGVjaWZpY2F0aW9uLgogICAgICAgICBib29sZWFuIHdlYmtp
dE1hdGNoZXNTZWxlY3RvcihpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CkBAIC0xMjAsNyArMTE1LDYgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBwcmV2aW91c0VsZW1lbnRTaWJsaW5nOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBuZXh0RWxlbWVudFNpYmxpbmc7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENvdW50
OwotI2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdF
X0pBVkFTQ1JJUFQKICAgICAgICAgLy8gQ1NTT00gVmlldyBNb2R1bGUgQVBJCkBAIC0xMzQsNyAr
MTI4LDYgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0jaWYgIWRlZmluZWQoTEFOR1VB
R0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9NIGF0
dHJpYnV0ZXMKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmFi
b3J0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmx1cjsK
QEAgLTIwOCw3ICsyMDEsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKICNlbmRpZgogI2VuZGlmCi0jZW5kaWYK
ICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbnRpdHkuaWRsIGIvV2ViQ29y
ZS9kb20vRW50aXR5LmlkbAppbmRleCAzOWQ2Y2UzLi44ZGFjYmU5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9FbnRpdHkuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0VudGl0eS5pZGwKQEAgLTE5LDEw
ICsxOSw3IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIElu
dGVyZmFjZVVVSUQ9NUNEQjVBQ0EtRjNBNy00N2VhLUI4OUMtRjMzNUU0MzQyQzU1LAotICAgICAg
ICBJbXBsZW1lbnRhdGlvblVVSUQ9REREMkE2MjEtNTlGRC00YmIyLTlGOTUtNzA2MUMzRkI5RjA2
Ci0gICAgXSBFbnRpdHkgOiBOb2RlIHsKKyAgICBpbnRlcmZhY2UgRW50aXR5IDogTm9kZSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgcHVibGljSWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsXSBET01TdHJpbmcgc3lzdGVtSWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgbm90YXRpb25OYW1lOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbCBiL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5pZGwKaW5kZXggYzNiYWNiZC4uZjY1MmQ5YSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBp
bnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTYxQkY0QTAzLTE5RkItNGFjNC1BNjI0
LTVCRjA4OTNGREE2NSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTQ4NkUxMTgyLUNGNEYt
NDUwYi1CNDExLUE1ODRDQTQyQkJEMAotICAgIF0gRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7Cisg
ICAgaW50ZXJmYWNlIEVudGl0eVJlZmVyZW5jZSA6IE5vZGUgewogICAgIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50LmlkbCBiL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRl
eCA5M2I2MTg5Li5kNjRkMTIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKKysr
IGIvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0yNCw5ICsyNCw3IEBAIG1vZHVsZSBldmVudHMg
ewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIEN1c3RvbVRvSlMsCiAgICAgICAgIE5vU3RhdGlj
VGFibGVzLAotICAgICAgICBQb2x5bW9ycGhpYywKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1EMTc0
OTVGQS1BQ0FELTRkMjctOTM2Mi1FMTlFMDU3QjE4OUQsCi0gICAgICAgIEltcGxlbWVudGF0aW9u
VVVJRD1DRkRDRERCMi01QjNGLTQxMmQtQkRBNC04MEIyM0M3MjE1NDkKKyAgICAgICAgUG9seW1v
cnBoaWMKICAgICBdIEV2ZW50IHsKIAogICAgICAgICAvLyBET00gUGhhc2VUeXBlCkBAIC02MCw5
ICs1OCw4IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgICBldmVudFBoYXNlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgICBidWJibGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biAgICAgICAgICBjYW5jZWxhYmxlOwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxB
TkdVQUdFX0NPTQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wICAgICB0
aW1lU3RhbXA7Ci0jZW5kaWYKKwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc3RvcFByb3Bh
Z2F0aW9uKCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCgpOwog
ICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIGluaXRFdmVudChpbiBET01TdHJpbmcgZXZlbnRU
eXBlQXJnLCAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsIGIvV2Vi
Q29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwKaW5kZXggZWFkZDljZC4uMDIzNzc3YiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwKKysrIGIvV2ViQ29yZS9kb20vRXZl
bnRMaXN0ZW5lci5pZGwKQEAgLTI1LDggKzI1LDcgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAg
IE5vU3RhdGljVGFibGVzLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIFB1cmVJbnRl
cmZhY2UsCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1C
MDRGMkFFMy03MUUyLTRlYmUtQUJGRS1FRjQ5MzgzNTQwODIsCisgICAgICAgIE9taXRDb25zdHJ1
Y3RvcgogICAgIF0gRXZlbnRMaXN0ZW5lciB7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBo
YW5kbGVFdmVudChpbiBFdmVudCBldnQpOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5pZGwgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5pZGwKaW5kZXggYjZl
ZmMzNy4uMGNkYjZiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaWRsCisr
KyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbApAQCAtMjUsNyArMjUsNiBAQCBtb2R1bGUg
ZXZlbnRzIHsKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBQdXJlSW50ZXJmYWNlLAog
ICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICAgICAgSW50ZXJmYWNlVVVJRD0xRDcxQzdFQy0w
QkEwLTQwNDQtQkRGRC01NkIzRThGNUY5RDQKICAgICBdIEV2ZW50VGFyZ2V0IHsKICAgICAgICAg
W09sZFN0eWxlT2JqQ10gdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlz
dGVuZXIgbGlzdGVuZXIsIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlk
bCBiL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwKaW5kZXggYjdlMWU4Yy4uNGQzNjU3NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbAorKysgYi9XZWJDb3JlL2Rv
bS9OYW1lZE5vZGVNYXAuaWRsCkBAIC0yMyw5ICsyMyw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICBp
bnRlcmZhY2UgWwogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEhhc0luZGV4
R2V0dGVyLAotICAgICAgICBIYXNOYW1lR2V0dGVyLAotICAgICAgICBJbnRlcmZhY2VVVUlEPTA4
REFGN0E0LTRDMzItNDcwOS1CNzJGLTYyMjcyMUZGMEZCOCwKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPUExQ0M5RjVCLTA5MkQtNGEwNC05NkQ5LUQ3NzE4QThENjI0MgorICAgICAgICBIYXNO
YW1lR2V0dGVyCiAgICAgXSBOYW1lZE5vZGVNYXAgewogCiAgICAgICAgIE5vZGUgZ2V0TmFtZWRJ
dGVtKGluIERPTVN0cmluZyBuYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05vZGUuaWRs
IGIvV2ViQ29yZS9kb20vTm9kZS5pZGwKaW5kZXggOWM2YjE3MS4uYzZjZDRiOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5pZGwKQEAgLTI3
LDkgKzI3LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAg
R2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIElubGluZUdldE93blByb3BlcnR5U2xv
dCwKLSAgICAgICAgUG9seW1vcnBoaWMsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9ODRCQTBEN0Et
N0UzRS00YTdiLUI2RkItNzY1M0U4RkI1NEVELAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9
ODFCNDdGREItOTRCMC00MGZkLThFMEMtRkIyQTZFNTNDQzA0CisgICAgICAgIFBvbHltb3JwaGlj
CiAgICAgXSBOb2RlCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKICAgICAgICAgOiBPYmplY3QsIEV2ZW50VGFyZ2V0CkBAIC0xMzQsNyAr
MTMyLDYgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpICovCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdV
QUdFX09CSkVDVElWRV9DCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0Vf
Q09NCiAgICAgICAgIFtDdXN0b21dIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CkBAIC0xNDQsNyArMTQxLDYgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAgICAg
ICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogI2VuZGlmCi0jZW5kaWYKICAgICB9OwogCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwgYi9XZWJDb3JlL2RvbS9Ob2Rl
TGlzdC5pZGwKaW5kZXggMjUxOTE2MC4uZWRiMmRjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
Tm9kZUxpc3QuaWRsCisrKyBiL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbApAQCAtMjMsOSArMjMs
NyBAQCBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgSGFzSW5kZXhHZXR0
ZXIsCiAgICAgICAgIEhhc05hbWVHZXR0ZXIsCi0gICAgICAgIEN1c3RvbUNhbGwsCi0gICAgICAg
IEludGVyZmFjZVVVSUQ9RjlBOUY2QTktMzg1Qy00MTRlLUE2RjYtRTJFMENGNTc0MTMwLAotICAg
ICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9QkJCNDlFOEItREIxRC00YzRhLUI5NzAtRDMwMEZCNDYw
OUZBCisgICAgICAgIEN1c3RvbUNhbGwKICAgICBdIE5vZGVMaXN0IHsKIAogICAgICAgICBOb2Rl
IGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vTm90YXRpb24uaWRsIGIvV2ViQ29yZS9kb20vTm90YXRpb24uaWRsCmluZGV4IDBl
Y2UwMTMuLjk2MzUxZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vdGF0aW9uLmlkbAorKysg
Yi9XZWJDb3JlL2RvbS9Ob3RhdGlvbi5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBj
b3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NjU4MEM3MDMt
RjVGRi00MGE3LUFDRjItQUI4MEVCQzgzQ0ExLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9
QTUyODY5RjctQTNDRS00ZjRjLThDMjctRTM2OUM0RUQ5RkY5Ci0gICAgXSBOb3RhdGlvbiA6IE5v
ZGUgeworICAgIGludGVyZmFjZSBOb3RhdGlvbiA6IE5vZGUgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIHB1YmxpY0lkOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9N
U3RyaW5nIHN5c3RlbUlkOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaWRsIGIvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlk
bAppbmRleCBjMTNiYThlLi5lZmNjOWMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaWRsCisrKyBiL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5pZGwKQEAgLTIwLDEwICsyMCw3IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NTk0N0U4RjgtQjVDQi00YTUxLUI4ODMtQjkxRjM0
NEYxRTEzLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9N0VFQzAzNzYtM0Q3Ni00NjQzLUE5
NjQtOTdCOEFDMUZCNkQzCi0gICAgXSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gOiBOb2RlIHsKKyAg
ICBpbnRlcmZhY2UgUHJvY2Vzc2luZ0luc3RydWN0aW9uIDogTm9kZSB7CiAKICAgICAgICAgLy8g
RE9NIExldmVsIDEKIApAQCAtMzEsMTEgKzI4LDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBkYXRhCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFM
QU5HVUFHRV9DT00KICAgICAgICAgLy8gaW50ZXJmYWNlIExpbmtTdHlsZSBmcm9tIERPTSBMZXZl
bCAyIFN0eWxlIFNoZWV0cwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVTaGVldCBz
aGVldDsKLSNlbmRpZgotCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVGV4
dC5pZGwgYi9XZWJDb3JlL2RvbS9UZXh0LmlkbAppbmRleCAzZGZmN2Y3Li4xMTZlYWI3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9UZXh0LmlkbAorKysgYi9XZWJDb3JlL2RvbS9UZXh0LmlkbApA
QCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKLSAg
ICAgICAgSW50ZXJmYWNlVVVJRD00RUE2Qjg5Qy1GOEU1LTQ2MmEtQTgwNy01MTk0NDYxMjMxODQs
Ci0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1DQjVENjFDQi1EMzBELTQ4NmUtOUJENy1GNDJC
NzYxMUMyRTUKLSAgICBdIFRleHQgOiBDaGFyYWN0ZXJEYXRhIHsKKyAgICBpbnRlcmZhY2UgVGV4
dCA6IENoYXJhY3RlckRhdGEgewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAxCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaWRsCmluZGV4IDc0M2IxNTEuLjAzYjM5ODYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmlkbApAQCAtMjAsMTAgKzIwLDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0g
ICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD0wYzc0Y2VmOC1iMWY3LTRiNDQt
ODNhOS04ZGVlYjM3NmEyNTcsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0zMGY3OTdkNS1k
MTQ1LTQ5OGUtYTEyNi1kOGU5ZGRlZWRlYTMKLSAgICBdIEhUTUxBbmNob3JFbGVtZW50IDogSFRN
TEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MQW5jaG9yRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1h
Y2Nlc3NrZXldIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwogICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29v
cmRzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbCBiL1dl
YkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKaW5kZXggNGI0Mzg0YS4uOGQ2ODAzZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCkBAIC0yNCw5ICsyNCw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgRGVsZWdhdGluZ1B1dEZ1bmN0aW9uLAogICAgICAgICBEZWxlZ2F0aW5n
R2V0T3duUHJvcGVydHlTbG90LAogICAgICAgICBDdXN0b21DYWxsLAotICAgICAgICBIYXNPdmVy
cmlkaW5nTmFtZUdldHRlciwKLSAgICAgICAgSW50ZXJmYWNlVVVJRD05YjVjYjRhOC1jMTU2LTRi
NTUtYWZkYi1jNjA5MzhhNGQxYjEsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD01NjU0NDM3
Mi02NzVlLTQwZGQtYmEzOS1mYTcwOGE0Yzc2NzgKKyAgICAgICAgSGFzT3ZlcnJpZGluZ05hbWVH
ZXR0ZXIKICAgICBdIEhUTUxBcHBsZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgYWxpZ247CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRs
CmluZGV4IDU5OGQ4NWYuLjIxMGQ2ZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsCkBAIC0y
MCwxMCArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAg
ICBJbnRlcmZhY2VVVUlEPWFhYzk4NzI5LTQ3ZDMtNDYyMy04YzViLTAwNDc4M2FmNWJkNiwKLSAg
ICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWYwNjMxYTQxLTVmNTUtNDBlNS1hODc5LWMwOWU2NjNj
MjZiYQotICAgIF0gSFRNTEFyZWFFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFj
ZSBIVE1MQXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9YWNjZXNza2V5XSBET01TdHJpbmcgYWNjZXNz
S2V5OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgYWx0OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29vcmRzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxCUkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRsCmluZGV4
IDhjN2NmOTEuLjQwNDg5MTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3
IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFj
ZVVVSUQ9ZTg0YjE0YmMtYjBhYS00MzFmLTgzYzQtZmNjMjk3ZTM1NGIwLAotICAgICAgICBJbXBs
ZW1lbnRhdGlvblVVSUQ9YzEwZDQ1YTQtYjA0Mi00NWQwLWIxNzAtNmFjNzE3M2VlODIzCi0gICAg
XSBIVE1MQlJFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MQlJFbGVt
ZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY2xlYXI7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VF
bGVtZW50LmlkbAppbmRleCAwZGY1ZmNkLi4wODdmYWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTEJhc2VFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50
LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNl
IFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1lNDExMmJlYS0xM2RlLTQwZjYtOTNkMC00MWUyODVh
ZTE0OTEsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0yM2NlYzA3NC02NjBmLTQ5MGEtOTk2
ZC0xNjdkNjZjMTY0ZDUKLSAgICBdIEhUTUxCYXNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAg
ICBpbnRlcmZhY2UgSFRNTEJhc2VFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaHJlZjsK
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9N
U3RyaW5nIHRhcmdldDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCYXNl
Rm9udEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsCmlu
ZGV4IGM4MTU2YzguLmQ1NTY1NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZv
bnRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGwK
QEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0g
ICAgICAgIEludGVyZmFjZVVVSUQ9NDM0YjFiZTUtNDA4ZS00NWI1LWJlODMtYzcwZTExZTliYjM3
LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9MWRjODUwOGUtNTNjNC00ZTdlLTkzYzAtMTY3
NzIzNzJiMmRjCi0gICAgXSBIVE1MQmFzZUZvbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAg
IGludGVyZmFjZSBIVE1MQmFzZUZvbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29s
b3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Rd
IERPTVN0cmluZyBmYWNlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExB
TkdVQUdFX09CSkVDVElWRV9DCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJsb2NrcXVv
dGVFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1lbnQuaWRsCmlu
ZGV4IGQ2OWFkNjcuLmI4MTkyMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQmxvY2tx
dW90ZUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1lbnQu
aWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBJbnRlcmZhY2VVVUlEPTkwMmQ5MDExLWM2ZDYtNDM2My1iNmZlLWJkMmQyOGVm
NTUzYiwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTM0NWRiOTQ2LWJhOWMtNDRiOS04N2Zk
LTA2MDgzYWE0NzJlNAotICAgIF0gSFRNTEJsb2NrcXVvdGVFbGVtZW50IDogSFRNTEVsZW1lbnQg
eworICAgIGludGVyZmFjZSBIVE1MQmxvY2txdW90ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0
cmluZyBjaXRlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVs
ZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKaW5kZXggOWE0ZGUy
Ni4uOTUxNDBjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKQEAgLTIwLDEwICsyMCw3IEBA
CiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVV
SUQ9NDc4OWFmYzYtMmQ5ZS00ZjNiLThjMjctMTJhYmM5ZDRhMDE0LAotICAgICAgICBJbXBsZW1l
bnRhdGlvblVVSUQ9ZDJlMTY5MTEtMmY3ZS00ZDU4LWE5MmMtOTQ3MDBkNDQ1YjM4Ci0gICAgXSBI
VE1MQm9keUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxCb2R5RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZywgUmVmbGVjdD1hbGlua10gRE9NU3RyaW5nIGFMaW5rOwogICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgYmFja2dyb3Vu
ZDsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1i
Z2NvbG9yXSBET01TdHJpbmcgYmdDb2xvcjsKQEAgLTMyLDcgKzI5LDYgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PXZs
aW5rXSBET01TdHJpbmcgdkxpbms7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8
fCAhTEFOR1VBR0VfQ09NCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmVmb3JldW5sb2FkOwog
ICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaGFzaGNoYW5nZTsK
QEAgLTYwLDcgKzU2LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvLyBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVkbzsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbnVuZG87CiAjZW5kaWYKLSNlbmRpZgogICAgIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDIwNWEwNDkuLjczMDk4ZmUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMjAsMTUgKzIwLDEwIEBACiAKIG1vZHVsZSBo
dG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9Yjk3MTU2NDMt
NTU5MS00NDJkLWFiNjUtZTA1MzA5NjA3MjcxLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9
MWJlMTNiNWYtNDBkZi00NTUwLWI3MGUtOGM4MDVlNTQ2Y2FkCi0gICAgXSBIVE1MQnV0dG9uRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50
ICAgICAgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAg
ICAgICBmb3JtTm9WYWxpZGF0ZTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5H
VUFHRV9DT00KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBWYWxpZGl0eVN0YXRlICAgICAg
ICB2YWxpZGl0eTsKLSNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5OwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRpc2FibGVkOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGF1dG9mb2N1czsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCmluZGV4IGQzNWJiMWQuLjEwOGRhZjggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtMjYsOSArMjYsNyBAQAogbW9kdWxlIGh0bWwg
ewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAotICAgICAg
ICBJbnRlcmZhY2VVVUlEPWExNGQ4OGM4LWM2YWYtNGUzNC1hZDE3LTY1OTcwMGM3N2ExMCwKLSAg
ICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTdhZTczMWJjLWMyNjQtNGVlMy1hNGI0LTVkNDU0MGFm
MjZjMworICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24KICAgICBdIEhUTUxDYW52YXNFbGVtZW50
IDogSFRNTEVsZW1lbnQgewogCiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHdpZHRoOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
Q29sbGVjdGlvbi5pZGwKaW5kZXggZmE3MjA2Yy4uYTNlNDMzMiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rp
b24uaWRsCkBAIC0yNSw5ICsyNSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSGFzTmFtZUdl
dHRlciwKICAgICAgICAgQ3VzdG9tQ2FsbCwKICAgICAgICAgQ3VzdG9tVG9KUywKLSAgICAgICAg
UG9seW1vcnBoaWMsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9YjBkMjE1ZmYtNmY5Yy00ZDFmLTg2
YzMtZjIwMGE2NWE1MTM0LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OGU4MWIxN2YtN2Y3
NC00MTIxLThmMmYtYTMzOWE3ZTY2NDQ3CisgICAgICAgIFBvbHltb3JwaGljCiAgICAgXSBIVE1M
Q29sbGVjdGlvbiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICAgICAgW0N1c3RvbV0gTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsIGIvV2ViQ29y
ZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsCmluZGV4IGJiMzcwMTUuLjU3YzVjNTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTERMaXN0RWxlbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBodG1s
IHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NTY2NWM1ODktYWVh
OS00MzIyLTg0NGYtZDMzOTVmZDU4MzllLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTlh
YzI2YTMtMjI0Yi00YmM2LWIyODctODk5NDZhNmRlOWE3Ci0gICAgXSBIVE1MRExpc3RFbGVtZW50
IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MRExpc3RFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wYWN0OwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsCmluZGV4IGRlNDFhM2IuLmM4OGUyZTAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAog
bW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD00
OTI5MmM2Yi0yYjJlLTQ5Y2ItOThiNi0yMGQ0Y2Q4MDZiZDIsCi0gICAgICAgIEltcGxlbWVudGF0
aW9uVVVJRD00NTc0OTc5OC00YWZlLTQ4ODQtYTQyYS1hMmM4YjNkOTg3OTUKLSAgICBdIEhUTUxE
aXJlY3RvcnlFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MRGlyZWN0
b3J5RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY29t
cGFjdDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQu
aWRsIGIvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbAppbmRleCBlYTE2ZjZiLi45ZjBi
NTgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVs
ZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9NDZmYjkw
OTUtYjQ4NS00OTI1LWI2ZmQtMjYyMjkzNWZkOGJmLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVV
SUQ9NWY4NjYxYjctOTZhZC00YThiLTg2NGEtODVkNTQ0MzE5ZmQyCi0gICAgXSBIVE1MRGl2RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTERpdkVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBhbGlnbjsKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCmluZGV4IGIyNGQ3Y2Eu
LmE3OWI5MTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCkBAIC0yMSw5ICsyMSw3IEBACiBtb2R1bGUg
aHRtbCB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBIYXNPdmVycmlkaW5nTmFtZUdldHRl
ciwKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1hMTgzMzM5Yy04ZDc0LTQxMmEtOTMzZC02ZjZhNGFk
NjI2NmUsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1kMGY3ZDk2Ni0wMzNjLTRjYmYtODQ3
Yy0xNDYxZGFjYzJmNmEKKyAgICAgICAgSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIKICAgICBdIEhU
TUxEb2N1bWVudCA6IERvY3VtZW50IHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBvcGVuKCk7CiAg
ICAgICAgIHZvaWQgY2xvc2UoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCmluZGV4IGE4YjFlZDMuLjYyN2Rk
YTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtMjIsOSArMjIsNyBAQCBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgWwogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAg
ICAgQ3VzdG9tUHVzaEV2ZW50SGFuZGxlclNjb3BlLAotICAgICAgICBJbnRlcmZhY2VVVUlEPWIy
ZjE3MmYxLWQyMDktNDQ2Zi04MTQzLTVmMjFkZTY3OGY5NSwKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPWM4MWIwZTE2LWEyYjktNDQ4Yi1hZDBhLTgxYzkzNDZkNmY4YQorICAgICAgICBDdXN0
b21QdXNoRXZlbnRIYW5kbGVyU2NvcGUKICAgICBdIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CiAg
ICAgICAgICAgICAgICAgIC8vIGlodC5jb20gcmVsaWVzIG9uIGlkIHJldHVybmluZyB0aGUgZW1w
dHkgc3RyaW5nIHdoZW4gbm8gaWQgaXMgcHJlc2VudC4gCiAgICAgICAgICAgICAgICAgIC8vIE90
aGVyIGJyb3dzZXJzIGRvIHRoaXMgYXMgd2VsbC4gU28gd2UgZG9uJ3QgY29udmVydCBudWxsIHRv
IEpTIG51bGwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwg
Yi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwKaW5kZXggMWNkOTEzNS4uZDQ5MWEw
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbApAQCAtMjQsOSArMjQsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIERlbGVnYXRpbmdQdXRGdW5jdGlvbiwKICAgICAgICAgRGVsZWdhdGlu
Z0dldE93blByb3BlcnR5U2xvdCwKICAgICAgICAgQ3VzdG9tQ2FsbCwKLSAgICAgICAgSGFzT3Zl
cnJpZGluZ05hbWVHZXR0ZXIsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9MThmOWJkNTgtNmJiMy00
YjVjLWFhMzAtNmRhMTNhZGZjOTFlLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTNlMDQw
N2EtODM4MC00ZmYwLTk3OGQtZjc3M2YyZGVlNmEzCisgICAgICAgIEhhc092ZXJyaWRpbmdOYW1l
R2V0dGVyCiAgICAgXSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgYWxpZ247CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFH
RV9KQVZBU0NSSVBUCkBAIC00MywxNCArNDEsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOwogI2VuZGlm
CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICNpZiBkZWZp
bmVkKEVOQUJMRV9TVkcpICYmIEVOQUJMRV9TVkcKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpF
Q1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DIHx8IGRlZmluZWQoRU5BQkxFX1NWR19E
T01fT0JKQ19CSU5ESU5HUykgJiYgRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUwogICAgICAg
ICBbU1ZHQ2hlY2tTZWN1cml0eURvY3VtZW50XSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlmCi0jZW5k
aWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5kZXggYmY3
MTQzZS4uOGNmZmUzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbApAQCAtMTks
MTQgKzE5LDkgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAg
SW50ZXJmYWNlVVVJRD1jZjllNGM0Yy1hMWM5LTQ3NDAtYWQ2Yy02ZTVlYTk0YTUxYTUsCi0gICAg
ICAgIEltcGxlbWVudGF0aW9uVVVJRD05MzU3Mzc1OC05NmRiLTQxNWQtOWJkYy1lZTcyMzg2MDQw
OTQKLSAgICBdIEhUTUxGaWVsZFNldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJm
YWNlIEhUTUxGaWVsZFNldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9D
T00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5
U3RhdGUgICB2YWxpZGl0eTsKLSNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tW
YWxpZGl0eSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwg
Yi9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmlkbAppbmRleCAzMzJhYWU0Li5mYTdkOTA4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmlkbAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxl
IGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1mNmExMWRi
ZS03ZjQwLTQ5ZGMtYTMwNC03OTk3YjI1YjJjYjksCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJ
RD1hMzc0NTNiOS1mN2JhLTQ4OTYtOGU5MS0zN2QxZWNjNWI3Y2UKLSAgICBdIEhUTUxGb250RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTEZvbnRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgY29sb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBmYWNlOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgc2l6ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKaW5kZXggMGEw
NGVkYS4uZDYzOWMzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5p
ZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKQEAgLTIyLDkgKzIyLDcg
QEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgSGFzSW5kZXhHZXR0
ZXIsCi0gICAgICAgIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyLAotICAgICAgICBJbnRlcmZhY2VV
VUlEPWM3ZTc5MjUyLTNiNmQtNDYzNi05ZWZiLTA2NjcxOTJjYTVjMywKLSAgICAgICAgSW1wbGVt
ZW50YXRpb25VVUlEPTM1NjEyODhmLTVmNjctNGM0NS05MjkwLWRlNDE5MWQ0YzljOQorICAgICAg
ICBIYXNPdmVycmlkaW5nTmFtZUdldHRlcgogICAgIF0gSFRNTEZvcm1FbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gIGVsZW1l
bnRzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIGxlbmd0aDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbCBiL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbAppbmRleCAwZjQwNjE5Li40NTNkZTBhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZUVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7
CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTA3OTVkZTQzLWUwY2It
NDI5ZS1hZTBiLWQzOGRiYjY0MWZkNywKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTM4Yzll
M2M4LTMzODQtNDBiNi1hNDg0LWNiODQ1YzQ4YjY3ZAotICAgIF0gSFRNTEZyYW1lRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTEZyYW1lRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0PWZyYW1lYm9yZGVyXSBET01TdHJpbmcgICAgICAgZnJhbWVCb3JkZXI7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxl
Y3Q9bG9uZ2Rlc2NdIERPTVN0cmluZyAgICAgICBsb25nRGVzYzsKQEAgLTM3LDcgKzM0LDYgQEAg
bW9kdWxlIGh0bWwgewogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1lbnQgICAg
ICAgIGNvbnRlbnREb2N1bWVudDsKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxB
TkdVQUdFX0NPTQogICAgICAgICAvLyBFeHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01XaW5kb3cgY29udGVudFdpbmRvdzsKIApAQCAtNDcsNyArNDMsNiBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlm
Ci0jZW5kaWYKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBDdXN0b21TZXR0ZXJdIERPTVN0cmluZyAgICAgICBsb2NhdGlvbjsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB3aWR0aDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmlkbAppbmRleCA1NTc3YmY3Li4zYTc2MWFlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaWRsCkBAIC0yMSwxNSArMjEsMTIgQEAKIG1vZHVsZSBodG1sIHsKIAog
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyLAotICAgICAg
ICBJbnRlcmZhY2VVVUlEPTUwMzhhNzNkLWMwZGItNDg0Ny1hY2I0LTRjNmQzMWY0ODc5MCwKLSAg
ICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTQ1MGY3YmY2LWZkYzAtNGEwZi1iN2UxLWJhZWE3Zjdl
NTczMgorICAgICAgICBIYXNPdmVycmlkaW5nTmFtZUdldHRlcgogICAgIF0gSFRNTEZyYW1lU2V0
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbHM7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyByb3dzOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwotI2lmICFkZWZpbmVkKExBTkdV
QUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICAvLyBFdmVudCBoYW5kbGVyIGF0dHJp
YnV0ZXMKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJlZm9y
ZXVubG9hZDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmhh
c2hjaGFuZ2U7CkBAIC01Nyw3ICs1NCw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnJlZG87CiAgICAgICAgIC8vIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb251bmRvOwogI2VuZGlmCi0jZW5kaWYKICAg
ICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5pZGwgYi9X
ZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5pZGwKaW5kZXggMmFkNzAxYy4uYmIxZmRjZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MSFJFbGVtZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewog
Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD0yMDQ3N2IzNC1hYjIyLTQ3
ZTMtYjlhYS04MGMzODhkMzI5NzUsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD02Y2ZjODk3
Ny0xNzJkLTQ4ZjYtOGYwOC1jNzY3MWYwMjM1NGMKLSAgICBdIEhUTUxIUkVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxIUkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGln
bjsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gbm9TaGFkZTsKICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNpemU7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVs
ZW1lbnQuaWRsCmluZGV4IDgzZTI1YTEuLjg1NTlkZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MSGVhZEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQu
aWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBJbnRlcmZhY2VVVUlEPTQ3ZTBjMWEyLTM5Y2EtNGJlOC1hNGVmLTM4YWYwNjQ2
MmQyZSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWY1NjQwOGZlLTY5ODctNGVjZS1iOTI1
LTU5OWY1MTdiZGU1MAotICAgIF0gSFRNTEhlYWRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAg
IGludGVyZmFjZSBIVE1MSGVhZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJp
YnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBwcm9m
aWxlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5pZGwKaW5kZXggM2M1YWY0
ZS4uNDg2YTViZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5p
ZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5pZGwKQEAgLTE5LDEwICsx
OSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVy
ZmFjZVVVSUQ9OTFjMDI5YmItYWEzYS00ODc3LThhYjUtNTlmMzA0NTI1ZmQ1LAotICAgICAgICBJ
bXBsZW1lbnRhdGlvblVVSUQ9YWIzOWUxODktNWQwYy00NjVkLWI1MTgtZjU3YmM5MjAwMzhiCi0g
ICAgXSBIVE1MSGVhZGluZ0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhU
TUxIZWFkaW5nRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5pZGwKaW5kZXggZDU4ZTNlYi4uOWNlZTAwMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxl
bWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9MTYyODI4YTUtZDRkOS00OTczLWI1Y2EtMDBj
Y2JiMjZkZWQ5LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9MzYyZjRmNWYtOTljNS00YmJm
LTkxYmEtOWFlN2Y5YTdiMjk3Ci0gICAgXSBIVE1MSHRtbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CisgICAgaW50ZXJmYWNlIEhUTUxIdG1sRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmVyc2lvbjsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwKaW5kZXggNjVjZTg0Ni4uZTFhZWQwMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1bGUg
aHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTMyMjY1ZjJl
LTc5YjEtNGU0ZS1iMGQxLTg2YjA1MDI5ODg4MywKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlE
PTM3MGM2MzE4LWY4MDQtNDlmOS1iYzhhLTQ2Yjk5Y2Q4NzM5OQotICAgIF0gSFRNTElGcmFtZUVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxJRnJhbWVFbGVtZW50IDog
SFRNTEVsZW1lbnQgewogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBhbGlnbjsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1mcmFtZWJv
cmRlcl0gRE9NU3RyaW5nICAgICAgIGZyYW1lQm9yZGVyOwpAQCAtNDAsNyArMzcsNiBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tGcmFtZVNlY3VyaXR5XSBEb2N1bWVudCAgICAgICAg
Y29udGVudERvY3VtZW50OwogCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VB
R0VfQ09NCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVdpbmRvdyBjb250ZW50V2luZG93OwogCkBAIC01MCw3ICs0Niw2IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAjZW5kaWYKLSNl
bmRpZgogCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCmluZGV4IGZiNzMyNDku
LjM4NjI1MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwKQEAgLTIwLDEwICsyMCw3IEBA
CiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVV
SUQ9YjIxYjgxMjUtZDAwYi00YmRmLWIwZTgtNjU5Njc4ZGIzOTIzLAotICAgICAgICBJbXBsZW1l
bnRhdGlvblVVSUQ9MjEyMWNhMjEtODExOC00ZjFiLWI5ZmUtNDc4OGE5MDUwMjgxCi0gICAgXSBI
VE1MSW1hZ2VFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MSW1hZ2VF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3Ry
aW5nIGFsaWduOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgYWx0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CmluZGV4IDNkMDAxZGUuLmMxZDg5MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAg
LTIwLDE3ICsyMCwxMiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAg
ICAgICBJbnRlcmZhY2VVVUlEPThmMzg4ZWEzLTFjMzEtNGNjYS04ZWRkLTQ0OWQxNGUyMjJlMSwK
LSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWFlYjU2Yjg3LWE5MGUtNGQ5ZC1hNGQ1LTdlZWMz
Njg3YzMzOAotICAgIF0gSFRNTElucHV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRl
cmZhY2UgSFRNTElucHV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1
ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBkZWZhdWx0Q2hl
Y2tlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGZvcm1Ob1ZhbGlkYXRl
OwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdVQUdFX0NPTQogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwotI2VuZGlmCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBhY2NlcHQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKQEAgLTQxLDE0ICszNiwx
MCBAQCBtb2R1bGUgaHRtbCB7CiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUxJU1QpICYmIEVOQUJM
RV9EQVRBTElTVAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgICAgIGxp
c3Q7CiAjZW5kaWYKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00K
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVm
bGVjdF0gRE9NU3RyaW5nIG1heDsKLSNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
bG9uZyAgICAgICAgICAgIG1heExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkgfHwgIUxBTkdV
QUdFX0NPTQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbWluOwotI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuICAgICAgICAgbXVsdGlwbGU7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgcGF0dGVybjsKQEAgLTEwNSw5ICs5Niw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFVSTCAgICAgICAgICAgICBhYnNvbHV0ZUltYWdlVVJMOwogI2Vu
ZGlmCiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOwotI2VuZGlmCiAgICAgfTsKIAog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5pZGwgYi9XZWJD
b3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbAppbmRleCA4M2JiYzE2Li5kOTY4ZmE3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9k
dWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD05NGZj
NGUzOS00ZDgxLTQ0ZTMtYTM3ZC0zNjQ1NTNiMjNhMzcsCi0gICAgICAgIEltcGxlbWVudGF0aW9u
VVVJRD1iMzFkNDA5Yi04ZjY4LTQ5NWQtYTBjMi1iODE1MjA3MTY5NzQKLSAgICBdIEhUTUxJc0lu
ZGV4RWxlbWVudCA6IEhUTUxJbnB1dEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MSXNJbmRl
eEVsZW1lbnQgOiBIVE1MSW5wdXRFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgcHJvbXB0OwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTExJRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5pZGwK
aW5kZXggOTBhYTcwMi4uOTQ2ZWMxOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxMSUVs
ZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbApAQCAtMTksMTAg
KzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50
ZXJmYWNlVVVJRD04M2E0YTc1Yy00NDI3LTRmNTMtYjk3NC04MTA3ZmVkYjRjMmIsCi0gICAgICAg
IEltcGxlbWVudGF0aW9uVVVJRD01NzQ3ODA4ZC04Y2JkLTQ5YzktYjg5Yi0zZmRjMzE1YzU1ZmUK
LSAgICBdIEhUTUxMSUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxM
SUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyB2YWx1
ZTsgICAgCiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAppbmRleCBhMWYzZWFjLi4z
YjI1ZmE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAog
CiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlE
PTk5NzhkOGU2LTFkMjctNDM5MC1iZDJmLTU2ZjBlNzJmMTZlMywKLSAgICAgICAgSW1wbGVtZW50
YXRpb25VVUlEPTE2NWI3NjMzLTAzNzctNDg1My1hNjQ3LTJiOTAwNWY1YWFlYwotICAgIF0gSFRN
TExhYmVsRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTExhYmVsRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgYWNjZXNzS2V5OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgaHRtbEZvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRs
CmluZGV4IDNkMjRlNDUuLmVlMjFlNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbApA
QCAtMjAsMTAgKzIwLDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAg
ICAgICAgSW50ZXJmYWNlVVVJRD1hNmViNDI1NC02MDY2LTQ2NWEtYTFjMC1iNDczMjI4MWMyNTUs
Ci0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0zMjNlODgzYy1lZGY4LTRiMTMtYTE2NS04NjA0
ZjRmMDZhZTIKLSAgICBdIEhUTUxMZWdlbmRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGlu
dGVyZmFjZSBIVE1MTGVnZW5kRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNzS2V5OwogICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaWRsCmluZGV4IDk5NmFiNjQuLmRjNzAwZGYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRl
cmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPWE5ZTllZjI5LWYyMGItNDI5ZC04NDhlLWU1
ZGFkZDMyNjk0YSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTJkOWI5NDRlLTg4ZTMtNDUx
YS04NjQwLTA2YzU5M2MzMzlhOAotICAgIF0gSFRNTExpbmtFbGVtZW50IDogSFRNTEVsZW1lbnQg
eworICAgIGludGVyZmFjZSBIVE1MTGlua0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAg
IGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJp
YnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBjaGFy
c2V0OwogICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgaHJlZjsKQEAgLTM0LDEwICszMSw4IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICAgICAgIHRhcmdldDsKICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9D
T00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gRE9NIExldmVsIDIgU3R5bGUKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQgICBzaGVldDsKLSNlbmRpZgogCiAjaWYg
ZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAg
ICAgICAgLy8gT2JqZWN0aXZlLUMgZXh0ZW5zaW9uOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5pZGwKaW5k
ZXggYjc3NjhiMi4uMWE3NjBkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVt
ZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCkBAIC0yMCwxMCAr
MjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRl
cmZhY2VVVUlEPThhNjYwYjQ4LTRiZWItNGY5ZS04NTViLWUwNDEzMWViMjUxOSwKLSAgICAgICAg
SW1wbGVtZW50YXRpb25VVUlEPTdhZDU3ZTAyLTkxZTUtNDc2MS1hMWNhLWU5NjcxODhlNWUwZAot
ICAgIF0gSFRNTE1hcEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxN
YXBFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gYXJlYXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTE1hcnF1ZWVFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsCmluZGV4IGM1ZjU2NTkuLjM2NTlmODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBJbnRlcmZhY2VVVUlEPTEwMGNhNjczLWViMWUtNDBiNi04Y2JhLWExNWFiYzRj
ZDU5MCwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPWI5NDI3NTA1LTFmMTAtNDI5OS04Yjg1
LTRlMjg5MTQyODk4OAotICAgIF0gSFRNTE1hcnF1ZWVFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgIGludGVyZmFjZSBIVE1MTWFycXVlZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAg
IHZvaWQgc3RhcnQoKTsKICAgICAgICAgdm9pZCBzdG9wKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVu
dC5pZGwKaW5kZXggNDJkMWM4Zi4uMjM4MjYzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxNZW51RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwK
QEAgLTE5LDEwICsxOSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0g
ICAgICAgIEludGVyZmFjZVVVSUQ9ZmIzNTNhZjYtNDkyNy00NTEyLWFkNDMtNGFkODE5MWI1NjE1
LAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9ZWMyNjI1N2MtYTJhNC00M2RjLWIyMzQtY2Y2
NDRkMjJiMWZiCi0gICAgXSBIVE1MTWVudUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50
ZXJmYWNlIEhUTUxNZW51RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gY29tcGFjdDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCmluZGV4
IDEzZTcxM2QuLmVmN2U0YWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1l
bnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCkBAIC0xOSwxMCAr
MTksNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRl
cmZhY2VVVUlEPTY1ZTMzNzRkLTQ3ODktNGM4MS05ODNiLTFiNWEyOWQyYzA3NSwKLSAgICAgICAg
SW1wbGVtZW50YXRpb25VVUlEPWE5YWM5YzczLTA1NWQtNGMwMC1iZDAyLTFmYTIxNWFlMzJmMQot
ICAgIF0gSFRNTE1ldGFFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1M
TWV0YUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgY29udGVudDsKICAgICAgICAgYXR0cmlidXRl
ICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICBodHRwRXF1aXY7CiAgICAg
ICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgbmFt
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTE1vZEVsZW1lbnQuaWRsCmluZGV4IDcwZmNkZWQuLmE2ZTNhMDIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxNb2RFbGVtZW50LmlkbApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0g
ICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD03OGMyYmY4OS1jNmU3LTRkODEt
OTdkZi00MjlkMDdiOTFmZjgsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0zOWU3YzY1OS00
MGJlLTQ2MjAtOTQ5Yi0xNWVjNmEyNWJiOTAKLSAgICBdIEhUTUxNb2RFbGVtZW50IDogSFRNTEVs
ZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MTW9kRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNpdGU7
CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBk
YXRlVGltZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsCmluZGV4IDMwZDgyMTAu
LjMyZDgxZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBA
CiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVV
SUQ9NjQxNjVhNGMtODg4OS00NzI1LWExNDktYWJkMTNkNWI0YjYxLAotICAgICAgICBJbXBsZW1l
bnRhdGlvblVVSUQ9YTIwZTliNmEtZTNhNS00Mjc2LWFhNDMtMDA5N2U1N2RmOGQ4Ci0gICAgXSBI
VE1MT0xpc3RFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MT0xpc3RF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wYWN0
OwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzdGFydDsKICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmlkbAppbmRleCA4NGU5M2M1Li44ZDk3NWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5pZGwKQEAgLTI0LDkgKzI0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBEZWxlZ2F0aW5n
UHV0RnVuY3Rpb24sCiAgICAgICAgIERlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAg
ICAgIEN1c3RvbUNhbGwsCi0gICAgICAgIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyLAotICAgICAg
ICBJbnRlcmZhY2VVVUlEPTlkMDRhM2I4LTkwMTYtNGI2NC05MTNhLTNiMDBkNTQ4YWNhNywKLSAg
ICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTJkZDI0NTU0LTY3ODQtNGVmOS05NzEzLTE3OWYzZDM3
YjJmOQorICAgICAgICBIYXNPdmVycmlkaW5nTmFtZUdldHRlcgogICAgIF0gSFRNTE9iamVjdEVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9y
bUVsZW1lbnQgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGNvZGU7CkBAIC01MCwxNCArNDgs
MTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAy
OgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1l
bnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkg
fHwgIUxBTkdVQUdFX0NPTQogI2lmIGRlZmluZWQoRU5BQkxFX1NWRykgJiYgRU5BQkxFX1NWRwog
I2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZF
X0MgfHwgZGVmaW5lZChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAmJiBFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTCiAgICAgICAgIFtTVkdDaGVja1NlY3VyaXR5RG9jdW1lbnRdIFNW
R0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogI2VuZGlmCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpF
Q1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gT2JqZWN0aXZlLUMg
ZXh0ZW5zaW9uOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aWRsIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IGM5OThhOWEu
LjY5MWJkMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwKQEAgLTE5LDEwICsx
OSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVy
ZmFjZVVVSUQ9MThiMGVhOGMtZDNlYS00YjE0LWFiZDgtOGUxZDQyNjlmZmZjLAotICAgICAgICBJ
bXBsZW1lbnRhdGlvblVVSUQ9ZTI2ZDhjNGItNTE4MS00ODU4LTgyMzEtZjY4Y2NiZjgxOWRmCi0g
ICAgXSBIVE1MT3B0R3JvdXBFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBI
VE1MT3B0R3JvdXBFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgIGJv
b2xlYW4gICAgICAgICAgICAgIGRpc2FibGVkOwogICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgbGFiZWw7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCmluZGV4IDI0OTFmZjMuLmM0MzEzMmUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmlkbApAQCAtMjEsOSArMjEsNyBAQAogbW9kdWxlIGh0bWwgewog
CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAg
ICAgIEludGVyZmFjZVVVSUQ9NzRhN2I2NGEtY2YxOC00ZGE5LWIzYWEtZTFmNGQyNDVkNjA3LAot
ICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9MTY2OTE1ZDUtMmM5My00MDRiLWIwNzYtYWYzZmE1
Y2NiZDgzCisgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyCiAgICAgXSBIVE1MT3B0aW9u
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1M
Rm9ybUVsZW1lbnQgICAgICBmb3JtOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xl
YW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29s
bGVjdGlvbi5pZGwKaW5kZXggYTdlMTkxYS4uZDliZmQ0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25zQ29sbGVjdGlvbi5pZGwKQEAgLTIzLDkgKzIzLDcgQEAgbW9kdWxlIGh0bWwgewogICAgIC8v
IEZJWE1FOiBUaGUgVzNDIHNwZWMgc2F5cyB0aGF0IEhUTUxPcHRpb25zQ29sbGVjdGlvbiBzaG91
bGQgbm90IGhhdmUgYSBwYXJlbnQgY2xhc3MuCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgR2Vu
ZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAotICAg
ICAgICBJbnRlcmZhY2VVVUlEPWEwM2FhZWFjLWU0N2QtNGJiMy1hY2I0LWYxODk3YWU3NDIzNywK
LSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTk5YzExZmRlLTZmOWYtNDRhNC1hMDQxLTQ5YTg5
NGM1MmU3MAorICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlcgogICAgIF0gSFRNTE9wdGlvbnND
b2xsZWN0aW9uIDogSFRNTENvbGxlY3Rpb24gewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
bG9uZyBzZWxlY3RlZEluZGV4OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0g
dW5zaWduZWQgbG9uZyBsZW5ndGgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdy
YXBoRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsCmlu
ZGV4IDMwZTk4YjcuLmNkM2I5NDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdy
YXBoRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50Lmlk
bApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsK
LSAgICAgICAgSW50ZXJmYWNlVVVJRD1kZmZlMDgwOS1mM2Y4LTQ5OWQtOGQ1Yy03ZDk4OTNmMjMz
MzcsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0yMWQ2MGI2Mi00ZWNiLTQ4NDktODcyOS0w
YTQwYzY0ZDEyYWEKLSAgICBdIEhUTUxQYXJhZ3JhcGhFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgIGludGVyZmFjZSBIVE1MUGFyYWdyYXBoRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbAppbmRleCA5YjAyYjg1Li4yNDczMzgx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1
bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTc2ZTA1
ZWVlLWMzMGQtNGQ1Mi1hMzU2LTI3MWYxN2IzMWRiZiwKLSAgICAgICAgSW1wbGVtZW50YXRpb25V
VUlEPTQxOGQ4YTgyLTBhOTktNGM2Zi1hNjMwLTFlNjA3MWE3NDM1MAotICAgIF0gSFRNTFBhcmFt
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTFBhcmFtRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyB0eXBlOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFByZUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmlkbAppbmRleCA2
ZjY5YmI4Li41ZGMwZTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQu
aWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKQEAgLTIwLDEwICsyMCw3
IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFj
ZVVVSUQ9ODQwNTBhYmMtNDVlNi00ZmQ4LWJkYzMtMjljN2I0ZWZiNWNiLAotICAgICAgICBJbXBs
ZW1lbnRhdGlvblVVSUQ9ZTZkZTBkMTktODgzZS00ZTg3LTk1NjktZmQwNjhlNWVlMTdkCi0gICAg
XSBIVE1MUHJlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTFByZUVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIC8vIEZJWE1FOiBET00gc3BlYyBzYXlzIHRo
YXQgd2lkdGggc2hvdWxkIGJlIG9mIHR5cGUgRE9NU3RyaW5nCiAgICAgICAgIC8vIHNlZSBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTkyCiAgICAgICAgIGF0dHJpYnV0
ZSBsb25nIHdpZHRoOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQu
aWRsIGIvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsCmluZGV4IDc1ZTIxZjMuLmY5
NWRjMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwKQEAgLTE5LDEwICsxOSw3IEBACiAK
IG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEludGVyZmFjZVVVSUQ9
YTAxMWUxYTMtMTllYy00OTk5LWEyMjUtNzllYmRjNjRhYmRkLAotICAgICAgICBJbXBsZW1lbnRh
dGlvblVVSUQ9ODVjODg1ZWUtY2M0Ny00ZDk4LTg1MmMtZmI5MDdkNTczMDI0Ci0gICAgXSBIVE1M
UXVvdGVFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFjZSBIVE1MUXVvdGVFbGVt
ZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgY2l0ZTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5pZGwKaW5kZXggN2FkYTc4NS4uODk4NTUxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBJbnRlcmZhY2VVVUlEPTU3ZGRmNGRhLTFjOWItNDAwNS04N2Q3LWViOWIyZWQ3
OGU5NSwKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTJlZGIxMDkzLTA4ZjEtNGU3Ni05NzI4
LWRmNWRlZGI4NzlmZQotICAgIF0gSFRNTFNjcmlwdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Cisg
ICAgaW50ZXJmYWNlIEhUTUxTY3JpcHRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dDsKICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGh0bWxGb3I7
CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBl
dmVudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDllZDkyNjcuLmQyNjBmYWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtMjIsOSArMjIsNyBAQCBtb2R1bGUg
aHRtbCB7CiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBIYXNJbmRleEdldHRlciwKLSAgICAg
ICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCi0gICAgICAgIEludGVyZmFjZVVVSUQ9OTkwMTNjZDMt
ZDY0NC00YmI1LTg2YTMtMmU3NDM4MjEzODNiLAotICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9
YWZlMjA0NjItNTg4ZC00NjlhLTliNGMtODg3OWM0YTQ2MWQ1CisgICAgICAgIEhhc0N1c3RvbUlu
ZGV4U2V0dGVyCiAgICAgXSBIVE1MU2VsZWN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHR5cGU7CkBAIC00MCw5ICsz
OCw3IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFM
QU5HVUFHRV9DT00KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2
YWxpZGl0eTsKLSNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNr
VmFsaWRpdHkoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbAppbmRleCBlOGE3MWM5Li41NjJk
MDFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGwKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaWRsCkBAIC0yMCwxOCArMjAsMTMgQEAKIAog
bW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNlVVVJRD0z
YWFhMzM0Yy05NjYwLTQ4Y2YtYjhlMi02ZDJiNGFjMGExZGEsCi0gICAgICAgIEltcGxlbWVudGF0
aW9uVVVJRD03MzAyNGE1NS1iOGExLTQ2MWItYWQ4NS1iZWZhNDA4OWY4MGQKLSAgICBdIEhUTUxT
dHlsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAg
ICAgZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgICAgICAgICAgICBtZWRpYTsKICAgICAgICAgYXR0cmlidXRlICBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CiAKLSNpZiAhZGVm
aW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAgICAgLy8gRE9NIExldmVs
IDIgU3R5bGUKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQgc2hlZXQ7Ci0j
ZW5kaWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmlk
bAppbmRleCBjNTk1YzQ3Li44NmExOTdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5pZGwKQEAgLTIxLDkgKzIxLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBJbnRlcmZh
Y2VVVUlEPWNkOTI3NTJkLTJmMGUtNDRhZi1iNjhlLTEyYzE3OGUxZjA4NywKLSAgICAgICAgSW1w
bGVtZW50YXRpb25VVUlEPTdjMGUzNzQ5LTBmODEtNDA2My05NzYwLThjZWMzMTRhNWI3MgorICAg
ICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAgIF0gSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFsaWduOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxl
bWVudC5pZGwKaW5kZXggNjM4ZDM4Zi4uYTg5MTQ5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBp
bnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTNhZDIxZDMwLWNlNjQtNGE2Zi05Mjk2
LWMwN2ExNjE3MDc4MywKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTM2ZmU2MDc1LWM5YzEt
NGYyMi1iYmMyLWRkNDQwZjIxZjdjZgotICAgIF0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxUYWJsZUNlbGxFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgY2VsbElu
ZGV4OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgICAgICAgYWJicjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDb2xFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbApp
bmRleCBkYWE3MTkxLi40NTNmZjNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRs
CkBAIC0yMCwxMCArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwot
ICAgICAgICBJbnRlcmZhY2VVVUlEPTRlODg2NjQxLTkxMGUtNDI0YS05OTVjLWU1MjVjMDlkY2Zk
MywKLSAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTVmNGNkZjE3LTQ0ZjEtNGIxZC05YzY4LTIw
NjczNzA4NTg5MgotICAgIF0gSFRNTFRhYmxlQ29sRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAg
ICBpbnRlcmZhY2UgSFRNTFRhYmxlQ29sRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgYWxp
Z247CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyAgICAgICBjaDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAppbmRleCBjZDhmNzE3Li45Y2Q3
MmIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsNyBAQAogCiBt
b2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTNm
OWM2ZTE3LWVlMGMtNDNkZS05NGIwLTJhMjFiMTliNjEyYywKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPTE1OWJiOGZlLWZmZWUtNGZmOS1iNTA3LTc2NzQxMTE4MTQzZgotICAgIF0gSFRNTFRh
YmxlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTFRhYmxlRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKIAogICAgICAgICAvLyBjb3VsZCByYWlzZSBleGNlcGV0aW9ucyBv
biBzZXR0aW5nLgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQgY2FwdGlvbgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsCmluZGV4IGZjMjY5
N2UuLjA1MmI1MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKQEAgLTIwLDEw
ICsyMCw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIElu
dGVyZmFjZVVVSUQ9ZjE0ZWEzZDktODY0My00Y2ZkLWE2OTItY2VmZTZkNWM2NWVhLAotICAgICAg
ICBJbXBsZW1lbnRhdGlvblVVSUQ9MGNlMDkwZGEtMzNiYi00MTYzLWJiMzUtM2NhOGEyZjZiZTQ3
Ci0gICAgXSBIVE1MVGFibGVSb3dFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGludGVyZmFj
ZSBIVE1MVGFibGVSb3dFbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgcm93SW5kZXg7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgc2VjdGlvblJvd0luZGV4OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5pZGwKaW5kZXggZTA1NjUzZS4uNTdlNDI5MyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCkBAIC0yMSw5ICsyMSw3IEBACiBtb2R1
bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZl
cnRlciwKLSAgICAgICAgSW50ZXJmYWNlVVVJRD1lMGNmNmI2YS05YmExLTQwMGYtYjUyMy1kYmIy
MjgxOWRmYjYsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD04NTMyOWNmNC0xZWFlLTQyNDUt
YTk3MS0xYmRkYjIxMmE5YzUKKyAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIKICAgICBd
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBh
bGlnbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAppbmRleCBlMWI2NjUzLi4yZDgy
ZWVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC0yMCwxNSArMjAsMTAg
QEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNl
VVVJRD04YjE2YmJhNi1lZmE5LTQ4ODctYjg2My0zMDhiNGY5YjkyMDIsCi0gICAgICAgIEltcGxl
bWVudGF0aW9uVVVJRD0yNDE0YmU2ZS1iYWUwLTQ3MmQtYjEyNC1iZWVkNWNhODJkM2IKLSAgICBd
IEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIEhUTUxU
ZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBkZWZhdWx0
VmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAg
Zm9ybTsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00pIHx8ICFMQU5HVUFHRV9DT00KICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlICBWYWxpZGl0eVN0YXRlICAgICAgICB2YWxpZGl0eTsKLSNl
bmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5OwogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIGNvbHM7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVu
dC5pZGwKaW5kZXggOWE4YjM2Zi4uZGU4NTdlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxUaXRsZUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50Lmlk
bApAQCAtMTksMTAgKzE5LDcgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsK
LSAgICAgICAgSW50ZXJmYWNlVVVJRD0wMzYyMTFmYi1jMWU5LTQyNjUtYWFjNS1jNTg3NGU0YTQ5
OWMsCi0gICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD1mZjU3NzE1Mi00ZWEzLTQwNGYtOTEyZC1l
ZDFkMGI2NGU2MGUKLSAgICBdIEhUTUxUaXRsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAg
aW50ZXJmYWNlIEhUTUxUaXRsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJp
YnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0ZXh0
OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbAppbmRleCBlNzM2Y2M5Li4zODQz
NGYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsCkBAIC0xOSwxMCArMTksNyBAQAogCiBt
b2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBJbnRlcmZhY2VVVUlEPTY4
NzdkZWU0LWJlNjctNGZiMC1hZjhjLTUwMjNiMTA4YTFiMCwKLSAgICAgICAgSW1wbGVtZW50YXRp
b25VVUlEPTIzZTljMjFhLTYxOGUtNDJhYy1hMDUzLWRmODU5MTgxMThkZgotICAgIF0gSFRNTFVM
aXN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgSFRNTFVMaXN0RWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY29tcGFjdDsKICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggNzg0MjA4ZC4uZjJiYTNmOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
MC0wMS0wNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIENPTSBjb2RlIGdlbmVy
YXRpb24gZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMjg1NAorCisgICAgICAgICogV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtl
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdC52Y3Byb2ovYnVpbGQtZ2VuZXJhdGVkLWZpbGVz
LnNoOiBSZW1vdmVkLgorCiAyMDEwLTAxLTA0ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhIENoYW4gYW5kIE1hcmsgUm93ZS4KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL0Rlcml2ZWRTb3VyY2VzLm1ha2UKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDczNjQ4YTAuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQu
dmNwcm9qL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIC9kZXYvbnVsbApAQCAtMSwxNjEgKzAsMCBA
QAotIyBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLiAKLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLiAKLSMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSMgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0jIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0jIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0jIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0jIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1QUkVGSVggPSBJR0VOX0RPTQotCi1XRUJLSVRfSURM
ID0gJChXRUJLSVQpL0ludGVyZmFjZXMvV2ViS2l0LmlkbAotCi1IQU5EX1dSSVRURU5fSU5URVJG
QUNFUyA9ICQoZmlsdGVyLW91dCAkKFdFQktJVF9JREwpLCAkKHdpbGRjYXJkICQoV0VCS0lUKS9J
bnRlcmZhY2VzLyouaWRsKSkKLQotR0VORVJBVEVEX0lOVEVSRkFDRVMgPSBcCi0gICAgJChQUkVG
SVgpTm9kZS5pZGwgXAotICAgICQoUFJFRklYKUF0dHIuaWRsIFwKLSAgICAkKFBSRUZJWClOb2Rl
TGlzdC5pZGwgXAotICAgICQoUFJFRklYKUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClEb2N1
bWVudC5pZGwgXAotICAgICQoUFJFRklYKUNoYXJhY3RlckRhdGEuaWRsIFwKLSAgICAkKFBSRUZJ
WClDREFUQVNlY3Rpb24uaWRsIFwKLSAgICAkKFBSRUZJWClDb21tZW50LmlkbCBcCi0gICAgJChQ
UkVGSVgpVGV4dC5pZGwgXAotICAgICQoUFJFRklYKURvY3VtZW50RnJhZ21lbnQuaWRsIFwKLSAg
ICAkKFBSRUZJWClEb2N1bWVudFR5cGUuaWRsIFwKLSAgICAkKFBSRUZJWClET01JbXBsZW1lbnRh
dGlvbi5pZGwgXAotICAgICQoUFJFRklYKUVudGl0eS5pZGwgXAotICAgICQoUFJFRklYKUVudGl0
eVJlZmVyZW5jZS5pZGwgXAotICAgICQoUFJFRklYKU5hbWVkTm9kZU1hcC5pZGwgXAotICAgICQo
UFJFRklYKU5vdGF0aW9uLmlkbCBcCi0gICAgJChQUkVGSVgpUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmlkbCBcCi0gICAgXAotICAgICQoUFJFRklYKUhUTUxBbmNob3JFbGVtZW50LmlkbCBcCi0gICAg
JChQUkVGSVgpSFRNTEFwcGxldEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQXJlYUVs
ZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MQlJFbGVtZW50LmlkbCBcCi0gICAgJChQUkVG
SVgpSFRNTEJhc2VFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEJhc2VGb250RWxlbWVu
dC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxCbG9ja3F1b3RlRWxlbWVudC5pZGwgXAotICAgICQo
UFJFRklYKUhUTUxCb2R5RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxCdXR0b25FbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTENvbGxlY3Rpb24uaWRsIFwKLSAgICAkKFBSRUZJ
WClIVE1MRExpc3RFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTERpcmVjdG9yeUVsZW1l
bnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRGl2RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklY
KUhUTUxEb2N1bWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxFbGVtZW50LmlkbCBcCi0gICAg
JChQUkVGSVgpSFRNTEVtYmVkRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRm9udEVsZW1lbnQuaWRsIFwKLSAgICAk
KFBSRUZJWClIVE1MRm9ybUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MRnJhbWVFbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwgXAotICAgICQo
UFJFRklYKUhUTUxIUkVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MSGVhZEVsZW1lbnQu
aWRsIFwKLSAgICAkKFBSRUZJWClIVE1MSGVhZGluZ0VsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJ
WClIVE1MSHRtbEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MSUZyYW1lRWxlbWVudC5p
ZGwgXAotICAgICQoUFJFRklYKUhUTUxJbWFnZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClI
VE1MSW5wdXRFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTElzSW5kZXhFbGVtZW50Lmlk
bCBcCi0gICAgJChQUkVGSVgpSFRNTExJRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxM
YWJlbEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MTGVnZW5kRWxlbWVudC5pZGwgXAot
ICAgICQoUFJFRklYKUhUTUxMaW5rRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxNYXBF
bGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTE1hcnF1ZWVFbGVtZW50LmlkbCBcCi0gICAg
JChQUkVGSVgpSFRNTE1lbnVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTE1ldGFFbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTE1vZEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJ
WClIVE1MT0xpc3RFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTE9iamVjdEVsZW1lbnQu
aWRsIFwKLSAgICAkKFBSRUZJWClIVE1MT3B0R3JvdXBFbGVtZW50LmlkbCBcCi0gICAgJChQUkVG
SVgpSFRNTE9wdGlvbkVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwgXAotICAg
ICQoUFJFRklYKUhUTUxQYXJhbUVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MUHJlRWxl
bWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxRdW90ZUVsZW1lbnQuaWRsIFwKLSAgICAkKFBS
RUZJWClIVE1MU2NyaXB0RWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxTZWxlY3RFbGVt
ZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFN0eWxlRWxlbWVudC5pZGwgXAotICAgICQoUFJF
RklYKUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MVGFibGVDb2xFbGVtZW50LmlkbCBc
Ci0gICAgJChQUkVGSVgpSFRNTFRhYmxlRWxlbWVudC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxU
YWJsZVJvd0VsZW1lbnQuaWRsIFwKLSAgICAkKFBSRUZJWClIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5pZGwgXAotICAgICQoUFJFRklYKUhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKLSAgICAkKFBS
RUZJWClIVE1MVGl0bGVFbGVtZW50LmlkbCBcCi0gICAgJChQUkVGSVgpSFRNTFVMaXN0RWxlbWVu
dC5pZGwgXAotICAgIFwKLSAgICAkKFBSRUZJWClDU1NDaGFyc2V0UnVsZS5pZGwgXAotICAgICQo
UFJFRklYKUNTU0ZvbnRGYWNlUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU0ltcG9ydFJ1bGUu
aWRsIFwKLSAgICAkKFBSRUZJWClDU1NNZWRpYVJ1bGUuaWRsIFwKLSAgICAkKFBSRUZJWClDU1NQ
YWdlUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU1ByaW1pdGl2ZVZhbHVlLmlkbCBcCi0gICAg
JChQUkVGSVgpQ1NTUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU1J1bGVMaXN0LmlkbCBcCi0g
ICAgJChQUkVGSVgpQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwgXAotICAgICQoUFJFRklYKUNTU1N0
eWxlUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU1N0eWxlU2hlZXQuaWRsIFwKLSAgICAkKFBS
RUZJWClDU1NVbmtub3duUnVsZS5pZGwgXAotICAgICQoUFJFRklYKUNTU1ZhbHVlLmlkbCBcCi0g
ICAgJChQUkVGSVgpQ1NTVmFsdWVMaXN0LmlkbCBcCi0gICAgJChQUkVGSVgpQ291bnRlci5pZGwg
XAotICAgICQoUFJFRklYKU1lZGlhTGlzdC5pZGwgXAotICAgICQoUFJFRklYKVJlY3QuaWRsIFwK
LSAgICAkKFBSRUZJWClTdHlsZVNoZWV0LmlkbCBcCi0gICAgJChQUkVGSVgpU3R5bGVTaGVldExp
c3QuaWRsIFwKLSAgICBcCi0gICAgJChQUkVGSVgpRXZlbnQuaWRsIFwKLSAgICAkKFBSRUZJWClF
dmVudFRhcmdldC5pZGwgXAotICAgICQoUFJFRklYKUV2ZW50TGlzdGVuZXIuaWRsIFwKLSMKLQot
LlBIT05ZIDogYWxsCi1hbGwgOiBcCi0gICAgJChHRU5FUkFURURfSU5URVJGQUNFUykgXAotICAg
ICQoV0VCS0lUX0lETCkgXAotIwotCi0jICQoUFJFRklYKUNhbnZhc0dyYWRpZW50LmlkbCBcCi0j
ICQoUFJFRklYKUNhbnZhc1BhdHRlcm4uaWRsIFwKLSMgJChQUkVGSVgpQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmlkbCBcCi0jICQoUFJFRklYKUhUTUxDYW52YXNFbGVtZW50LmlkbCBcCi0jICQo
UFJFRklYKVJHQkNvbG9yLmlkbCBcCi0KLUNPTV9CSU5ESU5HU19TQ1JJUFRTID0gXAotICAgICQo
V0VCS0lUX09VVFBVVCkvb2JqL1dlYktpdC9ET01JbnRlcmZhY2VzL0NvZGVHZW5lcmF0b3IucG0g
XAotICAgICQoV0VCS0lUX09VVFBVVCkvb2JqL1dlYktpdC9ET01JbnRlcmZhY2VzL0NvZGVHZW5l
cmF0b3JDT00ucG0gXAotICAgICQoV0VCS0lUX09VVFBVVCkvb2JqL1dlYktpdC9ET01JbnRlcmZh
Y2VzL0lETFBhcnNlci5wbSBcCi0gICAgJChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUlu
dGVyZmFjZXMvSURMU3RydWN0dXJlLnBtIFwKLSAgICAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJL
aXQvRE9NSW50ZXJmYWNlcy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCi0jCi0KLSQoUFJFRklYKSUu
aWRsIDogJChXRUJLSVRfT1VUUFVUKS9vYmovV2ViS2l0L0RPTUludGVyZmFjZXMvJS5pZGwgJChD
T01fQklORElOR1NfU0NSSVBUUykKLQlwZXJsIC1JICQoV0VCS0lUX09VVFBVVCkvb2JqL1dlYktp
dC9ET01JbnRlcmZhY2VzLyAkKFdFQktJVF9PVVRQVVQpL29iai9XZWJLaXQvRE9NSW50ZXJmYWNl
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5H
VUFHRV9DT00iIC0tZ2VuZXJhdG9yIENPTSAtLWluY2x1ZGUgJChXRUJLSVRfT1VUUFVUKS9vYmov
V2ViS2l0L0RPTUludGVyZmFjZXMvIC0tb3V0cHV0ZGlyIC4gJDwKLQotJChXRUJLSVRfSURMKSA6
ICQoSEFORF9XUklUVEVOX0lOVEVSRkFDRVMpICQoR0VORVJBVEVEX0lOVEVSRkFDRVMpCi0JdG91
Y2ggJEAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9idWlsZC1nZW5lcmF0
ZWQtZmlsZXMuc2ggYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovYnVpbGQtZ2VuZXJhdGVkLWZp
bGVzLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzI2ZmQyLi4wMDAwMDAwCi0t
LSBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9idWlsZC1nZW5lcmF0ZWQtZmlsZXMuc2gKKysr
IC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0jIS91c3IvYmluL2Jhc2gKLQotIyBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSMg
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKLSMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0jIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0jIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0jIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0jIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
IyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi1OVU1DUFVQQVRIPSIuLi8uLi8uLi9XZWJLaXRUb29scy9TY3JpcHRzL251
bS1jcHVzIgotaWYgWyAteCAkTlVNQ1BVUEFUSCBdOyB0aGVuCi0gICAgTlVNQ1BVUz1gJE5VTUNQ
VVBBVEhgCi1lbHNlCi0gICAgTlVNQ1BVUz0xCi1maQotCi1YU1JDUk9PVD0iYHB3ZGAvLi4iCi1Y
U1JDUk9PVD1gcmVhbHBhdGggIiRYU1JDUk9PVCJgCi0jIERvIGEgbGl0dGxlIGRhbmNlIHRvIGdl
dCB0aGUgcGF0aCBpbnRvIDguMyBmb3JtIHRvIG1ha2UgaXQgc2FmZSBmb3IgZ251IG1ha2UKLSMg
aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD04MTczCi1YU1JD
Uk9PVD1gY3lncGF0aCAtbSAtcyAiJFhTUkNST09UImAKLVhTUkNST09UPWBjeWdwYXRoIC11ICIk
WFNSQ1JPT1QiYAotZXhwb3J0IFhTUkNST09UCi1leHBvcnQgU09VUkNFX1JPT1Q9JFhTUkNST09U
Ci0KLVhEU1RST09UPSIkMSIKLWV4cG9ydCBYRFNUUk9PVAotIyBEbyBhIGxpdHRsZSBkYW5jZSB0
byBnZXQgdGhlIHBhdGggaW50byA4LjMgZm9ybSB0byBtYWtlIGl0IHNhZmUgZm9yIGdudSBtYWtl
Ci0jIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE3Mwot
WERTVFJPT1Q9YGN5Z3BhdGggLW0gLXMgIiRYRFNUUk9PVCJgCi1YRFNUUk9PVD1gY3lncGF0aCAt
dSAiJFhEU1RST09UImAKLWV4cG9ydCBYRFNUUk9PVAotCi1leHBvcnQgQlVJTFRfUFJPRFVDVFNf
RElSPSIkWERTVFJPT1Qvb2JqL1dlYktpdCIKLQotbWtkaXIgLXAgIiR7QlVJTFRfUFJPRFVDVFNf
RElSfS9EZXJpdmVkU291cmNlcyIKLWNkICIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNv
dXJjZXMiCi0KLWV4cG9ydCBXRUJLSVQ9JFhTUkNST09UCi1leHBvcnQgV0VCS0lUX09VVFBVVD0k
WERTVFJPT1QKLQotZXhwb3J0IEZFQVRVUkVfREVGSU5FUz0iRU5BQkxFX1hQQVRIIEVOQUJMRV9T
VkciCi1tYWtlIC1mICIkV0VCS0lUL1dlYktpdC52Y3Byb2ovRGVyaXZlZFNvdXJjZXMubWFrZSIg
LWogJHtOVU1DUFVTfSB8fCBleGl0IDEKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="27958"
          type_id="1"
          status="+"
          setter="mjs"
    />
    <flag name="commit-queue"
          id="27961"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>