<?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>34932</bug_id>
          
          <creation_ts>2010-02-15 00:46:07 -0800</creation_ts>
          <short_desc>check-webkit-style: Code clean-up prior to dividing ProcessorOptions into two classes</short_desc>
          <delta_ts>2010-02-16 23:41:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34674</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>hamaji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190394</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-15 00:46:07 -0800</bug_when>
    <thetext>Splitting the patch of the below report into two, as requested:

https://bugs.webkit.org/show_bug.cgi?id=34674#c2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190744</commentid>
    <comment_count>1</comment_count>
      <attachid>48829</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-16 14:07:03 -0800</bug_when>
    <thetext>Created attachment 48829
Proposed patch

Note that I removed these patterns from _PATH_RULES_SPECIFIER:

-    # These are test file patterns.
-    ([&quot;_test.cpp&quot;,
-      &quot;_unittest.cpp&quot;,
-      &quot;_regtest.cpp&quot;],
-     (&quot;-readability/streams&quot;,  # Many unit tests use cout.
-      &quot;-runtime/rtti&quot;)),

I found that no files in WebKit match them when looking for actual paths for the _PATH_RULES_SPECIFIER unit tests.  I recall Adam saying in a bugs.webkit.org comment that these were used previously by Google.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190748</commentid>
    <comment_count>2</comment_count>
      <attachid>48830</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-16 14:13:44 -0800</bug_when>
    <thetext>Created attachment 48830
Proposed patch 2

Minor correction to ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190900</commentid>
    <comment_count>3</comment_count>
      <attachid>48830</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-16 23:00:58 -0800</bug_when>
    <thetext>Comment on attachment 48830
Proposed patch 2

Looks good. Thanks a lot for isolating this change!

&gt; +# Each string appearing in this nested list should have at least
&gt; +# one associated unit test assertion.

I&apos;d say where we should add the test. Maybe &quot;See test_path_rules_specifier in checker_unittest.py&quot; or something like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190905</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-16 23:20:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 48830 [details])
&gt; Looks good. Thanks a lot for isolating this change!

Sure thing.  Thanks for your quick review!

&gt; &gt; +# Each string appearing in this nested list should have at least
&gt; &gt; +# one associated unit test assertion.
&gt; 
&gt; I&apos;d say where we should add the test. Maybe &quot;See test_path_rules_specifier in
&gt; checker_unittest.py&quot; or something like this.

I was going to do this, but I decided against because comments like these can fall out of synch more easily.  I will add it back.  Thanks for the feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190906</commentid>
    <comment_count>5</comment_count>
      <attachid>48830</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-16 23:21:40 -0800</bug_when>
    <thetext>Comment on attachment 48830
Proposed patch 2

cq- to commit manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190912</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-16 23:41:35 -0800</bug_when>
    <thetext>Manually committed:

http://trac.webkit.org/changeset/54874</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48829</attachid>
            <date>2010-02-16 14:07:03 -0800</date>
            <delta_ts>2010-02-16 14:13:44 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-34932-1.diff</filename>
            <type>text/plain</type>
            <size>37030</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxZGNjZWY0Li5lZTg1ZWFkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTAtMDIt
MTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBtaW5vciBjaGVjay13ZWJr
aXQtc3R5bGUgY29kZSBjbGVhbi11cHMuICBUaGlzIHJldmlzaW9uCisgICAgICAgIGNvbnRhaW5z
IG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDkzMgorCisgICAgICAgICogU2NyaXB0cy9jaGVjay13ZWJraXQt
c3R5bGU6CisgICAgICAgICAgLSBSZXBsYWNlZCB0aGUgY2FsbCB0byB3ZWJraXRfYXJndW1lbnRf
ZGVmYXVsdHMoKSB3aXRoIGEKKyAgICAgICAgICAgIGRlZmF1bHQgcGFyYW1ldGVyIGluIHRoZSBB
cmd1bWVudFBhcnNlciBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgICAtIFJlbW92ZWQgdGhlIFdFQktJVCBwcmVmaXgg
ZnJvbSB0aGUgZGVmYXVsdCBnbG9iYWwgdmFyaWFibGVzLgorICAgICAgICAgIC0gUHJlZml4ZWQg
c2V2ZXJhbCBvZiB0aGUgZ2xvYmFsIHZhcmlhYmxlcyB3aXRoIGFuIHVuZGVyc2NvcmUKKyAgICAg
ICAgICAgIHRvIHJlZmxlY3QgdGhhdCB0aGV5IGFyZSB1c2VkIGludGVybmFsbHkuCisgICAgICAg
ICAgLSBSZW5hbWVkIF9ERUZBVUxUX0ZJTFRFUl9SVUxFUyB0byBfQkFTRV9GSUxURVJfUlVMRVMu
CisgICAgICAgICAgLSBBZGRyZXNzZWQgYSBGSVhNRSBieSBjaGFuZ2luZyB0aGUgX1BBVEhfUlVM
RVNfU1BFQ0lGSUVSCisgICAgICAgICAgICBjb25maWd1cmF0aW9uIGZyb20gbGlzdC10dXBsZSBw
YWlycyB0byBsaXN0LWxpc3QgcGFpcnMuCisgICAgICAgICAgLSBSZW5hbWVkIHN0eWxlX2NhdGVn
b3JpZXMoKSB0byBfYWxsX2NhdGVnb3JpZXMoKS4KKyAgICAgICAgICAtIFJlbmFtZWQgd2Via2l0
X2FyZ3VtZW50X2RlZmF1bHRzKCkgdG8gX2NoZWNrX3dlYmtpdF9zdHlsZV9kZWZhdWx0cygpLgor
ICAgICAgICAgIC0gUmVuYW1lZCB0aGUgQXJndW1lbnREZWZhdWx0cyBjbGFzcyB0byBEZWZhdWx0
Q29tbWFuZE9wdGlvblZhbHVlcy4KKyAgICAgICAgICAtIEluIHRoZSBBcmd1bWVudFBhcnNlciBj
bGFzcy0tCisgICAgICAgICAgICAtIFJlbmFtZWQgdGhlIGRvY19wcmludCBhdHRyaWJ1dGUgdG8g
c3RkZXJyX3dyaXRlLgorICAgICAgICAgICAgLSBBZGRlZCB0aGUgYmFzZV9maWx0ZXJfcnVsZXMg
YXR0cmlidXRlLgorICAgICAgICAgICAgLSBPdGhlciBtaW5vciB1cGRhdGVzLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAg
IC0gVXBkYXRlZCB0aGUgaW1wb3J0IHN0YXRlbWVudHMgYW5kIHVuaXQgdGVzdCBjbGFzc2VzIGFz
IG5lY2Vzc2FyeS4KKyAgICAgICAgICAtIEFkZGVkIGFzc2VydGlvbnMgdG8gdGVzdCBfUEFUSF9S
VUxFU19TUEVDSUZJRVIgbW9yZSBmdWxseS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
c3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHk6CisgICAgICAgICAgLSBVcGRhdGVkIHRo
ZSB1bml0IHRlc3QgY2xhc3NlcyBhcyBuZWNlc3NhcnkuCisgICAgICAgICAgLSBDaGFuZ2VkIFN0
eWxlRXJyb3JIYW5kbGVyVGVzdEJhc2UgdG8gc3RvcmUgYSBsaXN0IG9mIGVycm9yCisgICAgICAg
ICAgICBtZXNzYWdlcyByYXRoZXIgdGhhbiBqdXN0IHRoZSBsYXN0IG9uZS4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5OgorICAgICAgICAgIC0gQWx0ZXJlZCBG
aWx0ZXJDb25maWd1cmF0aW9uLl9wYXRoX3J1bGVzX2Zyb21fcGF0aCgpCisgICAgICAgICAgICB0
byBjb252ZXJ0IHRoZSBwYXRoX3J1bGVzIGxpc3QgdG8gYSB0dXBsZS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0gVXBk
YXRlZCB0aGUgdW5pdCB0ZXN0cyB0byByZWZsZWN0IHRoZSBjaGFuZ2UgZnJvbSB0dXBsZXMgdG8K
KyAgICAgICAgICAgIGxpc3RzIGluIHRoZSBfUEFUSF9SVUxFU19TUEVDSUZJRVIgY29uZmlndXJh
dGlvbiB2YXJpYWJsZS4KKwogMjAxMC0wMi0xMiAgQ2hhbmcgU2h1ICA8Q2hhbmcuU2h1QG5va2lh
LmNvbT4KIAogICAgICAgICBOb3QgUmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2std2Vi
a2l0LXN0eWxlCmluZGV4IDUwMTI2NGIuLmYxOWZlNzMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hl
Y2std2Via2l0LXN0eWxlCkBAIC01OCw5ICs1OCw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHdyaXRlcigndXRmOCcp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBsYWNlJykK
IAotICAgIGRlZmF1bHRzID0gY2hlY2tlci53ZWJraXRfYXJndW1lbnRfZGVmYXVsdHMoKQotCi0g
ICAgcGFyc2VyID0gY2hlY2tlci5Bcmd1bWVudFBhcnNlcihkZWZhdWx0cykKKyAgICBwYXJzZXIg
PSBjaGVja2VyLkFyZ3VtZW50UGFyc2VyKCkKICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2Vy
LnBhcnNlKHN5cy5hcmd2WzE6XSkKIAogICAgIHN0eWxlX2NoZWNrZXIgPSBjaGVja2VyLlN0eWxl
Q2hlY2tlcihvcHRpb25zKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2VyLnB5CmluZGV4IGZiZGE4Y2IuLjFjNzdiOTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTQ1LDkgKzQ1LDkgQEAgZnJvbSBwcm9j
ZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBv
cnQgVGV4dFByb2Nlc3NvcgogCiAKLSMgVGhlc2UgZGVmYXVsdHMgYXJlIHVzZWQgYnkgY2hlY2st
d2Via2l0LXN0eWxlLgotV0VCS0lUX0RFRkFVTFRfVkVSQk9TSVRZID0gMQotV0VCS0lUX0RFRkFV
TFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycKKyMgVGhlc2UgYXJlIGRlZmF1bHQgb3B0aW9uIHZh
bHVlcyBmb3IgdGhlIGNvbW1hbmQtbGluZSBvcHRpb24gcGFyc2VyLgorX0RFRkFVTFRfVkVSQk9T
SVRZID0gMQorX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycKIAogCiAjIEZJWE1FOiBG
b3Igc3R5bGUgY2F0ZWdvcmllcyB3ZSB3aWxsIG5ldmVyIHdhbnQgdG8gaGF2ZSwgcmVtb3ZlIHRo
ZW0uCkBAIC01NSwxNCArNTUsMTYgQEAgV0VCS0lUX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdl
bWFjcycKICMgICAgICAgIG1vZGlmeSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIGVuYWJsZSB0aGVt
LgogIwogIyBUaHJvdWdob3V0IHRoaXMgbW9kdWxlLCB3ZSB1c2UgImZpbHRlciBydWxlIiByYXRo
ZXIgdGhhbiAiZmlsdGVyIgotIyBmb3IgYW4gaW5kaXZpZHVhbCBib29sZWFuIGZpbHRlciBmbGFn
IGxpa2UgIitmb28iLiBUaGlzIGFsbG93cyB1cyB0bworIyBmb3IgYW4gaW5kaXZpZHVhbCBib29s
ZWFuIGZpbHRlciBmbGFnIGxpa2UgIitmb28iLiAgVGhpcyBhbGxvd3MgdXMgdG8KICMgcmVzZXJ2
ZSAiZmlsdGVyIiBmb3Igd2hhdCBvbmUgZ2V0cyBieSBjb2xsZWN0aXZlbHkgYXBwbHlpbmcgYWxs
IG9mCiAjIHRoZSBmaWx0ZXIgcnVsZXMuCiAjCi0jIFRoZSBfV0VCS0lUX0ZJTFRFUl9SVUxFUyBh
cmUgcHJlcGVuZGVkIHRvIGFueSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIKLSMgcnVsZXMuIFNpbmNl
IGJ5IGRlZmF1bHQgYWxsIGVycm9ycyBhcmUgb24sIG9ubHkgaW5jbHVkZSBydWxlcyB0aGF0Ci0j
IGJlZ2luIHdpdGggYSAtIHNpZ24uCi1XRUJLSVRfREVGQVVMVF9GSUxURVJfUlVMRVMgPSBbCisj
IFRoZSBiYXNlIGZpbHRlciBydWxlcyBhcmUgdGhlIGZpbHRlciBydWxlcyB0aGF0IGJlZ2luIHRo
ZSBsaXN0IG9mCisjIGZpbHRlciBydWxlcyB1c2VkIHRvIGNoZWNrIHN0eWxlLiAgRm9yIGV4YW1w
bGUsIHRoZXNlIHJ1bGVzIHByZWNlZGUKKyMgYW55IHVzZXItc3BlY2lmaWVkIGZpbHRlciBydWxl
cy4gIFNpbmNlIGJ5IGRlZmF1bHQgYWxsIGNhdGVnb3JpZXMgYXJlCisjIGNoZWNrZWQsIHRoaXMg
bGlzdCBzaG91bGQgbm9ybWFsbHkgaW5jbHVkZSBvbmx5IHJ1bGVzIHRoYXQgYmVnaW4KKyMgd2l0
aCBhICItIiBzaWduLgorX0JBU0VfRklMVEVSX1JVTEVTID0gWwogICAgICctYnVpbGQvZW5kaWZf
Y29tbWVudCcsCiAgICAgJy1idWlsZC9pbmNsdWRlX3doYXRfeW91X3VzZScsICAjIDxzdHJpbmc+
IGZvciBzdGQ6OnN0cmluZwogICAgICctYnVpbGQvc3RvcmFnZV9jbGFzcycsICAjIGNvbnN0IHN0
YXRpYwpAQCAtODYsMjYgKzg4LDIyIEBAIFdFQktJVF9ERUZBVUxUX0ZJTFRFUl9SVUxFUyA9IFsK
ICAgICBdCiAKIAotIyBGSVhNRTogQ2hhbmdlIHRoZSBzZWNvbmQgdmFsdWUgb2YgZWFjaCB0dXBs
ZSBmcm9tIGEgdHVwbGUgdG8gYSBsaXN0LAotIyAgICAgICAgYW5kIGFsdGVyIHRoZSBmaWx0ZXIg
Y29kZSBzbyBpdCBhY2NlcHRzIGxpc3RzIGluc3RlYWQuICAoVGhlCi0jICAgICAgICBmaWx0ZXIg
Y29kZSB3aWxsIG5lZWQgdG8gY29udmVydCBpbmNvbWluZyB2YWx1ZXMgZnJvbSBhIGxpc3QKLSMg
ICAgICAgIHRvIGEgdHVwbGUgcHJpb3IgdG8gY2FjaGluZykuICBUaGlzIHdpbGwgbWFrZSB0aGlz
Ci0jICAgICAgICBjb25maWd1cmF0aW9uIHNldHRpbmcgYSBiaXQgc2ltcGxlciBzaW5jZSB0dXBs
ZXMgaGF2ZSBhbgotIyAgICAgICAgdW51c3VhbCBzeW50YXggY2FzZS4KLSMKICMgVGhlIHBhdGgt
c3BlY2lmaWMgZmlsdGVyIHJ1bGVzLgogIwogIyBUaGlzIGxpc3QgaXMgb3JkZXIgc2Vuc2l0aXZl
LiAgT25seSB0aGUgZmlyc3QgcGF0aCBzdWJzdHJpbmcgbWF0Y2gKICMgaXMgdXNlZC4gIFNlZSB0
aGUgRmlsdGVyQ29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uIGluIGZpbHRlci5weQogIyBmb3Ig
bW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGxpc3QuCisjCisjIEVhY2ggc3RyaW5nIGFwcGVhcmlu
ZyBpbiB0aGlzIG5lc3RlZCBsaXN0IHNob3VsZCBoYXZlIGF0IGxlYXN0CisjIG9uZSBhc3NvY2lh
dGVkIHVuaXQgdGVzdCBhc3NlcnRpb24uCiBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAg
IyBGaWxlcyBpbiB0aGVzZSBkaXJlY3RvcmllcyBhcmUgY29uc3VtZXJzIG9mIHRoZSBXZWJLaXQK
ICAgICAjIEFQSSBhbmQgdGhlcmVmb3JlIGRvIG5vdCBmb2xsb3cgdGhlIHNhbWUgaGVhZGVyIGlu
Y2x1ZGluZwogICAgICMgZGlzY2lwbGluZSBhcyBXZWJDb3JlLgogICAgIChbIldlYktpdFRvb2xz
L1dlYktpdEFQSVRlc3QvIiwKICAgICAgICJXZWJLaXQvcXQvUUdWTGF1bmNoZXIvIl0sCi0gICAg
ICgiLWJ1aWxkL2luY2x1ZGUiLAotICAgICAgIi1yZWFkYWJpbGl0eS9zdHJlYW1zIikpLAorICAg
ICBbIi1idWlsZC9pbmNsdWRlIiwKKyAgICAgICItcmVhZGFiaWxpdHkvc3RyZWFtcyJdKSwKICAg
ICAoWyMgVGhlIEdUSysgQVBJcyB1c2UgR1RLKyBuYW1pbmcgc3R5bGUsIHdoaWNoIGluY2x1ZGVz
CiAgICAgICAjIGxvd2VyLWNhc2VkLCB1bmRlcnNjb3JlLXNlcGFyYXRlZCB2YWx1ZXMuCiAgICAg
ICAiV2ViS2l0L2d0ay93ZWJraXQvIiwKQEAgLTExNiwxMyArMTE0LDcgQEAgX1BBVEhfUlVMRVNf
U1BFQ0lGSUVSID0gWwogICAgICAgIyBRdFRlc3QgbW9kdWxlLgogICAgICAgIldlYktpdC9xdC90
ZXN0cy8iLAogICAgICAgIkphdmFTY3JpcHRDb3JlL3F0L3Rlc3RzIl0sCi0gICAgICgiLXJlYWRh
YmlsaXR5L25hbWluZyIsKSksCi0gICAgIyBUaGVzZSBhcmUgdGVzdCBmaWxlIHBhdHRlcm5zLgot
ICAgIChbIl90ZXN0LmNwcCIsCi0gICAgICAiX3VuaXR0ZXN0LmNwcCIsCi0gICAgICAiX3JlZ3Rl
c3QuY3BwIl0sCi0gICAgICgiLXJlYWRhYmlsaXR5L3N0cmVhbXMiLCAgIyBNYW55IHVuaXQgdGVz
dHMgdXNlIGNvdXQuCi0gICAgICAiLXJ1bnRpbWUvcnR0aSIpKSwKKyAgICAgWyItcmVhZGFiaWxp
dHkvbmFtaW5nIl0pLAogXQogCiAKQEAgLTEzMSw3ICsxMjMsNyBAQCBfUEFUSF9SVUxFU19TUEVD
SUZJRVIgPSBbCiAjIGZ1dHVyZSBtZXJnZXMuCiAjCiAjIEluY2x1ZGUgYSB3YXJuaW5nIGZvciBz
a2lwcGVkIGZpbGVzIHRoYXQgYXJlIGxlc3Mgb2J2aW91cy4KLVNLSVBQRURfRklMRVNfV0lUSF9X
QVJOSU5HID0gWworX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgICMgVGhlIFF0
IEFQSSBhbmQgdGVzdHMgZG8gbm90IGZvbGxvdyBXZWJLaXQgc3R5bGUuCiAgICAgIyBUaGV5IGZv
bGxvdyBRdCBzdHlsZS4gOikKICAgICAiZ3RrMmRyYXdpbmcuYyIsICMgV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvZ3RrMmRyYXdpbmcuYwpAQCAtMTQ1LDM2ICsxMzcsMzcgQEAgU0tJUFBFRF9GSUxFU19X
SVRIX1dBUk5JTkcgPSBbCiAKICMgRG9uJ3QgaW5jbHVkZSBhIHdhcm5pbmcgZm9yIHNraXBwZWQg
ZmlsZXMgdGhhdCBhcmUgbW9yZSBjb21tb24KICMgYW5kIG1vcmUgb2J2aW91cy4KLVNLSVBQRURf
RklMRVNfV0lUSE9VVF9XQVJOSU5HID0gWworX1NLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5H
ID0gWwogICAgICJMYXlvdXRUZXN0cy8iCiAgICAgXQogCiAKICMgVGhlIG1heGltdW0gbnVtYmVy
IG9mIGVycm9ycyB0byByZXBvcnQgcGVyIGZpbGUsIHBlciBjYXRlZ29yeS4KICMgSWYgYSBjYXRl
Z29yeSBpcyBub3QgYSBrZXksIHRoZW4gaXQgaGFzIG5vIG1heGltdW0uCi1NQVhfUkVQT1JUU19Q
RVJfQ0FURUdPUlkgPSB7CitfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZID0gewogICAgICJ3aGl0
ZXNwYWNlL2NhcnJpYWdlX3JldHVybiI6IDEKIH0KIAogCi1kZWYgc3R5bGVfY2F0ZWdvcmllcygp
OgorZGVmIF9hbGxfY2F0ZWdvcmllcygpOgogICAgICIiIlJldHVybiB0aGUgc2V0IG9mIGFsbCBj
YXRlZ29yaWVzIHVzZWQgYnkgY2hlY2std2Via2l0LXN0eWxlLiIiIgogICAgICMgVGFrZSB0aGUg
dW5pb24gYWNyb3NzIGFsbCBwcm9jZXNzb3JzLgogICAgIHJldHVybiBDb21tb25DYXRlZ29yaWVz
LnVuaW9uKENwcFByb2Nlc3Nvci5jYXRlZ29yaWVzKQogCiAKLWRlZiB3ZWJraXRfYXJndW1lbnRf
ZGVmYXVsdHMoKToKLSAgICAiIiJSZXR1cm4gdGhlIERlZmF1bHRBcmd1bWVudHMgaW5zdGFuY2Ug
Zm9yIHVzZSBieSBjaGVjay13ZWJraXQtc3R5bGUuIiIiCi0gICAgcmV0dXJuIEFyZ3VtZW50RGVm
YXVsdHMoV0VCS0lUX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfREVGQVVMVF9WRVJCT1NJVFksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX0RFRkFVTFRfRklMVEVSX1JVTEVTKQorZGVmIF9jaGVja193ZWJraXRfc3R5
bGVfZGVmYXVsdHMoKToKKyAgICAiIiJSZXR1cm4gdGhlIGRlZmF1bHQgY29tbWFuZC1saW5lIG9w
dGlvbnMgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4iIiIKKyAgICByZXR1cm4gRGVmYXVsdENvbW1h
bmRPcHRpb25WYWx1ZXMoYmFzZV9maWx0ZXJfcnVsZXM9X0JBU0VfRklMVEVSX1JVTEVTLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PV9ERUZBVUxU
X09VVFBVVF9GT1JNQVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cmJvc2l0eT1fREVGQVVMVF9WRVJCT1NJVFkpCiAKIAotZGVmIF9jcmVhdGVfdXNhZ2UoZGVmYXVs
dHMpOgorCitkZWYgX2NyZWF0ZV91c2FnZShkZWZhdWx0X29wdGlvbnMpOgogICAgICIiIlJldHVy
biB0aGUgdXNhZ2Ugc3RyaW5nIHRvIGRpc3BsYXkgZm9yIGNvbW1hbmQgaGVscC4KIAogICAgIEFy
Z3M6Ci0gICAgICBkZWZhdWx0czogQW4gQXJndW1lbnREZWZhdWx0cyBpbnN0YW5jZS4KKyAgICAg
IGRlZmF1bHRfb3B0aW9uczogQSBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyBpbnN0YW5jZS4K
IAogICAgICIiIgogICAgIHVzYWdlID0gIiIiCkBAIC0yMzYsOCArMjI5LDggQEAgU3ludGF4OiAl
KHByb2dyYW1fbmFtZSlzIFstLXZlcmJvc2U9I10gWy0tZ2l0LWNvbW1pdD08U2luZ2xlQ29tbWl0
Pl0gWy0tb3V0cHV0PXYKICAgICAgIHRoZSBlbXB0eSBmaWx0ZXIgYXMgZm9sbG93czoKICAgICAg
ICAgIC0tZmlsdGVyPQogIiIiICUgeydwcm9ncmFtX25hbWUnOiBvcy5wYXRoLmJhc2VuYW1lKHN5
cy5hcmd2WzBdKSwKLSAgICAgICAnZGVmYXVsdF92ZXJib3NpdHknOiBkZWZhdWx0cy52ZXJib3Np
dHksCi0gICAgICAgJ2RlZmF1bHRfb3V0cHV0X2Zvcm1hdCc6IGRlZmF1bHRzLm91dHB1dF9mb3Jt
YXR9CisgICAgICAgJ2RlZmF1bHRfdmVyYm9zaXR5JzogZGVmYXVsdF9vcHRpb25zLnZlcmJvc2l0
eSwKKyAgICAgICAnZGVmYXVsdF9vdXRwdXRfZm9ybWF0JzogZGVmYXVsdF9vcHRpb25zLm91dHB1
dF9mb3JtYXR9CiAKICAgICByZXR1cm4gdXNhZ2UKIApAQCAtMjU1LDcgKzI0OCw3IEBAIFN5bnRh
eDogJShwcm9ncmFtX25hbWUpcyBbLS12ZXJib3NlPSNdIFstLWdpdC1jb21taXQ9PFNpbmdsZUNv
bW1pdD5dIFstLW91dHB1dD12CiAjIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIGtub3dsZWRn
ZSBvZiB0aGUgZmxhZyBrZXkgbmFtZXMuCiBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9iamVjdCk6
CiAKLSAgICAiIiJBIGNvbnRhaW5lciB0byBzdG9yZSBvcHRpb25zIHBhc3NlZCB2aWEgdGhlIGNv
bW1hbmQgbGluZS4KKyAgICAiIiJTdG9yZXMgdGhlIG9wdGlvbiB2YWx1ZXMgcGFzc2VkIGJ5IHRo
ZSB1c2VyIHZpYSB0aGUgY29tbWFuZCBsaW5lLgogCiAgICAgQXR0cmlidXRlczoKICAgICAgIGV4
dHJhX2ZsYWdfdmFsdWVzOiBBIHN0cmluZy1zdHJpbmcgZGljdGlvbmFyeSBvZiBhbGwgZmxhZyBr
ZXktdmFsdWUKQEAgLTM1OSwyMyArMzUyLDIyIEBAIGNsYXNzIFByb2Nlc3Nvck9wdGlvbnMob2Jq
ZWN0KToKIAogCiAjIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIGtub3dsZWRnZSBvZiB0aGUg
ZmxhZyBrZXkgbmFtZXMuCi1jbGFzcyBBcmd1bWVudERlZmF1bHRzKG9iamVjdCk6CitjbGFzcyBE
ZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhvYmplY3QpOgogCi0gICAgIiIiQSBjb250YWluZXIg
dG8gc3RvcmUgZGVmYXVsdCBhcmd1bWVudCB2YWx1ZXMuCisgICAgIiIiU3RvcmVzIHRoZSBkZWZh
dWx0IGNoZWNrLXdlYmtpdC1zdHlsZSBjb21tYW5kLWxpbmUgb3B0aW9ucy4KIAogICAgIEF0dHJp
YnV0ZXM6CisgICAgICBiYXNlX2ZpbHRlcl9ydWxlczogQSBsaXN0IG9mIGJvb2xlYW4gZmlsdGVy
IHJ1bGUgc3RyaW5ncyB0aGF0IGJlZ2luCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxp
c3Qgb2YgZmlsdGVyIHJ1bGVzIHVzZWQgdG8gY2hlY2sgc3R5bGUuCiAgICAgICBvdXRwdXRfZm9y
bWF0OiBBIHN0cmluZyB0aGF0IGlzIHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQuCiAgICAgICB2
ZXJib3NpdHk6IEFuIGludGVnZXIgdGhhdCBpcyB0aGUgZGVmYXVsdCB2ZXJib3NpdHkgbGV2ZWwu
Ci0gICAgICBiYXNlX2ZpbHRlcl9ydWxlczogQSBsaXN0IG9mIHN0cmluZ3MgdGhhdCBhcmUgYm9v
bGVhbiBmaWx0ZXIgcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcmVwZW5kIHRv
IGFueSB1c2VyLXNwZWNpZmllZCBydWxlcy4KIAogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGRlZmF1bHRfb3V0cHV0X2Zvcm1hdCwgZGVmYXVsdF92ZXJib3NpdHksCi0gICAgICAg
ICAgICAgICAgIGRlZmF1bHRfYmFzZV9maWx0ZXJfcnVsZXMpOgotICAgICAgICBzZWxmLm91dHB1
dF9mb3JtYXQgPSBkZWZhdWx0X291dHB1dF9mb3JtYXQKLSAgICAgICAgc2VsZi52ZXJib3NpdHkg
PSBkZWZhdWx0X3ZlcmJvc2l0eQotICAgICAgICBzZWxmLmJhc2VfZmlsdGVyX3J1bGVzID0gZGVm
YXVsdF9iYXNlX2ZpbHRlcl9ydWxlcworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNlX2ZpbHRl
cl9ydWxlcywgb3V0cHV0X2Zvcm1hdCwgdmVyYm9zaXR5KToKKyAgICAgICAgc2VsZi5iYXNlX2Zp
bHRlcl9ydWxlcyA9IGJhc2VfZmlsdGVyX3J1bGVzCisgICAgICAgIHNlbGYub3V0cHV0X2Zvcm1h
dCA9IG91dHB1dF9mb3JtYXQKKyAgICAgICAgc2VsZi52ZXJib3NpdHkgPSB2ZXJib3NpdHkKIAog
CiBjbGFzcyBBcmd1bWVudFByaW50ZXIob2JqZWN0KToKQEAgLTQxMywzMSArNDA1LDQwIEBAIGNs
YXNzIEFyZ3VtZW50UHJpbnRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gZmxhZ19zdHJpbmcu
c3RyaXAoKQogCiAKKyMgRklYTUU6IFJlcGxhY2UgdGhlIHVzZSBvZiBnZXRvcHQuZ2V0b3B0KCkg
d2l0aCBvcHRwYXJzZS5PcHRpb25QYXJzZXIuCiBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3Qp
OgogCiAgICAgIiIiU3VwcG9ydHMgdGhlIHBhcnNpbmcgb2YgY2hlY2std2Via2l0LXN0eWxlIGNv
bW1hbmQgYXJndW1lbnRzLgogCiAgICAgQXR0cmlidXRlczoKLSAgICAgIGRlZmF1bHRzOiBBbiBB
cmd1bWVudERlZmF1bHRzIGluc3RhbmNlLgotICAgICAgY3JlYXRlX3VzYWdlOiBBIGZ1bmN0aW9u
IHRoYXQgYWNjZXB0cyBhbiBBcmd1bWVudERlZmF1bHRzIGluc3RhbmNlCi0gICAgICAgICAgICAg
ICAgICAgIGFuZCByZXR1cm5zIGEgc3RyaW5nIG9mIHVzYWdlIGluc3RydWN0aW9ucy4KLSAgICAg
ICAgICAgICAgICAgICAgVGhpcyBkZWZhdWx0cyB0byB0aGUgZnVuY3Rpb24gdXNlZCB0byBnZW5l
cmF0ZSB0aGUKLSAgICAgICAgICAgICAgICAgICAgdXNhZ2Ugc3RyaW5nIGZvciBjaGVjay13ZWJr
aXQtc3R5bGUuCi0gICAgICBkb2NfcHJpbnQ6IEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEgc3Ry
aW5nIHBhcmFtZXRlciBhbmQgdGhhdCBpcwotICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gZGlz
cGxheSBoZWxwIG1lc3NhZ2VzLiBUaGlzIGRlZmF1bHRzIHRvCi0gICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoKS4KKyAgICAgIGNyZWF0ZV91c2FnZTogQSBmdW5jdGlvbiB0aGF0IGFj
Y2VwdHMgYSBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcworICAgICAgICAgICAgICAgICAgICBp
bnN0YW5jZSBhbmQgcmV0dXJucyBhIHN0cmluZyBvZiB1c2FnZSBpbnN0cnVjdGlvbnMuCisgICAg
ICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0
aGUgdXNhZ2UKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZvciBjaGVjay13ZWJraXQtc3R5
bGUuCisgICAgICBkZWZhdWx0X29wdGlvbnM6IEEgRGVmYXVsdENvbW1hbmRPcHRpb25WYWx1ZXMg
aW5zdGFuY2UuICBEZWZhdWx0cworICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgZGVmYXVs
dCBjb21tYW5kIG9wdGlvbiB2YWx1ZXMgdXNlZCBieQorICAgICAgICAgICAgICAgICAgICAgICBj
aGVjay13ZWJraXQtc3R5bGUuCisgICAgICBzdGRlcnJfd3JpdGU6IEEgZnVuY3Rpb24gdGhhdCB0
YWtlcyBhIHN0cmluZyBhcyBhIHBhcmFtZXRlciBhbmQKKyAgICAgICAgICAgICAgICAgICAgc2Vy
dmVzIGFzIHN0ZGVyci53cml0ZS4gIERlZmF1bHRzIHRvIHN5cy5zdGRlcnIud3JpdGUuCisgICAg
ICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSBzcGVjaWZpZWQgb25seSBm
b3IgdW5pdCB0ZXN0cy4KIAogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ3Vt
ZW50X2RlZmF1bHRzLCBjcmVhdGVfdXNhZ2U9Tm9uZSwgZG9jX3ByaW50PU5vbmUpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBjcmVhdGVfdXNhZ2U9Tm9uZSwKKyAg
ICAgICAgICAgICAgICAgZGVmYXVsdF9vcHRpb25zPU5vbmUsCisgICAgICAgICAgICAgICAgIHN0
ZGVycl93cml0ZT1Ob25lKToKICAgICAgICAgaWYgY3JlYXRlX3VzYWdlIGlzIE5vbmU6CiAgICAg
ICAgICAgICBjcmVhdGVfdXNhZ2UgPSBfY3JlYXRlX3VzYWdlCi0gICAgICAgIGlmIGRvY19wcmlu
dCBpcyBOb25lOgotICAgICAgICAgICAgZG9jX3ByaW50ID0gc3lzLnN0ZGVyci53cml0ZQorICAg
ICAgICBpZiBkZWZhdWx0X29wdGlvbnMgaXMgTm9uZToKKyAgICAgICAgICAgIGRlZmF1bHRfb3B0
aW9ucyA9IF9jaGVja193ZWJraXRfc3R5bGVfZGVmYXVsdHMoKQorICAgICAgICBpZiBzdGRlcnJf
d3JpdGUgaXMgTm9uZToKKyAgICAgICAgICAgIHN0ZGVycl93cml0ZSA9IHN5cy5zdGRlcnIud3Jp
dGUKIAotICAgICAgICBzZWxmLmRlZmF1bHRzID0gYXJndW1lbnRfZGVmYXVsdHMKKyAgICAgICAg
IyBGSVhNRTogUmVuYW1lIHRoZXNlIHRvIHJlZmxlY3QgdGhhdCB0aGV5IGFyZSBpbnRlcm5hbC4K
ICAgICAgICAgc2VsZi5jcmVhdGVfdXNhZ2UgPSBjcmVhdGVfdXNhZ2UKLSAgICAgICAgc2VsZi5k
b2NfcHJpbnQgPSBkb2NfcHJpbnQKKyAgICAgICAgc2VsZi5kZWZhdWx0X29wdGlvbnMgPSBkZWZh
dWx0X29wdGlvbnMKKyAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUgPSBzdGRlcnJfd3JpdGUKIAog
ICAgIGRlZiBfZXhpdF93aXRoX3VzYWdlKHNlbGYsIGVycm9yX21lc3NhZ2U9JycpOgogICAgICAg
ICAiIiJFeGl0IGFuZCBwcmludCBhIHVzYWdlIHN0cmluZyB3aXRoIGFuIG9wdGlvbmFsIGVycm9y
IG1lc3NhZ2UuCkBAIC00NDYsOCArNDQ3LDggQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0
KToKICAgICAgICAgICBlcnJvcl9tZXNzYWdlOiBBIHN0cmluZyB0aGF0IGlzIGFuIGVycm9yIG1l
c3NhZ2UgdG8gcHJpbnQuCiAKICAgICAgICAgIiIiCi0gICAgICAgIHVzYWdlID0gc2VsZi5jcmVh
dGVfdXNhZ2Uoc2VsZi5kZWZhdWx0cykKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQodXNhZ2UpCisg
ICAgICAgIHVzYWdlID0gc2VsZi5jcmVhdGVfdXNhZ2Uoc2VsZi5kZWZhdWx0X29wdGlvbnMpCisg
ICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKHVzYWdlKQogICAgICAgICBpZiBlcnJvcl9tZXNzYWdl
OgogICAgICAgICAgICAgc3lzLmV4aXQoJ1xuRkFUQUwgRVJST1I6ICcgKyBlcnJvcl9tZXNzYWdl
KQogICAgICAgICBlbHNlOgpAQCAtNDU1LDE2ICs0NTYsMTYgQEAgY2xhc3MgQXJndW1lbnRQYXJz
ZXIob2JqZWN0KToKIAogICAgIGRlZiBfZXhpdF93aXRoX2NhdGVnb3JpZXMoc2VsZik6CiAgICAg
ICAgICIiIkV4aXQgYW5kIHByaW50IHRoZSBzdHlsZSBjYXRlZ29yaWVzIGFuZCBkZWZhdWx0IGZp
bHRlciBydWxlcy4iIiIKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQoJ1xuQWxsIGNhdGVnb3JpZXM6
XG4nKQotICAgICAgICBjYXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCisgICAgICAgIHNl
bGYuc3RkZXJyX3dyaXRlKCdcbkFsbCBjYXRlZ29yaWVzOlxuJykKKyAgICAgICAgY2F0ZWdvcmll
cyA9IF9hbGxfY2F0ZWdvcmllcygpCiAgICAgICAgIGZvciBjYXRlZ29yeSBpbiBzb3J0ZWQoY2F0
ZWdvcmllcyk6Ci0gICAgICAgICAgICBzZWxmLmRvY19wcmludCgnICAgICcgKyBjYXRlZ29yeSAr
ICdcbicpCisgICAgICAgICAgICBzZWxmLnN0ZGVycl93cml0ZSgnICAgICcgKyBjYXRlZ29yeSAr
ICdcbicpCiAKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQoJ1xuRGVmYXVsdCBmaWx0ZXIgcnVsZXMq
KjpcbicpCi0gICAgICAgIGZvciBmaWx0ZXJfcnVsZSBpbiBzb3J0ZWQoc2VsZi5kZWZhdWx0cy5i
YXNlX2ZpbHRlcl9ydWxlcyk6Ci0gICAgICAgICAgICBzZWxmLmRvY19wcmludCgnICAgICcgKyBm
aWx0ZXJfcnVsZSArICdcbicpCi0gICAgICAgIHNlbGYuZG9jX3ByaW50KCdcbioqVGhlIGNvbW1h
bmQgYWx3YXlzIGV2YWx1YXRlcyB0aGUgYWJvdmUgcnVsZXMsICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgJ2FuZCBiZWZvcmUgYW55IC0tZmlsdGVyIGZsYWcuXG5cbicpCisgICAgICAgIHNlbGYu
c3RkZXJyX3dyaXRlKCdcbkRlZmF1bHQgZmlsdGVyIHJ1bGVzKio6XG4nKQorICAgICAgICBmb3Ig
ZmlsdGVyX3J1bGUgaW4gc29ydGVkKHNlbGYuZGVmYXVsdF9vcHRpb25zLmJhc2VfZmlsdGVyX3J1
bGVzKToKKyAgICAgICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKCcgICAgJyArIGZpbHRlcl9ydWxl
ICsgJ1xuJykKKyAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUoJ1xuKipUaGUgY29tbWFuZCBhbHdh
eXMgZXZhbHVhdGVzIHRoZSBhYm92ZSBydWxlcywgJworICAgICAgICAgICAgICAgICAgICAgICAg
ICAnYW5kIGJlZm9yZSBhbnkgLS1maWx0ZXIgZmxhZy5cblxuJykKIAogICAgICAgICBzeXMuZXhp
dCgwKQogCkBAIC01MDQsOSArNTA1LDkgQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0KToK
ICAgICAgICAgaWYgZXh0cmFfZmxhZ3MgaXMgTm9uZToKICAgICAgICAgICAgIGV4dHJhX2ZsYWdz
ID0gW10KIAotICAgICAgICBvdXRwdXRfZm9ybWF0ID0gc2VsZi5kZWZhdWx0cy5vdXRwdXRfZm9y
bWF0Ci0gICAgICAgIHZlcmJvc2l0eSA9IHNlbGYuZGVmYXVsdHMudmVyYm9zaXR5Ci0gICAgICAg
IGJhc2VfcnVsZXMgPSBzZWxmLmRlZmF1bHRzLmJhc2VfZmlsdGVyX3J1bGVzCisgICAgICAgIG91
dHB1dF9mb3JtYXQgPSBzZWxmLmRlZmF1bHRfb3B0aW9ucy5vdXRwdXRfZm9ybWF0CisgICAgICAg
IHZlcmJvc2l0eSA9IHNlbGYuZGVmYXVsdF9vcHRpb25zLnZlcmJvc2l0eQorICAgICAgICBiYXNl
X3J1bGVzID0gc2VsZi5kZWZhdWx0X29wdGlvbnMuYmFzZV9maWx0ZXJfcnVsZXMKIAogICAgICAg
ICAjIFRoZSBmbGFncyBhbHJlYWR5IHN1cHBvcnRlZCBieSB0aGUgUHJvY2Vzc29yT3B0aW9ucyBj
bGFzcy4KICAgICAgICAgZmxhZ3MgPSBbJ2hlbHAnLCAnb3V0cHV0PScsICd2ZXJib3NlPScsICdm
aWx0ZXI9JywgJ2dpdC1jb21taXQ9J10KQEAgLTU1OCw3ICs1NTksNyBAQCBjbGFzcyBBcmd1bWVu
dFBhcnNlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxsb3dlZCBv
dXRwdXQgZm9ybWF0cyBhcmUgZW1hY3MgYW5kIHZzNy4nICUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0X2Zvcm1hdCkKIAotICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IHN0eWxl
X2NhdGVnb3JpZXMoKQorICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IF9hbGxfY2F0ZWdvcmllcygp
CiAgICAgICAgIHZhbGlkYXRlX2ZpbHRlcl9ydWxlcyh1c2VyX3J1bGVzLCBhbGxfY2F0ZWdvcmll
cykKIAogICAgICAgICB2ZXJib3NpdHkgPSBpbnQodmVyYm9zaXR5KQpAQCAtNTczLDcgKzU3NCw3
IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6CiAgICAgICAgIG9wdGlvbnMgPSBQcm9j
ZXNzb3JPcHRpb25zKGV4dHJhX2ZsYWdfdmFsdWVzPWV4dHJhX2ZsYWdfdmFsdWVzLAogICAgICAg
ICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9u
LAogICAgICAgICAgICAgICAgICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKLSAgICAgICAg
ICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9TUFYX1JFUE9SVFNfUEVSX0NB
VEVHT1JZLAorICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeT1f
TUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZLAogICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9m
b3JtYXQ9b3V0cHV0X2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9dmVy
Ym9zaXR5KQogCkBAIC02MTcsMTQgKzYxOCwxNCBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVy
KG9iamVjdCk6CiAKICAgICBkZWYgc2hvdWxkX3NraXBfd2l0aF93YXJuaW5nKHNlbGYsIGZpbGVf
cGF0aCk6CiAgICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIHNob3VsZCBi
ZSBza2lwcGVkIHdpdGggYSB3YXJuaW5nLiIiIgotICAgICAgICBmb3Igc2tpcHBlZF9maWxlIGlu
IFNLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HOgorICAgICAgICBmb3Igc2tpcHBlZF9maWxlIGlu
IF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORzoKICAgICAgICAgICAgIGlmIGZpbGVfcGF0aC5m
aW5kKHNraXBwZWRfZmlsZSkgPj0gMDoKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAg
ICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBzaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmco
c2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGZp
bGUgc2hvdWxkIGJlIHNraXBwZWQgd2l0aG91dCBhIHdhcm5pbmcuIiIiCi0gICAgICAgIGZvciBz
a2lwcGVkX2ZpbGUgaW4gU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkc6CisgICAgICAgIGZv
ciBza2lwcGVkX2ZpbGUgaW4gX1NLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5HOgogICAgICAg
ICAgICAgaWYgZmlsZV9wYXRoLmZpbmQoc2tpcHBlZF9maWxlKSA+PSAwOgogICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtNzg0LDEwICs3ODUsMTEg
QEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAKICAgICAgICAgIiIiCiAgICAgICAgIGlm
IGhhbmRsZV9zdHlsZV9lcnJvciBpcyBOb25lOgotICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vy
cm9yID0gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKGZpbGVfcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0ZGVycl93cml0ZSkKKyAgICAgICAg
ICAgIGhhbmRsZV9zdHlsZV9lcnJvciA9IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihmaWxlX3Bh
dGg9ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bnM9c2VsZi5vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y3JlbWVudF9lcnJvcl9jb3VudD0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zZWxmLl9zdGRlcnJfd3JpdGUpCiAgICAgICAg
IGlmIHByb2Nlc3NfZmlsZSBpcyBOb25lOgogICAgICAgICAgICAgcHJvY2Vzc19maWxlID0gc2Vs
Zi5fcHJvY2Vzc19maWxlCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQppbmRleCBlMWM5YmFmLi43MjhjMTA2IDEwMDc1
NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRl
c3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5CkBAIC0zNyw4ICszNywxMSBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9ydCBj
aGVja2VyIGFzIHN0eWxlCitmcm9tIGNoZWNrZXIgaW1wb3J0IF9CQVNFX0ZJTFRFUl9SVUxFUwor
ZnJvbSBjaGVja2VyIGltcG9ydCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZCiBmcm9tIGNoZWNr
ZXIgaW1wb3J0IF9QQVRIX1JVTEVTX1NQRUNJRklFUiBhcyBQQVRIX1JVTEVTX1NQRUNJRklFUgot
ZnJvbSBjaGVja2VyIGltcG9ydCBzdHlsZV9jYXRlZ29yaWVzCitmcm9tIGNoZWNrZXIgaW1wb3J0
IF9hbGxfY2F0ZWdvcmllcworZnJvbSBjaGVja2VyIGltcG9ydCBEZWZhdWx0Q29tbWFuZE9wdGlv
blZhbHVlcwogZnJvbSBjaGVja2VyIGltcG9ydCBQcm9jZXNzb3JEaXNwYXRjaGVyCiBmcm9tIGNo
ZWNrZXIgaW1wb3J0IFByb2Nlc3Nvck9wdGlvbnMKIGZyb20gY2hlY2tlciBpbXBvcnQgU3R5bGVD
aGVja2VyCkBAIC0xMzgsMTggKzE0MSwxOCBAQCBjbGFzcyBHbG9iYWxWYXJpYWJsZXNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJUZXN0cyB2YWxpZGl0eSBvZiB0aGUgZ2xvYmFsIHZh
cmlhYmxlcy4iIiIKIAogICAgIGRlZiBfYWxsX2NhdGVnb3JpZXMoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzdHlsZS5zdHlsZV9jYXRlZ29yaWVzKCkKKyAgICAgICAgcmV0dXJuIF9hbGxfY2F0ZWdv
cmllcygpCiAKICAgICBkZWYgZGVmYXVsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzdHlsZS53
ZWJraXRfYXJndW1lbnRfZGVmYXVsdHMoKQorICAgICAgICByZXR1cm4gc3R5bGUuX2NoZWNrX3dl
YmtpdF9zdHlsZV9kZWZhdWx0cygpCiAKLSAgICBkZWYgdGVzdF9maWx0ZXJfcnVsZXMoc2VsZik6
CisgICAgZGVmIHRlc3Rfd2Via2l0X2Jhc2VfZmlsdGVyX3J1bGVzKHNlbGYpOgorICAgICAgICBi
YXNlX2ZpbHRlcl9ydWxlcyA9IF9CQVNFX0ZJTFRFUl9SVUxFUwogICAgICAgICBkZWZhdWx0cyA9
IHNlbGYuZGVmYXVsdHMoKQogICAgICAgICBhbHJlYWR5X3NlZW4gPSBbXQotICAgICAgICB2YWxp
ZGF0ZV9maWx0ZXJfcnVsZXMoZGVmYXVsdHMuYmFzZV9maWx0ZXJfcnVsZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9hbGxfY2F0ZWdvcmllcygpKQorICAgICAgICB2YWxp
ZGF0ZV9maWx0ZXJfcnVsZXMoYmFzZV9maWx0ZXJfcnVsZXMsIHNlbGYuX2FsbF9jYXRlZ29yaWVz
KCkpCiAgICAgICAgICMgQWxzbyBkbyBzb21lIGFkZGl0aW9uYWwgY2hlY2tzLgotICAgICAgICBm
b3IgcnVsZSBpbiBkZWZhdWx0cy5iYXNlX2ZpbHRlcl9ydWxlczoKKyAgICAgICAgZm9yIHJ1bGUg
aW4gYmFzZV9maWx0ZXJfcnVsZXM6CiAgICAgICAgICAgICAjIENoZWNrIG5vIGxlYWRpbmcgb3Ig
dHJhaWxpbmcgd2hpdGUgc3BhY2UuCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhydWxl
LCBydWxlLnN0cmlwKCkpCiAgICAgICAgICAgICAjIEFsbCBjYXRlZ29yaWVzIGFyZSBvbiBieSBk
ZWZhdWx0LCBzbyBkZWZhdWx0cyBzaG91bGQKQEAgLTE2MSwzNyArMTY0LDYwIEBAIGNsYXNzIEds
b2JhbFZhcmlhYmxlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZGVm
YXVsdHMoc2VsZik6CiAgICAgICAgICIiIkNoZWNrIHRoYXQgZGVmYXVsdCBhcmd1bWVudHMgYXJl
IHZhbGlkLiIiIgotICAgICAgICBkZWZhdWx0cyA9IHNlbGYuZGVmYXVsdHMoKQorICAgICAgICBk
ZWZhdWx0X29wdGlvbnMgPSBzZWxmLmRlZmF1bHRzKCkKIAogICAgICAgICAjIEZJWE1FOiBXZSBz
aG91bGQgbm90IG5lZWQgdG8gY2FsbCBwYXJzZSgpIHRvIGRldGVybWluZQogICAgICAgICAjICAg
ICAgICB3aGV0aGVyIHRoZSBkZWZhdWx0IGFyZ3VtZW50cyBhcmUgdmFsaWQuCi0gICAgICAgIHBh
cnNlciA9IHN0eWxlLkFyZ3VtZW50UGFyc2VyKGRlZmF1bHRzKQorICAgICAgICBwYXJzZXIgPSBz
dHlsZS5Bcmd1bWVudFBhcnNlcihkZWZhdWx0X29wdGlvbnM9ZGVmYXVsdF9vcHRpb25zKQogICAg
ICAgICAjIE5vIG5lZWQgdG8gdGVzdCB0aGUgcmV0dXJuIHZhbHVlIGhlcmUgc2luY2Ugd2UgdGVz
dCBwYXJzZSgpCiAgICAgICAgICMgb24gdmFsaWQgYXJndW1lbnRzIGVsc2V3aGVyZS4KICAgICAg
ICAgcGFyc2VyLnBhcnNlKFtdKSAjIGFyZ3VtZW50cyB2YWxpZDogbm8gZXJyb3Igb3IgU3lzdGVt
RXhpdAogCiAgICAgZGVmIHRlc3RfcGF0aF9ydWxlc19zcGVjaWZpZXIoc2VsZik6Ci0gICAgICAg
IGFsbF9jYXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCisgICAgICAgIGFsbF9jYXRlZ29y
aWVzID0gc2VsZi5fYWxsX2NhdGVnb3JpZXMoKQogICAgICAgICBmb3IgKHN1Yl9wYXRocywgcGF0
aF9ydWxlcykgaW4gUEFUSF9SVUxFU19TUEVDSUZJRVI6Ci0gICAgICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoaXNpbnN0YW5jZShwYXRoX3J1bGVzLCB0dXBsZSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkNoZWNraW5nOiAiICsgc3RyKHBhdGhfcnVsZXMpKQogICAgICAgICAgICAgdmFs
aWRhdGVfZmlsdGVyX3J1bGVzKHBhdGhfcnVsZXMsIHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkpCiAK
LSAgICAgICAgIyBUcnkgdXNpbmcgdGhlIHBhdGggc3BlY2lmaWVyIChhcyBhbiAiZW5kLXRvLWVu
ZCIgY2hlY2spLgogICAgICAgICBjb25maWcgPSBGaWx0ZXJDb25maWd1cmF0aW9uKHBhdGhfc3Bl
Y2lmaWM9UEFUSF9SVUxFU19TUEVDSUZJRVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb25m
aWcuc2hvdWxkX2NoZWNrKCJ4eHhfYW55X2NhdGVnb3J5IiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInh4eF9ub25fbWF0Y2hpbmdfcGF0aCIpKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoY29uZmlnLnNob3VsZF9jaGVjaygieHh4X2FueV9jYXRlZ29yeSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZWJLaXRUb29s
cy9XZWJLaXRBUElUZXN0LyIpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNvbmZpZy5zaG91
bGRfY2hlY2soImJ1aWxkL2luY2x1ZGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIldlYktpdFRvb2xzL1dlYktpdEFQSVRlc3QvIikpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoY29uZmlnLnNob3VsZF9jaGVjaygicmVhZGFiaWxpdHkvbmFtaW5nIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlYktpdC9xdC90ZXN0cy9xd2ViZWxlbWVu
dC90c3RfcXdlYmVsZW1lbnQuY3BwIikpCisKKyAgICAgICAgZGVmIGFzc2VydENoZWNrKHBhdGgs
IGNhdGVnb3J5KToKKyAgICAgICAgICAgICIiIkFzc2VydCB0aGF0IHRoZSBnaXZlbiBjYXRlZ29y
eSBzaG91bGQgYmUgY2hlY2tlZC4iIiIKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAoJ1Nob3VsZCBj
aGVjayBjYXRlZ29yeSAiJXMiIGZvciBwYXRoICIlcyIuJworICAgICAgICAgICAgICAgICAgICAg
ICAlIChjYXRlZ29yeSwgcGF0aCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY29uZmln
LnNob3VsZF9jaGVjayhjYXRlZ29yeSwgcGF0aCkpCisKKyAgICAgICAgZGVmIGFzc2VydE5vQ2hl
Y2socGF0aCwgY2F0ZWdvcnkpOgorICAgICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGdpdmVu
IGNhdGVnb3J5IHNob3VsZCBub3QgYmUgY2hlY2tlZC4iIiIKKyAgICAgICAgICAgIG1lc3NhZ2Ug
PSAoJ1Nob3VsZCBub3QgY2hlY2sgY2F0ZWdvcnkgIiVzIiBmb3IgcGF0aCAiJXMiLicKKyAgICAg
ICAgICAgICAgICAgICAgICAgJSAoY2F0ZWdvcnksIHBhdGgpKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShjb25maWcuc2hvdWxkX2NoZWNrKGNhdGVnb3J5LCBwYXRoKSwgbWVzc2FnZSkK
KworICAgICAgICBhc3NlcnRDaGVjaygicmFuZG9tX3BhdGguY3BwIiwKKyAgICAgICAgICAgICAg
ICAgICAgImJ1aWxkL2luY2x1ZGUiKQorICAgICAgICBhc3NlcnROb0NoZWNrKCJXZWJLaXRUb29s
cy9XZWJLaXRBUElUZXN0L21haW4uY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgICAiYnVpbGQv
aW5jbHVkZSIpCisgICAgICAgIGFzc2VydE5vQ2hlY2soIldlYktpdC9xdC9RR1ZMYXVuY2hlci9t
YWluLmNwcCIsCisgICAgICAgICAgICAgICAgICAgICAgImJ1aWxkL2luY2x1ZGUiKQorICAgICAg
ICBhc3NlcnROb0NoZWNrKCJXZWJLaXQvcXQvUUdWTGF1bmNoZXIvbWFpbi5jcHAiLAorICAgICAg
ICAgICAgICAgICAgICAgICJyZWFkYWJpbGl0eS9zdHJlYW1zIikKKworICAgICAgICBhc3NlcnRD
aGVjaygicmFuZG9tX3BhdGguY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgInJlYWRhYmlsaXR5
L25hbWluZyIpCisgICAgICAgIGFzc2VydE5vQ2hlY2soIldlYktpdC9ndGsvd2Via2l0L3dlYmtp
dC5oIiwKKyAgICAgICAgICAgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFtaW5nIikKKyAgICAg
ICAgYXNzZXJ0Tm9DaGVjaygiV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCIsCisgICAgICAgICAg
ICAgICAgICAgICAgInJlYWRhYmlsaXR5L25hbWluZyIpCisgICAgICAgIGFzc2VydE5vQ2hlY2so
IldlYktpdC9xdC90ZXN0cy9xd2ViZWxlbWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFtaW5nIikKKyAgICAgICAgYXNzZXJ0Tm9D
aGVjaygKKyAgICAgICAgICAgICJKYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5l
L3RzdF9xc2NyaXB0ZW5naW5lLmNwcCIsCisgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFtaW5n
IikKKwogCiAgICAgZGVmIHRlc3RfbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5KHNlbGYpOgotICAg
ICAgICAiIiJDaGVjayB0aGF0IE1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSBpcyB2YWxpZC4iIiIK
KyAgICAgICAgIiIiQ2hlY2sgdGhhdCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZIGlzIHZhbGlk
LiIiIgogICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkKLSAg
ICAgICAgZm9yIGNhdGVnb3J5IGluIHN0eWxlLk1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWS5pdGVy
a2V5cygpOgorICAgICAgICBmb3IgY2F0ZWdvcnkgaW4gX01BWF9SRVBPUlRTX1BFUl9DQVRFR09S
WS5pdGVya2V5cygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhdGVnb3J5IGluIGFs
bF9jYXRlZ29yaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdLZXkgIiVzIiBpcyBu
b3QgYSBjYXRlZ29yeScgJSBjYXRlZ29yeSkKIApAQCAtMjM3LDI5ICsyNjMsMjkgQEAgY2xhc3Mg
QXJndW1lbnRQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiUmV0dXJu
IGEgZGVmYXVsdCBwYXJzZSgpIGZ1bmN0aW9uIGZvciB0ZXN0aW5nLiIiIgogICAgICAgICByZXR1
cm4gc2VsZi5fY3JlYXRlX3BhcnNlcigpLnBhcnNlCiAKLSAgICBkZWYgX2NyZWF0ZV9kZWZhdWx0
cyhzZWxmLCBkZWZhdWx0X291dHB1dF9mb3JtYXQ9J3ZzNycsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdF92ZXJib3NpdHk9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0X2ZpbHRlcl9ydWxlcz1bJy0nLCAnK3doaXRlc3BhY2UnXSk6Ci0gICAgICAgICIiIlJldHVy
biBhIGRlZmF1bHQgQXJndW1lbnREZWZhdWx0cyBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIKLSAg
ICAgICAgcmV0dXJuIHN0eWxlLkFyZ3VtZW50RGVmYXVsdHMoZGVmYXVsdF9vdXRwdXRfZm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3ZlcmJvc2l0
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9maWx0ZXJf
cnVsZXMpCisgICAgZGVmIF9jcmVhdGVfZGVmYXVsdHMoc2VsZik6CisgICAgICAgICIiIlJldHVy
biBhIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNlIGZvciB0ZXN0aW5nLiIiIgor
ICAgICAgICBiYXNlX2ZpbHRlcl9ydWxlcyA9IFsiLSIsICIrd2hpdGVzcGFjZSJdCisgICAgICAg
IHJldHVybiBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhiYXNlX2ZpbHRlcl9ydWxlcz1iYXNl
X2ZpbHRlcl9ydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dF9mb3JtYXQ9InZzNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJib3NpdHk9MykKIAotICAgIGRlZiBfY3JlYXRlX3BhcnNlcihzZWxmLCBkZWZh
dWx0cz1Ob25lKToKKyAgICBkZWYgX2NyZWF0ZV9wYXJzZXIoc2VsZik6CiAgICAgICAgICIiIlJl
dHVybiBhbiBBcmd1bWVudFBhcnNlciBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIKLSAgICAgICAg
ZGVmIGNyZWF0ZV91c2FnZShfZGVmYXVsdHMpOgorICAgICAgICBkZWYgY3JlYXRlX3VzYWdlKF9k
ZWZhdWx0X29wdGlvbnMpOgogICAgICAgICAgICAgIiIiUmV0dXJuIGEgdXNhZ2Ugc3RyaW5nIGZv
ciB0ZXN0aW5nLiIiIgogICAgICAgICAgICAgcmV0dXJuICJ1c2FnZSIKIAotICAgICAgICBkZWYg
ZG9jX3ByaW50KG1lc3NhZ2UpOgorICAgICAgICBkZWYgc3RkZXJyX3dyaXRlKG1lc3NhZ2UpOgog
ICAgICAgICAgICAgIyBXZSBkbyBub3Qgd2FudCB0aGUgdXNhZ2Ugc3RyaW5nIG9yIHN0eWxlIGNh
dGVnb3JpZXMKICAgICAgICAgICAgICMgdG8gcHJpbnQgZHVyaW5nIHVuaXQgdGVzdHMsIHNvIHBy
aW50IG5vdGhpbmcuCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBpZiBkZWZhdWx0cyBp
cyBOb25lOgotICAgICAgICAgICAgZGVmYXVsdHMgPSBzZWxmLl9jcmVhdGVfZGVmYXVsdHMoKQor
ICAgICAgICBkZWZhdWx0X29wdGlvbnMgPSBzZWxmLl9jcmVhdGVfZGVmYXVsdHMoKQogCi0gICAg
ICAgIHJldHVybiBzdHlsZS5Bcmd1bWVudFBhcnNlcihkZWZhdWx0cywgY3JlYXRlX3VzYWdlLCBk
b2NfcHJpbnQpCisgICAgICAgIHJldHVybiBzdHlsZS5Bcmd1bWVudFBhcnNlcihjcmVhdGVfdXNh
Z2U9Y3JlYXRlX3VzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdF9vcHRpb25zPWRlZmF1bHRfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZGVycl93cml0ZT1zdGRlcnJfd3JpdGUpCiAKICAgICBkZWYgdGVzdF9wYXJz
ZV9kb2N1bWVudGF0aW9uKHNlbGYpOgogICAgICAgICBwYXJzZSA9IHNlbGYuX3BhcnNlKCkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxl
cnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJz
LnB5CmluZGV4IDE5NDBlMDMuLmQ4N2RmNzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weQpAQCAtMTUzLDEwICsxNTMsMTMg
QEAgY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogCiAgICAgICAgICIiIgog
ICAgICAgICBzZWxmLl9kaWZmID0gZGlmZgotICAgICAgICBzZWxmLl9kZWZhdWx0X2Vycm9yX2hh
bmRsZXIgPSBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIoZmlsZV9wYXRoLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZSkKKworICAgICAg
ICBzZWxmLl9kZWZhdWx0X2Vycm9yX2hhbmRsZXIgPSBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9Zmls
ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVt
ZW50X2Vycm9yX2NvdW50PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbnM9b3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zdGRlcnJfd3JpdGUpCiAKICAgICAgICAg
IyBUaGUgbGluZSBudW1iZXJzIG9mIHRoZSBtb2RpZmllZCBsaW5lcy4gVGhpcyBpcyBzZXQgbGF6
aWx5LgogICAgICAgICBzZWxmLl9saW5lX251bWJlcnMgPSBzZXQoKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5p
dHRlc3QucHkKaW5kZXggMWQ3ZTk5OC4uNDNhMTFmZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0
LnB5CkBAIC0zNCw0NiArMzQsNDQgQEAgZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgUGF0Y2hT
dHlsZUVycm9ySGFuZGxlcgogY2xhc3MgU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Vycm9y
X21lc3NhZ2VzID0gIiIKKyAgICAgICAgc2VsZi5fZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAg
ICBzZWxmLl9lcnJvcl9jb3VudCA9IDAKIAogICAgIGRlZiBfbW9ja19pbmNyZW1lbnRfZXJyb3Jf
Y291bnQoc2VsZik6CiAgICAgICAgIHNlbGYuX2Vycm9yX2NvdW50ICs9IDEKIAogICAgIGRlZiBf
bW9ja19zdGRlcnJfd3JpdGUoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHNlbGYuX2Vycm9yX21l
c3NhZ2VzICs9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5fZXJyb3JfbWVzc2FnZXMuYXBwZW5kKG1l
c3NhZ2UpCiAKIAogY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9y
SGFuZGxlclRlc3RCYXNlKToKIAogICAgICIiIlRlc3RzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxl
ciBjbGFzcy4iIiIKIAotICAgIF9maWxlX3BhdGggPSAiZm9vLmgiCi0KICAgICBfY2F0ZWdvcnkg
PSAid2hpdGVzcGFjZS90YWIiCisgICAgIiIiVGhlIGNhdGVnb3J5IG5hbWUgZm9yIHRoZSB0ZXN0
cyBpbiB0aGlzIGNsYXNzLiIiIgogCi0gICAgZGVmIF9lcnJvcl9oYW5kbGVyKHNlbGYsIG9wdGlv
bnMpOgotICAgICAgICByZXR1cm4gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKHNlbGYuX2ZpbGVf
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21vY2tfaW5jcmVt
ZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQorICAgIF9maWxlX3BhdGggPSAiZm9vLmgiCisgICAg
IiIiVGhlIGZpbGUgcGF0aCBmb3IgdGhlIHRlc3RzIGluIHRoaXMgY2xhc3MuIiIiCiAKICAgICBk
ZWYgX2NoZWNrX2luaXRpYWxpemVkKHNlbGYpOgogICAgICAgICAiIiJDaGVjayB0aGF0IGNvdW50
IGFuZCBlcnJvciBtZXNzYWdlcyBhcmUgaW5pdGlhbGl6ZWQuIiIiCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKDAsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygiIiwgc2VsZi5fZXJyb3JfbWVzc2FnZXMpCi0KLSAgICBkZWYgX2NhbGwoc2VsZiwgaGFuZGxl
X2Vycm9yLCBvcHRpb25zLCBjb25maWRlbmNlKToKLSAgICAgICAgIiIiSGFuZGxlIGFuIGVycm9y
IHdpdGggdGhlIGdpdmVuIGVycm9yIGhhbmRsZXIuIiIiCi0gICAgICAgIGxpbmVfbnVtYmVyID0g
MTAwCi0gICAgICAgIG1lc3NhZ2UgPSAibWVzc2FnZSIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoMCwgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKIAotICAgICAgICBoYW5kbGVfZXJyb3Io
bGluZV9udW1iZXIsIHNlbGYuX2NhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKQotCi0gICAg
ZGVmIF9jYWxsX2Vycm9yX2hhbmRsZXIoc2VsZiwgb3B0aW9ucywgY29uZmlkZW5jZSk6Ci0gICAg
ICAgICIiIkhhbmRsZSBhbiBlcnJvciB1c2luZyBhIG5ldyBlcnJvciBoYW5kbGVyLiIiIgotICAg
ICAgICBoYW5kbGVfZXJyb3IgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKG9wdGlvbnMpCi0gICAgICAg
IHNlbGYuX2NhbGwoaGFuZGxlX2Vycm9yLCBvcHRpb25zLCBjb25maWRlbmNlKQorICAgIGRlZiBf
ZXJyb3JfaGFuZGxlcihzZWxmLCBvcHRpb25zKToKKyAgICAgICAgcmV0dXJuIERlZmF1bHRTdHls
ZUVycm9ySGFuZGxlcihmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudD0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9ja19pbmNyZW1lbnRf
ZXJyb3JfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9ucz1vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZGVycl93cml0ZT1zZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkKKworICAgIGRlZiBfY2FsbF9lcnJv
cl9oYW5kbGVyKHNlbGYsIGhhbmRsZV9lcnJvciwgY29uZmlkZW5jZSk6CisgICAgICAgICIiIkNh
bGwgdGhlIGdpdmVuIGVycm9yIGhhbmRsZXIgd2l0aCBhIHRlc3QgZXJyb3IuIiIiCisgICAgICAg
IGhhbmRsZV9lcnJvcihsaW5lX251bWJlcj0xMDAsCisgICAgICAgICAgICAgICAgICAgICBjYXRl
Z29yeT1zZWxmLl9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2U9Y29u
ZmlkZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Im1lc3NhZ2UiKQogCiAgICAg
ZGVmIHRlc3RfY2FsbF9ub25fcmVwb3J0YWJsZShzZWxmKToKICAgICAgICAgIiIiVGVzdCBfX2Nh
bGxfXygpIG1ldGhvZCB3aXRoIGEgbm9uLXJlcG9ydGFibGUgZXJyb3IuIiIiCkBAIC04NiwxMCAr
ODQsMTEgQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9ySGFu
ZGxlclRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlkZW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fZmlsZV9wYXRoKSkKIAotICAgICAgICBzZWxmLl9jYWxsX2Vycm9yX2hh
bmRsZXIob3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgZXJyb3JfaGFuZGxlciA9IHNlbGYu
X2Vycm9yX2hhbmRsZXIob3B0aW9ucykKKyAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVy
KGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
MCwgc2VsZi5fZXJyb3JfY291bnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCIiLCBzZWxm
Ll9lcnJvcl9tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHNlbGYuX2Vy
cm9yX21lc3NhZ2VzKQogCiAgICAgZGVmIHRlc3RfY2FsbF9yZXBvcnRhYmxlX2VtYWNzKHNlbGYp
OgogICAgICAgICAiIiJUZXN0IF9fY2FsbF9fKCkgbWV0aG9kIHdpdGggYSByZXBvcnRhYmxlIGVy
cm9yIGFuZCBlbWFjcyBmb3JtYXQuIiIiCkBAIC05NywxMCArOTYsMTEgQEAgY2xhc3MgRGVmYXVs
dFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9ySGFuZGxlclRlc3RCYXNlKToKICAgICAg
ICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMsIG91dHB1dF9mb3JtYXQ9
ImVtYWNzIikKICAgICAgICAgc2VsZi5fY2hlY2tfaW5pdGlhbGl6ZWQoKQogCi0gICAgICAgIHNl
bGYuX2NhbGxfZXJyb3JfaGFuZGxlcihvcHRpb25zLCBjb25maWRlbmNlKQorICAgICAgICBlcnJv
cl9oYW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxlcihvcHRpb25zKQorICAgICAgICBzZWxmLl9j
YWxsX2Vycm9yX2hhbmRsZXIoZXJyb3JfaGFuZGxlciwgY29uZmlkZW5jZSkKIAogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygxLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHNlbGYuX2Vycm9yX21lc3NhZ2VzWy0xXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImZv
by5oOjEwMDogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQogCiAgICAgZGVmIHRl
c3RfY2FsbF9yZXBvcnRhYmxlX3ZzNyhzZWxmKToKQEAgLTEwOSwxMCArMTA5LDExIEBAIGNsYXNz
IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlclRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6
CiAgICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKHZlcmJvc2l0eT0zLCBvdXRwdXRf
Zm9ybWF0PSJ2czciKQogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFsaXplZCgpCiAKLSAgICAg
ICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKG9wdGlvbnMsIGNvbmZpZGVuY2UpCisgICAgICAg
IGVycm9yX2hhbmRsZXIgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKG9wdGlvbnMpCisgICAgICAgIHNl
bGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25maWRlbmNlKQogCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXNbLTFdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZm9vLmgoMTAwKTogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQogCiAgICAg
ZGVmIHRlc3RfY2FsbF9tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnkoc2VsZik6CkBAIC0xMjUsMjUg
KzEyNiwyNSBAQCBjbGFzcyBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXJUZXN0KFN0eWxlRXJyb3JI
YW5kbGVyVGVzdEJhc2UpOgogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFsaXplZCgpCiAKICAg
ICAgICAgIyBGaXJzdCBjYWxsOiB1c3VhbCByZXBvcnRpbmcuCi0gICAgICAgIHNlbGYuX2NhbGwo
ZXJyb3JfaGFuZGxlciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2FsbF9l
cnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLl9lcnJvcl9tZXNzYWdlcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVu
KHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5f
ZXJyb3JfbWVzc2FnZXNbLTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmg6MTAw
OiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiIpCiAKICAgICAgICAgIyBTZWNvbmQg
Y2FsbDogc3VwcHJlc3Npb24gbWVzc2FnZSByZXBvcnRlZC4KLSAgICAgICAgc2VsZi5fZXJyb3Jf
bWVzc2FnZXMgPSAiIgotICAgICAgICBzZWxmLl9jYWxsKGVycm9yX2hhbmRsZXIsIG9wdGlvbnMs
IGNvbmZpZGVuY2UpCisgICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5k
bGVyLCBjb25maWRlbmNlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygyLCBzZWxmLl9lcnJv
cl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMs
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDIsIGxlbihzZWxmLl9lcnJvcl9tZXNzYWdlcykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vycm9yX21lc3NhZ2VzWy0xXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImZvby5oOjEwMDogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNl
L3RhYl0gWzVdXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2luZyBmdXJ0
aGVyIFslc10gcmVwb3J0cyBmb3IgdGhpcyBmaWxlLlxuIgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAlIHNlbGYuX2NhdGVnb3J5KQogCiAgICAgICAgICMgVGhpcmQgY2FsbDogbm8gcmVwb3J0
LgotICAgICAgICBzZWxmLl9lcnJvcl9tZXNzYWdlcyA9ICIiCi0gICAgICAgIHNlbGYuX2NhbGwo
ZXJyb3JfaGFuZGxlciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2FsbF9l
cnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKDMsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLl9lcnJvcl9tZXNzYWdlcywgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDIs
IGxlbihzZWxmLl9lcnJvcl9tZXNzYWdlcykpCiAKIAogY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFu
ZGxlclRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlci5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CmluZGV4IDE5YzJmNGQuLjJiZDFhZDcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CkBAIC0xMzksMTIg
KzEzOSw4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmUgYXBwZW5kZWQuICBUaGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNoIHRh
a2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2VkZW5jZSwgaS5lLiBvbmx5IHRoZSBm
aXJzdCBtYXRjaCB0cmlnZ2VycwogICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGFwcGVuZC4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlICJwYXRoX3J1bGVzIiB2YWx1ZSBpcyB0
aGUgdHVwbGUgb2YgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSAicGF0
aF9ydWxlcyIgdmFsdWUgaXMgYSBsaXN0IG9mIGZpbHRlcgogICAgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bGVzIHRoYXQgY2FuIGJlIGFwcGVuZGVkIHRvIHRoZSBiYXNlIHJ1bGVzLgotICAgICAg
ICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyBhIHR1cGxlIHJhdGhlciB0aGFuIGEgbGlz
dCBzbyBpdAotICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSB1c2VkIGFzIGEgZGljdGlv
bmFyeSBrZXkuICBUaGUgZGljdGlvbmFyeQotICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGZv
ciBjYWNoaW5nIHB1cnBvc2VzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMgY2xhc3MuCiAKICAgICAgICAgICB1c2VyX3J1bGVzOiBBIGxpc3Qg
b2YgZmlsdGVyIHJ1bGVzIHRoYXQgaXMgYWx3YXlzIGFwcGVuZGVkCiAgICAgICAgICAgICAgICAg
ICAgICAgdG8gdGhlIGJhc2UgcnVsZXMgYW5kIGFueSBwYXRoIHJ1bGVzLiAgSW4gb3RoZXIKQEAg
LTIxMCwxNiArMjA2LDI4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIHNlbGYuX3BhdGhfc3BlY2lmaWNfbG93ZXIKIAogICAgIGRlZiBfcGF0aF9y
dWxlc19mcm9tX3BhdGgoc2VsZiwgcGF0aCk6Ci0gICAgICAgICIiIkRldGVybWluZSB0aGUgcGF0
aC1zcGVjaWZpYyBydWxlcyB0byB1c2UsIGFuZCByZXR1cm4gYXMgYSB0dXBsZS4iIiIKKyAgICAg
ICAgIiIiRGV0ZXJtaW5lIHRoZSBwYXRoLXNwZWNpZmljIHJ1bGVzIHRvIHVzZSwgYW5kIHJldHVy
biBhcyBhIHR1cGxlLgorCisgICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgdHVwbGUgcmF0
aGVyIHRoYW4gYSBsaXN0IHNvIHRoZSByZXR1cm4KKyAgICAgICAgIHZhbHVlIGNhbiBiZSBwYXNz
ZWQgdG8gX2ZpbHRlcl9mcm9tX3BhdGhfcnVsZXMoKSB3aXRob3V0IGNoYW5nZS4KKworICAgICAg
ICAiIiIKICAgICAgICAgcGF0aCA9IHBhdGgubG93ZXIoKQogICAgICAgICBmb3IgKHN1Yl9wYXRo
cywgcGF0aF9ydWxlcykgaW4gc2VsZi5fZ2V0X3BhdGhfc3BlY2lmaWNfbG93ZXIoKToKICAgICAg
ICAgICAgIGZvciBzdWJfcGF0aCBpbiBzdWJfcGF0aHM6CiAgICAgICAgICAgICAgICAgaWYgcGF0
aC5maW5kKHN1Yl9wYXRoKSA+IC0xOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGF0aF9y
dWxlcworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHVwbGUocGF0aF9ydWxlcykKICAgICAg
ICAgcmV0dXJuICgpICMgRGVmYXVsdCB0byB0aGUgZW1wdHkgdHVwbGUuCiAKICAgICBkZWYgX2Zp
bHRlcl9mcm9tX3BhdGhfcnVsZXMoc2VsZiwgcGF0aF9ydWxlcyk6Ci0gICAgICAgICIiIlJldHVy
biB0aGUgQ2F0ZWdvcnlGaWx0ZXIgYXNzb2NpYXRlZCB0byBhIHBhdGggcnVsZXMgdHVwbGUuIiIi
CisgICAgICAgICIiIlJldHVybiB0aGUgQ2F0ZWdvcnlGaWx0ZXIgYXNzb2NpYXRlZCB0byB0aGUg
Z2l2ZW4gcGF0aCBydWxlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHBhdGhfcnVsZXM6
IEEgdHVwbGUgb2YgcGF0aCBydWxlcy4gIFdlIHJlcXVpcmUgYSB0dXBsZSByYXRoZXIKKyAgICAg
ICAgICAgICAgICAgICAgICB0aGFuIGEgbGlzdCBzbyB0aGUgdmFsdWUgY2FuIGJlIHVzZWQgYXMg
YSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgICAgICAga2V5IGluIHNlbGYuX3BhdGhfcnVs
ZXNfdG9fZmlsdGVyLgorCisgICAgICAgICIiIgogICAgICAgICAjIFdlIHJldXNlIHRoZSBzYW1l
IENhdGVnb3J5RmlsdGVyIHdoZXJlIHBvc3NpYmxlIHRvIHRha2UKICAgICAgICAgIyBhZHZhbnRh
Z2Ugb2YgdGhlIGNhY2hpbmcgdGhleSBkby4KICAgICAgICAgaWYgcGF0aF9ydWxlcyBub3QgaW4g
c2VsZi5fcGF0aF9ydWxlc190b19maWx0ZXI6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CmluZGV4IDg0NzYwYTUuLjc2ZjI1
ZGIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVy
X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmls
dGVyX3VuaXR0ZXN0LnB5CkBAIC0xNTcsNyArMTU3LDcgQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJh
dGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgdGhhdCB0aGUgYXR0
cmlidXRlcyBhcmUgZ2V0dGluZyBzZXQgY29ycmVjdGx5LgogICAgICAgICAjIFdlIHVzZSBwYXJh
bWV0ZXIgdmFsdWVzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0cy4KICAgICAg
ICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aCJd
LCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFsoWyJwYXRoIl0sIFsiK2EiXSld
CiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisiXQogCiAgICAgICAgIGNvbmZpZyA9IHNlbGYuX2Nv
bmZpZyhiYXNlX3J1bGVzLCBwYXRoX3NwZWNpZmljLCB1c2VyX3J1bGVzKQpAQCAtMTg1LDcgKzE4
NSw3IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
IAogICAgICAgICAjIFRoZXNlIHBhcmFtZXRlciB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIHRo
ZSBkZWZhdWx0cy4KICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3Bl
Y2lmaWMgPSBbKFsicGF0aCJdLCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFso
WyJwYXRoIl0sIFsiK2EiXSldCiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisiXQogCiAgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoY29uZmlnLl9fZXFfXyhGaWx0ZXJDb25maWd1cmF0aW9uKApAQCAt
MjE5LDggKzIxOSw4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICBkZWYgdGVzdF9wYXRoX3NwZWNpZmljKHNlbGYpOgogICAgICAgICAiIiJU
ZXN0IGVmZmVjdCBvZiBwYXRoX3J1bGVzX3NwZWNpZmllciBvbiBzaG91bGRfY2hlY2soKS4iIiIK
ICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsi
cGF0aDEiXSwgKCIrYiIsKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKFsicGF0aDIiXSwg
KCIrYyIsKSldCisgICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aDEiXSwgWyIrYiJdKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoWyJwYXRoMiJdLCBbIitjIl0pXQogICAgICAgICB1
c2VyX3J1bGVzID0gW10KIAogICAgICAgICBjb25maWcgPSBzZWxmLl9jb25maWcoYmFzZV9ydWxl
cywgcGF0aF9zcGVjaWZpYywgdXNlcl9ydWxlcykKQEAgLTIzMyw3ICsyMzMsNyBAQCBjbGFzcyBG
aWx0ZXJDb25maWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rf
cGF0aF93aXRoX2RpZmZlcmVudF9jYXNlKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGEgcGF0aCB0
aGF0IGRpZmZlcnMgb25seSBpbiBjYXNlLiIiIgogICAgICAgICBiYXNlX3J1bGVzID0gWyItIl0K
LSAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFsoWyJGb28vIl0sICgiK3doaXRlc3BhY2UiLCkpXQor
ICAgICAgICBwYXRoX3NwZWNpZmljID0gWyhbIkZvby8iXSwgWyIrd2hpdGVzcGFjZSJdKV0KICAg
ICAgICAgdXNlcl9ydWxlcyA9IFtdCiAKICAgICAgICAgY29uZmlnID0gc2VsZi5fY29uZmlnKGJh
c2VfcnVsZXMsIHBhdGhfc3BlY2lmaWMsIHVzZXJfcnVsZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48830</attachid>
            <date>2010-02-16 14:13:44 -0800</date>
            <delta_ts>2010-02-16 23:21:40 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-34932-2.diff</filename>
            <type>text/plain</type>
            <size>36976</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxZGNjZWY0Li5mMjhhZWI1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTAtMDIt
MTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBtaW5vciBjaGVjay13ZWJr
aXQtc3R5bGUgY29kZSBjbGVhbi11cHMuICBUaGlzIHJldmlzaW9uCisgICAgICAgIGNvbnRhaW5z
IG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDkzMgorCisgICAgICAgICogU2NyaXB0cy9jaGVjay13ZWJraXQt
c3R5bGU6CisgICAgICAgICAgLSBSZXBsYWNlZCB0aGUgY2FsbCB0byB3ZWJraXRfYXJndW1lbnRf
ZGVmYXVsdHMoKSB3aXRoIGEKKyAgICAgICAgICAgIGRlZmF1bHQgcGFyYW1ldGVyIGluIHRoZSBB
cmd1bWVudFBhcnNlciBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgICAtIFJlbW92ZWQgdGhlIFdFQktJVCBwcmVmaXgg
ZnJvbSB0aGUgZGVmYXVsdCBnbG9iYWwgdmFyaWFibGVzLgorICAgICAgICAgIC0gUHJlZml4ZWQg
c2V2ZXJhbCBvZiB0aGUgZ2xvYmFsIHZhcmlhYmxlcyB3aXRoIGFuIHVuZGVyc2NvcmUKKyAgICAg
ICAgICAgIHRvIHJlZmxlY3QgdGhhdCB0aGV5IGFyZSB1c2VkIGludGVybmFsbHkuCisgICAgICAg
ICAgLSBSZW5hbWVkIF9ERUZBVUxUX0ZJTFRFUl9SVUxFUyB0byBfQkFTRV9GSUxURVJfUlVMRVMu
CisgICAgICAgICAgLSBBZGRyZXNzZWQgYSBGSVhNRSBieSBjaGFuZ2luZyB0aGUgX1BBVEhfUlVM
RVNfU1BFQ0lGSUVSCisgICAgICAgICAgICBjb25maWd1cmF0aW9uIGZyb20gbGlzdC10dXBsZSBw
YWlycyB0byBsaXN0LWxpc3QgcGFpcnMuCisgICAgICAgICAgLSBSZW5hbWVkIHN0eWxlX2NhdGVn
b3JpZXMoKSB0byBfYWxsX2NhdGVnb3JpZXMoKS4KKyAgICAgICAgICAtIFJlbmFtZWQgd2Via2l0
X2FyZ3VtZW50X2RlZmF1bHRzKCkgdG8gX2NoZWNrX3dlYmtpdF9zdHlsZV9kZWZhdWx0cygpLgor
ICAgICAgICAgIC0gUmVuYW1lZCB0aGUgQXJndW1lbnREZWZhdWx0cyBjbGFzcyB0byBEZWZhdWx0
Q29tbWFuZE9wdGlvblZhbHVlcy4KKyAgICAgICAgICAtIEluIHRoZSBBcmd1bWVudFBhcnNlciBj
bGFzcy0tCisgICAgICAgICAgICAtIFJlbmFtZWQgdGhlIGRvY19wcmludCBhdHRyaWJ1dGUgdG8g
c3RkZXJyX3dyaXRlLgorICAgICAgICAgICAgLSBPdGhlciBtaW5vciB1cGRhdGVzLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAgIC0gVXBkYXRlZCB0aGUgaW1wb3J0IHN0YXRlbWVudHMgYW5kIHVuaXQgdGVzdCBjbGFzc2Vz
IGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAtIEFkZGVkIGFzc2VydGlvbnMgdG8gdGVzdCBfUEFU
SF9SVUxFU19TUEVDSUZJRVIgbW9yZSBmdWxseS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHk6CisgICAgICAgICAgLSBVcGRhdGVk
IHRoZSB1bml0IHRlc3QgY2xhc3NlcyBhcyBuZWNlc3NhcnkuCisgICAgICAgICAgLSBDaGFuZ2Vk
IFN0eWxlRXJyb3JIYW5kbGVyVGVzdEJhc2UgdG8gc3RvcmUgYSBsaXN0IG9mIGVycm9yCisgICAg
ICAgICAgICBtZXNzYWdlcyByYXRoZXIgdGhhbiBqdXN0IHRoZSBsYXN0IG9uZS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5OgorICAgICAgICAgIC0gQWx0ZXJl
ZCBGaWx0ZXJDb25maWd1cmF0aW9uLl9wYXRoX3J1bGVzX2Zyb21fcGF0aCgpCisgICAgICAgICAg
ICB0byBjb252ZXJ0IHRoZSBwYXRoX3J1bGVzIGxpc3QgdG8gYSB0dXBsZS4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0g
VXBkYXRlZCB0aGUgdW5pdCB0ZXN0cyB0byByZWZsZWN0IHRoZSBjaGFuZ2UgZnJvbSB0dXBsZXMg
dG8KKyAgICAgICAgICAgIGxpc3RzIGluIHRoZSBfUEFUSF9SVUxFU19TUEVDSUZJRVIgY29uZmln
dXJhdGlvbiB2YXJpYWJsZS4KKwogMjAxMC0wMi0xMiAgQ2hhbmcgU2h1ICA8Q2hhbmcuU2h1QG5v
a2lhLmNvbT4KIAogICAgICAgICBOb3QgUmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2st
d2Via2l0LXN0eWxlCmluZGV4IDUwMTI2NGIuLmYxOWZlNzMgMTAwNzU1Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
Y2hlY2std2Via2l0LXN0eWxlCkBAIC01OCw5ICs1OCw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHdyaXRlcigndXRm
OCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBsYWNl
JykKIAotICAgIGRlZmF1bHRzID0gY2hlY2tlci53ZWJraXRfYXJndW1lbnRfZGVmYXVsdHMoKQot
Ci0gICAgcGFyc2VyID0gY2hlY2tlci5Bcmd1bWVudFBhcnNlcihkZWZhdWx0cykKKyAgICBwYXJz
ZXIgPSBjaGVja2VyLkFyZ3VtZW50UGFyc2VyKCkKICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFy
c2VyLnBhcnNlKHN5cy5hcmd2WzE6XSkKIAogICAgIHN0eWxlX2NoZWNrZXIgPSBjaGVja2VyLlN0
eWxlQ2hlY2tlcihvcHRpb25zKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyLnB5CmluZGV4IGZiZGE4Y2IuLjFjNzdiOTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTQ1LDkgKzQ1LDkgQEAgZnJvbSBw
cm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBp
bXBvcnQgVGV4dFByb2Nlc3NvcgogCiAKLSMgVGhlc2UgZGVmYXVsdHMgYXJlIHVzZWQgYnkgY2hl
Y2std2Via2l0LXN0eWxlLgotV0VCS0lUX0RFRkFVTFRfVkVSQk9TSVRZID0gMQotV0VCS0lUX0RF
RkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycKKyMgVGhlc2UgYXJlIGRlZmF1bHQgb3B0aW9u
IHZhbHVlcyBmb3IgdGhlIGNvbW1hbmQtbGluZSBvcHRpb24gcGFyc2VyLgorX0RFRkFVTFRfVkVS
Qk9TSVRZID0gMQorX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycKIAogCiAjIEZJWE1F
OiBGb3Igc3R5bGUgY2F0ZWdvcmllcyB3ZSB3aWxsIG5ldmVyIHdhbnQgdG8gaGF2ZSwgcmVtb3Zl
IHRoZW0uCkBAIC01NSwxNCArNTUsMTYgQEAgV0VCS0lUX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9
ICdlbWFjcycKICMgICAgICAgIG1vZGlmeSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIGVuYWJsZSB0
aGVtLgogIwogIyBUaHJvdWdob3V0IHRoaXMgbW9kdWxlLCB3ZSB1c2UgImZpbHRlciBydWxlIiBy
YXRoZXIgdGhhbiAiZmlsdGVyIgotIyBmb3IgYW4gaW5kaXZpZHVhbCBib29sZWFuIGZpbHRlciBm
bGFnIGxpa2UgIitmb28iLiBUaGlzIGFsbG93cyB1cyB0bworIyBmb3IgYW4gaW5kaXZpZHVhbCBi
b29sZWFuIGZpbHRlciBmbGFnIGxpa2UgIitmb28iLiAgVGhpcyBhbGxvd3MgdXMgdG8KICMgcmVz
ZXJ2ZSAiZmlsdGVyIiBmb3Igd2hhdCBvbmUgZ2V0cyBieSBjb2xsZWN0aXZlbHkgYXBwbHlpbmcg
YWxsIG9mCiAjIHRoZSBmaWx0ZXIgcnVsZXMuCiAjCi0jIFRoZSBfV0VCS0lUX0ZJTFRFUl9SVUxF
UyBhcmUgcHJlcGVuZGVkIHRvIGFueSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIKLSMgcnVsZXMuIFNp
bmNlIGJ5IGRlZmF1bHQgYWxsIGVycm9ycyBhcmUgb24sIG9ubHkgaW5jbHVkZSBydWxlcyB0aGF0
Ci0jIGJlZ2luIHdpdGggYSAtIHNpZ24uCi1XRUJLSVRfREVGQVVMVF9GSUxURVJfUlVMRVMgPSBb
CisjIFRoZSBiYXNlIGZpbHRlciBydWxlcyBhcmUgdGhlIGZpbHRlciBydWxlcyB0aGF0IGJlZ2lu
IHRoZSBsaXN0IG9mCisjIGZpbHRlciBydWxlcyB1c2VkIHRvIGNoZWNrIHN0eWxlLiAgRm9yIGV4
YW1wbGUsIHRoZXNlIHJ1bGVzIHByZWNlZGUKKyMgYW55IHVzZXItc3BlY2lmaWVkIGZpbHRlciBy
dWxlcy4gIFNpbmNlIGJ5IGRlZmF1bHQgYWxsIGNhdGVnb3JpZXMgYXJlCisjIGNoZWNrZWQsIHRo
aXMgbGlzdCBzaG91bGQgbm9ybWFsbHkgaW5jbHVkZSBvbmx5IHJ1bGVzIHRoYXQgYmVnaW4KKyMg
d2l0aCBhICItIiBzaWduLgorX0JBU0VfRklMVEVSX1JVTEVTID0gWwogICAgICctYnVpbGQvZW5k
aWZfY29tbWVudCcsCiAgICAgJy1idWlsZC9pbmNsdWRlX3doYXRfeW91X3VzZScsICAjIDxzdHJp
bmc+IGZvciBzdGQ6OnN0cmluZwogICAgICctYnVpbGQvc3RvcmFnZV9jbGFzcycsICAjIGNvbnN0
IHN0YXRpYwpAQCAtODYsMjYgKzg4LDIyIEBAIFdFQktJVF9ERUZBVUxUX0ZJTFRFUl9SVUxFUyA9
IFsKICAgICBdCiAKIAotIyBGSVhNRTogQ2hhbmdlIHRoZSBzZWNvbmQgdmFsdWUgb2YgZWFjaCB0
dXBsZSBmcm9tIGEgdHVwbGUgdG8gYSBsaXN0LAotIyAgICAgICAgYW5kIGFsdGVyIHRoZSBmaWx0
ZXIgY29kZSBzbyBpdCBhY2NlcHRzIGxpc3RzIGluc3RlYWQuICAoVGhlCi0jICAgICAgICBmaWx0
ZXIgY29kZSB3aWxsIG5lZWQgdG8gY29udmVydCBpbmNvbWluZyB2YWx1ZXMgZnJvbSBhIGxpc3QK
LSMgICAgICAgIHRvIGEgdHVwbGUgcHJpb3IgdG8gY2FjaGluZykuICBUaGlzIHdpbGwgbWFrZSB0
aGlzCi0jICAgICAgICBjb25maWd1cmF0aW9uIHNldHRpbmcgYSBiaXQgc2ltcGxlciBzaW5jZSB0
dXBsZXMgaGF2ZSBhbgotIyAgICAgICAgdW51c3VhbCBzeW50YXggY2FzZS4KLSMKICMgVGhlIHBh
dGgtc3BlY2lmaWMgZmlsdGVyIHJ1bGVzLgogIwogIyBUaGlzIGxpc3QgaXMgb3JkZXIgc2Vuc2l0
aXZlLiAgT25seSB0aGUgZmlyc3QgcGF0aCBzdWJzdHJpbmcgbWF0Y2gKICMgaXMgdXNlZC4gIFNl
ZSB0aGUgRmlsdGVyQ29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uIGluIGZpbHRlci5weQogIyBm
b3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGxpc3QuCisjCisjIEVhY2ggc3RyaW5nIGFwcGVh
cmluZyBpbiB0aGlzIG5lc3RlZCBsaXN0IHNob3VsZCBoYXZlIGF0IGxlYXN0CisjIG9uZSBhc3Nv
Y2lhdGVkIHVuaXQgdGVzdCBhc3NlcnRpb24uCiBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAg
ICAgIyBGaWxlcyBpbiB0aGVzZSBkaXJlY3RvcmllcyBhcmUgY29uc3VtZXJzIG9mIHRoZSBXZWJL
aXQKICAgICAjIEFQSSBhbmQgdGhlcmVmb3JlIGRvIG5vdCBmb2xsb3cgdGhlIHNhbWUgaGVhZGVy
IGluY2x1ZGluZwogICAgICMgZGlzY2lwbGluZSBhcyBXZWJDb3JlLgogICAgIChbIldlYktpdFRv
b2xzL1dlYktpdEFQSVRlc3QvIiwKICAgICAgICJXZWJLaXQvcXQvUUdWTGF1bmNoZXIvIl0sCi0g
ICAgICgiLWJ1aWxkL2luY2x1ZGUiLAotICAgICAgIi1yZWFkYWJpbGl0eS9zdHJlYW1zIikpLAor
ICAgICBbIi1idWlsZC9pbmNsdWRlIiwKKyAgICAgICItcmVhZGFiaWxpdHkvc3RyZWFtcyJdKSwK
ICAgICAoWyMgVGhlIEdUSysgQVBJcyB1c2UgR1RLKyBuYW1pbmcgc3R5bGUsIHdoaWNoIGluY2x1
ZGVzCiAgICAgICAjIGxvd2VyLWNhc2VkLCB1bmRlcnNjb3JlLXNlcGFyYXRlZCB2YWx1ZXMuCiAg
ICAgICAiV2ViS2l0L2d0ay93ZWJraXQvIiwKQEAgLTExNiwxMyArMTE0LDcgQEAgX1BBVEhfUlVM
RVNfU1BFQ0lGSUVSID0gWwogICAgICAgIyBRdFRlc3QgbW9kdWxlLgogICAgICAgIldlYktpdC9x
dC90ZXN0cy8iLAogICAgICAgIkphdmFTY3JpcHRDb3JlL3F0L3Rlc3RzIl0sCi0gICAgICgiLXJl
YWRhYmlsaXR5L25hbWluZyIsKSksCi0gICAgIyBUaGVzZSBhcmUgdGVzdCBmaWxlIHBhdHRlcm5z
LgotICAgIChbIl90ZXN0LmNwcCIsCi0gICAgICAiX3VuaXR0ZXN0LmNwcCIsCi0gICAgICAiX3Jl
Z3Rlc3QuY3BwIl0sCi0gICAgICgiLXJlYWRhYmlsaXR5L3N0cmVhbXMiLCAgIyBNYW55IHVuaXQg
dGVzdHMgdXNlIGNvdXQuCi0gICAgICAiLXJ1bnRpbWUvcnR0aSIpKSwKKyAgICAgWyItcmVhZGFi
aWxpdHkvbmFtaW5nIl0pLAogXQogCiAKQEAgLTEzMSw3ICsxMjMsNyBAQCBfUEFUSF9SVUxFU19T
UEVDSUZJRVIgPSBbCiAjIGZ1dHVyZSBtZXJnZXMuCiAjCiAjIEluY2x1ZGUgYSB3YXJuaW5nIGZv
ciBza2lwcGVkIGZpbGVzIHRoYXQgYXJlIGxlc3Mgb2J2aW91cy4KLVNLSVBQRURfRklMRVNfV0lU
SF9XQVJOSU5HID0gWworX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgICMgVGhl
IFF0IEFQSSBhbmQgdGVzdHMgZG8gbm90IGZvbGxvdyBXZWJLaXQgc3R5bGUuCiAgICAgIyBUaGV5
IGZvbGxvdyBRdCBzdHlsZS4gOikKICAgICAiZ3RrMmRyYXdpbmcuYyIsICMgV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwpAQCAtMTQ1LDM2ICsxMzcsMzcgQEAgU0tJUFBFRF9GSUxF
U19XSVRIX1dBUk5JTkcgPSBbCiAKICMgRG9uJ3QgaW5jbHVkZSBhIHdhcm5pbmcgZm9yIHNraXBw
ZWQgZmlsZXMgdGhhdCBhcmUgbW9yZSBjb21tb24KICMgYW5kIG1vcmUgb2J2aW91cy4KLVNLSVBQ
RURfRklMRVNfV0lUSE9VVF9XQVJOSU5HID0gWworX1NLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJO
SU5HID0gWwogICAgICJMYXlvdXRUZXN0cy8iCiAgICAgXQogCiAKICMgVGhlIG1heGltdW0gbnVt
YmVyIG9mIGVycm9ycyB0byByZXBvcnQgcGVyIGZpbGUsIHBlciBjYXRlZ29yeS4KICMgSWYgYSBj
YXRlZ29yeSBpcyBub3QgYSBrZXksIHRoZW4gaXQgaGFzIG5vIG1heGltdW0uCi1NQVhfUkVQT1JU
U19QRVJfQ0FURUdPUlkgPSB7CitfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZID0gewogICAgICJ3
aGl0ZXNwYWNlL2NhcnJpYWdlX3JldHVybiI6IDEKIH0KIAogCi1kZWYgc3R5bGVfY2F0ZWdvcmll
cygpOgorZGVmIF9hbGxfY2F0ZWdvcmllcygpOgogICAgICIiIlJldHVybiB0aGUgc2V0IG9mIGFs
bCBjYXRlZ29yaWVzIHVzZWQgYnkgY2hlY2std2Via2l0LXN0eWxlLiIiIgogICAgICMgVGFrZSB0
aGUgdW5pb24gYWNyb3NzIGFsbCBwcm9jZXNzb3JzLgogICAgIHJldHVybiBDb21tb25DYXRlZ29y
aWVzLnVuaW9uKENwcFByb2Nlc3Nvci5jYXRlZ29yaWVzKQogCiAKLWRlZiB3ZWJraXRfYXJndW1l
bnRfZGVmYXVsdHMoKToKLSAgICAiIiJSZXR1cm4gdGhlIERlZmF1bHRBcmd1bWVudHMgaW5zdGFu
Y2UgZm9yIHVzZSBieSBjaGVjay13ZWJraXQtc3R5bGUuIiIiCi0gICAgcmV0dXJuIEFyZ3VtZW50
RGVmYXVsdHMoV0VCS0lUX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfREVGQVVMVF9WRVJCT1NJVFksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0VCS0lUX0RFRkFVTFRfRklMVEVSX1JVTEVTKQorZGVmIF9jaGVja193ZWJraXRf
c3R5bGVfZGVmYXVsdHMoKToKKyAgICAiIiJSZXR1cm4gdGhlIGRlZmF1bHQgY29tbWFuZC1saW5l
IG9wdGlvbnMgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4iIiIKKyAgICByZXR1cm4gRGVmYXVsdENv
bW1hbmRPcHRpb25WYWx1ZXMoYmFzZV9maWx0ZXJfcnVsZXM9X0JBU0VfRklMVEVSX1JVTEVTLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PV9ERUZB
VUxUX09VVFBVVF9GT1JNQVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZlcmJvc2l0eT1fREVGQVVMVF9WRVJCT1NJVFkpCiAKIAotZGVmIF9jcmVhdGVfdXNhZ2UoZGVm
YXVsdHMpOgorCitkZWYgX2NyZWF0ZV91c2FnZShkZWZhdWx0X29wdGlvbnMpOgogICAgICIiIlJl
dHVybiB0aGUgdXNhZ2Ugc3RyaW5nIHRvIGRpc3BsYXkgZm9yIGNvbW1hbmQgaGVscC4KIAogICAg
IEFyZ3M6Ci0gICAgICBkZWZhdWx0czogQW4gQXJndW1lbnREZWZhdWx0cyBpbnN0YW5jZS4KKyAg
ICAgIGRlZmF1bHRfb3B0aW9uczogQSBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyBpbnN0YW5j
ZS4KIAogICAgICIiIgogICAgIHVzYWdlID0gIiIiCkBAIC0yMzYsOCArMjI5LDggQEAgU3ludGF4
OiAlKHByb2dyYW1fbmFtZSlzIFstLXZlcmJvc2U9I10gWy0tZ2l0LWNvbW1pdD08U2luZ2xlQ29t
bWl0Pl0gWy0tb3V0cHV0PXYKICAgICAgIHRoZSBlbXB0eSBmaWx0ZXIgYXMgZm9sbG93czoKICAg
ICAgICAgIC0tZmlsdGVyPQogIiIiICUgeydwcm9ncmFtX25hbWUnOiBvcy5wYXRoLmJhc2VuYW1l
KHN5cy5hcmd2WzBdKSwKLSAgICAgICAnZGVmYXVsdF92ZXJib3NpdHknOiBkZWZhdWx0cy52ZXJi
b3NpdHksCi0gICAgICAgJ2RlZmF1bHRfb3V0cHV0X2Zvcm1hdCc6IGRlZmF1bHRzLm91dHB1dF9m
b3JtYXR9CisgICAgICAgJ2RlZmF1bHRfdmVyYm9zaXR5JzogZGVmYXVsdF9vcHRpb25zLnZlcmJv
c2l0eSwKKyAgICAgICAnZGVmYXVsdF9vdXRwdXRfZm9ybWF0JzogZGVmYXVsdF9vcHRpb25zLm91
dHB1dF9mb3JtYXR9CiAKICAgICByZXR1cm4gdXNhZ2UKIApAQCAtMjU1LDcgKzI0OCw3IEBAIFN5
bnRheDogJShwcm9ncmFtX25hbWUpcyBbLS12ZXJib3NlPSNdIFstLWdpdC1jb21taXQ9PFNpbmds
ZUNvbW1pdD5dIFstLW91dHB1dD12CiAjIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIGtub3ds
ZWRnZSBvZiB0aGUgZmxhZyBrZXkgbmFtZXMuCiBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9iamVj
dCk6CiAKLSAgICAiIiJBIGNvbnRhaW5lciB0byBzdG9yZSBvcHRpb25zIHBhc3NlZCB2aWEgdGhl
IGNvbW1hbmQgbGluZS4KKyAgICAiIiJTdG9yZXMgdGhlIG9wdGlvbiB2YWx1ZXMgcGFzc2VkIGJ5
IHRoZSB1c2VyIHZpYSB0aGUgY29tbWFuZCBsaW5lLgogCiAgICAgQXR0cmlidXRlczoKICAgICAg
IGV4dHJhX2ZsYWdfdmFsdWVzOiBBIHN0cmluZy1zdHJpbmcgZGljdGlvbmFyeSBvZiBhbGwgZmxh
ZyBrZXktdmFsdWUKQEAgLTM1OSwyMyArMzUyLDIyIEBAIGNsYXNzIFByb2Nlc3Nvck9wdGlvbnMo
b2JqZWN0KToKIAogCiAjIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIGtub3dsZWRnZSBvZiB0
aGUgZmxhZyBrZXkgbmFtZXMuCi1jbGFzcyBBcmd1bWVudERlZmF1bHRzKG9iamVjdCk6CitjbGFz
cyBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhvYmplY3QpOgogCi0gICAgIiIiQSBjb250YWlu
ZXIgdG8gc3RvcmUgZGVmYXVsdCBhcmd1bWVudCB2YWx1ZXMuCisgICAgIiIiU3RvcmVzIHRoZSBk
ZWZhdWx0IGNoZWNrLXdlYmtpdC1zdHlsZSBjb21tYW5kLWxpbmUgb3B0aW9ucy4KIAogICAgIEF0
dHJpYnV0ZXM6CisgICAgICBiYXNlX2ZpbHRlcl9ydWxlczogQSBsaXN0IG9mIGJvb2xlYW4gZmls
dGVyIHJ1bGUgc3RyaW5ncyB0aGF0IGJlZ2luCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhl
IGxpc3Qgb2YgZmlsdGVyIHJ1bGVzIHVzZWQgdG8gY2hlY2sgc3R5bGUuCiAgICAgICBvdXRwdXRf
Zm9ybWF0OiBBIHN0cmluZyB0aGF0IGlzIHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQuCiAgICAg
ICB2ZXJib3NpdHk6IEFuIGludGVnZXIgdGhhdCBpcyB0aGUgZGVmYXVsdCB2ZXJib3NpdHkgbGV2
ZWwuCi0gICAgICBiYXNlX2ZpbHRlcl9ydWxlczogQSBsaXN0IG9mIHN0cmluZ3MgdGhhdCBhcmUg
Ym9vbGVhbiBmaWx0ZXIgcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcmVwZW5k
IHRvIGFueSB1c2VyLXNwZWNpZmllZCBydWxlcy4KIAogICAgICIiIgogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGRlZmF1bHRfb3V0cHV0X2Zvcm1hdCwgZGVmYXVsdF92ZXJib3NpdHksCi0gICAg
ICAgICAgICAgICAgIGRlZmF1bHRfYmFzZV9maWx0ZXJfcnVsZXMpOgotICAgICAgICBzZWxmLm91
dHB1dF9mb3JtYXQgPSBkZWZhdWx0X291dHB1dF9mb3JtYXQKLSAgICAgICAgc2VsZi52ZXJib3Np
dHkgPSBkZWZhdWx0X3ZlcmJvc2l0eQotICAgICAgICBzZWxmLmJhc2VfZmlsdGVyX3J1bGVzID0g
ZGVmYXVsdF9iYXNlX2ZpbHRlcl9ydWxlcworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNlX2Zp
bHRlcl9ydWxlcywgb3V0cHV0X2Zvcm1hdCwgdmVyYm9zaXR5KToKKyAgICAgICAgc2VsZi5iYXNl
X2ZpbHRlcl9ydWxlcyA9IGJhc2VfZmlsdGVyX3J1bGVzCisgICAgICAgIHNlbGYub3V0cHV0X2Zv
cm1hdCA9IG91dHB1dF9mb3JtYXQKKyAgICAgICAgc2VsZi52ZXJib3NpdHkgPSB2ZXJib3NpdHkK
IAogCiBjbGFzcyBBcmd1bWVudFByaW50ZXIob2JqZWN0KToKQEAgLTQxMywzMSArNDA1LDQwIEBA
IGNsYXNzIEFyZ3VtZW50UHJpbnRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gZmxhZ19zdHJp
bmcuc3RyaXAoKQogCiAKKyMgRklYTUU6IFJlcGxhY2UgdGhlIHVzZSBvZiBnZXRvcHQuZ2V0b3B0
KCkgd2l0aCBvcHRwYXJzZS5PcHRpb25QYXJzZXIuCiBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmpl
Y3QpOgogCiAgICAgIiIiU3VwcG9ydHMgdGhlIHBhcnNpbmcgb2YgY2hlY2std2Via2l0LXN0eWxl
IGNvbW1hbmQgYXJndW1lbnRzLgogCiAgICAgQXR0cmlidXRlczoKLSAgICAgIGRlZmF1bHRzOiBB
biBBcmd1bWVudERlZmF1bHRzIGluc3RhbmNlLgotICAgICAgY3JlYXRlX3VzYWdlOiBBIGZ1bmN0
aW9uIHRoYXQgYWNjZXB0cyBhbiBBcmd1bWVudERlZmF1bHRzIGluc3RhbmNlCi0gICAgICAgICAg
ICAgICAgICAgIGFuZCByZXR1cm5zIGEgc3RyaW5nIG9mIHVzYWdlIGluc3RydWN0aW9ucy4KLSAg
ICAgICAgICAgICAgICAgICAgVGhpcyBkZWZhdWx0cyB0byB0aGUgZnVuY3Rpb24gdXNlZCB0byBn
ZW5lcmF0ZSB0aGUKLSAgICAgICAgICAgICAgICAgICAgdXNhZ2Ugc3RyaW5nIGZvciBjaGVjay13
ZWJraXQtc3R5bGUuCi0gICAgICBkb2NfcHJpbnQ6IEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEg
c3RyaW5nIHBhcmFtZXRlciBhbmQgdGhhdCBpcwotICAgICAgICAgICAgICAgICBjYWxsZWQgdG8g
ZGlzcGxheSBoZWxwIG1lc3NhZ2VzLiBUaGlzIGRlZmF1bHRzIHRvCi0gICAgICAgICAgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoKS4KKyAgICAgIGNyZWF0ZV91c2FnZTogQSBmdW5jdGlvbiB0aGF0
IGFjY2VwdHMgYSBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcworICAgICAgICAgICAgICAgICAg
ICBpbnN0YW5jZSBhbmQgcmV0dXJucyBhIHN0cmluZyBvZiB1c2FnZSBpbnN0cnVjdGlvbnMuCisg
ICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRl
cyB0aGUgdXNhZ2UKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZvciBjaGVjay13ZWJraXQt
c3R5bGUuCisgICAgICBkZWZhdWx0X29wdGlvbnM6IEEgRGVmYXVsdENvbW1hbmRPcHRpb25WYWx1
ZXMgaW5zdGFuY2UuICBEZWZhdWx0cworICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgZGVm
YXVsdCBjb21tYW5kIG9wdGlvbiB2YWx1ZXMgdXNlZCBieQorICAgICAgICAgICAgICAgICAgICAg
ICBjaGVjay13ZWJraXQtc3R5bGUuCisgICAgICBzdGRlcnJfd3JpdGU6IEEgZnVuY3Rpb24gdGhh
dCB0YWtlcyBhIHN0cmluZyBhcyBhIHBhcmFtZXRlciBhbmQKKyAgICAgICAgICAgICAgICAgICAg
c2VydmVzIGFzIHN0ZGVyci53cml0ZS4gIERlZmF1bHRzIHRvIHN5cy5zdGRlcnIud3JpdGUuCisg
ICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSBzcGVjaWZpZWQgb25s
eSBmb3IgdW5pdCB0ZXN0cy4KIAogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFy
Z3VtZW50X2RlZmF1bHRzLCBjcmVhdGVfdXNhZ2U9Tm9uZSwgZG9jX3ByaW50PU5vbmUpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBjcmVhdGVfdXNhZ2U9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgZGVmYXVsdF9vcHRpb25zPU5vbmUsCisgICAgICAgICAgICAgICAg
IHN0ZGVycl93cml0ZT1Ob25lKToKICAgICAgICAgaWYgY3JlYXRlX3VzYWdlIGlzIE5vbmU6CiAg
ICAgICAgICAgICBjcmVhdGVfdXNhZ2UgPSBfY3JlYXRlX3VzYWdlCi0gICAgICAgIGlmIGRvY19w
cmludCBpcyBOb25lOgotICAgICAgICAgICAgZG9jX3ByaW50ID0gc3lzLnN0ZGVyci53cml0ZQor
ICAgICAgICBpZiBkZWZhdWx0X29wdGlvbnMgaXMgTm9uZToKKyAgICAgICAgICAgIGRlZmF1bHRf
b3B0aW9ucyA9IF9jaGVja193ZWJraXRfc3R5bGVfZGVmYXVsdHMoKQorICAgICAgICBpZiBzdGRl
cnJfd3JpdGUgaXMgTm9uZToKKyAgICAgICAgICAgIHN0ZGVycl93cml0ZSA9IHN5cy5zdGRlcnIu
d3JpdGUKIAotICAgICAgICBzZWxmLmRlZmF1bHRzID0gYXJndW1lbnRfZGVmYXVsdHMKKyAgICAg
ICAgIyBGSVhNRTogUmVuYW1lIHRoZXNlIHRvIHJlZmxlY3QgdGhhdCB0aGV5IGFyZSBpbnRlcm5h
bC4KICAgICAgICAgc2VsZi5jcmVhdGVfdXNhZ2UgPSBjcmVhdGVfdXNhZ2UKLSAgICAgICAgc2Vs
Zi5kb2NfcHJpbnQgPSBkb2NfcHJpbnQKKyAgICAgICAgc2VsZi5kZWZhdWx0X29wdGlvbnMgPSBk
ZWZhdWx0X29wdGlvbnMKKyAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUgPSBzdGRlcnJfd3JpdGUK
IAogICAgIGRlZiBfZXhpdF93aXRoX3VzYWdlKHNlbGYsIGVycm9yX21lc3NhZ2U9JycpOgogICAg
ICAgICAiIiJFeGl0IGFuZCBwcmludCBhIHVzYWdlIHN0cmluZyB3aXRoIGFuIG9wdGlvbmFsIGVy
cm9yIG1lc3NhZ2UuCkBAIC00NDYsOCArNDQ3LDggQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2Jq
ZWN0KToKICAgICAgICAgICBlcnJvcl9tZXNzYWdlOiBBIHN0cmluZyB0aGF0IGlzIGFuIGVycm9y
IG1lc3NhZ2UgdG8gcHJpbnQuCiAKICAgICAgICAgIiIiCi0gICAgICAgIHVzYWdlID0gc2VsZi5j
cmVhdGVfdXNhZ2Uoc2VsZi5kZWZhdWx0cykKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQodXNhZ2Up
CisgICAgICAgIHVzYWdlID0gc2VsZi5jcmVhdGVfdXNhZ2Uoc2VsZi5kZWZhdWx0X29wdGlvbnMp
CisgICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKHVzYWdlKQogICAgICAgICBpZiBlcnJvcl9tZXNz
YWdlOgogICAgICAgICAgICAgc3lzLmV4aXQoJ1xuRkFUQUwgRVJST1I6ICcgKyBlcnJvcl9tZXNz
YWdlKQogICAgICAgICBlbHNlOgpAQCAtNDU1LDE2ICs0NTYsMTYgQEAgY2xhc3MgQXJndW1lbnRQ
YXJzZXIob2JqZWN0KToKIAogICAgIGRlZiBfZXhpdF93aXRoX2NhdGVnb3JpZXMoc2VsZik6CiAg
ICAgICAgICIiIkV4aXQgYW5kIHByaW50IHRoZSBzdHlsZSBjYXRlZ29yaWVzIGFuZCBkZWZhdWx0
IGZpbHRlciBydWxlcy4iIiIKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQoJ1xuQWxsIGNhdGVnb3Jp
ZXM6XG4nKQotICAgICAgICBjYXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCisgICAgICAg
IHNlbGYuc3RkZXJyX3dyaXRlKCdcbkFsbCBjYXRlZ29yaWVzOlxuJykKKyAgICAgICAgY2F0ZWdv
cmllcyA9IF9hbGxfY2F0ZWdvcmllcygpCiAgICAgICAgIGZvciBjYXRlZ29yeSBpbiBzb3J0ZWQo
Y2F0ZWdvcmllcyk6Ci0gICAgICAgICAgICBzZWxmLmRvY19wcmludCgnICAgICcgKyBjYXRlZ29y
eSArICdcbicpCisgICAgICAgICAgICBzZWxmLnN0ZGVycl93cml0ZSgnICAgICcgKyBjYXRlZ29y
eSArICdcbicpCiAKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQoJ1xuRGVmYXVsdCBmaWx0ZXIgcnVs
ZXMqKjpcbicpCi0gICAgICAgIGZvciBmaWx0ZXJfcnVsZSBpbiBzb3J0ZWQoc2VsZi5kZWZhdWx0
cy5iYXNlX2ZpbHRlcl9ydWxlcyk6Ci0gICAgICAgICAgICBzZWxmLmRvY19wcmludCgnICAgICcg
KyBmaWx0ZXJfcnVsZSArICdcbicpCi0gICAgICAgIHNlbGYuZG9jX3ByaW50KCdcbioqVGhlIGNv
bW1hbmQgYWx3YXlzIGV2YWx1YXRlcyB0aGUgYWJvdmUgcnVsZXMsICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgJ2FuZCBiZWZvcmUgYW55IC0tZmlsdGVyIGZsYWcuXG5cbicpCisgICAgICAgIHNl
bGYuc3RkZXJyX3dyaXRlKCdcbkRlZmF1bHQgZmlsdGVyIHJ1bGVzKio6XG4nKQorICAgICAgICBm
b3IgZmlsdGVyX3J1bGUgaW4gc29ydGVkKHNlbGYuZGVmYXVsdF9vcHRpb25zLmJhc2VfZmlsdGVy
X3J1bGVzKToKKyAgICAgICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKCcgICAgJyArIGZpbHRlcl9y
dWxlICsgJ1xuJykKKyAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUoJ1xuKipUaGUgY29tbWFuZCBh
bHdheXMgZXZhbHVhdGVzIHRoZSBhYm92ZSBydWxlcywgJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAnYW5kIGJlZm9yZSBhbnkgLS1maWx0ZXIgZmxhZy5cblxuJykKIAogICAgICAgICBzeXMu
ZXhpdCgwKQogCkBAIC01MDQsOSArNTA1LDkgQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0
KToKICAgICAgICAgaWYgZXh0cmFfZmxhZ3MgaXMgTm9uZToKICAgICAgICAgICAgIGV4dHJhX2Zs
YWdzID0gW10KIAotICAgICAgICBvdXRwdXRfZm9ybWF0ID0gc2VsZi5kZWZhdWx0cy5vdXRwdXRf
Zm9ybWF0Ci0gICAgICAgIHZlcmJvc2l0eSA9IHNlbGYuZGVmYXVsdHMudmVyYm9zaXR5Ci0gICAg
ICAgIGJhc2VfcnVsZXMgPSBzZWxmLmRlZmF1bHRzLmJhc2VfZmlsdGVyX3J1bGVzCisgICAgICAg
IG91dHB1dF9mb3JtYXQgPSBzZWxmLmRlZmF1bHRfb3B0aW9ucy5vdXRwdXRfZm9ybWF0CisgICAg
ICAgIHZlcmJvc2l0eSA9IHNlbGYuZGVmYXVsdF9vcHRpb25zLnZlcmJvc2l0eQorICAgICAgICBi
YXNlX3J1bGVzID0gc2VsZi5kZWZhdWx0X29wdGlvbnMuYmFzZV9maWx0ZXJfcnVsZXMKIAogICAg
ICAgICAjIFRoZSBmbGFncyBhbHJlYWR5IHN1cHBvcnRlZCBieSB0aGUgUHJvY2Vzc29yT3B0aW9u
cyBjbGFzcy4KICAgICAgICAgZmxhZ3MgPSBbJ2hlbHAnLCAnb3V0cHV0PScsICd2ZXJib3NlPScs
ICdmaWx0ZXI9JywgJ2dpdC1jb21taXQ9J10KQEAgLTU1OCw3ICs1NTksNyBAQCBjbGFzcyBBcmd1
bWVudFBhcnNlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxsb3dl
ZCBvdXRwdXQgZm9ybWF0cyBhcmUgZW1hY3MgYW5kIHZzNy4nICUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdCkKIAotICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IHN0
eWxlX2NhdGVnb3JpZXMoKQorICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IF9hbGxfY2F0ZWdvcmll
cygpCiAgICAgICAgIHZhbGlkYXRlX2ZpbHRlcl9ydWxlcyh1c2VyX3J1bGVzLCBhbGxfY2F0ZWdv
cmllcykKIAogICAgICAgICB2ZXJib3NpdHkgPSBpbnQodmVyYm9zaXR5KQpAQCAtNTczLDcgKzU3
NCw3IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6CiAgICAgICAgIG9wdGlvbnMgPSBQ
cm9jZXNzb3JPcHRpb25zKGV4dHJhX2ZsYWdfdmFsdWVzPWV4dHJhX2ZsYWdfdmFsdWVzLAogICAg
ICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKLSAgICAg
ICAgICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9TUFYX1JFUE9SVFNfUEVS
X0NBVEVHT1JZLAorICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29y
eT1fTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZLAogICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dF9mb3JtYXQ9b3V0cHV0X2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9
dmVyYm9zaXR5KQogCkBAIC02MTcsMTQgKzYxOCwxNCBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRj
aGVyKG9iamVjdCk6CiAKICAgICBkZWYgc2hvdWxkX3NraXBfd2l0aF93YXJuaW5nKHNlbGYsIGZp
bGVfcGF0aCk6CiAgICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIHNob3Vs
ZCBiZSBza2lwcGVkIHdpdGggYSB3YXJuaW5nLiIiIgotICAgICAgICBmb3Igc2tpcHBlZF9maWxl
IGluIFNLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HOgorICAgICAgICBmb3Igc2tpcHBlZF9maWxl
IGluIF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORzoKICAgICAgICAgICAgIGlmIGZpbGVfcGF0
aC5maW5kKHNraXBwZWRfZmlsZSkgPj0gMDoKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQog
ICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBzaG91bGRfc2tpcF93aXRob3V0X3dhcm5p
bmcoc2VsZiwgZmlsZV9wYXRoKToKICAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVu
IGZpbGUgc2hvdWxkIGJlIHNraXBwZWQgd2l0aG91dCBhIHdhcm5pbmcuIiIiCi0gICAgICAgIGZv
ciBza2lwcGVkX2ZpbGUgaW4gU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkc6CisgICAgICAg
IGZvciBza2lwcGVkX2ZpbGUgaW4gX1NLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5HOgogICAg
ICAgICAgICAgaWYgZmlsZV9wYXRoLmZpbmQoc2tpcHBlZF9maWxlKSA+PSAwOgogICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtNzg0LDEwICs3ODUs
MTEgQEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAKICAgICAgICAgIiIiCiAgICAgICAg
IGlmIGhhbmRsZV9zdHlsZV9lcnJvciBpcyBOb25lOgotICAgICAgICAgICAgaGFuZGxlX3N0eWxl
X2Vycm9yID0gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKGZpbGVfcGF0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9wdGlvbnMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0ZGVycl93cml0ZSkKKyAgICAg
ICAgICAgIGhhbmRsZV9zdHlsZV9lcnJvciA9IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihmaWxl
X3BhdGg9ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbnM9c2VsZi5vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluY3JlbWVudF9lcnJvcl9jb3VudD0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zZWxmLl9zdGRlcnJfd3JpdGUpCiAgICAg
ICAgIGlmIHByb2Nlc3NfZmlsZSBpcyBOb25lOgogICAgICAgICAgICAgcHJvY2Vzc19maWxlID0g
c2VsZi5fcHJvY2Vzc19maWxlCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQppbmRleCBlMWM5YmFmLi43MjhjMTA2IDEw
MDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5p
dHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
X3VuaXR0ZXN0LnB5CkBAIC0zNyw4ICszNywxMSBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9y
dCBjaGVja2VyIGFzIHN0eWxlCitmcm9tIGNoZWNrZXIgaW1wb3J0IF9CQVNFX0ZJTFRFUl9SVUxF
UworZnJvbSBjaGVja2VyIGltcG9ydCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZCiBmcm9tIGNo
ZWNrZXIgaW1wb3J0IF9QQVRIX1JVTEVTX1NQRUNJRklFUiBhcyBQQVRIX1JVTEVTX1NQRUNJRklF
UgotZnJvbSBjaGVja2VyIGltcG9ydCBzdHlsZV9jYXRlZ29yaWVzCitmcm9tIGNoZWNrZXIgaW1w
b3J0IF9hbGxfY2F0ZWdvcmllcworZnJvbSBjaGVja2VyIGltcG9ydCBEZWZhdWx0Q29tbWFuZE9w
dGlvblZhbHVlcwogZnJvbSBjaGVja2VyIGltcG9ydCBQcm9jZXNzb3JEaXNwYXRjaGVyCiBmcm9t
IGNoZWNrZXIgaW1wb3J0IFByb2Nlc3Nvck9wdGlvbnMKIGZyb20gY2hlY2tlciBpbXBvcnQgU3R5
bGVDaGVja2VyCkBAIC0xMzgsMTggKzE0MSwxOCBAQCBjbGFzcyBHbG9iYWxWYXJpYWJsZXNUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJUZXN0cyB2YWxpZGl0eSBvZiB0aGUgZ2xvYmFs
IHZhcmlhYmxlcy4iIiIKIAogICAgIGRlZiBfYWxsX2NhdGVnb3JpZXMoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzdHlsZS5zdHlsZV9jYXRlZ29yaWVzKCkKKyAgICAgICAgcmV0dXJuIF9hbGxfY2F0
ZWdvcmllcygpCiAKICAgICBkZWYgZGVmYXVsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzdHls
ZS53ZWJraXRfYXJndW1lbnRfZGVmYXVsdHMoKQorICAgICAgICByZXR1cm4gc3R5bGUuX2NoZWNr
X3dlYmtpdF9zdHlsZV9kZWZhdWx0cygpCiAKLSAgICBkZWYgdGVzdF9maWx0ZXJfcnVsZXMoc2Vs
Zik6CisgICAgZGVmIHRlc3Rfd2Via2l0X2Jhc2VfZmlsdGVyX3J1bGVzKHNlbGYpOgorICAgICAg
ICBiYXNlX2ZpbHRlcl9ydWxlcyA9IF9CQVNFX0ZJTFRFUl9SVUxFUwogICAgICAgICBkZWZhdWx0
cyA9IHNlbGYuZGVmYXVsdHMoKQogICAgICAgICBhbHJlYWR5X3NlZW4gPSBbXQotICAgICAgICB2
YWxpZGF0ZV9maWx0ZXJfcnVsZXMoZGVmYXVsdHMuYmFzZV9maWx0ZXJfcnVsZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9hbGxfY2F0ZWdvcmllcygpKQorICAgICAgICB2
YWxpZGF0ZV9maWx0ZXJfcnVsZXMoYmFzZV9maWx0ZXJfcnVsZXMsIHNlbGYuX2FsbF9jYXRlZ29y
aWVzKCkpCiAgICAgICAgICMgQWxzbyBkbyBzb21lIGFkZGl0aW9uYWwgY2hlY2tzLgotICAgICAg
ICBmb3IgcnVsZSBpbiBkZWZhdWx0cy5iYXNlX2ZpbHRlcl9ydWxlczoKKyAgICAgICAgZm9yIHJ1
bGUgaW4gYmFzZV9maWx0ZXJfcnVsZXM6CiAgICAgICAgICAgICAjIENoZWNrIG5vIGxlYWRpbmcg
b3IgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy
dWxlLCBydWxlLnN0cmlwKCkpCiAgICAgICAgICAgICAjIEFsbCBjYXRlZ29yaWVzIGFyZSBvbiBi
eSBkZWZhdWx0LCBzbyBkZWZhdWx0cyBzaG91bGQKQEAgLTE2MSwzNyArMTY0LDYwIEBAIGNsYXNz
IEdsb2JhbFZhcmlhYmxlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rf
ZGVmYXVsdHMoc2VsZik6CiAgICAgICAgICIiIkNoZWNrIHRoYXQgZGVmYXVsdCBhcmd1bWVudHMg
YXJlIHZhbGlkLiIiIgotICAgICAgICBkZWZhdWx0cyA9IHNlbGYuZGVmYXVsdHMoKQorICAgICAg
ICBkZWZhdWx0X29wdGlvbnMgPSBzZWxmLmRlZmF1bHRzKCkKIAogICAgICAgICAjIEZJWE1FOiBX
ZSBzaG91bGQgbm90IG5lZWQgdG8gY2FsbCBwYXJzZSgpIHRvIGRldGVybWluZQogICAgICAgICAj
ICAgICAgICB3aGV0aGVyIHRoZSBkZWZhdWx0IGFyZ3VtZW50cyBhcmUgdmFsaWQuCi0gICAgICAg
IHBhcnNlciA9IHN0eWxlLkFyZ3VtZW50UGFyc2VyKGRlZmF1bHRzKQorICAgICAgICBwYXJzZXIg
PSBzdHlsZS5Bcmd1bWVudFBhcnNlcihkZWZhdWx0X29wdGlvbnM9ZGVmYXVsdF9vcHRpb25zKQog
ICAgICAgICAjIE5vIG5lZWQgdG8gdGVzdCB0aGUgcmV0dXJuIHZhbHVlIGhlcmUgc2luY2Ugd2Ug
dGVzdCBwYXJzZSgpCiAgICAgICAgICMgb24gdmFsaWQgYXJndW1lbnRzIGVsc2V3aGVyZS4KICAg
ICAgICAgcGFyc2VyLnBhcnNlKFtdKSAjIGFyZ3VtZW50cyB2YWxpZDogbm8gZXJyb3Igb3IgU3lz
dGVtRXhpdAogCiAgICAgZGVmIHRlc3RfcGF0aF9ydWxlc19zcGVjaWZpZXIoc2VsZik6Ci0gICAg
ICAgIGFsbF9jYXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCisgICAgICAgIGFsbF9jYXRl
Z29yaWVzID0gc2VsZi5fYWxsX2NhdGVnb3JpZXMoKQogICAgICAgICBmb3IgKHN1Yl9wYXRocywg
cGF0aF9ydWxlcykgaW4gUEFUSF9SVUxFU19TUEVDSUZJRVI6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUoaXNpbnN0YW5jZShwYXRoX3J1bGVzLCB0dXBsZSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkNoZWNraW5nOiAiICsgc3RyKHBhdGhfcnVsZXMpKQogICAgICAgICAgICAg
dmFsaWRhdGVfZmlsdGVyX3J1bGVzKHBhdGhfcnVsZXMsIHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkp
CiAKLSAgICAgICAgIyBUcnkgdXNpbmcgdGhlIHBhdGggc3BlY2lmaWVyIChhcyBhbiAiZW5kLXRv
LWVuZCIgY2hlY2spLgogICAgICAgICBjb25maWcgPSBGaWx0ZXJDb25maWd1cmF0aW9uKHBhdGhf
c3BlY2lmaWM9UEFUSF9SVUxFU19TUEVDSUZJRVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShj
b25maWcuc2hvdWxkX2NoZWNrKCJ4eHhfYW55X2NhdGVnb3J5IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInh4eF9ub25fbWF0Y2hpbmdfcGF0aCIpKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoY29uZmlnLnNob3VsZF9jaGVjaygieHh4X2FueV9jYXRlZ29y
eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZWJLaXRU
b29scy9XZWJLaXRBUElUZXN0LyIpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNvbmZpZy5z
aG91bGRfY2hlY2soImJ1aWxkL2luY2x1ZGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIldlYktpdFRvb2xzL1dlYktpdEFQSVRlc3QvIikpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoY29uZmlnLnNob3VsZF9jaGVjaygicmVhZGFiaWxpdHkvbmFtaW5n
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlYktpdC9xdC90ZXN0cy9xd2ViZWxl
bWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIikpCisKKyAgICAgICAgZGVmIGFzc2VydENoZWNrKHBh
dGgsIGNhdGVnb3J5KToKKyAgICAgICAgICAgICIiIkFzc2VydCB0aGF0IHRoZSBnaXZlbiBjYXRl
Z29yeSBzaG91bGQgYmUgY2hlY2tlZC4iIiIKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAoJ1Nob3Vs
ZCBjaGVjayBjYXRlZ29yeSAiJXMiIGZvciBwYXRoICIlcyIuJworICAgICAgICAgICAgICAgICAg
ICAgICAlIChjYXRlZ29yeSwgcGF0aCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY29u
ZmlnLnNob3VsZF9jaGVjayhjYXRlZ29yeSwgcGF0aCkpCisKKyAgICAgICAgZGVmIGFzc2VydE5v
Q2hlY2socGF0aCwgY2F0ZWdvcnkpOgorICAgICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGdp
dmVuIGNhdGVnb3J5IHNob3VsZCBub3QgYmUgY2hlY2tlZC4iIiIKKyAgICAgICAgICAgIG1lc3Nh
Z2UgPSAoJ1Nob3VsZCBub3QgY2hlY2sgY2F0ZWdvcnkgIiVzIiBmb3IgcGF0aCAiJXMiLicKKyAg
ICAgICAgICAgICAgICAgICAgICAgJSAoY2F0ZWdvcnksIHBhdGgpKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShjb25maWcuc2hvdWxkX2NoZWNrKGNhdGVnb3J5LCBwYXRoKSwgbWVzc2Fn
ZSkKKworICAgICAgICBhc3NlcnRDaGVjaygicmFuZG9tX3BhdGguY3BwIiwKKyAgICAgICAgICAg
ICAgICAgICAgImJ1aWxkL2luY2x1ZGUiKQorICAgICAgICBhc3NlcnROb0NoZWNrKCJXZWJLaXRU
b29scy9XZWJLaXRBUElUZXN0L21haW4uY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgICAiYnVp
bGQvaW5jbHVkZSIpCisgICAgICAgIGFzc2VydE5vQ2hlY2soIldlYktpdC9xdC9RR1ZMYXVuY2hl
ci9tYWluLmNwcCIsCisgICAgICAgICAgICAgICAgICAgICAgImJ1aWxkL2luY2x1ZGUiKQorICAg
ICAgICBhc3NlcnROb0NoZWNrKCJXZWJLaXQvcXQvUUdWTGF1bmNoZXIvbWFpbi5jcHAiLAorICAg
ICAgICAgICAgICAgICAgICAgICJyZWFkYWJpbGl0eS9zdHJlYW1zIikKKworICAgICAgICBhc3Nl
cnRDaGVjaygicmFuZG9tX3BhdGguY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgInJlYWRhYmls
aXR5L25hbWluZyIpCisgICAgICAgIGFzc2VydE5vQ2hlY2soIldlYktpdC9ndGsvd2Via2l0L3dl
YmtpdC5oIiwKKyAgICAgICAgICAgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFtaW5nIikKKyAg
ICAgICAgYXNzZXJ0Tm9DaGVjaygiV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCIsCisgICAgICAg
ICAgICAgICAgICAgICAgInJlYWRhYmlsaXR5L25hbWluZyIpCisgICAgICAgIGFzc2VydE5vQ2hl
Y2soIldlYktpdC9xdC90ZXN0cy9xd2ViZWxlbWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFtaW5nIikKKyAgICAgICAgYXNzZXJ0
Tm9DaGVjaygKKyAgICAgICAgICAgICJKYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5n
aW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcCIsCisgICAgICAgICAgICAicmVhZGFiaWxpdHkvbmFt
aW5nIikKKwogCiAgICAgZGVmIHRlc3RfbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5KHNlbGYpOgot
ICAgICAgICAiIiJDaGVjayB0aGF0IE1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSBpcyB2YWxpZC4i
IiIKKyAgICAgICAgIiIiQ2hlY2sgdGhhdCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZIGlzIHZh
bGlkLiIiIgogICAgICAgICBhbGxfY2F0ZWdvcmllcyA9IHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkK
LSAgICAgICAgZm9yIGNhdGVnb3J5IGluIHN0eWxlLk1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWS5p
dGVya2V5cygpOgorICAgICAgICBmb3IgY2F0ZWdvcnkgaW4gX01BWF9SRVBPUlRTX1BFUl9DQVRF
R09SWS5pdGVya2V5cygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhdGVnb3J5IGlu
IGFsbF9jYXRlZ29yaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdLZXkgIiVzIiBp
cyBub3QgYSBjYXRlZ29yeScgJSBjYXRlZ29yeSkKIApAQCAtMjM3LDI5ICsyNjMsMjkgQEAgY2xh
c3MgQXJndW1lbnRQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiUmV0
dXJuIGEgZGVmYXVsdCBwYXJzZSgpIGZ1bmN0aW9uIGZvciB0ZXN0aW5nLiIiIgogICAgICAgICBy
ZXR1cm4gc2VsZi5fY3JlYXRlX3BhcnNlcigpLnBhcnNlCiAKLSAgICBkZWYgX2NyZWF0ZV9kZWZh
dWx0cyhzZWxmLCBkZWZhdWx0X291dHB1dF9mb3JtYXQ9J3ZzNycsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdF92ZXJib3NpdHk9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0X2ZpbHRlcl9ydWxlcz1bJy0nLCAnK3doaXRlc3BhY2UnXSk6Ci0gICAgICAgICIiIlJl
dHVybiBhIGRlZmF1bHQgQXJndW1lbnREZWZhdWx0cyBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIK
LSAgICAgICAgcmV0dXJuIHN0eWxlLkFyZ3VtZW50RGVmYXVsdHMoZGVmYXVsdF9vdXRwdXRfZm9y
bWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3ZlcmJv
c2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9maWx0
ZXJfcnVsZXMpCisgICAgZGVmIF9jcmVhdGVfZGVmYXVsdHMoc2VsZik6CisgICAgICAgICIiIlJl
dHVybiBhIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNlIGZvciB0ZXN0aW5nLiIi
IgorICAgICAgICBiYXNlX2ZpbHRlcl9ydWxlcyA9IFsiLSIsICIrd2hpdGVzcGFjZSJdCisgICAg
ICAgIHJldHVybiBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhiYXNlX2ZpbHRlcl9ydWxlcz1i
YXNlX2ZpbHRlcl9ydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dF9mb3JtYXQ9InZzNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2ZXJib3NpdHk9MykKIAotICAgIGRlZiBfY3JlYXRlX3BhcnNlcihzZWxmLCBk
ZWZhdWx0cz1Ob25lKToKKyAgICBkZWYgX2NyZWF0ZV9wYXJzZXIoc2VsZik6CiAgICAgICAgICIi
IlJldHVybiBhbiBBcmd1bWVudFBhcnNlciBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIKLSAgICAg
ICAgZGVmIGNyZWF0ZV91c2FnZShfZGVmYXVsdHMpOgorICAgICAgICBkZWYgY3JlYXRlX3VzYWdl
KF9kZWZhdWx0X29wdGlvbnMpOgogICAgICAgICAgICAgIiIiUmV0dXJuIGEgdXNhZ2Ugc3RyaW5n
IGZvciB0ZXN0aW5nLiIiIgogICAgICAgICAgICAgcmV0dXJuICJ1c2FnZSIKIAotICAgICAgICBk
ZWYgZG9jX3ByaW50KG1lc3NhZ2UpOgorICAgICAgICBkZWYgc3RkZXJyX3dyaXRlKG1lc3NhZ2Up
OgogICAgICAgICAgICAgIyBXZSBkbyBub3Qgd2FudCB0aGUgdXNhZ2Ugc3RyaW5nIG9yIHN0eWxl
IGNhdGVnb3JpZXMKICAgICAgICAgICAgICMgdG8gcHJpbnQgZHVyaW5nIHVuaXQgdGVzdHMsIHNv
IHByaW50IG5vdGhpbmcuCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBpZiBkZWZhdWx0
cyBpcyBOb25lOgotICAgICAgICAgICAgZGVmYXVsdHMgPSBzZWxmLl9jcmVhdGVfZGVmYXVsdHMo
KQorICAgICAgICBkZWZhdWx0X29wdGlvbnMgPSBzZWxmLl9jcmVhdGVfZGVmYXVsdHMoKQogCi0g
ICAgICAgIHJldHVybiBzdHlsZS5Bcmd1bWVudFBhcnNlcihkZWZhdWx0cywgY3JlYXRlX3VzYWdl
LCBkb2NfcHJpbnQpCisgICAgICAgIHJldHVybiBzdHlsZS5Bcmd1bWVudFBhcnNlcihjcmVhdGVf
dXNhZ2U9Y3JlYXRlX3VzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdF9vcHRpb25zPWRlZmF1bHRfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zdGRlcnJfd3JpdGUpCiAKICAgICBkZWYgdGVzdF9w
YXJzZV9kb2N1bWVudGF0aW9uKHNlbGYpOgogICAgICAgICBwYXJzZSA9IHNlbGYuX3BhcnNlKCkK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFu
ZGxlcnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRs
ZXJzLnB5CmluZGV4IDE5NDBlMDMuLmQ4N2RmNzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weQpAQCAtMTUzLDEwICsxNTMs
MTMgQEAgY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogCiAgICAgICAgICIi
IgogICAgICAgICBzZWxmLl9kaWZmID0gZGlmZgotICAgICAgICBzZWxmLl9kZWZhdWx0X2Vycm9y
X2hhbmRsZXIgPSBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIoZmlsZV9wYXRoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZSkKKworICAg
ICAgICBzZWxmLl9kZWZhdWx0X2Vycm9yX2hhbmRsZXIgPSBEZWZhdWx0U3R5bGVFcnJvckhhbmRs
ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9
ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
cmVtZW50X2Vycm9yX2NvdW50PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9b3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zdGRlcnJfd3JpdGUpCiAKICAgICAg
ICAgIyBUaGUgbGluZSBudW1iZXJzIG9mIHRoZSBtb2RpZmllZCBsaW5lcy4gVGhpcyBpcyBzZXQg
bGF6aWx5LgogICAgICAgICBzZWxmLl9saW5lX251bWJlcnMgPSBzZXQoKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNf
dW5pdHRlc3QucHkKaW5kZXggMWQ3ZTk5OC4uNDNhMTFmZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0
ZXN0LnB5CkBAIC0zNCw0NiArMzQsNDQgQEAgZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgUGF0
Y2hTdHlsZUVycm9ySGFuZGxlcgogY2xhc3MgU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Vy
cm9yX21lc3NhZ2VzID0gIiIKKyAgICAgICAgc2VsZi5fZXJyb3JfbWVzc2FnZXMgPSBbXQogICAg
ICAgICBzZWxmLl9lcnJvcl9jb3VudCA9IDAKIAogICAgIGRlZiBfbW9ja19pbmNyZW1lbnRfZXJy
b3JfY291bnQoc2VsZik6CiAgICAgICAgIHNlbGYuX2Vycm9yX2NvdW50ICs9IDEKIAogICAgIGRl
ZiBfbW9ja19zdGRlcnJfd3JpdGUoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHNlbGYuX2Vycm9y
X21lc3NhZ2VzICs9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5fZXJyb3JfbWVzc2FnZXMuYXBwZW5k
KG1lc3NhZ2UpCiAKIAogY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVy
cm9ySGFuZGxlclRlc3RCYXNlKToKIAogICAgICIiIlRlc3RzIERlZmF1bHRTdHlsZUVycm9ySGFu
ZGxlciBjbGFzcy4iIiIKIAotICAgIF9maWxlX3BhdGggPSAiZm9vLmgiCi0KICAgICBfY2F0ZWdv
cnkgPSAid2hpdGVzcGFjZS90YWIiCisgICAgIiIiVGhlIGNhdGVnb3J5IG5hbWUgZm9yIHRoZSB0
ZXN0cyBpbiB0aGlzIGNsYXNzLiIiIgogCi0gICAgZGVmIF9lcnJvcl9oYW5kbGVyKHNlbGYsIG9w
dGlvbnMpOgotICAgICAgICByZXR1cm4gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKHNlbGYuX2Zp
bGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25z
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21vY2tfaW5j
cmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQorICAgIF9maWxlX3BhdGggPSAiZm9vLmgiCisg
ICAgIiIiVGhlIGZpbGUgcGF0aCBmb3IgdGhlIHRlc3RzIGluIHRoaXMgY2xhc3MuIiIiCiAKICAg
ICBkZWYgX2NoZWNrX2luaXRpYWxpemVkKHNlbGYpOgogICAgICAgICAiIiJDaGVjayB0aGF0IGNv
dW50IGFuZCBlcnJvciBtZXNzYWdlcyBhcmUgaW5pdGlhbGl6ZWQuIiIiCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKDAsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygiIiwgc2VsZi5fZXJyb3JfbWVzc2FnZXMpCi0KLSAgICBkZWYgX2NhbGwoc2VsZiwgaGFu
ZGxlX2Vycm9yLCBvcHRpb25zLCBjb25maWRlbmNlKToKLSAgICAgICAgIiIiSGFuZGxlIGFuIGVy
cm9yIHdpdGggdGhlIGdpdmVuIGVycm9yIGhhbmRsZXIuIiIiCi0gICAgICAgIGxpbmVfbnVtYmVy
ID0gMTAwCi0gICAgICAgIG1lc3NhZ2UgPSAibWVzc2FnZSIKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoMCwgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKIAotICAgICAgICBoYW5kbGVfZXJy
b3IobGluZV9udW1iZXIsIHNlbGYuX2NhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKQotCi0g
ICAgZGVmIF9jYWxsX2Vycm9yX2hhbmRsZXIoc2VsZiwgb3B0aW9ucywgY29uZmlkZW5jZSk6Ci0g
ICAgICAgICIiIkhhbmRsZSBhbiBlcnJvciB1c2luZyBhIG5ldyBlcnJvciBoYW5kbGVyLiIiIgot
ICAgICAgICBoYW5kbGVfZXJyb3IgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKG9wdGlvbnMpCi0gICAg
ICAgIHNlbGYuX2NhbGwoaGFuZGxlX2Vycm9yLCBvcHRpb25zLCBjb25maWRlbmNlKQorICAgIGRl
ZiBfZXJyb3JfaGFuZGxlcihzZWxmLCBvcHRpb25zKToKKyAgICAgICAgcmV0dXJuIERlZmF1bHRT
dHlsZUVycm9ySGFuZGxlcihmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudD0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9ja19pbmNyZW1l
bnRfZXJyb3JfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9ucz1vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZGVycl93cml0ZT1zZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkKKworICAgIGRlZiBfY2FsbF9l
cnJvcl9oYW5kbGVyKHNlbGYsIGhhbmRsZV9lcnJvciwgY29uZmlkZW5jZSk6CisgICAgICAgICIi
IkNhbGwgdGhlIGdpdmVuIGVycm9yIGhhbmRsZXIgd2l0aCBhIHRlc3QgZXJyb3IuIiIiCisgICAg
ICAgIGhhbmRsZV9lcnJvcihsaW5lX251bWJlcj0xMDAsCisgICAgICAgICAgICAgICAgICAgICBj
YXRlZ29yeT1zZWxmLl9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2U9
Y29uZmlkZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Im1lc3NhZ2UiKQogCiAg
ICAgZGVmIHRlc3RfY2FsbF9ub25fcmVwb3J0YWJsZShzZWxmKToKICAgICAgICAgIiIiVGVzdCBf
X2NhbGxfXygpIG1ldGhvZCB3aXRoIGEgbm9uLXJlcG9ydGFibGUgZXJyb3IuIiIiCkBAIC04Niwx
MCArODQsMTEgQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9y
SGFuZGxlclRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZmlkZW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fZmlsZV9wYXRoKSkKIAotICAgICAgICBzZWxmLl9jYWxsX2Vycm9y
X2hhbmRsZXIob3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgZXJyb3JfaGFuZGxlciA9IHNl
bGYuX2Vycm9yX2hhbmRsZXIob3B0aW9ucykKKyAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5k
bGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoMCwgc2VsZi5fZXJyb3JfY291bnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCIiLCBz
ZWxmLl9lcnJvcl9tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHNlbGYu
X2Vycm9yX21lc3NhZ2VzKQogCiAgICAgZGVmIHRlc3RfY2FsbF9yZXBvcnRhYmxlX2VtYWNzKHNl
bGYpOgogICAgICAgICAiIiJUZXN0IF9fY2FsbF9fKCkgbWV0aG9kIHdpdGggYSByZXBvcnRhYmxl
IGVycm9yIGFuZCBlbWFjcyBmb3JtYXQuIiIiCkBAIC05NywxMCArOTYsMTEgQEAgY2xhc3MgRGVm
YXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9ySGFuZGxlclRlc3RCYXNlKToKICAg
ICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMsIG91dHB1dF9mb3Jt
YXQ9ImVtYWNzIikKICAgICAgICAgc2VsZi5fY2hlY2tfaW5pdGlhbGl6ZWQoKQogCi0gICAgICAg
IHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihvcHRpb25zLCBjb25maWRlbmNlKQorICAgICAgICBl
cnJvcl9oYW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxlcihvcHRpb25zKQorICAgICAgICBzZWxm
Ll9jYWxsX2Vycm9yX2hhbmRsZXIoZXJyb3JfaGFuZGxlciwgY29uZmlkZW5jZSkKIAogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygxLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHNlbGYuX2Vycm9yX21lc3NhZ2VzWy0xXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImZvby5oOjEwMDogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQogCiAgICAgZGVm
IHRlc3RfY2FsbF9yZXBvcnRhYmxlX3ZzNyhzZWxmKToKQEAgLTEwOSwxMCArMTA5LDExIEBAIGNs
YXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlclRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFz
ZSk6CiAgICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKHZlcmJvc2l0eT0zLCBvdXRw
dXRfZm9ybWF0PSJ2czciKQogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFsaXplZCgpCiAKLSAg
ICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKG9wdGlvbnMsIGNvbmZpZGVuY2UpCisgICAg
ICAgIGVycm9yX2hhbmRsZXIgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKG9wdGlvbnMpCisgICAgICAg
IHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25maWRlbmNlKQogCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXNbLTFdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZm9vLmgoMTAwKTogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQogCiAg
ICAgZGVmIHRlc3RfY2FsbF9tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnkoc2VsZik6CkBAIC0xMjUs
MjUgKzEyNiwyNSBAQCBjbGFzcyBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXJUZXN0KFN0eWxlRXJy
b3JIYW5kbGVyVGVzdEJhc2UpOgogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFsaXplZCgpCiAK
ICAgICAgICAgIyBGaXJzdCBjYWxsOiB1c3VhbCByZXBvcnRpbmcuCi0gICAgICAgIHNlbGYuX2Nh
bGwoZXJyb3JfaGFuZGxlciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2Fs
bF9lcnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwg
bGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2Vs
Zi5fZXJyb3JfbWVzc2FnZXNbLTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmg6
MTAwOiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiIpCiAKICAgICAgICAgIyBTZWNv
bmQgY2FsbDogc3VwcHJlc3Npb24gbWVzc2FnZSByZXBvcnRlZC4KLSAgICAgICAgc2VsZi5fZXJy
b3JfbWVzc2FnZXMgPSAiIgotICAgICAgICBzZWxmLl9jYWxsKGVycm9yX2hhbmRsZXIsIG9wdGlv
bnMsIGNvbmZpZGVuY2UpCisgICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9o
YW5kbGVyLCBjb25maWRlbmNlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygyLCBzZWxmLl9l
cnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2Fn
ZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDIsIGxlbihzZWxmLl9lcnJvcl9tZXNzYWdl
cykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vycm9yX21lc3NhZ2VzWy0xXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby5oOjEwMDogIG1lc3NhZ2UgIFt3aGl0ZXNw
YWNlL3RhYl0gWzVdXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2luZyBm
dXJ0aGVyIFslc10gcmVwb3J0cyBmb3IgdGhpcyBmaWxlLlxuIgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAlIHNlbGYuX2NhdGVnb3J5KQogCiAgICAgICAgICMgVGhpcmQgY2FsbDogbm8gcmVw
b3J0LgotICAgICAgICBzZWxmLl9lcnJvcl9tZXNzYWdlcyA9ICIiCi0gICAgICAgIHNlbGYuX2Nh
bGwoZXJyb3JfaGFuZGxlciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2Fs
bF9lcnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKDMsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDIsIGxlbihzZWxmLl9lcnJvcl9tZXNzYWdlcykpCiAKIAogY2xhc3MgUGF0Y2hTdHlsZUVycm9y
SGFuZGxlclRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlci5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CmluZGV4IDE5YzJmNGQuLjJiZDFhZDcgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CkBAIC0xMzks
MTIgKzEzOSw4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmUgYXBwZW5kZWQuICBUaGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNo
IHRha2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2VkZW5jZSwgaS5lLiBvbmx5IHRo
ZSBmaXJzdCBtYXRjaCB0cmlnZ2VycwogICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGFwcGVu
ZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlICJwYXRoX3J1bGVzIiB2YWx1ZSBp
cyB0aGUgdHVwbGUgb2YgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSAi
cGF0aF9ydWxlcyIgdmFsdWUgaXMgYSBsaXN0IG9mIGZpbHRlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bGVzIHRoYXQgY2FuIGJlIGFwcGVuZGVkIHRvIHRoZSBiYXNlIHJ1bGVzLgotICAg
ICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyBhIHR1cGxlIHJhdGhlciB0aGFuIGEg
bGlzdCBzbyBpdAotICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSB1c2VkIGFzIGEgZGlj
dGlvbmFyeSBrZXkuICBUaGUgZGljdGlvbmFyeQotICAgICAgICAgICAgICAgICAgICAgICAgIGlz
IGZvciBjYWNoaW5nIHB1cnBvc2VzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMgY2xhc3MuCiAKICAgICAgICAgICB1c2VyX3J1bGVzOiBBIGxp
c3Qgb2YgZmlsdGVyIHJ1bGVzIHRoYXQgaXMgYWx3YXlzIGFwcGVuZGVkCiAgICAgICAgICAgICAg
ICAgICAgICAgdG8gdGhlIGJhc2UgcnVsZXMgYW5kIGFueSBwYXRoIHJ1bGVzLiAgSW4gb3RoZXIK
QEAgLTIxMCwxNiArMjA2LDI4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb24ob2JqZWN0KToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGhfc3BlY2lmaWNfbG93ZXIKIAogICAgIGRlZiBfcGF0
aF9ydWxlc19mcm9tX3BhdGgoc2VsZiwgcGF0aCk6Ci0gICAgICAgICIiIkRldGVybWluZSB0aGUg
cGF0aC1zcGVjaWZpYyBydWxlcyB0byB1c2UsIGFuZCByZXR1cm4gYXMgYSB0dXBsZS4iIiIKKyAg
ICAgICAgIiIiRGV0ZXJtaW5lIHRoZSBwYXRoLXNwZWNpZmljIHJ1bGVzIHRvIHVzZSwgYW5kIHJl
dHVybiBhcyBhIHR1cGxlLgorCisgICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgdHVwbGUg
cmF0aGVyIHRoYW4gYSBsaXN0IHNvIHRoZSByZXR1cm4KKyAgICAgICAgIHZhbHVlIGNhbiBiZSBw
YXNzZWQgdG8gX2ZpbHRlcl9mcm9tX3BhdGhfcnVsZXMoKSB3aXRob3V0IGNoYW5nZS4KKworICAg
ICAgICAiIiIKICAgICAgICAgcGF0aCA9IHBhdGgubG93ZXIoKQogICAgICAgICBmb3IgKHN1Yl9w
YXRocywgcGF0aF9ydWxlcykgaW4gc2VsZi5fZ2V0X3BhdGhfc3BlY2lmaWNfbG93ZXIoKToKICAg
ICAgICAgICAgIGZvciBzdWJfcGF0aCBpbiBzdWJfcGF0aHM6CiAgICAgICAgICAgICAgICAgaWYg
cGF0aC5maW5kKHN1Yl9wYXRoKSA+IC0xOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGF0
aF9ydWxlcworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHVwbGUocGF0aF9ydWxlcykKICAg
ICAgICAgcmV0dXJuICgpICMgRGVmYXVsdCB0byB0aGUgZW1wdHkgdHVwbGUuCiAKICAgICBkZWYg
X2ZpbHRlcl9mcm9tX3BhdGhfcnVsZXMoc2VsZiwgcGF0aF9ydWxlcyk6Ci0gICAgICAgICIiIlJl
dHVybiB0aGUgQ2F0ZWdvcnlGaWx0ZXIgYXNzb2NpYXRlZCB0byBhIHBhdGggcnVsZXMgdHVwbGUu
IiIiCisgICAgICAgICIiIlJldHVybiB0aGUgQ2F0ZWdvcnlGaWx0ZXIgYXNzb2NpYXRlZCB0byB0
aGUgZ2l2ZW4gcGF0aCBydWxlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHBhdGhfcnVs
ZXM6IEEgdHVwbGUgb2YgcGF0aCBydWxlcy4gIFdlIHJlcXVpcmUgYSB0dXBsZSByYXRoZXIKKyAg
ICAgICAgICAgICAgICAgICAgICB0aGFuIGEgbGlzdCBzbyB0aGUgdmFsdWUgY2FuIGJlIHVzZWQg
YXMgYSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgICAgICAga2V5IGluIHNlbGYuX3BhdGhf
cnVsZXNfdG9fZmlsdGVyLgorCisgICAgICAgICIiIgogICAgICAgICAjIFdlIHJldXNlIHRoZSBz
YW1lIENhdGVnb3J5RmlsdGVyIHdoZXJlIHBvc3NpYmxlIHRvIHRha2UKICAgICAgICAgIyBhZHZh
bnRhZ2Ugb2YgdGhlIGNhY2hpbmcgdGhleSBkby4KICAgICAgICAgaWYgcGF0aF9ydWxlcyBub3Qg
aW4gc2VsZi5fcGF0aF9ydWxlc190b19maWx0ZXI6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CmluZGV4IDg0NzYwYTUuLjc2
ZjI1ZGIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmls
dGVyX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
ZmlsdGVyX3VuaXR0ZXN0LnB5CkBAIC0xNTcsNyArMTU3LDcgQEAgY2xhc3MgRmlsdGVyQ29uZmln
dXJhdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgdGhhdCB0aGUg
YXR0cmlidXRlcyBhcmUgZ2V0dGluZyBzZXQgY29ycmVjdGx5LgogICAgICAgICAjIFdlIHVzZSBw
YXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0cy4KICAg
ICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0
aCJdLCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFsoWyJwYXRoIl0sIFsiK2Ei
XSldCiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisiXQogCiAgICAgICAgIGNvbmZpZyA9IHNlbGYu
X2NvbmZpZyhiYXNlX3J1bGVzLCBwYXRoX3NwZWNpZmljLCB1c2VyX3J1bGVzKQpAQCAtMTg1LDcg
KzE4NSw3IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKIAogICAgICAgICAjIFRoZXNlIHBhcmFtZXRlciB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9t
IHRoZSBkZWZhdWx0cy4KICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhf
c3BlY2lmaWMgPSBbKFsicGF0aCJdLCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9zcGVjaWZpYyA9
IFsoWyJwYXRoIl0sIFsiK2EiXSldCiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisiXQogCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoY29uZmlnLl9fZXFfXyhGaWx0ZXJDb25maWd1cmF0aW9uKApA
QCAtMjE5LDggKzIxOSw4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9wYXRoX3NwZWNpZmljKHNlbGYpOgogICAgICAgICAi
IiJUZXN0IGVmZmVjdCBvZiBwYXRoX3J1bGVzX3NwZWNpZmllciBvbiBzaG91bGRfY2hlY2soKS4i
IiIKICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBb
KFsicGF0aDEiXSwgKCIrYiIsKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKFsicGF0aDIi
XSwgKCIrYyIsKSldCisgICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aDEiXSwgWyIrYiJd
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoWyJwYXRoMiJdLCBbIitjIl0pXQogICAgICAg
ICB1c2VyX3J1bGVzID0gW10KIAogICAgICAgICBjb25maWcgPSBzZWxmLl9jb25maWcoYmFzZV9y
dWxlcywgcGF0aF9zcGVjaWZpYywgdXNlcl9ydWxlcykKQEAgLTIzMyw3ICsyMzMsNyBAQCBjbGFz
cyBGaWx0ZXJDb25maWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRl
c3RfcGF0aF93aXRoX2RpZmZlcmVudF9jYXNlKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGEgcGF0
aCB0aGF0IGRpZmZlcnMgb25seSBpbiBjYXNlLiIiIgogICAgICAgICBiYXNlX3J1bGVzID0gWyIt
Il0KLSAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFsoWyJGb28vIl0sICgiK3doaXRlc3BhY2UiLCkp
XQorICAgICAgICBwYXRoX3NwZWNpZmljID0gWyhbIkZvby8iXSwgWyIrd2hpdGVzcGFjZSJdKV0K
ICAgICAgICAgdXNlcl9ydWxlcyA9IFtdCiAKICAgICAgICAgY29uZmlnID0gc2VsZi5fY29uZmln
KGJhc2VfcnVsZXMsIHBhdGhfc3BlY2lmaWMsIHVzZXJfcnVsZXMpCg==
</data>
<flag name="review"
          id="31565"
          type_id="1"
          status="+"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="31566"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>