<?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>18869</bug_id>
          
          <creation_ts>2008-05-03 01:38:34 -0700</creation_ts>
          <short_desc>SQUIRRELFISH: function toString broken after calling</short_desc>
          <delta_ts>2008-05-10 13:40:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>18631</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>79560</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-05-03 01:38:34 -0700</bug_when>
    <thetext>function.toString does not work right after calling the function. This breaks at least the following layout tests:

  fast/js/toString-elision-trailing-comma.html
  fast/js/toString-prefix-postfix-preserve-parens.html
  fast/js/kde/lval-exceptions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79836</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-07 13:17:12 -0700</bug_when>
    <thetext>On IRC, Maciej said he was working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80066</commentid>
    <comment_count>2</comment_count>
      <attachid>21056</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-05-10 05:10:05 -0700</bug_when>
    <thetext>Created attachment 21056
fix by keeping references to the original source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80087</commentid>
    <comment_count>3</comment_count>
      <attachid>21056</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-10 12:59:01 -0700</bug_when>
    <thetext>Comment on attachment 21056
fix by keeping references to the original source

r=me, although i am concerned about this approach in the long term.  As we are no longer actually decompiling there are two side effects:
* It is no longer possible to use function.toString to &quot;prettify&quot; source which makes debugging google, etc difficult (for us), and there are a number of places i&apos;ve seen on the web that reference decompilation as a way to reformat JS.
* This renders a number of fuzzers somewhat useless.  JSFunFuzz for instance does roundtrip checks which in general are meant to pick up times when we have compiled code that does one thing into an incorrect form, which we now lose as all we do is regurgitate what we were given.

That said if we start doing significant optimisations and restructuring with the bytecode stream decopmilation may not be entirely helpful.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21056</attachid>
            <date>2008-05-10 05:10:05 -0700</date>
            <delta_ts>2008-05-10 12:59:01 -0700</delta_ts>
            <desc>fix by keeping references to the original source</desc>
            <filename>source-fix.patch.txt</filename>
            <type>text/plain</type>
            <size>110345</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDMzMDI1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzAgQEAKKzIwMDgtMDUtMTAgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAtIEphdmFTY3JpcHRDb3JlIHBhcnQgb2YgZml4IGZvcjogIlNR
VUlSUkVMRklTSDogZnVuY3Rpb24gdG9TdHJpbmcgYnJva2VuIGFmdGVyIGNhbGxpbmciCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg2OQorICAgICAg
IAorICAgICAgICBUaHJlZSBsYXlvdXQgdGVzdHMgYXJlIGZpeGVkOgorICAgICAgICAgIGZhc3Qv
anMvdG9TdHJpbmctZWxpc2lvbi10cmFpbGluZy1jb21tYS5odG1sCisgICAgICAgICAgZmFzdC9q
cy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMuaHRtbAorICAgICAgICAg
IGZhc3QvanMva2RlL2x2YWwtZXhjZXB0aW9ucy5odG1sCisgICAgICAgIAorICAgICAgICBGdW5j
dGlvbnMgbm93IHNhdmUgYSBzaGFyZWQgc3VicmFuZ2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSB1
c2VkCisgICAgICAgIHRvIG1ha2UgdGhlbSAoc28gaW4gdGhlIGNvbW1vbiBjYXNlIHRoaXMgYWRk
cyBubyBzdG9yYWdlIGFib3ZlIHRoZQorICAgICAgICBtZW1vcnkgY2FjaGUpLgorICAgICAgICAK
KyAgICAgICAgKiBranMvU291cmNlUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChLSlM6OlNv
dXJjZVByb3ZpZGVyKTogTmV3IGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNsYXNzZXMgdGhhdCBw
cm92aWRlIG9uLWRlbWFuZCBhY2Nlc3MKKyAgICAgICAgdG8gdGhlIHNvdXJjZSBmb3IgYSBKYXZh
U2NyaXB0IHByb2dyYW0uIFRoaXMgYWxsb3dzIGZ1bmN0aW9uIG9iamVjdHMgdG8gaGF2ZSBhY2Nl
c3MgdG8gdGhlaXIKKyAgICAgICAgb3JpZ2luYWwgc291cmNlIHdpdGhvdXQgY29weWluZy4KKyAg
ICAgICAgKEtKUzo6VVN0cmluZ1NvdXJjZVByb3ZpZGVyKTogU291cmNlUHJvdmlkZXIgc3ViY2xh
c3MgYmFja2VkIGJ5IGEgS0pTOjpVU3RyaW5nLgorICAgICAgICAoS0pTOjpVU3RyaW5nU291cmNl
UHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChLSlM6OlVTdHJpbmdTb3VyY2VQcm92aWRlcjo6
Z2V0UmFuZ2UpOgorICAgICAgICAoS0pTOjpVU3RyaW5nU291cmNlUHJvdmlkZXI6OmRhdGEpOgor
ICAgICAgICAoS0pTOjpVU3RyaW5nU291cmNlUHJvdmlkZXI6Omxlbmd0aCk6CisgICAgICAgIChL
SlM6OlVTdHJpbmdTb3VyY2VQcm92aWRlcjo6VVN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAg
ICAgKiBranMvU291cmNlUmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChLSlM6OlNvdXJjZVJhbmdl
OjpTb3VyY2VSYW5nZSk6IENsYXNzIHRoYXQgaG9sZHMgYSBTb3VyY2VQcm92aWRlciBhbmQgYSBj
aGFyYWN0ZXIgcmFuZ2UgaW50bworICAgICAgICB0aGUgc291cmNlLCB0byBlbmNhcHN1bGF0ZSBv
bi1kZW1hbmQgYWNjZXNzIHRvIHRoZSBzb3VyY2Ugb2YgYSBmdW5jdGlvbi4KKyAgICAgICAgKEtK
Uzo6U291cmNlUmFuZ2U6OnRvU3RyaW5nKToKKyAgICAgICAgKiBWTS9NYWNoaW5lLmNwcDoKKyAg
ICAgICAgKEtKUzo6ZXZhbCk6IFBhc3MgYSBVU3RyaW5nU291cmNlUHJvdmlkZXIgdG8gdGhlIHBh
cnNlci4KKyAgICAgICAgKiBranMvUGFyc2VyLmNwcDoKKyAgICAgICAgKEtKUzo6UGFyc2VyOjpw
YXJzZSk6IFRha2UgYSBTb3VyY2VQcm92aWRlciBhbmQgcGFzcyBpdCBvbiB0byB0aGUgbGV4ZXIu
CisgICAgICAgICoga2pzL1BhcnNlci5oOgorICAgICAgICAoS0pTOjpQYXJzZXI6OnBhcnNlKTog
VGFrZSBhIFNvdXJjZVByb3ZpZGVyLgorICAgICAgICAqIGtqcy9sZXhlci5jcHA6CisgICAgICAg
IChLSlM6OkxleGVyOjpzZXRDb2RlKTogVGFrZSBhIFNvdXJjZVByb3ZpZGVyOyBrZWVwIGl0IGFy
b3VuZCwgYW5kCisgICAgICAgIHVzZSBpdCB0byBnZXQgdGhlIHJhdyBidWZmZXIgYW5kIGxlbmd0
aC4KKyAgICAgICAgKiBranMvbGV4ZXIuaDoKKyAgICAgICAgKEtKUzo6TGV4ZXI6OnNvdXJjZVJh
bmdlKTogQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IGEgc291cmNlCisgICAgICAgIHJhbmdl
IGJhc2VkIG9uIHRoZSBsZXhlcidzIHNvdXJjZSBwcm92aWVkZXIsIGFuZCBjaGFyIG9mZnNldHMK
KyAgICAgICAgcmlnaHQgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVzaXJlZCByYW5nZS4KKyAgICAg
ICAgKiBranMvZnVuY3Rpb24uY3BwOgorICAgICAgICAoS0pTOjpnbG9iYWxGdW5jRXZhbCk6IFBh
c3MgYSBVU3RyaW5nU291cmNlUHJvdmlkZXIgdG8gdGhlIHBhcnNlci4KKyAgICAgICAgKiBranMv
ZnVuY3Rpb25fb2JqZWN0LmNwcDoKKyAgICAgICAgKEtKUzo6ZnVuY3Rpb25Qcm90b0Z1bmNUb1N0
cmluZyk6IFVzZSB0b1NvdXJjZVN0cmluZyB0byBnZXQgdGhlIHNvdXJjZS4KKyAgICAgICAgKEtK
Uzo6RnVuY3Rpb25PYmplY3RJbXA6OmNvbnN0cnVjdCk6IEdpdmUgdGhlIHBhcnNlciBhIFVTdHJp
bmdTb3VyY2VQcm92aWRlci4KKyAgICAgICAgKiBranMvZ3JhbW1hci55OiBXaGVuIHBhcnNpbmcg
YSBmdW5jdGlvbiBkZWNsYXJhdGlvbiwgZnVuY3Rpb24KKyAgICAgICAgZXhwcmVzc2lvbiwgb3Ig
Z2V0dGVyIG9yIHNldHRlciwgdGVsbCB0aGUgZnVuY3Rpb24gYm9keSBhYm91dCBpdHMKKyAgICAg
ICAgU291cmNlUmFuZ2UuCisgICAgICAgICoga2pzL2ludGVycHJldGVyLmNwcDoKKyAgICAgICAg
KEtKUzo6SW50ZXJwcmV0ZXI6OmNoZWNrU3ludGF4KTogUGFzcyBhIFNvdXJjZVByb3ZpZGVyIHRv
IHRoZSBwYXJzZXIuCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpldmFsdWF0ZSk6IFBhc3Mg
YSBTb3VyY2VQcm92aWRlciB0byB0aGUgcGFyc2VyLgorICAgICAgICAqIGtqcy9pbnRlcnByZXRl
ci5oOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorICAgICAgICAoS0pTOjpGdW5jdGlvbkJvZHlO
b2RlOjpzZXRTb3VyY2UpOiBFc3RhYmxpc2ggYSBTb3VyY2VSYW5nZSBmb3IgdGhpcyBmdW5jdGlv
bi4KKyAgICAgICAgKEtKUzo6RnVuY3Rpb25Cb2R5Tm9kZTo6dG9Tb3VyY2VTdHJpbmcpOiBHZXQg
dGhlIHNvdXJjZSBzdHJpbmcgb3V0CisgICAgICAgIG9mIHRoZSBTb3VyY2VSYW5nZS4KKyAgICAg
ICAgKEtKUzo6RnVuY0V4cHJOb2RlOjopOiBUYWtlIGEgU291cmNlUmFuZ2UgYW5kIHNldCBpdCBv
biB0aGUgYm9keS4KKyAgICAgICAgKEtKUzo6RnVuY0RlY2xOb2RlOjopOiBkaXR0bworICAgICAg
ICAqIGtqcy90ZXN0a2pzLmNwcDoKKyAgICAgICAgKHByZXR0eVByaW50U2NyaXB0KTogVXNlIGEg
U291cmNlUHJvdmlkZXIgYXBwcm9wcmlhdGVseS4KKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5l
eHA6IEV4cG9ydCBuZXcgc3ltYm9scy4KKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOiBBZGQgbmV3IGZpbGVzLgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBuZXcg
ZmlsZXMuCisKIDIwMDgtMDUtMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWouCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZXhwCShyZXZpc2lvbiAzMzAyNCkKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cAkod29ya2luZyBjb3B5KQpAQCAtODMsMTAgKzgzLDEwIEBAIF9fWk4zS0pTMTBJZGVudGlmaWVy
NWVxdWFsRVBLTlNfN1VTdHJpbmcKIF9fWk4zS0pTMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRl
RU5TXzlFcnJvclR5cGVFCiBfX1pOM0tKUzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU185
RXJyb3JUeXBlRVBLYwogX19aTjNLSlMxMHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFTlNfOUVy
cm9yVHlwZUVSS05TXzdVU3RyaW5nRQotX19aTjNLSlMxMUludGVycHJldGVyMTFjaGVja1N5bnRh
eEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRWlQS3RpCitfX1pOM0tKUzExSW50ZXJwcmV0
ZXIxMWNoZWNrU3ludGF4RVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFaVM1XwogX19aTjNL
SlMxMUludGVycHJldGVyMjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgogX19aTjNLSlMxMUludGVy
cHJldGVyMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNFYgotX19aTjNLSlMxMUludGVycHJldGVy
OGV2YWx1YXRlRVBOU185RXhlY1N0YXRlRVJOU18xMFNjb3BlQ2hhaW5FUktOU183VVN0cmluZ0Vp
UEt0aVBOU183SlNWYWx1ZUUKK19fWk4zS0pTMTFJbnRlcnByZXRlcjhldmFsdWF0ZUVQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTBTY29wZUNoYWluRVJLTlNfN1VTdHJpbmdFaU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzE0U291cmNlUHJvdmlkZXJFRUVQTlNfN0pTVmFsdWVFCiBfX1pOM0tKUzExSW50ZXJwcmV0
ZXI4ZXZhbHVhdGVFUE5TXzlFeGVjU3RhdGVFUk5TXzEwU2NvcGVDaGFpbkVSS05TXzdVU3RyaW5n
RWlTN19QTlNfN0pTVmFsdWVFCiBfX1pOM0tKUzExSlNJbW1lZGlhdGU4dG9PYmplY3RFUEtOU183
SlNWYWx1ZUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zS0pTMTFKU0ltbWVkaWF0ZTh0b1N0cmluZ0VQ
S05TXzdKU1ZhbHVlRQpAQCAtMTUxLDcgKzE1MSw3IEBAIF9fWk4zS0pTNkpTTG9jazE0cmVnaXN0
ZXJUaHJlYWRFdgogX19aTjNLSlM2SlNMb2NrNGxvY2tFdgogX19aTjNLSlM2SlNMb2NrNnVubG9j
a0V2CiBfX1pOM0tKUzZKU0xvY2s5bG9ja0NvdW50RXYKLV9fWk4zS0pTNlBhcnNlcjVwYXJzZUVp
UEt0alBpUzNfUE5TXzdVU3RyaW5nRQorX19aTjNLSlM2UGFyc2VyNXBhcnNlRWlOM1dURjEwUGFz
c1JlZlB0cklOU18xNFNvdXJjZVByb3ZpZGVyRUVFUGlTNV9QTlNfN1VTdHJpbmdFCiBfX1pOM0tK
UzZwYXJzZXJFdgogX19aTjNLSlM2c3RydG9kRVBLY1BQYwogX19aTjNLSlM3Q1N0cmluZ0QxRXYK
QEAgLTI2Nyw2ICsyNjcsNyBAQCBfX1pOSzNLSlM3VVN0cmluZzEwVVRGOFN0cmluZ0ViCiBfX1pO
SzNLSlM3VVN0cmluZzE0dG9TdHJpY3RVSW50MzJFUGIKIF9fWk5LM0tKUzdVU3RyaW5nNWFzY2lp
RXYKIF9fWk5LM0tKUzdVU3RyaW5nNmlzOEJpdEV2CitfX1pOSzNLSlM3VVN0cmluZzZzdWJzdHJF
aWkKIF9fWk5LM0tKUzdVU3RyaW5nOHRvVUludDMyRVBiCiBfX1pOSzNLSlM3VVN0cmluZzh0b1VJ
bnQzMkVQYmIKIF9fWk5LM0tKUzhKU09iamVjdDExaGFzUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9uIDMzMDI0KQorKysgSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtNjEzLDYgKzYxMywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxranNcU291cmNlUHJvdmlkZXIuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XGtqc1xTb3VyY2VSYW5nZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5ca2pzXHN0cmluZ19vYmplY3QuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzMwMjQpCisrKyBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDAsNiArMTQwLDggQEAKIAkJNjVERkM5MzUwOEVBMTczQTAwRjczMDBCIC8q
IEhhc2hUcmFpdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDY1REZDOTJGMDhFQTE3M0EwMEY3MzAwQiAvKiBIYXNoVHJhaXRzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjVFMjE3QkQwOEU3RUVDQzAw
MjNFNUY2IC8qIEFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1RTIxN0I3MDhFN0VFQ0MwMDIzRTVGNiAvKiBBc3NlcnRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjVFMjE3QzAw
OEU3RUVDQzAwMjNFNUY2IC8qIEZhc3RNYWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTIxN0JBMDhFN0VFQ0MwMDIzRTVGNiAvKiBGYXN0TWFs
bG9jLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NjVFODY2RjIwREQ1OUI2NDAwQTJCMkExIC8qIFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUU4NjZFRDBERDU5QUZBMDBBMkIy
QTEgLyogU291cmNlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk2NUU4NjZGMzBERDU5QjY0MDBBMkIyQTEgLyogU291cmNlUmFuZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTg2NkVF
MERENTlBRkEwMEEyQjJBMSAvKiBTb3VyY2VSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1RUE0QzlDMDkyQUY5RTIwMDkzRDgwMCAvKiBK
U0xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1
RUE0QzlBMDkyQUY5RTIwMDkzRDgwMCAvKiBKU0xvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUVBNzM2NTBCQUUzNUQxMDAxQkI1NjAgLyog
Q29tbW9uSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1RUE3MzYzMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVycy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1RjM0
MDk0MENENkMxQzAwMEMwQ0E4QiAvKiBMb2NhbFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RjM0MDg0MENENkMwREUwMEMwQ0E4QiAvKiBM
b2NhbFN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNTAwLDYgKzUwMiw4IEBACiAJCTY1RTIxN0I4MDhFN0VFQ0MwMDIzRTVGNiAvKiBB
c3NlcnRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFzc2VydGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IH07CiAJCTY1RTIxN0I5MDhFN0VFQ0MwMDIzRTVGNiAvKiBGYXN0TWFsbG9jLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZhc3RNYWxsb2MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTY1RTIxN0JBMDhFN0VFQ0MwMDIzRTVGNiAvKiBGYXN0TWFsbG9jLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZhc3RNYWxsb2MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk2NUU4NjZFRDBERDU5QUZB
MDBBMkIyQTEgLyogU291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjVF
ODY2RUUwREQ1OUFGQTAwQTJCMkExIC8qIFNvdXJjZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNvdXJjZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1RUE0Qzk5MDkyQUY5RTIwMDkzRDgwMCAvKiBKU0xvY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb2NrLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NUVBNEM5QTA5MkFGOUUy
MDA5M0Q4MDAgLyogSlNMb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CiAJCTY1RUE3MzYyMEJBRTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVy
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uSWRlbnRp
ZmllcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTM3LDYgKzk0MSw4IEBA
CiAJCTY1NDE3MjAwMDM5RTAxQkEwMDU4QkZFQiAvKiBranMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTY1RTg2NkVEMERENTlBRkEwMEEyQjJBMSAvKiBT
b3VyY2VQcm92aWRlci5oICovLAorCQkJCTY1RTg2NkVFMERENTlBRkEwMEEyQjJBMSAvKiBTb3Vy
Y2VSYW5nZS5oICovLAogCQkJCTY1OTEyNkJDMEJERDE3MjgwMDE5MjFGQiAvKiBBbGxJbk9uZUZp
bGUuY3BwICovLAogCQkJCTkzQURGQ0U2MENDQkQ3QUMwMEQzMEIwOCAvKiBhcnJheV9pbnN0YW5j
ZS5jcHAgKi8sCiAJCQkJOTM4NzcyRTUwMzhCRkUxOTAwODYzNUNFIC8qIGFycmF5X2luc3RhbmNl
LmggKi8sCkBAIC0xMTIyLDYgKzExMjgsOCBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhh
c2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJ
NjVFODY2RjIwREQ1OUI2NDAwQTJCMkExIC8qIFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk2NUU4NjZGMzBERDU5QjY0MDBBMkIyQTEgLyogU291cmNlUmFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0ODJCNzhCMEE0MzA1QUIwMDUxN0NGQyAvKiBBUElDYXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzhDNEY2QTBDQTA2QkM3MDBEOTMxMEEgLyogQVNDSUlDVHlwZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNBQTRGNzgwOTU3MjUxRjAwODRCM0E3IC8qIEFsd2F5c0lubGlu
ZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmNwcAkocmV2aXNpb24gMzMw
MjQpCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzgxLDcgKzM4MSw3IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgSlNWYWx1ZSogZXZhbChFeGVjU3QK
ICAgICBpbnQgc291cmNlSWQ7CiAgICAgaW50IGVyckxpbmU7CiAgICAgVVN0cmluZyBlcnJNc2c7
Ci0gICAgUmVmUHRyPEV2YWxOb2RlPiBldmFsTm9kZSA9IHBhcnNlcigpLnBhcnNlPEV2YWxOb2Rl
PihVU3RyaW5nKCksIDAsIHMuZGF0YSgpLCBzLnNpemUoKSwgJnNvdXJjZUlkLCAmZXJyTGluZSwg
JmVyck1zZyk7CisgICAgUmVmUHRyPEV2YWxOb2RlPiBldmFsTm9kZSA9IHBhcnNlcigpLnBhcnNl
PEV2YWxOb2RlPihVU3RyaW5nKCksIDAsIFVTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHMp
LCAmc291cmNlSWQsICZlcnJMaW5lLCAmZXJyTXNnKTsKICAgICAKICAgICBpZiAoIWV2YWxOb2Rl
KSB7CiAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gRXJyb3I6OmNyZWF0ZShleGVjLCBTeW50YXhF
cnJvciwgZXJyTXNnLCBlcnJMaW5lLCBzb3VyY2VJZCwgTlVMTCk7CkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ranMvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvUGFy
c2VyLmNwcAkocmV2aXNpb24gMzMwMjQpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsOCArNDMsOCBAQCBQYXJzZXI6OlBhcnNlcigpCiB9CiAK
IHZvaWQgUGFyc2VyOjpwYXJzZShpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLAotICAgIGNvbnN0IFVD
aGFyKiBjb2RlLCB1bnNpZ25lZCBsZW5ndGgsCi0gICAgaW50KiBzb3VyY2VJZCwgaW50KiBlcnJM
aW5lLCBVU3RyaW5nKiBlcnJNc2cpCisgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxTb3Vy
Y2VQcm92aWRlcj4gc291cmNlLAorICAgICAgICAgICAgICAgICAgIGludCogc291cmNlSWQsIGlu
dCogZXJyTGluZSwgVVN0cmluZyogZXJyTXNnKQogewogICAgIEFTU0VSVCghbV9zb3VyY2VFbGVt
ZW50cyk7CiAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBQYXJzZXI6OnBhcnNlKGludCBzdGFydGlu
Z0xpbmVOdW1iZQogICAgICAgICAKICAgICBMZXhlciYgbGV4ZXIgPSBLSlM6OmxleGVyKCk7CiAK
LSAgICBsZXhlci5zZXRDb2RlKHN0YXJ0aW5nTGluZU51bWJlciwgY29kZSwgbGVuZ3RoKTsKKyAg
ICBsZXhlci5zZXRDb2RlKHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKTsKICAgICBtX3NvdXJj
ZUlkKys7CiAgICAgaWYgKHNvdXJjZUlkKQogICAgICAgICAqc291cmNlSWQgPSBtX3NvdXJjZUlk
OwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy9QYXJzZXIuaAkocmV2aXNpb24gMzMwMjQpCisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDExICsyNSwxMiBAQAogI2lmbmRl
ZiBQYXJzZXJfaAogI2RlZmluZSBQYXJzZXJfaAogCisjaW5jbHVkZSAibm9kZXMuaCIKKyNpbmNs
dWRlICJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlICJub2Rlcy5oIgogCiBuYW1lc3BhY2UgV1RGIHsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBUaHJlYWRTcGVjaWZpYzsKQEAgLTQ5LDggKzUw
LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgcHVibGljOgogICAgICAgICB0ZW1wbGF0ZSA8Y2xh
c3MgUGFyc2VkTm9kZT4KICAgICAgICAgUGFzc1JlZlB0cjxQYXJzZWROb2RlPiBwYXJzZShjb25z
dCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsCi0gICAgICAgICAg
ICBjb25zdCBVQ2hhciogY29kZSwgdW5zaWduZWQgbGVuZ3RoLAotICAgICAgICAgICAgaW50KiBz
b3VyY2VJZCA9IDAsIGludCogZXJyTGluZSA9IDAsIFVTdHJpbmcqIGVyck1zZyA9IDApOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8U291cmNlUHJvdmlk
ZXI+IHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIHNv
dXJjZUlkID0gMCwgaW50KiBlcnJMaW5lID0gMCwgVVN0cmluZyogZXJyTXNnID0gMCk7CiAKICAg
ICAgICAgVVN0cmluZyBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQog
ICAgICAgICBpbnQgc291cmNlSWQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUlkOyB9CkBAIC02
Myw4ICs2NCw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBmcmllbmQgY2xhc3MgV1RGOjpU
aHJlYWRTcGVjaWZpYzxQYXJzZXI+OwogCiAgICAgICAgIFBhcnNlcigpOyAvLyBVc2UgcGFyc2Vy
KCkgaW5zdGVhZC4KLSAgICAgICAgdm9pZCBwYXJzZShpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBj
b25zdCBVQ2hhciogY29kZSwgdW5zaWduZWQgbGVuZ3RoLAotICAgICAgICAgICAgaW50KiBzb3Vy
Y2VJZCwgaW50KiBlcnJMaW5lLCBVU3RyaW5nKiBlcnJNc2cpOworICAgICAgICB2b2lkIHBhcnNl
KGludCBzdGFydGluZ0xpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJj
ZSwKKyAgICAgICAgICAgICAgICAgICBpbnQqIHNvdXJjZUlkLCBpbnQqIGVyckxpbmUsIFVTdHJp
bmcqIGVyck1zZyk7CiAKICAgICAgICAgVVN0cmluZyBtX3NvdXJjZVVSTDsKICAgICAgICAgaW50
IG1fc291cmNlSWQ7CkBAIC04MCwxMSArODEsMTEgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgUGFyc2VkTm9kZT4KICAgICBQYXNzUmVmUHRyPFBhcnNlZE5vZGU+IFBh
cnNlcjo6cGFyc2UoY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLAotICAgICAgICBjb25zdCBVQ2hhciogY29kZSwgdW5zaWduZWQgbGVuZ3RoLAotICAgICAg
ICBpbnQqIHNvdXJjZUlkLCBpbnQqIGVyckxpbmUsIFVTdHJpbmcqIGVyck1zZykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRl
cj4gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQq
IHNvdXJjZUlkLCBpbnQqIGVyckxpbmUsIFVTdHJpbmcqIGVyck1zZykKICAgICB7CiAgICAgICAg
IG1fc291cmNlVVJMID0gc291cmNlVVJMOwotICAgICAgICBwYXJzZShzdGFydGluZ0xpbmVOdW1i
ZXIsIGNvZGUsIGxlbmd0aCwgc291cmNlSWQsIGVyckxpbmUsIGVyck1zZyk7CisgICAgICAgIHBh
cnNlKHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlLCBzb3VyY2VJZCwgZXJyTGluZSwgZXJyTXNn
KTsKICAgICAgICAgaWYgKCFtX3NvdXJjZUVsZW1lbnRzKSB7CiAgICAgICAgICAgICBtX3NvdXJj
ZVVSTCA9IFVTdHJpbmcoKTsKICAgICAgICAgICAgIHJldHVybiAwOwpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL1NvdXJjZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
a2pzL1NvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS9ranMv
U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyNpZm5kZWYg
U291cmNlUHJvdmlkZXJfaAorI2RlZmluZSBTb3VyY2VQcm92aWRlcl9oCisKKyNpbmNsdWRlICJ1
c3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIEtKUyB7
CisKKyAgICBjbGFzcyBTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZVBy
b3ZpZGVyPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigp
IHt9CisgICAgICAgIHZpcnR1YWwgVVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQp
IGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBjb25zdCBVQ2hhciogZGF0YSgpIGNvbnN0ID0g
MDsKKyAgICAgICAgdmlydHVhbCBpbnQgbGVuZ3RoKCkgY29uc3QgPSAwOworICAgIH07CisKKyAg
ICBjbGFzcyBVU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZ1NvdXJjZVByb3Zp
ZGVyPiBjcmVhdGUoY29uc3QgVVN0cmluZyYgc291cmNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
VVN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSkpOyB9CisKKyAgICAgICAgVVN0cmluZyBnZXRS
YW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnN1YnN0cihz
dGFydCwgZW5kIC0gc3RhcnQpOyB9CisgICAgICAgIGNvbnN0IFVDaGFyKiBkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UuZGF0YSgpOyB9CisgICAgICAgIGludCBsZW5ndGgoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZS5zaXplKCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFVTdHJp
bmdTb3VyY2VQcm92aWRlcihjb25zdCBVU3RyaW5nJiBzb3VyY2UpIDogbV9zb3VyY2Uoc291cmNl
KSB7fQorICAgICAgICBVU3RyaW5nIG1fc291cmNlOworICAgIH07CisKK30KKworI2VuZGlmIC8v
IFNvdXJjZVByb3ZpZGVyX2gKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9Tb3VyY2VSYW5nZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9Tb3VyY2VSYW5nZS5oCShyZXZpc2lv
biAwKQorKysgSmF2YVNjcmlwdENvcmUva2pzL1NvdXJjZVJhbmdlLmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisgCisjaWZuZGVmIFNvdXJjZVJhbmdlX2gKKyNkZWZpbmUgU291cmNlUmFu
Z2VfaAorCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBLSlMgeworCisgICAgY2xhc3MgU291cmNlUmFuZ2UgeworICAgIHB1
YmxpYzoKKyAgICAgICAgU291cmNlUmFuZ2UoUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gcHJv
dmlkZXIsIGludCBzdGFydCwgaW50IGVuZCkgCisgICAgICAgICAgICA6IG1fc291cmNlUHJvdmlk
ZXIocHJvdmlkZXIpCisgICAgICAgICAgICAsIG1fc3RhcnRDaGFyKHN0YXJ0KQorICAgICAgICAg
ICAgLCBtX2VuZENoYXIoZW5kKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgU291cmNl
UmFuZ2UoKSB7fQorCisgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IGlmICghbV9z
b3VyY2VQcm92aWRlcikgcmV0dXJuIFVTdHJpbmcoKTsgcmV0dXJuIG1fc291cmNlUHJvdmlkZXIt
PmdldFJhbmdlKG1fc3RhcnRDaGFyLCBtX2VuZENoYXIpOyB9CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IG1fc291cmNlUHJvdmlkZXI7CisgICAgICAgIGlu
dCBtX3N0YXJ0Q2hhcjsKKyAgICAgICAgaW50IG1fZW5kQ2hhcjsKKyAgICB9OworCit9CisKKyNl
bmRpZiAvLyBTb3VyY2VSYW5nZV9oCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbi5jcHAJKHJldmlz
aW9uIDMzMDI0KQorKysgSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTg2LDcgKzU4Niw3IEBAIEpTVmFsdWUqIGdsb2JhbEZ1bmNFdmFsKEV4ZWNTdGF0
ZSogZXhlYywKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+d2lsbEV4ZWN1dGUoZXhlYywgVVN0
cmluZygpLCAwKTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEV2YWxOb2RlPiBldmFsTm9kZSA9IHBh
cnNlcigpLnBhcnNlPEV2YWxOb2RlPihVU3RyaW5nKCksIDAsIHMuZGF0YSgpLCBzLnNpemUoKSwg
JnNvdXJjZUlkLCAmZXJyTGluZSwgJmVyck1zZyk7CisgICAgUmVmUHRyPEV2YWxOb2RlPiBldmFs
Tm9kZSA9IHBhcnNlcigpLnBhcnNlPEV2YWxOb2RlPihVU3RyaW5nKCksIDAsIFVTdHJpbmdTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKHMpLCAmc291cmNlSWQsICZlcnJMaW5lLCAmZXJyTXNnKTsKICAg
ICAKICAgICBpZiAoIWV2YWxOb2RlKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBT
eW50YXhFcnJvciwgZXJyTXNnLCBlcnJMaW5lLCBzb3VyY2VJZCwgTlVMTCk7CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAkocmV2aXNpb24gMzMwMjQpCisrKyBKYXZh
U2NyaXB0Q29yZS9ranMvZnVuY3Rpb25fb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAs
NyArNzAsNyBAQCBKU1ZhbHVlKiBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTCiAKICAg
ICBpZiAodGhpc09iai0+aW5oZXJpdHMoJkZ1bmN0aW9uSW1wOjppbmZvKSkgewogICAgICAgICBG
dW5jdGlvbkltcCogZmkgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkltcCo+KHRoaXNPYmopOwotICAg
ICAgICByZXR1cm4ganNTdHJpbmcoImZ1bmN0aW9uICIgKyBmaS0+ZnVuY3Rpb25OYW1lKCkudXN0
cmluZygpICsgIigiICsgZmktPmJvZHktPnBhcmFtU3RyaW5nKCkgKyAiKSAiICsgZmktPmJvZHkt
PnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4ganNTdHJpbmcoImZ1bmN0aW9uICIgKyBmaS0+
ZnVuY3Rpb25OYW1lKCkudXN0cmluZygpICsgIigiICsgZmktPmJvZHktPnBhcmFtU3RyaW5nKCkg
KyAiKSAiICsgZmktPmJvZHktPnRvU291cmNlU3RyaW5nKCkpOwogICAgIH0KIAogICAgIHJldHVy
biBqc1N0cmluZygiZnVuY3Rpb24gIiArIHN0YXRpY19jYXN0PEludGVybmFsRnVuY3Rpb25JbXAq
Pih0aGlzT2JqKS0+ZnVuY3Rpb25OYW1lKCkudXN0cmluZygpICsgIigpIHtcbiAgICBbbmF0aXZl
IGNvZGVdXG59Iik7CkBAIC0xNjIsNyArMTYyLDkgQEAgSlNPYmplY3QqIEZ1bmN0aW9uT2JqZWN0
SW1wOjpjb25zdHJ1Y3QoRQogICAgIGludCBzb3VyY2VJZDsKICAgICBpbnQgZXJyTGluZTsKICAg
ICBVU3RyaW5nIGVyck1zZzsKLSAgICBSZWZQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gZnVuY3Rpb25C
b2R5ID0gcGFyc2VyKCkucGFyc2U8RnVuY3Rpb25Cb2R5Tm9kZT4oc291cmNlVVJMLCBsaW5lTnVt
YmVyLCBib2R5LmRhdGEoKSwgYm9keS5zaXplKCksICZzb3VyY2VJZCwgJmVyckxpbmUsICZlcnJN
c2cpOworICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291cmNlID0gVVN0cmluZ1NvdXJjZVBy
b3ZpZGVyOjpjcmVhdGUoYm9keSk7CisgICAgUmVmUHRyPEZ1bmN0aW9uQm9keU5vZGU+IGZ1bmN0
aW9uQm9keSA9IHBhcnNlcigpLnBhcnNlPEZ1bmN0aW9uQm9keU5vZGU+KHNvdXJjZVVSTCwgbGlu
ZU51bWJlciwgc291cmNlLCAmc291cmNlSWQsICZlcnJMaW5lLCAmZXJyTXNnKTsKKyAgICBmdW5j
dGlvbkJvZHktPnNldFNvdXJjZShTb3VyY2VSYW5nZShzb3VyY2UsIDAsIHNvdXJjZS0+bGVuZ3Ro
KCkpKTsKIAogICAgIC8vIG5vdGlmeSBkZWJ1Z2dlciB0aGF0IHNvdXJjZSBoYXMgYmVlbiBwYXJz
ZWQKICAgICAvLyBzZW5kIGVtcHR5IHNvdXJjZVVSTCB0byBpbmRpY2F0ZSBjb25zdHJ1Y3RlZCBj
b2RlCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHJldmlzaW9uIDMzMDI0KQorKysgSmF2YVNjcmlw
dENvcmUva2pzL2dyYW1tYXIueQkod29ya2luZyBjb3B5KQpAQCAtNDksMTEgKzQ5LDEzIEBACiAj
ZGVmaW5lIFlZRVJST1JfVkVSQk9TRQogI2VuZGlmCiAKKyNkZWZpbmUgTEVYRVIgKHN0YXRpY19j
YXN0PEtKUzo6TGV4ZXIqPihsZXhlcikpCisKIGludCBranN5eWxleCh2b2lkKiBsdmFscCwgdm9p
ZCogbGxvY3AsIHZvaWQqIGxleGVyKTsKIGludCBranN5eWVycm9yKGNvbnN0IGNoYXIqKTsKIHN0
YXRpYyBpbmxpbmUgYm9vbCBhbGxvd0F1dG9tYXRpY1NlbWljb2xvbihLSlM6OkxleGVyJiwgaW50
KTsKIAotI2RlZmluZSBBVVRPX1NFTUlDT0xPTiBkbyB7IGlmICghYWxsb3dBdXRvbWF0aWNTZW1p
Y29sb24oKnN0YXRpY19jYXN0PEtKUzo6TGV4ZXIqPihsZXhlciksIHl5Y2hhcikpIFlZQUJPUlQ7
IH0gd2hpbGUgKDApCisjZGVmaW5lIEFVVE9fU0VNSUNPTE9OIGRvIHsgaWYgKCFhbGxvd0F1dG9t
YXRpY1NlbWljb2xvbigqTEVYRVIsIHl5Y2hhcikpIFlZQUJPUlQ7IH0gd2hpbGUgKDApCiAjZGVm
aW5lIERCRyhsLCBzLCBlKSAobCktPnNldExvYygocykuZmlyc3RfbGluZSwgKGUpLmxhc3RfbGlu
ZSkKIAogdXNpbmcgbmFtZXNwYWNlIEtKUzsKQEAgLTY0LDcgKzY2LDcgQEAgc3RhdGljIExlc3NO
b2RlKiBtYWtlTGVzc05vZGUoRXhwcmVzc2lvbgogc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtl
QXNzaWduTm9kZShFeHByZXNzaW9uTm9kZSogbG9jLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIpOwogc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlUHJlZml4Tm9kZShFeHByZXNzaW9u
Tm9kZSogZXhwciwgT3BlcmF0b3IpOwogc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlUG9zdGZp
eE5vZGUoRXhwcmVzc2lvbk5vZGUqIGV4cHIsIE9wZXJhdG9yKTsKLXN0YXRpYyBQcm9wZXJ0eU5v
ZGUqIG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5Tm9kZShjb25zdCBJZGVudGlmaWVyICZnZXRP
clNldCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgUGFyYW1ldGVyTm9kZSosIEZ1bmN0aW9uQm9k
eU5vZGUqKTsKK3N0YXRpYyBQcm9wZXJ0eU5vZGUqIG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5
Tm9kZShjb25zdCBJZGVudGlmaWVyICZnZXRPclNldCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
UGFyYW1ldGVyTm9kZSosIEZ1bmN0aW9uQm9keU5vZGUqLCBjb25zdCBTb3VyY2VSYW5nZSYpOwog
c3RhdGljIEV4cHJlc3Npb25Ob2RlSW5mbyBtYWtlRnVuY3Rpb25DYWxsTm9kZShFeHByZXNzaW9u
Tm9kZUluZm8gZnVuYywgQXJndW1lbnRzTm9kZUluZm8pOwogc3RhdGljIEV4cHJlc3Npb25Ob2Rl
KiBtYWtlVHlwZU9mTm9kZShFeHByZXNzaW9uTm9kZSopOwogc3RhdGljIEV4cHJlc3Npb25Ob2Rl
KiBtYWtlRGVsZXRlTm9kZShFeHByZXNzaW9uTm9kZSopOwpAQCAtMjgzLDEzICsyODUsMTMgQEAg
TGl0ZXJhbDoKICAgfCBOVU1CRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZU51bWJlck5vZGUoJDEp
LCAwKTsgfQogICB8IFNUUklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgU3RyaW5nTm9kZSgkMSks
IDApOyB9CiAgIHwgJy8nIC8qIHJlZ2V4cCAqLyAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXhlciYgbCA9ICpzdGF0aWNf
Y2FzdDxMZXhlcio+KGxleGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGV4ZXImIGwgPSAqTEVYRVI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghbC5zY2FuUmVnRXhwKCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUFCT1JUOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyBSZWdFeHBOb2RlKGwucGF0dGVybigpLCBsLmZsYWdzKCkpLCAwKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgRElWRVFVQUwg
LyogcmVnZXhwIHdpdGggLz0gKi8gICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZXhlciYgbCA9ICpzdGF0aWNfY2FzdDxMZXhlcio+KGxleGVyKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4ZXImIGwgPSAq
TEVYRVI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
bC5zY2FuUmVnRXhwKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBZWUFCT1JUOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBSZWdF
eHBOb2RlKCI9IiArIGwucGF0dGVybigpLCBsLmZsYWdzKCkpLCAwKTsKQEAgLTMwMCw5ICszMDIs
OSBAQCBQcm9wZXJ0eToKICAgICBJREVOVCAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5v
ZGUoKiQxLCAkMy5tX25vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQpLCAkMy5tX2ZlYXR1cmVJ
bmZvKTsgfQogICB8IFNUUklORyAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4obmV3IFByb3BlcnR5Tm9kZShJZGVu
dGlmaWVyKCokMSksICQzLm1fbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCksICQzLm1fZmVh
dHVyZUluZm8pOyB9CiAgIHwgTlVNQkVSICc6JyBBc3NpZ25tZW50RXhwciAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUqPihuZXcgUHJvcGVydHlOb2Rl
KElkZW50aWZpZXIoVVN0cmluZzo6ZnJvbSgkMSkpLCAkMy5tX25vZGUsIFByb3BlcnR5Tm9kZTo6
Q29uc3RhbnQpLCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IElERU5UIElERU5UICcoJyAnKScg
T1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88UHJvcGVydHlOb2RlKj4obWFrZUdldHRlck9yU2V0dGVyUHJvcGVydHlOb2RlKCok
MSwgKiQyLCAwLCAkNiksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ2LCBANSwgQDcpOyBpZiAoISQk
Lm1fbm9kZSkgWVlBQk9SVDsgfQorICB8IElERU5UIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1
bmN0aW9uQm9keSBDTE9TRUJSQUNFICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88UHJv
cGVydHlOb2RlKj4obWFrZUdldHRlck9yU2V0dGVyUHJvcGVydHlOb2RlKCokMSwgKiQyLCAwLCAk
NiwgTEVYRVItPnNvdXJjZVJhbmdlKCQ1LCAkNykpLCBDbG9zdXJlRmVhdHVyZSk7IERCRygkNiwg
QDUsIEA3KTsgaWYgKCEkJC5tX25vZGUpIFlZQUJPUlQ7IH0KICAgfCBJREVOVCBJREVOVCAnKCcg
Rm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNF
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUqPihtYWtlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eU5v
ZGUoKiQxLCAqJDIsICQ0LmhlYWQsICQ3KSwgQ2xvc3VyZUZlYXR1cmUpOyBEQkcoJDcsIEA2LCBA
OCk7IGlmICghJCQubV9ub2RlKSBZWUFCT1JUOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUq
PihtYWtlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eU5vZGUoKiQxLCAqJDIsICQ0LmhlYWQsICQ3LCBM
RVhFUi0+c291cmNlUmFuZ2UoJDYsICQ4KSksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ3LCBANiwg
QDgpOyBpZiAoISQkLm1fbm9kZSkgWVlBQk9SVDsgfQogOwogCiBQcm9wZXJ0eUxpc3Q6CkBAIC0x
MDI1LDE2ICsxMDI3LDE2IEBAIERlYnVnZ2VyU3RhdGVtZW50OgogOwogCiBGdW5jdGlvbkRlY2xh
cmF0aW9uOgotICAgIEZVTkNUSU9OIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9k
eSBDTE9TRUJSQUNFIHsgJCQgPSBuZXcgRnVuY0RlY2xOb2RlKCokMiwgJDYpOyBEQkcoJDYsIEA1
LCBANyk7IH0KKyAgICBGVU5DVElPTiBJREVOVCAnKCcgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJv
ZHkgQ0xPU0VCUkFDRSB7ICQkID0gbmV3IEZ1bmNEZWNsTm9kZSgqJDIsICQ2LCBMRVhFUi0+c291
cmNlUmFuZ2UoJDUsICQ3KSk7IERCRygkNiwgQDUsIEA3KTsgfQogICB8IEZVTkNUSU9OIElERU5U
ICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NF
QlJBQ0UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3
IEZ1bmNEZWNsTm9kZSgqJDIsICQ0LmhlYWQsICQ3KTsgREJHKCQ3LCBANiwgQDgpOyB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRGVjbE5v
ZGUoKiQyLCAkNywgTEVYRVItPnNvdXJjZVJhbmdlKCQ2LCAkOCksICQ0LmhlYWQpOyBEQkcoJDcs
IEA2LCBAOCk7IH0KIDsKIAogRnVuY3Rpb25FeHByOgotICAgIEZVTkNUSU9OICcoJyAnKScgT1BF
TkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm8obmV3IEZ1bmNFeHByTm9kZShDb21tb25JZGVudGlmaWVyczo6c2hhcmVkKCktPm51bGxJZGVu
dGlmaWVyLCAkNSksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ1LCBANCwgQDYpOyB9Ci0gIHwgRlVO
Q1RJT04gJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkg
Q0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUo
Q29tbW9uSWRlbnRpZmllcnM6OnNoYXJlZCgpLT5udWxsSWRlbnRpZmllciwgJDYsICQzLmhlYWQp
LCBDbG9zdXJlRmVhdHVyZSk7IERCRygkNiwgQDUsIEA3KTsgfQotICB8IEZVTkNUSU9OIElERU5U
ICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZSgqJDIsICQ2KSwgQ2xvc3VyZUZlYXR1cmUp
OyBEQkcoJDYsIEA1LCBANyk7IH0KLSAgfCBGVU5DVElPTiBJREVOVCAnKCcgRm9ybWFsUGFyYW1l
dGVyTGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZSgqJDIsICQ3LCAkNC5oZWFkKSwgQ2xv
c3VyZUZlYXR1cmUpOyBEQkcoJDcsIEA2LCBAOCk7IH0KKyAgICBGVU5DVElPTiAnKCcgJyknIE9Q
RU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvKG5ldyBGdW5jRXhwck5vZGUoQ29tbW9uSWRlbnRpZmllcnM6OnNoYXJlZCgpLT5udWxsSWRl
bnRpZmllciwgJDUsIExFWEVSLT5zb3VyY2VSYW5nZSgkNCwgJDYpKSwgQ2xvc3VyZUZlYXR1cmUp
OyBEQkcoJDUsIEA0LCBANik7IH0KKyAgfCBGVU5DVElPTiAnKCcgRm9ybWFsUGFyYW1ldGVyTGlz
dCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZShDb21tb25JZGVudGlmaWVyczo6c2hhcmVkKCkt
Pm51bGxJZGVudGlmaWVyLCAkNiwgTEVYRVItPnNvdXJjZVJhbmdlKCQ1LCAkNyksICQzLmhlYWQp
LCBDbG9zdXJlRmVhdHVyZSk7IERCRygkNiwgQDUsIEA3KTsgfQorICB8IEZVTkNUSU9OIElERU5U
ICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZSgqJDIsICQ2LCBMRVhFUi0+c291cmNlUmFu
Z2UoJDUsICQ3KSksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ2LCBANSwgQDcpOyB9CisgIHwgRlVO
Q1RJT04gSURFTlQgJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJyknIE9QRU5CUkFDRSBGdW5jdGlv
bkJvZHkgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhw
ck5vZGUoKiQyLCAkNywgTEVYRVItPnNvdXJjZVJhbmdlKCQ2LCAkOCksICQ0LmhlYWQpLCBDbG9z
dXJlRmVhdHVyZSk7IERCRygkNywgQDYsIEA4KTsgfQogOwogCiBGb3JtYWxQYXJhbWV0ZXJMaXN0
OgpAQCAtMTI0OSw3ICsxMjUxLDcgQEAgc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlRGVsZXRl
Tm9kZShFeAogICAgIHJldHVybiBuZXcgRGVsZXRlRG90Tm9kZShkb3QtPmJhc2UoKSwgZG90LT5p
ZGVudGlmaWVyKCkpOwogfQogCi1zdGF0aWMgUHJvcGVydHlOb2RlKiBtYWtlR2V0dGVyT3JTZXR0
ZXJQcm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYgZ2V0T3JTZXQsIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIFBhcmFtZXRlck5vZGUqIHBhcmFtcywgRnVuY3Rpb25Cb2R5Tm9kZSogYm9keSkK
K3N0YXRpYyBQcm9wZXJ0eU5vZGUqIG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5Tm9kZShjb25z
dCBJZGVudGlmaWVyJiBnZXRPclNldCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgUGFyYW1ldGVy
Tm9kZSogcGFyYW1zLCBGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBjb25zdCBTb3VyY2VSYW5nZSYg
c291cmNlKQogewogICAgIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlOwogICAgIGlmIChnZXRPclNl
dCA9PSAiZ2V0IikKQEAgLTEyNTgsNyArMTI2MCw3IEBAIHN0YXRpYyBQcm9wZXJ0eU5vZGUqIG1h
a2VHZXR0ZXJPclNldHRlclAKICAgICAgICAgdHlwZSA9IFByb3BlcnR5Tm9kZTo6U2V0dGVyOwog
ICAgIGVsc2UKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eU5vZGUo
bmFtZSwgbmV3IEZ1bmNFeHByTm9kZShDb21tb25JZGVudGlmaWVyczo6c2hhcmVkKCktPm51bGxJ
ZGVudGlmaWVyLCBib2R5LCBwYXJhbXMpLCB0eXBlKTsKKyAgICByZXR1cm4gbmV3IFByb3BlcnR5
Tm9kZShuYW1lLCBuZXcgRnVuY0V4cHJOb2RlKENvbW1vbklkZW50aWZpZXJzOjpzaGFyZWQoKS0+
bnVsbElkZW50aWZpZXIsIGJvZHksIHNvdXJjZSwgcGFyYW1zKSwgdHlwZSk7CiB9CiAKIHN0YXRp
YyBFeHByZXNzaW9uTm9kZSogbWFrZU5lZ2F0ZU5vZGUoRXhwcmVzc2lvbk5vZGUqIG4pCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDMzMDI0KQorKysgSmF2YVNj
cmlwdENvcmUva2pzL2ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5
LDE3IEBAIG5hbWVzcGFjZSBLSlMgewogCiBDb21wbGV0aW9uIEludGVycHJldGVyOjpjaGVja1N5
bnRheChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IHN0YXJ0
aW5nTGluZU51bWJlciwgY29uc3QgVVN0cmluZyYgY29kZSkKIHsKLSAgICByZXR1cm4gY2hlY2tT
eW50YXgoZXhlYywgc291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvZGUuZGF0YSgpLCBj
b2RlLnNpemUoKSk7CisgICAgcmV0dXJuIGNoZWNrU3ludGF4KGV4ZWMsIHNvdXJjZVVSTCwgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBVU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShjb2RlKSk7CiB9
CiAKLUNvbXBsZXRpb24gSW50ZXJwcmV0ZXI6OmNoZWNrU3ludGF4KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBV
Q2hhciogY29kZSwgaW50IGNvZGVMZW5ndGgpCitDb21wbGV0aW9uIEludGVycHJldGVyOjpjaGVj
a1N5bnRheChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IHN0
YXJ0aW5nTGluZU51bWJlciwgUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291cmNlKQogewog
ICAgIEpTTG9jayBsb2NrOwogCiAgICAgaW50IGVyckxpbmU7CiAgICAgVVN0cmluZyBlcnJNc2c7
Ci0gICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9nTm9kZSA9IHBhcnNlcigpLnBhcnNlPFByb2dy
YW1Ob2RlPihzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciwgY29kZSwgY29kZUxlbmd0aCwg
MCwgJmVyckxpbmUsICZlcnJNc2cpOworCisgICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9nTm9k
ZSA9IHBhcnNlcigpLnBhcnNlPFByb2dyYW1Ob2RlPihzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51
bWJlciwgc291cmNlLCAwLCAmZXJyTGluZSwgJmVyck1zZyk7CiAgICAgaWYgKCFwcm9nTm9kZSkK
ICAgICAgICAgcmV0dXJuIENvbXBsZXRpb24oVGhyb3csIEVycm9yOjpjcmVhdGUoZXhlYywgU3lu
dGF4RXJyb3IsIGVyck1zZywgZXJyTGluZSwgMCwgc291cmNlVVJMKSk7CiAgICAgcmV0dXJuIENv
bXBsZXRpb24oTm9ybWFsKTsKQEAgLTU2LDEwICs1NywxMCBAQCBDb21wbGV0aW9uIEludGVycHJl
dGVyOjpjaGVja1N5bnRheChFeGVjCiAKIENvbXBsZXRpb24gSW50ZXJwcmV0ZXI6OmV2YWx1YXRl
KEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbiYgc2NvcGVDaGFpbiwgY29uc3QgVVN0cmluZyYg
c291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVU3RyaW5nJiBjb2RlLCBK
U1ZhbHVlKiB0aGlzVikKIHsKLSAgICByZXR1cm4gZXZhbHVhdGUoZXhlYywgc2NvcGVDaGFpbiwg
c291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvZGUuZGF0YSgpLCBjb2RlLnNpemUoKSwg
dGhpc1YpOworICAgIHJldHVybiBldmFsdWF0ZShleGVjLCBzY29wZUNoYWluLCBzb3VyY2VVUkws
IHN0YXJ0aW5nTGluZU51bWJlciwgVVN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoY29kZSks
IHRoaXNWKTsKIH0KIAotQ29tcGxldGlvbiBJbnRlcnByZXRlcjo6ZXZhbHVhdGUoRXhlY1N0YXRl
KiBleGVjLCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkws
IGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFVDaGFyKiBjb2RlLCBpbnQgY29kZUxlbmd0
aCwgSlNWYWx1ZSogdGhpc1ZhbHVlKQorQ29tcGxldGlvbiBJbnRlcnByZXRlcjo6ZXZhbHVhdGUo
RXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBjb25zdCBVU3RyaW5nJiBz
b3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U291cmNlUHJvdmlk
ZXI+IHNvdXJjZSwgSlNWYWx1ZSogdGhpc1ZhbHVlKQogewogICAgIEpTTG9jayBsb2NrOwogICAg
IApAQCAtNzIsNyArNzMsNyBAQCBDb21wbGV0aW9uIEludGVycHJldGVyOjpldmFsdWF0ZShFeGVj
U3RhCiAgICAgUHJvZmlsZXI6OnByb2ZpbGVyKCktPndpbGxFeGVjdXRlKGV4ZWMsIHNvdXJjZVVS
TCwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKICNlbmRpZgogCi0gICAgUmVmUHRyPFByb2dyYW1Ob2Rl
PiBwcm9ncmFtTm9kZSA9IHBhcnNlcigpLnBhcnNlPFByb2dyYW1Ob2RlPihzb3VyY2VVUkwsIHN0
YXJ0aW5nTGluZU51bWJlciwgY29kZSwgY29kZUxlbmd0aCwgJnNvdXJjZUlkLCAmZXJyTGluZSwg
JmVyck1zZyk7CisgICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtTm9kZSA9IHBhcnNlcigp
LnBhcnNlPFByb2dyYW1Ob2RlPihzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNl
LCAmc291cmNlSWQsICZlcnJMaW5lLCAmZXJyTXNnKTsKIAogICAgIC8vIG5vIHByb2dyYW0gbm9k
ZSBtZWFucyBhIHN5bnRheCBlcnJvciBvY2N1cnJlZAogICAgIGlmICghcHJvZ3JhbU5vZGUpCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMzMwMjQpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKICAgY2xhc3MgRXhlY1N0YXRlOwogICBjbGFzcyBKU1ZhbHVlOwog
ICBjbGFzcyBTY29wZUNoYWluOworICBjbGFzcyBTb3VyY2VQcm92aWRlcjsKICAgY2xhc3MgVVN0
cmluZzsKICAgCiAgIGNsYXNzIEludGVycHJldGVyIHsKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgICogb3RoZXJ3aXNlIGEgdGhyb3cgY29tcGxldGlvbiB3aXRoIHRoZSBz
eW50YXggZXJyb3IgYXMgaXRzIHZhbHVlLgogICAgICAqLwogICAgIHN0YXRpYyBDb21wbGV0aW9u
IGNoZWNrU3ludGF4KEV4ZWNTdGF0ZSosIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IHN0
YXJ0aW5nTGluZU51bWJlciwgY29uc3QgVVN0cmluZyYgY29kZSk7Ci0gICAgc3RhdGljIENvbXBs
ZXRpb24gY2hlY2tTeW50YXgoRXhlY1N0YXRlKiwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVQ2hhciogY29kZSwgaW50IGNvZGVMZW5ndGgp
OworICAgIHN0YXRpYyBDb21wbGV0aW9uIGNoZWNrU3ludGF4KEV4ZWNTdGF0ZSosIGNvbnN0IFVT
dHJpbmcmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgUGFzc1JlZlB0cjxTb3Vy
Y2VQcm92aWRlcj4gc291cmNlKTsKIAogICAgIC8qKgogICAgICAqIEV2YWx1YXRlcyB0aGUgc3Vw
cGxpZWQgRUNNQVNjcmlwdCBjb2RlLgpAQCAtNjEsNyArNjIsNyBAQCBuYW1lc3BhY2UgS0pTIHsK
ICAgICAgKiBAcmV0dXJuIEEgY29tcGxldGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSByZXN1
bHQgb2YgdGhlIGV4ZWN1dGlvbi4KICAgICAgKi8KICAgICBzdGF0aWMgQ29tcGxldGlvbiBldmFs
dWF0ZShFeGVjU3RhdGUqLCBTY29wZUNoYWluJiwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVU3RyaW5nJiBjb2RlLCBKU1ZhbHVlKiB0aGlz
ViA9IDApOwotICAgIHN0YXRpYyBDb21wbGV0aW9uIGV2YWx1YXRlKEV4ZWNTdGF0ZSosIFNjb3Bl
Q2hhaW4mLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIs
IGNvbnN0IFVDaGFyKiBjb2RlLCBpbnQgY29kZUxlbmd0aCwgSlNWYWx1ZSogdGhpc1YgPSAwKTsK
KyAgICBzdGF0aWMgQ29tcGxldGlvbiBldmFsdWF0ZShFeGVjU3RhdGUqLCBTY29wZUNoYWluJiwg
Y29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBQYXNzUmVm
UHRyPFNvdXJjZVByb3ZpZGVyPiwgSlNWYWx1ZSogdGhpc1YgPSAwKTsKICAgICAKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaG91
bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbGV4ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAJKHJldmlzaW9u
IDMzMDI0KQorKysgSmF2YVNjcmlwdENvcmUva2pzL2xleGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTUsNyArOTUsNyBAQCBMZXhlcjo6TGV4ZXIoKQogICAgIG1faWRlbnRpZmllcnMucmVzZXJ2
ZUNhcGFjaXR5KGluaXRpYWxTdHJpbmdUYWJsZUNhcGFjaXR5KTsKIH0KIAotdm9pZCBMZXhlcjo6
c2V0Q29kZShpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVQ2hhciogYywgdW5zaWduZWQg
aW50IGxlbikKK3ZvaWQgTGV4ZXI6OnNldENvZGUoaW50IHN0YXJ0aW5nTGluZU51bWJlciwgUGFz
c1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291cmNlKQogewogICB5eWxpbmVubyA9IDEgKyBzdGFy
dGluZ0xpbmVOdW1iZXI7CiAgIHJlc3RyS2V5d29yZCA9IGZhbHNlOwpAQCAtMTAzLDkgKzEwMywx
MSBAQCB2b2lkIExleGVyOjpzZXRDb2RlKGludCBzdGFydGluZ0xpbmVOdW1iCiAgIGVhdE5leHRJ
ZGVudGlmaWVyID0gZmFsc2U7CiAgIHN0YWNrVG9rZW4gPSAtMTsKICAgbGFzdFRva2VuID0gLTE7
CisKICAgcG9zID0gMDsKLSAgY29kZSA9IGM7Ci0gIGxlbmd0aCA9IGxlbjsKKyAgbV9zb3VyY2Ug
PSBzb3VyY2U7CisgIGNvZGUgPSBtX3NvdXJjZS0+ZGF0YSgpOworICBsZW5ndGggPSBtX3NvdXJj
ZS0+bGVuZ3RoKCk7CiAgIHNraXBMRiA9IGZhbHNlOwogICBza2lwQ1IgPSBmYWxzZTsKICAgZXJy
b3IgPSBmYWxzZTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCShyZXZpc2lvbiAzMzAyNCkKKysrIEphdmFT
Y3JpcHRDb3JlL2tqcy9sZXhlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAK
ICNpbmNsdWRlICJ1c3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
IlNvdXJjZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIFRocmVhZFNwZWNpZmljOwpAQCAtMzgsNyArMzksNyBAQCBuYW1lc3BhY2UgS0pT
IHsKIAogICBjbGFzcyBMZXhlciA6IE5vbmNvcHlhYmxlIHsKICAgcHVibGljOgotICAgIHZvaWQg
c2V0Q29kZShpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVQ2hhciAqYywgdW5zaWduZWQg
aW50IGxlbik7CisgICAgdm9pZCBzZXRDb2RlKGludCBzdGFydGluZ0xpbmVOdW1iZXIsIFBhc3NS
ZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJjZSk7CiAgICAgaW50IGxleCh2b2lkKiBsdmFscCwg
dm9pZCogbGxvY3ApOwogCiAgICAgaW50IGxpbmVObygpIGNvbnN0IHsgcmV0dXJuIHl5bGluZW5v
OyB9CkBAIC04OSw2ICs5MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGJvb2wgc2F3RXJyb3Io
KSBjb25zdCB7IHJldHVybiBlcnJvcjsgfQogCiAgICAgdm9pZCBjbGVhcigpOworICAgIFNvdXJj
ZVJhbmdlIHNvdXJjZVJhbmdlKGludCBvcGVuQnJhY2UsIGludCBjbG9zZUJyYWNlKSB7IHJldHVy
biBTb3VyY2VSYW5nZShtX3NvdXJjZSwgb3BlbkJyYWNlICsgMSwgY2xvc2VCcmFjZSk7IH0KIAog
ICBwcml2YXRlOgogICAgIGZyaWVuZCBMZXhlciYgbGV4ZXIoKTsKQEAgLTEzMSw2ICsxMzMsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKICAgICBLSlM6OklkZW50aWZpZXIqIG1ha2VJZGVudGlmaWVyKGNv
bnN0IFZlY3RvcjxVQ2hhcj4mIGJ1ZmZlcik7CiAgICAgVVN0cmluZyogbWFrZVVTdHJpbmcoY29u
c3QgVmVjdG9yPFVDaGFyPiYgYnVmZmVyKTsKIAorICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4g
bV9zb3VyY2U7CiAgICAgY29uc3QgVUNoYXIqIGNvZGU7CiAgICAgdW5zaWduZWQgaW50IGxlbmd0
aDsKICAgICBpbnQgeXljb2x1bW47CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAkocmV2aXNpb24gMzMwMjQp
CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAicmVnZXhwLmgiCiAjaW5j
bHVkZSAiUmVnaXN0ZXJJRC5oIgorI2luY2x1ZGUgIlNvdXJjZVJhbmdlLmgiCiAjaW5jbHVkZSAi
U3ltYm9sVGFibGUuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3
dGYvTGlzdFJlZlB0ci5oPgpAQCAtMzAzNSw2ICszMDM2LDkgQEAgbmFtZXNwYWNlIEtKUyB7CiAK
ICAgICAgICAgdm9pZCBtYXJrKCk7CiAKKyAgICAgICAgdm9pZCBzZXRTb3VyY2UoY29uc3QgU291
cmNlUmFuZ2UmIHNvdXJjZSkgeyBtX3NvdXJjZSA9IHNvdXJjZTsgfSAKKyAgICAgICAgVVN0cmlu
ZyB0b1NvdXJjZVN0cmluZygpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gVVN0cmluZygi
eyIpICsgbV9zb3VyY2UudG9TdHJpbmcoKSArIFVTdHJpbmcoIn0iKTsgfQorCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICBGdW5jdGlvbkJvZHlOb2RlKFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sq
LCBGdW5jdGlvblN0YWNrKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUpIEtKU19G
QVNUX0NBTEw7CiAKQEAgLTMwNDQsMTYgKzMwNDgsMTggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
ICAgIFZlY3RvcjxJZGVudGlmaWVyPiBtX3BhcmFtZXRlcnM7CiAgICAgICAgIFN5bWJvbFRhYmxl
IG1fc3ltYm9sVGFibGU7CiAgICAgICAgIE93blB0cjxDb2RlQmxvY2s+IG1fY29kZTsKKyAgICAg
ICAgU291cmNlUmFuZ2UgbV9zb3VyY2U7CiAgICAgfTsKIAogICAgIGNsYXNzIEZ1bmNFeHByTm9k
ZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBGdW5jRXhw
ck5vZGUoY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEZ1bmN0aW9uQm9keU5vZGUqIGJvZHksIFBh
cmFtZXRlck5vZGUqIHBhcmFtZXRlciA9IDApIEtKU19GQVNUX0NBTEwKKyAgICAgICAgRnVuY0V4
cHJOb2RlKGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBj
b25zdCBTb3VyY2VSYW5nZSYgc291cmNlLCBQYXJhbWV0ZXJOb2RlKiBwYXJhbWV0ZXIgPSAwKSBL
SlNfRkFTVF9DQUxMCiAgICAgICAgICAgICA6IG1faWRlbnQoaWRlbnQpCiAgICAgICAgICAgICAs
IG1fcGFyYW1ldGVyKHBhcmFtZXRlcikKICAgICAgICAgICAgICwgbV9ib2R5KGJvZHkpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGFkZFBhcmFtcygpOworICAgICAgICAgICAgbV9ib2R5LT5zZXRT
b3VyY2Uoc291cmNlKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgS0pTX0ZBU1RfQ0FMTDsK
QEAgLTMwNzcsMTkgKzMwODMsMTMgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAgICBjbGFzcyBGdW5j
RGVjbE5vZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBG
dW5jRGVjbE5vZGUoY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEZ1bmN0aW9uQm9keU5vZGUqIGJv
ZHkpIEtKU19GQVNUX0NBTEwKLSAgICAgICAgICAgIDogbV9pZGVudChpZGVudCkKLSAgICAgICAg
ICAgICwgbV9ib2R5KGJvZHkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFkZFBhcmFtcygpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgRnVuY0RlY2xOb2RlKGNvbnN0IElkZW50aWZpZXImIGlkZW50
LCBQYXJhbWV0ZXJOb2RlKiBwYXJhbWV0ZXIsIEZ1bmN0aW9uQm9keU5vZGUqIGJvZHkpIEtKU19G
QVNUX0NBTEwKKyAgICAgICAgRnVuY0RlY2xOb2RlKGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBG
dW5jdGlvbkJvZHlOb2RlKiBib2R5LCBjb25zdCBTb3VyY2VSYW5nZSYgc291cmNlLCBQYXJhbWV0
ZXJOb2RlKiBwYXJhbWV0ZXIgPSAwKSBLSlNfRkFTVF9DQUxMCiAgICAgICAgICAgICA6IG1faWRl
bnQoaWRlbnQpCiAgICAgICAgICAgICAsIG1fcGFyYW1ldGVyKHBhcmFtZXRlcikKICAgICAgICAg
ICAgICwgbV9ib2R5KGJvZHkpCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkZFBhcmFtcygpOwor
ICAgICAgICAgICAgbV9ib2R5LT5zZXRTb3VyY2Uoc291cmNlKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdENvZGUoQ29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgS0pTX0ZBU1RfQ0FMTDsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy90ZXN0a2pz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvdGVzdGtqcy5jcHAJKHJldmlz
aW9uIDMzMDI0KQorKysgSmF2YVNjcmlwdENvcmUva2pzL3Rlc3RranMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIGJvb2wgcHJldHR5UHJpbnRTY3JpcHQoY29u
c3QgVVN0cgogICAgIGludCBlcnJMaW5lID0gMDsKICAgICBVU3RyaW5nIGVyck1zZzsKICAgICBV
U3RyaW5nIHNjcmlwdFVTdHJpbmcoc2NyaXB0LmRhdGEoKSk7Ci0gICAgUmVmUHRyPFByb2dyYW1O
b2RlPiBwcm9ncmFtTm9kZSA9IHBhcnNlcigpLnBhcnNlPFByb2dyYW1Ob2RlPihmaWxlTmFtZSwg
MCwgc2NyaXB0VVN0cmluZy5kYXRhKCksIHNjcmlwdFVTdHJpbmcuc2l6ZSgpLCAwLCAmZXJyTGlu
ZSwgJmVyck1zZyk7CisgICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtTm9kZSA9IHBhcnNl
cigpLnBhcnNlPFByb2dyYW1Ob2RlPihmaWxlTmFtZSwgMCwgVVN0cmluZ1NvdXJjZVByb3ZpZGVy
OjpjcmVhdGUoc2NyaXB0VVN0cmluZyksIDAsICZlcnJMaW5lLCAmZXJyTXNnKTsKICAgICBpZiAo
IXByb2dyYW1Ob2RlKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6ICVzLlxuIiwg
ZmlsZU5hbWUuVVRGOFN0cmluZygpLmNfc3RyKCksIGVyckxpbmUsIGVyck1zZy5VVEY4U3RyaW5n
KCkuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IEphdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDMzMDI1KQorKysgSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDgtMDUtMTAgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IEphdmFTY3JpcHRHbHVlIHBhcnQgb2YgZml4IGZvcjogIlNRVUlSUkVMRklTSDogZnVuY3Rpb24g
dG9TdHJpbmcgYnJva2VuIGFmdGVyIGNhbGxpbmciCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg2OQorICAgICAgICAKKyAgICAgICAgKiBKU1J1bi5j
cHA6CisgICAgICAgIChKU1J1bjo6RXZhbHVhdGUpOiBVc2UgVVN0cmluZyB2ZXJzaW9uIG9mIGV2
ZWx1YXRlKCkgaW5zdGVhZCBvZgorICAgICAgICB0aGUgbm93IGRlcGFydGVkIFVDaGFyKi9sZW5n
dGggdmFyaWFudDsgdXNlIG9mIHRoZSBsb3dlci1sZXZlbAorICAgICAgICB2ZXJzaW9uIHdhcyBn
cmF0dWl0b3VzIGluIGFueSBjYXNlLgorICAgICAgICAoSlNSdW46OkNoZWNrU3ludGF4KTogRGl0
dG8gZm9yIGNoZWNrU3ludGF4KCkuCisKIDIwMDgtMDQtMzAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXg6IHN1cHBseSBtaXNzaW5nIHBhcmFt
ZXRlciB0aGF0IHVzZWQgdG8gYmUgaW1wbGljaXQuCkluZGV4OiBKYXZhU2NyaXB0R2x1ZS9KU1J1
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCShyZXZpc2lvbiAz
MzAyNCkKKysrIEphdmFTY3JpcHRHbHVlL0pTUnVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
MTAgKzU4LDEwIEBAIEpTR2xvYmFsT2JqZWN0KiBKU1J1bjo6R2xvYmFsT2JqZWN0KCkgY28KIAog
Q29tcGxldGlvbiBKU1J1bjo6RXZhbHVhdGUoKQogewotICAgIHJldHVybiBJbnRlcnByZXRlcjo6
ZXZhbHVhdGUoZkdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBmR2xvYmFsT2JqZWN0LT5nbG9i
YWxTY29wZUNoYWluKCksIFVTdHJpbmcoKSwgMCwgZlNvdXJjZS5kYXRhKCksIGZTb3VyY2Uuc2l6
ZSgpKTsKKyAgICByZXR1cm4gSW50ZXJwcmV0ZXI6OmV2YWx1YXRlKGZHbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKSwgZkdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpLCBVU3RyaW5nKCks
IDAsIGZTb3VyY2UpOwogfQogCiBib29sIEpTUnVuOjpDaGVja1N5bnRheCgpCiB7Ci0gICAgcmV0
dXJuIEludGVycHJldGVyOjpjaGVja1N5bnRheChmR2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCks
IFVTdHJpbmcoKSwgMCwgZlNvdXJjZS5kYXRhKCksIGZTb3VyY2Uuc2l6ZSgpKS5jb21wbFR5cGUo
KSAhPSBUaHJvdzsKKyAgICByZXR1cm4gSW50ZXJwcmV0ZXI6OmNoZWNrU3ludGF4KGZHbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKSwgVVN0cmluZygpLCAwLCBmU291cmNlKS5jb21wbFR5cGUoKSAh
PSBUaHJvdzsKIH0KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAzMzAyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDgtMDUtMTAgIE1hY2llaiBTdGFjaG93aWFr
ICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAtIEphdmFTY3JpcHRHbHVlIHBhcnQgb2YgZml4IGZvcjogIlNRVUlSUkVMRklT
SDogZnVuY3Rpb24gdG9TdHJpbmcgYnJva2VuIGFmdGVyIGNhbGxpbmciCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg2OQorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaDogQWRkZWQuIFNvdXJjZVByb3ZpZGVyIHN1
YmNsYXNzIGJhY2tlZCBieSBhIFdlYkNvcmU6OlN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlN0
cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OmdldFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ1NvdXJjZVBy
b3ZpZGVyOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjps
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nU291cmNlUHJvdmlkZXI6OlN0cmluZ1Nv
dXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6S0pTUHJveHk6OmV2YWx1YXRlKTogUGFzcyBhIFN0cmluZ1NvdXJjZVBy
b3ZpZGVyIHRvCisgICAgICAgIGV2YWx1YXRlKCkgaW5zdGVhZCBvZiBVQ2hhciogLyBsZW5ndGgu
CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2NyaXB0RWxlbWVudDo6dGV4dCk6IE1vZGlmaWVkIHRvIHJldHVybiB0aGUKKyAgICAg
ICAgb3JpZ2luYWwgc3RyaW5nIGFzLWlzIHdoZW4gdGhlIHNjcmlwdCBlbGVtZW50IGNvbnRhaW5z
IG9ubHkgYQorICAgICAgICBzaW5nbGUgdGV4dCBub2RlLCB0byBhdm9pZCBleGNlc3MgbWVtb3J5
IHVzZS4KKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
IEFkZCBuZXcgZmlsZSB0byBidWlsZC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IGRpdHRvCisKIDIwMDgtMDUtMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMzMwMjQpCisrKyBXZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYxMCw2ICsxMzYx
MCwxMCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlv
bi5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXFN0cmluZ1NvdXJjZVByb3ZpZGVyLmgiDQorCQkJCQk+DQorCQkJ
CTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzMzAy
NCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC01NjgsNiArNTY4LDcgQEAKIAkJNjUwRkJGMkMwRDlBRjA0NzAwOEZDMjkyIC8q
IFNWR0hLZXJuRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1MEZCRjI5MEQ5QUYwNDcwMDhGQzI5MiAvKiBTVkdIS2VybkVsZW1lbnQu
aWRsICovOyB9OwogCQk2NTE1RUM5MTBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRHbHlwaEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjUxNUVDOEYwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCAqLzsg
fTsKIAkJNjUxNUVDOTIwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTE1RUM5MDBE
OTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRHbHlwaEVsZW1lbnQuaCAqLzsgfTsKKwkJNjU0ODhE
NkIwREQ1QTgzRDAwOUQ4M0IyIC8qIFN0cmluZ1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ4OEQ2QTBERDVBODNEMDA5RDgz
QjIgLyogU3RyaW5nU291cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNjU1MEI2OUQwOTlERjAyNzAw
OTBENzgxIC8qIENEQVRBU2VjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NTUwQjY5MzA5OURGMDI3MDA5MEQ3ODEgLyogQ0RBVEFTZWN0aW9u
LmNwcCAqLzsgfTsKIAkJNjU1MEI2OUUwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2VjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU1MEI2OTQw
OTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2VjdGlvbi5oICovOyB9OwogCQk2NTUwQjY5RjA5OURG
MDI3MDA5MEQ3ODEgLyogQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTUwQjY5NTA5OURGMDI3MDA5MEQ3ODEgLyogQ2hhcmFj
dGVyRGF0YS5jcHAgKi87IH07CkBAIC01MDIyLDYgKzUwMjMsNyBAQAogCQk2NTBGQkYyOTBEOUFG
MDQ3MDA4RkMyOTIgLyogU1ZHSEtlcm5FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdIS2VybkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTE1
RUM4RjBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRHbHlwaEVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBbHRHbHlwaEVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTE1RUM5MDBEOTcyM0ZGMDA2M0Q0OUEgLyog
SlNTVkdBbHRHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTVkdBbHRHbHlwaEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjU0
ODhENkEwREQ1QTgzRDAwOUQ4M0IyIC8qIFN0cmluZ1NvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU1MEI2OTMwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2VjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RBVEFTZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU1MEI2OTQwOTlERjAyNzAwOTBE
NzgxIC8qIENEQVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q0RBVEFTZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjA2MSw2ICsx
MjA2Myw3IEBACiAJCQkJOTNCNzBENTQwOUVCMEM3QzAwOUQ4NDY4IC8qIGtqc19wcm94eS5oICov
LAogCQkJCUJDQTM3ODE0MEQxNUM2NDYwMEI3OTNENiAvKiBQYXVzZWRUaW1lb3V0cy5jcHAgKi8s
CiAJCQkJQkNBMzc4MTUwRDE1QzY0NjAwQjc5M0Q2IC8qIFBhdXNlZFRpbWVvdXRzLmggKi8sCisJ
CQkJNjU0ODhENkEwREQ1QTgzRDAwOUQ4M0IyIC8qIFN0cmluZ1NvdXJjZVByb3ZpZGVyLmggKi8s
CiAJCQkJQkNBMzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8s
CiAJCQkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAog
CQkJKTsKQEAgLTE0OTM4LDYgKzE0OTQxLDcgQEAKIAkJCQk1MTRCNDlERjBEQjZENkI2MDAxQzM3
NzAgLyogU2Vzc2lvblN0b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJENDBE
QjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMzNDhCRUEwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNjU0ODhENkIwREQ1QTgzRDAwOUQ4M0IyIC8qIFN0cmluZ1Nv
dXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMv
U3RyaW5nU291cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgU3RyaW5nU291cmNlUHJvdmlkZXJfaAorI2RlZmluZSBTdHJpbmdTb3VyY2VQcm92
aWRlcl9oCisKKyNpbmNsdWRlIDxranMvU291cmNlUHJvdmlkZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgS0pTOjpT
b3VyY2VQcm92aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlKSk7IH0KKworICAgICAg
ICBLSlM6OlVTdHJpbmcgZ2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdCB7IHJldHVy
biBLSlM6OlVTdHJpbmcobV9zb3VyY2UuY2hhcmFjdGVycygpICsgc3RhcnQsIGVuZCAtIHN0YXJ0
KTsgfQorICAgICAgICBjb25zdCBVQ2hhciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LmNoYXJhY3RlcnMoKTsgfQorICAgICAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2UubGVuZ3RoKCk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFN0cmluZ1NvdXJjZVBy
b3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlKSA6IG1fc291cmNlKHNvdXJjZSkge30KKyAgICAg
ICAgU3RyaW5nIG1fc291cmNlOworICAgIH07CisKKworfQorCisjZW5kaWYgU3RyaW5nU291cmNl
UHJvdmlkZXJfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAkocmV2aXNpb24gMzMw
MjQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN0cmluZ1NvdXJjZVByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgogI2luY2x1ZGUgPGtqcy9kZWJ1Z2dlci5o
PgogCkBAIC04NCw3ICs4NSw3IEBAIEpTVmFsdWUqIEtKU1Byb3h5OjpldmFsdWF0ZShjb25zdCBT
dHJpbmcKICAgICBtX2ZyYW1lLT5rZWVwQWxpdmUoKTsKIAogICAgIG1fd2luZG93V3JhcHBlci0+
d2luZG93KCktPnN0YXJ0VGltZW91dENoZWNrKCk7Ci0gICAgQ29tcGxldGlvbiBjb21wID0gSW50
ZXJwcmV0ZXI6OmV2YWx1YXRlKGV4ZWMsIGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+Z2xv
YmFsU2NvcGVDaGFpbigpLCBmaWxlbmFtZSwgYmFzZUxpbmUsIHN0ci5jaGFyYWN0ZXJzKCksIHN0
ci5sZW5ndGgoKSwgbV93aW5kb3dXcmFwcGVyKTsKKyAgICBDb21wbGV0aW9uIGNvbXAgPSBJbnRl
cnByZXRlcjo6ZXZhbHVhdGUoZXhlYywgZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpLT5nbG9i
YWxTY29wZUNoYWluKCksIGZpbGVuYW1lLCBiYXNlTGluZSwgU3RyaW5nU291cmNlUHJvdmlkZXI6
OmNyZWF0ZShzdHIpLCBtX3dpbmRvd1dyYXBwZXIpOwogICAgIG1fd2luZG93V3JhcHBlci0+d2lu
ZG93KCktPnN0b3BUaW1lb3V0Q2hlY2soKTsKIAogICAgIGlmIChjb21wLmNvbXBsVHlwZSgpID09
IE5vcm1hbCB8fCBjb21wLmNvbXBsVHlwZSgpID09IFJldHVyblZhbHVlKSB7CkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5jcHAJKHJldmlzaW9uIDMzMDI0KQorKysgV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDExICsyMzksMjUg
QEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZXZhbHVhdGVTY3JpcHQoYwogU3RyaW5nIEhUTUxT
Y3JpcHRFbGVtZW50Ojp0ZXh0KCkgY29uc3QKIHsKICAgICBWZWN0b3I8VUNoYXI+IHZhbDsKKyAg
ICBUZXh0KiBmaXJzdFRleHROb2RlID0gMDsKKyAgICBib29sIGZvdW5kTXVsdGlwbGVUZXh0Tm9k
ZXMgPSBmYWxzZTsKICAgICAKICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG47IG4g
PSBuLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChuLT5pc1RleHROb2RlKCkpCi0gICAg
ICAgICAgICBhcHBlbmQodmFsLCBzdGF0aWNfY2FzdDxUZXh0Kj4obiktPmRhdGEoKSk7CisgICAg
ICAgIGlmIChuLT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChmb3VuZE11bHRpcGxl
VGV4dE5vZGVzKQorICAgICAgICAgICAgICAgIGFwcGVuZCh2YWwsIHN0YXRpY19jYXN0PFRleHQq
PihuKS0+ZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VGV4dE5vZGUpIHsKKyAg
ICAgICAgICAgICAgICBhcHBlbmQodmFsLCBmaXJzdFRleHROb2RlLT5kYXRhKCkpOworICAgICAg
ICAgICAgICAgIGFwcGVuZCh2YWwsIHN0YXRpY19jYXN0PFRleHQqPihuKS0+ZGF0YSgpKTsKKyAg
ICAgICAgICAgICAgICBmb3VuZE11bHRpcGxlVGV4dE5vZGVzID0gdHJ1ZTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmlyc3RUZXh0Tm9kZSA9IHN0YXRpY19jYXN0PFRl
eHQqPihuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KKyAgICAgICAgCisgICAg
aWYgKGZpcnN0VGV4dE5vZGUgJiYgIWZvdW5kTXVsdGlwbGVUZXh0Tm9kZXMpCisgICAgICAgIHJl
dHVybiBmaXJzdFRleHROb2RlLT5kYXRhKCk7CiAgICAgCiAgICAgcmV0dXJuIFN0cmluZzo6YWRv
cHQodmFsKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDMzMDI1KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDgtMDUtMTAgIE1hY2ll
aiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAtIHRlc3QgY2hhbmdlcyBmb3I6ICJTUVVJUlJFTEZJU0g6
IGZ1bmN0aW9uIHRvU3RyaW5nIGJyb2tlbiBhZnRlciBjYWxsaW5nIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NjkKKworICAgICAgICBBbGwgb2Yg
dGhlc2UgdGVzdHMgZXhwZWN0ZWQgZnVuY3Rpb24udG9TdHJpbmcgdG8gc29tZXdoYXQgY2hhbmdl
CisgICAgICAgIHRoaW5ncyBmcm9tIHRoZSByYXcgb3JpZ2luYWwgc291cmNlLiBUaGV5IGFyZSBu
b3cgcHJlcGFyZWQgZm9yIHRoZQorICAgICAgICBmYWN0IHRoYXQgdGhpcyBkb2VzIG5vdCBoYXBw
ZW4uCisgICAgICAgIAorICAgICAgICAqIGZhc3QvanMvZnVuY3Rpb24tZGVjb21waWxhdGlvbi1v
cGVyYXRvcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2pzL2Z1bmN0aW9uLW5hbWVzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2Z1bmN0aW9uLXByb3RvdHlwZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9qcy9mdW5jdGlvbi1wcm90b3R5cGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2pzL2Z1bmN0aW9uLXRvU3RyaW5nLW9iamVjdC1saXRlcmFscy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9qcy9mdW5jdGlvbi10b1N0cmluZy1wYXJlbnRoZXNlcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9qcy9rZGUvbHZhbC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2pzL21vZGlmeS1ub24tcmVmZXJlbmNlcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tbmFtZXMuanM6CisgICAgICAgICog
ZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tdG9TdHJpbmctb2JqZWN0LWxpdGVyYWxzLmpzOgor
ICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2Z1bmN0aW9uLXRvU3RyaW5nLXBhcmVudGhlc2Vz
LmpzOgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL21vZGlmeS1ub24tcmVmZXJlbmNlcy5q
czoKKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1w
cmVzZXJ2ZS1wYXJlbnMuanM6CisgICAgICAgICogZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9z
dGZpeC1wcmVzZXJ2ZS1wYXJlbnMtZXhwZWN0ZWQudHh0OgorCiAyMDA4LTA1LTA5ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tZGVjb21waWxhdGlvbi1v
cGVyYXRvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9u
LWRlY29tcGlsYXRpb24tb3BlcmF0b3JzLmh0bWwJKHJldmlzaW9uIDMzMDI0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1kZWNvbXBpbGF0aW9uLW9wZXJhdG9ycy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBACiAgICAgXTsKIAogICAgIGZvciAodGVzdCBpbiB0
ZXN0cykgewotICAgICAgICB2YXIgZGVjb21waWxlZEZ1bmN0aW9uID0gZXZhbCgiKGZ1bmN0aW9u
ICgpIHsiICsgdGVzdHNbdGVzdF0gKyAifSkiKS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIi
KTsKKyAgICAgICAgdmFyIGRlY29tcGlsZWRGdW5jdGlvbiA9IGV2YWwoIihmdW5jdGlvbiAoKSB7
ICAiICsgdGVzdHNbdGVzdF0gKyAiO30pIikudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIik7
CiAgICAgICAgIHNob3VsZEJlKCJkZWNvbXBpbGVkRnVuY3Rpb24iLCAiJ2Z1bmN0aW9uICgpIHsg
ICIgKyB0ZXN0c1t0ZXN0XSArICI7fSciKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvanMvZnVuY3Rpb24tbmFtZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvZnVuY3Rpb24tbmFtZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMzAyNCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tbmFtZXMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoZSBuYW1lcyBvZiBh
bGwgc29ydHMgCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBuZXcgRnVuY3Rp
b24oJ3JldHVybiAxJykudG9TdHJpbmcoKS5yZXBsYWNlKC9bIFxuXSsvZywgJyAnKSBpcyAnZnVu
Y3Rpb24gYW5vbnltb3VzKCkgeyByZXR1cm4gMTsgfScKK1BBU1MgbmV3IEZ1bmN0aW9uKCcgcmV0
dXJuIDE7ICcpLnRvU3RyaW5nKCkucmVwbGFjZSgvWyBcbl0rL2csICcgJykgaXMgJ2Z1bmN0aW9u
IGFub255bW91cygpIHsgcmV0dXJuIDE7IH0nCiBQQVNTIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5vbmNsaWNrLnRvU3RyaW5nKCkucmVwbGFjZSgvWyBcbl0rL2csICcgJykgaXMgJ2Z1bmN0aW9u
IG9uY2xpY2soZXZlbnQpIHsgcmV0dXJuIDI7IH0nCiBQQVNTICcnLmNvbnN0cnVjdG9yIGlzIFN0
cmluZwogUEFTUyBCb29sZWFuLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uIEJvb2xlYW4oKSB7XG4g
ICAgW25hdGl2ZSBjb2RlXVxufScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24t
cHJvdG90eXBlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pz
L2Z1bmN0aW9uLXByb3RvdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDMzMDI0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1wcm90b3R5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0cyBCdWd6aWxsYSBCdWcgOTgxNTogSmF2YVNjcmlw
dCBUeXBlCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBhY3R1YWwgaXMgJ2Z1
bmN0aW9uICgpIFxue1xufScKK1BBU1MgYWN0dWFsIGlzICdmdW5jdGlvbiAoKSB7IH0nCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tcHJvdG90eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1wcm90b3R5cGUuaHRtbAkocmV2aXNpb24gMzMwMjQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9uLXByb3RvdHlwZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIE15Q2xhc3MuZnVuYy5wcm90b3R5cGUgPSAKIH0KIAog
dmFyIGFjdHVhbCA9ICIiICsgTXlDbGFzcy5ydW5UZXN0KCk7Ci1zaG91bGRCZSgiYWN0dWFsIiwg
IidmdW5jdGlvbiAoKSBcXG57XFxufSciKTsKK3Nob3VsZEJlKCJhY3R1YWwiLCAiJ2Z1bmN0aW9u
ICgpIHsgfSciKTsKIAogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi10b1N0cmluZy1vYmplY3QtbGl0ZXJhbHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24t
dG9TdHJpbmctb2JqZWN0LWxpdGVyYWxzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzMwMjQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9uLXRvU3RyaW5nLW9iamVjdC1saXRlcmFscy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsMTUgKzUsMTUgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPSB7IDE6IG51bGwgfScpIGlzICdhID0geyAxOiBudWxsIH0nCiBQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJ2EgPSB7IDA6IG51bGwgfScpIGlzICdhID0geyAwOiBudWxsIH0nCi1QQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDEuMDogbnVsbCB9JykgaXMgJ2EgPSB7IDE6IG51bGwg
fScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgMS4wOiBudWxsIH0nKSBpcyAnYSA9
IHsgMS4wOiBudWxsIH0nCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7ICIxLjAiOiBu
dWxsIH0nKSBpcyAnYSA9IHsgIjEuMCI6IG51bGwgfScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSA9IHsgMWUtNTAwOiBudWxsIH0nKSBpcyAnYSA9IHsgMDogbnVsbCB9JworUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhID0geyAxZS01MDA6IG51bGwgfScpIGlzICdhID0geyAxZS01MDA6
IG51bGwgfScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgMWUtMzAwOiBudWxsIH0n
KSBpcyAnYSA9IHsgMWUtMzAwOiBudWxsIH0nCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2Eg
PSB7IDFlMzAwOiBudWxsIH0nKSBpcyAnYSA9IHsgMWUrMzAwOiBudWxsIH0nCi1QQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPSB7IDFlNTAwOiBudWxsIH0nKSBpcyAnYSA9IHsgIkluZmluaXR5
IjogbnVsbCB9JwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID0geyBOYU46IG51bGwgfScp
IGlzICdhID0geyAiTmFOIjogbnVsbCB9JwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID0g
eyBJbmZpbml0eTogbnVsbCB9JykgaXMgJ2EgPSB7ICJJbmZpbml0eSI6IG51bGwgfScKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgIjEiOiBudWxsIH0nKSBpcyAnYSA9IHsgMTogbnVs
bCB9JworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID0geyAxZTMwMDogbnVsbCB9JykgaXMg
J2EgPSB7IDFlMzAwOiBudWxsIH0nCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDFl
NTAwOiBudWxsIH0nKSBpcyAnYSA9IHsgMWU1MDA6IG51bGwgfScKK1BBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSA9IHsgTmFOOiBudWxsIH0nKSBpcyAnYSA9IHsgTmFOOiBudWxsIH0nCitQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IEluZmluaXR5OiBudWxsIH0nKSBpcyAnYSA9IHsg
SW5maW5pdHk6IG51bGwgfScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgIjEiOiBu
dWxsIH0nKSBpcyAnYSA9IHsgIjEiOiBudWxsIH0nCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPSB7ICIxaGkiOiBudWxsIH0nKSBpcyAnYSA9IHsgIjFoaSI6IG51bGwgfScKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgIlwnIjogbnVsbCB9JykgaXMgJ2EgPSB7ICJcJyI6IG51
bGwgfScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IHsgIlxcIiI6IG51bGwgfScpIGlz
ICdhID0geyAiXFwiIjogbnVsbCB9JwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlv
bi10b1N0cmluZy1wYXJlbnRoZXNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi10b1N0cmluZy1wYXJlbnRoZXNlcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDMzMDI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi10b1N0cmlu
Zy1wYXJlbnRoZXNlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNDAzICs0LDQw
MyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCdhICogYiAqIGMnKSBpcyAnYSAqIGIgKiBjJwotUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCcoYSAqIGIpICogYycpIGlzICdhICogYiAqIGMnCitQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyhhICogYikgKiBjJykgaXMgJyhhICogYikgKiBjJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhICogKGIgKiBjKScpIGlzICdhICogKGIgKiBjKScKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnYSAqIGIgKyBjJykgaXMgJ2EgKiBiICsgYycKLVBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKGEgKiBiKSArIGMnKSBpcyAnYSAqIGIgKyBjJworUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcoYSAqIGIpICsgYycpIGlzICcoYSAqIGIpICsgYycKIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSAqIChiICsgYyknKSBpcyAnYSAqIChiICsgYyknCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgKiBiIC0gYycpIGlzICdhICogYiAtIGMnCi1QQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJyhhICogYikgLSBjJykgaXMgJ2EgKiBiIC0gYycKK1BBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKGEgKiBiKSAtIGMnKSBpcyAnKGEgKiBiKSAtIGMnCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgKiAoYiAtIGMpJykgaXMgJ2EgKiAoYiAtIGMpJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhIC8gYiAvIGMnKSBpcyAnYSAvIGIgLyBjJwotUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSAvIGIpIC8gYycpIGlzICdhIC8gYiAvIGMnCitQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJyhhIC8gYikgLyBjJykgaXMgJyhhIC8gYikgLyBjJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCdhIC8gKGIgLyBjKScpIGlzICdhIC8gKGIgLyBjKScKIFBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnYSAqIGIgLyBjJykgaXMgJ2EgKiBiIC8gYycKLVBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKGEgKiBiKSAvIGMnKSBpcyAnYSAqIGIgLyBjJworUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCcoYSAqIGIpIC8gYycpIGlzICcoYSAqIGIpIC8gYycKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSAqIChiIC8gYyknKSBpcyAnYSAqIChiIC8gYyknCiBQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJ2EgLyBiICsgYycpIGlzICdhIC8gYiArIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJyhhIC8gYikgKyBjJykgaXMgJ2EgLyBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnKGEgLyBiKSArIGMnKSBpcyAnKGEgLyBiKSArIGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgLyAoYiArIGMpJykgaXMgJ2EgLyAoYiArIGMpJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCdhICUgYiAlIGMnKSBpcyAnYSAlIGIgJSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCcoYSAlIGIpICUgYycpIGlzICdhICUgYiAlIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyhhICUgYikgJSBjJykgaXMgJyhhICUgYikgJSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhICUgKGIgJSBjKScpIGlzICdhICUgKGIgJSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAqIGIgJSBjJykgaXMgJ2EgKiBiICUgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKGEgKiBiKSAlIGMnKSBpcyAnYSAqIGIgJSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAqIGIpICUgYycpIGlzICcoYSAqIGIpICUgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSAqIChiICUgYyknKSBpcyAnYSAqIChiICUgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJ2EgJSBiICsgYycpIGlzICdhICUgYiArIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
JyhhICUgYikgKyBjJykgaXMgJ2EgJSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgJSBiKSArIGMnKSBpcyAnKGEgJSBiKSArIGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgJSAoYiArIGMpJykgaXMgJ2EgJSAoYiArIGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCdhICsgYiArIGMnKSBpcyAnYSArIGIgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCco
YSArIGIpICsgYycpIGlzICdhICsgYiArIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhh
ICsgYikgKyBjJykgaXMgJyhhICsgYikgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ICsgKGIgKyBjKScpIGlzICdhICsgKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSArIGIgPDwgYycpIGlzICdhICsgYiA8PCBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCco
YSArIGIpIDw8IGMnKSBpcyAnYSArIGIgPDwgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgKyBiKSA8PCBjJykgaXMgJyhhICsgYikgPDwgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSArIChiIDw8IGMpJykgaXMgJ2EgKyAoYiA8PCBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSArIGIgPj4gYycpIGlzICdhICsgYiA+PiBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCcoYSArIGIpID4+IGMnKSBpcyAnYSArIGIgPj4gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnKGEgKyBiKSA+PiBjJykgaXMgJyhhICsgYikgPj4gYycKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIChiID4+IGMpJykgaXMgJ2EgKyAoYiA+PiBjKScKIFBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnYSArIGIgPj4+IGMnKSBpcyAnYSArIGIgPj4+IGMnCi1QQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJyhhICsgYikgPj4+IGMnKSBpcyAnYSArIGIgPj4+IGMnCitQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyhhICsgYikgPj4+IGMnKSBpcyAnKGEgKyBiKSA+Pj4gYycKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIChiID4+PiBjKScpIGlzICdhICsgKGIgPj4+IGMpJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIC0gYiAtIGMnKSBpcyAnYSAtIGIgLSBjJwotUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAtIGIpIC0gYycpIGlzICdhIC0gYiAtIGMnCitQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIC0gYikgLSBjJykgaXMgJyhhIC0gYikgLSBjJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhIC0gKGIgLSBjKScpIGlzICdhIC0gKGIgLSBjKScKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgLSBjJykgaXMgJ2EgKyBiIC0gYycKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgKyBiKSAtIGMnKSBpcyAnYSArIGIgLSBjJworUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCcoYSArIGIpIC0gYycpIGlzICcoYSArIGIpIC0gYycKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIChiIC0gYyknKSBpcyAnYSArIChiIC0gYyknCiBQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLSBiIDw8IGMnKSBpcyAnYSAtIGIgPDwgYycKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgLSBiKSA8PCBjJykgaXMgJ2EgLSBiIDw8IGMnCitQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIC0gYikgPDwgYycpIGlzICcoYSAtIGIpIDw8IGMnCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLSAoYiA8PCBjKScpIGlzICdhIC0gKGIgPDwgYykn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgYiA8PCBjJykgaXMgJ2EgPDwgYiA8PCBj
JwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBiKSA8PCBjJykgaXMgJ2EgPDwgYiA8
PCBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBiKSA8PCBjJykgaXMgJyhhIDw8
IGIpIDw8IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgKGIgPDwgYyknKSBpcyAn
YSA8PCAoYiA8PCBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PCBiIDwgYycpIGlz
ICdhIDw8IGIgPCBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBiKSA8IGMnKSBp
cyAnYSA8PCBiIDwgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgPCBjJykg
aXMgJyhhIDw8IGIpIDwgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PCAoYiA8IGMp
JykgaXMgJ2EgPDwgKGIgPCBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PCBiID4g
YycpIGlzICdhIDw8IGIgPiBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBiKSA+
IGMnKSBpcyAnYSA8PCBiID4gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikg
PiBjJykgaXMgJyhhIDw8IGIpID4gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PCAo
YiA+IGMpJykgaXMgJ2EgPDwgKGIgPiBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8
PCBiIDw9IGMnKSBpcyAnYSA8PCBiIDw9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhh
IDw8IGIpIDw9IGMnKSBpcyAnYSA8PCBiIDw9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
JyhhIDw8IGIpIDw9IGMnKSBpcyAnKGEgPDwgYikgPD0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSA8PCAoYiA8PSBjKScpIGlzICdhIDw8IChiIDw9IGMpJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCdhIDw8IGIgPj0gYycpIGlzICdhIDw8IGIgPj0gYycKLVBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKGEgPDwgYikgPj0gYycpIGlzICdhIDw8IGIgPj0gYycKK1BBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgPj0gYycpIGlzICcoYSA8PCBiKSA+PSBjJwogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCdhIDw8IChiID49IGMpJykgaXMgJ2EgPDwgKGIgPj0gYyknCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgYiBpbnN0YW5jZW9mIGMnKSBpcyAnYSA8PCBi
IGluc3RhbmNlb2YgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgaW5zdGFu
Y2VvZiBjJykgaXMgJ2EgPDwgYiBpbnN0YW5jZW9mIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyhhIDw8IGIpIGluc3RhbmNlb2YgYycpIGlzICcoYSA8PCBiKSBpbnN0YW5jZW9mIGMnCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgKGIgaW5zdGFuY2VvZiBjKScpIGlzICdhIDw8
IChiIGluc3RhbmNlb2YgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgYiBpbiBj
JykgaXMgJ2EgPDwgYiBpbiBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBiKSBp
biBjJykgaXMgJ2EgPDwgYiBpbiBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PCBi
KSBpbiBjJykgaXMgJyhhIDw8IGIpIGluIGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2Eg
PDwgKGIgaW4gYyknKSBpcyAnYSA8PCAoYiBpbiBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSA+PiBiID4+IGMnKSBpcyAnYSA+PiBiID4+IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyhhID4+IGIpID4+IGMnKSBpcyAnYSA+PiBiID4+IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJyhhID4+IGIpID4+IGMnKSBpcyAnKGEgPj4gYikgPj4gYycKIFBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnYSA+PiAoYiA+PiBjKScpIGlzICdhID4+IChiID4+IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhIDw8IGIgPj4gYycpIGlzICdhIDw8IGIgPj4gYycKLVBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgPj4gYycpIGlzICdhIDw8IGIgPj4gYycKK1BBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgPj4gYycpIGlzICcoYSA8PCBiKSA+PiBjJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDw8IChiID4+IGMpJykgaXMgJ2EgPDwgKGIgPj4g
YyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPj4gYiA8IGMnKSBpcyAnYSA+PiBiIDwg
YycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj4gYikgPCBjJykgaXMgJ2EgPj4gYiA8
IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID4+IGIpIDwgYycpIGlzICcoYSA+PiBi
KSA8IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPj4gKGIgPCBjKScpIGlzICdhID4+
IChiIDwgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPj4+IGIgPj4+IGMnKSBpcyAn
YSA+Pj4gYiA+Pj4gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj4+IGIpID4+PiBj
JykgaXMgJ2EgPj4+IGIgPj4+IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID4+PiBi
KSA+Pj4gYycpIGlzICcoYSA+Pj4gYikgPj4+IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPj4+IChiID4+PiBjKScpIGlzICdhID4+PiAoYiA+Pj4gYyknCiBQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJ2EgPDwgYiA+Pj4gYycpIGlzICdhIDw8IGIgPj4+IGMnCi1QQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJyhhIDw8IGIpID4+PiBjJykgaXMgJ2EgPDwgYiA+Pj4gYycKK1BBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDwgYikgPj4+IGMnKSBpcyAnKGEgPDwgYikgPj4+IGMnCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDwgKGIgPj4+IGMpJykgaXMgJ2EgPDwgKGIgPj4+
IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+PiBiIDwgYycpIGlzICdhID4+PiBi
IDwgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj4+IGIpIDwgYycpIGlzICdhID4+
PiBiIDwgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj4+IGIpIDwgYycpIGlzICco
YSA+Pj4gYikgPCBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+PiAoYiA8IGMpJykg
aXMgJ2EgPj4+IChiIDwgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCBiIDwgYycp
IGlzICdhIDwgYiA8IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgPCBjJykg
aXMgJ2EgPCBiIDwgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPCBiKSA8IGMnKSBp
cyAnKGEgPCBiKSA8IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCAoYiA8IGMpJykg
aXMgJ2EgPCAoYiA8IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDwgYiA9PSBjJykg
aXMgJ2EgPCBiID09IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgPT0gYycp
IGlzICdhIDwgYiA9PSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8IGIpID09IGMn
KSBpcyAnKGEgPCBiKSA9PSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDwgKGIgPT0g
YyknKSBpcyAnYSA8IChiID09IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDwgYiAh
PSBjJykgaXMgJ2EgPCBiICE9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikg
IT0gYycpIGlzICdhIDwgYiAhPSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8IGIp
ICE9IGMnKSBpcyAnKGEgPCBiKSAhPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDwg
KGIgIT0gYyknKSBpcyAnYSA8IChiICE9IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
IDwgYiA9PT0gYycpIGlzICdhIDwgYiA9PT0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgPCBiKSA9PT0gYycpIGlzICdhIDwgYiA9PT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKGEgPCBiKSA9PT0gYycpIGlzICcoYSA8IGIpID09PSBjJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCdhIDwgKGIgPT09IGMpJykgaXMgJ2EgPCAoYiA9PT0gYyknCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgPCBiICE9PSBjJykgaXMgJ2EgPCBiICE9PSBjJwotUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcoYSA8IGIpICE9PSBjJykgaXMgJ2EgPCBiICE9PSBjJworUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCcoYSA8IGIpICE9PSBjJykgaXMgJyhhIDwgYikgIT09IGMnCiBQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCAoYiAhPT0gYyknKSBpcyAnYSA8IChiICE9PSBjKScK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA+IGIgPiBjJykgaXMgJ2EgPiBiID4gYycKLVBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPiBiKSA+IGMnKSBpcyAnYSA+IGIgPiBjJworUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA+IGIpID4gYycpIGlzICcoYSA+IGIpID4gYycKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA+IChiID4gYyknKSBpcyAnYSA+IChiID4gYyknCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCBiID4gYycpIGlzICdhIDwgYiA+IGMnCi1QQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgPiBjJykgaXMgJ2EgPCBiID4gYycKK1BBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPCBiKSA+IGMnKSBpcyAnKGEgPCBiKSA+IGMnCiBQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCAoYiA+IGMpJykgaXMgJ2EgPCAoYiA+IGMpJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4gYiA9PSBjJykgaXMgJ2EgPiBiID09IGMnCi1QQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID4gYikgPT0gYycpIGlzICdhID4gYiA9PSBjJworUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA+IGIpID09IGMnKSBpcyAnKGEgPiBiKSA9PSBjJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4gKGIgPT0gYyknKSBpcyAnYSA+IChiID09IGMp
JwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDw9IGIgPD0gYycpIGlzICdhIDw9IGIgPD0g
YycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPD0gYikgPD0gYycpIGlzICdhIDw9IGIg
PD0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPD0gYikgPD0gYycpIGlzICcoYSA8
PSBiKSA8PSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDw9IChiIDw9IGMpJykgaXMg
J2EgPD0gKGIgPD0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCBiIDw9IGMnKSBp
cyAnYSA8IGIgPD0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPCBiKSA8PSBjJykg
aXMgJ2EgPCBiIDw9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgPD0gYycp
IGlzICcoYSA8IGIpIDw9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPCAoYiA8PSBj
KScpIGlzICdhIDwgKGIgPD0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPD0gYiA9
PSBjJykgaXMgJ2EgPD0gYiA9PSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8PSBi
KSA9PSBjJykgaXMgJ2EgPD0gYiA9PSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8
PSBiKSA9PSBjJykgaXMgJyhhIDw9IGIpID09IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPD0gKGIgPT0gYyknKSBpcyAnYSA8PSAoYiA9PSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSA+PSBiID49IGMnKSBpcyAnYSA+PSBiID49IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJyhhID49IGIpID49IGMnKSBpcyAnYSA+PSBiID49IGMnCitQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJyhhID49IGIpID49IGMnKSBpcyAnKGEgPj0gYikgPj0gYycKIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSA+PSAoYiA+PSBjKScpIGlzICdhID49IChiID49IGMpJwogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCdhIDwgYiA+PSBjJykgaXMgJ2EgPCBiID49IGMnCi1QQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgPj0gYycpIGlzICdhIDwgYiA+PSBjJworUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCcoYSA8IGIpID49IGMnKSBpcyAnKGEgPCBiKSA+PSBjJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDwgKGIgPj0gYyknKSBpcyAnYSA8IChiID49IGMpJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID49IGIgPT0gYycpIGlzICdhID49IGIgPT0gYycK
LVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj0gYikgPT0gYycpIGlzICdhID49IGIgPT0g
YycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj0gYikgPT0gYycpIGlzICcoYSA+PSBi
KSA9PSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID49IChiID09IGMpJykgaXMgJ2Eg
Pj0gKGIgPT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgaW5zdGFuY2VvZiBiIGlu
c3RhbmNlb2YgYycpIGlzICdhIGluc3RhbmNlb2YgYiBpbnN0YW5jZW9mIGMnCi1QQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyhhIGluc3RhbmNlb2YgYikgaW5zdGFuY2VvZiBjJykgaXMgJ2EgaW5z
dGFuY2VvZiBiIGluc3RhbmNlb2YgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgaW5z
dGFuY2VvZiBiKSBpbnN0YW5jZW9mIGMnKSBpcyAnKGEgaW5zdGFuY2VvZiBiKSBpbnN0YW5jZW9m
IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgaW5zdGFuY2VvZiAoYiBpbnN0YW5jZW9m
IGMpJykgaXMgJ2EgaW5zdGFuY2VvZiAoYiBpbnN0YW5jZW9mIGMpJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCdhIDwgYiBpbnN0YW5jZW9mIGMnKSBpcyAnYSA8IGIgaW5zdGFuY2VvZiBjJwot
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA8IGIpIGluc3RhbmNlb2YgYycpIGlzICdhIDwg
YiBpbnN0YW5jZW9mIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDwgYikgaW5zdGFu
Y2VvZiBjJykgaXMgJyhhIDwgYikgaW5zdGFuY2VvZiBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhIDwgKGIgaW5zdGFuY2VvZiBjKScpIGlzICdhIDwgKGIgaW5zdGFuY2VvZiBjKScKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBpbnN0YW5jZW9mIGIgPT0gYycpIGlzICdhIGluc3Rh
bmNlb2YgYiA9PSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSBpbnN0YW5jZW9mIGIp
ID09IGMnKSBpcyAnYSBpbnN0YW5jZW9mIGIgPT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKGEgaW5zdGFuY2VvZiBiKSA9PSBjJykgaXMgJyhhIGluc3RhbmNlb2YgYikgPT0gYycKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBpbnN0YW5jZW9mIChiID09IGMpJykgaXMgJ2EgaW5z
dGFuY2VvZiAoYiA9PSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBpbiBiIGluIGMn
KSBpcyAnYSBpbiBiIGluIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIGluIGIpIGlu
IGMnKSBpcyAnYSBpbiBiIGluIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIGluIGIp
IGluIGMnKSBpcyAnKGEgaW4gYikgaW4gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBp
biAoYiBpbiBjKScpIGlzICdhIGluIChiIGluIGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCdhIDwgYiBpbiBjJykgaXMgJ2EgPCBiIGluIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
JyhhIDwgYikgaW4gYycpIGlzICdhIDwgYiBpbiBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSA8IGIpIGluIGMnKSBpcyAnKGEgPCBiKSBpbiBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhIDwgKGIgaW4gYyknKSBpcyAnYSA8IChiIGluIGMpJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCdhIGluIGIgPT0gYycpIGlzICdhIGluIGIgPT0gYycKLVBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKGEgaW4gYikgPT0gYycpIGlzICdhIGluIGIgPT0gYycKK1BBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKGEgaW4gYikgPT0gYycpIGlzICcoYSBpbiBiKSA9PSBjJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhIGluIChiID09IGMpJykgaXMgJ2EgaW4gKGIgPT0gYyknCiBQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPT0gYiA9PSBjJykgaXMgJ2EgPT0gYiA9PSBjJwotUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9PSBiKSA9PSBjJykgaXMgJ2EgPT0gYiA9PSBjJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9PSBiKSA9PSBjJykgaXMgJyhhID09IGIpID09
IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPT0gKGIgPT0gYyknKSBpcyAnYSA9PSAo
YiA9PSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9PSBiICYgYycpIGlzICdhID09
IGIgJiBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9PSBiKSAmIGMnKSBpcyAnYSA9
PSBiICYgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPT0gYikgJiBjJykgaXMgJyhh
ID09IGIpICYgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9PSAoYiAmIGMpJykgaXMg
J2EgPT0gKGIgJiBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAhPSBiICE9IGMnKSBp
cyAnYSAhPSBiICE9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICE9IGIpICE9IGMn
KSBpcyAnYSAhPSBiICE9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICE9IGIpICE9
IGMnKSBpcyAnKGEgIT0gYikgIT0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAhPSAo
YiAhPSBjKScpIGlzICdhICE9IChiICE9IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID09IGIgIT0gYycpIGlzICdhID09IGIgIT0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgPT0gYikgIT0gYycpIGlzICdhID09IGIgIT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKGEgPT0gYikgIT0gYycpIGlzICcoYSA9PSBiKSAhPSBjJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCdhID09IChiICE9IGMpJykgaXMgJ2EgPT0gKGIgIT0gYyknCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgIT0gYiAmIGMnKSBpcyAnYSAhPSBiICYgYycKLVBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKGEgIT0gYikgJiBjJykgaXMgJ2EgIT0gYiAmIGMnCitQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJyhhICE9IGIpICYgYycpIGlzICcoYSAhPSBiKSAmIGMnCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgIT0gKGIgJiBjKScpIGlzICdhICE9IChiICYgYyknCiBQQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgPT09IGIgPT09IGMnKSBpcyAnYSA9PT0gYiA9PT0gYycKLVBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPT09IGIpID09PSBjJykgaXMgJ2EgPT09IGIgPT09
IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID09PSBiKSA9PT0gYycpIGlzICcoYSA9
PT0gYikgPT09IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPT09IChiID09PSBjKScp
IGlzICdhID09PSAoYiA9PT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPT0gYiA9
PT0gYycpIGlzICdhID09IGIgPT09IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID09
IGIpID09PSBjJykgaXMgJ2EgPT0gYiA9PT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgPT0gYikgPT09IGMnKSBpcyAnKGEgPT0gYikgPT09IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgPT0gKGIgPT09IGMpJykgaXMgJ2EgPT0gKGIgPT09IGMpJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhID09PSBiICYgYycpIGlzICdhID09PSBiICYgYycKLVBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKGEgPT09IGIpICYgYycpIGlzICdhID09PSBiICYgYycKK1BBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgPT09IGIpICYgYycpIGlzICcoYSA9PT0gYikgJiBjJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhID09PSAoYiAmIGMpJykgaXMgJ2EgPT09IChiICYgYykn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgIT09IGIgIT09IGMnKSBpcyAnYSAhPT0gYiAh
PT0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgIT09IGIpICE9PSBjJykgaXMgJ2Eg
IT09IGIgIT09IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICE9PSBiKSAhPT0gYycp
IGlzICcoYSAhPT0gYikgIT09IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgIT09IChi
ICE9PSBjKScpIGlzICdhICE9PSAoYiAhPT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPT0gYiAhPT0gYycpIGlzICdhID09IGIgIT09IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyhhID09IGIpICE9PSBjJykgaXMgJ2EgPT0gYiAhPT0gYycKK1BBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKGEgPT0gYikgIT09IGMnKSBpcyAnKGEgPT0gYikgIT09IGMnCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPT0gKGIgIT09IGMpJykgaXMgJ2EgPT0gKGIgIT09IGMpJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhICE9PSBiICYgYycpIGlzICdhICE9PSBiICYgYycKLVBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgIT09IGIpICYgYycpIGlzICdhICE9PSBiICYgYycK
K1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgIT09IGIpICYgYycpIGlzICcoYSAhPT0gYikg
JiBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICE9PSAoYiAmIGMpJykgaXMgJ2EgIT09
IChiICYgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJiBiICYgYycpIGlzICdhICYg
YiAmIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICYgYikgJiBjJykgaXMgJ2EgJiBi
ICYgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgJiBiKSAmIGMnKSBpcyAnKGEgJiBi
KSAmIGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJiAoYiAmIGMpJykgaXMgJ2EgJiAo
YiAmIGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICYgYiBeIGMnKSBpcyAnYSAmIGIg
XiBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAmIGIpIF4gYycpIGlzICdhICYgYiBe
IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICYgYikgXiBjJykgaXMgJyhhICYgYikg
XiBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICYgKGIgXiBjKScpIGlzICdhICYgKGIg
XiBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBeIGIgXiBjJykgaXMgJ2EgXiBiIF4g
YycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgXiBiKSBeIGMnKSBpcyAnYSBeIGIgXiBj
JworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSBeIGIpIF4gYycpIGlzICcoYSBeIGIpIF4g
YycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBeIChiIF4gYyknKSBpcyAnYSBeIChiIF4g
YyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgXiBiIHwgYycpIGlzICdhIF4gYiB8IGMn
Ci1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIF4gYikgfCBjJykgaXMgJ2EgXiBiIHwgYycK
K1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgXiBiKSB8IGMnKSBpcyAnKGEgXiBiKSB8IGMn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgXiAoYiB8IGMpJykgaXMgJ2EgXiAoYiB8IGMp
JwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIHwgYiB8IGMnKSBpcyAnYSB8IGIgfCBjJwot
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSB8IGIpIHwgYycpIGlzICdhIHwgYiB8IGMnCitQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIHwgYikgfCBjJykgaXMgJyhhIHwgYikgfCBjJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIHwgKGIgfCBjKScpIGlzICdhIHwgKGIgfCBjKScK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSB8IGIgJiYgYycpIGlzICdhIHwgYiAmJiBjJwot
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSB8IGIpICYmIGMnKSBpcyAnYSB8IGIgJiYgYycK
K1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgfCBiKSAmJiBjJykgaXMgJyhhIHwgYikgJiYg
YycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSB8IChiICYmIGMpJykgaXMgJ2EgfCAoYiAm
JiBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAmJiBiICYmIGMnKSBpcyAnYSAmJiBi
ICYmIGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICYmIGIpICYmIGMnKSBpcyAnYSAm
JiBiICYmIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICYmIGIpICYmIGMnKSBpcyAn
KGEgJiYgYikgJiYgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAmJiAoYiAmJiBjKScp
IGlzICdhICYmIChiICYmIGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICYmIGIgfHwg
YycpIGlzICdhICYmIGIgfHwgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgJiYgYikg
fHwgYycpIGlzICdhICYmIGIgfHwgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgJiYg
YikgfHwgYycpIGlzICcoYSAmJiBiKSB8fCBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ICYmIChiIHx8IGMpJykgaXMgJ2EgJiYgKGIgfHwgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJ2EgfHwgYiB8fCBjJykgaXMgJ2EgfHwgYiB8fCBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCcoYSB8fCBiKSB8fCBjJykgaXMgJ2EgfHwgYiB8fCBjJworUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCcoYSB8fCBiKSB8fCBjJykgaXMgJyhhIHx8IGIpIHx8IGMnCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgfHwgKGIgfHwgYyknKSBpcyAnYSB8fCAoYiB8fCBjKScKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnYSA9IGIgPSBjJykgaXMgJ2EgPSBiID0gYycKIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKGEgPSBiKSA9IGMnKSBpcyAnKGEgPSBiKSA9IGMnCi1QQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPSAoYiA9IGMpJykgaXMgJ2EgPSBiID0gYycKK1BBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSA9IChiID0gYyknKSBpcyAnYSA9IChiID0gYyknCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPSBiICsgYycpIGlzICdhID0gYiArIGMnCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJyhhID0gYikgKyBjJykgaXMgJyhhID0gYikgKyBjJwotUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhID0gKGIgKyBjKScpIGlzICdhID0gYiArIGMnCitQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgPSAoYiArIGMpJykgaXMgJ2EgPSAoYiArIGMpJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhICsgYiA9IGMnKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yLgogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArIGIpID0gYycpIGlzICco
YSArIGIpID0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIChiID0gYyknKSBpcyAn
YSArIChiID0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKj0gYiAqPSBjJykgaXMg
J2EgKj0gYiAqPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAqPSBiKSAqPSBjJykg
aXMgJyhhICo9IGIpICo9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKj0gKGIgKj0g
YyknKSBpcyAnYSAqPSBiICo9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKj0gKGIg
Kj0gYyknKSBpcyAnYSAqPSAoYiAqPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9
IGIgKj0gYycpIGlzICdhID0gYiAqPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9
IGIpICo9IGMnKSBpcyAnKGEgPSBiKSAqPSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgKj0gYyknKSBpcyAnYSA9IGIgKj0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiICo9IGMpJykgaXMgJ2EgPSAoYiAqPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSAqPSBiICsgYycpIGlzICdhICo9IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAqPSBiKSArIGMnKSBpcyAnKGEgKj0gYikgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhICo9IChiICsgYyknKSBpcyAnYSAqPSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAqPSAoYiArIGMpJykgaXMgJ2EgKj0gKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIGIgKj0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgKj0gYycpIGlzICcoYSAr
IGIpICo9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiAqPSBjKScpIGlzICdh
ICsgKGIgKj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLz0gYiAvPSBjJykgaXMg
J2EgLz0gYiAvPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAvPSBiKSAvPSBjJykg
aXMgJyhhIC89IGIpIC89IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLz0gKGIgLz0g
YyknKSBpcyAnYSAvPSBiIC89IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLz0gKGIg
Lz0gYyknKSBpcyAnYSAvPSAoYiAvPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9
IGIgLz0gYycpIGlzICdhID0gYiAvPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9
IGIpIC89IGMnKSBpcyAnKGEgPSBiKSAvPSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgLz0gYyknKSBpcyAnYSA9IGIgLz0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiIC89IGMpJykgaXMgJ2EgPSAoYiAvPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSAvPSBiICsgYycpIGlzICdhIC89IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAvPSBiKSArIGMnKSBpcyAnKGEgLz0gYikgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhIC89IChiICsgYyknKSBpcyAnYSAvPSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAvPSAoYiArIGMpJykgaXMgJ2EgLz0gKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIGIgLz0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgLz0gYycpIGlzICcoYSAr
IGIpIC89IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiAvPSBjKScpIGlzICdh
ICsgKGIgLz0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJT0gYiAlPSBjJykgaXMg
J2EgJT0gYiAlPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAlPSBiKSAlPSBjJykg
aXMgJyhhICU9IGIpICU9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJT0gKGIgJT0g
YyknKSBpcyAnYSAlPSBiICU9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJT0gKGIg
JT0gYyknKSBpcyAnYSAlPSAoYiAlPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9
IGIgJT0gYycpIGlzICdhID0gYiAlPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9
IGIpICU9IGMnKSBpcyAnKGEgPSBiKSAlPSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgJT0gYyknKSBpcyAnYSA9IGIgJT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiICU9IGMpJykgaXMgJ2EgPSAoYiAlPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSAlPSBiICsgYycpIGlzICdhICU9IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAlPSBiKSArIGMnKSBpcyAnKGEgJT0gYikgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhICU9IChiICsgYyknKSBpcyAnYSAlPSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAlPSAoYiArIGMpJykgaXMgJ2EgJT0gKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIGIgJT0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgJT0gYycpIGlzICcoYSAr
IGIpICU9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiAlPSBjKScpIGlzICdh
ICsgKGIgJT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKz0gYiArPSBjJykgaXMg
J2EgKz0gYiArPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArPSBiKSArPSBjJykg
aXMgJyhhICs9IGIpICs9IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKz0gKGIgKz0g
YyknKSBpcyAnYSArPSBiICs9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKz0gKGIg
Kz0gYyknKSBpcyAnYSArPSAoYiArPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9
IGIgKz0gYycpIGlzICdhID0gYiArPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9
IGIpICs9IGMnKSBpcyAnKGEgPSBiKSArPSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgKz0gYyknKSBpcyAnYSA9IGIgKz0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiICs9IGMpJykgaXMgJ2EgPSAoYiArPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSArPSBiICsgYycpIGlzICdhICs9IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSArPSBiKSArIGMnKSBpcyAnKGEgKz0gYikgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhICs9IChiICsgYyknKSBpcyAnYSArPSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSArPSAoYiArIGMpJykgaXMgJ2EgKz0gKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIGIgKz0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgKz0gYycpIGlzICcoYSAr
IGIpICs9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiArPSBjKScpIGlzICdh
ICsgKGIgKz0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLT0gYiAtPSBjJykgaXMg
J2EgLT0gYiAtPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAtPSBiKSAtPSBjJykg
aXMgJyhhIC09IGIpIC09IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLT0gKGIgLT0g
YyknKSBpcyAnYSAtPSBiIC09IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLT0gKGIg
LT0gYyknKSBpcyAnYSAtPSAoYiAtPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9
IGIgLT0gYycpIGlzICdhID0gYiAtPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSA9
IGIpIC09IGMnKSBpcyAnKGEgPSBiKSAtPSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgLT0gYyknKSBpcyAnYSA9IGIgLT0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiIC09IGMpJykgaXMgJ2EgPSAoYiAtPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSAtPSBiICsgYycpIGlzICdhIC09IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAtPSBiKSArIGMnKSBpcyAnKGEgLT0gYikgKyBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCdhIC09IChiICsgYyknKSBpcyAnYSAtPSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAtPSAoYiArIGMpJykgaXMgJ2EgLT0gKGIgKyBjKScKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSArIGIgLT0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgLT0gYycpIGlzICcoYSAr
IGIpIC09IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiAtPSBjKScpIGlzICdh
ICsgKGIgLT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPDw9IGIgPDw9IGMnKSBp
cyAnYSA8PD0gYiA8PD0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDw9IGIpIDw8
PSBjJykgaXMgJyhhIDw8PSBiKSA8PD0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8
PD0gKGIgPDw9IGMpJykgaXMgJ2EgPDw9IGIgPDw9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJ2EgPDw9IChiIDw8PSBjKScpIGlzICdhIDw8PSAoYiA8PD0gYyknCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgPSBiIDw8PSBjJykgaXMgJ2EgPSBiIDw8PSBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcoYSA9IGIpIDw8PSBjJykgaXMgJyhhID0gYikgPDw9IGMnCi1QQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiA8PD0gYyknKSBpcyAnYSA9IGIgPDw9IGMnCitQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiA8PD0gYyknKSBpcyAnYSA9IChiIDw8PSBjKScK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PD0gYiArIGMnKSBpcyAnYSA8PD0gYiArIGMn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhIDw8PSBiKSArIGMnKSBpcyAnKGEgPDw9IGIp
ICsgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PD0gKGIgKyBjKScpIGlzICdhIDw8
PSBiICsgYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PD0gKGIgKyBjKScpIGlzICdh
IDw8PSAoYiArIGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiA8PD0gYycpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJyhhICsgYikgPDw9IGMnKSBpcyAnKGEgKyBiKSA8PD0gYycKIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSArIChiIDw8PSBjKScpIGlzICdhICsgKGIgPDw9IGMpJwogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCdhID4+PSBiID4+PSBjJykgaXMgJ2EgPj49IGIgPj49IGMnCiBQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID4+PSBiKSA+Pj0gYycpIGlzICcoYSA+Pj0gYikg
Pj49IGMnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPj49IChiID4+PSBjKScpIGlzICdh
ID4+PSBiID4+PSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+PSAoYiA+Pj0gYykn
KSBpcyAnYSA+Pj0gKGIgPj49IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID0gYiA+
Pj0gYycpIGlzICdhID0gYiA+Pj0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPSBi
KSA+Pj0gYycpIGlzICcoYSA9IGIpID4+PSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgPj49IGMpJykgaXMgJ2EgPSBiID4+PSBjJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCdhID0gKGIgPj49IGMpJykgaXMgJ2EgPSAoYiA+Pj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgPj49IGIgKyBjJykgaXMgJ2EgPj49IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCcoYSA+Pj0gYikgKyBjJykgaXMgJyhhID4+PSBiKSArIGMnCi1QQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ2EgPj49IChiICsgYyknKSBpcyAnYSA+Pj0gYiArIGMnCitQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPj49IChiICsgYyknKSBpcyAnYSA+Pj0gKGIgKyBjKScKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgPj49IGMnKSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArIGIpID4+
PSBjJykgaXMgJyhhICsgYikgPj49IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAo
YiA+Pj0gYyknKSBpcyAnYSArIChiID4+PSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA+Pj49IGIgPj4+PSBjJykgaXMgJ2EgPj4+PSBiID4+Pj0gYycKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKGEgPj4+PSBiKSA+Pj49IGMnKSBpcyAnKGEgPj4+PSBiKSA+Pj49IGMnCi1QQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPj4+PSAoYiA+Pj49IGMpJykgaXMgJ2EgPj4+PSBiID4+
Pj0gYycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA+Pj49IChiID4+Pj0gYyknKSBpcyAn
YSA+Pj49IChiID4+Pj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSBiID4+Pj0g
YycpIGlzICdhID0gYiA+Pj49IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhID0gYikg
Pj4+PSBjJykgaXMgJyhhID0gYikgPj4+PSBjJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgPj4+PSBjKScpIGlzICdhID0gYiA+Pj49IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJ2EgPSAoYiA+Pj49IGMpJykgaXMgJ2EgPSAoYiA+Pj49IGMpJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCdhID4+Pj0gYiArIGMnKSBpcyAnYSA+Pj49IGIgKyBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcoYSA+Pj49IGIpICsgYycpIGlzICcoYSA+Pj49IGIpICsgYycKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA+Pj49IChiICsgYyknKSBpcyAnYSA+Pj49IGIgKyBjJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+Pj0gKGIgKyBjKScpIGlzICdhID4+Pj0gKGIg
KyBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgPj4+PSBjJykgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKGEgKyBiKSA+Pj49IGMnKSBpcyAnKGEgKyBiKSA+Pj49IGMnCiBQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJ2EgKyAoYiA+Pj49IGMpJykgaXMgJ2EgKyAoYiA+Pj49IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhICY9IGIgJj0gYycpIGlzICdhICY9IGIgJj0gYycKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgJj0gYikgJj0gYycpIGlzICcoYSAmPSBiKSAmPSBjJwotUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhICY9IChiICY9IGMpJykgaXMgJ2EgJj0gYiAmPSBjJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICY9IChiICY9IGMpJykgaXMgJ2EgJj0gKGIgJj0g
YyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSBiICY9IGMnKSBpcyAnYSA9IGIgJj0g
YycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPSBiKSAmPSBjJykgaXMgJyhhID0gYikg
Jj0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiICY9IGMpJykgaXMgJ2EgPSBi
ICY9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiAmPSBjKScpIGlzICdhID0g
KGIgJj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJj0gYiArIGMnKSBpcyAnYSAm
PSBiICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgJj0gYikgKyBjJykgaXMgJyhh
ICY9IGIpICsgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAmPSAoYiArIGMpJykgaXMg
J2EgJj0gYiArIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJj0gKGIgKyBjKScpIGlz
ICdhICY9IChiICsgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiICY9IGMnKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSArIGIpICY9IGMnKSBpcyAnKGEgKyBiKSAmPSBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhICsgKGIgJj0gYyknKSBpcyAnYSArIChiICY9IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhIF49IGIgXj0gYycpIGlzICdhIF49IGIgXj0gYycKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgXj0gYikgXj0gYycpIGlzICcoYSBePSBiKSBePSBjJwotUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhIF49IChiIF49IGMpJykgaXMgJ2EgXj0gYiBePSBjJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIF49IChiIF49IGMpJykgaXMgJ2EgXj0gKGIgXj0g
YyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSBiIF49IGMnKSBpcyAnYSA9IGIgXj0g
YycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPSBiKSBePSBjJykgaXMgJyhhID0gYikg
Xj0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiIF49IGMpJykgaXMgJ2EgPSBi
IF49IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiBePSBjKScpIGlzICdhID0g
KGIgXj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgXj0gYiArIGMnKSBpcyAnYSBe
PSBiICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgXj0gYikgKyBjJykgaXMgJyhh
IF49IGIpICsgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBePSAoYiArIGMpJykgaXMg
J2EgXj0gYiArIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgXj0gKGIgKyBjKScpIGlz
ICdhIF49IChiICsgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiIF49IGMnKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSArIGIpIF49IGMnKSBpcyAnKGEgKyBiKSBePSBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhICsgKGIgXj0gYyknKSBpcyAnYSArIChiIF49IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhIHw9IGIgfD0gYycpIGlzICdhIHw9IGIgfD0gYycKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgfD0gYikgfD0gYycpIGlzICcoYSB8PSBiKSB8PSBjJwotUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCdhIHw9IChiIHw9IGMpJykgaXMgJ2EgfD0gYiB8PSBjJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIHw9IChiIHw9IGMpJykgaXMgJ2EgfD0gKGIgfD0g
YyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSBiIHw9IGMnKSBpcyAnYSA9IGIgfD0g
YycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPSBiKSB8PSBjJykgaXMgJyhhID0gYikg
fD0gYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiIHw9IGMpJykgaXMgJ2EgPSBi
IHw9IGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiB8PSBjKScpIGlzICdhID0g
KGIgfD0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgfD0gYiArIGMnKSBpcyAnYSB8
PSBiICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgfD0gYikgKyBjJykgaXMgJyhh
IHw9IGIpICsgYycKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSB8PSAoYiArIGMpJykgaXMg
J2EgfD0gYiArIGMnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgfD0gKGIgKyBjKScpIGlz
ICdhIHw9IChiICsgYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiIHw9IGMnKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSArIGIpIHw9IGMnKSBpcyAnKGEgKyBiKSB8PSBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhICsgKGIgfD0gYyknKSBpcyAnYSArIChiIHw9IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdkZWxldGUgYSArIGInKSBpcyAnZGVsZXRlIGEgKyBiJwotUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCcoZGVsZXRlIGEpICsgYicpIGlzICdkZWxldGUgYSArIGInCitQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhkZWxldGUgYSkgKyBiJykgaXMgJyhkZWxldGUgYSkg
KyBiJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdkZWxldGUgKGEgKyBiKScpIGlzICdkZWxl
dGUgKGEgKyBiKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIWRlbGV0ZSBhJykgaXMgJyFk
ZWxldGUgYScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIShkZWxldGUgYSknKSBpcyAnIWRl
bGV0ZSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchKGRlbGV0ZSBhKScpIGlzICchKGRl
bGV0ZSBhKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgndm9pZCBhICsgYicpIGlzICd2b2lk
IGEgKyBiJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcodm9pZCBhKSArIGInKSBpcyAndm9p
ZCBhICsgYicKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKHZvaWQgYSkgKyBiJykgaXMgJyh2
b2lkIGEpICsgYicKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgndm9pZCAoYSArIGIpJykgaXMg
J3ZvaWQgKGEgKyBiKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIXZvaWQgYScpIGlzICch
dm9pZCBhJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchKHZvaWQgYSknKSBpcyAnIXZvaWQg
YScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnISh2b2lkIGEpJykgaXMgJyEodm9pZCBhKScK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgndHlwZW9mIGEgKyBiJykgaXMgJ3R5cGVvZiBhICsg
YicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKHR5cGVvZiBhKSArIGInKSBpcyAndHlwZW9m
IGEgKyBiJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcodHlwZW9mIGEpICsgYicpIGlzICco
dHlwZW9mIGEpICsgYicKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgndHlwZW9mIChhICsgYikn
KSBpcyAndHlwZW9mIChhICsgYiknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyF0eXBlb2Yg
YScpIGlzICchdHlwZW9mIGEnCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyEodHlwZW9mIGEp
JykgaXMgJyF0eXBlb2YgYScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnISh0eXBlb2YgYSkn
KSBpcyAnISh0eXBlb2YgYSknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJysrYSArIGInKSBp
cyAnKythICsgYicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKCsrYSkgKyBiJykgaXMgJysr
YSArIGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygrK2EpICsgYicpIGlzICcoKythKSAr
IGInCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJysrKGEgKyBiKScpIGlzICcrKyhhICsgYikn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyErK2EnKSBpcyAnISsrYScKLVBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnISgrK2EpJykgaXMgJyErK2EnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyEoKythKScpIGlzICchKCsrYSknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJy0tYSAr
IGInKSBpcyAnLS1hICsgYicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0tYSkgKyBiJykg
aXMgJy0tYSArIGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygtLWEpICsgYicpIGlzICco
LS1hKSArIGInCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJy0tKGEgKyBiKScpIGlzICctLShh
ICsgYiknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyEtLWEnKSBpcyAnIS0tYScKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnISgtLWEpJykgaXMgJyEtLWEnCitQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJyEoLS1hKScpIGlzICchKC0tYSknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
JysgYSArIGInKSBpcyAnKyBhICsgYicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKCsgYSkg
KyBiJykgaXMgJysgYSArIGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygrIGEpICsgYicp
IGlzICcoKyBhKSArIGInCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJysgKGEgKyBiKScpIGlz
ICcrIChhICsgYiknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyErIGEnKSBpcyAnISsgYScK
LVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnISgrIGEpJykgaXMgJyErIGEnCitQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyEoKyBhKScpIGlzICchKCsgYSknCiBQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJy0gYSArIGInKSBpcyAnLSBhICsgYicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KC0gYSkgKyBiJykgaXMgJy0gYSArIGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygtIGEp
ICsgYicpIGlzICcoLSBhKSArIGInCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJy0gKGEgKyBi
KScpIGlzICctIChhICsgYiknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyEtIGEnKSBpcyAn
IS0gYScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnISgtIGEpJykgaXMgJyEtIGEnCitQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJyEoLSBhKScpIGlzICchKC0gYSknCiBQQVNTIGNvbXBpbGVB
bmRTZXJpYWxpemUoJ35hICsgYicpIGlzICd+YSArIGInCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJyh+YSkgKyBiJykgaXMgJ35hICsgYicKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKH5h
KSArIGInKSBpcyAnKH5hKSArIGInCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ34oYSArIGIp
JykgaXMgJ34oYSArIGIpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchfmEnKSBpcyAnIX5h
JwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchKH5hKScpIGlzICchfmEnCitQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyEofmEpJykgaXMgJyEofmEpJwogUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCchYSArIGInKSBpcyAnIWEgKyBiJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoIWEp
ICsgYicpIGlzICchYSArIGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyghYSkgKyBiJykg
aXMgJyghYSkgKyBiJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchKGEgKyBiKScpIGlzICch
KGEgKyBiKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnISFhJykgaXMgJyEhYScKLVBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnISghYSknKSBpcyAnISFhJworUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCchKCFhKScpIGlzICchKCFhKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIWEr
KycpIGlzICchYSsrJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCchKGErKyknKSBpcyAnIWEr
KycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIShhKyspJykgaXMgJyEoYSsrKScKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKCFhKSsrJykgaXMgJyghYSkrKycKIFBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnIWEtLScpIGlzICchYS0tJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCch
KGEtLSknKSBpcyAnIWEtLScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnIShhLS0pJykgaXMg
JyEoYS0tKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKCFhKS0tJykgaXMgJyghYSktLScK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKVthXScpIGlzICcoLTEpW2FdJwogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCcoLTEpW2FdID0gYicpIGlzICcoLTEpW2FdID0gYicKQEAgLTQy
OCwxMyArNDI4LDEzIEBAIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0gMCkuYSArPSBiJykK
IFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0gMCkuYSsrJykgaXMgJygtIDApLmErKycKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKysoLSAwKS5hJykgaXMgJysrKC0gMCkuYScKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0gMCkuYSgpJykgaXMgJygtIDApLmEoKScKLVBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdJykgaXMgJzFbYV0nCi1QQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJygxKVthXSA9IGInKSBpcyAnMVthXSA9IGInCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emUoJygxKVthXSArPSBiJykgaXMgJzFbYV0gKz0gYicKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKDEpW2FdKysnKSBpcyAnMVthXSsrJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcrKygx
KVthXScpIGlzICcrKzFbYV0nCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXSgpJykg
aXMgJzFbYV0oKScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnbmV3ICgxKSgpJykgaXMgJ25l
dyAxKCknCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXScpIGlzICcoMSlbYV0nCitQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXSA9IGInKSBpcyAnKDEpW2FdID0gYicKK1BB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdICs9IGInKSBpcyAnKDEpW2FdICs9IGInCitQ
QVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXSsrJykgaXMgJygxKVthXSsrJworUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCcrKygxKVthXScpIGlzICcrKygxKVthXScKK1BBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKDEpW2FdKCknKSBpcyAnKDEpW2FdKCknCitQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJ25ldyAoMSkoKScpIGlzICduZXcgKDEpKCknCiBQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJygxKS5hJykgaXMgJygxKS5hJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoMSku
YSA9IGInKSBpcyAnKDEpLmEgPSBiJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoMSkuYSAr
PSBiJykgaXMgJygxKS5hICs9IGInCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL21vZGlmeS1u
b24tcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9tb2RpZnktbm9uLXJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMzAyNCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvbW9kaWZ5LW5vbi1yZWZlcmVuY2VzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKLVBBU1MgZnVuY3Rpb24gZigpIHsgZygp
Kys7IH0gZi50b1N0cmluZygpIGlzICdmdW5jdGlvbiBmKCkgXG57XG4gIGcoKSsrO1xufScKLVBB
U1MgZnVuY3Rpb24gZigpIHsgZygpLS07IH0gZi50b1N0cmluZygpIGlzICdmdW5jdGlvbiBmKCkg
XG57XG4gIGcoKS0tO1xufScKLVBBU1MgZnVuY3Rpb24gZigpIHsgKytnKCk7IH0gZi50b1N0cmlu
ZygpIGlzICdmdW5jdGlvbiBmKCkgXG57XG4gICsrZygpO1xufScKLVBBU1MgZnVuY3Rpb24gZigp
IHsgLS1nKCk7IH0gZi50b1N0cmluZygpIGlzICdmdW5jdGlvbiBmKCkgXG57XG4gIC0tZygpO1xu
fScKLVBBU1MgZnVuY3Rpb24gZigpIHsgZygpID0gMTsgfSBmLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0
aW9uIGYoKSBcbntcbiAgZygpID0gMTtcbn0nCi1QQVNTIGZ1bmN0aW9uIGYoKSB7IGcoKSArPSAx
OyB9IGYudG9TdHJpbmcoKSBpcyAnZnVuY3Rpb24gZigpIFxue1xuICBnKCkgKz0gMTtcbn0nCitQ
QVNTIGZ1bmN0aW9uIGYoKSB7IGcoKSsrOyB9IGYudG9TdHJpbmcoKSBpcyAnZnVuY3Rpb24gZigp
IHsgZygpKys7IH0nCitQQVNTIGZ1bmN0aW9uIGYoKSB7IGcoKS0tOyB9IGYudG9TdHJpbmcoKSBp
cyAnZnVuY3Rpb24gZigpIHsgZygpLS07IH0nCitQQVNTIGZ1bmN0aW9uIGYoKSB7ICsrZygpOyB9
IGYudG9TdHJpbmcoKSBpcyAnZnVuY3Rpb24gZigpIHsgKytnKCk7IH0nCitQQVNTIGZ1bmN0aW9u
IGYoKSB7IC0tZygpOyB9IGYudG9TdHJpbmcoKSBpcyAnZnVuY3Rpb24gZigpIHsgLS1nKCk7IH0n
CitQQVNTIGZ1bmN0aW9uIGYoKSB7IGcoKSA9IDE7IH0gZi50b1N0cmluZygpIGlzICdmdW5jdGlv
biBmKCkgeyBnKCkgPSAxOyB9JworUEFTUyBmdW5jdGlvbiBmKCkgeyBnKCkgKz0gMTsgfSBmLnRv
U3RyaW5nKCkgaXMgJ2Z1bmN0aW9uIGYoKSB7IGcoKSArPSAxOyB9JwogUEFTUyBnKCkrKyB0aHJl
dyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0
byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCiBQQVNTIGcoKS0tIHRocmV3IGV4Y2Vw
dGlvbiBSZWZlcmVuY2VFcnJvcjogUG9zdGZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVl
IHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KIFBBU1MgKytnKCkgdGhyZXcgZXhjZXB0aW9uIFJl
ZmVyZW5jZUVycm9yOiBQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlz
IG5vdCBhIHJlZmVyZW5jZS4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLXBy
ZWZpeC1wb3N0Zml4LXByZXNlcnZlLXBhcmVucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJl
bnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMzAyNCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMv
dG9TdHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNCw1NSArNCw1NSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBCiAKIAogUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihwcmVmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVucykpKSBpcyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFy
ZW5zKQotUEFTUyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKS5pbmRleE9m
KCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgLy4qXCgreFwpKiwgeVwpLy50ZXN0KHVuZXZh
bGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpKSBpcyB0cnVlCiBQQVNTIHByZWZpeF9z
aG91bGRfcHJlc2VydmVfcGFyZW5zKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNl
RXJyb3I6IFByZWZpeCArKyBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEg
cmVmZXJlbmNlLi4KIFBBU1MgZXZhbCh1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFy
ZW5zKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUHJlZml4ICsr
IG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFT
UyB1bmV2YWxmKGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpKSkg
aXMgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpCi1QQVNTIHVuZXZhbGYo
cG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlz
IHRydWUKK1BBU1MgLy4qXCgreFwpKiwgeVwpLy50ZXN0KHVuZXZhbGYocG9zdGZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zKSkgaXMgdHJ1ZQogUEFTUyBwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUG9zdGZpeCAr
KyBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KIFBB
U1MgZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpKDEsIDIsIDMp
OyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBw
bGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCiBQQVNTIHVuZXZhbGYoZXZh
bCh1bmV2YWxmKGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpKSBpcyB1bmV2YWxmKGJvdGhf
c2hvdWxkX3ByZXNlcnZlX3BhcmVucykKLVBBU1MgdW5ldmFsZihib3RoX3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnMpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyAvLipcKCt4XCkq
LCB5XCkvLnRlc3QodW5ldmFsZihib3RoX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpKSBpcyB0cnVl
CiBQQVNTIGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucygxLCAyLCAzKTsgdGhyZXcgZXhjZXB0
aW9uIFJlZmVyZW5jZUVycm9yOiBQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0
aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCiBQQVNTIGV2YWwodW5ldmFsZihib3RoX3Nob3VsZF9w
cmVzZXJ2ZV9wYXJlbnMpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9y
OiBQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVy
ZW5jZS4uCiBQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVf
cGFyZW5zX211bHRpKSkpIGlzIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkpCi1QQVNTIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkp
LmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyAvLipcKCt4XCkqLCB5XCkvLnRl
c3QodW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpIGlzIHRydWUK
IFBBU1MgcHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoMSwgMiwgMyk7IHRocmV3
IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8g
dmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFTUyBldmFsKHVuZXZhbGYocHJlZml4
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9u
IFJlZmVyZW5jZUVycm9yOiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0
IGlzIG5vdCBhIHJlZmVyZW5jZS4uCiBQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHBvc3RmaXhf
c2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpKSBpcyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuc19tdWx0aSkKLVBBU1MgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnNfbXVsdGkpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyAv
LipcKCt4XCkqLCB5XCkvLnRlc3QodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnNfbXVsdGkpKSBpcyB0cnVlCiBQQVNTIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQb3N0Zml4IC0t
IG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFT
UyBldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKSkoMSwg
MiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUG9zdGZpeCAtLSBvcGVyYXRv
ciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KIFBBU1MgdW5ldmFs
ZihldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkxKSkpIGlz
IHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkxKQotUEFTUyB1bmV2
YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSkuaW5kZXhPZignKHgsIHkp
JykgPj0gMCBpcyB0cnVlCitQQVNTIC8uKlwoK3hcKSosIHlcKS8udGVzdCh1bmV2YWxmKHByZWZp
eF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSkpIGlzIHRydWUKIFBBU1MgcHJlZml4X3No
b3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkxKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVm
ZXJlbmNlRXJyb3I6IFByZWZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMg
bm90IGEgcmVmZXJlbmNlLi4KIFBBU1MgZXZhbCh1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpMSkpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJy
b3I6IFByZWZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVm
ZXJlbmNlLi4KIFBBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpMSkpKSBpcyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aTEpCi1QQVNTIHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5z
X211bHRpMSkuaW5kZXhPZignKHgsIHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIC8uKlwoK3hcKSos
IHlcKS8udGVzdCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEp
KSBpcyB0cnVlCiBQQVNTIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEoMSwg
MiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUG9zdGZpeCAtLSBvcGVyYXRv
ciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KIFBBU1MgZXZhbCh1
bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEpKSgxLCAyLCAzKTsg
dGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxp
ZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFTUyB1bmV2YWxmKGV2YWwo
dW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTIpKSkgaXMgdW5ldmFs
ZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTIpCi1QQVNTIHVuZXZhbGYocHJl
Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkyKS5pbmRleE9mKCcoeCwgeSknKSA+PSAw
IGlzIHRydWUKK1BBU1MgLy4qXCgreFwpKiwgeVwpLy50ZXN0KHVuZXZhbGYocHJlZml4X3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkyKSkgaXMgdHJ1ZQogUEFTUyBwcmVmaXhfc2hvdWxkX3By
ZXNlcnZlX3BhcmVuc19tdWx0aTIoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VF
cnJvcjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSBy
ZWZlcmVuY2UuLgogUEFTUyBldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnNfbXVsdGkyKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUHJl
Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2Uu
LgogUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnNfbXVsdGkyKSkpIGlzIHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211
bHRpMikKLVBBU1MgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGky
KS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgLy4qXCgreFwpKiwgeVwpLy50
ZXN0KHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMikpIGlzIHRy
dWUKIFBBU1MgcG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMigxLCAyLCAzKTsg
dGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQb3N0Zml4ICsrIG9wZXJhdG9yIGFwcGxp
ZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFTUyBldmFsKHVuZXZhbGYo
cG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMikpKDEsIDIsIDMpOyB0aHJldyBl
eGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2
YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCiBQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxm
KHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkpIGlzIHVuZXZhbGYodHlwZW9mX3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnMpCi1QQVNTIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyAvLipcKCt4XCkqLCB5
XCkvLnRlc3QodW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpIGlzIHRydWUK
IFBBU1MgdHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoJ2EnLCAxKTsgaXMgJ251bWJlcicK
IFBBU1MgZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkoJ2EnLCAx
KTsgaXMgJ251bWJlcicKIFBBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYodHlwZW9mX3Nob3VsZF9w
cmVzZXJ2ZV9wYXJlbnMxKSkpIGlzIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnMxKQotUEFTUyB1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMSkuaW5kZXhP
ZignKHgsIHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIC8uKlwoK3hcKSosIHlcKS8udGVzdCh1bmV2
YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMSkpIGlzIHRydWUKIFBBU1MgdHlwZW9m
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMxKCdhJywgMSk7IGlzICdudW1iZXInCiBQQVNTIGV2YWwo
dW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczEpKSgnYScsIDEpOyBpcyAnbnVt
YmVyJwogUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuczIpKSkgaXMgdW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczIpCi1QQVNT
IHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMyKS5pbmRleE9mKCcoeCwgeSkn
KSA+PSAwIGlzIHRydWUKK1BBU1MgLy4qXCgreFwpKiwgeVwpLy50ZXN0KHVuZXZhbGYodHlwZW9m
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMyKSkgaXMgdHJ1ZQogUEFTUyB0eXBlb2Zfc2hvdWxkX3By
ZXNlcnZlX3BhcmVuczIoJ2EnLCAxKTsgaXMgJ251bWJlcicKIFBBU1MgZXZhbCh1bmV2YWxmKHR5
cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMikpKCdhJywgMSk7IGlzICdudW1iZXInCiBQQVNT
IHVuZXZhbGYoZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRp
KSkpIGlzIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpCi1QQVNT
IHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpLmluZGV4T2YoJyh4
LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyAvLipcKCt4XCkqLCB5XCkvLnRlc3QodW5ldmFsZih0
eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpIGlzIHRydWUKIFBBU1MgdHlwZW9m
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoJ2EnLCAxKTsgaXMgJ251bWJlcicKIFBBU1Mg
ZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKSkoJ2EnLCAx
KTsgaXMgJ251bWJlcicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMva2RlL2x2YWwtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvbHZhbC1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMzMwMjQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9sdmFsLWV4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDM1ICszLDE0IEBAIEtE
RSBKUyBUZXN0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBmdW5jdGlvbiAo
KSAKLXsKLSAgYSA9IHg7Ci19IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogeC4KLVBBU1MgZnVuY3Rpb24gKCkgCi17Ci0gIHggKz0gImZvbyI7Ci19
IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogeC4K
LVBBU1MgZnVuY3Rpb24gKCkgCi17Ci0gIGIgPSBhLng7Ci19IGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uCi1QQVNTIGZ1bmN0aW9uICgpIAotewotICBiID0gYVsieCJdOwotfSBkaWQgbm90IHRo
cm93IGFuIGV4Y2VwdGlvbgotUEFTUyBmdW5jdGlvbiAoKSAKLXsKLSAgYVsieCJdICs9ICJiYXoi
OwotfSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgorUEFTUyBmdW5jdGlvbiAoKSB7IGEgPSB4
OyB9IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
eC4KK1BBU1MgZnVuY3Rpb24gKCkgeyB4ICs9ICJmb28iOyB9IHRocmV3IGV4Y2VwdGlvbiBSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogeC4KK1BBU1MgZnVuY3Rpb24gKCkgeyBi
ID0gYS54OyB9IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCitQQVNTIGZ1bmN0aW9uICgpIHsg
YiA9IGFbJ3gnXTsgfSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgorUEFTUyBmdW5jdGlvbiAo
KSB7IGFbJ3gnXSArPSAnYmF6JzsgfSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgogUEFTUyBh
Wyd4J10gaXMgInVuZGVmaW5lZGJheiIKLVBBU1MgZnVuY3Rpb24gKCkgCi17Ci0gIGIgPSBhLnk7
Ci19IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCi1QQVNTIGZ1bmN0aW9uICgpIAotewotICBh
LnkgKz0gImdsYXJjaCI7Ci19IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCitQQVNTIGZ1bmN0
aW9uICgpIHsgYiA9IGEueTsgfSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgorUEFTUyBmdW5j
dGlvbiAoKSB7IGEueSArPSAnZ2xhcmNoJzsgfSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbgog
UEFTUyBhWyd5J10gaXMgInVuZGVmaW5lZGdsYXJjaCIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24t
bmFtZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVu
Y3Rpb24tbmFtZXMuanMJKHJldmlzaW9uIDMzMDI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZXNvdXJjZXMvZnVuY3Rpb24tbmFtZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsOSArMiw5IEBA
IGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIG5hbWVzIG9mIGFsbCBzb3J0cyBv
ZiBkaWZmZXJlbnQgZnVuY3Rpb25zLiIKICk7CiAKLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5z
ZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAicmV0dXJuIDIiKTsKK2RvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiIHJldHVybiAyOyAiKTsKIAotc2hvdWxkQmUo
Im5ldyBGdW5jdGlvbigncmV0dXJuIDEnKS50b1N0cmluZygpLnJlcGxhY2UoL1sgXFxuXSsvZywg
JyAnKSIsICInZnVuY3Rpb24gYW5vbnltb3VzKCkgeyByZXR1cm4gMTsgfSciKTsKK3Nob3VsZEJl
KCJuZXcgRnVuY3Rpb24oJyByZXR1cm4gMTsgJykudG9TdHJpbmcoKS5yZXBsYWNlKC9bIFxcbl0r
L2csICcgJykiLCAiJ2Z1bmN0aW9uIGFub255bW91cygpIHsgcmV0dXJuIDE7IH0nIik7CiBzaG91
bGRCZSgiZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9uY2xpY2sudG9TdHJpbmcoKS5yZXBsYWNl
KC9bIFxcbl0rL2csICcgJykiLCAiJ2Z1bmN0aW9uIG9uY2xpY2soZXZlbnQpIHsgcmV0dXJuIDI7
IH0nIik7CiAKIHNob3VsZEJlKCInJy5jb25zdHJ1Y3RvciIsICJTdHJpbmciKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2Z1bmN0aW9uLXRvU3RyaW5nLW9iamVjdC1saXRl
cmFscy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9mdW5j
dGlvbi10b1N0cmluZy1vYmplY3QtbGl0ZXJhbHMuanMJKHJldmlzaW9uIDMzMDI0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tdG9TdHJpbmctb2JqZWN0LWxpdGVy
YWxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSwxNyArMTUsMTcgQEAgZnVuY3Rpb24gY29tcGls
ZUFuZFNlcmlhbGl6ZShleHByZXNzaW9uKQogCiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSA9IHsgMTogbnVsbCB9JykiLCAiJ2EgPSB7IDE6IG51bGwgfSciKTsKIHNob3VsZEJlKCJj
b21waWxlQW5kU2VyaWFsaXplKCdhID0geyAwOiBudWxsIH0nKSIsICInYSA9IHsgMDogbnVsbCB9
JyIpOwotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDEuMDogbnVsbCB9Jyki
LCAiJ2EgPSB7IDE6IG51bGwgfSciKTsKK3Nob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0geyAxLjA6IG51bGwgfScpIiwgIidhID0geyAxLjA6IG51bGwgfSciKTsKIHNob3VsZEJlKCJj
b21waWxlQW5kU2VyaWFsaXplKCdhID0geyBcIjEuMFwiOiBudWxsIH0nKSIsICInYSA9IHsgXCIx
LjBcIjogbnVsbCB9JyIpOwotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDFl
LTUwMDogbnVsbCB9JykiLCAiJ2EgPSB7IDA6IG51bGwgfSciKTsKK3Nob3VsZEJlKCJjb21waWxl
QW5kU2VyaWFsaXplKCdhID0geyAxZS01MDA6IG51bGwgfScpIiwgIidhID0geyAxZS01MDA6IG51
bGwgfSciKTsKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCdhID0geyAxZS0zMDA6IG51
bGwgfScpIiwgIidhID0geyAxZS0zMDA6IG51bGwgfSciKTsKLXNob3VsZEJlKCJjb21waWxlQW5k
U2VyaWFsaXplKCdhID0geyAxZTMwMDogbnVsbCB9JykiLCAiJ2EgPSB7IDFlKzMwMDogbnVsbCB9
JyIpOwotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDFlNTAwOiBudWxsIH0n
KSIsICInYSA9IHsgXCJJbmZpbml0eVwiOiBudWxsIH0nIik7CitzaG91bGRCZSgiY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnYSA9IHsgMWUzMDA6IG51bGwgfScpIiwgIidhID0geyAxZTMwMDogbnVsbCB9
JyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IDFlNTAwOiBudWxsIH0n
KSIsICInYSA9IHsgMWU1MDA6IG51bGwgfSciKTsKIAotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgPSB7IE5hTjogbnVsbCB9JykiLCAiJ2EgPSB7IFwiTmFOXCI6IG51bGwgfSciKTsK
LXNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCdhID0geyBJbmZpbml0eTogbnVsbCB9Jyki
LCAiJ2EgPSB7IFwiSW5maW5pdHlcIjogbnVsbCB9JyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRT
ZXJpYWxpemUoJ2EgPSB7IE5hTjogbnVsbCB9JykiLCAiJ2EgPSB7IE5hTjogbnVsbCB9JyIpOwor
c2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IEluZmluaXR5OiBudWxsIH0nKSIs
ICInYSA9IHsgSW5maW5pdHk6IG51bGwgfSciKTsKIAotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgPSB7IFwiMVwiOiBudWxsIH0nKSIsICInYSA9IHsgMTogbnVsbCB9JyIpOworc2hv
dWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IFwiMVwiOiBudWxsIH0nKSIsICInYSA9
IHsgXCIxXCI6IG51bGwgfSciKTsKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCdhID0g
eyBcIjFoaVwiOiBudWxsIH0nKSIsICInYSA9IHsgXCIxaGlcIjogbnVsbCB9JyIpOwogc2hvdWxk
QmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSB7IFwiXFxcJ1wiOiBudWxsIH0nKSIsICInYSA9
IHsgXCJcXFwnXCI6IG51bGwgfSciKTsKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0geyBcIlxcXFxcIlwiOiBudWxsIH0nKSIsICInYSA9IHsgXCJcXFxcXCJcIjogbnVsbCB9JyIp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tdG9TdHJpbmct
cGFyZW50aGVzZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50aGVzZXMuanMJKHJldmlzaW9uIDMzMDI0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50aGVz
ZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gdGVzdEhpZ2hl
ckZpcnN0KG9wSGlnaGVyLCBvcExvdwogICAgIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSAiICsgb3BIaWdoZXIgKyAiIGIpICIgKyBvcExvd2VyICsgIiBjJykiLAogICAgICAgICBy
ZW1vdmVzRXh0cmFQYXJlbnRoZXNlcwogICAgICAgICAgICAgPyAiJ2EgIiArIG9wSGlnaGVyICsg
IiBiICIgKyBvcExvd2VyICsgIiBjJyIKLSAgICAgICAgICAgIDogIidhICIgKyBvcEhpZ2hlciAr
ICIgKGIgIiArIG9wTG93ZXIgKyAiIGMpJyIKKyAgICAgICAgICAgIDogIicoYSAiICsgb3BIaWdo
ZXIgKyAiIGIpICIgKyBvcExvd2VyICsgIiBjJyIKICAgICApOwogICAgIHNob3VsZEJlKCJjb21w
aWxlQW5kU2VyaWFsaXplKCdhICIgKyBvcEhpZ2hlciArICIgKGIgIiArIG9wTG93ZXIgKyAiIGMp
JykiLAogICAgICAgICAiJ2EgIiArIG9wSGlnaGVyICsgIiAoYiAiICsgb3BMb3dlciArICIgYykn
Iik7CkBAIC0xMjUsMTcgKzEyNSwyMSBAQCB2YXIgcHJlZml4T3BlcmF0b3JTcGFjZSA9IFsgIiAi
LCAiICIsICIgCiBmb3IgKGkgPSAwOyBpIDwgcHJlZml4T3BlcmF0b3JzLmxlbmd0aDsgKytpKSB7
CiAgICAgdmFyIG9wID0gcHJlZml4T3BlcmF0b3JzW2ldICsgcHJlZml4T3BlcmF0b3JTcGFjZVtp
XTsKICAgICBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnIiArIG9wICsgImEgKyBiJyki
LCAiJyIgKyBvcCArICJhICsgYiciKTsKLSAgICBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKCIgKyBvcCArICJhKSArIGInKSIsICInIiArIG9wICsgImEgKyBiJyIpOworICAgIHNob3Vs
ZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcoIiArIG9wICsgImEpICsgYicpIiwgCisgICAgICAg
ICAgICAgcmVtb3Zlc0V4dHJhUGFyZW50aGVzZXMgPworICAgICAgICAgICAgICInIiArIG9wICsg
ImEgKyBiJyIgOgorICAgICAgICAgICAgICInKCIgKyBvcCArICJhKSArIGInIik7CiAgICAgc2hv
dWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJyIgKyBvcCArICIoYSArIGIpJykiLCAiJyIgKyBv
cCArICIoYSArIGIpJyIpOwogICAgIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCchIiAr
IG9wICsgImEnKSIsICInISIgKyBvcCArICJhJyIpOwotICAgIHNob3VsZEJlKCJjb21waWxlQW5k
U2VyaWFsaXplKCchKCIgKyBvcCArICJhKScpIiwgIichIiArIG9wICsgImEnIik7CisgICAgc2hv
dWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJyEoIiArIG9wICsgImEpJykiLCAKKyAgICAgICAg
ICAgICByZW1vdmVzRXh0cmFQYXJlbnRoZXNlcyA/ICInISIgKyBvcCArICJhJyIgOiAiJyEoIiAr
IG9wICsgImEpJyIpOwogfQogCiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnIWErKycp
IiwgIichYSsrJyIpOwotc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJyEoYSsrKScpIiwg
IichYSsrJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJyEoYSsrKScpIiwgcmVt
b3Zlc0V4dHJhUGFyZW50aGVzZXMgPyAiJyFhKysnIiA6ICInIShhKyspJyIgKTsKIHNob3VsZEJl
KCJjb21waWxlQW5kU2VyaWFsaXplKCcoIWEpKysnKSIsICInKCFhKSsrJyIpOwogc2hvdWxkQmUo
ImNvbXBpbGVBbmRTZXJpYWxpemUoJyFhLS0nKSIsICInIWEtLSciKTsKLXNob3VsZEJlKCJjb21w
aWxlQW5kU2VyaWFsaXplKCchKGEtLSknKSIsICInIWEtLSciKTsKK3Nob3VsZEJlKCJjb21waWxl
QW5kU2VyaWFsaXplKCchKGEtLSknKSIsIHJlbW92ZXNFeHRyYVBhcmVudGhlc2VzID8gIichYS0t
JyIgOiAiJyEoYS0tKSciKTsKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcoIWEpLS0n
KSIsICInKCFhKS0tJyIpOwogCiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKVth
XScpIiwgIicoLTEpW2FdJyIpOwpAQCAtMTcwLDE0ICsxNzQsMTQgQEAgc2hvdWxkQmUoImNvbXBp
bGVBbmRTZXJpYWxpemUoJygtIDApLmErKwogc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUo
JysrKC0gMCkuYScpIiwgIicrKygtIDApLmEnIik7CiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlh
bGl6ZSgnKC0gMCkuYSgpJykiLCAiJygtIDApLmEoKSciKTsKIAotc2hvdWxkQmUoImNvbXBpbGVB
bmRTZXJpYWxpemUoJygxKVthXScpIiwgIicxW2FdJyIpOwotc2hvdWxkQmUoImNvbXBpbGVBbmRT
ZXJpYWxpemUoJygxKVthXSA9IGInKSIsICInMVthXSA9IGInIik7Ci1zaG91bGRCZSgiY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKDEpW2FdICs9IGInKSIsICInMVthXSArPSBiJyIpOwotc2hvdWxkQmUo
ImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXSsrJykiLCAiJzFbYV0rKyciKTsKLXNob3VsZEJl
KCJjb21waWxlQW5kU2VyaWFsaXplKCcrKygxKVthXScpIiwgIicrKzFbYV0nIik7Ci1zaG91bGRC
ZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdKCknKSIsICInMVthXSgpJyIpOworc2hvdWxk
QmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXScpIiwgcmVtb3Zlc0V4dHJhUGFyZW50aGVz
ZXMgPyAiJzFbYV0nIiA6ICInKDEpW2FdJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxp
emUoJygxKVthXSA9IGInKSIsIHJlbW92ZXNFeHRyYVBhcmVudGhlc2VzID8gIicxW2FdID0gYici
IDogIicoMSlbYV0gPSBiJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVth
XSArPSBiJykiLCByZW1vdmVzRXh0cmFQYXJlbnRoZXNlcyA/ICInMVthXSArPSBiJyIgOiAiJygx
KVthXSArPSBiJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKVthXSsrJyki
LCByZW1vdmVzRXh0cmFQYXJlbnRoZXNlcyA/ICInMVthXSsrJyIgOiAiJygxKVthXSsrJyIpOwor
c2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJysrKDEpW2FdJykiLCByZW1vdmVzRXh0cmFQ
YXJlbnRoZXNlcyA/ICInKysxW2FdJyIgOiAiJysrKDEpW2FdJyIpOworc2hvdWxkQmUoImNvbXBp
bGVBbmRTZXJpYWxpemUoJygxKVthXSgpJykiLCByZW1vdmVzRXh0cmFQYXJlbnRoZXNlcyA/ICIn
MVthXSgpJyIgOiAiJygxKVthXSgpJyIpOwogCi1zaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6
ZSgnbmV3ICgxKSgpJykiLCAiJ25ldyAxKCknIik7CitzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlh
bGl6ZSgnbmV3ICgxKSgpJykiLCByZW1vdmVzRXh0cmFQYXJlbnRoZXNlcyA/ICInbmV3IDEoKSci
IDogIiduZXcgKDEpKCknIik7CiAKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcoMSku
YScpIiwgIicoMSkuYSciKTsKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcoMSkuYSA9
IGInKSIsICInKDEpLmEgPSBiJyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvbW9kaWZ5LW5vbi1yZWZlcmVuY2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvcmVzb3VyY2VzL21vZGlmeS1ub24tcmVmZXJlbmNlcy5qcwkocmV2aXNpb24gMzMwMjQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9tb2RpZnktbm9uLXJlZmVyZW5jZXMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACi1zaG91bGRCZSgiZnVuY3Rpb24gZigp
IHsgZygpKys7IH0gZi50b1N0cmluZygpIiwgIidmdW5jdGlvbiBmKCkgXFxue1xcbiAgZygpKys7
XFxufSciKTsKLXNob3VsZEJlKCJmdW5jdGlvbiBmKCkgeyBnKCktLTsgfSBmLnRvU3RyaW5nKCki
LCAiJ2Z1bmN0aW9uIGYoKSBcXG57XFxuICBnKCktLTtcXG59JyIpOwotc2hvdWxkQmUoImZ1bmN0
aW9uIGYoKSB7ICsrZygpOyB9IGYudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gZigpIFxcbntcXG4g
ICsrZygpO1xcbn0nIik7Ci1zaG91bGRCZSgiZnVuY3Rpb24gZigpIHsgLS1nKCk7IH0gZi50b1N0
cmluZygpIiwgIidmdW5jdGlvbiBmKCkgXFxue1xcbiAgLS1nKCk7XFxufSciKTsKLXNob3VsZEJl
KCJmdW5jdGlvbiBmKCkgeyBnKCkgPSAxOyB9IGYudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gZigp
IFxcbntcXG4gIGcoKSA9IDE7XFxufSciKTsKLXNob3VsZEJlKCJmdW5jdGlvbiBmKCkgeyBnKCkg
Kz0gMTsgfSBmLnRvU3RyaW5nKCkiLCAiJ2Z1bmN0aW9uIGYoKSBcXG57XFxuICBnKCkgKz0gMTtc
XG59JyIpOworc2hvdWxkQmUoImZ1bmN0aW9uIGYoKSB7IGcoKSsrOyB9IGYudG9TdHJpbmcoKSIs
ICInZnVuY3Rpb24gZigpIHsgZygpKys7IH0nIik7CitzaG91bGRCZSgiZnVuY3Rpb24gZigpIHsg
ZygpLS07IH0gZi50b1N0cmluZygpIiwgIidmdW5jdGlvbiBmKCkgeyBnKCktLTsgfSciKTsKK3No
b3VsZEJlKCJmdW5jdGlvbiBmKCkgeyArK2coKTsgfSBmLnRvU3RyaW5nKCkiLCAiJ2Z1bmN0aW9u
IGYoKSB7ICsrZygpOyB9JyIpOworc2hvdWxkQmUoImZ1bmN0aW9uIGYoKSB7IC0tZygpOyB9IGYu
dG9TdHJpbmcoKSIsICInZnVuY3Rpb24gZigpIHsgLS1nKCk7IH0nIik7CitzaG91bGRCZSgiZnVu
Y3Rpb24gZigpIHsgZygpID0gMTsgfSBmLnRvU3RyaW5nKCkiLCAiJ2Z1bmN0aW9uIGYoKSB7IGco
KSA9IDE7IH0nIik7CitzaG91bGRCZSgiZnVuY3Rpb24gZigpIHsgZygpICs9IDE7IH0gZi50b1N0
cmluZygpIiwgIidmdW5jdGlvbiBmKCkgeyBnKCkgKz0gMTsgfSciKTsKIHNob3VsZFRocm93KCJn
KCkrKyIsICInUmVmZXJlbmNlRXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2
YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4nIik7CiBzaG91bGRUaHJvdygiZygpLS0iLCAi
J1JlZmVyZW5jZUVycm9yOiBQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhh
dCBpcyBub3QgYSByZWZlcmVuY2UuJyIpOwogc2hvdWxkVGhyb3coIisrZygpIiwgIidSZWZlcmVu
Y2VFcnJvcjogUHJlZml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3Qg
YSByZWZlcmVuY2UuJyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9T
dHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4LXByZXNl
cnZlLXBhcmVucy5qcwkocmV2aXNpb24gMzMwMjQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jl
c291cmNlcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTMsNTYgKzMsNTYgQEAgZGVzY3JpcHRpb24oCiApOwogCiBmdW5jdGlvbiBw
b3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoeCwgeSwgeikgewotICAgICh4LHkpKys7Cisg
ICAgKHgsIHkpKys7CiAgICAgcmV0dXJuIHk7CiB9CiAKIGZ1bmN0aW9uIHByZWZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zKHgsIHksIHopIHsKLSAgICArKyh4LHkpOworICAgICsrKHgsIHkpOwog
ICAgIHJldHVybiB4OwogCiB9CiAKIGZ1bmN0aW9uIGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVu
cyh4LCB5LCB6KSB7Ci0gICAgKysoeCx5KS0tOworICAgICsrKHgsIHkpLS07CiAgICAgcmV0dXJu
IHg7CiAKIH0KIAogZnVuY3Rpb24gcG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRp
KHgsIHksIHopIHsKLSAgICAoKCh4LHkpKSktLTsKKyAgICAoKCh4LCB5KSkpLS07CiAgICAgcmV0
dXJuIHg7CiB9CiAKIGZ1bmN0aW9uIHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRp
KHgsIHksIHopIHsKLSAgICAtLSgoKHgseSkpKTsKKyAgICAtLSgoKHgsIHkpKSk7CiAgICAgcmV0
dXJuIHg7CiB9CiAKIGZ1bmN0aW9uIGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSh4
LCB5LCB6KSB7Ci0gICAgKysoKCh4LHkpKSktLTsKKyAgICArKygoKHgsIHkpKSktLTsKICAgICBy
ZXR1cm4geDsKIH0KIAogZnVuY3Rpb24gcG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211
bHRpMSh4LCB5LCB6KSB7Ci0gICAgKCgoeCkpLHkpLS07CisgICAgKCgoeCkpLCB5KS0tOwogICAg
IHJldHVybiB4OwogfQogCiBmdW5jdGlvbiBwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aTEoeCwgeSwgeikgewotICAgIC0tKCgoeCkpLHkpOworICAgIC0tKCgoeCkpLCB5KTsKICAg
ICByZXR1cm4geDsKIH0KIAogZnVuY3Rpb24gcHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkyKHgsIHksIHopIHsKICAgICB2YXIgeiA9IDA7Ci0gICAgLS0oKCh4KSx5KSx6KTsKKyAg
ICAtLSgoKHgpLCB5KSwgeik7CiAgICAgcmV0dXJuIHg7CiB9CiAKIGZ1bmN0aW9uIHBvc3RmaXhf
c2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTIoeCwgeSwgeikgewogICAgIHZhciB6ID0gMDsK
LSAgICAoKCh4KSx5KSx6KSsrOworICAgICgoKHgpLCB5KSAseikrKzsKICAgICByZXR1cm4geDsK
IH0KIApAQCAtNjAsMjEgKzYwLDIxIEBAIGZ1bmN0aW9uIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZl
X3BhcmVuc18KIC8vIHRoZSByZXN1bHQgb2YgdHlwZW9mLCB0aGlzIG1lYW5zIHRoYXQgdGhlIHBh
cmVudGhlc2lzCiAvLyBnb3QgbG9zdCBzb21ld2hlcmUuCiBmdW5jdGlvbiB0eXBlb2Zfc2hvdWxk
X3ByZXNlcnZlX3BhcmVucyh4LCB5LCB6KSB7Ci0gICAgcmV0dXJuIHR5cGVvZiAoeCx5KTsKKyAg
ICByZXR1cm4gdHlwZW9mICh4LCB5KTsKIH0KIAogZnVuY3Rpb24gdHlwZW9mX3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnMxKHgsIHksIHopIHsKLSAgICByZXR1cm4gdHlwZW9mICgoeCx5KSk7CisgICAg
cmV0dXJuIHR5cGVvZiAoKHgsIHkpKTsKIH0KIAogZnVuY3Rpb24gdHlwZW9mX3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnMyKHgsIHksIHopIHsKICAgICB2YXIgeiA9IDMzOwotICAgIHJldHVybiB0eXBl
b2YgKHosICh4LHkpKTsKKyAgICByZXR1cm4gdHlwZW9mICh6LCAoeCwgeSkpOwogfQogCiBmdW5j
dGlvbiB0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSh4LCB5LCB6KSB7CiAgICAg
dmFyIHogPSAzMzsKLSAgICByZXR1cm4gdHlwZW9mICgoeiwoKCh4LHkpKSkpKTsKKyAgICByZXR1
cm4gdHlwZW9mICgoeiwoKCh4LCB5KSkpKSk7CiB9CiAKIHVuZXZhbGYgPSBmdW5jdGlvbih4KSB7
IHJldHVybiAnKCcgKyB4LnRvU3RyaW5nKCkgKyAnKSc7IH07CkBAIC04Nyw3ICs4Nyw3IEBAIGZ1
bmN0aW9uIHRlc3RUb1N0cmluZyhmbikgewogICAgIC8vIGNoZWNrIHRoYXQgZ3JvdXBpbmcgb3Bl
cmF0b3IgaXMgc3RpbGwgdGhlcmUgKHRoaXMgdGVzdCByZXZlYWxzIHRoZSBidWcKICAgICAvLyBi
dXQgd2lsbCBjcmVhdGUgcG9zc2libGUgZmFsc2UgbmVnYXRpdmUgaWYgdG9TdHJpbmcgb3V0cHV0
IGNoYW5nZXMgaW4KICAgICAvLyB0aGUgZnV0dXJlKQotICAgIHNob3VsZEJlVHJ1ZSgidW5ldmFs
ZigiK2ZuKyIpLmluZGV4T2YoJyh4LCB5KScpID49IDAiKTsKKyAgICBzaG91bGRCZVRydWUoIi8u
KlxcKCt4XFwpKiwgeVxcKS8udGVzdCh1bmV2YWxmKCIrZm4rIikpIik7CiAKIH0KIAo=
</data>
<flag name="review"
          id="9207"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>