<?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>47389</bug_id>
          
          <creation_ts>2010-10-07 18:38:46 -0700</creation_ts>
          <short_desc>IndexedDB does not have a quota mechanism.</short_desc>
          <delta_ts>2010-10-08 14:28:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Popescu">andreip</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jorlow</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>291379</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-07 18:38:46 -0700</bug_when>
    <thetext>IndexedDB does not have a quota mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291380</commentid>
    <comment_count>1</comment_count>
      <attachid>70184</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-07 18:41:58 -0700</bug_when>
    <thetext>Created attachment 70184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291384</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-07 18:47:48 -0700</bug_when>
    <thetext>Attachment 70184 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/storage/IDBDatabaseBackendImpl.cpp:156:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291454</commentid>
    <comment_count>3</comment_count>
      <attachid>70184</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-07 22:51:23 -0700</bug_when>
    <thetext>Comment on attachment 70184
Patch

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

close

&gt; LayoutTests/storage/indexeddb/database-basics.html:124
&gt; +function checkQuotaEnforcing()

I think this stuff would be best in its own test.

&gt; WebCore/storage/IDBDatabaseBackendImpl.cpp:155
&gt; +        transaction-&gt;abort();

return?

&gt; WebCore/storage/IDBDatabaseBackendImpl.cpp:230
&gt; +        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, &quot;Error writing data to stable storage.&quot;));

Add a fixme to spec this.

&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:136
&gt; +    return (resultCode != SQLResultOk) &amp;&amp; (resultCode != SQLResultDone);

don&apos;t need ()&apos;s

When could a result be either one or the other?  Isn&apos;t it always defined which it&apos;ll be in a non-error case?

&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:192
&gt; +    RefPtr&lt;IDBTransactionBackendInterface&gt; transactionPtr = transaction;

um..you put the Ptr suffix in the wrong place  :-)

&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:246
&gt; +        callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, &quot;Error writing data to stable storage.&quot;));

fixmes...here and anywhere u use unkown_err

&gt; WebKit/chromium/src/WebIDBFactoryImpl.cpp:61
&gt; +void WebIDBFactoryImpl::open(const WebString&amp; name, const WebString&amp; description, WebIDBCallbacks* callbacks, const WebSecurityOrigin&amp; origin, WebFrame*, const WebString&amp; dataDir, unsigned long long maximumSize)

int64 should work, i think.  i&apos;m pretty sure i used it somewhere else in this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291784</commentid>
    <comment_count>4</comment_count>
      <attachid>70272</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-08 11:36:55 -0700</bug_when>
    <thetext>Created attachment 70272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291786</commentid>
    <comment_count>5</comment_count>
      <attachid>70272</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-08 11:43:02 -0700</bug_when>
    <thetext>Comment on attachment 70272
Patch

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

r=me

&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:303
&gt; +    if (!insert.prepare()) {

compare against the constants

&gt; WebCore/storage/IDBObjectStoreBackendImpl.cpp:311
&gt; +    if (!insert.step()) {

compare against the constants

&gt; WebCore/storage/IDBObjectStoreBackendImpl.h:86
&gt; +    static void putInternal(ScriptExecutionContext*, PassRefPtr&lt;IDBObjectStoreBackendImpl&gt;, PassRefPtr&lt;SerializedScriptValue&gt; value, PassRefPtr&lt;IDBKey&gt; key, bool addOnly, PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBTransactionBackendInterface&gt; transaction);

don&apos;t need the word transaction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291861</commentid>
    <comment_count>6</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-08 14:28:25 -0700</bug_when>
    <thetext>Committed r69421: &lt;http://trac.webkit.org/changeset/69421&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70184</attachid>
            <date>2010-10-07 18:41:58 -0700</date>
            <delta_ts>2010-10-08 11:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47389-20101007184157.patch</filename>
            <type>text/plain</type>
            <size>61998</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTU2MzkzZDE1NmY1MjM3MjE5MmFmOTBlNWIxZTJlOWQ0NTljYmY2Li4yZTU5M2Zj
YTg5YjY2MDUzM2I2N2Y3Yzc4ZjVjNzI4N2Y1N2UzZTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTAtMDcgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQiBkb2Vz
IG5vdCBoYXZlIGEgcXVvdGEgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDczODkKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YWJhc2UtYmFzaWNzLmh0bWw6CisKIDIwMTAtMTAtMDYgIERpcmsgUHJhbmtlICA8ZHBy
YW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxs
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFz
aWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNl
LWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggMzc0MTUwYzg0ZDZjNzUyZjA3NzEzMTFhZmU0NDU1
MWU3ZGZmMjMxZS4uMzk1OTUzYjY1MWJlZDQwMDExNTJmYjkwYWE3OTI5ODJjNDk3YzFmMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1i
YXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0xMjEsNiArMTIxLDEwNTEgQEAgUEFTUyBkYi5vYmplY3RT
dG9yZXMubGVuZ3RoIGlzIDEKIFBBU1MgZGIub2JqZWN0U3RvcmVzLmNvbnRhaW5zKCcnKSBpcyBm
YWxzZQogUEFTUyBkYi5vYmplY3RTdG9yZXMuY29udGFpbnMoJ3Rlc3Q0NTYnKSBpcyBmYWxzZQog
UEFTUyBkYi5vYmplY3RTdG9yZXMuY29udGFpbnMoJ3Rlc3QxMjMnKSBpcyB0cnVlCit0cmFucyA9
IGRiLnRyYW5zYWN0aW9uKCkKK0NyZWF0aW5nICdkYXRhJyB3aGljaCBjb250YWlucyA2NEsgb2Yg
ZGF0YQorUEFTUyBkYXRhLmxlbmd0aCBpcyA2NTUzNgorc3RvcmUgPSB0cmFucy5vYmplY3RTdG9y
ZSgndGVzdDEyMycpCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2
ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1Mg
J3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0
cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVy
cm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFy
Z2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRh
dGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50
LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3Rv
cmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1Mg
J3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3Jl
ID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNz
IGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2Rl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BB
U1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBp
cyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdv
bmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQu
dGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0s
IGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2
ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQor
c3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BB
U1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25z
dWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0
b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNj
ZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdj
b2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVs
bCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZl
bnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0
YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNT
IGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJj
ZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoK
K1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisK
K3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitT
dWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNT
ICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0g
bnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDog
ZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNz
YWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNv
dXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJl
ZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2Un
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFT
UyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05F
CisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQp
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7
eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQn
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdt
ZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVu
dC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50
LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBm
aXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3Vy
Y2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQor
UEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRk
ZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3Vy
Y2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlT
dGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFk
ZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1
bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0
cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vzcycg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBl
dmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2
ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVu
dCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdz
b3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1
ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJv
cicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdl
dC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRh
QWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0
cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5z
b3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVh
ZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5
U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3Jl
LmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdy
ZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQ
QVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBp
cyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vz
cycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9
IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBl
dmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMg
dHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25l
cnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRh
cmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBk
YXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBp
cyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVu
dC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0
b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3Vj
Y2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9y
ZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2Vz
cyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29k
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQ
QVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwg
aXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
b25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50
LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9
LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBl
dmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UK
K3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQ
QVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZh
bHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29u
c3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitz
dG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3Vj
Y2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAn
Y29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51
bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2
ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRh
dGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2Fn
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFy
Z2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3Vy
Y2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6
CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQor
CitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQor
U3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZh
bHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9
IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlz
IGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6
IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBp
biBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVz
c2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQu
dGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5z
b3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmly
ZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNl
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BB
U1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9O
RQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVk
KQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNl
ICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3Rh
dGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRl
IGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQo
e3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
bWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZl
bnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVu
dC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQg
ZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291
cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUK
K1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3In
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFk
ZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291
cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5h
ZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVz
dWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3Mn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBl
dmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZl
bnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
c291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRy
dWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJy
b3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJn
ZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0
YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQu
c291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3Jl
YWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFk
eVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9y
ZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUg
PSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3Mg
ZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUn
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlz
IHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29u
ZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50
YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwg
ZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZl
bnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitz
dG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFT
UyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1
Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3Rv
cmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nl
c3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2Nv
ZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxs
IGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVu
dC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRh
fSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNl
CitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgor
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKwor
c3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1
Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBu
dWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBk
YXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3Nh
Z2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291
cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVk
OgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNT
ICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUK
Kworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkK
K1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAh
PSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRl
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBp
cyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4
OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50
LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQu
c291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZp
cmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVu
dCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJj
ZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRl
ZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJj
ZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRk
KHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3Vs
dCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1Mg
J21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRy
dWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2
ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZl
bnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50
IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3Nv
dXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVl
CitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9y
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0
LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFB
ZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRy
dWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVu
dCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNv
dXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFk
eVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlT
dGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUu
YWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jl
c3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BB
U1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNz
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
IGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0g
ZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2
ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1Mg
J3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0
cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVy
cm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFy
Z2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRh
dGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50
LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3Rv
cmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1Mg
J3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3Jl
ID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNz
IGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2Rl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BB
U1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBp
cyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdv
bmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQu
dGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0s
IGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2
ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQor
c3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BB
U1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25z
dWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0
b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNj
ZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdj
b2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVs
bCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZl
bnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0
YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNT
IGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJj
ZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoK
K1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisK
K3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitT
dWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNT
ICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0g
bnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDog
ZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNz
YWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNv
dXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJl
ZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2Un
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFT
UyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05F
CisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQp
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7
eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQn
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdt
ZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVu
dC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50
LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBm
aXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3Vy
Y2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQor
UEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRk
ZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3Vy
Y2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlT
dGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFk
ZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1
bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0
cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vzcycg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBl
dmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2
ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVu
dCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdz
b3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1
ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJv
cicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdl
dC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRh
QWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0
cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5z
b3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVh
ZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5
U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3Jl
LmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdy
ZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQ
QVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBp
cyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vz
cycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9
IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBl
dmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMg
dHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25l
cnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRh
cmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBk
YXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBp
cyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVu
dC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0
b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK0Vycm9yIGZ1bmN0aW9uIGNhbGxlZDogKDAp
IEVycm9yIHdyaXRpbmcgZGF0YSB0byBzdGFibGUgc3RvcmFnZS4KK0Vycm9yIGV2ZW50IGZpcmVk
OgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnY29kZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQor
CitQQVNTIEFkZGluZyBkYXRhIGZhaWxlZCBkdWUgdG8gcXVvdGEgZXJyb3IuIERhdGEgYWRkZWQg
d2FzOiA1MTIwIEtCCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNl
LWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFz
aWNzLmh0bWwKaW5kZXggZmUwY2IxOWYyM2ZhNDJiYjIyOTg0NzlmMjUyNzRjMmEwYzNhMTIwMi4u
MWE1YTMwODA4Zjc3N2I3OWI0ZTRiMWQ3ZTVhYTI0ZjQ1YjhhNTE4ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLmh0bWwKQEAgLTExMCwx
NSArMTEwLDYwIEBAIGZ1bmN0aW9uIGNyZWF0ZUFub3RoZXJPYmplY3RTdG9yZSgpCiAgICAgdmFy
IHNldFZlcnNpb25UcmFucyA9IGV2YWxBbmRMb2coInNldFZlcnNpb25UcmFucyA9IGV2ZW50LnJl
c3VsdCIpOw0KICAgICBzaG91bGRCZVRydWUoInNldFZlcnNpb25UcmFucyAhPT0gbnVsbCIpOw0K
ICAgICBzZXRWZXJzaW9uVHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxi
YWNrOw0KLSAgICBzZXRWZXJzaW9uVHJhbnMub25hYm9ydCA9IGNoZWNrTWV0YWRhdGE7DQorICAg
IHNldFZlcnNpb25UcmFucy5vbmFib3J0ID0gY2hlY2tNZXRhZGF0YUFuZENvbnRpbnVlOw0KICAg
ICBzZXRWZXJzaW9uVHJhbnMuYWJvcnQoKTsNCiB9DQogDQotZnVuY3Rpb24gY2hlY2tNZXRhZGF0
YSgpDQorZnVuY3Rpb24gY2hlY2tNZXRhZGF0YUFuZENvbnRpbnVlKCkNCiB7DQogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGIiKTsNCiAgICAgY2hlY2tP
YmplY3RTdG9yZSgpOw0KLSAgICBkb25lKCk7DQorICAgIGNoZWNrUXVvdGFFbmZvcmNpbmcoKTsN
Cit9DQorDQorZnVuY3Rpb24gY2hlY2tRdW90YUVuZm9yY2luZygpDQorew0KKyAgICB2YXIgdHJh
bnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCkiKTsNCisgICAgdHJhbnMu
b25hYm9ydCA9IHRlc3RDb21wbGV0ZTsNCisgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0
ZWRDb21wbGV0ZUNhbGxiYWNrOw0KKyAgICBkZWJ1ZygiQ3JlYXRpbmcgJ2RhdGEnIHdoaWNoIGNv
bnRhaW5zIDY0SyBvZiBkYXRhIik7DQorICAgIHdpbmRvdy5kYXRhID0gIlgiOw0KKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDE2OyBpKyspDQorICAgICAgICBkYXRhICs9IGRhdGE7DQorICAgIHNo
b3VsZEJlKCJkYXRhLmxlbmd0aCIsICI2NTUzNiIpOw0KKyAgICB3aW5kb3cuZGF0YUFkZGVkID0g
MDsNCisgICAgd2luZG93LnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RT
dG9yZSgndGVzdDEyMycpIik7DQorICAgIGFkZERhdGEoKTsNCit9DQorDQorZnVuY3Rpb24gYWRk
RGF0YSgpDQorew0KKyAgICBpZiAoZGF0YUFkZGVkIDwgNSAqIDEwMjQgKiAxMDI0KSB7DQorICAg
ICAgICBpZiAoZGF0YUFkZGVkID4gMCkgew0KKyAgICAgICAgICAgIHZlcmlmeVN1Y2Nlc3NFdmVu
dChldmVudCk7DQorICAgICAgICAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGV2ZW50
LnNvdXJjZSIpOw0KKyAgICAgICAgfQ0KKyAgICB9IGVsc2Ugew0KKyAgICAgICAgdGVzdEZhaWxl
ZCgiYWRkZWQgbW9yZSB0aGFuIHF1b3RhIik7DQorICAgICAgICBkb25lKCk7DQorICAgICAgICBy
ZXR1cm47DQorICAgIH0NCisgICAgZGF0YUFkZGVkICs9IDY1NTM2Ow0KKyAgICByZXN1bHQgPSBl
dmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpIik7DQorICAgIHJlc3Vs
dC5vbnN1Y2Nlc3MgPSBhZGREYXRhOw0KKyAgICByZXN1bHQub25lcnJvciA9IGxvZ0Vycm9yOw0K
K30NCisNCitmdW5jdGlvbiBsb2dFcnJvcigpDQorew0KKyAgICBkZWJ1ZygiRXJyb3IgZnVuY3Rp
b24gY2FsbGVkOiAoIiArIGV2ZW50LmNvZGUgKyAiKSAiICsgZXZlbnQubWVzc2FnZSk7DQorICAg
IHZlcmlmeUVycm9yRXZlbnQoZXZlbnQpOw0KK30NCisNCitmdW5jdGlvbiB0ZXN0Q29tcGxldGUo
KQ0KK3sNCisgICAgdGVzdFBhc3NlZCgiQWRkaW5nIGRhdGEgZmFpbGVkIGR1ZSB0byBxdW90YSBl
cnJvci4gRGF0YSBhZGRlZCB3YXM6ICIgKyBkYXRhQWRkZWQgLyAxMDI0ICsgIiBLQiIpOw0KKyAg
ICBkb25lKCk7CiB9CiAKIHRlc3QoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIwOTI1MWM0ZTRiMTEwYzM4MDJjZTUyY2EwN2UzZDE2
MjUyMWE1OS4uNTA5ODIyMzBkMjIyMjU4MTIwNzI1YzZjZWZmOTRjZDIyMmMzZmRhYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAxMC0xMC0wNyAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5kZXhl
ZERCIGRvZXMgbm90IGhhdmUgYSBxdW90YSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzM4OQorCisgICAgICAgICogcGFnZS9Hcm91
cFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwU2V0dGluZ3M6Okdyb3VwU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6R3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCUXVv
dGFCeXRlcyk6CisgICAgICAgICogcGFnZS9Hcm91cFNldHRpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpHcm91cFNldHRpbmdzOjppbmRleGVkREJRdW90YUJ5dGVzKToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmVJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwpOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0
b3J5OjpvcGVuKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVuU1FMaXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwdXRP
YmplY3RTdG9yZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cHV0SW5kZXhEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVhdGVJbmRleEludGVybmFs
KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaDoKKwogMjAx
MC0xMC0wNiAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dyb3Vw
U2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwCmluZGV4IDU4YWI3
NGQwNTNlZTM3NGUwYzlkNGJlYzc4MjEwY2JlYzQxY2FkOTguLjA3NjI4NjFlNDcyNmE0MGI5NTIw
OGJlYTFhYjMzMjM1ZWUxZjk1YTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRp
bmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHcm91cFNldHRpbmdzOjpHcm91cFNldHRpbmdz
KCkKICAgICA6IG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlcyg1ICogMTAyNCAqIDEwMjQpIC8vIFN1
Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KKyAgICAsIG1faW5kZXhlZERCUXVvdGFCeXRlcyg1
ICogMTAyNCAqIDEwMjQpCiB7CiB9CiAKQEAgLTQzLDQgKzQ0LDEwIEBAIHZvaWQgR3JvdXBTZXR0
aW5nczo6c2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBt
X2luZGV4ZWREQkRhdGFiYXNlUGF0aCA9IHBhdGg7CiB9CiAKK3ZvaWQgR3JvdXBTZXR0aW5nczo6
c2V0SW5kZXhlZERCUXVvdGFCeXRlcyhpbnQ2NF90IHF1b3RhKQoreworICAgIG1faW5kZXhlZERC
UXVvdGFCeXRlcyA9IHF1b3RhOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBT
ZXR0aW5ncy5oCmluZGV4IDYyYTVkZDI4OGJjOTU0YjVkZjlmZWRkYmIwYmY2Njc3NjEwZTY4NjQu
LmZiNmY2YjUzMDVjZjgxZmQ1NmFlNDRjZDU4NWMwNWRjMDZmNmQ3ZTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGlu
Z3MuaApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VR
dW90YUJ5dGVzKHVuc2lnbmVkKTsKICAgICB1bnNpZ25lZCBsb2NhbFN0b3JhZ2VRdW90YUJ5dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzOyB9CiAKKyAgICB2b2lk
IHNldEluZGV4ZWREQlF1b3RhQnl0ZXMoaW50NjRfdCk7CisgICAgaW50NjRfdCBpbmRleGVkREJR
dW90YUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleGVkREJRdW90YUJ5dGVzOyB9CisKICAg
ICB2b2lkIHNldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmKTsKICAgICBjb25z
dCBTdHJpbmcmIGluZGV4ZWREQkRhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhl
ZERCRGF0YWJhc2VQYXRoOyB9CiAKQEAgLTUxLDYgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIHVu
c2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsKICAgICBTdHJpbmcgbV9pbmRleGVkREJE
YXRhYmFzZVBhdGg7CisgICAgaW50NjRfdCBtX2luZGV4ZWREQlF1b3RhQnl0ZXM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKaW5kZXggYmU2ZDEzNmU4M2E4MjAwZTUyZGMwMGZmYjUxOGJlZWZiMzhlODgyMy4u
MzA4MTE5ZjJiYTkxNDMzNTcwZGRlYTYzYmU2NWRkNGMzNzg5ZjY4NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMTUxLDEzICsxNTEsMTYgQEAgUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+ICBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpjcmVhdGVPYmplY3QKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRl
T2JqZWN0U3RvcmVJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsPiBkYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKIHsKICAgICBTUUxpdGVTdGF0ZW1lbnQgaW5zZXJ0
KGRhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLCAiSU5TRVJUIElOVE8gT2JqZWN0U3RvcmVzIChu
YW1lLCBrZXlQYXRoLCBkb0F1dG9JbmNyZW1lbnQpIFZBTFVFUyAoPywgPywgPykiKTsKLSAgICBi
b29sIG9rID0gaW5zZXJ0LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKLSAgICBBU1NFUlRfVU5V
U0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgaWYgKGlu
c2VydC5wcmVwYXJlKCkgIT0gU1FMUmVzdWx0T2spIHsKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFi
b3J0KCk7CisgICAgfQogICAgIGluc2VydC5iaW5kVGV4dCgxLCBvYmplY3RTdG9yZS0+bmFtZSgp
KTsKICAgICBpbnNlcnQuYmluZFRleHQoMiwgb2JqZWN0U3RvcmUtPmtleVBhdGgoKSk7CiAgICAg
aW5zZXJ0LmJpbmRJbnQoMywgc3RhdGljX2Nhc3Q8aW50PihvYmplY3RTdG9yZS0+YXV0b0luY3Jl
bWVudCgpKSk7Ci0gICAgb2sgPSBpbnNlcnQuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7Ci0gICAg
QVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgor
ICAgIGlmIChpbnNlcnQuc3RlcCgpICE9IFNRTFJlc3VsdERvbmUpIHsKKyAgICAgICAgdHJhbnNh
Y3Rpb24tPmFib3J0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaW50NjRfdCBpZCA9
IGRhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RJbnNlcnRSb3dJRCgpOwogICAgIG9iamVj
dFN0b3JlLT5zZXRJZChpZCk7CiAgICAgdHJhbnNhY3Rpb24tPmRpZENvbXBsZXRlVGFza0V2ZW50
cygpOwpAQCAtMjIzLDcgKzIyNiwxMSBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNl
dFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UsIGNv
bnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKQog
ewogICAgIGRhdGFiYXNlLT5tX3ZlcnNpb24gPSB2ZXJzaW9uOwotICAgIHNldE1ldGFEYXRhKGRh
dGFiYXNlLT5tX3NxbGl0ZURhdGFiYXNlLmdldCgpLCBkYXRhYmFzZS0+bV9uYW1lLCBkYXRhYmFz
ZS0+bV9kZXNjcmlwdGlvbiwgZGF0YWJhc2UtPm1fdmVyc2lvbik7CisgICAgaWYgKCFzZXRNZXRh
RGF0YShkYXRhYmFzZS0+bV9zcWxpdGVEYXRhYmFzZS5nZXQoKSwgZGF0YWJhc2UtPm1fbmFtZSwg
ZGF0YWJhc2UtPm1fZGVzY3JpcHRpb24sIGRhdGFiYXNlLT5tX3ZlcnNpb24pKSB7CisgICAgICAg
IGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGluZyBkYXRhIHRvIHN0YWJsZSBzdG9y
YWdlLiIpKTsKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3ModHJhbnNhY3Rpb24pOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCRmFjdG9yeS5jcHAKaW5kZXggZTFjOGMwN2NlOTRkMGE1YmFhYThiZDdhNTc5NGI0NjFjOGFl
Mzk3YS4uMjNkYmJjYTY4MmU3YWY5OWYwNmE4Yzk0YzM5NmFiNzNjZjJjOWEyNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnkuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJGYWN0b3J5LmNwcApAQCAtNjgsNyArNjgsOCBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
QkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUwog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURC
UmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAg
bV9mYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgcmVxdWVzdCwgZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50LT5mcmFtZSgpLCBkb2N1bWVudC0+cGFnZSgp
LT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKS0+aW5kZXhlZERCRGF0YWJhc2VQYXRoKCkpOworICAg
IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3MgPSBkb2N1bWVudC0+cGFnZSgpLT5ncm91cCgp
Lmdyb3VwU2V0dGluZ3MoKTsKKyAgICBtX2ZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIGRlc2Ny
aXB0aW9uLCByZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnQtPmZy
YW1lKCksIGdyb3VwU2V0dGluZ3MtPmluZGV4ZWREQkRhdGFiYXNlUGF0aCgpLCBncm91cFNldHRp
bmdzLT5pbmRleGVkREJRdW90YUJ5dGVzKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IDYyMTljMmRlZDRi
MWIzYTk3MmEwMDQ2MzkwNTZiZDJjMzYwZjgzZjAuLjMwNjNiNDE1MDRhNDVhMjE3OTcyZmI0YjI4
MDZiY2FmZjg0MzczYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwu
Y3BwCkBAIC01Miw3ICs1Miw3IEBAIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6fklEQkZhY3RvcnlC
YWNrZW5kSW1wbCgpCiB7CiB9CiAKLXN0YXRpYyBQYXNzT3duUHRyPFNRTGl0ZURhdGFiYXNlPiBv
cGVuU1FMaXRlRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBTdHJpbmcg
bmFtZSwgY29uc3QgU3RyaW5nJiBwYXRoQmFzZSkKK3N0YXRpYyBQYXNzT3duUHRyPFNRTGl0ZURh
dGFiYXNlPiBvcGVuU1FMaXRlRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
LCBTdHJpbmcgbmFtZSwgY29uc3QgU3RyaW5nJiBwYXRoQmFzZSwgaW50NjRfdCBtYXhpbXVtU2l6
ZSkKIHsKICAgICBTdHJpbmcgcGF0aCA9ICI6bWVtb3J5OiI7CiAgICAgaWYgKCFwYXRoQmFzZS5p
c0VtcHR5KCkpIHsKQEAgLTcyLDYgKzcyLDcgQEAgc3RhdGljIFBhc3NPd25QdHI8U1FMaXRlRGF0
YWJhc2U+IG9wZW5TUUxpdGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgc3FsaXRlRGF0YWJhc2UtPnNldE1heGltdW1T
aXplKG1heGltdW1TaXplKTsKICAgICByZXR1cm4gc3FsaXRlRGF0YWJhc2UucmVsZWFzZSgpOwog
fQogCkBAIC0xMTcsNyArMTE4LDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlVGFibGVzKFNRTGl0ZURh
dGFiYXNlKiBzcWxpdGVEYXRhYmFzZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJREJG
YWN0b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgRnJhbWUqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBG
cmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YURpciwgaW50NjRfdCBtYXhpbXVtU2l6ZSkKIHsKICAg
ICBJREJEYXRhYmFzZUJhY2tlbmRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kYXRhYmFzZUJhY2tlbmRN
YXAuZmluZChuYW1lKTsKICAgICBpZiAoaXQgIT0gbV9kYXRhYmFzZUJhY2tlbmRNYXAuZW5kKCkp
IHsKQEAgLTEyOSw3ICsxMzAsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sCiAKICAgICAvLyBG
SVhNRTogRXZlcnl0aGluZyBmcm9tIG5vdyBvbiBzaG91bGQgYmUgZG9uZSBvbiBhbm90aGVyIHRo
cmVhZC4KIAotICAgIE93blB0cjxTUUxpdGVEYXRhYmFzZT4gc3FsaXRlRGF0YWJhc2UgPSBvcGVu
U1FMaXRlRGF0YWJhc2Uoc2VjdXJpdHlPcmlnaW4uZ2V0KCksIG5hbWUsIGRhdGFEaXIpOworICAg
IE93blB0cjxTUUxpdGVEYXRhYmFzZT4gc3FsaXRlRGF0YWJhc2UgPSBvcGVuU1FMaXRlRGF0YWJh
c2Uoc2VjdXJpdHlPcmlnaW4uZ2V0KCksIG5hbWUsIGRhdGFEaXIsIG1heGltdW1TaXplKTsKICAg
ICBpZiAoIXNxbGl0ZURhdGFiYXNlIHx8ICFjcmVhdGVUYWJsZXMoc3FsaXRlRGF0YWJhc2UuZ2V0
KCkpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiSW50ZXJuYWwgZXJyb3IuIikp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9y
eUJhY2tlbmRJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgK
aW5kZXggNzZlNTQ1ZWEyZTE2MTg1OGJiZGVhY2JiNzE1YTQ1MmNkNDk2YWEyYy4uMjExYjdmYTEw
ZTQ3MDY1NDI4M2MyOWUxYjg0YWQ5OWRmYTBhNjI1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9y
YWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0
b3J5QmFja2VuZEltcGwuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZp
cnR1YWwgfklEQkZhY3RvcnlCYWNrZW5kSW1wbCgpOwogCi0gICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIGNvbnN0
IFN0cmluZyYgZGF0YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YURp
ciwgaW50NjRfdCBtYXhpbXVtU2l6ZSk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlRmls
ZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTZWN1cml0eU9yaWdpbiopOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ5MTQwMjQzZWE2NDBk
MDdkYTBmMDkxZGUyOTQ4YzQ2ZTI4YTY4NzIuLjdkOTIyYzMzZGRkMzgwNGFmZjMwNTM2MzUwMjEz
M2ZjYzkxZjgyOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
LCBpbnQ2NF90IG1heGltdW1TaXplKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5j
cHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXgg
MDlmZDk3MTc3ZDIyODhlNWRlNjA5MGQ1OWM5OTdhYjQzOGZkZjRlNy4uMGIwYzMyZDY1Njc3ZDI0
YWM1NzlhMTJiNDUxMmM5Y2ExNDkzMDY1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtMTMxLDEzICsxMzEsMTkgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8SURCS2V5PiBmZXRjaEtleUZyb21LZXlQYXRoKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSog
dmFsdWUsIGNvbnMKICAgICByZXR1cm4ga2V5c1swXS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyB2
b2lkIHB1dE9iamVjdFN0b3JlRGF0YShTUUxpdGVEYXRhYmFzZSYgZGIsIElEQktleSoga2V5LCBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUqIHZhbHVlLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QqIGRhdGFSb3dJZCkKK3N0YXRpYyBib29sIGlzRXJyb3IoaW50IHJlc3VsdENvZGUpCit7Cisg
ICAgcmV0dXJuIChyZXN1bHRDb2RlICE9IFNRTFJlc3VsdE9rKSAmJiAocmVzdWx0Q29kZSAhPSBT
UUxSZXN1bHREb25lKTsKK30KKworc3RhdGljIGludCBwdXRPYmplY3RTdG9yZURhdGEoU1FMaXRl
RGF0YWJhc2UmIGRiLCBJREJLZXkqIGtleSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiB2YWx1ZSwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90KiBkYXRhUm93SWQpCiB7CiAgICAgU3RyaW5n
IHNxbCA9ICpkYXRhUm93SWQgIT0gLTEgPyAiVVBEQVRFIE9iamVjdFN0b3JlRGF0YSBTRVQga2V5
U3RyaW5nID0gPywga2V5RGF0ZSA9ID8sIGtleU51bWJlciA9ID8sIHZhbHVlID0gPyBXSEVSRSBp
ZCA9ID8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiSU5TRVJUIElOVE8g
T2JqZWN0U3RvcmVEYXRhIChrZXlTdHJpbmcsIGtleURhdGUsIGtleU51bWJlciwgdmFsdWUsIG9i
amVjdFN0b3JlSWQpIFZBTFVFUyAoPywgPywgPywgPywgPykiOwogICAgIFNRTGl0ZVN0YXRlbWVu
dCBxdWVyeShkYiwgc3FsKTsKLSAgICBib29sIG9rID0gcXVlcnkucHJlcGFyZSgpID09IFNRTFJl
c3VsdE9rOwotICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJv
ciBoYW5kbGluZz8KKyAgICBpbnQgcmVzdWx0ID0gcXVlcnkucHJlcGFyZSgpOworICAgIGlmIChy
ZXN1bHQgIT0gU1FMUmVzdWx0T2spCisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAga2V5LT5i
aW5kV2l0aE51bGxzKHF1ZXJ5LCAxKTsKICAgICBxdWVyeS5iaW5kVGV4dCg0LCB2YWx1ZS0+dG9X
aXJlU3RyaW5nKCkpOwogICAgIGlmICgqZGF0YVJvd0lkICE9IC0xKQpAQCAtMTQ1LDMxICsxNTEs
MzYgQEAgc3RhdGljIHZvaWQgcHV0T2JqZWN0U3RvcmVEYXRhKFNRTGl0ZURhdGFiYXNlJiBkYiwg
SURCS2V5KiBrZXksIFNlcmlhbGl6ZWRTY3JpcHQKICAgICBlbHNlCiAgICAgICAgIHF1ZXJ5LmJp
bmRJbnQ2NCg1LCBvYmplY3RTdG9yZUlkKTsKIAotICAgIG9rID0gcXVlcnkuc3RlcCgpID09IFNR
TFJlc3VsdERvbmU7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVy
IGVycm9yIGhhbmRsaW5nPworICAgIHJlc3VsdCA9IHF1ZXJ5LnN0ZXAoKTsKKyAgICBpZiAocmVz
dWx0ICE9IFNRTFJlc3VsdERvbmUpCisgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBpZiAo
KmRhdGFSb3dJZCA9PSAtMSkKICAgICAgICAgKmRhdGFSb3dJZCA9IGRiLmxhc3RJbnNlcnRSb3dJ
RCgpOworCisgICAgcmV0dXJuIFNRTFJlc3VsdERvbmU7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dElu
ZGV4RGF0YShTUUxpdGVEYXRhYmFzZSYgZGIsIElEQktleSoga2V5LCBpbnQ2NF90IGluZGV4SWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVEYXRhSWQpCitzdGF0aWMgaW50IHB1dEluZGV4RGF0YShTUUxp
dGVEYXRhYmFzZSYgZGIsIElEQktleSoga2V5LCBpbnQ2NF90IGluZGV4SWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVEYXRhSWQpCiB7CiAgICAgU1FMaXRlU3RhdGVtZW50IGRlbGV0ZVF1ZXJ5KGRiLCAi
REVMRVRFIEZST00gSW5kZXhEYXRhIFdIRVJFIG9iamVjdFN0b3JlRGF0YUlkID0gPyIpOwotICAg
IGJvb2wgb2sgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0T2s7Ci0gICAgQVNT
RVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgorICAg
IGludCByZXN1bHQgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCk7CisgICAgaWYgKHJlc3VsdCAhPSBT
UUxSZXN1bHRPaykKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBkZWxldGVRdWVyeS5iaW5k
SW50NjQoMSwgb2JqZWN0U3RvcmVEYXRhSWQpOwotICAgIG9rID0gZGVsZXRlUXVlcnkuc3RlcCgp
ID09IFNRTFJlc3VsdERvbmU7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTog
QmV0dGVyIGVycm9yIGhhbmRsaW5nLgorICAgIHJlc3VsdCA9IGRlbGV0ZVF1ZXJ5LnN0ZXAoKTsK
KyAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpCisgICAgICAgIHJldHVybiByZXN1bHQ7
CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcHV0UXVlcnkoZGIsICJJTlNFUlQgSU5UTyBJbmRleERh
dGEgKGtleVN0cmluZywga2V5RGF0ZSwga2V5TnVtYmVyLCBpbmRleElkLCBvYmplY3RTdG9yZURh
dGFJZCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/KSIpOwotICAgIG9rID0gcHV0UXVlcnkucHJlcGFy
ZSgpID09IFNRTFJlc3VsdE9rOwotICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6
IEJldHRlciBlcnJvciBoYW5kbGluZz8KKyAgICByZXN1bHQgPSBwdXRRdWVyeS5wcmVwYXJlKCk7
CisgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICBrZXktPmJpbmRXaXRoTnVsbHMocHV0UXVlcnksIDEpOwogICAgIHB1dFF1ZXJ5LmJpbmRJ
bnQ2NCg0LCBpbmRleElkKTsKICAgICBwdXRRdWVyeS5iaW5kSW50NjQoNSwgb2JqZWN0U3RvcmVE
YXRhSWQpOwogCi0gICAgb2sgPSBwdXRRdWVyeS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKLSAg
ICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmc/
CisgICAgcmV0dXJuIHB1dFF1ZXJ5LnN0ZXAoKTsKIH0KIAogdm9pZCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjpwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZhbHVl
LCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBib29sIGFkZE9ubHksIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24pCkBAIC0xNzgsMTEgKzE4OSwxMiBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6OnB1dChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUs
CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBwcnBWYWx1ZTsKICAg
ICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOwotICAgIGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxl
VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dElu
dGVybmFsLCBvYmplY3RTdG9yZSwgdmFsdWUsIGtleSwgYWRkT25seSwgY2FsbGJhY2tzKSkpCisg
ICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25QdHIg
PSB0cmFuc2FjdGlvbjsKKyAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRl
Q2FsbGJhY2tUYXNrKCZJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbCwgb2Jq
ZWN0U3RvcmUsIHZhbHVlLCBrZXksIGFkZE9ubHksIGNhbGxiYWNrcywgdHJhbnNhY3Rpb25QdHIp
KSkKICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FMTE9XRURfRVJSLCAicHV0IG11c3QgYmUgY2FsbGVk
IGluIHRoZSBjb250ZXh0IG9mIGEgdHJhbnNhY3Rpb24uIikpOwogfQogCi12b2lkIElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBw
cnBLZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykK
K3ZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0
U3RvcmUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHBycEtleSwgYm9vbCBhZGRPbmx5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
dHJhbnNhY3Rpb24pCiB7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUg
PSBwcnBWYWx1ZTsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7CkBAIC0yMjcsMTQg
KzIzOSwyMyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgLy8gQmVmb3JlIHRoaXMgcG9pbnQsIGRvbid0IGRvIGFueSBtdXRhdGlvbi4gIEFm
dGVyIHRoaXMgcG9pbnQsIGRvbid0IGVycm9yIG91dC4KKyAgICAvLyBCZWZvcmUgdGhpcyBwb2lu
dCwgZG9uJ3QgZG8gYW55IG11dGF0aW9uLiAgQWZ0ZXIgdGhpcyBwb2ludCwgcm9sbGJhY2sgdGhl
IHRyYW5zYWN0aW9uIGluIGNhc2Ugb2YgZXJyb3IuCiAKICAgICBpbnQ2NF90IGRhdGFSb3dJZCA9
IGlzRXhpc3RpbmdWYWx1ZSA/IGdldFF1ZXJ5LmdldENvbHVtbkludCgwKSA6IC0xOwotICAgIHB1
dE9iamVjdFN0b3JlRGF0YShvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwga2V5LmdldCgp
LCB2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICZkYXRhUm93SWQpOworICAgIGlmIChp
c0Vycm9yKHB1dE9iamVjdFN0b3JlRGF0YShvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwg
a2V5LmdldCgpLCB2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICZkYXRhUm93SWQpKSkg
eworICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUiwgIkVycm9yIHdyaXRpbmcgZGF0YSB0byBz
dGFibGUgc3RvcmFnZS4iKSk7CisgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCiAgICAgaW50IGkgPSAwOwotICAgIGZvciAoSW5kZXhNYXA6Oml0
ZXJhdG9yIGl0ID0gb2JqZWN0U3RvcmUtPm1faW5kZXhlcy5iZWdpbigpOyBpdCAhPSBvYmplY3RT
dG9yZS0+bV9pbmRleGVzLmVuZCgpOyArK2l0LCArK2kpCi0gICAgICAgIHB1dEluZGV4RGF0YShv
YmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwgaW5kZXhLZXlzW2ldLmdldCgpLCBpdC0+c2Vj
b25kLT5pZCgpLCBkYXRhUm93SWQpOworICAgIGZvciAoSW5kZXhNYXA6Oml0ZXJhdG9yIGl0ID0g
b2JqZWN0U3RvcmUtPm1faW5kZXhlcy5iZWdpbigpOyBpdCAhPSBvYmplY3RTdG9yZS0+bV9pbmRl
eGVzLmVuZCgpOyArK2l0LCArK2kpIHsKKyAgICAgICAgaWYgKGlzRXJyb3IocHV0SW5kZXhEYXRh
KG9iamVjdFN0b3JlLT5zcWxpdGVEYXRhYmFzZSgpLCBpbmRleEtleXNbaV0uZ2V0KCksIGl0LT5z
ZWNvbmQtPmlkKCksIGRhdGFSb3dJZCkpKSB7CisgICAgICAgICAgICBjYWxsYmFja3MtPm9uRXJy
b3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dO
X0VSUiwgIkVycm9yIHdyaXRpbmcgZGF0YSB0byBzdGFibGUgc3RvcmFnZS4iKSk7CisgICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KIAogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGtleS5nZXQoKSk7CiB9CkBAIC0y
ODcsMTQgKzMwOCwxOCBAQCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3JlYXRlSW5kZXgoY29ucwogdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjcmVhdGVJbmRleEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQ
YXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4LCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24pCiB7CiAgICAgU1FMaXRlU3RhdGVt
ZW50IGluc2VydChvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwgIklOU0VSVCBJTlRPIElu
ZGV4ZXMgKG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGlzVW5pcXVlKSBWQUxVRVMgKD8s
ID8sID8sID8pIik7Ci0gICAgYm9vbCBvayA9IGluc2VydC5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0
T2s7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhh
bmRsaW5nLgorICAgIGlmIChpc0Vycm9yKGluc2VydC5wcmVwYXJlKCkpKSB7CisgICAgICAgIHRy
YW5zYWN0aW9uLT5hYm9ydCgpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGluc2VydC5i
aW5kSW50NjQoMSwgb2JqZWN0U3RvcmUtPm1faWQpOwogICAgIGluc2VydC5iaW5kVGV4dCgyLCBp
bmRleC0+bmFtZSgpKTsKICAgICBpbnNlcnQuYmluZFRleHQoMywgaW5kZXgtPmtleVBhdGgoKSk7
CiAgICAgaW5zZXJ0LmJpbmRJbnQoNCwgc3RhdGljX2Nhc3Q8aW50PihpbmRleC0+dW5pcXVlKCkp
KTsKLSAgICBvayA9IGluc2VydC5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKLSAgICBBU1NFUlRf
VU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgaWYg
KGlzRXJyb3IoaW5zZXJ0LnN0ZXAoKSkpIHsKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaW50NjRfdCBpZCA9IG9iamVjdFN0b3JlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RJbnNlcnRSb3dJRCgpOwogICAgIGluZGV4LT5zZXRJZChpZCk7
CiAgICAgdHJhbnNhY3Rpb24tPmRpZENvbXBsZXRlVGFza0V2ZW50cygpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKaW5kZXggMzFmOTkwODA1MjE1MjVkZTNm
MWI4ZDNjOThkMWVhZWEyNGFmODZmMS4uZTA4Zjk2MGY0M2Q4NmEyNmQyNjk3ODhiNzJmMjNkODIw
MjgyNzU5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5o
CkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgU1FMaXRlRGF0YWJhc2UmIHNxbGl0ZURh
dGFiYXNlKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRJbnRlcm5hbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKLSAgICBzdGF0
aWMgdm9pZCBwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBib29sIGFkZE9ubHksIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPik7CisgICAgc3RhdGljIHZvaWQgcHV0SW50ZXJuYWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgYm9vbCBhZGRPbmx5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbik7CiAgICAgc3RhdGlj
IHZvaWQgcmVtb3ZlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlSW5kZXhJbnRlcm5h
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsPiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVJbmRl
eEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+LCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmM5
NDBkZThiOWYwNTEwMjlmODA0NzZiMGFjNzU0ZTNmNzBkMWM4NC4uOWY4ODEzNDNjYWQ4ZDgwNGZk
ZWE4YTY3ZDRjOTJkNDA5OTQ2MDliOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTAtMTAtMDcgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQiBkb2VzIG5v
dCBoYXZlIGEgcXVvdGEgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDczODkKKworICAgICAgICAqIHB1YmxpYy9XZWJJREJGYWN0b3J5
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZhY3Rvcnk6Om9wZW4pOgorICAgICAgICAqIHNy
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rv
cnlCYWNrZW5kUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRmFjdG9yeUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0
b3J5SW1wbC5oOgorCiAyMDEwLTEwLTA2ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJGYWN0b3J5LmgKaW5kZXggY2I1ZDM2OTA1NjU2ZjBhMGRiZTdlMjFhZDhjMThj
NTJhNTc2ZGI0Mi4uNjNlZWFjZGVmZTc0ODEwMGQ2ODgzMTg3NzRiNDgwNTU2ZDViOWE0NyAxMDA3
NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKQEAgLTUyLDYgKzUyLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnkoKSB7IH0KIAogICAgIC8vIFRoZSBXZWJL
aXQgaW1wbGVtZW50YXRpb24gb2Ygb3BlbiBpZ25vcmVzIHRoZSBXZWJGcmFtZSogcGFyYW1ldGVy
LgorICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdl
YlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFtZSwgY29uc3QgV2ViU3Ry
aW5nJiBkYXRhRGlyLCB1bnNpZ25lZCBsb25nIGxvbmcgbWF4aW11bVNpemUpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIHdlIHVwZGF0
ZSBDaHJvbWl1bSBzaWRlLgogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxs
YmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgLy8gVGhlIGZpbGUgbmFtZSB0aGF0IHdvdWxkIGJlIHVzZWQgZm9yIHBlcnNp
c3RpbmcgYSBnaXZlbiBpbmRleGVkIGRhdGFiYXNlIG9uIHRoZSBmaWxlIHN5c3RlbS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCmluZGV4IGQ0M2U3
ODdmMmQ1OTZmYmU3NGVjZmM5MjUzYzQ2ZTRkNTdkZGY3N2QuLjJlNjUyNDZhYzVmNDVmMjYwNzhj
OTg0MGUzZDMxNDJlOGJjYTM4ZjIgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0
b3J5QmFja2VuZFByb3h5LmNwcApAQCAtNTksMTAgKzU5LDEwIEBAIElEQkZhY3RvcnlCYWNrZW5k
UHJveHk6On5JREJGYWN0b3J5QmFja2VuZFByb3h5KCkKIHsKIH0KIAotdm9pZCBJREJGYWN0b3J5
QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luLCBGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YURp
cikKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIGRhdGFEaXIsIGludDY0X3QgbWF4aW11bVNpemUpCiB7CiAgICAgV2ViS2l0
OjpXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZy
YW1lKTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG5ldyBX
ZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIp
OworICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbmV3IFdlYklE
QkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpciwgbWF4
aW11bVNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCmluZGV4IDYzNzE2ODZjZWFmZjA2OWI4NGE0
NTM1N2E5MDNkYjZlZjY4Yjk3OTAuLjBhNTViNTliZjBjYzhkMjlhZDBhNzk2Y2NkMDg0MzliZDE0
Nzk2MWUgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQ
cm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5o
CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2Vu
ZFByb3h5KCk7CiAKICAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGRhdGFiYXNlcyh2b2lk
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4sIEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyLCBpbnQ2NF90IG1heGltdW1TaXplKTsK
IAogcHJpdmF0ZToKICAgICBJREJGYWN0b3J5QmFja2VuZFByb3h5KCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCmluZGV4IDcxNDdjZjA4NmYxY2I2N2RmZGQ4ZDg5
N2FlNzU5YjEwYjMyNDBhZTEuLjVkMGFiODVkZGUwNmY4MzMyZmEzNDQ5MjYwZDk3OTE3NmY1OGEw
NjMgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCkBAIC01OCw5
ICs1OCw5IEBAIFdlYklEQkZhY3RvcnlJbXBsOjp+V2ViSURCRmFjdG9yeUltcGwoKQogewogfQog
Ci12b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29u
c3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNv
bnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5n
JiBkYXRhRGlyKQordm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIFdlYklEQkNhbGxiYWNrcyogY2Fs
bGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0
IFdlYlN0cmluZyYgZGF0YURpciwgdW5zaWduZWQgbG9uZyBsb25nIG1heGltdW1TaXplKQogewot
ICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIElEQkNhbGxi
YWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKKyAgICBt
X2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCBJREJDYWxsYmFja3NQ
cm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIG9yaWdpbiwgMCwgZGF0YURpciwgbWF4aW11bVNpemUp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFj
dG9yeUltcGwuaAppbmRleCBhMGE0ZDdkOWZlZDA1YWY0YWI4ZmU2NTUzOTgyMGI2Mzc3NjY2NmY4
Li40YmM5NDI2YTc4YjE1ZWNlOGU2N2YyM2MxZmE3ZWM0M2JiMGRhNTk3IDEwMDc1NQotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAg
ICBXZWJJREJGYWN0b3J5SW1wbCgpOwogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlJbXBsKCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdl
YlN0cmluZyYgZGVzY3JpcHRpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1
YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNj
cmlwdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJG
cmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpciwgdW5zaWduZWQgbG9uZyBsb25nIG1heGlt
dW1TaXplKTsKIAogcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZT4gbV9pZGJGYWN0b3J5QmFja2VuZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70272</attachid>
            <date>2010-10-08 11:36:55 -0700</date>
            <delta_ts>2010-10-08 11:43:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47389-20101008113653.patch</filename>
            <type>text/plain</type>
            <size>68912</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTM3NmRjYWY1ODczZjAyZjBjZDI0ODc1YjE5OTk5OThkMTdiZThmLi40NmE5MWRi
YTg5NDFlNTIyMGY1Y2RlMWM2ZjE1ZmQxNjU5YjNjYjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTAtMDggIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQiBkb2Vz
IG5vdCBoYXZlIGEgcXVvdGEgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDczODkKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2RhdGFiYXNlLXF1b3RhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRtbDogQWRkZWQuCisKIDIwMTAtMTAtMDggIFJlbmF0
YSBIb2RvdmFuICA8cmVuaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tmlrb2xhcyBaaW1tZXJtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGF0YWJhc2UtcXVvdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGF0YWJhc2UtcXVvdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNjJiNTZk
YWYwMzAyMjYzOGE3OTQ1OWM3ODQxMjgwODAxNzgzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMTE1IEBACitUZXN0cyBJbmRleGVkREIncyBxdW90YSBlbmZvcmNpbmcgbWVjaGFu
aXNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCLm9wZW4oJ25h
bWUnLCAnZGVzY3JpcHRpb24nKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQor
UEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJl
c3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3Mg
ZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUn
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlz
IHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29u
ZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50
YXJnZXQuRE9ORQorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNp
b24nKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicg
aW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitB
biBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK3NldFZlcnNpb25TdWNjZXNzKCk6CitT
dWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNT
ICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0g
bnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKKwordHJhbnMgPSBldmVudC5yZXN1bHQKK1BBU1MgdHJhbnMgIT09
IG51bGwgaXMgdHJ1ZQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK1N1Y2Nlc3MgZXZlbnQg
ZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291
cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUK
K1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3In
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQorCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIHZlcnNpb24gYi4gV2FzIG5ldyB2ZXJz
aW9uLgorUEFTUyBkYi5uYW1lIGlzICJuYW1lIgorUEFTUyBkYi5vYmplY3RTdG9yZXMgaXMgW10K
K1BBU1MgZGIub2JqZWN0U3RvcmVzLmxlbmd0aCBpcyAwCitQQVNTIGRiLm9iamVjdFN0b3Jlcy5j
b250YWlucygnJykgaXMgZmFsc2UKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0MTIzIikKK1BB
U1MgZGIub2JqZWN0U3RvcmVzIGlzIFsndGVzdDEyMyddCitQQVNTIGRiLm9iamVjdFN0b3Jlcy5s
ZW5ndGggaXMgMQorUEFTUyBkYi5vYmplY3RTdG9yZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCitQ
QVNTIGRiLm9iamVjdFN0b3Jlcy5jb250YWlucygndGVzdDQ1NicpIGlzIGZhbHNlCitQQVNTIGRi
Lm9iamVjdFN0b3Jlcy5jb250YWlucygndGVzdDEyMycpIGlzIHRydWUKK3RyYW5zID0gZGIudHJh
bnNhY3Rpb24oKQorQ3JlYXRpbmcgJ2RhdGEnIHdoaWNoIGNvbnRhaW5zIDY0SyBvZiBkYXRhCitQ
QVNTIGRhdGEubGVuZ3RoIGlzIDY1NTM2CitzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0
MTIzJykKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmly
ZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNl
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BB
U1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9O
RQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVk
KQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNl
ICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3Rh
dGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRl
IGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQo
e3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
bWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZl
bnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVu
dC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQg
ZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291
cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUK
K1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3In
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFk
ZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291
cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5h
ZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVz
dWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3Mn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBl
dmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZl
bnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
c291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRy
dWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJy
b3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJn
ZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0
YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQu
c291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3Jl
YWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFk
eVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9y
ZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUg
PSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3Mg
ZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUn
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlz
IHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29u
ZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50
YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwg
ZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZl
bnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitz
dG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFT
UyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1
Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3Rv
cmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nl
c3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2Nv
ZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxs
IGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVu
dC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRh
fSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNl
CitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgor
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKwor
c3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1
Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBu
dWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBk
YXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3Nh
Z2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291
cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVk
OgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNT
ICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUK
Kworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkK
K1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAh
PSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRl
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBp
cyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4
OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50
LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQu
c291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZp
cmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVu
dCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJj
ZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRl
ZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJj
ZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRk
KHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3Vs
dCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1Mg
J21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRy
dWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2
ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZl
bnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50
IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3Nv
dXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVl
CitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9y
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0
LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFB
ZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRy
dWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVu
dCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNv
dXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFk
eVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlT
dGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUu
YWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jl
c3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BB
U1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNz
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
IGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0g
ZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2
ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1Mg
J3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0
cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVy
cm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFy
Z2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRh
dGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBl
dmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50
LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3Rv
cmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1Mg
J3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3Jl
ID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNz
IGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2Rl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BB
U1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBp
cyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdv
bmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQu
dGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0s
IGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBp
biBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2
ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQor
c3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BB
U1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25z
dWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0
b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNj
ZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdj
b2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UK
K1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVs
bCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
ICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZl
bnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0
YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdl
JyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNT
IGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJj
ZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoK
K1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisK
K3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitT
dWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNT
ICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0g
bnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDog
ZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGlu
IGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNz
YWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNv
dXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJl
ZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2Un
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFT
UyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05F
CisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQp
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7
eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQn
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdt
ZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVu
dC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50
LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBm
aXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3Vy
Y2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQor
UEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRk
ZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQg
aXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3Vy
Y2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlT
dGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFk
ZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1
bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0
cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vzcycg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBl
dmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2
ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVu
dCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdz
b3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1
ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJv
cicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdl
dC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRh
QWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0
cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZl
bnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5z
b3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVh
ZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5
U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3Jl
LmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdy
ZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQ
QVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBp
cyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vz
cycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9
IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBl
dmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMg
dHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25l
cnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRh
cmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBk
YXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBp
cyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4g
ZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVu
dC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0
b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3Vj
Y2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9y
ZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2Vz
cyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29k
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQ
QVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwg
aXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
b25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50
LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9
LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScg
aW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBl
dmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UK
K3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQ
QVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZh
bHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29u
c3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitz
dG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorU3Vj
Y2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAn
Y29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51
bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2
ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6IGRh
dGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2Fn
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFy
Z2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5zb3Vy
Y2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6
CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQor
CitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVkKQor
U3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZh
bHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9
IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlz
IGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQoe3g6
IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBp
biBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVz
c2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQu
dGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVudC5z
b3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQgZmly
ZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNl
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BB
U1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9O
RQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFkZGVk
KQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNl
ICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3Rh
dGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRl
IGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5hZGQo
e3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
bWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZl
bnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBldmVu
dC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZlbnQg
ZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291
cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUK
K1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3In
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0YUFk
ZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50
IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291
cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5h
ZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVz
dWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3Mn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUgPSBl
dmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3MgZXZl
bnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
c291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRy
dWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJy
b3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJn
ZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwgZGF0
YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMg
dHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2
ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQu
c291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3Jl
YWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFk
eVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitzdG9y
ZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3RvcmUg
PSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nlc3Mg
ZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUn
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFT
UyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlz
IHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29u
ZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50
YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRhfSwg
ZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZl
bnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNlCitz
dG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFT
UyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1
Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworc3Rv
cmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1Y2Nl
c3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2Nv
ZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxs
IGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVu
dC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBkYXRh
fSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdl
dC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291cmNl
CitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVkOgor
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKwor
c3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkKK1N1
Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBu
dWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4OiBk
YXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3Nh
Z2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQuc291
cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZpcmVk
OgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNT
ICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlz
IHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUK
Kworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkK
K1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BB
U1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAh
PSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRl
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBp
cyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRkKHt4
OiBkYXRhfSwgZGF0YUFkZGVkKQorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50
LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK3N0b3JlID0gZXZlbnQu
c291cmNlCitzdG9yZS5hZGQoe3g6IGRhdGF9LCBkYXRhQWRkZWQpCitTdWNjZXNzIGV2ZW50IGZp
cmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVu
dCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJj
ZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKKworc3RvcmUgPSBldmVudC5zb3VyY2UKK3N0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRl
ZCkKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBp
cyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJj
ZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitzdG9yZSA9IGV2ZW50LnNvdXJjZQorc3RvcmUuYWRk
KHt4OiBkYXRhfSwgZGF0YUFkZGVkKQorRXJyb3IgZnVuY3Rpb24gY2FsbGVkOiAoMCkgRXJyb3Ig
d3JpdGluZyBkYXRhIHRvIHN0YWJsZSBzdG9yYWdlLgorRXJyb3IgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1Mg
QWRkaW5nIGRhdGEgZmFpbGVkIGR1ZSB0byBxdW90YSBlcnJvci4gRGF0YSBhZGRlZCB3YXM6IDUx
MjAgS0IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90
YS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtcXVvdGEuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZWJkZjFjMDFiY2I0ZTFjZDE0NTQyYWQwNjE5MzU4MGJhYzNiYWM5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Ut
cXVvdGEuaHRtbApAQCAtMCwwICsxLDEyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFy
ZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRl
c3RzIEluZGV4ZWREQidzIHF1b3RhIGVuZm9yY2luZyBtZWNoYW5pc20uIik7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSAKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1
bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVz
dWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQoreworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgd2luZG93
LmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC5yZXN1bHQiKTsKKworICAgIHJlc3VsdCA9IGV2
YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1
bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Cisg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gc2V0VmVyc2lvblN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2Vzcygp
OiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgd2luZG93LnRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRy
YW5zICE9PSBudWxsIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworCisgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiLCBjcmVhdGVOZXdPYmplY3RTdG9y
ZSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZU5ld09iamVjdFN0b3JlKCkKK3sKKyAgICB2ZXJpZnlT
dWNjZXNzRXZlbnQoZXZlbnQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lv
biIsICJ2ZXJzaW9uIGIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLm5hbWUiLCAi
bmFtZSIpOworICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZXMiLCAiW10iKTsKKyAgICBzaG91
bGRCZSgiZGIub2JqZWN0U3RvcmVzLmxlbmd0aCIsICIwIik7CisgICAgc2hvdWxkQmUoImRiLm9i
amVjdFN0b3Jlcy5jb250YWlucygnJykiLCAiZmFsc2UiKTsKKworICAgIG9iamVjdFN0b3JlID0g
ZXZhbEFuZExvZygnZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QxMjMiKScpOw0KKyAgICBjaGVj
a09iamVjdFN0b3JlKCk7DQorICAgIGNvbW1pdEFuZENvbnRpbnVlKCk7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrT2JqZWN0U3RvcmUoKQoreworICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZXMiLCAi
Wyd0ZXN0MTIzJ10iKTsKKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVzLmxlbmd0aCIsICIx
Iik7CisgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3Jlcy5jb250YWlucygnJykiLCAiZmFsc2Ui
KTsKKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVzLmNvbnRhaW5zKCd0ZXN0NDU2JykiLCAi
ZmFsc2UiKTsKKyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVzLmNvbnRhaW5zKCd0ZXN0MTIz
JykiLCAidHJ1ZSIpOw0KK30NCisNCitmdW5jdGlvbiBjb21taXRBbmRDb250aW51ZSgpDQorew0K
KyAgICB3aW5kb3cuc2V0VGltZW91dChjaGVja1F1b3RhRW5mb3JjaW5nLCAwKTsKK30NCisNCitm
dW5jdGlvbiBjaGVja1F1b3RhRW5mb3JjaW5nKCkNCit7DQorICAgIHZhciB0cmFucyA9IGV2YWxB
bmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oKSIpOw0KKyAgICB0cmFucy5vbmFib3J0ID0g
dGVzdENvbXBsZXRlOw0KKyAgICB0cmFucy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRl
Q2FsbGJhY2s7DQorICAgIGRlYnVnKCJDcmVhdGluZyAnZGF0YScgd2hpY2ggY29udGFpbnMgNjRL
IG9mIGRhdGEiKTsNCisgICAgd2luZG93LmRhdGEgPSAiWCI7DQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTY7IGkrKykNCisgICAgICAgIGRhdGEgKz0gZGF0YTsNCisgICAgc2hvdWxkQmUoImRh
dGEubGVuZ3RoIiwgIjY1NTM2Iik7DQorICAgIHdpbmRvdy5kYXRhQWRkZWQgPSAwOw0KKyAgICB3
aW5kb3cuc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCd0ZXN0
MTIzJykiKTsNCisgICAgYWRkRGF0YSgpOw0KK30NCisNCitmdW5jdGlvbiBhZGREYXRhKCkNCit7
DQorICAgIGlmIChkYXRhQWRkZWQgPCA1ICogMTAyNCAqIDEwMjQpIHsNCisgICAgICAgIGlmIChk
YXRhQWRkZWQgPiAwKSB7DQorICAgICAgICAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsN
CisgICAgICAgICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQuc291cmNlIik7
DQorICAgICAgICB9DQorICAgIH0gZWxzZSB7DQorICAgICAgICB0ZXN0RmFpbGVkKCJhZGRlZCBt
b3JlIHRoYW4gcXVvdGEiKTsNCisgICAgICAgIGRvbmUoKTsNCisgICAgICAgIHJldHVybjsNCisg
ICAgfQ0KKyAgICBkYXRhQWRkZWQgKz0gNjU1MzY7DQorICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
InN0b3JlLmFkZCh7eDogZGF0YX0sIGRhdGFBZGRlZCkiKTsNCisgICAgcmVzdWx0Lm9uc3VjY2Vz
cyA9IGFkZERhdGE7DQorICAgIHJlc3VsdC5vbmVycm9yID0gbG9nRXJyb3I7DQorfQ0KKw0KK2Z1
bmN0aW9uIGxvZ0Vycm9yKCkNCit7DQorICAgIGRlYnVnKCJFcnJvciBmdW5jdGlvbiBjYWxsZWQ6
ICgiICsgZXZlbnQuY29kZSArICIpICIgKyBldmVudC5tZXNzYWdlKTsNCisgICAgdmVyaWZ5RXJy
b3JFdmVudChldmVudCk7DQorfQ0KKw0KK2Z1bmN0aW9uIHRlc3RDb21wbGV0ZSgpDQorew0KKyAg
ICB0ZXN0UGFzc2VkKCJBZGRpbmcgZGF0YSBmYWlsZWQgZHVlIHRvIHF1b3RhIGVycm9yLiBEYXRh
IGFkZGVkIHdhczogIiArIGRhdGFBZGRlZCAvIDEwMjQgKyAiIEtCIik7DQorICAgIGRvbmUoKTsK
K30KKwordGVzdCgpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhYmZmYjAwZjdkYTJmYzJiM2Y1ODU1NTIxNjYzY2JiMTc2
MGNhZjEuLmFmMjFhMWU2MzVkZTliMzFlZDc2OGJkZWZjODIyNjg2NDQ5OGJmMTkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDIgQEAKKzIwMTAtMTAtMDggIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWRE
QiBkb2VzIG5vdCBoYXZlIGEgcXVvdGEgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDczODkKKworICAgICAgICBUZXN0OiBzdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1xdW90YS5odG1sCisKKyAgICAgICAgQWRkIGEgc2ltcGxlIG1l
Y2hhbmlzbSBmb3IgZW5mb3JjaW5nIGEgbWF4aW11bSBzaXplCisgICAgICAgIGZvciBlYWNoIG9y
aWdpbiB1c2luZyBJbmRleGVkREIuIE5vdGUgdGhhdCB0aGlzIGRlcGVuZHMKKyAgICAgICAgb24g
aGF2aW5nIG9uZSBTUUxpdGUgZGF0YWJhc2UgZmlsZSBwZXIgb3JpZ2luLCB3aGljaCBpcworICAg
ICAgICBhZGRyZXNzZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIHBhZ2UvR3Jv
dXBTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcm91cFNldHRpbmdzOjpHcm91cFNl
dHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwU2V0dGluZ3M6OnNldEluZGV4ZWREQlF1
b3RhQnl0ZXMpOgorICAgICAgICAqIHBhZ2UvR3JvdXBTZXR0aW5ncy5oOgorICAgICAgICAoV2Vi
Q29yZTo6R3JvdXBTZXR0aW5nczo6aW5kZXhlZERCUXVvdGFCeXRlcyk6CisgICAgICAgICogc3Rv
cmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlSW50ZXJuYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbklu
dGVybmFsKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRmFjdG9yeTo6b3Blbik6CisgICAgICAgICogc3RvcmFnZS9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlblNRTGl0ZURhdGFiYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbik6CisgICAgICAgICog
c3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnB1dE9iamVjdFN0b3JlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpwdXRJbmRleERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4SW50ZXJuYWwpOgorICAgICAgICAqIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorCiAyMDEwLTEwLTA4ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRp
bmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcAppbmRleCA1OGFiNzRkMDUz
ZWUzNzRlMGM5ZDRiZWM3ODIxMGNiZWM0MWNhZDk4Li4wNzYyODYxZTQ3MjZhNDBiOTUyMDhiZWEx
YWIzMzIzNWVlMWY5NWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwCkBAIC0zMCw2ICszMCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogR3JvdXBTZXR0aW5nczo6R3JvdXBTZXR0aW5ncygpCiAg
ICAgOiBtX2xvY2FsU3RvcmFnZVF1b3RhQnl0ZXMoNSAqIDEwMjQgKiAxMDI0KSAvLyBTdWdnZXN0
ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCisgICAgLCBtX2luZGV4ZWREQlF1b3RhQnl0ZXMoNSAqIDEw
MjQgKiAxMDI0KQogewogfQogCkBAIC00Myw0ICs0NCwxMCBAQCB2b2lkIEdyb3VwU2V0dGluZ3M6
OnNldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgbV9pbmRl
eGVkREJEYXRhYmFzZVBhdGggPSBwYXRoOwogfQogCit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldElu
ZGV4ZWREQlF1b3RhQnl0ZXMoaW50NjRfdCBxdW90YSkKK3sKKyAgICBtX2luZGV4ZWREQlF1b3Rh
Qnl0ZXMgPSBxdW90YTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGlu
Z3MuaAppbmRleCA2MmE1ZGQyODhiYzk1NGI1ZGY5ZmVkZGJiMGJmNjY3NzYxMGU2ODY0Li5mYjZm
NmI1MzA1Y2Y4MWZkNTZhZTQ0Y2Q1ODVjMDVkYzA2ZjZkN2U1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvR3JvdXBTZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmgK
QEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlUXVvdGFC
eXRlcyh1bnNpZ25lZCk7CiAgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVvdGFCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQogCisgICAgdm9pZCBzZXRJ
bmRleGVkREJRdW90YUJ5dGVzKGludDY0X3QpOworICAgIGludDY0X3QgaW5kZXhlZERCUXVvdGFC
eXRlcygpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhlZERCUXVvdGFCeXRlczsgfQorCiAgICAgdm9p
ZCBzZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CiAgICAgY29uc3QgU3Ry
aW5nJiBpbmRleGVkREJEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRh
dGFiYXNlUGF0aDsgfQogCkBAIC01MSw2ICs1NCw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25l
ZCBtX2xvY2FsU3RvcmFnZVF1b3RhQnl0ZXM7CiAgICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJh
c2VQYXRoOworICAgIGludDY0X3QgbV9pbmRleGVkREJRdW90YUJ5dGVzOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
Y3BwCmluZGV4IGJlNmQxMzZlODNhODIwMGU1MmRjMDBmZmI1MThiZWVmYjM4ZTg4MjMuLjA0MDFm
ZmUxNmI3NjU5MzBmZGM2MDBiNGQ4MTYzMzcyYTcxZjI3MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBQYXNzUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9iamVjdFN0b3JlcygpIGNv
bnN0CiAgICAgcmV0dXJuIG9iamVjdFN0b3JlTmFtZXMucmVsZWFzZSgpOwogfQogCi1QYXNzUmVm
UHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24pCitQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFj
ZT4gIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb25QdHIpCiB7CiAgICAgaWYgKG1f
b2JqZWN0U3RvcmVzLmNvbnRhaW5zKG5hbWUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaHJvdyBD
T05TVFJBSU5UX0VSUiBpbiB0aGlzIGNhc2UuCkBAIC0xMzgsOCArMTM4LDggQEAgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+ICBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpjcmVhdGVPYmplY3QKICAgICBBU1NFUlQob2JqZWN0U3RvcmUtPm5hbWUoKSA9PSBuYW1lKTsK
IAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBkYXRhYmFzZSA9IHRoaXM7Ci0g
ICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25QdHIg
PSB0cmFuc2FjdGlvbjsKLSAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRl
Q2FsbGJhY2tUYXNrKCZJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVPYmplY3RTdG9yZUlu
dGVybmFsLCBkYXRhYmFzZSwgb2JqZWN0U3RvcmUsIHRyYW5zYWN0aW9uUHRyKSwKKyAgICBSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiA9IHRyYW5zYWN0
aW9uUHRyOworICAgIGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhjcmVhdGVDYWxsYmFj
a1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlSW50ZXJuYWws
IGRhdGFiYXNlLCBvYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24pLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJklEQkRhdGFiYXNlQmFja2VuZElt
cGw6OnJlbW92ZU9iamVjdFN0b3JlRnJvbU1hcCwgZGF0YWJhc2UsIG9iamVjdFN0b3JlKSkpIHsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTUxLDEzICsxNTEsMTcgQEAgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+ICBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpjcmVhdGVPYmplY3QKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0
U3RvcmVJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbXBsPiBkYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsPiBvYmplY3RTdG9yZSwgIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiB0cmFuc2FjdGlvbikKIHsKICAgICBTUUxpdGVTdGF0ZW1lbnQgaW5zZXJ0KGRhdGFi
YXNlLT5zcWxpdGVEYXRhYmFzZSgpLCAiSU5TRVJUIElOVE8gT2JqZWN0U3RvcmVzIChuYW1lLCBr
ZXlQYXRoLCBkb0F1dG9JbmNyZW1lbnQpIFZBTFVFUyAoPywgPywgPykiKTsKLSAgICBib29sIG9r
ID0gaW5zZXJ0LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKLSAgICBBU1NFUlRfVU5VU0VEKG9r
LCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgaWYgKGluc2VydC5w
cmVwYXJlKCkgIT0gU1FMUmVzdWx0T2spIHsKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaW5zZXJ0LmJpbmRUZXh0KDEsIG9iamVjdFN0
b3JlLT5uYW1lKCkpOwogICAgIGluc2VydC5iaW5kVGV4dCgyLCBvYmplY3RTdG9yZS0+a2V5UGF0
aCgpKTsKICAgICBpbnNlcnQuYmluZEludCgzLCBzdGF0aWNfY2FzdDxpbnQ+KG9iamVjdFN0b3Jl
LT5hdXRvSW5jcmVtZW50KCkpKTsKLSAgICBvayA9IGluc2VydC5zdGVwKCkgPT0gU1FMUmVzdWx0
RG9uZTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3Ig
aGFuZGxpbmcuCisgICAgaWYgKGluc2VydC5zdGVwKCkgIT0gU1FMUmVzdWx0RG9uZSkgeworICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBp
bnQ2NF90IGlkID0gZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEluc2VydFJvd0lEKCk7
CiAgICAgb2JqZWN0U3RvcmUtPnNldElkKGlkKTsKICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29tcGxl
dGVUYXNrRXZlbnRzKCk7CkBAIC0xODEsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgZG9EZWxldGUo
U1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBjaGFyKiBzcWwsIGludDY0X3QgaWQpCiAgICAgQVNT
RVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgogfQog
Ci12b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJlbW92ZU9iamVjdFN0b3JlKGNvbnN0IFN0
cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikK
K3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlT2JqZWN0U3RvcmUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRy
KQogewogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSA9
IG1fb2JqZWN0U3RvcmVzLmdldChuYW1lKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKSB7CkBAIC0x
ODksOCArMTkzLDggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpyZW1vdmVPYmplY3RT
dG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW8KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UgPSB0aGlz
OwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9u
UHRyID0gdHJhbnNhY3Rpb247Ci0gICAgaWYgKCF0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKGNy
ZWF0ZUNhbGxiYWNrVGFzaygmSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlT2JqZWN0U3Rv
cmVJbnRlcm5hbCwgZGF0YWJhc2UsIG9iamVjdFN0b3JlLCB0cmFuc2FjdGlvblB0ciksCisgICAg
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24gPSB0cmFu
c2FjdGlvblB0cjsKKyAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRlQ2Fs
bGJhY2tUYXNrKCZJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpyZW1vdmVPYmplY3RTdG9yZUludGVy
bmFsLCBkYXRhYmFzZSwgb2JqZWN0U3RvcmUsIHRyYW5zYWN0aW9uKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjphZGRPYmplY3RTdG9yZVRvTWFwLCBkYXRhYmFzZSwgb2JqZWN0U3RvcmUpKSkgewog
ICAgICAgICAvLyBGSVhNRTogUmFpc2UgTk9UX0FMTE9XRURfRVJSIGlmIHRoZSBhYm92ZSBmYWls
cy4KICAgICAgICAgcmV0dXJuOwpAQCAtMjIzLDcgKzIyNywxMiBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRy
PElEQkNhbAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1w
bD4gZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IHRyYW5zYWN0aW9uKQogewogICAgIGRhdGFiYXNlLT5tX3ZlcnNpb24gPSB2ZXJzaW9uOwotICAg
IHNldE1ldGFEYXRhKGRhdGFiYXNlLT5tX3NxbGl0ZURhdGFiYXNlLmdldCgpLCBkYXRhYmFzZS0+
bV9uYW1lLCBkYXRhYmFzZS0+bV9kZXNjcmlwdGlvbiwgZGF0YWJhc2UtPm1fdmVyc2lvbik7Cisg
ICAgaWYgKCFzZXRNZXRhRGF0YShkYXRhYmFzZS0+bV9zcWxpdGVEYXRhYmFzZS5nZXQoKSwgZGF0
YWJhc2UtPm1fbmFtZSwgZGF0YWJhc2UtPm1fZGVzY3JpcHRpb24sIGRhdGFiYXNlLT5tX3ZlcnNp
b24pKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGUgSW5kZXhlZCBEYXRhYmFzZSBzcGVjaWZpY2F0
aW9uIGRvZXMgbm90IGhhdmUgYW4gZXJyb3IgY29kZSBkZWRpY2F0ZWQgdG8gSS9PIGVycm9ycy4K
KyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlIsICJFcnJvciB3cml0aW5nIGRhdGEgdG8gc3Rh
YmxlIHN0b3JhZ2UuIikpOworICAgICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0cmFuc2FjdGlvbik7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5LmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJGYWN0b3J5LmNwcAppbmRleCBlMWM4YzA3Y2U5NGQwYTViYWFhOGJkN2E1Nzk0
YjQ2MWM4YWUzOTdhLi4yM2RiYmNhNjgyZTdhZjk5ZjA2YThjOTRjMzk2YWI3M2NmMmM5YTI2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeS5jcHAKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkZhY3RvcnkuY3BwCkBAIC02OCw3ICs2OCw4IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVl
c3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCAw
KTsKLSAgICBtX2ZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCByZXF1ZXN0
LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnQtPmZyYW1lKCksIGRvY3VtZW50
LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5pbmRleGVkREJEYXRhYmFzZVBhdGgo
KSk7CisgICAgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncyA9IGRvY3VtZW50LT5wYWdlKCkt
Pmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpOworICAgIG1fZmFjdG9yeUJhY2tlbmQtPm9wZW4obmFt
ZSwgZGVzY3JpcHRpb24sIHJlcXVlc3QsIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBkb2N1
bWVudC0+ZnJhbWUoKSwgZ3JvdXBTZXR0aW5ncy0+aW5kZXhlZERCRGF0YWJhc2VQYXRoKCksIGdy
b3VwU2V0dGluZ3MtPmluZGV4ZWREQlF1b3RhQnl0ZXMoKSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwu
Y3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKaW5kZXggNjIx
OWMyZGVkNGIxYjNhOTcyYTAwNDYzOTA1NmJkMmMzNjBmODNmMC4uMzA2M2I0MTUwNGE0NWEyMTc5
NzJmYjRiMjgwNmJjYWZmODQzNzNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjp+SURC
RmFjdG9yeUJhY2tlbmRJbXBsKCkKIHsKIH0KIAotc3RhdGljIFBhc3NPd25QdHI8U1FMaXRlRGF0
YWJhc2U+IG9wZW5TUUxpdGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4s
IFN0cmluZyBuYW1lLCBjb25zdCBTdHJpbmcmIHBhdGhCYXNlKQorc3RhdGljIFBhc3NPd25QdHI8
U1FMaXRlRGF0YWJhc2U+IG9wZW5TUUxpdGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4sIFN0cmluZyBuYW1lLCBjb25zdCBTdHJpbmcmIHBhdGhCYXNlLCBpbnQ2NF90IG1h
eGltdW1TaXplKQogewogICAgIFN0cmluZyBwYXRoID0gIjptZW1vcnk6IjsKICAgICBpZiAoIXBh
dGhCYXNlLmlzRW1wdHkoKSkgewpAQCAtNzIsNiArNzIsNyBAQCBzdGF0aWMgUGFzc093blB0cjxT
UUxpdGVEYXRhYmFzZT4gb3BlblNRTGl0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyAgICBzcWxpdGVEYXRhYmFzZS0+c2V0
TWF4aW11bVNpemUobWF4aW11bVNpemUpOwogICAgIHJldHVybiBzcWxpdGVEYXRhYmFzZS5yZWxl
YXNlKCk7CiB9CiAKQEAgLTExNyw3ICsxMTgsNyBAQCBzdGF0aWMgYm9vbCBjcmVhdGVUYWJsZXMo
U1FMaXRlRGF0YWJhc2UqIHNxbGl0ZURhdGFiYXNlKQogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBGcmFtZSosIGNvbnN0
IFN0cmluZyYgZGF0YURpcikKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlP
cmlnaW4sIEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyLCBpbnQ2NF90IG1heGltdW1TaXpl
KQogewogICAgIElEQkRhdGFiYXNlQmFja2VuZE1hcDo6aXRlcmF0b3IgaXQgPSBtX2RhdGFiYXNl
QmFja2VuZE1hcC5maW5kKG5hbWUpOwogICAgIGlmIChpdCAhPSBtX2RhdGFiYXNlQmFja2VuZE1h
cC5lbmQoKSkgewpAQCAtMTI5LDcgKzEzMCw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBs
OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwKIAog
ICAgIC8vIEZJWE1FOiBFdmVyeXRoaW5nIGZyb20gbm93IG9uIHNob3VsZCBiZSBkb25lIG9uIGFu
b3RoZXIgdGhyZWFkLgogCi0gICAgT3duUHRyPFNRTGl0ZURhdGFiYXNlPiBzcWxpdGVEYXRhYmFz
ZSA9IG9wZW5TUUxpdGVEYXRhYmFzZShzZWN1cml0eU9yaWdpbi5nZXQoKSwgbmFtZSwgZGF0YURp
cik7CisgICAgT3duUHRyPFNRTGl0ZURhdGFiYXNlPiBzcWxpdGVEYXRhYmFzZSA9IG9wZW5TUUxp
dGVEYXRhYmFzZShzZWN1cml0eU9yaWdpbi5nZXQoKSwgbmFtZSwgZGF0YURpciwgbWF4aW11bVNp
emUpOwogICAgIGlmICghc3FsaXRlRGF0YWJhc2UgfHwgIWNyZWF0ZVRhYmxlcyhzcWxpdGVEYXRh
YmFzZS5nZXQoKSkpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlIsICJJbnRlcm5hbCBl
cnJvci4iKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuaAppbmRleCA3NmU1NDVlYTJlMTYxODU4YmJkZWFjYmI3MTVhNDUyY2Q0OTZhYTJjLi4y
MTFiN2ZhMTBlNDcwNjU0MjgzYzI5ZTFiODRhZDk5ZGZhMGE2MjU3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1l
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgY29uc3QgU3RyaW5n
JiBkYXRhRGlyLCBpbnQ2NF90IG1heGltdW1TaXplKTsKIAogICAgIHN0YXRpYyBTdHJpbmcgZGF0
YWJhc2VGaWxlTmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFNlY3VyaXR5T3JpZ2luKik7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIGIv
V2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNDkxNDAy
NDNlYTY0MGQwN2RhMGYwOTFkZTI5NDhjNDZlMjhhNjg3Mi4uN2Q5MjJjMzNkZGQzODA0YWZmMzA1
MzYzNTAyMTMzZmNjOTFmODI5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFs
IH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIG9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIGNv
bnN0IFN0cmluZyYgZGF0YURpcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIsIGludDY0X3QgbWF4aW11bVNpemUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNw
cAppbmRleCAwOWZkOTcxNzdkMjI4OGU1ZGU2MDkwZDU5Yzk5N2FiNDM4ZmRmNGU3Li5jNzJjMmRi
MWE0ZmYyOGNmN2U5Y2EyYjk3MDMzYjNkYzhkYTI3MzkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0xMzEsMTMgKzEzMSwxMyBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxJREJLZXk+IGZldGNoS2V5RnJvbUtleVBhdGgoU2VyaWFsaXplZFNjcmlw
dFZhbHVlKiB2YWx1ZSwgY29ucwogICAgIHJldHVybiBrZXlzWzBdLnJlbGVhc2UoKTsKIH0KIAot
c3RhdGljIHZvaWQgcHV0T2JqZWN0U3RvcmVEYXRhKFNRTGl0ZURhdGFiYXNlJiBkYiwgSURCS2V5
KiBrZXksIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogdmFsdWUsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCogZGF0YVJvd0lkKQorc3RhdGljIGJvb2wgcHV0T2JqZWN0U3RvcmVEYXRhKFNR
TGl0ZURhdGFiYXNlJiBkYiwgSURCS2V5KiBrZXksIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogdmFs
dWUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCogZGF0YVJvd0lkKQogewogICAgIFN0
cmluZyBzcWwgPSAqZGF0YVJvd0lkICE9IC0xID8gIlVQREFURSBPYmplY3RTdG9yZURhdGEgU0VU
IGtleVN0cmluZyA9ID8sIGtleURhdGUgPSA/LCBrZXlOdW1iZXIgPSA/LCB2YWx1ZSA9ID8gV0hF
UkUgaWQgPSA/IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIklOU0VSVCBJ
TlRPIE9iamVjdFN0b3JlRGF0YSAoa2V5U3RyaW5nLCBrZXlEYXRlLCBrZXlOdW1iZXIsIHZhbHVl
LCBvYmplY3RTdG9yZUlkKSBWQUxVRVMgKD8sID8sID8sID8sID8pIjsKICAgICBTUUxpdGVTdGF0
ZW1lbnQgcXVlcnkoZGIsIHNxbCk7Ci0gICAgYm9vbCBvayA9IHF1ZXJ5LnByZXBhcmUoKSA9PSBT
UUxSZXN1bHRPazsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIg
ZXJyb3IgaGFuZGxpbmc/CisgICAgaWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGtleS0+YmluZFdpdGhOdWxscyhxdWVyeSwgMSk7
CiAgICAgcXVlcnkuYmluZFRleHQoNCwgdmFsdWUtPnRvV2lyZVN0cmluZygpKTsKICAgICBpZiAo
KmRhdGFSb3dJZCAhPSAtMSkKQEAgLTE0NSw0NCArMTQ1LDQ2IEBAIHN0YXRpYyB2b2lkIHB1dE9i
amVjdFN0b3JlRGF0YShTUUxpdGVEYXRhYmFzZSYgZGIsIElEQktleSoga2V5LCBTZXJpYWxpemVk
U2NyaXB0CiAgICAgZWxzZQogICAgICAgICBxdWVyeS5iaW5kSW50NjQoNSwgb2JqZWN0U3RvcmVJ
ZCk7CiAKLSAgICBvayA9IHF1ZXJ5LnN0ZXAoKSA9PSBTUUxSZXN1bHREb25lOwotICAgIEFTU0VS
VF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZz8KKyAgICBp
ZiAocXVlcnkuc3RlcCgpICE9IFNRTFJlc3VsdERvbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmICgqZGF0YVJvd0lkID09IC0xKQogICAgICAgICAqZGF0YVJvd0lkID0gZGIubGFz
dEluc2VydFJvd0lEKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgcHV0
SW5kZXhEYXRhKFNRTGl0ZURhdGFiYXNlJiBkYiwgSURCS2V5KiBrZXksIGludDY0X3QgaW5kZXhJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZURhdGFJZCkKK3N0YXRpYyBpbnQgcHV0SW5kZXhEYXRhKFNR
TGl0ZURhdGFiYXNlJiBkYiwgSURCS2V5KiBrZXksIGludDY0X3QgaW5kZXhJZCwgaW50NjRfdCBv
YmplY3RTdG9yZURhdGFJZCkKIHsKICAgICBTUUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoZGIs
ICJERUxFVEUgRlJPTSBJbmRleERhdGEgV0hFUkUgb2JqZWN0U3RvcmVEYXRhSWQgPSA/Iik7Ci0g
ICAgYm9vbCBvayA9IGRlbGV0ZVF1ZXJ5LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKLSAgICBB
U1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisg
ICAgaWYgKGRlbGV0ZVF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGRlbGV0ZVF1ZXJ5LmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZURhdGFJ
ZCk7Ci0gICAgb2sgPSBkZWxldGVRdWVyeS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKLSAgICBB
U1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisg
ICAgaWYgKGRlbGV0ZVF1ZXJ5LnN0ZXAoKSAhPSBTUUxSZXN1bHREb25lKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcHV0UXVlcnkoZGIsICJJTlNFUlQgSU5U
TyBJbmRleERhdGEgKGtleVN0cmluZywga2V5RGF0ZSwga2V5TnVtYmVyLCBpbmRleElkLCBvYmpl
Y3RTdG9yZURhdGFJZCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/KSIpOwotICAgIG9rID0gcHV0UXVl
cnkucHJlcGFyZSgpID09IFNRTFJlc3VsdE9rOwotICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsg
Ly8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZz8KKyAgICBpZiAocHV0UXVlcnkucHJlcGFy
ZSgpICE9IFNRTFJlc3VsdE9rKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAga2V5LT5iaW5k
V2l0aE51bGxzKHB1dFF1ZXJ5LCAxKTsKICAgICBwdXRRdWVyeS5iaW5kSW50NjQoNCwgaW5kZXhJ
ZCk7CiAgICAgcHV0UXVlcnkuYmluZEludDY0KDUsIG9iamVjdFN0b3JlRGF0YUlkKTsKIAotICAg
IG9rID0gcHV0UXVlcnkuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7Ci0gICAgQVNTRVJUX1VOVVNF
RChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nPworICAgIHJldHVybiBw
dXRRdWVyeS5zdGVwKCkgPT0gU1FMUmVzdWx0RG9uZTsKIH0KIAotdm9pZCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjpwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZh
bHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBib29sIGFkZE9ubHksIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24pCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dChQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5
PiBwcnBLZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxi
YWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvblB0cikKIHsK
ICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUgPSB0aGlz
OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAg
ICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcyA9IHBycENhbGxiYWNrczsKLSAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVs
ZVRhc2soY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJ
bnRlcm5hbCwgb2JqZWN0U3RvcmUsIHZhbHVlLCBrZXksIGFkZE9ubHksIGNhbGxiYWNrcykpKQor
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0g
dHJhbnNhY3Rpb25QdHI7CisgICAgaWYgKCF0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKGNyZWF0
ZUNhbGxiYWNrVGFzaygmSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwsIG9i
amVjdFN0b3JlLCB2YWx1ZSwga2V5LCBhZGRPbmx5LCBjYWxsYmFja3MsIHRyYW5zYWN0aW9uKSkp
CiAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURC
RGF0YWJhc2VFeGNlcHRpb246Ok5PVF9BTExPV0VEX0VSUiwgInB1dCBtdXN0IGJlIGNhbGxlZCBp
biB0aGUgY29udGV4dCBvZiBhIHRyYW5zYWN0aW9uLiIpKTsKIH0KIAotdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJw
S2V5LCBib29sIGFkZE9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0
b3JlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUsIFBhc3NSZWZQ
dHI8SURCS2V5PiBwcnBLZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRy
YW5zYWN0aW9uKQogewogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0g
cHJwVmFsdWU7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwpAQCAtMjI3LDE0ICsy
MjksMjUgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIEJlZm9yZSB0aGlzIHBvaW50LCBkb24ndCBkbyBhbnkgbXV0YXRpb24uICBBZnRl
ciB0aGlzIHBvaW50LCBkb24ndCBlcnJvciBvdXQuCisgICAgLy8gQmVmb3JlIHRoaXMgcG9pbnQs
IGRvbid0IGRvIGFueSBtdXRhdGlvbi4gIEFmdGVyIHRoaXMgcG9pbnQsIHJvbGxiYWNrIHRoZSB0
cmFuc2FjdGlvbiBpbiBjYXNlIG9mIGVycm9yLgogCiAgICAgaW50NjRfdCBkYXRhUm93SWQgPSBp
c0V4aXN0aW5nVmFsdWUgPyBnZXRRdWVyeS5nZXRDb2x1bW5JbnQoMCkgOiAtMTsKLSAgICBwdXRP
YmplY3RTdG9yZURhdGEob2JqZWN0U3RvcmUtPnNxbGl0ZURhdGFiYXNlKCksIGtleS5nZXQoKSwg
dmFsdWUuZ2V0KCksIG9iamVjdFN0b3JlLT5pZCgpLCAmZGF0YVJvd0lkKTsKKyAgICBpZiAoIXB1
dE9iamVjdFN0b3JlRGF0YShvYmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKSwga2V5LmdldCgp
LCB2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICZkYXRhUm93SWQpKSB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGUgSW5kZXhlZCBEYXRhYmFzZSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IGhh
dmUgYW4gZXJyb3IgY29kZSBkZWRpY2F0ZWQgdG8gSS9PIGVycm9ycy4KKyAgICAgICAgY2FsbGJh
Y2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VU5LTk9XTl9FUlIsICJFcnJvciB3cml0aW5nIGRhdGEgdG8gc3RhYmxlIHN0b3JhZ2UuIikp
OworICAgICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIGludCBpID0gMDsKLSAgICBmb3IgKEluZGV4TWFwOjppdGVyYXRvciBpdCA9IG9iamVj
dFN0b3JlLT5tX2luZGV4ZXMuYmVnaW4oKTsgaXQgIT0gb2JqZWN0U3RvcmUtPm1faW5kZXhlcy5l
bmQoKTsgKytpdCwgKytpKQotICAgICAgICBwdXRJbmRleERhdGEob2JqZWN0U3RvcmUtPnNxbGl0
ZURhdGFiYXNlKCksIGluZGV4S2V5c1tpXS5nZXQoKSwgaXQtPnNlY29uZC0+aWQoKSwgZGF0YVJv
d0lkKTsKKyAgICBmb3IgKEluZGV4TWFwOjppdGVyYXRvciBpdCA9IG9iamVjdFN0b3JlLT5tX2lu
ZGV4ZXMuYmVnaW4oKTsgaXQgIT0gb2JqZWN0U3RvcmUtPm1faW5kZXhlcy5lbmQoKTsgKytpdCwg
KytpKSB7CisgICAgICAgIGlmICghcHV0SW5kZXhEYXRhKG9iamVjdFN0b3JlLT5zcWxpdGVEYXRh
YmFzZSgpLCBpbmRleEtleXNbaV0uZ2V0KCksIGl0LT5zZWNvbmQtPmlkKCksIGRhdGFSb3dJZCkp
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgSW5kZXhlZCBEYXRhYmFzZSBzcGVjaWZpY2F0
aW9uIGRvZXMgbm90IGhhdmUgYW4gZXJyb3IgY29kZSBkZWRpY2F0ZWQgdG8gSS9PIGVycm9ycy4K
KyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUo
SURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGluZyBkYXRhIHRv
IHN0YWJsZSBzdG9yYWdlLiIpKTsKKyAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogCiAgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3Moa2V5LmdldCgpKTsKIH0KQEAgLTI4NywxNCArMzAwLDE4IEBAIFBhc3NSZWZQdHI8
SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVh
dGVJbmRleChjb25zCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1w
bD4gaW5kZXgsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFu
c2FjdGlvbikKIHsKICAgICBTUUxpdGVTdGF0ZW1lbnQgaW5zZXJ0KG9iamVjdFN0b3JlLT5zcWxp
dGVEYXRhYmFzZSgpLCAiSU5TRVJUIElOVE8gSW5kZXhlcyAob2JqZWN0U3RvcmVJZCwgbmFtZSwg
a2V5UGF0aCwgaXNVbmlxdWUpIFZBTFVFUyAoPywgPywgPywgPykiKTsKLSAgICBib29sIG9rID0g
aW5zZXJ0LnByZXBhcmUoKSA9PSBTUUxSZXN1bHRPazsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBv
ayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcuCisgICAgaWYgKCFpbnNlcnQucHJl
cGFyZSgpKSB7CisgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworICAgICAgICByZXR1cm47
CisgICAgfQogICAgIGluc2VydC5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmUtPm1faWQpOwogICAg
IGluc2VydC5iaW5kVGV4dCgyLCBpbmRleC0+bmFtZSgpKTsKICAgICBpbnNlcnQuYmluZFRleHQo
MywgaW5kZXgtPmtleVBhdGgoKSk7CiAgICAgaW5zZXJ0LmJpbmRJbnQoNCwgc3RhdGljX2Nhc3Q8
aW50PihpbmRleC0+dW5pcXVlKCkpKTsKLSAgICBvayA9IGluc2VydC5zdGVwKCkgPT0gU1FMUmVz
dWx0RG9uZTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7IC8vIEZJWE1FOiBCZXR0ZXIgZXJy
b3IgaGFuZGxpbmcuCisgICAgaWYgKCFpbnNlcnQuc3RlcCgpKSB7CisgICAgICAgIHRyYW5zYWN0
aW9uLT5hYm9ydCgpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGludDY0X3QgaWQgPSBv
YmplY3RTdG9yZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0SW5zZXJ0Um93SUQoKTsKICAgICBpbmRl
eC0+c2V0SWQoaWQpOwogICAgIHRyYW5zYWN0aW9uLT5kaWRDb21wbGV0ZVRhc2tFdmVudHMoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCmluZGV4IDMxZjk5
MDgwNTIxNTI1ZGUzZjFiOGQzYzk4ZDFlYWVhMjRhZjg2ZjEuLmUwOGY5NjBmNDNkODZhMjZkMjY5
Nzg4YjcyZjIzZDgyMDI4Mjc1OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogICAgIFNRTGl0ZURhdGFi
YXNlJiBzcWxpdGVEYXRhYmFzZSgpIGNvbnN0OwogCiAgICAgc3RhdGljIHZvaWQgZ2V0SW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
Pik7Ci0gICAgc3RhdGljIHZvaWQgcHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgYm9vbCBhZGRP
bmx5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHN0YXRpYyB2b2lkIHB1dEludGVy
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NS
ZWZQdHI8SURCS2V5PiBrZXksIGJvb2wgYWRkT25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24p
OwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktl
eT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogICAgIHN0YXRpYyB2b2lkIGNyZWF0
ZUluZGV4SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4sIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgc3RhdGljIHZv
aWQgcmVtb3ZlSW5kZXhJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJ
bXBsPiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDQzZTE4ZWNiNzVmOTljMWZjZmUwYTczMmEzZTZiMThmZjc4MGEyNTQuLjI4NTBj
NmE0ZGIyYjY5NTk1MzU4NDQwNTRhNGY5Mjg0MWRjODI1MjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEwLTEwLTA4ICBBbmRyZWkgUG9wZXNjdSAgPGFuZHJlaXBAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmRl
eGVkREIgZG9lcyBub3QgaGF2ZSBhIHF1b3RhIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3Mzg5CisKKyAgICAgICAgKiBwdWJsaWMv
V2ViSURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5OjpvcGVuKToK
KyAgICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKToKKyAgICAgICAgKiBzcmMvSURCRmFj
dG9yeUJhY2tlbmRQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZhY3RvcnlJbXBsOjpvcGVuKToKKyAgICAgICAgKiBz
cmMvV2ViSURCRmFjdG9yeUltcGwuaDoKKwogMjAxMC0xMC0wNyAgWmhlbnlhbyBNbyAgPHptb0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgY2hyb21pdW0gdG8gcjYxOTAy
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaAppbmRleCBjYjVkMzY5MDU2NTZm
MGEwZGJlN2UyMWFkOGMxOGM1MmE1NzZkYjQyLi42M2VlYWNkZWZlNzQ4MTAwZDY4ODMxODc3NGI0
ODA1NTZkNWI5YTQ3IDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZh
Y3RvcnkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApAQCAt
NTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeSgpIHsgfQog
CiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBvcGVuIGlnbm9yZXMgdGhlIFdl
YkZyYW1lKiBwYXJhbWV0ZXIuCisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNh
bGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqIHdlYkZy
YW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBtYXhpbXVt
U2l6ZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBGSVhNRTogUmVt
b3ZlIG9uY2Ugd2UgdXBkYXRlIENocm9taXVtIHNpZGUuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJJ
REJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwg
V2ViRnJhbWUqIHdlYkZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBUaGUgZmlsZSBuYW1lIHRoYXQgd291bGQg
YmUgdXNlZCBmb3IgcGVyc2lzdGluZyBhIGdpdmVuIGluZGV4ZWQgZGF0YWJhc2Ugb24gdGhlIGZp
bGUgc3lzdGVtLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5jcHAKaW5kZXggZDQzZTc4N2YyZDU5NmZiZTc0ZWNmYzkyNTNjNDZlNGQ1N2RkZjc3ZC4uMmU2
NTI0NmFjNWY0NWYyNjA3OGM5ODQwZTNkMzE0MmU4YmNhMzhmMiAxMDA3NTUKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCkBAIC01OSwxMCArNTksMTAgQEAg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6fklEQkZhY3RvcnlCYWNrZW5kUHJveHkoKQogewogfQog
Ci12b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sIEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKQordm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
LCBGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YURpciwgaW50NjRfdCBtYXhpbXVtU2l6
ZSkKIHsKICAgICBXZWJLaXQ6OldlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYktpdDo6V2ViRnJhbWVJ
bXBsOjpmcm9tRnJhbWUoZnJhbWUpOwotICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1lLCBk
ZXNjcmlwdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2luLCB3
ZWJGcmFtZSwgZGF0YURpcik7CisgICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIGRlc2Ny
aXB0aW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZy
YW1lLCBkYXRhRGlyLCBtYXhpbXVtU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKaW5kZXggNjM3
MTY4NmNlYWZmMDY5Yjg0YTQ1MzU3YTkwM2RiNmVmNjhiOTc5MC4uMGE1NWI1OWJmMGNjOGQyOWFk
MGE3OTZjY2QwODQzOWJkMTQ3OTYxZSAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0
b3J5QmFja2VuZFByb3h5LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fklEQkZhY3RvcnlCYWNrZW5kUHJveHkoKTsKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlz
dD4gZGF0YWJhc2VzKHZvaWQpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIsIGludDY0
X3QgbWF4aW11bVNpemUpOwogCiBwcml2YXRlOgogICAgIElEQkZhY3RvcnlCYWNrZW5kUHJveHko
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5kZXggNzE0N2Nm
MDg2ZjFjYjY3ZGZkZDhkODk3YWU3NTliMTBiMzI0MGFlMS4uNWQwYWI4NWRkZTA2ZjgzMzJmYTM0
NDkyNjBkOTc5MTc2ZjU4YTA2MyAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJGYWN0b3J5SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5
SW1wbC5jcHAKQEAgLTU4LDkgKzU4LDkgQEAgV2ViSURCRmFjdG9yeUltcGw6On5XZWJJREJGYWN0
b3J5SW1wbCgpCiB7CiB9CiAKLXZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJJREJDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUq
LCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCit2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVu
KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2Vi
SURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4s
IFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyLCB1bnNpZ25lZCBsb25nIGxvbmcg
bWF4aW11bVNpemUpCiB7Ci0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBkZXNj
cmlwdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCBvcmlnaW4sIDAs
IGRhdGFEaXIpOworICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgZGVzY3JpcHRp
b24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgb3JpZ2luLCAwLCBkYXRh
RGlyLCBtYXhpbXVtU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCmluZGV4IGEwYTRkN2Q5ZmVkMDVhZjRhYjhmZTY1
NTM5ODIwYjYzNzc2NjY2ZjguLjRiYzk0MjZhNzhiMTVlY2U4ZTY3ZjIzYzFmYTdlYzQzYmIwZGE1
OTcgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogICAgIFdlYklEQkZhY3RvcnlJbXBsKCk7CiAgICAgdmlydHVhbCB+V2Vi
SURCRmFjdG9yeUltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiwg
Y29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0
YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyLCB1bnNpZ25l
ZCBsb25nIGxvbmcgbWF4aW11bVNpemUpOwogCiBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdl
YkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBtX2lkYkZhY3RvcnlCYWNrZW5kOwo=
</data>
<flag name="review"
          id="60094"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>